diff --git a/assets/error.html b/assets/error.html index e4f73b5..ba1b6fe 100644 --- a/assets/error.html +++ b/assets/error.html @@ -27,9 +27,9 @@ <link rel="dns-prefetch" href="//img12.static.yhbimg.com"> <link rel="dns-prefetch" href="//img13.static.yhbimg.com"> <link rel="stylesheet" href="//cdn.yoho.cn/myohobuy/1.3.16/index.css"> - <link rel="apple-touch-icon-precomposed" href="http://static.yohobuy.com/m/v1/img/touch/apple-touch-icon-144x144-precomposed-new.png"> - <link rel="apple-touch-startup-image" sizes="640x920" href="http://static.yohobuy.com/m/v1/img/startup/startup-retina.png" media="screen and (max-device-width: 480px) and (-webkit-min-device-pixel-ratio: 2)"> - <link rel="apple-touch-startup-image" sizes="320x460" href="http://static.yohobuy.com/m/v1/img/startup/startup.png" media="screen and (max-device-width: 320)"> + <link rel="apple-touch-icon-precomposed" href="//static.yohobuy.com/m/v1/img/touch/apple-touch-icon-144x144-precomposed-new.png"> + <link rel="apple-touch-startup-image" sizes="640x920" href="//static.yohobuy.com/m/v1/img/startup/startup-retina.png" media="screen and (max-device-width: 480px) and (-webkit-min-device-pixel-ratio: 2)"> + <link rel="apple-touch-startup-image" sizes="320x460" href="//static.yohobuy.com/m/v1/img/startup/startup.png" media="screen and (max-device-width: 320)"> </head> <body > <header id="yoho-header" class="yoho-header boys"> @@ -95,8 +95,8 @@ </a> </div> -<script src="http://cdn.yoho.cn/myohobuy/1.3.16/lib.js"></script> -<script src="http://cdn.yoho.cn/myohobuy/1.3.16/index.js"></script> +<script src="//cdn.yoho.cn/myohobuy/1.3.16/lib.js"></script> +<script src="//cdn.yoho.cn/myohobuy/1.3.16/index.js"></script> <script type="text/javascript"> (function(w,d,s,j,f){ @@ -107,7 +107,7 @@ a.async=1; a.src=j; m.parentNode.insertBefore(a,m); - })(window,document,'script','http://cdn.yoho.cn/yas-jssdk/1.0.14/yas.js','_yas'); + })(window,document,'script','//cdn.yoho.cn/yas-jssdk/1.0.14/yas.js','_yas'); </script> <script> seajs.use('js/common'); @@ -123,5 +123,5 @@ })(window,document,'script','dataLayer','GTM-W958MG'); </script> -<script src="http://static.yohobuy.com/js/analytics/analysis.js"></script> +<script src="//static.yohobuy.com/js/analytics/analysis.js"></script> </html> \ No newline at end of file diff --git a/assets/signin.html b/assets/signin.html index 90b00b6..2dc7690 100644 --- a/assets/signin.html +++ b/assets/signin.html @@ -27,9 +27,9 @@ <link rel="dns-prefetch" href="//img12.static.yhbimg.com"> <link rel="dns-prefetch" href="//img13.static.yhbimg.com"> <link rel="stylesheet" href="//cdn.yoho.cn/myohobuy/1.3.16/index.css"> - <link rel="apple-touch-icon-precomposed" href="http://static.yohobuy.com/m/v1/img/touch/apple-touch-icon-144x144-precomposed-new.png"> - <link rel="apple-touch-startup-image" sizes="640x920" href="http://static.yohobuy.com/m/v1/img/startup/startup-retina.png" media="screen and (max-device-width: 480px) and (-webkit-min-device-pixel-ratio: 2)"> - <link rel="apple-touch-startup-image" sizes="320x460" href="http://static.yohobuy.com/m/v1/img/startup/startup.png" media="screen and (max-device-width: 320)"> + <link rel="apple-touch-icon-precomposed" href="//static.yohobuy.com/m/v1/img/touch/apple-touch-icon-144x144-precomposed-new.png"> + <link rel="apple-touch-startup-image" sizes="640x920" href="//static.yohobuy.com/m/v1/img/startup/startup-retina.png" media="screen and (max-device-width: 480px) and (-webkit-min-device-pixel-ratio: 2)"> + <link rel="apple-touch-startup-image" sizes="320x460" href="//static.yohobuy.com/m/v1/img/startup/startup.png" media="screen and (max-device-width: 320)"> </head> <body class=passport-body> <div class="login-page passport-page yoho-page"> diff --git a/compile/www.yohobuy.com/0.0.29/README.md b/compile/www.yohobuy.com/0.0.29/README.md deleted file mode 100644 index 44069c2..0000000 --- a/compile/www.yohobuy.com/0.0.29/README.md +++ /dev/null @@ -1 +0,0 @@ -存放PC模板的预编译文件 \ No newline at end of file diff --git a/compile/www.yohobuy.com/4.7.0/test.php b/compile/www.yohobuy.com/4.7.0/test.php new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/compile/www.yohobuy.com/4.7.0/test.php diff --git a/compile/www.yohobuy.com/4.7.2/test.php b/compile/www.yohobuy.com/4.7.2/test.php new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/compile/www.yohobuy.com/4.7.2/test.php diff --git a/library/Action/HuodongWebAction.php b/library/Action/HuodongWebAction.php index daa68ce..fbd1c2b 100644 --- a/library/Action/HuodongWebAction.php +++ b/library/Action/HuodongWebAction.php @@ -56,7 +56,7 @@ class HuodongWebAction extends Controller_Abstract { if (!$this->isAjax() && Mobile::isMobile()) { header("HTTP/1.1 301 Moved Permanently"); - header('Location:http://huodong.m.yohobuy.com'.$_SERVER['REQUEST_URI']); + header('Location://huodong.m.yohobuy.com'.$_SERVER['REQUEST_URI']); exit(); } diff --git a/library/Action/WebAction.php b/library/Action/WebAction.php index 6d2875e..a7ee73a 100644 --- a/library/Action/WebAction.php +++ b/library/Action/WebAction.php @@ -77,7 +77,7 @@ class WebAction extends Controller_Abstract case 'develop': // 开发 default: $this->_view->assign('devEnv', true); - $this->_useSession = true; + $this->_useSession = false; break; } @@ -601,7 +601,7 @@ class WebAction extends Controller_Abstract $apiDomain = $this->getApiDomain(); $this->_view->assign('simpleHeader', array( 'logo' => array( - 'img' => 'http://static.yohobuy.com/newheader/img/logo_e.png', + 'img' => '//static.yohobuy.com/newheader/img/logo_e.png', 'url' => SITE_MAIN ), 'tool' => array( diff --git a/library/Api/Yohobuy.php b/library/Api/Yohobuy.php index 687d0aa..e09ed4e 100644 --- a/library/Api/Yohobuy.php +++ b/library/Api/Yohobuy.php @@ -11,7 +11,7 @@ namespace Api; -use WebPlugin\Cache; +use Plugin\Cache; class Yohobuy { /* 正式环境 */ @@ -44,13 +44,21 @@ class Yohobuy // const SERVICE_URL = 'http://preservice.yoho.cn/'; // const YOHOBUY_URL = 'http://www.yohobuy.com/'; // const API_OLD = 'http://api2.open.yohobuy.com/'; +<<<<<<< HEAD +======= + +>>>>>>> master /** * 登录老接口Api配置 */ const API_LOGIN_URL = 'http://api.open.yohobuy.com'; const API_LOGIN_URL_TEST = 'http://test.open.yohobuy.com'; +<<<<<<< HEAD +======= + +>>>>>>> master /** * 私钥列表 * @@ -63,7 +71,11 @@ class Yohobuy 'web' => '0ed29744ed318fd28d2c07985d3ba633', 'h5' => 'fd4ad5fcfa0de589ef238c0e7331b585', ); +<<<<<<< HEAD +======= + +>>>>>>> master /** @@ -77,7 +89,11 @@ class Yohobuy else { return 'web'; } +<<<<<<< HEAD +======= + +>>>>>>> master // // 苹果设备 // if (strstr($_SERVER['HTTP_USER_AGENT'], 'iPhone')) { // return 'iphone'; @@ -187,7 +203,11 @@ class Yohobuy curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); +<<<<<<< HEAD if ($useGzip) { +======= + if ($useGzip) { +>>>>>>> master curl_setopt($ch, CURLOPT_ENCODING, 'gzip'); } if (!empty($userAgent)) { @@ -230,7 +250,11 @@ class Yohobuy public static function post($url, $data = array(), $returnJson = false, $timeout = 10, $header = array(), $cookie = array()) { $ch = curl_init($url); +<<<<<<< HEAD +======= + +>>>>>>> master curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); if (!empty($header)) { curl_setopt($ch, CURLOPT_HTTPHEADER, $header); @@ -352,7 +376,11 @@ class Yohobuy continue; } $result[$name] = $response['data']; +<<<<<<< HEAD } +======= + } +>>>>>>> master else { $result[$name] = $response; } @@ -496,7 +524,11 @@ class Yohobuy return $result; } +<<<<<<< HEAD +======= + +>>>>>>> master /** * 获取用户User-Agent * @return bool @@ -508,7 +540,11 @@ class Yohobuy } return $_SERVER['HTTP_USER_AGENT']; } +<<<<<<< HEAD +======= + +>>>>>>> master /** * 判断是否手机 * @return bool diff --git a/library/Configs/ChannelConfig.php b/library/Configs/ChannelConfig.php index f295457..ef22716 100644 --- a/library/Configs/ChannelConfig.php +++ b/library/Configs/ChannelConfig.php @@ -312,14 +312,14 @@ class ChannelConfig 'sale_index' => array('domain' => 'sale', 'module' => 's'), //sale.yohobuy.com ); //左侧广告默认图片-passport相关页面 - public static $leftDefaultImg = 'http://img12.static.yhbimg.com/yhb-img01/2015/12/01/07/020a0b6e7ff908d0c2bc4045b4fef42b9f.png?imageView/2/w/252/h/190'; + public static $leftDefaultImg = '//img12.static.yhbimg.com/yhb-img01/2015/12/01/07/020a0b6e7ff908d0c2bc4045b4fef42b9f.png?imageView/2/w/252/h/190'; //多品店品牌ID public static $moreBrandIds = array(1025, 504, 1351, 1362, 613, 456, 842, 656, 1310, 1063, 861, 1417, 1200, 1207, 1209, 1306, 972, 308, 856); //默认头像 - public static $headDefaultImgIco = 'http://img10.static.yhbimg.com/headimg/2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100'; + public static $headDefaultImgIco = '//img10.static.yhbimg.com/headimg/2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100'; //商品详情页的默认头像 - public static $itemHeadDefaultImgIco = 'http://static.yohobuy.com/images/v3/boy.jpg'; + public static $itemHeadDefaultImgIco = '//static.yohobuy.com/images/v3/boy.jpg'; //性别 public static $genderArr = array( array( diff --git a/library/LibModels/Wap/Category/BrandData.php b/library/LibModels/Wap/Category/BrandData.php index fe470ac..e1ef202 100644 --- a/library/LibModels/Wap/Category/BrandData.php +++ b/library/LibModels/Wap/Category/BrandData.php @@ -38,14 +38,14 @@ class BrandData $param = Yohobuy::param(); $param['content_code'] = $contentCode; $param['client_secret'] = Sign::getSign($param); - $urlList['brandTop'] = Yohobuy::httpBuildQuery(Yohobuy::SERVICE_URL . self::URI_BRAND_TOPPOS, $param); + $urlList['brandTop'] = Yohobuy::httpBuildQuery(SERVICE_URL . self::URI_BRAND_TOPPOS, $param); /* 按字母"A-Z"分组的品牌列表数据 */ $param = Yohobuy::param(); $param['method'] = 'app.brand.brandlist'; $param['yh_channel'] = $channel; $param['client_secret'] = Sign::getSign($param); - $urlList['brandList'] = Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param); + $urlList['brandList'] = Yohobuy::httpBuildQuery(API_URL, $param); return Yohobuy::getMulti($urlList, array(), 3600); // 有缓存1小时 } @@ -66,7 +66,7 @@ class BrandData } $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param, 3600); // 有缓存1小时 + return Yohobuy::get(API_URL, $param, 3600); // 有缓存1小时 } /** @@ -82,7 +82,7 @@ class BrandData $param['content_code'] = $contentCode; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::SERVICE_URL . self::URI_BRAND_TOPPOS, $param); + return Yohobuy::get(SERVICE_URL . self::URI_BRAND_TOPPOS, $param); } /** @@ -106,7 +106,7 @@ class BrandData $cache = empty($uid) ? 3600 : false; - return Yohobuy::get(Yohobuy::API_URL, $param, $cache); // 有缓存1小时 + return Yohobuy::get(API_URL, $param, $cache); // 有缓存1小时 } /** @@ -123,7 +123,7 @@ class BrandData $param['method'] = 'app.brand.banner'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param, 3600); // 有缓存1小时 + return Yohobuy::get(API_URL, $param, 3600); // 有缓存1小时 } /** @@ -168,7 +168,7 @@ class BrandData $param['yh_channel'] = $channel; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -203,7 +203,7 @@ class BrandData } $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -214,7 +214,7 @@ class BrandData */ public static function getBrandLogo($id) { - return Yohobuy::yarClient(Yohobuy::SERVICE_URL . '/shops/service/v1/brand', 'getBrandByids', array($id)); + return Yohobuy::yarClient(SERVICE_URL . '/shops/service/v1/brand', 'getBrandByids', array($id)); } /** @@ -225,7 +225,7 @@ class BrandData */ public static function getBrandLogoByDomain($domain) { - return Yohobuy::yarClient(Yohobuy::SERVICE_URL . '/shops/service/v1/brand', 'getBrandByDomain', array($domain)); + return Yohobuy::yarClient(SERVICE_URL . '/shops/service/v1/brand', 'getBrandByDomain', array($domain)); } } diff --git a/library/LibModels/Wap/Category/ClassData.php b/library/LibModels/Wap/Category/ClassData.php index 9ed6abe..0491acd 100644 --- a/library/LibModels/Wap/Category/ClassData.php +++ b/library/LibModels/Wap/Category/ClassData.php @@ -30,7 +30,7 @@ class ClassData $param['method'] = 'app.sort.get'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -73,7 +73,7 @@ class ClassData $param['gender'] = $gender; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -108,7 +108,7 @@ class ClassData } $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } diff --git a/library/LibModels/Wap/Category/FocusData.php b/library/LibModels/Wap/Category/FocusData.php index 2795418..df9c372 100644 --- a/library/LibModels/Wap/Category/FocusData.php +++ b/library/LibModels/Wap/Category/FocusData.php @@ -37,7 +37,7 @@ class FocusData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::SERVICE_URL . 'guang/api/v1/attention/getlist', $param); + return Yohobuy::get(SERVICE_URL . 'guang/api/v1/attention/getlist', $param); } } diff --git a/library/LibModels/Wap/Cuxiao/ActivityData.php b/library/LibModels/Wap/Cuxiao/ActivityData.php index ce69498..3b7ef21 100644 --- a/library/LibModels/Wap/Cuxiao/ActivityData.php +++ b/library/LibModels/Wap/Cuxiao/ActivityData.php @@ -39,7 +39,7 @@ class ActivityData $param['activity_id'] = $activityId; $param['coupon_id'] = $couponId; - return Yohobuy::get(Yohobuy::SERVICE_URL . self::URI_GET_NAMED_COUPON, $param); + return Yohobuy::get(SERVICE_URL . self::URI_GET_NAMED_COUPON, $param); } /** @@ -55,7 +55,7 @@ class ActivityData $param['uid'] = $uid; $param['activity_id'] = $activityId; - return Yohobuy::get(Yohobuy::SERVICE_URL . self::URI_GET_ALL_COUPON, $param); + return Yohobuy::get(SERVICE_URL . self::URI_GET_ALL_COUPON, $param); } /** @@ -68,7 +68,7 @@ class ActivityData { $param = array('activity_id' => $activityId); - return Yohobuy::get(Yohobuy::SERVICE_URL . self::URI_GET_ACTIVITY_INFO, $param, 3600); // 有缓存1小时 + return Yohobuy::get(SERVICE_URL . self::URI_GET_ACTIVITY_INFO, $param, 3600); // 有缓存1小时 } /** @@ -122,7 +122,7 @@ class ActivityData public static function message($uid, $title, $content, $type = 1, $verify_key = '', $send_uid = 0, $call_back = '') { //调用接口发送站内信 - return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URI_SEND_MESSAGE, 'setSingleMessage', array( + return Yohobuy::yarClient(SERVICE_URL . self::URI_SEND_MESSAGE, 'setSingleMessage', array( $uid, $title, $content, $type, $verify_key, $send_uid, $call_back )); } diff --git a/library/LibModels/Wap/Guang/DetailData.php b/library/LibModels/Wap/Guang/DetailData.php index 14ea203..57f7663 100644 --- a/library/LibModels/Wap/Guang/DetailData.php +++ b/library/LibModels/Wap/Guang/DetailData.php @@ -46,7 +46,7 @@ class DetailData // 先尝试获取一级缓存(master), 有数据则直接返回. $cached = Cache::get($key, 'master'); if (!empty($cached)) { -// $article = Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getArticle', array($id, $clientType), false, 1000); +// $article = Yohobuy::yarClient(SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getArticle', array($id, $clientType), false, 1000); // 获取资讯 $param = Yohobuy::param(); @@ -54,7 +54,7 @@ class DetailData $param['client_type'] = $clientType; $param['private_key'] = Yohobuy::$privateKeyList[$clientType]; $param['client_secret'] = Sign::getSign($param); - $result = Yohobuy::get(Yohobuy::SERVICE_URL . self::URI_PACKAGE_ARTICLE . 'getArticle', $param); + $result = Yohobuy::get(SERVICE_URL . self::URI_PACKAGE_ARTICLE . 'getArticle', $param); $article = $result['data']; if (isset($article['pageViews'])) { @@ -65,7 +65,7 @@ class DetailData } // 获取资讯 -// $article = Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getArticle', array($id, $clientType), false, 1500); +// $article = Yohobuy::yarClient(SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getArticle', array($id, $clientType), false, 1500); // ksort($article); // file_put_contents('../../../../../../Desktop/app/o/getArticle.txt', var_export($article, true)); @@ -75,7 +75,7 @@ class DetailData $param['client_type'] = $clientType; $param['private_key'] = Yohobuy::$privateKeyList[$clientType]; $param['client_secret'] = Sign::getSign($param); - $result = Yohobuy::get(Yohobuy::SERVICE_URL . self::URI_PACKAGE_ARTICLE . 'getArticle', $param); + $result = Yohobuy::get(SERVICE_URL . self::URI_PACKAGE_ARTICLE . 'getArticle', $param); $article = $result['data']; // file_put_contents('../../../../../../Desktop/app/n/getArticle3.txt', var_export($article, true)); @@ -94,7 +94,7 @@ class DetailData $param = Yohobuy::param(); $param['author_id'] = $article['author_id']; $param['client_secret'] = Sign::getSign($param); - $urlList['getAuthor'] = Yohobuy::httpBuildQuery(Yohobuy::SERVICE_URL . self::URI_PACKAGE_AUTHOR . 'getAuthor', $param); + $urlList['getAuthor'] = Yohobuy::httpBuildQuery(SERVICE_URL . self::URI_PACKAGE_AUTHOR . 'getAuthor', $param); // 获取资讯内容 $param = Yohobuy::param(); @@ -102,7 +102,7 @@ class DetailData $param['client_type'] = $clientType; $param['private_key'] = Yohobuy::$privateKeyList[$clientType]; $param['client_secret'] = Sign::getSign($param); - $urlList['getArticleContent'] = Yohobuy::httpBuildQuery(Yohobuy::SERVICE_URL . self::URI_PACKAGE_ARTICLE . 'getArticleContent', $param); + $urlList['getArticleContent'] = Yohobuy::httpBuildQuery(SERVICE_URL . self::URI_PACKAGE_ARTICLE . 'getArticleContent', $param); // 获取资讯相关的品牌 $param = Yohobuy::param(); @@ -110,7 +110,7 @@ class DetailData $param['client_type'] = $clientType; $param['private_key'] = Yohobuy::$privateKeyList[$clientType]; $param['client_secret'] = Sign::getSign($param); - $urlList['getBrand'] = Yohobuy::httpBuildQuery(Yohobuy::SERVICE_URL . self::URI_PACKAGE_ARTICLE . 'getBrand', $param); + $urlList['getBrand'] = Yohobuy::httpBuildQuery(SERVICE_URL . self::URI_PACKAGE_ARTICLE . 'getBrand', $param); // 获取资讯相关的其它资讯 if (isset($article['tag'])) { @@ -122,7 +122,7 @@ class DetailData $param['limit'] = 3; $param['private_key'] = Yohobuy::$privateKeyList[$clientType]; $param['client_secret'] = Sign::getSign($param); - $urlList['getOtherArticle'] = Yohobuy::httpBuildQuery(Yohobuy::SERVICE_URL . self::URI_PACKAGE_ARTICLE . 'getOtherArticle', $param); + $urlList['getOtherArticle'] = Yohobuy::httpBuildQuery(SERVICE_URL . self::URI_PACKAGE_ARTICLE . 'getOtherArticle', $param); } $multiResult = Yohobuy::getMulti($urlList, array()); @@ -138,21 +138,21 @@ class DetailData /* // 获取作者信息 - Yohobuy::yarConcurrentCall(Yohobuy::SERVICE_URL . self::URI_PACKAGE_AUTHOR, 'getAuthor', array($article['author_id'], $clientType), function ($retval) use (&$result) { + Yohobuy::yarConcurrentCall(SERVICE_URL . self::URI_PACKAGE_AUTHOR, 'getAuthor', array($article['author_id'], $clientType), function ($retval) use (&$result) { $result['getAuthor'] = empty($retval) ? array() : $retval; ksort($retval); file_put_contents('../../../../../../Desktop/app/o/getAuthor.txt', var_export($retval, true)); }); // 获取资讯内容 - Yohobuy::yarConcurrentCall(Yohobuy::SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getArticleContent', array($id, $clientType), function ($retval) use (&$result) { + Yohobuy::yarConcurrentCall(SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getArticleContent', array($id, $clientType), function ($retval) use (&$result) { $result['getArticleContent'] = empty($retval) ? array() : $retval; ksort($retval); file_put_contents('../../../../../../Desktop/app/o/getArticleContent.txt', var_export($retval, true)); }); // 获取资讯相关的品牌 - Yohobuy::yarConcurrentCall(Yohobuy::SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getBrand', array($id, $clientType), function ($retval) use (&$result) { + Yohobuy::yarConcurrentCall(SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getBrand', array($id, $clientType), function ($retval) use (&$result) { $result['getBrand'] = empty($retval) ? array() : $retval; ksort($retval); file_put_contents('../../../../../../Desktop/app/o/getBrand.txt', var_export($retval, true)); @@ -160,7 +160,7 @@ class DetailData // 获取资讯相关的其它资讯 if (isset($article['tag'])) { - Yohobuy::yarConcurrentCall(Yohobuy::SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getOtherArticle', array($article['tag'], $id, 0, 3, $clientType), function ($retval) use (&$result) { + Yohobuy::yarConcurrentCall(SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getOtherArticle', array($article['tag'], $id, 0, 3, $clientType), function ($retval) use (&$result) { $result['getOtherArticle'] = empty($retval) ? array() : $retval; ksort($retval); file_put_contents('../../../../../../Desktop/app/o/getOtherArticle.txt', var_export($retval, true)); @@ -206,19 +206,19 @@ class DetailData $clientType = $isApp ? 'iphone' : 'h5'; // 获取资讯 - $article = Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getArticle', array($id, $clientType)); + $article = Yohobuy::yarClient(SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getArticle', array($id, $clientType)); if (!isset($article['author_id'])) { return $result; } $result['getArticle'] = $article; // 获取资讯内容 - Yohobuy::yarConcurrentCall(Yohobuy::SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getArticleContent', array($id, $clientType), function ($retval) use (&$result) { + Yohobuy::yarConcurrentCall(SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getArticleContent', array($id, $clientType), function ($retval) use (&$result) { $result['getArticleContent'] = empty($retval) ? array() : $retval; }); // 获取资讯相关的品牌 - Yohobuy::yarConcurrentCall(Yohobuy::SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getBrand', array($id, $clientType), function ($retval) use (&$result) { + Yohobuy::yarConcurrentCall(SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getBrand', array($id, $clientType), function ($retval) use (&$result) { $result['getBrand'] = empty($retval) ? array() : $retval; }); @@ -243,12 +243,12 @@ class DetailData $clientType = $isApp ? 'iphone' : 'h5'; // 获取资讯内容 - Yohobuy::yarConcurrentCall(Yohobuy::SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getArticleContent', array($id, $clientType), function ($retval) use (&$result) { + Yohobuy::yarConcurrentCall(SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getArticleContent', array($id, $clientType), function ($retval) use (&$result) { $result['getArticleContent'] = empty($retval) ? array() : $retval; }); // 获取资讯相关的品牌 - Yohobuy::yarConcurrentCall(Yohobuy::SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getBrand', array($id, $clientType), function ($retval) use (&$result) { + Yohobuy::yarConcurrentCall(SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getBrand', array($id, $clientType), function ($retval) use (&$result) { $result['getBrand'] = empty($retval) ? array() : $retval; }); @@ -268,10 +268,10 @@ class DetailData $param['client_type'] = 'h5'; $param['private_key'] = Yohobuy::$privateKeyList['h5']; $param['client_secret'] = Sign::getSign($param); - $result = Yohobuy::get(Yohobuy::SERVICE_URL . self::URI_PACKAGE_ARTICLE . 'getArticleContent', $param); + $result = Yohobuy::get(SERVICE_URL . self::URI_PACKAGE_ARTICLE . 'getArticleContent', $param); return $result['data']; -// return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getArticleContent', array($id, 'h5')); +// return Yohobuy::yarClient(SERVICE_URL . self::URI_PACKAGE_ARTICLE, 'getArticleContent', array($id, 'h5')); } } diff --git a/library/LibModels/Wap/Guang/ListData.php b/library/LibModels/Wap/Guang/ListData.php index 7a466aa..7bafde6 100644 --- a/library/LibModels/Wap/Guang/ListData.php +++ b/library/LibModels/Wap/Guang/ListData.php @@ -33,7 +33,7 @@ class ListData $param = Yohobuy::param(); $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::SERVICE_URL . self::URI_CATEGORY, $param, 3600); // 有缓存1小时 + return Yohobuy::get(SERVICE_URL . self::URI_CATEGORY, $param, 3600); // 有缓存1小时 } /** @@ -73,7 +73,7 @@ class ListData $cache = $useCache ? 300 : false; - return Yohobuy::get(Yohobuy::SERVICE_URL . self::URI_ARTICLELIST, $param, $cache); // 缓存5分钟 + return Yohobuy::get(SERVICE_URL . self::URI_ARTICLELIST, $param, $cache); // 缓存5分钟 } /** @@ -100,7 +100,7 @@ class ListData $param['udid'] = $udid; $param['client_secret'] = Sign::getSign($param); - $urlList[$value['id']] = Yohobuy::httpBuildQuery(Yohobuy::SERVICE_URL . self::URI_ARTICLELIST, $param); + $urlList[$value['id']] = Yohobuy::httpBuildQuery(SERVICE_URL . self::URI_ARTICLELIST, $param); } return Yohobuy::getMulti($urlList); @@ -117,12 +117,12 @@ class ListData $result = array(); if (is_numeric($id)) { -// $result = Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URI_AUTHOR, 'getAuthor', array($id), 3600); // 缓存1小时 +// $result = Yohobuy::yarClient(SERVICE_URL . self::URI_AUTHOR, 'getAuthor', array($id), 3600); // 缓存1小时 $param = Yohobuy::param(); $param['author_id'] = $id; $param['client_secret'] = Sign::getSign($param); - $article = Yohobuy::get(Yohobuy::SERVICE_URL . self::URI_AUTHOR . 'getAuthor', $param, 3600); + $article = Yohobuy::get(SERVICE_URL . self::URI_AUTHOR . 'getAuthor', $param, 3600); $result = $article['data']; } diff --git a/library/LibModels/Wap/Guang/OptData.php b/library/LibModels/Wap/Guang/OptData.php index 569a274..bb58bcc 100644 --- a/library/LibModels/Wap/Guang/OptData.php +++ b/library/LibModels/Wap/Guang/OptData.php @@ -31,12 +31,12 @@ class OptData $param['uid'] = $uid; $param['id'] = $id; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::SERVICE_URL.'guang/service/v2/favorite/toggleBrand', $param); + return Yohobuy::get(SERVICE_URL.'guang/service/v2/favorite/toggleBrand', $param); // if ($opt == 'ok') { -// return Yohobuy::yarClient(Yohobuy::SERVICE_URL . 'guang/service/v2/favorite/', 'toggleBrand', array($uid, $id)); +// return Yohobuy::yarClient(SERVICE_URL . 'guang/service/v2/favorite/', 'toggleBrand', array($uid, $id)); // } else { -// return Yohobuy::yarClient(Yohobuy::SERVICE_URL . 'guang/service/v2/favorite/', 'toggleBrand', array($uid, $id)); +// return Yohobuy::yarClient(SERVICE_URL . 'guang/service/v2/favorite/', 'toggleBrand', array($uid, $id)); // } } @@ -56,13 +56,13 @@ class OptData $param['client_secret'] = Sign::getSign($param); if ($opt === 'cancel') { -// return Yohobuy::yarClient(Yohobuy::SERVICE_URL . 'shops/service/v1/favorite/', 'addUidProductFav', array($uid, $skn)); +// return Yohobuy::yarClient(SERVICE_URL . 'shops/service/v1/favorite/', 'addUidProductFav', array($uid, $skn)); - return Yohobuy::get(Yohobuy::SERVICE_URL.'shops/service/v1/favorite/addUidProductFav', $param); + return Yohobuy::get(SERVICE_URL.'shops/service/v1/favorite/addUidProductFav', $param); } else { -// return Yohobuy::yarClient(Yohobuy::SERVICE_URL . 'shops/service/v1/favorite/', 'delUidProductFav', array($uid, $skn)); +// return Yohobuy::yarClient(SERVICE_URL . 'shops/service/v1/favorite/', 'delUidProductFav', array($uid, $skn)); - return Yohobuy::get(Yohobuy::SERVICE_URL.'shops/service/v1/favorite/delUidProductFav', $param); + return Yohobuy::get(SERVICE_URL.'shops/service/v1/favorite/delUidProductFav', $param); } } @@ -82,13 +82,13 @@ class OptData $param['client_secret'] = Sign::getSign($param); if ($opt === 'cancel') { -// return Yohobuy::yarClient(Yohobuy::SERVICE_URL . 'guang/service/v2/praise', 'cancelPraise', array($id, $udid)); +// return Yohobuy::yarClient(SERVICE_URL . 'guang/service/v2/praise', 'cancelPraise', array($id, $udid)); - return Yohobuy::get(Yohobuy::SERVICE_URL.'guang/api/v2/praise/cancel', $param); + return Yohobuy::get(SERVICE_URL.'guang/api/v2/praise/cancel', $param); } else { -// return Yohobuy::yarClient(Yohobuy::SERVICE_URL . 'guang/service/v2/praise', 'setPraise', array($id, $udid)); +// return Yohobuy::yarClient(SERVICE_URL . 'guang/service/v2/praise', 'setPraise', array($id, $udid)); - return Yohobuy::get(Yohobuy::SERVICE_URL.'guang/api/v2/praise/setPraise', $param); + return Yohobuy::get(SERVICE_URL.'guang/api/v2/praise/setPraise', $param); } } @@ -108,13 +108,13 @@ class OptData $param['client_secret'] = Sign::getSign($param); if ($opt === 'cancel') { -// return Yohobuy::yarClient(Yohobuy::SERVICE_URL . 'guang/service/v2/favorite/', 'cancelFavorite', array($id, $uid)); +// return Yohobuy::yarClient(SERVICE_URL . 'guang/service/v2/favorite/', 'cancelFavorite', array($id, $uid)); - return Yohobuy::get(Yohobuy::SERVICE_URL.'guang/api/v1/favorite/cancelFavorite', $param); + return Yohobuy::get(SERVICE_URL.'guang/api/v1/favorite/cancelFavorite', $param); } else { -// return Yohobuy::yarClient(Yohobuy::SERVICE_URL . 'guang/service/v2/favorite/', 'setFavorite', array($id, $uid)); +// return Yohobuy::yarClient(SERVICE_URL . 'guang/service/v2/favorite/', 'setFavorite', array($id, $uid)); - return Yohobuy::get(Yohobuy::SERVICE_URL.'guang/api/v1/favorite/setFavorite', $param); + return Yohobuy::get(SERVICE_URL.'guang/api/v1/favorite/setFavorite', $param); } } diff --git a/library/LibModels/Wap/Guang/PlusstarData.php b/library/LibModels/Wap/Guang/PlusstarData.php index afb8efa..847c027 100644 --- a/library/LibModels/Wap/Guang/PlusstarData.php +++ b/library/LibModels/Wap/Guang/PlusstarData.php @@ -42,7 +42,7 @@ class PlusstarData // 存放接口列表 $urlList = array(); // 接口调用的URL - $url = Yohobuy::SERVICE_URL . self::URI_BRANDLIST; + $url = SERVICE_URL . self::URI_BRANDLIST; // 公共的参数 $param = Yohobuy::param(); @@ -81,7 +81,7 @@ class PlusstarData // 存放接口列表 $urlList = array(); // 接口调用的URL - $url = Yohobuy::SERVICE_URL . self::URI_BRANDLIST; + $url = SERVICE_URL . self::URI_BRANDLIST; // 公共的参数 $param = Yohobuy::param(); @@ -140,7 +140,7 @@ class PlusstarData if (!empty($cached)) { // 判断用户是否已收藏 if ($isUidOk) { -// $getUidBrandFav = Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URI_BRANDINFO_FAVORITE, 'getUidBrandFav', array($uid, $cached['getBrandInfo']['data']['brand_id']), false, 1000); +// $getUidBrandFav = Yohobuy::yarClient(SERVICE_URL . self::URI_BRANDINFO_FAVORITE, 'getUidBrandFav', array($uid, $cached['getBrandInfo']['data']['brand_id']), false, 1000); $param = Yohobuy::param(); $param['uid'] = $uid; @@ -148,7 +148,7 @@ class PlusstarData $param['client_type'] = $clientType; $param['private_key'] = Yohobuy::$privateKeyList[$clientType]; $param['client_secret'] = Sign::getSign($param); - $getUidBrandFav = Yohobuy::get(Yohobuy::SERVICE_URL . self::URI_BRANDINFO_FAVORITE . 'getUidBrandFav', $param); + $getUidBrandFav = Yohobuy::get(SERVICE_URL . self::URI_BRANDINFO_FAVORITE . 'getUidBrandFav', $param); // file_put_contents('../../../../../../Desktop/app/n/getUidBrandFav.txt', var_export($getUidBrandFav, true)); if (isset($getUidBrandFav['code']) && $getUidBrandFav['code'] == 200) { @@ -161,7 +161,7 @@ class PlusstarData } // 品牌详情信息 -// $brandInfo = Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URI_BRANDINFO_PLUSSTAR, 'getBrandInfo', array(array('id' => $id)), 3600); // 缓存1小时 +// $brandInfo = Yohobuy::yarClient(SERVICE_URL . self::URI_BRANDINFO_PLUSSTAR, 'getBrandInfo', array(array('id' => $id)), 3600); // 缓存1小时 // file_put_contents('../../../../../../Desktop/app/o/getbrandinfo.txt', var_export($brandInfo, true)); // 品牌详情信息 @@ -170,7 +170,7 @@ class PlusstarData $param['client_type'] = $clientType; $param['private_key'] = Yohobuy::$privateKeyList[$clientType]; $param['client_secret'] = Sign::getSign($param); - $brandInfo = Yohobuy::get(Yohobuy::SERVICE_URL . self::URI_BRANDINFO_PLUSSTAR_NEW . 'getbrandinfo', $param, 3600); + $brandInfo = Yohobuy::get(SERVICE_URL . self::URI_BRANDINFO_PLUSSTAR_NEW . 'getbrandinfo', $param, 3600); // file_put_contents('../../../../../../Desktop/app/n/getbrandinfo.txt', var_export($brandInfo, true)); if (!isset($brandInfo['data']['brand_id'])) { @@ -194,7 +194,7 @@ class PlusstarData $param['private_key'] = Yohobuy::$privateKeyList[$clientType]; $param['client_secret'] = Sign::getSign($param); - $article = Yohobuy::get(Yohobuy::SERVICE_URL.self::URI_BRANDINFO_ARTICLE.'getArticleByBrand', $param); + $article = Yohobuy::get(SERVICE_URL.self::URI_BRANDINFO_ARTICLE.'getArticleByBrand', $param); $result['getArticleByBrand'] = empty($article['data']) ? array() : $article['data']; // file_put_contents('../../../../../../Desktop/app/n/getArticleByBrand.txt', var_export($result['getArticleByBrand'], true)); @@ -205,7 +205,7 @@ class PlusstarData $param['client_type'] = $clientType; $param['private_key'] = Yohobuy::$privateKeyList[$clientType]; $param['client_secret'] = Sign::getSign($param); - $uidBrandFavRes = Yohobuy::get(Yohobuy::SERVICE_URL . self::URI_BRANDINFO_FAVORITE . 'getUidBrandFav', $param); + $uidBrandFavRes = Yohobuy::get(SERVICE_URL . self::URI_BRANDINFO_FAVORITE . 'getUidBrandFav', $param); if (isset($uidBrandFavRes['code']) && $uidBrandFavRes['code'] == 200) { $result['getUidBrandFav'] = true; @@ -231,7 +231,7 @@ class PlusstarData // $param['gender'] = $gender; // $param['order'] = 's_t_desc'; // $param['client_secret'] = Sign::getSign($param); -// $newProduct = Yohobuy::get(Yohobuy::API_URL, $param, 1800); // 缓存30分钟 +// $newProduct = Yohobuy::get(API_URL, $param, 1800); // 缓存30分钟 $condition = array(); $condition['brand'] = $brandInfo['data']['brand_id']; @@ -263,7 +263,7 @@ class PlusstarData $skn = $value['product_skn']; $result['getUidProductFav'][$skn] = false; // if ($isUidOk) { -// Yohobuy::yarConcurrentCall(Yohobuy::SERVICE_URL . self::URI_BRANDINFO_FAVORITE, 'getUidProductFav', array($uid, $value['product_skn']), function($retval) use(&$result, &$skn) { +// Yohobuy::yarConcurrentCall(SERVICE_URL . self::URI_BRANDINFO_FAVORITE, 'getUidProductFav', array($uid, $value['product_skn']), function($retval) use(&$result, &$skn) { // $result['getUidProductFav'][$skn] = empty($retval['data']) ? false : $retval['data']; // }); // } diff --git a/library/LibModels/Wap/Home/CartData.php b/library/LibModels/Wap/Home/CartData.php index 441ad94..9f6b24d 100644 --- a/library/LibModels/Wap/Home/CartData.php +++ b/library/LibModels/Wap/Home/CartData.php @@ -49,7 +49,7 @@ class CartData } $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -74,7 +74,7 @@ class CartData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -98,7 +98,7 @@ class CartData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -124,7 +124,7 @@ class CartData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -142,7 +142,7 @@ class CartData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -161,7 +161,7 @@ class CartData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -179,7 +179,7 @@ class CartData $param['promotion_id'] = $promotionId; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -214,7 +214,7 @@ class CartData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -240,7 +240,7 @@ class CartData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -267,7 +267,7 @@ class CartData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -304,7 +304,7 @@ class CartData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -322,7 +322,7 @@ class CartData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -341,7 +341,7 @@ class CartData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -405,7 +405,7 @@ class CartData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param, false, false, 5, $userAgent); + return Yohobuy::get(API_URL, $param, false, false, 5, $userAgent); } /** @@ -429,7 +429,7 @@ class CartData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } @@ -448,7 +448,7 @@ class CartData $param['page'] = $page; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -470,7 +470,7 @@ class CartData $param['limit'] = $limit; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -508,7 +508,7 @@ class CartData $param['orderCode'] = $orderCode; $param['payment'] = $payment; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } diff --git a/library/LibModels/Wap/Home/GradeData.php b/library/LibModels/Wap/Home/GradeData.php index a4c3bd0..f58603a 100644 --- a/library/LibModels/Wap/Home/GradeData.php +++ b/library/LibModels/Wap/Home/GradeData.php @@ -27,14 +27,14 @@ class GradeData $param['uid'] = $uid; $param['method'] = 'app.passport.vip'; $param['client_secret'] = Sign::getSign($param); - $urlList['grade'] = Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param); + $urlList['grade'] = Yohobuy::httpBuildQuery(API_URL, $param); //获取用户基本信息数据(用来得到username) $param = Yohobuy::param(); $param['uid'] = $uid; $param['method'] = 'app.passport.profile'; $param['client_secret'] = Sign::getSign($param); - $urlList['userProfile'] = Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param); + $urlList['userProfile'] = Yohobuy::httpBuildQuery(API_URL, $param); return Yohobuy::getMulti($urlList); } @@ -53,7 +53,7 @@ class GradeData $param['uid'] = $uid; $param['method'] = 'app.passport.getPrivilege'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } diff --git a/library/LibModels/Wap/Home/GuangData.php b/library/LibModels/Wap/Home/GuangData.php index 1f65c42..ba4c8dd 100644 --- a/library/LibModels/Wap/Home/GuangData.php +++ b/library/LibModels/Wap/Home/GuangData.php @@ -29,7 +29,7 @@ class GuangData $param['limit'] = $limit; $param['yh_channel'] = $yh_channel; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(Yohobuy::SERVICE_URL . self::GUANG_URI . 'getUserFavArticleList', $param); + return Yohobuy::post(SERVICE_URL . self::GUANG_URI . 'getUserFavArticleList', $param); } } diff --git a/library/LibModels/Wap/Home/HelpData.php b/library/LibModels/Wap/Home/HelpData.php index 8762605..b25eec7 100644 --- a/library/LibModels/Wap/Home/HelpData.php +++ b/library/LibModels/Wap/Home/HelpData.php @@ -23,7 +23,7 @@ class HelpData $param['method'] = 'app.help.li'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /* @@ -38,7 +38,7 @@ class HelpData $param['code'] = $code; $param['return_type'] = 'html'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(Yohobuy::API_OLD, $param, true); + return Yohobuy::post(API_OLD, $param, true); } } diff --git a/library/LibModels/Wap/Home/IndexData.php b/library/LibModels/Wap/Home/IndexData.php index 195dcac..04ba8cb 100644 --- a/library/LibModels/Wap/Home/IndexData.php +++ b/library/LibModels/Wap/Home/IndexData.php @@ -30,7 +30,7 @@ class IndexData $param['content_code'] = $contentCode; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::SERVICE_URL . 'operations/api/v5/resource/get', $param); + return Yohobuy::get(SERVICE_URL . 'operations/api/v5/resource/get', $param); } /** @@ -45,7 +45,7 @@ class IndexData $param['method'] = 'app.cover.getCoverStart'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -72,7 +72,7 @@ class IndexData $param['page'] = $page; $param['limit'] = $limit; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::SERVICE_URL . 'operations/api/v5/resource/home', $param, false, false, 2); + return Yohobuy::get(SERVICE_URL . 'operations/api/v5/resource/home', $param, false, false, 2); } /** @@ -85,7 +85,7 @@ class IndexData $param = Yohobuy::param(); $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::SERVICE_URL . 'operations/api/v5/entrance/getEntrance', $param); + return Yohobuy::get(SERVICE_URL . 'operations/api/v5/entrance/getEntrance', $param); } } diff --git a/library/LibModels/Wap/Home/OnlineData.php b/library/LibModels/Wap/Home/OnlineData.php index 06476ef..a28d44b 100644 --- a/library/LibModels/Wap/Home/OnlineData.php +++ b/library/LibModels/Wap/Home/OnlineData.php @@ -28,7 +28,7 @@ class OnlineData $params = Yohobuy::param(); $params['client_secret'] = Sign::getSign($params); - return Yohobuy::get(Yohobuy::SERVICE_URL . self::ONLINE_URI . 'getCategory', $params, 3600); + return Yohobuy::get(SERVICE_URL . self::ONLINE_URI . 'getCategory', $params, 3600); } /* @@ -42,7 +42,7 @@ class OnlineData $params['category_id'] = $cateId; $params['client_secret'] = Sign::getSign($params); - return Yohobuy::get(Yohobuy::SERVICE_URL . self::ONLINE_URI . 'getHelp', $params, 3600); + return Yohobuy::get(SERVICE_URL . self::ONLINE_URI . 'getHelp', $params, 3600); } } diff --git a/library/LibModels/Wap/Home/OrderData.php b/library/LibModels/Wap/Home/OrderData.php index 6d4ea94..c44780d 100644 --- a/library/LibModels/Wap/Home/OrderData.php +++ b/library/LibModels/Wap/Home/OrderData.php @@ -28,7 +28,7 @@ class OrderData $param['yh_channel'] = $channel; $param['client_secret'] = Sign::getSign($param); //调用接口获得数据 - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /* @@ -46,7 +46,7 @@ class OrderData $param['method'] = 'app.SpaceOrders.close'; $param['client_secret'] = Sign::getSign($param); //调用接口获得数据 - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /* @@ -64,7 +64,7 @@ class OrderData $param['method'] = 'app.SpaceOrders.delOrderByCode'; $param['client_secret'] = Sign::getSign($param); //调用接口删除订单 - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -84,7 +84,7 @@ class OrderData $param['session_key'] = $sessionKey; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /* @@ -104,7 +104,7 @@ class OrderData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); //调用接口获得数据 - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /* @@ -120,7 +120,7 @@ class OrderData $param['yh_channel'] = $yh_channel; $param['client_secret'] = Sign::getSign($param); //调用接口获得数据 - return Yohobuy::get(Yohobuy::SERVICE_URL . '/operations/api/v5/resource/get', $param); + return Yohobuy::get(SERVICE_URL . '/operations/api/v5/resource/get', $param); } /* @@ -138,7 +138,7 @@ class OrderData $param['yh_channel'] = $yh_channel; $param['client_secret'] = Sign::getSign($param); //调用接口获得数据 - return Yohobuy::get(Yohobuy::SERVICE_URL . '/operations/api/v5/resource/get', $param); + return Yohobuy::get(SERVICE_URL . '/operations/api/v5/resource/get', $param); } /** @@ -160,7 +160,7 @@ class OrderData $param['client_secret'] = Sign::getSign($param); // 调用接口获得数据 - return Yohobuy::post(Yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } } diff --git a/library/LibModels/Wap/Home/SideData.php b/library/LibModels/Wap/Home/SideData.php index 9ed6540..6704727 100644 --- a/library/LibModels/Wap/Home/SideData.php +++ b/library/LibModels/Wap/Home/SideData.php @@ -33,8 +33,8 @@ class SideData // $query = Yohobuy::httpBuildQuery('', $param); // // $urlList = array(); -// $urlList['getEntrance'] = Yohobuy::SERVICE_URL . self::URI_LEFTNAV_ENTRANCE . $query; -// $urlList['getCategory'] = Yohobuy::SERVICE_URL . self::URI_LEFTNAV_CATEGORY . $query; +// $urlList['getEntrance'] = SERVICE_URL . self::URI_LEFTNAV_ENTRANCE . $query; +// $urlList['getCategory'] = SERVICE_URL . self::URI_LEFTNAV_CATEGORY . $query; // // return Yohobuy::getMulti($urlList); @@ -43,7 +43,7 @@ class SideData $param['private_key'] = 'fd4ad5fcfa0de589ef238c0e7331b585'; // 调用Android的private_key不然会有参数验证错误的bug $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::SERVICE_URL . self::URI_LEFTNAV_CATEGORY, $param); + return Yohobuy::get(SERVICE_URL . self::URI_LEFTNAV_CATEGORY, $param); } } diff --git a/library/LibModels/Wap/Home/UserData.php b/library/LibModels/Wap/Home/UserData.php index ddcdda2..00be074 100644 --- a/library/LibModels/Wap/Home/UserData.php +++ b/library/LibModels/Wap/Home/UserData.php @@ -31,7 +31,7 @@ class UserData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param, $cache); // 缓存1小时 + return Yohobuy::get(API_URL, $param, $cache); // 缓存1小时 } /** @@ -45,7 +45,7 @@ class UserData $param['method'] = 'app.resources.getNotices'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -62,7 +62,7 @@ class UserData $param['udid'] = $udid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -78,7 +78,7 @@ class UserData $param['yh_channel'] = $yh_channel; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -100,7 +100,7 @@ class UserData $param['limit'] = $limit; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -120,7 +120,7 @@ class UserData $param['limit'] = $limit; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -142,7 +142,7 @@ class UserData $param['limit'] = $limit; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -161,7 +161,7 @@ class UserData $param['fav_id'] = $fav_id; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -183,7 +183,7 @@ class UserData $param['limit'] = $limit; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -201,7 +201,7 @@ class UserData $param['skn'] = $skn; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -217,14 +217,14 @@ class UserData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param);*/ + return Yohobuy::get(API_URL, $param);*/ $param = Yohobuy::param(); $param['method'] = 'app.yoho.yohocoin'; $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -245,7 +245,7 @@ class UserData $param['limit'] = $limit; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::$type(Yohobuy::API_URL, $param); + return Yohobuy::$type(API_URL, $param); } /** @@ -268,7 +268,7 @@ class UserData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -284,7 +284,7 @@ class UserData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -300,7 +300,7 @@ class UserData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -336,7 +336,7 @@ class UserData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -354,7 +354,7 @@ class UserData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -372,7 +372,7 @@ class UserData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -391,7 +391,7 @@ class UserData $param['limit'] = $limit; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::SERVICE_URL . 'suggest/api/v1/suggest/getList', $param); + return Yohobuy::get(SERVICE_URL . 'suggest/api/v1/suggest/getList', $param); } /** @@ -412,7 +412,7 @@ class UserData $param['suggest_id'] = $suggest_id; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::SERVICE_URL . 'suggest/api/v1/suggest/is_reliable', $param); + return Yohobuy::get(SERVICE_URL . 'suggest/api/v1/suggest/is_reliable', $param); } /** @@ -435,7 +435,7 @@ class UserData $param['suggest_type'] = $suggest_type; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::SERVICE_URL . 'suggest/api/v1/suggest/saveSuggest', $param); + return Yohobuy::get(SERVICE_URL . 'suggest/api/v1/suggest/saveSuggest', $param); } /** @@ -455,7 +455,7 @@ class UserData $param['method'] = 'app.inbox.getlist'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -468,7 +468,7 @@ class UserData $param = Yohobuy::param(); $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::SERVICE_URL . 'operations/api/v1/help/getCategory', $param); + return Yohobuy::get(SERVICE_URL . 'operations/api/v1/help/getCategory', $param); } /** @@ -482,7 +482,7 @@ class UserData $param['method'] = 'app.help.li'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -499,7 +499,7 @@ class UserData $param['code'] = $code; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param, true, true); + return Yohobuy::get(API_URL, $param, true, true); } } diff --git a/library/LibModels/Wap/Passport/BackData.php b/library/LibModels/Wap/Passport/BackData.php index 82cc75c..4ef9a5c 100644 --- a/library/LibModels/Wap/Passport/BackData.php +++ b/library/LibModels/Wap/Passport/BackData.php @@ -30,7 +30,7 @@ class BackData $param['method'] = 'app.passport.getArea'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -48,7 +48,7 @@ class BackData $param['method'] = 'app.register.backpwdByEmail'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -65,7 +65,7 @@ class BackData $param['code'] = $code; // 默认返回的不是json类型数据,是html - return Yohobuy::get(Yohobuy::YOHOBUY_URL . 'passport/back/update', $param, true); + return Yohobuy::get(YOHOBUY_URL . 'passport/back/update', $param, true); } /** @@ -85,7 +85,7 @@ class BackData $param['method'] = 'app.register.sendBackpwdCodeToMobile'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -107,7 +107,7 @@ class BackData $param['method'] = 'app.register.validBackpwdCode'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -130,7 +130,7 @@ class BackData $param['method'] = 'app.register.changepwdByMobileCode'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } diff --git a/library/LibModels/Wap/Passport/BindData.php b/library/LibModels/Wap/Passport/BindData.php index 93a355a..59dddf9 100644 --- a/library/LibModels/Wap/Passport/BindData.php +++ b/library/LibModels/Wap/Passport/BindData.php @@ -36,7 +36,7 @@ class BindData $param['source_type'] = $sourceType; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -52,7 +52,7 @@ class BindData $param['area'] = $area; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -68,7 +68,7 @@ class BindData $param['area'] = $area; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -98,7 +98,7 @@ class BindData } $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -114,7 +114,7 @@ class BindData $param['area'] = $area; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -135,7 +135,7 @@ class BindData $param['area'] = $area; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } diff --git a/library/LibModels/Wap/Passport/LoginData.php b/library/LibModels/Wap/Passport/LoginData.php index c475c4c..404d935 100644 --- a/library/LibModels/Wap/Passport/LoginData.php +++ b/library/LibModels/Wap/Passport/LoginData.php @@ -39,7 +39,7 @@ class LoginData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(Yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } /** @@ -55,7 +55,7 @@ class LoginData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -81,7 +81,7 @@ class LoginData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } diff --git a/library/LibModels/Wap/Passport/RegData.php b/library/LibModels/Wap/Passport/RegData.php index a13d9c9..82a4673 100644 --- a/library/LibModels/Wap/Passport/RegData.php +++ b/library/LibModels/Wap/Passport/RegData.php @@ -31,7 +31,7 @@ class RegData // $param = Yohobuy::param(); // $param['method'] = 'app.passport.getArea'; // $param['client_secret'] = Sign::getSign($param); -// $data = Yohobuy::get(Yohobuy::API_URL, $param); +// $data = Yohobuy::get(API_URL, $param); // $result = array(); // if (!empty($data['data'])) { // $build = array(); @@ -127,7 +127,7 @@ class RegData $param['mobile'] = $mobile; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(Yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } /** @@ -147,7 +147,7 @@ class RegData $param['code'] = $code; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(Yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } /** @@ -167,7 +167,7 @@ class RegData $param['password'] = $password; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(Yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } } diff --git a/library/LibModels/Wap/Product/BrandData.php b/library/LibModels/Wap/Product/BrandData.php index 23ddedd..0ee165a 100644 --- a/library/LibModels/Wap/Product/BrandData.php +++ b/library/LibModels/Wap/Product/BrandData.php @@ -34,7 +34,7 @@ class BrandData $param['type'] = $isBrand ? 'brand' : 'product'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(Yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } /** @@ -54,7 +54,7 @@ class BrandData $param['type'] = $isBrand ? 'brand' : 'product'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(Yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } } diff --git a/library/LibModels/Wap/Product/DetailData.php b/library/LibModels/Wap/Product/DetailData.php index a81326b..eaf2783 100644 --- a/library/LibModels/Wap/Product/DetailData.php +++ b/library/LibModels/Wap/Product/DetailData.php @@ -45,7 +45,7 @@ class DetailData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -68,7 +68,7 @@ class DetailData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -94,7 +94,7 @@ class DetailData $param['limit'] = $pageSize; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -108,7 +108,7 @@ class DetailData $param['method'] = 'app.consult.common'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -128,7 +128,7 @@ class DetailData $param['limit'] = $pageSize; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -148,7 +148,7 @@ class DetailData $param['brandId'] = $brandId; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param, 3600); // 缓存1小时 + return Yohobuy::get(API_URL, $param, 3600); // 缓存1小时 } /** @@ -167,7 +167,7 @@ class DetailData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(Yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } /** @@ -183,7 +183,7 @@ class DetailData $param['product_skn'] = $productSkn; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -201,7 +201,7 @@ class DetailData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -219,7 +219,7 @@ class DetailData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -239,7 +239,7 @@ class DetailData } $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } diff --git a/library/LibModels/Wap/Product/ListData.php b/library/LibModels/Wap/Product/ListData.php index c669d35..caa35ca 100644 --- a/library/LibModels/Wap/Product/ListData.php +++ b/library/LibModels/Wap/Product/ListData.php @@ -35,7 +35,7 @@ class ListData // $param['order'] = 's_t_desc'; // $param['client_secret'] = Sign::getSign($param); // -// return Yohobuy::get(Yohobuy::API_URL, $param, 3600); // 有缓存1小时 +// return Yohobuy::get(API_URL, $param, 3600); // 有缓存1小时 $condition = array(); $condition['query'] = implode(' ', $skns); @@ -53,7 +53,7 @@ class ListData */ public static function productInfoBySkcs($skcs) { - return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URI_PRODUCT, 'getLessInfoByProductSkcs', array(array('productSkcs' => $skcs))); + return Yohobuy::yarClient(SERVICE_URL . self::URI_PRODUCT, 'getLessInfoByProductSkcs', array(array('productSkcs' => $skcs))); } } diff --git a/library/LibModels/Wap/Product/NewsaleData.php b/library/LibModels/Wap/Product/NewsaleData.php index 9043642..8891511 100644 --- a/library/LibModels/Wap/Product/NewsaleData.php +++ b/library/LibModels/Wap/Product/NewsaleData.php @@ -30,7 +30,7 @@ class NewsaleData $param['content_code'] = $contentCode; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::SERVICE_URL . 'operations/api/v5/resource/get', $param); + return Yohobuy::get(SERVICE_URL . 'operations/api/v5/resource/get', $param); } /** @@ -56,7 +56,7 @@ class NewsaleData $param['dayLimit'] = 1; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -108,7 +108,7 @@ class NewsaleData $param = array_merge($param, $queriedParams); $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param, 600); // 缓存10分钟 + return Yohobuy::get(API_URL, $param, 600); // 缓存10分钟 } /** @@ -132,7 +132,7 @@ class NewsaleData $param['p_d'] = '0.1,0.9'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -175,7 +175,7 @@ class NewsaleData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -202,7 +202,7 @@ class NewsaleData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } diff --git a/library/LibModels/Wap/Product/RecomData.php b/library/LibModels/Wap/Product/RecomData.php index 7da92f6..2b59029 100644 --- a/library/LibModels/Wap/Product/RecomData.php +++ b/library/LibModels/Wap/Product/RecomData.php @@ -36,7 +36,7 @@ class RecomData $param['yh_channel'] = $channel; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param, 3600); + return Yohobuy::get(API_URL, $param, 3600); } /** @@ -55,7 +55,7 @@ class RecomData $param['yh_channel'] = '3'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param, 3600); + return Yohobuy::get(API_URL, $param, 3600); } /** @@ -74,7 +74,7 @@ class RecomData // $param['yh_channel'] = '4'; // $param['client_secret'] = Sign::getSign($param); // -// return Yohobuy::get(Yohobuy::API_URL, $param); +// return Yohobuy::get(API_URL, $param); // 人气单品 $param = array( array( @@ -86,7 +86,7 @@ class RecomData ), 'N', false ); - $result['top'] = Yohobuy::yarClient(Yohobuy::SERVICE_URL . '/search/service/v1/product', 'search', $param, 3600); // 缓存1小时 + $result['top'] = Yohobuy::yarClient(SERVICE_URL . '/search/service/v1/product', 'search', $param, 3600); // 缓存1小时 // 新品到着 $param = array( array('status' => 1, 'stocknumber' => 1, 'gender' => ''), @@ -99,7 +99,7 @@ class RecomData ), false ); - $result['new'] = Yohobuy::yarClient(Yohobuy::SERVICE_URL . '/search/service/v1/product', 'searchBySortList', $param, 3600); // 缓存1小时 + $result['new'] = Yohobuy::yarClient(SERVICE_URL . '/search/service/v1/product', 'searchBySortList', $param, 3600); // 缓存1小时 return $result; } diff --git a/library/LibModels/Wap/Product/SearchData.php b/library/LibModels/Wap/Product/SearchData.php index e47afaa..9d23ac5 100644 --- a/library/LibModels/Wap/Product/SearchData.php +++ b/library/LibModels/Wap/Product/SearchData.php @@ -56,7 +56,7 @@ class SearchData $param['method'] = 'app.search.fuzzy'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -99,7 +99,7 @@ class SearchData } $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** diff --git a/library/LibModels/Web/Guang/InfoData.php b/library/LibModels/Web/Guang/InfoData.php index 8c79d7b..b4a0d09 100644 --- a/library/LibModels/Web/Guang/InfoData.php +++ b/library/LibModels/Web/Guang/InfoData.php @@ -13,58 +13,58 @@ class InfoData { //作者信息 if ($type == 'author') { - return Yohobuy::SERVICE_URL.'guang/service/v1/author/getAuthor'; + return SERVICE_URL.'guang/service/v1/author/getAuthor'; } //文章评论列表 elseif($type == 'commentList') { - return Yohobuy::SERVICE_URL.'guang/api/v1/comments/getList'; + return SERVICE_URL.'guang/api/v1/comments/getList'; } //热门标签 elseif ($type == 'getTagTop') { - return Yohobuy::SERVICE_URL.'guang/api/v2/article/getTagTop'; + return SERVICE_URL.'guang/api/v2/article/getTagTop'; } //精彩推荐 elseif ($type == 'getArticleByViewsNum') { - return Yohobuy::SERVICE_URL.'guang/api/v2/article/getArticleByViewsNum'; + return SERVICE_URL.'guang/api/v2/article/getArticleByViewsNum'; } elseif ($type == 'getBrand'){ - return Yohobuy::SERVICE_URL.'guang/service/v2/article/getBrand'; + return SERVICE_URL.'guang/service/v2/article/getBrand'; } //相关文章 elseif ($type == 'getOtherArticle') { - return Yohobuy::SERVICE_URL.'guang/service/v2/article/getOtherArticle'; + return SERVICE_URL.'guang/service/v2/article/getOtherArticle'; } //文章标题等相关信息 elseif ($type == 'getArticle') { - return Yohobuy::SERVICE_URL.'guang/service/v2/article/getArticle'; + return SERVICE_URL.'guang/service/v2/article/getArticle'; } //文章详情 elseif ($type == 'getArticleContent') { - return Yohobuy::SERVICE_URL.'guang/service/v2/article/getArticleContent'; + return SERVICE_URL.'guang/service/v2/article/getArticleContent'; } //基本信息 elseif ($type == 'getArticleBaseInfo') { - return Yohobuy::SERVICE_URL.'guang/api/v1/article/getArticleBaseInfo'; + return SERVICE_URL.'guang/api/v1/article/getArticleBaseInfo'; } //添加评论 elseif ($type == 'addComment') { - return Yohobuy::SERVICE_URL.'guang/api/v1/comments/add'; + return SERVICE_URL.'guang/api/v1/comments/add'; } //点赞 elseif ($type == 'setPraise') { - return Yohobuy::SERVICE_URL.'guang/api/v2/praise/setPraise'; + return SERVICE_URL.'guang/api/v2/praise/setPraise'; } //取消赞 elseif ($type == 'cancelPraise') { - return Yohobuy::SERVICE_URL.'guang/api/v2/praise/cancel'; + return SERVICE_URL.'guang/api/v2/praise/cancel'; } //收藏 elseif ($type == 'setFavorite') { - return Yohobuy::SERVICE_URL.'guang/api/v1/favorite/setFavorite'; + return SERVICE_URL.'guang/api/v1/favorite/setFavorite'; } //取消收藏 elseif ($type == 'cancelFavorite') { - return Yohobuy::SERVICE_URL.'guang/api/v1/favorite/cancelFavorite'; + return SERVICE_URL.'guang/api/v1/favorite/cancelFavorite'; } } diff --git a/library/LibModels/Web/Guang/ListData.php b/library/LibModels/Web/Guang/ListData.php index 0b3637a..814dce6 100644 --- a/library/LibModels/Web/Guang/ListData.php +++ b/library/LibModels/Web/Guang/ListData.php @@ -32,7 +32,7 @@ class ListData $param = Yohobuy::param(); $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::SERVICE_URL . self::URI_CATEGORY, $param, 3600); // 有缓存1小时 + return Yohobuy::get(SERVICE_URL . self::URI_CATEGORY, $param, 3600); // 有缓存1小时 } /** @@ -74,7 +74,7 @@ class ListData $cache = $useCache ? 300 : false; - return Yohobuy::get(Yohobuy::SERVICE_URL . self::URI_ARTICLELIST, $param, $cache); // 缓存5分钟 + return Yohobuy::get(SERVICE_URL . self::URI_ARTICLELIST, $param, $cache); // 缓存5分钟 } /** @@ -101,7 +101,7 @@ class ListData $param['udid'] = $udid; $param['client_secret'] = Sign::getSign($param); - $urlList[$value['id']] = Yohobuy::httpBuildQuery(Yohobuy::SERVICE_URL . self::URI_ARTICLELIST, $param); + $urlList[$value['id']] = Yohobuy::httpBuildQuery(SERVICE_URL . self::URI_ARTICLELIST, $param); } return Yohobuy::getMulti($urlList); @@ -117,14 +117,14 @@ class ListData { $result = array(); if (is_numeric($id)) { -// $result = Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URI_AUTHOR, 'getAuthor', array($id), 3600); // 缓存1小时 +// $result = Yohobuy::yarClient(SERVICE_URL . self::URI_AUTHOR, 'getAuthor', array($id), 3600); // 缓存1小时 $param = Yohobuy::param(); $param['author_id'] = $id; $param['client_type'] = "web"; $param['private_key'] = Yohobuy::$privateKeyList['web']; $param['client_secret'] = Sign::getSign($param); - $result = Yohobuy::get(Yohobuy::SERVICE_URL . self::URI_GETAUTHOR, $param); // 缓存1小时 + $result = Yohobuy::get(SERVICE_URL . self::URI_GETAUTHOR, $param); // 缓存1小时 } return $result; } @@ -145,6 +145,6 @@ class ListData $param['private_key'] = Yohobuy::$privateKeyList['web']; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::SERVICE_URL . 'guang/service/v2/article/getArticleByBrand', $param); + return Yohobuy::get(SERVICE_URL . 'guang/service/v2/article/getArticleByBrand', $param); } } diff --git a/library/LibModels/Web/Guang/PlusstarData.php b/library/LibModels/Web/Guang/PlusstarData.php index 4a83df4..463138f 100644 --- a/library/LibModels/Web/Guang/PlusstarData.php +++ b/library/LibModels/Web/Guang/PlusstarData.php @@ -22,7 +22,7 @@ class PlusstarData { $param['client_type'] = $type; $param['private_key'] = Yohobuy::$privateKeyList[$type]; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::SERVICE_URL . self::URI_BRANDLIST, $param); + return Yohobuy::get(SERVICE_URL . self::URI_BRANDLIST, $param); } } \ No newline at end of file diff --git a/library/LibModels/Web/Home/AccountData.php b/library/LibModels/Web/Home/AccountData.php index 34b8a73..aab3750 100644 --- a/library/LibModels/Web/Home/AccountData.php +++ b/library/LibModels/Web/Home/AccountData.php @@ -20,7 +20,7 @@ class AccountData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -37,7 +37,7 @@ class AccountData $param['password'] = $password; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -54,7 +54,7 @@ class AccountData $param['newPassword'] = $newPwd; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -73,7 +73,7 @@ class AccountData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -92,7 +92,7 @@ class AccountData $param['code'] = $code; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -110,7 +110,7 @@ class AccountData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -129,7 +129,7 @@ class AccountData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -146,7 +146,7 @@ class AccountData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -163,7 +163,7 @@ class AccountData $param['callback'] = $callback; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -179,7 +179,7 @@ class AccountData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -191,7 +191,7 @@ class AccountData $param['method'] = 'web.passport.checkCodeValid'; $param['code'] = $code; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -205,7 +205,7 @@ class AccountData $param['method'] = 'web.passport.changeVerifyEmail'; $param['code'] = $code; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } diff --git a/library/LibModels/Web/Home/AddressData.php b/library/LibModels/Web/Home/AddressData.php index 54808ea..c85f1d5 100644 --- a/library/LibModels/Web/Home/AddressData.php +++ b/library/LibModels/Web/Home/AddressData.php @@ -19,7 +19,7 @@ class AddressData $param['id'] = $parentId; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -37,7 +37,7 @@ class AddressData $param['limit'] = $limit; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } @@ -76,7 +76,7 @@ class AddressData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -94,7 +94,7 @@ class AddressData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -112,7 +112,7 @@ class AddressData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } diff --git a/library/LibModels/Web/Home/CartData.php b/library/LibModels/Web/Home/CartData.php index 5082de3..70c010f 100644 --- a/library/LibModels/Web/Home/CartData.php +++ b/library/LibModels/Web/Home/CartData.php @@ -48,7 +48,7 @@ class CartData } $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -73,7 +73,7 @@ class CartData } $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -95,7 +95,7 @@ class CartData } $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -120,7 +120,7 @@ class CartData } $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -139,7 +139,7 @@ class CartData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -158,7 +158,7 @@ class CartData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -176,7 +176,7 @@ class CartData $param['promotion_id'] = $promotionId; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -211,7 +211,7 @@ class CartData } $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -235,7 +235,7 @@ class CartData } $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -255,7 +255,7 @@ class CartData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -295,7 +295,7 @@ class CartData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -313,7 +313,7 @@ class CartData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -332,7 +332,7 @@ class CartData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -348,7 +348,7 @@ class CartData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -429,7 +429,9 @@ class CartData } $param['remark'] = $remark; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param, false, false, 10, $userAgent); + + return Yohobuy::get(API_URL, $param, false, false, 10, $userAgent); + } /** @@ -451,7 +453,7 @@ class CartData } $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -469,7 +471,7 @@ class CartData $param['page'] = $page; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -491,7 +493,7 @@ class CartData $param['limit'] = $limit; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -529,6 +531,10 @@ class CartData $param['orderCode'] = $orderCode; $param['payment'] = $payment; $param['client_secret'] = Sign::getSign($param); +<<<<<<< HEAD return Yohobuy::get(Yohobuy::API_URL, $param); +======= + return Yohobuy::get(API_URL, $param); +>>>>>>> master } } diff --git a/library/LibModels/Web/Home/CommentData.php b/library/LibModels/Web/Home/CommentData.php index e563969..2864e8f 100644 --- a/library/LibModels/Web/Home/CommentData.php +++ b/library/LibModels/Web/Home/CommentData.php @@ -22,7 +22,7 @@ class CommentData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(Yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } @@ -47,7 +47,7 @@ class CommentData $param['parameters'] = json_encode($parameters); $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(Yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } } \ No newline at end of file diff --git a/library/LibModels/Web/Home/ComplaintsData.php b/library/LibModels/Web/Home/ComplaintsData.php index 7cb5dcd..7549f19 100644 --- a/library/LibModels/Web/Home/ComplaintsData.php +++ b/library/LibModels/Web/Home/ComplaintsData.php @@ -25,7 +25,7 @@ class ComplaintsData $param['client_type'] = $clientType; $param['private_key'] = Yohobuy::$privateKeyList[$clientType]; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -46,7 +46,7 @@ class ComplaintsData $param['client_type'] = $clientType; $param['private_key'] = Yohobuy::$privateKeyList[$clientType]; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -63,7 +63,7 @@ class ComplaintsData $param['client_type'] = $clientType; $param['private_key'] = Yohobuy::$privateKeyList[$clientType]; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } diff --git a/library/LibModels/Web/Home/ConsultData.php b/library/LibModels/Web/Home/ConsultData.php index f3c388f..291cdda 100644 --- a/library/LibModels/Web/Home/ConsultData.php +++ b/library/LibModels/Web/Home/ConsultData.php @@ -22,7 +22,7 @@ class ConsultData $param['page'] = $page; $param['limit'] = $limit; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } diff --git a/library/LibModels/Web/Home/CouponData.php b/library/LibModels/Web/Home/CouponData.php index 7b55aef..fd54e97 100644 --- a/library/LibModels/Web/Home/CouponData.php +++ b/library/LibModels/Web/Home/CouponData.php @@ -22,7 +22,7 @@ class CouponData $param['uid'] = $uid; } $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL , $param); + return Yohobuy::get(API_URL , $param); } /** @@ -38,7 +38,7 @@ class CouponData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } diff --git a/library/LibModels/Web/Home/CurrencyData.php b/library/LibModels/Web/Home/CurrencyData.php index 3b756f6..79fd932 100644 --- a/library/LibModels/Web/Home/CurrencyData.php +++ b/library/LibModels/Web/Home/CurrencyData.php @@ -23,7 +23,7 @@ class CurrencyData $param['limit'] = 15; $param = array_merge($param, $condition); $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -37,7 +37,7 @@ class CurrencyData $param['method'] = 'app.yoho.yohocoin'; $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } diff --git a/library/LibModels/Web/Home/HelpData.php b/library/LibModels/Web/Home/HelpData.php index eb2b7ed..899972f 100644 --- a/library/LibModels/Web/Home/HelpData.php +++ b/library/LibModels/Web/Home/HelpData.php @@ -19,7 +19,7 @@ class HelpData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -41,7 +41,7 @@ class HelpData } $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -60,7 +60,7 @@ class HelpData } $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } diff --git a/library/LibModels/Web/Home/IndexData.php b/library/LibModels/Web/Home/IndexData.php index f5f151a..5af4c34 100644 --- a/library/LibModels/Web/Home/IndexData.php +++ b/library/LibModels/Web/Home/IndexData.php @@ -28,7 +28,7 @@ class IndexData $params['client_type'] = 'web'; // 调用web手机网站的 $params['private_key'] = '0ed29744ed318fd28d2c07985d3ba633'; // 调用Android的private_key不然会有参数验证错误的bug $params['client_secret'] = Sign::getSign($params); - return Yohobuy::get(Yohobuy::SERVICE_URL . self::URI_LEFTNAV_CATEGORY, $params); + return Yohobuy::get(SERVICE_URL . self::URI_LEFTNAV_CATEGORY, $params); } /** @@ -48,9 +48,9 @@ class IndexData $params['private_key'] = Yohobuy::$privateKeyList[$client_type]; $params['client_secret'] = Sign::getSign($params); if($isOnlyUrl) { - return Yohobuy::httpBuildQuery(Yohobuy::SERVICE_URL . self::URL_OPERATIONS_RESOURCE_GET, $params); + return Yohobuy::httpBuildQuery(SERVICE_URL . self::URL_OPERATIONS_RESOURCE_GET, $params); } - return Yohobuy::get(Yohobuy::SERVICE_URL . self::URL_OPERATIONS_RESOURCE_GET, $params, false, false, 2); + return Yohobuy::get(SERVICE_URL . self::URL_OPERATIONS_RESOURCE_GET, $params, false, false, 2); } /** @@ -71,7 +71,7 @@ class IndexData $param['client_type'] = 'web'; $param['private_key'] = Yohobuy::$privateKeyList['web']; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -95,7 +95,7 @@ class IndexData $param['client_type'] = 'web'; $param['private_key'] = Yohobuy::$privateKeyList['web']; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -112,7 +112,7 @@ class IndexData $param['udid'] = $udid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -127,7 +127,7 @@ class IndexData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -142,7 +142,7 @@ class IndexData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } diff --git a/library/LibModels/Web/Home/MessageData.php b/library/LibModels/Web/Home/MessageData.php index 26ecd18..0b89716 100644 --- a/library/LibModels/Web/Home/MessageData.php +++ b/library/LibModels/Web/Home/MessageData.php @@ -24,7 +24,7 @@ class MessageData $param['size'] = $size; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -41,7 +41,7 @@ class MessageData $param['id'] = $id; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -57,7 +57,7 @@ class MessageData $param['ids'] = $ids; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -72,7 +72,7 @@ class MessageData $param['is_read'] = 'N'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -88,7 +88,7 @@ class MessageData $param['couponType'] = 4; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -105,7 +105,7 @@ class MessageData $param['couponId'] = $couponId; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } diff --git a/library/LibModels/Web/Home/OrderData.php b/library/LibModels/Web/Home/OrderData.php old mode 100644 new mode 100755 index 30215d8..c63fd29 --- a/library/LibModels/Web/Home/OrderData.php +++ b/library/LibModels/Web/Home/OrderData.php @@ -25,7 +25,7 @@ class OrderData $param['page'] = $page; $param['limit'] = $limit; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -41,7 +41,7 @@ class OrderData $param['uid'] = $uid; $param['order_code'] = $orderCode; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -62,7 +62,7 @@ class OrderData $param['reasons'] = $reason; } $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -78,7 +78,7 @@ class OrderData $param['uid'] = $uid; $param['order_code'] = $orderCode; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -92,7 +92,7 @@ class OrderData $param['method'] = 'app.SpaceOrders.getQrByOrderCode'; $param['order_code'] = $orderCode; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -111,7 +111,7 @@ class OrderData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); //调用接口获得数据 - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -128,7 +128,7 @@ class OrderData $param['page'] = $page; $param['limit'] = $limit; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -150,7 +150,7 @@ class OrderData $param['client_secret'] = Sign::getSign($param); // 调用接口获得数据 - return Yohobuy::post(Yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } /** @@ -165,7 +165,7 @@ class OrderData $param['client_secret'] = Sign::getSign($param); // 调用接口获得数据 - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -191,7 +191,7 @@ class OrderData $param['client_secret'] = Sign::getSign($param); // 调用接口获得数据 - return Yohobuy::post(Yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } @@ -212,9 +212,27 @@ class OrderData $param['session_key'] = $sessionKey; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } - + + /* + * 删除订单 + */ + + public static function deleteOrderData($orderCode, $uid, $gender, $channel) + { + //构建必传参数 + $param = Yohobuy::param(); + $param['order_code'] = $orderCode; + $param['uid'] = $uid; + $param['gender'] = $gender; + $param['yh_channel'] = $channel; + $param['method'] = 'app.SpaceOrders.delOrderByCode'; + $param['client_secret'] = Sign::getSign($param); + //调用接口删除订单 + return Yohobuy::get(API_URL, $param); + } + /** 再次购买 * @param type $uid * @param type $orderCode @@ -228,6 +246,7 @@ class OrderData $param['order_code'] = $orderCode; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } + } diff --git a/library/LibModels/Web/Home/RedenvelopesData.php b/library/LibModels/Web/Home/RedenvelopesData.php index 4669441..f5493fb 100644 --- a/library/LibModels/Web/Home/RedenvelopesData.php +++ b/library/LibModels/Web/Home/RedenvelopesData.php @@ -17,7 +17,7 @@ class RedenvelopesData $param['method'] = 'app.yoho.redpacketList'; $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -30,6 +30,6 @@ class RedenvelopesData $param['method'] = 'app.yoho.redpacketInfo'; $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } diff --git a/library/LibModels/Web/Home/ReturnsData.php b/library/LibModels/Web/Home/ReturnsData.php old mode 100644 new mode 100755 index a79641f..258c65b --- a/library/LibModels/Web/Home/ReturnsData.php +++ b/library/LibModels/Web/Home/ReturnsData.php @@ -25,7 +25,7 @@ class ReturnsData $param['page'] = $page; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } @@ -44,7 +44,7 @@ class ReturnsData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } /** @@ -62,7 +62,7 @@ class ReturnsData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } @@ -81,7 +81,7 @@ class ReturnsData $param['id'] = $id; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } @@ -100,7 +100,7 @@ class ReturnsData $param['id'] = $id; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } @@ -115,7 +115,7 @@ class ReturnsData $param['method'] = 'app.express.getExpressCompany'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } @@ -141,7 +141,7 @@ class ReturnsData $param['express_company'] = $expressCompany; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } @@ -160,7 +160,7 @@ class ReturnsData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } @@ -179,7 +179,7 @@ class ReturnsData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } /** @@ -201,7 +201,7 @@ class ReturnsData $param['payment'] = json_encode($payment); $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } /** @@ -233,7 +233,40 @@ class ReturnsData $param['delivery_tpye'] = $deliveryType; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); + } + + + /** + * 取消退货申请 + * @param $id + * @param $uid + * @return mixed + */ + public static function cancelRefund($id, $uid) + { + $param = Yohobuy::param(); + $param['method'] = 'app.refund.cancel'; + $param['id'] = $id; + $param['uid'] = $uid; + $param['client_secret'] = Sign::getSign($param); + return Yohobuy::post(API_URL, $param); + } + + /** + * 取消换货申请 + * @param $id + * @param $uid + * @return mixed + */ + public static function cancelChange($id, $uid) + { + $param = Yohobuy::param(); + $param['method'] = 'app.change.cancel'; + $param['id'] = $id; + $param['uid'] = $uid; + $param['client_secret'] = Sign::getSign($param); + return Yohobuy::post(API_URL, $param); } /** @@ -255,7 +288,7 @@ class ReturnsData $param['yh_channel'] = $yhChannel; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } @@ -272,7 +305,7 @@ class ReturnsData $param['product_skn'] = $productSkn; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } /** @@ -288,7 +321,7 @@ class ReturnsData $param['product_skn'] = $productSkn; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param); + return Yohobuy::httpBuildQuery(API_URL, $param); } /** @@ -316,6 +349,6 @@ class ReturnsData $param['type'] = $type; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(Yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } } \ No newline at end of file diff --git a/library/LibModels/Web/Home/UserData.php b/library/LibModels/Web/Home/UserData.php index 6a8cae0..7a54216 100644 --- a/library/LibModels/Web/Home/UserData.php +++ b/library/LibModels/Web/Home/UserData.php @@ -23,7 +23,7 @@ class UserData $param['mobile'] = $mobile; $param['area'] = $area; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -38,7 +38,7 @@ class UserData $param['method'] = 'app.passport.getProfileByEmail'; $param['email'] = $email; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -54,7 +54,7 @@ class UserData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -99,7 +99,7 @@ class UserData $param['birthday'] = $params['birthday']; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -115,7 +115,7 @@ class UserData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -142,7 +142,7 @@ class UserData $param['zip_code'] = $params['zipCode']; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -158,7 +158,7 @@ class UserData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -177,7 +177,7 @@ class UserData $param['dress'] = $params['dress']; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -192,7 +192,7 @@ class UserData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -209,7 +209,7 @@ class UserData $param['brand'] = $params['brand']; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -226,7 +226,7 @@ class UserData $param['udid'] = $udid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -252,7 +252,7 @@ class UserData $param['limit'] = $limit; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -274,7 +274,7 @@ class UserData $param['limit'] = $limit; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -294,7 +294,7 @@ class UserData $param['limit'] = $limit; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -316,7 +316,7 @@ class UserData $param['limit'] = $limit; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -335,7 +335,7 @@ class UserData $param['fav_id'] = $fav_id; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -357,7 +357,7 @@ class UserData $param['limit'] = $limit; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -375,7 +375,7 @@ class UserData $param['skn'] = $skn; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -391,14 +391,14 @@ class UserData // $param['uid'] = $uid; // $param['client_secret'] = Sign::getSign($param); // -// return Yohobuy::get(Yohobuy::API_URL, $param); +// return Yohobuy::get(API_URL, $param); $param = Yohobuy::param(); $param['method'] = 'app.yoho.yohocoin'; $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -419,7 +419,7 @@ class UserData $param['limit'] = $limit; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::$type(Yohobuy::API_URL, $param); + return Yohobuy::$type(API_URL, $param); } /** @@ -442,7 +442,7 @@ class UserData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -458,7 +458,7 @@ class UserData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -474,7 +474,7 @@ class UserData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -490,7 +490,7 @@ class UserData $param['id'] = $id; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -530,7 +530,7 @@ class UserData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -548,7 +548,7 @@ class UserData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -566,7 +566,7 @@ class UserData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -586,7 +586,7 @@ class UserData $param['method'] = 'app.inbox.getlist'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -607,7 +607,7 @@ class UserData $param['giftCardCode3'] = $giftCardCode3; $param['captchaCode'] = $captchaCode; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -624,7 +624,7 @@ class UserData $param['client_type'] = 'web'; $param['private_key'] = Yohobuy::$privateKeyList['web']; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -645,7 +645,7 @@ class UserData $param['page'] = $page; $param['limit'] = $limit; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } public static function passportGet($uid) @@ -654,7 +654,7 @@ class UserData $param['method'] = 'open.passport.get'; $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } diff --git a/library/LibModels/Web/Passport/BackData.php b/library/LibModels/Web/Passport/BackData.php index f121f4f..677f4a7 100644 --- a/library/LibModels/Web/Passport/BackData.php +++ b/library/LibModels/Web/Passport/BackData.php @@ -19,7 +19,7 @@ class BackData $param['method'] = 'app.passport.getArea'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -36,7 +36,7 @@ class BackData $param['method'] = 'app.register.backpwdByEmail'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -53,7 +53,7 @@ class BackData $param['code'] = $code; // 默认返回的不是json类型数据,是html - return Yohobuy::get(Yohobuy::YOHOBUY_URL . 'passport/back/update', $param, true); + return Yohobuy::get(YOHOBUY_URL . 'passport/back/update', $param, true); } /** @@ -72,7 +72,7 @@ class BackData $param['method'] = 'app.register.sendBackpwdCodeToMobile'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -93,7 +93,7 @@ class BackData $param['method'] = 'app.register.validBackpwdCode'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -115,7 +115,7 @@ class BackData $param['method'] = 'app.register.changepwdByMobileCode'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -131,7 +131,7 @@ class BackData $param['code'] = $code; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -149,7 +149,7 @@ class BackData $param['newPwd'] = $password; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(Yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } } \ No newline at end of file diff --git a/library/LibModels/Web/Passport/BindData.php b/library/LibModels/Web/Passport/BindData.php index 9104de2..51b545f 100644 --- a/library/LibModels/Web/Passport/BindData.php +++ b/library/LibModels/Web/Passport/BindData.php @@ -38,7 +38,7 @@ class BindData $param['private_key'] = Yohobuy::$privateKeyList[$clientType]; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -56,7 +56,7 @@ class BindData $param['private_key'] = Yohobuy::$privateKeyList[$clientType]; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -74,7 +74,7 @@ class BindData $param['private_key'] = Yohobuy::$privateKeyList[$clientType]; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -106,7 +106,7 @@ class BindData $param['private_key'] = Yohobuy::$privateKeyList[$clientType]; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -130,7 +130,7 @@ class BindData $param['private_key'] = Yohobuy::$privateKeyList[$clientType]; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -146,7 +146,7 @@ class BindData $param['area'] = $area; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -167,7 +167,7 @@ class BindData $param['area'] = $area; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } diff --git a/library/LibModels/Web/Passport/LoginData.php b/library/LibModels/Web/Passport/LoginData.php index 85c65b4..b900986 100644 --- a/library/LibModels/Web/Passport/LoginData.php +++ b/library/LibModels/Web/Passport/LoginData.php @@ -42,7 +42,7 @@ class LoginData } $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(Yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } /** @@ -58,7 +58,7 @@ class LoginData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -89,7 +89,7 @@ class LoginData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } diff --git a/library/LibModels/Web/Passport/RegData.php b/library/LibModels/Web/Passport/RegData.php index eb00ea1..f5fe8b8 100644 --- a/library/LibModels/Web/Passport/RegData.php +++ b/library/LibModels/Web/Passport/RegData.php @@ -28,7 +28,7 @@ class RegData // $param = Yohobuy::param(); // $param['method'] = 'app.passport.getArea'; // $param['client_secret'] = Sign::getSign($param); -// $data = Yohobuy::get(Yohobuy::API_URL, $param); +// $data = Yohobuy::get(API_URL, $param); // $result = array(); // if (!empty($data['data'])) { // $build = array(); @@ -126,7 +126,7 @@ class RegData $param['private_key'] = Yohobuy::$privateKeyList[$clientType]; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(Yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } /** @@ -146,7 +146,7 @@ class RegData $param['code'] = $code; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(Yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } /** @@ -173,6 +173,6 @@ class RegData $param['private_key'] = Yohobuy::$privateKeyList[$clientType]; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(Yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } } \ No newline at end of file diff --git a/library/LibModels/Web/Product/BrandData.php b/library/LibModels/Web/Product/BrandData.php index 5fa16a4..7f35b7c 100644 --- a/library/LibModels/Web/Product/BrandData.php +++ b/library/LibModels/Web/Product/BrandData.php @@ -39,7 +39,7 @@ class BrandData $cache = empty($uid) ? 3600 : false; - return Yohobuy::get(Yohobuy::API_URL, $param, $cache); // 有缓存1小时 + return Yohobuy::get(API_URL, $param, $cache); // 有缓存1小时 } /** @@ -55,7 +55,7 @@ class BrandData $param['method'] = 'app.brand.banner'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param, 3600); // 有缓存1小时 + return Yohobuy::get(API_URL, $param, 3600); // 有缓存1小时 } /** @@ -71,7 +71,7 @@ class BrandData $param['method'] = 'web.brand.byDomain'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param, 600); + return Yohobuy::get(API_URL, $param, 600); } /** @@ -89,7 +89,7 @@ class BrandData $param['method'] = 'web.brand.folder'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param, 600); + return Yohobuy::get(API_URL, $param, 600); } /** @@ -107,7 +107,7 @@ class BrandData $param['method'] = 'web.brand.series'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param, 600); + return Yohobuy::get(API_URL, $param, 600); } /** @@ -124,7 +124,7 @@ class BrandData $param['method'] = 'web.html.content'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param, 600); + return Yohobuy::get(API_URL, $param, 600); } /** @@ -140,7 +140,7 @@ class BrandData $param['private_key'] = Yohobuy::$privateKeyList[$clientType]; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::SERVICE_URL . self::URI_BRAND_TOPPOS, $param); + return Yohobuy::get(SERVICE_URL . self::URI_BRAND_TOPPOS, $param); } /** @@ -157,7 +157,7 @@ class BrandData } $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -175,9 +175,9 @@ class BrandData $param['brand_id'] = $brandId; $param['client_secret'] = Sign::getSign($param); if ($isOnlyUrl) { - return Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param); + return Yohobuy::httpBuildQuery(API_URL, $param); } - return Yohobuy::get(Yohobuy::API_URL, $param, 600); + return Yohobuy::get(API_URL, $param, 600); } /** @@ -192,6 +192,6 @@ class BrandData $param['method'] = 'web.brand.info'; $param['ids'] = is_array($ids) ? implode(',', $ids) : intval($ids); $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } diff --git a/library/LibModels/Web/Product/DetailData.php b/library/LibModels/Web/Product/DetailData.php index e50102b..9d706b7 100644 --- a/library/LibModels/Web/Product/DetailData.php +++ b/library/LibModels/Web/Product/DetailData.php @@ -38,7 +38,7 @@ class DetailData } $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -54,7 +54,7 @@ class DetailData $param['productskn'] = $productSkn; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -78,7 +78,7 @@ class DetailData $param['limit'] = $pageSize; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -92,7 +92,7 @@ class DetailData $param['method'] = 'app.consult.common'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -112,7 +112,7 @@ class DetailData $param['limit'] = $pageSize; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -130,7 +130,7 @@ class DetailData $param['brandId'] = $brandId; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param, 3600); // 缓存1小时 + return Yohobuy::get(API_URL, $param, 3600); // 缓存1小时 } /** @@ -149,7 +149,7 @@ class DetailData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(Yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } /** @@ -165,7 +165,7 @@ class DetailData $param['product_skn'] = $productSkn; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -183,7 +183,7 @@ class DetailData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -201,7 +201,7 @@ class DetailData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } diff --git a/library/LibModels/Web/Product/FavoriteData.php b/library/LibModels/Web/Product/FavoriteData.php index e79460d..b8ce861 100644 --- a/library/LibModels/Web/Product/FavoriteData.php +++ b/library/LibModels/Web/Product/FavoriteData.php @@ -35,10 +35,10 @@ class FavoriteData $param['client_secret'] = Sign::getSign($param); //只是返回链接 if ($isOnlyUrl) { - return Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param); + return Yohobuy::httpBuildQuery(API_URL, $param); } - return Yohobuy::get(Yohobuy::API_URL, $param); -// return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_PRODUCT_FAVORITE, 'getUidProductFav', array($uid, $productSkn)); + return Yohobuy::get(API_URL, $param); +// return Yohobuy::yarClient(SERVICE_URL . self::URL_PRODUCT_FAVORITE, 'getUidProductFav', array($uid, $productSkn)); } /** @@ -53,7 +53,7 @@ class FavoriteData // $result = array(); // // foreach ($productSknList as $skn) { -// Yohobuy::yarConcurrentCall(Yohobuy::SERVICE_URL . self::URL_PRODUCT_FAVORITE, 'getUidProductFav', array($uid, $skn), function($retval) use(&$result, $skn) { +// Yohobuy::yarConcurrentCall(SERVICE_URL . self::URL_PRODUCT_FAVORITE, 'getUidProductFav', array($uid, $skn), function($retval) use(&$result, $skn) { // $result[$skn] = empty($retval['data']) ? false : $retval['data']; // }); // } @@ -71,7 +71,7 @@ class FavoriteData $param['uid'] = $uid; $param['type'] = 'product'; $param['client_secret'] = Sign::getSign($param); - $urlList[$productId] = Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param); + $urlList[$productId] = Yohobuy::httpBuildQuery(API_URL, $param); } return Yohobuy::getMulti($urlList); @@ -92,7 +92,7 @@ class FavoriteData $param['type'] = $isBrand ? 'brand' : 'product'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -110,7 +110,7 @@ class FavoriteData $param['type'] = $isBrand ? 'brand' : 'product'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -134,7 +134,7 @@ class FavoriteData } $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -149,9 +149,9 @@ class FavoriteData $param['uid'] = $uid; $param['brand_id'] = $brandId; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::SERVICE_URL. self::URL_ARTICLE_FAVORITE_BRAND, $param); + return Yohobuy::get(SERVICE_URL. self::URL_ARTICLE_FAVORITE_BRAND, $param); - //return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_PRODUCT_FAVORITE, 'toggleBrandFav', array($uid, $brandId)); + //return Yohobuy::yarClient(SERVICE_URL . self::URL_PRODUCT_FAVORITE, 'toggleBrandFav', array($uid, $brandId)); } /** @@ -166,8 +166,8 @@ class FavoriteData $param['uid'] = $uid; $param['brandId'] = $brandId; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::SERVICE_URL . self::URL_PRODUCT_FAVORITE.'getUidBrandFav', $param); - // return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URL_PRODUCT_FAVORITE, 'getUidBrandFav', array($uid, $brandId)); + return Yohobuy::get(SERVICE_URL . self::URL_PRODUCT_FAVORITE.'getUidBrandFav', $param); + // return Yohobuy::yarClient(SERVICE_URL . self::URL_PRODUCT_FAVORITE, 'getUidBrandFav', array($uid, $brandId)); } /** @@ -184,7 +184,7 @@ class FavoriteData $param['limit'] = $limit; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -204,7 +204,7 @@ class FavoriteData $param['limit'] = $limit; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -223,7 +223,7 @@ class FavoriteData $param['page'] = $page; $param['limit'] = $limit; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::SERVICE_URL . self::URL_ARTICLE_FAVORITE. 'getUserFavArticleList', $param); + return Yohobuy::get(SERVICE_URL . self::URL_ARTICLE_FAVORITE. 'getUserFavArticleList', $param); } /** @@ -239,7 +239,7 @@ class FavoriteData $param['article_id'] = $article_id; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::SERVICE_URL . self::URL_ARTICLE_FAVORITE. 'cancelFavorite',$param); + return Yohobuy::get(SERVICE_URL . self::URL_ARTICLE_FAVORITE. 'cancelFavorite',$param); } /** @@ -257,7 +257,7 @@ class FavoriteData $param['productId'] = $productId; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -271,7 +271,7 @@ class FavoriteData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -288,7 +288,7 @@ class FavoriteData $param['productIds'] = $productId; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } diff --git a/library/LibModels/Web/Product/HotrankData.php b/library/LibModels/Web/Product/HotrankData.php index afb1b41..a0c712b 100644 --- a/library/LibModels/Web/Product/HotrankData.php +++ b/library/LibModels/Web/Product/HotrankData.php @@ -25,7 +25,7 @@ class HotrankData extends \LibModels\Wap\Product\SearchData 'channel' => $channel, 'is_concurrent' => $is_concurrent ); - return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URI_HOTRANK_TAG, 'getTag', $params); + return Yohobuy::yarClient(SERVICE_URL . self::URI_HOTRANK_TAG, 'getTag', $params); } /** @@ -35,7 +35,7 @@ class HotrankData extends \LibModels\Wap\Product\SearchData */ public static function getTagById($id, $is_concurrent = true) { - return Yohobuy::yarClient(Yohobuy::SERVICE_URL . self::URI_HOTRANK_TAG, 'getOneTag', array('id' => $id)); + return Yohobuy::yarClient(SERVICE_URL . self::URI_HOTRANK_TAG, 'getOneTag', array('id' => $id)); } } diff --git a/library/LibModels/Web/Product/ItemData.php b/library/LibModels/Web/Product/ItemData.php old mode 100644 new mode 100755 index 85fda39..f7dda00 --- a/library/LibModels/Web/Product/ItemData.php +++ b/library/LibModels/Web/Product/ItemData.php @@ -32,7 +32,7 @@ class ItemData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -49,9 +49,9 @@ class ItemData $param['productskn'] = $productSkn; $param['client_secret'] = Sign::getSign($param); if($isOnlyUrl) { - return Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param); + return Yohobuy::httpBuildQuery(API_URL, $param); } - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -77,7 +77,7 @@ class ItemData $param['limit'] = $pageSize; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -91,7 +91,7 @@ class ItemData $param['method'] = 'app.consult.common'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -111,7 +111,7 @@ class ItemData $param['limit'] = $pageSize; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -129,7 +129,7 @@ class ItemData $param['brandId'] = $brandId; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param, 3600); // 缓存1小时 + return Yohobuy::get(API_URL, $param, 3600); // 缓存1小时 } /** @@ -148,7 +148,7 @@ class ItemData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(Yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } /** @@ -164,7 +164,7 @@ class ItemData $param['product_skn'] = $productSkn; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -182,7 +182,7 @@ class ItemData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -200,7 +200,7 @@ class ItemData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** * 获取详情页的活动Banner @@ -220,9 +220,9 @@ class ItemData $param['client_secret'] = Sign::getSign($param); //只是返回链接 if($isOnlyUrl) { - return Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param); + return Yohobuy::httpBuildQuery(API_URL, $param); } - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -237,7 +237,7 @@ class ItemData $param['method'] = 'web.productCollocation.list'; $param['product_id'] = $productId; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -254,9 +254,9 @@ class ItemData $param['product_id'] = $productId; $param['client_secret'] = Sign::getSign($param); if($isOnlyUrl) { - return Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param); + return Yohobuy::httpBuildQuery(API_URL, $param); } - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -273,9 +273,9 @@ class ItemData $param['product_id'] = $productId; $param['client_secret'] = Sign::getSign($param); if($isOnlyUrl) { - return Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param); + return Yohobuy::httpBuildQuery(API_URL, $param); } - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -292,9 +292,9 @@ class ItemData $param['product_skn'] = $productSkn; $param['client_secret'] = Sign::getSign($param); if($isOnlyUrl) { - return Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param); + return Yohobuy::httpBuildQuery(API_URL, $param); } - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -309,7 +309,7 @@ class ItemData $param['method'] = 'clear.productCache'; $param['product_skn'] = $productSkn; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -324,6 +324,21 @@ class ItemData $param['method'] = 'clear.memcache'; $param['key'] = sprintf("yh_gw:queryProductIntro:%s", $productSkn); $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); + } + + /** + * 商品促销信息 + * @param $skn 商品 skn + * @return mixed + */ + public static function promotion($skn) + { + $param = Yohobuy::param(); + $param['method'] = 'app.product.promotion'; + $param['product_skn'] = $skn; + $param['client_secret'] = Sign::getSign($param); + + return Yohobuy::get(API_URL, $param); } } \ No newline at end of file diff --git a/library/LibModels/Web/Product/PayData.php b/library/LibModels/Web/Product/PayData.php index b1946f6..6a95a90 100644 --- a/library/LibModels/Web/Product/PayData.php +++ b/library/LibModels/Web/Product/PayData.php @@ -31,7 +31,7 @@ class PayData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -48,7 +48,7 @@ class PayData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -67,7 +67,7 @@ class PayData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -100,7 +100,7 @@ class PayData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } @@ -128,7 +128,7 @@ class PayData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -147,7 +147,7 @@ class PayData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -170,7 +170,7 @@ class PayData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -193,7 +193,7 @@ class PayData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } @@ -217,7 +217,7 @@ class PayData $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -246,7 +246,7 @@ class PayData $param['bank_bill_no'] = $bankBillNo; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -269,7 +269,7 @@ class PayData $param['client_secret'] = Sign::getSign($param); // 调用接口获得数据 - return Yohobuy::post(Yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } } \ No newline at end of file diff --git a/library/LibModels/Web/Product/SaleData.php b/library/LibModels/Web/Product/SaleData.php index 9381d62..c24af2d 100644 --- a/library/LibModels/Web/Product/SaleData.php +++ b/library/LibModels/Web/Product/SaleData.php @@ -26,7 +26,7 @@ class SaleData $param['client_secret'] = Sign::getSign($param); //TODO等待接口发布到测试环境 - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } diff --git a/library/LibModels/Web/Product/SearchData.php b/library/LibModels/Web/Product/SearchData.php index c7075e2..7782fed 100644 --- a/library/LibModels/Web/Product/SearchData.php +++ b/library/LibModels/Web/Product/SearchData.php @@ -424,7 +424,7 @@ class SearchData $param['method'] = 'app.brand.getBrandIntro'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::httpBuildQuery(Yohobuy::API_URL, $param); + return Yohobuy::httpBuildQuery(API_URL, $param); } /** @@ -446,7 +446,7 @@ class SearchData $param['price'] = '0'; $param['size_id'] = '0'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param, 600, false, 5); + return Yohobuy::get(API_URL, $param, 600, false, 5); } /** @@ -499,7 +499,7 @@ class SearchData 'middle_sort_id' => $misort ); - return Yohobuy::get(Yohobuy::SERVICE_URL . self::URL_INDEX_AD, $param, 600, false, 1); // 有缓存10分钟 + return Yohobuy::get(SERVICE_URL . self::URL_INDEX_AD, $param, 600, false, 1); // 有缓存10分钟 } @@ -518,7 +518,7 @@ class SearchData $param['method'] = 'app.search.fuzzy'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -561,7 +561,7 @@ class SearchData } $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -607,6 +607,6 @@ class SearchData $param['brand_id'] = $brandId; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } \ No newline at end of file diff --git a/library/LibModels/Web/Product/ShopData.php b/library/LibModels/Web/Product/ShopData.php index 9f80f20..308f26f 100644 --- a/library/LibModels/Web/Product/ShopData.php +++ b/library/LibModels/Web/Product/ShopData.php @@ -6,7 +6,7 @@ use Api\Yohobuy; use Api\Sign; /** * 品牌店铺的接口 - * @info http://git.dev.yoho.cn/yoho-documents/api-interfaces/blob/master/%E5%95%86%E5%93%81%E5%88%97%E8%A1%A8/brandShops.md + * @info //git.dev.yoho.cn/yoho-documents/api-interfaces/blob/master/%E5%95%86%E5%93%81%E5%88%97%E8%A1%A8/brandShops.md * @copyright yoho.inc * @author xiaoxiao.hao <xiaoxiao.hao@yoho.cn> */ @@ -24,7 +24,7 @@ class ShopData $param['shop_id'] = intval($shopId); $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** * 查询店铺介绍接口 @@ -39,7 +39,7 @@ class ShopData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -54,7 +54,7 @@ class ShopData $param['shop_id'] = intval($shopId); $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -69,7 +69,7 @@ class ShopData $param['shop'] = intval($shopId); $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -88,7 +88,7 @@ class ShopData $param['gender'] = $gender; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -107,7 +107,7 @@ class ShopData $param['uid'] = $uid; $param['type'] = $type; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** * 根据domain查找shop_id @@ -120,6 +120,6 @@ class ShopData $param['method'] = 'web.brand.byDomain'; $param['domain'] = $domain; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } diff --git a/library/LibModels/Web/Shop/SettledData.php b/library/LibModels/Web/Shop/SettledData.php index a67b257..df8f851 100644 --- a/library/LibModels/Web/Shop/SettledData.php +++ b/library/LibModels/Web/Shop/SettledData.php @@ -75,7 +75,7 @@ class SettledData $param['uid'] = $uid; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::post(Yohobuy::API_URL, $param); + return Yohobuy::post(API_URL, $param); } /** @@ -88,7 +88,7 @@ class SettledData $param['method'] = 'app.category.queryMax'; $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } /** @@ -103,6 +103,6 @@ class SettledData $param['parent_id'] = intval($parentId); $param['client_secret'] = Sign::getSign($param); - return Yohobuy::get(Yohobuy::API_URL, $param); + return Yohobuy::get(API_URL, $param); } } diff --git a/library/Plugin/Images.php b/library/Plugin/Images.php index 996623f..92ae574 100644 --- a/library/Plugin/Images.php +++ b/library/Plugin/Images.php @@ -219,7 +219,7 @@ class Images private static function MakeBaseUrl($domain, $key) // => $baseUrl { $keyEsc = str_replace("%2F", "/", rawurlencode($key)); - return "http://$domain/$keyEsc"; + return '//' . $domain . '/' . $keyEsc; } private static function MakeTemplateRequest($url) diff --git a/library/WebPlugin/DataProcess/Channel/AbstractChannel.php b/library/WebPlugin/DataProcess/Channel/AbstractChannel.php index b87b63d..1c5cf74 100644 --- a/library/WebPlugin/DataProcess/Channel/AbstractChannel.php +++ b/library/WebPlugin/DataProcess/Channel/AbstractChannel.php @@ -1,7 +1,7 @@ <?php namespace WebPlugin\DataProcess\Channel; - +use WebPlugin\Helpers; abstract class AbstractChannel { /* * * @@ -33,10 +33,10 @@ abstract class AbstractChannel $temp['newArrivls']['name'] = $resource[$key]['data']['text']; //textNav模版 foreach ($resource[$key + 1]['data'] as $val) { - $temp['newArrivls']['navs'][] = array('href' => $val['url'], 'name' => $val['name']); + $temp['newArrivls']['navs'][] = array('href' => Helpers::getUrlSafe($val['url']), 'name' => $val['name']); } //link模版 - $temp['href'] = $resource[$key + 2]['data'][0]['url']; + $temp['href'] = Helpers::getUrlSafe($resource[$key + 2]['data'][0]['url']); unset($resource[$key], $resource[$key + 1], $resource[$key + 2]); $result[$key] = $temp; } diff --git a/library/WebPlugin/DataProcess/Channel/Girls.php b/library/WebPlugin/DataProcess/Channel/Girls.php index f2f107b..277bfbf 100644 --- a/library/WebPlugin/DataProcess/Channel/Girls.php +++ b/library/WebPlugin/DataProcess/Channel/Girls.php @@ -1,7 +1,7 @@ <?php namespace WebPlugin\DataProcess\Channel; - +use WebPlugin\Helpers; class Girls extends AbstractChannel { @@ -20,10 +20,10 @@ class Girls extends AbstractChannel $temp['newArrivls']['name'] = $resource[$key]['data']['text']; //title模版 foreach ($resource[$key + 1]['data']['nav'] as $val) { - $temp['newArrivls']['navs'][] = array('href' => $val['url'], 'name' => $val['name']); + $temp['newArrivls']['navs'][] = array('href' => Helpers::getUrlSafe($val['url']), 'name' => $val['name']); } $link = $resource[$key + 2]['data'][0]; - $temp['newArrivls']['href'] = $link['url']; + $temp['newArrivls']['href'] = Helpers::getUrlSafe($link['url']); unset($resource[$key], $resource[$key + 1]); $result[$key] = $temp; } diff --git a/library/WebPlugin/DataProcess/Channel/Kids.php b/library/WebPlugin/DataProcess/Channel/Kids.php index d29507a..9ed4461 100644 --- a/library/WebPlugin/DataProcess/Channel/Kids.php +++ b/library/WebPlugin/DataProcess/Channel/Kids.php @@ -1,7 +1,7 @@ <?php namespace WebPlugin\DataProcess\Channel; - +use WebPlugin\Helpers; class Kids extends AbstractChannel { @@ -24,7 +24,7 @@ class Kids extends AbstractChannel $temp['newArrivls']['name'] = $resource[$key]['data']['text']; //textNav模版 foreach ($resource[$key + 1]['data'] as $val) { - $temp['newArrivls']['navs'][] = array('href' => $val['url'], 'name' => $val['name']); + $temp['newArrivls']['navs'][] = array('href' => Helpers::getUrlSafe($val['url']), 'name' => $val['name']); } unset($resource[$key], $resource[$key + 1]); $result[$key] = $temp; diff --git a/library/WebPlugin/DataProcess/Channel/Lifestyle.php b/library/WebPlugin/DataProcess/Channel/Lifestyle.php index 250e5f2..2908ba8 100644 --- a/library/WebPlugin/DataProcess/Channel/Lifestyle.php +++ b/library/WebPlugin/DataProcess/Channel/Lifestyle.php @@ -1,7 +1,7 @@ <?php namespace WebPlugin\DataProcess\Channel; - +use WebPlugin\Helpers; class Lifestyle extends AbstractChannel { @@ -24,7 +24,7 @@ class Lifestyle extends AbstractChannel $temp['newArrivls']['name'] = '最新上架 NEW ARRIVALS'; //textNav模版 foreach ($resource[$key]['data'] as $val) { - $temp['newArrivls']['navs'][] = array('href' => $val['url'], 'name' => $val['name']); + $temp['newArrivls']['navs'][] = array('href' => Helpers::getUrlSafe($val['url']), 'name' => $val['name']); } unset($resource[$key], $resource[$key + 1]); $result[$key] = $temp; diff --git a/library/WebPlugin/DataProcess/Channel/PlusstarIndex.php b/library/WebPlugin/DataProcess/Channel/PlusstarIndex.php index fabf3c9..6f4ab5a 100644 --- a/library/WebPlugin/DataProcess/Channel/PlusstarIndex.php +++ b/library/WebPlugin/DataProcess/Channel/PlusstarIndex.php @@ -1,6 +1,7 @@ <?php namespace WebPlugin\DataProcess\Channel; use WebPlugin\Images; +use WebPlugin\Helpers; class PlusstarIndex extends AbstractChannel { @@ -27,7 +28,7 @@ class PlusstarIndex extends AbstractChannel if($key == 5 && $resource['template_name'] == 'floor') {//单品列表 foreach($resource['data'] as $pos => $val) { $val['src'] = Images::getImageUrl($val['src'], 280, 374, 1); - $singleGoods['list'][] = array('href' => $val['url'],'name'=> $val['title'],'img' => $val['src']); + $singleGoods['list'][] = array('href' => Helpers::getUrlSafe($val['url']),'name'=> $val['title'],'img' => $val['src']); } $result[$key] = array('singlegoods' => $singleGoods); } @@ -39,7 +40,7 @@ class PlusstarIndex extends AbstractChannel if($key == 7 && $resource['template_name'] == 'floor') { //视频名称 foreach($resource['data'] as $pos => $val) { $val['src'] = Images::getImageUrl($val['src'], 378, 241, 1); - $video['list'][] = array('href' => $val['url'],'name'=> $val['title'],'img' => $val['src']); + $video['list'][] = array('href' => Helpers::getUrlSafe($val['url']),'name'=> $val['title'],'img' => $val['src']); } $result[$key] = array('video' => $video); } @@ -54,7 +55,7 @@ class PlusstarIndex extends AbstractChannel foreach($resource['data'] as $val) { if(is_numeric($val['name'])) { $id = $val['name']; - $news['pics']['list'][$id] = array('id' => $id,'href' => $val['url'], 'img'=>'','tips'=>''); + $news['pics']['list'][$id] = array('id' => $id,'href' => Helpers::getUrlSafe($val['url']), 'img'=>'','tips'=>''); } } $result[$key] = array('news' => $news); @@ -65,7 +66,7 @@ class PlusstarIndex extends AbstractChannel foreach($resource['data'] as $pos => $val) { if(is_numeric($val['name'])) { $id = $val['name']; - $ads['list'][$id] = array('id' => $id,'href' => $val['url'],'img'=>'',); + $ads['list'][$id] = array('id' => $id,'href' => Helpers::getUrlSafe($val['url']),'img'=>'',); } } $result[$key] = array('ads' => $ads); diff --git a/library/WebPlugin/DataProcess/Process.php b/library/WebPlugin/DataProcess/Process.php index 0a8b0e4..d1717ed 100644 --- a/library/WebPlugin/DataProcess/Process.php +++ b/library/WebPlugin/DataProcess/Process.php @@ -59,19 +59,16 @@ class Process foreach ($data['navs']['list'] as $val) { $temp['navs'][] = array( 'id' => '', - 'href' => $val['url'], + 'href' => Helpers::getUrlSafe($val['url']), 'name' => $val['name'] ); } $len = count($data['menuNav']['blocks']); foreach ($data['menuNav']['blocks'] as $key => $val) { - if ($len <= 2 && $key == 0) { - $val['img'] = Images::getImageUrl($val['img'], 185, 152, 1); - } - $val['img'] = Images::getImageUrl($val['img'], 185, 76, 1); + $val['img'] = Images::getImageUrl($val['img'], 185, 152, 1); $val['url'] = Helpers::transUrl($val['url'], $type); $temp['tplrecommend']['keyword'][] = array( - 'href' => $val['url'], + 'href' => Helpers::getUrlSafe($val['url']), 'name' => $val['title'], 'img' => $val['img'] ); @@ -84,7 +81,7 @@ class Process $val['url'] = Helpers::transUrl($val['url'], $type); $temp['tplrecommend']['category'][] = array( 'name' => $val['name'], - 'href' => $val['url'] + 'href' => Helpers::getUrlSafe($val['url']) ); } @@ -93,7 +90,7 @@ class Process if ($key == 0) { $val['img'] = Images::getImageUrl($val['img'], 377, 504, 1); // 大图 $temp['tplrecommend']['brands'][] = array( - 'href' => $val['url'], + 'href' => Helpers::getUrlSafe($val['url']), 'name' => $val['title'], 'img' => $val['img'] ); @@ -101,7 +98,7 @@ class Process else { $val['img'] = Images::getImageUrl($val['img'], 185, 504, 1); // 小图 $temp['tplrecommend']['types'][] = array( - 'href' => $val['url'], + 'href' => Helpers::getUrlSafe($val['url']), 'name' => $val['title'], 'img' => $val['img'] ); @@ -195,7 +192,7 @@ class Process if (isset($data['data'][0])) { $val = $data['data'][0]; $temp['img'] = Images::getImageUrl($val['src'], 1150, 129, 1); - $temp['href'] = $val['url']; + $temp['href'] = Helpers::getUrlSafe($val['url']); $temp['name'] = $val['title']; $result['adbanner'] = $temp; } @@ -220,26 +217,23 @@ class Process ) ); foreach ($data['left'] as $val) { - $val['img'] = Images::getImageUrl($val['img'], 280, 265, 1); $result['debrisSlider']['left'][] = array( - 'img' => $val['img'], - 'href' => $val['url'], + 'img' => Images::getImageUrl($val['img'], 280, 265, 1), + 'href' => Helpers::getUrlSafe($val['url']), 'name' => $val['title'] ); } foreach ($data['center'] as $val) { - $val['img'] = Images::getImageUrl($val['img'], 570, 633, 1); $result['debrisSlider']['center'][] = array( - 'img' => $val['img'], - 'href' => $val['url'], + 'img' => Images::getImageUrl($val['img'], 570, 633, 1), + 'href' => Helpers::getUrlSafe($val['url']), 'name' => $val['title'] ); } foreach ($data['right'] as $val) { - $val['img'] = Images::getImageUrl($val['img'], 280, 449, 1); $result['debrisSlider']['right'][] = array( - 'img' => $val['img'], - 'href' => $val['url'], + 'img' => Images::getImageUrl($val['img'], 280, 449, 1), + 'href' => Helpers::getUrlSafe($val['url']), 'name' => $val['title'] ); } @@ -393,7 +387,7 @@ class Process } $result['singlehot']['imgHot'][] = array( - 'href' => $val['url'], + 'href' => Helpers::getUrlSafe($val['url']), 'img' => $val['src'], 'name' => $val['alt'] ); @@ -541,7 +535,7 @@ class Process foreach ($data[$key + 2]['data'] as $val) { $val['src'] = Images::getImageUrl($val['src'], 650, 400, 1); $result['accordion']['slide'][] = array( - 'href' => $val['url'], + 'href' => Helpers::getUrlSafe($val['url']), 'img' => $val['src'], 'name' => $val['title'] ); @@ -581,14 +575,14 @@ class Process if ($listKey == 0 || $listKey == 7) { $val['src'] = Images::getImageUrl($val['src'], 377, 504, 1); $result['newReport']['list'][] = array( - 'href' => $val['url'], + 'href' => Helpers::getUrlSafe($val['url']), 'img' => $val['src'] ); } else { $val['src'] = Images::getImageUrl($val['src'], 185, 248, 1); $result['newReport']['list'][] = array( - 'href' => $val['url'], + 'href' => Helpers::getUrlSafe($val['url']), 'img' => $val['src'] ); } @@ -686,7 +680,7 @@ class Process if ($key2 == 0 || $key2 == 4) { // 两个大图 $val['img'] = Images::getImageUrl($val['img'], 378, 248, 1); // 大图 $result['tplrecommend']['brands'][] = array( - 'href' => $val['url'], + 'href' => Helpers::getUrlSafe($val['url']), 'name' => $val['title'], 'img' => $val['img'] ); @@ -694,7 +688,7 @@ class Process else { $val['img'] = Images::getImageUrl($val['img'], 185, 248, 1); // 小图 $result['tplrecommend']['types'][] = array( - 'href' => $val['url'], + 'href' => Helpers::getUrlSafe($val['url']), 'name' => $val['title'], 'img' => $val['img'] ); @@ -705,7 +699,7 @@ class Process foreach ($data[$key + 1]['data'] as $val) { $val['src'] = Images::getImageUrl($val['src'], 222, 298, 1); // 小图 $result['tplrecommend']['products'][] = array( - 'href' => $val['url'], + 'href' => Helpers::getUrlSafe($val['url']), 'name' => $val['title'], 'img' => $val['src'] ); @@ -735,7 +729,7 @@ class Process continue; } $result[] = array( - 'href' => $val['url'], + 'href' => Helpers::getUrlSafe($val['url']), 'name' => $val['name'] ); } diff --git a/library/WebPlugin/Encryption.php b/library/WebPlugin/Encryption.php new file mode 100644 index 0000000..67642b1 --- /dev/null +++ b/library/WebPlugin/Encryption.php @@ -0,0 +1,78 @@ +<?php +/** + * AES, 128 ECB模式加密数据 + */ + +namespace WebPlugin; + +class Encryption { + + //密钥 + private static $_secretKey = 'yoho9646abcdefgh'; + + //前面补8位0 + private static $_preString = '00000000'; + + /** + * 加密方法 + * @param string $str + * @return string + */ + public static function encrypt($str){ + $str = self::$_preString.$str; + //AES, 128 ECB模式加密数据 + $secretKey = self::$_secretKey; + $str = trim($str); + $str = self::addPKCS7Padding($str); + $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_ECB),MCRYPT_RAND); + $encrypt_str = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $secretKey, $str, MCRYPT_MODE_ECB, $iv); + return base64_encode($encrypt_str); + } + + /** + * 解密方法 + * @param string $str + * @return string + */ + public static function decrypt($str){ + //AES, 128 ECB模式加密数据 + $secretKey = self::$_secretKey; + $str = base64_decode($str); + $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128,MCRYPT_MODE_ECB),MCRYPT_RAND); + $encrypt_str = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $secretKey, $str, MCRYPT_MODE_ECB, $iv); + $encrypt_str = trim($encrypt_str); + $encrypt_str = self::stripPKSC7Padding($encrypt_str); + $encrypt_str = ltrim($encrypt_str, self::$_preString); + return $encrypt_str; + + } + + /** + * 填充算法 + * @param string $source + * @return string + */ + private static function addPKCS7Padding($source){ + $source = trim($source); + $block = mcrypt_get_block_size('rijndael-128', 'ecb'); + $pad = $block - (strlen($source) % $block); + if ($pad <= $block) { + $char = chr($pad); + $source .= str_repeat($char, $pad); + } + return $source; + } + /** + * 移去填充算法 + * @param string $source + * @return string + */ + private static function stripPKSC7Padding($source){ + $source = trim($source); + $char = substr($source, -1); + $num = ord($char); + if($num==62)return $source; + $source = substr($source,0,-$num); + return $source; + } +} \ No newline at end of file diff --git a/library/WebPlugin/HelperSearch.php b/library/WebPlugin/HelperSearch.php index 26f44b2..be55739 100644 --- a/library/WebPlugin/HelperSearch.php +++ b/library/WebPlugin/HelperSearch.php @@ -808,6 +808,8 @@ class HelperSearch $color = $filter['color']; if (isset($color['color_id'])) { $checked = isset(self::$params['color']) && self::$params['color'] ==$color['color_id'] ? true : false; + $color['color_value'] = empty($color['color_value']) ? '' : Helpers::getUrlSafe($color['color_value']); + $result[] = array( 'name' => $color['color_name'], 'rgb' => empty($color['color_value']) ? '#' . $color['color_code'] : "url({$color['color_value']})", @@ -821,6 +823,7 @@ class HelperSearch else { foreach ($color as $v) { $checked = false; + $v['color_value'] = empty($v['color_value']) ? '' : Helpers::getUrlSafe($v['color_value']); //设置已选中 if ($v['color_id'] == $colorId) { $background = empty($v['color_value']) ? '#' . $v['color_code'] : "url(" . $v['color_value'] . ")"; @@ -1269,7 +1272,7 @@ class HelperSearch if (empty($params)) { return self::current(); } - $queryPath = explode('?', $_SERVER['REQUEST_URI']); + $queryPath = explode('?', Helpers::getUrlSafe($_SERVER['REQUEST_URI'])); $params_arr = array(); //店铺装修,添加额外参数 if (empty($params['shopId']) && isset($_REQUEST['shopId'])) { @@ -1406,7 +1409,7 @@ class HelperSearch public static function current() { $urlParam = array(); - $url = explode('?', 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']); + $url = explode('?', '//' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']); if (!empty(self::$specialsaleParam)) { $url[0] .= '?' . http_build_query(self::$specialsaleParam); } @@ -1420,7 +1423,7 @@ class HelperSearch if (!empty($urlParam)) { $url[0] .= '?' . http_build_query($urlParam); } - return $url[0]; + return Helpers::getUrlSafe($url[0]); } /** @@ -1437,7 +1440,7 @@ class HelperSearch $nextUrl = self::buildUrl($param); $next = array( 'href' => $nextUrl, - 'src' => 'http://img10.static.yhbimg.com/product/2014/01/15/11/01fa01614784f6239760f1b749663016f1.jpg?imageMogr2/thumbnail/235x314/extent/235x314/background/d2hpdGU=/position/center/quality/90' + 'src' => '//img10.static.yhbimg.com/product/2014/01/15/11/01fa01614784f6239760f1b749663016f1.jpg?imageMogr2/thumbnail/235x314/extent/235x314/background/d2hpdGU=/position/center/quality/90' ); } return $next; @@ -1796,7 +1799,7 @@ class HelperSearch if (isset(self::$params['query']) && !empty(self::$params['query'])) { $data['keyWord'] = self::$params['query']; } - $data['searchActionUrl'] = 'http://search.yohobuy.com'; + $data['searchActionUrl'] = '//search.yohobuy.com'; return $data; } @@ -1822,14 +1825,17 @@ class HelperSearch */ public static function pinYin($zh){ $ret = ""; + if(mb_detect_encoding($zh, array('GB2312','GBK','UTF-8'))!='UTF-8'){ + $zh = ''; + } @$s1 = iconv("UTF-8","gbk//ignore", $zh); @$s2 = iconv("gbk//ignore","UTF-8", $s1); if($s2 == $zh){$zh = $s1;} for($i = 0; $i < strlen($zh); $i++){ - $s1 = substr($zh,$i,1); + $s1 = mb_substr($zh,$i,1); $p = ord($s1); if($p > 160){ - $s2 = substr($zh,$i++,2); + $s2 = mb_substr($zh,$i++,2); $ret .= self::getfirstchar($s2); }else{ $ret .= $s1; @@ -1849,6 +1855,10 @@ class HelperSearch if ($fchar >= ord("A") and $fchar <= ord("z") ) { return strtoupper($s0{0}); } + if(mb_detect_encoding($s0, array('GB2312','GBK','UTF-8'))!='UTF-8') { + return ''; + } + $s1 = @iconv("UTF-8","gbk//ignore", $s0); $s2 = @iconv("gbk//ignore","UTF-8", $s1); if ($s2 == $s0) { diff --git a/library/WebPlugin/Helpers.php b/library/WebPlugin/Helpers.php index cbc6985..e3b22f5 100644 --- a/library/WebPlugin/Helpers.php +++ b/library/WebPlugin/Helpers.php @@ -24,16 +24,16 @@ class Helpers switch ($module) { case 'default': - $url = 'http://www.yohobuy.com'; + $url = '//www.yohobuy.com'; break; case 'guang': // 逛 - $url = 'http://guang' . SUB_DOMAIN; + $url = '//guang' . SUB_DOMAIN; break; case 'list': // 商品列表 - $url = 'http://list' . SUB_DOMAIN; + $url = '//list' . SUB_DOMAIN; break; case 'search': // 搜索 - $url = 'http://search' . SUB_DOMAIN; + $url = '//search' . SUB_DOMAIN; break; case 'index': // 默认 $url = SITE_MAIN; @@ -41,7 +41,7 @@ class Helpers case '': // 相对地址 break; default: // 其它子域名 - $url = 'http://' . $module . SUB_DOMAIN; + $url = '//' . $module . SUB_DOMAIN; } $url .= $uri; if (!empty($param)) { @@ -62,7 +62,7 @@ class Helpers */ public static function getImageUrl($url, $width, $height, $mode = 2) { - return strtr($url, array('{width}' => $width, '{height}' => $height, '{mode}' => $mode)); + return self::getUrlSafe(strtr($url, array('{width}' => $width, '{height}' => $height, '{mode}' => $mode))); } /** @@ -73,7 +73,7 @@ class Helpers */ public static function getFilterUrl($url) { - $url = strtr($url, array('.m.yohobuy.com' => SUB_DOMAIN, OLD_MAIN => SITE_MAIN, 'www.yohobuy.com' => SITE_MAIN)); + $url = self::getUrlSafe(strtr($url, array('.m.yohobuy.com' => SUB_DOMAIN, OLD_MAIN => SITE_MAIN, 'www.yohobuy.com' => SITE_MAIN))); $filter = strstr($url, 'openby:yohobuy=', true); if ($filter) { return rtrim(rtrim($filter, '?'), '&'); @@ -581,7 +581,7 @@ class Helpers if(!empty($url) && stripos($url, '?') !== false){ $extra = '&channel='.$channel; } - return $url . $extra; + return self::getUrlSafe($url . $extra); } @@ -1003,7 +1003,7 @@ class Helpers if (empty($cn_alphabet)) { $cn_alphabet = 'goods.html'; } - return 'http://item.yohobuy.com/product/pro_' . $product_id . '_' . $goods_id . '/' . $cn_alphabet. '.html'; + return '//item.yohobuy.com/product/pro_' . $product_id . '_' . $goods_id . '/' . $cn_alphabet. '.html'; } /** @@ -1090,7 +1090,11 @@ class Helpers { return preg_match("/[\x7f-\xff]/", $str); } +<<<<<<< HEAD +======= + +>>>>>>> master /** * 将首字符为//的url转换为http:// * @@ -1105,7 +1109,7 @@ class Helpers /** * http和https转换成// * @param type $url 地址 - * @return type string + * @return type string */ public static function getUrlSafe($url) { diff --git a/library/WebPlugin/Images.php b/library/WebPlugin/Images.php index 7bfe17a..4090839 100644 --- a/library/WebPlugin/Images.php +++ b/library/WebPlugin/Images.php @@ -7,13 +7,13 @@ */ namespace WebPlugin; - +use WebPlugin\Helpers; class Images { private static $domain = '.static.yhbimg.com'; private static $default_image = '/2015/08/25/02/01dd632a6e07bfef457ce4beda21dd6413.png'; - private static $defaultHeadIco = 'http://img10.static.yhbimg.com/headimg/2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif'; + private static $defaultHeadIco = '//img10.static.yhbimg.com/headimg/2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif'; private static $domainList = array( '01' => array( 'img10.static.yhbimg.com', @@ -52,7 +52,7 @@ class Images return $fileName; } $domain = self::getDomain($bucket, $fileName); - return 'http://' . $domain . '/' . $bucket . $fileName; + return '//' . $domain . '/' . $bucket . $fileName; } /** @@ -66,13 +66,18 @@ class Images */ public static function getImageUrl($fileName, $width, $height, $mode = 2, $bucket = 'goodsimg') { + if (substr($fileName, 0, 2) === '//') { + //防止多次调用getImageUrl + $fileName = 'http:' . $fileName; + } + if (!is_string($fileName)) { return self::template(self::$default_image, $bucket, $mode); } if (stripos($fileName, 'http://') !== 0) { $fileName = self::template($fileName, $bucket, $mode); } - return strtr($fileName, array('{width}' => $width, '{height}' => $height, '{mode}' => $mode)); + return Helpers::getUrlSafe(strtr($fileName, array('{width}' => $width, '{height}' => $height, '{mode}' => $mode))); } /** @@ -155,6 +160,7 @@ class Images $images[$files['name']] = $files['tmp_name']; } + //return self::uploadStreamImage($images); return self::uploadStreamImage($images, $path); } @@ -216,7 +222,7 @@ class Images $imgRelUrl = current($result['data']['imagesList']); $imgList['imgList'][] = array( //'imgUrl' => self::getSourceUrl($imgRelUrl, 'suggest') . $imgExtra, - 'imgUrl' => self::getSourceUrl($imgRelUrl, $path) . $imgExtra, + $img['imgUrl'] = self::getSourceUrl($imgRelUrl, $path) . $imgExtra, 'imgRelUrl' => $imgRelUrl ); } @@ -256,7 +262,7 @@ class Images $imageUrl = preg_replace('@\?imageMogr2.+@is', '', $imageUrl); } } - return $imageUrl; + return Helpers::getUrlSafe($imageUrl); } /** @@ -280,7 +286,7 @@ class Images private static function MakeBaseUrl($domain, $key) // => $baseUrl { $keyEsc = str_replace("%2F", "/", rawurlencode($key)); - return "http://$domain/$keyEsc"; + return "//$domain/$keyEsc"; } private static function MakeTemplateRequest($url) diff --git a/library/WebPlugin/Mobile.php b/library/WebPlugin/Mobile.php index 1192da8..4fc305f 100644 --- a/library/WebPlugin/Mobile.php +++ b/library/WebPlugin/Mobile.php @@ -123,7 +123,7 @@ class Mobile { if (empty($_COOKIE['m2w']) && self::isMobile()) { header("HTTP/1.1 301 Moved Permanently"); - header('Location:http://'.self::getNewUrl()); + header('Location://'.self::getNewUrl()); exit(); } return true; diff --git a/library/WebPlugin/Partner/alipay/Config.inc.php b/library/WebPlugin/Partner/alipay/Config.inc.php index ce0c60e..c9937f2 100644 --- a/library/WebPlugin/Partner/alipay/Config.inc.php +++ b/library/WebPlugin/Partner/alipay/Config.inc.php @@ -14,6 +14,6 @@ return array( 'cacert' => dirname(__FILE__) .'/cacert.pem', // 访问模式,根据自己的服务器是否支持ssl访问,若支持请选择https;若不支持请选择http 'transport' => 'http', - // 页面跳转同步通知页面路径 (需http://格式的完整路径,不允许加?id=123这类自定义参数) - 'return_url' => SITE_MAIN . '/passport/autosign/alipaycallback', + // 页面跳转同步通知页面路径 (需//格式的完整路径,不允许加?id=123这类自定义参数) + 'return_url' => WebPlugin\Helpers::transHttpsUrl(SITE_MAIN) . '/passport/autosign/alipaycallback', ); diff --git a/library/WebPlugin/Partner/douban/Config.inc.php b/library/WebPlugin/Partner/douban/Config.inc.php index 9548354..892f368 100644 --- a/library/WebPlugin/Partner/douban/Config.inc.php +++ b/library/WebPlugin/Partner/douban/Config.inc.php @@ -4,6 +4,6 @@ defined('SITE_MAIN') || define('SITE_MAIN', $_SERVER['HTTP_HOST']); return array( 'appId' => '03b4e36bf13dc75a0b1eaa43d3b9560e', 'appKey' => 'f16d5913e8610672', - 'callback' => SITE_MAIN . '/passport/autosign/doubanback', + 'callback' => WebPlugin\Helpers::transHttpsUrl(SITE_MAIN). '/passport/autosign/doubanback', 'scope' => 'douban_basic_common', ); \ No newline at end of file diff --git a/library/WebPlugin/Partner/qqconnect/Call.php b/library/WebPlugin/Partner/qqconnect/Call.php index 4338211..6c7ade0 100644 --- a/library/WebPlugin/Partner/qqconnect/Call.php +++ b/library/WebPlugin/Partner/qqconnect/Call.php @@ -89,7 +89,7 @@ class Call extends Factory /** * 获取当前用户的偶像(关注)列表 * - * @see http://wiki.connect.qq.com/get_idollist + * @see //wiki.connect.qq.com/get_idollist * @param string $access_token 访问令牌 * @param string $openid 腾讯唯一的对应QQ号 * @param array $params 参数列表 diff --git a/library/WebPlugin/Partner/qqconnect/Config.inc.php b/library/WebPlugin/Partner/qqconnect/Config.inc.php index b692b27..07f5193 100644 --- a/library/WebPlugin/Partner/qqconnect/Config.inc.php +++ b/library/WebPlugin/Partner/qqconnect/Config.inc.php @@ -4,7 +4,7 @@ defined('SITE_MAIN') || define('SITE_MAIN', $_SERVER['HTTP_HOST']); return array( 'appid' => '100229394', 'appkey' => 'c0af9c29e0900813028c2ccb42021792', - 'callback' => SITE_MAIN . '/passport/autosign/qqcallback', + 'callback' => WebPlugin\Helpers::transHttpsUrl(SITE_MAIN) . '/passport/autosign/qqcallback', 'scope' => 'get_user_info,add_share,upload_pic,get_idollist,get_fanslist', 'errorReport' => true, ); \ No newline at end of file diff --git a/library/WebPlugin/Partner/renren/Call.php b/library/WebPlugin/Partner/renren/Call.php index 549fe20..bca0d90 100644 --- a/library/WebPlugin/Partner/renren/Call.php +++ b/library/WebPlugin/Partner/renren/Call.php @@ -72,7 +72,7 @@ class Call extends Factory /** * 获取当前用户的基本资料 * - * @see http://open.renren.com/wiki/API/v2/user/get + * @see //open.renren.com/wiki/API/v2/user/get * @param object $token 授权成功的TOKEN, 默认为NULL * @return array */ @@ -114,7 +114,7 @@ class Call extends Factory /** * 获取当前用户的偶像(关注)列表 * - * @see http://open.renren.com/wiki/V2/friend/list + * @see //open.renren.com/wiki/V2/friend/list * @param object $token 访问令牌 * @param array $params 参数列表 * Long $userId 用户ID。该字段默认为当前用户 @@ -163,7 +163,7 @@ class Call extends Factory * * 发送自定义新鲜事。新鲜事会发布用户的个人动态信息到用户人人网主页,同时会出现在好友的新鲜事中 * - * @see http://open.renren.com/wiki/API/v2/feed/put + * @see //open.renren.com/wiki/API/v2/feed/put * @param object $token 访问令牌 * @param String $image 新鲜事图片地址 * @param String $content 新鲜事主体内容 注意:最多200个字符。 diff --git a/library/WebPlugin/Partner/renren/Config.inc.php b/library/WebPlugin/Partner/renren/Config.inc.php index e126d36..2fa049a 100644 --- a/library/WebPlugin/Partner/renren/Config.inc.php +++ b/library/WebPlugin/Partner/renren/Config.inc.php @@ -4,6 +4,6 @@ defined('SITE_MAIN') || define('SITE_MAIN', $_SERVER['HTTP_HOST']); return array( 'appId' => '783130c654c94a77ace97054ae266019', 'appKey' => '05e430de8c1e40d3a1f39ca8d3f8252c', - 'callback' => SITE_MAIN . '/passport/autosign/renrenback', + 'callback' => WebPlugin\Helpers::transHttpsUrl(SITE_MAIN). '/passport/autosign/renrenback', 'scope' => 'publish_feed,photo_upload', ); \ No newline at end of file diff --git a/library/WebPlugin/Partner/renren/class/RennClientBase.class.php b/library/WebPlugin/Partner/renren/class/RennClientBase.class.php index 089fe80..97be72c 100644 --- a/library/WebPlugin/Partner/renren/class/RennClientBase.class.php +++ b/library/WebPlugin/Partner/renren/class/RennClientBase.class.php @@ -11,11 +11,11 @@ class RennClientBase { /** * token终端 */ - const TOKEN_ENDPOINT = 'http://graph.renren.com/oauth/token'; + const TOKEN_ENDPOINT = '//graph.renren.com/oauth/token'; /** * 授权终端 */ - const AUTHORIZATION_ENDPOINT = 'http://graph.renren.com/oauth/grant'; + const AUTHORIZATION_ENDPOINT = '//graph.renren.com/oauth/grant'; /** * API host */ diff --git a/library/WebPlugin/Partner/renren/class/service/AlbumService.php b/library/WebPlugin/Partner/renren/class/service/AlbumService.php index a92a594..42ed280 100644 --- a/library/WebPlugin/Partner/renren/class/service/AlbumService.php +++ b/library/WebPlugin/Partner/renren/class/service/AlbumService.php @@ -3,7 +3,7 @@ class AlbumService extends RennServiceBase { /** * 以分页的方式获取某个用户的相册列表 - * <br />对应API:{$link http://dev.renren.com/API/v2/album/list } + * <br />对应API:{$link //dev.renren.com/API/v2/album/list } * @param Long $ownerId 相册所有者的ID * @param Integer $pageSize 页面大小。取值范围1-100,默认大小20 * @param Integer $pageNumber 页码。取值大于零,默认值为1 @@ -26,7 +26,7 @@ class AlbumService extends RennServiceBase { } /** * 获取某个用户的某个相册 - * <br />对应API:{$link http://dev.renren.com/API/v2/album/get } + * <br />对应API:{$link //dev.renren.com/API/v2/album/get } * @param Long $albumId 相册的ID * @param Long $ownerId 相册所有者的ID * @return Album 相册 @@ -45,7 +45,7 @@ class AlbumService extends RennServiceBase { } /** * 创建一个相册 - * <br />对应API:{$link http://dev.renren.com/API/v2/album/put } + * <br />对应API:{$link //dev.renren.com/API/v2/album/put } * @param String $location 相册拍摄的地点。不能超过60个字符。 * @param String $description 相册的描述。不能超过200个字符。 * @param String $name 相册的名字。不能超过30个字符 diff --git a/library/WebPlugin/Partner/renren/class/service/AppService.php b/library/WebPlugin/Partner/renren/class/service/AppService.php index d29406c..e43090f 100644 --- a/library/WebPlugin/Partner/renren/class/service/AppService.php +++ b/library/WebPlugin/Partner/renren/class/service/AppService.php @@ -3,7 +3,7 @@ class AppService extends RennServiceBase { /** * 获取某个应用的信息,部分信息取自缓存,不能立即生效 - * <br />对应API:{$link http://dev.renren.com/API/v2/app/get } + * <br />对应API:{$link //dev.renren.com/API/v2/app/get } * @return App App */ function getApp() { diff --git a/library/WebPlugin/Partner/renren/class/service/BlogService.php b/library/WebPlugin/Partner/renren/class/service/BlogService.php index 5390439..7267a55 100644 --- a/library/WebPlugin/Partner/renren/class/service/BlogService.php +++ b/library/WebPlugin/Partner/renren/class/service/BlogService.php @@ -3,7 +3,7 @@ class BlogService extends RennServiceBase { /** * 以分页的方式获取某个用户的日志列表 - * <br />对应API:{$link http://dev.renren.com/API/v2/blog/list } + * <br />对应API:{$link //dev.renren.com/API/v2/blog/list } * @param Long $ownerId 日志所有者的ID * @param Integer $pageSize 页面大小。取值范围1-20,默认大小10 * @param Integer $pageNumber 页码。取值大于零,默认值为1 @@ -26,7 +26,7 @@ class BlogService extends RennServiceBase { } /** * 创建一篇日志 - * <br />对应API:{$link http://dev.renren.com/API/v2/blog/put } + * <br />对应API:{$link //dev.renren.com/API/v2/blog/put } * @param String $title 日志的标题 * @param AccessControl $accessControl 日志的访问控制 * @param String $password 日志的访问密码,1-16个字符 @@ -53,7 +53,7 @@ class BlogService extends RennServiceBase { } /** * 获取某个用户的某篇日志 - * <br />对应API:{$link http://dev.renren.com/API/v2/blog/get } + * <br />对应API:{$link //dev.renren.com/API/v2/blog/get } * @param Long $ownerId 日志所有者的ID * @param Long $blogId 日志的ID * @param String $password 日志访问密码 diff --git a/library/WebPlugin/Partner/renren/class/service/CommentService.php b/library/WebPlugin/Partner/renren/class/service/CommentService.php index 6762a07..479e4d9 100644 --- a/library/WebPlugin/Partner/renren/class/service/CommentService.php +++ b/library/WebPlugin/Partner/renren/class/service/CommentService.php @@ -3,7 +3,7 @@ class CommentService extends RennServiceBase { /** * 对某个对象(日志、状态、照片、相册、分享等)进行评论 - * <br />对应API:{$link http://dev.renren.com/API/v2/comment/put } + * <br />对应API:{$link //dev.renren.com/API/v2/comment/put } * @param String $content 评论内容。状态评论字数限制为240个字符,其余字数限制为500个字符。 * @param Long $targetUserId 评论回复目标用户的ID,若为0或不传此参数为:添加一条评论 * @param CommentType $commentType 评论的类型 @@ -34,7 +34,7 @@ class CommentService extends RennServiceBase { } /** * 以分页的方式获取某个UGC的评论 - * <br />对应API:{$link http://dev.renren.com/API/v2/comment/list } + * <br />对应API:{$link //dev.renren.com/API/v2/comment/list } * @param Boolean $desc 是否降序。true:按评论时间降序;false:按评论时间升序;默认:true,按评论时间降序。 * @param Integer $pageSize 页面大小。取值范围1-100,默认大小20 * @param Integer $pageNumber 页码。取值大于零,默认值为1 diff --git a/library/WebPlugin/Partner/renren/class/service/FeedService.php b/library/WebPlugin/Partner/renren/class/service/FeedService.php index c9934a8..9e1e73f 100644 --- a/library/WebPlugin/Partner/renren/class/service/FeedService.php +++ b/library/WebPlugin/Partner/renren/class/service/FeedService.php @@ -3,7 +3,7 @@ class FeedService extends RennServiceBase { /** * 发送自定义新鲜事。新鲜事会发布用户的个人动态信息到用户人人网主页,<br> 同时会出现在好友的新鲜事中。 - * <br />对应API:{$link http://dev.renren.com/API/v2/feed/put } + * <br />对应API:{$link //dev.renren.com/API/v2/feed/put } * @param String $message 用户输入的自定义内容。注意:最多200个字符 * @param String $title 新鲜事标题 注意:最多30个字符 * @param String $actionTargetUrl 新鲜事动作模块链接 @@ -46,7 +46,7 @@ class FeedService extends RennServiceBase { } /** * 根据新鲜事类型获取新鲜事列表 - * <br />对应API:{$link http://dev.renren.com/API/v2/feed/list } + * <br />对应API:{$link //dev.renren.com/API/v2/feed/list } * @param FeedType $feedType 新鲜事类型 * @param Long $userId 用户id,不传时表示获取当前用户人人网首页新鲜事,否则获取对应用户的个人主页新鲜事 * @param Integer $pageSize 页面大小。取值范围1-100,默认大小30 diff --git a/library/WebPlugin/Partner/renren/class/service/FriendService.php b/library/WebPlugin/Partner/renren/class/service/FriendService.php index 9fab26b..791d130 100644 --- a/library/WebPlugin/Partner/renren/class/service/FriendService.php +++ b/library/WebPlugin/Partner/renren/class/service/FriendService.php @@ -3,7 +3,7 @@ class FriendService extends RennServiceBase { /** * 获取某个用户的好友ID列表 - * <br />对应API:{$link http://dev.renren.com/API/v2/friend/list } + * <br />对应API:{$link //dev.renren.com/API/v2/friend/list } * @param Long $userId 用户ID。该字段默认为当前用户 * @param Integer $pageSize 页面大小。默认大小500。 * @param Integer $pageNumber 页码。取值大于零,默认值为1 diff --git a/library/WebPlugin/Partner/renren/class/service/InvitationService.php b/library/WebPlugin/Partner/renren/class/service/InvitationService.php index ea77652..6cb0723 100644 --- a/library/WebPlugin/Partner/renren/class/service/InvitationService.php +++ b/library/WebPlugin/Partner/renren/class/service/InvitationService.php @@ -3,7 +3,7 @@ class InvitationService extends RennServiceBase { /** * 发送邀请 - * <br />对应API:{$link http://dev.renren.com/API/v2/invitation/put } + * <br />对应API:{$link //dev.renren.com/API/v2/invitation/put } * @param InvitationType $invitationType 邀请类别,默认为应用邀请 * @param Long $userId 被邀请用户id * @param String $img 图片链接 diff --git a/library/WebPlugin/Partner/renren/class/service/LikeService.php b/library/WebPlugin/Partner/renren/class/service/LikeService.php index 902facf..3a45a21 100644 --- a/library/WebPlugin/Partner/renren/class/service/LikeService.php +++ b/library/WebPlugin/Partner/renren/class/service/LikeService.php @@ -3,7 +3,7 @@ class LikeService extends RennServiceBase { /** * 取消对站内资源的赞。 - * <br />对应API:{$link http://dev.renren.com/API/v2/like/ugc/remove } + * <br />对应API:{$link //dev.renren.com/API/v2/like/ugc/remove } * @param Long $ugcOwnerId UGC所有者的用户ID * @param LikeUGCType $likeUGCType * @param Long $ugcId UGC的ID @@ -26,7 +26,7 @@ class LikeService extends RennServiceBase { } /** * 赞人人内部资源,相册、照片、日志、分享、视频等。 - * <br />对应API:{$link http://dev.renren.com/API/v2/like/ugc/put } + * <br />对应API:{$link //dev.renren.com/API/v2/like/ugc/put } * @param Long $ugcOwnerId UGC所有者的用户ID * @param LikeUGCType $likeUGCType * @param Long $ugcId UGC的ID @@ -49,7 +49,7 @@ class LikeService extends RennServiceBase { } /** * 获取站内资源被赞的次数。 - * <br />对应API:{$link http://dev.renren.com/API/v2/like/ugc/info/get } + * <br />对应API:{$link //dev.renren.com/API/v2/like/ugc/info/get } * @param Integer $limit 最多返回喜欢此资源的用户数,最大为50,默认值为10。 * @param Boolean $withLikeUsers 是否包含喜欢此资源的用户 * @param LikeUGCType $likeUGCType 可以赞的UGC类型。 diff --git a/library/WebPlugin/Partner/renren/class/service/NotificationService.php b/library/WebPlugin/Partner/renren/class/service/NotificationService.php index 70365a0..b48ed80 100644 --- a/library/WebPlugin/Partner/renren/class/service/NotificationService.php +++ b/library/WebPlugin/Partner/renren/class/service/NotificationService.php @@ -3,8 +3,8 @@ class NotificationService extends RennServiceBase { /** * 以用户身份向用户发送通知 - * <br />对应API:{$link http://dev.renren.com/API/v2/notification/user/put } - * @param String $content 通知的内容,可以是XNML类型的文本信息,支持的XNML有<xn:name/>和<a/>,请注意:使用<xn:name/>标签的时候,其uid属性值只能是真实的用户id(阿拉伯数字)。例如:hello,<xn:name uid="200032219" linked="true"/> ,去看看这部电影<a href="http://www.tudou.com/programs/view/Tzpw9PIj8zM/">狮子王</a>。通知长度不能大于500个字符 + * <br />对应API:{$link //dev.renren.com/API/v2/notification/user/put } + * @param String $content 通知的内容,可以是XNML类型的文本信息,支持的XNML有<xn:name/>和<a/>,请注意:使用<xn:name/>标签的时候,其uid属性值只能是真实的用户id(阿拉伯数字)。例如:hello,<xn:name uid="200032219" linked="true"/> ,去看看这部电影<a href="//www.tudou.com/programs/view/Tzpw9PIj8zM/">狮子王</a>。通知长度不能大于500个字符 * @param Long $userIds 接收通知的用户列表。这些用户必须是当前登录用户的好友或应用安装用户。请确保一次传入的用户id数少于20个。不能给当前用户发送通知,发送的通知会被忽略 * @return Integer 发送成功返回1 */ @@ -30,8 +30,8 @@ class NotificationService extends RennServiceBase { } /** * 以应用身份向用户发送通知 - * <br />对应API:{$link http://dev.renren.com/API/v2/notification/app/put } - * @param String $content 通知的内容,可以是XNML类型的文本信息,支持的XNML有<xn:name/>和<a/>,请注意:使用<xn:name/>标签的时候,其uid属性值只能是真实的用户id(阿拉伯数字)。例如:hello,<xn:name uid="200032219" linked="true"/> ,去看看这部电影<a href="http://www.tudou.com/programs/view/Tzpw9PIj8zM/">狮子王</a>。通知长度不能大于500个字符 + * <br />对应API:{$link //dev.renren.com/API/v2/notification/app/put } + * @param String $content 通知的内容,可以是XNML类型的文本信息,支持的XNML有<xn:name/>和<a/>,请注意:使用<xn:name/>标签的时候,其uid属性值只能是真实的用户id(阿拉伯数字)。例如:hello,<xn:name uid="200032219" linked="true"/> ,去看看这部电影<a href="//www.tudou.com/programs/view/Tzpw9PIj8zM/">狮子王</a>。通知长度不能大于500个字符 * @param Long $userIds 接收通知的用户列表。这些用户必须安装了此应用。请确保一次传入的用户id数少于20个 * @return Integer 发送成功返回1 */ diff --git a/library/WebPlugin/Partner/renren/class/service/PhotoService.php b/library/WebPlugin/Partner/renren/class/service/PhotoService.php index e1d680f..cd14991 100644 --- a/library/WebPlugin/Partner/renren/class/service/PhotoService.php +++ b/library/WebPlugin/Partner/renren/class/service/PhotoService.php @@ -3,7 +3,7 @@ class PhotoService extends RennServiceBase { /** * 上传照片至用户相册。此接口需要采用multipart/form-data的编码方式。 - * <br />对应API:{$link http://dev.renren.com/API/v2/photo/upload } + * <br />对应API:{$link //dev.renren.com/API/v2/photo/upload } * @param Long $albumId 相册ID,albumId省略时会上传到应用相册 * @param String $description 照片描述。不能超过200个字符 * @param $paramter.simpleType2 $file 照片 @@ -26,7 +26,7 @@ class PhotoService extends RennServiceBase { } /** * 获取某个用户某个相册里的某张照片 - * <br />对应API:{$link http://dev.renren.com/API/v2/photo/get } + * <br />对应API:{$link //dev.renren.com/API/v2/photo/get } * @param Long $albumId 相册的ID * @param Long $photoId 照片的ID * @param Long $ownerId 相册所有者的ID @@ -53,7 +53,7 @@ class PhotoService extends RennServiceBase { } /** * 以分页的方式获取某个用户某个相册里的照片列表 - * <br />对应API:{$link http://dev.renren.com/API/v2/photo/list } + * <br />对应API:{$link //dev.renren.com/API/v2/photo/list } * @param Long $albumId 相册的ID * @param Long $ownerId 相册所有者的ID * @param Integer $pageSize 页面大小。取值范围1-100,默认大小20 diff --git a/library/WebPlugin/Partner/renren/class/service/ProfileService.php b/library/WebPlugin/Partner/renren/class/service/ProfileService.php index 69fbcad..b6249b9 100644 --- a/library/WebPlugin/Partner/renren/class/service/ProfileService.php +++ b/library/WebPlugin/Partner/renren/class/service/ProfileService.php @@ -3,7 +3,7 @@ class ProfileService extends RennServiceBase { /** * 获取用户的主页信息,包括各种统计数据。 - * <br />对应API:{$link http://dev.renren.com/API/v2/profile/get } + * <br />对应API:{$link //dev.renren.com/API/v2/profile/get } * @param Long $userId 用户ID * @return Profile 个人主页信息 */ diff --git a/library/WebPlugin/Partner/renren/class/service/ShareService.php b/library/WebPlugin/Partner/renren/class/service/ShareService.php index 1ac8447..15359be 100644 --- a/library/WebPlugin/Partner/renren/class/service/ShareService.php +++ b/library/WebPlugin/Partner/renren/class/service/ShareService.php @@ -3,7 +3,7 @@ class ShareService extends RennServiceBase { /** * 分享人人网内部UGC资源,例如:日志、照片、相册、分享(基于已有分享再次进行分享) - * <br />对应API:{$link http://dev.renren.com/API/v2/share/ugc/put } + * <br />对应API:{$link //dev.renren.com/API/v2/share/ugc/put } * @param Long $ugcOwnerId UGC所有者的用户ID * @param String $comment 分享时用户的评论,评论字数不能超过500字符 * @param Long $ugcId UGC的ID @@ -30,7 +30,7 @@ class ShareService extends RennServiceBase { } /** * 获取人人推荐资源 - * <br />对应API:{$link http://dev.renren.com/API/v2/share/hot/list } + * <br />对应API:{$link //dev.renren.com/API/v2/share/hot/list } * @param Integer $pageSize 页面大小。取值范围1-50,默认大小20 * @param Integer $pageNumber 页码。取值大于零,默认值为1 * @param ShareType $shareType 分享类型 @@ -52,8 +52,8 @@ class ShareService extends RennServiceBase { return $this->client->execute('/v2/share/hot/list', 'GET', $params, $bodyParams, $fileParams); } /** - * 分享人人网外部资源,例如:视频、图片等<br> 如果要分享一张本地照片到人人网(即上传),建议使用[http://wiki.dev.renren.com/wiki/v2/photo/upload /v2/photo/upload]接口 - * <br />对应API:{$link http://dev.renren.com/API/v2/share/url/put } + * 分享人人网外部资源,例如:视频、图片等<br> 如果要分享一张本地照片到人人网(即上传),建议使用[//wiki.dev.renren.com/wiki/v2/photo/upload /v2/photo/upload]接口 + * <br />对应API:{$link //dev.renren.com/API/v2/share/url/put } * @param String $comment 分享时用户的评论,评论字数不能超过500个字符 * @param String $url 分享资源的URL * @return Share 分享 @@ -72,7 +72,7 @@ class ShareService extends RennServiceBase { } /** * 获取某个用户的某个分享 - * <br />对应API:{$link http://dev.renren.com/API/v2/share/get } + * <br />对应API:{$link //dev.renren.com/API/v2/share/get } * @param Long $shareId 分享ID * @param Long $ownerId 分享所有者ID * @return Share 分享 @@ -91,7 +91,7 @@ class ShareService extends RennServiceBase { } /** * 以分页的方式获取某个用户的分享列表 - * <br />对应API:{$link http://dev.renren.com/API/v2/share/list } + * <br />对应API:{$link //dev.renren.com/API/v2/share/list } * @param Long $ownerId 分享所有者ID * @param Integer $pageSize 页面大小。取值范围1-100,默认大小20 * @param Integer $pageNumber 页码。取值大于零,默认值为1 diff --git a/library/WebPlugin/Partner/renren/class/service/StatusService.php b/library/WebPlugin/Partner/renren/class/service/StatusService.php index e9542ea..2900f62 100644 --- a/library/WebPlugin/Partner/renren/class/service/StatusService.php +++ b/library/WebPlugin/Partner/renren/class/service/StatusService.php @@ -3,7 +3,7 @@ class StatusService extends RennServiceBase { /** * 获取用户状态 - * <br />对应API:{$link http://dev.renren.com/API/v2/status/get } + * <br />对应API:{$link //dev.renren.com/API/v2/status/get } * @param Long $statusId 状态ID * @param Long $ownerId 状态所有者的用户ID * @return Status 状态 @@ -22,8 +22,8 @@ class StatusService extends RennServiceBase { } /** * 更新用户状态 - * <br />对应API:{$link http://dev.renren.com/API/v2/status/put } - * @param String $content 状态的内容。状态内容不能长于240个字符。内容中的UBB表情代码未经过处理,需要开发者自行进行替换。UBB表情参见:[http://wiki.dev.renren.com/wiki/V2/ubb/list 获取人人网ubb列表] + * <br />对应API:{$link //dev.renren.com/API/v2/status/put } + * @param String $content 状态的内容。状态内容不能长于240个字符。内容中的UBB表情代码未经过处理,需要开发者自行进行替换。UBB表情参见:[//wiki.dev.renren.com/wiki/V2/ubb/list 获取人人网ubb列表] * @return Status 状态 */ function putStatus($content) { @@ -37,7 +37,7 @@ class StatusService extends RennServiceBase { } /** * 获取用户状态列表 - * <br />对应API:{$link http://dev.renren.com/API/v2/status/list } + * <br />对应API:{$link //dev.renren.com/API/v2/status/list } * @param Long $ownerId 状态所有者的用户ID * @param Integer $pageSize 页面大小。取值范围1-100,默认大小20 * @param Integer $pageNumber 页码。取值大于零,默认值为1 @@ -60,8 +60,8 @@ class StatusService extends RennServiceBase { } /** * 分享用户状态 - * <br />对应API:{$link http://dev.renren.com/API/v2/status/share } - * @param String $content 状态的内容。状态内容不能长于240个字符。内容中的UBB表情代码未经过处理,需要开发者自行进行替换。UBB表情参见:[http://wiki.dev.renren.com/wiki/V2/ubb/list 获取人人网ubb列表] + * <br />对应API:{$link //dev.renren.com/API/v2/status/share } + * @param String $content 状态的内容。状态内容不能长于240个字符。内容中的UBB表情代码未经过处理,需要开发者自行进行替换。UBB表情参见:[//wiki.dev.renren.com/wiki/V2/ubb/list 获取人人网ubb列表] * @param Long $statusId 状态ID * @param Long $ownerId 状态所有者的用户ID * @return Status 状态 diff --git a/library/WebPlugin/Partner/renren/class/service/UbbService.php b/library/WebPlugin/Partner/renren/class/service/UbbService.php index 0c9fa52..68b40d4 100644 --- a/library/WebPlugin/Partner/renren/class/service/UbbService.php +++ b/library/WebPlugin/Partner/renren/class/service/UbbService.php @@ -3,7 +3,7 @@ class UbbService extends RennServiceBase { /** * 获取人人网ubb列表 - * <br />对应API:{$link http://dev.renren.com/API/v2/ubb/list } + * <br />对应API:{$link //dev.renren.com/API/v2/ubb/list } * @return Ubb UBB表情 */ function listUbb() { diff --git a/library/WebPlugin/Partner/renren/class/service/UserService.php b/library/WebPlugin/Partner/renren/class/service/UserService.php index 8102d70..ef1b906 100644 --- a/library/WebPlugin/Partner/renren/class/service/UserService.php +++ b/library/WebPlugin/Partner/renren/class/service/UserService.php @@ -3,7 +3,7 @@ class UserService extends RennServiceBase { /** * 批量获取用户信息 - * <br />对应API:{$link http://dev.renren.com/API/v2/user/batch } + * <br />对应API:{$link //dev.renren.com/API/v2/user/batch } * @param Long $userIds 批量获取的用户IDs,最多支持50个 * @return User 用户 */ @@ -26,7 +26,7 @@ class UserService extends RennServiceBase { } /** * 获取用户信息 - * <br />对应API:{$link http://dev.renren.com/API/v2/user/get } + * <br />对应API:{$link //dev.renren.com/API/v2/user/get } * @param Long $userId 用户ID * @return User 用户 */ @@ -41,7 +41,7 @@ class UserService extends RennServiceBase { } /** * 获取某个用户的好友列表 - * <br />对应API:{$link http://dev.renren.com/API/v2/user/friend/list } + * <br />对应API:{$link //dev.renren.com/API/v2/user/friend/list } * @param Long $userId 用户ID * @param Integer $pageSize 页面大小。取值范围1-100,默认大小20 * @param Integer $pageNumber 页码。取值大于零,默认值为1 @@ -64,7 +64,7 @@ class UserService extends RennServiceBase { } /** * 获取当前登录用户未安装某应用里的好友列表 - * <br />对应API:{$link http://dev.renren.com/API/v2/user/friend/uninstall/list } + * <br />对应API:{$link //dev.renren.com/API/v2/user/friend/uninstall/list } * @return User 用户 */ function listUserFriendUninstall() { @@ -75,7 +75,7 @@ class UserService extends RennServiceBase { } /** * 以分页的方式获取某个用户与当前登录用户的共同好友 - * <br />对应API:{$link http://dev.renren.com/API/v2/user/friend/mutual/list } + * <br />对应API:{$link //dev.renren.com/API/v2/user/friend/mutual/list } * @param Long $userId 用户ID * @return User 用户 */ @@ -90,7 +90,7 @@ class UserService extends RennServiceBase { } /** * 获取当前登录用户在某个应用里的好友列表 - * <br />对应API:{$link http://dev.renren.com/API/v2/user/friend/app/list } + * <br />对应API:{$link //dev.renren.com/API/v2/user/friend/app/list } * @return User 用户 */ function listUserFriendApp() { @@ -101,7 +101,7 @@ class UserService extends RennServiceBase { } /** * 获取当前登录用户信息 - * <br />对应API:{$link http://dev.renren.com/API/v2/user/login/get } + * <br />对应API:{$link //dev.renren.com/API/v2/user/login/get } * @return User 用户 */ function getUserLogin() { diff --git a/library/WebPlugin/Partner/sinaweibo/Call.php b/library/WebPlugin/Partner/sinaweibo/Call.php index 5ba2e19..8f6c368 100644 --- a/library/WebPlugin/Partner/sinaweibo/Call.php +++ b/library/WebPlugin/Partner/sinaweibo/Call.php @@ -94,7 +94,7 @@ class Call extends Factory /** * 获取当前用户的关注列表 * - * @see http://open.weibo.com/wiki/2/friendships/friends + * @see //open.weibo.com/wiki/2/friendships/friends * * @param string $token 已授权过的访问TOKEN * @param array $params 参数列表,如下: diff --git a/library/WebPlugin/Partner/sinaweibo/Config.inc.php b/library/WebPlugin/Partner/sinaweibo/Config.inc.php index dcafbce..6df4bf3 100644 --- a/library/WebPlugin/Partner/sinaweibo/Config.inc.php +++ b/library/WebPlugin/Partner/sinaweibo/Config.inc.php @@ -4,5 +4,5 @@ defined('SITE_MAIN') || define('SITE_MAIN', $_SERVER['HTTP_HOST']); return array( 'appId' => '3739328910', 'appKey' => '9d44cded26d048e23089e5e975c93df1', - 'appCallbackUrl' => SITE_MAIN . '/passport/autosign/sinacallback', + 'appCallbackUrl' => WebPlugin\Helpers::transHttpsUrl(SITE_MAIN) . '/passport/autosign/sinacallback', ); \ No newline at end of file diff --git a/library/WebPlugin/Partner/sinaweibo/class/Saev2.class.php b/library/WebPlugin/Partner/sinaweibo/class/Saev2.class.php index a3a428c..04847e1 100644 --- a/library/WebPlugin/Partner/sinaweibo/class/Saev2.class.php +++ b/library/WebPlugin/Partner/sinaweibo/class/Saev2.class.php @@ -16,7 +16,7 @@ class OAuthException extends Exception { /** * 新浪微博 OAuth 认证类(OAuth2) * - * 授权机制说明请大家参考微博开放平台文档:{@link http://open.weibo.com/wiki/Oauth2} + * 授权机制说明请大家参考微博开放平台文档:{@link //open.weibo.com/wiki/Oauth2} * * @package sae * @author Elmer Zhang @@ -138,7 +138,7 @@ class SaeTOAuthV2 { /** * authorize接口 * - * 对应API:{@link http://open.weibo.com/wiki/Oauth2/authorize Oauth2/authorize} + * 对应API:{@link //open.weibo.com/wiki/Oauth2/authorize Oauth2/authorize} * * @param string $url 授权后的回调地址,站外应用需与回调地址一致,站内应用需要填写canvas page的地址 * @param string $response_type 支持的值包括 code 和token 默认值为code @@ -166,7 +166,7 @@ class SaeTOAuthV2 { /** * access_token接口 * - * 对应API:{@link http://open.weibo.com/wiki/OAuth2/access_token OAuth2/access_token} + * 对应API:{@link //open.weibo.com/wiki/OAuth2/access_token OAuth2/access_token} * * @param string $type 请求的类型,可以为:code, password, token * @param array $keys 其他参数: @@ -532,7 +532,7 @@ class SaeTClientV2 /** * 获取最新的公共微博消息 * - * 对应API:{@link http://open.weibo.com/wiki/2/statuses/public_timeline statuses/public_timeline} + * 对应API:{@link //open.weibo.com/wiki/2/statuses/public_timeline statuses/public_timeline} * * @access public * @param int $count 单页返回的记录条数,默认为50。 @@ -552,8 +552,8 @@ class SaeTClientV2 /** * 获取当前登录用户及其所关注用户的最新微博消息。 * - * 获取当前登录用户及其所关注用户的最新微博消息。和用户登录 http://weibo.com 后在“我的首页”中看到的内容相同。同friends_timeline() - * <br />对应API:{@link http://open.weibo.com/wiki/2/statuses/home_timeline statuses/home_timeline} + * 获取当前登录用户及其所关注用户的最新微博消息。和用户登录 //weibo.com 后在“我的首页”中看到的内容相同。同friends_timeline() + * <br />对应API:{@link //open.weibo.com/wiki/2/statuses/home_timeline statuses/home_timeline} * * @access public * @param int $page 指定返回结果的页码。根据当前登录用户所关注的用户数及这些被关注用户发表的微博数,翻页功能最多能查看的总记录数会有所不同,通常最多能查看1000条左右。默认值1。可选。 @@ -586,8 +586,8 @@ class SaeTClientV2 /** * 获取当前登录用户及其所关注用户的最新微博消息。 * - * 获取当前登录用户及其所关注用户的最新微博消息。和用户登录 http://weibo.com 后在“我的首页”中看到的内容相同。同home_timeline() - * <br />对应API:{@link http://open.weibo.com/wiki/2/statuses/friends_timeline statuses/friends_timeline} + * 获取当前登录用户及其所关注用户的最新微博消息。和用户登录 //weibo.com 后在“我的首页”中看到的内容相同。同home_timeline() + * <br />对应API:{@link //open.weibo.com/wiki/2/statuses/friends_timeline statuses/friends_timeline} * * @access public * @param int $page 指定返回结果的页码。根据当前登录用户所关注的用户数及这些被关注用户发表的微博数,翻页功能最多能查看的总记录数会有所不同,通常最多能查看1000条左右。默认值1。可选。 @@ -607,7 +607,7 @@ class SaeTClientV2 * 获取用户发布的微博信息列表 * * 返回用户的发布的最近n条信息,和用户微博页面返回内容是一致的。此接口也可以请求其他用户的最新发表微博。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/statuses/user_timeline statuses/user_timeline} + * <br />对应API:{@link //open.weibo.com/wiki/2/statuses/user_timeline statuses/user_timeline} * * @access public * @param int $page 页码 @@ -646,7 +646,7 @@ class SaeTClientV2 * 获取用户发布的微博信息列表 * * 返回用户的发布的最近n条信息,和用户微博页面返回内容是一致的。此接口也可以请求其他用户的最新发表微博。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/statuses/user_timeline statuses/user_timeline} + * <br />对应API:{@link //open.weibo.com/wiki/2/statuses/user_timeline statuses/user_timeline} * * @access public * @param string $screen_name 微博昵称,主要是用来区分用户UID跟微博昵称,当二者一样而产生歧义的时候,建议使用该参数 @@ -685,7 +685,7 @@ class SaeTClientV2 /** * 批量获取指定的一批用户的timeline * - * 对应API:{@link http://open.weibo.com/wiki/2/statuses/timeline_batch statuses/timeline_batch} + * 对应API:{@link //open.weibo.com/wiki/2/statuses/timeline_batch statuses/timeline_batch} * * @param string $screen_name 需要查询的用户昵称,用半角逗号分隔,一次最多20个 * @param int $count 单页返回的记录条数,默认为50。 @@ -712,7 +712,7 @@ class SaeTClientV2 /** * 批量获取指定的一批用户的timeline * - * 对应API:{@link http://open.weibo.com/wiki/2/statuses/timeline_batch statuses/timeline_batch} + * 对应API:{@link //open.weibo.com/wiki/2/statuses/timeline_batch statuses/timeline_batch} * * @param string $uids 需要查询的用户ID,用半角逗号分隔,一次最多20个。 * @param int $count 单页返回的记录条数,默认为50。 @@ -743,7 +743,7 @@ class SaeTClientV2 /** * 返回一条原创微博消息的最新n条转发微博消息。本接口无法对非原创微博进行查询。 * - * 对应API:{@link http://open.weibo.com/wiki/2/statuses/repost_timeline statuses/repost_timeline} + * 对应API:{@link //open.weibo.com/wiki/2/statuses/repost_timeline statuses/repost_timeline} * * @access public * @param int $sid 要获取转发微博列表的原创微博ID。 @@ -776,7 +776,7 @@ class SaeTClientV2 /** * 获取当前用户最新转发的n条微博消息 * - * 对应API:{@link http://open.weibo.com/wiki/2/statuses/repost_by_me statuses/repost_by_me} + * 对应API:{@link //open.weibo.com/wiki/2/statuses/repost_by_me statuses/repost_by_me} * * @access public * @param int $page 返回结果的页码。 @@ -804,7 +804,7 @@ class SaeTClientV2 * 获取@当前用户的微博列表 * * 返回最新n条提到登录用户的微博消息(即包含@username的微博消息) - * <br />对应API:{@link http://open.weibo.com/wiki/2/statuses/mentions statuses/mentions} + * <br />对应API:{@link //open.weibo.com/wiki/2/statuses/mentions statuses/mentions} * * @access public * @param int $page 返回结果的页序号。 @@ -839,7 +839,7 @@ class SaeTClientV2 * 根据ID获取单条微博信息内容 * * 获取单条ID的微博信息,作者信息将同时返回。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/statuses/show statuses/show} + * <br />对应API:{@link //open.weibo.com/wiki/2/statuses/show statuses/show} * * @access public * @param int $id 要获取已发表的微博ID, 如ID不存在返回空 @@ -856,7 +856,7 @@ class SaeTClientV2 /** * 根据微博id号获取微博的信息 * - * 对应API:{@link http://open.weibo.com/wiki/2/statuses/show_batch statuses/show_batch} + * 对应API:{@link //open.weibo.com/wiki/2/statuses/show_batch statuses/show_batch} * * @param string $ids 需要查询的微博ID,用半角逗号分隔,最多不超过50个。 * @return array @@ -878,7 +878,7 @@ class SaeTClientV2 /** * 通过微博(评论、私信)ID获取其MID * - * 对应API:{@link http://open.weibo.com/wiki/2/statuses/querymid statuses/querymid} + * 对应API:{@link //open.weibo.com/wiki/2/statuses/querymid statuses/querymid} * * @param int|string $id 需要查询的微博(评论、私信)ID,批量模式下,用半角逗号分隔,最多不超过20个。 * @param int $type 获取类型,1:微博、2:评论、3:私信,默认为1。 @@ -897,7 +897,7 @@ class SaeTClientV2 /** * 通过微博(评论、私信)MID获取其ID * - * 对应API:{@link http://open.weibo.com/wiki/2/statuses/queryid statuses/queryid} + * 对应API:{@link //open.weibo.com/wiki/2/statuses/queryid statuses/queryid} * * @param int|string $mid 需要查询的微博(评论、私信)MID,批量模式下,用半角逗号分隔,最多不超过20个。 * @param int $type 获取类型,1:微博、2:评论、3:私信,默认为1。 @@ -920,7 +920,7 @@ class SaeTClientV2 /** * 按天返回热门微博转发榜的微博列表 * - * 对应API:{@link http://open.weibo.com/wiki/2/statuses/hot/repost_daily statuses/hot/repost_daily} + * 对应API:{@link //open.weibo.com/wiki/2/statuses/hot/repost_daily statuses/hot/repost_daily} * * @param int $count 返回的记录条数,最大不超过50,默认为20。 * @param int $base_app 是否只获取当前应用的数据。0为否(所有数据),1为是(仅当前应用),默认为0。 @@ -937,7 +937,7 @@ class SaeTClientV2 /** * 按周返回热门微博转发榜的微博列表 * - * 对应API:{@link http://open.weibo.com/wiki/2/statuses/hot/repost_weekly statuses/hot/repost_weekly} + * 对应API:{@link //open.weibo.com/wiki/2/statuses/hot/repost_weekly statuses/hot/repost_weekly} * * @param int $count 返回的记录条数,最大不超过50,默认为20。 * @param int $base_app 是否只获取当前应用的数据。0为否(所有数据),1为是(仅当前应用),默认为0。 @@ -954,7 +954,7 @@ class SaeTClientV2 /** * 按天返回热门微博评论榜的微博列表 * - * 对应API:{@link http://open.weibo.com/wiki/2/statuses/hot/comments_daily statuses/hot/comments_daily} + * 对应API:{@link //open.weibo.com/wiki/2/statuses/hot/comments_daily statuses/hot/comments_daily} * * @param int $count 返回的记录条数,最大不超过50,默认为20。 * @param int $base_app 是否只获取当前应用的数据。0为否(所有数据),1为是(仅当前应用),默认为0。 @@ -971,7 +971,7 @@ class SaeTClientV2 /** * 按周返回热门微博评论榜的微博列表 * - * 对应API:{@link http://open.weibo.com/wiki/2/statuses/hot/comments_weekly statuses/hot/comments_weekly} + * 对应API:{@link //open.weibo.com/wiki/2/statuses/hot/comments_weekly statuses/hot/comments_weekly} * * @param int $count 返回的记录条数,最大不超过50,默认为20。 * @param int $base_app 是否只获取当前应用的数据。0为否(所有数据),1为是(仅当前应用),默认为0。 @@ -990,7 +990,7 @@ class SaeTClientV2 * 转发一条微博信息。 * * 可加评论。为防止重复,发布的信息与最新信息一样话,将会被忽略。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/statuses/repost statuses/repost} + * <br />对应API:{@link //open.weibo.com/wiki/2/statuses/repost statuses/repost} * * @access public * @param int $sid 转发的微博ID @@ -1014,7 +1014,7 @@ class SaeTClientV2 * 删除一条微博 * * 根据ID删除微博消息。注意:只能删除自己发布的信息。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/statuses/destroy statuses/destroy} + * <br />对应API:{@link //open.weibo.com/wiki/2/statuses/destroy statuses/destroy} * * @access public * @param int $id 要删除的微博ID @@ -1029,7 +1029,7 @@ class SaeTClientV2 * 删除一条微博 * * 删除微博。注意:只能删除自己发布的信息。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/statuses/destroy statuses/destroy} + * <br />对应API:{@link //open.weibo.com/wiki/2/statuses/destroy statuses/destroy} * * @access public * @param int $id 要删除的微博ID @@ -1050,7 +1050,7 @@ class SaeTClientV2 * 发布一条微博信息。 * <br />注意:lat和long参数需配合使用,用于标记发表微博消息时所在的地理位置,只有用户设置中geo_enabled=true时候地理位置信息才有效。 * <br />注意:为防止重复提交,当用户发布的微博消息与上次成功发布的微博消息内容一样时,将返回400错误,给出错误提示:“40025:Error: repeated weibo text!“。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/statuses/update statuses/update} + * <br />对应API:{@link //open.weibo.com/wiki/2/statuses/update statuses/update} * * @access public * @param string $status 要更新的微博信息。信息内容不超过140个汉字, 为空返回400错误。 @@ -1083,7 +1083,7 @@ class SaeTClientV2 * * 发表图片微博消息。目前上传图片大小限制为<5M。 * <br />注意:lat和long参数需配合使用,用于标记发表微博消息时所在的地理位置,只有用户设置中geo_enabled=true时候地理位置信息才有效。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/statuses/upload statuses/upload} + * <br />对应API:{@link //open.weibo.com/wiki/2/statuses/upload statuses/upload} * * @access public * @param string $status 要更新的微博信息。信息内容不超过140个汉字, 为空返回400错误。 @@ -1111,7 +1111,7 @@ class SaeTClientV2 /** * 指定一个图片URL地址抓取后上传并同时发布一条新微博 * - * 对应API:{@link http://open.weibo.com/wiki/2/statuses/upload_url_text statuses/upload_url_text} + * 对应API:{@link //open.weibo.com/wiki/2/statuses/upload_url_text statuses/upload_url_text} * * @param string $status 要发布的微博文本内容,内容不超过140个汉字。 * @param string $url 图片的URL地址,必须以http开头。 @@ -1130,7 +1130,7 @@ class SaeTClientV2 * 获取表情列表 * * 返回新浪微博官方所有表情、魔法表情的相关信息。包括短语、表情类型、表情分类,是否热门等。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/emotions emotions} + * <br />对应API:{@link //open.weibo.com/wiki/2/emotions emotions} * * @access public * @param string $type 表情类别。"face":普通表情,"ani":魔法表情,"cartoon":动漫表情。默认为"face"。可选。 @@ -1149,7 +1149,7 @@ class SaeTClientV2 /** * 根据微博ID返回某条微博的评论列表 * - * 对应API:{@link http://open.weibo.com/wiki/2/comments/show comments/show} + * 对应API:{@link //open.weibo.com/wiki/2/comments/show comments/show} * * @param int $sid 需要查询的微博ID。 * @param int $page 返回结果的页码,默认为1。 @@ -1182,7 +1182,7 @@ class SaeTClientV2 /** * 获取当前登录用户所发出的评论列表 * - * 对应API:{@link http://open.weibo.com/wiki/2/comments/by_me comments/by_me} + * 对应API:{@link //open.weibo.com/wiki/2/comments/by_me comments/by_me} * * @param int $since_id 若指定此参数,则返回ID比since_id大的评论(即比since_id时间晚的评论),默认为0。 * @param int $max_id 若指定此参数,则返回ID小于或等于max_id的评论,默认为0。 @@ -1211,7 +1211,7 @@ class SaeTClientV2 /** * 获取当前登录用户所接收到的评论列表 * - * 对应API:{@link http://open.weibo.com/wiki/2/comments/to_me comments/to_me} + * 对应API:{@link //open.weibo.com/wiki/2/comments/to_me comments/to_me} * * @param int $since_id 若指定此参数,则返回ID比since_id大的评论(即比since_id时间晚的评论),默认为0。 * @param int $max_id 若指定此参数,则返回ID小于或等于max_id的评论,默认为0。 @@ -1243,7 +1243,7 @@ class SaeTClientV2 * 最新评论(按时间) * * 返回最新n条发送及收到的评论。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/comments/timeline comments/timeline} + * <br />对应API:{@link //open.weibo.com/wiki/2/comments/timeline comments/timeline} * * @access public * @param int $page 页码 @@ -1271,7 +1271,7 @@ class SaeTClientV2 /** * 获取最新的提到当前登录用户的评论,即@我的评论 * - * 对应API:{@link http://open.weibo.com/wiki/2/comments/mentions comments/mentions} + * 对应API:{@link //open.weibo.com/wiki/2/comments/mentions comments/mentions} * * @param int $since_id 若指定此参数,则返回ID比since_id大的评论(即比since_id时间晚的评论),默认为0。 * @param int $max_id 若指定此参数,则返回ID小于或等于max_id的评论,默认为0。 @@ -1297,7 +1297,7 @@ class SaeTClientV2 /** * 根据评论ID批量返回评论信息 * - * 对应API:{@link http://open.weibo.com/wiki/2/comments/show_batch comments/show_batch} + * 对应API:{@link //open.weibo.com/wiki/2/comments/show_batch comments/show_batch} * * @param string $cids 需要查询的批量评论ID,用半角逗号分隔,最大50 * @return array @@ -1320,7 +1320,7 @@ class SaeTClientV2 /** * 对一条微博进行评论 * - * 对应API:{@link http://open.weibo.com/wiki/2/comments/create comments/create} + * 对应API:{@link //open.weibo.com/wiki/2/comments/create comments/create} * * @param string $comment 评论内容,内容不超过140个汉字。 * @param int $id 需要评论的微博ID。 @@ -1341,7 +1341,7 @@ class SaeTClientV2 * 删除当前用户的微博评论信息。 * * 注意:只能删除自己发布的评论,发部微博的用户不可以删除其他人的评论。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/statuses/comment_destroy statuses/comment_destroy} + * <br />对应API:{@link //open.weibo.com/wiki/2/statuses/comment_destroy statuses/comment_destroy} * * @access public * @param int $cid 要删除的评论id @@ -1359,7 +1359,7 @@ class SaeTClientV2 * 根据评论ID批量删除评论 * * 注意:只能删除自己发布的评论,发部微博的用户不可以删除其他人的评论。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/comments/destroy_batch comments/destroy_batch} + * <br />对应API:{@link //open.weibo.com/wiki/2/comments/destroy_batch comments/destroy_batch} * * @access public * @param string $ids 需要删除的评论ID,用半角逗号隔开,最多20个。 @@ -1384,7 +1384,7 @@ class SaeTClientV2 * 回复一条评论 * * 为防止重复,发布的信息与最后一条评论/回复信息一样话,将会被忽略。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/comments/reply comments/reply} + * <br />对应API:{@link //open.weibo.com/wiki/2/comments/reply comments/reply} * * @access public * @param int $sid 微博id @@ -1413,7 +1413,7 @@ class SaeTClientV2 * 根据用户UID或昵称获取用户资料 * * 按用户UID或昵称返回用户资料,同时也将返回用户的最新发布的微博。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/users/show users/show} + * <br />对应API:{@link //open.weibo.com/wiki/2/users/show users/show} * * @access public * @param int $uid 用户UID。 @@ -1434,7 +1434,7 @@ class SaeTClientV2 * 根据用户UID或昵称获取用户资料 * * 按用户UID或昵称返回用户资料,同时也将返回用户的最新发布的微博。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/users/show users/show} + * <br />对应API:{@link //open.weibo.com/wiki/2/users/show users/show} * * @access public * @param string $screen_name 用户UID。 @@ -1451,10 +1451,10 @@ class SaeTClientV2 /** * 通过个性化域名获取用户资料以及用户最新的一条微博 * - * 对应API:{@link http://open.weibo.com/wiki/2/users/domain_show users/domain_show} + * 对应API:{@link //open.weibo.com/wiki/2/users/domain_show users/domain_show} * * @access public - * @param mixed $domain 用户个性域名。例如:lazypeople,而不是http://weibo.com/lazypeople + * @param mixed $domain 用户个性域名。例如:lazypeople,而不是//weibo.com/lazypeople * @return array */ function domain_show( $domain ) @@ -1467,7 +1467,7 @@ class SaeTClientV2 /** * 批量获取用户信息按uids * - * 对应API:{@link http://open.weibo.com/wiki/2/users/show_batch users/show_batch} + * 对应API:{@link //open.weibo.com/wiki/2/users/show_batch users/show_batch} * * @param string $uids 需要查询的用户ID,用半角逗号分隔,一次最多20个。 * @return array @@ -1489,7 +1489,7 @@ class SaeTClientV2 /** * 批量获取用户信息按screen_name * - * 对应API:{@link http://open.weibo.com/wiki/2/users/show_batch users/show_batch} + * 对应API:{@link //open.weibo.com/wiki/2/users/show_batch users/show_batch} * * @param string $screen_name 需要查询的用户昵称,用半角逗号分隔,一次最多20个。 * @return array @@ -1510,7 +1510,7 @@ class SaeTClientV2 * 获取用户的关注列表 * * 如果没有提供cursor参数,将只返回最前面的5000个关注id - * <br />对应API:{@link http://open.weibo.com/wiki/2/friendships/friends friendships/friends} + * <br />对应API:{@link //open.weibo.com/wiki/2/friendships/friends friendships/friends} * * @access public * @param int $cursor 返回结果的游标,下一页用返回值里的next_cursor,上一页用previous_cursor,默认为0。 @@ -1533,7 +1533,7 @@ class SaeTClientV2 * 获取用户的关注列表 * * 如果没有提供cursor参数,将只返回最前面的5000个关注id - * <br />对应API:{@link http://open.weibo.com/wiki/2/friendships/friends friendships/friends} + * <br />对应API:{@link //open.weibo.com/wiki/2/friendships/friends friendships/friends} * * @access public * @param int $cursor 返回结果的游标,下一页用返回值里的next_cursor,上一页用previous_cursor,默认为0。 @@ -1554,7 +1554,7 @@ class SaeTClientV2 /** * 获取两个用户之间的共同关注人列表 * - * 对应API:{@link http://open.weibo.com/wiki/2/friendships/friends/in_common friendships/friends/in_common} + * 对应API:{@link //open.weibo.com/wiki/2/friendships/friends/in_common friendships/friends/in_common} * * @param int $uid 需要获取共同关注关系的用户UID * @param int $suid 需要获取共同关注关系的用户UID,默认为当前登录用户。 @@ -1575,7 +1575,7 @@ class SaeTClientV2 /** * 获取用户的双向关注列表,即互粉列表 * - * 对应API:{@link http://open.weibo.com/wiki/2/friendships/friends/bilateral friendships/friends/bilateral} + * 对应API:{@link //open.weibo.com/wiki/2/friendships/friends/bilateral friendships/friends/bilateral} * * @param int $uid 需要获取双向关注列表的用户UID。 * @param int $count 单页返回的记录条数,默认为50。 @@ -1596,7 +1596,7 @@ class SaeTClientV2 /** * 获取用户的双向关注uid列表 * - * 对应API:{@link http://open.weibo.com/wiki/2/friendships/friends/bilateral/ids friendships/friends/bilateral/ids} + * 对应API:{@link //open.weibo.com/wiki/2/friendships/friends/bilateral/ids friendships/friends/bilateral/ids} * * @param int $uid 需要获取双向关注列表的用户UID。 * @param int $count 单页返回的记录条数,默认为50。 @@ -1618,7 +1618,7 @@ class SaeTClientV2 * 获取用户的关注列表uid * * 如果没有提供cursor参数,将只返回最前面的5000个关注id - * <br />对应API:{@link http://open.weibo.com/wiki/2/friendships/friends/ids friendships/friends/ids} + * <br />对应API:{@link //open.weibo.com/wiki/2/friendships/friends/ids friendships/friends/ids} * * @access public * @param int $cursor 返回结果的游标,下一页用返回值里的next_cursor,上一页用previous_cursor,默认为0。 @@ -1640,7 +1640,7 @@ class SaeTClientV2 * 获取用户的关注列表uid * * 如果没有提供cursor参数,将只返回最前面的5000个关注id - * <br />对应API:{@link http://open.weibo.com/wiki/2/friendships/friends/ids friendships/friends/ids} + * <br />对应API:{@link //open.weibo.com/wiki/2/friendships/friends/ids friendships/friends/ids} * * @access public * @param int $cursor 返回结果的游标,下一页用返回值里的next_cursor,上一页用previous_cursor,默认为0。 @@ -1661,7 +1661,7 @@ class SaeTClientV2 /** * 批量获取当前登录用户的关注人的备注信息 * - * 对应API:{@link http://open.weibo.com/wiki/2/friendships/friends/remark_batch friendships/friends/remark_batch} + * 对应API:{@link //open.weibo.com/wiki/2/friendships/friends/remark_batch friendships/friends/remark_batch} * * @param string $uids 需要获取备注的用户UID,用半角逗号分隔,最多不超过50个。 * @return array @@ -1683,7 +1683,7 @@ class SaeTClientV2 /** * 获取用户的粉丝列表 * - * 对应API:{@link http://open.weibo.com/wiki/2/friendships/followers friendships/followers} + * 对应API:{@link //open.weibo.com/wiki/2/friendships/followers friendships/followers} * * @param int $uid 需要查询的用户UID * @param int $count 单页返回的记录条数,默认为50,最大不超过200。 @@ -1703,7 +1703,7 @@ class SaeTClientV2 /** * 获取用户的粉丝列表 * - * 对应API:{@link http://open.weibo.com/wiki/2/friendships/followers friendships/followers} + * 对应API:{@link //open.weibo.com/wiki/2/friendships/followers friendships/followers} * * @param string $screen_name 需要查询的用户的昵称 * @param int $count 单页返回的记录条数,默认为50,最大不超过200。 @@ -1722,7 +1722,7 @@ class SaeTClientV2 /** * 获取用户的粉丝列表uid * - * 对应API:{@link http://open.weibo.com/wiki/2/friendships/followers friendships/followers} + * 对应API:{@link //open.weibo.com/wiki/2/friendships/followers friendships/followers} * * @param int $uid 需要查询的用户UID * @param int $count 单页返回的记录条数,默认为50,最大不超过200。 @@ -1742,7 +1742,7 @@ class SaeTClientV2 /** * 获取用户的粉丝列表uid * - * 对应API:{@link http://open.weibo.com/wiki/2/friendships/followers friendships/followers} + * 对应API:{@link //open.weibo.com/wiki/2/friendships/followers friendships/followers} * * @param string $screen_name 需要查询的用户screen_name * @param int $count 单页返回的记录条数,默认为50,最大不超过200。 @@ -1761,7 +1761,7 @@ class SaeTClientV2 /** * 获取优质粉丝 * - * 对应API:{@link http://open.weibo.com/wiki/2/friendships/followers/active friendships/followers/active} + * 对应API:{@link //open.weibo.com/wiki/2/friendships/followers/active friendships/followers/active} * * @param int $uid 需要查询的用户UID。 * @param int $count 返回的记录条数,默认为20,最大不超过200。 @@ -1780,7 +1780,7 @@ class SaeTClientV2 /** * 获取当前登录用户的关注人中又关注了指定用户的用户列表 * - * 对应API:{@link http://open.weibo.com/wiki/2/friendships/friends_chain/followers friendships/friends_chain/followers} + * 对应API:{@link //open.weibo.com/wiki/2/friendships/friends_chain/followers friendships/friends_chain/followers} * * @param int $uid 指定的关注目标用户UID。 * @param int $count 单页返回的记录条数,默认为50。 @@ -1801,7 +1801,7 @@ class SaeTClientV2 * 返回两个用户关系的详细情况 * * 如果源用户或目的用户不存在,将返回http的400错误 - * <br />对应API:{@link http://open.weibo.com/wiki/2/friendships/show friendships/show} + * <br />对应API:{@link //open.weibo.com/wiki/2/friendships/show friendships/show} * * @access public * @param mixed $target_id 目标用户UID @@ -1826,7 +1826,7 @@ class SaeTClientV2 * 返回两个用户关系的详细情况 * * 如果源用户或目的用户不存在,将返回http的400错误 - * <br />对应API:{@link http://open.weibo.com/wiki/2/friendships/show friendships/show} + * <br />对应API:{@link //open.weibo.com/wiki/2/friendships/show friendships/show} * * @access public * @param mixed $target_name 目标用户的微博昵称 @@ -1849,7 +1849,7 @@ class SaeTClientV2 * 关注一个用户。 * * 成功则返回关注人的资料,目前最多关注2000人,失败则返回一条字符串的说明。如果已经关注了此人,则返回http 403的状态。关注不存在的ID将返回400。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/friendships/create friendships/create} + * <br />对应API:{@link //open.weibo.com/wiki/2/friendships/create friendships/create} * * @access public * @param int $uid 要关注的用户UID @@ -1867,7 +1867,7 @@ class SaeTClientV2 * 关注一个用户。 * * 成功则返回关注人的资料,目前的最多关注2000人,失败则返回一条字符串的说明。如果已经关注了此人,则返回http 403的状态。关注不存在的ID将返回400。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/friendships/create friendships/create} + * <br />对应API:{@link //open.weibo.com/wiki/2/friendships/create friendships/create} * * @access public * @param string $screen_name 要关注的用户昵称 @@ -1884,7 +1884,7 @@ class SaeTClientV2 /** * 根据用户UID批量关注用户 * - * 对应API:{@link http://open.weibo.com/wiki/2/friendships/create_batch friendships/create_batch} + * 对应API:{@link //open.weibo.com/wiki/2/friendships/create_batch friendships/create_batch} * * @param string $uids 要关注的用户UID,用半角逗号分隔,最多不超过20个。 * @return array @@ -1907,7 +1907,7 @@ class SaeTClientV2 * 取消关注某用户 * * 取消关注某用户。成功则返回被取消关注人的资料,失败则返回一条字符串的说明。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/friendships/destroy friendships/destroy} + * <br />对应API:{@link //open.weibo.com/wiki/2/friendships/destroy friendships/destroy} * * @access public * @param int $uid 要取消关注的用户UID @@ -1925,7 +1925,7 @@ class SaeTClientV2 * 取消关注某用户 * * 取消关注某用户。成功则返回被取消关注人的资料,失败则返回一条字符串的说明。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/friendships/destroy friendships/destroy} + * <br />对应API:{@link //open.weibo.com/wiki/2/friendships/destroy friendships/destroy} * * @access public * @param string $screen_name 要取消关注的用户昵称 @@ -1942,7 +1942,7 @@ class SaeTClientV2 * 更新当前登录用户所关注的某个好友的备注信息 * * 只能修改当前登录用户所关注的用户的备注信息。否则将给出400错误。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/friendships/remark/update friendships/remark/update} + * <br />对应API:{@link //open.weibo.com/wiki/2/friendships/remark/update friendships/remark/update} * * @access public * @param int $uid 需要修改备注信息的用户ID。 @@ -1962,7 +1962,7 @@ class SaeTClientV2 * 获取当前用户最新私信列表 * * 返回用户的最新n条私信,并包含发送者和接受者的详细资料。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/direct_messages direct_messages} + * <br />对应API:{@link //open.weibo.com/wiki/2/direct_messages direct_messages} * * @access public * @param int $page 页码 @@ -1990,7 +1990,7 @@ class SaeTClientV2 * 获取当前用户发送的最新私信列表 * * 返回登录用户已发送最新50条私信。包括发送者和接受者的详细资料。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/direct_messages/sent direct_messages/sent} + * <br />对应API:{@link //open.weibo.com/wiki/2/direct_messages/sent direct_messages/sent} * * @access public * @param int $page 页码 @@ -2018,7 +2018,7 @@ class SaeTClientV2 /** * 获取与当前登录用户有私信往来的用户列表,与该用户往来的最新私信 * - * 对应API:{@link http://open.weibo.com/wiki/2/direct_messages/user_list direct_messages/user_list} + * 对应API:{@link //open.weibo.com/wiki/2/direct_messages/user_list direct_messages/user_list} * * @param int $count 单页返回的记录条数,默认为20。 * @param int $cursor 返回结果的游标,下一页用返回值里的next_cursor,上一页用previous_cursor,默认为0。 @@ -2035,7 +2035,7 @@ class SaeTClientV2 /** * 获取与指定用户的往来私信列表 * - * 对应API:{@link http://open.weibo.com/wiki/2/direct_messages/conversation direct_messages/conversation} + * 对应API:{@link //open.weibo.com/wiki/2/direct_messages/conversation direct_messages/conversation} * * @param int $uid 需要查询的用户的UID。 * @param int $since_id 若指定此参数,则返回ID比since_id大的私信(即比since_id时间晚的私信),默认为0。 @@ -2065,7 +2065,7 @@ class SaeTClientV2 /** * 根据私信ID批量获取私信内容 * - * 对应API:{@link http://open.weibo.com/wiki/2/direct_messages/show_batch direct_messages/show_batch} + * 对应API:{@link //open.weibo.com/wiki/2/direct_messages/show_batch direct_messages/show_batch} * * @param string $dmids 需要查询的私信ID,用半角逗号分隔,一次最多50个 * @return array @@ -2088,7 +2088,7 @@ class SaeTClientV2 * 发送私信 * * 发送一条私信。成功将返回完整的发送消息。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/direct_messages/new direct_messages/new} + * <br />对应API:{@link //open.weibo.com/wiki/2/direct_messages/new direct_messages/new} * * @access public * @param int $uid 用户UID @@ -2113,7 +2113,7 @@ class SaeTClientV2 * 发送私信 * * 发送一条私信。成功将返回完整的发送消息。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/direct_messages/new direct_messages/new} + * <br />对应API:{@link //open.weibo.com/wiki/2/direct_messages/new direct_messages/new} * * @access public * @param string $screen_name 用户昵称 @@ -2137,7 +2137,7 @@ class SaeTClientV2 * 删除一条私信 * * 按ID删除私信。操作用户必须为私信的接收人。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/direct_messages/destroy direct_messages/destroy} + * <br />对应API:{@link //open.weibo.com/wiki/2/direct_messages/destroy direct_messages/destroy} * * @access public * @param int $did 要删除的私信主键ID @@ -2155,7 +2155,7 @@ class SaeTClientV2 * 批量删除私信 * * 批量删除当前登录用户的私信。出现异常时,返回400错误。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/direct_messages/destroy_batch direct_messages/destroy_batch} + * <br />对应API:{@link //open.weibo.com/wiki/2/direct_messages/destroy_batch direct_messages/destroy_batch} * * @access public * @param mixed $dids 欲删除的一组私信ID,用半角逗号隔开,或者由一组评论ID组成的数组。最多20个。例如:"4976494627, 4976262053"或array(4976494627,4976262053); @@ -2181,7 +2181,7 @@ class SaeTClientV2 /** * 获取用户基本信息 * - * 对应API:{@link http://open.weibo.com/wiki/2/account/profile/basic account/profile/basic} + * 对应API:{@link //open.weibo.com/wiki/2/account/profile/basic account/profile/basic} * * @param int $uid 需要获取基本信息的用户UID,默认为当前登录用户。 * @return array @@ -2199,7 +2199,7 @@ class SaeTClientV2 /** * 获取用户的教育信息 * - * 对应API:{@link http://open.weibo.com/wiki/2/account/profile/education account/profile/education} + * 对应API:{@link //open.weibo.com/wiki/2/account/profile/education account/profile/education} * * @param int $uid 需要获取教育信息的用户UID,默认为当前登录用户。 * @return array @@ -2217,7 +2217,7 @@ class SaeTClientV2 /** * 批量获取用户的教育信息 * - * 对应API:{@link http://open.weibo.com/wiki/2/account/profile/education_batch account/profile/education_batch} + * 对应API:{@link //open.weibo.com/wiki/2/account/profile/education_batch account/profile/education_batch} * * @param string $uids 需要获取教育信息的用户UID,用半角逗号分隔,最多不超过20。 * @return array @@ -2241,7 +2241,7 @@ class SaeTClientV2 /** * 获取用户的职业信息 * - * 对应API:{@link http://open.weibo.com/wiki/2/account/profile/career account/profile/career} + * 对应API:{@link //open.weibo.com/wiki/2/account/profile/career account/profile/career} * * @param int $uid 需要获取教育信息的用户UID,默认为当前登录用户。 * @return array @@ -2259,7 +2259,7 @@ class SaeTClientV2 /** * 批量获取用户的职业信息 * - * 对应API:{@link http://open.weibo.com/wiki/2/account/profile/career_batch account/profile/career_batch} + * 对应API:{@link //open.weibo.com/wiki/2/account/profile/career_batch account/profile/career_batch} * * @param string $uids 需要获取教育信息的用户UID,用半角逗号分隔,最多不超过20。 * @return array @@ -2282,7 +2282,7 @@ class SaeTClientV2 /** * 获取隐私信息设置情况 * - * 对应API:{@link http://open.weibo.com/wiki/2/account/get_privacy account/get_privacy} + * 对应API:{@link //open.weibo.com/wiki/2/account/get_privacy account/get_privacy} * * @access public * @return array @@ -2295,7 +2295,7 @@ class SaeTClientV2 /** * 获取所有的学校列表 * - * 对应API:{@link http://open.weibo.com/wiki/2/account/profile/school_list account/profile/school_list} + * 对应API:{@link //open.weibo.com/wiki/2/account/profile/school_list account/profile/school_list} * * @param array $query 搜索选项。格式:array('key0'=>'value0', 'key1'=>'value1', ....)。支持的key: * - province int 省份范围,省份ID。 @@ -2319,7 +2319,7 @@ class SaeTClientV2 /** * 获取当前登录用户的API访问频率限制情况 * - * 对应API:{@link http://open.weibo.com/wiki/2/account/rate_limit_status account/rate_limit_status} + * 对应API:{@link //open.weibo.com/wiki/2/account/rate_limit_status account/rate_limit_status} * * @access public * @return array @@ -2332,7 +2332,7 @@ class SaeTClientV2 /** * OAuth授权之后,获取授权用户的UID * - * 对应API:{@link http://open.weibo.com/wiki/2/account/get_uid account/get_uid} + * 对应API:{@link //open.weibo.com/wiki/2/account/get_uid account/get_uid} * * @access public * @return array @@ -2346,7 +2346,7 @@ class SaeTClientV2 /** * 更改用户资料 * - * 对应API:{@link http://open.weibo.com/wiki/2/account/profile/basic_update account/profile/basic_update} + * 对应API:{@link //open.weibo.com/wiki/2/account/profile/basic_update account/profile/basic_update} * * @access public * @param array $profile 要修改的资料。格式:array('key1'=>'value1', 'key2'=>'value2', .....)。 @@ -2386,7 +2386,7 @@ class SaeTClientV2 /** * 设置教育信息 * - * 对应API:{@link http://open.weibo.com/wiki/2/account/profile/edu_update account/profile/edu_update} + * 对应API:{@link //open.weibo.com/wiki/2/account/profile/edu_update account/profile/edu_update} * * @access public * @param array $edu_update 要修改的学校信息。格式:array('key1'=>'value1', 'key2'=>'value2', .....)。 @@ -2407,7 +2407,7 @@ class SaeTClientV2 /** * 根据学校ID删除用户的教育信息 * - * 对应API:{@link http://open.weibo.com/wiki/2/account/profile/edu_destroy account/profile/edu_destroy} + * 对应API:{@link //open.weibo.com/wiki/2/account/profile/edu_destroy account/profile/edu_destroy} * * @param int $id 教育信息里的学校ID。 * @return array @@ -2423,7 +2423,7 @@ class SaeTClientV2 /** * 设置职业信息 * - * 对应API:{@link http://open.weibo.com/wiki/2/account/profile/car_update account/profile/car_update} + * 对应API:{@link //open.weibo.com/wiki/2/account/profile/car_update account/profile/car_update} * * @param array $car_update 要修改的职业信息。格式:array('key1'=>'value1', 'key2'=>'value2', .....)。 * 支持设置的项: @@ -2447,7 +2447,7 @@ class SaeTClientV2 /** * 根据公司ID删除用户的职业信息 * - * 对应API:{@link http://open.weibo.com/wiki/2/account/profile/car_destroy account/profile/car_destroy} + * 对应API:{@link //open.weibo.com/wiki/2/account/profile/car_destroy account/profile/car_destroy} * * @access public * @param int $id 职业信息里的公司ID @@ -2464,7 +2464,7 @@ class SaeTClientV2 /** * 更改头像 * - * 对应API:{@link http://open.weibo.com/wiki/2/account/avatar/upload account/avatar/upload} + * 对应API:{@link //open.weibo.com/wiki/2/account/avatar/upload account/avatar/upload} * * @param string $image_path 要上传的头像路径, 支持url。[只支持png/jpg/gif三种格式, 增加格式请修改get_image_mime方法] 必须为小于700K的有效的GIF, JPG图片. 如果图片大于500像素将按比例缩放。 * @return array @@ -2480,7 +2480,7 @@ class SaeTClientV2 /** * 设置隐私信息 * - * 对应API:{@link http://open.weibo.com/wiki/2/account/update_privacy account/update_privacy} + * 对应API:{@link //open.weibo.com/wiki/2/account/update_privacy account/update_privacy} * * @param array $privacy_settings 要修改的隐私设置。格式:array('key1'=>'value1', 'key2'=>'value2', .....)。 * 支持设置的项: @@ -2503,7 +2503,7 @@ class SaeTClientV2 * 获取当前用户的收藏列表 * * 返回用户的发布的最近20条收藏信息,和用户收藏页面返回内容是一致的。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/favorites favorites} + * <br />对应API:{@link //open.weibo.com/wiki/2/favorites favorites} * * @access public * @param int $page 返回结果的页码,默认为1。 @@ -2524,7 +2524,7 @@ class SaeTClientV2 * 根据收藏ID获取指定的收藏信息 * * 根据收藏ID获取指定的收藏信息。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/favorites/show favorites/show} + * <br />对应API:{@link //open.weibo.com/wiki/2/favorites/show favorites/show} * * @access public * @param int $id 需要查询的收藏ID。 @@ -2542,7 +2542,7 @@ class SaeTClientV2 /** * 根据标签获取当前登录用户该标签下的收藏列表 * - * 对应API:{@link http://open.weibo.com/wiki/2/favorites/by_tags favorites/by_tags} + * 对应API:{@link //open.weibo.com/wiki/2/favorites/by_tags favorites/by_tags} * * * @param int $tid 需要查询的标签ID。' @@ -2563,7 +2563,7 @@ class SaeTClientV2 /** * 获取当前登录用户的收藏标签列表 * - * 对应API:{@link http://open.weibo.com/wiki/2/favorites/tags favorites/tags} + * 对应API:{@link //open.weibo.com/wiki/2/favorites/tags favorites/tags} * * @access public * @param int $count 单页返回的记录条数,默认为50。 @@ -2582,7 +2582,7 @@ class SaeTClientV2 /** * 收藏一条微博信息 * - * 对应API:{@link http://open.weibo.com/wiki/2/favorites/create favorites/create} + * 对应API:{@link //open.weibo.com/wiki/2/favorites/create favorites/create} * * @access public * @param int $sid 收藏的微博id @@ -2600,7 +2600,7 @@ class SaeTClientV2 /** * 删除微博收藏。 * - * 对应API:{@link http://open.weibo.com/wiki/2/favorites/destroy favorites/destroy} + * 对应API:{@link //open.weibo.com/wiki/2/favorites/destroy favorites/destroy} * * @access public * @param int $id 要删除的收藏微博信息ID. @@ -2619,7 +2619,7 @@ class SaeTClientV2 * 批量删除微博收藏。 * * 批量删除当前登录用户的收藏。出现异常时,返回HTTP400错误。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/favorites/destroy_batch favorites/destroy_batch} + * <br />对应API:{@link //open.weibo.com/wiki/2/favorites/destroy_batch favorites/destroy_batch} * * @access public * @param mixed $fids 欲删除的一组私信ID,用半角逗号隔开,或者由一组评论ID组成的数组。最多20个。例如:"231101027525486630,201100826122315375"或array(231101027525486630,201100826122315375); @@ -2644,7 +2644,7 @@ class SaeTClientV2 /** * 更新一条收藏的收藏标签 * - * 对应API:{@link http://open.weibo.com/wiki/2/favorites/tags/update favorites/tags/update} + * 对应API:{@link //open.weibo.com/wiki/2/favorites/tags/update favorites/tags/update} * * @access public * @param int $id 需要更新的收藏ID。 @@ -2669,7 +2669,7 @@ class SaeTClientV2 /** * 更新当前登录用户所有收藏下的指定标签 * - * 对应API:{@link http://open.weibo.com/wiki/2/favorites/tags/update_batch favorites/tags/update_batch} + * 对应API:{@link //open.weibo.com/wiki/2/favorites/tags/update_batch favorites/tags/update_batch} * * @param int $tid 需要更新的标签ID。必填 * @param string $tag 需要更新的标签内容。必填 @@ -2687,7 +2687,7 @@ class SaeTClientV2 * 删除当前登录用户所有收藏下的指定标签 * * 删除标签后,该用户所有收藏中,添加了该标签的收藏均解除与该标签的关联关系 - * <br />对应API:{@link http://open.weibo.com/wiki/2/favorites/tags/destroy_batch favorites/tags/destroy_batch} + * <br />对应API:{@link //open.weibo.com/wiki/2/favorites/tags/destroy_batch favorites/tags/destroy_batch} * * @param int $tid 需要更新的标签ID。必填 * @return array @@ -2702,7 +2702,7 @@ class SaeTClientV2 /** * 获取某用户的话题 * - * 对应API:{@link http://open.weibo.com/wiki/2/trends trends} + * 对应API:{@link //open.weibo.com/wiki/2/trends trends} * * @param int $uid 查询用户的ID。默认为当前用户。可选。 * @param int $page 指定返回结果的页码。可选。 @@ -2728,7 +2728,7 @@ class SaeTClientV2 /** * 判断当前用户是否关注某话题 * - * 对应API:{@link http://open.weibo.com/wiki/2/trends/is_follow trends/is_follow} + * 对应API:{@link //open.weibo.com/wiki/2/trends/is_follow trends/is_follow} * * @access public * @param string $trend_name 话题关键字。 @@ -2744,7 +2744,7 @@ class SaeTClientV2 /** * 返回最近一小时内的热门话题 * - * 对应API:{@link http://open.weibo.com/wiki/2/trends/hourly trends/hourly} + * 对应API:{@link //open.weibo.com/wiki/2/trends/hourly trends/hourly} * * @param int $base_app 是否基于当前应用来获取数据。1表示基于当前应用来获取数据,默认为0。可选。 * @return array @@ -2760,7 +2760,7 @@ class SaeTClientV2 /** * 返回最近一天内的热门话题 * - * 对应API:{@link http://open.weibo.com/wiki/2/trends/daily trends/daily} + * 对应API:{@link //open.weibo.com/wiki/2/trends/daily trends/daily} * * @param int $base_app 是否基于当前应用来获取数据。1表示基于当前应用来获取数据,默认为0。可选。 * @return array @@ -2776,7 +2776,7 @@ class SaeTClientV2 /** * 返回最近一周内的热门话题 * - * 对应API:{@link http://open.weibo.com/wiki/2/trends/weekly trends/weekly} + * 对应API:{@link //open.weibo.com/wiki/2/trends/weekly trends/weekly} * * @access public * @param int $base_app 是否基于当前应用来获取数据。1表示基于当前应用来获取数据,默认为0。可选。 @@ -2793,7 +2793,7 @@ class SaeTClientV2 /** * 关注某话题 * - * 对应API:{@link http://open.weibo.com/wiki/2/trends/follow trends/follow} + * 对应API:{@link //open.weibo.com/wiki/2/trends/follow trends/follow} * * @access public * @param string $trend_name 要关注的话题关键词。 @@ -2809,7 +2809,7 @@ class SaeTClientV2 /** * 取消对某话题的关注 * - * 对应API:{@link http://open.weibo.com/wiki/2/trends/destroy trends/destroy} + * 对应API:{@link //open.weibo.com/wiki/2/trends/destroy trends/destroy} * * @access public * @param int $tid 要取消关注的话题ID。 @@ -2828,7 +2828,7 @@ class SaeTClientV2 /** * 返回指定用户的标签列表 * - * 对应API:{@link http://open.weibo.com/wiki/2/tags tags} + * 对应API:{@link //open.weibo.com/wiki/2/tags tags} * * @param int $uid 查询用户的ID。默认为当前用户。可选。 * @param int $page 指定返回结果的页码。可选。 @@ -2853,7 +2853,7 @@ class SaeTClientV2 /** * 批量获取用户的标签列表 * - * 对应API:{@link http://open.weibo.com/wiki/2/tags/tags_batch tags/tags_batch} + * 对应API:{@link //open.weibo.com/wiki/2/tags/tags_batch tags/tags_batch} * * @param string $uids 要获取标签的用户ID。最大20,逗号分隔。必填 * @return array @@ -2875,7 +2875,7 @@ class SaeTClientV2 /** * 返回用户感兴趣的标签 * - * 对应API:{@link http://open.weibo.com/wiki/2/tags/suggestions tags/suggestions} + * 对应API:{@link //open.weibo.com/wiki/2/tags/suggestions tags/suggestions} * * @access public * @param int $count 单页大小。缺省值10,最大值10。可选。 @@ -2891,7 +2891,7 @@ class SaeTClientV2 /** * 为当前登录用户添加新的用户标签 * - * 对应API:{@link http://open.weibo.com/wiki/2/tags/create tags/create} + * 对应API:{@link //open.weibo.com/wiki/2/tags/create tags/create} * * @access public * @param mixed $tags 要创建的一组标签,每个标签的长度不可超过7个汉字,14个半角字符。多个标签之间用逗号间隔,或由多个标签构成的数组。如:"abc,drf,efgh,tt"或array("abc", "drf", "efgh", "tt") @@ -2911,7 +2911,7 @@ class SaeTClientV2 /** * 删除标签 * - * 对应API:{@link http://open.weibo.com/wiki/2/tags/destroy tags/destroy} + * 对应API:{@link //open.weibo.com/wiki/2/tags/destroy tags/destroy} * * @access public * @param int $tag_id 标签ID,必填参数 @@ -2927,7 +2927,7 @@ class SaeTClientV2 /** * 批量删除标签 * - * 对应API:{@link http://open.weibo.com/wiki/2/tags/destroy_batch tags/destroy_batch} + * 对应API:{@link //open.weibo.com/wiki/2/tags/destroy_batch tags/destroy_batch} * * @access public * @param mixed $ids 必选参数,要删除的tag id,多个id用半角逗号分割,最多10个。或由多个tag id构成的数组。如:“553,554,555"或array(553, 554, 555) @@ -2948,7 +2948,7 @@ class SaeTClientV2 /** * 验证昵称是否可用,并给予建议昵称 * - * 对应API:{@link http://open.weibo.com/wiki/2/register/verify_nickname register/verify_nickname} + * 对应API:{@link //open.weibo.com/wiki/2/register/verify_nickname register/verify_nickname} * * @param string $nickname 需要验证的昵称。4-20个字符,支持中英文、数字、"_"或减号。必填 * @return array @@ -2965,7 +2965,7 @@ class SaeTClientV2 /** * 搜索用户时的联想搜索建议 * - * 对应API:{@link http://open.weibo.com/wiki/2/search/suggestions/users search/suggestions/users} + * 对应API:{@link //open.weibo.com/wiki/2/search/suggestions/users search/suggestions/users} * * @param string $q 搜索的关键字,必须做URLencoding。必填,中间最好不要出现空格 * @param int $count 返回的记录条数,默认为10。 @@ -2983,7 +2983,7 @@ class SaeTClientV2 /** * 搜索微博时的联想搜索建议 * - * 对应API:{@link http://open.weibo.com/wiki/2/search/suggestions/statuses search/suggestions/statuses} + * 对应API:{@link //open.weibo.com/wiki/2/search/suggestions/statuses search/suggestions/statuses} * * @param string $q 搜索的关键字,必须做URLencoding。必填 * @param int $count 返回的记录条数,默认为10。 @@ -3001,7 +3001,7 @@ class SaeTClientV2 /** * 搜索学校时的联想搜索建议 * - * 对应API:{@link http://open.weibo.com/wiki/2/search/suggestions/schools search/suggestions/schools} + * 对应API:{@link //open.weibo.com/wiki/2/search/suggestions/schools search/suggestions/schools} * * @param string $q 搜索的关键字,必须做URLencoding。必填 * @param int $count 返回的记录条数,默认为10。 @@ -3020,7 +3020,7 @@ class SaeTClientV2 /** * 搜索公司时的联想搜索建议 * - * 对应API:{@link http://open.weibo.com/wiki/2/search/suggestions/companies search/suggestions/companies} + * 对应API:{@link //open.weibo.com/wiki/2/search/suggestions/companies search/suggestions/companies} * * @param string $q 搜索的关键字,必须做URLencoding。必填 * @param int $count 返回的记录条数,默认为10。 @@ -3038,7 +3038,7 @@ class SaeTClientV2 /** * @用户时的联想建议 * - * 对应API:{@link http://open.weibo.com/wiki/2/search/suggestions/at_users search/suggestions/at_users} + * 对应API:{@link //open.weibo.com/wiki/2/search/suggestions/at_users search/suggestions/at_users} * * @param string $q 搜索的关键字,必须做URLencoding。必填 * @param int $count 返回的记录条数,默认为10。 @@ -3063,7 +3063,7 @@ class SaeTClientV2 /** * 搜索与指定的一个或多个条件相匹配的微博 * - * 对应API:{@link http://open.weibo.com/wiki/2/search/statuses search/statuses} + * 对应API:{@link //open.weibo.com/wiki/2/search/statuses search/statuses} * * @param array $query 搜索选项。格式:array('key0'=>'value0', 'key1'=>'value1', ....)。支持的key: * - q string 搜索的关键字,必须进行URLencode。 @@ -3092,7 +3092,7 @@ class SaeTClientV2 /** * 通过关键词搜索用户 * - * 对应API:{@link http://open.weibo.com/wiki/2/search/users search/users} + * 对应API:{@link //open.weibo.com/wiki/2/search/users search/users} * * @param array $query 搜索选项。格式:array('key0'=>'value0', 'key1'=>'value1', ....)。支持的key: * - q string 搜索的关键字,必须进行URLencode。 @@ -3122,7 +3122,7 @@ class SaeTClientV2 * 获取系统推荐用户 * * 返回系统推荐的用户列表。 - * <br />对应API:{@link http://open.weibo.com/wiki/2/suggestions/users/hot suggestions/users/hot} + * <br />对应API:{@link //open.weibo.com/wiki/2/suggestions/users/hot suggestions/users/hot} * * @access public * @param string $category 分类,可选参数,返回某一类别的推荐用户,默认为 default。如果不在以下分类中,返回空列表:<br /> @@ -3152,7 +3152,7 @@ class SaeTClientV2 /** * 获取用户可能感兴趣的人 * - * 对应API:{@link http://open.weibo.com/wiki/2/suggestions/users/may_interested suggestions/users/may_interested} + * 对应API:{@link //open.weibo.com/wiki/2/suggestions/users/may_interested suggestions/users/may_interested} * * @access public * @param int $page 返回结果的页码,默认为1。 @@ -3171,7 +3171,7 @@ class SaeTClientV2 /** * 根据一段微博正文推荐相关微博用户。 * - * 对应API:{@link http://open.weibo.com/wiki/2/suggestions/users/by_status suggestions/users/by_status} + * 对应API:{@link //open.weibo.com/wiki/2/suggestions/users/by_status suggestions/users/by_status} * * @access public * @param string $content 微博正文内容。 @@ -3189,7 +3189,7 @@ class SaeTClientV2 /** * 热门收藏 * - * 对应API:{@link http://open.weibo.com/wiki/2/suggestions/favorites/hot suggestions/favorites/hot} + * 对应API:{@link //open.weibo.com/wiki/2/suggestions/favorites/hot suggestions/favorites/hot} * * @param int $count 每页返回结果数,默认20。选填 * @param int $page 返回页码,默认1。选填 @@ -3206,7 +3206,7 @@ class SaeTClientV2 /** * 把某人标识为不感兴趣的人 * - * 对应API:{@link http://open.weibo.com/wiki/2/suggestions/users/not_interested suggestions/users/not_interested} + * 对应API:{@link //open.weibo.com/wiki/2/suggestions/users/not_interested suggestions/users/not_interested} * * @param int $uid 不感兴趣的用户的UID。 * @return array diff --git a/library/WebPlugin/Partner/wechat/Config.inc.php b/library/WebPlugin/Partner/wechat/Config.inc.php index 10bb49e..69ee429 100644 --- a/library/WebPlugin/Partner/wechat/Config.inc.php +++ b/library/WebPlugin/Partner/wechat/Config.inc.php @@ -3,8 +3,8 @@ defined('SITE_MAIN') || define('SITE_MAIN', $_SERVER['HTTP_HOST']); return array( - 'appId' => 'wx3ae21dcbb82ad672', // wx75e5a7c0c88e45c2 wx3ae21dcbb82ad672 - 'appKey' => 'e78afb2321e6a19085767e1a0f0d52c1', // ce21ae4a3f93852279175a167e54509b e78afb2321e6a19085767e1a0f0d52c1 - 'callback' => SITE_MAIN . '/passport/autosign/wechatback', + 'appId' => 'wx3ae21dcbb82ad672', + 'appKey' => 'e78afb2321e6a19085767e1a0f0d52c1', + 'callback' => WebPlugin\Helpers::transHttpsUrl(SITE_MAIN) . '/passport/autosign/wechatback', 'scope' => 'snsapi_login' ); diff --git a/library/WebPlugin/Pay/AliExpressgateway/Service.php b/library/WebPlugin/Pay/AliExpressgateway/Service.php index b6eac94..42b4c0e 100644 --- a/library/WebPlugin/Pay/AliExpressgateway/Service.php +++ b/library/WebPlugin/Pay/AliExpressgateway/Service.php @@ -106,7 +106,7 @@ class Service extends PayAbstract public function parseResponse(array $arrResponse) { /* 返回示例 - * http://www.yohobuy.com/pay/notice/aliexpressgatewayreturn?buyer_email=tds%40smartunite.com&buyer_id=2088302294447308&exterface=create_direct_pay_by_user&is_success=T¬ify_id=RqPnCoPT3K9%252Fvwbh3I7xtEV5W65QRToFQ5fPrXsVxt12e%252FExCtC1XNiKnuRwupLaVLAR¬ify_time=2011-06-11+07%3A48%3A10¬ify_type=trade_status_sync&out_trade_no=1061003000&payment_type=1&seller_email=shop%40yoho.cn&seller_id=2088001550230585&subject=YOHO%E5%95%86%E5%93%81&total_fee=0.01&trade_no=2011061199833830&trade_status=TRADE_SUCCESS&sign=ca1c49f58d17eaa57aac308d0ac64434&sign_type=MD5 + * //www.yohobuy.com/pay/notice/aliexpressgatewayreturn?buyer_email=tds%40smartunite.com&buyer_id=2088302294447308&exterface=create_direct_pay_by_user&is_success=T¬ify_id=RqPnCoPT3K9%252Fvwbh3I7xtEV5W65QRToFQ5fPrXsVxt12e%252FExCtC1XNiKnuRwupLaVLAR¬ify_time=2011-06-11+07%3A48%3A10¬ify_type=trade_status_sync&out_trade_no=1061003000&payment_type=1&seller_email=shop%40yoho.cn&seller_id=2088001550230585&subject=YOHO%E5%95%86%E5%93%81&total_fee=0.01&trade_no=2011061199833830&trade_status=TRADE_SUCCESS&sign=ca1c49f58d17eaa57aac308d0ac64434&sign_type=MD5 */ UdpLog::info("【{$this->logProjectPrefix}-支付】,function:parseResponse,参数", $arrResponse); if(isset($arrResponse['q'])){ diff --git a/library/WebPlugin/Pay/Alibank/Service.php b/library/WebPlugin/Pay/Alibank/Service.php index 042bc82..8bb9589 100644 --- a/library/WebPlugin/Pay/Alibank/Service.php +++ b/library/WebPlugin/Pay/Alibank/Service.php @@ -47,7 +47,7 @@ class Service extends PayAbstract 'service' => $this->config->service, 'partner' => $this->config->partner, '_input_charset' => $this->config->input_charset, - 'notify_url' => Yohobuy::SERVICE_NOTIFY . $this->config->notify_url, + 'notify_url' => SERVICE_NOTIFY . $this->config->notify_url, 'return_url' => Helpers::url($this->config->return_url), /* 业务参数 */ 'subject' => $params->goodsName, @@ -107,7 +107,7 @@ class Service extends PayAbstract public function parseResponse(array $arrResponse) { /* 返回示例 - * http://www.yohobuy.com/pay/notice/alipayreturn?buyer_email=tds%40smartunite.com&buyer_id=2088302294447308&exterface=create_direct_pay_by_user&is_success=T¬ify_id=RqPnCoPT3K9%252Fvwbh3I7xtEV5W65QRToFQ5fPrXsVxt12e%252FExCtC1XNiKnuRwupLaVLAR¬ify_time=2011-06-11+07%3A48%3A10¬ify_type=trade_status_sync&out_trade_no=1061003000&payment_type=1&seller_email=shop%40yoho.cn&seller_id=2088001550230585&subject=YOHO%E5%95%86%E5%93%81&total_fee=0.01&trade_no=2011061199833830&trade_status=TRADE_SUCCESS&sign=ca1c49f58d17eaa57aac308d0ac64434&sign_type=MD5 + * //www.yohobuy.com/pay/notice/alipayreturn?buyer_email=tds%40smartunite.com&buyer_id=2088302294447308&exterface=create_direct_pay_by_user&is_success=T¬ify_id=RqPnCoPT3K9%252Fvwbh3I7xtEV5W65QRToFQ5fPrXsVxt12e%252FExCtC1XNiKnuRwupLaVLAR¬ify_time=2011-06-11+07%3A48%3A10¬ify_type=trade_status_sync&out_trade_no=1061003000&payment_type=1&seller_email=shop%40yoho.cn&seller_id=2088001550230585&subject=YOHO%E5%95%86%E5%93%81&total_fee=0.01&trade_no=2011061199833830&trade_status=TRADE_SUCCESS&sign=ca1c49f58d17eaa57aac308d0ac64434&sign_type=MD5 */ UdpLog::info("【{$this->logProjectPrefix}-支付宝银行支付】,function:parseResponse,回调参数", $arrResponse); if (isset($arrResponse['q'])) { diff --git a/library/WebPlugin/Pay/Alibarcode/Config.php b/library/WebPlugin/Pay/Alibarcode/Config.php index c71e369..f9e7c63 100644 --- a/library/WebPlugin/Pay/Alibarcode/Config.php +++ b/library/WebPlugin/Pay/Alibarcode/Config.php @@ -14,7 +14,7 @@ class Config * 测试网关 * @var unknown_type */ -// var $pay_url = 'http://mapi.d4192.alipay.net/cooperate/gateway.do'; +// var $pay_url = '//mapi.d4192.alipay.net/cooperate/gateway.do'; /** * 服务名,即时到帐为create_direct_pay_by_user diff --git a/library/WebPlugin/Pay/Alibarcode/Service.php b/library/WebPlugin/Pay/Alibarcode/Service.php index 7deaee1..b5f54ba 100644 --- a/library/WebPlugin/Pay/Alibarcode/Service.php +++ b/library/WebPlugin/Pay/Alibarcode/Service.php @@ -97,7 +97,7 @@ class Service extends PayAbstract public function parseResponse(array $arrResponse) { /* 返回示例 - * http://www.yohobuy.com/pay/notice/alibarcodereturn?buyer_email=tds%40smartunite.com&buyer_id=2088302294447308&exterface=create_direct_pay_by_user&is_success=T¬ify_id=RqPnCoPT3K9%252Fvwbh3I7xtEV5W65QRToFQ5fPrXsVxt12e%252FExCtC1XNiKnuRwupLaVLAR¬ify_time=2011-06-11+07%3A48%3A10¬ify_type=trade_status_sync&out_trade_no=1061003000&payment_type=1&seller_email=shop%40yoho.cn&seller_id=2088001550230585&subject=YOHO%E5%95%86%E5%93%81&total_fee=0.01&trade_no=2011061199833830&trade_status=TRADE_SUCCESS&sign=ca1c49f58d17eaa57aac308d0ac64434&sign_type=MD5 + * //www.yohobuy.com/pay/notice/alibarcodereturn?buyer_email=tds%40smartunite.com&buyer_id=2088302294447308&exterface=create_direct_pay_by_user&is_success=T¬ify_id=RqPnCoPT3K9%252Fvwbh3I7xtEV5W65QRToFQ5fPrXsVxt12e%252FExCtC1XNiKnuRwupLaVLAR¬ify_time=2011-06-11+07%3A48%3A10¬ify_type=trade_status_sync&out_trade_no=1061003000&payment_type=1&seller_email=shop%40yoho.cn&seller_id=2088001550230585&subject=YOHO%E5%95%86%E5%93%81&total_fee=0.01&trade_no=2011061199833830&trade_status=TRADE_SUCCESS&sign=ca1c49f58d17eaa57aac308d0ac64434&sign_type=MD5 */ UdpLog::info("【{$this->logProjectPrefix}-支付】,function:parseResponse,参数", $arrResponse); if(isset($arrResponse['q'])){ diff --git a/library/WebPlugin/Pay/Alipay/Service.php b/library/WebPlugin/Pay/Alipay/Service.php index 03edecc..f62145b 100644 --- a/library/WebPlugin/Pay/Alipay/Service.php +++ b/library/WebPlugin/Pay/Alipay/Service.php @@ -51,8 +51,8 @@ class Service extends PayAbstract 'service' => $this->config->service, 'partner' => $this->config->partner, '_input_charset' => $this->config->input_charset, - 'notify_url' => Yohobuy::SERVICE_NOTIFY . $this->config->notify_url, - 'return_url' => Helpers::url($this->config->return_url), + 'notify_url' => SERVICE_NOTIFY . $this->config->notify_url, + 'return_url' => Helpers::getHttpOrHttps() . Helpers::url($this->config->return_url), /* 业务参数 */ 'subject' => $params->goodsName, 'out_trade_no' => $params->orderCode, @@ -103,7 +103,7 @@ class Service extends PayAbstract public function parseResponse(array $arrResponse) { /* 返回示例 - * http://www.yohobuy.com/pay/notice/alipayreturn?buyer_email=tds%40smartunite.com&buyer_id=2088302294447308&exterface=create_direct_pay_by_user&is_success=T¬ify_id=RqPnCoPT3K9%252Fvwbh3I7xtEV5W65QRToFQ5fPrXsVxt12e%252FExCtC1XNiKnuRwupLaVLAR¬ify_time=2011-06-11+07%3A48%3A10¬ify_type=trade_status_sync&out_trade_no=1061003000&payment_type=1&seller_email=shop%40yoho.cn&seller_id=2088001550230585&subject=YOHO%E5%95%86%E5%93%81&total_fee=0.01&trade_no=2011061199833830&trade_status=TRADE_SUCCESS&sign=ca1c49f58d17eaa57aac308d0ac64434&sign_type=MD5 + * //www.yohobuy.com/pay/notice/alipayreturn?buyer_email=tds%40smartunite.com&buyer_id=2088302294447308&exterface=create_direct_pay_by_user&is_success=T¬ify_id=RqPnCoPT3K9%252Fvwbh3I7xtEV5W65QRToFQ5fPrXsVxt12e%252FExCtC1XNiKnuRwupLaVLAR¬ify_time=2011-06-11+07%3A48%3A10¬ify_type=trade_status_sync&out_trade_no=1061003000&payment_type=1&seller_email=shop%40yoho.cn&seller_id=2088001550230585&subject=YOHO%E5%95%86%E5%93%81&total_fee=0.01&trade_no=2011061199833830&trade_status=TRADE_SUCCESS&sign=ca1c49f58d17eaa57aac308d0ac64434&sign_type=MD5 */ UdpLog::info("【{$this->logProjectPrefix}-支付宝支付】,function:parseResponse,回调参数", $arrResponse); if (isset($arrResponse['q'])) { diff --git a/library/WebPlugin/Pay/Banks.php b/library/WebPlugin/Pay/Banks.php index 6f9e91d..9ff9855 100644 --- a/library/WebPlugin/Pay/Banks.php +++ b/library/WebPlugin/Pay/Banks.php @@ -7,89 +7,89 @@ class Banks private static $list = array( 'BOCB2C' => array( 'name' => '中国银行', - 'ico' => 'http://static.yohobuy.com/images/pay/icon/zhongguo.png' + 'ico' => '//static.yohobuy.com/images/pay/icon/zhongguo.png' ), 'ABC' => array( 'name' => '中国农业银行', - 'ico' => 'http://static.yohobuy.com/images/pay/icon/nongye.png' + 'ico' => '//static.yohobuy.com/images/pay/icon/nongye.png' ), 'SPABANK' => array( 'name' => '平安银行', - 'ico' => 'http://static.yohobuy.com/images/pay/icon/pingan.png' + 'ico' => '//static.yohobuy.com/images/pay/icon/pingan.png' ), 'CMBC' => array( 'name' => '中国民生银行', - 'ico' => 'http://static.yohobuy.com/images/pay/icon/minsheng.png' + 'ico' => '//static.yohobuy.com/images/pay/icon/minsheng.png' ), "ICBCB2C" => array( 'name' => '中国工商银行', - 'ico' => 'http://static.yohobuy.com/images/pay/icon/gongshang.png' + 'ico' => '//static.yohobuy.com/images/pay/icon/gongshang.png' ), 'SPDB' => array( 'name' => '浦发银行', - 'ico' => 'http://static.yohobuy.com/images/pay/icon/pufa.png' + 'ico' => '//static.yohobuy.com/images/pay/icon/pufa.png' ), 'BJRCB' => array( 'name' => '北京农商银行', - 'ico' => 'http://static.yohobuy.com/images/pay/icon/beijingnongshang.png' + 'ico' => '//static.yohobuy.com/images/pay/icon/beijingnongshang.png' ), 'HZCBB2C' => array( 'name' => '杭州银行', - 'ico' => 'http://static.yohobuy.com/images/pay/icon/hangzhou.png' + 'ico' => '//static.yohobuy.com/images/pay/icon/hangzhou.png' ), 'CMB' => array( 'name' => '招商银行', - 'ico' => 'http://static.yohobuy.com/images/pay/icon/zhaoshang.png' + 'ico' => '//static.yohobuy.com/images/pay/icon/zhaoshang.png' ), 'CIB' => array( 'name' => '兴业银行', - 'ico' => 'http://static.yohobuy.com/images/pay/icon/xingye.png' + 'ico' => '//static.yohobuy.com/images/pay/icon/xingye.png' ), 'FDB' => array( 'name' => '富滇银行', - 'ico' => 'http://static.yohobuy.com/images/pay/icon/fudian.png' + 'ico' => '//static.yohobuy.com/images/pay/icon/fudian.png' ), 'CEB-DEBIT' => array( 'name' => '中国光大银行', - 'ico' => 'http://static.yohobuy.com/images/pay/icon/guangda.png' + 'ico' => '//static.yohobuy.com/images/pay/icon/guangda.png' ), 'CCB' => array( 'name' => '中国建设银行', - 'ico' => 'http://static.yohobuy.com/images/pay/icon/zhongguojianshe.png' + 'ico' => '//static.yohobuy.com/images/pay/icon/zhongguojianshe.png' ), 'GDB' => array( 'name' => '广发银行', - 'ico' => 'http://static.yohobuy.com/images/pay/icon/guangfa.png' + 'ico' => '//static.yohobuy.com/images/pay/icon/guangfa.png' ), 'POSTGC' => array( 'name' => '中国邮政储蓄', - 'ico' => 'http://static.yohobuy.com/images/pay/icon/zhongguoyouzhengchuxu.png' + 'ico' => '//static.yohobuy.com/images/pay/icon/zhongguoyouzhengchuxu.png' ), 'SHBANK' => array( 'name' => '上海银行', - 'ico' => 'http://static.yohobuy.com/images/pay/icon/shanghai.png' + 'ico' => '//static.yohobuy.com/images/pay/icon/shanghai.png' ), 'NBBANK' => array( 'name' => '宁波银行', - 'ico' => 'http://static.yohobuy.com/images/pay/icon/ningbo.png' + 'ico' => '//static.yohobuy.com/images/pay/icon/ningbo.png' ) // 'SDB' => array( // 'name' => '深圳发展银行', -// 'ico' => 'http://static.yohobuy.com/images/bankico/SDB.gif' +// 'ico' => '//static.yohobuy.com/images/bankico/SDB.gif' // ), /* 'COMM' => array( 'name' => '交通银行', - 'ico' => 'http://static.yohobuy.com/images/bankico/COMM.gif' + 'ico' => '//static.yohobuy.com/images/bankico/COMM.gif' ), */ // 'CITIC' => array( // 'name' => '中信银行', -// 'ico' => 'http://static.yohobuy.com/images/bankico/CITIC.gif' +// 'ico' => '//static.yohobuy.com/images/bankico/CITIC.gif' // ), // 'CEB' => array( // 'name' => '光大银行', -// 'ico' => 'http://static.yohobuy.com/images/bankico/CEB.gif' +// 'ico' => '//static.yohobuy.com/images/bankico/CEB.gif' // ), ); diff --git a/library/WebPlugin/Pay/PayAbstract.php b/library/WebPlugin/Pay/PayAbstract.php index b1166d4..1a61ead 100644 --- a/library/WebPlugin/Pay/PayAbstract.php +++ b/library/WebPlugin/Pay/PayAbstract.php @@ -1,7 +1,7 @@ <?php namespace WebPlugin\Pay; - +use WebPlugin\Helpers; abstract class PayAbstract implements PayInterface { /** @@ -14,14 +14,14 @@ abstract class PayAbstract implements PayInterface { * * @var */ - public $baseNoticeUrl = "http://www.yohobuy.com/pay/"; + public $baseNoticeUrl = "//www.yohobuy.com/pay/"; /** * 测试的回调地址 * Enter description here ... * @var string */ - public $testBaseNoticeUrl = "http://www.yohobuy.com/pay/"; + public $testBaseNoticeUrl = "//www.yohobuy.com/pay/"; /** * 获取支付的基地址 @@ -30,7 +30,7 @@ abstract class PayAbstract implements PayInterface { * @return string */ public function getBaseNoticeUrl($isTest){ - return $isTest ? $this->testBaseNoticeUrl : $this->baseNoticeUrl; + return Helpers::getHttpOrHttps() . ($isTest ? $this->testBaseNoticeUrl : $this->baseNoticeUrl); } /** diff --git a/library/WebPlugin/Pay/Wechatqrcode/Service.php b/library/WebPlugin/Pay/Wechatqrcode/Service.php index 6386882..aaaf37c 100644 --- a/library/WebPlugin/Pay/Wechatqrcode/Service.php +++ b/library/WebPlugin/Pay/Wechatqrcode/Service.php @@ -88,7 +88,7 @@ class Service extends PayAbstract public function parseResponse(array $data) { /* 返回示例 - * http://www.yohobuy.com/pay/notice/wechatqrcodereturn?ordercode=93465435 + * //www.yohobuy.com/pay/notice/wechatqrcodereturn?ordercode=93465435 */ UdpLog::info("【{$this->logProjectPrefix}-微信支付】,function:parseResponse,参数", $data); diff --git a/library/WebPlugin/Pay/weixin/JsApiPay.php b/library/WebPlugin/Pay/weixin/JsApiPay.php index 7649bd2..4ac6275 100644 --- a/library/WebPlugin/Pay/weixin/JsApiPay.php +++ b/library/WebPlugin/Pay/weixin/JsApiPay.php @@ -154,7 +154,7 @@ class JsApiPay $getData = $this->data; $data = array(); $data["appid"] = WxPayConfig::APPID; - $data["url"] = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; + $data["url"] = "//" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $time = time(); $data["timestamp"] = "$time"; $data["noncestr"] = "1234568"; diff --git a/library/WebPlugin/Pay/weixin/lib/WxPayApi.php b/library/WebPlugin/Pay/weixin/lib/WxPayApi.php index 39a3ec8..53be269 100644 --- a/library/WebPlugin/Pay/weixin/lib/WxPayApi.php +++ b/library/WebPlugin/Pay/weixin/lib/WxPayApi.php @@ -49,7 +49,7 @@ class WxPayApi } //异步通知url - $inputObj->SetNotify_url(Yohobuy::SERVICE_NOTIFY . 'payment/weixin_notify'); //异步通知url + $inputObj->SetNotify_url(SERVICE_NOTIFY . 'payment/weixin_notify'); //异步通知url $inputObj->SetAppid(WxPayConfig::APPID); //公众账号ID $inputObj->SetMch_id(WxPayConfig::MCHID); //商户号 diff --git a/library/WebPlugin/PhpLog.php b/library/WebPlugin/PhpLog.php old mode 100644 new mode 100755 index 11657ae..127e495 --- a/library/WebPlugin/PhpLog.php +++ b/library/WebPlugin/PhpLog.php @@ -270,4 +270,4 @@ class PhpLog return "$time, " . "LOG, " . "$ip, " . "File[ $FilePath ], " . "Line[$FileLine]" . "------"; } } -} \ No newline at end of file +} diff --git a/library/WebPlugin/SendSms.php b/library/WebPlugin/SendSms.php index 44ccaa3..9dd09f8 100644 --- a/library/WebPlugin/SendSms.php +++ b/library/WebPlugin/SendSms.php @@ -6,7 +6,7 @@ namespace WebPlugin; */ class SendSms { - private static $url = 'http://www.ztsms.cn/sendSms.do'; + private static $url = '//www.ztsms.cn/sendSms.do'; private static $username = 'youhuo'; private static $password = '22b5d8454c5cea4d972b1b4958227d8f'; private static $productid = '333333'; diff --git a/library/WebPlugin/Spyc.php b/library/WebPlugin/Spyc.php index 1c42a41..ad1e544 100644 --- a/library/WebPlugin/Spyc.php +++ b/library/WebPlugin/Spyc.php @@ -4,9 +4,9 @@ * @version 0.5.1 * @author Vlad Andersen <vlad.andersen@gmail.com> * @author Chris Wanstrath <chris@ozmm.org> - * @link http://code.google.com/p/spyc/ + * @link //code.google.com/p/spyc/ * @copyright Copyright 2005-2006 Chris Wanstrath, 2006-2011 Vlad Andersen - * @license http://www.opensource.org/licenses/mit-license.php MIT License + * @license //www.opensource.org/licenses/mit-license.php MIT License * @package Spyc */ namespace WebPlugin; diff --git a/library/WebPlugin/UnionTrans.php b/library/WebPlugin/UnionTrans.php index fefd653..c154575 100644 --- a/library/WebPlugin/UnionTrans.php +++ b/library/WebPlugin/UnionTrans.php @@ -120,7 +120,7 @@ class UnionTrans /* 加入联盟订单库 */ $keyStr = 'client_id=' . $unionInfo['client_id'] . '&order_code=' . $order_code . '&orders_price=' . $order_amount . '&create_time=' . $create_times . '&channel_code=' . $channel_code . '&append=' . $append . '&mbr_name=' . $mbr_name . '&u_id=' . $u_id; - $result = Yohobuy::get('http://union.yohobuy.com/order', array( + $result = Yohobuy::get('//union.yohobuy.com/order', array( 'client_id' => $unionInfo['client_id'], 'order_code' => $order_code, 'orders_price' => $order_amount, @@ -136,8 +136,8 @@ class UnionTrans var_dump('union:', $result, "++"); } - /* 通知新ERP (老的ERP http://192.168.200.102/CreateOrderUnion.aspx) */ - $result = Yohobuy::post('http://portal.admin.yohobuy.com/api/orderunion/updateunion', array( + /* 通知新ERP (老的ERP //192.168.200.102/CreateOrderUnion.aspx) */ + $result = Yohobuy::post('//portal.admin.yohobuy.com/api/orderunion/updateunion', array( 'data' => json_encode(array( 'order_code' => $order_code, 'unionid' => $unionInfo['client_id'], @@ -153,7 +153,7 @@ class UnionTrans // 亿起发 if ($unionInfo['client_id'] == 1001) { $keyStr = 'client_id=' . $unionInfo['client_id'] . '&orders_id=' . $order_code . '&orders_price=' . $order_amount . '&create_time=' . $create_times . '&channel_code=' . $channel_code . '&append=' . $append . '&is_old_user=' . $is_old_user; - $result = Yohobuy::get('http://o.yiqifa.com/adv/yoho.jsp', array( + $result = Yohobuy::get('//o.yiqifa.com/adv/yoho.jsp', array( 'client_id' => $unionInfo['client_id'], 'orders_id' => $order_code, 'orders_price' => $order_amount, @@ -172,7 +172,7 @@ class UnionTrans // 亿起发wap if ($unionInfo['client_id'] == 2995) { $keyStr = 'client_id=' . $unionInfo['client_id'] . '&orders_id=' . $order_code . '&orders_price=' . $order_amount . '&create_time=' . $create_times . '&channel_code=' . $channel_code . '&append=' . $append . '&is_old_user=' . $is_old_user; - $result = Yohobuy::get('http://o.yiqifa.com/adv/yoho.jsp', array( + $result = Yohobuy::get('//o.yiqifa.com/adv/yoho.jsp', array( 'client_id' => $unionInfo['client_id'], 'orders_id' => $order_code, 'orders_price' => $order_amount, @@ -191,9 +191,9 @@ class UnionTrans // 多麦 $clientUrls = array( - 3017 => 'http://www.duomai.com/api/push/yohobuy.php', - 3019 => 'http://www.duomai.com/api/push/myohobuy.php', - 3057 => 'http://www.duomai.com/api/push/yohobuyroi.php', + 3017 => '//www.duomai.com/api/push/yohobuy.php', + 3019 => '//www.duomai.com/api/push/myohobuy.php', + 3057 => '//www.duomai.com/api/push/yohobuyroi.php', ); if (array_key_exists($clientId, $clientUrls)) { $urldata = self::getMaiDuoSplitData($order_code, $uid, $unionInfo['client_id'], $mbr_name, $is_old_user); @@ -210,7 +210,7 @@ class UnionTrans if ($unionInfo['client_id'] == 3001) { $xmldata = self::getOrderXmlData($order_code, $uid, $unionInfo['client_id'], $u_id, $mbr_name, $channel_code); $keyStr = 'content=' . $xmldata . '&shopid=690'; - $result = Yohobuy::post('http://union.fanli.com/dingdan/push?shopid=690', array( + $result = Yohobuy::post('//union.fanli.com/dingdan/push?shopid=690', array( 'content' => $xmldata, 'shopid' => 690, 'verify_code' => md5($keyStr) @@ -223,10 +223,10 @@ class UnionTrans // 领科特wap 成果 51fanli $clientUrls = array( - 1010 => 'http://service.linktech.cn/purchase_cps.php', - 1009 => 'http://count.chanet.com.cn/add_action_ec.cgi', - 2997 => 'http://service.linktech.cn/purchase_cps.php', - 3001 => 'http://union.fanli.com/dingdan/push?shopid=690', + 1010 => '//service.linktech.cn/purchase_cps.php', + 1009 => '//count.chanet.com.cn/add_action_ec.cgi', + 2997 => '//service.linktech.cn/purchase_cps.php', + 3001 => '//union.fanli.com/dingdan/push?shopid=690', ); if (array_key_exists($clientId, $clientUrls)) { $result = Yohobuy::post($clientUrls[$clientId], array( @@ -275,7 +275,7 @@ class UnionTrans 'title' => '', //$val['product_name'], 'category' => '', //$val['color_name'], 'category_title' => '', - 'url' => 'http://item.m.yohobuy.com/product/show_' . $val['product_skn'] . '.html', + 'url' => '//item.m.yohobuy.com/product/show_' . $val['product_skn'] . '.html', 'num' => $val['buy_number'], 'price' => $val['goods_price'], 'real_pay_fee' => round($amount * ($val['goods_amount'] / $goodsAmount), 2), diff --git a/script/nginx/conf/vhost/production/location/yohobuypc_idc.conf b/script/nginx/conf/vhost/production/location/yohobuypc_idc.conf deleted file mode 100644 index 22e03e2..0000000 --- a/script/nginx/conf/vhost/production/location/yohobuypc_idc.conf +++ /dev/null @@ -1,91 +0,0 @@ - - ## old idc - location ^~ /passport/auth/signin { - proxy_redirect off; - proxy_pass http://yohobuy-old-www; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Accept-Encoding "gzip"; - } - - location ^~ /live/index { - proxy_redirect off; - proxy_pass http://yohobuy-old-www; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Accept-Encoding "gzip"; - } - - location = /yohoshow { - return 301 http://$host; - } - - location =/product/specials { - return 301 http://$host; - } - - location =/search/thanks { - return 301 http://$host; - } - - location =/search/vip { - return 301 http://$host; - } - - location =/search/promotion { - return 301 http://$host; - } - - location =/outlet { - return 301 http://$host; - } - - location = /search { - # return 301 http://search.yohobuy.com$request_uri; - rewrite /search http://search.yohobuy.com permanent; - } - - location ^~ /logout_ { - rewrite ^/logout_(.+).html http://www.yohobuy.com/logout.html?token=$1; - } - - location ^~ /product/pro_ { - return 301 http://item.yohobuy.com$request_uri; - } - - location = /sale { - rewrite /sale http://www.yohobuy.com/product/sale/ permanent; - } - - location ^~ /brands/ { - rewrite /brands/$ http://www.yohobuy.com/brands permanent; - } - location ^~ /discount { - rewrite /discount http://search.yohobuy.com permanent; - } - - location ^~ /gallery { - rewrite /gallery http://www.yohobuy.com permanent; - } - - location ^~ /lookbook { - rewrite /lookbook http://guang.yohobuy.com permanent; - } - - location ^~ /trends { - rewrite /trends http://guang.yohobuy.com permanent; - } - - location ^~ /promotion { - rewrite /promotion http://list.yohobuy.com/sale permanent; - } - - location /product/new { - rewrite ^/product/new(.*)$ http://list.yohobuy.com/new$1 permanent; - } - - location ^~ /product/exhibit { - rewrite /product/exhibit http://www.yohobuy.com permanent; - } \ No newline at end of file diff --git a/script/nginx/conf/vhost/production/location/yohobuypc_php.conf b/script/nginx/conf/vhost/production/location/yohobuypc_php.conf deleted file mode 100644 index 4e1ccd5..0000000 --- a/script/nginx/conf/vhost/production/location/yohobuypc_php.conf +++ /dev/null @@ -1,23 +0,0 @@ - #SEO optimization - if ($host ~* ^www\.(.*)\.yohobuy\.com) { - set $sub_name $1; - return 301 $scheme://$sub_name.yohobuy.com$request_uri; - } - - location ^~ /yohounion/ { - proxy_redirect off; - proxy_pass http://unionapi/union/; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $http_x_forwarded_for; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Accept-Encoding "gzip"; - } - - ##pc_alipay_notice - location = /pay/notice/alimobilenoticemini { - proxy_redirect off; - proxy_pass http://yoho_service/payment/alipay_notify; - proxy_set_header Host service.yoho.cn; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - } \ No newline at end of file diff --git a/script/nginx/conf/vhost/production/location/yohobuypc_static.conf b/script/nginx/conf/vhost/production/location/yohobuypc_static.conf deleted file mode 100644 index 106b44d..0000000 --- a/script/nginx/conf/vhost/production/location/yohobuypc_static.conf +++ /dev/null @@ -1,15 +0,0 @@ - location =/favicon.ico { - expires 30d; - } - location =/crossdomain.xml { - expires 30d; - } - location =/robots.txt { - expires 1d; - } - - ##百度站长的校验文件, 百度站长账号feng322169 密码yoho9646 - location = /baidu_verify_Mrj1Pt3L86.html { - root /Data/PE/yohobuy_pc/assets; - expires 7d; - } \ No newline at end of file diff --git a/script/nginx/conf/vhost/testing/location/yohobuypc_exception.conf b/script/nginx/conf/vhost/testing/location/yohobuypc_exception.conf new file mode 100644 index 0000000..93c318b --- /dev/null +++ b/script/nginx/conf/vhost/testing/location/yohobuypc_exception.conf @@ -0,0 +1,16 @@ + location ~* /special_(\d+)_(.*)\.html$ { + proxy_redirect off; + proxy_pass http://yohobuy-old-www; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location = /index.html { + return 301 http://www.yohobuy.com/; + } + + location ^~ /resource/getbanner { + rewrite /resource/getbanner(.*)$ http://www.yohobuy.com/common/getbanner$1 permanent; + } diff --git a/script/nginx/conf/vhost/production/location/yohobuypc_httpskey.conf b/script/nginx/conf/vhost/testing/location/yohobuypc_httpskey.conf index 5cc3752..24f8094 100644 --- a/script/nginx/conf/vhost/production/location/yohobuypc_httpskey.conf +++ b/script/nginx/conf/vhost/testing/location/yohobuypc_httpskey.conf @@ -1,8 +1,8 @@ ssl on; - ssl_dhparam /Data/local/nginx-1.8.0/conf/ssl/pc/server.pem; + #ssl_dhparam /Data/local/nginx-1.8.0/conf/ssl/dhparam.pem; ssl_prefer_server_ciphers on; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:DES-CBC3-SHA"; ssl_session_tickets off; - ssl_session_cache shared:SSL:10m; \ No newline at end of file + ssl_session_cache shared:SSL:10m; diff --git a/script/nginx/conf/vhost/testing/location/yohobuypc_idc.conf b/script/nginx/conf/vhost/testing/location/yohobuypc_idc.conf index 901b4b1..ad18a5d 100644 --- a/script/nginx/conf/vhost/testing/location/yohobuypc_idc.conf +++ b/script/nginx/conf/vhost/testing/location/yohobuypc_idc.conf @@ -1,13 +1,13 @@ - ## old idc - location = /erp2goods { + #old idc + location ^~ /erp2goods { proxy_redirect off; proxy_pass http://yohobuy-old-www; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Accept-Encoding "gzip"; - } + } location = /passport/auth/signin { proxy_redirect off; @@ -16,7 +16,7 @@ proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Accept-Encoding "gzip"; - } + } location = /live/index { proxy_redirect off; @@ -25,20 +25,15 @@ proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Accept-Encoding "gzip"; - } + } location = /yohoshow { - proxy_redirect off; - proxy_pass http://yohobuy-old-www; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Accept-Encoding "gzip"; - } + return 301 http://$host; + } - location =/product/specials { - return 301 http://$host; - } + location =/product/specials { + return 301 http://$host; + } location =/search/thanks { return 301 http://$host; @@ -57,7 +52,8 @@ } location = /search { - return 301 http://search.yohobuy.com$request_uri; + # return 301 http://search.yohobuy.com$request_uri; + rewrite /search http://search.yohobuy.com permanent; } location ^~ /logout_ { @@ -65,12 +61,21 @@ } location ^~ /product/pro_ { - return 301 http://item.yohobuy.com$request_uri; + proxy_redirect off; + proxy_pass http://yohobuy-pc; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; } - location ^~ /brands/ { - rewrite /brands/$ http://www.yohobuy.com/brands permanent; + location = /sale { + rewrite /sale http://www.yohobuy.com/product/sale/ permanent; } + + #location ^~ /brands/ { + # rewrite /brands/$ http://www.yohobuy.com/brands permanent; + #} location ^~ /discount { rewrite /discount http://search.yohobuy.com permanent; } @@ -97,4 +102,6 @@ location ^~ /product/exhibit { rewrite /product/exhibit http://www.yohobuy.com permanent; - } \ No newline at end of file + } + + diff --git a/script/nginx/conf/vhost/testing/location/yohobuypc_node.conf b/script/nginx/conf/vhost/testing/location/yohobuypc_node.conf index b7c44d3..d6a2857 100644 --- a/script/nginx/conf/vhost/testing/location/yohobuypc_node.conf +++ b/script/nginx/conf/vhost/testing/location/yohobuypc_node.conf @@ -1,43 +1,93 @@ -location ^~ /passport/autosign/wechat/ { + location = / { proxy_redirect off; proxy_pass http://yohobuy-node; proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Accept-Encoding "gzip"; } - location ^~ /passport/login/wechat/ { + location = /woman { proxy_redirect off; proxy_pass http://yohobuy-node; proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Accept-Encoding "gzip"; } - location = /product/index/getNodeContent { - proxy_redirect off; - proxy_pass http://yohobuy-node; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Accept-Encoding "gzip"; + location = /girls { + return 301 /woman; } + location = /kids { + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location = /lifestyle { + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + location ^~ /product/sale/ { - proxy_redirect off; - proxy_pass http://yohobuy-node; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Accept-Encoding "gzip"; - } + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } location ^~ /product/outlets/ { - proxy_redirect off; - proxy_pass http://yohobuy-node; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Accept-Encoding "gzip"; - } + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location = /passport/autosign/wechat { + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + location ^~ /passport/login/wechat/ { + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location = /guide { + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location = /getbrandFloorDataAjax { + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } \ No newline at end of file diff --git a/script/nginx/conf/vhost/testing/location/yohobuypc_node443.conf b/script/nginx/conf/vhost/testing/location/yohobuypc_node443.conf new file mode 100644 index 0000000..ce449de --- /dev/null +++ b/script/nginx/conf/vhost/testing/location/yohobuypc_node443.conf @@ -0,0 +1,136 @@ + #https flag, 1 means HTTPS, 0 means HTTP + set $httpsFlag 1; + + location = / { + if ($httpsFlag = 0) { + return 301 http://$host$request_uri; + } + + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location = /woman { + if ($httpsFlag = 0) { + return 301 http://$host$request_uri; + } + + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location = /girls { + return 301 /woman; + } + + location = /kids { + if ($httpsFlag = 0) { + return 301 http://$host$request_uri; + } + + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location = /lifestyle { + if ($httpsFlag = 0) { + return 301 http://$host$request_uri; + } + + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location ^~ /product/sale/ { + if ($httpsFlag = 0) { + return 301 http://$host$request_uri; + } + + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location ^~ /product/outlets/ { + if ($httpsFlag = 0) { + return 301 http://$host$request_uri; + } + + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location = /passport/autosign/wechat { + if ($httpsFlag = 0) { + return 301 http://$host$request_uri; + } + + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location ^~ /passport/login/wechat/ { + if ($httpsFlag = 0) { + return 301 http://$host$request_uri; + } + + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location = /guide { + if ($httpsFlag = 0) { + return 301 http://$host$request_uri; + } + + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location = /getbrandFloorDataAjax { + if ($httpsFlag = 0) { + return 301 http://$host$request_uri; + } + + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } \ No newline at end of file diff --git a/script/nginx/conf/vhost/testing/location/yohobuypc_node80.conf b/script/nginx/conf/vhost/testing/location/yohobuypc_node80.conf new file mode 100644 index 0000000..05c1f75 --- /dev/null +++ b/script/nginx/conf/vhost/testing/location/yohobuypc_node80.conf @@ -0,0 +1,136 @@ + #https flag, 1 means HTTPS, 0 means HTTP + set $httpsFlag 1; + + location = / { + if ($httpsFlag = 1) { + return 301 https://$host$request_uri; + } + + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location = /woman { + if ($httpsFlag = 1) { + return 301 https://$host$request_uri; + } + + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location = /girls { + return 301 /woman; + } + + location = /kids { + if ($httpsFlag = 1) { + return 301 https://$host$request_uri; + } + + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location = /lifestyle { + if ($httpsFlag = 1) { + return 301 https://$host$request_uri; + } + + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location ^~ /product/sale/ { + if ($httpsFlag = 1) { + return 301 https://$host$request_uri; + } + + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location ^~ /product/outlets/ { + if ($httpsFlag = 1) { + return 301 https://$host$request_uri; + } + + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location = /passport/autosign/wechat { + if ($httpsFlag = 1) { + return 301 https://$host$request_uri; + } + + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location ^~ /passport/login/wechat/ { + if ($httpsFlag = 1) { + return 301 https://$host$request_uri; + } + + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location = /guide { + if ($httpsFlag = 1) { + return 301 https://$host$request_uri; + } + + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location = /getbrandFloorDataAjax { + if ($httpsFlag = 1) { + return 301 https://$host$request_uri; + } + + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } \ No newline at end of file diff --git a/script/nginx/conf/vhost/testing/location/yohobuypc_php.conf b/script/nginx/conf/vhost/testing/location/yohobuypc_php.conf index 4e1ccd5..7cb51a8 100644 --- a/script/nginx/conf/vhost/testing/location/yohobuypc_php.conf +++ b/script/nginx/conf/vhost/testing/location/yohobuypc_php.conf @@ -1,4 +1,4 @@ - #SEO optimization +#SEO optimization if ($host ~* ^www\.(.*)\.yohobuy\.com) { set $sub_name $1; return 301 $scheme://$sub_name.yohobuy.com$request_uri; @@ -20,4 +20,41 @@ proxy_set_header Host service.yoho.cn; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - } \ No newline at end of file + } + + + location ^~ /brands { + proxy_redirect off; + proxy_pass http://yohobuy-pc; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location ^~ /common/passport { + proxy_redirect off; + proxy_pass http://yohobuy-pc; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location ^~ /Passport/session/index { + proxy_redirect off; + proxy_pass http://yohobuy-old-www; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location ^~ /home/address/area { + proxy_redirect off; + proxy_pass http://yohobuy-pc; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } \ No newline at end of file diff --git a/script/nginx/conf/vhost/testing/location/yohobuypc_static.conf b/script/nginx/conf/vhost/testing/location/yohobuypc_static.conf index 2a8ecc1..e899b99 100644 --- a/script/nginx/conf/vhost/testing/location/yohobuypc_static.conf +++ b/script/nginx/conf/vhost/testing/location/yohobuypc_static.conf @@ -6,4 +6,10 @@ } location =/robots.txt { expires 1d; + } + + ## baidu feng322169 yoho9646 + location = /baidu_verify_Mrj1Pt3L86.html { + root /Data/PE/yohobuy_pc/assets; + expires 7d; } \ No newline at end of file diff --git a/script/nginx/conf/vhost/testing/location/yohobuywap_app.conf b/script/nginx/conf/vhost/testing/location/yohobuywap_app.conf new file mode 100644 index 0000000..8a4e291 --- /dev/null +++ b/script/nginx/conf/vhost/testing/location/yohobuywap_app.conf @@ -0,0 +1,32 @@ +#app api + location =/appembed { + default_type application/json; + return 200 '{"code":200,"message":"app embed","data":{"open":"N","url":"http://m.yohobuy.com"}}'; + } + + location =/lb/v1 { + #cc: e0323a9039add2978bf5b49550572c7c oo:e47ca7a09cf6781e29634502345930a7 + #acecl:7ea6bdf07376a928c5d4677789c45463 opqcl:kai: 352f028bd6ecf28de1c285c573642659 guang:7ea6bdf07376a928c5d4677789c45463 + #srp 62a165d59f8daf42e2df5f3c5aed8a2f krp:17d7a40f313560d4d9a1189a91e45ab9 + #boc 94931e4a3036baeecdacb975e10a8ec6 bcc:dc9262a469f6f315f74c087a7b3a7f35 + default_type application/json; + return 200 '{"code":200,"message":"Config Success","md5":"e4567a9039add2978bf5b49550572cff","data":{"ae":"e0323a9039add2978bf5b49550572c7c","url":"http://m.yohobuy.com","tl":"352f028bd6ecf28de1c285c573642659","dl":"2a90dfa0f37b92aaebf369e9a4d38ba4","rp":"17d7a40f313560d4d9a1189a91e45ab9","dli":"5b2d8b4b242e067616c6cd98851b2306"}}'; + } + + location =/hf/v1 { + proxy_redirect off; + proxy_pass http://yohobuy; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location =/rn/v1 { + proxy_redirect off; + proxy_pass http://yohobuy; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } diff --git a/script/nginx/conf/vhost/testing/location/yohobuywap_httpskey.conf b/script/nginx/conf/vhost/testing/location/yohobuywap_httpskey.conf new file mode 100644 index 0000000..b35a9a1 --- /dev/null +++ b/script/nginx/conf/vhost/testing/location/yohobuywap_httpskey.conf @@ -0,0 +1,8 @@ +ssl on; + ssl_dhparam /Data/local/nginx-1.8.0/conf/ssl/dhparam.pem; + + ssl_prefer_server_ciphers on; + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_ciphers "ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:DES-CBC3-SHA"; + ssl_session_tickets off; + ssl_session_cache shared:SSL:10m; diff --git a/script/nginx/conf/vhost/testing/location/yohobuywap_idc.conf b/script/nginx/conf/vhost/testing/location/yohobuywap_idc.conf new file mode 100644 index 0000000..534c6a7 --- /dev/null +++ b/script/nginx/conf/vhost/testing/location/yohobuywap_idc.conf @@ -0,0 +1,229 @@ +#idc old proxy + location =/invite.html { + access_log /Data/logs/access.m.yohobuy.com.log fenxi; + proxy_redirect off; + proxy_pass http://yohobuy_idc; + proxy_set_header Host m.yohobuy.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + location =/app.html { + access_log /Data/logs/access.m.yohobuy.com.log fenxi; + proxy_redirect off; + proxy_pass http://yohobuy_idc; + proxy_set_header Host m.yohobuy.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + location =/yohood.html { + access_log /Data/logs/access.m.yohobuy.com.log fenxi; + proxy_redirect off; + proxy_pass http://yohobuy_idc; + proxy_set_header Host m.yohobuy.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + location ^~ /home/lottery { + access_log /Data/logs/access.m.yohobuy.com.log fenxi; + proxy_redirect off; + proxy_pass http://yohobuy_idc; + proxy_set_header Host m.yohobuy.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + location ^~ /home/redenvelopes { + access_log /Data/logs/access.m.yohobuy.com.log fenxi; + proxy_redirect off; + proxy_pass http://yohobuy_idc; + proxy_set_header Host m.yohobuy.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + location ^~ /home/orders/tickets { + access_log /Data/logs/access.m.yohobuy.com.log fenxi; + proxy_redirect off; + proxy_pass http://yohobuy_idc; + proxy_set_header Host m.yohobuy.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + location ^~ /home/currency/ { + access_log /Data/logs/access.m.yohobuy.com.log fenxi; + proxy_redirect off; + proxy_pass http://yohobuy_idc; + proxy_set_header Host m.yohobuy.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + location = /home/orders/cancel { + access_log /Data/logs/access.m.yohobuy.com.log fenxi; + proxy_redirect off; + proxy_pass http://yohobuy_idc; + proxy_set_header Host m.yohobuy.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + location ^~ /wechat { + access_log /Data/logs/access.m.yohobuy.com.log fenxi; + proxy_redirect off; + proxy_pass http://yohobuy_idc; + proxy_set_header Host m.yohobuy.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + location ^~ /huodong { + access_log /Data/logs/access.m.yohobuy.com.log fenxi; + proxy_redirect off; + proxy_pass http://yohobuy_idc; + proxy_set_header Host m.yohobuy.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + location ^~ /download { + access_log /Data/logs/access.m.yohobuy.com.log fenxi; + proxy_redirect off; + proxy_pass http://yohobuy_idc; + proxy_set_header Host m.yohobuy.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + location ^~ /events { + access_log /Data/logs/access.m.yohobuy.com.log fenxi; + proxy_redirect off; + proxy_pass http://yohobuy_idc; + proxy_set_header Host m.yohobuy.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + location ^~ /appactive { + access_log /Data/logs/access.m.yohobuy.com.log fenxi; + proxy_redirect off; + proxy_pass http://yohobuy_idc; + proxy_set_header Host m.yohobuy.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + location ^~ /cart/success { + access_log /Data/logs/access.m.yohobuy.com.log fenxi; + proxy_redirect off; + proxy_pass http://yohobuy_idc; + proxy_set_header Host m.yohobuy.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + location ^~ /shopping/success { + access_log /Data/logs/access.m.yohobuy.com.log fenxi; + proxy_redirect off; + proxy_pass http://yohobuy_idc; + proxy_set_header Host m.yohobuy.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + location ^~ /shopping/pay/aliwap { + access_log /Data/logs/access.m.yohobuy.com.log fenxi; + proxy_redirect off; + proxy_pass http://yohobuy_idc; + proxy_set_header Host m.yohobuy.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + location = /shopping/pay/wechatwap { + access_log /Data/logs/access.m.yohobuy.com.log fenxi; + proxy_redirect off; + proxy_pass http://yohobuy_idc; + proxy_set_header Host m.yohobuy.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + location ^~ /passport/syncsignin { + access_log /Data/logs/access.m.yohobuy.com.log fenxi; + proxy_redirect off; + proxy_pass http://yohobuy_idc; + proxy_set_header Host m.yohobuy.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location = /product/index/search { + access_log /Data/logs/access.m.yohobuy.com.log fenxi; + proxy_redirect off; + proxy_pass http://yohobuy_idc; + proxy_set_header Host m.yohobuy.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location ^~ /share_ { + access_log /Data/logs/access.m.yohobuy.com.log fenxi; + proxy_redirect off; + proxy_pass http://yohobuy_idc; + proxy_set_header Host m.yohobuy.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + # idc old proxy for login to write memcache and cookie (if need?) + location ^~ /Passport/session { + access_log /Data/logs/access.m.yohobuy.com.log fenxi; + proxy_redirect off; + proxy_pass http://yohobuy_idc; + proxy_set_header Host mapi.yohobuy.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location =/product/new/index { + return 301 http://m.yohobuy.com/product/new; + } + + + #old idc + location =/download/appsem { + return 301 http://cdn.yoho.cn/huodong-web/appsem/appsem.html; + } + + location =/app { + return 301 http://www.yoho.cn; + } + + location =/help.html { + return 301 http://m.yohobuy.com/home/help; + } + + location ^~ /trends_detail_ { + return 301 http://guang.m.yohobuy.com; + } + + #location =/about { + # return 301 http://$host$request_uri; + # } + + #location =/brand/index/about{ + # return 301 http://$host$request_uri; + # } + + location ^~ /product/pro_ { + return 301 http://item.m.yohobuy.com$request_uri; + } + diff --git a/script/nginx/conf/vhost/testing/location/yohobuywap_node.conf b/script/nginx/conf/vhost/testing/location/yohobuywap_node.conf new file mode 100644 index 0000000..09b4067 --- /dev/null +++ b/script/nginx/conf/vhost/testing/location/yohobuywap_node.conf @@ -0,0 +1,106 @@ + +location ^~ /passport/login/wechat/ { + proxy_redirect off; + proxy_pass http://yohobuywap-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + +location ^~ /activity { + proxy_redirect off; + proxy_pass http://yohobuywap-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + +#channel page +location = / { + proxy_redirect off; + proxy_pass http://yohobuywap-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; +} + +location = /boys { + proxy_redirect off; + proxy_pass http://yohobuywap-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; +} + +location = /girls { + proxy_redirect off; + proxy_pass http://yohobuywap-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; +} + +location = /girl { + return 301 /girls; +} + +location = /kids { + proxy_redirect off; + proxy_pass http://yohobuywap-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; +} + +location = /lifestyle { + proxy_redirect off; + proxy_pass http://yohobuywap-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; +} + +location ^~ /channel { + proxy_redirect off; + proxy_pass http://yohobuywap-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; +} + +location ^~ /product/sale/ { + proxy_redirect off; + proxy_pass http://yohobuywap-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; +} + +location ^~ /guang/star/ { + proxy_redirect off; + proxy_pass http://yohobuywap-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; +} + + +location ^~ /product/outlet/ { + proxy_redirect off; + proxy_pass http://yohobuywap-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; +} + diff --git a/script/nginx/conf/vhost/production/location/yohobuypc_node.conf b/script/nginx/conf/vhost/testing/location/yohobuywap_php.conf index 8d90fbd..14753ce 100644 --- a/script/nginx/conf/vhost/production/location/yohobuypc_node.conf +++ b/script/nginx/conf/vhost/testing/location/yohobuywap_php.conf @@ -1,42 +1,41 @@ -location ^~ /passport/autosign/wechat/ { + + # wechat pay + location ^~ /shopping/pay/aliwapreturn { + proxy_redirect off; + proxy_pass http://yohobuy; + proxy_set_header Host m.yohobuy.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location ^~ /home/orders/pay { proxy_redirect off; - proxy_pass http://yohobuy-node; + proxy_pass http://yohobuy; proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Accept-Encoding "gzip"; } - location ^~ /passport/login/wechat/ { + location ^~ /shopping/pay/wechatwapapi { proxy_redirect off; - proxy_pass http://yohobuy-node; + proxy_pass http://yohobuy; proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Accept-Encoding "gzip"; } - location = /product/index/getNodeContent { - proxy_redirect off; - proxy_pass http://yohobuy-node; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Accept-Encoding "gzip"; - } - - location ^~ /product/sale/ { - proxy_redirect off; - proxy_pass http://yohobuy-node; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Accept-Encoding "gzip"; - } + location ^~ /coupon { + proxy_redirect off; + proxy_pass http://yohobuy; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } - location ^~ /product/outlets/ { - proxy_redirect off; - proxy_pass http://yohobuy-node; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Accept-Encoding "gzip"; - } + location = /coupon/index { + return 301 /activity/coupon?$query_string; + } diff --git a/script/nginx/conf/vhost/testing/location/yohobuywap_static.conf b/script/nginx/conf/vhost/testing/location/yohobuywap_static.conf new file mode 100644 index 0000000..33efb44 --- /dev/null +++ b/script/nginx/conf/vhost/testing/location/yohobuywap_static.conf @@ -0,0 +1,29 @@ + #static file + location =/favicon.ico { + expires 7d; + } + location =/crossdomain.xml { + expires 7d; + } + location =/sitemap.xml { + expires 1d; + } + location =/robots.txt { + expires 1d; + } + + location = /error.html { + root /Data/PE/yohobuy_H5/assets; + expires 7d; + } + # app show help page + location =/help/shareorder.html { + root /Data/PE/yohobuy_H5/assets; + expires 7d; + } + + ## baidu feng322169 yoho9646 + location = /baidu_verify_bXX90VTyvs.html { + root /Data/PE/yohobuy_H5/assets; + expires 7d; + } diff --git a/script/nginx/conf/vhost/testing/yohobuypc.conf b/script/nginx/conf/vhost/testing/yohobuypc.conf index 4c4eb21..85bf15b 100644 --- a/script/nginx/conf/vhost/testing/yohobuypc.conf +++ b/script/nginx/conf/vhost/testing/yohobuypc.conf @@ -1,10 +1,11 @@ server { listen 80; - server_name *.yohobuy.com; - root /Data/code/git/web/yohobuy/yohobuy/www.yohobuy.com/public; + server_name www.yohobuy.com *.yohobuy.com; + root /Data/PE/yohobuy_pc/yohobuy/www.yohobuy.com/public; - error_log /Data/logs/error.pc.yohobuy.com.log warn; + access_log /Data/logs/nginx/access_pc.yohobuy.com.log fenxi; + error_log /Data/logs/error_pc.yohobuy.com.log warn; # static file include vhosts/location/yohobuypc_static.conf; @@ -15,31 +16,100 @@ server # php include vhosts/location/yohobuypc_php.conf; + # node + include vhosts/location/yohobuypc_node.conf; + + location ~* /special_(\d+)_(.*)\.html$ { + proxy_redirect off; + proxy_pass http://yohobuy-old-www; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location ~* /special/(\d+)_(.*)\.html$ { + proxy_redirect off; + proxy_pass http://yohobuy-node; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location ^~ /home/returns { + proxy_redirect off; + proxy_pass http://yohobuy-pc; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + location = /index.html { - return 301 http://www.yohobuy.com/; + return 301 http://www.yohobuy.com/; + } + + location ^~ /resource/getbanner { + rewrite /resource/getbanner(.*)$ https://www.yohobuy.com/common/getbanner$1 permanent; } - location ^~ /resource/getbanner { - rewrite /resource/getbanner(.*)$ https://www.yohobuy.com/common/getbanner$1 permanent; - } + #https flag, 1 means HTTPS, 0 means HTTP + set $httpsFlag 0; + + location / { + if ($httpsFlag = 1) { + return 301 https://$host$request_uri; + } + + proxy_redirect off; + proxy_pass http://yohobuy-pc; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + +} + +server +{ + listen 80; + listen 443 ssl; + ssl_certificate /Data/local/nginx-1.8.0/conf/ssl/pc/server.pem; + ssl_certificate_key /Data/local/nginx-1.8.0/conf/ssl/pc/server.key; + + server_name list.yohobuy.com item.yohobuy.com sale.yohobuy.com new.yohobuy.com search.yohobuy.com guang.yohobuy.com shop.yohobuy.com; + + + # https key + include vhosts/location/yohobuypc_httpskey.conf; - # others http 301 redirect https location / { - return 301 https://$host$request_uri; + proxy_redirect off; + proxy_pass http://yohobuy-pc; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; } } server { listen 443; - server_name *.yohobuy.com; + server_name www.yohobuy.com *.yohobuy.com; - ssl_certificate /Data/local/nginx-1.8.0/conf/ssl/server.crt; - ssl_certificate_key /Data/local/nginx-1.8.0/conf/ssl/server.key; + ssl_certificate /Data/local/nginx-1.8.0/conf/ssl/pc/server.pem; + ssl_certificate_key /Data/local/nginx-1.8.0/conf/ssl/pc/server.key; - root /Data/code/git/web/yohobuy/yohobuy/www.yohobuy.com/public; + root /Data/PE/yohobuy_pc/yohobuy/www.yohobuy.com/public; - error_log /Data/logs/error.pc.yohobuy.com.log warn; + access_log /Data/logs/nginx/access_pc.yohobuy.com.log fenxi; + error_log /Data/logs/error_pc.yohobuy.com.log warn; + + # https key + include vhosts/location/yohobuypc_httpskey.conf; # static file include vhosts/location/yohobuypc_static.conf; @@ -50,21 +120,42 @@ server # php include vhosts/location/yohobuypc_php.conf; + # node + include vhosts/location/yohobuypc_node.conf; + + location ~* /special_(\d+)_(.*)\.html$ { + return 301 http://$host$request_uri; + } + + location ~* /special/(\d+)_(.*)\.html$ { + return 301 http://$host$request_uri; + } + + location ^~ /home/returns { + return 301 http://$host$request_uri; + } + location = /index.html { - return 301 https://www.yohobuy.com/; + return 301 http://www.yohobuy.com/; } - location ^~ /resource/getbanner { - rewrite /resource/getbanner(.*)$ https://www.yohobuy.com/common/getbanner$1 permanent; - } + location ^~ /resource/getbanner { + rewrite /resource/getbanner(.*)$ https://www.yohobuy.com/common/getbanner$1 permanent; + } - location / { - proxy_redirect off; - proxy_pass http://yohobuy_pc; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Accept-Encoding "gzip"; + #https flag, 1 means HTTPS, 0 means HTTP + set $httpsFlag 0; + + location / { + if ($httpsFlag = 0) { + return 301 http://$host$request_uri; + } + proxy_redirect off; + proxy_pass http://yohobuy-pc; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; } } @@ -73,6 +164,7 @@ server listen 80; server_name admin.yohobuy.com union.yohobuy.com; + access_log /Data/logs/nginx/access_pc.yohobuy.com.log fenxi; error_log /Data/logs/error_pc.yohobuy.com.log warn; location / { @@ -90,7 +182,10 @@ server { listen 80; server_name huodong.yohobuy.com; - root /Data/code/git/web/yohobuy/yohobuy/huodong.yohobuy.com/public; + root /Data/PE/yohobuy_pc/yohobuy/huodong.yohobuy.com/public; + + access_log /Data/logs/nginx/access_pc.yohobuy.com.log fenxi; + error_log /Data/logs/error_pc.yohobuy.com.log warn; location ^~ /cuxiao { proxy_redirect off; @@ -100,7 +195,7 @@ server proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Accept-Encoding "gzip"; } - + location / { proxy_redirect off; proxy_pass http://yohobuy-old-huodong; @@ -119,10 +214,16 @@ server listen 443; server_name huodong.yohobuy.com; - ssl_certificate /Data/local/nginx-1.8.0/conf/ssl/server.crt; - ssl_certificate_key /Data/local/nginx-1.8.0/conf/ssl/server.key; + ssl_certificate /Data/local/nginx-1.8.0/conf/ssl/pc/server.pem; + ssl_certificate_key /Data/local/nginx-1.8.0/conf/ssl/pc/server.key; + + root /Data/PE/yohobuy_pc/yohobuy/huodong.yohobuy.com/public; + + access_log /Data/logs/nginx/access_pc.yohobuy.com.log fenxi; + error_log /Data/logs/error_pc.yohobuy.com.log warn; - root /Data/code/git/web/yohobuy/yohobuy/huodong.yohobuy.com/public; + # https key + include vhosts/location/yohobuypc_httpskey.conf; location ^~ /cuxiao { proxy_redirect off; @@ -156,6 +257,46 @@ server ssl_certificate_key /Data/local/nginx-1.8.0/conf/ssl/server.key; location = / { - return 301 https://www.yohobuy.com/; + return 301 http://www.yohobuy.com/; } } + + +server +{ + listen 443; + server_name analytics.m.yohobuy.com; + + ssl_certificate /Data/local/nginx-1.8.0/conf/ssl/m.yohobuy.pem; + ssl_certificate_key /Data/local/nginx-1.8.0/conf/ssl/m.yohobuy.key; + + # https key + include vhosts/location/yohobuypc_httpskey.conf; + + location / { + proxy_redirect off; + proxy_pass http://yohobuy_analytics; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + proxy_set_header http_referer $http_referer; + } +} + + server +{ + listen 80; + server_name analytics.m.yohobuy.com; + + location / { + proxy_redirect off; + proxy_pass http://yohobuy_analytics; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + proxy_set_header http_referer $http_referer; + } + +} diff --git a/script/nginx/conf/vhost/production/yohobuypc.conf b/script/nginx/conf/vhost/testing/yohobuypc0706.conf index fb68c11..2639af9 100644 --- a/script/nginx/conf/vhost/production/yohobuypc.conf +++ b/script/nginx/conf/vhost/testing/yohobuypc0706.conf @@ -1,11 +1,11 @@ server { listen 80; - server_name *.yohobuy.com; - root /Data/code/git/web/yohobuy/yohobuy/www.yohobuy.com/public; + server_name www.yohobuy.com *.yohobuy.com; + root /Data/PE/yohobuy_pc/yohobuy/www.yohobuy.com/public; access_log /Data/logs/nginx/access_pc.yohobuy.com.log fenxi; - error_log /Data/logs/error.pc.yohobuy.com.log warn; + error_log /Data/logs/error_pc.yohobuy.com.log warn; # static file include vhosts/location/yohobuypc_static.conf; @@ -16,32 +16,143 @@ server # php include vhosts/location/yohobuypc_php.conf; + # node + include vhosts/location/yohobuypc_node80.conf; + + location ~* /special_(\d+)_(.*)\.html$ { + proxy_redirect off; + proxy_pass http://yohobuy-old-www; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + location = /index.html { - return 301 http://www.yohobuy.com/; + return 301 http://www.yohobuy.com/; + } + + location ^~ /resource/getbanner { + rewrite /resource/getbanner(.*)$ https://www.yohobuy.com/common/getbanner$1 permanent; } - location ^~ /resource/getbanner { - rewrite /resource/getbanner(.*)$ https://www.yohobuy.com/common/getbanner$1 permanent; - } + #https flag, 1 means HTTPS, 0 means HTTP + set $httpsFlag 0; + + location / { + if ($httpsFlag = 1) { + return 301 https://$host$request_uri; + } + + proxy_redirect off; + proxy_pass http://yohobuy-pc; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + +} + +server +{ + listen 80; + + server_name list.yohobuy.com item.yohobuy.com sale.yohobuy.com search.yohobuy.com guang.yohobuy.com shop.yohobuy.com; + + root /Data/PE/yohobuy_pc/yohobuy/www.yohobuy.com/public; + access_log /Data/logs/nginx/access_pc.yohobuy.com.log fenxi; + error_log /Data/logs/error_pc.yohobuy.com.log warn; + + # static file + include vhosts/location/yohobuypc_static.conf; + + # old idc + include vhosts/location/yohobuypc_idc.conf; + + # php + include vhosts/location/yohobuypc_php.conf; + + + #https flag, 1 means HTTPS, 0 means HTTP + set $httpsFlag 1; + + location / { + if ($httpsFlag = 1) { + return 301 https://$host$request_uri; + } + + proxy_redirect off; + proxy_pass http://yohobuy-pc; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } +} + +server +{ + listen 443 ; + + server_name list.yohobuy.com item.yohobuy.com sale.yohobuy.com search.yohobuy.com guang.yohobuy +.com shop.yohobuy.com; + + ssl_certificate /Data/local/nginx-1.8.0/conf/ssl/pc/server.pem; + ssl_certificate_key /Data/local/nginx-1.8.0/conf/ssl/pc/server.key; + + root /Data/PE/yohobuy_pc/yohobuy/www.yohobuy.com/public; + access_log /Data/logs/nginx/access_pc.yohobuy.com.log fenxi; + error_log /Data/logs/error_pc.yohobuy.com.log warn; + + # https key + include vhosts/location/yohobuypc_httpskey.conf; + + # static file + include vhosts/location/yohobuypc_static.conf; + + # old idc + include vhosts/location/yohobuypc_idc.conf; + + # php + include vhosts/location/yohobuypc_php.conf; + + # node + #include vhosts/location/yohobuypc_node443.conf; + + #https flag, 1 means HTTPS, 0 means HTTP + set $httpsFlag 1; - # others http 301 redirect https location / { - return 301 https://$host$request_uri; + if ($httpsFlag = 0) { + return 301 http://$host$request_uri; + } + + proxy_redirect off; + proxy_pass http://yohobuy-pc; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; } + } server { listen 443; - server_name *.yohobuy.com; + server_name www.yohobuy.com *.yohobuy.com; ssl_certificate /Data/local/nginx-1.8.0/conf/ssl/pc/server.pem; ssl_certificate_key /Data/local/nginx-1.8.0/conf/ssl/pc/server.key; - root /Data/code/git/web/yohobuy/yohobuy/www.yohobuy.com/public; + root /Data/PE/yohobuy_pc/yohobuy/www.yohobuy.com/public; access_log /Data/logs/nginx/access_pc.yohobuy.com.log fenxi; - error_log /Data/logs/error.pc.yohobuy.com.log warn; + error_log /Data/logs/error_pc.yohobuy.com.log warn; + + # https key + include vhosts/location/yohobuypc_httpskey.conf; # static file include vhosts/location/yohobuypc_static.conf; @@ -52,21 +163,34 @@ server # php include vhosts/location/yohobuypc_php.conf; + # node + include vhosts/location/yohobuypc_node443.conf; + + location ~* /special_(\d+)_(.*)\.html$ { + return 301 http://$host$request_uri; + } + location = /index.html { - return 301 https://www.yohobuy.com/; + return 301 http://www.yohobuy.com/; } location ^~ /resource/getbanner { rewrite /resource/getbanner(.*)$ https://www.yohobuy.com/common/getbanner$1 permanent; } - location / { - proxy_redirect off; - proxy_pass http://yohobuy-pc; - proxy_set_header Host $host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Accept-Encoding "gzip"; + #https flag, 1 means HTTPS, 0 means HTTP + set $httpsFlag 1; + + location / { + if ($httpsFlag = 0) { + return 301 http://$host$request_uri; + } + proxy_redirect off; + proxy_pass http://yohobuy-pc; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; } } @@ -93,7 +217,7 @@ server { listen 80; server_name huodong.yohobuy.com; - root /Data/code/git/web/yohobuy/yohobuy/huodong.yohobuy.com/public; + root /Data/PE/yohobuy_pc/yohobuy/huodong.yohobuy.com/public; access_log /Data/logs/nginx/access_pc.yohobuy.com.log fenxi; error_log /Data/logs/error_pc.yohobuy.com.log warn; @@ -128,9 +252,13 @@ server ssl_certificate /Data/local/nginx-1.8.0/conf/ssl/pc/server.pem; ssl_certificate_key /Data/local/nginx-1.8.0/conf/ssl/pc/server.key; + root /Data/PE/yohobuy_pc/yohobuy/huodong.yohobuy.com/public; + access_log /Data/logs/nginx/access_pc.yohobuy.com.log fenxi; error_log /Data/logs/error_pc.yohobuy.com.log warn; - root /Data/code/git/web/yohobuy/yohobuy/huodong.yohobuy.com/public; + + # https key + include vhosts/location/yohobuypc_httpskey.conf; location ^~ /cuxiao { proxy_redirect off; @@ -160,15 +288,37 @@ server listen 443 ssl; server_name yohobuy.com; - ssl_certificate /Data/local/nginx-1.8.0/conf/ssl/pc/server.pem; - ssl_certificate_key /Data/local/nginx-1.8.0/conf/ssl/pc/server.key; - - error_log /Data/logs/error_pc.yohobuy.com.log warn; - - # https key - include vhosts/location/yohobuypc_httpskey.conf; + ssl_certificate /Data/local/nginx-1.8.0/conf/ssl/server.crt; + ssl_certificate_key /Data/local/nginx-1.8.0/conf/ssl/server.key; location = / { - return 301 https://www.yohobuy.com/; + return 301 http://www.yohobuy.com/; } } + +server +{ + listen 80; + listen 443 ssl; + server_name analytics.m.yohobuy.com; + + ssl_certificate /Data/local/nginx-1.8.0/conf/ssl/m.yohobuy.pem; + ssl_certificate_key /Data/local/nginx-1.8.0/conf/ssl/m.yohobuy.key; + ssl_dhparam /Data/local/nginx-1.8.0/conf/ssl/dhparam.pem; + + ssl_prefer_server_ciphers on; + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_ciphers "ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:DES-CBC3-SHA"; + ssl_session_tickets off; + ssl_session_cache shared:SSL:10m; + + location / { + proxy_redirect off; + proxy_pass http://yohobuy_analytics; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $http_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + proxy_set_header http_referer $http_referer; + } +} \ No newline at end of file diff --git a/script/nginx/conf/vhost/testing/yohobuypc0707.conf b/script/nginx/conf/vhost/testing/yohobuypc0707.conf new file mode 100644 index 0000000..9b73874 --- /dev/null +++ b/script/nginx/conf/vhost/testing/yohobuypc0707.conf @@ -0,0 +1,302 @@ +server +{ + listen 80; + server_name www.yohobuy.com; + root /Data/code/git/web/yohobuy/yohobuy/www.yohobuy.com/public; + error_log /Data/logs/error_pc.yohobuy.com.log warn; + + ############################################################## begin + # if the protocol is http, please open these configs, otherwise close these configs. + # exception, alwalys use http protocol + #include vhosts/location/yohobuypc_exception.conf; + + # static file + #include vhosts/location/yohobuypc_static.conf; + + # old idc + #include vhosts/location/yohobuypc_idc.conf; + + # php + #include vhosts/location/yohobuypc_php.conf; + + # node + #include vhosts/location/yohobuypc_node80.conf; + ############################################################## end + + #https flag, 1 means HTTPS, 0 means HTTP + set $httpsFlag 1; + + location / { + if ($httpsFlag = 1) { + return 301 https://$host$request_uri; + } + + proxy_redirect off; + proxy_pass http://yohobuy-pc; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } +} + +server +{ + listen 80; + server_name *.yohobuy.com; + root /Data/code/git/web/yohobuy/yohobuy/www.yohobuy.com/public; + + error_log /Data/logs/error_pc.yohobuy.com.log warn; + + ############################################################## begin + # if the protocol is http, please open these configs, otherwise close these configs. + # exception, alwalys use http protocol + #include vhosts/location/yohobuypc_exception.conf; + + # static file + #include vhosts/location/yohobuypc_static.conf; + + # old idc + #include vhosts/location/yohobuypc_idc.conf; + + # php + #include vhosts/location/yohobuypc_php.conf; + ############################################################## end + + #https flag, 1 means HTTPS, 0 means HTTP + set $httpsFlag 1; + + location / { + if ($httpsFlag = 1) { + return 301 https://$host$request_uri; + } + + proxy_redirect off; + proxy_pass http://yohobuy-pc; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } +} + + +server +{ + listen 443; + server_name www.yohobuy.com; + + ssl_certificate /Data/local/nginx-1.8.0/conf/ssl/server.crt; + ssl_certificate_key /Data/local/nginx-1.8.0/conf/ssl/server.key; + + root /Data/code/git/web/yohobuy/yohobuy/www.yohobuy.com/public; + + error_log /Data/logs/error_pc.yohobuy.com.log warn; + + # https key + include vhosts/location/yohobuypc_httpskey.conf; + + ############################################################## begin + # if the protocol is https, please open these configs, otherwise close these configs. + # exception, alwalys use http protocol + include vhosts/location/yohobuypc_exception.conf; + + # static file + include vhosts/location/yohobuypc_static.conf; + + # old idc + include vhosts/location/yohobuypc_idc.conf; + + # php + include vhosts/location/yohobuypc_php.conf; + + # node + include vhosts/location/yohobuypc_node443.conf; + ############################################################## end + + #https flag, 1 means HTTPS, 0 means HTTP + set $httpsFlag 1; + + location / { + if ($httpsFlag = 0) { + return 301 http://$host$request_uri; + } + proxy_redirect off; + proxy_pass http://yohobuy-pc; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } +} + +server +{ + listen 443; + server_name *.yohobuy.com; + + ssl_certificate /Data/local/nginx-1.8.0/conf/ssl/server.crt; + ssl_certificate_key /Data/local/nginx-1.8.0/conf/ssl/server.key; + + root /Data/code/git/web/yohobuy/yohobuy/www.yohobuy.com/public; + + error_log /Data/logs/error_pc.yohobuy.com.log warn; + + # https key + include vhosts/location/yohobuypc_httpskey.conf; + + ############################################################## begin + # if the protocol is https, please open these configs, otherwise close these configs. + # exception, alwalys use http protocol + include vhosts/location/yohobuypc_exception.conf; + + # static file + include vhosts/location/yohobuypc_static.conf; + + # old idc + include vhosts/location/yohobuypc_idc.conf; + + # php + include vhosts/location/yohobuypc_php.conf; + ############################################################## end + + #https flag, 1 means HTTPS, 0 means HTTP + set $httpsFlag 1; + + location / { + if ($httpsFlag = 0) { + return 301 http://$host$request_uri; + } + proxy_redirect off; + proxy_pass http://yohobuy-pc; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } +} + +server +{ + listen 80; + server_name admin.yohobuy.com union.yohobuy.com; + + error_log /Data/logs/error_pc.yohobuy.com.log warn; + + location / { + proxy_redirect off; + proxy_pass http://yohobuy-old-www; + proxy_set_header Host admin.yohobuy.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } +} + +server +{ + listen 80; + server_name huodong.yohobuy.com; + root /Data/code/git/web/yohobuy/yohobuy/huodong.yohobuy.com/public; + + error_log /Data/logs/error_pc.yohobuy.com.log warn; + + location ^~ /cuxiao { + proxy_redirect off; + proxy_pass http://yohobuy-pc; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location / { + proxy_redirect off; + proxy_pass http://yohobuy-old-huodong; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + # static file + include vhosts/location/yohobuypc_static.conf; +} + +server +{ + listen 443; + server_name huodong.yohobuy.com; + + ssl_certificate /Data/local/nginx-1.8.0/conf/ssl/server.crt; + ssl_certificate_key /Data/local/nginx-1.8.0/conf/ssl/server.key; + + root /Data/code/git/web/yohobuy/yohobuy/huodong.yohobuy.com/public; + + error_log /Data/logs/error_pc.yohobuy.com.log warn; + + # https key + include vhosts/location/yohobuypc_httpskey.conf; + + location ^~ /cuxiao { + proxy_redirect off; + proxy_pass http://yohobuy-pc; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location / { + proxy_redirect off; + proxy_pass http://yohobuy-old-huodong; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + # static file + include vhosts/location/yohobuypc_static.conf; +} + +server +{ + listen 80; + listen 443 ssl; + + server_name yohobuy.com; + ssl_certificate /Data/local/nginx-1.8.0/conf/ssl/server.crt; + ssl_certificate_key /Data/local/nginx-1.8.0/conf/ssl/server.key; + + location = / { + return 301 http://www.yohobuy.com/; + } +} + +server +{ + listen 80; + listen 443 ssl; + server_name analytics.m.yohobuy.com; + + ssl_certificate /Data/local/nginx-1.8.0/conf/ssl/server.crt; + ssl_certificate_key /Data/local/nginx-1.8.0/conf/ssl/server.key; + #ssl_dhparam /Data/local/nginx-1.8.0/conf/ssl/dhparam.pem; + + ssl_prefer_server_ciphers on; + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_ciphers "ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:DES-CBC3-SHA"; + ssl_session_tickets off; + ssl_session_cache shared:SSL:10m; + + location / { + proxy_redirect off; + proxy_pass http://yohobuy_analytics; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $http_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + proxy_set_header http_referer $http_referer; + } +} \ No newline at end of file diff --git a/script/nginx/conf/vhost/testing/yohobuywap.conf b/script/nginx/conf/vhost/testing/yohobuywap.conf new file mode 100644 index 0000000..6c9c42d --- /dev/null +++ b/script/nginx/conf/vhost/testing/yohobuywap.conf @@ -0,0 +1,252 @@ +server +{ + listen 80; + server_name m.yohobuy.com nginx1.m.yohobuy.com; + + access_log /Data/logs/nginx/access_wap.yohobuy.com.log fenxi; + error_log /Data/logs/error_wap.yohobuy.com.log warn; + root /Data/PE/yohobuy_H5/yohobuy/m.yohobuy.com/public; + + # old idc + include vhosts/location/yohobuywap_idc.conf; + # app + include vhosts/location/yohobuywap_app.conf; + # php + include vhosts/location/yohobuywap_php.conf; + # node + #include vhosts/location/yohobuywap_node.conf; + # static file + include vhosts/location/yohobuywap_static.conf; + + #https flag, 1 means HTTPS, 0 means HTTP + set $httpsFlag 1; + + location / { + if ($httpsFlag = 1) { + return 301 https://$host$request_uri; + } + + proxy_redirect off; + proxy_pass http://yohobuy; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } +} + + +server +{ + listen 443; + server_name m.yohobuy.com; + + ssl_certificate /Data/local/nginx-1.8.0/conf/ssl/yohobuy.pem; + ssl_certificate_key /Data/local/nginx-1.8.0/conf/ssl/yohobuy.key; + + # https key + include vhosts/location/yohobuywap_httpskey.conf; + + root /Data/PE/yohobuy_H5/yohobuy/m.yohobuy.com/public; + + access_log /Data/logs/nginx/access_wap.yohobuy.com.log fenxi; + error_log /Data/logs/error_wap.yohobuy.com.log warn; + + # old idc + include vhosts/location/yohobuywap_idc.conf; + # app + include vhosts/location/yohobuywap_app.conf; + # php + include vhosts/location/yohobuywap_php.conf; + # node + include vhosts/location/yohobuywap_node.conf; + # static file + include vhosts/location/yohobuywap_static.conf; + + #https flag, 1 means HTTPS, 0 means HTTP + set $httpsFlag 1; + + location / { + if ($httpsFlag = 0) { + return 301 http://$host$request_uri; + } + proxy_redirect off; + proxy_pass http://yohobuy; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } +} + +server +{ + + listen 80; + server_name guang.m.yohobuy.com; + + access_log /Data/logs/nginx/access_wap.yohobuy.com.log fenxi; + error_log /Data/logs/error_wap.yohobuy.com.log warn; + root /Data/PE/yohobuy_H5/yohobuy/m.yohobuy.com/public; + + # static file + include vhosts/location/yohobuywap_static.conf; + + # guang rss + location ^~ /rss { + proxy_redirect off; + proxy_pass http://yohobuy; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + location / { + proxy_redirect off; + proxy_pass http://yohobuy; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } +} + +server +{ + listen 80; + server_name *.m.yohobuy.com; + + access_log /Data/logs/nginx/access_wap.yohobuy.com.log fenxi; + error_log /Data/logs/error_wap.yohobuy.com.log warn; + + root /Data/PE/yohobuy_H5/yohobuy/m.yohobuy.com/public; + # static file + include vhosts/location/yohobuywap_static.conf; + + #https flag, 1 means HTTPS, 0 means HTTP + set $httpsFlag 1; + + location / { + if ($httpsFlag = 1) { + return 301 https://$host$request_uri; + } + proxy_redirect off; + proxy_pass http://yohobuy; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } +} + +server +{ + listen 443; + server_name *.m.yohobuy.com; + + ssl_certificate /Data/local/nginx-1.8.0/conf/ssl/m.yohobuy.pem; + ssl_certificate_key /Data/local/nginx-1.8.0/conf/ssl/m.yohobuy.key; + + # https key + include vhosts/location/yohobuywap_httpskey.conf; + + access_log /Data/logs/nginx/access_wap.yohobuy.com.log fenxi; + error_log /Data/logs/error_wap.yohobuy.com.log warn; + + root /Data/PE/yohobuy_H5/yohobuy/m.yohobuy.com/public; + + # static file + include vhosts/location/yohobuywap_static.conf; + + # idc old proxy. while login to write memcache and cookie (if need?) + location ^~ /Passport/session { + access_log /Data/logs/access.m.yohobuy.com.log fenxi; + proxy_redirect off; + proxy_pass http://yohobuy_idc; + proxy_set_header Host mapi.yohobuy.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + # guang rss + location ^~ /rss { + proxy_redirect off; + proxy_pass http://yohobuy; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } + + #https flag, 1 means HTTPS, 0 means HTTP + set $httpsFlag 1; + + location / { + if ($httpsFlag = 0) { + return 301 http://$host$request_uri; + } + proxy_redirect off; + proxy_pass http://yohobuy; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } +} + +server +{ + listen 80; + server_name cuxiao.m.yohobuy.com; + + access_log /Data/logs/nginx/access_wap.yohobuy.com.log fenxi; + error_log /Data/logs/error_wap.yohobuy.com.log warn; + + location / { + proxy_redirect off; + proxy_pass http://yohobuy_idc; + proxy_set_header Host cuxiao.m.yohobuy.com; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + } +} + + + +server +{ + listen 80; + listen 443 ssl; + server_name analytics.m.yohobuy.com; + error_log /Data/logs/nginx/access_m_analytics_error.log warn; + access_log /Data/logs/nginx/access_m_analytics.log fenxi; + + ssl_certificate /Data/local/nginx-1.8.0/conf/ssl/m.yohobuy.pem; + ssl_certificate_key /Data/local/nginx-1.8.0/conf/ssl/m.yohobuy.key; + ssl_dhparam /Data/local/nginx-1.8.0/conf/ssl/dhparam.pem; + + ssl_prefer_server_ciphers on; + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_ciphers "ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:DES-CBC3-SHA"; + ssl_session_tickets off; + ssl_session_cache shared:SSL:10m; + + root /Data/PE/yohobuy_H5/yohobuy/m.yohobuy.com/public; + + + location / { + proxy_redirect off; + proxy_pass http://yohobuy_analytics; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $http_x_forwarded_for; + proxy_set_header Accept-Encoding "gzip"; + proxy_set_header http_referer $http_referer; + } + +} + + + diff --git a/template/www.yohobuy.com/actions/about/index/link.phtml b/template/www.yohobuy.com/actions/about/index/link.phtml index a28e9e2..71dfcd2 100644 --- a/template/www.yohobuy.com/actions/about/index/link.phtml +++ b/template/www.yohobuy.com/actions/about/index/link.phtml @@ -16,11 +16,11 @@ <br> <h2>文字链接:</h2> <ul> - <li><a href="http://www.kuaidi100.com" target="_blank">快递查询</a></li> + <li><a href="//www.kuaidi100.com" target="_blank">快递查询</a></li> </ul> <h2>图片链接:</h2> <ul class="linkpic"> - <li><a href="http://www.yoho.cn" target="_blank"><img alt="YOHO!" src="http://static.yohobuy.com/images/links/yohocn.jpg"></a></li> + <li><a href="//www.yoho.cn" target="_blank"><img alt="YOHO!" src="//static.yohobuy.com/images/links/yohocn.jpg"></a></li> </ul> </div> </div> diff --git a/template/www.yohobuy.com/actions/about/index/newpower.phtml b/template/www.yohobuy.com/actions/about/index/newpower.phtml index 1e61de2..aff33c9 100644 --- a/template/www.yohobuy.com/actions/about/index/newpower.phtml +++ b/template/www.yohobuy.com/actions/about/index/newpower.phtml @@ -11,9 +11,9 @@ </div> <div class="main-container"> {{#if devEnv}} - <img src="http://webstatic.dev.yohobuy.com/img/about/aboutnewpower.jpg?random=1466056691"/> + <img src="//webstatic.dev.yohobuy.com/img/about/aboutnewpower.jpg?random=1466056691"/> {{^}} - <img src="http://cdn.yoho.cn/yohobuy/assets/img/about/aboutnewpower.jpg?random=1466056691"/> + <img src="//cdn.yoho.cn/yohobuy/assets/img/about/aboutnewpower.jpg?random=1466056691"/> {{/if}} <div class="text-info"> <p style="font-family:微软雅黑; text-align:left;"> diff --git a/template/www.yohobuy.com/actions/about/index/yohobuy.phtml b/template/www.yohobuy.com/actions/about/index/yohobuy.phtml index 392be6a..9af0b89 100644 --- a/template/www.yohobuy.com/actions/about/index/yohobuy.phtml +++ b/template/www.yohobuy.com/actions/about/index/yohobuy.phtml @@ -11,23 +11,23 @@ </div> <div class="main-container"> {{#if devEnv}} - <img src="http://webstatic.dev.yohobuy.com/img/about/about.jpg?random=1466056691" /> + <img src="//webstatic.dev.yohobuy.com/img/about/about.jpg?random=1466056691" /> {{^}} - <img src="http://cdn.yoho.cn/yohobuy/assets/img/about/about.jpg?random=1466056691" /> + <img src="//cdn.yoho.cn/yohobuy/assets/img/about/about.jpg?random=1466056691" /> {{/if}} <div class="text-info"> <p style="font-family:微软雅黑; text-align:left;"> “YOHO!BUY 有货”——年轻人潮流购物中心,( - <a style=" font:#000;" href="http://www.yohobuy.com" target="_blank">www.yohobuy.com</a> + <a style=" font:#000;" href="//www.yohobuy.com" target="_blank">www.yohobuy.com</a> )YOHO!BUY 有货为南京新与力文化传播有限公司旗下网上商城,目前是中国最大的潮流品牌商品销售平台之一。借助中国潮流产业的发展和YOHO!在平面媒体、网络社区、线下活动等产品的推广,从刚开始的零品牌合作发展到目前200多个品牌“入驻”销售,包括国际潮流品牌、港台知名品牌、内地原创品牌等。<br> <br> 同样秉承YOHO!“年轻是种态度”的口号,YOHO!BUY 有货专注于中国潮流趋势和受众的需要,凭借专业的买手团队和对中国潮流趋势敏锐的嗅觉,积极开拓符合中国年轻人喜爱的品牌和商品。YOHO!BUY 有货所销售的品牌均与品牌直接签订销售协议,保持货品与国际国内实体店铺同步,并通过独家定制、限量货品等引领潮流消费。 </p> <p> {{#if devEnv}} - <img src="http://webstatic.dev.yohobuy.com/img/about/about_yohobuy.jpg?random=1466056691" /> + <img src="//webstatic.dev.yohobuy.com/img/about/about_yohobuy.jpg?random=1466056691" /> {{^}} - <img src="http://cdn.yoho.cn/yohobuy/assets/img/about/about_yohobuy.jpg?random=1466056691" /> + <img src="//cdn.yoho.cn/yohobuy/assets/img/about/about_yohobuy.jpg?random=1466056691" /> {{/if}} </p> </div> diff --git a/template/www.yohobuy.com/actions/cart/index/cart.phtml b/template/www.yohobuy.com/actions/cart/index/cart.phtml index e39d0a9..8ec20a8 100644 --- a/template/www.yohobuy.com/actions/cart/index/cart.phtml +++ b/template/www.yohobuy.com/actions/cart/index/cart.phtml @@ -353,7 +353,7 @@ var s = d.createElement("script");s.type = "text/javascript";s.async = true;s.sr var s0 = d.getElementsByTagName("script")[0];s0.parentNode.insertBefore(s, s0); })(document); </script> -<script type="text/javascript" src="http://static.criteo.net/js/ld/ld.js" async="true"></script> +<script type="text/javascript" src="//static.criteo.net/js/ld/ld.js" async="true"></script> <script type="text/javascript"> window.criteo_q = window.criteo_q || []; window.criteo_q.push( diff --git a/template/www.yohobuy.com/actions/cart/index/order-ensure.phtml b/template/www.yohobuy.com/actions/cart/index/order-ensure.phtml old mode 100644 new mode 100755 index ec7039a..ec7039a --- a/template/www.yohobuy.com/actions/cart/index/order-ensure.phtml +++ b/template/www.yohobuy.com/actions/cart/index/order-ensure.phtml diff --git a/template/www.yohobuy.com/actions/home/message/message-content.phtml b/template/www.yohobuy.com/actions/home/message/message-content.phtml index a6b4cd6..df3e5be 100644 --- a/template/www.yohobuy.com/actions/home/message/message-content.phtml +++ b/template/www.yohobuy.com/actions/home/message/message-content.phtml @@ -26,7 +26,7 @@ <!-- 优惠券消息 --> <div class="coupon-item"> <div class="coupon-img"> - <img src="http://static.yohobuy.com/images/v2/activity/default_coupon.jpg"> + <img src="//static.yohobuy.com/images/v2/activity/default_coupon.jpg"> </div> <div class="coupon-info"> <p>{{remark}}</p> diff --git a/template/www.yohobuy.com/actions/home/orders/orders.phtml b/template/www.yohobuy.com/actions/home/orders/orders.phtml old mode 100644 new mode 100755 index b9f63cd..6f8d2bb --- a/template/www.yohobuy.com/actions/home/orders/orders.phtml +++ b/template/www.yohobuy.com/actions/home/orders/orders.phtml @@ -56,7 +56,7 @@ {{> home/pager}} </div> - {{> home/help-us}} + {{!> home/help-us}} </div> {{/ meOrders}} </div> diff --git a/template/www.yohobuy.com/actions/home/returns/returns-apply.phtml b/template/www.yohobuy.com/actions/home/returns/returns-apply.phtml old mode 100644 new mode 100755 index d9dc4de..b83042d --- a/template/www.yohobuy.com/actions/home/returns/returns-apply.phtml +++ b/template/www.yohobuy.com/actions/home/returns/returns-apply.phtml @@ -13,7 +13,8 @@ {{# exchange}} <div class="return-prompt"> 换货须知:<br> - <p>自您签收商品7日内可以退货,15日内可以换货,在商品不影响二次销售的情况下(包括产品吊牌和外包装),YOHO!BUY 有货将为您办理退换货服务,请在网站提交"退换货"申请。<span>特别提醒:非质量问题的退换货,来回运费由您承担。寄回商品时需垫付运费,到付件无法签收。</span>换货后VIP积分累计时间重新计算,以您收到换货订单后15个工作日累加,如有疑问,请致电客服电话:400-889-9646。</p> + <p>自您签收商品7日内可以退货,15日内可以换货,在商品不影响二次销售的情况下(包括产品吊牌和外包装),YOHO!有货将为您办理退换货服务,请在网站提交"退换货"申请。<span>特别提醒:非质量问题的退换货,来回运费由您承担。寄回商品时需垫付运费,到付件无法签收。</span>换货后VIP积分累计时间重新计算,以您收到换货订单后15个工作日累加,如有疑问,请联系 <a + href="http://chat8.live800.com/live800/chatClient/chatbox.jsp?companyID=620092&configID=149091&jid=8732423409&info=" target="_blank"><i class="icon-onlineservice"></i> 在线客服</a></p> {{# tips}} {{> home/return-tips}} {{/ tips}} @@ -43,6 +44,15 @@ <td class="return-goods-info"> <a href="{{href}}">{{name}}</a> <span>颜色:{{color}} 尺码:{{size}}</span> + {{#if specialNoticeBo}} + <div class="special-tip"> + <span>{{specialNoticeBo.title}} <i class="doubt"></i></span> + <div class="special-content"> + <span>{{specialNoticeBo.remark1}}<br/>{{specialNoticeBo.remark2}}</span> + <i class="arrow"></i> + </div> + </div> + {{/if}} </td> {{#if banMsg}} @@ -79,7 +89,7 @@ <option value="0">请选择换货原因</option> {{#with exchange}} {{# reason}} - <option value="{{id}}">{{name}}</option> + <option value="{{id}}" {{#if inactive}}disabled{{/if}}>{{name}}</option> {{/ reason}} {{/with}} </select> @@ -135,7 +145,8 @@ {{# refund}} <div class="return-prompt"> 退货须知:<br> - <p>自您签收商品7日内可以退货,15日内可以换货,在商品不影响二次销售的情况下(包括产品吊牌和外包装),YOHO!BUY 有货将为您办理退换货服务,请在网站提交"退换货"申请。如您退货之后无法满足购买时参加的活动条件,请您将赠品同时申请退货。<span>特别提醒:非质量问题的退换货,来回运费由您承担,寄回商品时需垫付运费,到付件无法签收,如有疑问,请致电客服电话:400-889-9646。</span></p> + <p>自您签收商品7日内可以退货,15日内可以换货,在商品不影响二次销售的情况下(包括产品吊牌和外包装),YOHO!有货将为您办理退换货服务,请在网站提交"退换货"申请。如您退货之后无法满足购买时参加的活动条件,请您将赠品同时申请退货。<span>特别提醒:非质量问题的退换货,来回运费由您承担,寄回商品时需垫付运费,到付件无法签收,如有疑问,请联系 <a + href="http://chat8.live800.com/live800/chatClient/chatbox.jsp?companyID=620092&configID=149091&jid=8732423409&info=" target="_blank"><i class="icon-onlineservice"></i> 在线客服</a> </span></p> {{# tips}} {{> home/returns-tips}} {{/ tips}} @@ -164,6 +175,15 @@ <td class="return-goods-info"> <a href="{{href}}">{{name}}</a> <span>颜色:{{color}} 尺码:{{size}}</span> + {{#if specialNoticeBo}} + <div class="special-tip"> + <span>{{specialNoticeBo.title}} <i class="doubt"></i></span> + <div class="special-content"> + <span>{{specialNoticeBo.remark1}}<br/>{{specialNoticeBo.remark2}}</span> + <i class="arrow"></i> + </div> + </div> + {{/if}} </td> <td class="refund-price"> {{price}} @@ -176,7 +196,7 @@ <option value="0">请选择退货原因</option> {{#with refund}} {{# reason}} - <option value="{{id}}">{{name}}</option> + <option value="{{id}}" {{#if inactive}}disabled{{/if}}>{{name}}</option> {{/ reason}} {{/with}} </select> @@ -253,7 +273,7 @@ </div> </div> </div> - {{> home/help-us}} + {{!> home/help-us}} </div> {{/ returns}} </div> diff --git a/template/www.yohobuy.com/actions/home/returns/returns-detail.phtml b/template/www.yohobuy.com/actions/home/returns/returns-detail.phtml old mode 100644 new mode 100755 index 62c9b7c..a20de14 --- a/template/www.yohobuy.com/actions/home/returns/returns-detail.phtml +++ b/template/www.yohobuy.com/actions/home/returns/returns-detail.phtml @@ -21,6 +21,11 @@ {{/ statusList}} </ul> </div> + {{#if canCancelUrl}} + <div class="cancel-return"> + 如果您不想退货了,您可以 <a href="javascript:;" data-id="{{returnId}}" class="cancel-trigger" data-url="{{canCancelUrl}}">取消申请</a> + </div> + {{/if}} <div class="detail-container"> {{# express}} <h2>请填写寄回快递单号,以便我们查询</h2> @@ -79,7 +84,7 @@ </div> {{/ detail}} </div> - {{> home/help-us}} + {{!> home/help-us}} </div> {{/ returns}} </div> diff --git a/template/www.yohobuy.com/actions/home/returns/returns.phtml b/template/www.yohobuy.com/actions/home/returns/returns.phtml old mode 100644 new mode 100755 index 5deb641..df7ef92 --- a/template/www.yohobuy.com/actions/home/returns/returns.phtml +++ b/template/www.yohobuy.com/actions/home/returns/returns.phtml @@ -65,8 +65,9 @@ <div class="return-status"> {{returnStatus}} </div> - <div class="operation"> - <a class="op-item" href="{{moreHref}}" target="_blank">查看详情</a> + <div class="operation {{#if canCancelUrl}}cancel-return{{/if}}"> + {{#if canCancelUrl}}<a class="op-item cancel-trigger" href="javascript:;" data-id="{{returnId}}" data-url="{{canCancelUrl}}">取消申请</a>{{/if}} + <a class="op-item" href="{{moreHref}}" target="_blank">查看详情</a> </div> </div> </div> @@ -77,7 +78,7 @@ {{> home/pager}} </div> - {{> home/help-us}} + {{!> home/help-us}} </div> {{/ returns}} </div> diff --git a/template/www.yohobuy.com/actions/index/download/app.phtml b/template/www.yohobuy.com/actions/index/download/app.phtml index 590d822..2473235 100644 --- a/template/www.yohobuy.com/actions/index/download/app.phtml +++ b/template/www.yohobuy.com/actions/index/download/app.phtml @@ -9,22 +9,22 @@ <div class="main-wrapper"> {{#if devEnv}} <div class="intro intro-1"> - <img src="http://webstatic.dev.yohobuy.com/img/download/intro-1.png?random=1466056691"> + <img src="//webstatic.dev.yohobuy.com/img/download/intro-1.png?random=1466056691"> </div> <div class="intro intro-2"> - <img src="http://webstatic.dev.yohobuy.com/img/download/intro-2.png?random=1466056691"> + <img src="//webstatic.dev.yohobuy.com/img/download/intro-2.png?random=1466056691"> </div> <div class="intro intro-3"> - <img src="http://webstatic.dev.yohobuy.com/img/download/intro-3.png?random=1466056691"> + <img src="//webstatic.dev.yohobuy.com/img/download/intro-3.png?random=1466056691"> </div> <div class="intro intro-4"> - <img src="http://webstatic.dev.yohobuy.com/img/download/intro-4.png?random=1466056691"> + <img src="//webstatic.dev.yohobuy.com/img/download/intro-4.png?random=1466056691"> </div> <div class="intro intro-5"> - <img src="http://webstatic.dev.yohobuy.com/img/download/intro-5.png?random=1466056691"> + <img src="//webstatic.dev.yohobuy.com/img/download/intro-5.png?random=1466056691"> </div> <div class="intro intro-6"> - <img src="http://webstatic.dev.yohobuy.com/img/download/intro-6.jpg?random=1466056691"> + <img src="//webstatic.dev.yohobuy.com/img/download/intro-6.jpg?random=1466056691"> <div class="bottom-down"> <div class="qr-code right"></div> <a href="http://itunes.apple.com/us/app/id490655927?ls=1&mt=8" target="_blank" class="down-app-btn down-btns"></a> @@ -33,22 +33,22 @@ </div> {{^}} <div class="intro intro-1"> - <img src="http://cdn.yoho.cn/yohobuy/assets/img/download/intro-1.png?random=1466056691"> + <img src="//cdn.yoho.cn/yohobuy/assets/img/download/intro-1.png?random=1466056691"> </div> <div class="intro intro-2"> - <img src="http://cdn.yoho.cn/yohobuy/assets/img/download/intro-2.png?random=1466056691"> + <img src="//cdn.yoho.cn/yohobuy/assets/img/download/intro-2.png?random=1466056691"> </div> <div class="intro intro-3"> - <img src="http://cdn.yoho.cn/yohobuy/assets/img/download/intro-3.png?random=1466056691"> + <img src="//cdn.yoho.cn/yohobuy/assets/img/download/intro-3.png?random=1466056691"> </div> <div class="intro intro-4"> - <img src="http://cdn.yoho.cn/yohobuy/assets/img/download/intro-4.png?random=1466056691"> + <img src="//cdn.yoho.cn/yohobuy/assets/img/download/intro-4.png?random=1466056691"> </div> <div class="intro intro-5"> - <img src="http://cdn.yoho.cn/yohobuy/assets/img/download/intro-5.png?random=1466056691"> + <img src="//cdn.yoho.cn/yohobuy/assets/img/download/intro-5.png?random=1466056691"> </div> <div class="intro intro-6"> - <img src="http://cdn.yoho.cn/yohobuy/assets/img/download/intro-6.jpg?random=1466056691"> + <img src="//cdn.yoho.cn/yohobuy/assets/img/download/intro-6.jpg?random=1466056691"> <div class="bottom-down"> <div class="qr-code right"></div> <a href="http://itunes.apple.com/us/app/id490655927?ls=1&mt=8" target="_blank" class="down-app-btn down-btns"></a> @@ -60,9 +60,9 @@ <div class="foot-wrapper"> <a href="http://app.yohoshow.com/" target="_blank"> {{#if devEnv}} - <img src="http://webstatic.dev.yohobuy.com/img/download/main-bottom.jpg"> + <img src="//webstatic.dev.yohobuy.com/img/download/main-bottom.jpg"> {{^}} - <img src="http://cdn.yoho.cn/yohobuy/assets/img/download/main-bottom.jpg"> + <img src="//cdn.yoho.cn/yohobuy/assets/img/download/main-bottom.jpg"> {{/if}} </a> </div> diff --git a/template/www.yohobuy.com/actions/index/error/index.phtml b/template/www.yohobuy.com/actions/index/error/index.phtml index 7b3999e..d838557 100644 --- a/template/www.yohobuy.com/actions/index/error/index.phtml +++ b/template/www.yohobuy.com/actions/index/error/index.phtml @@ -6,7 +6,7 @@ <p class="links"> <a href="{{newProductLink}}">浏览新品</a> - <a href="http://www.yohobuy.com/">返回首页</a> + <a href="//www.yohobuy.com/">返回首页</a> </p> </div> </div> diff --git a/template/www.yohobuy.com/actions/pay/notice/index.phtml b/template/www.yohobuy.com/actions/pay/notice/index.phtml index fd419f5..d07dac0 100644 --- a/template/www.yohobuy.com/actions/pay/notice/index.phtml +++ b/template/www.yohobuy.com/actions/pay/notice/index.phtml @@ -50,9 +50,9 @@ </p> {{#if devEnv}} - <img class="notice-img" src="http://webstatic.dev.yohobuy.com/img/pay/notice.jpg"> + <img class="notice-img" src="//webstatic.dev.yohobuy.com/img/pay/notice.jpg"> {{^}} - <img class="notice-img" src="http://cdn.yoho.cn/yohobuy/assets/img/pay/notice.jpg"> + <img class="notice-img" src="//cdn.yoho.cn/yohobuy/assets/img/pay/notice.jpg"> {{/if}} {{/ payNotice}} </div> diff --git a/template/www.yohobuy.com/actions/pay/payreturn/index.phtml b/template/www.yohobuy.com/actions/pay/payreturn/index.phtml index fd419f5..d07dac0 100644 --- a/template/www.yohobuy.com/actions/pay/payreturn/index.phtml +++ b/template/www.yohobuy.com/actions/pay/payreturn/index.phtml @@ -50,9 +50,9 @@ </p> {{#if devEnv}} - <img class="notice-img" src="http://webstatic.dev.yohobuy.com/img/pay/notice.jpg"> + <img class="notice-img" src="//webstatic.dev.yohobuy.com/img/pay/notice.jpg"> {{^}} - <img class="notice-img" src="http://cdn.yoho.cn/yohobuy/assets/img/pay/notice.jpg"> + <img class="notice-img" src="//cdn.yoho.cn/yohobuy/assets/img/pay/notice.jpg"> {{/if}} {{/ payNotice}} </div> diff --git a/template/www.yohobuy.com/actions/product/detail/index.phtml b/template/www.yohobuy.com/actions/product/detail/index.phtml index 1246056..e60866f 100644 --- a/template/www.yohobuy.com/actions/product/detail/index.phtml +++ b/template/www.yohobuy.com/actions/product/detail/index.phtml @@ -466,7 +466,7 @@ </span> <div class="captcha-row"> <input class="captcha" type="text"> - <img class="captcha-img" src="http://www.yohobuy.com/passport/images?g=consult"> + <img class="captcha-img" src="//www.yohobuy.com/passport/images?g=consult"> <span class="captcha-warn warn-tip hide"> <i class="iconfont"></i> <em>请输入验证码</em> diff --git a/template/www.yohobuy.com/actions/product/item/index.phtml b/template/www.yohobuy.com/actions/product/item/index.phtml index 0c1209d..fd658cc 100644 --- a/template/www.yohobuy.com/actions/product/item/index.phtml +++ b/template/www.yohobuy.com/actions/product/item/index.phtml @@ -667,7 +667,7 @@ var _goodsData = { try { var timestamp = (new Date()).valueOf(); var view = document.createElement('img'); - view.src = 'http://shopping.yohobuy.com/1.jpg?t='+timestamp; + view.src = '//shopping.yohobuy.com/1.jpg?t='+timestamp; } catch (e) {} } )(); </script> diff --git a/template/www.yohobuy.com/actions/shop/settled/apply.phtml b/template/www.yohobuy.com/actions/shop/settled/apply.phtml index 663899a..1fbdcd7 100644 --- a/template/www.yohobuy.com/actions/shop/settled/apply.phtml +++ b/template/www.yohobuy.com/actions/shop/settled/apply.phtml @@ -1,16 +1,16 @@ {{> layout/header}} <div class="settled-apply-page yoho-page"> {{#if devEnv}} - <img class="banner center-content" src="http://webstatic.dev.yohobuy.com/img/about/apply.png"> + <img class="banner center-content" src="//webstatic.dev.yohobuy.com/img/about/apply.png"> {{^}} - <img class="banner center-content" src="http://cdn.yoho.cn/yohobuy/assets/img/about/apply.png"> + <img class="banner center-content" src="//cdn.yoho.cn/yohobuy/assets/img/about/apply.png"> {{/if}} <div class="apply-body center-content"> <div class="title"> {{#if devEnv}} - <img class="edit-img" src="http://webstatic.dev.yohobuy.com/img/about/edit.png"> + <img class="edit-img" src="//webstatic.dev.yohobuy.com/img/about/edit.png"> {{^}} - <img class="edit-img" src="http://cdn.yoho.cn/yohobuy/assets/img/about/edit.png"> + <img class="edit-img" src="//cdn.yoho.cn/yohobuy/assets/img/about/edit.png"> {{/if}} <span>填写卖家信息:</span> </div> @@ -144,9 +144,9 @@ <td> {{> about/category}} {{#if devEnv}} - <img id="category-add" class="category-add add-btn" src="http://webstatic.dev.yohobuy.com/img/about/add.png"> + <img id="category-add" class="category-add add-btn" src="//webstatic.dev.yohobuy.com/img/about/add.png"> {{^}} - <img id="category-add" class="category-add add-btn" src="http://cdn.yoho.cn/yohobuy/assets/img/about/add.png"> + <img id="category-add" class="category-add add-btn" src="//cdn.yoho.cn/yohobuy/assets/img/about/add.png"> {{/if}} </td> </tr> @@ -255,9 +255,9 @@ <input class="shop-sales-volume" name="store-sales-volume[]" type="text" placeholder="输入价格"> 元 {{#if devEnv}} - <img class="shop-add add-btn" src="http://webstatic.dev.yohobuy.com/img/about/add.png"> + <img class="shop-add add-btn" src="//webstatic.dev.yohobuy.com/img/about/add.png"> {{^}} - <img class="shop-add add-btn" src="http://cdn.yoho.cn/yohobuy/assets/img/about/add.png"> + <img class="shop-add add-btn" src="//cdn.yoho.cn/yohobuy/assets/img/about/add.png"> {{/if}} </li> </ul> diff --git a/template/www.yohobuy.com/actions/shop/settled/settled.phtml b/template/www.yohobuy.com/actions/shop/settled/settled.phtml index d0c448b..00569b6 100644 --- a/template/www.yohobuy.com/actions/shop/settled/settled.phtml +++ b/template/www.yohobuy.com/actions/shop/settled/settled.phtml @@ -2,25 +2,25 @@ <div class="settled-page center-content yoho-page"> <a href="/settled/apply"> {{#if devEnv}} - <img class="banner" src="http://webstatic.dev.yohobuy.com/img/about/banner.jpg"> + <img class="banner" src="//webstatic.dev.yohobuy.com/img/about/banner.jpg"> {{^}} - <img class="banner" src="http://cdn.yoho.cn/yohobuy/assets/img/about/banner.jpg"> + <img class="banner" src="//cdn.yoho.cn/yohobuy/assets/img/about/banner.jpg"> {{/if}} </a> <div class="flow-container"> {{#if devEnv}} - <img class="flow-path" src="http://webstatic.dev.yohobuy.com/img/about/flow.jpg"> + <img class="flow-path" src="//webstatic.dev.yohobuy.com/img/about/flow.jpg"> {{^}} - <img class="flow-path" src="http://cdn.yoho.cn/yohobuy/assets/img/about/flow.jpg"> + <img class="flow-path" src="//cdn.yoho.cn/yohobuy/assets/img/about/flow.jpg"> {{/if}} <div id="fake-link" class="fake-link"></div> </div> <div id="mask" class="mask hide"></div> <div id="notice-container" class="notice-container hide"> {{#if devEnv}} - <img src="http://webstatic.dev.yohobuy.com/img/about/note.png?1461857729"> + <img src="//webstatic.dev.yohobuy.com/img/about/note.png?1461857729"> {{^}} - <img src="http://cdn.yoho.cn/yohobuy/assets/img/about/note.png?1461857729"> + <img src="//cdn.yoho.cn/yohobuy/assets/img/about/note.png?1461857729"> {{/if}} <div id="fake-close" class="fake-close"></div> </div> diff --git a/template/www.yohobuy.com/actions/shopping/pay/index.phtml b/template/www.yohobuy.com/actions/shopping/pay/index.phtml index ee8e47e..a7d339c 100644 --- a/template/www.yohobuy.com/actions/shopping/pay/index.phtml +++ b/template/www.yohobuy.com/actions/shopping/pay/index.phtml @@ -94,16 +94,16 @@ /* ]]> */ </script> <script type="text/javascript" - src="http://www.googleadservices.com/pagead/conversion.js"> + src="//www.googleadservices.com/pagead/conversion.js"> </script> <noscript> <div style="display: inline;"> <img height="1" width="1" style="border-style: none;" alt="" - src="http://www.googleadservices.com/pagead/conversion/959290965/?value=100&label=n6GICNu3-AIQ1by2yQM&guid=ON&script=0"/> + src="//www.googleadservices.com/pagead/conversion/959290965/?value=100&label=n6GICNu3-AIQ1by2yQM&guid=ON&script=0"/> </div> </noscript> - <iframe name="StatPage" src="http://www.yohobuy.com/shopping/cart/stat?step=end&order_code={{orderNum}}" width=0 + <iframe name="StatPage" src="//www.yohobuy.com/shopping/cart/stat?step=end&order_code={{orderNum}}" width=0 height=0 style="display:none"></iframe> <!-- Google Code for 订单完成页-搜索 Conversion Page --> @@ -118,7 +118,7 @@ /* ]]> */ </script> <script type="text/javascript" - src="http://www.googleadservices.com/pagead/conversion.js"> + src="//www.googleadservices.com/pagead/conversion.js"> </script> <script type="text/javascript"> _ozprm = "orderid={{orderNum}}"; @@ -126,7 +126,7 @@ <noscript> <div style="display:inline;"> <img height="1" width="1" style="border-style:none;" alt="" - src="http://www.googleadservices.com/pagead/conversion/991392201/?value=0&label=asUdCK_i0AQQyePd2AM&guid=ON&script=0"/> + src="//www.googleadservices.com/pagead/conversion/991392201/?value=0&label=asUdCK_i0AQQyePd2AM&guid=ON&script=0"/> </div> </noscript> diff --git a/template/www.yohobuy.com/actions/shopping/pay/notneedpay.phtml b/template/www.yohobuy.com/actions/shopping/pay/notneedpay.phtml index 2124761..d4b9494 100644 --- a/template/www.yohobuy.com/actions/shopping/pay/notneedpay.phtml +++ b/template/www.yohobuy.com/actions/shopping/pay/notneedpay.phtml @@ -13,7 +13,7 @@ <div class="not-pay"> <p class="success">恭喜你,购买完成,我们会尽快发货!</p> <p>当订单发货后,你可以登录订单中心查询快递发货详情。</p> - <a href="http://www.yohobuy.com/">返回首页</a> + <a href="//www.yohobuy.com/">返回首页</a> </div> </div> diff --git a/template/www.yohobuy.com/partials/home/help-us.phtml b/template/www.yohobuy.com/partials/home/help-us.phtml index b78b9a9..1db01fa 100644 --- a/template/www.yohobuy.com/partials/home/help-us.phtml +++ b/template/www.yohobuy.com/partials/home/help-us.phtml @@ -1,8 +1,8 @@ <p class="help-us"> {{#if devEnv}} - <img class="help-us-icon" src="http://webstatic.dev.yohobuy.com/img/home/help-us.svg"> + <img class="help-us-icon" src="//webstatic.dev.yohobuy.com/img/home/help-us.svg"> {{^}} - <img class="help-us-icon" src="http://cdn.yoho.cn/yohobuy/assets/img/home/help-us.svg"> + <img class="help-us-icon" src="//cdn.yoho.cn/yohobuy/assets/img/home/help-us.svg"> {{/if}} 客服电话:400-889-9646 08:00-22:30(周一至周日) </p> \ No newline at end of file diff --git a/template/www.yohobuy.com/partials/home/order-block.phtml b/template/www.yohobuy.com/partials/home/order-block.phtml old mode 100644 new mode 100755 index f1e41d6..87f3627 --- a/template/www.yohobuy.com/partials/home/order-block.phtml +++ b/template/www.yohobuy.com/partials/home/order-block.phtml @@ -17,7 +17,10 @@ <div class="order" data-id="{{orderNum}}"> <p class="order-title"> 订单编号:{{orderNum}} - <span class="right">下单时间:{{orderTime}}</span> + <span class="order-time">下单时间:{{orderTime}}</span> + {{#if canDelete}} + <a class="right order-delete" href="javascript:;">删除订单</a> + {{/if}} </p> <div class="order-wrap"> <ul> @@ -30,7 +33,7 @@ </a> <div class="text-info"> {{#if refundStatus}} - <span class="had-refund">已退换</span> + <a href="{{goRefundUrl}}"><span class="had-refund">已退换</span></a> {{/if}} <a class="name" href="{{href}}" target="_blank">{{name}}</a> <span class="color-size"> @@ -63,6 +66,9 @@ <div class="pay"> {{pay}} <span class="pay-tip">(含快递:{{fregit}}元)</span> + {{#if isExchanged}} + <span class="return-order">换货订单</span> + {{/if}} </div> <div class="order-status"> {{#if noPay}} @@ -129,6 +135,9 @@ {{/if}} {{/if}} {{/if}} + {{#if hasDelete}} + <span class="op-item restore-order">还原订单</span> + {{/if}} {{/ operation}} </div> </div> @@ -136,4 +145,5 @@ {{/ orders}} {{/if}} </div> -{{> home/order-cancel-tpl}} \ No newline at end of file +{{> home/order-cancel-tpl}} +{{> home/order-delete-confirm}} \ No newline at end of file diff --git a/template/www.yohobuy.com/partials/home/tabs.phtml b/template/www.yohobuy.com/partials/home/tabs.phtml old mode 100644 new mode 100755 index 31c84c1..cb6b062 --- a/template/www.yohobuy.com/partials/home/tabs.phtml +++ b/template/www.yohobuy.com/partials/home/tabs.phtml @@ -1,7 +1,9 @@ -<ul class="tabs clearfix"> - {{# tabs}} +<div class="tabs-wrapper"> + <ul class="tabs clearfix"> + {{# tabs}} <li {{#if active}}class="active"{{/if}}> - <a href="{{url}}">{{name}}</a> + <a href="{{url}}">{{name}}</a> </li> - {{/ tabs}} -</ul> \ No newline at end of file + {{/ tabs}} + </ul> +</div> diff --git a/template/www.yohobuy.com/partials/index/home-analysis.phtml b/template/www.yohobuy.com/partials/index/home-analysis.phtml index 70419b0..2b8874a 100644 --- a/template/www.yohobuy.com/partials/index/home-analysis.phtml +++ b/template/www.yohobuy.com/partials/index/home-analysis.phtml @@ -1,7 +1,7 @@ <script> window.onload = function() { var hm = document.createElement("script"); - hm.src = "http://static.criteo.net/js/ld/ld.js"; + hm.src = "//static.criteo.net/js/ld/ld.js"; hm.async = 1; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); diff --git a/template/www.yohobuy.com/partials/layout/analysis.phtml b/template/www.yohobuy.com/partials/layout/analysis.phtml index 5c1bb33..2b14391 100644 --- a/template/www.yohobuy.com/partials/layout/analysis.phtml +++ b/template/www.yohobuy.com/partials/layout/analysis.phtml @@ -18,27 +18,6 @@ var _gaq = _gaq || []; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); - (function() { - var hm = document.createElement("script"); - hm.src = "//hm.baidu.com/hm.js?c6ee7218b8321cb65fb2e98f284d8311"; - hm.async = 1; - var s = document.getElementsByTagName("script")[0]; - s.parentNode.insertBefore(hm, s); - })(); - (function() { - var hm = document.createElement("script"); - hm.src = "//hm.baidu.com/hm.js?65dd99e0435a55177ffda862198ce841"; - hm.async = 1; - var s = document.getElementsByTagName("script")[0]; - s.parentNode.insertBefore(hm, s); - })(); - (function() { - var hm = document.createElement("script"); - hm.src = "http://static.yohobuy.com/js/analytics/analysis.js"; - hm.async = 1; - var s = document.getElementsByTagName("script")[0]; - s.parentNode.insertBefore(hm, s); - })(); } if (window.addEventListener) { window.addEventListener('load', async_load, false); diff --git a/template/www.yohobuy.com/partials/layout/footer.phtml b/template/www.yohobuy.com/partials/layout/footer.phtml index 26d92c0..bc5e52a 100644 --- a/template/www.yohobuy.com/partials/layout/footer.phtml +++ b/template/www.yohobuy.com/partials/layout/footer.phtml @@ -1,22 +1,22 @@ {{> layout/page-footer}} {{#if rlsEnv}} - <script src="http://cdn.yoho.cn/yohobuy/{{version}}/lib.js"></script> - <script src="http://cdn.yoho.cn/yohobuy/{{version}}/index.js"></script> + <script src="//cdn.yoho.cn/yohobuy/{{version}}/lib.js"></script> + <script src="//cdn.yoho.cn/yohobuy/{{version}}/index.js"></script> {{/if}} {{#if preEnv}} - <script src="http://cdn.yoho.cn/yohobuy/{{version}}/lib.js"></script> - <script src="http://cdn.yoho.cn/yohobuy/{{version}}/index-debug.js"></script> + <script src="//cdn.yoho.cn/yohobuy/{{version}}/lib.js"></script> + <script src="//cdn.yoho.cn/yohobuy/{{version}}/index-debug.js"></script> {{/if}} {{#if testEnv}} - <script src="http://cdn.yoho.cn/yohobuy/{{version}}/lib.js"></script> - <script src="http://cdn.yoho.cn/yohobuy/{{version}}/index-debug.js"></script> + <script src="//cdn.yoho.cn/yohobuy/{{version}}/lib.js"></script> + <script src="//cdn.yoho.cn/yohobuy/{{version}}/index-debug.js"></script> {{/if}} {{#if devEnv}} - <script src="http://localhost:8001/static/js/sea.js?nowrap"></script> + <script src="//localhost:8001/static/js/sea.js?nowrap"></script> <script> seajs.config({ - base: 'http://localhost:8001/' + base: '//localhost:8001/' }); </script> {{/if}} diff --git a/template/www.yohobuy.com/partials/layout/header.phtml b/template/www.yohobuy.com/partials/layout/header.phtml index 5406084..84eb1da 100644 --- a/template/www.yohobuy.com/partials/layout/header.phtml +++ b/template/www.yohobuy.com/partials/layout/header.phtml @@ -15,16 +15,16 @@ <link rel="dns-prefetch" href="//img12.static.yhbimg.com"> <link rel="dns-prefetch" href="//img13.static.yhbimg.com"> {{#if rlsEnv}} - <link rel="stylesheet" href="http://cdn.yoho.cn/yohobuy/{{version}}/index.css"> + <link rel="stylesheet" href="//cdn.yoho.cn/yohobuy/{{version}}/index.css"> {{/if}} {{#if preEnv}} - <link rel="stylesheet" href="http://cdn.yoho.cn/yohobuy/{{version}}/index.css"> + <link rel="stylesheet" href="//cdn.yoho.cn/yohobuy/{{version}}/index.css"> {{/if}} {{#if testEnv}} - <link rel="stylesheet" href="http://cdn.yoho.cn/yohobuy/{{version}}/index.css"> + <link rel="stylesheet" href="//cdn.yoho.cn/yohobuy/{{version}}/index.css"> {{/if}} {{#if devEnv}} - <link rel="stylesheet" href="http://webstatic.dev.yohobuy.com/css/index.css"> + <link rel="stylesheet" href="//webstatic.dev.yohobuy.com/css/index.css"> {{/if}} </head> <body> diff --git a/template/www.yohobuy.com/partials/layout/page-footer.phtml b/template/www.yohobuy.com/partials/layout/page-footer.phtml index cd8cd00..ecc2632 100644 --- a/template/www.yohobuy.com/partials/layout/page-footer.phtml +++ b/template/www.yohobuy.com/partials/layout/page-footer.phtml @@ -15,25 +15,25 @@ <ul class="two-dim clearfix"> <li class="left"> {{#if devEnv}} - <img class="dim-img lazy" data-original="http://webstatic.dev.yohobuy.com/img/index/qr-app.png"> + <img class="dim-img lazy" data-original="//webstatic.dev.yohobuy.com/img/index/qr-app.png"> {{^}} - <img class="dim-img lazy" data-original="http://cdn.yoho.cn/yohobuy/assets/img/index/qr-app.png"> + <img class="dim-img lazy" data-original="//cdn.yoho.cn/yohobuy/assets/img/index/qr-app.png"> {{/if}} <p>YOHO!BUY 有货</p> </li> <li class="left"> {{#if devEnv}} - <img class="dim-img lazy" data-original="http://webstatic.dev.yohobuy.com/img/index/qr-weixin.png"> + <img class="dim-img lazy" data-original="//webstatic.dev.yohobuy.com/img/index/qr-weixin.png"> {{^}} - <img class="dim-img lazy" data-original="http://cdn.yoho.cn/yohobuy/assets/img/index/qr-weixin.png"> + <img class="dim-img lazy" data-original="//cdn.yoho.cn/yohobuy/assets/img/index/qr-weixin.png"> {{/if}} <p>微信</p> </li> <li class="left"> {{#if devEnv}} - <img class="dim-img lazy" data-original="http://webstatic.dev.yohobuy.com/img/index/qr-weibo.png"> + <img class="dim-img lazy" data-original="//webstatic.dev.yohobuy.com/img/index/qr-weibo.png"> {{^}} - <img class="dim-img lazy" data-original="http://cdn.yoho.cn/yohobuy/assets/img/index/qr-weibo.png"> + <img class="dim-img lazy" data-original="//cdn.yoho.cn/yohobuy/assets/img/index/qr-weibo.png"> {{/if}} <p>微博</p> </li> @@ -139,27 +139,27 @@ <li> <a href="http://www.yohomars.com/" target="_blank"> {{#if devEnv}} - <img class="lazy" data-original="http://webstatic.dev.yohobuy.com/img/index/mars.png"> + <img class="lazy" data-original="//webstatic.dev.yohobuy.com/img/index/mars.png"> {{^}} - <img class="lazy" data-original="http://cdn.yoho.cn/yohobuy/assets/img/index/mars.png"> + <img class="lazy" data-original="//cdn.yoho.cn/yohobuy/assets/img/index/mars.png"> {{/if}} </a> </li> <li> <a href="http://app.yohoshow.com/" target="_blank"> {{#if devEnv}} - <img class="lazy" data-original="http://webstatic.dev.yohobuy.com/img/index/show.png"> + <img class="lazy" data-original="//webstatic.dev.yohobuy.com/img/index/show.png"> {{^}} - <img class="lazy" data-original="http://cdn.yoho.cn/yohobuy/assets/img/index/show.png"> + <img class="lazy" data-original="//cdn.yoho.cn/yohobuy/assets/img/index/show.png"> {{/if}} </a> </li> <li> <a href="http://www.yoho.cn/product#yoho" target="_blank"> {{#if devEnv}} - <img class="lazy" data-original="http://webstatic.dev.yohobuy.com/img/index/yoho.png"> + <img class="lazy" data-original="//webstatic.dev.yohobuy.com/img/index/yoho.png"> {{^}} - <img class="lazy" data-original="http://cdn.yoho.cn/yohobuy/assets/img/index/yoho.png"> + <img class="lazy" data-original="//cdn.yoho.cn/yohobuy/assets/img/index/yoho.png"> {{/if}} </a> </li> @@ -209,16 +209,16 @@ <span>新手指南</span> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=81#help_b00reg" target="_blank">注册登录</a> + <a href="//www.yohobuy.com/help/?category_id=81#help_b00reg" target="_blank">注册登录</a> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=83" target="_blank">选购商品</a> + <a href="//www.yohobuy.com/help/?category_id=83" target="_blank">选购商品</a> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=103" target="_blank">订单支付</a> + <a href="//www.yohobuy.com/help/?category_id=103" target="_blank">订单支付</a> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=85" target="_blank">收货退款</a> + <a href="//www.yohobuy.com/help/?category_id=85" target="_blank">收货退款</a> </p> </li> <li class="left"> @@ -226,16 +226,16 @@ <span>会员中心</span> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=87" target="_blank">YOHO币</a> + <a href="//www.yohobuy.com/help/?category_id=87" target="_blank">YOHO币</a> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=91" target="_blank">会员制度</a> + <a href="//www.yohobuy.com/help/?category_id=91" target="_blank">会员制度</a> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=89" target="_blank">账户管理</a> + <a href="//www.yohobuy.com/help/?category_id=89" target="_blank">账户管理</a> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=93" target="_blank">密码管理</a> + <a href="//www.yohobuy.com/help/?category_id=93" target="_blank">密码管理</a> </p> </li> <li class="left"> @@ -243,16 +243,16 @@ <span>购物指南</span> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=95" target="_blank">全球购专区</a> + <a href="//www.yohobuy.com/help/?category_id=95" target="_blank">全球购专区</a> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=97" target="_blank">尺码选择</a> + <a href="//www.yohobuy.com/help/?category_id=97" target="_blank">尺码选择</a> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=99" target="_blank">发票</a> + <a href="//www.yohobuy.com/help/?category_id=99" target="_blank">发票</a> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=101" target="_blank">商品咨询</a> + <a href="//www.yohobuy.com/help/?category_id=101" target="_blank">商品咨询</a> </p> </li> <li class="left"> @@ -260,16 +260,16 @@ <span>支付方式</span> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=105" target="_blank">在线支付</a> + <a href="//www.yohobuy.com/help/?category_id=105" target="_blank">在线支付</a> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=107" target="_blank">货到付款</a> + <a href="//www.yohobuy.com/help/?category_id=107" target="_blank">货到付款</a> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=109" target="_blank">优惠券</a> + <a href="//www.yohobuy.com/help/?category_id=109" target="_blank">优惠券</a> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=111" target="_blank">YOHO币支付</a> + <a href="//www.yohobuy.com/help/?category_id=111" target="_blank">YOHO币支付</a> </p> </li> <li class="left"> @@ -277,16 +277,16 @@ <span>配送方式</span> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=113" target="_blank">配送时间</a> + <a href="//www.yohobuy.com/help/?category_id=113" target="_blank">配送时间</a> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=115" target="_blank">配送范围</a> + <a href="//www.yohobuy.com/help/?category_id=115" target="_blank">配送范围</a> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=119" target="_blank">顺丰速运</a> + <a href="//www.yohobuy.com/help/?category_id=119" target="_blank">顺丰速运</a> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=117" target="_blank">商品验收与签收</a> + <a href="//www.yohobuy.com/help/?category_id=117" target="_blank">商品验收与签收</a> </p> </li> <li class="left"> @@ -294,16 +294,16 @@ <span>售后服务</span> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=121" target="_blank">退换货政策</a> + <a href="//www.yohobuy.com/help/?category_id=121" target="_blank">退换货政策</a> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=123" target="_blank">退换货流程</a> + <a href="//www.yohobuy.com/help/?category_id=123" target="_blank">退换货流程</a> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=125" target="_blank">退款方式与时效</a> + <a href="//www.yohobuy.com/help/?category_id=125" target="_blank">退款方式与时效</a> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=127" target="_blank">投诉与建议</a> + <a href="//www.yohobuy.com/help/?category_id=127" target="_blank">投诉与建议</a> </p> </li> <li class="left"> @@ -311,16 +311,16 @@ <span>APP常见问题</span> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=133" target="_blank">IPhone版</a> + <a href="//www.yohobuy.com/help/?category_id=133" target="_blank">IPhone版</a> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=135" target="_blank">Android版</a> + <a href="//www.yohobuy.com/help/?category_id=135" target="_blank">Android版</a> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=137" target="_blank">wap版</a> + <a href="//www.yohobuy.com/help/?category_id=137" target="_blank">wap版</a> </p> <p> - <a href="http://www.yohobuy.com/help/?category_id=139" target="_blank">IPAD版</a> + <a href="//www.yohobuy.com/help/?category_id=139" target="_blank">IPAD版</a> </p> </li> </ul> @@ -331,27 +331,27 @@ <div class="center-content clearfix"> <div class="left right-flag"> <a href="https://ss.knet.cn/verifyseal.dll?sn=e14021832010046477dka7000000&ct=df&a=1&pa=0.5902942178957805" target="_blank" rel="nofollow"> - <img src="http://static.yohobuy.com/images/v3/icon/credit-flag3.png"> + <img src="//static.yohobuy.com/images/v3/icon/credit-flag3.png"> </a> <a href="http://www.isc.org.cn/" target="_blank" rel="nofollow"> - <img src="http://static.yohobuy.com/images/v3/icon/isc2.png"> + <img src="//static.yohobuy.com/images/v3/icon/isc2.png"> </a> </div> <div class="left about-us"> <p> - <a href="http://www.yohobuy.com">返回首页</a> + <a href="//www.yohobuy.com">返回首页</a> <span>|</span> - <a href="http://www.yohobuy.com/yohobuy.html">YOHO!BUY 有货</a> + <a href="//www.yohobuy.com/yohobuy.html">YOHO!BUY 有货</a> <span>|</span> - <a href="http://www.yohobuy.com/newpower.html">新力传媒</a> + <a href="//www.yohobuy.com/newpower.html">新力传媒</a> <span>|</span> - <a href="http://www.yohobuy.com/contact.html">联系我们</a> + <a href="//www.yohobuy.com/contact.html">联系我们</a> <span>|</span> - <a href="http://shop.yohobuy.com/settled">商家入驻</a> + <a href="//shop.yohobuy.com/settled">商家入驻</a> <span>|</span> - <a href="http://www.yohobuy.com/privacy.html">隐私条款</a> + <a href="//www.yohobuy.com/privacy.html">隐私条款</a> <span>|</span> - <a href="http://www.yohobuy.com/link.html">友情链接</a> + <a href="//www.yohobuy.com/link.html">友情链接</a> </p> <p> CopyRight © 2007-2016 南京新与力文化传播有限公司 diff --git a/template/www.yohobuy.com/partials/layout/page-header.phtml b/template/www.yohobuy.com/partials/layout/page-header.phtml index bdc98bf..104f132 100644 --- a/template/www.yohobuy.com/partials/layout/page-header.phtml +++ b/template/www.yohobuy.com/partials/layout/page-header.phtml @@ -4,7 +4,7 @@ <div class="header-top"> <div class="leftpart float-left"> <span class="icon-hamburger"></span> - <a href="http://www.yohobuy.com" class="header-yoho" >YOHO!BUY 有货</a> + <a href="//www.yohobuy.com" class="header-yoho" >YOHO!BUY 有货</a> <ul class="yohoproducts-list"> <li class="yohoproducts-item"> <a href="http://www.yoho.cn" class="yohogroup" en="YOHO!" cn="集团官网">YOHO!</a> @@ -26,42 +26,42 @@ <div class="rightpart"> <div id="loginBox" class="float-left"> <span class="hi">Hi~</span> - <a href="http://www.yohobuy.com/signin.html" class="loginbar">[请登录]</a> - <a href="http://www.yohobuy.com/reg.html" class="registbar">[免费注册]</a> + <a href="//www.yohobuy.com/signin.html" class="loginbar">[请登录]</a> + <a href="//www.yohobuy.com/reg.html" class="registbar">[免费注册]</a> </div> <div class="tag-list-wrapper"> <ul class="tag-list"> <li class="tag-item myyoho" id="myYohoBox"> <span class="tag-seprate"></span> - <a href="http://www.yohobuy.com/home?t=1453340799.4986">MY有货</a> + <a href="//www.yohobuy.com/home?t=1453340799.4986">MY有货</a> <span class="icon-bottomarrow"></span> <div class="myyoho-info"></div> </li> <li class="tag-item myorder"> <span class="tag-seprate"></span> <span class="icon-papers"></span> - <a href="http://www.yohobuy.com/home/orders?t=1453168898.0176">我的订单</a> + <a href="//www.yohobuy.com/home/orders?t=1453168898.0176">我的订单</a> </li> <li class="tag-item mycollect"> <span class="tag-seprate"></span> <span class="icon-heart"></span> - <a href="http://www.yohobuy.com/home/favorite?t=1453168898.0176">我的收藏</a> + <a href="//www.yohobuy.com/home/favorite?t=1453168898.0176">我的收藏</a> </li> <li class="tag-item message"> <span class="tag-seprate"></span> <span class="icon-mail"></span> - <a href="http://www.yohobuy.com/home/message?t=1453168898.0176">消息</a> + <a href="//www.yohobuy.com/home/message?t=1453168898.0176">消息</a> </li> <li class="tag-item phone"> <span class="tag-seprate"></span> <span class="icon-iphone"></span> - <a href="http://www.yohobuy.com/download/app">手机版</a> + <a href="//www.yohobuy.com/download/app">手机版</a> <div class="qr"> <div class="qr-img"></div> <h3 class="qr-words">扫描二维码</h3> <h3 class="qr-words">下载有货手机客户端</h3> <h3 class="qr-more"> - <a href="http://www.yohobuy.com/download/app">更多客户端下载</a> + <a href="//www.yohobuy.com/download/app">更多客户端下载</a> </h3> </div> </li> @@ -115,9 +115,9 @@ </div> </div> <div class="showdetail" data-code="{{content_code}}"> - <a href="http://list.yohobuy.com/?gender=1,3&msort=8"> + <a href="//list.yohobuy.com/?gender=1,3&msort=8"> <img src="data:image/gif;base64,R0lGODlhAQABAJEAAAAAAP///93d3f///yH5BAEAAAMALAAAAAABAAEAAAICVAEAOw==" alt="" style=""></a> - <a class="title" href="http://list.yohobuy.com/?gender=1,3&msort=8">热门小物优选</a> + <a class="title" href="//list.yohobuy.com/?gender=1,3&msort=8">热门小物优选</a> </div> </div> </div> @@ -130,10 +130,10 @@ {{/ navbars}} </ul> <div class="outlets-logo"></div> - <div class="icon-logo"><a href="http://www.yohobuy.com/" class="main-link"></a></div> + <div class="icon-logo"><a href="//www.yohobuy.com/" class="main-link"></a></div> <div class="header-tool float-right"> <div class="search float-left {{searchcate}}" > - <form action="http://search.yohobuy.com" method="get" id="searchForm"> + <form action="//search.yohobuy.com" method="get" id="searchForm"> <span class="searchspan"> <input type="hidden" id="defaultsearch"> <input class="searchinput" type="text" name="query" id="query_key" autocomplete="off" x-webkit-speech="" lang="zh-CN" x-webkit-grammar="builtin:translate" value="" onfocus="if(this.value==this.defaultValue){this.value='';this.style.color='#333'}" onblur="if(this.value==''){this.value=this.defaultValue;this.style.color='#999'}" maxlength="30"></span> @@ -210,7 +210,7 @@ </div> <div class="gobuy-notempty-footer"> <h3> - <a href="http://www.yohobuy.com/shopping/cart">去购物车结算</a> + <a href="//www.yohobuy.com/shopping/cart">去购物车结算</a> </h3> </div> \{\{/carData\}\} @@ -218,7 +218,7 @@ <script type="text/html" id="tmpl-my-login-new"> <div class="myyoho-info-header clearfix"> <div class="myyoho-photo" ><img src="\{\{headerimg head_ico\}\}" alt="" data-url =""></div> - <h3 class="user-email"><a href="http://www.yohobuy.com/home?t=\{\{random\}\}">\{\{profile_name\}\}</a></h3> + <h3 class="user-email"><a href="//www.yohobuy.com/home?t=\{\{random\}\}">\{\{profile_name\}\}</a></h3> <h3 class="user-level"> VIP: <span class="leveldetail">\{\{vip.curVipInfo.title\}\}</span> @@ -238,37 +238,37 @@ <ul class="myyoho-info-content"> <li class="item"> <span class="itemdetail float-left"> - <a href="http://www.yohobuy.com/home/orders?t=\{\{timestamp\}\}">待处理的订单</a> + <a href="//www.yohobuy.com/home/orders?t=\{\{timestamp\}\}">待处理的订单</a> </span> <span class="itemnum float-right">\{\{orderCount\}\}</span> </li> <li class="item"> <span class="itemdetail float-left"> - <a href="http://www.yohobuy.com/home/favorite?t=\{\{timestamp\}\}">我的收藏</a> + <a href="//www.yohobuy.com/home/favorite?t=\{\{timestamp\}\}">我的收藏</a> </span> <span class="itemnum float-right"></span> </li> <li class="item"> <span class="itemdetail float-left"> - <a href="http://www.yohobuy.com/home/coupons?t=\{\{timestamp\}\}">我的优惠券</a> + <a href="//www.yohobuy.com/home/coupons?t=\{\{timestamp\}\}">我的优惠券</a> </span> <span class="itemnum float-right">\{\{couponCount\}\}</span> </li> <li class="item"> <span class="itemdetail float-left"> - <a href="http://www.yohobuy.com/home/currency?t=\{\{timestamp\}\}">我的YOHO币</a> + <a href="//www.yohobuy.com/home/currency?t=\{\{timestamp\}\}">我的YOHO币</a> </span> <span class="itemnum float-right">\{\{YohocoinCount\}\}</span> </li> <li class="item"> <span class="itemdetail float-left"> - <a href="http://www.yohobuy.com/home/returns?t=\{\{timestamp\}\}">我的退货换货</a> + <a href="//www.yohobuy.com/home/returns?t=\{\{timestamp\}\}">我的退货换货</a> </span> <span class="itemnum float-right">\{\{refundCount\}\}</span> </li> </ul> <div class="myyoho-info-footer"> - <a href="http://www.yohobuy.com/home/user?t=\{\{timestamp\}\}">完善资料</a> + <a href="//www.yohobuy.com/home/user?t=\{\{timestamp\}\}">完善资料</a> </div> </script> </div> diff --git a/template/www.yohobuy.com/partials/shopping/box-buy-analysis.phtml b/template/www.yohobuy.com/partials/shopping/box-buy-analysis.phtml index a3b13bc..48d0d28 100644 --- a/template/www.yohobuy.com/partials/shopping/box-buy-analysis.phtml +++ b/template/www.yohobuy.com/partials/shopping/box-buy-analysis.phtml @@ -25,7 +25,7 @@ ga('myTracker.ecommerce:send'); </script> - <script src="http://static.yohobuy.com/js/AG_Tracking.js?v=20121102"></script> + <script src="//static.yohobuy.com/js/AG_Tracking.js?v=20121102"></script> <script type="text/javascript"> //请将js代码嵌入到html中body标签结束之前。(整个body部分最后边) var _agq = _agq || []; diff --git a/web-static/dist/yohobuy/4.6.3/index-debug.js b/web-static/dist/yohobuy/4.6.3/index-debug.js new file mode 100644 index 0000000..c52c517 --- /dev/null +++ b/web-static/dist/yohobuy/4.6.3/index-debug.js @@ -0,0 +1,18199 @@ +define("index", ["jquery","handlebars","source-map","index","lazyload","jquery-pjax","dot","jquery.placeholder"], function(require, exports, module){ +var webYohobuy; + +//通用 +require("js/common"); + +//头部 +require("js/header"); + +//简化头部 +require("js/simple-header"); + +//商品(列表、搜索、商品详情) +require("js/product/entry"); + +//频道页 +require("js/index/index"); + +//品牌一览 +require("js/brand/index"); + +//登录注册找回密码 +require("js/passport/entry"); + +//购物车 +require("js/cart/cart"); + +//逛 +require("js/guang/entry"); + +//个人中心 +require("js/home/entry"); + +//帮助中心 +require("js/help/entry"); + +//订单确认 +require("js/order/ensure"); + +//商品支付 +require("js/shopping/pay"); + +//微信扫码支付 +require("js/pay/wechatqrcode"); + +//关于我们 +require("js/about/entry"); + +//领券频道 +require("js/coupon/entry"); + +module.exports = webYohobuy; + +}); +define("js/common", ["jquery"], function(require, exports, module){ +/** + * 页面公共逻辑和接口 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/11/23 + */ +var $ = require("jquery"); + + +var $body = $('body'); + +require("js/footer"); + +function cookie(name) { + var re = new RegExp(name + '=([^;$]*)', 'i'), + matchPattern = '$1'; + + return re.test(decodeURIComponent(document.cookie)) ? RegExp[matchPattern] : ''; +} + +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; +} + +//YAS统计代码 +(function(w, d, s, j, f) { + var a = d.createElement(s); + var m = d.getElementsByTagName(s)[0]; + + w.YohoAcquisitionObject = f; + + w[f] = function() { + w[f].p = arguments; + }; + + a.async = 1; + a.src = j; + m.parentNode.insertBefore(a, m); +})(window, document, 'script', ('https:' == document.location.protocol ? 'https' : 'http') + '://' + 'cdn.yoho.cn/yas-jssdk/1.0.17/yas.js', '_yas'); + +(function() { + var uid = getUid(); + + uid = uid === 0 ? '' : uid; + + window._ozuid = uid; //暴露ozuid + + if (window._yas) { + window._yas(1 * new Date(), '1.0.17', 'yohobuy_web', uid, '', ''); + } +}()); + +//window.resize在width<1180时适配成990 +$(window).on('resize', function() { + var w = $(this).width(); + + //return top + if (w < 1360) { + $('.return-top').addClass('min'); + } else { + $('.return-top').removeClass('min'); + } + + //body + if (w < 1180) { + $body.addClass('min-screen'); + } else { + $body.removeClass('min-screen'); + } +}).trigger('resize'); + +function queryString() { + var vars = {}, + hash, + i, + search = window.location.search, + hashes = search ? decodeURIComponent(search).slice(1).split('&') : []; + + for (i = 0; i < hashes.length; i++) { + hash = hashes[i].split('='); + vars[hash[0]] = hash[1]; + } + return vars; +} + +// 给jQuery 扩展 queryString函数 +$.extend({ + queryString: function() { + var vars = [], + hash, + i; + var hashes = window.location.search.slice(1).split('&'); + + for (i = 0; i < hashes.length; i++) { + hash = hashes[i].split('='); + vars.push(hash[0]); + vars[hash[0]] = hash[1]; + } + return vars; + } +}); + +//个人中心左侧栏头像加载失败后,显示默认头像 +(function() { + $(window).load(function() { + var thumb = document.getElementById('user-thumb'); + var img; + + if (!thumb) { + return; + } + + img = new Image(); + + img.src = thumb.src; + + img.onerror = function() { + $(thumb).parent().append('<div class="default-user-thumb"></div>').end().remove(); + }; + }); +}()); + +window.cookie = cookie; + +window.setCookie = setCookie; + +window.getUser = getUser; + +window.getUid = getUid; + +window.getShoppingKey = getShoppingKey; + +window.queryString = queryString; + +}); +define("js/footer", ["jquery"], function(require, exports, module){ +/** + * 尾部 + * @author: wangqing<robin.wang@yoho.cn> + * @date: 2015/12/01 + */ + +var $ = require("jquery"); + +var $returnTop = $('.return-top'); + +/** + * 订阅 + * @return {[type]} [description] + */ +function actionSubscription() { + var $subscriberBox = $('#subscriber-box'), + $subscriberBtn = $('#subscriber-btn'), + emailReg = /^[.\-_a-zA-Z0-9]+@[\-_a-zA-Z0-9]+\.[a-zA-Z0-9]/; + + var iconCode = { + mail: '', + tick: '' + }; + + $subscriberBox.focus(function() { + $(this).val('').css('color', ''); + $subscriberBtn.removeClass('done').html(iconCode.mail); + }); + + $subscriberBtn.click(function() { + var email = $.trim($subscriberBox.val()); + + if (email !== '' && emailReg.test(email)) { + try { + $.ajax({ + url: '//www.yohobuy.com/common/emailSubscriber', + dataType: 'jsonp', + data: { + email: email, + tmp: Math.random(), + uid: window.getUid() + }, + success: function(data) { + if (data.data.result === 1) { + $subscriberBox.val('已订阅到:' + email); + $subscriberBtn.addClass('done').html(iconCode.tick); + } else { + $subscriberBox.css('color', 'red'); + } + } + }); + } catch (e) { + console.log(e.message); + } + } else { + $subscriberBox.css('color', 'red'); + } + }); +} + +function actionhomeFootChange() { + var $vote = $('.vote'), + $feedBackPage = $('#feed-back-page'), + count = $vote.children('li').length; + + //意见反馈 + $feedBackPage.on('click', 'span', function() { + var $this = $(this); + + if ($this.hasClass('cur')) { + return; + } + + $this.siblings('.cur').removeClass('cur'); + $this.addClass('cur'); + + $vote.children().not('.hide').addClass('hide') + .end() + .eq($this.index()).removeClass('hide'); + }); + + $vote.on('click', '.feed-back-btn', function() { + var $this = $(this), + $li = $this.closest('li'), + index = $li.index(), + _solution = []; + + var _answer = $li.find('.feedback-answer').val(), + _feedback = $li.find('.feedback-id').val(), + _question = $li.find('.question-id').val(); + + $li.find(':checked').each(function() { + _solution.push($(this).val()); + }); + + $.ajax({ + url: '//www.yohobuy.com/common/suggestFeedback', + dataType: 'jsonp', + data: { + feedback_id: _feedback || 0, + question_id: _question || 0, + answer: _answer || '', + solution: _solution.join(',') + }, + success: function(data) { + var next = index + 1; + + if (~~data.data.result === 1) { + if (index === count - 1) { + alert('感谢您的参与!'); + return; + } + + $li.addClass('hide'); + + $vote.children(':eq(' + (index + 1) + ')').removeClass('hide'); + $feedBackPage.children('.cur').removeClass('cur'); + $feedBackPage.children(':eq(' + next + ')').addClass('cur'); + } + } + }); + }); +} + +function rePosReturn() { + if ($(window).height() > $(document).height()) { + $returnTop.addClass('hide'); + } + + // 只在窗口高度大于文档高度的时候,隐藏返回顶部 + // else { + // $returnTop.removeClass('hide'); + // } +} + +//返回顶部 +$returnTop.click(function() { + $('html,body').animate({ + scrollTop: 0 + }, 500); +}); + +$(window).scroll(function() { + if ($(window).scrollTop() === 0) { + $returnTop.addClass('hide'); + } else { + $returnTop.removeClass('hide'); + } +}); + +//如果初始是隐藏的,监听图片加载,重新确定return-top的高度 +if ($returnTop.hasClass('hide')) { + $('img').load(rePosReturn); +} + +//初始化 +actionSubscription(); +actionhomeFootChange(); + +//暴露给有可能通AJAX改变内容的页面去用 +window.rePosReturnTop = rePosReturn; + +}); +define("js/header", ["jquery","handlebars","source-map","index"], function(require, exports, module){ +/** + * 头部 + * @author: wangqing<robin.wang@yoho.cn> + * @date: 2015/12/01 + */ +var $ = require("jquery"); +var handlebars = require("handlebars"); +var json2 = require("index"); +var vipInfoCombine = null; //用户信息编译模板 +var loginInfoCombine = null; //登录信息编译模板 +// var apiDomain = $('#api-domain').val(); //获取数据的地址 +var cartTpl = ''; //购物车模板 +/** + * 搜寻的时候过滤非法字符(+-/:等非法字符单独出现) + * @type {RegExp} + */ +var reg = /^[\^\!\+\-\(\)\:\[\]\\\{\}\~\*\?\|\&\;\/]{0,}$/g; +var keyword = ''; +var link = ''; +var dataLayer = []; +var requestFrame = null; +var logoanimationstart = 0; +var $logotrans = $('.icon-logo'); +var isen = true; +var loopdurationtime = 500; +var globaltimeout; +var onetimeoout; +var $loginBox = $('#loginBox'); +/** + * banner和地址的映射 + * @type {Object} + */ +var bannerMap = { + listboys: '4f78b0f418fc42314d8b6e791cfb7fa8', + listgirls: '00c1f025a51b6b597dc37925951ea27d', + listkids: 'b02df11184727701ade1b6de9737d08c', + listlifestyle: 'fd35c52dced0c880976ba858346d1fc5', + searchboys: '9fb8986ea700cc27a8057361c3924394', + searchgirls: 'e3e207a1443ca60c8037fe52a5560c18', + searchkids: '620fc77f479da8feaeb06f2324e5d0bb', + searchlifestyle: 'a3c93301c6ffaf3ed0f36a4a451be36d', + uniquebrandboys: '2ebb0810c0d1a67e5229149c9c3aba7d', + uniquebrandgirls: '99e23385f4ba4b65f406b7e2968ac821', + uniquebrandkids: 'a74ebc9b17840c91b9ea46568111fe6b', + uniquebrandlifestyle: '0e8c81ead53f56302baa4d0ad967f527', + brandsboys: '77b352db07129c76a9d532acad149f9f', + brandsgirls: 'bf047f16e52ebc38be5ce9c7623831e6', + brandskids: 'e3ae1ce9b5e13c6d271ef3eccb831652', + brandslifestyle: 'e4ac8029c30f65d7f1af030980d140fe', + newboys: '869d3c5f3b450fb52101d00a61ce87cb', + newgirls: 'd953b6dfdac02483d1dcce8d96055954', + newkids: '0874cb6d75df8e0e78f2d475e53ecc08', + newlifestyle: '43e8fc8e178115c262bbce2bd0012db7', + saleboys: 'c846e3165c994769b4201d8c32f3ae9b', + salegirls: '52b1d389edcbc62d65de71b80c4d6ad0', + salekids: 'ad8b1703c761ba00973868ab5199cc27', + salelifestyle: '7acc64905c70ac91846f43fb2cec4bbd', + homeboys: 'b0856a771ef1b59ab1234c74688fa42d', + homegirls: '2bd61fa12e4933211518f70fe5ce3c48', + homekids: '895c59e8c64b40399c9533509507320c', + homelifestyle: '2e037d4e25d2767352ca3e0a4627f7bd', + indexboys: '0c911d3000f52e8ca7cffb74f5864c29', + indexgirls: 'b645b8980c423ab30485e0a9d08c2ef7', + indexkids: '17f6d5d5d454d2c507bc5fcbc90f7756', + indexlifestyle: '735cd393e841762af8793c346abbbc36' +}; +var cookieMap = {}; + +var bannerApi = '//new.yohobuy.com/common/getbanner?content_code='; + +$('#api-domain').remove(); //删除信息表单 + +function getSource(column, postition, event) { + try { + dataLayer.push({ + louceng: column, + weizhi: postition, + event: event + }); + } catch (e) {} +} + + +window.submitSearch = function() { + var $keywordinput = $('#query_key').val(); + var $defaultsearch = $('#defaultsearch').val(); + var column = 'Search'; + var postition = 'Head Search'; + var event = 'Search'; + var $formatkeyword, + $formatkeywordinput; + + $formatkeyword = $.trim(keyword.toLowerCase()); + $formatkeywordinput = $.trim($keywordinput.toLowerCase()); + getSource(column, postition, event); + if (link !== '' && keyword !== '' && $formatkeyword === $formatkeywordinput) { + location.href = link.replace('\'', ''); + } else { + if (reg.test($keywordinput) && $keywordinput !== '') { + location.href = '//search.yohobuy.com/error?query=' + $keywordinput + '&result=error'; + } else { + if ($keywordinput === '') { + $('#query_key').val($defaultsearch); + } + $('#searchForm').submit(); + return false; + } + } +}; +/** + * 增加关键字 + * @return {[type]} [description] + */ +function actionAddKeyWords() { + var $keywords = $('#nav_keyword').text(); + var defaultsearch = 'vans'; + var $querykey = $('#query_key'); + + if ($keywords !== '') { + $querykey.css({ + color: '#000' + }); + $querykey.val($keywords); + } else { + $querykey.css({ + color: '#e0e0e0' + }); + $querykey.val(defaultsearch); + $querykey.on('focus', function(e) { + $querykey.css({ + color: '#000' + }); + $querykey.val(''); + }); + } +} +/** + * 定义购物车扩展 + */ + +function actionGoodsCart() { + var defaults = { + cookie: '_g', + cartNum: '' + }; + var params = ''; + var cartInfo = ''; + var queryNum = 0; + var listIndex = 0; + var tmpList = 0; + var totalNum = 0; + var text = ''; + + $.fn.miniCart = function(options) { + params = $.extend(defaults, options); + if (typeof window.cookie(params.cookie) === 'undefined') { + cartInfo = null; + } else { + if (params.cookie) { + try { + cartInfo = json2.parse(window.cookie(params.cookie)); + } catch (e) { + + } + + } + + } + if (cartInfo !== null && cartInfo !== '') { + totalNum = parseInt(cartInfo._nac) + parseInt(cartInfo._ac); + if (totalNum === 0) { + $('#icart-num').attr('class', 'icart-num icart-none'); + } else { + $('#icart-num').attr('class', 'icart-num'); + } + $(params.cartNum).html(totalNum); + } + }; + $.fn.search = function(searchDomain) { + + function getKeywords(obj) { + var key = $.trim($(obj).val()); + + key = key.replace(new RegExp('\'', 'gm'), ''); //去掉特殊字符 + if (key === '') { + $('.search-list').hide(); + return false; + } + key = encodeURI(key); + $.get(searchDomain + '?query=' + key, function(htmlData) { + $('.search-list').html(htmlData.data); + queryNum = $('.search-list').children('li').length; + listIndex = -1; + if (queryNum > 0) { + $('.search-list').show(); + } else { + $('.search-list').hide(); + } + $('.search-list').find('a').hover(function() { + $(this).css('background-color', '#eee'); + }, function() { + $(this).css('background-color', '#fff'); + }); + }, 'jsonp'); + } + + function getText(obj) { + $('.search-list li:eq(' + tmpList + ')').children('a').css('background-color', '#fff'); + $('.search-list li:eq(' + listIndex + ')').children('a').css('background-color', '#eee'); + text = $('.search-list li:eq(' + listIndex + ')').children('a').attr('title'); + $('#query_key').val(text); + } + return this.each(function() { + $(this).keyup(function(event) { + if (event.which === 38) { + if (queryNum === 0) { + return false; + } + if (listIndex === -1) { + listIndex = 0; + } + tmpList = listIndex; + listIndex = (listIndex - 1 + queryNum) % queryNum; + getText(this); + } else if (event.which === 40) { + if (queryNum === 0) { + return false; + } + tmpList = listIndex; + listIndex = (listIndex + 1) % queryNum; + getText(this); + } else if (event.which === 13) { + window.submitSearch(); + } else { + getKeywords(this); + } + }); + }); + }; + $.extend({ + getData: function(domain, options, onSuccess) { + var defaults = { + page: 1, + method: '', + v: 1, + return_type: 'jsonp', + open_key: '12345', + tmp: Math.random() + }; + var params = ''; + + if (typeof (domain) === undefined || domain === '') { + return false; + } + params = $.extend(defaults, options); + params.page = params.page || 1; + + // if (params.method === '') { + // return false; + // } + + try { + $.getJSON(domain + '/?callback=?', params, function(_data) { + if (onSuccess !== '') { + if (typeof onSuccess(_data.data) !== 'undefined') { + json2.parse(onSuccess(_data.data)); + } + return false; + } + }); + } catch (e) { + console.log(e.message); + } + }, + getShoppingKey: function() { + var shoppingInfo = window.cookie('_g'); + var shoppingData = json2.parse(shoppingInfo); + var spk; + + if (typeof shoppingInfo === 'undefined' || shoppingInfo === null) { + spk = window.cookie('_SPK'); + return spk ? spk : ''; + } + return shoppingData._k; + } + }); +} + +/** + * 时间戳 + * @param {[type]} v1 [description] + * @param {[type]} options) { if (v1 [description] + * @return {[type]} [description] + */ +handlebars.registerHelper('timestamp', function() { + return new Date().getTime(); +}); +/** + * 头像 + * @param {[type]} v1 [description] + * @param {[type]} options) { if (v1 [description] + * @return {[type]} [description] + */ +handlebars.registerHelper('headerimg', function(headerimg) { + + if (headerimg === '') { + return '//img10.static.yhbimg.com/headimg/2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif' + + '?imageView/2/w/100/h/100'; + } else { + return headerimg; + } + +}); +/** + * 判断等级为3的helper + * @param {[type]} v1 [description] + * @param {[type]} options) { if (v1 [description] + * @return {[type]} [description] + */ + +handlebars.registerHelper('equallevelthree', function(v1, options) { + + if (v1 === '3') { + return options.fn(this); + } else { + return options.inverse(this); + } +}); + +/** + * 判断不为'0'的helper + * @param {[type]} v1 [description] + * @param {[type]} options) { if (v1 [description] + * @return {[type]} [description] + */ + +handlebars.registerHelper('notzero', function(v1, options) { + if (v1 !== '0') { + return options.fn(this); + } else { + return options.inverse(this); + } +}); + +/** + * 获取头部banner的回调函数 + * @param {[type]} data [description] + */ +function JsonPCallBack(data) { + var topbanner; + + if (+data.code === 200) { + if (typeof data.data === 'object') { + if (data.data.url !== '') { + topbanner = '<a target="_blank" href="' + data.data.url + '" class="page-top-banner"' + + 'style="height:36px;border:none;background-image:url(' + window.unescape(data.data.src) + ');' + + 'background-position: center;display:block;"> </a>'; + } else { + topbanner = '<div class="yoho-notice">' + + '<div class="notice-container center-content">' + + '<h1 class="notice-title">关于系统升级的公告</h1>' + + '<div class="notice-content">' + + '<p class="tips">尊敬的顾客:</p>' + + '<p class="detail">您好!为了向您提供更优质的服务,目前系统正在升级,请耐心等待。</p>' + + '<p class="detail">系统升级期间,部分地区用户体验会有暂时中断,如遇紧急事宜,欢迎垂询客服热线:' + + '400-889-9646 09:00-22:30(周一至周日)。稍后系统将恢复正常' + + '使用,欢迎您继续光顾YOHO!BUY有货!带来不便之处深表歉意,请您谅解!</p>' + + '</div>' + + '</div>' + + '</div>'; + } + $('body').prepend(topbanner); + } + } +} + +window.JsonPCallBack = JsonPCallBack; + + +/** + * 获得banner数据 + * @param {[string]} code [banner对应的编码] + * @return {[type]} [description] + */ +function getBannerData(code) { + var script = document.createElement('script'); + + script.src = bannerApi + code + '&client_type=web&callback=JsonPCallBack'; + document.getElementsByTagName('head')[0].appendChild(script); +} + +/** + * 显示和隐藏 + * @param {[type]} sourceClass [description] + * @param {[type]} targetClass [description] + * @return {[type]} [description] + */ +function toggleDisplay(sourceClass, targetClass) { + var $that, + targetobj; + + $(sourceClass).hover(function(e) { + e.preventDefault(); + $that = $(this); + targetobj = $(targetClass)[0]; + if (targetobj.style.display === '') { + $that.addClass('acttags'); + targetobj.style.display = 'block'; + } else { + $that.removeClass('acttags'); + targetobj.style.display = ''; + } + }); +} + +/** + * 执行顶部显示和隐藏 + * @return {[type]} [description] + */ +function actionTopTagToggle() { + var tags = [{ + sourceClass: '.myyoho', + targetClass: '.myyoho-info' + }, { + sourceClass: '.phone', + targetClass: '.qr' + }], + obj, + i; + + for (i = 0; i < tags.length; i++) { + obj = tags[i]; + toggleDisplay(obj.sourceClass, obj.targetClass); + } +} +/** + * 执行顶部群组鼠标交互 + * @return {[type]} [description] + */ +function actionYoHoGroup() { + var $this; + + $('.yohogroup').mouseenter(function() { + $this = $(this); + $this.text($this.attr('cn')); + }); + $('.yohogroup').mouseleave(function() { + $this = $(this); + $this.text($this.attr('en')); + }); +} + +/** + * 检测是否支持css3的动画 + * @return {Boolean} [description] + */ +function isSupportCss3Animation() { + var thisFunc, + prefixList = ['webkit', 'moz', 'ms'], + i; + + for (i = 0; i < prefixList.length; i++) { + thisFunc = prefixList[i] + 'RequestAnimationFrame'; + if (window[thisFunc]) { + return true; + } else { + return false; + } + } + +} +/** + * css3动画 + * @param {Array} ) { var thisFunc, prefixList [description] + * @return {[type]} [description] + */ +function requestFrameAct() { + var prefixList = ['webkit', 'moz', 'ms']; + var func1 = prefixList[0] + 'RequestAnimationFrame'; + var func2 = prefixList[1] + 'RequestAnimationFrame'; + var func3 = prefixList[2] + 'RequestAnimationFrame'; + + if (window[func1]) { + return function(callback) { + requestAnimationFrame(callback); + }; + } + if (window[func2]) { + return function(callback) { + window[func2](callback); + }; + } + if (window[func3]) { + return function(callback) { + window[func3](callback); + }; + } + return function(callback) { + window.setTimeout(callback, 67); + }; +} + + +/** + * css3动画 + * @return {[type]} [description] + */ + +function tsAnimate() { + logoanimationstart += 10; + $logotrans.css({ + transform: 'rotateX(' + logoanimationstart + 'deg)', + '-webkit-transform': 'rotateX(' + logoanimationstart + 'deg)', + '-moz-transform': 'rotateX(' + logoanimationstart + 'deg)' + }); + if (logoanimationstart / 90 % 2 === 1) { + if (isen) { + $logotrans.css('background-image', 'url(//static.yohobuy.com/newheader/img/logo1.png)'); + isen = false; + } else { + $logotrans.css('background-image', 'url(//static.yohobuy.com/newheader/img/logo_e.png)'); + isen = true; + } + } + if (logoanimationstart / 90 % 2 === 0 && logoanimationstart % 360 !== 0) { + window.setTimeout(tsAnimate, 3000); + } else { + if (logoanimationstart % 360 === 0) { + window.setTimeout(tsAnimate, 1 * 60 * 1000); + } else { + requestFrame(function() { + tsAnimate(); + }); + } + } +} + +/** + * 淡出 + * @return {[type]} [description] + */ +function fadeAnimate() { + if (globaltimeout) { + window.clearTimeout(globaltimeout); + } + $logotrans.fadeOut(loopdurationtime, function() { + isen = false; + + $logotrans.css('background-image', 'url(//static.yohobuy.com/newheader/img/logo.png)'); + $logotrans.fadeIn(loopdurationtime, function() { + onetimeoout = window.setTimeout(function() { + $logotrans.fadeOut(loopdurationtime, function() { + window.clearTimeout(onetimeoout); + isen = true; + $logotrans.css('background-image', + 'url(//static.yohobuy.com/newheader/img/logo_e.png)'); + $logotrans.fadeIn(loopdurationtime, function() { + globaltimeout = window.setTimeout(fadeAnimate, 1 * 60 * 1000); + }); + }); + }, 3000); + }); + }); +} +/** + * 执行头部logo动画 + * @return {[type]} [description] + */ +function actionTopLogoAnimate() { + if (isSupportCss3Animation()) { + requestFrame = requestFrameAct(); + window.setTimeout(tsAnimate, 3000); + } else { + window.setTimeout(fadeAnimate, 3000); + } +} +window.newArr = []; +window.wrapperindex = 0; +window.gindex = 0; +window.targetArr1 = []; +window.targetArr2 = []; +window.targetArr3 = []; +window.oh1 = 0; +window.oh2 = 0; +window.oh3 = 0; +window.valueIndex = 0; +window.nowIndex = 0; +window.inner1 = ''; +window.inner2 = ''; +window.inner3 = ''; +window.finalresult = ''; + +function createNewArray(obj) { + var $thirdnavpanel = $(obj); + + $thirdnavpanel.find('.thirdnavbar').each(function() { + var $that = $(this); + var $alink = $that.find('a'); + var _href = $alink.attr('href'); + var hottag = $alink.attr('hot') === 'hot' ? true : false; + var objt = {}; + + if ($that.hasClass('category-title')) { + objt = { + type: 'title', + height: 49, + content: $that.text(), + index: window.valueIndex, + href: _href, + hot: false + }; + } else { + objt = { + type: 'catlist', + height: 36, + content: $alink.text(), + index: window.valueIndex, + href: _href, + hot: hottag + }; + } + window.valueIndex++; + window.newArr.push(objt); + }); +} + +function createWrapper() { + var arrlength = window.newArr.length; + var i = 0; + var objnew = []; + var aobj = []; + var bobj = []; + var cobj = []; + var final1 = '', + final2 = '', + final3 = ''; + var a = 0; + var b = 0; + var c = 0; + + for (i; i < arrlength; i++) { + objnew = window.newArr[i]; + if (window.gindex === 0) { + window.oh1 = (window.oh1 + objnew.height); + if (window.oh1 >= 340 && i !== (arrlength - 1)) { + window.targetArr1 = window.newArr.slice(0, objnew.index + 1); + window.nowIndex = objnew.index + 1; + window.gindex++; + } + if (i === (arrlength - 1)) { + window.targetArr1 = window.newArr.slice(0, arrlength + 1); + break; + } + } + if (window.gindex === 1) { + window.oh2 = (window.oh2 + objnew.height); + if (window.oh2 >= 340 && i !== (arrlength - 1)) { + window.targetArr2 = window.newArr.slice(window.nowIndex, objnew.index + 1); + window.nowIndex = objnew.index + 1; + window.gindex++; + } + if (i === (arrlength - 1)) { + window.targetArr2 = window.newArr.slice(window.nowIndex, arrlength + 1); + break; + } + } + if (window.gindex === 2) { + window.oh3 = (window.oh3 + objnew.height); + if (window.oh3 >= 340 && i !== (arrlength - 1)) { + window.targetArr3 = window.newArr.slice(window.nowIndex, objnew.index + 1); + window.nowIndex = objnew.index + 1; + window.gindex++; + break; + } + if (i === (arrlength - 1)) { + window.targetArr3 = window.newArr.slice(window.nowIndex, arrlength + 1); + break; + } + } + } + for (a; a < window.targetArr1.length; a++) { + aobj = window.targetArr1[a] || {}; + if (aobj.type === 'title') { + window.inner1 = window.inner1 + + '<li class="cattitle"><h3><a href="' + + aobj.href + + '">' + + aobj.content + + '</a></h3></li>'; + } else { + if (aobj.hot === true) { + window.inner1 = window.inner1 + + '<li class="catdetail"><a class="thirdcatelink hot" href="' + + aobj.href + + '">' + + aobj.content + + '</a></li>'; + } else { + window.inner1 = window.inner1 + + '<li class="catdetail"><a class="thirdcatelink" href="' + + aobj.href + '">' + + aobj.content + + '</a></li>'; + } + + } + } + for (b; b < window.targetArr2.length; b++) { + bobj = window.targetArr2[b] || {}; + if (bobj.type === 'title') { + window.inner2 = (window.inner2 + + '<li class="cattitle"><h3><a href="' + + bobj.href + '">' + + bobj.content + + '</a></h3></li>'); + } else { + if (bobj.hot === true) { + window.inner2 = (window.inner2 + + '<li class="catdetail"><a class="thirdcatelink hot" href="' + + bobj.href + '">' + bobj.content + '</a></li>'); + } else { + window.inner2 = (window.inner2 + + '<li class="catdetail"><a class="thirdcatelink" href="' + + bobj.href + '">' + bobj.content + '</a></li>'); + } + + } + } + for (c; c < window.targetArr3.length; c++) { + cobj = window.targetArr3[c] || {}; + if (cobj.type === 'title') { + window.inner3 = (window.inner3 + + '<li class="cattitle"><h3><a href="' + + cobj.href + + '">' + + cobj.content + + '</a></h3></li>'); + } else { + if (cobj.hot === true) { + window.inner3 = (window.inner3 + + '<li class="catdetail"><a class="thirdcatelink hot" href="' + + cobj.href + '">' + + cobj.content + + '</a></li>'); + } else { + window.inner3 = (window.inner3 + + '<li class="catdetail"><a class="thirdcatelink" href="' + + cobj.href + '">' + + cobj.content + + '</a></li>'); + } + + } + } + if (window.inner1 !== '') { + final1 = '<ul class="cate_row1 cate_row">' + + window.inner1 + + '</ul>'; + } + if (window.inner2 !== '') { + final2 = '<ul class="cate_row2 cate_row">' + + window.inner2 + + '</ul>'; + } + if (window.inner3 !== '') { + final3 = '<ul class="cate_row3 cate_row">' + + window.inner3 + + '</ul>'; + } + window.finalresult = final1 + final2 + final3; + $('#' + window.wrapperindex).empty().append(window.finalresult); +} + +function actionNav() { + $('.categorywrapper').each(function(index) { + window.wrapperindex = $(this).attr('id'); + window.newArr = []; + window.gindex = 0; + window.targetArr1 = []; + window.targetArr2 = []; + window.targetArr3 = []; + window.oh1 = 0; + window.oh2 = 0; + window.oh3 = 0; + window.valueIndex = 0; + window.nowIndex = 0; + window.inner1 = ''; + window.inner2 = ''; + window.inner3 = ''; + createNewArray($(this).find('.category')); + createWrapper(); + }); +} + +/** + * 获取三级导航的tip图标 + * @return {[type]} [description] + */ +function actionTipPic() { + var tipscode = {}; + var $contentcode = ''; + var $img = ''; + var $title = ''; + var $link = ''; + var logolink = ''; + + $(document).on('mouseenter', '.sub-nav-item', function() { + $contentcode = $(this).find('.showdetail').attr('data-code'); + if ($contentcode) { + if (!tipscode[$contentcode]) { + tipscode[$contentcode] = $contentcode; + $img = $(this).find('.showdetail').find('img'); + $title = $(this).find('.showdetail').find('.title'); + $link = $(this).find('.showdetail').find('a'); + $.get(bannerApi + $contentcode + '&width=337&height=250&client_type=web', function(rsdata) { + $img.attr('src', rsdata.data.src); + $link.attr('href', rsdata.data.url); + $title.text(rsdata.data.title); + }, 'jsonp'); + } + } + }); + logolink = $('.cure').find('.name-cn').find('a').attr('href'); + $('.main-link').attr('href', logolink); +} + + + +function closeCover() { + var $cover = $('#cover'); + + $cover.remove(); +} +/** + * 首次进入有弹窗 + * @return {[type]} [description] + */ +function actionCover() { + var gender = window.cookie('_Gender'); + var newMask = ''; + var windowheight = ''; + var selfheight = ''; + var containertop; + var length = ''; + + if (window.location.host === 'www.yohobuy.com' && + (typeof gender === 'undefined' || gender === '' || gender === null)) { + $.get('//www.yohobuy.com/index/guide', function(data) { + newMask = document.createElement('div'); + newMask.id = 'cover'; + newMask.innerHTML = data; + document.body.appendChild(newMask); + windowheight = $(window).height(); + selfheight = $('.guide-box').height(); + containertop = windowheight / 2 - selfheight / 2; + length = $('.guide-box .clear').find('li').length; + $('.guide-box').css({ + width: (200 * length) + 'px', + top: containertop + 'px' + }); + $('#cover').bind('click', function(event) { + window.setCookie('_Gender', '1,3', { + path: '/', + domain: '.yohobuy.com', + expires: 90 + }); + window.setCookie('_Channel', 'boys', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + closeCover(); + }); + $('#cover .guide-box .close').bind('click', function(event) { + getSource('弹窗', 'CLOSE', 'homepage_man'); + window.setCookie('_Gender', '1,3', { + path: '/', + domain: '.yohobuy.com', + expires: 90 + }); + window.setCookie('_Channel', 'boys', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + closeCover(); + }); + $('.boys img , .boys .go').bind('click', function(event) { + getSource('弹窗', 'BOYS', 'homepage_man'); + window.setCookie('_Gender', '1,3', { + path: '/', + domain: '.yohobuy.com', + expires: 90 + }); + window.setCookie('_Channel', 'boys', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + closeCover(); + }); + $('.girls img, .girls .go').bind('click', function(event) { + getSource('弹窗', 'GIRLS', 'homepage_woman'); + window.setCookie('_Gender', '2,3', { + path: '/', + domain: '.yohobuy.com', + expires: 90 + }); + window.setCookie('_Channel', 'girls', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + }); + $('.lifestyle img, .lifestyle .go').bind('click', function(event) { + window.setCookie('_Channel', 'lifestyle', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + getSource('弹窗', 'LIEFSTYLE', 'homepage_lifestyle'); + }); + $('#cover .guide-box').bind('click', function(event) { + event.stopPropagation(); + }); + }); + } +} +/** + * 查询跳转后保留关键字 + * @return {[type]} [description] + */ +function actionAddKeyWords() { + var $keywords = $('#nav_keyword').text(); + var defaultsearch = $('#defaultsearch').val(); + var $querykey = $('#query_key'); + + if ($keywords !== '') { + $querykey.css({ + color: '#000' + }); + $querykey.val($keywords); + } else { + $querykey.css({ + color: '#e0e0e0' + }); + $querykey.val(defaultsearch); + $querykey.on('focus', function(e) { + $querykey.css({ + color: '#000' + }); + $querykey.val(''); + }); + } + $(document).click(function(e) { + if (!$(e.target).closest('.searchspan, .search-list').length) { + $('.search-list').hide(); + } + }); +} + + +/** + * cookie 初始化 + * @return {[type]} [description] + */ +function actionInitCookie() { + var $cookieGender = window.cookie('_Gender'); + var $target = $('.cure'); + + if (typeof $cookieGender !== 'undefined' && $cookieGender !== '') { + window.setCookie('_Gender', 1, { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + } + if ($target.find('.name-cn a').text() === '男生') { + window.setCookie('_Gender', '1,3', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + window.setCookie('_Channel', 'boys', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + } + if ($target.find('.name-cn a').text() === '女生') { + window.setCookie('_Gender', '2,3', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + + // window.setCookie('_Channel', 'girls', { + // path: '/', + // domain: '.yohobuy.com', + // expires: 7 + // }); + } + if ($target.find('.name-cn a').text() === '创意生活') { + window.setCookie('_Channel', 'lifestyle', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + } + if ($target.find('.name-cn a').text() === '潮童') { + window.setCookie('_Channel', 'kids', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + } +} +/** + * 提前设置好频道的cookie + */ +function setChannelCookie() { + $('.first-nav-item').click(function() { + var _cookieGender = window.cookie('_Gender'); + + if (typeof _cookieGender !== 'undefined' && _cookieGender !== '') { + window.setCookie('_Gender', 1, { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + } + if ($(this).find('.name-cn a').text() === '男生') { + window.setCookie('_Gender', '1,3', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + window.setCookie('_Channel', 'boys', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + } + if ($(this).find('.name-cn a').text() === '女生') { + window.setCookie('_Gender', '2,3', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + window.setCookie('_Channel', 'girls', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + } + if ($(this).find('.name-cn a').text() === '创意生活') { + window.setCookie('_Channel', 'lifestyle', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + } + if ($(this).find('.name-cn a').text() === '潮童') { + window.setCookie('_Channel', 'kids', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + } + }); + +} +/** + * cookie集合 + * @type {Object} + */ +function actionExeCookieMap() { + var cookies = document.cookie; + var cookiearr = cookies.split(';'); + var i; + var temparr; + var key; + + for (i = 0; i < cookiearr.length; i++) { + temparr = cookiearr[i].split('='); + if (typeof temparr[0] !== 'undefined') { + key = temparr[0].replace(/\s/g, ''); + cookieMap[key] = temparr[1]; + } + } +} + + +/** + * 购物车商品数量 + * @return {[type]} [description] + */ +function actionUpdateCartNum() { + $('#miniCartBox').miniCart({ + cartNum: '.ic-infomation' + }); +} +/** + * 加载购物车数据 + * @return {[type]} [description] + */ +function loadCartData() { + var shoppingInfo, + shoppingData, + strK; + + $.getData('//www.yohobuy.com/common/shoppingCart', '', function(jsonData) { + if (cartTpl === '') { + cartTpl = handlebars.compile($('#mini-cart-tpl').html()); + } + $('#miniCartBox').children('.gobuy-wrapper').html(cartTpl({ + carData: jsonData + })); + if (parseInt($('.ic-infomation').html()) === 0) { + $('#miniCartBox .gobuy-wrapper').html('<div class="gobuy-empty">' + + '<h3 class="information">您的购物车暂无商品</h3></div>'); + } + if ($('#miniCartBox .goods-list li').length < 1) { + shoppingInfo = window.cookie('_g'); + shoppingData = json2.parse(shoppingInfo); + if (shoppingData !== null) { + strK = '{"_k":"' + shoppingData._k + '","_nac":0' + ',"_ac":0,"_r":0}'; + window.setCookie('_g', strK, { + path: '/', + domain: '.yohobuy.com' + }); + } + $('.ic-infomation').html(0); + $('#miniCartBox .gobuy-wrapper').html('<div class="gobuy-empty">' + + '<h3 class="information">您的购物车暂无商品</h3></div>'); + } + }); +} +/** + * 删除购物车数据 + * @param {[type]} id [description] + * @param {Boolean} isreduce [description] + * @return {[type]} [description] + */ +function delCartGoods(productSku, promotionId, productNum) { + + $.getData('//www.yohobuy.com/common/delCartGoods', { + + // shopping_key: $.getShoppingKey(), + product_sku: productSku, + promotion_id: promotionId, + product_num: productNum + }, function(jsonData) { + var shoppingInfo = window.cookie('_g'); + var shoppingData = json2.parse(shoppingInfo); + var strK = '{"_k":"' + shoppingData._k + '","_nac":' + jsonData.total_goods_num + ',"_ac":0,"_r":0}'; + + window.setCookie('_g', strK, { + path: '/', + domain: '.yohobuy.com' + }); + loadCartData(); + actionUpdateCartNum(); + }); +} + + +/** + * 监听购物车删除 + * @return {[type]} [description] + */ +function actionListenDelCarGoods() { + var $delcargoods, productSku, promotionId, productNum; + + $(document).on('click', '.goodscardelete', function(e) { + $delcargoods = $(this); + productSku = $delcargoods.attr('product_sku'); + promotionId = $delcargoods.attr('promotion_id'); + productNum = $delcargoods.prev('h3').find('.num').html(); + delCartGoods(productSku, promotionId, productNum); + }); +} +/** + * 监听点击更多打折商品 + * @return {[type]} [description] + */ +function actionListenCartMore() { + var $morecart; + + $(document).on('click', '.mycart_i_down', function(e) { + $morecart = $(this); + $morecart.toggleClass('mycart_i_up'); + $('#mycartmore').slideToggle(300); + }); +} +/** + * 点击购物车 + * @return {[type]} [description] + */ +function actionClickMiniCartBox() { + var $target; + var shopcarurl = '//www.yohobuy.com/shopping/cart'; + + $('#miniCartBox').on('click', function(e) { + $target = $(e.target); + if ($target.hasClass('gobuy')) { + window.location.href = shopcarurl; + } + }); +} + +/** + * 显示购物车效果 + * @param {Boolean} isShow [description] + * @return {[type]} [description] + */ +function showMiniCart(isShow) { + if (isShow === 1) { + $('#miniCartBox').addClass('list-cur'); + $('.gobuy-wrapper').show(); + if (parseInt($('.ic-infomation').html()) !== 0) { + $('#miniCartBox .gobuy-wrapper').html('<div class="gobuy-loading">' + + '<h3 class="information">加载中,请稍后</h3></div>'); + loadCartData(); + } else { + $('#miniCartBox .gobuy-wrapper').html('<div class="gobuy-empty">' + + '<h3 class="information">您的购物车暂无商品</h3></div>'); + } + } else { + $('#miniCartBox').removeClass('list-cur'); + $('.gobuy-wrapper').hide(); + } +} + + +/** + * 鼠标购物车的滑入滑出效果 + * @return {[type]} [description] + */ +function actionGoodsCarMouseEffect() { + var $target; + + $('#miniCartBox').mouseenter(function(e) { + $target = $(e.target); + if ($target.attr('id') === 'miniCartBox' || $target.attr('class') === 'ic-infomation') { + showMiniCart(1); + } + }); + $('#miniCartBox').mouseleave(function(e) { + showMiniCart(0); + }); +} +/** + * 获得banner & 异常通知 + * @return {[type]} [description] + */ +function actionGetBannerAndNotice() { + var INDEXKIDS = 'indexkids', + INDEXLIFESTYLE = 'indexlifestyle', + INDEXBOYS = 'indexboys', + INDEXWOMAN = 'indexgirls', + UNIQUEBRAND = 'uniquebrand'; + var url = window.location.href; + var host = window.location.host; + var code = ''; + var firstarea; + + if (url.indexOf('search') !== -1) { + code = bannerMap['search' + cookieMap._Channel]; + } + if (url.indexOf('list') !== -1) { + code = bannerMap['list' + cookieMap._Channel]; + } + if (url.indexOf('brands') !== -1) { + code = bannerMap['brands' + cookieMap._Channel]; + } + if (url.indexOf('new') !== -1) { + code = bannerMap['new' + cookieMap._Channel]; + } + if (url.indexOf('sale') !== -1) { + code = bannerMap['sale' + cookieMap._Channel]; + } + if (url.indexOf('home') !== -1) { + code = bannerMap['home' + cookieMap._Channel]; + } + if (url.indexOf('kids') !== -1) { + code = bannerMap[INDEXKIDS]; + } + if (url.indexOf('woman') !== -1 || url.indexOf('girls') !== -1) { + code = bannerMap[INDEXWOMAN]; + } + if (url.indexOf('lifestyle') !== -1) { + code = bannerMap[INDEXLIFESTYLE]; + } + if (url.indexOf('www.yohobuy.com') !== -1 && window.location.pathname === '/') { + code = bannerMap[INDEXBOYS]; + } + firstarea = host.split('.')[0]; + if (firstarea !== 'list' && firstarea !== 'search' && firstarea !== 'www' && + firstarea !== 'new' && firstarea !== 'item' && firstarea !== 'guang') { + code = bannerMap[UNIQUEBRAND + cookieMap._Channel]; + } + + getBannerData(code); //获得banner信息 + +} + +function brandSwitch(index) { + $('.hot-brands').find('ul').stop().animate({ + opacity: 0, + 'z-index': 1 + }, 200).eq(index).animate({ + opacity: 1, + 'z-index': 2 + }, 200); +} +/** + * 品牌左右切换 + * @return {[type]} [description] + */ +function actionBrandChange() { + var activeIndex = 0, + swiperLen; + + if ($('.hot-brands').size() > 0) { + swiperLen = $('.hot-brands').find('ul').size(); + $('.hot-brands').find('ul').eq(0).css({ + opacity: 1, + 'z-index': 2 + }); + $('.brands-control').on('click', '.next', function() { + if (activeIndex === swiperLen - 1) { + activeIndex = 0; + } else { + activeIndex++; + } + brandSwitch(activeIndex); + }); + $('.brands-control').on('click', '.prev', function() { + if (activeIndex === 0) { + activeIndex = swiperLen - 1; + } else { + activeIndex--; + } + brandSwitch(activeIndex); + }); + + + } +} +/** + * 循环检测购物车数量 + * @return {[type]} [description] + */ +function actionLoopUpdCartNum() { + setInterval(actionUpdateCartNum, 2000); +} +/** + * 处理模板 + * @return {[type]} [description] + */ +function actionExeTemplate() { + var $goodcartempwarpper = $('#goodcartempwarpper'); + var resulthtml = ''; + + if ($goodcartempwarpper) { + if ($goodcartempwarpper.html()) { + resulthtml = $('#goodcartempwarpper').html().replace(/\\/g, ''); + $('#goodcartempwarpper').html(resulthtml); + vipInfoCombine = handlebars.compile($('#tmpl-my-login-new').html()); + } + } +} +/** + * 执行搜索 + * @return {[type]} [description] + */ +function actionSearch() { + var searchDomain = '//search.yohobuy.com/api/suggest'; + + $('#query_key').search(searchDomain); +} +/** + * 获取登录状态 + * @return {[type]} [description] + */ +function actionLoginState(_data) { + var timestamp = new Date().getTime(); + var noLoginHtml = '<span>Hi~</span>[<a href="//www.yohobuy.com/signin.html" class="list-a login-out ">' + + '请登录</a>] ' + + '[<a href="//www.yohobuy.com/reg.html" class="list-a login-out" onclick="">免费注册</a>]'; + var loginHtml = '<span>Hi~<a href="//www.yohobuy.com/home?t=' + timestamp + + '">{{user_name}}</a></span> ' + + '{{#if islogin}}' + + '[<a href="{{logout}}" class="list-a login-out">退出</a>]' + + '{{/if}}{{#unless islogin}}' + + '[<a href="//www.yohobuy.com/signin.html" class="list-a login-out">请登录</a>] ' + + '[<a href="//www.yohobuy.com/reg.html" onclick="" class="list-a login-out">免费注册</a>]' + + '{{/unless}}'; + var $boxObj = $('#loginBox'); + var info = window.cookie('_UID'); + var name = _data.data.profile_name; + var _length = 0; + var t = 0; + var char = ''; + var user = info.split('::'); + var userName = user[0] || ' '; + var _logout = '//www.yohobuy.com/logout.html'; + var islogin = '1'; + var _num = 0; + var data = { + user_name: name, + logout: _logout, + random: Math.random() + }; + + $boxObj.html('').show(); + + + loginInfoCombine = handlebars.compile(loginHtml); + if (typeof info === 'undefined' || info === null) { + $boxObj.html(noLoginHtml); + return false; + } + if (typeof user === 'undefined' || user.length < 4) { + $boxObj.html(noLoginHtml); + return false; + } + + for (t; t < userName.length; t++) { + char = userName.substr(t, 1); + if (/.*[\u4e00-\u9fa5]+.*$/.test(char)) { + _length += 2; + } else { + _length += 1; + } + } + if (_length <= 10) { + name = userName; + } else { + _num = 0; + for (t; t < userName.length; t++) { + if (_num < 10) { + char = userName.substr(t, 1); + if (char !== '*') { + if (/.*[\u4e00-\u9fa5]+.*$/.test(char)) { + _num += 2; + } else { + _num += 1; + } + } + name += char; + } + } + if (name.length < userName.length) { + name += '...'; + } + } + + + if (/http:\/\//.test(user[3])) { + _logout = user[3].replace('www.yohobuy.com', 'www.yohobuy.com'); + } else { + _logout = '//www.yohobuy.com/logout.html'; + } + if (_data.result === -1) { + islogin = '-1'; + } + data.islogin = islogin; + $boxObj.html(loginInfoCombine(data)); +} +/** + * 获得vip用户信息 + * @return {[type]} [description] + */ +function actionVipInfo(_data) { + var vipInfo = _data.data; + var headUrl = ''; + + if (_data.result === 1) { + if (typeof vipInfo === undefined || vipInfo.length < 1) { + return false; + } + if (vipInfo.vip.curVipInfo.curLevel === '3') { + vipInfo.vip3 = true; + } + + $('#myYohoBox').mouseenter(function() { + $(this).addClass('acttags'); + $('#myYohoBox .myyoho-info').show().html(vipInfoCombine(vipInfo)); + headUrl = $('.myyoho-photo img').attr('data-url'); + if ($._checkUrlState === 1) { + $('.myyoho-photo').show().find('img').attr('src', headUrl); + return; + } + if (headUrl === '' || $._checkUrl !== '') { + return; + } + $.ajax({ + url: headUrl, + type: 'GET', + complete: function(response) { + if (response.status === 200 || response.status === 0) { + $('.myyoho-photo').show().find('img').attr('src', headUrl); + $._checkUrlState = 1; + } + $._checkUrl = headUrl; + } + }); + }); + $('#myYohoBox').mouseleave(function() { + $(this).removeClass('acttags'); + $('#myYohoBox .myyoho-info').hide(); + }); + } +} +/** + * 获取登录信息 + * @return {[type]} [description] + */ +function actionLoginInfo() { + $.getData('//www.yohobuy.com/common/passport', '', function(_data) { + if (_data && _data.result !== -1) { + actionLoginState(_data); // 更改登录状态 + actionVipInfo(_data); //获得vip; + } else { + window.setCookie('_UID', '', { + path: '/', + domain: '.yohobuy.com', + expires: -1 + }); + $loginBox.show(); + } + }); +} +/** + * 初始化函数 + * @return {[type]} [description] + */ +function init() { + actionNav(); //处理导航 + actionTipPic(); //鼠标移入后查询 + actionExeTemplate(); //处理模板 + actionCover(); //初次登录弹框 + actionInitCookie(); //初始化cookie + setChannelCookie(); //设置频道缓存 + actionExeCookieMap(); //格式化cookie + actionGoodsCart(); //初始化购物车插件 + actionYoHoGroup(); // yoho集团鼠标效果 + actionTopTagToggle(); // yoho上部分开关 + actionTopLogoAnimate(); //yoho logo动画 + actionGetBannerAndNotice(); // 获取banner和服务器维护提示 + actionBrandChange(); //切换品牌 + actionGoodsCarMouseEffect(); //鼠标滑入滑出效果 + actionUpdateCartNum(); //更新购物车数量 + actionLoopUpdCartNum(); //循环检测购物车数量 + actionSearch(); //搜索执行 + actionClickMiniCartBox(); //点击购物车跳转 + actionListenDelCarGoods(); //监听购物车删除 + actionListenCartMore(); // + actionLoginInfo(); //获取登录信息 + actionAddKeyWords(); //增加关键字 +} +init(); +}); +define("js/simple-header", ["jquery"], function(require, exports, module){ +var $ = require("jquery"); + +var $apiDom = $('#api-domain'); + +var apiDomain = $apiDom.val(); //获取数据的地址 + +$apiDom.remove(); //删除API信息 + +if ($('.simple-header').size() > 0) { + $('.tool-options').on('mouseenter', function() { + $(this).find('.tool-select').fadeIn(); + }).on('mouseleave', function() { + $(this).find('.tool-select').fadeOut(); + }); +} + +/** + * 格式化用户名 + * @return {[type]} [description] + */ +function formatUsernName(userName) { + var name, + char, + _num = 0, + _length = 0, + t; + + for (t = 0; t < userName.length; t++) { + char = userName.substr(t, 1); + if (/.*[\u4e00-\u9fa5]+.*$/.test(char)) { + _length += 2; + } else { + _length += 1; + } + } + if (_length <= 10) { + name = userName; + } else { + _num = 0; + name = ''; + for (t = 0; t < userName.length; t++) { + if (_num < 10) { + char = userName.substr(t, 1); + if (char !== '*') { + if (/.*[\u4e00-\u9fa5]+.*$/.test(char)) { + _num += 2; + } else { + _num += 1; + } + } + name += char; + } + } + if (name.length < userName.length) { + name += '...'; + } + } + return name; +} + +/** + * 设置简单头部登陆状态 + * @return {[type]} [description] + */ +function setLoginStatus(data) { + var info = data.data, + loginHtml, + name; + + if (data.result !== -1) { + name = formatUsernName(info.profile_name); + loginHtml = '<span>Hi~</span>' + + '<a href="//www.yohobuy.com/home?t=' + info.random + '">' + name + '</a> ' + + '<a href="//www.yohobuy.com/logout.html">[退出]</a>'; + } else { + loginHtml = '<span>Hi~</span> ' + + '<a href="//www.yohobuy.com/signin.html">[请登录]</a> ' + + '<a href="//www.yohobuy.com/reg.html">[免费注册]</a>'; + } + $('.header-tool li').eq(0).html(loginHtml); +} + +/** + * 获取登录信息 + * @return {[type]} [description] + */ +function actionLoginInfo() { + var param = { + return_type: 'jsonp' + }; + + $.getJSON('//www.yohobuy.com/common/passport' + '/?callback=?', param, function(_data) { + if (_data && _data.data) { + setLoginStatus(_data.data); + } + }); +} + +actionLoginInfo(); //获取登录信息 + + +}); +define("js/product/entry", ["jquery","handlebars","source-map","lazyload","index","jquery-pjax"], function(require, exports, module){ +/** + * 商品页面打包入口文件 + * @auhtor: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/28 + */ + +require("js/product/list"); + +require("js/product/brand"); + +require("js/product/hotrank"); + +require("js/product/item"); + +require("js/product/shop-index"); + +}); +define("js/product/list", ["jquery","handlebars","source-map","lazyload"], function(require, exports, module){ +/** + * 商品列表页 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/11/23 + */ +var $ = require("jquery"); + +require("js/product/filter"); + +require("js/product/sort-pager"); + +require("js/product/latest-walk"); + +require("js/product/product"); + +(function() { + var $banner = $('.banner-img'), + img; + + if ($banner.length === 0) { + return; + } + + img = new Image(); + + //重置Banner高度 + img.onload = function() { + if (img.height) { + $banner.height(img.height); + } + + img = null; + }; + + //replace('"', '')为处理浏览器兼容性代码,部分浏览器中取得的字符串中包含"" + img.src = $banner.css('background-image').replace(/"/g, '').slice(4, -1); +}()); + +}); +define("js/product/filter", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 商品筛选逻辑 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/4 + */ + +var $ = require("jquery"), + Handlebars = require("handlebars"); + +var checkUnicode = { + unchecked: '', + checked: '' +}, +moreUnicode = { + up: '', + down: '' +}; + +//品牌相关变量 +var $brandDefault = $('.brand .default'), + $brandInput = $('#brand-search-input'), + $brandPanel = $('.brand .brand-panel'), + $brandAttrs = $brandPanel.find('.attr'), + $brandMore = $('#brand-more'), + $brandMulti = $('#brand-multi'), + $brandsIndex = $('.brands-index'); + +var $brandMoreTxt, $brandMoreIcon; + +//价格相关变量 +var $udPrice = $('.ud-price-range'), + interReg = /^\d+$/, + $limit, $min, $max, $btn; + +//分类相关变量 +var $sortSub = $('.sort-sub-wrap'); + +//高级选项相关变量 +var $seniorSubWrap = $('.senior-sub-wrap'), + $seniorAttrWrap = $('.senior-attr-wrap'); + +var seniorHoverTime, hoveredIndex; + +// 尺寸 handlebars 模板 +var sizeTmpl = '{{# size}}<a class="attr {{#if checked}}checked{{/if}}" href="{{href}}">{{name}}</a>{{/ size}}', + sizeCache = {}, // 缓存一下尺寸信息 + $sizeWrap = $('.filter-box .size'); + +sizeTmpl = Handlebars.compile(sizeTmpl); + +//清除checkbox选中状态[页面默认checked不清空] +function clearChecked($checkbox, $checked) { + $checkbox.each(function() { + if ($(this).closest('.attr').hasClass('checked')) { + return; + } + $(this).removeClass('checked').html(checkUnicode.unchecked); + }); + $checked.find('.checkbox').addClass('checked').html(checkUnicode.checked); +} + +//显示更多品牌面板 +function brandShowMore() { + $brandDefault.addClass('hide'); + $brandPanel.removeClass('hide'); +} + +//隐藏更多品牌面板 +function brandHideMore() { + $brandPanel.addClass('hide'); + $brandDefault.removeClass('hide'); + + //清除索引状态 + $brandsIndex.children('span').removeClass('hover'); +} + +//url构造&跳转 +function uriLoc(attr, val) { + var qs = window.queryString(), + newHref; + + qs[attr] = val; + delete qs.page; + newHref = '?' + decodeURIComponent($.param(qs)); + window.location.href = newHref; +} + +//隐藏高级选项面板 +function hideSeniorPanel(index) { + $seniorSubWrap.children('.senior-sub:eq(' + hoveredIndex + ')').addClass('hide'); + $seniorAttrWrap.children('.attr:eq(' + hoveredIndex + ')').removeClass('hover'); + hoveredIndex = -1; +} + +//屏蔽筛选项双击文字选中 +$('.filter-box').on('selectstart', '.attr, .brands-index span', function() { + return false; +}); + +//【分类】 +$('.sort-pre').on('click', 'li', function() { + var $this = $(this), + index = $this.index(), + id = $this.data('id'); + + if ($this.hasClass('active')) { + + // 选中时,再次点击取消选中 + $this.removeClass('active'); + $sortSub.children(':eq(' + index + ')').addClass('hide'); + $sizeWrap.addClass('hide'); + return; + } + + $this.siblings('.active').removeClass('active'); + $this.addClass('active'); + + $sortSub.children(':not(.hide)').addClass('hide'); + $sortSub.children(':eq(' + index + ')').removeClass('hide'); + + if (!$sizeWrap.data('load')) { + if (sizeCache[id]) { + $sizeWrap.find('.attr-content').html(sizeCache[id]); + $sizeWrap.removeClass('hide'); + } else { + $.ajax({ + url: '/product/search/sortSize', + data: { + msort: id + } + }).then(function(res) { + if ($.type(res) === 'array' && res.length) { + sizeCache[id] = sizeTmpl({ + size: res + }); + $sizeWrap.find('.attr-content').html(sizeCache[id]); + $sizeWrap.removeClass('hide'); + } else { + $sizeWrap.addClass('hide'); + } + }); + } + } +}); + +//【品牌】 +if ($brandMore.length > 0) { + $brandMoreTxt = $brandMore.children('em'); + $brandMoreIcon = $brandMore.children('.iconfont'); +} + +//【品牌】多选 +$brandMulti.click(function() { + if ($brandPanel.css('display') === 'none') { + + //显示品牌面板 + $brandMore.trigger('click'); + } + + brandShowMore(); + $brandPanel.removeClass('hide').addClass('multi'); //显示出checkbox + $(this).addClass('hide'); + + //隐藏更多按钮 + $brandMore.addClass('hide'); +}); + +//【品牌】更多 +$brandMore.click(function() { + var $this = $(this); + + if ($this.hasClass('more')) { + brandHideMore(); + + $brandMoreTxt.text('更多'); + $brandMoreIcon.html(moreUnicode.down); + + //清空搜索框和搜索结果 + $brandInput.val('').trigger('keyup'); + } else { + brandShowMore(); + + $brandMoreTxt.text('收起'); + $brandMoreIcon.html(moreUnicode.up); + } + + $(this).toggleClass('more'); +}); + +//【品牌】索引 +$brandsIndex.on('mouseenter', 'span', function() { + var $this = $(this), + index = $this.data('index'); + + if ($this.hasClass('hover')) { + return; + } + setTimeout(function() { + $this.siblings('span.hover').removeClass('hover'); + $this.addClass('hover'); + + if ($this.index() === 0) { + + //全部 + $brandAttrs.removeClass('hide'); + } else { + $brandAttrs.addClass('hide').filter('[data-index=' + index + ']').removeClass('hide'); + } + }, 120); +}); + +//【品牌】搜索 +$brandInput.keyup(function() { + var val = $(this).val().toLowerCase(); + + if (val === '') { + $brandAttrs.removeClass('hide'); + } else { + $brandAttrs.addClass('hide').filter('[data-key*="' + val + '"]').removeClass('hide'); + } +}); + +//【品牌】多选确定 +$('#brand-multi-ok').click(function() { + var val = []; + + if ($(this).hasClass('dis')) { + return; + } + + $brandPanel.find('span.checked').each(function() { + val.push($(this).data('id')); + }); + + uriLoc('brand', val.join(',')); +}); + +//【品牌/高级选项】多选取消 +$('.multi-select-cancel').click(function() { + var $panel = $(this).closest('.multi'); + + if ($panel.hasClass('brand-panel')) { + + $brandMulti.removeClass('hide'); //显示多选按钮 + $brandMore.trigger('click'); + + //显示出更多按钮 + $brandMore.removeClass('hide'); + + //清空搜索框和搜索结果 + $brandInput.val('').trigger('keyup'); + brandHideMore(); + } + + $panel.addClass('hide').removeClass('multi'); + clearChecked($panel.find('.checkbox.checked'), $panel.find('.attr.checked')); //清除选中状态 + + //确定按钮状态恢复dis + $(this).siblings('.multi-select-ok').addClass('dis'); +}); + +//【品牌/高级选项】checkbox +$('.check-container').on('click', '.attr', function() { + var $this = $(this), + $check = $this.find('.checkbox'), + $btnOk = $this.closest('.brand-panel, .senior-sub').find('.multi-select-ok'); + + $check.toggleClass('checked'); + + if ($check.hasClass('checked')) { + $check.html(checkUnicode.checked); + } else { + $check.html(checkUnicode.unchecked); + } + + //更新按钮状态 + if ($check.hasClass('checked') || + $this.siblings('.attr').find('.checked').length > 0) { + $btnOk.removeClass('dis'); + } else { + $btnOk.addClass('dis'); + } +}); + +//【品牌/高级选项】当多选时阻止链接默认跳转 +$('.brand, .senior').on('click', '.attr > a', function(e) { + if ($(this).closest('.multi').length > 0) { + e.preventDefault(); + } +}); + +// 已选中的条件,点击不刷新 +$('.filter-box').on('click', 'li.checked, a.checked', function(e) { + e.preventDefault(); +}); + +//【价格】用户定义价格处理 +if ($udPrice.length > 0) { + $limit = $udPrice.find('.limit'); + $min = $limit.filter('.min'); + $max = $limit.filter('.max'); + $btn = $udPrice.find('.price-sure'); + + //【价格】输入 + $limit.keyup(function() { + var thisPrice = $.trim($(this).val()), + isPriInt = interReg.test(thisPrice), + intPrice, + min, + max; + + if (!isPriInt) { + intPrice = parseInt(thisPrice, 10); + $(this).val(isNaN(intPrice) ? '' : intPrice); + } + + min = $.trim($min.val()); + max = $.trim($max.val()); + + if (min !== '' || max !== '') { + $btn.removeClass('hide'); + } else { + $btn.addClass('hide'); + } + }); + + //【价格】多项查询 + $btn.click(function() { + var min = $.trim($min.val()), + max = $.trim($max.val()), + tmp; + + //对于min大于max的情况,交换位置 + if (min !== '' && max !== '' && +min > +max) { + tmp = max; + max = min; + min = tmp; + } + + uriLoc('price', min + ',' + max); + }); +} + +//【高级选项】鼠标移入显示子项 +$seniorAttrWrap.on('mouseenter', '.attr', function() { + var $this = $(this); + var index = $this.index(); + + if ($this.hasClass('no-sub')) { + return; + } + $this.addClass('hover').siblings().removeClass('hover'); + + $seniorSubWrap.children('.senior-sub:eq(' + index + ')').removeClass('hide').siblings().addClass('hide'); +}).on('mouseleave', '.attr', function() { + var $this = $(this), + index = $this.index(); + + if ($this.hasClass('no-sub')) { + return; + } + + hoveredIndex = index; + + seniorHoverTime = setTimeout(function() { + hideSeniorPanel(); + }, 100); +}); + +//【高级选项】多选 +$('.senior-sub').on('click', '.multi-select', function() { + $(this).closest('.senior-sub').addClass('multi'); +}).on('click', '.multi-select-ok', function() { + var $btn = $(this), + $sub = $btn.closest('.senior-sub'), + val = []; + + if ($btn.hasClass('dis')) { + return; + } + + $sub.find('span.checked').each(function() { + val.push($(this).data('id')); + }); + + uriLoc($sub.data('attr'), val.join(',')); +}).on('mouseenter', function() { + clearTimeout(seniorHoverTime); +}).on('mouseleave', function() { + hideSeniorPanel(); +}); + +}); +define("js/product/sort-pager", ["jquery"], function(require, exports, module){ +/** + * 筛选页和列表页操作banner中的每页N个商品选择逻辑 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/4 + */ + +var $ = require("jquery"); + +var $countPerPage = $('#count-per-page'), + $countChose = $countPerPage.next('ul'); + +var SLIDETIME = 200; + +$(document).click(function(e) { + if ($(e.target).closest('.page-count').length > 0) { + return; + } + + $countChose && $countChose.slideUp(SLIDETIME); +}); + +$countPerPage.click(function() { + if ($countChose.css('display') === 'none') { + $countChose.slideDown(SLIDETIME); + } else { + $countChose.slideUp(SLIDETIME); + } +}); +}); +define("js/product/latest-walk", ["jquery","handlebars","source-map","lazyload"], function(require, exports, module){ +/** + * 最近浏览取接口渲染模板 + * @author: xuqi<qi.xu@yoho.cn> + 8 @date: 2016/1/20 + */ + +var $ = require("jquery"); +var Handlebars = require("handlebars"); +var lazyLoad = require("lazyload"); + +var $latestWalkCount = $('#latest-walk-count'); + +(function() { + var tpl; + + if ($latestWalkCount.length === 0) { + return; + } + + tpl = Handlebars.compile($('#latest-walk-tpl').html()); + + $.ajax({ + url: '//www.yohobuy.com/common/recentReview', + dataType: 'jsonp', + data: { + limit: $latestWalkCount.val() + }, + success: function(data) { + var latestWalk = [], + res, i, cur; + + if (data.code === 200) { + res = data.data; + + //若无最近浏览,请隐藏容器 + if (res.length === 0) { + $('.latest-walk').addClass('hide'); + return; + } + for (i = 0; i < res.length; i++) { + cur = res[i]; + + latestWalk.push({ + href: cur.url, + img: cur.pic_url, + name: cur.product_name, + salePrice: cur.price, + marketPrice: cur.market_price + }); + } + + if (latestWalk.length > 0) { + $('#latest-walk-goods').html(tpl({ + latestWalk: latestWalk + })); + + lazyLoad($('#latest-walk-goods .lazy')); + } + } + } + }); +}()); +}); +define("js/product/product", ["jquery","lazyload","handlebars","source-map"], function(require, exports, module){ +/** + *Description: 商品列表页 + *Author: chenglong.wang@yoho.cn + *Date: 2015/12/2 + */ + +var $ = require("jquery"), + lazyLoad = require("lazyload"), + Handlebars = require("handlebars"), + productEvent = require("js/common/product-event"); + +var $goodsContainer = $('.goods-container'), + $goodItem = $goodsContainer.find('.good-info'), + $goodItemWrapper = $goodsContainer.find('.good-item-wrapper'), + $goodInfoMain = $goodsContainer.find('.good-info-main'), + $goodSelectColor = $goodsContainer.find('.good-select-color'), + $productListNav = $('.product-list-nav'), + productList; + +lazyLoad($('img.lazy')); + +/** + * @description 初始化鼠标移入商品列表弹层效果 + * @num 每列存放商品的个数 + */ +exports.init = function(num) { + var $shopEntry = $('.shop-entry'), + $shopEntryArea = $('.shop-entry-area'), + shopEntryLen = $shopEntry.length; + + if (shopEntryLen > 1) { + + if (shopEntryLen === 3) { + $shopEntry.css({ + width: '32%' + }); + } else if (shopEntryLen % 2) { + + // 大于 2 ,并且是基数 + $('.shop-entry:gt(' + (shopEntryLen - 4) + ')').css({ + width: '32%' + }); + } + + $('.shop-entry:nth-child(2n+1)').css({ + marginLeft: 0 + }); + + $shopEntry.last().css({ + marginLeft: '2%' + }); + + if (shopEntryLen % 2 === 0) { + $shopEntry.find('.name').css({ + width: '50%' + }); + } else if (shopEntryLen % 3 === 0) { + $shopEntry.find('.name').css({ + width: '26%' + }); + } + + } else { + $shopEntry.css({ + width: '100%' + }); + } + + $shopEntryArea.slideDown(); + + productList = null; + + $goodItem.unbind(); + + productList = productEvent($goodItem, num); + + /** + * @description 构造商品颜色列表的html结构 + * @param data 商品颜色的数组,[url: '',src: ''] + * @return json {'colorListStr': '', 'ulNum': ''} + * */ + function createColorList(data, _from) { + var colorListStr = '', + len = data.length, + row = 4, //每列ul放4个li + col = Math.ceil(len / row), //需要几**列**ul + i, + j, + index, + ulNum = 0; + + for (i = 0; i < col; i++) { + colorListStr += '<ul>'; + for (j = 0; j < row; j++) { + index = i * row + j; + if (index === len) { + break; + } + colorListStr += + '<li>' + + '<a target="_blank" href="' + data[i * row + j].url + _from + '">' + + '<img src="' + data[i * row + j].src + '" data-cover="' + data[i * row + j].coverImg + '" />' + + '</a>' + + '</li>'; + + if (j === row - 1) { + colorListStr += '</ul>'; + ulNum++; + } + } + } + if (ulNum < col) { + colorListStr += '</ul>'; + } + return { + colorListStr: colorListStr, + ulNum: col + }; + } + + function removeHtmlFn() { + $goodInfoMain.html(''); + $goodSelectColor.html(''); + $goodItemWrapper.css({ + display: 'none' + }); + } + + productList.addHandler('MouseEnter', function(event) { + var itemMr = 10, //list的右边距 + itemMb = 35, //list的下边距 + ulStr = '', + ulNum, + wrapperWidth, + diffWidth, + wrapperX, + wrapperY, + wrapperPl, //鼠标移入时弹层的左内边距 + wrapperPt, //鼠标移入时弹层的上内边距 + containerPt, //商品列表容器的上内边距 + _from = event.target.attr('data-from') || ''; + + $.ajax({ + type: 'POST', + url: '/product/list/getProductPic', + dataType: 'jsonp', + jsonp: 'callback', + data: { + skn: event.target.attr('data-skn'), + skc: event.target.attr('data-skc') + } + }).then(function(res) { + var data = res.data, + colorList = createColorList(data.pics, _from); + + removeHtmlFn(); + + ulStr = colorList.colorListStr; //ajax请求的颜色列表 + ulNum = colorList.ulNum;//ajax请求的颜色的数量 + + $goodInfoMain.append(event.targetDuplicate); + $goodSelectColor.append($(ulStr)); + + // 点击收藏商品不需要了 + // if (data.isFavorite) { + // $goodInfoMain.find('.col-btn').addClass('coled'); + // } else { + // $goodInfoMain.find('.col-btn').removeClass('coled'); + // } + + wrapperPl = $goodItemWrapper.css('paddingLeft'); + wrapperPt = $goodItemWrapper.css('paddingTop'); + containerPt = $goodsContainer.css('paddingTop'); + + wrapperWidth = 10 + (15 + 50) * ulNum + event.targetWidth; + + //wrapperWidth = $goodItemWrapper.width(); + + wrapperX = (event.targetX - 1) * (event.targetWidth + itemMr) - (parseInt(wrapperPl) + 1); + wrapperY = (event.targetY - 1) * + (event.targetHeight + itemMb) + parseInt(containerPt) - (parseInt(wrapperPt) + 1); + + //todo + //event.offsetR表示当前列表距离浏览器右侧边缘的距离 + diffWidth = event.offsetR - ((15 + 50) * ulNum + 25); + + if (diffWidth <= 0) { + wrapperX = wrapperX + diffWidth - 25; + } + $goodItemWrapper.css({ + width: wrapperWidth, + left: wrapperX, + top: wrapperY, + display: 'inline-block' + }); + + // 鼠标悬浮获取到商品信息后显示第一张图片 + if (data.pics[0] && data.pics[0].src) { + $goodInfoMain.find('.good-thumb img').attr('src', data.pics[0].src); + } + }); + }); + + productList.addHandler('MouseLeave', function() { + removeHtmlFn(); + }); + + $goodItemWrapper.mouseleave(function() { + + removeHtmlFn(); + }); + +}; + +//鼠标放在颜色列表上效果 +$(document).on('hover', '.good-select-color li', function() { + var coverImg = $(this).find('img').attr('data-cover'), + $coverImg = $(this).closest('.good-item-wrapper').find('.good-detail-img').find('img'); + + $coverImg.attr('src', coverImg); +}); + +// 左侧导航 +$productListNav.find('h3').click(function(event) { + var $this = $(this).closest('.product-list-nav'); + + if ($this.hasClass('active')) { + + $this.find('.sort-child-list').stop(true, true).slideUp(); + + } else { + + $this.find('.sort-child-list').stop(true, true).slideDown(); + } + + $this.toggleClass('active'); +}); + +//左侧需要ajax内容 +(function() { + var $brandCard = $('#brand-card'); + var $brandFavor = $('#brand-favor'); + var html; + + if ($brandCard.length) { + $.ajax({ + type: 'POST', + url: '/product/index/getNodeContent', + data: { + node: $brandCard.data('node') + } + }).then(function(data) { + $brandCard.html(data); + }); + } + + //品牌页请求 + if ($brandFavor.length) { + html = $('#pic-link-tpl').html(); + + $.ajax({ + type: 'POST', + url: '/product/index/getAdnav', + data: { + brandId: $brandFavor.data('id') + } + }).then(function(data) { + if (data) { + $('#brand-ad').html(Handlebars.compile(html)({ + picLink: data + })); + } + }); + } +}()); + +}); +define("js/common/product-event", ["jquery"], function(require, exports, module){ +/** + *Description: 商品自定义事件 + *Author: chenglong.wang@yoho.cn + *Date: 2015/12/3 + */ + +var $ = require("jquery"); + +function ProductEvent() { + + this.handlers = {}; + +} + +ProductEvent.prototype = { + + constructor: ProductEvent, + + addHandler: function(type, handler) { + if (typeof this.handlers[type] === 'undefined') { + this.handlers[type] = []; + } + this.handlers[type].push(handler); + }, + + fire: function(event) { + var handlers, + i; + + if (!event.target) { + + event.target = this; + } + if (this.handlers[event.type] instanceof Array) { + handlers = this.handlers[event.type]; + for (i = 0; i < handlers.length; i++) { + handlers[i](event); + } + } + }, + + removeHandler: function(type, handler) { + var handlers, + i; + + if (this.handlers[type] instanceof Array) { + handlers = this.handlers[type]; + for (i = 0; i < handlers.length; i++) { + if (handlers[i] === handler) { + break; + } + } + handlers.splice(i, 1); + } + } +}; + +module.exports = function($o, rowWidth) { + + var pMouseHover = new ProductEvent(); + + var targetWidth = $o.eq(0).width(), + targetHeight = $o.eq(0).height(), + winW = $(window).width(); + + var delayFunc, + loadInfo; + + function handleEvent(event) { + var $target, + targetX = 0, + targetY = 0, + rowW = rowWidth, + activeIndex = 0, + $targetDuplicate = '', + offsetL = 0, + offsetR = 0; + + + switch (event.type) { + case 'mouseenter': + $target = $(this); + + delayFunc = setTimeout(function() { + loadInfo = true; + $targetDuplicate = $target.clone(); + activeIndex = $target.index() + 1; + targetX = (activeIndex % rowW) === 0 ? rowW : activeIndex % rowW; + targetY = Math.ceil(activeIndex / rowW); + offsetL = $target.offset().left; + offsetR = winW - (offsetL + targetWidth); + + pMouseHover.fire({ + type: 'MouseEnter', + target: $target, + targetWidth: targetWidth, + targetHeight: targetHeight, + targetX: targetX, + targetY: targetY, + rowWidth: rowW, + activeIndex: activeIndex, + targetDuplicate: $targetDuplicate, + offsetL: offsetL, + offsetR: offsetR + }); + }, 150); + break; + case 'mouseleave': + if (!loadInfo) { + if (delayFunc) { + clearTimeout(delayFunc); + } + pMouseHover.fire({ + type: 'MouseLeave' + }); + } + loadInfo = false; + break; + } + } + + $o.bind({ + mouseenter: handleEvent, + mouseleave: handleEvent + }); + + return pMouseHover; +}; +}); +define("js/product/brand", ["jquery"], function(require, exports, module){ +/** + * 品牌页面 + * @auhtor: bikai<kai.bi@yoho.cn> + * @date: 2016/1/21 + */ + +var $ = require("jquery"); + +var $brandFavor = $('#brand-favor'), + id = $brandFavor.data('id'); + +$brandFavor.on('click', function() { + $.ajax({ + type: 'post', + url: '/product/index/favoriteBrand', + data: { + brandId: id + } + }).then(function(res) { + if (res.code === 200) { + $brandFavor.find('i').toggleClass('coled'); + } else if (res.code === 403) { + location.href = '//www.yohobuy.com/signin.html?refer=' + encodeURIComponent(location.href); + } + }); +}); + +//页面进入更新收藏状态 +$.ajax({ + type: 'POST', + url: '/product/index/isFavoriteBrand', + data: { + brandId: id + } +}).then(function(data) { + if (data.code === 200) { + + //已收藏 + $brandFavor.find('i').addClass('coled'); + } else if (data.code === 404) { + + //未收藏 + $brandFavor.find('i').removeClass('coled'); + } +}); + +}); +define("js/product/hotrank", ["jquery","handlebars","source-map","lazyload"], function(require, exports, module){ +/** + * 首页 + * @author: liuyue<yue.liu@yoho.cn> + * @date: 2015/12/17 + */ + +var $ = require("jquery"), + Handlebars = require("handlebars"), + lazyLoad = require("lazyload"); + +require("js/common/slider"); +require("js/common/logo-brand"); + +lazyLoad($('img.lazy')); +$('.slide-container').slider(); +$('.logo-brand').logoBrand({ + showNum: 10, + url: $('.logo-brand').data('url') +}); + +/* + * 一周热卖 + */ +(function($) { + var floatlayer = $('.hot-week').find('.floatlayer'), + sid = $('.hot-cate').find('li').eq(0).data('sid'), + weekOffsetTop, + source, + template, + page = 1, + hotCateW = 0, + weekEnd = false; + + source = '\{{# list}}' + + '<div class="good-info">' + + '<div class="item-img">' + + '<a class="good-thumb" target="_blank" href="\{{url}}">' + + '<img class="lazy" data-original="\{{thumb}}">' + + '</a>' + + '</div>' + + '<div class="good-detail-text">' + + '<a target="_blank" href="{{url}}">{{name}}</a>' + + '<p class="price">' + + '{{# marketPrice}}<span class="market-price">¥{{.}}</span>{{/ marketPrice}} ' + + '<span class="sale-price{{#unless marketPrice}}prime-cost{{/unless}}">' + + '¥{{salePrice}}</span>' + + '</p>' + + '</div>' + + '</div>' + + '{{/ list}}'; + + //监听滚动事件,控制浮层样式及下拉加载更多 + $(window).on('scroll', function() { + var maxH = weekOffsetTop + $('.hot-week').outerHeight(), + sid; + + //热卖右侧浮动导航位置 + weekOffsetTop = $('.hot-week').offset().top; + if ($(this).scrollTop() >= weekOffsetTop - $(window).height() / 2) { + if (floatlayer.offset().top + floatlayer.outerHeight() >= maxH) { + floatlayer.css({ + position: 'absolute', + marginTop: 0, + top: $('.hot-week').outerHeight() - floatlayer.outerHeight() + }); + } else { + floatlayer.css({ + marginTop: -floatlayer.height() / 2 + }).stop().animate({ + opacity: 1 + }, 200, function() { + floatlayer.show(); + }); + } + + } else { + floatlayer.stop().animate({ + opacity: 0 + }, 200, function() { + floatlayer.hide(); + }); + } + + if (floatlayer.offset().top >= $(this).scrollTop() + ($(window).height() - floatlayer.outerHeight()) / 2) { + floatlayer.css({ + position: 'fixed', + marginTop: -floatlayer.height() / 2, + top: '50%' + }); + } + + //下拉加载 + if ($(this).scrollTop() >= weekOffsetTop + $('.hot-week').height() - $(window).height()) { + if (!weekEnd) { + sid = $('.hot-cate').find('li.current').data('sid'); + page++; + weekEnd = true; //防止多次请求 + weekAjax(sid, page); + } + } + + }); + + //热卖横导航及竖导航的超出显示控制 + $('.hot-cate').find('li').each(function(i) { + var maxW = $('.hot-cate').width(); + + if (hotCateW <= maxW) { + hotCateW = hotCateW + $(this).width(); + if (hotCateW >= maxW) { + $('.floatlayer').find('li').eq(i).hide().nextAll().hide(); + } + } + + }); + + //热卖横导航点击事件处理 + $('.hot-cate').on('click', 'li', function() { + var nowIndex = $(this).index(), + sid = $(this).data('sid'); + + if ($(this).hasClass('current')) { + return; + } + + //处理current样式 + $(this).addClass('current').siblings().removeClass('current'); + $('.floatlayer').find('li').removeClass('current').eq(nowIndex).addClass('current'); + + //返回热卖顶部,110为floor-header所占高度 + $('body,html').stop().animate({ + scrollTop: weekOffsetTop - 110 + }, 500); + + //调用ajax请求函数,重置page,weekEnd + weekAjax(sid); + page = 1; + }); + + //热卖右侧悬浮导航点击事件处理 + $('.floatlayer').on('click', 'li', function() { + var nowIndex = $(this).index(); + + if ($(this).hasClass('current')) { + return; + } + + $('.hot-cate').find('li').eq(nowIndex).trigger('click'); + + //处理current样式 + $(this).addClass('current').siblings().removeClass('current'); + $('.hot-cate').find('li').removeClass('current').eq(nowIndex).addClass('current'); + }); + + /* + * 热卖内容ajax请求 + * param: sid(ajax请求的id), page(ajax请求的页码) + */ + function weekAjax(sid, page) { + var param = {}; + + if (page) { + param = { + sid: sid, + page: page + }; + } else { + param = { + sid: sid + }; + } + $.ajax({ + type: 'GET', + dataType: 'json', + url: '/product/index/getdata', + data: param, + success: function(res) { + var data; + + if (res.code === 200) { + data = { + list: res.data + }; + + //mustache渲染数据,并替换原内容 + template = Handlebars.compile(source); + if (page) { + $('.hot-week-list').append(template(data)); + floatlayer.css({ + position: 'fixed', + marginTop: -floatlayer.height() / 2, + top: '50%' + }); + } else { + $('.hot-week-list').html(template(data)); + } + + lazyLoad($('img.lazy')); + weekEnd = false; + } + } + }); + } + + //热卖中导航current类处理 + $('.hot-cate').find('li').eq(0).addClass('current'); + $('.floatlayer').find('li').eq(0).addClass('current'); +})($); + +}); +define("js/common/slider", ["jquery","lazyload"], function(require, exports, module){ +/** + * 首页banner轮播 + * @author: liuyue(yue.liu@yoho.cn) + * @date: 2015/12/04 + */ + +var $ = require("jquery"), + lazyLoad = require("lazyload"); + +(function($) { + var Slider = function(element, options) { + this.$element = $(element); + this.options = $.extend({}, $.fn.slider.defaults, options); + this.bigItem = this.$element.find('.slide-wrapper').find('li'); + this.smallItem = null; + this.len = this.bigItem.size(); + this.index = 0; + this.timer = null; + this.init(); + }; + + Slider.prototype = { + init: function() { + if (!this.$element) { + return; + } + + if (this.len <= 1) { + lazyLoad(this.$element.find('img.lazy')); + return; + } + if (!!this.options.pagination) { + this.smallItem = $(this.options.pagination).find('li'); + } else { + this._createPage(); + } + + if (this.options.orient) { + this._createOrient(); + } + this._slideShow(); + this._bindEvent(); + this._autoplay(); + }, + _createOrient: function() { + + var orientHtml = '<div class="slide-switch">' + + '<a class="prev" href="javascript:;"><span class="iconfont"></span></a>' + + '<a class="next" href="javascript:;"><span class="iconfont"></span></a>' + + '</div>'; + + if (this.$element.find('.slide-switch').length > 0) { + return; + } + + this.$element.append(orientHtml); + }, + _createPage: function() { + var pageHtml = '<div class="slide-pagination"><div class="slide-pagination-inner">' + + '<div class="slide-shade"></div><div class="slide-pagination-last">', + i = 0; + + if (this.len <= 1) { + return; + } + for (i = 0; i < this.len; i++) { + pageHtml += '<span></span>'; + } + pageHtml += '</div></div></div>'; + this.$element.append($(pageHtml)); + this.smallItem = this.$element.find('.slide-pagination-inner span'); + }, + _bindEvent: function() { + var that = this; + + this.$element.find('.slide-switch').on('click', '.next', function() { + that._nextSlide(); + clearInterval(that.timer); + that.timer = setInterval(function() { + that._nextSlide(); + }, that.options.time); + }).on('click', '.prev', function() { + that._prevSlide(); + clearInterval(that.timer); + that.timer = setInterval(function() { + that._nextSlide(); + }, that.options.time); + }); + + this.smallItem.on('mouseenter', function() { + that.index = $(this).index(); + clearInterval(that.timer); + that._slideShow(); + }).on('mouseleave', function() { + that._autoplay(); + }); + + this.$element.on('mouseenter', function() { + $(this).find('.slide-switch').addClass('show'); + }).on('mouseleave', function() { + $(this).find('.slide-switch').removeClass('show'); + }); + }, + _nextSlide: function() { + if (this.index === this.len - 1) { + this.index = 0; + } else { + this.index++; + } + this._slideShow(); + }, + _prevSlide: function() { + if (this.index === 0) { + this.index = this.len - 1; + } else { + this.index--; + } + this._slideShow(); + }, + _slideShow: function() { + var $img = this.bigItem.eq(this.index).find('img.lazy'); + + //未加载图片的及时显示 + if ($img.attr('src') !== $img.data('original')) { + lazyLoad($img, { + event: 'sporty' + }); + $img.trigger('sporty'); + } + + this.smallItem.eq(this.index).addClass('focus').siblings().removeClass('focus'); + this.bigItem.eq(this.index).show().stop().animate({ + opacity: 1 + }, function() { + + //修正IE下切换时文字会重叠的问题 + $(this).find('.slide-tips > p').removeClass('hide'); + }).siblings().stop().animate({ + opacity: 0 + }, function() { + $(this).hide().find('.slide-tips > p').addClass('hide'); + }); + }, + _autoplay: function() { + var that = this; + + clearInterval(this.timer); + this.timer = setInterval(function() { + that._nextSlide(); + }, this.options.time); + } + }; + $.fn.slider = function(option) { + return this.each(function() { + var $this = $(this), + data = $this.data('Slider'), + options = typeof option === 'object' && option; + + if (!data) { + $this.data('Slider', (data = new Slider(this, options))); + } + if (typeof option === 'string') { + data[option](); + } + }); + }; + $.fn.slider.Constructor = Slider; + $.fn.slider.defaults = { + time: 5000, + orient: true, //左右切换箭头的显示 + pagination: null + }; +})($); +}); +define("js/common/logo-brand", ["jquery","handlebars","source-map","lazyload"], function(require, exports, module){ +/** + * 首页优选品牌js + * @author: liuyue(yue.liu@yoho.cn) + * @date: 2015/12/08 + */ + +var $ = require("jquery"), + Handlebars = require("handlebars"), + lazyLoad = require("lazyload"); + +(function($) { + var LogoBrand = function(element, options) { + this.$element = $(element); + this.options = $.extend({}, $.fn.logoBrand.defaults, options); + + this.init(); + }; + + LogoBrand.prototype = { + init: function() { + this.$element.addClass('logos-' + this.options.showNum); + this._sendRequest(); + }, + _createHelper: function() { + var showNum = this.options.showNum; + + Handlebars.registerHelper('brandList', function(items, options) { + var out = '<ul>', + i = 0, + item = null, + fillNum = 0; + + //不是每页显示个数的倍数,填充数据 + if (items.length % showNum !== 0) { + fillNum = showNum - (items.length % showNum); + for (i = 0; i < fillNum; i++) { + items.push({ + href: 'javascript:;', + img: '' + }); + } + } + + for (i = 0; i < items.length; i++) { + item = options.fn(items[i]); + + if (i % showNum === 5 || i === 5) { + + //插入切换按钮的位置 + out = out + '<li class="logo-brand-switch" data-page="' + Math.floor(i / showNum) + '">' + + '<a class="prev iconfont" href="javascript:;"></a>' + + '<a class="next iconfont" href="javascript:;"></a></li>' + + '<li data-page="' + Math.floor(i / showNum) + '">' + item + '</li>'; + } else if (i !== 0 && i % showNum === 0) { + + //插入more的位置,more占的是下一页第一个brand的位置,所以page是i/17 + out = out + '<li class="brand-more" data-page="' + Math.floor(i / (showNum + 1)) + '">' + + '<a href="javascript:;" target="_blank">MORE ></a></li>' + + '<li data-page="' + Math.floor(i / showNum) + '">' + item + '</li>'; + } else { + out = out + '<li data-page="' + Math.floor(i / showNum) + '">' + item + '</li>'; + } + } + + //加上最后一个more, more占的是下一页第一个brand的位置,这里已经循环不到brand,所以加在末尾 + return out + '<li class="brand-more" data-page="' + Math.floor(i / (showNum + 1)) + '">' + + '<a href="javascript:;" target="_blank">MORE ></a></li></ul>'; + + }); + }, + _sendRequest: function() { + var that = this; + + $.ajax({ + type: 'GET', + url: that.options.url, + dataType: 'json', + success: function(data) { + var brandTpl, + brandHtml; + + if (!data || data.length === 0) { + return; + } + + that._createHelper(); + brandHtml = '\{{#brandList logoBrand}}' + + '<a href="\{{href}}" target="_blank"><img class="lazy" data-original="\{{img}}" alt=""></a>' + + '\{{/brandList}}'; + brandTpl = Handlebars.compile(brandHtml); + that.$element.html(brandTpl(data)); + that.$element.find('.brand-more a').attr('href', data.moreBrand); + lazyLoad(that.$element.find('img.lazy')); + that._bindEvent(); + } + }); + }, + _brandShow: function(hidePage, showPage) { + var that = this; + + lazyLoad($('li[data-page=' + showPage + ']').find('img.lazy').trigger('appear')); + that.$element.find('li[data-page=' + hidePage + ']').find('img').fadeOut('normal', function() { + that.$element.find('li').hide(); + that.$element.find('li[data-page=' + showPage + ']').show().find('img').fadeIn(); + }); + }, + _bindEvent: function() { + var that = this; + + that.$element.on('click', '.next', function() { + var page = $(this).parent().data('page'), + nextPage = 0, + totalPage = Math.ceil(that.$element.find('li').size() / (that.options.showNum + 2)) - 1; + + if (page === totalPage) { + nextPage = 0; + } else { + nextPage = page + 1; + } + that._brandShow(page, nextPage); + }); + + that.$element.on('click', '.prev', function() { + var page = $(this).parent().data('page'), + prevPage = 0, + totalPage = Math.ceil(that.$element.find('li').size() / (that.options.showNum + 2)) - 1; + + if (page === 0) { + prevPage = totalPage; + } else { + prevPage = page - 1; + } + that._brandShow(page, prevPage); + }); + } + }; + $.fn.logoBrand = function(option) { + return this.each(function() { + var $this = $(this), + data = $this.data('LogoBrand'), + options = typeof option === 'object' && option; + + if (!data) { + $this.data('LogoBrand', (data = new LogoBrand(this, options))); + } + if (typeof option === 'string') { + data[option](); + } + }); + }; + $.fn.logoBrand.Constructor = LogoBrand; + $.fn.logoBrand.defaults = { + showNum: 16, + url: '/boys/getBrand' + }; +})($); +}); +define("js/product/item", ["jquery","lazyload","handlebars","source-map","index"], function(require, exports, module){ +/** + * 商品详情页 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/23 + */ + +var $ = require("jquery"), + lazyLoad = require("lazyload"), + Handlebars = require("handlebars"), + JSON2 = require("index"); + +var $imgShow = $('#img-show'), + $thumbs = $('#thumbs > .thumb-wrap'); + +var $size = $('#sizes'), + $sizes = $size.children('.size'), + $sizeWarn = $size.find('.size-warn'), + $colorSizeTip = $size.children('.color-size-tip'); + +var $num = $('#num'), + $plusNum = $('#plus-num'), + $minusNum = $('#minus-num'); + +var $addToCart = $('#add-to-cart'), + $soldOut = $('#sold-out'); + +var $lcContainer = $('.lc-container'), + $itemBuy = $('.item-buy'); + +var $descColor = $('#desc-color'); + +var thumbsLoaded = {}; + +var $main = $('.main'), + id = $main.data('id'); + +var maxStock = -1; //记录当前选中的颜色-尺码的库存量,若为-1,代表未选择尺码 + +var SLIDETIME = 200; + +var colTxt = { + def: '收藏商品', + coled: '已收藏', + hover: '取消收藏' +}; + +var Alert = require("js/common/dialog").Alert; + +require("js/product/latest-walk"); + +require("js/common/share"); + +function imgShow(src) { + $imgShow.attr('src', src); +} + +/** + * 获取当前选择的商品数目 + * @return [Number] + */ +function getNum() { + return +$num.text(); +} + +//重置Num显示为1 +function resetNum() { + $num.text('1'); + + //+-按钮状态重置 + if (maxStock === 1 || maxStock === 0) { + + //数目为1/0时 + $plusNum.addClass('dis'); + $minusNum.addClass('dis'); + } else { + $plusNum.removeClass('dis'); + $minusNum.addClass('dis'); + } +} + +//加入购物车和已售罄状态控制 +function switchBtnStatus($color) { + if ($itemBuy.length === 0) { + + //全部售罄,按钮状态不变 + return; + } + + //选中的商品存量为0或者某个颜色的total为0 + if (maxStock === 0 || ($color && ~~$color.data('total') === 0)) { + $itemBuy.addClass('hide'); //隐藏加入购物车、即将开始、立即购买等相同位置的按钮 + $soldOut.removeClass('hide'); + } else { + + //包括默认的-1情况下 + $itemBuy.removeClass('hide'); + $soldOut.addClass('hide'); + } +} + +//size warn +function showSizeWarn() { + $sizes.not('.hide').children('.size-warn').removeClass('hide'); +} + +//size title +(function() { + var $sizeTitleJson = $('#size-title-json'), + jsonHtml = $sizeTitleJson.html(), + sizeTitle; + + if (jsonHtml === '') { + return; + } + + sizeTitle = JSON2.parse(jsonHtml); + + //数据获取后删除 + $sizeTitleJson.remove(); + + $sizes.children('li').each(function() { + var $this = $(this), + key = $this.data('name'); + + $this.data('title', sizeTitle[key]); + }); +}()); + +//初始化thumbsLoaded +thumbsLoaded[$('.colors .focus').index()] = true; + +//品牌收藏 +$('#brand-favour').click(function() { + var $this = $(this); + + $.ajax({ + type: 'POST', + url: '/product/index/favoriteBrand', + data: { + brandId: $this.data('id') + } + }).then(function(data) { + if (data.code === 200) { + $this.toggleClass('coled'); + } else if (data.code === 403) { + location.href = data.data.url; + } + }); +}); + +//颜色 +$('.colors').on('click', 'li', function() { + var $this = $(this), + index = $this.index(); + + var $imgs; + + //初始化color-size显示或隐藏 + $colorSizeTip.addClass('hide'); + + //隐藏尺码提示 + $sizeWarn.addClass('hide'); + + maxStock = -1; + + if ($this.hasClass('focus')) { + + //已获取焦点的颜色再次点击,清除尺码的选中 + $sizes.eq(index).children('li').removeClass('focus'); + } else { + + //未获取焦点,选择尺码 + $this.siblings('.focus').removeClass('focus'); + $this.addClass('focus'); + + //切换图片显示 + $thumbs.not('.hide').addClass('hide'); + $imgs = $thumbs.eq(index).removeClass('hide').find('img'); + + if (typeof thumbsLoaded[index] === 'undefined') { + + //trigger layLoad + lazyLoad($imgs, { + event: 'sporty' + }); + + $imgs.trigger('sporty'); + + thumbsLoaded[index] = true; + } + + imgShow($imgs.first().data('shower')); + + //切换详细信息的颜色显示 + $descColor.text($this.data('color')); + + //切换尺码显示 + $sizes.not('.hide').addClass('hide').children('li').removeClass('focus'); + $sizes.eq(index).removeClass('hide'); + } + + resetNum(); + switchBtnStatus($this); +}); + +//缩略图鼠标移入显示 +$('#thumbs').on('mouseenter', '.thumb', function() { + imgShow($(this).data('shower')); +}); + +//尺码 +$size.on('click', 'li', function() { + var $this = $(this); + + if ($this.hasClass('focus')) { + return; + } + + maxStock = +$this.data('num'); + + $this.siblings('.focus').removeClass('focus'); + $this.addClass('focus'); + + $colorSizeTip.html($this.data('title')).removeClass('hide'); + + $sizeWarn.addClass('hide'); + + switchBtnStatus(); + + resetNum(); +}).on('click', '.size-ruler', function() { + + //尺码帮助 + + $('body,html').animate({ + scrollTop: $('.size-info').offset().top + }, 300); +}); + +//数量 +$plusNum.click(function() { + var num = getNum(); + + if ($(this).hasClass('dis')) { + return; + } + + if (maxStock === -1) { + showSizeWarn();//显示选择尺码提示 + return; + } + + //已售罄 + if (maxStock === 0) { + return; + } + + if (num === maxStock - 1) { + + //+按钮不可点 + $(this).addClass('dis'); + } + + //数目为1时点+则移除-不可点状态 + if (num === 1) { + $minusNum.removeClass('dis'); + } + + $num.text(num + 1 > maxStock ? maxStock : num + 1); +}).on('selectstart', function() { + return false; +}); + +$minusNum.click(function() { + var num = getNum(); + + if ($(this).hasClass('dis')) { + return; + } + + if (num === 2) { + $(this).addClass('dis'); + } + + if (num === maxStock) { + + //恢复+可点 + $plusNum.removeClass('dis'); + } + + $num.text(num - 1 < 0 ? 0 : num - 1); +}).on('selectstart', function() { + return false; +}); + +//限购码 +$('.get-lc:not(.dis)').hover(function() { + $lcContainer.removeClass('hide'); +}, function() { + $lcContainer.addClass('hide'); +}); + +//加入购物车 +$addToCart.click(function() { + if (maxStock === -1) { + showSizeWarn(); + return; + } + + $.ajax({ + type: 'POST', + url: '/cart/index/add', + data: { + productSku: $('.size:not(.hide) li.focus').data('sku'), + buyNumber: getNum() + } + }).then(function(data) { + var code = data.code; + + if (code === 200) { + $('#type-chose').slideUp(SLIDETIME); + $('#balance').slideDown(SLIDETIME); + + $('#cart-num').text(data.data.goods_count); //更新数目 + } + }); +}); + +//收藏 +$('#collect-product').click(function() { + var $this = $(this), + cancel; + + if ($this.hasClass('coled')) { + cancel = true; + } + + $.ajax({ + type: 'POST', + url: '/product/item/togglecollect', + data: { + productId: id, + type: cancel ? 'cancel' : 'add' + } + }).then(function(data) { + var code = data.code; + + if (code === 200) { + + $this.toggleClass('coled'); + + if (cancel) { + $this.find('em').text(colTxt.def); + } else { + $this.find('em').text(colTxt.coled); + } + } else if (code === 403) { + location.href = data.data.url; + } + }); +}).hover(function() { + var $this = $(this); + + if ($this.hasClass('coled')) { + $this.find('em').text(colTxt.hover); + } +}, function() { + var $this = $(this); + + if ($this.hasClass('coled')) { + $this.find('em').text(colTxt.coled); + } +}); + +//继续购物 +$('#keep-shopping').click(function() { + $('#type-chose').slideDown(SLIDETIME); + $('#balance').slideUp(SLIDETIME); +}); + +//立即购买 +$('#buy-now').click(function() { + var sku, + base, + myAlert; + + if (maxStock === -1) { + showSizeWarn(); + return; + } + + if ($(this).hasClass('dis')) { + return; + } + + base = $(this).data('base'); + + //潮流尖货 + if (!base) { + myAlert = new Alert('打开APP可抢购该商品哦~~'); + myAlert.show(); + return; + } + + sku = $sizes.find('.focus').data('sku'); + + if (sku && base) { + location.href = base + '?product_sku=' + sku; + } +}); + +//按钮鼠标移入效果【dis状态的按钮状态不变】 +$('.buy-btn').mouseover(function() { + if ($(this).hasClass('dis')) { + return; + } + + $(this).addClass('hover'); +}).mouseleave(function() { + $(this).removeClass('hover'); +}); + +//商品详情/材质洗涤切换 +$('.description-material').on('click', '.title', function() { + var $this = $(this), + index = $this.index(); + + var $description = $('.description-content'), + $material = $('.material-content'); + + if ($this.hasClass('cur')) { + return; + } + + $this.addClass('cur'); + $this.siblings('.cur').removeClass('cur'); + + if (index === 0) { + + //商品信息 + $description.slideDown(SLIDETIME); + $material.slideUp(SLIDETIME); + } else { + $description.slideUp(SLIDETIME); + $material.slideDown(SLIDETIME); + } +}); + +//售后服务 +$('.after-service-switch').click(function() { + var $this = $(this), + $content = $this.next('.after-service-content'); + + var html = { + def: '', + spread: '' + }; + + if ($content.css('display') === 'none') { + $content.slideDown(SLIDETIME); + + $this.find('.triangle').html(html.spread); + } else { + $content.slideUp(SLIDETIME); + + $this.find('.triangle').html(html.def); + } +}); + + +//商品详情区的热点 +$.ajax({ + type: 'GET', + url: '/product/item/hotarea', + data: { + productId: id + } +}).then(function(html) { + $('#details-html').prepend(html); + + //修正热区尺寸使居中 + $('.hot-point-wrap > img').load(function() { + $(this).parent('.hot-point-wrap').width($(this).width()); + }); + + //Bind Hover event + $('.hot-point').hover(function() { + $(this).addClass('hover'); + }, function() { + $(this).removeClass('hover'); + }); +}); + +//商品详情懒加载 +lazyLoad($('#details-html img')); + +//只有一个尺码(多个或一个颜色)时默认选中第一个未售罄的颜色的第一个尺码 +(function() { + var hasOnlyOneSize = true, + i; + + for (i = 0; i < $sizes.length; i++) { + if ($sizes.eq(i).find('li').length !== 1) { + hasOnlyOneSize = false; + break; + } + } + + if (hasOnlyOneSize) { + $sizes.eq($('.colors .focus').index()).find('li').click(); + } +}()); + +//咨询和评价 +(function() { + var commentPage = 1, + consultPage = 1; + + var commentsTpl = Handlebars.compile($('#comments-tpl').html()), + consultsTpl = Handlebars.compile($('#consults-tpl').html()); + + var $commentsUl = $('#comments-ul'), + $consultsUl = $('#consults-ul'); + + var $commentNum = $('.comment-num'), + $consultNum = $('.consult-num'); + + var loadingComments, + loadingConsults; + + //购买评价 + function loadComments() { + if (loadingComments) { + return; + } + + loadingComments = true; + $.ajax({ + type: 'GET', + url: '/product/item/comments', + data: { + productId: id, + page: commentPage + } + }).then(function(data) { + var res; + + if (data.code === 200) { + res = data.data; + + if (res.length === 0) { + $commentsUl.next('.more-wrap').addClass('hide'); + return; + } + + //更新总数显示 + $commentNum.text(res[0].total); + + $commentsUl.append(commentsTpl({ + comments: res + })); + commentPage++; + } + }).always(function() { + loadingComments = false; + }); + } + + //顾客咨询 + function loadConsults() { + if (loadingConsults) { + return; + } + + loadingConsults = true; + + $.ajax({ + type: 'GET', + url: '/product/item/consults', + data: { + productId: id, + page: consultPage + } + }).then(function(data) { + var res; + + if (data.code === 200) { + res = data.data; + + if (res.length === 0) { + $consultsUl.next('.more-wrap').addClass('hide'); + return; + } + + //更新总数显示 + $consultNum.text(res[0].total); + + $consultsUl.append(consultsTpl({ + consults: res + })); + consultPage++; + } + }).always(function() { + loadingConsults = false; + }); + } + + //评价和咨询切换 + $('.consult-comment').on('click', '.title', function() { + var $this = $(this), + index = $this.index(); + + var $comments = $('.comments'), + $consults = $('.consults'); + + if ($this.hasClass('cur')) { + return; + } + + $this.addClass('cur'); + $this.siblings('.cur').removeClass('cur'); + + if (index === 0) { + + //咨询 + $consults.slideDown(SLIDETIME); + $comments.slideUp(SLIDETIME); + } else { + $consults.slideUp(SLIDETIME); + $comments.slideDown(SLIDETIME); + } + }).on('click', '.load-more', function() { + var $this = $(this); + + if ($this.hasClass('load-more-comments')) { + loadComments(); + } else { + loadConsults(); + } + }); + + //我要咨询 + $('#consults-btn').click(function() { + + //TODO:点击我要资讯的时候更新验证码显示 + $('.new-consult').removeClass('hide'); + $('.consult-success').addClass('hide'); + }); + + //提交咨询 + $('#submit-consult').click(function() { + var $this = $(this), + $parent = $this.closest('.new-consult'), + $textarea = $parent.find('.my-consult'), + content = $.trim($textarea.val()); + + var $consultWarn = $parent.find('.consult-warn'); + + var pass = true; + + if (content === '') { + $textarea.addClass('error'); + $consultWarn.removeClass('hide'); + + pass = false; + } else { + $textarea.removeClass('error'); + $consultWarn.addClass('hide'); + } + + if (pass === false) { + return; + } + + $.ajax({ + type: 'POST', + url: '/product/item/addconsult', + data: { + productId: id, + content: content + } + }).then(function(data) { + var code = data.code; + + if (code === 200) { + $parent.addClass('hide'); + + $parent.siblings('.consult-success').removeClass('hide'); + + //清空输入 + $textarea.val(''); + } else if (code === 403) { + + //跳转登录页 + location.href = data.data.url; + } + }); + }); + + loadComments(); + loadConsults(); +}()); +}); +define("js/common/dialog", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 弹框公共组件 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2016/2/24 + */ + +var $ = require("jquery"), + Handlebars = require("handlebars"); + +var defaultOptions = { + mask: true, + closeIcon: true, + refreshOnClose: false +}; + +var tpl = + '<div class="yoho-dialog {{className}} hide">' + + '{{#if closeIcon}}' + + '<span class="close">' + + '<i class="iconfont"></i>' + + '</span>' + + '{{/if}}' + + '<div class="content">' + + '{{{content}}}' + + '</div>' + + '<div class="btns">' + + '{{# btns}}' + + '<span {{#if id}}id="dialog-{{id}}"{{/if}} class="btn{{#each btnClass}} {{.}}{{/each}}">' + + '{{name}}' + + '</span>' + + '{{/ btns}}' + + '</div>' + + '</div>'; + +var tplFn = Handlebars.compile(tpl); + +//背景蒙版 +function createMask() { + if ($('.body-mask').length === 0) { + $('body').append('<div class="body-mask hide"></div>'); + } + + return $('.body-mask').css({ + height: $(document).height(), + width: $(document).width() + }); +} + +function createDialog(data) { + $('body').append(tplFn(data)); + + return $('.yoho-dialog'); +} + +function cerateSubContent(text) { + var $yohoDialog = $('.yoho-dialog'), + subContent = '<p class="sub-content">' + text + '</p>'; + + if ($yohoDialog && $yohoDialog.length > 0) { + $yohoDialog.find('.content').after(subContent); + } +} + +function Dialog(options) { + var opt = $.extend({}, defaultOptions, options); + var that = this, + i; + + //实现继承时,只返回实例,不生成html + if (opt.inherit) { + return this; + } + + if (opt.mask) { + that.$mask = createMask(); + } + + that.$el = createDialog(opt); + + + if (opt.subContent) { + cerateSubContent(opt.subContent); + } + + if (opt.subContents) { + for (i = opt.subContents.length - 1; i >= 0; i--) { + cerateSubContent(opt.subContents[i]); + } + } + + //绑定x关闭事件 + that.$el.find('.close').click(function() { + that.close(); + if (options.refreshOnClose) { + window.location.reload(); + } + }); + + //绑定btn关闭事件 + that.$el.find('.btn-close').click(function() { + that.close(); + }); + + function bindBtnEvt(index) { + that.$el.find('#dialog-' + opt.btns[index].id).on('click', function() { + opt.btns[index].cb && opt.btns[index].cb(); + }); + } + + //绑定按钮事件 + if (!!opt.btns) { + for (i = 0; i < opt.btns.length; i++) { + bindBtnEvt(i); + } + } +} + +Dialog.prototype.close = function() { + this.$mask && this.$mask.addClass('hide'); + this.$el.remove(); +}; + +Dialog.prototype.show = function() { + this.$mask && this.$mask.removeClass('hide'); + this.$el.removeClass('hide').css({ + 'margin-top': -this.$el.height() / 2, + 'margin-left': -this.$el.width() / 2 + }); +}; + +exports.Dialog = Dialog; + +//Alert +function Alert(content) { + var that = this; + var option = { + content: content, + className: 'alert-dialog', + btns: [ + { + id: 'alert-sure', + btnClass: ['alert-sure'], + name: '确定', + cb: function() { + that.close(); + } + } + ] + }; + + Dialog.call(this, option); +} + +Alert.prototype = new Dialog({ + inherit: true +}); +Alert.prototype.constructor = Alert; +exports.Alert = Alert; + +//Confirm +function Confirm(opt) { + var that = this; + + var option = { + content: opt.content, + className: 'confirm-dialog', + btns: [ + { + id: 'confirm-sure', + btnClass: ['confirm-sure'], + name: '确定', + cb: opt.cb + }, + { + id: 'confirm-cancel', + btnClass: ['confirm-cancel'], + name: '取消', + cb: function() { + that.close(); + } + } + ] + }; + + Dialog.call(this, option); +} + +Confirm.prototype = new Dialog({ + inherit: true +}); +Confirm.prototype.constructor = Confirm; +exports.Confirm = Confirm; + +}); +define("js/common/share", ["jquery"], function(require, exports, module){ +/** + * 分享 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2016/3/1 + */ + +var $ = require("jquery"); + +function shareBase(options) { + var openUrl = ''; + var defOption = { + title: '', + url: window.location.href, + weixinUrl: '', + image: '', + desc: '', + channel: '' + }; + var shareChannels = ['weibo', 'tweibo', 'qzone', 'renren', 'qq', 'douban','weixin']; + var sharebox; + var shareCon = '<em><i></i></em>'; + + defOption = $.extend(defOption, options); + + if ($.inArray(defOption.channel, shareChannels) === -1) { + alert('不存在的分享平台!'); + return false; + } + + switch (defOption.channel) { + case 'weibo': + openUrl = 'http://service.weibo.com/share/share.php?url=' + defOption.url + '&title=' + + defOption.title + '&appkey=3739328910&searchPic=true&pic=' + defOption.image; + break; + case 'tweibo': + openUrl = 'http://share.v.t.qq.com/index.php?c=share&a=index&url=' + defOption.url + '&title=' + + defOption.title + '&appkey=c0af9c29e0900813028c2ccb42021792&pic=' + defOption.image; + break; + case 'qzone': + openUrl = 'http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=' + defOption.url + '&title=' + + defOption.title + '&desc=&summary=' + defOption.desc + '&site=YOHO!BUY 有货&pics=' + defOption.image; + break; + case 'renren': + openUrl = 'http://widget.renren.com/dialog/share?resourceUrl=' + defOption.url + '&srcUrl=' + + defOption.url + '&desc=' + defOption.desc + '&title=' + defOption.title + '&description=' + + defOption.desc + '&pic=' + defOption.image; + break; + case 'qq': + openUrl = 'http://connect.qq.com/widget/shareqq/index.html?url=' + defOption.url + '&desc=' + + defOption.desc + '&title=' + defOption.title.replace('%', '') + '&desc=&summary=' + + defOption.desc + '&site=YOHO!BUY 有货&pics=' + defOption.image; + break; + case 'weixin': + openUrl = 'http://s.jiathis.com/qrcode.php?url=' + defOption.weixinUrl + '&desc=' + + defOption.desc + '&title=' + defOption.title + '&description=' + + defOption.desc + '&pic=' + defOption.image; + break; + case 'douban': + openUrl = '//www.douban.com/share/service?href=' + defOption.url + '&text=' + + defOption.desc + '&image=' + defOption.image + '&title=' + defOption.title + '&comment='; + break; + } + + if (defOption.channel === 'weixin') { + if (!defOption.self) { + return; + } + + sharebox = defOption.self.closest('.share-to').find('.weixin-share-box'); + + if (sharebox.length > 0) { + shareCon += '<div class="con"><h2>分享到微信朋友圈</h2><p class="pic">' + + '<img src="' + openUrl + '" /></p><p class="w">打开微信,点击底部得“发现”,使用<br/>“扫一扫“即可将网页分享到我的朋友圈。</p>' + + '<a href="javascript:void(0)" class="close">x</a></div>'; + sharebox.find('div').length > 0 ? sharebox.show() : sharebox.html(shareCon).show(); + + sharebox.find('.close').click(function() { + $(this).closest('.weixin-share-box').hide(); + }); + } + } else { + window.open(encodeURI(openUrl)); + } +} + +function share(channel, self) { + var title = document.title.replace(/(^\s*)|(\s*$)/g, ''); + var desc = $('#share-desc').val(); + var image = $('#share-img').val(); + var weixinUrl = $('#weixin-url').val(); + + + if (channel === 'weibo' || channel === 'tqq') { + shareBase({ + channel: channel, + title: title, + image: image + }); + } else { + shareBase({ + channel: channel, + title: title, + desc: desc, + image: image, + self: self, + weixinUrl: weixinUrl + }); + } +} + +$('.share-wrapper').on('click', 'i', function() { + var $el = $(this), + type = $el.data('type'), + $weixinShareBox = $('.weixin-share-box'); + + if (type === 'weixin') { + share(type, $el); + } else { + $weixinShareBox.hide(); + share(type); + } +}); + +}); +define("js/product/shop-index", ["jquery","lazyload","handlebars","source-map","jquery-pjax"], function(require, exports, module){ +/** + * 首页 + * @author: bikai<kai.bi@yoho.cn> + * @date: 2016/4/26 + */ + +var $ = require("jquery"), + lazyLoad = require("lazyload"), + product = require("js/product/product"); + +var $shopIntro = $('.shop-intro'), + $shopCollect = $('.shop-collect'), + $sliderLeft = $('.slider-left'), + $allGoods = $('.all-goods'), + $fixedArea = $allGoods.find('.fixed-area'), + fixedAreaTop = $fixedArea.offset() ? $fixedArea.offset().top : 0; + +// Pjax +require("jquery-pjax"); + +require("js/common/slider"); +require("js/product/list"); + +product.init(4); + +lazyLoad($('img.lazy')); + +if ($sliderLeft.length) { + $sliderLeft.slider(); +} + +$shopIntro.on('click', function() { + $('.pop-shop-intro').show(); + $('.mask').show(); +}); + +$('.close-btn, .mask').on('click', function() { + $('.pop-shop-intro').hide(); + $('.mask').hide(); +}); + + +// 收藏店铺 +function colloectAction() { + var $colloectIcon = $shopCollect.find('.shop-collect-ico'), + $colloectText = $shopCollect.find('.shop-collect-text'), + isFavorite = $colloectIcon.hasClass('on'), + needColloect = window.cookie('needColloect'); + + $.ajax({ + type: 'post', + url: '/shoplist/setFavorite', + data: { + isFavorite: isFavorite ? 0 : 1, + needColloect: needColloect, + shopId: $shopCollect.data('id') + }, + success: function(res) { + if (res.code === 200) { + if (isFavorite) { + $colloectIcon.removeClass('on'); + $colloectText.html('收藏'); + } else { + $colloectIcon.addClass('on'); + $colloectText.html('已收藏'); + } + + if (needColloect) { + $colloectIcon.addClass('on'); + $colloectText.html('已收藏'); + } + } else if (res.code === 401) { + window.setCookie('needColloect', '1', { + path: '/', + domain: '.yohobuy.com', + expires: 90 + }); + location.href = res.url; + } + } + }); +} + +$shopCollect.on('click', function() { + colloectAction(); +}); + +if (window.cookie('needColloect') * 1 === 1 && window.getUid()) { + colloectAction(); + window.setCookie('needColloect', '', { + path: '/', + domain: '.yohobuy.com', + expires: 1 + }); +} + +// 全部商品使用 pjax 翻页 +$allGoods.pjax('a.pjax', '.goods-wrap', { + timeout: 5000, + scrollTo: false // 默认滚动没有动画,禁止掉 +}).on('pjax:end', function() { + product.init(4); + lazyLoad($('img.lazy')); + + $fixedArea = $allGoods.find('.fixed-area'); // 翻页后 fixed-area 区域有变化,需要更新选择器 + + // 分页后移动到全部商品 + $('html, body').animate({ + scrollTop: $allGoods.offset().top - 30 + }); +}).on('click', '.menu-list li', function() { + var $this = $(this); + + $this.siblings().removeClass('on'); + $this.addClass('on'); +}); + +$(window).on('scroll', function() { + var scrollTop = $(this).scrollTop(); + + if (scrollTop > fixedAreaTop) { + $fixedArea.css({ + position: 'fixed', + top: 0 + }); + } else { + $fixedArea.css({ + position: 'static', + top: 0 + }); + } +}); + +}); +define("js/index/index", ["jquery","lazyload","handlebars","source-map"], function(require, exports, module){ +/** + * 首页 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/11/23 + */ + +var $ = require("jquery"), + lazyLoad = require("lazyload"), + homePage = $('.home-page').data('page'), + brandUrl = $('.logo-brand').data('url'); + + +require("js/common/slider"); +require("js/common/slider2"); +require("js/common/logo-brand"); + +require("js/common/accordion"); + +$(document).on('mouseenter', '.imgopacity a img', function() { + $(this).css('opacity', 0.8); +}); +$(document).on('mouseout', '.imgopacity a img', function() { + $(this).css('opacity', 1); +}); + + + +if ($.inArray(homePage, ['boys','girls','kids','lifestyle']) > -1) { + require("js/common/new-arrivls")({ + type: homePage, + url: '/common/getNewArrival', + count: (homePage === 'boys') || (homePage === 'lifestyle') ? 5 : 4, + rows: [5,3] + }); + window.setCookie('_Channel', homePage, { + domain: '.yohobuy.com', + path: '/', + expires: 365 + }); +} + + + +lazyLoad($('img.lazy')); +if (homePage === 'boys') { + $('.slide-container').slider({ + pagination: '.thumb-pagination' + }); +} else { + $('.center-col').slider(); + $('.slide-container').slider(); +} + +if (homePage === 'boys') { + $('.logo-brand').logoBrand({ + url: brandUrl + }); + $('.img-brand').slider2(); +} else { + $('.logo-brand').logoBrand({ + showNum: 10, + url: brandUrl + }); + $('.img-slider-wrapper').slider2(); +} + + + +}); +define("js/common/slider2", ["jquery"], function(require, exports, module){ +/** + * (品牌优选)图片幻灯片插件 + * @author: wangqing(robin.wang@yoho.cn) + * @date: 205/7/2 + */ +var $ = require("jquery"); + +(function($) { + $.fn.slider2 = function(options) { + function autoplay(index, limit, toright) { + if (toright === true) { + $('.next').trigger('click'); + if (index === (limit - 3)) { + autoplayrecycle(--index, limit, false); + } else { + autoplayrecycle(++index, limit, true); + } + } else { + $('.prev').trigger('click'); + if (index === 0) { + autoplayrecycle(++index, limit, true); + } else { + autoplayrecycle(--index, limit, false); + } + } + } + + function autoplayrecycle(index, limit, toright) { + window.setTimeout(autoplay, $.fn.slider2.defaults.delaytime, index, limit, toright); + } + + function changePic(index, width, callback) { + var offersetleft = -(index * width); + + $('.img-list') + .animate({ + 'margin-left': offersetleft + 'px' + }, 'slow', callback); + + } + $.fn.slider2.defaults = { + index: 0, + shownum: 3, + autoplay: false, + delaytime: 3000 + }; + return this.each(function() { + var opts = $.extend({}, $.fn.slider2.defaults, options); + var mr = parseInt($('.img-item').css('margin-right')); + var $banneritems = $('.img-item'); + var bannerarr = []; + var _width = $banneritems.outerWidth() + mr, + _size = $banneritems.length, + j = 0; + + if (_size <= 3) { + $(this).find('.img-brand-switch').hide(); + return; + } + for (j = 0; j < $banneritems.length; j++) { + bannerarr.push($banneritems[j]); + } + _size = bannerarr.length; + $(this).find('.img-list').css({ + width: (_width * _size) + }); + $(this).find('.next').on('click', function(e) { + var i = 0, + _obj = null; + + e.preventDefault(); + + changePic(3, _width, function() { + for (i = 0; i < 3; i++) { + _obj = bannerarr.shift(); + + $('.img-item').parent().append(_obj.outerHTML); + bannerarr.push(_obj); + } + $('.img-item').first().remove(); + $('.img-item').first().remove(); + $('.img-item').first().remove(); + $('.img-list').css({ + 'margin-left': '0' + }); + }); + }); + $(this).find('.prev').on('click', function(e) { + var i = 0, + _obj = null, + offersetleft = ''; + + e.preventDefault(); + for (i = 0; i < 3; i++) { + _obj = bannerarr.pop(); + + $('.img-item').parent().prepend(_obj.outerHTML); + bannerarr.unshift(_obj); + } + offersetleft = 3 * _width; + $('.img-item').last().remove(); + $('.img-item').last().remove(); + $('.img-item').last().remove(); + $('.img-list').css({ + 'margin-left': -offersetleft + 'px' + }); + changePic(0, _width); + }); + if (opts.autoplay === true) { + autoplayrecycle(opts.index, _size, true); + } + }); + + }; + +}($)); +}); +define("js/common/accordion", ["jquery"], function(require, exports, module){ +var Slide = require("js/common/yohoui/YH.slide"); +var $ = require("jquery"); + +var $contain = $('.slide-accordion'); +var $item = $contain.find('li'); + +var $width = $item.width(); +var $spn = parseInt($('.home-page').width()) === 1150 ? (120 + 5) : (102 + 5); +var slide; + +function switchfun(to) { + $item.each(function(index) { + $(this).css('zIndex', index); + if (index <= to) { + $(this).stop().animate({ + left: index * $spn + }, 400); + } else { + $(this).stop().animate({ + left: (to) * $spn + $width + $spn * (index - to - 1) + }, 400); + } + }); +} + +switchfun(0); + +slide = new Slide({ + length: 5, + loop: false, + auto: false, + timeout: 2, + index: 0 +}); + +slide.on('change', function(data) { + switchfun(data.to); +}); + +$item.mouseover(function() { + slide.go($(this).index()); +}); + +slide.init(); +}); +define("js/common/yohoui/YH.slide", [], function(require, exports, module){ +var me = require("js/common/yohoui/YH.base"); + +var slide = function(options) { + this.__lastTime = null; + this.__isStop = false; + options = me.extend(this.defaults, options); + slide.superclass.constructor.call(this, options); +}; + +me.inherit(slide, me.assembly); + +slide.prototype.oninit = function() { + var __self = this, + _o = __self.options; + + if (_o.auto) { + __self.play(); + } + __self.go(_o.index); + return this; +}; + +slide.prototype.go = function(_to, _from) { + var __self = this, + _o = __self.options; + var _direction,_loop,_current,_index,_originalto,o,key,_e; + + if (__self.__lastTime) { + clearTimeout(__self.__lastTime); + __self.__lastTime = null; + } + _from = 'undefined' === typeof _from ? _o.index : _from; + _direction = _to === _from ? 0 : _to > _from ? 1 : -1; + _loop = _o.loop, _index = _o.length - 1, _originalto = _to; + if (_loop) { + if (_to > _index) { + _to = _to - _index - 1; + } else { + if (0 > _to) { + _to = _to + _index + 1; + } else { + _to = _to; + } + } + } else { + if (_to > _index) { + _to = _index; + } else { + if (0 > _to) { + _to = 0; + } else { + _to = _to; + } + } + } + _current = _o.index = _to; + + o = { + from: _from, + to: _to, + originalto: _originalto, + direction: _direction + }; + + for (key in __self.registerEvent) { + if (__self.registerEvent[key].length > 0) { + for (_e in __self.registerEvent[key]) { + if (__self.registerEvent[key].hasOwnProperty(_e)) { + __self.registerEvent[key][_e](o); + } + } + } + } + + if (_current !== _index || _to) { + if (!__self.__isStop && _o.auto) { + __self.play(); + } + } else { + if (__self.__lastTime) { + clearTimeout(__self.__lastTime); + } + } +}; + +slide.prototype.play = function() { + var __self = this, + _o = __self.options; + + __self.__lastTime = setTimeout(function() { + __self.next(); + }, 1000 * _o.timeout); + return this; +}; + +slide.prototype.next = function() { + var __self = this, + _o = __self.options; + var _from = _o.index; + var _to = _from + _o.step; + + __self.go(_to, _from); +}; + +slide.prototype.prev = function() { + var __self = this, + _o = __self.options; + var _from = _o.index; + var _to = _from - _o.step; + + __self.go(_to, _from); +}; + +slide.prototype.pause = function() { + var __self = this; + + if (__self.__lastTime) { + clearTimeout(__self.__lastTime); + } + __self.__isStop = true; +}; + +slide.prototype.resume = function() { + var __self = this; + + __self.__isStop = false; + __self.play(); +}; + +slide.prototype.defaults = { + index: 0, + timeout: 5, + step: 1, + per: 1, + auto: false, + loop: false +}; + +module.exports = slide; +}); +define("js/common/yohoui/YH.base", [], function(require, exports, module){ +var assembly; +var classtype = { + '[object Array]': 'array', + '[object Boolean]': 'boolean', + '[object Date]': 'date', + '[object Function]': 'function', + '[object Number]': 'number', + '[object Object]': 'object', + '[object RegExp]': 'regexp', + '[object String]': 'string' + }; +var me = { + __Index: 0, + list: [], + get: function(id) { + return id === undefined ? this.list : this.list[id]; + }, + fn: function() { }, + inherit: function(childClass, parentClass) { + var Constructor = me.fn; + + Constructor.prototype = parentClass.prototype; + childClass.prototype = new Constructor(); + + childClass.prototype.constructor = childClass; + childClass.superclass = parentClass.prototype; + + if (childClass.prototype.constructor === Object.prototype.constructor) { + childClass.prototype.constructor = parentClass; + } + }, + extend: function(obj, newProperties) { + var key; + + for (key in newProperties) { + if (newProperties.hasOwnProperty(key)) { + obj[key] = newProperties[key]; + } + } + return obj; + }, + copy: function(TargetClass, obj, newProperties) { + var value,o,key; + + if (typeof obj !== 'object') { + return obj; + } + value = obj.valueOf(); + if (obj !== value) { + return new obj.constructor(value); + } + if (obj instanceof obj.constructor && obj.constructor !== Object) { + if (TargetClass) { + o = new TargetClass(); + } else { + o = me.clone(obj.constructor.prototype); + } + + for (key in obj) { + if (TargetClass || obj.hasOwnProperty(key)) { + o[key] = obj[key]; + } + } + } else { + o = {}; + for (key in obj) { + if (o.hasOwnProperty(key)) { + o[key] = obj[key]; + } + } + } + if (newProperties) { + for (key in newProperties) { + if (o.hasOwnProperty(key)) { + o[key] = newProperties[key]; + } + } + } + + return o; + }, + clone: function(obj) { + me.__cloneFunc.prototype = obj; + return new me.__cloneFunc(); + }, + __cloneFunc: function() { + }, + delegate: function(func, scope) { + var args; + + scope = scope || window; + + if (arguments.length > 2) { + args = Array.prototype.slice.call(arguments, 2); + + return function() { + return func.apply(scope, args); + }; + } else { + return function() { + return func.call(scope); + }; + } + }, + dom: function($select, classCss) { + var wrap = $select; + var name, DOM = { + wrap: wrap + }, + els = wrap[0].getElementsByTagName('*'), + elsLen = els.length; + var i; + + for (i = 0; i < elsLen; i++) { + name = els[i].className; + if (name.indexOf(classCss) > -1) { + name = name.split(classCss)[1]; + } + if (name) { + DOM[name] = wrap.find(els[i]); + } + } + return DOM; + }, + + //模板引擎 + template: function() { + var result, key, reg,i; + var args = arguments; + + if (args.length > 0) { + if (me.isString(args[0])) { + result = args[0]; + if (args.length === 2 && me.isObject(args[1])) { + for (key in args[1]) { + if (args[1][key] !== undefined) { + reg = new RegExp('({' + key + '})', 'g'); + + result = result.replace(reg, args[1][key]); + } + } + } else { + for (i = 1; i < args.length; i++) { + if (args[i] !== undefined) { + reg = new RegExp('({[' + (i - 1) + ']})', 'g'); + + result = result.replace(reg, args[i]); + } + } + } + } + } + return result; + }, + __type: function(obj) { + return obj == null ? String(obj) : classtype[Object.prototype.toString.call(obj)] || 'object'; + }, + isObject: function(obj) { + return this.isFunction(obj) || !!(obj && 'object' === typeof obj); + }, + isFunction: function(obj) { + return this.__type(obj) === 'function'; + }, + isArray: Array.isArray || function(obj) { + return this.__type(obj) === 'array'; + }, + isNum: function(obj) { + return !isNaN(parseFloat(obj)) && isFinite(obj); + }, + isString: function(obj) { + return this.__type(obj) === 'string'; + }, + each: function(data, callback, args) { + var i, len; + + if (me.isArray(data)) { + for (i = 0, len = data.length; i < len; i++) { + if (callback.call(data[i], i, data[i], args) === false) { + break; + } + } + } else { + + for (i in data) { + if (callback.call(data[i], i, data[i], args) === false) { + break; + } + } + } + }, + funManager: { + __loadList: {}, + __loadFun: function(item, callback, win) { + + if (item.methord && me.isFunction(item.methord())) { + win = win || window; + item.methord()(item, function() { + callback(); + }, win); + } + }, + load: function(fns, statechange, win, __index) { + __index = __index || 0; + + if (fns[__index]) { + me.funManager.__loadFun(fns[__index], function() { + me.funManager.load(fns, statechange, win, __index + 1); + }, win); + } + statechange(__index, win); + }, + get: function(id) { + return this.__loadList[id]; + } + }, + log: function(msg) { + var console = window.console || { + log: function() { } + }; + + console.log(msg); + }, + Event: { + mousewheel: function(e) { + var _eoe = e.originalEvent; + var _de = _eoe.detail ? _eoe.detail * -1 : _eoe.wheelDelta / 40; + var _direction = _de < 0 ? -1 : 1; + + return { + direction: _direction, + unit: _de + }; + }, + __: function(_e, el, event, handle) { + var key; + + for (key in _e) { + if (window[_e[key].validator]) { + el[_e[key].validator](_e[key].prefix + event, handle, false); + break; + } + } + }, + add: function(el, event, handle) { + var _e = [ + { + validator: 'addEventListener', + prefix: '' + }, + { + validator: 'attachEvent', + prefix: 'on' + } + ]; + + this.__(_e, el, event, handle); + }, + remove: function(el, event, handle) { + var _e = [ + { + validator: 'removeEventListener', + prefix: '' + }, + { + validator: 'detachEvent', + prefix: 'on' + } + ]; + + this.__(_e, el, event, handle); + } + }, + getUid: function(_name) { + return me.template('me-{0}{1}-{2}', _name, new Date().getTime(), me.__Index++); + }, + Browser: { + isTouch: function() { + var msGesture = window.navigator && window.navigator.msPointerEnabled && window.MSGesture; + + return (('ontouchstart' in window) || msGesture || window.DocumentTouch) ? true : false; + }, + Prefix: function() { + var i; + + var props = ['perspectiveProperty', 'WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']; + var obj = document.createElement('div'); + + for (i in props) { + if (obj.style[props[i]] !== undefined) { + return me.template('-{0}-', props[i].replace('Perspective', '').toLowerCase()); + } + } + }, + parseURL: function(url) { + var a = document.createElement('a'); + var ret,seg,len,i,s; + + a.href = url; + return { + source: url, + protocol: a.protocol.replace(':', ''), + host: a.hostname, + port: a.port, + query: a.search, + params: (function() { + ret = {}, + seg = a.search.replace(/^\?/, '').split('&'), + len = seg.length, i = 0, s; + + for (; i < len; i++) { + if (!seg[i]) { + continue; + } + s = seg[i].split('='); + ret[s[0]] = s[1]; + } + return ret; + })(), + file: (a.pathname.match(/\/([^\/?#]+)$/i) || [null, ''])[1], + hash: a.hash.replace('#', ''), + path: a.pathname.replace(/^([^\/])/, '/$1'), + relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [null, ''])[1], + segments: a.pathname.replace(/^\//, '').split('/') + }; + } + }, + Array: { + indexOf: function(array, val) { + var i; + + for (i = 0; i < array.length; i++) { + if (this[i] === val) { + return i; + } + } + return -1; + }, + remove: function(array, val) { + var index = this.indexOf(array, val); + + if (index > -1) { + array.splice(index, 1); + } + return array; + } + } +}; + +assembly = function(options) { + this.initialized = false; + this.registerEvent = { + before: [], + change: [], + after: [] + }; + this.options = options; + + this.init(options); +}; + +assembly.output = function() { + me.log(me.list); +}; +assembly.prototype.oninit = me.fn; + +assembly.prototype.init = function(cfg) { + this.initialized = true; + + // function _getClassName(_constructor, _constr) { + // var _constr = _constr || ""; + // if (_constructor.superclass) { + // var args = /(\w+)\.superclass/.exec(_constructor.arguments.callee); + // if (args != null) { + // _constr += args[1] + "-"; + // // return _getClassName(_constructor.superclass.constructor, _constr); + // } + // } + // return _constr; + // } + this.__Uid = me.getUid('me'); + this.oninit(cfg); + me.list[this.__Uid] = this; +}; +assembly.prototype.destory = function() { + this.initialized = false; + delete me.list[this.__Uid]; +}; +assembly.prototype.getUid = function() { + return this.__Uid; +}; +assembly.prototype.getOptions = function() { + return this.options; +}; +assembly.prototype.config = function() { + if (arguments.length > 0) { + if (typeof (arguments[0]) === 'string') { + if (arguments.length > 1) { + this.options[arguments[0]] = arguments[1]; + } else { + return this.options[name]; + } + } + } else { + return this.options; + } +}; +assembly.prototype.on = function(name, callback) { + var __self = this; + var _e = __self.registerEvent[name]; + + if (_e) { + _e.push(callback); + } + return _e; +}; +assembly.prototype.off = function(name, callback) { + var __self = this; + var _e = __self.registerEvent[name]; + var e = []; + + me.each(_e, function(name, _callback) { + + if (_callback === callback) { + e.push(name); + } + }); + + me.each(e.reverse(), function(name, _callback) { + _e.splice(_callback, 1); + }); +}; +me.assembly = assembly; + +module.exports = me; +}); +define("js/common/new-arrivls", ["jquery","lazyload","handlebars","source-map"], function(require, exports, module){ +var $ = require("jquery"), + lazyload = require("lazyload"); +var Handlebars = require("handlebars"); + +function InfiniteLoad(options) { + var defaults = { + index: 0, + isload: true,//是否正在加载 + isrun: true,//判断是否执行 + offset: { + height: null, + width: null + } + }; + + this.registerEvent = { + before: [], + change: [], + after: [] + }; + + this.options = $.extend(true, {}, defaults, options); + + return this; +} + +InfiniteLoad.prototype.on = function(name, callback) { + var g = this; + var _e = g.registerEvent[name]; + + if (_e) { + _e.push(callback); + } + return _e; +}; + +InfiniteLoad.prototype.exect = function(key, params) { + var g = this; + var e; + + if (g.registerEvent[key] && g.registerEvent[key].length > 0) { + for (e in g.registerEvent[key]) { + if (g.registerEvent[key].hasOwnProperty(e)) { + g.registerEvent[key][e](params); + } + } + } +}; + +InfiniteLoad.prototype.init = function() { + var g = this; + var p = this.options; + + function __loadMore() { + + if (p.isrun && p.isload && g.__directionCalculation()) { + p.isload = false; + p.index++; + g.exect('after', p); + } + + g.exect('change', p); + } + + g.exect('before', p); + + $(window).scroll(__loadMore); +}; + +InfiniteLoad.prototype.emit = function() { + var p = this.options; + + p.isload = true; +}; + +InfiniteLoad.prototype.stop = function() { + var p = this.options; + + p.isrun = false; + p.isload = false; +}; + +InfiniteLoad.prototype.__directionCalculation = function() { + var p = this.options; + + if (p.offset.height && p.offset.height() > 0 && $(window).scrollTop() + $(window).height() >= p.offset.height()) { + return true; + } + return false; +}; + +module.exports = function(data) { + var $container = $('#newarrivals .goods-container'); + var $load = $('.loading a'); + var load = new InfiniteLoad({ + index: 1, + isload: false, + offset: { + height: function() { + return parseFloat($container.offset().top) + parseFloat($container.height()) - 200; + } + } + }); + var loadAjax; + var url = data.url, + count = data.count, + rows = data.rows; + + data.pageIndex = 0; + + delete data.url; + delete data.count; + delete data.rows; + + loadAjax = function(url, data, count) { + + var options = { + type: 'POST', + url: url, + success: function(result) { + var code = result.code; + var myTemplate,len,pos; + + if (code === 200) { + len = result.goods.length % count; + pos = result.goods.length - len - 1; + + result.goods.splice(pos, len); + + myTemplate = Handlebars.compile(load.tpl); + + $container.append(myTemplate(result.goods)); + data.pageIndex = data.pageIndex + result.goods.length; + + //懒加载插件貌似有点问题,图片先直接展示 + lazyload($container.find('img.lazy')); + + load.emit(); + } else { + + load.stop(); + $load.html('查看更多'); + } + }, + error: function() { + + load.stop(); + $load.html('网络断开连接了~'); + } + }; + + options.data = data; + $.ajax(options); + }; + + + load.on('after', function(p) { + + data.pageCount = count * rows[1]; + + loadAjax(url, data); + }); + + load.on('before', function(p) { + + + load.tpl = '{{#each this}}'; + load.tpl += '<div class="good-info imgopacity" data-skn="{{skn}}">'; + load.tpl += ' <div class="tag-container clearfix">'; + load.tpl += ' {{# tags}}'; + load.tpl += ' {{# isNew}}'; + load.tpl += ' <span class="good-tag new-tag">NEW</span>'; + load.tpl += ' {{/ isNew}}'; + load.tpl += ' {{# isReNew}}'; + load.tpl += ' <span class="good-tag renew-tag">再到着</span>'; + load.tpl += ' {{/ isReNew}}'; + load.tpl += ' {{# isSale}}'; + load.tpl += ' <span class="good-tag sale-tag">SALE</span>'; + load.tpl += ' {{/ isSale}}'; + load.tpl += ' {{# isNewFestival}}'; + load.tpl += ' <span class="good-tag new-festival-tag">新品节</span>'; + load.tpl += ' {{/ isNewFestival}}'; + load.tpl += ' {{# isLimit}}'; + load.tpl += ' <span class="good-tag limit-tag">限量商品</span>'; + load.tpl += ' {{/ isLimit}}'; + load.tpl += ' {{# isYearEndPromotion}}'; + load.tpl += ' <span class="good-tag yep-tag">年终大促</span>'; + load.tpl += ' {{/ isYearEndPromotion}}'; + load.tpl += ' {{# isYearMidPromotion}}'; + load.tpl += ' <span class="good-tag ymp-tag">年中热促</span>'; + load.tpl += ' {{/ isYearMidPromotion}}'; + load.tpl += ' {{/ tags}}'; + load.tpl += ' </div>'; + load.tpl += ' <div class="good-detail-img">'; + load.tpl += ' <a class="good-thumb" href="{{url}}" target= "_blank">'; + load.tpl += ' <img class="lazy" data-original="{{thumb}}">'; + load.tpl += ' </a>'; + load.tpl += ' {{# isFew}}'; + load.tpl += ' <p class="few-tag">即将售罄</p>'; + load.tpl += ' {{/ isFew}}'; + + load.tpl += ' {{#if showColBtn}}'; + load.tpl += ' <span class="col-btn iconfont{{#if coled}} coled{{/if}}"></span>'; + load.tpl += ' {{/if}}'; + load.tpl += ' </div>'; + load.tpl += ' <div class="good-detail-text">'; + load.tpl += ' <a href="{{url}}" target= "_blank">{{name}}</a>'; + load.tpl += ' <p class="price">'; + load.tpl += ' <span class="sale-price{{#unless marketPrice}}prime-cost{{/unless}}">'; + load.tpl += ' ¥{{salePrice}}'; + load.tpl += ' </span>'; + load.tpl += ' {{# marketPrice}}'; + load.tpl += ' <span class="market-price">¥{{.}}</span>'; + load.tpl += ' {{/ marketPrice}}'; + load.tpl += ' </p>'; + load.tpl += ' </div>'; + load.tpl += '</div>'; + load.tpl += '{{/each}}'; + + + data.pageCount = count * rows[0]; + + loadAjax(url, data, data.count); + + //load.emit(); + }); + + load.init(); + +}; +}); +define("js/brand/index", ["jquery","lazyload","handlebars","source-map","dot"], function(require, exports, module){ +/** + * 首页 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/11/23 + */ + +var $ = require("jquery"), + lazyLoad = require("lazyload"); + + +require("js/common/slider"); +require("js/brand/brands"); + +lazyLoad($('img.lazy')); +$('.slide-container').slider({ + orient: true +}); +}); +define("js/brand/brands", ["jquery","handlebars","source-map","dot"], function(require, exports, module){ +var $ = require("jquery"), + Handlebars = require("handlebars"), + dot = require("dot"); + +var $tabs = $('.brands-tabs'); +var $list = $('.brands-list'); +var $gory = $('.brands-category'); +var $news = $('.news-txt ul'); +var $clearfix = $list.find('dl.clearfix'); +var $brand = $list.find('li>a'); +var $category = $gory.find('a'); +var $tab = $tabs.find('li>a'); +var $arr = $tabs.find('.hoverarr'); +var $thisTab; + +var categoryHeight = $category.height(); +var categoryTop = $category.offset() ? $category.offset().top : 0; +var newsHeight = $news.height(); +var newsTop = $news.offset() ? $news.offset().top : 0; +var timeout, _id; + + +//用于临时存储数据 +var tempdata = {}; + +var templete = '<div class="brands-dialog">'; + +templete += ' <div class="brands-layer">'; +templete += ' <div class="layer-content">'; +templete += ' <div class="title">{{title}}</div>'; +templete += ' <div class="clearfix desc">'; +templete += ' <img src="{{icon}}">'; +templete += ' <p class="right">{{content}}</p>'; +templete += ' </div> '; +templete += ' <div class="featured">'; +templete += ' <p>{{subtitle}}</p> '; +templete += ' <div class="clearfix"> '; +templete += ' {{#each imgs}}'; +templete += ' <img src="{{src}}">'; +templete += ' {{/each}}'; +templete += ' </div>'; +templete += ' </div>'; +templete += ' </div>'; +templete += ' </div>'; +templete += '</div>'; + +dot($('.brand-desc')); + +$.easing.easeOutQuint = function(x, t, b, c, d) { + return c * ((t = t / d - 1) * t * t * t * t + 1) + b; +}; + +function getQueryString(name) { + var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)'); + var r = window.location.search.substr(1).match(reg); + + if (r != null) { + return window.unescape(r[2]); + } + return null; +} + +// 格式化资讯NEWS标题数量 +if ($news.length) { + $news.find('li').each(function() { + var $dom = $(this); + var domHeight = $dom.offset().top - newsTop + $dom.height(); + + if (domHeight > newsHeight) { + $dom.hide(); + } + }); +} + +//头部图片TAB切换展示 +$tab.eq(0).parent('li').find('.brands-content').css('z-index', '1'); + +_id = getQueryString('id') ? getQueryString('id') : 0; + +// 设置对应TAB选中 +$thisTab = $tab.eq(_id); +$thisTab.find('.g-mask').addClass('g-mask-on'); + +if (_id && $thisTab.length) { + $arr.css({ + left: parseFloat($thisTab.offset().left) - parseFloat($tabs.offset().left) + }); +} +$tab.hover(function() { + var $this = $(this); + + clearTimeout(timeout); + timeout = setTimeout(function() { + var targetLeft = parseFloat($this.offset().left) - parseFloat($tabs.offset().left); + + $arr.animate({ + left: targetLeft + }, 200, 'easeOutQuint'); + }, 50); + $tabs.find('.brands-content').removeAttr('style'); + $this.parent('li').find('.brands-content').css('z-index', '1'); + +}, function() { + clearTimeout(timeout); +}); + +//品牌类别滚动事件 +$(window).scroll(function() { + if ($(this).scrollTop() >= categoryTop) { + $gory.addClass('category-fix'); + } else { + $gory.removeClass('category-fix'); + } +}); + +//点击字母,页面滚动到相关区域 +$category.click(function() { + var name = $(this).attr('href').split('#')[1]; + var targetTop = $list.find('[name=' + name + ']').offset().top - categoryHeight; + + if (!$gory.hasClass('category-fix')) { + targetTop -= categoryHeight; + } + + $('html,body').animate({ + scrollTop: targetTop + }, 200); + return false; +}); + + +//浮层代码 +function bindTemplete($select, data, templete) { + var $this = $select; + var offset = { + width: $this.width(), + left: $this.offset().left, + right: parseFloat($(window).width()) - parseFloat($this.offset().left) - parseFloat($this.width()) + }; + + var $parent = $this.parent('li'); + var myTemplate; + + $list.find('.brands-dialog').remove(); + myTemplate = Handlebars.compile(templete); + $parent.append(myTemplate(data)); + dot($parent.find('.right')); + + if (offset.right - 350 < 0) { + $parent.find('.brands-layer') + .addClass('brands-layer-right').css('left', -330 - offset.width); + } +} + +//鼠标悬浮品牌,请求数据,并且展示 +function bindHoverEvent() { + $brand.unbind('mouseenter').unbind('mouseleave').hover(function() { + var $this = $(this); + var key = $this.attr('data-key'); + + var options = { + url: '/brands/brandinfo', + type: 'get', + data: { + brandId: key + }, + success: function(_data) { + + if (_data.code === 200 && _data.brand) { + if (!tempdata.hasOwnProperty(_data.brand.key)) { + tempdata[_data.brand.key] = _data.brand; + } + bindTemplete($this, tempdata[_data.brand.key], templete); + } + } + }; + + clearTimeout(timeout); + timeout = setTimeout(function() { + if (!tempdata.hasOwnProperty(key)) { + $.ajax(options); + } else { + bindTemplete($this, tempdata[key], templete); + } + }, 200); + }, function() { + clearTimeout(timeout); + $list.find('.brands-dialog').remove(); + }); +} + +if ($clearfix.length < 26) { + $.ajax({ + url: '/brands/brandList', + type: 'POST', + data: { + start: $clearfix.length ? ($clearfix.length + 1) : 1 + }, + success: function(_data) { + if (_data) { + $list.append(_data); + $brand = $list.find('li>a'); + bindHoverEvent(); + } + } + }); +} + +bindHoverEvent(); +}); +define("js/passport/entry", ["jquery","jquery.placeholder"], function(require, exports, module){ +/* + * 密码中心打包入口文件 + */ + +require("js/passport/reg"); +require("js/passport/back"); +require("js/passport/login"); +require("js/passport/reset"); +require("js/passport/vertification"); +require("js/passport/thirdlogin"); +require("js/passport/third-pwd"); +require("js/passport/relate"); +}); +define("js/passport/reg", ["jquery","jquery.placeholder"], function(require, exports, module){ +/* + * @description 注册页js + * @time 2015/12/14 + */ + +var $ = require("jquery"), + regValidate = require("js/passport/mail-phone-regx"), + computeComplex = require("js/passport/pwd-strength"); + +var $registerPage = $('.register-page'), + $pwdTips = $('#pwd-tips'), + $pwdTip1 = $pwdTips.find('#pwd-tip1'), + $errTip = $('#err-tip'), + $registerBtn = $('#register-btn'), + $countDown = $('#count-down'), + $successBtn = $('.success-btn'), + countDown = 5, + clearT; + +var $sendCaptcha = $('#send-captcha'), + caCount = 4, + validateResult = []; + +var $pn = $('#phone-num'), + $mc = $('#msg-captcha'), + $pwd = $('#pwd'), + $repwd = $('#repwd'), + $ca = $('#captcha'), + timeResidue = 0; + +// 密码强度验证 +var $pwdIntensity = $('.pwd-intensity'), + $pwdParent = $pwdIntensity.closest('.pwd-intensity-container'); + +//signup验证 +var $region = $('#country-code'), + $regionSelect = $('#region'), + isPwd = false, + pwdVal; + +var pwdReg = regValidate.pwdValidateRegx; + +var $curErrContainer; + +var oldPhone = ''; //如果手机号改变时刷新验证码 + +require("jquery.placeholder"); + +setTimeout(function() { + $pn.val(''); + $mc.val(''); + $pwd.val(''); + $repwd.val(''); + $ca.val(''); +}, 0); + +//验证码位数 +$ca.attr('maxlength', caCount); + +//密码规则提示 +$pwd.focus(function(event) { + $pwdTips.removeClass('hide'); + isPwd = true; + pwdVal = $(this).val(); +}).blur(function() { + $pwdTips.addClass('hide'); + isPwd = false; +}); + + +//IE8 placeholder +$('[placeholder]').placeholder(); + +// 存储校验信息 +validateResult = [ + { + id: 'phone-num', + message: '', //错误信息 + status: false //当前的状态 + }, + { + id: 'captcha', + message: '', + status: false + }, + { + id: 'msg-captcha', + message: '', + status: false + }, + { + id: 'pwd', + message: '', + status: false + }, + { + id: 'repwd', + message: '', + status: false + } +]; + +//刷新图形验证码 +function refreshPic() { + var time = new Date(), + $captchaImg = $('.captcha-img'), + captchaImgSrc = $captchaImg.attr('src').split('?')[0]; + + $captchaImg.attr('src', captchaImgSrc + '?t=' + time.getTime()); +} + +//手机号ajax校验 +function phoneAjaxFn(page, callback) { + var url, + data; + + if (page === 'reg') { + url = '/passport/register/checkmobile'; + data = { + mobile: $pn.val(), + area: $region.text().split('+')[1] + }; + } else if (page === 'third') { + url = '/passport/autouserinfo/bindCheck'; + data = { + mobile: $pn.val(), + area: $region.text().split('+')[1], + openId: $('#open-id').val(), + sourceType: $('#source-type').val() + }; + } + + validateResult[0].message = 'err'; + validateResult[0].status = false; + + $.ajax({ + url: url, + type: 'POST', + data: data + }).then(function(data) { + if (!data) { + return; + } + + switch (data.code) { + case 200: + + if ($pn.val() !== oldPhone && oldPhone !== '') { + + // 如果手机号发生改变则刷新验证码并且更新状态 + refreshPic(); + $sendCaptcha.addClass('disable').attr('disabled', 'disabled'); + validateResult[1].message = '图形验证码错误'; + validateResult[1].status = false; + } + + oldPhone = $pn.val(); + + validateResult[0].message = ''; + validateResult[0].status = true; + break; + case 400: + refreshPic(); + validateResult[0].message = data.message; + validateResult[0].status = false; + break; + } + + callback(); + }); +} + +//图形验证码ajax校验 +function picCaptchaAjaxFn(page, callback) { + var url; + + if (page === 'reg') { + url = '/passport/register/piccaptcha'; + } else if (page === 'third') { + url = '/passport/autouserinfo/checkPicCode'; + } + $.ajax({ + type: 'POST', + url: url, + data: { + verifyCode: $ca.val() + + //mobile: $pn.val(), + //area: $region.text().split('+')[1] + } + }).then(function(data) { + if (!data) { + return; + } + + switch (data.code) { + case 200: + validateResult[1].message = ''; + validateResult[1].status = true; + break; + case 400: + refreshPic(); + validateResult[1].message = '图形验证码错误'; + validateResult[1].status = false; + break; + } + callback(); + }); +} + +//短信验证码ajax校验 +function msgCaptchaAjaxFn(page, callback) { + var url; + + if (page === 'reg') { + url = '/passport/register/msgcaptcha'; + } else if (page === 'third') { + url = '/passport/autouserinfo/checkBindMsg'; + } + $.ajax({ + type: 'POST', + url: url, + data: { + code: $mc.val(), + mobile: $pn.val(), + area: $region.text().split('+')[1] + } + }).then(function(data) { + if (!data) { + return; + } + + switch (data.code) { + case 200: + validateResult[2].message = ''; + validateResult[2].status = true; + break; + case 400: + validateResult[2].message = '短信验证码错误'; + validateResult[2].status = false; + break; + } + + callback(); + }); +} + +// 验证 +function validateRule(page, $element, callback) { + + var val = $.trim($element.val()), + regionCode; + + + + // 根据需求//redmine.yoho.cn/issues/3117改成上边的正则 + // 对应的错误提示语也改了,感觉要不了多久就会改回来 + // pwdReg = /^([a-zA-Z0-9\-\+_!@\#$%\^&\*\(\)\:\;\.=\[\]\\\',\?]){6,20}$/gi; + + //手机号校验 + if ($element.hasClass('phone-num')) { + + regionCode = $region.text(); + + + if (val === '') { + validateResult[0].message = '请输入手机号码'; + validateResult[0].status = false; + callback(); + + } else { + if (!/^[0-9]+$/.test(val) || + (regionCode === '+86' && !regValidate.phoneRegx[regionCode].test(val))) { + validateResult[0].message = '手机号码格式不正确,请重新输入'; + validateResult[0].status = false; + callback(); + } else { + phoneAjaxFn(page, callback); + } + } + + //图形验证码校验 + } else if ($element.hasClass('captcha')) { + if (val === '') { + validateResult[1].message = '请输入图形验证码'; + validateResult[1].status = false; + callback(); + + } else if (val.length <= 3) { + validateResult[1].message = '图形验证码为4位'; + validateResult[1].status = false; + callback(); + + } else { + + // 并且手机号正确 + if (validateResult[0].status) { + picCaptchaAjaxFn(page, callback); + } else { + validateResult[1].message = '图形验证码错误'; + validateResult[1].status = false; + callback(); + } + + } + + //短信验证码校验 + } else if ($element.hasClass('msg-captcha')) { + + if (val === '') { + validateResult[2].message = '请输入短信验证码'; + validateResult[2].status = false; + callback(); + + } else if (val.length <= 3) { + validateResult[2].message = '短信验证码错误'; + validateResult[2].status = false; + callback(); + + } else { + + // 并且图形验证码正确 + if (validateResult[1].status) { + msgCaptchaAjaxFn(page, callback); + } else { + validateResult[2].message = '短信验证码错误'; + validateResult[2].status = false; + callback(); + } + } + + //密码校验 + } else if ($element.hasClass('pwd')) { + if (val === '') { + validateResult[3].message = '请输入密码'; + validateResult[3].status = false; + + } else if (val.length < 6 || val.length > 20) { + validateResult[3].message = '密码只支持6-20位字符'; + validateResult[3].status = false; + + } else if (!pwdReg.test($element.val())) { + validateResult[3].message = '密码须字母和数字组合'; + validateResult[3].status = false; + + } else { + validateResult[3].message = ''; + validateResult[3].status = true; + } + callback(); + + //二次密码校验 + } else if ($element.hasClass('repwd')) { + if (val === '') { + validateResult[4].message = '请输入密码确认'; + validateResult[4].status = false; + + } else if ($pwd.val() !== val) { + validateResult[4].message = '与密码不一致,请重新输入'; + validateResult[4].status = false; + + } else { + validateResult[4].message = ''; + validateResult[4].status = true; + + } + + callback(); + } +} + +function posErrTip() { + var tipPos = $curErrContainer.offset(); + + return $errTip.css({ + top: tipPos.top - 40, + left: tipPos.left + }); +} + +//显示提示信息 +function showErrTip() { + + var show = false, + i, + validateResultLen = validateResult.length; + + for (i = 0; i < validateResultLen; i++) { + if (!show) { + + //不可以通过status判断 + if (!!validateResult[i].message && validateResult[i].message !== 'err') { + + //显示错误提示 + $errTip.find('span').text(validateResult[i].message); + $curErrContainer = $('#' + validateResult[i].id); + posErrTip().removeClass('hide'); + + show = true; //停止判断 + } else { + $errTip.addClass('hide'); + } + } + } +} + +//显示红色边框 +function showBorder() { + + var $errInput, + i, + validateResultLen = validateResult.length; + + for (i = 0; i < validateResultLen; i++) { + if (!!validateResult[i].message) { + + //显示红色边框 + $errInput = $('#' + validateResult[i].id); + $errInput.addClass('error'); + + } else { + + //去掉红色边框 + $errInput = $('#' + validateResult[i].id); + $errInput.removeClass('error'); + } + } +} + +// 密码强度验证 +function pwdFn($obj) { + var pwd = $obj.val(), + pwdStrength = computeComplex(pwd), + level = 0; + + if (pwdStrength === 0) { + level = 0; + } else if (pwdStrength <= 10) { + level = 1; + } else if (pwdStrength <= 20) { + level = 2; + } else { + level = 3; + } + + switch (level) { + case 0: + $pwdParent.removeClass('red yellow green'); + $pwdIntensity.removeClass('color'); + break; + case 1: + $pwdParent.addClass('red').removeClass('yellow green'); + $pwdIntensity.filter('.low').addClass('color'); + $pwdIntensity.filter('.mid,.high').removeClass('color'); + break; + case 2: + $pwdParent.addClass('yellow').removeClass('red green'); + $pwdIntensity.filter('.low,.mid').addClass('color'); + $pwdIntensity.filter('.high').removeClass('color'); + break; + case 3: + $pwdParent.addClass('green').removeClass('yellow red'); + $pwdIntensity.addClass('color'); + break; + } + + //提示框 + if (pwd === '') { + $pwdTip1.removeClass('red yes no').addClass('default'); + } else if (pwd.length < 6 || pwd.length > 20) { + $pwdTip1.removeClass('default yes').addClass('no red'); + } else { + $pwdTip1.removeClass('default no red').addClass('yes'); + } +} + +//重新定位错误提示 +$(window).resize(function() { + if ($errTip.hasClass('hide')) { + return; + } + + posErrTip(); +}); + +// 失去焦点时开始校验 +// Tips: 不可以在获得焦点的时候验证,获得焦点和失去焦点的间隔太小,如果中间存在ajax校验的话会出现问题 +// ( ▼-▼ )注册页和信息完善页面接口不同 +exports.init = function(page) { + + $('#agree-terms').click(function() { + + var $this = $(this), + i, + passI = 0; + + if (!!$this.attr('notchecked')) { + + $this.removeAttr('notchecked'); + + //勾选 + for (i = 0; i < validateResult.length; i++) { + if (validateResult[i].status) { + passI++; + } + } + if (passI === 4) { + $registerBtn.removeClass('disable').removeAttr('disabled'); + } + } else { + + //取消勾选 + $registerBtn.addClass('disable').attr('disabled', 'disabled'); + $this.attr('notchecked', 'notchecked'); + } + }); + + // 按回车键提交 + $registerPage.on('keydown', function(e) { + var key = e.which; + + if (key === 13) { + $registerBtn.click(); + } + }); + + $registerPage.find('.va').keyup(function() { + + var j, + statusLen = 0, + vLen = validateResult.length, + $that = $(this); + + validateRule(page, $(this), function() { + showErrTip(); // 显示错误提示 + showBorder(); // 显示红色边框 + + // 如果validateResult中有4个status为true表示验证通过 + for (j = 0; j < vLen; j++) { + + if (validateResult[j].status) { + + statusLen++; + } + + } + + if (statusLen === 4 && !$('#agree-terms').attr('notchecked')) { + $registerBtn.removeClass('disable').removeAttr('disabled'); + } else { + $registerBtn.addClass('disable').attr('disabled', 'disabled'); + } + + // 图形验证通过时,发送短信按钮可点击 + if (validateResult[1].status && timeResidue <= 0) { + $sendCaptcha.removeClass('disable').removeAttr('disabled'); + } else { + $sendCaptcha.addClass('disable').attr('disabled', 'disabled'); + } + + //图形验证通过时,发送短信按钮可点击 end + + }); + + // 如果是密码则校验强度 + if (($that).hasClass('pwd')) { + pwdFn($that); + } + + }).blur(function() { + + /*validateRule($(this), function() { + showErrTip(); + showBorder(); // 显示红色边框 + });*/ + }); + + $regionSelect.change(function() { + + $region.text($('#region').val()); + + validateRule(page, $pn, showErrTip); //验证 + }); + + // 点击发送验证码 + $sendCaptcha.click(function() { + var t, + url; + + if ($(this).hasClass('disable')) { + return; + } + + timeResidue = 60; + + $('#msg-tip').removeClass('hide'); + + $sendCaptcha.addClass('disable').attr('disabled', 'disabled'); + $sendCaptcha.val('60秒可重新发送'); + + t = setInterval(function() { + if (timeResidue <= 0) { + $sendCaptcha.removeClass('disable').removeAttr('disabled').val('获取短信验证码'); + clearInterval(t); + return; + } + $sendCaptcha.val(timeResidue-- + '秒可重新发送'); + }, 1000); + + if (page === 'reg') { + url = '/passport/register/sendBindMsg'; + } else if (page === 'third') { + url = '/passport/autouserinfo/sendBindMsg'; + } + + //todo ajax 发送验证码 + $.ajax({ + type: 'POST', + url: url, + data: { + area: $region.text().split('+')[1], + mobile: $pn.val(), + verifyCode: $ca.val() + } + }); + }); + + // 防止粘贴密码 + if ($('.success-box').length <= 0) { + $pwd[0].onpaste = function() { + return false; + }; + } + + //ajax表单提交 + $registerBtn.click(function() { + var url; + + if (page === 'reg') { + url = '/passport/register/mobileregister'; + } else if (page === 'third') { + url = '/passport/autouserinfo/bindMobile'; + } + + if ($(this).hasClass('disable')) { + return; + } else { + + //ajax提交 + $.ajax({ + type: 'POST', + url: url, + data: { + area: $region.text().split('+')[1], + mobile: $pn.val(), + verifyCode: $ca.val(), + code: $mc.val(), + password: $pwd.val() + } + }).then(function(data) { + + var time = 0, + t, + refer; + + if (data.code === 200) { + + refer = data.data.href; + + t = setTimeout(function() { + time++; + }, 1000); + + $.ajax({ + type: 'GET', + url: data.data.session + }).then(function(data) { + + if (data.code === 200 && t < 3) { + clearInterval(t); + location.href = refer; + } + }); + + if (t >= 3) { + clearInterval(t); + location.href = refer; + } + } else { + + //todo + console.log('网络超时~'); + } + + }); + } + }); + + $('.change-captcha').click(function() { + refreshPic(); + }); + + //注册成功页面5秒后跳转 + if ($('.success-box').length > 0) { + clearT = setInterval(function() { + + if (countDown === 0) { + + window.location.href = $successBtn.attr('data-url'); + + clearInterval(clearT); + } + $countDown.text(countDown--); + }, 1000); + } +}; +}); +define("js/passport/mail-phone-regx", [], function(require, exports, module){ +/** + * 国家区号Map手机号码以及邮箱验证正则 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/11 + */ + +var countryPhoneRegx = { + '+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]{1}[0-9]{8}$/, + '+81': /^0[9|8|7][0-9]{9}$/, + '+61': /^[0-9]{11}$/ +}; + +var emailRegx = /^[.\-_a-zA-Z0-9]+@[\-_a-zA-Z0-9]+\.[a-zA-Z0-9]/; + +var pwdValidateRegx = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/; + +exports.phoneRegx = countryPhoneRegx; + +exports.emailRegx = emailRegx; + +exports.pwdValidateRegx = pwdValidateRegx; +}); +define("js/passport/pwd-strength", [], function(require, exports, module){ +/* + * 计算密码复杂度 + */ + +function gettype(str, i) { + if (str.charCodeAt(i) >= 48 && str.charCodeAt(i) <= 57) { + return 1; + } else if (str.charCodeAt(i) >= 97 && str.charCodeAt(i) <= 122) { + return 2; + } else if (str.charCodeAt(i) >= 65 && str.charCodeAt(i) <= 90) { + return 3; + } + + return 4; +} + +function isregular(cur, pre, type) { + var curCode = cur.charCodeAt(0); + var preCode = pre.charCodeAt(0); + + if (curCode - preCode === 0) { + return true; + } + + if (type !== 4 && (curCode - preCode === 1 || curCode - preCode === -1)) { + return true; + } + + return false; +} + +function getcomplex(curType, preType) { + if (preType === 0 || curType === preType) { + return 0; + } else if (curType === 4 || preType === 4) { + return 2; + } else { + return 1; + } +} + +function computeComplex(password) { + var complex = 0, + length = password.length, + pre = '', + preType = 0, + i = 0, + cur, + curType; + + + for (i = 0; i < length; i++) { + cur = password.charAt(i); + curType = gettype(password, i); + + if (preType !== curType || !isregular(cur, pre, curType)) { + complex += curType + getcomplex(curType, preType); + } + + pre = cur; + preType = curType; + } + + return complex; +} + +module.exports = computeComplex; +}); +define("js/passport/back", ["jquery","jquery.placeholder"], function(require, exports, module){ +/** + * 找回密码 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/14 + */ + +var $ = require("jquery"), + regx = require("js/passport/mail-phone-regx"), + emailReg = regx.emailRegx, + phoneRegx = regx.phoneRegx; + +var emailAc = require("js/passport/ac-email"); //邮箱自动完成 + +var $cr = $('#country-code-hide'), + $phoneNum = $('#phone-num'), + $ca = $('#captcha'), + $ccList = $('#country-code-list'), + $cc = $('#country-code'), + $btn = $('#find-btn'), + $accErr = $('#account-err'), + $caErr = $('#captcha-err'), + caCount = 4, //验证码位数 + hasPh = false, + hasCa = false; + + +require("jquery.placeholder"); + +function imgcode() { + var time = new Date(), + $captchaImg = $('#captcha-img'), + captchaImgSrc = $captchaImg.attr('src').split('?')[0]; + + $('#captcha-img').attr('src', captchaImgSrc + '?t=' + time.getTime()); +} + +function enableBtn() { + if (hasPh && hasCa) { + $btn.removeClass('disable').prop('disabled', false); + } else { + $btn.addClass('disable').prop('disabled', true); + } +} + +function authcode() { + if (!hasPh || !hasCa) { + enableBtn(); + return; + } + + $.ajax({ + type: 'POST', + url: '/passport/back/authcode', + data: { + verifyCode: $.trim($ca.val()), + phoneNum: $phoneNum.val(), + area: $cr.val() + } + + }).then(function(data) { + if (data.code === 200) { + hasCa = true; + } else if (data.code === 402) { + hasPh = false; + hasCa = true; + $accErr.removeClass('hide').find('em').text('该账号不存在'); + $phoneNum.addClass('error'); + } else if (data.code === 400) { + hasCa = false; + imgcode(); + } + enableBtn(); + }); +} + +function vaPn(v) { + var pass = true, + errTxt = ''; + + v = $.trim(v); + if (v !== '') { + if (/^[0-9]+$/.test(v)) { + if (phoneRegx[$cr.val()].test(v)) { + pass = true; + } else { + errTxt = '手机号码格式不正确, 请重新输入'; + pass = false; + } + } else { + if (emailReg.test(v)) { + pass = true; + } else { + errTxt = '邮箱格式不正确, 请重新输入'; + pass = false; + } + } + } else { + errTxt = '账户名不能为空'; + pass = false; + } + hasPh = pass; + authcode(); + + return { + pass: pass, + errTxt: errTxt + }; +} + +function vaCa() { + var v = $.trim($ca.val()); + + if (v === '' || v.length < caCount) { + hasCa = false; + enableBtn(); + return; + } + + hasCa = true; + + authcode(); +} + +emailAc($phoneNum, function() { + var pnVa = vaPn($phoneNum.val()); + + if (pnVa.pass) { + $accErr.addClass('hide'); + $phoneNum.removeClass('error'); + } else { + $accErr.removeClass('hide').find('em').text(pnVa.errTxt); + $phoneNum.addClass('error'); + } + } +); + +$ca.attr('maxlength', caCount); + +//IE8 placeholder +$('input').placeholder(); + +$('#change-captcha, #captcha-img').on('click', function() { + imgcode(); +}); + +$cc.on('click', function(e) { + e.stopPropagation(); + if ($ccList.css('style') === 'block') { + $ccList.slideUp('fast'); + } else { + $ccList.slideDown('fast'); + } +}); + +$ccList.delegate('li', 'click', function(e) { + var $cur = $(this), + code = $cur.data('cc'), + pnVa; + + e.stopPropagation(); + $cr.val(code); + $cc.find('em').html($cur.text()); + + //切换后验证手机号码 + if ($.trim($phoneNum.val()) !== '') { + pnVa = vaPn($phoneNum.val()); + enableBtn(); + if (hasPh) { + $accErr.addClass('hide'); + $phoneNum.removeClass('error'); + } else { + $accErr.removeClass('hide').text(pnVa.errTxt); + $phoneNum.addClass('error'); + } + } + $ccList.slideUp('fast'); +}); + +$(document).click(function() { + if ($ccList.css('display') === 'block') { + $ccList.slideUp(); + } +}); + +$phoneNum.keyup(function() { + vaPn($.trim($(this).val())); +}).focus(function() { + $(this).removeClass('error'); + + //focus隐藏错误提示 + $accErr.addClass('hide'); +}); + +//验证码在鼠标移开后验证, keyup时不再验证 +$ca.blur(function() { + var errTxt = $.trim($ca.val()) === '' ? '验证码不能为空' : '验证码不正确'; + + if (hasCa) { + $caErr.addClass('hide'); + $ca.removeClass('error'); + } else { + $caErr.removeClass('hide').find('em').text(errTxt); + $ca.addClass('error'); + + //验证码错误则刷新验证码 + if ($ca.val() < caCount) { + + //防止重复刷新验证码 + imgcode(); + } + } +}).focus(function() { + $(this).removeClass('error'); + + //focus隐藏错误提示 + $caErr.addClass('hide'); +}).keyup(function() { + vaCa(); +}); + +$('#find-btn').click(function(e) { + + if (/^[0-9]+$/.test($.trim($phoneNum.val()))) { + $('#find-form').attr('action', '/passport/back/mobile'); + } + if ($(this).hasClass('disable')) { + return; + } + if (!hasCa || !hasPh) { + e.preventDefault(); + return true; + } +}); +}); +define("js/passport/ac-email", ["jquery"], function(require, exports, module){ +/** + * 邮箱自动补全 + * @author:xuqi<qi.xu@yoho.cn> + * @date: 2016/2/22 + */ +var $ = require("jquery"); + +var mailPostfix = { + num: ['qq.com', '163.com', '126.com', 'sina.com', 'gmail.com', 'sohu.com', 'hotmail.com', '139.com', '189.com'], + other: ['gmail.com', 'qq.com', '163.com', '126.com', 'sina.com', 'sohu.com', 'hotmail.com', '139.com', '189.com'] +}; + +var emailAcTime; + +/** + * @param $input 需要自动完成的$对象 + * @param cb 鼠标移开/点击自动完成项后需要执行的操作(验证等) + */ +module.exports = function($input, cb) { + var ulHtml = '<ul id="email-autocomplete" class="email-autocomplete hide"></ul>'; + + var $emailAutoComplete; + + $input.parent().append(ulHtml); + + $emailAutoComplete = $('#email-autocomplete'); + + $input.on('keyup', function() { + var account = $.trim($(this).val()), + html = '', + accountMatch, + matchStr, + postfix, + i; + + //输入@时自动补全邮箱后缀 + //此处>0非错误,用于避免输入的第一个字符为@被识别为邮箱 + if (account.indexOf('@') > 0) { + accountMatch = account.match(/^[0-9]+@(.*)/); + if (accountMatch) { + + //数字邮箱补全 + postfix = mailPostfix.num; + matchStr = accountMatch[1]; + } else { + postfix = mailPostfix.other; + matchStr = account.match(/@(.*)/)[1]; + } + + for (i = 0; i < postfix.length; i++) { + if (postfix[i].indexOf(matchStr) > -1) { + html += '<li>' + account.slice(0, account.indexOf('@')) + '@' + postfix[i] + '</li>'; + } + } + + if (html !== '' && /.com$/.test(account) === false) { + $emailAutoComplete.html(html).removeClass('hide'); + } else { + + //隐藏autocomplete + $emailAutoComplete.html('').addClass('hide'); + } + } + }).on('blur', function() { + emailAcTime = setTimeout(function() { + + //未点击自动完成项 + $emailAutoComplete.addClass('hide'); + + cb && cb(); + }, 200); + }); + + //邮箱自动完成列表项点击 + $emailAutoComplete.on('click', 'li', function() { + clearTimeout(emailAcTime); //清空默认关闭 + + //点击自动完成项后进行验证 + $input.val($(this).text()).focus(); + + $emailAutoComplete.addClass('hide'); + + cb && cb(); + }); +}; +}); +define("js/passport/login", ["jquery","jquery.placeholder"], function(require, exports, module){ +/** + * 登录 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/11 + */ +var $ = require("jquery"); + +var $account = $('#account'), + $password = $('#password'), + $captcha = $('#captcha'); + +var $accountTip = $account.siblings('.err-tip'), + $passwordTip = $password.siblings('.err-tip'), + $captchaTip = $captcha.siblings('.err-tip'), + $capsLock = $('#caps-lock'); + +var $countryCodeHide = $('#country-code-hide'), + $countryCodeEm = $('#country-code > em'), + $countryList = $('#country-list'); + +var $emailAutoComplete = $('#email-autocomplete'); + +var mailPhoneRegx = require("js/passport/mail-phone-regx"); +var mailAc = require("js/passport/ac-email"); //邮箱自动完成 + +var $remember = $('.remember-me'); + +var captchaUrl = '/passport/images?t='; // /passport/images?t=1454464125 + +var $captchaWrap = $('.captcha-wrap'), + $captcha = $captchaWrap.find('#captcha'), + $captchaImg = $captchaWrap.find('#captcha-img'), + $captchaTip = $captchaWrap.find('.err-tip'); + +//checkbox status unicode +var checkbox = { + checked: '', + unchecked: '' +}; + +var authing = false; + +var emailAcTime; + +require("jquery.placeholder"); + +//验证账户名 +function validateAccount() { + var pass = false, + account = $.trim($account.val()), + countryCode = $countryCodeHide.val(), + err; + + if (account !== '') { + if (/^[0-9]+$/.test(account)) { + + //如果是纯数字,则作为手机号码处理 + if (countryCode !== '+86' || + mailPhoneRegx.phoneRegx[countryCode].test(account)) { + pass = true; + } else { + pass = false; + err = '手机号码不正确,请重新输入'; + } + } else { + if (mailPhoneRegx.emailRegx.test(account)) { + pass = true; + } else { + pass = false; + err = '邮箱格式不正确,请重新输入'; + } + } + } else { + err = '请输入账户名'; + } + + if (pass) { + $accountTip.addClass('hide'); + $account.removeClass('error'); + } else { + $accountTip.removeClass('hide').children('em').text(err); + $account.addClass('error'); + } + return pass; +} + +//验证密码 +function validatePassword() { + var pass = false, + password = $.trim($password.val()), + err; + + if (password !== '') { + if (password.length < 6) { + err = '请输入长度为6-20字符的密码'; + } else { + pass = true; + } + } else { + err = '请输入密码'; + } + + if (pass) { + $passwordTip.addClass('hide'); + $password.removeClass('error'); + } else { + $passwordTip.removeClass('hide').children('em').text(err); + $password.addClass('error'); + } + return pass; +} + +//验证验证码 +function validateCaptcha() { + var pass = false, + captcha = $.trim($captcha.val()), + err; + + // 验证码不可见的时候不验证 + if ($captchaWrap.is(':hidden')) { + return true; + } + + if (captcha !== '') { + if (captcha.length !== 4) { + err = '请输入长度为4字符的验证码'; + } else { + pass = true; + } + } else { + err = '请输入验证码'; + } + + if (pass) { + $captchaTip.addClass('hide'); + $captcha.removeClass('error'); + } else { + $captchaTip.removeClass('hide').children('em').text(err); + $captcha.addClass('error'); + } + return pass; +} + +//验证 +function validate() { + var pass = true, + account = $.trim($account.val()), + password = $.trim($password.val()); + + if (account !== '') { + pass = validateAccount() && validatePassword() && validateCaptcha(); + } else { + pass = false; + $account.addClass('error'); + + if (password === '') { + + //账户名和密码都为空的情况下点击登陆,只在账户输入框后显示错误提示 + $accountTip.addClass('both-error').removeClass('hide').children('em').text('请输入账户名和密码'); + $passwordTip.addClass('hide'); + $password.addClass('error'); + } else { + $accountTip.removeClass('hide').children('em').text('请输入账户名'); + } + } + + return pass; +} + +//密码错误次数,超过三次显示验证码 +function vaAccountErrTimes() { + $captchaImg.attr('src', captchaUrl + $.now()); + $captcha.val(''); + $captchaWrap.removeClass('hide'); +} + +//登录 +function login() { + var pass = validate(); + + if (pass && authing === false) { + authing = true; + + $.ajax({ + url: '/passport/login/auth', + type: 'POST', + data: { + areaCode: $countryCodeHide.val().replace('+', ''), + account: $.trim($account.val()), + password: $.trim($password.val()), + captcha: $.trim($captcha.val()), + isRemember: $remember.hasClass('checked') ? true : false + }, + success: function(res) { + if (res.code === 200) { + if (res.data) { + + //防止data.data为undefined时下行语句执行出错而导致脚本不能走到complete去处理authing + location.href = res.data.session; + } + } else { + if (res.data.errorType === 'captcha') { + $captchaTip.removeClass('hide').children('em').html(res.message); + $captcha.addClass('error').val(''); + } else { + $passwordTip.removeClass('hide').children('em').html(res.message); + $password.addClass('error').val(''); + } + + //验证错误次数 + if (res.data && res.data.needCaptcha) { + vaAccountErrTimes(); + } + } + }, + complete: function() { + authing = false; + } + }); + } +} + +mailAc($account, function() { + if (validateAccount()) { + $.ajax({ + url: '/passport/login/account', + type: 'GET', + data: { + account: $.trim($account.val()) + } + }).then(function(res) { + if (res.data && res.data.needCaptcha) { + vaAccountErrTimes(); + } + }); + } + } +); + +$('[placeholder]').placeholder(); + +//展开地区列表 +$('#country-code').on('click', function() { + if ($countryList.css('display') === 'none') { + $countryList.slideDown(); + } +}); + +//选中地区列表项 +$countryList.on('click', 'li', function() { + var $this = $(this), + cc = $this.data('cc'); + + $countryCodeEm.html($this.html()); + + $countryCodeHide.val(cc); + + $countryList.slideUp(); +}); + +//点击其他区域,收起区域列表 +$(document).on('click', function(e) { + if ($(e.target).closest('#country-code').length > 0) { + return; + } + + if ($countryList.css('display') === 'block') { + $countryList.slideUp(); + } +}); + +//密码 +$password.on('blur', function() { + validatePassword(); + + if ($capsLock.hasClass('hide')) { + return; + } + + $capsLock.addClass('hide'); +}).on('keypress', function(e) { + var code = e.which; + + //CapsLock检测 + if (code >= 65 && code <= 90) { + $capsLock.removeClass('hide'); + return; + } + $capsLock.addClass('hide'); +}); + +// 验证码 +$captcha.on('blur', function() { + validateCaptcha(); +}); + +//邮箱自动完成列表项点击 +$emailAutoComplete.on('click', 'li', function() { + clearTimeout(emailAcTime); //清空默认关闭 + + $account.val($(this).text()).focus(); + + $emailAutoComplete.addClass('hide'); +}); + +//记住登录状态 +$remember.on('click', function() { + var $this = $(this); + + $this.toggleClass('checked'); + + if ($this.hasClass('checked')) { + $this.children('i').html(checkbox.checked); + } else { + $this.children('i').html(checkbox.unchecked); + } +}); + +//focus到输入框则隐藏错误提示和样式 +$('.va').on('focus', function() { + var $this = $(this); + + $this.removeClass('error'); + + $this.siblings('.err-tip').addClass('hide'); +}); + +// 验证码刷新 +$captchaWrap.on('click', '.change-captcha, .captcha-img', function() { + $captchaImg.attr('src', captchaUrl + $.now()); +}); + +//登录 +$('#login-btn').on('click', login); + +//Enter登录 +$('input.va').on('keypress', function(e) { + if (e.which === 13) { + login(); + } +}); + +// 初始:只带账户名的页面,密码输入获得焦点 +if (($account.val() !== '' || $account.val() === $account.attr('placeholder')) && + $password.val() === '') { + $password.focus(); +} +}); +define("js/passport/reset", ["jquery","jquery.placeholder"], function(require, exports, module){ +/** + * 找回密码 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/14 + */ + +var $ = require("jquery"); + +var $pwd = $('#pwd'), + $repwd = $('#re-input'), + $next = $('#reset-pwd-btn'), + $pwdErr = $('#pwd-err'), + $repwdErr = $('#repwd-err'), + $pwdTips = $('#pwd-tips'); + +var hasNoErrPw = false; + +var $pwdIntensity = $('.pwd-intensity'), + $pwdParent = $pwdIntensity.closest('.pwd-intensity-container'), + $pwdTip1 = $('#pwd-tip1'); + +var pwdRegx = require("js/passport/mail-phone-regx").pwdValidateRegx; + +require("jquery.placeholder"); + + +/* + * 计算密码复杂度 + */ + +function gettype(str, i) { + if (str.charCodeAt(i) >= 48 && str.charCodeAt(i) <= 57) { + return 1; + } else if (str.charCodeAt(i) >= 97 && str.charCodeAt(i) <= 122) { + return 2; + } else if (str.charCodeAt(i) >= 65 && str.charCodeAt(i) <= 90) { + return 3; + } + + return 4; +} + +function isregular(cur, pre, type) { + var curCode = cur.charCodeAt(0); + var preCode = pre.charCodeAt(0); + + if (curCode - preCode === 0) { + return true; + } + + if (type !== 4 && (curCode - preCode === 1 || curCode - preCode === -1)) { + return true; + } + + return false; +} + +function getcomplex(curType, preType) { + if (preType === 0 || curType === preType) { + return 0; + } else if (curType === 4 || preType === 4) { + return 2; + } else { + return 1; + } +} + +function computeComplex(password) { + var complex = 0, + length = password.length, + pre = '', + preType = 0, + i = 0, + cur, + curType; + + + for (i = 0; i < length; i++) { + cur = password.charAt(i); + curType = gettype(password, i); + + if (preType !== curType || !isregular(cur, pre, curType)) { + complex += curType + getcomplex(curType, preType); + } + + pre = cur; + preType = curType; + } + + return complex; +} + +function pwdKeyupEvt() { + var pwd = $pwd.val(), + pwdStrength = computeComplex(pwd), + level = 0; + + //TODO:自定义密码强度规则,需要修正 + if (pwdStrength === 0) { + level = 0; + } else if (pwdStrength <= 10) { + level = 1; + } else if (pwdStrength <= 20) { + level = 2; + } else { + level = 3; + } + switch (level) { + case 0: + $pwdParent.removeClass('red yellow green'); + $pwdIntensity.removeClass('color'); + break; + case 1: + $pwdParent.addClass('red').removeClass('yellow green'); + $pwdIntensity.filter('.low').addClass('color'); + $pwdIntensity.filter('.mid,.high').removeClass('color'); + break; + case 2: + $pwdParent.addClass('yellow').removeClass('red green'); + $pwdIntensity.filter('.low,.mid').addClass('color'); + $pwdIntensity.filter('.high').removeClass('color'); + break; + case 3: + $pwdParent.addClass('green').removeClass('yellow red'); + $pwdIntensity.addClass('color'); + break; + } + + //提示框 + if (pwd === '') { + $pwdTip1.removeClass('red yes no').addClass('default'); + } else if (pwd.length < 6 || pwd.length > 20) { + $pwdTip1.removeClass('default yes').addClass('no red'); + } else { + $pwdTip1.removeClass('default no red').addClass('yes'); + } + + if (pwdRegx.test(pwd)) { + hasNoErrPw = true; + } else { + hasNoErrPw = false; + } +} + +//IE8 placeholder +$('input').placeholder(); + +$('.va').keyup(function() { + var pass = true; + + if ($(this).hasClass('pwd')) { + pwdKeyupEvt(); + } else { + if ($(this).val() === '') { + pass = false; + } + } + if (pass && hasNoErrPw && $pwd.val() === $repwd.val()) { + pass = true; + } else { + pass = false; + } + if (pass) { + $next.removeClass('disable').prop('disabled', false); + } else { + $next.addClass('disable').prop('disabled', true); + } +}).blur(function() { + var $this = $(this), + v = $this.val(); + + if ($this.hasClass('pwd')) { + if (v === '') { + $this.addClass('error'); + $pwdErr.removeClass('hide').find('em').text('请输入密码'); + } else if (v.length < 6 || v.length > 20) { + $this.addClass('error'); + $pwdErr.removeClass('hide').find('em').text('密码只支持6-20位'); + } else if (!pwdRegx.test(v)) { + $this.addClass('error'); + $pwdErr.removeClass('hide').find('em').text('密码须字母和数字组合'); + } else { + $pwdErr.addClass('hide'); + if ($repwd.val() !== '') { + if (v !== $repwd.val()) { + $repwd.addClass('error'); + $repwdErr.removeClass('hide').find('em').text('两次密码输入不一致,请重新输入'); + } else { + $repwd.removeClass('error'); + $repwdErr.addClass('hide'); + } + } + } + } else { + if (v === '') { + $this.addClass('error'); + $repwdErr.removeClass('hide').find('em').text('请输入密码确认'); + } else { + if ($pwd.val() !== '' && v !== $pwd.val()) { + $this.addClass('error'); + $repwdErr.removeClass('hide').find('em').text('两次密码输入不一致,请重新输入'); + } else { + $this.removeClass('error'); + $repwdErr.addClass('hide'); + } + } + } +}).focus(function() { + $(this).removeClass('error'); + + //focus后错误提示隐藏 + if ($(this).hasClass('pwd')) { + $pwdErr.addClass('hide'); + } else { + $repwdErr.addClass('hide'); + } +}); + +$pwd.focus(function() { + $pwdErr.addClass('hide'); + $pwdTips.removeClass('hide'); +}).blur(function() { + $pwdTips.addClass('hide'); +}); + +$('#pwd, #repwd').keydown(function(e) { + var code = e.keyCode || e.which; + + //空格输入过滤 + if (code === 32) { + e.preventDefault(); + return; + } +}); + +}); +define("js/passport/vertification", ["jquery"], function(require, exports, module){ +/** + * 验证手机 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/14 + */ + +var $ = require("jquery"); + +var $sc = $('#send-captcha'), + $msgTip = $('#captcha-tip'), + $errTip = $('#err-tip'), + $next = $('#next-step'), + seconds, + itime; + +$sc.click(function() { + $.post('/passport/back/sendbackmobile', { + mobile: $('#mobile').val(), + area: $('#area').val(), + verifyCode: $('#captchaPic').val() + }, function(jsonData) { + if (jsonData.code === 200) { + $errTip.hide(); + if ($(this).hasClass('disable')) { + return; + } + seconds = 60; + + //$sc.addClass('disable').prop('disabled', true); + $sc.addClass('disable').attr('disabled', true); + $msgTip.removeClass('hide'); + + $sc.val(seconds-- + '秒后可重新操作'); + itime = setInterval(function() { + if (seconds === 0) { + clearInterval(itime); + + //$sc.val('发送验证码').removeClass('disable').prop('disabled', false); + $sc.val('发送验证码').removeClass('disable').removeAttr('disabled'); + } else { + $sc.val(seconds-- + '秒后可重新操作'); + } + }, 1000); + } else { + $(this).addClass('error'); + $errTip.removeClass('hide').text('发送失败'); + } + }); +}); + +seconds = 60; + +//$sc.addClass('disable').prop('disabled', true); +$sc.addClass('disable').attr('disabled', true); +$msgTip.removeClass('hide'); + +$sc.val(seconds-- + '秒后可重新操作'); +itime = setInterval(function() { + if (seconds === 0) { + clearInterval(itime); + + //$sc.val('发送验证码').removeClass('disable').prop('disabled', false); + $sc.val('发送验证码').removeClass('disable').removeAttr('disabled'); + } else { + $sc.val(seconds-- + '秒后可重新操作'); + } +}, 1000); + + +$('#captcha').keyup(function() { + var v = $.trim($(this).val()), + that = this; + + if (v.length === 4) { + $.ajax({ + type: 'POST', + url: '/passport/back/backmobile', + dataType: 'json', + data: { + code: $('#captcha').val(), + verifyCode: $('#captchaPic').val(), + area: $('#area').val(), + mobile: $('#mobile').val() + }, + success: function(res) { + if (res.code === 200) { + + //添加验证码正确验证 + $next.removeClass('disable').attr('href', res.data); + $errTip.addClass('hide'); + $(that).removeClass('error'); + } else { + $next.addClass('disable'); + $errTip.removeClass('hide').find('em').text('验证码输入错误'); + $(that).addClass('error'); + } + } + }); + } else { + $next.addClass('disable').attr('href', 'javascript:;'); + } +}).blur(function() { + var v = $.trim($(this).val()); + + if (v === '') { + + //添加验证码正确验证 + $(this).addClass('error'); + $errTip.removeClass('hide').text('请输入验证码'); + } +}).focus(function() { + $(this).removeClass('error'); +}); +}); +define("js/passport/thirdlogin", ["jquery"], function(require, exports, module){ +/** + * 第三方登录首页 + * @author: wq + * @date: 2016/1/21 + */ +var $ = require("jquery"); +var phoneRegx = require("js/passport/mail-phone-regx").phoneRegx; + +var nopermissionoption = $('#nopermissionmessage').html(); //倒计时dom +var sendmessagehtml = $('.validatewrapper').html(); //发送短信dom +var second = +$('.second').text(); //倒计时秒数 +var dovalidate = false; //校验验证码标识 +var validatecode = false; //验证码是否通过 +var choosedpic = '//cdn.yoho.cn/yohobuy/assets/img/passport/choosed.png';//已选择图片 + +var $wrapper = $('.bindwrapper'), + $phoneTip = $wrapper.find('.phone-err-tip'), + $nextBtn = $wrapper.find('.yohobindbtn'); + +/** + * 选择协议 + * @return {[type]} [description] + */ +function chooseProtocol() { + $('.choosetag').on('change', function() { + var btnColor = '#f02200'; + + if ($(this).attr('checked') === 'checked') { + $('.choosewrapper').css({ + 'background-image': 'url("' + choosedpic + '")' + }); + } else { + $('.choosewrapper').css({ + 'background-image': 'none' + }); + btnColor = '#CCCCCC'; + } + $nextBtn.css({ + 'background-color': btnColor + }); + }); +} +/** + * 判断是否同意协议 + * @return {[type]} [description] + */ +function isagree() { + return $('.choosetag').attr('checked') === 'checked'; +} +/** + * 选择区域的开关 + * @return {[type]} [description] + */ +function chooseAreaToogle() { + $('.optionshow').on('click', function() { + $('.optionslist').toggleClass('hide'); + }); +} + +/** + * 验证码校验 + * @return {[type]} [description] + */ +function codeValidate() { + var validatenum = ''; + + $(document).on('keyup', '#validatenum', function() { + validatenum = $(this).val(); + if (validatenum.length === 4) { + if (!dovalidate) { + dovalidate = true; + $.ajax({ + type: 'POST', + url: '/passport/autouserinfo/checkBindMsg', + data: { + code: validatenum, + mobile: $('#mobile').val(), + area: $('#areacode').val() + } + }).then(function(data) { + dovalidate = false; + if (data.code === 200) { + validatecode = true; + } else { + alert(data.message); + } + }); + } + } + }); + + $('#validatenum').focus(function() { + $(this).removeAttr('placeholder'); + }).blur(function() { + $(this).attr('placeholder', '验证码'); + }); +} + +/** + * 选择区域 + * @return {[type]} [description] + */ +function chooseArea() { + $('.optionitem').on('click', function() { + var $option = $(this); + var areanum = $option.attr('areanum'); + var areaname = $option.text(); + + $('#areaname').text(areaname); + $('#areanum').text(areanum); + $('#areacode').val(areanum); + $('.optionslist').addClass('hide'); + }); +} +/** + * 取消选择区域 + * @return {[type]} [description] + */ +function cancelChooseArea() { + $(document).on('click', 'body', function(e) { + var $target = $(e.target); + + if ($target.hasClass('yohoselectarea') || + $target.hasClass('areaname') || + $target.hasClass('righttag') || + $target.hasClass('optionslist') || + $target.hasClass('optionitem')) { + return; + } else { + $('.optionslist').addClass('hide'); + } + }); +} +/** + * 去掉区域号的加号 + * @return {[type]} [description] + */ +function fixAreaNum() { + var $opitem = ''; + var itemarecode = ''; + + $('.optionitem').each(function() { + $opitem = $(this); + itemarecode = $opitem.attr('areanum').replace(/\+/g, ''); + $opitem.attr('areanum', itemarecode); + }); +} + +/** + * 关闭蒙层 + * @return {[type]} [description] + */ +function closeMask() { + var $target; + + $(document).on('click', '#alreayregist', function(e) { + $target = $(e.target); + if ($target.hasClass('mask') || $target.hasClass('backdrop')) { + $('#alreayregist').hide(); + $('.backdrop').hide(); + } + }); + $(document).on('click', '#bindconfirm', function(e) { + $target = $(e.target); + if ($target.hasClass('mask') || $target.hasClass('backdrop')) { + $('#bindconfirm').hide(); + $('.backdrop').hide(); + } + }); +} +/** + * 绑定其他手机号 + * @return {[type]} [description] + */ +function yohoBindBtn() { + $(document).on('click', '#yohobindbtn', function(e) { + $('.phonenum').val(''); + $('#bindconfirm').hide(); + $('.backdrop').hide(); + }); + $(document).on('click', '#yohobindbtn2', function(e) { + $('.phonenum').val(''); + $('#alreayregist').hide(); + $('.backdrop').hide(); + }); +} +/** + * 发送短信的时间变换动画 + * @return {[type]} [description] + */ +function changeSecond() { + second -= 1; + if (second < 0) { + second = 60; + $('.validatewrapper').html(sendmessagehtml); + return; + } else { + $('.second').text(second); + window.setTimeout(changeSecond, 1000); + } + +} +/** + * 时间循环 + * @param {[type]} phonenum [description] + * @return {[type]} [description] + */ +function circleTime(phonenum) { + $('.validatewrapper').html(nopermissionoption); + window.setTimeout(changeSecond, 1000); +} +/** + * 发送短信 + * @return {[type]} [description] + */ +function sendMessageValidate() { + $(document).on('click', '#sendmessage', function() { + if ($('#sendmessage').attr('disabled') === 'disabled') { + return; + } + circleTime($('#mobile').val()); + $.ajax({ + type: 'POST', + url: '/passport/autouserinfo/sendBindMsg', + data: { + mobile: $('#mobile').val(), + area: $('#areacode').val() + } + }).then(function(data) { + if (data.code !== 200) { + alert(data.message); + } + }); + + }); +} + +/** + * 最终提交表单 + */ +function actionSubmit() { + var mobile = ''; + var area = ''; + + area = $('#areacode').val(); + mobile = $('#mobile').val(); + $.ajax({ + type: 'POST', + url: '/passport/autouserinfo/bindMobile', + data: { + area: area, + openId: $('#openId').val(), + sourceType: $('#sourceType').val(), + mobile: mobile, + code: $('#validatenum').val() + } + }).then(function(data) { + if (data.code === 200) { + if (data.data && data.data.refer) { + window.location.href = data.data.refer; + } else { + window.location.href = '/passport/thirdlogin/bindsuccess'; + } + } else { + alert(data.message); + } + }); +} + +/** + * 确认去绑定 + * @return {[type]} [description] + */ +function goToBindPhone() { + $(document).on('click', '#gotobindphone', function() { + if (validatecode === true) { + $('#inarea').val($('#areacode').val()); + $('#inmobile').val($('#mobile').val()); + actionSubmit(); + } else { + alert('请输入正确验证码'); + } + }); +} +/** + * 点击下一步 + * @return {[type]} [description] + */ +function nextStep() { + var openId = ''; + var sourceType = ''; + var mobile = ''; + var areaCode = ''; + var username = ''; + var headImg = ''; + + $('#bindfirststep').on('click', function(e) { + var regx; + + e.preventDefault(); + mobile = $('.phonenum').val(); + areaCode = $('#areanum').text(); + regx = phoneRegx['+' + areaCode]; + + if (!isagree()) { + return; + } + if (mobile === '' || !regx || !regx.test(mobile)) { + $phoneTip.find('em').text('手机格式错误'); + $phoneTip.removeClass('hide'); + return; + } + openId = $('#openId').val() || '29803EC6D4AAC3AAB8ABDB6AE829D579'; + sourceType = $('#sourceType').val() || 'qq'; + $.ajax({ + type: 'post', + url: '/passport/autouserinfo/bindCheck', + data: { + mobile: mobile, + area: areaCode, + openId: openId, + sourceType: sourceType + }, + dataType: 'json', + success: function(data) { + var winHeight = $(window).height(); + + if (data.code === 200) { + $('#bindmobileform').attr('action', data.data.next); + $('#bindmobileform').submit(); + } else if (data.code === 201) { + + // 已注册 未绑定 + username = data.data.user.username; + headImg = data.data.user.headImg; + $('#registphone').text(mobile); + $('#username').text(username); + if (headImg === '') { + $('#userphoto').attr('src', '//img10.static.yhbimg.com/headimg/2013/11/28/09/' + + '01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100'); + } else { + $('#userphoto').attr('src', headImg); + } + $('#logindirectly2').attr('href', data.data.user.bindLogin); + $('.backdrop').show(); + $('#sendmessage').click(); + $('#alreayregist .mask').css({ + 'padding-top': winHeight > 440 ? winHeight / 2 : 217 + }); + $('#alreayregist').show(); + } else if (data.code === 203) { + + // 已注册 可关联 + $('#bindmobileform').attr('action', data.data.next); + $('#bindmobileform').submit(); + } else if (data.code === 205) { + + // 未注册 不可关联 + username = data.data.user.username; + headImg = data.data.user.headImg; + $('#registphonetwo').text(mobile); + $('#username1').text(username); + if (headImg === '') { + $('#userphoto1').attr('src', '//img10.static.yhbimg.com/headimg/2013/11/28/09/' + + '01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100'); + } else { + $('#userphoto1').attr('src', headImg); + } + $('#logindirectly').attr('href', data.data.user.bindLogin); + $('.backdrop').show(); + $('#bindconfirm .mask').css({ + 'padding-top': winHeight > 440 ? winHeight / 2 : 217 + }); + $('#bindconfirm').show(); + } else if (data.code === 402) { + $phoneTip.find('em').text('手机格式错误'); + $phoneTip.removeClass('hide'); + } else { + if (data && data.message) { + alert(data.message); + } + } + } + }); + }); +} + +$wrapper.on('keydown', '.phonenum', function(e) { + if (e.keyCode === 13) { + $nextBtn.trigger('click'); + return false; + } +}); + +function init() { + fixAreaNum(); //去掉所有区域的+ + sendMessageValidate(); //有交互的发送短信 + chooseProtocol(); //选择协议 + chooseArea(); //选择区域 + chooseAreaToogle(); //选择区域展示或关闭 + cancelChooseArea(); //取消选择区域 + nextStep(); //下一步 + closeMask(); //关闭蒙层 + yohoBindBtn(); //绑定其他手机号点击 + goToBindPhone(); //绑定手机 + codeValidate(); //验证码校验 +} +init(); +}); +define("js/passport/third-pwd", ["jquery"], function(require, exports, module){ +/** + * 第三方绑定完善个人信息 + * @author: wq + * @date: 2016/1/27 + */ +var $ = require("jquery"); +var dovalidate = false; //校验验证码的标识 +var isvalidatecode = false; //是否验证成功的标识 +var isvalidatepwd = false; //密码验证是否通过的标识 +var second = ''; //倒计时时间 +var nopermissionoption = ''; //倒计时的dom +var sendmessagehtml = ''; //发送短信的dom +var submitStatus = false; //信息提交状态 + +var $wrapper = $('.bindwrapper'), + $codeTip = $wrapper.find('.code-err-tip'), + $pwdTip = $wrapper.find('.pwd-err-tip'), + $pwdTip2 = $('#pwd-tip2'), + $sendMsgBtn = $('#sendmessage'); +var $pwd, + $pwdParent, + $pwdTip1, + $pwdIntensity; + +var pwdRegx = require("js/passport/mail-phone-regx").pwdValidateRegx; +var mobile = $('#mobile').val(), + area = $('#area').val(); + +nopermissionoption = $('#nopermissionmessage').html(); +sendmessagehtml = $('.validatewrapper').html(); +second = +$('.second').text(); + + +function gettype(str, i) { + if (str.charCodeAt(i) >= 48 && str.charCodeAt(i) <= 57) { + return 1; + } else if (str.charCodeAt(i) >= 97 && str.charCodeAt(i) <= 122) { + return 2; + } else if (str.charCodeAt(i) >= 65 && str.charCodeAt(i) <= 90) { + return 3; + } + + return 4; +} + +function isregular(cur, pre, type) { + var curCode = cur.charCodeAt(0); + var preCode = pre.charCodeAt(0); + + if (curCode - preCode === 0) { + return true; + } + + if (type !== 4 && (curCode - preCode === 1 || curCode - preCode === -1)) { + return true; + } + + return false; +} + + +function getcomplex(curType, preType) { + if (preType === 0 || curType === preType) { + return 0; + } else if (curType === 4 || preType === 4) { + return 2; + } else { + return 1; + } +} + + +/** + * @desc: 计算密码复杂度(from://www.oschina.net/code/snippet_127301_17269) + * @author: xuqi(qi.xu@yoho.cn) + * @date: 2015/5/6 + */ +function computeComplex(password) { + var complex = 0; + var length = password.length; + var pre = ''; + var preType = 0; + var i = 0; + var cur = ''; + var curType = ''; + + for (i; i < length; i++) { + cur = password.charAt(i); + curType = gettype(password, i); + if (preType !== curType || !isregular(cur, pre, curType)) { + complex += curType + getcomplex(curType, preType); + } + pre = cur; + preType = curType; + } + + return complex; +} + +function showErrTip($dom, info) { + $dom.find('em').text(info); + $dom.removeClass('hide'); +} + +function changeSecond() { + second -= 1; + if (second < 0) { + second = 60; + $('.validatewrapper').html(sendmessagehtml); + return; + } else { + $('.second').text(second); + window.setTimeout(changeSecond, 1000); + } + +} +/** + * 启动倒计时 + * @return {[type]} [description] + */ +function circleTime() { + $('.validatewrapper').html(nopermissionoption); + window.setTimeout(changeSecond, 1000); +} + +function sendMessageValidate() { + $(document).on('click', '#sendmessage', function() { + circleTime(); + $.ajax({ + type: 'POST', + url: '/passport/autouserinfo/sendBindMsg', + data: { + mobile: mobile, + area: area + } + }).then(function(data) { + if (data.code !== 200) { + alert(data.message); + } + }); + + }); +} + + + +function codeValidate() { + var validatenum = ''; + + $(document).on('keyup', '#validatenum', function() { + $('#err-info').hide(); + validatenum = $(this).val(); + if (validatenum.length === 4) { + if (!dovalidate) { + dovalidate = true; + $.ajax({ + type: 'POST', + url: '/passport/autouserinfo/checkBindMsg', + data: { + code: validatenum, + mobile: mobile, + area: area + } + }).then(function(data) { + dovalidate = false; + if (data.code !== 200) { + $('#err-info').show(); + } else { + isvalidatecode = true; + } + }); + } + } + }); +} + +function pwdKeyupEvt() { + var pwd = $pwd.val(), + pwdStrength = computeComplex(pwd), + level = 0; + + if (pwdStrength === 0) { + level = 0; + } else if (pwdStrength <= 10) { + level = 1; + } else if (pwdStrength <= 20) { + level = 2; + } else { + level = 3; + } + switch (level) { + case 0: + $pwdParent.removeClass('red yellow green'); + $pwdIntensity.removeClass('color'); + break; + case 1: + $pwdParent.addClass('red').removeClass('yellow green'); + $pwdIntensity.filter('.low').addClass('color'); + $pwdIntensity.filter('.mid,.high').removeClass('color'); + break; + case 2: + $pwdParent.addClass('yellow').removeClass('red green'); + $pwdIntensity.filter('.low,.mid').addClass('color'); + $pwdIntensity.filter('.high').removeClass('color'); + break; + case 3: + $pwdParent.addClass('green').removeClass('yellow red'); + $pwdIntensity.addClass('color'); + break; + } + if (pwd === '') { + isvalidatepwd = false; + $pwdTip1.removeClass('red yes no').addClass('default'); + } else { + if (pwd.length < 6 || pwd.length > 20) { + isvalidatepwd = false; + $pwdTip1.removeClass('default yes').addClass('no red'); + } else { + isvalidatepwd = true; + $pwdTip1.removeClass('default no red').addClass('yes'); + } + if (/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]*$/.test(pwd)) { + $pwdTip2.removeClass('default no red').addClass('yes'); + } else { + $pwdTip2.removeClass('default yes').addClass('no red'); + } + } +} + +function validatePwd() { + $(document).on('keyup', '.pwdcontent', function() { + pwdKeyupEvt($(this)); + }); + $(document).on('focus', '.pwdcontent', function() { + $('#pwd-tips').removeClass('hide'); + }); + $(document).on('blur', '.pwdcontent', function() { + $('#pwd-tips').addClass('hide'); + }); +} + +/** + * 最终提交表单 + */ +function actionSubmit() { + var pwd = ''; + var code = ''; + + // 查看提交状态,避免重复提交 + if (submitStatus) { + return; + } + submitStatus = true; + setTimeout(function() { + submitStatus = false; + }, 50000); + + pwd = $('#pwd').val(); + code = $('#validatenum').val(); + $.ajax({ + type: 'POST', + url: '/passport/autouserinfo/bindMobile', + data: { + area: area, + openId: $('#openId').val(), + sourceType: $('#sourceType').val(), + mobile: mobile, + password: pwd, + code: code + } + }).then(function(data) { + submitStatus = false; + if (data.code === 200) { + if (data.data && data.data.refer) { + window.location.href = data.data.refer; + } else { + window.location.href = '/passport/thirdlogin/bindsuccess'; + } + } else { + alert(data.message); + } + }); +} +/** + * 确定完善信息 + * @return {[type]} [description] + */ +function actionConfirm() { + var validatenum = ''; + var pwd = ''; + + $('#confirmsubmit').on('click', function() { + var isAssess = true; + + validatenum = $('#validatenum').val(); + pwd = $('#pwd').val(); + + if (validatenum === '') { + showErrTip($codeTip, '短信验证码不能为空'); + isAssess = false; + } else if (isvalidatecode === false) { + showErrTip($codeTip, '请输入正确的验证码'); + isAssess = false; + } + + if (pwd === '') { + showErrTip($pwdTip, '密码不能为空'); + isAssess = false; + } else if (pwd.length < 6 || pwd.length > 20) { + showErrTip($pwdTip, '密码只支持6-20位字符'); + isAssess = false; + } else if (!pwdRegx.test(pwd)) { + showErrTip($pwdTip, '密码须由字母和数字组合'); + isAssess = false; + } else if (isvalidatepwd === false) { + showErrTip($pwdTip, '请输入符合强度的密码'); + isAssess = false; + } + + if (!isAssess) { + return; + } + + actionSubmit(); + }); +} + + + +function init() { + $pwd = $('#pwd'); + $pwdParent = $('.safelevel'); + $pwdIntensity = $('.pwd-intensity'); + $pwdTip1 = $('#pwd-tip1'); + sendMessageValidate(); + codeValidate(); + validatePwd(); + actionConfirm(); + if (mobile && area) { + $sendMsgBtn.click(); + } +} + +init(); + +}); +define("js/passport/relate", ["jquery"], function(require, exports, module){ +/** + * 第三方关联 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/4/11 + */ +var $ = require("jquery"); + +var $relateMain = $('#relate-main'), + $codeValidate = $('#code-validate'), + $vaWrapper = $codeValidate.find('.validate-wrapper'), + $msgCode = $codeValidate.find('.msg-code'), + $second = $codeValidate.find('.count-down span'), + $errTip = $codeValidate.find('.code-error'), + $hideDom = $('#hide-info'); + +var relate = {}; + +var circleTime = {}; + +relate = $hideDom.data(); +$hideDom.remove(); + +// 倒计时 +circleTime = { + init: function() { + if (this.timer) { + window.clearTimeout(this.timer); + } + this.second = 60; + $vaWrapper.addClass('waiting'); + this.changeTime(); + }, + changeTime: function() { + var that = this; + + if (this.second && this.second > 0) { + $second.text(this.second); + this.second--; + this.timer = window.setTimeout(function() { + that.changeTime(); + }, 1000); + } else { + this.clearTime(); + } + }, + clearTime: function() { + if (this.timer) { + window.clearTimeout(this.timer); + } + $vaWrapper.removeClass('waiting'); + } +}; + +function sendVerifyMsg() { + circleTime.init(); + + $.ajax({ + type: 'POST', + url: '/passport/autouserinfo/sendBindMsg', + data: { + mobile: relate.mobile, + area: relate.area + } + }).then(function(jsonData) { + if (jsonData && jsonData.code !== 200) { + circleTime.clearTime(); + alert(jsonData.message); + } + }); +} + +function relateMobile() { + var code = $msgCode.val(); + + if (!code) { + return; + } + + $.ajax({ + type: 'POST', + url: '/passport/autouserinfo/relateMobile', + data: { + mobile: relate.mobile, + area: relate.area, + openId: relate.openid, + sourceType: relate.source, + code: code + } + }).then(function(jsonData) { + if (jsonData.code === 200) { + window.location.href = jsonData.data.refer; + } else if (jsonData.code === 402) { + $errTip.removeClass('hide'); + } else { + $errTip.addClass('hide'); + alert(jsonData.message); + } + }); +} + +$('#next-step-btn').click(function() { + sendVerifyMsg(); + $relateMain.addClass('hide'); + $errTip.addClass('hide'); + $codeValidate.removeClass('hide'); +}); + +$codeValidate.on('keydown', '.msg-code', function(e) { + if (e.keyCode === 13) { + relateMobile(); + return false; + } +}); + +$codeValidate.on('click', '.get-code', function() { + sendVerifyMsg(); +}); + +$codeValidate.on('click', '.perv-step', function() { + circleTime.clearTime(); + $relateMain.removeClass('hide'); + $codeValidate.addClass('hide'); + $msgCode.val(''); +}); + +$('#relate-btn').click(function() { + relateMobile(); +}); +}); +define("js/cart/cart", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * @description: 购物车 + * @author: chenglong.wang@yoho.cn + * @tips: 购物车的商品计价在服务端处理,客户端只要在每次操作后刷新页面重新渲染就可以了 + */ + +var $ = require("jquery"); +var Handlerbars = require("handlebars"); +var dialog = require("js/common/dialog"); + +var Confirm = dialog.Confirm; +var Alert = dialog.Alert; + +var $cartnewSum = $('.cartnew-sum'), + $cartnewTips = $('.cartnew-tips'), + $payWapper = $('.pay-wapper'), + $goodsDetail = $('.goods-detail'), + $histroy = $('.histroy'), + $together = $('.together'), + $shopCart = $('.shop-cart'), + togetherProductSource, + togetherProductTemplate, + togetherProductStr, + subjoinPage, + subjoinPageNum, + subjoinPageAll, + pageDom, + selected, + pageNum = 1, + delUrl, + count, + countJSON, + dataJSON, + pacList = 0, + shopNum = 1, + shopNumAll, + productSku, + promotionId, + promotionPrice, + yetCollect, + collect, + content, + productId, + shopName, + delNum, + understock, + selectArray = [], + PromotionArray = [], + perList = false, + commonList = false, + hasPromotion = false, + htmlInfo, + shopJson, + oldprice, + wapperPrice, + countBusy = false; + + +// 关闭温馨提示 +$cartnewTips.find('.btn_close').click(function() { + $cartnewTips.fadeOut(); +}); + +// checkbox提交ajax +function choiceOut(data) { + $.ajax({ + type: 'POST', + dataType: 'json', + url: '/cart/index/select', + data: data, + beforeSend: function() { + $('.loading').css({ + top: $(document).scrollTop() + 200 + }); + $('.loading').show(); + } + }).then(function(d) { + if (d.code === 200) { + window.history.go(0); + } + }); +} + +//单选提交 +$payWapper.one('click', '.common-sell-box input[type="checkbox"], .pre-sell-box input[type="checkbox"]', function() { + selected = $(this).attr('checked') ? 'Y' : 'N'; + selectArray = []; + selectArray.push({ + product_sku: $(this).parents('tr').data('id'), + selected: selected, + buy_number: $(this).parents('tr').data('productnum'), + goods_type: $(this).parents('tr').data('goodstype'), + promotion_id: $(this).parents('tr').data('promotionid') ? $(this).parents('tr').data('promotionid') : 0 + }); + if ($(this).parents('tr').promotion_id) { + hasPromotion = true; + } else { + hasPromotion = false; + } + dataJSON = { + skuList: JSON.stringify(selectArray), + hasPromotion: hasPromotion + }; + choiceOut(dataJSON); +}); + +//多选提交 +$cartnewSum.one('click', 'input[type="checkbox"]', function() { + selectArray = []; + shopJson = {}; + dataJSON = {}; + selected = $(this).attr('checked') ? 'Y' : 'N'; + $('.pay-wapper:first tr').each(function() { + if ($(this).data('promotionid')) { + hasPromotion = true; + } + if ($(this).data('id')) { + selectArray.push({ + product_sku: $(this).data('id'), + selected: selected, + buy_number: $(this).data('productnum'), + goods_type: $(this).data('goodstype'), + promotion_id: $(this).data('promotionid') ? $(this).data('promotionid') : 0 + }); + } + }); + dataJSON = { + skuList: JSON.stringify(selectArray), + hasPromotion: hasPromotion + }; + choiceOut(dataJSON); +}); + +function isCheck(obj, className) { + selectArray = []; + dataJSON = {}; + selected = obj.attr('checked') ? 'Y' : 'N'; + $('.' + className).each(function() { + if ($(this).data('promotionid')) { + hasPromotion = true; + } else { + hasPromotion = false; + } + if ($(this).data('id')) { + selectArray.push({ + product_sku: $(this).data('id'), + selected: selected, + buy_number: $(this).data('productnum'), + goods_type: $(this).data('goodstype'), + promotion_id: $(this).data('promotionid') ? $(this).data('promotionid') : 0 + }); + } + }); + dataJSON = { + skuList: JSON.stringify(selectArray), + hasPromotion: hasPromotion + }; + choiceOut(dataJSON); +} + +$('.per-list').on('click', 'input[type="checkbox"]', function() { + isCheck($(this), 'pre-sell-box'); +}); + +$('.common-list').on('click', 'input[type="checkbox"]', function() { + isCheck($(this), 'common-sell-box'); +}); + +// 凑单商品,最近浏览异步加载 +togetherProductSource = $('#togetherProduct').html(); +togetherProductTemplate = Handlerbars.compile(togetherProductSource); + +function getTogetherProduct($obj, url, page) { + $.ajax({ + type: 'GET', + dataType: 'json', + url: url, + data: page + }).then(function(d) { + if (d.code === 200) { + if (d.data.item) { + if (d.data.item.length > 0) { + $obj.html(' '); + togetherProductStr = togetherProductTemplate(d.data); + $obj.append($(togetherProductStr)); + $('#orderProduct li:last').addClass('end'); + $('.gift').removeClass('none'); + } + } + } + }); +} + +// 最近浏览 +getTogetherProduct($histroy, '/cart/index/getHistroyProduct'); + +// 凑单商品 +getTogetherProduct($together, '/cart/index/getTogetherProduct'); + +//凑单商品翻页 +$together.on('click', '.pagenext, .pageprev', function() { + getTogetherProduct($together, '/cart/index/getTogetherProduct', { + page: Math.ceil(Math.random() * 100) + 1 + }); + +}); + +//凑单商品,历史商品商品折叠 +$shopCart.on('click', '.icon-minus, .icon-add', function() { + if ($(this).hasClass('icon-minus')) { + $(this).parents('.title').next('.main').hide(); + $(this).parents('h2').next('.right').hide(); + } else { + $(this).parents('.title').next('.main').show(); + $(this).parents('h2').next('.right').show(); + } + $(this).siblings('i').toggleClass('none'); + $(this).toggleClass('none'); + +}); + +// 最近浏览翻页 +$histroy.on('click', '.pagenext, .pageprev', function() { + if ($(this).hasClass('pagenext')) { + pageNum++; + } else { + --pageNum > 0 || (pageNum = 1); + } + getTogetherProduct($histroy, '/cart/index/getHistroyProduct', { + page: pageNum + }); + +}); + + +//根据id获取商品信息 +function productInfo(data) { + $.ajax({ + type: 'GET', + dataType: 'html', + url: '/cart/index/getProductInfo', + data: data + }).then(function(d) { + pacList = 0; + $goodsDetail.html(' '); + $goodsDetail.append(d); + $goodsDetail.show(); + $('.detail-bigpic:not(.none) .con li:first').addClass('active'); + + if ($('.showSizeBox:not(.none) span').length < 2) { + $('.showSizeBox:not(.none) span:first').addClass('atcive'); + } + if (Number($('#addToCart').val()) !== 1) { + $('.showSizeBox span').data('num', 0); + } + $.each($('.showSizeBox span'), function() { + if ($(this).data('num') <= 0) { + $(this).addClass('null-atcivec'); + console.log($('.showSizeBox:not(.none) span:first')); + $('.showSizeBox:not(.none) span:first').removeClass('atcive'); + } + }); + + if (typeof promotionPrice !== 'undefined') { + oldprice = $('.detail-info .oldprice del').html() ? $('.detail-info .oldprice del').html() : wapperPrice; + htmlInfo = '<span class="oldprice">现价:<del>' + oldprice + '</del></span>' + + '<span class="newprice">活动价:<b class="promotion-price">' + promotionPrice + '</b></span>'; + $('.detail-info .price').html(htmlInfo); + } + + $('.detail-bigpic:not(.none) .bigpic:gt(0)').hide(); + + $('.showSizeBox:not(.none)').find('span').each(function() { + if ($(this).hasClass('null-atcivec')) { + $('.addcart').addClass('none'); + $('.btn_sellout').removeClass('none'); + } else { + $('.addcart').removeClass('none'); + $('.btn_sellout').addClass('none'); + return false; + } + }); + }); +} + +function removeInfo() { + $goodsDetail.html(' '); + $goodsDetail.css({ + top: $(document).scrollTop() + 30, + left: $(document).width() / 2 - $goodsDetail.width() / 2 + }); + +} + +//显示加价购商品信息 +$payWapper.on('click', '.cart-add-btn', function() { + productId = $(this).data('id'); + promotionId = $(this).parents('table').data('promotion'); + promotionPrice = $(this).parents('table').find('.subjoin-price').html(); + wapperPrice = $(this).parents('table').find('.wapper-price').html(); + removeInfo(); + productInfo({ + productId: productId + }); +}); + +//凑单商品,历史商品商品记录 +$('.clearfix').on('click', '.btn_view_s', function() { + productId = $(this).data('id'); + promotionId = $(this).parents('table').data('promotion'); + promotionPrice = $(this).parents('table').find('.subjoin-price').html(); + removeInfo(); + productInfo({ + productId: productId + }); +}); + +//关闭商品信息窗口 +$goodsDetail.on('click', '.colse', function() { + $goodsDetail.hide(); + $goodsDetail.html(' '); + shopNum = 1; +}); + +//展开加价购商品列表 +function fold(icon) { + icon.addClass('none').siblings('i').removeClass('none'); + icon.parents('.cart-product-num').siblings('div').toggleClass('fold'); + icon.siblings('.unfold-color').toggleClass('none'); + icon.siblings('.cart-page').toggleClass('none'); +} + +$payWapper.on('click', '.icon-minusCart, .icon-addCart', function() { + fold($(this)); +}); + + +$payWapper.on('click', '.unfold-color', function() { + fold($(this)); + $(this).siblings('.icon-minusCart').removeClass('none'); + $(this).siblings('.icon-addCart').addClass('none'); +}); + +//加价购商品分页 +$payWapper.on('click', '.cart-btn-next', function() { + subjoinPage = $(this).siblings('p').find('.f-red'); + subjoinPageAll = Number($(this).siblings('p').find('.subjoinPageNum').html()); + subjoinPageNum = Number(subjoinPage.html()); + subjoinPage.html(subjoinPageNum + 1); + if (subjoinPageNum >= subjoinPageAll - 1) { + $(this).hide(); + } else { + $(this).siblings('i').show(); + } + pageDom = $(this).parents('.cart-product-num').siblings('div').find('table'); + pageDom.addClass('none').eq(subjoinPageNum).removeClass('none'); +}); + +$payWapper.on('click', '.cart-btn-pre', function() { + subjoinPage = $(this).siblings('p').find('.f-red'); + subjoinPageAll = Number($(this).siblings('p').find('.subjoinPageNum').html()); + subjoinPageNum = Number(subjoinPage.html()); + subjoinPage.html(subjoinPageNum - 1); + if (subjoinPageNum <= 2) { + $(this).hide(); + } else { + $(this).siblings('i').show(); + } + pageDom = $(this).parents('.cart-product-num').siblings('div').find('table'); + pageDom.addClass('none').eq(subjoinPageNum - 2).removeClass('none'); +}); + +//删除购物车商品,把删除的商品移入cookie中 +function cartDel(data, delUrl, cookieList) { + $.ajax({ + type: 'POST', + dataType: 'json', + url: delUrl, + data: dataJSON, + beforeSend: function() { + $('.loading').css({ + top: $(document).scrollTop() + 200 + }); + $('.loading').show(); + } + }).then(function(d) { + if (d.code === 200) { + if (cookieList) { + window.setCookie('cart-del-list', JSON.stringify(cookieList), { + domain: '.yohobuy.com', + path: '/' + }); + } + window.history.go(0); + } else if (d.code === 300) { + $('.loading').hide(); + new Alert(d.message).show(); + } else if (d.code === 403) { + if (d.data.url) { + window.location = d.data.url; + } + } + }); +} + +//商品信息弹出框,加入收藏夹 +$goodsDetail.on('click', '.fav_count', function() { + $.ajax({ + type: 'POST', + dataType: 'json', + url: '/product/item/togglecollect', + data: { + productId: productId, + type: 'add' + } + }).then(function(d) { + if (d.code === 200) { + new Alert(d.message).show(); + } else if (d.code === 403) { + if (d.data.url) { + window.location = d.data.url; + } + } else { + new Alert(d.message).show(); + } + }); +}); + + +//删除商品 +$payWapper.on('click', '.cart-del-btn', function() { + dataJSON = {}; + selectArray = []; + promotionId = $(this).parents('tr').data('promotionid') ? $(this).parents('tr').data('promotionid') : 0; + selectArray.push({ + product_sku: $(this).parents('tr').data('id'), + buy_number: $(this).parents('tr').data('productnum'), + promotion_id: promotionId + }); + + if (promotionId) { + hasPromotion = true; + } else { + hasPromotion = false; + } + + dataJSON = { + skuList: JSON.stringify(selectArray), + hasPromotion: hasPromotion + }; + content = '<div><span></span>删除商品</div>' + + '<p>确定从购物车中删除此商品?</p>'; + if (!$(this).data('gift')) { + countJSON = { + productPrice: $(this).parents('tr').find('.productPrice').text(), + productTitle: $(this).parents('tr').find('.pay-pro-info a').text(), + link: $(this).parents('tr').find('.pay-pro-info a').attr('href'), + productNum: $(this).parents('tr').data('productnum'), + productSku: $(this).parents('tr').data('id'), + promotionId: $(this).parents('tr').data('promotionid') + }; + } + delUrl = '/cart/index/remove'; + new Confirm({ + content: content, + cb: function() { + cartDel(dataJSON, delUrl, countJSON); + } + }).show(); +}); + +//移入收藏夹 +$payWapper.on('click', '.cart-remove-btn', function() { + dataJSON = {}; + selectArray = []; + promotionId = $(this).parents('tr').data('promotionid') ? $(this).parents('tr').data('promotionid') : 0; + selectArray.push({ + product_sku: $(this).parents('tr').data('id'), + buy_number: $(this).parents('tr').data('productnum'), + promotion_id: promotionId + }); + + if (promotionId) { + hasPromotion = true; + } else { + hasPromotion = false; + } + + dataJSON = { + skuList: JSON.stringify(selectArray), + hasPromotion: hasPromotion + }; + + cartDel(dataJSON, '/cart/index/fav'); +}); + +//批量删除商品 +$cartnewSum.on('click', '.delAll', function() { + dataJSON = {}; + countJSON = {}; + selectArray = []; + PromotionArray = []; + $('.pay-wapper:first tr').each(function() { + if ($(this).find('input[type="checkbox"]').attr('checked')) { + promotionId = $(this).data('promotionid') ? $(this).data('promotionid') : 0; + if (promotionId) { + hasPromotion = true; + } + if ($(this).data('id')) { + if ($(this).find('input[type="checkbox"]').attr('checked')) { + selectArray.push({ + product_sku: $(this).data('id'), + buy_number: $(this).data('productnum'), + promotion_id: promotionId + }); + } + countJSON = { + productPrice: $(this).find('.productPrice').text(), + productTitle: $(this).find('.pay-pro-info a').text(), + link: $(this).find('.pay-pro-info a').attr('href'), + productNum: $(this).data('productnum'), + productSku: $(this).data('id'), + promotionId: $(this).data('promotionid') + }; + PromotionArray.push(countJSON); + } + } + }); + delUrl = '/cart/index/remove'; + content = '<div><span></span>删除商品</div>' + + '<p>确定从购物车中删除所有选中商品?</p>'; + dataJSON = { + skuList: JSON.stringify(selectArray), + hasPromotion: hasPromotion + }; + if (!$.isEmptyObject(selectArray)) { + new Confirm({ + content: content, + cb: function() { + cartDel(dataJSON, delUrl, PromotionArray); + } + }).show(); + } else { + new Alert('请至少选择一件商品').show(); + } +}); + +//批量移入收藏夹商品 +$cartnewSum.on('click', '.removeAll', function() { + dataJSON = {}; + countJSON = {}; + selectArray = []; + $('.pay-wapper:first tr').each(function() { + if ($(this).find('input[type="checkbox"]').attr('checked')) { + promotionId = $(this).data('promotionid') ? $(this).data('promotionid') : 0; + if (promotionId) { + hasPromotion = true; + } + + if ($(this).data('id')) { + if ($(this).find('input[type="checkbox"]').attr('checked')) { + selectArray.push({ + product_sku: $(this).data('id'), + buy_number: $(this).data('productnum'), + promotion_id: promotionId + }); + } + } + } + }); + dataJSON = { + skuList: JSON.stringify(selectArray), + hasPromotion: hasPromotion + }; + if (!$.isEmptyObject(selectArray)) { + cartDel(dataJSON, '/cart/index/fav'); + } else { + new Alert('请至少选择一件商品').show(); + } +}); + +//购物车商品增减 +function countAJAX(data) { + countBusy = true; + $.ajax({ + type: 'POST', + dataType: 'json', + url: '/cart/index/modify', + data: data + }).then(function(d) { + if (d.code === 200) { + window.history.go(0); + } + countBusy = false; + }); +} + +$payWapper.on('click', '.minus, .plus', function() { + countJSON = {}; + count = $(this).hasClass('minus') ? 'decreaseNum' : 'increaseNum'; + countJSON['' + count] = 1; + if (countBusy || ($(this).siblings('input').val() === '1' && $(this).hasClass('minus'))) { + return false; + } + + countAJAX($.extend(countJSON, + { + sku: $(this).parents('tr').data('id') + } + )); +}); + +$('.gift').on('click', '.up, .down', function() { + $(this).siblings('i').toggleClass('none'); + $(this).toggleClass('none'); +}); + +//加入购物车 + +function addcart(data, cookieList) { + $.ajax({ + type: 'POST', + url: '/cart/index/add', + data: data + }).then(function(d) { + if (d.code === 200) { + window.history.go(0); + if (cookieList) { + window.setCookie('cart-del-list', JSON.stringify(cookieList), { + domain: '.yohobuy.com', + path: '/' + }); + } + } else if (d.code === 500) { + new Alert(d.message).show(); + } + }); +} + +$goodsDetail.on('click', '.addcart', function() { + if ($('.showSizeBox:not(.none) .atcive').length !== 0) { + shopNumAll = $('.showSizeBox:not(.none) .atcive').data('num'); + productSku = $('.showSizeBox:not(.none) .atcive').data('sku'); + dataJSON = { + productSku: productSku, + buyNumber: $('#mnum').val(), + promotionId: promotionId + }; + } else { + new Alert('请选择尺码').show(); + return false; + } + + if ($('#mnum').val() > shopNumAll) { + new Alert('库存不足,目前还有' + shopNumAll + '个库存').show(); + } else { + if (Number($('#addToCart').val()) === 1) { + addcart(dataJSON); + } else { + new Alert('该商品无法加入购物车').show(); + } + } +}); + +$goodsDetail.on('click', '.cut, .add', function() { + count = $(this).hasClass('minus') ? 'decreaseNum' : 'increaseNum'; + if (promotionId) { + if ($(this).hasClass('cut')) { + new Alert('-_-,已经是最后一件,不能在减了!').show(); + } else { + new Alert('最多只能购买1,您好像购买的太多了!').show(); + } + } else { + if ($(this).hasClass('add')) { + shopNum++; + } else { + shopNum--; + } + if (shopNum < 1) { + new Alert('-_-,已经是最后一件,不能在减了!').show(); + shopNum = 1; + return false; + } + + $('#mnum').val(shopNum); + } + +}); + +$goodsDetail.on('click', '.color', function() { + pacList = 0; + $('.color').find('p').removeClass('atcive'); + $(this).find('p').addClass('atcive'); + $('.showSizeBox').addClass('none').eq($(this).index()).removeClass('none'); + if ($('.showSizeBox:not(.none) span').length < 2) { + $('.showSizeBox:not(.none) span:first').addClass('atcive'); + } + $('.detail-bigpic').addClass('none').eq($(this).index()).removeClass('none'); + $('.detail-bigpic').eq($(this).index()).find('.bigpic').hide(); + $('.detail-bigpic').eq($(this).index()).find('.bigpic:first').show(); + $('.detail-bigpic').eq($(this).index()).find('.con li').removeClass('active'); + $('.detail-bigpic').eq($(this).index()).find('.con li:first').addClass('active'); + $('.showSizeBox').eq($(this).index()).find('span').each(function() { + if ($(this).hasClass('null-atcivec')) { + $('.addcart').addClass('none'); + $('.btn_sellout').removeClass('none'); + } else { + $('.addcart').removeClass('none'); + $('.btn_sellout').addClass('none'); + return false; + } + }); +}); + +$goodsDetail.on('click', '.showSizeBox span', function() { + shopNumAll = $(this).data('num'); + if ($(this).data('num') > 0) { + $('.showSizeBox:not(.none) span').removeClass('atcivec atcive').eq($(this).index()).addClass('atcive'); + $('.addcart').removeClass('none'); + $('.btn_sellout').addClass('none'); + } else { + $('.showSizeBox:not(.none) span').removeClass('atcivec atcive').eq($(this).index()).addClass('atcivec'); + $('.addcart').addClass('none'); + $('.btn_sellout').removeClass('none'); + } +}); + +//撤销删除 +$('.goBack').on('click', function() { + dataJSON = {}; + delNum = $('.dev-revocation .goBack').index(this); + selectArray = []; + $('.dev-revocation tr').each(function(index) { + if (delNum !== index) { + countJSON = { + productPrice: $(this).find('.productPrice').text(), + productTitle: $(this).find('.title').text(), + link: $(this).find('.title').attr('href'), + productNum: $(this).data('productnum'), + productSku: $(this).data('productsku'), + promotionId: $(this).data('promotionid') + }; + selectArray.push(countJSON); + } + }); + dataJSON = { + productSku: $(this).parents('tr').data('productsku'), + promotionId: $(this).parents('tr').data('promotionid'), + buyNumber: $(this).parents('tr').data('productnum') + }; + addcart(dataJSON, selectArray); +}); + +$goodsDetail.on('click', '.piclist li', function() { + pacList = $(this).index(); + $('.detail-bigpic:not(.none) .piclist li').removeClass('active'); + $(this).addClass('active'); + $('.detail-bigpic:not(.none) .bigpic').hide().eq($(this).index()).show(); +}); + +function isSollect() { + $('.gift-wrapper .fold').show(); + if ($('.pre-sell-box input:checked').length === $('.pre-sell-box input[type="checkbox"]').length) { + $('.per-list input[type="checkbox"]').attr('checked', true); + } + if ($('.common-sell-box input:checked').length === $('.common-sell-box input[type="checkbox"]').length) { + $('.common-list input[type="checkbox"]').attr('checked', true); + } + if ($('.common-list input[type="checkbox"]').attr('checked')) { + commonList = true; + } + if ($('.per-list input[type="checkbox"]').attr('checked')) { + perList = true; + } + if ($('.per-list').length !== 0 && $('.common-list').length !== 0) { + if (commonList && perList) { + $('.batch_div input[type="checkbox"]').attr('checked', true); + } + } else { + if (commonList || perList) { + $('.batch_div input[type="checkbox"]').attr('checked', true); + } + } + + $('.cart-page').each(function() { + if ($(this).data('pageall') === 1) { + $('.cart-btn-pre', this).hide(); + $('.cart-btn-next', this).hide(); + } else { + $('.cart-btn-pre', this).hide(); + } + }); + + if ($('.pre-sell-box input:checked').length > 0 && $('.common-sell-box input:checked').length > 0) { + $('.go_cash_tips').show(); + $('.btn_account_disabled').show(); + $('.btn_account').hide(); + } else { + $('.go_cash_tips').hide(); + $('.btn_account').show(); + $('.btn_account_disabled').hide(); + } + + $('.pay-wapper tr').each(function() { + if ($(this).data('pid')) { + selectArray.push($(this).data('pid') + ''); + } + + }); + $.ajax({ + type: 'POST', + url: '/cart/index/checkFav', + data: { + pidList: JSON.stringify(selectArray) + } + }).then(function(d) { + yetCollect = '<span class="cart-yetremove-btn">已收藏</span>'; + collect = '<a href="javascript:void(0);" class="cart-remove-btn"><span>移入收藏</span></a>'; + $.each(d.data, function(key, val, index) { + $('.pay-wapper tr').each(function() { + if (Number($(this).data('pid')) === Number(key)) { + if (val) { + $(this).find('.cart-operation').append(yetCollect); + } else { + $(this).find('.cart-operation').append(collect); + } + } + }); + }); + }); +} + +isSollect(); + +$goodsDetail.on('click', '.pre, .next', function() { + if ($(this).hasClass('next')) { + if (pacList >= $(this).siblings('.con').find('li').length - 1) { + return false; + } + pacList++; + } else { + if (pacList < 1) { + return false; + } + pacList--; + } + $(this).siblings('.con').find('li').removeClass('active').eq(pacList).addClass('active'); + $('.detail-bigpic:not(.none) .bigpic').hide().eq(pacList).show(); +}); + +//结算 +$('.btn_account').on('click', function() { + understock = ''; + if ($('.pay-wapper input:checked').parents('tr').find('.tipNoStore').length > 0) { + shopName = $('.pay-wapper input:checked').parents('tr').find('.tipNoStore'); + $.each(shopName.parents('tr').find('.pay-pro-info a'), function() { + understock += $(this).html(); + }); + new Alert(understock + '库存不足').show(); + } else { + if ($('.zp').length > 0 && !$(this).attr('title')) { + $(this).attr('title', '1'); + new Alert('您有赠品没有选择,请选择完再结算!').show(); + } else { + if ($('input:checked').length > 0) { + if ($('.pre-sell-box input:checked').length > 0) { + window.location.href = '/cart/index/orderEnsure?type=2'; + } else { + window.location.href = '/cart/index/orderEnsure?type=1'; + } + } else { + new Alert('请至少选择一件商品').show(); + } + } + } +}); + +$payWapper.on('selectstart', function() { + return false; +}); +$goodsDetail.on('selectstart', function() { + return false; +}); +}); +define("js/guang/entry", ["jquery","lazyload","dot","jquery-pjax"], function(require, exports, module){ +/** + * 逛打包入口 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2016/3/29 + */ + +require("js/guang/list"); + +require("js/guang/detail"); + +require("js/guang/index"); + +}); +define("js/guang/list", ["jquery","lazyload","dot"], function(require, exports, module){ +/** + * 逛编辑页、列表页 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/15 + */ + +require("js/guang/msg"); +require("js/guang/img-blink"); +require("js/guang/right-side"); +}); +define("js/guang/msg", ["jquery","lazyload","dot"], function(require, exports, module){ +var $ = require("jquery"), + lazyLoad = require("lazyload"); + +var prising; + +require("dot"); + +//资讯文字截取和lazyload +function dotLazy() { + + //文字截取 + $('.msg-title, .msg-content .content').dotdotdot({ + wrap: 'letter' + }); + + //Lazyload + lazyLoad($('#msg-list img.lazy')); +} + +//资讯点赞 +$('.guang-page').on('click', '.like-icon', function() { + var $this = $(this), + msgId = $this.closest('.msg-content').data('id'), + url; + + //同一资讯多次点击归一处理 + if (prising === msgId) { + return; + } + + prising = msgId; + + $this.toggleClass('liked'); + + //点赞或取消点赞 + if ($this.hasClass('liked')) { + url = '/guang/info/praise'; + } else { + url = '/guang/info/cancelPraise'; + } + $.ajax({ + type: 'GET', + url: url, + data: { + id: msgId, + time: new Date().getTime() + } + }).then(function(data) { + if (data.code === 200) { + if (data.data * 1 === 0) { + $this.next('b').addClass('num-0').children('.num').html('0'); //隐藏数字显示 + } else { + $this.next('b').removeClass('num-0').children('.num').html(data.data); + } + } + prising = false; + }); +}).on('mouseenter mouseleave', '.like-icon', function() { + $(this).closest('.like').toggleClass('hover'); +}); + +dotLazy(); + +exports.dotLazy = dotLazy; + +}); +define("js/guang/img-blink", ["jquery"], function(require, exports, module){ +/** + * 图片移入闪动效果JS + * @auhor: xuqi<qi.xu@yoho.cn> + * @date: 2015/7/29 + */ + +var $ = require("jquery"); + +$('.guang-page').on('mouseover', 'a img, a .bg-img', function(e) { + var $el = $(e.target); + + //slider中的图片不做此效果 + if ($el.closest('.slider').length > 0) { + return; + } + + $el.addClass('blink'); + + setTimeout(function() { + $el.removeClass('blink'); + }, 100); +}); + +}); +define("js/guang/right-side", ["jquery","lazyload","dot"], function(require, exports, module){ +/** + * 右侧栏文字截取js + */ +var $ = require("jquery"), + lazyLoad = require("lazyload"); + +require("dot"); + +$('.ex-reco-context').dotdotdot({ + wrap: 'letter' +}); + +lazyLoad($('.ads img.lazy')); +}); +define("js/guang/detail", ["jquery","lazyload","dot","jquery-pjax"], function(require, exports, module){ +/** + * 逛详情页 + * @author: liuyue<yue.liu@yoho.cn> + * @date: 2015/12/16 + */ + +var $ = require("jquery"), + lazyLoad = require("lazyload"), + $commentArea = $('#comment-area'), + articleId = $('.detail-body').data('id'); + +var $commentList = $commentArea.find('.comments-wrap'), + $commentNum = $('#article-comment > .comment-num'), + commenting = false, //评论请求尚未返回变量 + locating = false, //评论页面正在跳转 + $commentBtn = $('#comment-btn'), + MAX_COMMENTS_WORDS = 100, + $wordCountTip = $('#word-count-tip'); + +require("js/guang/right-side"); +require("js/guang/img-blink"); + +require("js/common/share"); + +//Pjax +require("jquery-pjax"); + +lazyLoad({ + failure_limit: 50 +}); + +//点击评论滑到评论区 +// $('#article-comment').click(function() { +// $('html, body').animate({ +// scrollTop: $commentArea.offset().top - 20 +// }, 800); +// }); + +//文章点赞与取消点赞 +$('#prise-btn').click(function() { + var prising = false, + url, + $this = $(this); + + if (prising) { + return; + } + $this.toggleClass('liked'); + if ($this.hasClass('liked')) { + + //点赞 + url = '/guang/info/praise'; + } else { + + //取消点赞 + url = '/guang/info/cancelPraise'; + } + prising = true; + $.ajax({ + type: 'GET', + url: url, + data: { + id: articleId + } + }).then(function(data) { + if (data.code === 200) { + $this.find('.like-num').html(data.data); + } + prising = false; + }); +}).bind('mouseenter mouseleave', function() { + $(this).toggleClass('hover'); +}); + +//文章收藏与取消收藏 +$('#collect-btn').click(function() { + var collecting = false, + url, + col, + $this = $(this); + + if (collecting) { + return; + } + if ($this.hasClass('collected')) { + + //取消收藏 + url = '/guang/info/cancelcollect'; + col = 0; + } else { + + //收藏 + url = '/guang/info/collect'; + col = 1; + } + collecting = true; + $.ajax({ + type: 'GET', + url: url, + data: { + id: articleId + } + }).then(function(data) { + var hrefUrl; + + switch (data.code) { + case 401: + + //防止从已有col的页面再次进行跳转后出错的情况 + if (/\?col=(1|0)/.test(location.href)) { + hrefUrl = location.href.replace(/\?col=(1|0)/, '?col=' + col); + } else { + hrefUrl = location.href + '?col=' + col; + } + location.href = '//www.yohobuy.com/signin.html?refer=' + encodeURI(hrefUrl); + break; + case 400: + + // alert(data.message); + break; + case 200: + if (/\?col=(1|0)/.test(location.href)) { + + //如果页面url中含有col,为了防止页面刷新时收藏或者取消收藏会根据col来的问题,进行页面跳转拿掉参数 + location.href = location.href.replace(/\?col=(1|0)/, ''); + } else { + $this.toggleClass('collected'); + } + break; + } + collecting = false; + }); +}).bind('mouseenter mouseleave', function() { + $(this).toggleClass('hover'); +}); + +function showComment() { + var commonlist = $('.comments-list').find('li').length; + + if (commonlist === 0) { + $('.commnets-resultwrapper').hide(); + $('.comments-empty').show(); + } else { + $('.commnets-resultwrapper').show(); + $('.comments-empty').hide(); + } +} +showComment(); + +//评论 +function comment(id) { + var commentInfo = $('#comment-info').val(); + + if (commentInfo === '') { + alert('评论不能为空'); + return false; + } + commenting = true; + $.ajax({ + url: '/guang/info/comment', + data: { + id: id, + comment: commentInfo + }, + type: 'post', + success: function(data) { + switch (data.code) { + case 401: + locating = true; + location.href = '//www.yohobuy.com/signin.html?refer=' + + window.escape(location.href + '#comment-info'); + break; + case 400: + alert(data.message); + break; + case 200: + if (data.data) { + $commentList.html(data.data.content); + $commentNum.html(data.data.count); + showComment(); + + //clear comment-text + $('#comment-info').val('').keyup(); + } + break; + } + commenting = false; + } + }); +} + +$commentBtn.click(function(e) { + + //页面正在跳转或者正在AJAX请求时评论无效 + if (locating || commenting) { + return false; + } + + //字数不符合要求 + if ($('#comment-info').val().length - MAX_COMMENTS_WORDS > 0) { + return; + } + e.preventDefault(); + comment(articleId); +}); + + +//comment pager pjax +$(document).pjax('.comment-pager a', '#pjax-container', { + timeout: 5000 +}); + +//分页后移动到评论框的位置 +$(document).on('pjax:end', function() { + showComment(); + $('html,body').scrollTop($('#comment-info').offset().top); +}); + +$('#comment-info').keyup(function() { + var len = $(this).val().length, + showTxt; + + if (len === 0) { + $wordCountTip.html(''); + $commentBtn.addClass('disable'); + } else { + if (len - MAX_COMMENTS_WORDS <= 0) { + showTxt = '还可以输入' + (MAX_COMMENTS_WORDS - len) + '字'; + $commentBtn.removeClass('disable'); + } else { + showTxt = '已超过<span class="exceed-count">' + (len - MAX_COMMENTS_WORDS) + '</span>字'; + $commentBtn.addClass('disable'); + } + } + $wordCountTip.html(showTxt); +}); + +//init +$('#comment-info').trigger('keyup'); + +}); +define("js/guang/index", ["jquery","lazyload","dot","jquery-pjax"], function(require, exports, module){ +/** + * 逛首页 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/15 + */ + +var $ = require("jquery"); + +var msg = require("js/guang/msg"); + +require("jquery-pjax"); +require("js/common/slider"); + +require("js/guang/img-blink"); + +require("js/guang/right-side"); + +$('#slider').slider(); //初始化slider + +$(document).pjax('.pjax-link, .msg-pager a', '#pjax-container', { + timeout: 2000 +}); + +$(document).on('pjax:end', function() { + msg.dotLazy(); +}); +}); +define("js/home/entry", ["jquery","handlebars","source-map","dot"], function(require, exports, module){ +/** + * 个人中心页js打包入口文件 + * @author: zhaobiao<bill.zhao@yoho.cn> + * @date: 2016/02/17 + */ + +require("js/home/index"); +require("js/home/orders"); +require("js/home/favorite"); +require("js/home/currency"); + +require("js/home/returns"); +require("js/home/comment"); +require("js/home/complaints"); +require("js/home/message"); + +require("js/home/edit"); +require("js/home/gift"); +require("js/home/validate"); +require("js/home/address"); +require("js/home/common-address"); +}); +define("js/home/index", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 个人中心首页 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2016/2/17 + */ + +var $ = require("jquery"); + +require("js/home/order-block"); + +//关闭消息提示 +$('#close-message').click(function() { + $('.message-tip').slideUp(200); +}); + +//新品上架 +(function() { + var $naPager = $('.na-pager'), + $naUl = $('.new-arrival ul'), + naPage = Math.ceil($naUl.children('li').length / 5), + naItemWith = $naUl.children('li:last-child').outerWidth(), + naCurPage = 1; + + $naUl.width($naUl.width() * naPage); + + //最新上架翻页 + $naPager.click(function() { + var $this = $(this), + left; + + if ($this.hasClass('next')) { + + //后翻 + ++naCurPage; + + //第2页显示前翻按钮 + if (naCurPage === 2) { + $this.siblings().removeClass('no-visible'); + } + + //最后一页隐藏后翻按钮 + if (naCurPage === naPage) { + $this.addClass('no-visible'); + } + } else { + + //前翻 + --naCurPage; + + //倒数第2页显示后翻按钮 + if (naCurPage === naPage - 1) { + $this.siblings().removeClass('no-visible'); + } + + //第1页隐藏前翻按钮 + if (naCurPage === 1) { + $this.addClass('no-visible'); + } + } + + left = -5 * (naCurPage - 1) * naItemWith; + + $naUl.animate({ + marginLeft: left + }, 400); + }); +}()); +}); +define("js/home/order-block", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 订单 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2016/2/17 + */ + +var $ = require("jquery"); +var Handlebars = require("handlebars"); + +var dialog = require("js/common/dialog"); + +var Dialog = dialog.Dialog; +var Confirm = dialog.Confirm; + +var $tpl = $('#cancel-dialog-tpl'); + +var html = $tpl.html(); + +var active; + +var dialogMessage = '<p class="message-title"><i class="order-icon {{messageIcon}}"></i>{{messageTitle}}</p><p class="message-summary">{{messageSummary}}</p>'; +var $dialogEdit = $('#edit-dialog-tpl'); +var $addressManage, $province, $city, $county, $selectList, $name, $phone, $address, $telCode, $tel, isProvinceChecked = false; +; + +function cancelFactory(id) { + var options = { + mask: true, + btns: [ + { + id: 'cancel-sure', + name: '确定并取消订单', + btnClass: ['cancel-sure'], + cb: function() { + var $checked = $('.cancel-dialog :checked'); + var $tip = $('.cancel-dialog .cancel-tip'); + var text = ''; + if ($checked.val() === '10') { + text = $checked.parent().find('#reason_other').val(); + } else { + text = $checked.siblings('label').text(); + } + if ($checked.length === 0) { + $tip.html('请选择要取消订单的原因'); + return; + } + $.ajax({ + type: 'POST', + url: '/home/orders/cancelorder', + data: { + orderCode: id, + reasonId: $checked.val(), + reason: text + } + }).then(function(data) { + if (data.code === 200) { + active.close(); + active = showMessgaeDialog('icon-success', '订单修改', '您已成功取消了该订单', function() { + location.reload(true); + }); + active.show(); + } else { + $tip.html(data.message); + } + }); + } + }, + { + id: 'cancel-no', + name: '暂不取消', + btnClass: ['cancel-no'], + cb: function() { + active.close(); + } + } + ], + content: html, + className: 'cancel-dialog' + }; + + return new Dialog(options); +} + +function showMessgaeDialog(message_icon, message_title, message_summary, cb) { + var template = Handlebars.compile(dialogMessage); + var html = template({messageIcon: message_icon, messageTitle: message_title, messageSummary: message_summary}); + var options = { + mask: true, + btns: [ + { + id: 'message-sure', + name: '确定', + btnClass: ['message-sure'], + cb: function() { + active.close(); + cb && cb(); + } + } + ], + content: html, + className: 'message-dialog', + }; + + return new Dialog(options); + +} + +// 编辑订单 +function editOrder(id) { + var options = { + mask: true, + btns: [ + { + id: 'edit-sure', + name: '确定', + btnClass: ['edit-sure'], + cb: function() { + saveAddress(id); + } + }, + { + id: 'edit-no', + name: '取消', + btnClass: ['edit-no'], + cb: function() { + active.close(); + } + } + ], + content: $dialogEdit.html(), + className: 'edit-order-dialog' + }; + + return new Dialog(options); +} + +$tpl.remove(); +$dialogEdit.remove(); + +//查看物流 +$('.check-logistics').click(function() { + $(this).siblings('.logistics').removeClass('hide'); +}); + +$('.close-logistics').click(function() { + $(this).closest('.logistics').addClass('hide'); +}); + + +//订单列表&订单详情【取消订单和确认收货】 +$('.me-orders, .order-detail').on('click', '.cancel-order', function(e) { + + //取消订单 + active = cancelFactory($(this).closest('.order, .order-detail').data('id')); + active.show(); +}).on('click', '.confirm-received', function(e) { + var id = $(this).closest('.order, .order-detail').data('id'); + + //确认收货 + active = new Confirm({ + cb: function() { + $.ajax({ + type: 'POST', + url: '/home/orders/confirmorder', + data: { + orderCode: id + } + }).then(function(data) { + if (data.code === 200) { + active.close(); + history.go(0); + } + }); + }, + content: '您确定要确认收货吗?' + }); + active.show(); +}).on('click', '.edit-order', function() { + $(this).addClass('edit-order-active'); + active = editOrder($(this).closest('.order, .order-detail').data('id')) + active.show(); + newAddress(0); +}); + +// 地址操作 +function newAddress(id) { + var code, codeId; + + var pId = id || 0; //如果没有传id则获取所有省列表 + + var addressCodeReg = /[0-9]{2}/gi; + + $addressManage = $('.edit-order-dialog'); + $province = $addressManage.find('select[name="province"]'); + $city = $addressManage.find('select[name="city"]'); + $county = $addressManage.find('select[name="county"]'); + $selectList = $addressManage.find('select[name="province"],select[name="city"]'); + $name = $addressManage.find('.inp[name="name"]'); + $phone = $addressManage.find('.inp[name="phone"]'); + $address = $addressManage.find('.inp[name="address"]'); + $telCode = $addressManage.find('.inp[name="tel-code"]'); + $tel = $addressManage.find('.inp[name="tel"]'); + + var validate = validateForm(); + + code = $province.data("areacode") + ''; + codeId = !!code && code.match(addressCodeReg); + + //获取省 + getAddress({ + id: pId, + type: 'getProvince', + selectId: codeId[0] + }, function() { + + var provinceId = $province.val(); + + if (provinceId !== '0') { + isProvinceChecked = true; + + //如果获取的省有默认选中项则获取市 + getAddress({ + id: provinceId, + type: 'getCity', + selectId: '' + codeId[0] + codeId[1] + }, function() { + + var cityId = $city.val(); + + //如果获取的市有默认选中项则获取县 + if (cityId !== '0') { + getAddress({ + id: cityId, + type: 'getCounty', + selectId: code + }); + } + }); + } else { + $addressManage.find('select[name="city"]').html('<option value="0">请选择城市</option>'); + $addressManage.find('select[name="county"]').html('<option value="0">请选择区县</option>'); + } + }); + + // 发生change事件时获取下一级地址 + $selectList.change(function() { + + var $this = $(this); + + if ($this.attr('name') === 'province') { + + if ($this.val() === '0') { + $addressManage.find('select[name="city"]').html('<option value="0">请选择城市</option>'); + $addressManage.find('select[name="county"]').html('<option value="0">请选择区县</option>'); + } else { + getAddress({ + id: $this.val(), + type: 'getCity' + }, function() { + isProvinceChecked = true; + }); + $addressManage.find('select[name="county"]').html('<option value="0">请选择区县</option>'); + } + } + + if ($this.attr('name') === 'city' && isProvinceChecked) { + + if ($this.val() === '0') { + $addressManage.find('select[name="county"]').html('<option value="0">请选择区县</option>'); + } else { + getAddress({ + id: $this.val(), + type: 'getCounty' + }); + } + } + }); + $name.on('blur', function() { + validate.name($.trim($name.val())); + }); + $address.on('blur', function() { + validate.address($.trim($address.val())); + }); + $phone.on('blur', function() { + validate.mobile($.trim($phone.val())); + }); + $tel.on('blur', function() { + validate.tel($.trim($telCode.val()), $.trim($tel.val())); + }) + $county.on('change', function() { + validate.city($province.val(), $city.val(),$county.val()); + }) +} +/** + * @description: 改函数会返回地址信息 + * d {Object} type: 'getProvince'获取省 type: 'getCity'获取城市 type: 'getCounty'获取县 + * id: 0 && type: 'getProvince' 获取所有省,默认没有选中项 + * id !== 0 && type: 'getProvince' 获取所有省,默认选中用户所在的省 + */ +function getAddress(d, callback) { + + var $obj; + var selectId = d.selectId; + + if (d.type === 'getProvince') { + + //url = 'getProvince'; + $obj = $province; + } else if (d.type === 'getCity') { + + //url = 'getCity'; + $obj = $city; + } else if (d.type === 'getCounty') { + + //url = 'getCounty'; + $obj = $county; + } + + $.ajax({ + type: 'GET', + url: '/cart/index/getAreaList', + dataType: 'json', + data: { + id: d.id * 1 + } + }).then(function(d) { + + structureOption($obj, d.data, selectId); + + if (typeof callback === 'function') { + callback(); + } + + }); +} + +// 构建select下拉选项 +function structureOption($obj, data, selectId) { + + var i, + optionHtml = '', + defaultOption, + isStar = ''; + + for (i = 0; i < data.length; i++) { + + if (data[i].is_support_express === 'Y') { + isStar = '*'; + } else { + isStar = ''; + } + + if (data[i].id === selectId) { + optionHtml += '<option selected value="' + data[i].id + '">' + isStar + data[i].caption + '</option>'; + } else { + optionHtml += '<option value="' + data[i].id + '">' + isStar + data[i].caption + '</option>'; + } + } + + + if ($obj.attr('name') === 'province') { + defaultOption = '<option value="0">请选择省份</option>'; + } else if ($obj.attr('name') === 'city') { + defaultOption = '<option value="0">请选择城市</option>'; + + } else if ($obj.attr('name') === 'county') { + defaultOption = '<option value="0">请选择区县</option>'; + } + + $obj.html(defaultOption + optionHtml); +} + +// 保存地址 +function saveAddress(id) { + var name = $name.val(), + province = $province.val(), + city = $city.val(), + county = $county.val(), + address = $address.val(), + phone = $phone.val(), + telCode = $telCode.val(), + tel = $tel.val(); + + // var $err_name = $name.siblings('.error'), + // $err_province = $province.siblings('.error'), + // $err_address = $address.siblings('.error'), + // $err_phone = $phone.siblings('.error'), + // $err_tel = $tel.siblings('.error'); + + var postData = { + orderCode: id, + userName: name, + areaCode: county, + address: address, + mobile: phone, + phoneCode: telCode, + phoneNum: tel + }; + var validate = validateForm(); + if (!validate.name(name) || !validate.city(province, city, county) || !validate.address(address) || !validate.mobile(phone) || !validate.tel(telCode, tel)) { + return; + } + + $.ajax({ + type: 'post', + url: '/home/orders/modifyAddress', + data: postData + }).then(function(d) { + if (d.code === 200) { + active.close(); + active = showMessgaeDialog('icon-waiting', '订单修改', '您的订单正在尝试修改,请耐心等待。稍后可在订单详情页查看修改情况!', function() { + location.reload(true); + }); + active.show(); + } else { + new dialog.Alert(d.message).show(); + } + }) +} +function validateForm() { + var $err_name = $name.siblings('.error'), + $err_province = $province.siblings('.error'), + $err_address = $address.siblings('.error'), + $err_phone = $phone.siblings('.error'), + $err_tel = $tel.siblings('.error'); + + var nameReg = /^[\u4e00-\u9fa5]{2,5}$/; + var addressReg = /^[a-zA-Z0-9-#()()\u4e00-\u9fa5]+$/; + var phoneReg = /^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/; + var telCodeReg = /^[0-9]{3,4}$/; + var telReg = /^[0-9]{8}$/; + var _right_html = '<i class="order-icon icon-right"></i>'; + var _error_html = '<i class="order-icon icon-error"></i><b></b>'; + + return { + name: function(name) { + if (!nameReg.test(name)) { + $err_name.html(_error_html); + $err_name.find('b').html('真实姓名至少2个中文,最多5个中文'); + $err_name.show(); + return false; + } else { + $err_name.html(_right_html).show(); + return true; + } + }, + city: function(province, city, county) { + if (province === '0' || city === '0' || county === '0') { + $err_province.html(_error_html); + $err_province.find('b').html('请填写完整的省市区信息'); + $err_province.show(); + return false; + } else { + $err_province.html(_right_html).show(); + return true; + } + }, + address: function(address) { + if (!addressReg.test(address)) { + var message = '详细地址不能为空'; + if ($.trim(address) !== '') { + message = '只能包含数字、字母、汉字、#、-、()及其组合'; + } + $err_address.html(_error_html); + $err_address.find('b').html(message); + $err_address.show(); + return false; + } else { + $err_address.html(_right_html).show(); + return true; + } + }, + mobile: function(phone) { + if (!phoneReg.test(phone)) { + var message = '手机号码不能为空'; + if ($.trim(phone) !== '') { + message = '你输入的联系电话格式不正确'; + } + $err_phone.html(_error_html); + $err_phone.find('b').html(message); + $err_phone.show(); + return false; + } else { + $err_phone.html(_right_html).show(); + return true; + } + }, + tel: function(telCode, tel) { + if(telCode === '' && tel === ''){ + _right_html = ''; + } + if ((!!telCode && !telCodeReg.test(telCode)) || (!!tel && !telReg.test(tel)) || + (telCodeReg.test(telCode) && !telReg.test(tel)) || + (!telCodeReg.test(telCode) && telReg.test(tel))) { + $err_tel.html(_error_html); + $err_tel.find('b').html('你输入的电话格式不正确'); + $err_tel.show(); + return false; + } else { + $err_tel.html(_right_html).show(); + return true; + } + } + } +} + +}); +define("js/home/orders", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 我的订单 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2016/2/17 + */ +var $ = require("jquery"); + + +require("js/home/order-block"); + +//不同订单包裹提示 + +$('.why').click(function() { + $('#differentBag').show(); + return false; + +}); +$('#differentBag').click(function() { + return false; +}); +$(document).click(function() { + $('#differentBag').hide(); +}); + + +//订单包裹左右切换 +function lunBo($pre, $next, $ul, $iWidth) { + var i = 1, + j = 1; + + var iSpeed = 0, + isMoving = false; + + $pre.click(function() { + if (isMoving) { + return; + } + + if ($ul.css('left') === '0px') { + iSpeed = 0; + + } else { + iSpeed += j * $iWidth; + isMoving = true; + } + $ul.stop().animate({ + left: iSpeed + }, 300, function() { + isMoving = false; + }); + }); + $next.click(function() { + var $largeLeft = $ul.parent().width() - $ul.width() + 'px'; + + if (isMoving) { + return; + } + + if ($ul.css('left') === $largeLeft) { + $ul.css('left', $largeLeft); + } else { + iSpeed += -i * $iWidth; + isMoving = true; + } + + $ul.stop().animate({ + left: iSpeed + }, 300, function() { + isMoving = false; + }); + }); +} + +//订单分类 +$('.bag').find('ul').each(function() { + var $pre = $(this).parent().parent().find('.pre'); + var $next = $(this).parent().parent().find('.next'); + + var $iWidth = $(this).find('li').eq(0).width(); + var $length = $(this).find('li').size(); + var $ulWidth = $iWidth * $length; + + $(this).css('width', $ulWidth); + if ($length > 5) { + $pre.show(); + $next.show(); + lunBo($pre, $next, $(this), $iWidth); + } else { + $pre.hide(); + $next.hide(); + } + +}); + +}); +define("js/home/favorite", ["jquery","handlebars","source-map","dot"], function(require, exports, module){ +/** + * 我的收藏 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2016/2/23 + */ + +var $ = require("jquery"), + Handlebars = require("handlebars"); + +var phoneReg = require("js/passport/mail-phone-regx").phoneRegx['+86']; + +var clockTxt = { + on: '[ 降价通知 ]', + off: '[ 取消通知 ]' +}; + +var param = location.href.match(/type=(.*)[&]*/), + favType; + +var curSkn; + +var $curClock; + +require("dot"); + +//商品收藏 +(function() { + var $defaultSorts, + $allSorts; + + var $bodyMask, + $noticeNum, + $priceNotice, + $noticeContent, + $noticeSuccess, + $noticeErrorMsg, + $noticeSubOrCancel, + $phone; + + var reduction = {}, + noticeNum; + + // 同步订阅数量 + function syncSubscribeNum(num) { + noticeNum = num * 1; + $noticeNum.text(num); + $noticeSuccess.find('.notice-num').text(5 - num); + } + + //关闭价格订阅弹窗和蒙层 + function closeNoticeBox() { + $bodyMask.addClass('hide'); + $priceNotice.addClass('hide'); + + //重置头部文字 + $noticeSubOrCancel.text('订阅成功'); + } + + //显示价格订阅弹窗和蒙层 + function showNoticeBox() { + var top = $(document).scrollTop() + $(window).height() / 2; + + if (typeof $bodyMask === 'undefined') { + $('body').append('<div class="body-mask hide"></div>'); + $bodyMask = $('.body-mask'); + } + + $bodyMask.css({ + height: $(document).height(), + width: $(document).width() + }).removeClass('hide'); + + $priceNotice.removeClass('error'); + + if ($curClock.hasClass('noticed')) { + + //取消降价通知 + $.ajax({ + type: 'GET', + url: '/home/favorite/cancelnotice', + data: { + id: curSkn + } + }).then(function(data) { + if (data.code === 200) { + syncSubscribeNum(data.data.num); + $noticeContent.addClass('hide'); + $noticeSuccess.removeClass('hide'); + $noticeSubOrCancel.text('取消成功'); + $priceNotice.removeClass('hide').css({ + top: top + }); + + if ($curClock.closest('.reduction-products').length > 0) { + $curClock.closest('.fav-good').remove(); + } else { + $curClock.removeClass('noticed').text(clockTxt.on); + } + } else { + if (data.message) { + $noticeErrorMsg.text(data.message); + $priceNotice.removeClass('hide').addClass('error').css({ + top: top + }); + } + } + }); + } else { + if (noticeNum >= 5) { + $noticeErrorMsg.text('您的订阅数已经到达上限'); + $priceNotice.removeClass('hide').addClass('error').css({ + top: top + }); + } else { + $noticeContent.removeClass('hide'); + $noticeSuccess.addClass('hide'); + $priceNotice.removeClass('hide').css({ + top: top + }); + } + } + + } + + if ($('.fav-products').length === 0) { + return; + } + + $defaultSorts = $('.default-sorts'); + $allSorts = $('.all-sorts'); + + $noticeNum = $('.reduction-notice span'); + + $priceNotice = $('.price-notice'); + + $noticeContent = $('#price-notice .content'); + $noticeSuccess = $('#price-notice .success'); + $noticeErrorMsg = $('#price-notice .error-message'); + $noticeSubOrCancel = $noticeSuccess.find('.subscribe-or-cancel'); + $phone = $('#notice-phone-num'); + + reduction.phone = $phone.val(); + reduction.change = false; + + noticeNum = $noticeNum.text() * 1; + + //展开分类 + $('#spread-sort').click(function() { + $defaultSorts.slideUp(function() { + $allSorts.slideDown(); + }); + }); + + //收起分类 + $('#retract-sort').click(function() { + $allSorts.slideUp(function() { + $defaultSorts.slideDown(); + }); + }); + + //降价通知 + $('.price-down-clock').click(function() { + $curClock = $(this); + curSkn = $curClock.closest('.fav-good').data('id'); + showNoticeBox(); + }); + + //checkbox【手动触发checkbox点击后跳转链接的地址】 + $('.reduction-filter input[type="checkbox"]').change(function() { + location.href = $(this).parent().attr('href'); + }); + + //降价通知确定按钮 + $('#price-notice').on('click', '.close', function() { + closeNoticeBox(); + }).on('click', '.price-notice-sure', function() { + var phone, + errTxt; + + if (!$priceNotice.hasClass('error') && !$noticeContent.hasClass('hide')) { + + //订阅到手机号 + phone = $.trim($phone.val()); + + if (phone === '' || !phoneReg.test(phone)) { + errTxt = phone === '' ? '请输入手机号码' : '手机号码格式不正确'; + + $phone.addClass('error'); + $('#price-notice .err-text').removeClass('hide').find('em').html(errTxt); + return; + } else { + $phone.removeClass('error'); + $('#price-notice .err-text').addClass('hide'); + } + + if (reduction.phone !== '' && reduction.phone !== phone && !reduction.change) { + $('#price-notice .phone-diff').removeClass('hide'); + reduction.change = true; + return; + } + + $.ajax({ + type: 'GET', + url: '/home/favorite/notice', + data: { + mobile: phone, + id: curSkn + } + }).then(function(data) { + if (data.code === 200) { + syncSubscribeNum(data.data.num); + $noticeSuccess.removeClass('hide'); + $noticeContent.addClass('hide'); + + reduction.phone = phone; + reduction.change = false; + $('#price-notice .phone-diff').addClass('hide'); + + //切换商品通知文字 + $curClock.toggleClass('noticed').text(clockTxt.off); + } else { + if (data.message) { + $noticeErrorMsg.text(data.message); + $priceNotice.removeClass('hide').addClass('error'); + } + } + }); + } else { + + //关闭窗口 + closeNoticeBox(); + } + }); + + //商品可参加活动 + $('.has-activity').click(function() { + var $this = $(this), + $activites = $this.next('.activites'), + $li = $this.closest('li'); + + if ($activites.hasClass('hide')) { + + //显示 + $activites.removeClass('hide'); + $li.css('padding-bottom', $activites.outerHeight()); + } else { + + //隐藏 + $activites.addClass('hide'); + $li.css('padding-bottom', ''); + } + }); +}()); + + +//品牌收藏 +(function() { + var naTpl; + var naCache = {}; + + /** + * 翻页控制 + * @param $li 当前品牌容器 + * @param flag 翻页方向/-1-pre 1-next + */ + function pageControll($li, flag) { + var id = $li.data('id'), + $ul = $li.find('.na-goods-ul'), + theCache = naCache[id], + curPage = theCache.cur ? theCache.cur : 1, + page = Math.ceil(theCache.total / 5); + + var $pre = $li.find('.na-pre'); + var $next = $li.find('.na-next'); + + curPage += flag; + + //初始 + $pre.removeClass('hidden'); + $next.removeClass('hidden'); + + //第一页 + if (curPage === 1) { + $pre.addClass('hidden'); + } + + //最后一页 + if (curPage === page) { + $next.addClass('hidden'); + } + + $ul.animate({ + marginLeft: -(curPage - 1) * $ul.parent('.na-goods').width() + }, 200); + + theCache.cur = curPage; + } + + function setListPadding($li, $naList) { + $li.css('padding-bottom', $naList.outerHeight() + 10); + } + + if ($('.fav-brands').length === 0) { + return; + } + + naTpl = Handlebars.compile($('#na-tpl').html()); + + // 新品到着【重要信息:最多显示20个新品到着商品】 + $('.na-trigger').click(function() { + var $this = $(this), + $naList = $this.next('.na-list'), + $li = $this.closest('li'), + id; + + if (!$naList.hasClass('hide')) { + $naList.addClass('hide'); + $li.css('padding-bottom', ''); + return; + } + + id = $li.data('id'); + + if (naCache[id] && naCache[id].cache) { + $naList.removeClass('hide'); + setListPadding($li, $naList); + return; + } + + $.ajax({ + type: 'GET', + url: '/home/favorite/newproduct', + data: { + id: id + } + }).then(function(data) { + var html, + res, + tplData; + + if (data.code === 200) { + res = data.data; + tplData = res.length === 0 ? {} : { + naGoods: res + }; + html = naTpl(tplData); + + $naList.removeClass('hide').find('.na-content').html(html); + setListPadding($li, $naList); + + //初始,判断是否显示Next翻页 + if (res.length > 5) { + $li.find('.na-next').removeClass('hidden'); + } + + if (!naCache[id]) { + naCache[id] = {}; + } + + naCache[id].cache = true;//set cache + naCache[id].total = res.length; + } + }); + }); + + $('.na-content').on('click', '.na-pre, .na-next', function() { + var $this = $(this); + + var flag = $this.hasClass('na-pre') ? -1 : 1; + + pageControll($this.closest('.fav-brand'), flag); + }); +}()); + +//文章收藏 +(function() { + if ($('.fav-articles').length < 0) { + return; + } + + $('.fav-articles .desc').dotdotdot(); +}()); + +if (param && param.length) { + favType = param[1]; +} + +//全选【通用】 +$('#me-checkall').click(function() { + $('.checkbox input[type="checkbox"]').prop('checked', $(this).prop('checked')); +}); + +//删除收藏 +$('.del-favorite').click(function(e) { + var id = $(this).closest('.fav-row').data('id'), + shopid = $(this).closest('.fav-row').data('shopid'), + brandorshoptype = $(this).closest('.fav-row').data('brandorshoptype'); + + e.preventDefault(); + + $.ajax({ + type: 'GET', + url: '/home/favorite/cancel', + data: { + id: id, + shopid: shopid, + brandorshoptype: brandorshoptype, + type: favType + } + }).then(function(data) { + if (data.code === 200) { + history.go(0); + } + }); +}); + +//删除多个商品/品牌/文章【通用】 +$('#me-del-checked').click(function() { + var ids = [], + name = '商品'; + + if (favType === 'brand') { + name = '品牌'; + } else if (favType === 'article') { + name = '文章'; + } + + if (confirm('您确定要删除您收藏的' + name + '吗?')) { + $('.checkbox input[type="checkbox"]:checked').each(function() { + ids.push($(this).closest('.fav-row').data('id')); + }); + + if (ids.length === 0) { + alert('请选中您要移除的' + name); + return; + } + + $.ajax({ + type: 'GET', + url: '/home/favorite/cancel', + data: { + id: ids.join(','), + type: favType + } + }).then(function(data) { + history.go(0); + }); + } +}); + +if (location.href.match(/is_reduction=(.*)[&]*/)) { + $('.reductionChecked').attr('checked', true); +} +if (location.href.match(/is_promotion=(.*)[&]*/)) { + $('.activityChecked').attr('checked', true); +} +}); +define("js/home/currency", ["jquery"], function(require, exports, module){ +/** + * 我的YOHO币 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2016/3/22 + */ + +var $ = require("jquery"); + +$('.filter-select').change(function() { + location.href = $(this).val(); +}); +}); +define("js/home/returns", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 我的退/换货 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/2/26 + */ + +require("js/home/returns-detail"); +require("js/home/returns-apply"); +}); +define("js/home/returns-detail", ["jquery"], function(require, exports, module){ +/** + * 退换货详情 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/2/26 + */ + +var $ = require("jquery"); + +var $returnState = $('.visual-return-state li'), + $detail = $('.detail-container'), + $courierCode = $('.courier-code'), + $expressCompany = $('#express-company'), + $expressNumber = $('#express-number'), + $expressViewBox = $('.express-view-box > span'); + +var returnId = $('#return-id').val(), + expId = $('#express-old-id').val(), + expNumber = $expressNumber.val(), + expCompany = '', + expList = {}, + isChange = false; + +function syncExpressInfo() { + expCompany = expList[expId] ? expList[expId] : ''; + $expressViewBox.html(expCompany + ' 快递单号:' + expNumber); + $expressCompany.val(expId); + $expressNumber.val(expNumber); +} + +function validateExpress() { + var send = {}; + + send.number = $expressNumber.val(); + send.id = $expressCompany.val() * 1; + + if (!send.id) { + alert('请选择快递公司'); + } else if (!send.number) { + alert('请填入快递单号'); + } else { + return send; + } + + return false; +} + +function sendExpressCode() { + var sendParm = validateExpress(); + + if (!sendParm) { + return; + } + + $.ajax({ + type: 'POST', + url: '/home/returns/setExpressNumber', + data: { + id: returnId, + isChange: isChange, + expressId: sendParm.id, + expressNumber: sendParm.number, + expressCompany: expList[sendParm.id] + } + }).then(function(jsonData) { + if (jsonData.code === 200) { + expId = sendParm.id; + expNumber = sendParm.number; + $returnState.eq(2).addClass('act'); + } else { + alert(jsonData.message); + } + syncExpressInfo(); + $courierCode.removeClass('in-edit'); + }); +} + +if ($detail.parent().hasClass('exchange-detail')) { + isChange = true; +} + +$expressCompany.val(expId); + +$detail.find('.company-list').each(function() { + var data = $(this).data(); + + expList[data.id] = data.name; +}); + +$('#modify').click(function() { + $courierCode.addClass('in-edit'); +}); + +$('#submit-btn').click(function() { + sendExpressCode(); +}); +}); +define("js/home/returns-apply", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 退换货申请 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/2/29 + */ +var $ = require("jquery"), + Addr = require("js/home/common-address"); + +var $goodsTable = $('#goods-table'), + $checkBox = $goodsTable.find('input[type="checkbox"]'), + $reasons = $goodsTable.find('.return-reason'), + $file = $goodsTable.find('input[type=file]'), + $refundType = $('input[name="refund-type"]'), + $province = $('#province'), + $city = $('#city'), + $areaCode = $('#area'); + +var $refundInfo = $('#refund-pay-info'), + $payYoho = $refundInfo.find('.type-yoho'), + $payBank = $refundInfo.find('.type-bank'), + $payAli = $refundInfo.find('.type-alipay'); + +var $exchange = $('.exchange-detail'), + $hidePhone = $exchange.find('input[name="hide-phone"]'), + $refundMode = $exchange.find('.refund-mode'); + +var $submitBox = $('.submit-box'), + $waitPoint = $submitBox.find('.wait-gif span'); + +var pageType = 0, // 0-换货 1-退货 + orderCode = $('#order-code').val(), + defaultArea = $exchange.find('input[name="hide-area"]').val(), + defaultPhone = $hidePhone.val(), + disPhone = '', + verifyTip = '', + colorSize = {}, + timer; + +require("plugin/jquery.qupload"); + +if (defaultPhone) { + $hidePhone.remove(); + disPhone = defaultPhone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2'); + $exchange.find('input[name="phone"]').val(disPhone); +} + +function syncRefundMode(code) { + $.ajax({ + type: 'POST', + url: '/home/returns/getDelivery', + data: { + areaCode: code + } + }).then(function(jsonData) { + var _html = ''; + + if (jsonData.code === 200) { + $.each(jsonData.data, function(k, v) { + var checked = ''; + + if (v.is_default === 'Y') { + checked = 'checked="checked"'; + } + _html += '<input type="radio" name="delivery-tpye" value="' + + v.id + '" ' + checked + '"">' + v.name; + }); + $refundMode.html(_html); + } + }); +} + +function setBackInput(type) { + $payYoho.hide(); + if (type === 2) { + $payBank.show(); + $payAli.hide(); + $payYoho.hide(); + } else if (type === 3) { + $payAli.show(); + $payBank.hide(); + $payYoho.hide(); + } else if (type === 4) { + $payYoho.show(); + $payBank.hide(); + $payAli.hide(); + } +} + +if ($refundInfo.length) { + pageType = 1; + + $refundType.each(function() { + if ($(this).prop('checked')) { + setBackInput($(this).val() * 1); + } + }); +} else if (defaultArea) { + syncRefundMode(defaultArea); +} + +defaultArea = defaultArea ? defaultArea : ''; +Addr.loadAllData(defaultArea, { + areaDomId: 'area' +}); + +// 页面获取size列表数据 +$goodsTable.find('.sizeinfo').each(function() { + var sizes = []; + + $(this).children().each(function() { + sizes.push($(this).data()); + }); + colorSize[$(this).data().id] = sizes; +}); + +$reasons.change(function() { + var $par = $(this).parent().parent(), + type = $(this).val() * 1; + + if (type === 4 || type === 6 || type === 8) { + $par.next().show(); + } else { + $par.next().hide(); + } +}); + +$checkBox.change(function() { + var $par = $(this).parent().parent(); + + if ($(this).prop('checked')) { + $par.find('select').prop('disabled', false); + } else { + $par.find('select').val(0).prop('disabled', true); + $par.next().hide(); + } +}); + +$goodsTable.on('change', '.exchange-color', function() { + var $warp = $(this).closest('.exchange-choose-wrap'), + _html = '<option value="0">请选择尺码</option>', + id = $(this).val(); + + if (colorSize[id]) { + $.each(colorSize[id], function(k, v) { + _html += '<option value="' + v.id + '">' + v.name + '</option>'; + }); + } + $warp.find('.exchange-size').html(_html).val(0); +}); + +$goodsTable.on('click', '.btn-del', function() { + $(this).parent().empty(); +}); + +$file.each(function(e) { + var $this = $('#upload-img-' + e), + $par = $this.closest('.problem-description'); + + $this.qupload({ + button_image_url: '', + upload_url: window.location.origin + '/home/returns/imgUpload', + file_post_name: 'fileData', + button_text: '<span class="btn_upload_text">上传图片</span>', + button_text_style: '.btn_upload_text{color: #ffffff;}', + button_width: 116, + button_height: 33, + button_text_left_padding: 32, + button_text_top_padding: 8, + button_action: window.SWFUpload.BUTTON_ACTION.SELECT_FILE, + file_size_limit: '10240', + file_types: '*.jpg;*.jpeg;*.png;*.bmp', + uploadSuccessed: function(data) { + var $imgList = $par.find('li'), + isShow = false, + img, _html; + + img = JSON.parse(data).imgList[0]; + _html = '<span class="btn-del" title="删除"></span>' + + '<img src="' + img.imgUrl + '" width="126" height="126">' + + '<input type="hidden" name="imgs" value="' + img.imgRelUrl + '">'; + $imgList.each(function() { + if (!isShow && !$(this).find('img').length) { + isShow = true; + $(this).html(_html); + } + }); + } + }); +}); + +$exchange.on('change', '#area', function() { + var code = $(this).val() * 1; + + if (code) { + syncRefundMode(code); + } +}); + +$refundType.change(function() { + var type = $(this).val() * 1; + + setBackInput(type); +}); + +// 打包退换货商品信息 +function packGoogsList() { + var goods = [], + type = '换货'; + + if (pageType) { + type = '退货'; + } + if (!$checkBox.length) { + verifyTip = '没有可以' + type + '的商品'; + } + + $checkBox.each(function() { + var $par = $(this).parent().parent(), + $next = $par.next(), + goodsInfo; + + if (verifyTip.length) { + return; + } + + if ($(this).prop('checked')) { + goodsInfo = { + product_skn: $par.find('input[name="skn"]').val(), + product_skc: $par.find('input[name="skc"]').val(), + product_sku: $par.find('input[name="sku"]').val(), + goods_type: $par.find('input[name="typeid"]').val(), + last_price: $par.find('input[name="price"]').val(), + reason: $par.find('.return-reason').val() * 1 + }; + + if (pageType) { + goodsInfo.returned_reason = goodsInfo.reason; + } else { + goodsInfo.exchange_reason = goodsInfo.reason; + goodsInfo.new_goods_id = $par.find('.exchange-color').val() * 1; + goodsInfo.new_product_sku = $par.find('.exchange-size').val() * 1; + + if (!verifyTip && !goodsInfo.new_goods_id) { + verifyTip = '请选择要换的颜色'; + } + + if (!verifyTip && !goodsInfo.new_product_sku) { + verifyTip = '请选择要换的尺码'; + } + } + if (!verifyTip && !goodsInfo.reason) { + verifyTip = '请选择' + type + '原因'; + } + + if (goodsInfo.reason === 4 || + goodsInfo.reason === 6 || + goodsInfo.reason === 8) { + goodsInfo.remark = $.trim($next.find('textarea').val()); + goodsInfo.evidence_images = []; + $next.find('input[name="imgs"]').each(function() { + goodsInfo.evidence_images.push($(this).val()); + }); + + if (!verifyTip && !goodsInfo.remark) { + verifyTip = '请填写' + type + '描述'; + } + + if (!verifyTip && !goodsInfo.evidence_images.length) { + verifyTip = '请上传图片'; + } + } + delete goodsInfo.reason; + + goods.push(goodsInfo); + } + }); + + if (!verifyTip && !goods.length) { + verifyTip = '请选择要' + type + '的商品'; + } + + return goods; +} + +// 打包退货信息 +function packRefundInfo() { + var res = {}; + + res.goods = packGoogsList(); + res.payment = {}; + + $refundType.each(function() { + if ($(this).prop('checked')) { + res.payment.return_amount_mode = $(this).val() * 1; + } + }); + + if (!verifyTip && !res.payment.return_amount_mode) { + verifyTip = '请选择退款方式'; + } + + if (res.payment.return_amount_mode === 2) { + res.payment.province = $province.val(); + res.payment.city = $city.val(); + res.payment.area_code = $areaCode.val(); + if (!verifyTip && !res.payment.area_code * 1) { + verifyTip = '请选择银行所在地'; + } + + res.payment.bank_name = $.trim($refundInfo.find('input[name="bank-name"]').val()); + if (!verifyTip && !res.payment.bank_name) { + verifyTip = '请填写银行名称'; + } + + res.payment.payee_name = $.trim($refundInfo.find('input[name="payee-name"]').val()); + if (!verifyTip && !res.payment.payee_name) { + verifyTip = '请填写收款人姓名'; + } + + res.payment.bank_card = $.trim($refundInfo.find('input[name="bank-card"]').val()); + if (!verifyTip && !res.payment.bank_card) { + verifyTip = '请填写收款账户'; + } + + } else if (res.payment.return_amount_mode === 3) { + res.payment.alipay_name = $.trim($refundInfo.find('input[name="alipay-name"]').val()); + if (!verifyTip && !res.payment.alipay_name) { + verifyTip = '请填写收款人姓名'; + } + + res.payment.alipay_account = $.trim($refundInfo.find('input[name="alipay-account"]').val()); + if (!verifyTip && !res.payment.alipay_account) { + verifyTip = '请填写收款账户'; + } + + } + return res; +} + +// 打包换货信息 +function packExchangeInfo() { + var res = {}; + + res.goods = packGoogsList(); + + res.consigneeName = $.trim($exchange.find('input[name="name"]').val()); + if (!verifyTip && !res.consigneeName) { + verifyTip = '请填写收货人姓名'; + } + + res.areaCode = $areaCode.val(); + if (!verifyTip && !res.areaCode * 1) { + verifyTip = '请选择地区'; + } + + res.address = $.trim($exchange.find('input[name="address"]').val()); + if (!verifyTip && !res.address) { + verifyTip = '请填写详细地址'; + } + + res.mobile = $.trim($exchange.find('input[name="phone"]').val()); + if (res.mobile === disPhone) { + res.mobile = defaultPhone; + } else { + if (!verifyTip && !res.mobile) { + verifyTip = '请填写手机号'; + } + } + + res.zipCode = $.trim($exchange.find('input[name="postcode"]').val()); + res.deliveryType = $exchange.find('input[name="delivery-tpye"]:checked').val(); + if (!verifyTip && !res.deliveryType) { + verifyTip = '请选择商品返回方式'; + } + + return res; +} + +function loadWaiting(status) { + var text = '○'; + + if (status) { + $submitBox.addClass('applying'); + timer = setInterval(function() { + $waitPoint.text(text); + if (text.length > 3) { + text = ''; + } + text += '○'; + }, 600); + } else { + $submitBox.removeClass('applying'); + clearInterval(timer); + } +} + +// 提交申请 +$('.save-btn').click(function() { + var url, data; + + verifyTip = ''; // 初始化提示语 + if (pageType) { + url = '/home/returns/saveRefund'; + data = packRefundInfo(); + } else { + url = '/home/returns/saveExchange'; + data = packExchangeInfo(); + } + data.orderCode = orderCode; + + if (verifyTip) { + alert(verifyTip); + return; + } + + loadWaiting(true); + $.ajax({ + type: 'POST', + url: url, + data: data + }).then(function(jsonData) { + if (jsonData.code === 200) { + if (jsonData.data && jsonData.data.refer) { + window.location.href = jsonData.data.refer; + } + } else { + alert(jsonData.message); + loadWaiting(false); + } + }); +}); +}); +define("js/home/common-address", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 个人中心页-地址管理 + * @author: wsl<shuiling.wang@yoho.cn> + * @date: 2016/02/24 + */ + +var $ = require("jquery"), + dialog = require("js/common/dialog"), + Alert = dialog.Alert; + +var address = { + + // 省的控件ID + provinceDomId: 'province', + + // 城市的控件ID + cityDomId: 'city', + + // 地区的控件ID + areaDomId: 'areaCode', + + initDomIds: function(domOptions) { + var the = this; + + if (domOptions.provinceDomId !== undefined) { + the.provinceDomId = domOptions.provinceDomId; + } + if (domOptions.cityDomId !== undefined) { + the.cityDomId = domOptions.cityDomId; + } + if (domOptions.areaDomId !== undefined) { + the.areaDomId = domOptions.areaDomId; + } + }, + + // 初始化地址数据 + loadAreaData: function(pCode, toDomId, defaultValue, allCode) { + var the = this, + $toDom = $('#' + toDomId), + i = 0, + point = ''; + + var active, + val, + nId, + selecter; + + $toDom.empty(); + + if (pCode < 91) { + $('#' + the.areaDomId).empty(); + $('#county').attr('disabled', 'disabled'); + } + + $.ajax({ + type: 'GET', + url: '/home/address/area', + data: 'id=' + pCode, + + success: function(jsonData) { + jsonData.code = 200; + + if (jsonData.code !== 200) { + active = new Alert('暂无数据'); + active.show(); + return false; + } + + $toDom.append('<option value="0">' + defaultValue + '</option>'); + for (i in jsonData.options) { + if (jsonData.options[i]) { + val = jsonData.options[i]; + point = (toDomId === the.areaDomId && val.is_support === 'Y') ? '*' : ''; + nId = val.value; + selecter = ''; + + if (typeof (allCode) !== 'undefined' && allCode !== 0 && + nId === allCode.substr(0, nId.length)) { + selecter = 'selected'; + } + $toDom.append('<option value="' + nId + '" ' + selecter + '>' + point + val.text + '</option>'); + } + } + } + }); + }, + bindAreaChange: function(domOptions) { + var the = this; + + if ($('#' + the.provinceDomId).data('events') !== undefined) { + return; + } + + // 初始化 + $('#' + the.provinceDomId).change(function() { + var pCode = $('#' + the.provinceDomId).val(); + + if (pCode === '0') { + return; + } + + the.loadAreaData(pCode, the.cityDomId, '请选择城市', pCode); + $('#' + the.areaDomId).hide(); + the.showAreaSel(domOptions.dispDomId); + }); + + $('#' + this.cityDomId).change(function() { + var pCode = $('#' + the.cityDomId).val(); + + if (pCode === '0') { + return; + } + + the.loadAreaData(pCode, the.areaDomId, '请选择区县', pCode); + $('#' + the.areaDomId).show(); + the.showAreaSel(domOptions.dispDomId); + }); + + $('#' + the.areaDomId).change(function() { + the.showAreaSel(domOptions.dispDomId); + }); + + the.showAreaSel(domOptions.dispDomId); + }, + + /** + * 显示地区选择 + */ + showAreaSel: function(dispDomId) { + var the = this, + strAddr = '', + strProvince = $('#' + the.provinceDomId).find('option:selected').text(), + strCity = $('#' + the.cityDomId).find('option:selected').text(), + strArea = $('#' + the.areaDomId).find('option:selected').text(); + + if (dispDomId !== undefined && dispDomId !== '') { + if (strProvince.indexOf('选择') < 0) { + strAddr = strProvince; + } + + if (strCity !== '' && strCity.indexOf('选择') < 0) { + strAddr += ',' + strCity; + } + + if (strArea !== '' && strArea.indexOf('选择') < 0) { + strAddr += ',' + strArea; + } + $('#' + dispDomId).html(strAddr); + } + }, + + loadAllData: function(areaCode, domOptions) { + var the = this; + + the.initDomIds(domOptions); + areaCode += ''; + + if (areaCode < 91) { + the.loadAreaData(0, the.provinceDomId, '请选择省份', ''); + $('#' + the.areaDomId).hide(); + $('#' + the.cityDomId).html('<option value="0">请选择市</option>'); + } else if (areaCode.length === 4) { + the.loadAreaData(0, the.provinceDomId, '请选择省份', areaCode); + the.loadAreaData(areaCode.substr(0, 2), the.cityDomId, '请选择城市', areaCode); + the.loadAreaData(areaCode, the.areaDomId, '请选择区县', areaCode); + $('#' + the.areaDomId).show(); + } else if (areaCode.length === 6) { + the.loadAreaData(0, the.provinceDomId, '请选择省份', areaCode); + the.loadAreaData(areaCode.substr(0, 2), the.cityDomId, '请选择城市', areaCode); + the.loadAreaData(areaCode.substr(0, 4), the.areaDomId, '请选择区县', areaCode); + $('#' + this.areaDomId).show(); + } + the.bindAreaChange(domOptions); + } +}; + +module.exports = address; + +}); +define("plugin/jquery.qupload", ["jquery"], function(require, exports, module){ +/** + * upload plugin + * + */ +var $ = require("jquery"); +var SWFUpload = require("plugin/swfupload.queue").SWFUpload; + +var file_upload_limit = 6; +$.fn.extend({ + qupload : function(options) { + writeProgressHtml(); + initSwfUpload($(this).attr('id'), options); + } +}); + +var hasProgreeHtml = 0; + +// 创建进度条的html +function writeProgressHtml() { + if (hasProgreeHtml == 0) // 一个页面只创建一次 + { + $('body') + .append( + '<div id="progressDialog" style="display: none;width:370px;height:80px !important;"><div style="padding:10px 20px;"><span id="curUploadStatus">图片上传中……请稍等</span><div id="progress"></div></div></div>'); + hasProgreeHtml = 1; + } +} + +function setUploadStatus(uploadNum, totalUploadNum) { + $('#uploadNum').html(uploadNum); + $('#totalUploadNum').html(totalUploadNum); +} + +// 初始化swf +function initSwfUpload(btnId, options) { + // 上传成功的回调函数 + var uploadSuccessCallBack = null; + if (options.uploadSuccessed != undefined) { + uploadSuccessCallBack = options.uploadSuccessed; + } + // 上传的key + var uploadKeyValue = ''; + if (options.uploadKey != undefined) { + uploadKeyValue = options.uploadKey; + } + + // 上传之前可以做的操作参数 + var preUploadCallBack = null; + if (options.preupload != undefined) { + preUploadCallBack = options.preupload; + } + + // 弹出层ID + var progressDivId = 'progressDialog'; + // 进度条ID + var progressTargetId = 'progress'; + + // 共有多少张需要上传 + var totalUploadNum = 0; + + // 当前已经上传的张数 + var curUploadedNum = 0; + + this.options = options; + + var numTest = 0; + + var errmsg_box = this.options.errmsg_box; + + // 设置默认值函数 + function setDefaultValue(optionName, optionValue) { + this.options[optionName] = options[optionName] == undefined ? optionValue + : options[optionName]; + } + + setDefaultValue('flash_url', + "http://static.yohobuy.com/admin/js/swfupload/swfupload.swf"); + setDefaultValue('upload_url', "http://upload.yohobuy.com"); + setDefaultValue('file_post_name', "Filedata"); + setDefaultValue('file_size_limit', "2 MB"); + setDefaultValue('file_types', "*.*"); + setDefaultValue('file_types_description', "All Files"); + setDefaultValue('file_upload_limit', file_upload_limit); + setDefaultValue('file_queue_limit', 0); + setDefaultValue('button_image_url', + "http://static.yohobuy.com/admin/images/btn_swfupload.png"); + setDefaultValue('button_width', "104"); + setDefaultValue('button_height', "20"); + setDefaultValue('button_text', '<span class="btn_upload_xzzp">选择本地照片</span>'); + setDefaultValue('button_text_style', '.btn_upload_xzzp{color:#ffffff}'); + setDefaultValue('button_text_left_padding', 24); + setDefaultValue('button_text_top_padding', 0); + setDefaultValue('button_window_mode', 'TRANSPARENT'); + setDefaultValue('button_cursor', '-2'); + + var settings = { + flash_url : this.options.flash_url, + upload_url : this.options.upload_url, + file_post_name : this.options.file_post_name, + // post_params: {"PHPSESSID" : "<?php echo session_id(); ?>"}, + file_size_limit : this.options.file_size_limit, + file_types : this.options.file_types, + file_types_description : this.options.file_types_description, + file_upload_limit : this.options.file_upload_limit, + file_queue_limit : this.options.file_queue_limit, + prevent_swf_caching : false, + preserve_relative_urls : false, + custom_settings : { + + }, + debug : false, + + // Button settings + button_image_url : this.options.button_image_url, + button_width : this.options.button_width, + button_height : this.options.button_height, + button_placeholder_id : btnId, + button_text : this.options.button_text, + button_text_style : this.options.button_text_style, + button_text_left_padding : this.options.button_text_left_padding, + button_text_top_padding : this.options.button_text_top_padding, + button_window_mode : this.options.button_window_mode, + button_cursor : this.options.button_cursor, + + // The event handler functions are defined in handlers.js + file_dialog_start_handler : fileDialogStart, + file_queued_handler : fileQueued, + file_queue_error_handler : fileQueueError, + file_dialog_complete_handler : fileDialogComplete, + upload_start_handler : uploadStart, + upload_progress_handler : uploadProgress, + upload_error_handler : uploadError, + upload_success_handler : uploadSuccess, + upload_complete_handler : uploadComplete, + queue_complete_handler : queueComplete, + button_action: this.options.button_action + }; + + var swfu = new SWFUpload(settings); + + function fileQueued(file) { + try { + + } catch (ex) { + this.debug(ex); + } + + } + + function fileQueueError(file, errorCode, message) { + var errmsg; + try { + if (errorCode === SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED) { + alert("您尝试上传太多文件.\n" + + (message === 0 ? "您已达到上传限制." : "您最多还可以 " + + (message > 1 ? "上传 " + message + "文件." + : "一个文件."))); + return; + } + + // var progress = new FileProgress(file, + // this.customSettings.progressTarget); + // progress.setError(); + // progress.toggleCancel(false); + switch (errorCode) { + + case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT: + // progress.setStatus("File is too big."); + + errmsg = '文件超过'+settings.file_size_limit/1024+'M'; + alert(errmsg); + this.debug("Error Code: File too big, File name: " + + file.name + ", File size: " + file.size + + ", Message: " + message); + break; + case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE: + // progress.setStatus("Cannot upload Zero Byte files."); + alert('请上传有内容的文件!'); + this.debug("Error Code: Zero byte file, File name: " + + file.name + ", File size: " + file.size + + ", Message: " + message); + break; + case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE: + alert('请上传指定类型的文件!'); + this.debug("Error Code: Invalid File Type, File name: " + + file.name + ", File size: " + file.size + + ", Message: " + message); + break; + default: + if (file !== null) { + // progress.setStatus("Unhandled Error"); + } + alert('上传文件失败,请稍后在试!'); + this.debug("Error Code: " + errorCode + ", File name: " + + file.name + ", File size: " + file.size + + ", Message: " + message); + break; + } + } catch (ex) { + this.debug(ex); + } + } + + function fileDialogStart() { + if (preUploadCallBack != null) { + preUploadCallBack(); + } + } + + // 选择文件完成 + function fileDialogComplete(numFilesSelected, numFilesQueued) { + try { + + if (numFilesSelected > 0) { + // document.getElementById(this.customSettings.cancelButtonId).disabled + // = false; + totalUploadNum = numFilesSelected; + curUploadedNum = 1; + setUploadStatus(curUploadedNum, totalUploadNum); + this.startUpload(); + } + + } catch (ex) { + this.debug(ex); + } + } + + // 开始上传 + function uploadStart(file) { + this.addPostParam('_key', uploadKeyValue); + //$('#' + progressDivId).dialog(); + } + + // 上传进度 + function uploadProgress(file, bytesLoaded, bytesTotal) { + // $('#uploadData').html(bytesLoaded + "/" + bytesTotal); + // $('#uploadData').html( $('#uploadData').html() + ' - ' + bytesLoaded + // + '+' + ',' + bytesTotal ); + var percent = Math.ceil((bytesLoaded / bytesTotal) * 100); + //$("#progress").progressbar({ + // value : percent + //}); + } + + // 上传成功 + function uploadSuccess(file, serverData) { + curUploadedNum++; + setUploadStatus(curUploadedNum, totalUploadNum); + if (uploadSuccessCallBack != null) { + uploadSuccessCallBack(serverData); + } + } + + // 上传出错 + function uploadError(file, errorCode, message) { + + try { + if (errorCode === SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED) { + alert("您尝试上传太多文件.\n" + + (message === 0 ? "您已达到上传限制." : "您最多还可以 " + + (message > 1 ? "上传 " + message + "文件." + : "一个文件."))); + return; + } + switch (errorCode) { + + case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT: + alert("Error Code: 文件太大。 文件名为: " + file.name + ", 大小为: " + + file.size + ", Message: " + message); + break; + case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE: + + alert("Error Code: 文件为0, 文件名为: " + file.name + ", 大小为: " + + file.size + ", Message: " + message); + break; + case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE: + alert("Error Code: 文件类型不合要求, 文件名为: " + file.name + ", 大小为: " + + file.size + ", Message: " + message); + break; + default: + if (file !== null) { + + } + alert("上传出错" + "Error Code: " + errorCode + ", File name: " + + file.name + ", File size: " + file.size + + ", Message: " + message); + break; + } + } catch (ex) { + this.debug(ex); + } + } + + // 上传完成 + function uploadComplete(file) { + //$('#' + progressDivId).dialog('close'); + } + + // This event comes from the Queue Plugin + function queueComplete(numFilesUploaded) { + + } +} + +window.SWFUpload = SWFUpload; +}); +define("plugin/swfupload.queue", [], function(require, exports, module){ +/* + Queue Plug-in + + Features: + *Adds a cancelQueue() method for cancelling the entire queue. + *All queued files are uploaded when startUpload() is called. + *If false is returned from uploadComplete then the queue upload is stopped. + If false is not returned (strict comparison) then the queue upload is continued. + *Adds a QueueComplete event that is fired when all the queued files have finished uploading. + Set the event handler with the queue_complete_handler setting. + + */ +var SWFUpload = require("plugin/swfupload").SWFUpload; + +if (typeof(SWFUpload) === "function") { + SWFUpload.queue = {}; + + SWFUpload.prototype.initSettings = (function (oldInitSettings) { + return function () { + if (typeof(oldInitSettings) === "function") { + oldInitSettings.call(this); + } + + this.queueSettings = {}; + + this.queueSettings.queue_cancelled_flag = false; + this.queueSettings.queue_upload_count = 0; + + this.queueSettings.user_upload_complete_handler = this.settings.upload_complete_handler; + this.queueSettings.user_upload_start_handler = this.settings.upload_start_handler; + this.settings.upload_complete_handler = SWFUpload.queue.uploadCompleteHandler; + this.settings.upload_start_handler = SWFUpload.queue.uploadStartHandler; + + this.settings.queue_complete_handler = this.settings.queue_complete_handler || null; + }; + })(SWFUpload.prototype.initSettings); + + SWFUpload.prototype.startUpload = function (fileID) { + this.queueSettings.queue_cancelled_flag = false; + this.callFlash("StartUpload", [fileID]); + }; + + SWFUpload.prototype.cancelQueue = function () { + this.queueSettings.queue_cancelled_flag = true; + this.stopUpload(); + + var stats = this.getStats(); + while (stats.files_queued > 0) { + this.cancelUpload(); + stats = this.getStats(); + } + }; + + SWFUpload.queue.uploadStartHandler = function (file) { + var returnValue; + if (typeof(this.queueSettings.user_upload_start_handler) === "function") { + returnValue = this.queueSettings.user_upload_start_handler.call(this, file); + } + + // To prevent upload a real "FALSE" value must be returned, otherwise default to a real "TRUE" value. + returnValue = (returnValue === false) ? false : true; + + this.queueSettings.queue_cancelled_flag = !returnValue; + + return returnValue; + }; + + SWFUpload.queue.uploadCompleteHandler = function (file) { + var user_upload_complete_handler = this.queueSettings.user_upload_complete_handler; + var continueUpload; + + if (file.filestatus === SWFUpload.FILE_STATUS.COMPLETE) { + this.queueSettings.queue_upload_count++; + } + + if (typeof(user_upload_complete_handler) === "function") { + continueUpload = (user_upload_complete_handler.call(this, file) === false) ? false : true; + } else if (file.filestatus === SWFUpload.FILE_STATUS.QUEUED) { + // If the file was stopped and re-queued don't restart the upload + continueUpload = false; + } else { + continueUpload = true; + } + + if (continueUpload) { + var stats = this.getStats(); + if (stats.files_queued > 0 && this.queueSettings.queue_cancelled_flag === false) { + this.startUpload(); + } else if (this.queueSettings.queue_cancelled_flag === false) { + this.queueEvent("queue_complete_handler", [this.queueSettings.queue_upload_count]); + this.queueSettings.queue_upload_count = 0; + } else { + this.queueSettings.queue_cancelled_flag = false; + this.queueSettings.queue_upload_count = 0; + } + } + }; +} + +exports.SWFUpload = SWFUpload; +}); +define("plugin/swfupload", [], function(require, exports, module){ +/** + * SWFUpload: http://www.swfupload.org, http://swfupload.googlecode.com + * + * mmSWFUpload 1.0: Flash upload dialog - http://profandesign.se/swfupload/, http://www.vinterwebb.se/ + * + * SWFUpload is (c) 2006-2007 Lars Huring, Olov Nilz锟絥 and Mammon Media and is released under the MIT License: + * http://www.opensource.org/licenses/mit-license.php + * + * SWFUpload 2 is (c) 2007-2008 Jake Roberts and is released under the MIT License: + * http://www.opensource.org/licenses/mit-license.php + * + */ + + +/* ******************* */ +/* Constructor & Init */ +/* ******************* */ +var SWFUpload; + +if (SWFUpload == undefined) { + SWFUpload = function (settings) { + this.initSWFUpload(settings); + }; +} + +SWFUpload.prototype.initSWFUpload = function (settings) { + try { + this.customSettings = {}; // A container where developers can place their own settings associated with this instance. + this.settings = settings; + this.eventQueue = []; + this.movieName = "SWFUpload_" + SWFUpload.movieCount++; + this.movieElement = null; + + + // Setup global control tracking + SWFUpload.instances[this.movieName] = this; + + // Load the settings. Load the Flash movie. + this.initSettings(); + this.loadFlash(); + this.displayDebugInfo(); + } catch (ex) { + delete SWFUpload.instances[this.movieName]; + throw ex; + } +}; + +/* *************** */ +/* Static Members */ +/* *************** */ +SWFUpload.instances = {}; +SWFUpload.movieCount = 0; +SWFUpload.version = "2.2.0 2009-03-25"; +SWFUpload.QUEUE_ERROR = { + QUEUE_LIMIT_EXCEEDED : -100, + FILE_EXCEEDS_SIZE_LIMIT : -110, + ZERO_BYTE_FILE : -120, + INVALID_FILETYPE : -130 +}; +SWFUpload.UPLOAD_ERROR = { + HTTP_ERROR : -200, + MISSING_UPLOAD_URL : -210, + IO_ERROR : -220, + SECURITY_ERROR : -230, + UPLOAD_LIMIT_EXCEEDED : -240, + UPLOAD_FAILED : -250, + SPECIFIED_FILE_ID_NOT_FOUND : -260, + FILE_VALIDATION_FAILED : -270, + FILE_CANCELLED : -280, + UPLOAD_STOPPED : -290 +}; +SWFUpload.FILE_STATUS = { + QUEUED : -1, + IN_PROGRESS : -2, + ERROR : -3, + COMPLETE : -4, + CANCELLED : -5 +}; +SWFUpload.BUTTON_ACTION = { + SELECT_FILE : -100, + SELECT_FILES : -110, + START_UPLOAD : -120 +}; +SWFUpload.CURSOR = { + ARROW : -1, + HAND : -2 +}; +SWFUpload.WINDOW_MODE = { + WINDOW : "window", + TRANSPARENT : "transparent", + OPAQUE : "opaque" +}; + +// Private: takes a URL, determines if it is relative and converts to an absolute URL +// using the current site. Only processes the URL if it can, otherwise returns the URL untouched +SWFUpload.completeURL = function(url) { + if (typeof(url) !== "string" || url.match(/^https?:\/\//i) || url.match(/^\//)) { + return url; + } + + var currentURL = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ":" + window.location.port : ""); + + var indexSlash = window.location.pathname.lastIndexOf("/"); + if (indexSlash <= 0) { + path = "/"; + } else { + path = window.location.pathname.substr(0, indexSlash) + "/"; + } + + return /*currentURL +*/ path + url; + +}; + + +/* ******************** */ +/* Instance Members */ +/* ******************** */ + +// Private: initSettings ensures that all the +// settings are set, getting a default value if one was not assigned. +SWFUpload.prototype.initSettings = function () { + this.ensureDefault = function (settingName, defaultValue) { + this.settings[settingName] = (this.settings[settingName] == undefined) ? defaultValue : this.settings[settingName]; + }; + + // Upload backend settings + this.ensureDefault("upload_url", ""); + this.ensureDefault("preserve_relative_urls", false); + this.ensureDefault("file_post_name", "Filedata"); + this.ensureDefault("post_params", {}); + this.ensureDefault("use_query_string", false); + this.ensureDefault("requeue_on_error", false); + this.ensureDefault("http_success", []); + this.ensureDefault("assume_success_timeout", 0); + + // File Settings + this.ensureDefault("file_types", "*.*"); + this.ensureDefault("file_types_description", "All Files"); + this.ensureDefault("file_size_limit", 0); // Default zero means "unlimited" + this.ensureDefault("file_upload_limit", 0); + this.ensureDefault("file_queue_limit", 0); + + // Flash Settings + this.ensureDefault("flash_url", "swfupload.swf"); + this.ensureDefault("prevent_swf_caching", true); + + // Button Settings + this.ensureDefault("button_image_url", ""); + this.ensureDefault("button_width", 1); + this.ensureDefault("button_height", 1); + this.ensureDefault("button_text", ""); + this.ensureDefault("button_text_style", "color: #000000; font-size: 16pt;"); + this.ensureDefault("button_text_top_padding", 0); + this.ensureDefault("button_text_left_padding", 0); + this.ensureDefault("button_action", SWFUpload.BUTTON_ACTION.SELECT_FILES); + this.ensureDefault("button_disabled", false); + this.ensureDefault("button_placeholder_id", ""); + this.ensureDefault("button_placeholder", null); + this.ensureDefault("button_cursor", SWFUpload.CURSOR.ARROW); + this.ensureDefault("button_window_mode", SWFUpload.WINDOW_MODE.WINDOW); + + // Debug Settings + this.ensureDefault("debug", false); + this.settings.debug_enabled = this.settings.debug; // Here to maintain v2 API + + // Event Handlers + this.settings.return_upload_start_handler = this.returnUploadStart; + this.ensureDefault("swfupload_loaded_handler", null); + this.ensureDefault("file_dialog_start_handler", null); + this.ensureDefault("file_queued_handler", null); + this.ensureDefault("file_queue_error_handler", null); + this.ensureDefault("file_dialog_complete_handler", null); + + this.ensureDefault("upload_start_handler", null); + this.ensureDefault("upload_progress_handler", null); + this.ensureDefault("upload_error_handler", null); + this.ensureDefault("upload_success_handler", null); + this.ensureDefault("upload_complete_handler", null); + + this.ensureDefault("debug_handler", this.debugMessage); + + this.ensureDefault("custom_settings", {}); + + // Other settings + this.customSettings = this.settings.custom_settings; + + // Update the flash url if needed + if (!!this.settings.prevent_swf_caching) { + this.settings.flash_url = this.settings.flash_url + (this.settings.flash_url.indexOf("?") < 0 ? "?" : "&") + "preventswfcaching=" + new Date().getTime(); + } + + if (!this.settings.preserve_relative_urls) { + //this.settings.flash_url = SWFUpload.completeURL(this.settings.flash_url); // Don't need to do this one since flash doesn't look at it + this.settings.upload_url = SWFUpload.completeURL(this.settings.upload_url); + if (this.settings.button_image_url) { + this.settings.button_image_url = SWFUpload.completeURL(this.settings.button_image_url); + } + } + + delete this.ensureDefault; +}; + +// Private: loadFlash replaces the button_placeholder element with the flash movie. +SWFUpload.prototype.loadFlash = function () { + var targetElement, tempParent; + + // Make sure an element with the ID we are going to use doesn't already exist + if (document.getElementById(this.movieName) !== null) { + throw "ID " + this.movieName + " is already in use. The Flash Object could not be added"; + } + + // Get the element where we will be placing the flash movie + targetElement = document.getElementById(this.settings.button_placeholder_id) || this.settings.button_placeholder; + + if (targetElement == undefined) { + throw "Could not find the placeholder element: " + this.settings.button_placeholder_id; + } + + // Append the container and load the flash + tempParent = document.createElement("div"); + tempParent.innerHTML = this.getFlashHTML(); // Using innerHTML is non-standard but the only sensible way to dynamically add Flash in IE (and maybe other browsers) + targetElement.parentNode.replaceChild(tempParent.firstChild, targetElement); + + // Fix IE Flash/Form bug + if (window[this.movieName] == undefined) { + window[this.movieName] = this.getMovieElement(); + } + +}; + +// Private: getFlashHTML generates the object tag needed to embed the flash in to the document +SWFUpload.prototype.getFlashHTML = function () { + // Flash Satay object syntax: http://www.alistapart.com/articles/flashsatay + return ['<object id="', this.movieName, '" type="application/x-shockwave-flash" data="', this.settings.flash_url, '" width="', this.settings.button_width, '" height="', this.settings.button_height, '" class="swfupload">', + '<param name="wmode" value="', this.settings.button_window_mode, '" />', + '<param name="movie" value="', this.settings.flash_url, '" />', + '<param name="quality" value="high" />', + '<param name="menu" value="false" />', + '<param name="allowScriptAccess" value="always" />', + '<param name="flashvars" value="' + this.getFlashVars() + '" />', + '</object>'].join(""); +}; + +// Private: getFlashVars builds the parameter string that will be passed +// to flash in the flashvars param. +SWFUpload.prototype.getFlashVars = function () { + // Build a string from the post param object + var paramString = this.buildParamString(); + var httpSuccessString = this.settings.http_success.join(","); + + // Build the parameter string + return ["movieName=", encodeURIComponent(this.movieName), + "&uploadURL=", encodeURIComponent(this.settings.upload_url), + "&useQueryString=", encodeURIComponent(this.settings.use_query_string), + "&requeueOnError=", encodeURIComponent(this.settings.requeue_on_error), + "&httpSuccess=", encodeURIComponent(httpSuccessString), + "&assumeSuccessTimeout=", encodeURIComponent(this.settings.assume_success_timeout), + "&params=", encodeURIComponent(paramString), + "&filePostName=", encodeURIComponent(this.settings.file_post_name), + "&fileTypes=", encodeURIComponent(this.settings.file_types), + "&fileTypesDescription=", encodeURIComponent(this.settings.file_types_description), + "&fileSizeLimit=", encodeURIComponent(this.settings.file_size_limit), + "&fileUploadLimit=", encodeURIComponent(this.settings.file_upload_limit), + "&fileQueueLimit=", encodeURIComponent(this.settings.file_queue_limit), + "&debugEnabled=", encodeURIComponent(this.settings.debug_enabled), + "&buttonImageURL=", encodeURIComponent(this.settings.button_image_url), + "&buttonWidth=", encodeURIComponent(this.settings.button_width), + "&buttonHeight=", encodeURIComponent(this.settings.button_height), + "&buttonText=", encodeURIComponent(this.settings.button_text), + "&buttonTextTopPadding=", encodeURIComponent(this.settings.button_text_top_padding), + "&buttonTextLeftPadding=", encodeURIComponent(this.settings.button_text_left_padding), + "&buttonTextStyle=", encodeURIComponent(this.settings.button_text_style), + "&buttonAction=", encodeURIComponent(this.settings.button_action), + "&buttonDisabled=", encodeURIComponent(this.settings.button_disabled), + "&buttonCursor=", encodeURIComponent(this.settings.button_cursor) + ].join(""); +}; + +// Public: getMovieElement retrieves the DOM reference to the Flash element added by SWFUpload +// The element is cached after the first lookup +SWFUpload.prototype.getMovieElement = function () { + if (this.movieElement == undefined) { + this.movieElement = document.getElementById(this.movieName); + } + + if (this.movieElement === null) { + throw "Could not find Flash element"; + } + + return this.movieElement; +}; + +// Private: buildParamString takes the name/value pairs in the post_params setting object +// and joins them up in to a string formatted "name=value&name=value" +SWFUpload.prototype.buildParamString = function () { + var postParams = this.settings.post_params; + var paramStringPairs = []; + + if (typeof(postParams) === "object") { + for (var name in postParams) { + if (postParams.hasOwnProperty(name)) { + paramStringPairs.push(encodeURIComponent(name.toString()) + "=" + encodeURIComponent(postParams[name].toString())); + } + } + } + + return paramStringPairs.join("&"); +}; + +// Public: Used to remove a SWFUpload instance from the page. This method strives to remove +// all references to the SWF, and other objects so memory is properly freed. +// Returns true if everything was destroyed. Returns a false if a failure occurs leaving SWFUpload in an inconsistant state. +// Credits: Major improvements provided by steffen +SWFUpload.prototype.destroy = function () { + try { + // Make sure Flash is done before we try to remove it + this.cancelUpload(null, false); + + + // Remove the SWFUpload DOM nodes + var movieElement = null; + movieElement = this.getMovieElement(); + + if (movieElement && typeof(movieElement.CallFunction) === "unknown") { // We only want to do this in IE + // Loop through all the movie's properties and remove all function references (DOM/JS IE 6/7 memory leak workaround) + for (var i in movieElement) { + try { + if (typeof(movieElement[i]) === "function") { + movieElement[i] = null; + } + } catch (ex1) {} + } + + // Remove the Movie Element from the page + try { + movieElement.parentNode.removeChild(movieElement); + } catch (ex) {} + } + + // Remove IE form fix reference + window[this.movieName] = null; + + // Destroy other references + SWFUpload.instances[this.movieName] = null; + delete SWFUpload.instances[this.movieName]; + + this.movieElement = null; + this.settings = null; + this.customSettings = null; + this.eventQueue = null; + this.movieName = null; + + + return true; + } catch (ex2) { + return false; + } +}; + + +// Public: displayDebugInfo prints out settings and configuration +// information about this SWFUpload instance. +// This function (and any references to it) can be deleted when placing +// SWFUpload in production. +SWFUpload.prototype.displayDebugInfo = function () { + this.debug( + [ + "---SWFUpload Instance Info---\n", + "Version: ", SWFUpload.version, "\n", + "Movie Name: ", this.movieName, "\n", + "Settings:\n", + "\t", "upload_url: ", this.settings.upload_url, "\n", + "\t", "flash_url: ", this.settings.flash_url, "\n", + "\t", "use_query_string: ", this.settings.use_query_string.toString(), "\n", + "\t", "requeue_on_error: ", this.settings.requeue_on_error.toString(), "\n", + "\t", "http_success: ", this.settings.http_success.join(", "), "\n", + "\t", "assume_success_timeout: ", this.settings.assume_success_timeout, "\n", + "\t", "file_post_name: ", this.settings.file_post_name, "\n", + "\t", "post_params: ", this.settings.post_params.toString(), "\n", + "\t", "file_types: ", this.settings.file_types, "\n", + "\t", "file_types_description: ", this.settings.file_types_description, "\n", + "\t", "file_size_limit: ", this.settings.file_size_limit, "\n", + "\t", "file_upload_limit: ", this.settings.file_upload_limit, "\n", + "\t", "file_queue_limit: ", this.settings.file_queue_limit, "\n", + "\t", "debug: ", this.settings.debug.toString(), "\n", + + "\t", "prevent_swf_caching: ", this.settings.prevent_swf_caching.toString(), "\n", + + "\t", "button_placeholder_id: ", this.settings.button_placeholder_id.toString(), "\n", + "\t", "button_placeholder: ", (this.settings.button_placeholder ? "Set" : "Not Set"), "\n", + "\t", "button_image_url: ", this.settings.button_image_url.toString(), "\n", + "\t", "button_width: ", this.settings.button_width.toString(), "\n", + "\t", "button_height: ", this.settings.button_height.toString(), "\n", + "\t", "button_text: ", this.settings.button_text.toString(), "\n", + "\t", "button_text_style: ", this.settings.button_text_style.toString(), "\n", + "\t", "button_text_top_padding: ", this.settings.button_text_top_padding.toString(), "\n", + "\t", "button_text_left_padding: ", this.settings.button_text_left_padding.toString(), "\n", + "\t", "button_action: ", this.settings.button_action.toString(), "\n", + "\t", "button_disabled: ", this.settings.button_disabled.toString(), "\n", + + "\t", "custom_settings: ", this.settings.custom_settings.toString(), "\n", + "Event Handlers:\n", + "\t", "swfupload_loaded_handler assigned: ", (typeof this.settings.swfupload_loaded_handler === "function").toString(), "\n", + "\t", "file_dialog_start_handler assigned: ", (typeof this.settings.file_dialog_start_handler === "function").toString(), "\n", + "\t", "file_queued_handler assigned: ", (typeof this.settings.file_queued_handler === "function").toString(), "\n", + "\t", "file_queue_error_handler assigned: ", (typeof this.settings.file_queue_error_handler === "function").toString(), "\n", + "\t", "upload_start_handler assigned: ", (typeof this.settings.upload_start_handler === "function").toString(), "\n", + "\t", "upload_progress_handler assigned: ", (typeof this.settings.upload_progress_handler === "function").toString(), "\n", + "\t", "upload_error_handler assigned: ", (typeof this.settings.upload_error_handler === "function").toString(), "\n", + "\t", "upload_success_handler assigned: ", (typeof this.settings.upload_success_handler === "function").toString(), "\n", + "\t", "upload_complete_handler assigned: ", (typeof this.settings.upload_complete_handler === "function").toString(), "\n", + "\t", "debug_handler assigned: ", (typeof this.settings.debug_handler === "function").toString(), "\n" + ].join("") + ); +}; + +/* Note: addSetting and getSetting are no longer used by SWFUpload but are included + the maintain v2 API compatibility +*/ +// Public: (Deprecated) addSetting adds a setting value. If the value given is undefined or null then the default_value is used. +SWFUpload.prototype.addSetting = function (name, value, default_value) { + if (value == undefined) { + return (this.settings[name] = default_value); + } else { + return (this.settings[name] = value); + } +}; + +// Public: (Deprecated) getSetting gets a setting. Returns an empty string if the setting was not found. +SWFUpload.prototype.getSetting = function (name) { + if (this.settings[name] != undefined) { + return this.settings[name]; + } + + return ""; +}; + + + +// Private: callFlash handles function calls made to the Flash element. +// Calls are made with a setTimeout for some functions to work around +// bugs in the ExternalInterface library. +SWFUpload.prototype.callFlash = function (functionName, argumentArray) { + argumentArray = argumentArray || []; + + var movieElement = this.getMovieElement(); + var returnValue, returnString; + + // Flash's method if calling ExternalInterface methods (code adapted from MooTools). + try { + returnString = movieElement.CallFunction('<invoke name="' + functionName + '" returntype="javascript">' + __flash__argumentsToXML(argumentArray, 0) + '</invoke>'); + returnValue = eval(returnString); + } catch (ex) { + throw "Call to " + functionName + " failed"; + } + + // Unescape file post param values + if (returnValue != undefined && typeof returnValue.post === "object") { + returnValue = this.unescapeFilePostParams(returnValue); + } + + return returnValue; +}; + +/* ***************************** + -- Flash control methods -- + Your UI should use these + to operate SWFUpload + ***************************** */ + +// WARNING: this function does not work in Flash Player 10 +// Public: selectFile causes a File Selection Dialog window to appear. This +// dialog only allows 1 file to be selected. +SWFUpload.prototype.selectFile = function () { + this.callFlash("SelectFile"); +}; + +// WARNING: this function does not work in Flash Player 10 +// Public: selectFiles causes a File Selection Dialog window to appear/ This +// dialog allows the user to select any number of files +// Flash Bug Warning: Flash limits the number of selectable files based on the combined length of the file names. +// If the selection name length is too long the dialog will fail in an unpredictable manner. There is no work-around +// for this bug. +SWFUpload.prototype.selectFiles = function () { + this.callFlash("SelectFiles"); +}; + + +// Public: startUpload starts uploading the first file in the queue unless +// the optional parameter 'fileID' specifies the ID +SWFUpload.prototype.startUpload = function (fileID) { + this.callFlash("StartUpload", [fileID]); +}; + +// Public: cancelUpload cancels any queued file. The fileID parameter may be the file ID or index. +// If you do not specify a fileID the current uploading file or first file in the queue is cancelled. +// If you do not want the uploadError event to trigger you can specify false for the triggerErrorEvent parameter. +SWFUpload.prototype.cancelUpload = function (fileID, triggerErrorEvent) { + if (triggerErrorEvent !== false) { + triggerErrorEvent = true; + } + this.callFlash("CancelUpload", [fileID, triggerErrorEvent]); +}; + +// Public: stopUpload stops the current upload and requeues the file at the beginning of the queue. +// If nothing is currently uploading then nothing happens. +SWFUpload.prototype.stopUpload = function () { + this.callFlash("StopUpload"); +}; + +/* ************************ + * Settings methods + * These methods change the SWFUpload settings. + * SWFUpload settings should not be changed directly on the settings object + * since many of the settings need to be passed to Flash in order to take + * effect. + * *********************** */ + +// Public: getStats gets the file statistics object. +SWFUpload.prototype.getStats = function () { + return this.callFlash("GetStats"); +}; + +// Public: setStats changes the SWFUpload statistics. You shouldn't need to +// change the statistics but you can. Changing the statistics does not +// affect SWFUpload accept for the successful_uploads count which is used +// by the upload_limit setting to determine how many files the user may upload. +SWFUpload.prototype.setStats = function (statsObject) { + this.callFlash("SetStats", [statsObject]); +}; + +// Public: getFile retrieves a File object by ID or Index. If the file is +// not found then 'null' is returned. +SWFUpload.prototype.getFile = function (fileID) { + if (typeof(fileID) === "number") { + return this.callFlash("GetFileByIndex", [fileID]); + } else { + return this.callFlash("GetFile", [fileID]); + } +}; + +// Public: addFileParam sets a name/value pair that will be posted with the +// file specified by the Files ID. If the name already exists then the +// exiting value will be overwritten. +SWFUpload.prototype.addFileParam = function (fileID, name, value) { + return this.callFlash("AddFileParam", [fileID, name, value]); +}; + +// Public: removeFileParam removes a previously set (by addFileParam) name/value +// pair from the specified file. +SWFUpload.prototype.removeFileParam = function (fileID, name) { + this.callFlash("RemoveFileParam", [fileID, name]); +}; + +// Public: setUploadUrl changes the upload_url setting. +SWFUpload.prototype.setUploadURL = function (url) { + this.settings.upload_url = url.toString(); + this.callFlash("SetUploadURL", [url]); +}; + +// Public: setPostParams changes the post_params setting +SWFUpload.prototype.setPostParams = function (paramsObject) { + this.settings.post_params = paramsObject; + this.callFlash("SetPostParams", [paramsObject]); +}; + +// Public: addPostParam adds post name/value pair. Each name can have only one value. +SWFUpload.prototype.addPostParam = function (name, value) { + this.settings.post_params[name] = value; + this.callFlash("SetPostParams", [this.settings.post_params]); +}; + +// Public: removePostParam deletes post name/value pair. +SWFUpload.prototype.removePostParam = function (name) { + delete this.settings.post_params[name]; + this.callFlash("SetPostParams", [this.settings.post_params]); +}; + +// Public: setFileTypes changes the file_types setting and the file_types_description setting +SWFUpload.prototype.setFileTypes = function (types, description) { + this.settings.file_types = types; + this.settings.file_types_description = description; + this.callFlash("SetFileTypes", [types, description]); +}; + +// Public: setFileSizeLimit changes the file_size_limit setting +SWFUpload.prototype.setFileSizeLimit = function (fileSizeLimit) { + this.settings.file_size_limit = fileSizeLimit; + this.callFlash("SetFileSizeLimit", [fileSizeLimit]); +}; + +// Public: setFileUploadLimit changes the file_upload_limit setting +SWFUpload.prototype.setFileUploadLimit = function (fileUploadLimit) { + this.settings.file_upload_limit = fileUploadLimit; + this.callFlash("SetFileUploadLimit", [fileUploadLimit]); +}; + +// Public: setFileQueueLimit changes the file_queue_limit setting +SWFUpload.prototype.setFileQueueLimit = function (fileQueueLimit) { + this.settings.file_queue_limit = fileQueueLimit; + this.callFlash("SetFileQueueLimit", [fileQueueLimit]); +}; + +// Public: setFilePostName changes the file_post_name setting +SWFUpload.prototype.setFilePostName = function (filePostName) { + this.settings.file_post_name = filePostName; + this.callFlash("SetFilePostName", [filePostName]); +}; + +// Public: setUseQueryString changes the use_query_string setting +SWFUpload.prototype.setUseQueryString = function (useQueryString) { + this.settings.use_query_string = useQueryString; + this.callFlash("SetUseQueryString", [useQueryString]); +}; + +// Public: setRequeueOnError changes the requeue_on_error setting +SWFUpload.prototype.setRequeueOnError = function (requeueOnError) { + this.settings.requeue_on_error = requeueOnError; + this.callFlash("SetRequeueOnError", [requeueOnError]); +}; + +// Public: setHTTPSuccess changes the http_success setting +SWFUpload.prototype.setHTTPSuccess = function (http_status_codes) { + if (typeof http_status_codes === "string") { + http_status_codes = http_status_codes.replace(" ", "").split(","); + } + + this.settings.http_success = http_status_codes; + this.callFlash("SetHTTPSuccess", [http_status_codes]); +}; + +// Public: setHTTPSuccess changes the http_success setting +SWFUpload.prototype.setAssumeSuccessTimeout = function (timeout_seconds) { + this.settings.assume_success_timeout = timeout_seconds; + this.callFlash("SetAssumeSuccessTimeout", [timeout_seconds]); +}; + +// Public: setDebugEnabled changes the debug_enabled setting +SWFUpload.prototype.setDebugEnabled = function (debugEnabled) { + this.settings.debug_enabled = debugEnabled; + this.callFlash("SetDebugEnabled", [debugEnabled]); +}; + +// Public: setButtonImageURL loads a button image sprite +SWFUpload.prototype.setButtonImageURL = function (buttonImageURL) { + if (buttonImageURL == undefined) { + buttonImageURL = ""; + } + + this.settings.button_image_url = buttonImageURL; + this.callFlash("SetButtonImageURL", [buttonImageURL]); +}; + +// Public: setButtonDimensions resizes the Flash Movie and button +SWFUpload.prototype.setButtonDimensions = function (width, height) { + this.settings.button_width = width; + this.settings.button_height = height; + + var movie = this.getMovieElement(); + if (movie != undefined) { + movie.style.width = width + "px"; + movie.style.height = height + "px"; + } + + this.callFlash("SetButtonDimensions", [width, height]); +}; +// Public: setButtonText Changes the text overlaid on the button +SWFUpload.prototype.setButtonText = function (html) { + this.settings.button_text = html; + this.callFlash("SetButtonText", [html]); +}; +// Public: setButtonTextPadding changes the top and left padding of the text overlay +SWFUpload.prototype.setButtonTextPadding = function (left, top) { + this.settings.button_text_top_padding = top; + this.settings.button_text_left_padding = left; + this.callFlash("SetButtonTextPadding", [left, top]); +}; + +// Public: setButtonTextStyle changes the CSS used to style the HTML/Text overlaid on the button +SWFUpload.prototype.setButtonTextStyle = function (css) { + this.settings.button_text_style = css; + this.callFlash("SetButtonTextStyle", [css]); +}; +// Public: setButtonDisabled disables/enables the button +SWFUpload.prototype.setButtonDisabled = function (isDisabled) { + this.settings.button_disabled = isDisabled; + this.callFlash("SetButtonDisabled", [isDisabled]); +}; +// Public: setButtonAction sets the action that occurs when the button is clicked +SWFUpload.prototype.setButtonAction = function (buttonAction) { + this.settings.button_action = buttonAction; + this.callFlash("SetButtonAction", [buttonAction]); +}; + +// Public: setButtonCursor changes the mouse cursor displayed when hovering over the button +SWFUpload.prototype.setButtonCursor = function (cursor) { + this.settings.button_cursor = cursor; + this.callFlash("SetButtonCursor", [cursor]); +}; + +/* ******************************* + Flash Event Interfaces + These functions are used by Flash to trigger the various + events. + + All these functions a Private. + + Because the ExternalInterface library is buggy the event calls + are added to a queue and the queue then executed by a setTimeout. + This ensures that events are executed in a determinate order and that + the ExternalInterface bugs are avoided. +******************************* */ + +SWFUpload.prototype.queueEvent = function (handlerName, argumentArray) { + // Warning: Don't call this.debug inside here or you'll create an infinite loop + + if (argumentArray == undefined) { + argumentArray = []; + } else if (!(argumentArray instanceof Array)) { + argumentArray = [argumentArray]; + } + + var self = this; + if (typeof this.settings[handlerName] === "function") { + // Queue the event + this.eventQueue.push(function () { + this.settings[handlerName].apply(this, argumentArray); + }); + + // Execute the next queued event + setTimeout(function () { + self.executeNextEvent(); + }, 0); + + } else if (this.settings[handlerName] !== null) { + throw "Event handler " + handlerName + " is unknown or is not a function"; + } +}; + +// Private: Causes the next event in the queue to be executed. Since events are queued using a setTimeout +// we must queue them in order to garentee that they are executed in order. +SWFUpload.prototype.executeNextEvent = function () { + // Warning: Don't call this.debug inside here or you'll create an infinite loop + + var f = this.eventQueue ? this.eventQueue.shift() : null; + if (typeof(f) === "function") { + f.apply(this); + } +}; + +// Private: unescapeFileParams is part of a workaround for a flash bug where objects passed through ExternalInterface cannot have +// properties that contain characters that are not valid for JavaScript identifiers. To work around this +// the Flash Component escapes the parameter names and we must unescape again before passing them along. +SWFUpload.prototype.unescapeFilePostParams = function (file) { + var reg = /[$]([0-9a-f]{4})/i; + var unescapedPost = {}; + var uk; + + if (file != undefined) { + for (var k in file.post) { + if (file.post.hasOwnProperty(k)) { + uk = k; + var match; + while ((match = reg.exec(uk)) !== null) { + uk = uk.replace(match[0], String.fromCharCode(parseInt("0x" + match[1], 16))); + } + unescapedPost[uk] = file.post[k]; + } + } + + file.post = unescapedPost; + } + + return file; +}; + +// Private: Called by Flash to see if JS can call in to Flash (test if External Interface is working) +SWFUpload.prototype.testExternalInterface = function () { + try { + return this.callFlash("TestExternalInterface"); + } catch (ex) { + return false; + } +}; + +// Private: This event is called by Flash when it has finished loading. Don't modify this. +// Use the swfupload_loaded_handler event setting to execute custom code when SWFUpload has loaded. +SWFUpload.prototype.flashReady = function () { + // Check that the movie element is loaded correctly with its ExternalInterface methods defined + var movieElement = this.getMovieElement(); + + if (!movieElement) { + this.debug("Flash called back ready but the flash movie can't be found."); + return; + } + + this.cleanUp(movieElement); + + this.queueEvent("swfupload_loaded_handler"); +}; + +// Private: removes Flash added fuctions to the DOM node to prevent memory leaks in IE. +// This function is called by Flash each time the ExternalInterface functions are created. +SWFUpload.prototype.cleanUp = function (movieElement) { + // Pro-actively unhook all the Flash functions + try { + if (this.movieElement && typeof(movieElement.CallFunction) === "unknown") { // We only want to do this in IE + this.debug("Removing Flash functions hooks (this should only run in IE and should prevent memory leaks)"); + for (var key in movieElement) { + try { + if (typeof(movieElement[key]) === "function") { + movieElement[key] = null; + } + } catch (ex) { + } + } + } + } catch (ex1) { + + } + + // Fix Flashes own cleanup code so if the SWFMovie was removed from the page + // it doesn't display errors. + window["__flash__removeCallback"] = function (instance, name) { + try { + if (instance) { + instance[name] = null; + } + } catch (flashEx) { + + } + }; + +}; + + +/* This is a chance to do something before the browse window opens */ +SWFUpload.prototype.fileDialogStart = function () { + this.queueEvent("file_dialog_start_handler"); +}; + + +/* Called when a file is successfully added to the queue. */ +SWFUpload.prototype.fileQueued = function (file) { + file = this.unescapeFilePostParams(file); + this.queueEvent("file_queued_handler", file); +}; + + +/* Handle errors that occur when an attempt to queue a file fails. */ +SWFUpload.prototype.fileQueueError = function (file, errorCode, message) { + file = this.unescapeFilePostParams(file); + this.queueEvent("file_queue_error_handler", [file, errorCode, message]); +}; + +/* Called after the file dialog has closed and the selected files have been queued. + You could call startUpload here if you want the queued files to begin uploading immediately. */ +SWFUpload.prototype.fileDialogComplete = function (numFilesSelected, numFilesQueued, numFilesInQueue) { + this.queueEvent("file_dialog_complete_handler", [numFilesSelected, numFilesQueued, numFilesInQueue]); +}; + +SWFUpload.prototype.uploadStart = function (file) { + file = this.unescapeFilePostParams(file); + this.queueEvent("return_upload_start_handler", file); +}; + +SWFUpload.prototype.returnUploadStart = function (file) { + var returnValue; + if (typeof this.settings.upload_start_handler === "function") { + file = this.unescapeFilePostParams(file); + returnValue = this.settings.upload_start_handler.call(this, file); + } else if (this.settings.upload_start_handler != undefined) { + throw "upload_start_handler must be a function"; + } + + // Convert undefined to true so if nothing is returned from the upload_start_handler it is + // interpretted as 'true'. + if (returnValue === undefined) { + returnValue = true; + } + + returnValue = !!returnValue; + + this.callFlash("ReturnUploadStart", [returnValue]); +}; + + + +SWFUpload.prototype.uploadProgress = function (file, bytesComplete, bytesTotal) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_progress_handler", [file, bytesComplete, bytesTotal]); +}; + +SWFUpload.prototype.uploadError = function (file, errorCode, message) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_error_handler", [file, errorCode, message]); +}; + +SWFUpload.prototype.uploadSuccess = function (file, serverData, responseReceived) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_success_handler", [file, serverData, responseReceived]); +}; + +SWFUpload.prototype.uploadComplete = function (file) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_complete_handler", file); +}; + +/* Called by SWFUpload JavaScript and Flash functions when debug is enabled. By default it writes messages to the + internal debug console. You can override this event and have messages written where you want. */ +SWFUpload.prototype.debug = function (message) { + this.queueEvent("debug_handler", message); +}; + + +/* ********************************** + Debug Console + The debug console is a self contained, in page location + for debug message to be sent. The Debug Console adds + itself to the body if necessary. + + The console is automatically scrolled as messages appear. + + If you are using your own debug handler or when you deploy to production and + have debug disabled you can remove these functions to reduce the file size + and complexity. +********************************** */ + +// Private: debugMessage is the default debug_handler. If you want to print debug messages +// call the debug() function. When overriding the function your own function should +// check to see if the debug setting is true before outputting debug information. +SWFUpload.prototype.debugMessage = function (message) { + if (this.settings.debug) { + var exceptionMessage, exceptionValues = []; + + // Check for an exception object and print it nicely + if (typeof message === "object" && typeof message.name === "string" && typeof message.message === "string") { + for (var key in message) { + if (message.hasOwnProperty(key)) { + exceptionValues.push(key + ": " + message[key]); + } + } + exceptionMessage = exceptionValues.join("\n") || ""; + exceptionValues = exceptionMessage.split("\n"); + exceptionMessage = "EXCEPTION: " + exceptionValues.join("\nEXCEPTION: "); + SWFUpload.Console.writeLine(exceptionMessage); + } else { + SWFUpload.Console.writeLine(message); + } + } +}; + +SWFUpload.Console = {}; +SWFUpload.Console.writeLine = function (message) { + var console, documentForm; + + try { + console = document.getElementById("SWFUpload_Console"); + + if (!console) { + documentForm = document.createElement("form"); + document.getElementsByTagName("body")[0].appendChild(documentForm); + + console = document.createElement("textarea"); + console.id = "SWFUpload_Console"; + console.style.fontFamily = "monospace"; + console.setAttribute("wrap", "off"); + console.wrap = "off"; + console.style.overflow = "auto"; + console.style.width = "700px"; + console.style.height = "350px"; + console.style.margin = "5px"; + documentForm.appendChild(console); + } + + console.value += message + "\n"; + + console.scrollTop = console.scrollHeight - console.clientHeight; + } catch (ex) { + alert("Exception: " + ex.name + " Message: " + ex.message); + } +}; + +exports.SWFUpload = SWFUpload; +}); +define("js/home/comment", ["jquery"], function(require, exports, module){ +/** + * 我的评论 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/3/1 + */ +var $ = require("jquery"); + +var $comment = $('.comment-table'), + $remarkBtn = $comment.find('.remark-btn'); + +var $dialog = $('#comment-dialog-widget'), + $titleBar = $dialog.find('.dialog-titlebar'), + $commentArea = $dialog.find('textarea'); + +var pageW = $(document).width(), + pageH = $(document).height(), + winH = $(window).height(); + +var dialog = { + canmove: false, + offset: {}, + maxtop: 0, + maxleft: 0 + }, + orderInfo = {}, + $optDom; + +// 处理订单数据 +$remarkBtn.each(function() { + var $next = $(this).next(), + data = $next.data(), + key = data.orderid; + + orderInfo[key] = {}; + orderInfo[key].productSkn = data.productskn; + orderInfo[key].productId = data.productid; + orderInfo[key].goodsId = data.goodsid; + orderInfo[key].orderId = data.orderid; + orderInfo[key].erpSkuId = data.erpskuid; + + $next.remove(); + $(this).data('code', key); +}); + +$remarkBtn.click(function() { + var scrollTop = $(document).scrollTop(); + + $optDom = $(this); + $commentArea.val(''); + $dialog.removeClass('hide').css({ + top: scrollTop + (winH - $dialog.outerHeight()) / 2, + left: (pageW - $dialog.outerWidth()) / 2 + }); +}); + +// 评论弹窗 +$titleBar.bind('mousedown', function(e) { + if ($(e.target).hasClass('dialog-close-btn')) { + return; + } + + dialog.canmove = true; + dialog.offset = { + x: e.offsetX, + y: e.offsetY + }; + dialog.maxtop = pageH - $dialog.outerHeight(); + dialog.maxleft = pageW - $dialog.outerWidth(); +}); + +$(document).mousemove(function(e) { + var mtop, mleft; + + if (!dialog.canmove) { + return; + } + + mtop = e.pageY - dialog.offset.y; + mleft = e.pageX - dialog.offset.x; + mtop = mtop < dialog.maxtop ? mtop : dialog.maxtop; + mleft = mleft < dialog.maxleft ? mleft : dialog.maxleft; + $dialog.css({ + top: mtop > 0 ? mtop : 0, + left: mleft > 0 ? mleft : 0 + }); +}).mouseup(function(e) { + dialog.canmove = false; +}); + +$dialog.on('click', '.dialog-save-btn', function() { + var remark = $.trim($commentArea.val()), + param; + + if (remark === '') { + alert('请添加评论内容'); + return; + } + if ($optDom.length) { + param = orderInfo[$optDom.data().code]; + param.content = remark; + + $.ajax({ + type: 'POST', + url: '/home/comment/saveComment', + data: param + }).then(function(jsonData) { + var $par = $optDom.parent(); + + if (jsonData.code === 200) { + $par.prev().text(remark); + $par.html('<span class="remarked">已评论!</span>'); + $optDom.length = 0; + $dialog.addClass('hide'); + } else { + alert(jsonData.message); + } + }); + } +}); + +$dialog.on('click', '.dialog-close-btn', function() { + $optDom.length = 0; + $dialog.addClass('hide'); +}); +}); +define("js/home/complaints", ["jquery"], function(require, exports, module){ +/** + * 我的投诉 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/3/18 + */ + +var $ = require("jquery"); + +var $cancelBtn = $('.cancel-btn'), + $title = $('#title'), + $customer = $('#customer'), + $complaintsType = $('#complaintsType'), + $orderCode = $('#orderCode'), + $content = $('#content'); + +var ajaxing = false; +var rule = { + title: { + dom: $title, + min: 1, + max: 10, + onshow: '请输入您的投诉主题', + onfocus: '请输入主题', + onmin: '投诉主题不能为空', + onmax: '输入投诉主题不能超过10个字' + }, + customer: { + dom: $customer, + min: 1, + max: 10, + onshow: '请填写您要投诉的对象,比如:客服00*号、发货员...', + onfocus: '请填写您要投诉的对象', + onmin: '投诉对象不能为空', + onmax: '输入投诉对象不能超过10个字' + }, + orderCode: { + dom: $orderCode, + regexp: /^([0-9,]{9,})$/, //一个和多个订单 + onshow: '如果多个是多个订单号,请用英文逗号隔开,没有则不填', + onfocus: '请输入订单号', + onerror: '您输入的订单格式不对,如果多个是多个订单号,请用英文逗号隔开' + }, + content: { + dom: $content, + min: 1, + max: 130, + onshow: '输入您投诉的内容', + onfocus: '请输入您投诉的内容', + onmin: '投诉内容不能为空', + onmax: '输入的投诉内容不能超过130个字' + } + }; + +function preventResubmit() { + if (!ajaxing) { + ajaxing = true; + setTimeout(function() { + ajaxing = false; + }, 1000); + return false; + } + return true; +} + +function validate(info) { + var $tips = info.dom.siblings('.option-tip'), + val = $.trim(info.dom.val()), + len = val.length; + + if (info.min && len < info.min) { + $tips.text(info.onmin); + return false; + } else if (info.max && len > info.max) { + $tips.text(info.onmax); + return false; + } + + if (info.regexp && !info.regexp.test(val)) { + $tips.text(info.onerror); + return false; + } + + $tips.text('输入正确'); + return true; +} + +function validateForm() { + var res = {}, + focus; + + $.each(rule, function(key, info) { + if (validate(info)) { + res[key] = $.trim(info.dom.val()); + } else { + if (!focus) { + focus = key; + info.dom.focus(); + } + } + }); + res.complaintsType = $complaintsType.val(); + + if (focus) { + return false; + } + return res; +} + +function addComplaint() { + var sendParm = validateForm(); + + if (preventResubmit() || !sendParm) { + return; + } + + $.ajax({ + type: 'POST', + url: '/home/complaints/addcomplaints', + data: sendParm + }).then(function(jsonData) { + ajaxing = false; + if (jsonData.code === 200) { + window.location.reload(); + } else { + alert(jsonData.message); + } + }); +} + +function cancelComplaint(id, dom) { + var $dom = dom; + + if (preventResubmit()) { + return; + } + + $.ajax({ + type: 'POST', + url: '/home/complaints/cancelcomplaints', + data: { + id: id + } + }).then(function(jsonData) { + ajaxing = false; + if (jsonData.code === 200) { + $dom.prev().remove(); + $dom.text('问题已撤销'); + } else { + alert(jsonData.message); + } + }); +} + +$.each(rule, function(key, info) { + info.dom.focus(function() { + info.dom.siblings('.option-tip').text(info.onfocus); + }).blur(function() { + validate(info); + }); +}); + +$('#complaint-submit').click(function() { + addComplaint(); +}); + +$cancelBtn.click(function() { + var data = $(this).data(); + + if (data && data.id) { + cancelComplaint(data.id, $(this).parent()); + } +}); +}); +define("js/home/message", ["jquery"], function(require, exports, module){ +/** + * 我的信息 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/3/21 + */ +var $ = require("jquery"); + +var $container = $('#message-main-container'), + $msgCheck = $container.find('.msg-check'), + $readBtn = $container.find('.read-choose-btn'), + $checked; + +var operationId = []; + +require("js/home/message-content"); + +function hasNew() { + var newMsg = false; + + $checked = $container.find('.msg-check:checked'); + operationId = []; + + $checked.each(function() { + var $par = $(this).parent().parent(); + + operationId.push($(this).val()); + if ($par.hasClass('new-msg')) { + newMsg = true; + } + }); + + if (newMsg) { + $readBtn.addClass('has-new'); + } else { + $readBtn.removeClass('has-new'); + } +} + +function msgOperation(type, data) { + var url; + + switch (type) { + case 'del': + url = '/home/message/delMessage'; + break; + case 'read': + url = '/home/message/readMessage'; + break; + } + + $.ajax({ + type: 'GET', + url: url, + data: data + }).then(function(jsonData) { + if (!jsonData.code) { + if (type === 'del') { + $container.html(jsonData); + $msgCheck = $container.find('.msg-check'); + $readBtn = $container.find('.read-choose-btn'); + } + } else { + if (jsonData.code === 200) { + if (type === 'read') { + $checked.removeAttr('checked'); + $checked.parent().parent().removeClass('new-msg'); + hasNew(); + } + } else { + alert(jsonData.message); + } + } + }); +} + +$container.on('change', 'input[type="checkbox"]', function() { + var checked = $(this).attr('checked'); + + if ($(this).hasClass('choose-all')) { + if (checked === 'checked') { + $msgCheck.attr('checked', true); + } else { + $msgCheck.removeAttr('checked'); + } + } + hasNew(); +}); + +$container.on('click', '.del-btn', function() { + if (confirm('您确定要删除这条短消息?')) { + msgOperation('del', $(this).data()); + } +}); + +$container.on('click', '.del-choose-btn', function() { + if (!operationId.length) { + alert('请选中您要删除的消息'); + return; + } + + if (confirm('确定要删除您选中的消息')) { + msgOperation('del', { + id: operationId.join(',') + }); + } +}); + +$container.on('click', '.read-choose-btn', function() { + if ($(this).hasClass('has-new')) { + msgOperation('read', { + id: operationId.join(',') + }); + } +}); +}); +define("js/home/message-content", ["jquery"], function(require, exports, module){ +/** + * 我的信息 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/3/25 + */ +var $ = require("jquery"); + +var $pickBtn = $('.pick-coupon-btn'); + +var pickBusy = false; + +$pickBtn.click(function() { + var data = $(this).data(); + + if (pickBusy) { + return; + } + pickBusy = true; + $.ajax({ + type: 'GET', + url: '/home/message/pickCoupon', + data: data + }).then(function(jsonData) { + var msg = jsonData.message; + + if (jsonData.code === 200) { + msg = '领取成功'; + $(this).removeClass('pick-coupon-btn'); + } + + pickBusy = false; + + alert(msg); + }); +}); +}); +define("js/home/edit", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 个人中心页-个人资料编辑 + * @author: zhaobiao<bill.zhao@yoho.cn> + * @date: 2016/02/17 + */ +var $ = require("jquery"); + +var $allEditForms = $('.userinfo-edit form'); + +var address = require("js/home/common-address"); + +var date = { + init: function(year, month, day) { + var $year = $('#year'), + $month = $('#month'), + $day = $('#day'); + + var that = this; + + this.createDay($year.val(), $month.val(), $day.val()); + + $year.on('change', function() { + that.update(); + }); + + $month.on('change', function() { + that.update(); + }); + }, + update: function() { + this.createDay($('#year').val(), $('#month').val(), $('#day').val()); + }, + createDay: function(year, month, day) { + var html = '<select name="day" id="day">', + monthArray = new Array(4, 6, 9, 11), + dayNum = 31; + + var select, + i; + + year = parseInt(year); + month = parseInt(month); + + if (year === 0) { + year = 0; + } + + if (month === 0) { + month = 0; + } + + $('#year').val(year.toString()); + $('#month').val(month.toString()); + + html += '<option value="0">日</option>'; + + if (year > 0 && month > 0) { + if ($.inArray(month, monthArray) !== -1) { + dayNum = 30; + } else if (month === 2) { + dayNum = 28; + if (0 === year % 4 && (year % 100 !== 0 || year % 400 === 0)) { + dayNum = 29; + } + } + + for (i = 1; i <= dayNum; i++) { + select = ''; + + if (parseInt(day) === i) { + select = 'selected'; + } + html += '<option value="' + i + '" ' + select + '>' + i + '</option>'; + } + } + html += '</select>'; + + $('#day').replaceWith(html); + } +}; + + +$('.userinfo-edit h2').on('click', function() { + var $form = $(this).next(); + + $allEditForms.slideUp('fast'); + $form.css('display') === 'none' ? $form.slideDown('slow') : null; + +}); + +function checkBaseForm() { + var nicknameLength = $('#nickname').val().length, + usernameLength = $('#username').val().length, + $gender = $('input[name="gender"]'), + $year = $('#year'), + $month = $('#month'), + $day = $('#day'); + + if (nicknameLength === 0) { + alert('请输入昵称'); + return false; + } + + if (usernameLength === 0) { + alert('请输入用户名'); + return false; + } + + if (nicknameLength >= 20) { + alert('昵称最长为20个字符'); + return false; + } + + + if (!$gender.is(':checked')) { + alert('请选择性别'); + return false; + } + + if ($year.val() === '0' || $month.val() === '0' || $day.val() === '0') { + alert('请选择出生年月日'); + return false; + } + + return true; +} + +function checkContactForm() { + if ($('#province').val() === '0' || $('#city').val() === '0' || $('#areaCode').val() === '0') { + alert('请选择所在区域'); + return false; + } + + if ($('#province').val() === null || $('#city').val() === null || $('#areaCode').val() === null) { + alert('请选择所在区域'); + return false; + } + + if ($('#phone').val().length === 0 && $('#mobile').val().length === 0) { + alert('电话和手机号码不能同时为空,请填写!'); + return false; + } + + + if ($('#fullAddress').val().length === 0) { + alert('请填写地址'); + return false; + } + + if ($('#zipCode').val().length === 0 || $('#zipCode').val().length < 2) { + alert('请填写邮编'); + return false; + } + + return true; +} + +function checkHabbitForm() { + if (!$('.user-habbit-info input').is(':checked')) { + alert('请填写购物&着装习惯'); + return false; + } + + return true; +} + +function checkFavoriteForm() { + if ($('#likebrand').val() === '') { + alert('请选择品牌'); + return false; + } + + return true; +} + +function delBrand(brandId) { + var brand = $('#likebrand').val(); + + if (parseInt(brandId) === 0) { + return false; + } + + $('#likebrand').val(brand.replace(',' + brandId + ',', ',')); + $('#pp-' + brandId).attr('checked', false); + $('#brand-' + brandId).remove(); +} + + + +function addBrand(domObj, brandId, brandName) { + var html = '<li id="brand-' + brandId + '">' + + brandName + '<a href="javascript:void(0);" class="btn-del"></a></li>'; + + var brandInfo = $('#brand-' + brandId).html(), + brandStr = $('#likebrand').val(); + + var $brandBox = $('#brand-box'); + + if (parseInt(brandId) === 0) { + return false; + } + + if (typeof domObj !== 'undefined' && domObj !== '' && domObj.checked === false) { + delBrand(brandId); + return false; + } + if (brandInfo) { + alert('您已经选择了该品牌.'); + return false; + } + $brandBox.append(html); + + $brandBox.find('li>a').off('click').on('click', function() { + delBrand($(this).closest('li').attr('id').substr(6)); + }); + + brandStr += brandId + ','; + $('#likebrand').val(brandStr); +} + +function checkBrand() { + var postData = { + brandName: $('#keywords').val() + }; + + $.post('/home/user/isbrandname', postData, function(data) { + if (data.code === 200) { + if (data.data.id && data.data.brand_name) { + addBrand('', data.data.id, data.data.brand_name); + $('#keywords').val(''); + return true; + } else { + alert('网络异常,请重试'); + return false; + } + } + alert(data.message); + return false; + }, 'json'); +} + +function save(postUrl, btnId) { + var $form = $('#' + btnId).closest('form'); + + $.post(postUrl, $form.serialize(), function(data) { + if (data.code === 200) { + alert(data.message); + setTimeout(function() { + $form.closest('div').next().find('h2').click(); + }, 100); + return true; + } + alert(data.message); + return false; + }, 'json'); +} + + +$('#base-info').on('click', function() { + if (checkBaseForm()) { + save('/home/user/edituserinfo/', 'base-info'); + } +}); + +$('#contact-info').on('click', function() { + if (checkContactForm()) { + save('/home/user/editusercontactinfo/', 'contact-info'); + } +}); + +$('#shopping-info').on('click', function() { + if (checkHabbitForm()) { + save('/home/user/edituserhabitsinfo/', 'shopping-info'); + } +}); + +$('#favorite-brand').on('click', function() { + if (checkFavoriteForm()) { + $.ajax({ + url: '/home/user/edituserlikebrand/', + type: 'post', + datatype: 'json', + data: { + brand: $('#likebrand').val() + }, + success: function(data) { + if (data.code === 200) { + alert(data.message); + return true; + } + alert(data.message); + return false; + }, + error: function(err) { + alert('网络异常'); + } + }); + } +}); + +$('#add-brand-btn').on('click', function() { + checkBrand(); +}); + +$('.user-favorite-info input[type="checkbox"]').on('click', function() { + var $this = $(this); + + addBrand(this, $this.attr('id').substr(3), $this.parent().text()); +}); + +(function() { + var $brands = $('#brand-box li'); + + if ($brands.length > 0) { + $brands.find('a').on('click', function() { + delBrand($(this).closest('li').attr('id').substr(6)); + }); + } +})(); + +date.init(); + +(function() { + if (!$('#province').val()) { + address.loadAllData(0, { + provinceDomId: 'province', + cityDomId: 'city', + areaDomId: 'areaCode' + }); + } else { + address.bindAreaChange({ + provinceDomId: 'province', + cityDomId: 'city', + areaDomId: 'areaCode' + }); + } +})(); + +}); +define("js/home/gift", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 个人中心页-兑换礼品卡 + * @author: wsl<shuiling.wang@yoho.cn> + * @date: 2016/02/22 + */ +var $ = require("jquery"), + dialog = require("js/common/dialog"), + Alert = dialog.Alert; + +var $giftError = $('.giftCardCode').find('.gift-error'), + $codeError = $('.captchaCode').find('.gift-error'), + reg = '', + code = '', + i = 1; + +var active; + +var Gift = { + suc: [ + false, + false, + false, + false + ], + checkCard: function(num) { + reg = /^[0-9a-zA-Z]{4,4}$/; + + if (!reg.test($('#giftCardCode' + num).val())) { + $giftError.html('您输入的兑换码有误,兑换码必须为数字或字母,每个文本框里只能输入四个兑换码!'); + Gift.suc[num - 1] = false; + } else { + for (i = 1; i <= 3; i++) { + if (!reg.test($('#giftCardCode' + i).val())) { + $giftError.html('您输入的兑换码有误,兑换码必须为数字或字母,每个文本框里只能输入四个兑换码!'); + Gift.suc[i] = false; + } else { + $giftError.html(''); + Gift.suc[i] = true; + } + } + + if (num !== 3) { + $('#giftCardCode' + (num + 1)).focus(); + } + } + }, + bindGiftCardForm: function() { + $('#giftCardCode1').bind('blur keyup', function() { + Gift.checkCard(1); + }); + + $('#giftCardCode2').bind('blur keyup', function() { + Gift.checkCard(2); + }); + + $('#giftCardCode3').bind('blur keyup', function() { + Gift.checkCard(3); + }); + + $('#captchaCode').bind('blur keyup', function() { + code = $('#captchaCode').val(); + + if (code.length <= 0) { + $codeError.html('请输入验证码!'); + Gift.suc[3] = false; + } else { + $codeError.html(''); + Gift.suc[3] = true; + } + }); + }, + + checkForm: function() { + if (!reg.test($('#giftCardCode1').val()) || !reg.test($('#giftCardCode2').val()) || + !reg.test($('#giftCardCode3').val())) { + $giftError.html('您输入的兑换码有误,兑换码必须为数字或字母,每个文本框里只能输入四个兑换码!'); + return false; + } + + if ($.trim($('#captchaCode').val()) === '') { + $codeError.html('请输入验证码!'); + return false; + } + return true; + } +}; + +//更换验证码 +function refreshCaptcha() { + var dt = new Date(); + + $('#imgcode').attr('src', '/passport/images?t=' + dt.getTime()); + return false; +} + +$('#sub-gift').on('click', function() { + if (Gift.checkForm()) { + $.post('/home/gift/exchange', $('#giftCardForm').serialize(), function(data) { + if (data.code === 200) { + window.location.href = '/home/gift?type=1'; + } else if (data.code === 400) { + active = new Alert(data.message); + active.show(); + refreshCaptcha(); + } else { + window.location.href = '/home/gift?type=2'; + } + }, 'json'); + } else { + return false; + } +}); + +$(document).on('click', '#imgcode,.check-img', function() { + refreshCaptcha(); +}); + +$(function() { + refreshCaptcha(); + Gift.bindGiftCardForm(); +}); +}); +define("js/home/validate", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 个人中心页-账号安全验证 + * @author:wsl<shuiling.wang@yoho.cn> + * @date: 2016/02/23 + */ +var $ = require("jquery"), + dialog = require("js/common/dialog"), + phoneRegx = require("js/passport/mail-phone-regx"), + Alert = dialog.Alert; + +var $checkUser = $('.check-user'), + $checkInput = $checkUser.find('input').not('input[type=button],input[type=hidden],input[type=reset]'), + canSend = true, + canFlag = true, + stime = 60; + +var sInt, + active; + +$.ajaxSetup({ + async: false +}); + +if (!Array.prototype.indexOf) { + Array.prototype.indexOf = function(obj, start) { + var i, + j; + + for (i = (start || 0), j = this.length; i < j; i++) { + if (this[i] === obj) { + return i; + } + } + + return -1; + }; +} + +function errorInfoAction(opt, txt) { + opt.$checkInfo.html('<div class="form-error">' + txt + '</div>'); + if (opt.dom.attr('name') !== 'code' && opt.dom.attr('name') !== 'verifyCode') { + opt.dom.addClass('input-error'); + } + return false; +} + +function successInfoAction(opt) { + opt.$checkInfo.html('<div class="form-success"> </div>'); + + if (opt.dom.attr('name') !== 'code' && opt.dom.attr('name') !== 'verifyCode') { + opt.dom.removeClass('input-error'); + } + return true; +} + +function checkFormAjax(ajaxData) { + var res; + + $.post(ajaxData.url, ajaxData.data, function(data) { + if (typeof data.code !== 'undefined' && data.code === 200) { + res = successInfoAction(ajaxData.opt); + } else { + ajaxData.txt = ajaxData.txt !== '' && ajaxData.txt !== null ? ajaxData.txt : data.message; + res = errorInfoAction(ajaxData.opt, ajaxData.txt); + } + }); + + return res; +} + +// 身份校验 +function checkForm(dom) { + var val = dom.val(), + len = val.length, + $domParent = dom.parent(), + $checkInfo = $domParent.find('.check-info'), + inputName = dom.attr('name'), + regular = '', + text = '', + mobileValue = '', + opt = { + $checkInfo: $checkInfo, + dom: dom + }, + ajaxData = { + opt: opt + }; + + $checkInfo.html(''); + + if (inputName === 'password') { + if (len === 0) { + return errorInfoAction(opt, '密码不能为空!'); + } else { + $.extend(ajaxData, { + url: '/home/account/checkpassword', + data: { + password: val + }, + txt: '密码错误!' + }); + return checkFormAjax(ajaxData); + } + } else if (inputName === 'verifyCode') { + $.extend(ajaxData, { + url: '/home/account/checkverifycode', + data: { + verifyCode: val + }, + txt: '验证码错误!' + }); + return checkFormAjax(ajaxData); + } else if (inputName === 'email') { + regular = phoneRegx.emailRegx; + + if (val.match(regular) === null) { + return errorInfoAction(opt, '邮箱错误!'); + } else { + $.extend(ajaxData, { + url: '/home/account/checkemail', + data: { + email: val + }, + txt: '' + }); + return checkFormAjax(ajaxData); + } + } else if (inputName === 'mobile') { + regular = phoneRegx.phoneRegx; + text = val.split('-'); + + if (text.length === 1) { + regular = val.match('^1[35847]{1}[0-9]{9}'); + } else { + regular = regular['+' + text[0]].test(text[1]); + } + + if (len === 0) { + return errorInfoAction(opt, '手机号不能为空!'); + } else if (regular === null || !regular) { + return errorInfoAction(opt, '手机号错误!'); + } else { + $.extend(ajaxData, { + url: '/home/account/checkmobile', + data: { + mobile: val + }, + txt: '手机号已经存在!' + }); + return checkFormAjax(ajaxData); + } + } else if (inputName === 'newPwd') { + regular = phoneRegx.pwdValidateRegx; + + if (!regular.test(val)) { + return errorInfoAction(opt, '建议6~20个数字+字母组合!'); + } else { + return successInfoAction(opt); + } + } else if (inputName === 'confirm_password') { + if ($('#newPwd').val() !== val) { + return errorInfoAction(opt, '两次密码不一致!'); + } else { + return successInfoAction(opt); + } + + // else if ($('#newPwd').val() !== '') { + // $('#newPwd').next().html('<div class="form-success"> </div>'); + // return successInfoAction(opt); + // } + } else if (inputName === 'code') { + mobileValue = $('#realAccount').length > 0 ? $('#realAccount').val() : $('#mobilevalue').val(); + + if (val !== '') { + $.extend(ajaxData, { + url: '/home/account/checkmobilemsg', + data: { + mobile: mobileValue, + code: $('#inputcode').val() + }, + txt: '验证码错误!' + }); + return checkFormAjax(ajaxData); + } + } else { + return true; + } +} + +// 校验表单 +function checkAllForm() { + var arr = []; + + canFlag = false; + + $.each($checkInput, function(key, item) { + arr[key] = checkForm($(item)); + }); + + if (arr.indexOf(false) >= 0) { + return false; + } else { + return true; + } +} + +// 切换验证码 +function changeCode() { + var timestamp = (new Date()).getTime(); + + $('#the-code-img').attr('src', '/passport/images?len=6&time=' + timestamp); +} + +// 重新发送倒计时 +function code() { + var sstring = ''; + + if (stime > 0) { + sstring = '重新发送' + stime + '秒'; + $('#sendButton').text(sstring); + stime = stime - 1; + } else { + stime = 60; + $('#sendButton').text('发送验证码'); + clearInterval(sInt); + canSend = true; + } +} + +// 发送手机验证码ajax请求 +function sendMobileMsg(mobileV) { + var $code = $('#inputcode'), + $ccheckInfo = $code.parent().find('check-info'); + + $.post('/home/account/sendmobilemsg', { + mobile: mobileV + }, function(data) { + if (typeof data.code !== 'undefined' && data.code === 200) { + canSend = false; + sInt = setInterval(function() { + code(); + }, 1000); + $ccheckInfo.html(''); + } else { + $ccheckInfo.html('<div class="form-error">验证码发送失败</div>'); + } + }); +} + +// 发送手机验证码 +function sendcode() { + var $mobile = $('#mobilevalue'); + + var $mcheckInfo, + mobileV, + mobileObj; + + if ($mobile.length > 0) { + $mcheckInfo = $mobile.next(), + mobileV = $mobile.val(), + mobileObj = mobileV.split('-'); + + if (mobileObj.length === 1) { + mobileObj = mobileV.match('^1[35847]{1}[0-9]{9}'); + } else { + mobileObj = phoneRegx.phoneRegx['+' + mobileObj[0]].test(mobileObj[1]); + } + } else { + mobileV = $('#realAccount').val(); + } + + if (canSend) { + if ($mobile.length > 0) { + if (mobileObj === null || !mobileObj) { + $mcheckInfo.html('<div class="form-error">手机号错误!</div>'); + $mobile.addClass('input-error'); + return false; + } + + if ($mcheckInfo.find('.form-success').length > 0) { + sendMobileMsg(mobileV); + } + } + + if ($('#realAccount').length > 0) { + sendMobileMsg(mobileV); + } + } else { + return false; + } +} + +// 验证完成后倒计时跳转 +function toHome() { + window.location.href = '/home/account'; +} + +// ajax公共处理模块 +function ajaxAction(opt, flag) { + $.post(opt.url, opt.data, function(data) { + if (data.code === 200) { + if (flag) { + opt.hrefUrl += '&checkCode=' + data.data; + } + window.location.href = opt.hrefUrl; + } else { + canFlag = true; + active = new Alert(data.message); + active.show(); + return false; + } + }, 'json'); +} + +// 提交表单 +function submitForm() { + var step = $('.progress-bar .cur').index(), + verifyType = $('#verifyType').val(), + curType = '', + opt = {}; + + if ($('.email').length > 0) { + curType = 'email'; + } + + if ($('.mobile').length > 0) { + curType = 'mobile'; + } + + if ($('.userpwd').length > 0) { + curType = 'userpwd'; + } + + /* + * step 0: 验证身份 1:验证第二步骤 2:验证第三步骤 + * verifyType 验证身份的状态 1:登录密码验证 2:邮箱的身份验证 3:手机的身份验证 + */ + if (step === 0) { + if (verifyType === '1') { + opt = { + url: '/home/account/verifypassword', + data: $('#pwdform').serialize(), + hrefUrl: '/home/account/' + curType + '?step=2' + }; + + ajaxAction(opt, 'step1'); + + // if (!ajaxAction(opt)) { + // $("input[type=reset]").trigger("click"); + // } + } else if (verifyType === '2') { + opt = { + url: '/home/account/sendemail', + data: { + checkType: curType, + email: $('#realAccount').val() + }, + hrefUrl: '/home/account/sendemailsuccess?email=' + $('#realAccount').val() + + '&type=1&checkType=' + curType + }; + ajaxAction(opt); + } else { + opt = { + url: '/home/account/checkmobilemsg', + data: { + mobile: $('#realAccount').val(), + code: $('#inputcode').val() + }, + hrefUrl: '/home/account/' + curType + '?step=2' + }; + ajaxAction(opt, 'step1'); + } + } else if (step === 1) { + if (curType === 'userpwd') { + opt = { + url: '/home/account/modifypwd', + data: $('#pwdform').serialize(), + hrefUrl: '/home/account/userpwd?step=3&success=true' + }; + ajaxAction(opt); + } else if (curType === 'email') { + opt = { + url: '/home/account/modifyemail', + data: { + email: $('#email').val() + }, + hrefUrl: '/home/account/sendemailsuccess?email=' + $('#email').val() + + '&type=2&checkType=email' + }; + ajaxAction(opt); + } else { + opt = { + url: '/home/account/modifymobile', + data: { + mobile: $('#mobilevalue').val(), + code: $('#inputcode').val() + }, + hrefUrl: '/home/account/mobile?step=3&success=true' + }; + ajaxAction(opt); + } + } +} + +$(function() { + var t = null; + + if ($('.res-info').length > 0) { + t = setTimeout(function() { + toHome(); + }, 5000); + } + + changeCode(); + + $('#pwdform').submit(function() { + return false; + }); + + $checkInput.blur(function() { + checkForm($(this)); + }); + + $('.sub-btn').on('click', function() { + if (canFlag === false) { + return false; + } + + if (checkAllForm()) { + submitForm(); + } else { + return false; + } + }); + + $('input[name=verifyCode]').keydown(function(e) { + if (e.keyCode === 13) { + if (canFlag === false) { + return false; + } + + if (checkAllForm()) { + submitForm(); + } else { + return false; + } + } + }); + + $('.the-code').on('click', function() { + changeCode(); + }); + + $('#send-mobile-code').on('click', function() { + sendcode(); + }); + + if ($('#newPwd').length > 0) { + $('#newPwd').on('input', function(e) { + var $confirm = $('input[name=confirm_password]'), + confirmV = $confirm.val(), + newPwdV = $('#newPwd').val(), + opt = { + dom: $confirm, + $checkInfo: $confirm.next() + }; + + if (confirmV.length > 0 && newPwdV !== confirmV) { + errorInfoAction(opt, '两次密码不一致!'); + } + }); + } +}); +}); +define("js/home/address", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 个人中心页-地址管理 + * @author: wsl<shuiling.wang@yoho.cn> + * @date: 2016/02/24 + */ +var $ = require("jquery"), + regionCode = require("js/home/common-address"), + dialog = require("js/common/dialog"), + Alert = dialog.Alert; + +var active; + +var $del = $('.address-del'), + $edit = $('.address-modify'), + $input = $('.input-1'); + +var address = { + + evil: function(fn) { + var Fn = Function; + + return new Fn('return ' + fn)(); + }, + + clearAddrForm: function() { + $('#addressName').val(''); + $('#address').val(''); + $('#zipCode').val(''); + $('#phone').val(''); + $('#mobile').val(''); + $('#email').val(''); + $('#addrId').val(0); + $('#province').val(0); + $('#city').val(0); + $('#areaCode').val(0).hide(); + $('#btn-reset').hide(); + $('#form-status').html('添加新地址'); + }, + + editAddr: function(id) { + $.getJSON('/home/address/editAddress?id=' + id, function(jsonData) { + if (jsonData.code === 200) { + $('#form-status').html('修改地址'); + $('#addressName').val(jsonData.data.consignee); + + regionCode.loadAllData(jsonData.data.area_code, {}); + $('#address').val(jsonData.data.address); + $('#email').val(jsonData.data.email); + $('#phone').val(jsonData.data.phone); + $('#mobile').val(jsonData.data.mobile); + $('#zipCode').val(jsonData.data.zip_code); + $('#addrId').val(jsonData.data.address_id); + $('#btn-reset').show(); + } + }); + }, + + saveAddr: function(callbackFunc) { + $.post('/home/address/saveAddress', $('#address-form').serialize(), function(data) { + if (data.code === 200) { + location.reload(); + } else { + active = new Alert(data.message); + active.show(); + } + }, 'json'); + }, + + // 删除地址 + delAddr: function(addrId) { + $.getJSON('/home/address/delAddress?id=' + addrId, function(jsonData) { + if (jsonData.code === 200) { + $('.address-list').find('li[addressId=' + addrId + ']').remove(); + if (addrId === $('#addrId').val()) { + address.clearAddrForm(); + } + } else { + active = new Alert('删除失败'); + active.show(); + } + }); + }, + + setDefaultAddr: function(addrId) { + var oldBtn = $('.address-list').find('.default-btn'), + oldLi = $('.address-list').find('.default-btn').parents('li'), + curLi = $('.address-list').find('li[addressId=' + addrId + ']'), + curBtn = curLi.find('.set-default-btn'); + + $.getJSON('/home/address/defaultAddress?id=' + addrId, function(jsonData) { + if (jsonData.code === 200) { + oldBtn.attr('class', 'btn-c3 set-default-btn'); + oldLi.removeClass('preferred'); + oldBtn.html('<span>设为常用地址</span>'); + curBtn.attr('class', 'btn-c2 default-btn'); + oldBtn.html('<span>设为常用地址</span>'); + curLi.addClass('preferred'); + } else { + active = new Alert('设置失败'); + active.show(); + } + }); + } +}; + +if (!Array.prototype.indexOf) { + Array.prototype.indexOf = function(obj, start) { + var i, + j; + + for (i = (start || 0), j = this.length; i < j; i++) { + if (this[i] === obj) { + return i; + } + } + + return -1; + }; +} + +// 获取地址id +function getAddressId(dom) { + var li = dom.parents('.address-content'), + id = li.attr('addressId'); + + return id; +} + +//表单焦点显示 +function focusAction(opt) { + var msg = ''; + + if (opt.inputName === 'addressName') { + msg = '真实姓名在2到5个汉字之间'; + } + + if (opt.inputName === 'address') { + msg = '请填写详细地址'; + } + + if (opt.inputName === 'zipCode') { + msg = '请输入收货人所在地邮编号'; + } + + if (opt.inputName === 'phone') { + msg = '格式例如:0577-88888888'; + } + + if (opt.inputName === 'mobile') { + msg = '请输入手机号,如1360000000'; + } + + if (opt.inputName === 'email') { + msg = '用来接收订单提醒邮件,便于您及时了解订单状态'; + } + + opt.$checkInfo.removeClass('form-prompt').addClass('form-focus').html(msg); +} + +//表单失去焦点显示 +function blurAction(opt) { + var regular = '', + res = true, + msg = '输入正确', + domClass = 'form-info form-success', + value = opt.val; + + if (opt.inputName === 'addressName') { + regular = /^[\u4e00-\u9fa5]{2,5}$/; + + if (opt.len < 1 || opt.len > 12) { + msg = '真实姓名在2到5个汉字之间,请确认'; + res = false; + domClass = 'form-info form-error'; + } else if (regular.test(opt.val) === false) { + msg = '真实姓名至少2个中文,最多5个中文'; + res = false; + domClass = 'form-info form-error'; + } + } + + if (opt.inputName === 'address') { + if (opt.len < 2) { + msg = '请填写详细地址'; + res = false; + domClass = 'form-info form-error'; + } + } + + if (opt.inputName === 'zipCode') { + regular = /^[0-9]{6}$/; + + if (opt.len === 0) { + msg = '请输入收货人所在地邮编号'; + res = false; + domClass = 'form-info form-error'; + } else if (regular.test(opt.val) === false) { + msg = '你输入的邮编式不正确'; + res = false; + domClass = 'form-info form-error'; + } + } + + if (opt.inputName === 'phone') { + regular = /^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$/; + + if (opt.len === 0) { + msg = '你真的不想留联系电话了吗?'; + res = true; + domClass = 'form-info form-success'; + } else if (regular.test(opt.val) === false) { + msg = '你输入的联系电话格式不正确'; + res = false; + domClass = 'form-info form-error'; + } + } + + if (opt.inputName === 'mobile') { + regular = /^1[3|4|5|8|7][0-9]{9}$/; + + if (opt.len !== 11) { + msg = '手机号码必须是11位的,请确认'; + res = false; + domClass = 'form-info form-error'; + } else if (regular.test(opt.val) === false) { + msg = '您输入的手机号格式不正确'; + res = false; + domClass = 'form-info form-error'; + } + } + + if (opt.inputName === 'email') { + regular = '^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|' + + 'edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$'; + + if (value.match(regular) === null || opt.len === 0) { + msg = '你输入的邮件地址格式不正确'; + res = false; + domClass = 'form-info form-error'; + } + } + + opt.$checkInfo.removeClass().addClass(domClass).html(msg); + return res; +} + + +// 地址表单验证 +function checkAddressForm(dom, action) { + var val = dom.val(), + $domParent = dom.parent(), + opt = { + val: val, + len: val.length, + $domParent: dom.parent(), + $checkInfo: $domParent.find('span'), + inputName: dom.attr('name') + }; + + if (action === 'focus') { + focusAction(opt); + } + + if (action === 'blur') { + return blurAction(opt); + } +} + +function fullOneValidator() { + var phone = $('#phone').next(), + mobile = $('#mobile').next(); + + if (mobile.hasClass('form-success') && !phone.hasClass('form-error') && $('#phone').val().length === 0) { + phone.removeClass().addClass('form-prompt form-info').html('请输入你的联系电话,可以为空哦'); + return true; + } else if (phone.html() === '输入正确' && !mobile.hasClass('form-error') && $('#mobile').val().length === 0) { + mobile.removeClass().addClass('form-prompt form-info').html('填写手机号便于接收发货和收货通知'); + return true; + } else if (!mobile.hasClass('form-success') && phone.html() !== '输入正确') { + phone.removeClass().addClass('form-success form-info').html('你真的不想留联系电话了吗?'); + mobile.removeClass().addClass('form-prompt form-info').html('填写手机号便于接收发货和收货通知'); + $('#mobile').focus(); + return false; + } +} + +//校验所有内容 +function checkAllForm() { + var arr = []; + + $.each($input, function(key, item) { + arr.push(checkAddressForm($(item), 'blur')); + }); + + arr.push(fullOneValidator()); + + $.each($('.form-info'), function(key, item) { + if ($(item).hasClass('form-error')) { + $(item).prev().focus(); + return false; + } + }); + + + if (arr.indexOf(false) === -1) { + return true; + } else { + return false; + } +} + +$(document).on('click', '.set-default-btn', function() { + var id = getAddressId($(this)); + + address.setDefaultAddr(id); +}); + +$del.on('click', function() { + var id = getAddressId($(this)); + + address.delAddr(id); +}); + +$edit.on('click', function() { + var id = getAddressId($(this)); + + address.editAddr(id); + $('#btn-reset').show(); +}); + +$input.on('focus', function() { + checkAddressForm($(this), 'focus'); +}); + +$input.on('blur', function() { + checkAddressForm($(this), 'blur'); +}); + +$('#address-info').on('click', function() { + if (checkAllForm()) { + address.saveAddr(); + } +}); + +$(document).ready(function() { + regionCode.loadAllData( + 0, + { + provinceDomId: 'province', + cityDomId: 'city', + areaDomId: 'areaCode' + } + ); + + address.clearAddrForm(); + + $('#btn-reset').click(function() { + address.clearAddrForm(); + }); +}); +}); +define("js/help/entry", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 帮助中心页js打包入口文件 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/3/23 + */ + +require("js/help/search"); +}); +define("js/help/search", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 我的信息 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/3/23 + */ +var $ = require("jquery"), + Handlebars = require("handlebars"); + +var $searchMain = $('.search-content'), + $dialog = $('#help-dialog-widget'), + $dialogBg = $('#help-dialog-bg'); + +var docW = $(document).width(), + winH = $(window).height(); + +var tpl = + '<div class="dialog-titlebar">' + + '<span class="dialog-close-btn"></span>' + + '</div>' + + '<div class="dialog-content">' + + '<p class="ask">问:<br>{{ask}}</p>' + + '<p class="answer">答:<br>{{answer}}</p>' + + '</div>'; + +var tplFn = Handlebars.compile(tpl); + +$searchMain.on('click', '.faqs', function() { + var data = $(this).data(), + top = $(document).scrollTop(); + + $dialog.html(tplFn(data)).removeClass('hide'); + $dialogBg.removeClass('hide'); + + $dialog.html(tplFn(data)).css({ + top: top + (winH - $dialog.outerHeight()) / 2, + left: (docW - $dialog.outerWidth()) / 2 + }); +}); + +$dialog.on('click', '.dialog-close-btn', function() { + $dialog.addClass('hide'); + $dialogBg.addClass('hide'); +}); +}); +define("js/order/ensure", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * @description: 订单保存 + * @time: 2015/12/21 + */ + +var $ = require("jquery"); + +var address = require("js/order/address"); + +var dialog = require("js/common/dialog"); + +var accMul = function(arg1, arg2) { + var m = 0, + s1 = arg1.toString(), + s2 = arg2.toString(); + + try { + m += s1.split('.')[1].length; + } catch (e) { + } + try { + m += s2.split('.')[1].length; + } catch (e) { + } + return Number(s1.replace('.', '')) * Number(s2.replace('.', '')) / Math.pow(10, m); +}; + +var Order = { + /*业务数据(人民币)*/ + Data: { + product: 0, //商品价格 + activity: 0, //活动 + carriage: 0, //邮费 + juan: 0, //优惠卷 + yohocoin: 0 //YOHO币 + }, + /*view 交互*/ + UI: { + e: { + $pan: $('.pan'), + $jc: $('#juancode'), + $bp: $('#biprice'), + $statistics: $('li', '.play-total'), + $tobi: $('p em', '.play-bi-pan .play-pan'), + $cancel: $('.cancel', '.btn-group'), + $total: $('em', '.to-play'), + $tbody: $('table tbody', '.pay-wapper'), + + //请填写并核对一下信息 + $orderSelectionSave: $('.address-list h2 span'), + $addAddress: $('.add-address'), + $addressManage: $('.address-manage'), + $spanPayTypeLegend: $('span.pay-type-legend'), + $supportType: $('.support-type'), + $existAddressListWrap: $('.exist-address-list'), + $existAddressList: $('.exist-address-list').find('li'), + $existAddress: $('.exist-address-list').find('input[name="exist-address"]'), + $payTimeModify: $('.pay-time-modify'), + $switchPayModify: $('.switch-pay-modify'), + $modityPayInfo: $('.modity-pay-info'), + $payTotal: $('.play-total'), + $toPay: $('.to-play em'), + $redEnvelopes: $('.red-envelopes'), + $useEnvelopes: $('.use-envelopes'), + $hasEnvelopes: $('.has-envelopes span'), + $useEnvelopesInput: $('.use-envelopes').find('input'), + $expressFee: $('.express-fee') + }, + init: function() { + var e = this.e, + d = Order.Data, + c = Order.Common; + + //初始化产品价格(表格中的价格) + e.$tbody.find('tr').each(function(index) { + + var td = $(this).find('td'); + var len = e.$tbody.find('tr').length; + var subtotal = parseFloat(td.eq(1).html()) * parseInt(td.eq(3).html()); + + td.eq(1).html('¥' + td.eq(1).html()); + + if (td.hasClass('xforone')) { + td.eq(4).find('del').html('¥' + c.strFixed(subtotal)); + subtotal = 0; + } else { + td.eq(4).html('¥' + c.strFixed(subtotal)); + } + d.product += subtotal; + if (!index) { + td.last().attr('rowspan', len); + } else { + td.last().remove(); + } + if (index === len - 1) { + e.$tbody.find('tr').eq(0).find('td').last().html('<strong>¥' + c.strFixed(d.product) + '</strong>'); + } + }); + + // 使用优惠券、使用yoho币点击展开 + e.$pan.find('dt').click(function() { + + var pan = $(this).parent('dl.pan'); + + if (pan.find('dd').is(':hidden')) { + c.winShow(pan); + + $(this).addClass('active'); + } else { + c.winHide(pan); + + $(this).removeClass('active'); + } + + }); + + //请填写并核对一下信息 + e.$orderSelectionSave.click(function() { + var i = 0, + $addressLi = $('.exist-address-list li'), + liLen = $addressLi.length, + notSelect = 0; + + if (!$(this).attr('expand')) { + + $(this).attr('expand', 'expand').text('[不保存并关闭]'); + + $('.exist-address-list li').removeClass('hide'); + + $('.save-btn').removeClass('hide'); + + e.$existAddressListWrap.addClass('address-expand'); + + if (liLen === 1) { + e.$addressManage.removeClass('hide'); + } + + } else { + + for (i = 0; i < liLen; i++) { + + if ($addressLi.eq(i).hasClass('address_select')) { + notSelect++; + } + + if (!$addressLi.eq(i).hasClass('address_select')) { + $addressLi.eq(i).addClass('hide'); + } + } + + if (notSelect === 0) { + $('.exist-address-list li:not(".use-new-address")').removeClass('hide'); + + $('.use-new-address input').removeAttr('checked'); + } + + $('.address-list-inner li.address_select input').attr('checked', 'checked'); + $('.address-list-inner li').removeClass('active'); + $('.address-list-inner li.address_select').addClass('active'); + + $(this).removeAttr('expand').text('[修改]'); + + $('.save-btn').addClass('hide'); + + e.$existAddressListWrap.removeClass('address-expand'); + + e.$addressManage.addClass('hide'); + } + + }); + + + //支付及送货时间 + e.$switchPayModify.click(function() { + + if (e.$payTimeModify.hasClass('hide')) { + e.$payTimeModify.removeClass('hide'); + e.$modityPayInfo.addClass('hide'); + $(this).text('[不保存并关闭]'); + } else { + e.$payTimeModify.addClass('hide'); + e.$modityPayInfo.removeClass('hide'); + $(this).text('[修改]'); + + e.$payTimeModify.find('input[name="pay-type"]').filter('.checked').attr('checked', 'checked'); + e.$payTimeModify.find('input[name="pay-time-radio"]').filter('.checked').attr('checked', 'checked'); + e.$payTimeModify.find('input[name="call-me"]').filter('.checked').attr('checked', 'checked'); + } + }); + + e.$spanPayTypeLegend.click(function() { + $(this).toggleClass('active'); + + e.$supportType.toggleClass('hide'); + }); + + $(document).on('click', '.exist-address-list li', function() { + + $('.exist-address-list li').removeClass('active'); + + $(this).addClass('active'); + + $(this).find('input').attr('checked', 'checked'); + + if ($(this).hasClass('use-new-address')) { + e.$addressManage.removeClass('hide'); + + $('.address-manage input').val(''); + + $('.save-btn').removeAttr('data-id'); + + // 0表示获取所有省的列表,'000000'表示无匹配的区域码 + address.newAddress(0, '000000'); + } + }); + }, + + //渲染价格明细 + render: function(data, tips) { + + // 下面这段是在服务端算价格 + var e = this.e, + i, + dArr = data.promotion_formula_list, + packageList = data.package_list, + str = '', + isExpress = ''; + + var tipsStr; + + var envelopesVal; + + if (!!tips) { + tipsStr = tips; + } else { + tipsStr = ''; + } + + for (i = 0; i < dArr.length; i++) { + + if (dArr[i].promotion === '优惠券:') { + dArr[i].promotion = (tipsStr ? tipsStr : '优惠券') + '<span class="juan-modify">[修改]</span>:'; + } + + if (dArr[i].promotion === 'YOHO币:') { + dArr[i].promotion = 'YOHO币<span class="bi-modify">[修改]</span>:'; + } + + if (dArr[i].isExpress) { + isExpress = 'total-express-w'; + } else { + isExpress = ''; + } + + str += '<li class="' + isExpress + '">' + + '<label>' + dArr[i].promotion + '</label>' + + '<em>' + dArr[i].promotion_amount + '</em>' + + '</li>'; + } + + e.$payTotal.html(str); + e.$toPay.html((data.last_order_amount).toFixed(2)); + + //有货币清零状态更新 + $('#biprice').val(accMul(100, data.use_yoho_coin)); + if (~~data.use_yoho_coin === 0) { + $('.errbitip').text(''); + } else { + $('.errbitip').text('抵扣' + data.use_yoho_coin.toFixed(2) + '元'); + } + + envelopesVal = e.$useEnvelopesInput.data('all') - data.use_red_envelopes; + + if (~~data.use_red_envelopes > 0) { + e.$useEnvelopes.find('span').html('-¥' + data.use_red_envelopes.toFixed(2)); + e.$useEnvelopes.find('input').attr('data-use', data.use_red_envelopes); + } else { + e.$useEnvelopes.find('span').html('-¥0.00'); + e.$hasEnvelopes.html('¥' + (e.$useEnvelopesInput.attr('data-all') * 1).toFixed(2)); + e.$redEnvelopes.removeClass('active'); + e.$useEnvelopesInput.prop('checked', false); + } + e.$hasEnvelopes.html('¥' + envelopesVal.toFixed(2)); + + if (packageList) { + e.$expressFee.each(function(index, expressCost) { + var orignCost = packageList[index].shopping_orig_cost, + disCount = packageList[index].shopping_cut_cost, + realCost = packageList[index].shopping_cost; + + var cost = parseInt(orignCost) === 0 ? + '运费:¥0.00元' : + '运费:¥' + realCost + '元(原价' + orignCost + '元,优惠' + disCount + ')元'; + + $(expressCost).text(cost); + }); + } + } + }, + /*公共方法*/ + Common: { + enterNUM: function(str1, str2) { + str1 = str1.replace(/[^\d]/g, ''); + if (str1 && str2) { + str1 = parseInt(str1); + str2 = parseInt(str2); + if (str1 > str2) { + str1 = str2; + } + } + return str1; + }, + calucate: function() { + var p = Order.Data; + + $.each(Order.Data, function(key, index) { + p[key] = parseFloat(Order.Data[key]); + }); + return p.product - p.activity + p.carriage - p.juan - p.yohocoin; + }, + winShow: function(pan) { + pan.find('dt').show(); + pan.find('dd').show(); + if (pan.attr('class').match(/(-bi-)|(-juan-)/g)) { + pan.find('dt').hide(); + } + }, + winHide: function(pan) { + pan.find('dt').show(); + pan.find('dd').hide(); + + /*if (pan.hasClass('play-juan-pan') && $('.juan-modify').length > 0) { + pan.find('dt').hide(); + } + + if (pan.hasClass('play-bi-pan') && $('.bi-modify').length > 0) { + pan.find('dt').hide(); + }*/ + }, + strFixed: function(str) { + return parseFloat(str).toFixed(2); + } + }, + /*业务逻辑*/ + Bll: { + e: { + $juanok: $('#juansubmit'), + $juantip: $('.errtip', '.play-juan-pan'), + $biok: $('#bisubmit'), + $carriageGroup: $('input[name="carriagegroup"]'), + $selectExpress: $('.express-list input'), + $bp: $('#biprice'), + $errorTip: $('.errbitip'), + $useEnvelopes: $('.use-envelopes'), + $hasEnvelopes: $('.has-envelopes span'), + $useEnvelopesInput: $('.use-envelopes').find('input'), + $redEnvelopes: $('.red-envelopes'), + $loading: $('.loading') + }, + init: function() { + var e = this.e, + u = Order.UI, + options, + c = Order.Common, + envelopesVal; + + function getSelectData(callback) { + + var $juangroupInput = $('.play-juan.is-select input[name="juangroup"]:checked'); + var expressVal = $('.express-list input[name="carriagegroup"]:checked').val(); + var biVal = $('#biprice.is-select').val(); + var codeVal = $juangroupInput.val(); + var cartType = $('.address-manage').attr('cart-type'); + var redEnvelopes = $('.use-envelopes input:checked').attr('data-use'); + var resultData; + + codeVal = codeVal ? codeVal : $juangroupInput.closest('li').find('#juancode').val(); + + resultData = { + cartType: cartType, + deliveryWay: expressVal, + couponCode: codeVal, + yohoCoin: biVal + + //redEnvelopes: e.$useEnvelopesInput.length > 0 ? ~~e.$hasEnvelopes.text().substring(1) : '0' + }; + + if (!!redEnvelopes) { + resultData.redEnvelopes = redEnvelopes; + } + + callback(resultData); + + } + + // 选择快递 + e.$selectExpress.click(function() { + + var expressId = $(this).val(); + + e.$loading.show(); + + getSelectData(function(d) { + + d.deliveryWay = expressId; + + options = { + type: 'POST', + url: '/cart/index/orderCompute', + data: d, + success: function(data) { + e.$loading.hide(); + + if (data.code === 200) { + u.render(data.data); + + if (expressId === '1') { + + $('.express-list.sf').addClass('hide'); + } else if (expressId === '2') { + $('.express-list.sf').removeClass('hide'); + } + } else { + new dialog.Alert(data.message).show(); + } + } + }; + + $.ajax(options); + }); + }); + + //点击 优惠卷支付 确认按钮 + e.$juanok.click(function() { + + var pan = $(this).parents('dl.pan'); + + var juanText = ''; + + $('.play-juan').addClass('is-select'); + + getSelectData(function(d) { + + var code = d.couponCode; + + if (!code) { + + e.$juantip.html('请选择或填写一个优惠券'); + $('.play-juan').removeClass('is-select'); + + } else { + + e.$loading.show(); + + options = { + type: 'POST', + url: '/cart/index/orderCompute', + data: d, + success: function(data) { + + e.$loading.hide(); + + if (data.code === 200) { + + juanText = $('.play-juan input[value="' + code + '"]').next().text(); + u.render(data.data, juanText); + + //$('#juancode').val(code); + + c.winHide(pan); + e.$juantip.html(''); + + //$('.play-juan-pan dt').hide(); + + } else { + e.$juantip.html(data.message); + $('.play-juan').removeClass('is-select'); + } + } + }; + + $.ajax(options); + } + }); + + }); + + // 优惠券修改 + $(document).on('click', '.juan-modify', function() { + + + var $pan = $('.play-juan-pan'); + + c.winShow($pan); + }); + + e.$biok.click(function() { + + var pan = $(this).parents('dl.pan'); + var juanText; + + $('#biprice').addClass('is-select'); + + getSelectData(function(d) { + + if (!!d.couponCode) { + juanText = $('.play-juan input[value="' + d.couponCode + '"]').next().text(); + } + + //if (d.yohoCoin * 1 === 0) { + if (!/^\d+$/.test(d.yohoCoin + '') || d.yohoCoin * 1 === 0) { + $('.errbitip').html('请输入一个正整数'); + $('#biprice').removeClass('is-select'); + + } else if (d.yohoCoin * 1 > $('.play-pan em').text() * 1) { + + $('.errbitip').html('您的YOHO币不足'); + $('#biprice').removeClass('is-select'); + + } else { + e.$loading.show(); + + options = { + type: 'POST', + url: '/cart/index/orderCompute', + data: d, + success: function(data) { + + e.$loading.hide(); + + if (data.code === 200) { + + u.render(data.data, juanText); + c.winHide(pan); + + //$('.play-bi-pan dt').hide(); + + } else { + $('.errbitip').html(data.message); + $('#biprice').removeClass('is-select'); + } + } + }; + + $.ajax(options); + } + + }); + }); + + // 修改yoho币 + $(document).on('click', '.bi-modify', function() { + + + var $pan = $('.play-bi-pan'); + + c.winShow($pan); + }); + + e.$bp.keyup(function() { + + var val = $(this).val(); + + //if (val * 1 < 0 || val.indexOf('.') > 0) { + if (!/^\d+$/.test(val + '')) { + e.$errorTip.html('请输入一个正整数'); + } else if (val * 1 > $(this).data('bi') * 1) { + e.$errorTip.html('您的YOHO币不足'); + } else { + e.$errorTip.html('抵扣' + (val / 100).toFixed(2) + '元'); + } + }); + + // 取消yoho 币 + $('.cancel-bi').click(function() { + + + var $pan = $('.play-bi-pan'); + var juanText; + + $('.errbitip').html(''); + + if ($('#biprice').hasClass('is-select')) { + + e.$loading.show(); + + getSelectData(function(d) { + + d.yohoCoin = 0; + + if (!!d.couponCode) { + juanText = $('.play-juan input[value="' + d.couponCode + '"]').next().text(); + } + + options = { + type: 'POST', + url: '/cart/index/orderCompute', + data: d, + success: function(data) { + + e.$loading.hide(); + + if (data.code === 200) { + u.render(data.data, juanText); + c.winHide($pan); + + $('#biprice').val('0'); + + //$('.play-bi-pan dt').hide(); + $('#biprice').removeClass('is-select'); + + $('.errbitip').html(''); + + // $('.use-envelopes input').attr('checked', 'checked'); + // $('.red-envelopes').addClass('active'); + + } else { + $('.errbitip').html(data.message); + } + } + }; + + $.ajax(options); + }); + + } else { + c.winHide($pan); + $('#biprice').val('0'); + } + + }); + + // 取消优惠券 + $('.cancel-code').click(function() { + + var $pan = $('.play-juan-pan'); + + if ($('.play-juan').hasClass('is-select')) { + + e.$loading.show(); + + getSelectData(function(d) { + + d.couponCode = ''; + + options = { + type: 'POST', + url: '/cart/index/orderCompute', + data: d, + success: function(data) { + + e.$loading.hide(); + + if (data.code === 200) { + u.render(data.data); + + c.winHide($pan); + $('.play-juan').removeClass('is-select'); + + $('#juancode').val('') + .siblings('input[name="juangroup"]').attr('checked', 'checked'); + + // $('.use-envelopes input').attr('checked', 'checked'); + // $('.red-envelopes').addClass('active'); + + } else { + e.$juantip.html(data.message); + } + } + }; + + $.ajax(options); + }); + } else { + c.winHide($pan); + } + }); + + + // 红包 + envelopesVal = e.$useEnvelopesInput.data('all') - e.$useEnvelopesInput.data('use'); // 剩余的红包 + e.$hasEnvelopes.text('¥' + envelopesVal.toFixed(2)); + e.$useEnvelopes.find('input').click(function() { + + var $this = $(this), + juanText; + + e.$loading.show(); + + $this.attr('disabled', 'disabled'); + + getSelectData(function(d) { + + if (!!$this.attr('checked')) { + + //d.redEnvelopes = $this.val(); + d.redEnvelopes = $this.data('use'); + + } else { + + d.redEnvelopes = 0; + } + + juanText = $('.play-juan input[value="' + d.couponCode + '"]').next().text(); + + options = { + type: 'POST', + url: '/cart/index/orderCompute', + data: d, + success: function(data) { + e.$loading.hide(); + + if (data.code === 200) { + u.render(data.data, juanText); + + $this.removeAttr('disabled'); + + if (!!$this.attr('checked')) { + e.$redEnvelopes.addClass('active'); + } else { + e.$useEnvelopes.find('span').html('-¥0.00'); + e.$hasEnvelopes.html('¥' + ($this.attr('data-all') * 1).toFixed(2)); + e.$redEnvelopes.removeClass('active'); + } + } else { + + new dialog.Alert(data.message).show(); + } + } + }; + + $.ajax(options); + }); + + }); + + + //发票抬头和备注字数限制 + function limitStrLen($obj, len) { + + var $this = $obj; + + $this.keyup(function() { + + if ($this.val().length > len) { + + $this.val($this.val().substr(0, len)); + } + }); + } + + limitStrLen($('#piaodesc'), 30); + limitStrLen($('#notedesc'), 100); + } + } +}; + +Order.Data.activity = 0; +Order.Data.carriage = 0; + +Order.UI.init(); +Order.Bll.init(); + + +address.getUserAddressList(); + +// 0表示获取所有省的列表,'000000'表示无匹配的区域码 +address.newAddress(0, '000000'); +address.modifyAddress(); +address.saveAddress(); + +//不同订单包裹提示 + +$('.why').click(function() { + $('#differentBag').show(); + return false; + +}); +$('#differentBag').click(function() { + return false; +}); +$(document).click(function() { + $('#differentBag').hide(); +}); + +//订单包裹左右切换 +function lunBo($pre, $next, $ul, $iWidth) { + var i = 1, + j = 1; + + var iSpeed = 0, + isMoving = false; + + $pre.click(function() { + if (isMoving) { + return; + } + + if ($ul.css('left') === '0px') { + iSpeed = 0; + + } else { + iSpeed += j * $iWidth; + isMoving = true; + } + $ul.stop().animate({ + left: iSpeed + }, 300, function() { + isMoving = false; + }); + }); + $next.click(function() { + var $largeLeft = $ul.parent().width() - $ul.width() + 'px'; + + if (isMoving) { + return; + } + + if ($ul.css('left') === $largeLeft) { + $ul.css('left', $largeLeft); + } else { + iSpeed += -i * $iWidth; + isMoving = true; + } + + $ul.stop().animate({ + left: iSpeed + }, 300, function() { + isMoving = false; + }); + }); +} + + + +//订单分类 +$('.bag').find('ul').each(function() { + var $pre = $(this).parent().parent().find('.pre'); + var $next = $(this).parent().parent().find('.next'); + + var $iWidth = $(this).find('li').eq(0).width(); + var $length = $(this).find('li').size(); + var $ulWidth = $iWidth * $length; + + $(this).css('width', $ulWidth); + if ($length > 5) { + $pre.show(); + $next.show(); + lunBo($pre, $next, $(this), $iWidth); + } else { + $pre.hide(); + $next.hide(); + } +}); + +}); +define("js/order/address", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * @description: 地址管理 + * @author: chenglong.wang@yoho.cn + */ + +var $ = require("jquery"); +var dialog = require("js/common/dialog"); + + +var isProvinceChecked = false; + +var $addressManage = $('.address-manage'), + $province = $addressManage.find('.text-input[name="province"]'), + $city = $addressManage.find('.text-input[name="city"]'), + $county = $addressManage.find('.text-input[name="county"]'), + $selectList = $addressManage.find('.text-input[name="province"], .text-input[name="city"]'), + $addressList = $('.address-list'), + $name = $addressManage.find('.text-input[name="name"]'), + $phone = $addressManage.find('.text-input[name="phone"]'), + $mail = $addressManage.find('.text-input[name="mail"]'), + $address = $addressManage.find('.text-input[name="address"]'), + $code = $addressManage.find('.text-input[name="code"]'), + $saveBtn = $('.save-btn'), + $telCode = $addressManage.find('.text-input[name="tel-code"]'), + $tel = $addressManage.find('.text-input[name="tel"]'), + $useNewAddress = $('.use-new-address'), + $existAddressList = $('.exist-address-list'), + $loading = $('.loading'), + $orderEditMain = $('#order-edit-main'); + +var cartType = $addressManage.attr('cart-type'); + +$loading.show(); + +// 构建select下拉选项 +function structureOption($obj, data, selectId) { + + var i, + optionHtml = '', + defaultOption, + isStar = ''; + + for (i = 0; i < data.length; i++) { + + if (data[i].is_support_express === 'Y') { + isStar = '*'; + } else { + isStar = ''; + } + + if (data[i].id === selectId) { + optionHtml += '<option selected value="' + data[i].id + '">' + isStar + data[i].caption + '</option>'; + } else { + optionHtml += '<option value="' + data[i].id + '">' + isStar + data[i].caption + '</option>'; + } + } + + + if ($obj.attr('name') === 'province') { + defaultOption = '<option value="0">请选择省份</option>'; + } else if ($obj.attr('name') === 'city') { + defaultOption = '<option value="0">请选择城市</option>'; + + } else if ($obj.attr('name') === 'county') { + defaultOption = '<option value="0">请选择区县</option>'; + } + + $obj.html(defaultOption + optionHtml); +} +/** + * @description: 改函数会返回地址信息 + * d {Object} type: 'getProvince'获取省 type: 'getCity'获取城市 type: 'getCounty'获取县 + * id: 0 && type: 'getProvince' 获取所有省,默认没有选中项 + * id !== 0 && type: 'getProvince' 获取所有省,默认选中用户所在的省 + */ +function getAddress(d, callback) { + + var $obj; + var selectId = d.selectId; + + if (d.type === 'getProvince') { + + //url = 'getProvince'; + $obj = $province; + } else if (d.type === 'getCity') { + + //url = 'getCity'; + $obj = $city; + } else if (d.type === 'getCounty') { + + //url = 'getCounty'; + $obj = $county; + } + + $.ajax({ + type: 'GET', + url: '/cart/index/getAreaList', + dataType: 'json', + data: { + id: d.id * 1 + } + }).then(function(d) { + + structureOption($obj, d.data, selectId); + + if (typeof callback === 'function') { + callback(); + } + + }); +} + +//手机号码****处理 +function setPhoneStar(pn) { + return pn.replace(/^(\d{3}).*(\d{4})$/, '$1****$2'); +} + +// 修改地址时把用户信息带过来 +function getUserInfo($obj) { + + $name.val($obj.attr('data-name')); + $name.attr('data-id', $obj.attr('data-id')); + $address.val($obj.attr('data-addressDesc')); + $phone.val($obj.attr('data-mobile')); + $mail.val($obj.attr('data-email')); + $code.val($obj.attr('data-zipcode')); + $telCode.val($obj.attr('data-phoneCode')); + $tel.val($obj.attr('data-phoneNum')); +} + +// 更新地址列表状态 +function refreshAddressStatus() { + $useNewAddress.removeClass('active'); + $existAddressList.find('li:not(".active")').addClass('hide'); + $existAddressList.find('li.active').addClass('address_select'); + $addressManage.addClass('hide'); + $saveBtn.addClass('hide').removeAttr('data-id'); //清除data-id + $existAddressList.removeClass('address-expand'); + $('.address-list h2 span').text('[修改]'); +} + +//获取用户已经存在的地址列表 +exports.getUserAddressList = function() { + + var addressData, + i, + addressStr = '', + isChecked = '', + isHide = '', + addressText = '', + hasDefault = 0; + + $.ajax({ + type: 'GET', + url: '/cart/index/getAddress', + dataType: 'json' + }).then(function(d) { + + $loading.hide(); + + if (d.code === 200) { + + addressData = d.data.list; + + if (!addressData) { + + // 新用户引导 + if (!!$orderEditMain.attr('data-new')) { + + $saveBtn.addClass('new-user-btn').html('下一步:选择支付及送货时间'); + + $('.pay-btn').addClass('new-user-pay').html('下一步:发票和备注'); + + $('.switch-pay-modify').html(''); + + } + + $addressList.find('>h2').find('span').click(); + + $('.exist-address-list li').click(); + + $('.use-new-address').removeClass('active'); + + return; + + } + + for (i = 0; i < addressData.length; i++) { + + if (addressData[i].checked) { + + isChecked = 'checked'; + isHide = 'active address_select'; + hasDefault++; + addressText = '默认地址'; + + } else { + isChecked = ''; + isHide = 'hide'; + addressText = '设为默认地址'; + } + + addressStr += + '<li data-id="' + addressData[i].id + '" class="' + isHide + + '" data-express="' + addressData[i].isSupport + '">' + + '<input data-name="' + addressData[i].user + + '" data-areaCode="' + addressData[i].areaCode + + '" data-addressDesc="' + addressData[i].addressDesc + + '" data-mobile="' + addressData[i].mobile + + '" data-phoneNum="' + addressData[i].phoneNum + + '" data-phoneCode="' + addressData[i].phoneCode + + '" data-zipCode="' + addressData[i].zipCode + + '" data-email="' + addressData[i].email + + '" class="radio" type="radio" name="address" ' + isChecked + ' />' + + '<label for="">' + + '<strong>' + addressData[i].user + '</strong>' + addressData[i].address + + '<a href="javascript:void(0);" class="default-address">' + addressText + '</a>' + + '<div class="order-modify-btn">' + + '<span class="address-modify">[修改]</span>' + + '<span class="address-del">[删除]</span>' + + '</div>' + + '</label>' + + '</li>'; + } + + $('.use-new-address').before($(addressStr)); + + //说明用户的地址列表没有默认地址 + if (hasDefault === 0) { + + //没有默认地址则把所有地址都显示出来 + //$('.exist-address-list li:not(".use-new-address")').removeClass('hide'); + $('.address-list h2 span').click(); + } + + if ($('.active.address_select').attr('data-express') === 'N') { + $('.express-list input[name="carriagegroup"][value="2"]').attr('disabled', 'disabled'); + $('.express-list input[name="carriagegroup"][value="1"]').attr('checked', 'checked'); + $('.express-list.sf').addClass('hide'); + $('.is-sup').removeClass('hide'); + } else { + $('.express-list input[name="carriagegroup"][value="2"]').removeAttr('disabled'); + $('.express-list.sf').removeClass('hide'); + $('.is-sup').addClass('hide'); + } + + } + + }); +}; + +/* + * 添加地址&修改地址 + * id: 根据id获取省市区列表 + * code: 根据code确定是否选中省市区 + */ +exports.newAddress = function(id, code) { + + var pId = id || 0; //如果没有传id则获取所有省列表 + + var addressCodeReg = /[0-9]{2}/gi; + + var codeId = !!code && code.match(addressCodeReg); + + //获取省 + getAddress({ + id: pId, + type: 'getProvince', + selectId: codeId[0] + }, function() { + + var provinceId = $province.val(); + + if (provinceId !== '0') { + + //如果获取的省有默认选中项则获取市 + getAddress({ + id: provinceId, + type: 'getCity', + selectId: '' + codeId[0] + codeId[1] + }, function() { + + var cityId = $city.val(); + + //如果获取的市有默认选中项则获取县 + if (cityId !== '0') { + getAddress({ + id: cityId, + type: 'getCounty', + selectId: code + }); + } + }); + } else { + $addressManage.find('select[name="city"]').html('<option value="0">请选择城市</option>'); + $addressManage.find('select[name="county"]').html('<option value="0">请选择区县</option>'); + } + }); + + // 发生change事件时获取下一级地址 + $selectList.change(function() { + + var $this = $(this); + + if ($this.attr('name') === 'province') { + + if ($this.val() === '0') { + $addressManage.find('select[name="city"]').html('<option value="0">请选择城市</option>'); + $addressManage.find('select[name="county"]').html('<option value="0">请选择区县</option>'); + } else { + getAddress({ + id: $this.val(), + type: 'getCity' + }, function() { + isProvinceChecked = true; + }); + $addressManage.find('select[name="county"]').html('<option value="0">请选择区县</option>'); + } + } + + if ($this.attr('name') === 'city' && isProvinceChecked) { + + if ($this.val() === '0') { + $addressManage.find('select[name="county"]').html('<option value="0">请选择区县</option>'); + } else { + getAddress({ + id: $this.val(), + type: 'getCounty' + }); + } + } + }); +}; + +//修改地址 +exports.modifyAddress = function() { + + $addressList.click(function(event) { + + var $this = $(event.target), + id = $this.closest('li').attr('data-id'), + areaCode = $this.closest('li').find('.radio').attr('data-areaCode'); + + if ($this.hasClass('address-modify')) { + $addressManage.removeClass('hide'); + exports.newAddress(0, areaCode); + getUserInfo($this.closest('li').find('.radio')); + $('.address-list-inner .save-btn').removeClass('hide'); + $saveBtn.attr('data-id', id); + isProvinceChecked = true; + } else if ($this.hasClass('address-del')) { + + $loading.show(); + + $.ajax({ + type: 'POST', + url: '/cart/index/delAddress', + data: { + id: id + } + }).then(function(d) { + + $loading.hide(); + + if (d.code === 200) { + + $this.closest('li').remove(); + } else { + new dialog.Alert(d.message).show(); + } + }).fail(function() { + + //todo + }); + } else if ($this.hasClass('default-address') && !$this.parents('li').hasClass('address_select')) { + + $loading.show(); + + // 设为默认地址 + $.ajax({ + type: 'post', + url: '/cart/index/setDefaultAddress', + data: { + id: id + } + }).then(function(d) { + + $loading.hide(); + + if (d.code === 200) { + + $('.exist-address-list li').removeClass('address_select') + .find('.default-address').text('设为默认地址'); + $this.parents('li').addClass('address_select'); + $this.text('默认地址'); + + } else { + new dialog.Alert(d.message).show(); + } + }); + } + }); +}; + +// 保存地址并送到这个地址 +exports.saveAddress = function() { + $saveBtn.click(function() { + + var $this = $(this); + + var name = $name.val(), + province = $province.val(), + city = $city.val(), + county = $county.val(), + address = $address.val(), + phone = $phone.val(), + telCode = $telCode.val(), + tel = $tel.val(), + mail = $mail.val(), + code = $code.val(); + + var provinceText = $province.find('option[value="' + province + '"]').text().replace(/\*/, ''), + cityText = $city.find('option[value="' + city + '"]').text().replace(/\*/, ''), + countyText = $county.find('option[value="' + county + '"]').text().replace(/\*/, ''); + + + var postData = { + consignee: name, + areaCode: county, + address: address, + email: mail, + mobile: phone, + zipCode: code, + phoneCode: telCode, + phoneNum: tel + }; + + var addressStr; + var $modifyLi; + var hasCheckedAddress; + + var nameReg = /^[\u4e00-\u9fa5]{2,5}$/; + var addressReg = /^[\s\S]{2,100}$/; + var phoneReg = /^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/; + var codeReg = /^[0-9]{6}$/; + var emailReg = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; + var telCodeReg = /^[0-9]{3,5}$/; + var telReg = /^[0-9]{5,10}$/; + + + function hasText(val) { + + if (val === telCode) { + + if (!!val) { + return val + '-'; + } else { + return ' '; + } + + } else { + if (!!val) { + return val + ' '; + } else { + return ' '; + } + } + } + + hasCheckedAddress = $('.exist-address-list li:not(".use-new-address")') + .find('input[name="address"]:checked').length > 0; + + // 说明是送货到这个地址 + if (!$('.add-address').attr('checked') && hasCheckedAddress && !$('.save-btn').attr('data-id')) { + + $('.exist-address-list li').removeClass('address_select'); + $('.exist-address-list li.active').addClass('address_select') + .find('input[name="address"]').attr('checked', 'checked'); + + $('.address-list span').removeAttr('expand'); + + refreshAddressStatus(); + + } + + //if (!!$('.add-address').attr('checked')) { + if (!$('.address-manage').hasClass('hide')) { + + if (!nameReg.test(name)) { + new dialog.Alert('真实姓名至少2个中文,最多5个中文').show(); + return; + } + if (!addressReg.test(address)) { + new dialog.Alert('你输入的地址格式不正确').show(); + return; + } + if (!phoneReg.test(phone)) { + new dialog.Alert('你输入的联系电话格式不正确').show(); + return; + } + + if ((!!telCode && !telCodeReg.test(telCode)) || (!!tel && !telReg.test(tel)) || + (telCodeReg.test(telCode) && !telReg.test(tel)) || + (!telCodeReg.test(telCode) && telReg.test(tel))) { + new dialog.Alert('你输入的电话格式不正确').show(); + return; + } + + if (!!mail && !emailReg.test(mail)) { + new dialog.Alert('你输入的邮箱格式不正确').show(); + return; + } + + if (!!code && !codeReg.test(code)) { + new dialog.Alert('你输入的邮编格式不正确').show(); + return; + } + + // 如果存在data-id说明是修改,否则是新增 + if (!!$saveBtn.attr('data-id')) { + postData.id = $saveBtn.attr('data-id'); + } + + $.ajax({ + type: 'post', + url: '/cart/index/saveAddress', + data: postData + }).then(function(d) { + + var addressData; + + if (d.code === 200) { + + addressData = d.data; + + if (addressData.is_support === 'Y') { + $('.express-list input[name="carriagegroup"][value="2"]').removeAttr('disabled'); + $('.express-list.sf').removeClass('hide'); + $('.is-sup').addClass('hide'); + + } else { + + $('.express-list input[name="carriagegroup"][value="2"]').attr('disabled', 'disabled'); + $('.express-list input[name="carriagegroup"][value="1"]').attr('checked', 'checked'); + $('.express-list.sf').addClass('hide'); + $('.is-sup').removeClass('hide'); + } + + if (!!postData.id) { + + // 修改操作接口没有返回id + addressStr = '<li class="active" data-id="' + postData.id + + '" data-express="' + addressData.is_support + '">' + + '<input data-name="' + postData.consignee + + '" data-areaCode="' + postData.areaCode + + '" data-addressDesc="' + postData.address + + '" data-mobile="' + postData.mobile + + '" data-phoneNum="' + postData.phoneNum + + '" data-phoneCode="' + postData.phoneCode + + '" data-zipCode="' + postData.zipCode + + '" data-email="' + postData.email + + '" checked="checked" class="radio" type="radio" name="address" />' + + '<label>' + + '<strong>' + name + '</strong>' + + '<span>' + provinceText + ' ' + cityText + ' ' + countyText + ' ' + address + + ' ' + hasText(code) + setPhoneStar(phone) + hasText(telCode) + hasText(tel) + '</span>' + + '<a href="javascript:void(0);" class="default-address">设为默认地址</a>' + + '<div class="order-modify-btn">' + + '<span class="address-modify">[修改]</span>' + + '<span class="address-del">[删除]</span>' + + '</div>' + + '</label>' + + '</li>'; + } else { + + //添加操作接口有返回id + addressStr = '<li class="active" data-id="' + addressData.id + + '" data-express="' + addressData.is_support + '">' + + '<input data-name="' + addressData.consignee + + '" data-areaCode="' + addressData.area_code + + '" data-addressDesc="' + addressData.address + + '" data-mobile="' + addressData.mobile + + '" data-phoneNum="' + postData.phoneNum + + '" data-phoneCode="' + postData.phoneCode + + '" data-zipCode="' + addressData.zip_code + + '" data-email="' + addressData.email + + '" checked="checked" class="radio" type="radio" name="address" />' + + '<label>' + + '<strong>' + name + '</strong>' + + '<span>' + provinceText + ' ' + cityText + ' ' + countyText + ' ' + address + + ' ' + hasText(code) + setPhoneStar(phone) + hasText(telCode) + hasText(tel) + '</span>' + + '<a href="javascript:void(0);" class="default-address">设为默认地址</a>' + + '<div class="order-modify-btn">' + + '<span class="address-modify">[修改]</span>' + + '<span class="address-del">[删除]</span>' + + '</div>' + + '</label>' + + '</li>'; + } + + + + // 如果dataID存在说明是修改操作 + if (!!$this.attr('data-id')) { + + $modifyLi = $('.exist-address-list li[data-id="' + $this.attr('data-id') + '"]'); + + $modifyLi.after($(addressStr)).remove(); + } else { + $('.use-new-address').before($(addressStr)); + } + + $('.address-list span').removeAttr('expand'); + + refreshAddressStatus(); + } else { + new dialog.Alert(d.message).show(); + } + }); + } + + if ($('.exist-address-list li').find('input[name="address"]:checked').length === 0) { + new dialog.Alert('请选择一个地址').show(); + return; + } else { + + if ($('.exist-address-list li').find('input[name="address"]:checked') + .closest('li').attr('data-express') === 'N') { + $('.express-list input[name="carriagegroup"][value="2"]').attr('disabled', 'disabled'); + $('.express-list input[name="carriagegroup"][value="1"]').attr('checked', 'checked'); + $('.express-list.sf').addClass('hide'); + $('.is-sup').removeClass('hide'); + } else { + $('.express-list input[name="carriagegroup"][value="2"]').removeAttr('disabled'); + $('.express-list.sf').removeClass('hide'); + $('.is-sup').addClass('hide'); + } + } + + + // 说明需要新用户引导,展开支付及送货时间 + if ($this.hasClass('new-user-btn')) { + + $('.switch-pay-modify').click(); + } + + }); +}; + + + +// 支付及送货时间选择 +$('.pay-time-modify .pay-btn').click(function() { + + var $this = $(this); + + var $payInfoBox = $('.modity-pay-info'), + $payTime = $('.pay-time-modify'), + payTypeVal = $payTime.find('input[name="pay-type"]:checked').val(), + payTypeText = $payTime.find('input[name="pay-type"]:checked').next('label').text(), + payTimeText = $payTime.find('input[name="pay-time-radio"]:checked').next('label').text(), + payTimeVal = $payTime.find('input[name="pay-time-radio"]:checked').val(), + isCall = $payTime.find('input[name="call-me"]:checked').next('label').text(), + callMeVal = $payTime.find('input[name="call-me"]:checked').val(); + + + $loading.show(); + + $.ajax({ + type: 'POST', + url: '/cart/index/orderCompute', + dataType: 'json', + data: { + cartType: cartType, + paymentType: payTypeVal + } + }).then(function(d) { + + $loading.hide(); + + if (d.code === 200) { + + $payInfoBox.find('li').eq(0).find('span').text(payTypeText); + $payInfoBox.find('li').eq(1).find('span').text(payTimeText); + $payInfoBox.find('li').eq(2).find('span').text(isCall); + + $('.pay-time-modify').addClass('hide') + .find('input[name="pay-type"][value=' + payTypeVal + ']').addClass('checked') + .end().find('input[name="pay-time-radio"][value=' + payTimeVal + ']').addClass('checked') + .end().find('input[name="call-me"][value=' + callMeVal + ']').addClass('checked'); + + $('.modity-pay-info').removeClass('hide'); + + $('.switch-pay-modify').text('[修改]'); + + if ($this.hasClass('new-user-pay')) { + + $('.play-piao-pan dd').css({ + + display: 'block' + }); + $('.play-piao-pan dt').addClass('active'); + } + + } else { + new dialog.Alert(d.message).show(); + } + }); +}); + +function getYohoBiList() { + + var $juanUl = $('.play-juan ul'), + juanStr = '', + dLen, + data, + i; + + $.ajax({ + type: 'GET', + dataType: 'json', + url: '/cart/index/getCouponList' + }).then(function(d) { + + if (d.code === 200) { + data = d.data; + dLen = data.length; + + for (i = 0; i < dLen; i++) { + juanStr += '<li>' + + '<input name="juangroup" type="radio" value="' + + data[i].code + '" ' + (data[i].valid ? '' : 'disabled="disabled"') + '>' + + '<label>' + data[i].desc + '</label>' + + '</li>'; + } + + $juanUl.prepend($(juanStr)); + + } + }); +} +getYohoBiList(); + +// 把Y、N转换成bool + +function ytoTrue(val) { + + if (val === 'N') { + return false; + } else { + return true; + } +} + + +// 去支付 +$('.to-play input.submit').click(function() { + + var $this = $(this); + + var addressId = $('.exist-address-list input[name="address"]:checked').closest('li').attr('data-id'), + deliveryTimeId = $('.pay-time-modify input[name="pay-time-radio"]:checked').val(), + deliveryWayId = $('.select-express input[name="carriagegroup"]:checked').val(), + invoiceTitle = $('#piaodesc').val(), + invoiceId = $('#piaotype').val(), + paymentType = $('.pay-time-modify input[name="pay-type"]:checked').val(), + paymentId = $('.pay-time-modify input[name="pay-type"]:checked').data('pay'), + remark = $('#notedesc').val(), + yohoCoin = $('#biprice').val(), + isPreContact = $('.pay-time-modify input[name="call-me"]:checked').val(), + isPrintPrice = $('.play-pan input[name="isPP"]:checked').val(), + redEnvelopes = $('.use-envelopes input:checked').attr('data-use'), + $juangroupInput = $('.play-juan.is-select input[name="juangroup"]:checked'), + codeVal = $juangroupInput.val(), + juanCode = !!codeVal ? codeVal : $juangroupInput.closest('li').find('#juancode').val(); + + $loading.show(); + + if (!!$this.attr('disabled')) { + return; + } + + $this.attr('disabled', 'disabled'); + + $.ajax({ + type: 'POST', + dataType: 'json', + url: '/cart/index/orderSub', + data: { + addressId: addressId, + cartType: cartType, + deliveryTimeId: deliveryTimeId, + deliveryWayId: deliveryWayId, + invoiceTitle: invoiceTitle, + invoiceId: invoiceId, + paymentId: paymentId, + paymentType: paymentType, + remark: remark, + couponCode: juanCode, + yohoCoin: yohoCoin, + isPreContact: ytoTrue(isPreContact), + isPrintPrice: ytoTrue(isPrintPrice), + redEnvelopes: redEnvelopes + } + }).then(function(d) { + + $loading.hide(); + + if (d.code === 200) { + window.location.href = d.data.payUrl; + } else { + new dialog.Alert(d.message).show(); + } + }).always(function() { + $this.removeAttr('disabled'); + }); +}); + +}); +define("js/shopping/pay", ["jquery"], function(require, exports, module){ +/** + * 支付页面 + */ + +//切换选项卡 +var $ = require("jquery"), + $choseTag = $('.mode div'), + $mode = $('.mode'), + $showPayImg = $('#show-pay-img'), + $btnty = $('#btnby'), + $lightBox = $('.light-box'), + $choosePay = $('#choosePay').val(), + $chooseMoid = $('.mode div[id="' + $choosePay + '"]').parent().data('value'), + $showValue = $choosePay ? $chooseMoid : $('.mode').eq(0).data('value'), + $payUrl = $('#payUrl').val(), + $modeData, + activeTab, + imgAlt, + imgSrc, + orderCode, + payment; + +$.jqtab = function(tabtit, tabcon) { + + $(tabtit + ' li').click(function() { + activeTab = $(this).find('a').attr('tab'); + + $(tabtit + ' li').removeClass('thistab'); + $(this).addClass('thistab'); + $(tabcon).hide(); + $('#' + activeTab).fadeIn(); + return false; + }); +}; + + +$.jqtab('#tabs', '.tab-con'); + +//选项卡点击 +function choosed() { + if ($choosePay) { + $('.mode div[id="' + $choosePay + '"]').addClass('choosed-tag').parent().addClass('choose-type'); + } else { + $mode.eq(0).addClass('choose-type').show(); + $mode.eq(0).find('div').addClass('choosed-tag'); + } + $btnty.attr('value', '前往' + $('#' + $chooseMoid).attr('alt')); + $showPayImg.attr('src', $('#' + $chooseMoid).attr('src')); +} + +choosed(); + +$mode.click(function() { + $modeData = $(this).data(); + $showValue = $modeData.value; + imgAlt = $('#' + $showValue).attr('alt'); + imgSrc = $('#' + $showValue).attr('src'); + + $mode.removeClass('choose-type'); + $(this).addClass('choose-type'); + $choseTag.removeClass('choosed-tag'); + $(this).find('.borer-tag').addClass('choosed-tag'); + $btnty.attr('value', '前往' + imgAlt); + $showPayImg.attr('src', imgSrc); + return false; +}); + + +$('.close').click(function() { + $lightBox.hide(); +}); + +$('.change').click(function() { + $lightBox.hide(); +}); + +//支付方式选择按钮 +function getData(payment, orderCode) { + $.ajax({ + type: 'get', + url: '/common/addpaymentinterval', + dataType: 'json', + data: { + orderCode: orderCode, + payment: payment + } + }); +} + +$('#btnby').click(function() { + payment = $('.choose-type').attr('data-id'); + orderCode = $('.order-num').text(); + getData(payment, orderCode); + window.open($payUrl + '?order_code=' + orderCode + '&payment_type=' + $showValue); + $lightBox.show(); +}); + +//发送支付确认 +$('.pay-over').unbind('click').bind('click', function() { + var _this = this; + + $.post('/shopping/pay/sendPay', + { + orderCode: orderCode, + paymentId: payment + }, + function() { + window.location.href = $(_this).data('url'); + } + ); +}); +}); +define("js/pay/wechatqrcode", ["jquery"], function(require, exports, module){ +/** + * 微信支付页面 + */ + +var $ = require("jquery"), + $wOdetail = $('.w-odetail'), + $payHost = $('#payHost').val(), + $paySuccessUrl = $('#paySuccessUrl').val(), + $wPerm = $('.w-p-erm'); + +require("plugin/jquery.qrcode"); + +$wOdetail.click(function() { + $('.w-addrinfo').slideToggle('slow'); + + if ($wOdetail.find('i').hasClass('up')) { + $wOdetail.html('收起详情<i class="down"></i>'); + } else { + $wOdetail.html('订单详情<i class="up"></i>'); + } +}); + +$wPerm.qrcode({ + render: 'table', + text: $wPerm.data('url') +}); + +function checkPayStatus() { + $.ajax({ + url: $payHost, + dataType: 'jsonp', + success: function(data) { + if (data.message === 'success') { + window.location.href = $paySuccessUrl; + } + } + }); +} + + +setInterval(checkPayStatus, 3000); +}); +define("plugin/jquery.qrcode", ["jquery"], function(require, exports, module){ +/* jscs: disable */ +/* jshint ignore:start */ +var jQuery = require("jquery"); + +(function(r) { + r.fn.qrcode = function(h) { + var s; + + function u(a) { + this.mode = s; + this.data = a + } + + function o(a, c) { + this.typeNumber = a; + this.errorCorrectLevel = c; + this.modules = null; + this.moduleCount = 0; + this.dataCache = null; + this.dataList = [] + } + + function q(a, c) { + if (void 0 == a.length) throw Error(a.length + "/" + c); + for (var d = 0; d < a.length && 0 == a[d];) d++; + this.num = Array(a.length - d + c); + for (var b = 0; b < a.length - d; b++) this.num[b] = a[b + d] + } + + function p(a, c) { + this.totalCount = a; + this.dataCount = c + } + + function t() { + this.buffer = []; + this.length = 0 + } + u.prototype = { + getLength: function() { + return this.data.length + }, + write: function(a) { + for (var c = 0; c < this.data.length; c++) a.put(this.data.charCodeAt(c), 8) + } + }; + o.prototype = { + addData: function(a) { + this.dataList.push(new u(a)); + this.dataCache = null + }, + isDark: function(a, c) { + if (0 > a || this.moduleCount <= a || 0 > c || this.moduleCount <= c) throw Error(a + "," + c); + return this.modules[a][c] + }, + getModuleCount: function() { + return this.moduleCount + }, + make: function() { + if (1 > this.typeNumber) { + for (var a = 1, a = 1; 40 > a; a++) { + for (var c = p.getRSBlocks(a, this.errorCorrectLevel), d = new t, b = 0, e = 0; e < c.length; e++) b += c[e].dataCount; + for (e = 0; e < this.dataList.length; e++) c = this.dataList[e], d.put(c.mode, 4), d.put(c.getLength(), j.getLengthInBits(c.mode, a)), c.write(d); + if (d.getLengthInBits() <= 8 * b) break + } + this.typeNumber = a + } + this.makeImpl(!1, this.getBestMaskPattern()) + }, + makeImpl: function(a, c) { + this.moduleCount = 4 * this.typeNumber + 17; + this.modules = Array(this.moduleCount); + for (var d = 0; d < this.moduleCount; d++) { + this.modules[d] = Array(this.moduleCount); + for (var b = 0; b < this.moduleCount; b++) this.modules[d][b] = null + } + this.setupPositionProbePattern(0, 0); + this.setupPositionProbePattern(this.moduleCount - + 7, 0); + this.setupPositionProbePattern(0, this.moduleCount - 7); + this.setupPositionAdjustPattern(); + this.setupTimingPattern(); + this.setupTypeInfo(a, c); + 7 <= this.typeNumber && this.setupTypeNumber(a); + null == this.dataCache && (this.dataCache = o.createData(this.typeNumber, this.errorCorrectLevel, this.dataList)); + this.mapData(this.dataCache, c) + }, + setupPositionProbePattern: function(a, c) { + for (var d = -1; 7 >= d; d++) + if (!(-1 >= a + d || this.moduleCount <= a + d)) + for (var b = -1; 7 >= b; b++) - 1 >= c + b || this.moduleCount <= c + b || (this.modules[a + d][c + b] = + 0 <= d && 6 >= d && (0 == b || 6 == b) || 0 <= b && 6 >= b && (0 == d || 6 == d) || 2 <= d && 4 >= d && 2 <= b && 4 >= b ? !0 : !1) + }, + getBestMaskPattern: function() { + for (var a = 0, c = 0, d = 0; 8 > d; d++) { + this.makeImpl(!0, d); + var b = j.getLostPoint(this); + if (0 == d || a > b) a = b, c = d + } + return c + }, + createMovieClip: function(a, c, d) { + a = a.createEmptyMovieClip(c, d); + this.make(); + for (c = 0; c < this.modules.length; c++) + for (var d = 1 * c, b = 0; b < this.modules[c].length; b++) { + var e = 1 * b; + this.modules[c][b] && (a.beginFill(0, 100), a.moveTo(e, d), a.lineTo(e + 1, d), a.lineTo(e + 1, d + 1), a.lineTo(e, d + 1), a.endFill()) + } + return a + }, + setupTimingPattern: function() { + for (var a = 8; a < this.moduleCount - 8; a++) null == this.modules[a][6] && (this.modules[a][6] = 0 == a % 2); + for (a = 8; a < this.moduleCount - 8; a++) null == this.modules[6][a] && (this.modules[6][a] = 0 == a % 2) + }, + setupPositionAdjustPattern: function() { + for (var a = j.getPatternPosition(this.typeNumber), c = 0; c < a.length; c++) + for (var d = 0; d < a.length; d++) { + var b = a[c], + e = a[d]; + if (null == this.modules[b][e]) + for (var f = -2; 2 >= f; f++) + for (var i = -2; 2 >= i; i++) this.modules[b + f][e + i] = -2 == f || 2 == f || -2 == i || 2 == i || 0 == f && 0 == i ? !0 : !1 + } + }, + setupTypeNumber: function(a) { + for (var c = + j.getBCHTypeNumber(this.typeNumber), d = 0; 18 > d; d++) { + var b = !a && 1 == (c >> d & 1); + this.modules[Math.floor(d / 3)][d % 3 + this.moduleCount - 8 - 3] = b + } + for (d = 0; 18 > d; d++) b = !a && 1 == (c >> d & 1), this.modules[d % 3 + this.moduleCount - 8 - 3][Math.floor(d / 3)] = b + }, + setupTypeInfo: function(a, c) { + for (var d = j.getBCHTypeInfo(this.errorCorrectLevel << 3 | c), b = 0; 15 > b; b++) { + var e = !a && 1 == (d >> b & 1); + 6 > b ? this.modules[b][8] = e : 8 > b ? this.modules[b + 1][8] = e : this.modules[this.moduleCount - 15 + b][8] = e + } + for (b = 0; 15 > b; b++) e = !a && 1 == (d >> b & 1), 8 > b ? this.modules[8][this.moduleCount - + b - 1 + ] = e : 9 > b ? this.modules[8][15 - b - 1 + 1] = e : this.modules[8][15 - b - 1] = e; + this.modules[this.moduleCount - 8][8] = !a + }, + mapData: function(a, c) { + for (var d = -1, b = this.moduleCount - 1, e = 7, f = 0, i = this.moduleCount - 1; 0 < i; i -= 2) + for (6 == i && i--;;) { + for (var g = 0; 2 > g; g++) + if (null == this.modules[b][i - g]) { + var n = !1; + f < a.length && (n = 1 == (a[f] >>> e & 1)); + j.getMask(c, b, i - g) && (n = !n); + this.modules[b][i - g] = n; + e--; - 1 == e && (f++, e = 7) + } + b += d; + if (0 > b || this.moduleCount <= b) { + b -= d; + d = -d; + break + } + } + } + }; + o.PAD0 = 236; + o.PAD1 = 17; + o.createData = function(a, c, d) { + for (var c = p.getRSBlocks(a, + c), b = new t, e = 0; e < d.length; e++) { + var f = d[e]; + b.put(f.mode, 4); + b.put(f.getLength(), j.getLengthInBits(f.mode, a)); + f.write(b) + } + for (e = a = 0; e < c.length; e++) a += c[e].dataCount; + if (b.getLengthInBits() > 8 * a) throw Error("code length overflow. (" + b.getLengthInBits() + ">" + 8 * a + ")"); + for (b.getLengthInBits() + 4 <= 8 * a && b.put(0, 4); 0 != b.getLengthInBits() % 8;) b.putBit(!1); + for (; !(b.getLengthInBits() >= 8 * a);) { + b.put(o.PAD0, 8); + if (b.getLengthInBits() >= 8 * a) break; + b.put(o.PAD1, 8) + } + return o.createBytes(b, c) + }; + o.createBytes = function(a, c) { + for (var d = + 0, b = 0, e = 0, f = Array(c.length), i = Array(c.length), g = 0; g < c.length; g++) { + var n = c[g].dataCount, + h = c[g].totalCount - n, + b = Math.max(b, n), + e = Math.max(e, h); + f[g] = Array(n); + for (var k = 0; k < f[g].length; k++) f[g][k] = 255 & a.buffer[k + d]; + d += n; + k = j.getErrorCorrectPolynomial(h); + n = (new q(f[g], k.getLength() - 1)).mod(k); + i[g] = Array(k.getLength() - 1); + for (k = 0; k < i[g].length; k++) h = k + n.getLength() - i[g].length, i[g][k] = 0 <= h ? n.get(h) : 0 + } + for (k = g = 0; k < c.length; k++) g += c[k].totalCount; + d = Array(g); + for (k = n = 0; k < b; k++) + for (g = 0; g < c.length; g++) k < f[g].length && + (d[n++] = f[g][k]); + for (k = 0; k < e; k++) + for (g = 0; g < c.length; g++) k < i[g].length && (d[n++] = i[g][k]); + return d + }; + s = 4; + for (var j = { + PATTERN_POSITION_TABLE: [ + [], + [6, 18], + [6, 22], + [6, 26], + [6, 30], + [6, 34], + [6, 22, 38], + [6, 24, 42], + [6, 26, 46], + [6, 28, 50], + [6, 30, 54], + [6, 32, 58], + [6, 34, 62], + [6, 26, 46, 66], + [6, 26, 48, 70], + [6, 26, 50, 74], + [6, 30, 54, 78], + [6, 30, 56, 82], + [6, 30, 58, 86], + [6, 34, 62, 90], + [6, 28, 50, 72, 94], + [6, 26, 50, 74, 98], + [6, 30, 54, 78, 102], + [6, 28, 54, 80, 106], + [6, 32, 58, 84, 110], + [6, 30, 58, 86, 114], + [6, 34, 62, 90, 118], + [6, 26, 50, 74, 98, 122], + [6, 30, 54, 78, 102, 126], + [6, 26, 52, + 78, 104, 130 + ], + [6, 30, 56, 82, 108, 134], + [6, 34, 60, 86, 112, 138], + [6, 30, 58, 86, 114, 142], + [6, 34, 62, 90, 118, 146], + [6, 30, 54, 78, 102, 126, 150], + [6, 24, 50, 76, 102, 128, 154], + [6, 28, 54, 80, 106, 132, 158], + [6, 32, 58, 84, 110, 136, 162], + [6, 26, 54, 82, 110, 138, 166], + [6, 30, 58, 86, 114, 142, 170] + ], + G15: 1335, + G18: 7973, + G15_MASK: 21522, + getBCHTypeInfo: function(a) { + for (var c = a << 10; 0 <= j.getBCHDigit(c) - j.getBCHDigit(j.G15);) c ^= j.G15 << j.getBCHDigit(c) - j.getBCHDigit(j.G15); + return (a << 10 | c) ^ j.G15_MASK + }, + getBCHTypeNumber: function(a) { + for (var c = a << 12; 0 <= j.getBCHDigit(c) - + j.getBCHDigit(j.G18);) c ^= j.G18 << j.getBCHDigit(c) - j.getBCHDigit(j.G18); + return a << 12 | c + }, + getBCHDigit: function(a) { + for (var c = 0; 0 != a;) c++, a >>>= 1; + return c + }, + getPatternPosition: function(a) { + return j.PATTERN_POSITION_TABLE[a - 1] + }, + getMask: function(a, c, d) { + switch (a) { + case 0: + return 0 == (c + d) % 2; + case 1: + return 0 == c % 2; + case 2: + return 0 == d % 3; + case 3: + return 0 == (c + d) % 3; + case 4: + return 0 == (Math.floor(c / 2) + Math.floor(d / 3)) % 2; + case 5: + return 0 == c * d % 2 + c * d % 3; + case 6: + return 0 == (c * d % 2 + c * d % 3) % 2; + case 7: + return 0 == (c * d % 3 + (c + d) % 2) % 2; + default: + throw Error("bad maskPattern:" + + a); + } + }, + getErrorCorrectPolynomial: function(a) { + for (var c = new q([1], 0), d = 0; d < a; d++) c = c.multiply(new q([1, l.gexp(d)], 0)); + return c + }, + getLengthInBits: function(a, c) { + if (1 <= c && 10 > c) switch (a) { + case 1: + return 10; + case 2: + return 9; + case s: + return 8; + case 8: + return 8; + default: + throw Error("mode:" + a); + } else if (27 > c) switch (a) { + case 1: + return 12; + case 2: + return 11; + case s: + return 16; + case 8: + return 10; + default: + throw Error("mode:" + a); + } else if (41 > c) switch (a) { + case 1: + return 14; + case 2: + return 13; + case s: + return 16; + case 8: + return 12; + default: + throw Error("mode:" + + a); + } else throw Error("type:" + c); + }, + getLostPoint: function(a) { + for (var c = a.getModuleCount(), d = 0, b = 0; b < c; b++) + for (var e = 0; e < c; e++) { + for (var f = 0, i = a.isDark(b, e), g = -1; 1 >= g; g++) + if (!(0 > b + g || c <= b + g)) + for (var h = -1; 1 >= h; h++) 0 > e + h || c <= e + h || 0 == g && 0 == h || i == a.isDark(b + g, e + h) && f++; + 5 < f && (d += 3 + f - 5) + } + for (b = 0; b < c - 1; b++) + for (e = 0; e < c - 1; e++) + if (f = 0, a.isDark(b, e) && f++, a.isDark(b + 1, e) && f++, a.isDark(b, e + 1) && f++, a.isDark(b + 1, e + 1) && f++, 0 == f || 4 == f) d += 3; + for (b = 0; b < c; b++) + for (e = 0; e < c - 6; e++) a.isDark(b, e) && !a.isDark(b, e + 1) && a.isDark(b, e + + 2) && a.isDark(b, e + 3) && a.isDark(b, e + 4) && !a.isDark(b, e + 5) && a.isDark(b, e + 6) && (d += 40); + for (e = 0; e < c; e++) + for (b = 0; b < c - 6; b++) a.isDark(b, e) && !a.isDark(b + 1, e) && a.isDark(b + 2, e) && a.isDark(b + 3, e) && a.isDark(b + 4, e) && !a.isDark(b + 5, e) && a.isDark(b + 6, e) && (d += 40); + for (e = f = 0; e < c; e++) + for (b = 0; b < c; b++) a.isDark(b, e) && f++; + a = Math.abs(100 * f / c / c - 50) / 5; + return d + 10 * a + } + }, l = { + glog: function(a) { + if (1 > a) throw Error("glog(" + a + ")"); + return l.LOG_TABLE[a] + }, + gexp: function(a) { + for (; 0 > a;) a += 255; + for (; 256 <= a;) a -= 255; + return l.EXP_TABLE[a] + }, + EXP_TABLE: Array(256), + LOG_TABLE: Array(256) + }, m = 0; 8 > m; m++) l.EXP_TABLE[m] = 1 << m; + for (m = 8; 256 > m; m++) l.EXP_TABLE[m] = l.EXP_TABLE[m - 4] ^ l.EXP_TABLE[m - 5] ^ l.EXP_TABLE[m - 6] ^ l.EXP_TABLE[m - 8]; + for (m = 0; 255 > m; m++) l.LOG_TABLE[l.EXP_TABLE[m]] = m; + q.prototype = { + get: function(a) { + return this.num[a] + }, + getLength: function() { + return this.num.length + }, + multiply: function(a) { + for (var c = Array(this.getLength() + a.getLength() - 1), d = 0; d < this.getLength(); d++) + for (var b = 0; b < a.getLength(); b++) c[d + b] ^= l.gexp(l.glog(this.get(d)) + l.glog(a.get(b))); + return new q(c, 0) + }, + mod: function(a) { + if (0 > + this.getLength() - a.getLength()) return this; + for (var c = l.glog(this.get(0)) - l.glog(a.get(0)), d = Array(this.getLength()), b = 0; b < this.getLength(); b++) d[b] = this.get(b); + for (b = 0; b < a.getLength(); b++) d[b] ^= l.gexp(l.glog(a.get(b)) + c); + return (new q(d, 0)).mod(a) + } + }; + p.RS_BLOCK_TABLE = [ + [1, 26, 19], + [1, 26, 16], + [1, 26, 13], + [1, 26, 9], + [1, 44, 34], + [1, 44, 28], + [1, 44, 22], + [1, 44, 16], + [1, 70, 55], + [1, 70, 44], + [2, 35, 17], + [2, 35, 13], + [1, 100, 80], + [2, 50, 32], + [2, 50, 24], + [4, 25, 9], + [1, 134, 108], + [2, 67, 43], + [2, 33, 15, 2, 34, 16], + [2, 33, 11, 2, 34, 12], + [2, 86, 68], + [4, 43, 27], + [4, 43, 19], + [4, 43, 15], + [2, 98, 78], + [4, 49, 31], + [2, 32, 14, 4, 33, 15], + [4, 39, 13, 1, 40, 14], + [2, 121, 97], + [2, 60, 38, 2, 61, 39], + [4, 40, 18, 2, 41, 19], + [4, 40, 14, 2, 41, 15], + [2, 146, 116], + [3, 58, 36, 2, 59, 37], + [4, 36, 16, 4, 37, 17], + [4, 36, 12, 4, 37, 13], + [2, 86, 68, 2, 87, 69], + [4, 69, 43, 1, 70, 44], + [6, 43, 19, 2, 44, 20], + [6, 43, 15, 2, 44, 16], + [4, 101, 81], + [1, 80, 50, 4, 81, 51], + [4, 50, 22, 4, 51, 23], + [3, 36, 12, 8, 37, 13], + [2, 116, 92, 2, 117, 93], + [6, 58, 36, 2, 59, 37], + [4, 46, 20, 6, 47, 21], + [7, 42, 14, 4, 43, 15], + [4, 133, 107], + [8, 59, 37, 1, 60, 38], + [8, 44, 20, 4, 45, 21], + [12, 33, 11, 4, 34, 12], + [3, 145, 115, 1, 146, + 116 + ], + [4, 64, 40, 5, 65, 41], + [11, 36, 16, 5, 37, 17], + [11, 36, 12, 5, 37, 13], + [5, 109, 87, 1, 110, 88], + [5, 65, 41, 5, 66, 42], + [5, 54, 24, 7, 55, 25], + [11, 36, 12], + [5, 122, 98, 1, 123, 99], + [7, 73, 45, 3, 74, 46], + [15, 43, 19, 2, 44, 20], + [3, 45, 15, 13, 46, 16], + [1, 135, 107, 5, 136, 108], + [10, 74, 46, 1, 75, 47], + [1, 50, 22, 15, 51, 23], + [2, 42, 14, 17, 43, 15], + [5, 150, 120, 1, 151, 121], + [9, 69, 43, 4, 70, 44], + [17, 50, 22, 1, 51, 23], + [2, 42, 14, 19, 43, 15], + [3, 141, 113, 4, 142, 114], + [3, 70, 44, 11, 71, 45], + [17, 47, 21, 4, 48, 22], + [9, 39, 13, 16, 40, 14], + [3, 135, 107, 5, 136, 108], + [3, 67, 41, 13, 68, 42], + [15, 54, 24, 5, 55, 25], + [15, + 43, 15, 10, 44, 16 + ], + [4, 144, 116, 4, 145, 117], + [17, 68, 42], + [17, 50, 22, 6, 51, 23], + [19, 46, 16, 6, 47, 17], + [2, 139, 111, 7, 140, 112], + [17, 74, 46], + [7, 54, 24, 16, 55, 25], + [34, 37, 13], + [4, 151, 121, 5, 152, 122], + [4, 75, 47, 14, 76, 48], + [11, 54, 24, 14, 55, 25], + [16, 45, 15, 14, 46, 16], + [6, 147, 117, 4, 148, 118], + [6, 73, 45, 14, 74, 46], + [11, 54, 24, 16, 55, 25], + [30, 46, 16, 2, 47, 17], + [8, 132, 106, 4, 133, 107], + [8, 75, 47, 13, 76, 48], + [7, 54, 24, 22, 55, 25], + [22, 45, 15, 13, 46, 16], + [10, 142, 114, 2, 143, 115], + [19, 74, 46, 4, 75, 47], + [28, 50, 22, 6, 51, 23], + [33, 46, 16, 4, 47, 17], + [8, 152, 122, 4, 153, 123], + [22, 73, 45, + 3, 74, 46 + ], + [8, 53, 23, 26, 54, 24], + [12, 45, 15, 28, 46, 16], + [3, 147, 117, 10, 148, 118], + [3, 73, 45, 23, 74, 46], + [4, 54, 24, 31, 55, 25], + [11, 45, 15, 31, 46, 16], + [7, 146, 116, 7, 147, 117], + [21, 73, 45, 7, 74, 46], + [1, 53, 23, 37, 54, 24], + [19, 45, 15, 26, 46, 16], + [5, 145, 115, 10, 146, 116], + [19, 75, 47, 10, 76, 48], + [15, 54, 24, 25, 55, 25], + [23, 45, 15, 25, 46, 16], + [13, 145, 115, 3, 146, 116], + [2, 74, 46, 29, 75, 47], + [42, 54, 24, 1, 55, 25], + [23, 45, 15, 28, 46, 16], + [17, 145, 115], + [10, 74, 46, 23, 75, 47], + [10, 54, 24, 35, 55, 25], + [19, 45, 15, 35, 46, 16], + [17, 145, 115, 1, 146, 116], + [14, 74, 46, 21, 75, 47], + [29, 54, 24, 19, + 55, 25 + ], + [11, 45, 15, 46, 46, 16], + [13, 145, 115, 6, 146, 116], + [14, 74, 46, 23, 75, 47], + [44, 54, 24, 7, 55, 25], + [59, 46, 16, 1, 47, 17], + [12, 151, 121, 7, 152, 122], + [12, 75, 47, 26, 76, 48], + [39, 54, 24, 14, 55, 25], + [22, 45, 15, 41, 46, 16], + [6, 151, 121, 14, 152, 122], + [6, 75, 47, 34, 76, 48], + [46, 54, 24, 10, 55, 25], + [2, 45, 15, 64, 46, 16], + [17, 152, 122, 4, 153, 123], + [29, 74, 46, 14, 75, 47], + [49, 54, 24, 10, 55, 25], + [24, 45, 15, 46, 46, 16], + [4, 152, 122, 18, 153, 123], + [13, 74, 46, 32, 75, 47], + [48, 54, 24, 14, 55, 25], + [42, 45, 15, 32, 46, 16], + [20, 147, 117, 4, 148, 118], + [40, 75, 47, 7, 76, 48], + [43, 54, 24, 22, 55, 25], + [10, + 45, 15, 67, 46, 16 + ], + [19, 148, 118, 6, 149, 119], + [18, 75, 47, 31, 76, 48], + [34, 54, 24, 34, 55, 25], + [20, 45, 15, 61, 46, 16] + ]; + p.getRSBlocks = function(a, c) { + var d = p.getRsBlockTable(a, c); + if (void 0 == d) throw Error("bad rs block @ typeNumber:" + a + "/errorCorrectLevel:" + c); + for (var b = d.length / 3, e = [], f = 0; f < b; f++) + for (var h = d[3 * f + 0], g = d[3 * f + 1], j = d[3 * f + 2], l = 0; l < h; l++) e.push(new p(g, j)); + return e + }; + p.getRsBlockTable = function(a, c) { + switch (c) { + case 1: + return p.RS_BLOCK_TABLE[4 * (a - 1) + 0]; + case 0: + return p.RS_BLOCK_TABLE[4 * (a - 1) + 1]; + case 3: + return p.RS_BLOCK_TABLE[4 * + (a - 1) + 2]; + case 2: + return p.RS_BLOCK_TABLE[4 * (a - 1) + 3] + } + }; + t.prototype = { + get: function(a) { + return 1 == (this.buffer[Math.floor(a / 8)] >>> 7 - a % 8 & 1) + }, + put: function(a, c) { + for (var d = 0; d < c; d++) this.putBit(1 == (a >>> c - d - 1 & 1)) + }, + getLengthInBits: function() { + return this.length + }, + putBit: function(a) { + var c = Math.floor(this.length / 8); + this.buffer.length <= c && this.buffer.push(0); + a && (this.buffer[c] |= 128 >>> this.length % 8); + this.length++ + } + }; + "string" === typeof h && (h = { + text: h + }); + h = r.extend({}, { + render: "canvas", + width: 256, + height: 256, + typeNumber: -1, + correctLevel: 2, + background: "#ffffff", + foreground: "#000000" + }, h); + return this.each(function() { + var a; + if ("canvas" == h.render) { + a = new o(h.typeNumber, h.correctLevel); + a.addData(h.text); + a.make(); + var c = document.createElement("canvas"); + c.width = h.width; + c.height = h.height; + for (var d = c.getContext("2d"), b = h.width / a.getModuleCount(), e = h.height / a.getModuleCount(), f = 0; f < a.getModuleCount(); f++) + for (var i = 0; i < a.getModuleCount(); i++) { + d.fillStyle = a.isDark(f, i) ? h.foreground : h.background; + var g = Math.ceil((i + 1) * b) - Math.floor(i * b), + j = Math.ceil((f + 1) * b) - Math.floor(f * b); + d.fillRect(Math.round(i * b), Math.round(f * e), g, j) + } + } else { + a = new o(h.typeNumber, h.correctLevel); + a.addData(h.text); + a.make(); + c = r("<table></table>").css("width", h.width + "px").css("height", h.height + "px").css("border", "0px").css("border-collapse", "collapse").css("background-color", h.background); + d = h.width / a.getModuleCount(); + b = h.height / a.getModuleCount(); + for (e = 0; e < a.getModuleCount(); e++) { + f = r("<tr></tr>").css("height", b + "px").appendTo(c); + for (i = 0; i < a.getModuleCount(); i++) r("<td></td>").css("width", + d + "px").css("background-color", a.isDark(e, i) ? h.foreground : h.background).appendTo(f) + } + } + a = c; + jQuery(a).appendTo(this) + }) + } +})(jQuery); +/* jscs: enable */ +/* jshint ignore:end */ +}); +define("js/about/entry", ["jquery","jquery.placeholder","handlebars","source-map"], function(require, exports, module){ +/** + * 逛打包入口 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/4/14 + */ + +require("js/about/settled"); + +}); +define("js/about/settled", ["jquery","jquery.placeholder","handlebars","source-map"], function(require, exports, module){ +/** + * 商家入驻 + * @author: xuqi<qi.xu@yoho> + * @date: 2016/3/24 + */ + +var $ = require("jquery"); + +var reg = require("js/passport/mail-phone-regx"); + +require("jquery.placeholder"); +require("plugin/jquery.qupload"); + +//入口页 +(function() { + var $mask, + $dialog; + + if ($('.settled-page').length === 0) { + return; + } + + $mask = $('#mask'); + $dialog = $('#notice-container'); + + function showNotice() { + var wh = $(window).height(); + + $mask.removeClass('hide'); + $dialog.css({ + 'max-height': wh - 60 + }).removeClass('hide'); + } + + function hideNotice() { + $mask.addClass('hide'); + $dialog.addClass('hide'); + } + + $('#fake-link').click(showNotice); + + $('#fake-close').click(hideNotice); + $('#mask').click(hideNotice); +}()); + +//申请页 +(function() { + var $otherBr, + $otherNp, + $otherRp, + $categoryUl, + $shopListTr, + $shops, + $panel; + + var $postcode, + $email, + $phoneNum, + $upKey, + $styleCount; + + var categoryHtml = $('#category-tpl').html(); + + var Dialog = require("js/common/dialog").Dialog; + var successDialog, + SWFUpload = window.SWFUpload, + upKey; + + if ($('.settled-apply-page').length < 0) { + return; + } + + $('[placeholder]').placeholder(); + + $otherBr = $('#other-brand-relation'); + $otherNp = $('#other-new-period'); + $otherRp = $('#other-replenishment-period'); + $categoryUl = $('#category-list'); + $shopListTr = $('#shop-list'); + $shops = $('#shops'); + $panel = $('#mask, #submit-success'); + + $postcode = $('#postcode'); + $email = $('#email'); + $phoneNum = $('#phone-number'); + $upKey = $('#upload-key'); + $styleCount = $('#style-count'); + upKey = $upKey.val(); + $upKey.remove(); + + function initUpload(arr) { + $.each(arr, function(k, v) { + $('#' + v.dom).qupload({ + uploadKey: upKey, + button_image_url: '', + button_text: '<span class="btn_upload_text">上传</span>', + button_text_style: + '.btn_upload_text{color:#000;margin-left:30px;' + + 'line-height: 2em;font-size:14px;}', + button_text_left_padding: 32, + button_text_top_padding: 8, + button_width: 160, + button_height: 35, + button_action: SWFUpload.BUTTON_ACTION.SELECT_FILE,//单选 + file_size_limit: '10240', + file_types: v.type, + uploadSuccessed: function(serverData) { + var data = JSON.parse(serverData); + + if (data.code !== 12) { + alert(data.message); + return false; + } + v.callback(data.data.hit.Filedata.return_file_path); + } + }); + }); + } + + function validate() { + var pass = true, + postcodeReg = /[0-9]\d{5}(?!\d)/, + emailReg = reg.emailRegx, + phoneReg = reg.phoneRegx['+86'], + styleCountReg = /^(0|[1-9][0-9]*)$/; + + $('.va, .category-item select, .for-other, .category-item').removeClass('error'); + + $('.va-null').each(function() { + if ($(this).val() === '') { + $(this).addClass('error'); + pass = false; + } + }); + + if ($postcode.val() === '' || !postcodeReg.test($postcode.val())) { + $postcode.addClass('error'); + pass = false; + } + + if ($email.val() === '' || !emailReg.test($email.val())) { + $email.addClass('error'); + pass = false; + } + + if ($phoneNum.val() === '' || !(phoneReg.test($phoneNum.val()))) { + $phoneNum.addClass('error'); + pass = false; + } + + if ($styleCount.val() === '' || !(styleCountReg.test($styleCount.val()))) { + $styleCount.addClass('error'); + pass = false; + } + + $('.category-item').each(function() { + if ($(this).get(0).selectedIndex === 0) { + $(this).addClass('error'); + pass = false; + } + }); + + if ($('input[name="seller-role"]:checked').index() === 3 && + $otherBr.val() === '') { + pass = false; + $otherBr.addClass('error'); + } + + if ($('input[name="new_cycle"]:checked').index() === 5 && + $otherNp.val() === '') { + pass = false; + $otherNp.addClass('error'); + } + + if ($('input[name="supply_cycle"]:checked').index() === 5 && + $otherRp.val() === '') { + pass = false; + $otherRp.addClass('error'); + } + + return pass; + } + + function addCategoryUI() { + $categoryUl.closest('tr').removeClass('hide'); + $categoryUl.append('<li>' + categoryHtml + '</li>'); + } + + //获取二级分类的方法 + function getCategoryTwo() { + var id = $(this).val(); + var $categoryTwo = $(this).parent().find('.category-two'); + var html = '<option>选择二级分类</option>'; + + if (id === '') { + $categoryTwo.html(html); + return; + } + + $.ajax({ + url: '/shop/settled/getTwoCategory', + type: 'GET', + data: { + id: id + } + }).then(function(data) { + var res = []; + var key; + + if (data.code === 200) { + res = data.data; + for (key = 0; key < res.length; key++) { + html += '<option value="' + res[key].id + '" >' + res[key].name + '</option>'; + } + } + $categoryTwo.html(html); + }); + } + + // 初始化上传插件 + initUpload([ + { + dom: 'upload-brand-material', + type: '*.ppt;*.pdf;*.zip;*.rar', + callback: function(data) { + $('#brand-material').val(data); + $('.brand-tip').html('上传成功'); + alert('上传成功!'); + } + }, + { + dom: 'upload-goods-material', + type: '*.xls;*.xlsx;*.zip;*.rar', + callback: function(data) { + $('#goods-material').val(data); + $('.goods-tip').html('上传成功'); + alert('上传成功!'); + } + } + ]); + + // 提交成功 + if (location.search.indexOf('state=1') > -1) { + successDialog = new Dialog({ + className: 'settled-success', + closeIcon: false, + content: '<h1 class="main-title">恭喜您已提交成功</h1><h2 class="sub-title">我们将尽快与您联系</h2>', + btns: [ + { + id: 'apply-success-ok', + btnClass: ['apply-success-ok'], + name: '确认', + cb: function() { + location.href = '/shop/settled/index'; + } + } + ] + }); + successDialog.show(); + return; + } + + $('input[name="seller_role"]').change(function() { + if ($(this).index() === 3) { + $otherBr.removeClass('hide'); + } else { + $otherBr.addClass('hide'); + } + }); + + $('input[name="new-cycle"]').change(function() { + if ($(this).index() === 5) { + $otherNp.removeClass('hide'); + } else { + $otherNp.addClass('hide'); + } + }); + + $('input[name="supply-cycle"]').change(function() { + if ($(this).index() === 5) { + $otherRp.removeClass('hide'); + } else { + $otherRp.addClass('hide'); + } + }); + + $('input[name="have-store"]').change(function() { + if ($(this).index() === 1) { + $shopListTr.addClass('hide'); + } else { + $shopListTr.removeClass('hide'); + } + }); + + $('.form-container').on('change', '.category-one', getCategoryTwo); + + $('#category-add').click(addCategoryUI); + + $shops.delegate('.shop-add', 'click', function() { + $shops.append( + '<li>' + + '<input class="shop-addres" name="store-address[]" type="text" placeholder="输入店铺地址">' + + '<span>月均销售:</span>' + + '<input class="shop-sales-volume" type="text" name="store-sales-volume[]" placeholder="输入价格">' + + '<span>元</span>' + + '</li>' + ); + }); + + $('#apply-post').click(function() { + var scrollTo; + + if (validate()) { + $panel.removeClass('hide'); + $('form').submit(); + } else { + $('.error').first().focus(); + scrollTo = $('.error').first().offset().top; + $(window).scrollTop(scrollTo - 10); + } + }); + + if (navigator.userAgent.indexOf('MSIE') >= 0) { + $('[placeholder]').focus(function() { + var $input = $(this); + + $input.removeClass('placeholder'); + }).blur(function() { + var $input = $(this); + + if ($input.val() === '') { + $input.addClass('placeholder'); + } + }); + } +}()); +}); +define("js/coupon/entry", ["jquery","lazyload","handlebars","source-map"], function(require, exports, module){ +/** + * 领券频道打包入口 + * @author: zhaobiao<biao.zhao@yoho.cn> + * @date: 2016/4/12 + */ + +require("js/coupon/coupon"); + +}); +define("js/coupon/coupon", ["jquery","lazyload","handlebars","source-map"], function(require, exports, module){ +/** + * 领券频道 + * @author: 赵彪<bill.zhao@yoho.cn> + * @date: 2016/04/14 + */ +var $ = require("jquery"), + lazyLoad = require("lazyload"), + Dialog = require("js/common/dialog").Dialog; + + +var alertConfig, + makeAlert; + +// j面跳转对象 +var redirect = { + + // 去逛逛跳转链接 + gunangSrc: null, + + // 查看优惠券跳转链接 + checkCouponSrc: null, + goToGuang: function() { + window.location.href = this.gunangSrc; + }, + goToCheck: function() { + window.location.href = this.checkCouponSrc; + }, + + // 处理网络返回 + 403: function(url) { + window.location.href = url; + }, + 200: function(url) { + this.checkCouponSrc = url; + } +}; + +//加载底部图片 +lazyLoad($('img.lazy')); + +require("js/common/slider"); + + +$('.slide-container').slider(); + +// 根据配置执行展示弹窗 +function couponAlert(opt) { + var newAlert = new Dialog(opt); + + newAlert.show(); +} + +// 配置弹窗 +alertConfig = { + success: { + content: '恭喜您,成功领取优惠券', + subContents: ['特殊情况下到账有延时', '请耐心等待'], + className: 'subcontent-dialog', + refreshOnClose: true, + btns: [ + { + id: 1, + name: '去购物啦', + btnClass: ['black', 'btn-close'], + cb: function() { + redirect.goToGuang(); + } + }, + { + id: 2, + name: '查看优惠券', + btnClass: ['btn-close'], + cb: function() { + redirect.goToCheck(); + } + } + ] + }, + alreadyGot: { + content: '您已领取过优惠券', + subContent: '快去选购心仪的潮品吧', + className: 'subcontent-dialog', + btns: [ + { + id: 1, + name: '去使用', + btnClass: ['btn-close'], + cb: function() { + redirect.goToGuang(); + } + } + ] + }, + expired: { + content: '优惠券已过期', + subContent: '去领最新的优惠券吧', + className: 'subcontent-dialog', + btns: [ + { + id: 1, + name: '关闭', + btnClass: ['btn-close'] + } + ] + }, + failed: { + content: '领取失败', + subContents: ['请刷新重试,', '多次无效请联系客服'], + className: 'subcontent-dialog', + btns: [ + { + id: 1, + name: '刷新', + btnClass: ['btn-close'], + cb: function() { + window.location.reload(); + } + } + ] + } +}; + +// 对应不同的网络返回码展示不同的弹窗 +makeAlert = { + 200: function() { + couponAlert(alertConfig.success); + }, + 401: function() { + couponAlert(alertConfig.alreadyGot); + }, + 315: function() { + couponAlert(alertConfig.expired); + }, + 400: function() { + couponAlert(alertConfig.failed); + }, + 403: function() { + + // do not make alert when user are not login in + } +}; + +function requestCoupon(id) { + $.ajax({ + type: 'GET', + url: '/coupon/sendcoupon', + data: { + id: id + }, + success: function(res) { + var code = res.code; + + // 如果返回的数据里有url,则执行redirect里的方法 + res.url && res.url.length > 0 && redirect[code] && redirect[code](res.url + '?'+ location.href.split('?')[1]); + + // 如果能找到对应code则执行相应方法,如果没有的对应code则执行error提示 + makeAlert[code] ? makeAlert[code]() : makeAlert['400'](); + + }, + error: function(err) { + var Alert = require("js/common/dialog").Alert; + + new Alert('网络异常').show(); + } + }); +} + +$('.enable .info').on('click', function(e) { + e.preventDefault(); + requestCoupon($(this).closest('a').data('id')); + redirect.gunangSrc = $(this).closest('a').get(0).href; +}); + +}); diff --git a/web-static/dist/yohobuy/4.6.3/index.css b/web-static/dist/yohobuy/4.6.3/index.css new file mode 100644 index 0000000..527e111 --- /dev/null +++ b/web-static/dist/yohobuy/4.6.3/index.css @@ -0,0 +1 @@ +@charset "utf-8";a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:baseline}html{line-height:1}ol,ul{list-style:none}table{border-collapse:collapse;border-spacing:0}caption,td,th{text-align:left;font-weight:400;vertical-align:middle}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}a img{border:none}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}.clearfix:after{content:'';display:table;clear:both}body{font-family:arial,Microsoft YaHei}@font-face{font-family:iconfont;src:url(../assets/font/iconfont.eot?v1559f4c2ba4);src:url(../assets/font/iconfont.eot?v1559f4c2ba4#iefix) format('embedded-opentype'),url(../assets/font/iconfont.woff?v1559f4c3400) format('woff'),url(../assets/font/iconfont.ttf?v1559f4c33fe) format('truetype'),url(../assets/font/iconfont.svg?v1559f4c2bb7#iconfont) format('svg')}.iconfont{font-family:iconfont!important;font-size:16px;font-style:normal;text-decoration:none;-webkit-font-smoothing:antialiased;-webkit-text-stroke-width:.2px;-moz-osx-font-smoothing:grayscale}.center-content{width:1150px;margin-left:auto;margin-right:auto}.min-screen .center-content{width:990px}.left,.pull-left{float:left}.pull-right,.right{float:right}.center{text-align:center}.hide{display:none!important}a:focus,input,textarea{outline:none}a{text-decoration:none;color:#000}.body-mask{position:absolute;z-index:9;background:#000;opacity:.2;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=20)";top:0;left:0}.yoho-notice{width:100%;height:100px;font-size:12px;background-color:#555;font-family:微软雅黑}.yoho-notice .notice-title{height:100px;line-height:100px;font-size:27px;font-weight:700;color:#fff;width:245px;position:absolute}.yoho-notice .notice-content{padding:16px 0 0 300px;color:#e8e8e8}.yoho-notice .notice-content .tips{margin-bottom:10px}.yoho-notice .notice-content .detail{line-height:16px}.yoho-header .header-topwrapper{width:100%;background-color:#f4f4f4;min-width:1150px}.yoho-header .header-top{width:1150px;height:32px;line-height:32px;margin:0 auto;position:relative}.yoho-header #loginBox{display:none}.yoho-header .leftpart{position:relative;padding-left:5px;padding-right:5px}.yoho-header .leftpart:hover{background-color:#dcdcdc}.yoho-header .leftpart:hover .yohoproducts-list{display:block!important}.yoho-header .leftpart .acttags{background-color:#dcdcdc}.yoho-header .yohoproducts-list{position:absolute;display:none;width:170px;left:0;top:32px;background-color:#f4f4f4;padding-top:30px;padding-bottom:10px;padding-left:20px;z-index:19}.yoho-header .yohoproducts-item{height:14px;line-height:14px;margin-bottom:20px}.yoho-header .yohoproducts-item a{color:#9196a0;font-size:14px}.yoho-header .yohoproducts-item:hover a{color:#000}.yoho-header .rightpart{position:absolute;right:0;top:0}.yoho-header .rightpart .acttags{background-color:#dcdcdc}.yoho-header .rightpart .tag-seprate{border-color:#dcdcdc}.yoho-header .hi,.yoho-header .loginbar,.yoho-header .registbar{display:inline-block;float:left}.yoho-header .hi{color:#8e8e8e;font-size:12px}.yoho-header #loginBox a,.yoho-header #loginBox span,.yoho-header .header-yoho,.yoho-header .login-out,.yoho-header .loginbar,.yoho-header .registbar{color:#000;font-size:12px}.yoho-header .registbar{margin-left:7px}.yoho-header .tag-list-wrapper{margin-left:13px;float:left}.yoho-header .tag-list{margin-left:13px;height:34px}.yoho-header .tag-seprate{margin-top:11px;width:0;height:14px;display:inline-block;float:left;border-left:1px solid #dcdcdc}.yoho-header .tag-item{display:inline-block;float:left;line-height:32px;box-sizing:border-box;margin-left:-1px}.yoho-header .tag-item a{color:#8e8e8e;font-size:12px;display:inline-block}.yoho-header .tag-item span{display:inline-block}.yoho-header .myyoho{padding-right:10px;position:relative}.yoho-header .myyoho .tag-seprate{margin-right:12px}.yoho-header .myyoho-info{position:absolute;display:none;top:32px;left:-110px;width:300px;background-color:#f8f8f8;z-index:18}.yoho-header .myyoho-photo{overflow:hidden}.yoho-header .myyoho-photo img{display:block;margin:0 auto;width:63px;height:63px;border-radius:50%}.yoho-header .myyoho-info-header{margin:17px auto 0;width:257px;border-bottom:1px solid #dcdcdc;text-align:center;padding-bottom:15px}.yoho-header .user-email{margin-top:14px;color:#000;height:25px;line-height:20px;font-size:18px}.yoho-header .user-level{color:#000;height:20px;line-height:20px;font-size:18px}.yoho-header .user-level .leveldetail{color:#8cc4f9}.yoho-header .levelinfo{width:100%;padding-top:10px;clear:both;height:15px}.yoho-header .levelwrapper{width:150px;height:14px;background-color:#e2e2e2;margin-left:40px;position:relative}.yoho-header .levelspan{position:absolute;left:2px;height:14px;top:0;line-height:16px}.yoho-header .levelwrapper .integrate{height:14px;line-height:15px;background-color:#ceae64;text-align:left;padding-left:5px}.yoho-header .cardcate{font-size:14px;line-height:14px;margin-left:5px}.yoho-header .myyoho-info-content{margin:20px auto 0;padding-left:35px;padding-right:29px;border-bottom:1px solid #dcdcdc}.yoho-header .myyoho-info-content .item{height:12px;line-height:12px;margin-bottom:16px}.yoho-header .myyoho-info-content .item a{font-size:14px;color:#000}.yoho-header .myyoho-info-footer{height:51px;line-height:51px;text-align:center}.yoho-header .myyoho-info-footer a{color:#000;font-size:14px}.yoho-header .myorder{padding-right:10px}.yoho-header .myorder .tag-seprate{margin-right:11px}.yoho-header .mycollect{padding-right:11px}.yoho-header .mycollect .tag-seprate{margin-right:11px}.yoho-header .message{padding-right:10px}.yoho-header .message .tag-seprate{margin-right:11px}.yoho-header .phone{padding-right:8px;position:relative}.yoho-header .phone .tag-seprate{margin-right:10px}.yoho-header .qr{position:absolute;display:none;top:32px;left:-100px;width:231px;height:290px;background-color:#f8f8f8;z-index:19}.yoho-header .qr-img{position:relative;background-image:url(../assets/img/header/qr.png?v1559f4c3c92);background-repeat:no-repeat;background-size:100% 100%;margin:32px auto 15px;width:143px;height:147px}.yoho-header .qr-words{height:25px;line-height:25px;font-size:16px;text-align:center}.yoho-header .qr-more{margin-top:6px;line-height:25px;font-size:14px;text-align:center}.yoho-header .onlineserver .tag-seprate{margin-right:10px}.yoho-header .header-navwrapper{width:100%;height:130px;position:relative;min-width:1150px}.yoho-header .header-navcontent{width:1150px;height:130px;margin:0 auto}.yoho-header .first-nav-list{margin-top:45px}.yoho-header .first-nav-item{float:left;padding:8px 23px 0}.yoho-header .first-nav-item .menu-ico{width:84px;height:32px;display:block}.yoho-header .all a,.yoho-header .all span,.yoho-header .boys a,.yoho-header .boys span,.yoho-header .girls a,.yoho-header .girls span,.yoho-header .kids a,.yoho-header .kids span,.yoho-header .lifestyle a,.yoho-header .lifestyle span{color:#fff!important}.yoho-header .all{background-color:#5e4b3c}.yoho-header .all .sub-nav-wrapper{background-color:#000;display:block!important}.yoho-header .all .third-nav-wrapper{border-top:2px solid #000}.yoho-header .searchcateboys .searchinput{border:1px solid #3a3a3a}.yoho-header .searchcateboys .icon-search{background-color:#3a3a3a!important}.yoho-header .searchcategirls .searchinput{border:1px solid #ff88ae}.yoho-header .searchcategirls .icon-search{background-color:#ff88ae!important}.yoho-header .searchcatewoman .searchinput{border:1px solid #ff88ae}.yoho-header .searchcatewoman .icon-search{background-color:#ff88ae!important}.yoho-header .searchcatekids .searchinput{border:1px solid #7bd3f9!important}.yoho-header .searchcatekids .icon-search{background-color:#7bd3f9!important}.yoho-header .gobuyboys{background-position:0 0}.yoho-header .gobuyboys,.yoho-header .gobuygirls{background-image:url(../assets/img/sprite.header.png?v1559f4c4795)}.yoho-header .gobuygirls{background-position:-56px 0}.yoho-header .gobuykids{background-position:-28px 0}.yoho-header .gobuykids,.yoho-header .gobuylifestyle{background-image:url(../assets/img/sprite.header.png?v1559f4c4795)}.yoho-header .gobuylifestyle{background-position:0 -28px}.yoho-header .gobuyoutlets{background-image:url(../assets/img/sprite.header.png?v1559f4c4795);background-position:-28px -28px}.yoho-header .searchcatelifestyle .searchinput{border:1px solid #5e4b3c!important}.yoho-header .searchcatelifestyle .icon-search{background-color:#5e4b3c!important}.yoho-header .boys{background-color:#3a3a3a}.yoho-header .boys .sub-nav-wrapper{background-color:#3a3a3a;display:block!important}.yoho-header .boys .third-nav-wrapper{border-top:2px solid #3a3a3a}.yoho-header .girls{background-color:#ff88ae}.yoho-header .girls .sub-nav-wrapper{background-color:#ff88ae;display:block!important}.yoho-header .girls .third-nav-wrapper{border-top:2px solid #ff88ae}.yoho-header .kids{background-color:#7bd3f9}.yoho-header .kids .sub-nav-wrapper{background-color:#7bd3f9;display:block!important}.yoho-header .kids .third-nav-wrapper{border-top:2px solid #7bd3f9}.yoho-header .lifestyle{background-color:#5e4b3c}.yoho-header .lifestyle .sub-nav-wrapper{background-color:#5e4b3c;display:block!important}.yoho-header .lifestyle .third-nav-wrapper{border-top:2px solid #5e4b3c}.yoho-header .outlets>.sub-nav-wrapper{display:block!important}.yoho-header .name-cn{text-align:center;line-height:16px!important}.yoho-header .name-cn a{color:#000;font-size:16px!important}.yoho-header .name-en{text-align:center;line-height:14px!important;margin-bottom:6px}.yoho-header .name-en a{color:#8e8e8e;font-size:12px;line-height:14px!important;font-family:arial!important}.yoho-header .sub-nav-wrapper{display:none;height:40px;left:0;width:100%;position:absolute;z-index:11}.yoho-header .sub-nav-list{width:1150px;height:40px;margin:0 auto;overflow:hidden}.yoho-header .sub-nav-item{float:left;padding:12px 46px 12px 0;box-sizing:border-box;margin-right:38px}.yoho-header .sub-nav-item a{position:relative;color:#fff;font-size:14px;line-height:14px;display:inline-block}.yoho-header .sub-nav-item:last-child{margin-right:0!important}.yoho-header .newlogo{display:block;width:26px;height:12px;background-image:url(../assets/img/header/new.png?v1559f4c3c8f);background-repeat:no-repeat;position:absolute;right:-29px;top:-6px}.yoho-header .actsecondnav,.yoho-header .sub-nav-item:hover>a{padding-bottom:3px;border-bottom:2px solid #fff}.yoho-header .sub-nav-item:hover .third-nav-wrapper{display:block}.yoho-header .third-nav-wrapper{box-sizing:border-box;height:410px;position:absolute;left:0;top:38px;width:100%;min-width:1150px;display:none;z-index:17;padding-top:30px;padding-bottom:30px;background-color:#f8f8f8}.yoho-header .third-nav{width:1150px;height:100%;margin:0 auto}.yoho-header .category{width:880px;float:left;overflow:hidden}.yoho-header .category .thirdnavlist{box-sizing:border-box;width:220px;height:240px;float:left;padding-left:20px;border-right:1px solid #dcdcdc;padding-right:20px}.yoho-header .category-title{color:#000;font-size:16px;width:178px;padding-bottom:12px;border-bottom:1px solid #000;line-height:16px;margin-bottom:20px}.yoho-header .category-title a{color:#000!important}.yoho-header .category-list{margin-top:16px;margin-bottom:30px}.yoho-header .category-item{line-height:28px}.yoho-header .category-list a{color:#a1a1a1!important;font-size:14px}.yoho-header .category-list .category-item .hot{color:#e01!important;font-size:14px}.yoho-header .category-item-act a{color:#000!important}.yoho-header .showdetail{box-sizing:border-box;padding-left:19px;padding-right:19px;width:337px;height:250px;float:right}.yoho-header [class*=" icon-"],.yoho-header [class^=icon-]{display:inline-block;vertical-align:middle;background-repeat:none}.yoho-header .icon-hamburger{background-position:-56px -40px;width:13px;height:11px}.yoho-header .icon-hamburger,.yoho-header .icon-headphones{background-image:url(../assets/img/sprite.header.png?v1559f4c4795)}.yoho-header .icon-headphones{background-position:-84px 0;width:15px;height:10px;margin-top:2px}.yoho-header .icon-heart{background-position:-41px -56px;width:12px;height:11px}.yoho-header .icon-heart,.yoho-header .icon-mail{background-image:url(../assets/img/sprite.header.png?v1559f4c4795);margin-top:-2px}.yoho-header .icon-mail{background-position:-56px -28px;width:16px;height:10px}.yoho-header .icon-iphone{background-position:-84px 0;width:8px}.yoho-header .icon-iphone,.yoho-header .icon-papers{background-image:url(../assets/img/sprite.header.png?v1559f4c4795);height:14px;margin-top:-2px}.yoho-header .icon-papers{background-position:-29px -56px;width:10px}.yoho-header .icon-bottomarrow{background-image:url(../assets/img/sprite.header.png?v1559f4c4795);background-position:-71px -40px;width:10px;height:5px;margin-top:-2px}.yoho-header .outlets-logo{background:url(../assets/img/header/outlets.png?v1559f4c3c90) no-repeat 50%;width:200px;height:34px;left:42%;margin-top:28px;position:absolute;display:none}.yoho-header .icon-logo{background:url(../assets/img/header/logo.png?v1559f4c3c8d) no-repeat 50%;width:182px;height:53px;top:22px;left:44.2%;position:absolute}.yoho-header .icon-logo .main-link{display:block;width:100%;height:100%}.yoho-header .search{position:relative}.yoho-header .searchspan{margin-top:45px;float:left;display:inline-block;overflow:hidden}.yoho-header .searchinput{float:left;width:240px;height:28px;border:1px solid #000;box-sizing:border-box;padding:6px 0 5px 10px;border-right:none}.yoho-header .icon-search{background:url(../assets/img/header/search.png?v1559f4c3c93) no-repeat 50%;width:80px;height:28px;float:left;border:none;margin-top:45px;background-color:#3a3a3a}.yoho-header .search-list{position:absolute;top:73px;left:0;z-index:11;box-sizing:border-box;display:none;background-color:#fff;padding-top:20px;width:100%;max-height:500px;border-left:1px solid #000;border-right:1px solid #000;border-bottom:1px solid #000}.yoho-header .search-item{position:relative;padding:5px;height:25px;line-height:25px;font:12px}.yoho-header .search-item:hover{background-color:#f4f4f4}.yoho-header .searchvalue{position:absolute;left:10px;max-width:192px;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yoho-header .valuenum{position:absolute;right:10px;font-size:12px}.yoho-header .header-tool{padding-right:23px}.yoho-header .gobuy{margin-top:47px;margin-left:23px;width:26px;height:26px;position:relative;cursor:pointer}.yoho-header .gobuy-wrapper{position:absolute;display:none;top:24px;right:-14px;width:378px;padding-top:6px;z-index:19}.yoho-header .gobuy-empty{position:absolute;width:100%;height:507px;z-index:1;background:#f8f8f8 url(../assets/img/header/empty_car.png?v1559f4c3c88) no-repeat 106px 132px}.yoho-header .gobuy-empty .information{margin-top:300px;width:100%;height:18px;line-height:18px;font-size:18px;text-align:center}.yoho-header .gobuy-loading{position:absolute;width:100%;height:407px;z-index:1;background:#f8f8f8 url(../assets/img/header/loading.gif?v1559f4c3c8c) no-repeat center 150px}.yoho-header .gobuy-loading .information{margin-top:180px;width:100%;height:12px;line-height:12px;font-size:12px;text-align:center}.yoho-header .gobuy-notempty{position:absolute;width:100%;z-index:1;background-color:#f8f8f8;overflow:hidden}.yoho-header .goods-list-wrapper{width:100%;max-height:444px;margin-bottom:19px;overflow-y:auto;overflow-x:hidden}.yoho-header .goods-list{margin-top:40px}.yoho-header .goods-item{height:64px;margin-bottom:18px;padding-left:18px}.yoho-header .goods-img{display:inline-block;float:left;width:46px;height:62px;margin-right:13px}.yoho-header .goods-detail{margin-right:16px}.yoho-header .goods-detail .content{width:170px;height:14px;line-height:14px;font-size:14px;margin-bottom:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yoho-header .goods-detail .content a{color:#666;outline:none;text-decoration:none}.yoho-header .goods-detail .style{height:14px;line-height:14px;font-size:14px;color:#b0b0b0}.yoho-header .goods-price .priceandnum{height:14px;line-height:14px;font-size:14px;margin-bottom:13px;min-width:75px;text-align:right}.yoho-header .goods-price .delete{display:inline-block;float:right;font-size:14px;color:#000}.yoho-header .activity-item{margin-bottom:8px;padding-left:18px}.yoho-header .activity-name{display:inline-block;box-sizing:border-box;border:none;width:60px;height:18px;line-height:18px;background-color:#3a3a3a;color:#fff;font-size:14px;text-align:center;margin-right:13px;vertical-align:top}.yoho-header .activity-content{display:inline-block;line-height:14px;width:250px;color:#3a3a3a;font-size:12px;word-break:break-all}.yoho-header .gobuy-notempty-footer{width:100%;height:61px;text-align:center}.yoho-header .gobuy-notempty-footer h3{box-sizing:border-box;width:349px;margin:0 auto;height:61px;line-height:61px;border-top:1px solid #dcdcdc}.yoho-header .gobuy-notempty-footer a{font-size:18px;color:#444}.yoho-header .ic-infomation{position:absolute;background-image:url(../assets/img/sprite.header.png?v1559f4c4795);background-position:0 -56px;width:27px;height:20px;top:-10px;right:-15px;color:#fff;text-align:center;line-height:20px;font-size:12px}.yoho-header .float-left{float:left}.yoho-header .float-right{float:right}.yoho-header .showdetail img{display:block;box-sizing:border-box;width:337px;height:250px}.yoho-header .showdetail .title{display:block;margin-top:40px;width:100%;height:15px;text-align:center;line-height:15px;font-size:14px;color:#000!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yoho-header .cate_row{float:left;height:352px;box-sizing:border-box}.yoho-header .cate_row li{box-sizing:border-box}.yoho-header .cate_row1{width:253px}.yoho-header .cate_row2{width:278px;border-left:1px solid #ccc;padding-left:50px}.yoho-header .cate_row3{width:270px;border-left:1px solid #ccc;padding-left:50px}.yoho-header .third-nav .cattitle{width:180px;padding-bottom:10px;border-bottom:1px solid #000;line-height:18px;margin-bottom:20px}.yoho-header .third-nav .cattitle h3 a{color:#000!important;font-size:14px}.yoho-header .third-nav .catdetail{line-height:14px;height:14px;margin-bottom:24px;min-width:200px}.yoho-header .third-nav .catdetail a{color:#a1a1a1!important;font-size:14px}.yoho-header .third-nav .catdetail .hot{color:#e01!important}.yoho-header .thirdcatelink:hover{text-decoration:underline!important}.yoho-header .hovercontent{display:none}.yoho-header.outlets .header-navwrapper{background-color:#3a3a3a}.yoho-header.outlets .header-navwrapper .sub-nav-wrapper{background-color:#e6e6e6;margin-top:37px}.yoho-header.outlets .header-navwrapper .third-nav-wrapper{border-top:0}.yoho-header.outlets .outlets-logo{display:block}.yoho-header.outlets .icon-logo{display:none}.yoho-header.outlets .first-nav-item.cure{background:none}.yoho-header.outlets .first-nav-item>h3,.yoho-header.outlets .header-tool>.search{display:none}.yoho-header.outlets .sub-nav-list{padding-left:15%}.yoho-header.outlets .sub-nav-list .sub-nav-item{width:14%;text-align:center}.yoho-header.outlets .sub-nav-list .sub-nav-item>a{color:#222!important}.yoho-header.outlets .sub-nav-list .sub-nav-item:hover a{border-color:#555}.yoho-header.outlets .sub-nav-list .third-nav{text-align:left}.simple-header{height:66px;margin:0 0 20px;border-bottom:2px solid #222}.simple-header .header-inner{width:990px;height:100%;margin:0 auto}.simple-header .logo{float:left;line-height:66px;font-size:0}.simple-header .logo img{vertical-align:middle}.simple-header .header-tool{float:right;line-height:66px;font-size:0}.simple-header .header-tool li{display:inline-block;padding:0 10px;line-height:28px}.simple-header .header-tool li,.simple-header .header-tool li a,.simple-header .header-tool li span{font-size:12px;vertical-align:middle}.simple-header .header-tool li .tell-icon{font-size:12px}.simple-header .header-tool li .tell-icon~span{font-weight:700}.simple-header .header-tool .login-box a{color:#666}.simple-header .header-tool .tool-options{position:relative;font-size:0;cursor:pointer}.simple-header .header-tool .tool-options .iconfont,.simple-header .header-tool .tool-options span{display:inline-block;font-size:12px;height:28px;line-height:28px;vertical-align:top}.simple-header .header-tool .tool-options .iconfont.up,.simple-header .header-tool .tool-options span.up{display:none}.simple-header .header-tool .tool-options .tool-select{display:none;position:absolute;width:74px;left:0;background:#eaeceb;z-index:6}.simple-header .header-tool .tool-options .tool-select a{display:block;padding:0 0 0 10px;border-top:1px solid #ddd}.simple-header .header-tool .tool-options:hover{background-color:#eaeceb}.simple-header .header-tool .tool-options:hover .iconfont.up{display:inline-block}.simple-header .header-tool .tool-options:hover .iconfont.down{display:none}.min-screen .yoho-header .header-topwrapper{min-width:990px}.min-screen .yoho-header .header-top{width:990px}.min-screen .yoho-header .header-navwrapper{min-width:990px}.min-screen .yoho-header .header-navcontent,.min-screen .yoho-header .header-wrapper{width:990px}.min-screen .yoho-header .icon-logo{left:39.2%}.min-screen .yoho-header .icon-logo .main-link{display:block;width:100%;height:100%}.min-screen .yoho-header .sub-nav-list{width:990px;min-width:990px}.min-screen .yoho-header .sub-nav-item{margin-right:15px}.min-screen .yoho-header .first-nav-item{float:left;padding:10px 14px 0;margin-right:3px}.min-screen .yoho-header .third-nav{width:990px}.min-screen .yoho-header .third-nav-wrapper{min-width:990px}.min-screen .yoho-header .category{width:800px}.min-screen .yoho-header .cate_row1{width:204px}.min-screen .yoho-header .cate_row2{width:244px;border-left:1px solid #ccc;padding-left:39px}.min-screen .yoho-header .cate_row3{width:163px;border-left:1px solid #ccc;padding-left:28px}.min-screen .yoho-header .category .thirdnavlist{width:200px}.min-screen .yoho-header .category-title{width:152px}.min-screen .yoho-header .showdetail{width:190px;padding-right:0}.min-screen .yoho-header .showdetail img{width:174px;height:155px}#cover{position:fixed;z-index:12}#cover,#cover .con{left:0;top:0;width:100%;height:100%}#cover .con{background:rgba(0,0,0,.6)!important;position:absolute;z-index:13;opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"}#cover .tag_img_warpper{margin:0 auto;width:180px;height:168px}#cover .tag_img_warpper img{width:100%;height:100%}#cover .guide-box{background:#fff;margin:0 auto;height:400px;position:relative;z-index:14}#cover .guide-box .close{top:-15px;text-align:center;right:-15px;color:#fff;line-height:22px;font-size:24px;position:absolute;background:#000;border-radius:50px;border:currentColor;border-image:none;width:28px;height:28px;line-height:25px;display:block}#cover .guide-box li{padding:10px;width:200px;height:400px;float:left;box-sizing:border-box}#cover .guide-box li .go{margin:26px auto 0;width:100%;height:18px;text-align:center;color:#b0b0b0;line-height:18px;font-size:18px;font-style:italic;font-weight:lighter;display:block}#cover .guide-box li.girls{border-left-color:#eee;border-left-width:1px;border-left-style:solid}#cover .guide-box li.girls .goods-num{text-align:center;color:#bbb;line-height:12px;font-size:12px;margin-top:16px}#cover .guide-box li.lifestyle{border-left-color:#eee;border-left-width:1px;border-left-style:solid}#cover .guide-box li.lifestyle .goods-num{text-align:center;color:#bbb;line-height:12px;font-size:12px;margin-top:16px}#cover .guide-box li.kids{border-left-color:#eee;border-left-width:1px;border-left-style:solid}#cover .guide-box li.boys .goods-num,#cover .guide-box li.kids .goods-num{text-align:center;color:#bbb;line-height:12px;font-size:12px;margin-top:16px}#cover .boys .block_cn,#cover .girls .block_cn,#cover .kids .block_cn,#cover .lifestyle .block_cn{text-align:center;line-height:26px;font-size:26px;font-weight:700;margin-top:30px}#cover .boys .block_en,#cover .girls .block_en,#cover .kids .block_en,#cover .lifestyle .block_en{text-align:center;line-height:26px;font-size:26px;font-weight:700;margin-top:19px}#cover .boys .block_cn,#cover .boys .block_en{color:#000}#cover .girls .block_cn,#cover .girls .block_en{color:#ff88ae}#cover .kids .block_cn,#cover .kids .block_en{color:#7ad9f8}#cover .lifestyle .block_cn,#cover .lifestyle .block_en{color:#4f4037!important}#cover .boys .block_line,#cover .girls .block_line,#cover .kids .block_line,#cover .lifestyle .block_line{margin:20px auto 0;width:50px;height:0;border-bottom-color:#ccc;border-bottom-width:1px;border-bottom-style:solid}.yoho-footer{font-size:12px}.yoho-footer *{box-sizing:border-box}.yoho-footer .red{color:#e01}.yoho-footer .rgb6{color:#666}.yoho-footer .rgb9{color:#999}.yoho-footer .rgbf{color:#fff}.yoho-footer .index-foot{background:#eee;padding:20px 0}.yoho-footer .index-foot dd{float:left;width:370px;margin-right:20px;overflow:hidden}.yoho-footer .index-foot dd ul{margin-top:18px;padding-top:18px}.yoho-footer .index-foot dd.last{margin-right:0}.yoho-footer .foot-panel{background:#fff;padding:20px}.yoho-footer .title{position:relative;text-align:center}.yoho-footer .title-line{border-bottom:1px solid #ddd;position:absolute;top:9px;width:100%;left:0}.yoho-footer .text{position:absolute;width:100%;text-align:center;left:0;top:0}.yoho-footer .text span{background:#fff;font-size:18px;line-height:18px;padding:0 10px}.yoho-footer .item-nav{padding-top:20px}.yoho-footer .item-nav span{color:#fff;padding:0 3px;cursor:pointer;font-size:20px}.yoho-footer .item-nav .cur{color:#999}.yoho-footer .vote{line-height:24px}.yoho-footer .vote input{margin:0 5px 0 1px}.yoho-footer .vote .button{height:24px;line-height:24px;width:55px;font-size:12px;margin-top:11px;margin-right:10px;background:#222;color:#fff;display:inline-block;text-align:center;cursor:pointer}.yoho-footer .vote p{height:24px;overflow:hidden}.yoho-footer .vote textarea{width:98%;height:68px;vertical-align:middle;margin:5px 0 0;resize:none}.yoho-footer .vote-item p{float:left;width:50%}.yoho-footer .mobile{margin-right:-10px}.yoho-footer .mobile li{margin-right:10px;float:left}.yoho-footer .mobile img{display:block;width:103px;height:131px}.yoho-footer .index-banner{width:100%;margin-top:20px}.yoho-footer .two-dim{margin-right:-10px;overflow:hidden}.yoho-footer .two-dim li{border:1px solid #ddd;margin-right:10px}.yoho-footer .two-dim li a{display:block}.yoho-footer .two-dim li p{text-align:center;margin-top:13px;margin-bottom:10px;line-height:12px}.yoho-footer .dim-img{display:block;width:87px;height:87px;margin:7px}.yoho-footer .dim-hover{position:absolute}.yoho-footer .dim-hover img{width:38px;height:38px}.yoho-footer .dim-active .dim-img{opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}.yoho-footer .dim-active .dim-hover{display:none}.yoho-footer .footerbottom{width:100%}.yoho-footer .promise{padding:20px 0 10px;background:#000}.yoho-footer .promise .left{margin-right:60px;line-height:30px;font-size:12px;font-weight:700}.yoho-footer .promise .left .iconfont{display:inline-block;font-weight:400;font-size:22px;vertical-align:middle;margin-right:5px}.yoho-footer .promise .left:first-child .iconfont{font-size:27px}.yoho-footer .subscribe{border:1px solid #262626;width:240px}.yoho-footer .subscribe input{width:180px;height:32px;padding:0 10px;line-height:32px;border:none;margin:0;background:#000}.yoho-footer .subscribe a{display:block;float:right;margin-right:20px;font-size:20px;line-height:28px;opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"}.yoho-footer .footer-help{background:#000;font-size:12px;overflow:hidden}.yoho-footer .footer-help>div{padding:15px 0;border-top:1px solid #262626}.yoho-footer .footer-help ul{width:110%}.yoho-footer .footer-help p{line-height:24px}.yoho-footer .footer-help p span{color:#fff}.yoho-footer .footer-help p a{color:#666}.yoho-footer .footer-help p a:hover{text-decoration:underline}.yoho-footer .footer-help li{width:180px}.yoho-footer .footer-help .screen{border-top:1px solid #262626;padding:15px 0}.yoho-footer .footer-link{background:#000;padding:10px 0 30px;font-size:12px}.yoho-footer .footer-link .right-flag{margin-top:3px}.yoho-footer .footer-link .right-flag a{margin-right:5px}.yoho-footer .footer-link .about-us{line-height:20px;color:#666;margin-left:10px}.yoho-footer .footer-link .about-us a{color:#666}.yoho-footer .footer-link .about-us span{padding:0 10px}.yoho-footer .return-top{position:fixed;width:60px;height:60px;left:50%;margin-left:595px;text-align:center;line-height:50px;color:#fff;background:#000;opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";bottom:20px;cursor:pointer;z-index:4}.yoho-footer .return-top .iconfont{font-size:34px}.yoho-footer .return-top:hover{opacity:.9;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=90)"}.yoho-footer .return-top.min{left:100%;right:20px;margin-left:auto}.min-screen .yoho-footer .index-foot dd{width:316px}.min-screen .yoho-footer .two-dim{margin-top:26px;margin-bottom:10px;overflow:hidden}.min-screen .yoho-footer .dim-img{width:69px;height:69px}.min-screen .yoho-footer .mobile{margin-top:26px;padding-bottom:15px}.min-screen .yoho-footer .mobile img{width:85px;height:108px}.min-screen .yoho-footer .promise .left{margin-right:45px}.min-screen .yoho-footer .subscribe{width:200px}.min-screen .yoho-footer .subscribe input{width:140px}.min-screen .yoho-footer .footer-help li{width:150px}.path-nav{font-size:12px;padding:15px 0;height:18px;line-height:18px}.path-nav,.path-nav a{color:#666}.path-nav .iconfont{font-size:12px}.path-nav .last{font-weight:700}.slider{position:relative;height:327px;width:100%;overflow:hidden}.slider img{max-width:100%;max-height:100%}.slide-pagination{position:absolute;left:0;right:0;bottom:12px;text-align:center}.slide-pagination-inner{display:inline-block;position:relative;padding:7px;vertical-align:middle}.slide-shade{position:absolute;left:0;right:0;top:0;bottom:0;background:#000;opacity:.3;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";border-radius:13px}.slide-pagination-last span{display:block;float:left;position:relative;margin:0 7px;width:12px;height:12px;background:#fff;cursor:pointer;opacity:.6;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";border-radius:6px;z-index:2}.slide-pagination-last span.focus{opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}.slide-switch{display:none}.slide-switch a{display:block;position:absolute;top:50%;margin:-30px 0 0;width:60px;height:60px;line-height:56px;text-align:center;z-index:2;background:#fff;opacity:.55;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=55)"}.slide-switch a .iconfont{font-size:32px;color:#59585a}.slide-switch a:hover{opacity:.9;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=90)"}.slide-switch .prev{left:0}.slide-switch .next{right:0}.slide-switch.show{display:block}.yoho-dialog{position:fixed;padding:20px;top:50%;left:50%;min-height:130px;min-width:350px;background:#f8f8f8;z-index:12;border:5px solid rgba(0,0,0,.38)}.yoho-dialog .close{position:absolute;top:5px;right:5px;cursor:pointer}.yoho-dialog .btns,.yoho-dialog .content{text-align:center}.yoho-dialog .alert-sure,.yoho-dialog .confirm-sure{background:#000;color:#fff}.yoho-dialog .btn{display:inline-block;width:56px;height:26px;line-height:26px;text-align:center;border:1px solid #000;cursor:pointer;margin-left:10px}.yoho-dialog .btn:first-child{margin-left:0}.yoho-dialog.alert-dialog .content,.yoho-dialog.confirm-dialog .content{width:350px;height:auto;min-height:90px;overflow:hidden;line-height:20px;position:relative;padding-top:40px;padding-bottom:20px}.yoho-dialog.alert-dialog .content p,.yoho-dialog.confirm-dialog .content p{position:absolute;left:0;bottom:25px;width:100%;color:#444;line-height:25px}.yoho-dialog.alert-dialog .content div,.yoho-dialog.confirm-dialog .content div{position:absolute;top:0;left:100px;padding-top:30px;font-size:22px;font-weight:700;width:150px;height:30px;line-height:30px;margin:0 auto}.yoho-dialog.alert-dialog .content div span,.yoho-dialog.confirm-dialog .content div span{background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:0 -272px;float:left;width:27px;height:30px}.yoho-dialog.subcontent-dialog{padding:30px 0}.yoho-dialog.subcontent-dialog .content{font-weight:700;margin:0 auto 30px}.yoho-dialog.subcontent-dialog .sub-content{text-align:center;font-size:12px;color:#555;margin-left:5px;margin-bottom:5px}.yoho-dialog.subcontent-dialog .btn{margin-top:25px;width:100px;font-size:13px;margin-left:0;margin-right:0}.yoho-dialog.subcontent-dialog .btn.black{background-color:#000;color:#fff}.pager{font-size:12px}.pager a{height:24px;padding:0 9px;line-height:24px;display:inline-block;text-align:center;margin-right:8px;color:#222}.pager a.cur{color:#fff;background-color:#222}.pager a:first-child .iconfont{right:auto;left:-5px}.pager .iconfont{position:relative;vertical-align:middle;bottom:1px;right:-5px;font-size:14px}.err-page{width:650px;height:200px;overflow:hidden;margin:100px auto}.err-page .tips-404{float:left;height:200px;padding-left:20px}.err-page .tips-404 .tip{font-size:24px;color:#000;margin-top:55px}.err-page .tips-404 .links{font-size:12px;color:#666;margin-top:15px}.err-page:before{content:'';display:block;width:200px;height:200px;background:url(../assets/img/404.png?v1559f4c2ba2) 50% no-repeat;float:left}.share-wrapper{position:relative}.share-wrapper i{display:block;float:left;width:16px;height:16px;margin-left:5px;cursor:pointer}.share-wrapper .weibo{background-position:0 0}.share-wrapper .tweibo,.share-wrapper .weibo{background-image:url(../assets/img/sprite.share.png?v1559f4c4796)}.share-wrapper .tweibo{background-position:-18px 0}.share-wrapper .renren{background-position:0 -18px}.share-wrapper .qzone,.share-wrapper .renren{background-image:url(../assets/img/sprite.share.png?v1559f4c4796)}.share-wrapper .qzone{background-position:-18px -18px}.share-wrapper .qq{background-position:-36px 0}.share-wrapper .douban,.share-wrapper .qq{background-image:url(../assets/img/sprite.share.png?v1559f4c4796)}.share-wrapper .douban{background-position:-36px -18px}.share-wrapper .weixin{background-image:url(../assets/img/sprite.share.png?v1559f4c4796);background-position:0 -36px}.share-wrapper .weixin-share-box{display:none;position:absolute;width:282px;height:302px;padding-top:9px;text-align:center;font-family:Microsoft Yahei,Arial,Verdana;top:22px;right:-26px;z-index:2}.share-wrapper .weixin-share-box em,.share-wrapper .weixin-share-box em i{position:absolute;width:0;height:0;font-size:0;border-width:0 10px 9px;border-style:dashed dashed solid}.share-wrapper .weixin-share-box em{border-color:transparent transparent #d6d6d6;top:0;left:50%;margin-left:-10px}.share-wrapper .weixin-share-box em i{border-color:transparent transparent #e8e8e8;overflow:hidden;top:1px;left:-15px}.share-wrapper .weixin-share-box .con{position:relative;width:280px;height:300px;overflow:hidden;background-color:#fff;border:1px solid #d6d6d6;box-shadow:0 2px 4px #d1d1d1}.share-wrapper .weixin-share-box h2{display:block;height:46px;line-height:46px;background-color:#e8e8e8;color:#000;font-size:18px}.share-wrapper .weixin-share-box .pic,.share-wrapper .weixin-share-box .pic img{width:168px;height:168px}.share-wrapper .weixin-share-box .pic{overflow:hidden;margin:16px auto}.share-wrapper .weixin-share-box .w{font-size:13px;color:#9f9f9f;line-height:20px}.share-wrapper .weixin-share-box .close{position:absolute;width:45px;height:45px;line-height:45px;overflow:hidden;top:0;right:0;font-size:16px;color:#999}.product-search-page .goods-container{height:auto;padding:25px 0 0;position:relative;width:1160px}.product-search-page .goods-container .good-info{width:222px}.product-search-page .path-nav .last{font-weight:400}.product-search-page .path-nav .last span{font-weight:700}.min-screen .product-search-page .goods-container{height:auto;padding-top:25px;position:relative;width:1000px}.min-screen .product-search-page .goods-container .good-info{width:190px}.min-screen .product-search-page .goods-container .good-info .good-detail-img{height:255px}.min-screen .product-search-page .goods-container .block-next-page{width:190px;height:255px}.min-screen .product-search-page .filter-box .brand .attr-content{max-width:750px}.product-list-page .list-left{width:160px}.product-list-page .list-right{width:970px}.product-list-page .brand-banner{position:relative;height:150px;overflow:hidden}.product-list-page .brand-banner .opt-wrap{position:absolute;width:100%;height:32px;top:50%;margin-top:-16px;text-align:right}.product-list-page .brand-banner a,.product-list-page .brand-banner span{display:inline-block;height:20px;margin-right:5px;line-height:20px;border:1px solid #fff;padding:5px 10px;color:#fff;font-size:12px}.product-list-page .brand-banner .iconfont{font-size:13px}.product-list-page .brand-banner .brand-favor{margin-right:0;cursor:pointer}.product-list-page .brand-banner .coled{color:red}.product-list-page .brand-about{font-size:12px;line-height:150%}.product-list-page .sort-intro{margin-bottom:20px}.product-list-page .sort-intro .texts{width:386px;height:298px;padding:0 50px;border:1px solid #eaeceb;text-align:center;overflow:hidden}.product-list-page .sort-intro .name{font-size:30px;font-weight:700;margin-top:60px}.product-list-page .sort-intro .en-name{font-size:14px;font-weight:700}.product-list-page .sort-intro .desc{color:#666;margin-top:15px;font-size:12px;line-height:150%}.product-list-page .sort-intro .img{width:480px;height:300px}.product-list-page .sort-intro .key-entry{width:330px;margin:30px auto 0}.product-list-page .sort-intro .key-entry a{float:left;display:block;width:110px;line-height:20px;font-size:12px;color:#069;text-decoration:underline}.product-list-page .sell-signboard .left-list li{padding-left:0;height:auto;margin-bottom:10px;line-height:inherit}.product-list-page .sell-signboard .left-list li img{width:100%}.product-list-page.search-page .path-nav .last{font-weight:400}.product-list-page.search-page .path-nav .last span{font-weight:700}.min-screen .product-list-page .sort-intro .texts{width:346px;height:248px;padding:0 30px}.min-screen .product-list-page .sort-intro .name{margin-top:30px}.min-screen .product-list-page .sort-intro .img{width:400px;height:250px}.new-sale-page .sale-list-banner{width:100%;position:relative}.new-sale-page .sale-list-banner ul{overflow:hidden;width:100%;position:relative;z-index:1}.new-sale-page .sale-list-banner ul li{width:100%;height:100%;display:block;float:left;position:absolute;top:0;left:0}.new-sale-page .sale-list-pagation{z-index:2;position:absolute;left:0;bottom:50px;width:100%;height:20px;text-align:center}.new-sale-page .sale-list-pagation div{display:inline-block}.new-sale-page .sale-list-pagation span{display:block;width:20px;height:20px;background:url(../assets/img/product/default-normal.png?v1559f4c3d11);float:left;margin:0 10px;cursor:pointer}.new-sale-page .sale-list-pagation span.active{background:url(../assets/img/product/default-active.png?v1559f4c3d10)}.new-sale-page .header-title{position:relative;width:100%;height:42px;margin:20px 0;text-align:center;font-size:20px}.new-sale-page .header-title .count-wrap{position:relative}.new-sale-page .header-title .count{background:#fff;padding:0 5px;color:#999;font-size:12px;margin-top:6px}.new-sale-page .header-title .line-through{position:absolute;bottom:9px;left:0;right:0;height:1px;border-top:1px dotted #999}.new-sale-page .new-banner img{display:block;width:100%}.new-sale-page .new-brands{position:relative;width:100%;margin-top:25px}.new-sale-page .new-brands>*{float:left}.new-sale-page .new-brands .next,.new-sale-page .new-brands .pre{position:absolute;display:block;width:40px;height:40px;line-height:40px;color:#fff;background:#e0e0e0;text-align:center;top:50%;margin-top:-20px;cursor:pointer;opacity:.8;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"}.new-sale-page .new-brands .next:hover,.new-sale-page .new-brands .pre:hover{opacity:.9;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=90)"}.new-sale-page .new-brands .pre{left:0}.new-sale-page .new-brands .next{right:0}.new-sale-page .new-brands .brands-wrap{position:relative;overflow:hidden;width:890px;height:76px;margin-left:40px}.new-sale-page .new-brands .brands{position:absolute;width:auto;height:76px}.new-sale-page .new-brands .brands li{float:left;margin-left:14px}.new-sale-page .new-brands .brands li a{display:block;width:164px;height:76px;line-height:76px;vertical-align:middle;text-align:center}.new-sale-page .new-brands .brands li img{vertical-align:middle;max-width:100%;max-height:100%;border:none}.new-sale-page .new-floor-title{position:relative;margin:35px auto;width:300px;height:31px;line-height:31px;font-size:18px;border:1px solid #000}.new-sale-page .new-floor-title .date{position:absolute;left:-1px;top:-1px;width:155px;height:33px;color:#fff;text-align:center;background:url(../assets/img/product/floor-title.png?v1559f4c3d11)}.new-sale-page .new-floor-title .title{float:right;margin-right:40px}.min-screen .new-sale-page .new-brands .brands-wrap{width:730px}.filter-box{border:1px solid #dfdfdf}.filter-box .section{padding:10px 15px;font-size:12px;border-top:1px solid #dfdfdf}.filter-box .section:first-child{border-top:none;padding:5px 15px}.filter-box .title{float:left;width:75px;line-height:30px;font-weight:700}.filter-box .attr-content{margin-left:75px}.filter-box .multi-select{display:inline-block;width:60px;height:18px;line-height:18px;border:1px solid #555;color:#555;text-align:center;cursor:pointer}.filter-box .attr{display:block;float:left;padding:0 10px;margin-right:30px;line-height:30px;cursor:pointer;color:#666;-moz-user-select:none}.filter-box .attr a{color:#666}.filter-box .attr:first-child{margin-left:0}.filter-box .attr.checked,.filter-box .attr.checked a{color:#e01}.filter-box .attr:hover{text-decoration:underline}.filter-box .color .attr{margin-right:0}.filter-box .checked .color-block{width:16px;height:16px;border:2px solid #222;padding:2px;background-size:100%!important}.filter-box .checked .color-block .sub-color-block{display:block;width:16px;height:16px;background-position:50%!important}.filter-box .checked-conditions{line-height:30px;background:#eaeceb}.filter-box .checked-conditions .title{margin-top:5px}.filter-box .checked-conditions .tag{display:block;float:left;padding:0 10px;margin:5px 30px 5px 0;background:#000;color:#fff;cursor:pointer}.filter-box .checked-conditions .color-block{height:14px;width:14px;border:1px solid #fff;margin-bottom:-3px;background-size:100%!important;background-position:50%!important}.filter-box .checked-conditions .clear-checked{margin-top:5px;color:#999;float:right}.filter-box .checked-conditions .clear-checked:hover{color:#468fa2}.filter-box .checked-conditions .close{font-size:14px}.filter-box .sort-pre .active .attr{border:1px solid #000}.filter-box .sort-pre .attr{position:relative}.filter-box .active .sort-up-icon{visibility:visible}.filter-box .sort-up-icon{position:absolute;width:15px;height:9px;left:50%;margin-left:-7px;bottom:-17px;z-index:3;visibility:hidden;background:url(../assets/img/product/senior-up.png?v1559f4c3d15) no-repeat;background-position:50% 0}.filter-box .sort-sub-wrap{width:100%}.filter-box .sort-sub-wrap .sort-sub{border-top:1px solid #eaeceb;margin-top:15px;padding:0 0 15px}.filter-box .sort-sub-wrap .sort-sub .attr{padding-top:15px}.filter-box .brand{position:relative}.filter-box .brand .attr{box-sizing:border-box;width:20%;height:30px;margin:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.filter-box .brand .attr-content{max-width:900px}.filter-box .brand .brand-opt{position:absolute;right:20px;top:15px;color:#555}.filter-box .brand .multi .attr.checked,.filter-box .brand .multi .attr.checked a{color:#000}.filter-box .brand .brand-more{margin-right:10px;cursor:pointer}.filter-box .brand .brands-index{float:left;line-height:30px;margin-right:5px;cursor:pointer}.filter-box .brand .brands-index span{margin:0 3px;-moz-user-select:none}.filter-box .brand .brands-index span:first-child{margin-left:10px}.filter-box .brand .brands-index span.hover{color:red}.filter-box .brand .brand-search{float:left;height:18px;line-height:18px;border:1px solid #b0b0b0;margin-top:5px;margin-left:10px}.filter-box .brand .brand-search input{float:left;border:none;width:100px;height:18px;padding:0}.filter-box .brand .brand-search .btn{position:relative;display:inline-block;top:-1px;width:55px;height:20px;line-height:20px;background:#3a3a3a;color:#fff;text-align:center;cursor:default}.filter-box .brand .panel-body{padding:15px 20px;background:#f4f7f6;margin-top:5px;margin-left:10px}.filter-box .brand .panel-body .ul-scroll{overflow:auto;min-height:30px;max-height:150px}.filter-box .btns{display:none;margin-top:10px;text-align:center}.filter-box .multi .btns{display:block}.filter-box .multi-select-cancel,.filter-box .multi-select-ok{width:55px;height:24px;border:none;background:#000;color:#fff;font-size:14px;margin-right:20px;cursor:pointer;outline:none;font-family:Microsoft YaHei}.filter-box .multi-select-cancel.dis,.filter-box .multi-select-ok.dis{background:#ccc}.filter-box .ud-price-range{margin-top:2px}.filter-box .limit{height:22px;width:42px;border:1px solid #ccc;padding:0}.filter-box .price-sep{margin:0 5px}.filter-box .price-sure{height:24px;width:44px;background:#333;color:#fff;margin-left:10px;outline:none;border:none;font-size:12px;cursor:pointer}.filter-box .color-block{display:inline-block;height:22px;width:22px;border:1px solid #ccc;margin-bottom:-6px;margin-right:5px;background-size:100%!important;background-repeat:no-repeat!important;background-position:50%!important}.filter-box .senior{padding-bottom:6px}.filter-box .senior .attr-content{position:relative}.filter-box .senior .senior-attr-wrap>.attr:hover{text-decoration:none}.filter-box .senior-attr-wrap{position:relative}.filter-box .senior-attr-wrap>.attr.hover,.filter-box .senior-attr-wrap>.attr:hover{font-weight:700}.filter-box .senior-attr-wrap>.attr.hover>.iconfont,.filter-box .senior-attr-wrap>.attr:hover>.iconfont{visibility:hidden}.filter-box .senior-attr-wrap>.attr.hover .senior-up-icon,.filter-box .senior-attr-wrap>.attr:hover .senior-up-icon{visibility:visible}.filter-box .senior-sub{box-sizing:border-box;position:absolute;padding:0 15px 15px 91px;left:-91px;right:-16px;top:39px;background:#fff;border:1px solid #dfdfdf;border-top:0;z-index:2}.filter-box .senior-sub ul{max-width:950px}.filter-box .senior-sub .multi-select{position:absolute;top:20px;right:15px}.filter-box .senior-sub .attr{height:30px}.filter-box .senior-sub.multi .multi-select{display:none}.filter-box .senior-baffle{height:18px;margin-top:-18px;background:none}.filter-box .senior-content{padding-top:15px;border-top:1px solid #eaeceb}.filter-box .senior-up-icon{position:relative;width:100%;height:9px;z-index:3;margin-left:-11px;visibility:hidden;background:url(../assets/img/product/senior-up.png?v1559f4c3d15) no-repeat;background-position:50% 0;top:-1px;top:1px\9}.filter-box .checkbox{display:none;float:left}.filter-box .multi .checkbox{display:block;color:#ccc;font-size:12px;margin-right:3px}.filter-box .multi .checkbox.checked{color:#000}.filter-box .multi .checkbox.checked+span{color:#000;font-weight:700}.min-screen .filter-box .brand .attr{width:25%}:root .senior-up-icon,_:-ms-fullscreen{top:1px}.sort-pager{height:48px;background:#f5f7f6;line-height:48px;margin:10px 0}.sort-pager .checks,.sort-pager .sort-type{color:#999;font-size:12px;padding:0 10px}.sort-pager .checks .iconfont,.sort-pager .sort-type .iconfont{font-size:12px}.sort-pager .checks.active,.sort-pager .checks.checked,.sort-pager .sort-type.active,.sort-pager .sort-type.checked{color:#000;font-weight:700}.sort-pager .checks.active .iconfont,.sort-pager .checks.checked .iconfont,.sort-pager .sort-type.active .iconfont,.sort-pager .sort-type.checked .iconfont{font-weight:100}.sort-pager .checks .iconfont{background:#fff}.sort-pager .sort-type:first-child .iconfont{display:none}.sort-pager .pager-wrap{float:right;padding:15px 0}.sort-pager .page-count{position:relative;height:18px;float:left;font-size:12px;line-height:18px}.sort-pager .page-count>span{float:left;display:block;width:42px;height:10px;line-height:10px;padding:3px;border:1px solid #ccc;color:#222;cursor:pointer;margin-right:10px;background:#fff}.sort-pager .page-count .iconfont{font-size:14px;color:#ccc;float:right}.sort-pager .page-count>ul{position:absolute;display:none;width:48px;border-left:1px solid #ccc;border-right:1px solid #ccc;background:#fff;z-index:1}.sort-pager .page-count li{padding:0 3px;border-bottom:1px solid #ccc}.sort-pager .page-count li:hover{background:#376cf7;color:#fff}.sort-pager .page-count a{display:block;width:100%}.sort-pager .page-orient{float:left;font-size:14px;line-height:15px;margin:0 20px}.sort-pager .page-orient .dis-icon{color:#e6e6e6}.sort-pager .page-orient i{color:red}.good-info{margin-bottom:35px;width:222px;margin-right:10px;float:left}.good-info .good-detail-img{width:100%;height:300px;position:relative}.good-info .good-detail-img .good-thumb,.good-info .good-detail-img img.lazy{display:block;overflow:hidden;width:100%;height:100%}.good-info .good-detail-img .few-tag{width:100%;position:absolute;left:0;height:16px;line-height:16px;background:#ffac5b;color:#fff;font-size:12px;text-align:center;bottom:0}.good-info .good-detail-text{color:#222;font-size:12px;text-align:left;overflow:hidden}.good-info .good-detail-text>a{margin-top:16px;line-height:1.5;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.good-info .good-detail-text>.price{margin-top:5px}.good-info .good-detail-text .brand a{color:#666;line-height:1.5}.good-info .good-detail-text .market-price{text-decoration:line-through;color:#999}.good-info .col-btn{position:absolute;top:15px;right:15px;color:#ccc;font-size:12px}.good-info .col-btn.coled{color:#f95b4f}.good-info .tag-container{font-size:12px;height:22px;line-height:22px}.good-info .tag-container .good-tag{float:left;box-sizing:border-box;display:block;height:22px;padding:0 7px;margin-right:3px;color:#fff}.good-info .tag-container .good-tag:nth-last-of-type(1){margin-right:0}.good-info .tag-container .new-tag{background:#78dc7d}.good-info .tag-container .renew-tag{background:#78dc7e}.good-info .tag-container .running-man-tag{background-color:#017df9;color:#f7ed02}.good-info .tag-container .sale-tag,.good-info .tag-container .yep-tag,.good-info .tag-container .ymp-tag{background:#ff565b}.good-info .tag-container .limit-tag{color:#4e4e4e;border:1px solid #4e4e4e}@keyframes a{0%{max-width:0}to{max-width:150px}}.good-item-wrapper{border:1px solid #ddd;padding-left:20px;padding-top:18px;padding-right:20px;position:absolute;background:#fff;display:none}.good-item-wrapper .good-info-main{float:left}.good-item-wrapper .col-btn{display:block}.good-item-wrapper .col-btn:hover{cursor:pointer}.good-item-wrapper .good-select-color{float:left;margin-top:22px;overflow:hidden;animation:a .6s 1}.good-item-wrapper .good-select-color ul{display:block;float:left;margin-left:15px}.good-item-wrapper .good-select-color li{width:50px;margin-bottom:15px}.good-item-wrapper .good-select-color li a,.good-item-wrapper .good-select-color li img{display:block;overflow:hidden;width:100%}.block-next-page,.good-item-wrapper .good-info{margin-right:10px}.block-next-page{width:222px;height:297px;padding-top:22px;margin-bottom:35px;float:left;cursor:pointer}.block-next-page a{display:block}.block-next-page a img{width:100%;height:100%;display:block;overflow:hidden}.latest-walk{overflow:hidden;border-top:2px solid #eaeceb;font-size:12px}.latest-walk h2{padding-top:15px;font-size:14px}.latest-walk .goods{min-width:984px;height:241px;margin:30px 0;overflow:hidden}.latest-walk .good{float:left;margin-right:14px;width:150px}.latest-walk img{display:block;width:150px;height:201px}.latest-walk .name{display:block;height:18px;line-height:18px;max-width:150px;margin:5px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.latest-walk .market-price{color:#999;margin-right:5px;text-decoration:line-through}.latest-walk .sale-price{color:#000;font-weight:700}.min-screen .latest-walk .goods{width:820px;min-width:820px;height:301px}.min-screen .latest-walk .good{margin-right:10px;width:195px}.min-screen .latest-walk img{width:195px;height:261px}.product-page .sort-container{width:100%;font-size:12px;border-bottom:1px solid #ebebeb;padding-bottom:10px;margin-bottom:10px}.product-page .sort-container h2{height:28px;line-height:28px;color:#222;font-weight:700;position:relative}.product-page .sort-container h2 span{color:#bbb;padding-left:5px}.product-page .product-list-nav h3{height:28px;line-height:28px;color:#222;font-weight:700;position:relative;text-indent:10px;cursor:pointer}.product-page .product-list-nav h3 span{color:#bbb;padding-left:5px}.product-page .product-list-nav h3 span.icon-triangle{display:inline-block;padding-left:0;width:0;height:0;border-top:6px solid #fff;border-left:6px solid #000;border-bottom:6px solid #fff;position:absolute;top:50%;margin-top:-6px;left:0;transition:transform .3s}.product-page .product-list-nav.active .icon-triangle{transform:rotate(90deg)}.product-page .product-list-nav.active .sort-child-list{display:block}.product-page .sort-child-list{display:none}.product-page .sort-child-list li{color:#bbb}.product-page .sort-child-list li span{padding-left:5px;color:#bbb}.product-page .sort-child-list li.active{background:#333;color:#fff}.product-page .sort-child-list li.active a{color:#fff}.product-page .sort-child-list a{display:block;color:#666;padding-left:10px;height:22px;line-height:22px}.product-page .sort-child-list.new-sale{display:block}.product-page .nav-pic-title{height:35px;line-height:35px;color:#000;font-weight:700;border-bottom:1px solid #ebebeb;font-size:12px}.product-page .pic-nav{display:block}.product-page .pic-nav li{margin-bottom:10px}.product-page .pic-nav img,.product-page .pic-nav li{display:block;width:100%;overflow:hidden}.product-page .brand-ad img,.product-page .brand-card img{max-width:100%}.product-page .no-result{border:1px solid #eaeceb;padding:60px 0;text-align:center;margin-bottom:20px}.product-page .no-result .no-title{font-size:16px}.product-page .no-result .keyword{color:#e01}.product-page .no-result .search-again{width:490px;margin:15px auto}.product-page .no-result .search-again input{float:left;width:380px;height:18px;padding:15px 5px;border:10px solid #343434;color:#333;outline:none;box-sizing:content-box}.product-page .no-result .search-again .search-again-btn{float:left;width:80px;height:68px;line-height:68px;background:#343434;vertical-align:middle;color:#fff;cursor:pointer;outline:none;border:none}.product-page .no-result .search-again .iconfont{font-size:30px}.product-page .no-result .no-tip{font-size:12px;color:#999}.hotrank-page .popular-list{width:1160px}.hotrank-page .popular-list li{position:relative;float:left;width:378px;height:596px;overflow:hidden;list-style:none;margin:0 8px 0 0}.hotrank-page .popular-list li .item-img{width:100%;height:506px;line-height:506px;text-align:center;overflow:hidden}.hotrank-page .popular-list li img{display:block;width:100%;height:100%}.hotrank-page .popular-list .polular-icon{position:absolute;top:0;right:0;width:50px;height:50px;line-height:60px;background:#ffc513 url(../assets/img/product/hotrank/popular-icon.png?v1559f4c3d6f) no-repeat 50%;text-align:center;color:#ffc513;font-weight:700}.hotrank-page .popular-list .item-content{width:100%;padding:14px 0 0;height:77px;overflow:hidden;text-align:center;color:#222;line-height:18px}.hotrank-page .popular-list .item-content h2{max-height:36px;font-size:12px;color:#000;line-height:18px;text-align:center;overflow:hidden}.hotrank-page .popular-list .item-content p{display:inline-block;margin:3px 0 0;font-size:12px;text-align:center;line-height:20px;color:#000}.hotrank-page .popular-list .item-content p span{text-decoration:line-through;margin:0 10px 0 0;color:#999}.hotrank-page .popular-list .popular-item6,.hotrank-page .popular-list .popular-item7,.hotrank-page .popular-list .popular-item8,.hotrank-page .popular-list .popular-item9{width:280px;height:464px;margin:0 10px 0 0;overflow:hidden}.hotrank-page .popular-list .popular-item6 .item-img,.hotrank-page .popular-list .popular-item7 .item-img,.hotrank-page .popular-list .popular-item8 .item-img,.hotrank-page .popular-list .popular-item9 .item-img{height:374px;line-height:374px}.hotrank-page .hot-week{position:relative;padding:0 0 40px}.hotrank-page .hot-cate{height:45px;background:#f5f7f6;overflow:hidden}.hotrank-page .hot-cate li{float:left;height:45px;line-height:45px;display:table-cell}.hotrank-page .hot-cate li a{vertical-align:middle;padding:0 26px;font-size:14px;color:#777;border-left:1px solid #999}.hotrank-page .hot-cate li:first-child a{border:none}.hotrank-page .hot-cate li.current a{font-size:16px;color:#000}.hotrank-page .hot-week-list{width:1160px}.hotrank-page .hot-week-list .good-info{width:280px;height:464px;margin:10px 10px 0 0}.hotrank-page .hot-week-list .good-info .tag-container{display:none}.hotrank-page .hot-week-list .good-info .good-detail-img{height:374px;line-height:374px;text-align:center;font-size:0}.hotrank-page .hot-week-list .good-info .good-detail-img img{vertical-align:middle}.hotrank-page .hot-week-list .good-info .good-detail-text{height:77px;overflow:hidden;text-align:center;color:#222;line-height:18px}.hotrank-page .hot-week-list .good-info .good-detail-text a{max-height:36px;font-size:12px;color:#000;line-height:18px;text-align:center;overflow:hidden}.hotrank-page .hot-week-list .good-info .good-detail-text p{display:inline-block;margin:3px 0 0;font-size:12px;text-align:center;line-height:20px;color:#000}.hotrank-page .hot-week-list .good-info .good-detail-text p .sale-price{margin:0 10px 0 0}.hotrank-page .floatlayer{display:none;position:fixed;top:50%;left:50%;margin:0 0 0 575px;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"}.hotrank-page .floatlayer li{width:42px;height:42px;border:2px solid #555;border-top:none;border-bottom-width:1px;text-align:center}.hotrank-page .floatlayer li a{position:relative;display:table-cell;width:42px;height:42px;vertical-align:middle;color:#555;font-size:12px}.hotrank-page .floatlayer li a span{display:inline-block;vertical-align:middle;width:28px;word-wrap:break-word}.hotrank-page .floatlayer li:first-child{border-top:1px solid #555}.hotrank-page .floatlayer li.current,.hotrank-page .floatlayer li:hover{background:#555}.hotrank-page .floatlayer li.current a,.hotrank-page .floatlayer li:hover a{color:#fff}.min-screen .hotrank-page{width:990px}.min-screen .hotrank-page .popular-list li{width:324px;height:521px}.min-screen .hotrank-page .popular-list li .item-img{height:434px;line-height:434px}.min-screen .hotrank-page .popular-list .popular-item6,.min-screen .hotrank-page .popular-list .popular-item7,.min-screen .hotrank-page .popular-list .popular-item8,.min-screen .hotrank-page .popular-list .popular-item9{width:240px;height:408px}.min-screen .hotrank-page .popular-list .popular-item6 .item-img,.min-screen .hotrank-page .popular-list .popular-item7 .item-img,.min-screen .hotrank-page .popular-list .popular-item8 .item-img,.min-screen .hotrank-page .popular-list .popular-item9 .item-img{height:320px;line-height:320px}.min-screen .hotrank-page .hot-week-list .good-info{width:240px;height:408px}.min-screen .hotrank-page .hot-week-list .good-info .good-detail-img{height:320px;line-height:320px}.shop-entry-area{width:100%;height:auto;overflow:hidden;display:none}.shop-entry-area .shop-entry:first-child{margin-left:0}.shop-entry{position:relative;background:#f5f7f6;border:1px solid #eaeceb;padding:12px 15px;width:49%;box-sizing:border-box;float:left;margin:0 0 10px 2%}.shop-entry .logo{width:80px;height:50px}.shop-entry .name{margin-left:10px;width:70%}.shop-entry .shop-name{font-size:16px;color:#222;line-height:26px;height:26px}.shop-entry .shop-name,.shop-entry .sorts{width:100%;display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.shop-entry .sorts{color:#999;font-size:12px;line-height:18px;height:18px}.shop-entry .sorts a{color:#999}.shop-entry .entry-btn{position:absolute;right:15px;top:50%;width:110px;height:32px;line-height:32px;margin-top:-16px;background:#222;text-align:center;color:#fff;font-size:12px}.shop-entry .entry-btn .iconfont{font-size:12px}.goods-container{height:auto;padding:25px 0 0;position:relative;width:980px}.goods-container .good-info{width:235px}.product-detail-page .brand-banner{height:45px;width:100%}.product-detail-page .brand-banner img{display:block;height:45px}.product-detail-page .brand-banner .opt{margin-top:5px}.product-detail-page .brand-banner .brand-fav,.product-detail-page .brand-banner .home{display:inline-block;width:32px;height:32px;line-height:32px;border:1px solid #fff;text-align:center;color:#fff;cursor:pointer}.product-detail-page .brand-banner .home{margin-right:5px}.product-detail-page .brand-banner .home .iconfont{font-size:14px}.product-detail-page .brand-banner .brand-fav .iconfont{font-size:13px}.product-detail-page .brand-banner .coled{color:#ee0014}.product-detail-page .path-nav{border:none;margin-bottom:0}.product-detail-page .main{width:990px;margin:0 auto}.product-detail-page .main .infos{width:465px}.product-detail-page .main .img{position:relative;width:420px;height:560px}.product-detail-page .main .img-show{display:block;width:100%;height:100%}.product-detail-page .main .tags{position:absolute;top:0;left:0}.product-detail-page .main .good-tag{float:left;box-sizing:border-box;height:22px;line-height:22px;color:#fff;padding:0 7px;margin-right:5px;font-size:12px}.product-detail-page .main .new-tag{background:#78dc7d}.product-detail-page .main .renew-tag{background:#78dc7e}.product-detail-page .main .running-man-tag{background-color:#017df9;color:#f7ed02}.product-detail-page .main .sale-tag,.product-detail-page .main .yep-tag,.product-detail-page .main .ymp-tag{background:#ff565b}.product-detail-page .main .few-tag{background:#ffac5b}.product-detail-page .main .limit-tag{border:1px solid #4e4e4e;color:#4e4e4e;background:#fff}.product-detail-page .main .thumbs{width:75px;height:510px;margin-left:2px;overflow:hidden}.product-detail-page .main .thumb{display:block;width:75px;cursor:pointer;margin-bottom:2px}.product-detail-page .main .name{font-size:18px;font-weight:700;line-height:24px}.product-detail-page .main .sale-tip{color:#ee0014;padding-left:3px}.product-detail-page .main .brand-name{color:#666;font-size:12px}.product-detail-page .main .title{color:#999;font-size:12px}.product-detail-page .main .market-price{margin-top:8px}.product-detail-page .main .price{color:#000;font-size:22px;line-height:24px;font-weight:700}.product-detail-page .main .has-other-price{color:#999;text-decoration:line-through;font-size:12px}.product-detail-page .main .arrival-date{color:#ee0014;font-size:14px;font-weight:700;margin-left:24px}.product-detail-page .main .vip-price{line-height:14px;color:#222;margin-top:5px;background:url(../assets/img/product/vip-price-icon.png?v1559f4c3d1d) no-repeat;padding-left:48px;font-size:12px}.product-detail-page .main .vip-price .cur,.product-detail-page .main .vip-price .login-url{color:#f02200}.product-detail-page .main .vip-price .vip-price-item{margin-left:5px}.product-detail-page .main .vip-price .vip-schedual{color:#999;text-decoration:underline;margin-left:5px}.product-detail-page .main .activity{margin-top:12px}.product-detail-page .main .activity li{line-height:20px}.product-detail-page .main .ac-type{display:inline-block;min-width:50px;max-width:100px;height:16px;line-height:16px;margin-right:5px;padding:0 5px;text-align:center;background:#999;color:#fff;font-size:12px;overflow:hidden;vertical-align:middle}.product-detail-page .main .ac-des{font-size:12px}.product-detail-page .main .row{margin-top:10px}.product-detail-page .main .trade-content{padding-top:20px;margin-top:20px;border-top:1px solid #eaeceb}.product-detail-page .main .chose-color{font-size:12px}.product-detail-page .main .chose-color .title{margin-top:14px}.product-detail-page .main .chose-color img{display:block;height:36px;width:36px;border:2px solid #fff}.product-detail-page .main .chose-color .focus img{border-color:#222}.product-detail-page .main .chose-color li{margin-right:5px;margin-bottom:5px;cursor:pointer}.product-detail-page .main .chose-size{font-size:12px}.product-detail-page .main .chose-size .title{margin-top:6px}.product-detail-page .main .chose-size li{float:left;display:block;height:22px;line-height:22px;margin-right:5px;margin-bottom:5px;padding:0 5px;border:1px solid #eaeceb;text-align:center;cursor:pointer;min-width:28px}.product-detail-page .main .chose-size li.disable{opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"}.product-detail-page .main .chose-size li.focus{color:#fff;background:#222}.product-detail-page .main .size-wrapper{width:415px}.product-detail-page .main .size{float:left;color:#666}.product-detail-page .main .size-ruler{float:left;display:block;width:57px;height:24px;background:url(../assets/img/product/size-ruler.jpg?v1559f4c3d1c);margin-bottom:5px;cursor:pointer}.product-detail-page .main .num-warn,.product-detail-page .main .size-warn{float:left;height:24px;line-height:24px}.product-detail-page .main .color-size-tip{color:#999;clear:both;line-height:18px}.product-detail-page .main .chose-count .title{margin-top:6px}.product-detail-page .main .num{display:block;width:38px;height:23px;line-height:23px;text-align:center;border:1px solid #eaeceb;color:#333;font-size:12px;background:#ebebe4}.product-detail-page .main .minus-plus{display:block;width:14px;height:23px;border:1px solid #eaeceb;border-left:none;text-align:center;cursor:pointer}.product-detail-page .main .minus-plus i{display:block;width:13px;height:11px;line-height:8px;font-size:12px;-moz-user-select:none}.product-detail-page .main .minus-plus .dis{color:#999}.product-detail-page .main .minus{border-top:1px solid #eaeceb;font-size:13px}.product-detail-page .main .lc-btn{float:left;display:block;width:80px;height:25px;line-height:25px;color:#fff;background:#222;margin-left:10px;font-size:12px;text-align:center;cursor:default}.product-detail-page .main .lc-btn.dis,.product-detail-page .main .lc-btn.had-lc,.product-detail-page .main .lc-btn.lc-sold-out{background:#ccc}.product-detail-page .main .num-wraper{position:relative}.product-detail-page .main .lc-container{position:absolute;top:-39px;right:-233px;z-index:1}.product-detail-page .main .lc-arrow{position:absolute;top:40px;left:-12px;width:13px;height:20px;background:url(../assets/img/product/arrow.png?v1559f4c3d0e)}.product-detail-page .main .lc-content{box-sizing:border-box;width:220px;height:285px;text-align:center;background:#f8f8f8;border:1px solid #cecece;padding:40px 25px 0}.product-detail-page .main .lc-content .qr-code{width:137px;height:137px;background:url(../assets/img/product/top-good-qr.png?v1559f4c3d1c);margin:0 auto}.product-detail-page .main .lc-content .title{font-size:18px;color:#000;margin:12px 0;line-height:24px}.product-detail-page .main .lc-content .sub-title{font-size:14px;color:#939290}.product-detail-page .main .buy-btn{display:inline-block;margin-right:10px;height:48px;line-height:48px;width:197px;text-align:center;color:#fff;background:#e92601;font-size:14px;cursor:pointer}.product-detail-page .main .buy-btn.hover{background:#eb3b19;background:rgba(233,38,1,.8)}.product-detail-page .main .buy-btn.dis{background:#ccc}.product-detail-page .main .collect-product,.product-detail-page .main .keep-shopping{display:inline-block;width:127px;height:48px;text-align:center;line-height:48px;background:#fff;color:#222;border:1px solid #ccc;font-weight:700;font-size:12px;cursor:pointer}.product-detail-page .main .collect-product .iconfont,.product-detail-page .main .keep-shopping .iconfont{color:#ccc;font-size:14px}.product-detail-page .main .collect-product.coled .iconfont,.product-detail-page .main .keep-shopping.coled .iconfont{color:#fa5252}.product-detail-page .main .share-row{margin-top:20px}.product-detail-page .main .share-row .title{margin-top:2px}.product-detail-page .main .balance{display:none}.product-detail-page .main .balance .success-tip{color:#222;font-size:18px;margin-bottom:10px}.product-detail-page .main .balance .cart-total{color:#999;font-size:12px}.product-detail-page .main .balance .balance-btns{margin-top:20px}.product-detail-page .other-infos{padding-bottom:30px}.product-detail-page .info-block{margin-top:30px;color:#999;border-top:2px solid #eaeceb;font-size:12px}.product-detail-page .info-block .basic{width:640px;margin:0 auto}.product-detail-page .info-block .basic li{float:left;width:25%;line-height:20px}.product-detail-page .info-block .comfort{width:470px;border:1px solid #eaeceb;margin:17px auto 0;padding-bottom:15px}.product-detail-page .info-block .comfort li{margin:12px 20px 0}.product-detail-page .info-block .comfort-block{display:inline-block;width:14px;height:10px;border:1px solid #eaeceb;margin-right:2px}.product-detail-page .info-block .comfort-block.cur{background:#999;border:1px solid #999}.product-detail-page .block-title{margin-bottom:25px;text-align:center}.product-detail-page .block-title .title{display:inline-block;padding-top:15px;font-weight:700;cursor:pointer}.product-detail-page .block-title .title.cur{color:#222;border-top:2px solid #222;margin-top:-2px}.product-detail-page .block-title .sep{display:inline-block;margin:0 30px;color:#eaeceb;font-size:14px;cursor:default;font-weight:700}.product-detail-page .description-content{overflow:hidden}.product-detail-page .material-content{display:none;overflow:hidden}.product-detail-page .material-detail li{width:860px;padding-bottom:20px;border-bottom:1px dotted #eaeceb;margin:0 auto 20px}.product-detail-page .material-detail li img{float:left;width:125px;height:50px}.product-detail-page .material-detail li .name{float:left;width:100px;line-height:25px;border-right:1px dotted #eaeceb;color:#666;font-weight:700;text-align:center;font-size:14px}.product-detail-page .material-detail li .text{float:left;width:614px;padding-left:20px;line-height:18px}.product-detail-page .wash{text-align:center}.product-detail-page .wash li{display:inline-block;padding:0 20px;color:#666;border-right:1px solid #eaeceb}.product-detail-page .size-info{text-align:center}.product-detail-page .fitting-report-table,.product-detail-page .reference-table,.product-detail-page .size-table{text-align:center;margin:0 auto}.product-detail-page .fitting-report-table th,.product-detail-page .reference-table th,.product-detail-page .size-table th{width:110px;text-align:center}.product-detail-page .fitting-report-table tr,.product-detail-page .reference-table tr,.product-detail-page .size-table tr{height:30px}.product-detail-page .fitting-report-table td,.product-detail-page .fitting-report-table tr,.product-detail-page .reference-table td,.product-detail-page .reference-table tr,.product-detail-page .size-table td,.product-detail-page .size-table tr{text-align:center}.product-detail-page .fitting-report-table thead,.product-detail-page .reference-table thead,.product-detail-page .size-table thead{background:#f5f7f6;color:#999}.product-detail-page .fitting-report-table tbody,.product-detail-page .reference-table tbody,.product-detail-page .size-table tbody{color:#222}.product-detail-page .fitting-report-table .avatar,.product-detail-page .reference-table .avatar,.product-detail-page .size-table .avatar{width:26px;height:26px;border-radius:50px}.product-detail-page .fitting-report-table .avatar-col,.product-detail-page .reference-table .avatar-col,.product-detail-page .size-table .avatar-col{width:26px;padding-left:20px;padding-right:20px}.product-detail-page .fitting-report-table .model-col,.product-detail-page .reference-table .model-col,.product-detail-page .size-table .model-col{width:90px}.product-detail-page .fitting-report-table .remark-col,.product-detail-page .reference-table .remark-col,.product-detail-page .size-table .remark-col{width:200px}.product-detail-page .fr-img-wrap{width:100%;text-align:center}.product-detail-page .fr-img-wrap img{max-width:100%}.product-detail-page .ref-model{padding-top:10px}.product-detail-page .ref-model .model{width:444px;height:35px;padding-top:47px;padding-left:316px;color:#666;overflow:hidden;margin:10px auto 0}.product-detail-page .ref-model .model em{margin-left:5px}.product-detail-page .size-tip{color:#999;margin-top:15px;text-align:center}.product-detail-page .details{text-align:center;font-size:12px;color:#999;line-height:18px}.product-detail-page .details-html{width:750px;text-align:center;margin:0 auto}.product-detail-page .details-html b{font-weight:700}.product-detail-page .details-html i{font-style:italic}.product-detail-page .consults{display:none}.product-detail-page .consult-comment .title,.product-detail-page .consult-comment .title.cur{color:#666}.product-detail-page .cc-content{background:#f5f7f6;padding:20px 20px 0;font-size:12px}.product-detail-page .cc-content h2{font-weight:700;font-size:14px;margin-bottom:10px;color:#000}.product-detail-page .cc-content li{border-top:1px solid #eaeceb;padding:20px 0}.product-detail-page .cc-content .user-info{color:#999;line-height:16px}.product-detail-page .cc-content .user-info>*{float:left}.product-detail-page .cc-content .user-info .name{color:#666}.product-detail-page .cc-content .user-info .date{color:#bbb}.product-detail-page .cc-content .user-info .question{color:#222}.product-detail-page .cc-content .user-avatar{width:30px;height:30px;margin-right:5px}.product-detail-page .cc-content .more-wrap{text-align:center;border-top:1px solid #eaeceb;padding:20px 0;font-size:14px;font-weight:700;color:#666}.product-detail-page .cc-content .btn-wrap{padding:20px 0;border-top:1px solid #eaeceb}.product-detail-page .cc-content .load-more{cursor:pointer}.product-detail-page .cc-content .btn{display:block;width:140px;height:32px;line-height:32px;color:#fff;background:#222;text-align:center;font-size:12px;margin:0 auto;cursor:pointer}.product-detail-page .cc-content .btn .iconfont{font-size:14px}.product-detail-page .cc-content .comment,.product-detail-page .cc-content .consult{margin-top:10px}.product-detail-page .cc-content .consults{display:none}.product-detail-page .new-consult{padding:20px 0;border-top:1px solid #eaeceb}.product-detail-page .new-consult textarea{width:590px;height:80px;padding:5px;outline:none;resize:none}.product-detail-page .new-consult .submit-consult{display:block;width:140px;height:32px;line-height:32px;margin:8px 0 0}.product-detail-page .new-consult .error{border-color:#e01}.product-detail-page .consult-success{border-top:1px solid #eaeceb;margin-top:30px;text-align:center;padding:20px 0}.product-detail-page .consult-success p{width:295px;height:55px;line-height:55px;margin:0 auto;border:2px solid #222;display:block;color:#222;font-weight:700}.product-detail-page .after-service{text-align:center;margin-top:30px}.product-detail-page .after-service .after-service-content{display:none}.product-detail-page .after-service .after-service-switch{height:44px;line-height:44px;background:#eaeceb;text-align:center;font-size:12px;cursor:pointer}.product-detail-page .after-service .after-service-switch .iconfont{font-size:12px}.product-detail-page .after-service .text{padding:20px 15px;background:#f5f7f6;text-align:left;color:#666;line-height:18px}.product-detail-page .after-service .orange{color:#f9761a}.product-detail-page .after-service h4{font-weight:700;font-size:14px;line-height:24px;color:#222;margin-top:10px}.product-detail-page .after-service h4:first-child{margin-top:0}.product-detail-page .after-service .img-1{width:715px;height:259px;margin:0 auto;background:url(../assets/img/product/after-service-1.png?v1559f4c3d0b)}.product-detail-page .after-service .img-2{width:715px;height:230px;margin:0 auto;background:url(../assets/img/product/after-service-2.png?v1559f4c3d0c)}.product-detail-page .after-service a{color:#666}.product-detail-page .service{width:403px;height:19px;margin:45px auto;background:url(../assets/img/product/service.png?v1559f4c3d16)}.product-detail-page .latest-walk{overflow:inherit}.product-detail-page .latest-walk .goods{width:1010px;margin:0 auto;height:auto}.product-detail-page .latest-walk .goods>div{float:left;width:180px;margin-right:22px}.product-detail-page .latest-walk img{height:240px;width:180px;display:block}.product-detail-page .latest-walk .name{display:block;margin-top:5px;color:#222;line-height:16px}.product-detail-page .latest-walk .price{color:#222;font-weight:700;margin-top:5px}.product-detail-page .latest-walk .market-price{margin-right:5px}.product-detail-page .latest-walk .has-sale{text-decoration:line-through;color:#999}.product-detail-page .warn-tip{display:inline-block;color:#e01;margin-left:7px;font-size:12px}.product-detail-page .warn-tip i{font-size:14px}.product-detail-page .hot-point-wrap{position:relative;margin:0 auto}.product-detail-page .hot-point-wrap .hot-point{position:absolute;background:#fff\9;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0)}.product-detail-page .hot-point-wrap .hot-point.hover .pointer{background-position:0 -25px}.product-detail-page .hot-point-wrap .hot-point.hover .hp-good{display:block}.product-detail-page .hot-point-wrap .pointer{position:absolute;display:block;background:url(../assets/img/product/hp-num.png?v1559f4c3d14) no-repeat 0 0;color:#fff;cursor:pointer;width:25px;height:25px;line-height:25px;text-align:center;left:0;top:0;font-size:18px}.product-detail-page .hot-point-wrap .hp-good{display:none;position:absolute;left:30px;top:0;width:210px;background:#000;height:60px;padding:10px}.product-detail-page .hot-point-wrap .hp-good .pic{display:block;float:left;width:60px;height:60px;margin-right:10px}.product-detail-page .hot-point-wrap .hp-good .info{position:relative;float:left;color:#fff;font-size:12px;width:140px;height:60px;line-height:20px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:left}.product-detail-page .hot-point-wrap .hp-good .check-btn{display:block;position:absolute;height:18px;width:40px;text-decoration:none;right:0;bottom:0;text-align:center;background:#e8e8e8;border-radius:2px}.shop-index-page{margin:10px auto 30px;width:1150px}.shop-index-page .shop-banner{position:relative}.shop-index-page .shop-banner .shop-name{position:absolute;left:260px;bottom:20px;font-size:36px;color:#fff}.shop-index-page .shop-banner .banner-img{width:100%;height:150px}.shop-index-page .shop-banner .opt-wrap{position:absolute;top:65%;right:0;padding:0 10px}.shop-index-page .shop-banner .shop-collect,.shop-index-page .shop-banner .shop-intro{display:inline-block;width:110px;height:30px;margin-right:10px;font-size:16px;line-height:30px;text-align:center;color:#fff;border:1px solid #fff;cursor:pointer}.shop-index-page .shop-banner .shop-collect i,.shop-index-page .shop-banner .shop-intro i{background-repeat:no-repeat;float:left;position:relative;left:11px;top:5px}.shop-index-page .shop-banner .shop-collect .shop-intro-ico,.shop-index-page .shop-banner .shop-intro .shop-intro-ico{width:16px;height:20px;background-image:url(../assets/img/product/shop-instro.png?v1559f4c3d19);margin-right:12px}.shop-index-page .shop-banner .shop-collect .shop-collect-ico,.shop-index-page .shop-banner .shop-intro .shop-collect-ico{width:20px;height:19px;background-image:url(../assets/img/product/shop-collection.png?v1559f4c3d18);top:6px;margin-right:12px}.shop-index-page .shop-banner .shop-collect .shop-collect-ico.on,.shop-index-page .shop-banner .shop-intro .shop-collect-ico.on{background-image:url(../assets/img/product/shop-collection-on.png?v1559f4c3d17)}.shop-index-page .shop-nav{box-sizing:border-box;margin-bottom:30px;padding:0 20px;width:100%;height:40px;color:#fff;background:#000;font-size:16px}.shop-index-page .shop-nav a{position:relative;top:8px;display:inline-block;line-height:26px;color:#fff}.shop-index-page .shop-nav .nav-item{position:relative;float:left;width:160px;text-align:center}.shop-index-page .shop-nav .nav-item.first{width:100px;text-align:left}.shop-index-page .shop-nav .current a{border-bottom:2px solid #fff}.shop-index-page .coupon{margin-top:20px;width:100%;height:80px}.shop-index-page .coupon .coupon-title{width:162px;height:100%;background-image:url(../assets/img/sprite.product.png?v1559f4c4797);background-position:0 0}.shop-index-page .slider-wrap{height:360px}.shop-index-page .slider-wrap .slide-wrapper img{width:auto;height:auto}.shop-index-page .slider-left{float:left;margin-right:10px;width:660px;height:100%;overflow:hidden;position:relative}.shop-index-page .slider-left .slide-wrapper{height:358px}.shop-index-page .slider-left .slide-switch a.prev{margin-left:-330px}.shop-index-page .slider-left .slide-switch a.next{margin-right:-330px}.shop-index-page .slider-left img{width:100%;height:100%}.shop-index-page .slider-left .slide-pagination{display:none}.shop-index-page .slider-right{float:left;width:300px;height:100%}.shop-index-page .slider-right .slider-item{display:block;margin-bottom:10px;width:100%;height:175px}.shop-index-page .floor-header{margin-top:50px}.shop-index-page .hot-single,.shop-index-page .new-arrivel{width:980px}.shop-index-page .hot-single .item,.shop-index-page .new-arrivel .item{float:left;position:relative;margin-right:10px;margin-bottom:20px;width:235px;height:315px;font-size:14px;text-align:center;line-height:1.5;background:#f5f5f5;font-weight:700}.shop-index-page .hot-single .item img,.shop-index-page .new-arrivel .item img{width:235px;height:250px}.shop-index-page .hot-single .item .title,.shop-index-page .new-arrivel .item .title{width:220px;padding:0 5px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.shop-index-page .hot-single .hat,.shop-index-page .new-arrivel .hat{position:absolute;top:0;right:0;width:50px;height:50px;color:#ffc513;text-align:center;line-height:57px;background-image:url(../assets/img/sprite.product.png?v1559f4c4797);background-position:0 -82px}.shop-index-page .mask{background-color:#000;opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";position:fixed;top:0;left:0;right:0;bottom:0;z-index:12;display:none;cursor:pointer}.shop-index-page .pop-shop-intro{display:none}.shop-index-page .shop-intro-bg{width:908px;height:604px;background-color:#000;opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";position:fixed;left:50%;top:50%;z-index:13;margin:-302px 0 0 -454px}.shop-index-page .shop-intro-area{width:898px;height:594px;padding:60px 10px 35px 40px;background-color:#fff;position:fixed;left:50%;top:50%;margin:-297px 0 0 -449px;z-index:14;box-sizing:border-box}.shop-index-page .shop-intro-area .close-btn{width:18px;height:18px;background-image:url(../assets/img/product/shop-instro-close.png?v1559f4c3d18);position:absolute;right:20px;top:20px;cursor:pointer}.shop-index-page .shop-intro-area .brand-cont{overflow:auto;width:100%;height:499px;padding-right:30px;box-sizing:border-box}.shop-index-page .shop-intro-area .intro-title{float:left}.shop-index-page .shop-intro-area .intro-title h2{width:100%;float:left;text-align:left;font-size:26px;font-weight:700;color:#000;font-style:italic}.shop-index-page .shop-intro-area .intro-title p{font-family:黑体;font-size:20px;text-align:left;padding:10px 0;float:left}.shop-index-page .shop-intro-area .intro-cont{width:100%;float:left;margin-top:55px;font-size:14px;line-height:20px}.shop-index-page .shop-intro-area .intro-cont p{text-indent:2em}.shop-index-page .shop-intro-area .intro-cont img{width:100%;margin-top:10px}.shop-index-page .fixed-area{background:#fff;z-index:1;width:970px}.shop-index-page .all-goods-menu{width:100%;height:40px;line-height:40px}.shop-index-page .all-goods-menu .menu-tag{color:#d0021b;font-size:18px;font-weight:700;text-align:left;padding:0 20px 0 10px;border-right:1px solid #000;float:left}.shop-index-page .all-goods-menu .menu-list{width:810px;height:40px;overflow:hidden;float:left;font-size:14px}.shop-index-page .all-goods-menu .menu-list li{display:inline-block;padding:0 15px}.shop-index-page .all-goods-menu .menu-list .on{background:#000;height:28px;line-height:28px}.shop-index-page .all-goods-menu .menu-list .on a{color:#fff}.shop-index-page .all-goods-menu .more{font-size:14px;float:right}.shop-index-page .sort-pager .sort-type:first-child .iconfont{display:inline-block}.shop-index-page .loading{position:relative;width:100%;text-align:center}.shop-index-page .loading a{display:block;height:35px;width:120px;margin:0 auto;background-color:#000;color:#fff;font-size:14px;line-height:35px;text-align:center}.shop-index-page .trend-info,.shop-index-page .trend-info .trend-list{width:100%}.shop-index-page .trend-info .trend-list li{float:left;width:316px;margin-left:10px;text-align:center}.shop-index-page .trend-info .trend-list li:first-child{margin-left:0}.shop-index-page .trend-info .trend-list img{width:100%;height:181px}.shop-index-page .trend-info .trend-list .main-title,.shop-index-page .trend-info .trend-list .sub-title{box-sizing:border-box;font-size:16px;margin-top:15px;padding:0 10px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:24px}.shop-index-page .trend-info .trend-list .sub-title{margin-top:0;font-size:14px}.shop-index-page .goods-wrap .goods-container .good-info{width:235px;height:auto;margin-bottom:35px}.shop-index-page .goods-wrap .goods-container .good-detail-text{text-align:left}.shop-index-page .left-modular{width:160px;font-size:14px;margin-top:20px;float:left}.shop-index-page .left-modular .title{width:100%;height:25px;line-height:25px;background:#000;color:#fff;font-family:黑体;padding-left:14px;box-sizing:border-box}.shop-index-page .left-modular .left-list{width:100%;margin-top:5px}.shop-index-page .left-modular .left-list li{width:100%;height:42px;line-height:42px;background:#f5f5f5;float:left;box-sizing:border-box;margin-top:5px;padding-left:14px}.shop-index-page .left-modular .left-list li a{color:#000}.shop-index-page .left-modular .left-list li.on{border:1px solid #000}.shop-index-page .classic-recommend .left-list li{height:50px;line-height:50px}.shop-index-page .classic-recommend .classic-name{width:96px;display:inline-block;line-height:14px;vertical-align:middle;font-weight:700}.shop-index-page .classic-recommend .classic-name .name{font-size:14px}.shop-index-page .classic-recommend .classic-name .en-name{font-size:12px}.shop-index-page .classic-recommend img{width:40px;max-height:40px;margin-right:5px;vertical-align:middle}.shop-index-page .sell-recommend .left-list li{padding-left:0;height:auto;margin-bottom:25px;line-height:inherit}.shop-index-page .sell-recommend .left-list li img{width:100%}.shop-index-page ::-webkit-scrollbar{width:16px;height:16px}.shop-index-page ::-webkit-scrollbar-thumb,.shop-index-page ::-webkit-scrollbar-track{border-radius:999px;border:5px solid transparent}.shop-index-page ::-webkit-scrollbar-track{box-shadow:inset 0 0 6px transparent}.shop-index-page ::-webkit-scrollbar-thumb{min-height:20px;background-clip:content-box;box-shadow:inset 0 0 0 6px rgba(0,0,0,.3)}.shop-index-page ::-webkit-scrollbar-corner{background:transparent}.shop-index-page .page-nav{padding:7px 0;float:right;font-size:14px}.shop-index-page .page-nav .page-prev{width:33px;height:33px;background:#ccc;text-align:center;float:left}.shop-index-page .page-nav .arrow-left{width:10px;height:10px;display:inline-block;position:relative;top:-7px;background:url(../assets/img/product/arrow-left.png?v1559f4c3d0d) no-repeat}.shop-index-page .page-nav a .page-next,.shop-index-page .page-nav a .page-prev{background:#000;color:#fff}.shop-index-page .page-nav .page-next{min-width:110px;height:33px;background:#a9a9a9;float:left;margin-left:1px;line-height:33px;padding-left:10px;box-sizing:border-box;padding-right:10px}.shop-index-page .page-nav .arrow-right{width:10px;height:10px;display:inline-block;vertical-align:middle;background:url(../assets/img/product/arrow-right.png?v1559f4c3d0d) no-repeat}.shop-index-page .page-nav .pages{margin-left:10px}.product-page .product-pager{padding:20px 0;font-size:12px;color:#6a6a6a;border-top:2px solid #eaeceb}.product-page .product-pager .pager{float:right}.product-page .list-left{width:160px}.product-page .list-right{width:970px}.new-sale-page .goods-container,.product-list-page .goods-container{height:auto;padding-top:25px;position:relative;width:980px}.new-sale-page .goods-container .good-info,.product-list-page .goods-container .good-info{width:235px}.new-sale-page .goods-container .good-info .good-detail-img,.product-list-page .goods-container .good-info .good-detail-img{height:315px}.new-sale-page .goods-container .block-next-page,.product-list-page .goods-container .block-next-page{width:235px;height:315px}.new-sale-page .filter-box .brand .attr-content,.product-list-page .filter-box .brand .attr-content{max-width:730px}.min-screen .new-sale-page .list-right,.min-screen .product-list-page .list-right{width:810px}.min-screen .new-sale-page .goods-container,.min-screen .product-list-page .goods-container{height:auto;padding-top:25px;position:relative;width:820px}.min-screen .new-sale-page .goods-container .good-info,.min-screen .product-list-page .goods-container .good-info{width:195px}.min-screen .new-sale-page .goods-container .good-info .good-detail-img,.min-screen .product-list-page .goods-container .good-info .good-detail-img{height:261px}.min-screen .new-sale-page .goods-container .block-next-page,.min-screen .product-list-page .goods-container .block-next-page{width:195px;height:261px}.min-screen .new-sale-page .filter-box .brand .attr-content,.min-screen .product-list-page .filter-box .brand .attr-content{max-width:570px}.passport-page{width:1150px;margin-left:auto;margin-right:auto}.passport-page .content{float:left;margin-top:107px;padding-left:85px}.passport-page .input{height:43px;font-size:16px;line-height:1.2;line-height:43px\9;width:268px;border:1px solid #dbdbdb;text-indent:10px;color:#9a9a9a;color:rgba(0,0,0,.5)}.passport-page .error{border-color:red!important}.passport-page .btn{display:block;height:46px;line-height:46px;width:100%;text-align:center;color:#fff;background-color:#ff1901;letter-spacing:10px;font-size:20px;cursor:pointer}.passport-page .btn.disable{background-color:#555;cursor:default}.passport-page .pwd-intensity-container{width:270px;text-align:right;padding-top:5px}.passport-page .pwd-intensity-container .pwd-intensity{height:15px;font-size:12px;background-color:#e8e8e8;padding:0 10px;text-align:center;color:#b9b9b9}.passport-page .pwd-intensity-container.red .pwd-intensity{color:#e01}.passport-page .pwd-intensity-container.red .color{background:#e01;color:#fff}.passport-page .pwd-intensity-container.yellow .pwd-intensity{color:#f6da1e}.passport-page .pwd-intensity-container.yellow .color{background:#f6da1e;color:#fff}.passport-page .pwd-intensity-container.green .pwd-intensity{color:#3ee392}.passport-page .pwd-intensity-container.green .color{background:#3ee392;color:#fff}.passport-page .pwd-tips{position:absolute;top:-10px;left:285px;width:160px!important;height:72px;padding-top:7px;font-size:12px;background-image:url(../assets/img/sprite.passport.png?v1559f4c4797);background-position:0 0}.passport-page .pwd-tips>div{position:relative;height:22px;line-height:22px;margin-left:15px;padding-left:15px;font-size:12px;color:#b9b9b9}.passport-page .pwd-tips>div i{position:absolute;width:14px;height:14px;left:-2px;top:50%;margin:-7px 0 0;background-image:url(../assets/img/sprite.passport.png?v1559f4c4797);background-position:-63px -113px}.passport-page .pwd-tips>div.no{color:red}.passport-page .pwd-tips>div.no i{background-image:url(../assets/img/sprite.passport.png?v1559f4c4797);background-position:-95px -113px}.passport-page .pwd-tips>div.yes i{background-image:url(../assets/img/sprite.passport.png?v1559f4c4797);background-position:-79px -113px}.passport-page .email-autocomplete{position:absolute;width:248px;padding:0 10px;z-index:1;margin-top:5px;border-radius:5px;cursor:pointer;border:1px solid #fefefe;background-color:#161616;color:#fff;font-size:16px}.passport-page .email-autocomplete li{height:24px;line-height:24px}.passport-page .err-tip{position:absolute;font-size:14px;white-space:nowrap;top:8px;left:285px;padding:6px 0;color:red}.passport-page .err-tip i{display:block;float:left;height:14px;width:14px;background-image:url(../assets/img/sprite.passport.png?v1559f4c4797);background-position:-95px -113px;margin-right:5px}.passport-page .err-tip a{text-decoration:underline;color:red}.passport-page .page-tip{display:block;width:100%;height:30px;line-height:30px;text-align:center;font-size:20px;font-weight:700;color:#ccc;clear:both;margin-bottom:15px}.passport-cover{float:left;margin:107px 0;width:575px}.passport-cover .cover-content{width:100%;height:318px;padding:50px 0;border-right:1px solid #dfdfdf}.passport-cover .cover-img{display:block;width:252px;height:190px;margin:0 auto;margin-top:50px}.login-page .relative{position:relative}.login-page .right{float:right}.login-page .login-ul>li{margin-bottom:25px}.login-page .title{float:left;font-size:20px}.login-page .country-code{cursor:pointer;color:#b9b9b9}.login-page .country-list{display:none;position:absolute;padding:0 10px;background:#fff;border:1px solid #000;top:20px;right:0;z-index:1;border-radius:5px}.login-page .country-list li{height:20px;line-height:20px;color:#000}.login-page .captcha-wrap{position:relative}.login-page .captcha-wrap .err-tip{left:335px}.login-page .captcha{width:160px;float:left}.login-page .captcha-img{height:37px;width:90px;border:0;vertical-align:middle;outline:none;margin-left:10px;margin-top:4px;float:left}.login-page .change-captcha{position:absolute;top:0;right:-50px;cursor:pointer;float:left;height:43px;font-size:14px;line-height:43px;color:#ff1901}.login-page .remember-me{cursor:pointer}.login-page .other-opts{color:#b9b9b9;font-size:14px}.login-page .other-opts .iconfont{font-size:14px}.login-page .other-opts .fast-reg{color:#ff1901}.login-page .forget-password{color:#b9b9b9}.login-page .third-party-login{display:table}.login-page .third-party-login a{display:table-cell;width:45px;background-size:100% 100%}.login-page .third-party-login .icon{display:block;width:30px;height:30px;margin:0 auto}.login-page .third-party-login .weixin{background-image:url(../assets/img/sprite.passport.png?v1559f4c4797);background-position:-96px -81px}.login-page .third-party-login .qq{background-image:url(../assets/img/sprite.passport.png?v1559f4c4797);background-position:-128px -81px}.login-page .third-party-login .weibo{background-image:url(../assets/img/sprite.passport.png?v1559f4c4797);background-position:0 -81px}.login-page .third-party-login .alipay{background-image:url(../assets/img/sprite.passport.png?v1559f4c4797);background-position:0 -113px}.login-page .third-party-login .douban{background-image:url(../assets/img/sprite.passport.png?v1559f4c4797);background-position:-64px -81px}.login-page .third-party-login .renren{background-image:url(../assets/img/sprite.passport.png?v1559f4c4797);background-position:-32px -81px}.login-page .caps-lock{position:absolute;color:#666;border:#ffe57d;background:#fff6d2;white-space:nowrap;top:8px;left:278px;padding:0 20px;height:27px;line-height:30px}.register-page{font-size:14px;color:#b9b9b9}.register-page li{margin-bottom:25px;width:270px;position:relative}.register-page li input,.register-page li select{outline:none}.register-page li .input{height:43px;line-height:43px;font-size:16px;width:268px;border:1px solid #dbdbdb;text-indent:10px;color:#9a9a9a;padding:0}.register-page li .input.error{border:1px solid red}.register-page li .input.phone-num{width:209px;display:block;float:left;position:absolute;top:0;right:0}.register-page li .input.captcha,.register-page li .input.msg-captcha{width:160px;float:left}.register-page li .input.agree-terms{vertical-align:middle}.register-page li .send-captcha{top:0;background:#ff1901;position:absolute;width:100px;right:0;font-size:12px;text-indent:0;letter-spacing:0}.register-page li .send-captcha.disable{background:#555}.register-page li .link{text-decoration:underline;color:#ff1901}.register-page li .btn{height:45px;line-height:45px;color:#fff;border:none;padding:0;font-family:黑体,Regular;text-align:center}.register-page li .region{height:30px;padding:4px 0;width:132px;border-color:#c1c1c1;color:#9a9a9a;font-size:16px;font-family:黑体,Regular}.register-page li .country-code{width:58px;height:43px;line-height:43px;text-align:center;white-space:nowrap;border:1px solid #dbdbdb;border-right:0;font-size:16px;display:block;float:left}.register-page li .captcha-img{height:37px;width:90px;border:0;vertical-align:middle;outline:none;margin-left:10px;margin-top:4px;float:left}.register-page li .change-captcha{margin-left:10px;cursor:pointer;float:left;height:43px;line-height:43px}.register-page li .pwd-intensity-container{width:270px;text-align:right;margin-top:5px;height:auto;overflow:hidden}.register-page li .pwd-intensity-container .pwd-intensity{height:15px;font-size:12px;background-color:#e8e8e8;padding:1px 10px;text-align:center}.register-page li .pwd-intensity-container.red{color:red}.register-page li .pwd-intensity-container.red .color{background:red;color:#fff}.register-page li .pwd-intensity-container.yellow .color{background:#ff0;color:#fff}.register-page li .pwd-intensity-container.green .color{background:#3ee392;color:#fff}.register-page li .register-btn{width:270px;font-size:20px;font-weight:700;background:#ff1901}.register-page li .register-btn.disable{background:#555}.register-page li.w330{width:330px}.register-page li.items-container,.register-page li.quick-login-container{font-size:13px;text-align:right;white-space:nowrap}.register-page li.quick-login-container{width:270px}.register-page li.skip-user-info{font-size:18px;text-align:center}.register-page li.skip-user-info a{color:#ff1901;text-decoration:underline}.register-page .msg-tip{position:absolute;top:17px;left:285px;white-space:nowrap}.register-page .msg-tip:before{content:'';display:inline-block;width:12px;height:12px;margin-right:5px;background-image:url(../assets/img/sprite.passport.png?v1559f4c4797);background-position:-63px -129px}.register-page .err-tip{z-index:11;position:absolute;height:30px;line-height:30px;color:red;background-color:#ffebeb;border:1px solid #ffbdbe;padding:0 10px}.register-page .err-tip b{display:block;position:absolute;top:30px;left:20px;background-image:url(../assets/img/sprite.passport.png?v1559f4c4797);background-position:-111px -113px;width:17px;height:9px}.register-page .success-box{font-size:14px;color:#b9b9b9;margin-top:130px}.register-page .success-box .success-text{line-height:29px;padding-left:46px;font-size:16px;color:#000}.register-page .success-box .success-text span{font-size:22px}.register-page .success-box .success-text #count-down{color:#ff1901}.register-page .success-box .success-text:before{content:'';display:inline-block;background-image:url(../assets/img/sprite.passport.png?v1559f4c4797);background-position:-32px -113px;width:29px;height:29px;margin-right:5px;position:relative;top:6px}.register-page .success-box .success-btn{display:block;margin:46px auto 0;width:270px;height:45px;line-height:45px;background:#ff1901;text-align:center;color:#fff;letter-spacing:2px}.back-page{font-size:14px}.back-page .content{margin:175px 0 0!important}.back-page .back-header{position:relative;width:268px;line-height:40px;margin-bottom:5px}.back-page .back-header .country-code{float:right;cursor:pointer;color:#b9b9b9}.back-page .back-header .country-code .iconfont{font-size:14px;vertical-align:middle}.back-page .title{float:left;margin:0}.back-page .title,.back-page .title2{font-size:22px;line-height:40px;color:#000;font-weight:400}.back-page .title2{margin:0 0 5px}.back-page .err-tip.captcha-err{top:10px;left:326px}.back-page .country-code-list{display:none;position:absolute;padding:0 10px;color:#000;background-color:#fff;border:1px solid #000;margin-top:5px;cursor:pointer;z-index:9;top:30px;right:0;border-radius:5px}.back-page .country-code-list li{height:20px;line-height:20px}.back-page .input-container-li{position:relative;margin-bottom:22px}.back-page .input-container-li .btn{width:270px;height:45px;line-height:45px;cursor:pointer;font-size:20px;border:none;letter-spacing:0}.back-page .input-container-li .captcha{width:160px}.back-page .input-container-li .captcha-img{height:37px;width:90px;border:0;margin-left:10px;vertical-align:middle;outline:none;cursor:pointer}.back-page .input-container-li .change-captcha{color:#ff1901;font-size:12px;text-decoration:underline;margin-left:10px;cursor:pointer}.send-email-page{font-size:14px}.send-email-page .content{margin:216px 0 0!important}.send-email-page .send-tips{line-height:28px;color:#4c4c4c;text-align:center;font-size:15px}.send-email-page .send-tips .iconfont{margin:0 8px 0 0}.send-email-page .no-find{margin:10px 0 0;line-height:20px;color:#a5a4a4;text-align:center}.send-email-page .to-my-email a{display:block;margin:53px auto 0;width:270px;height:45px;line-height:45px;background:#ff1901;text-align:center;color:#fff;letter-spacing:2px}.verification-page .content li{position:relative;margin-bottom:43px}.verification-page .content .btn{display:inline-block;border:none}.verification-page .content .head-title{font-size:24px;color:#000}.verification-page .content .pn-label{color:#828282;font-size:16px}.verification-page .content .country-code{margin:0 10px}.verification-page .content .country-code,.verification-page .content .phone-num{color:#000;font-size:16px}.verification-page .content .captcha{width:160px!important}.verification-page .content .send-captcha{width:133px;font-size:12px;position:relative;top:-1px;letter-spacing:0}.verification-page .content .err-tip{left:310px}.verification-page .content .captcha-tips{position:absolute;top:50px;color:#a5a4a4}.verification-page .content .captcha-tips .iconfont{color:#0f9acd;font-size:14px;margin:0 8px 0 0;vertical-align:12%}.reset-success-page .content{margin:255px 0 0!important}.reset-success-page .success-text{line-height:35px}.reset-success-page .success-text .iconfont{font-size:30px;color:#ee3f14}.reset-success-page .success-text span{font-size:24px;margin:0 18px}.reset-success-page .success-text #count-down{color:#ee3f14}.reset-success-page .success-btn{display:block;margin:43px auto 0;width:269px;line-height:269px;height:45px;line-height:45px;font-size:14px;color:#fff;text-align:center;background-color:#ff1901}.welcome-page{text-align:center;color:#7f7f7f}.welcome-page .content{padding-top:82px}.welcome-page .wel-title{font-size:30px;margin-bottom:30px}.welcome-page .wel-title em{font-style:normal;color:#ff1901}.welcome-page .wel-sub-title{font-size:16px;margin-bottom:60px}.welcome-page .link{display:block}.welcome-page .link span{color:#7f7f7f}.welcome-page .link-img{height:91px;width:91px;background-size:100% 100%;margin-bottom:10px}.welcome-page .go-shopping{float:left;padding-left:100px}.welcome-page .go-shopping div{background-image:url(../assets/img/passport/go-shopping.png?v1559f4c3cf3)}.welcome-page .complete-info{float:right;padding-right:100px}.welcome-page .complete-info div{background-image:url(../assets/img/passport/edit-info.png?v1559f4c3cf2)}.yohobindbtn{display:block;width:210px;height:45px;line-height:45px;background-color:#f02200;color:#fff;font-size:16px;text-align:center}.hide{display:none}.novisiable{visibility:hidden}.actlevel{background-color:#f02200!important;color:#fff!important}.mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:15;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.bindwrapper{margin:0 auto;width:980px;min-height:450px;padding-top:122px}.welcomeword{width:100%;text-align:center;font-size:22px;line-height:22px;color:#545454;margin-bottom:15px}.welcomeword .yoho{color:#e12000}.safeword{width:100%;text-align:center;font-size:16px;line-height:16px;color:#545454;margin-bottom:63px}.yohobindrow{width:485px;margin:0 auto 22px;height:40px}.yohobindrow .name{float:left;text-align:right;margin-right:14px;width:96px}.yohobindrow .areatag{height:30px;line-height:30px}.yohobindrow .phonetag,.yohobindrow .setpwdtag{height:47px;line-height:47px}.yohobindrow .content{float:left;text-align:left;margin-top:0;padding-left:0}.yohobindrow .errinfo{color:#f02200;line-height:49px;margin-left:5px}.yohobindrow:after{display:block;content:'';clear:both}.sendnotify{width:260px;text-align:left;margin:0 auto 18px}.validaterow{margin:0 auto 22px;padding-left:248px}.validaterow .name{float:left;text-align:right;margin-right:14px;width:96px}.validaterow .areatag{height:30px;line-height:30px}.validaterow .phonetag{height:47px;line-height:47px}.validaterow .content{float:left;text-align:left}.validaterow .content .err-tip{left:430px}.validaterow .validatewrapper{float:left;height:45px;width:133px;text-align:center;line-height:45px;background-color:#d8d8d8;color:#000;font-size:13px;margin-left:18px}.validaterow .validatewrapper .yohobindbtn{width:133px;font-size:13px}.validaterow:after{display:block;content:'';clear:both}.validatepicrow{overflow:hidden;margin:0 auto 22px;padding-left:250px}.validatepicrow .name{float:left;text-align:right;margin-right:14px;width:96px}.validatepicrow .areatag{height:30px;line-height:30px}.validatepicrow .phonetag{height:47px;line-height:47px}.validatepicrow .content{float:left;text-align:left}.validatepicrow .validatewrapper{float:left;height:45px;text-align:center;line-height:45px;color:#000;font-size:13px;margin-left:18px}.validatepicrow .validatewrapper .yohobindbtn{width:133px;font-size:13px}.validatepicrow .change-captcha{cursor:pointer;color:#f02200;text-decoration:underline}.validatepicrow:after{display:block;content:'';clear:both}.setpwdwrapper{margin-bottom:10px;height:45px}.safelevel{width:291px;margin:0 auto;text-align:right}.safelevel,.safelevel span{height:15px;font-size:10px;color:#000}.safelevel span{width:28px;line-height:15px;background-color:#e5e5e5;margin-right:4px;padding:1px 8px}.green .color{background-color:#0f0;color:#fff}.yellow .color{background-color:#ff0;color:#fff}.red .color{background-color:red;color:#fff}.yohoselectarea{position:relative;box-sizing:border-box;width:131px;height:33px}.yohoselectarea .optionshow{width:100%;height:100%;padding-left:16px;border:1px solid #d9d9d9}.yohoselectarea .optionshow .areaname{display:block;float:left;width:110px;height:100%;line-height:33px;font-size:13px;color:#000}.yohoselectarea .optionshow .righttag{display:block;float:left;width:21px;height:100%;line-height:33px;background-color:#d8d8d8;background-image:url(../assets/img/passport/arrowbottom.png?v1559f4c3cee);background-repeat:no-repeat;background-position:50%}.yohoselectarea .optionslist{background-color:#fff;position:absolute;top:35px;left:0;width:149px;z-index:2}.yohoselectarea .optionslist .optionitem{height:33px;line-height:33px;padding-left:16px;font-size:13px}.yohoselectarea .optionslist .optionitem:hover{background-color:#dfdfdf}.yohophonewrapper{width:271px;height:47px;border:1px solid #d9d9d9;position:relative}.yohophonewrapper .areanum{float:left;height:100%;width:63px;line-height:47px;text-align:center;color:#000;background-color:#d8d8d8}.yohophonewrapper .phonenum{outline:none;box-sizing:border-box;float:left;height:45px;width:205px;line-height:38px;padding-left:8px;border:none;color:#000}.yohophonewrapper .pwdcontent,.yohophonewrapper .validatenum{width:100%}.protoctolwrapper{width:350px;margin:38px auto 0;padding-left:85px;overflow:hidden}.protoctolwrapper .choosewrapper{float:left;width:13px;height:13px;background-color:#4c4c4c;background-image:url(../assets/img/passport/choosed.png?v1559f4c3cf1);background-position:50%;background-repeat:no-repeat;margin-right:14px}.protoctolwrapper .choosetag{width:110%;height:110%;display:block;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";margin:0}.protoctolwrapper span{float:left;color:#666;font-size:13px;line-height:14px}.protoctolwrapper .protoctol{color:#f02200;text-decoration:underline}.protoctolwrapper:after{display:block;content:'';clear:both}.confirmwrapper{overflow:hidden;margin-top:47px!important}.btnwrapper{width:350px;margin:20px auto 0;padding-left:85px}.thirdloginwrapper{margin:0 auto;width:1150px;min-height:450px;padding-top:160px}.thirdloginwrapper .safeword{margin-bottom:30px}.thirdloginwrapper .left{box-sizing:border-box;float:left;width:450px;height:318px;border-right:1px solid #e5e5e5}.thirdloginwrapper .right{box-sizing:border-box;float:right;width:696px;padding-top:64px;height:318px}.thirdloginwrapper .completeprofile,.thirdloginwrapper .gobuy{float:left;display:inline-block;width:94px;height:94px;line-height:94px;text-align:center;border-radius:50%;background-color:#f02200;color:#fff}.thirdloginwrapper .gobuy{margin-left:228px;margin-right:80px}.bindsuccesswrapper{margin:0 auto;width:1150px;min-height:450px;padding-top:160px}.bindsuccesswrapper .successwrapper{width:320px;height:29px;margin:0 auto 16px}.bindsuccesswrapper .successwrapper .successtag{display:inline-block;margin-right:28px;float:left;width:29px;height:29px;background-image:url(../assets/img/passport/bindsuccess.png?v1559f4c3cef);background-repeat:no-repeat}.bindsuccesswrapper .successwrapper .congratulation{display:inline-block;height:29px;line-height:29px;font-size:22px}.bindsuccesswrapper .info{text-align:center;font-size:16px;margin-bottom:48px}.bindsuccesswrapper .gobuynow{margin:0 auto}.bindconfrimwrapper{width:900px;height:439px;margin:-217px auto;background-color:#fff;box-sizing:border-box;padding-top:37px}.bindconfrimwrapper .topwrapper{width:281px;height:90px;margin:0 auto 32px}.bindconfrimwrapper .topwrapper .userphoto{width:90px;height:90px;vertical-align:middle;border-radius:50%;margin-right:22px}.bindconfrimwrapper .topwrapper .username{vertical-align:middle;display:inline-block;width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700;color:#545454}.bindconfrimwrapper .usertaginfo{text-align:center;font-size:18px;font-weight:700;color:#545454;margin-bottom:15px}.bindconfrimwrapper .usertagremind{text-align:center;font-size:16px;color:#888;margin-bottom:47px}.bindconfrimwrapper .otherphone{margin:0 auto 64px}.bindconfrimwrapper .logindirectly{display:block;text-align:center;text-decoration:underline;color:#f02200}.yohobindbtn[disabled]{background-color:#e5e5e5;cursor:not-allowed}.gobindwrapper{width:100%;height:45px;margin-bottom:70px}.gobindwrapper .myphone{float:left;margin-left:20px;width:193px}.gobindwrapper .logindirectly{display:inline-block}.gobindwrapper .validaterow{overflow:hidden;margin:0 auto 22px;padding-left:222px;float:left}.gobindwrapper .validaterow .name{float:left;text-align:right;margin-right:14px;width:96px}.gobindwrapper .validaterow .areatag{height:30px;line-height:30px}.gobindwrapper .validaterow .phonetag{height:47px;line-height:47px}.gobindwrapper .validaterow .content{float:left;text-align:left}.gobindwrapper .validaterow .content .validatacode{outline:none;box-sizing:border-box;float:left;height:45px;width:113px;line-height:38px;padding-left:8px;border:1px solid #d9d9d9;color:#000}.gobindwrapper .validaterow .validatewrapper{float:left;height:45px;width:133px;text-align:center;line-height:45px;background-color:#d8d8d8;color:#000;font-size:13px;margin-left:18px}.gobindwrapper .validaterow .validatewrapper .yohobindbtn{width:133px;font-size:13px}.gobindwrapper:after{display:block;content:'';clear:both}.gobindbottomwrapper{width:100%;padding-left:341px}.gobindbottomwrapper .logindirectly{display:inline-block;float:left;margin-right:36px;text-decoration:underline;color:#f02200}.pwd-tips{position:absolute;z-index:11;top:-10px;left:285px;width:160px!important;height:72px;padding-top:7px;font-size:12px;background-image:url(../assets/img/sprite.passport.png?v1559f4c4797);background-position:0 0;background-color:#fff}.pwd-tips>div{position:relative;height:22px;line-height:22px;margin-left:15px;padding-left:15px;font-size:12px;color:#b9b9b9}.pwd-tips>div i{position:absolute;width:14px;height:14px;left:-2px;top:50%;margin:-7px 0 0;background-image:url(../assets/img/sprite.passport.png?v1559f4c4797);background-position:-63px -113px}.pwd-tips>div.no{color:red}.pwd-tips>div.no i{background-position:-95px -113px}.pwd-tips>div.no i,.pwd-tips>div.yes i{background-image:url(../assets/img/sprite.passport.png?v1559f4c4797)}.pwd-tips>div.yes i{background-position:-79px -113px}.tip-panel{position:absolute;display:none;width:248px;padding:0 10px;z-index:9;background-color:#161616;border:1px solid hsla(0,0%,100%,.7);margin-top:5px;cursor:pointer;border-radius:5px}.tip-panel li{height:20px;line-height:20px;color:#b9b9b9}.err-tip{position:absolute;font-size:14px;white-space:nowrap;top:8px;left:285px;padding:6px 0;color:red}.err-tip i{display:block;float:left;height:14px;width:14px;background-image:url(../assets/img/sprite.passport.png?v1559f4c4797);background-position:-95px -113px;margin-right:5px}.err-tip a{text-decoration:underline;color:red}.backdrop{position:fixed;background:#000;width:100%;height:100%;left:0;top:0;bottom:0;right:0;opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"}.err-info{display:none;z-index:11;position:absolute;top:-41px;left:0;height:30px;line-height:30px;color:red;background-color:#ffebeb;border:1px solid #ffbdbe;padding:0 10px}.err-info b{background:url(../assets/img/passport/angle.png?v1559f4c3ced);position:absolute;height:9px;width:17px;top:30px;left:10px}.third-relate-page{min-height:600px}.third-relate-page .relate-main{padding-top:100px}.third-relate-page .user-wrapper{width:280px;margin:0 auto}.third-relate-page .user-wrapper .user-thumb{width:94px;height:94px;border-radius:50%;display:inline-block;overflow:hidden}.third-relate-page .user-wrapper .user-thumb img{width:100%;height:100%}.third-relate-page .user-wrapper label{width:190px;line-height:94px;margin-left:20px;font-size:18px;font-weight:700;color:#545454;word-break:keep-all;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:absolute}.third-relate-page .remind-info{width:490px;min-height:54px;padding-left:50px;margin:35px auto;background:url(../assets/img/passport/warn.png?v1559f4c3cf8) no-repeat;text-align:center}.third-relate-page .remind-info h3{font-size:18px;font-weight:700;color:#545454;margin-bottom:12px}.third-relate-page .remind-info a{color:#f22c26;text-decoration:underline;cursor:pointer}.third-relate-page .remind-info p{font-size:16px;color:#888}.third-relate-page .option-btn{text-align:center}.third-relate-page .option-btn a{width:192px;height:46px;color:#fff;font-size:18px;line-height:46px;display:inline-block;background-color:#f12200;cursor:pointer}.third-relate-page .option-btn a:first-child{margin-right:14px}.third-relate-page .remind-tips{width:390px;margin:0 auto;font-size:14px;color:#888;text-align:center;margin-top:30px;text-decoration:underline;display:block}.third-relate-page .remind-tips a{color:#f12200;cursor:pointer}.third-relate-page .remind-tips>*{text-decoration:underline}.third-relate-page .code-validate{padding-top:140px}.third-relate-page .action-link{width:440px;margin:0 auto;padding-left:180px;color:#545454;line-height:46px}.third-relate-page .action-link .code-name{margin-left:-100px;position:absolute}.third-relate-page .action-link input{width:260px;height:40px;padding-left:10px;font-size:16px;margin-right:14px}.third-relate-page .action-link label{width:140px;height:46px;font-size:14px;color:#fff;background-color:#f12200;display:inline-block;text-align:center;cursor:pointer}.third-relate-page .action-link .count-down{color:#979797;background-color:#d8d8d8;display:none}.third-relate-page .action-link .code-error{position:absolute;width:200px;display:inline-block;color:red;padding-left:10px}.third-relate-page .action-link .code-error i{display:inline-block;height:14px;width:14px;background-image:url(../assets/img/sprite.passport.png?v1559f4c4797);background-position:-95px -113px;vertical-align:middle;margin-right:5px;margin-top:-2px}.third-relate-page .waiting .get-code{display:none}.third-relate-page .waiting .count-down{display:inline-block}.third-relate-page .relate-btn{width:212px;height:46px;font-family:arial,Microsoft YaHei;color:#fff;font-size:18px;background-color:#f12200;border:0;outline:none;margin:20px 0}.guang-page{width:1150px;margin:0 auto}.guang-page .left-side{float:left;width:830px}.guang-page .right-side{float:left;width:290px;margin-left:30px}.guang-page .bg-img.blink,.guang-page img.blink{opacity:.8;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"}.guang-page .ex-reco-title{color:#333;line-height:24px;padding-bottom:10px;border-bottom:1px solid #ccc;font-size:20px;font-weight:700}.guang-page .ex-reco-list{margin-top:14px}.guang-page .ex-reco-item{box-sizing:border-box;height:60px;margin-bottom:14px}.guang-page .ex-reco-item:last-child{margin-bottom:0}.guang-page .ex-reco-img{display:block;float:left;width:90px;height:60px;margin-right:5px}.guang-page .ex-reco-img span{display:block;height:100%;width:100%;background-size:cover;background-position:50%}.guang-page .ex-reco-img span img{width:100%;height:100%}.guang-page .ex-reco-context{float:left;max-width:195px;height:40px;line-height:20px;font-size:13px;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.guang-page .ex-reco-context:hover{color:#c30}.guang-page .hot{margin-top:40px}.guang-page .hot .hot-title{color:#333;line-height:24px;padding-bottom:10px;border-bottom:1px solid #ccc;font-weight:700;font-size:20px}.guang-page .hot .hot-tag-list{margin-top:14px;max-height:150px;overflow:hidden}.guang-page .hot .hot-tag{display:inline-block;float:left;padding:5px;font-size:12px;background-color:#ccc;border:none;margin-right:10px;margin-bottom:10px;color:#fff;font-weight:700}.guang-page .hot .hot-tag:hover{background-color:#333}.guang-page .ads{margin-top:30px}.guang-page .ads .ad{display:block;box-sizing:border-box;margin-bottom:24px;width:290px}.guang-page .ads .ad img{display:block;width:100%}.guang-page .msg-content{padding:24px 0;border-bottom:1px solid #ccc;position:relative}.guang-page .msg-content .content{height:80px;line-height:24px}.guang-page .msg-content .iconfont{color:#ccc}.guang-page .msg-content .msg-img{position:relative;float:left;margin-right:26px}.guang-page .msg-content .msg-img img{display:block;width:360px;height:240px}.guang-page .msg-content .msg-img img.square{height:360px}.guang-page .msg-content .classification{position:absolute;background-color:#000;color:#fff;text-align:center;width:80px;height:32px;line-height:32px;font-size:13px;opacity:.9;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=90)";z-index:8}.guang-page .msg-content .reco{position:absolute;top:0;left:66px;height:32px;width:32px;background:url(../assets/img/guang/msg-reco.png?v1559f4c3c6f);background-size:100% 100%;z-index:9}.guang-page .msg-content .msg-info{float:left;width:440px}.guang-page .msg-content .msg-title{display:block;font-size:22px;color:#333;line-height:30px;max-height:64px}.guang-page .msg-content .msg-title:hover{color:#c30}.guang-page .msg-content .content{font-size:14px;color:#666}.guang-page .msg-content .msg-app{line-height:34px;color:#999;font-size:13px}.guang-page .msg-content .author{display:block;float:left;color:#333;margin-right:22px;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.guang-page .msg-content .author:hover{color:#c30}.guang-page .msg-content .page-view,.guang-page .msg-content .publish-time{color:#999}.guang-page .msg-content .publish-time{margin-right:30px}.guang-page .msg-content .like-comment,.guang-page .msg-content .tags{position:absolute;bottom:24px;font-size:12px}.guang-page .msg-content .like-comment .like,.guang-page .msg-content .tags .like{margin-right:10px}.guang-page .msg-content .like-comment .like:hover *,.guang-page .msg-content .tags .like:hover *{color:#000}.guang-page .msg-content .like-comment .like-icon,.guang-page .msg-content .tags .like-icon{cursor:pointer}.guang-page .msg-content .like-comment .like-icon.liked,.guang-page .msg-content .tags .like-icon.liked{color:#000}.guang-page .msg-content .like-comment.tags,.guang-page .msg-content .tags.tags{left:386px;max-width:350px;height:20px;overflow:hidden}.guang-page .msg-content .like-comment.like-comment,.guang-page .msg-content .tags.like-comment{right:0;color:#999}.guang-page .msg-content .msg-tag{display:inline-block;text-align:center;height:20px;line-height:20px;padding:0 10px;margin-right:10px;background-color:#ccc;color:#fff}.guang-page .msg-content .msg-tag:last-child{margin-right:0}.guang-page .msg-content .msg-tag:hover{background-color:#333}.guang-page .pager{font-size:12px}.guang-page .pager a{height:24px;padding:0 9px;line-height:24px;display:inline-block;text-align:center;margin-right:8px;color:#222}.guang-page .pager a.cur{background-color:#222;color:#fff}.guang-index-page .msg-nav{border-bottom:1px solid #000;margin-top:24px;height:30px}.guang-index-page .msg-nav li{float:left;height:30px;line-height:30px;text-align:center;font-size:18px;padding:0 28px}.guang-index-page .msg-nav li a{display:block;height:100%;width:100%;color:#333}.guang-index-page .msg-nav li.actived{background-color:#111}.guang-index-page .msg-nav li.actived a{color:#fff}.guang-index-page .msg-pager{float:right;margin:20px 0}.guang-detail-page{width:1150px;margin:0 auto 95px}.guang-detail-page b{font-weight:700}.guang-detail-page i{font-style:italic}.guang-detail-page .block{margin:15px 0}.guang-detail-page .excellent-recommendation-title{margin-top:4px}.guang-detail-page .block-header{position:relative;border-bottom:1px solid #c1c1c1;font-size:18px;height:38px;line-height:38px;text-align:center;margin-bottom:24px;color:#333}.guang-detail-page .block-header .more-reco{position:absolute;right:0;color:#000;font-size:14px;text-decoration:none}.guang-detail-page .related-brand .brands{width:852px}.guang-detail-page .related-reco .recos{width:850px}.guang-detail-page .detail-title{font-size:28px;line-height:64px;border-bottom:1px dotted #c1c1c1;word-wrap:break-word}.guang-detail-page .article-author{float:left;line-height:64px}.guang-detail-page .article-author .author-avatar{clear:both;width:38px;height:64px}.guang-detail-page .article-author .author-avatar img{width:38px;height:38px;border-radius:50%;vertical-align:middle}.guang-detail-page .author-info{float:left;margin-left:10px;font-size:14px;max-width:447px}.guang-detail-page .author-info .author-name{display:block;height:64px;line-height:64px;cursor:pointer;color:#000}.guang-detail-page .author-info .author-name:hover{color:#c30}.guang-detail-page .author-info .author-introduce{color:#999}.guang-detail-page .article-status{float:right;height:64px;line-height:64px;color:#999;font-size:13px}.guang-detail-page .article-status .article-click{margin:0 25px}.guang-detail-page .article-status .article-comment{color:#c30;cursor:pointer}.guang-detail-page .article-main img{display:block;max-width:100%;margin:0 auto}.guang-detail-page .article-main .article-text{margin:2px 0 20px;line-height:28px;font-size:14px}.guang-detail-page .article-main .article-small-pic{text-align:center;font-size:0}.guang-detail-page .article-main .article-small-pic img{display:inline-block;max-width:412px}.guang-detail-page .article-main .article-small-pic img:first-child{margin:0 6px 0 0}.guang-detail-page .article-main .block:first-child{margin-top:10px}.guang-detail-page .user-handle{margin:30px 0 0;text-align:center}.guang-detail-page .user-handle ul{display:inline-block}.guang-detail-page .user-handle ul li{float:left;margin:0 15px;cursor:pointer}.guang-detail-page .user-handle ul li a{position:relative;display:block;padding:0 10px;height:36px;line-height:36px;color:#535353;font-size:0;background:#efefef;text-align:left}.guang-detail-page .user-handle ul li a i,.guang-detail-page .user-handle ul li a span{display:inline-block;font-style:normal;font-size:14px}.guang-detail-page .user-handle ul li a i{margin:0 5px 0 0;font-size:18px;opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"}.guang-detail-page .user-handle ul li a .cancel-collect{display:none}.guang-detail-page .user-handle ul .like-status.hover i,.guang-detail-page .user-handle ul .like-status.liked i{opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}.guang-detail-page .user-handle ul .like-statis.hover .like-num{color:#000}.guang-detail-page .user-handle ul .sort-collect a i{width:21px}.guang-detail-page .user-handle ul .sort-collect.collected a i{opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}.guang-detail-page .user-handle ul .sort-collect.collected a span{display:none}.guang-detail-page .user-handle ul .sort-collect.collected a .cancel-collect{display:inline}.guang-detail-page .user-handle ul .sort-collect.hover i{opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}.guang-detail-page .user-handle ul .sort-collect.hover span{color:#000}.guang-detail-page .article-bottom-info{margin:44px 0 0;padding:0 0 10px;border-bottom:1px dotted #c1c1c1}.guang-detail-page .article-tag{float:left;width:588px}.guang-detail-page .article-tag .tag-icon{float:left;margin:0 12px 0 0;font-size:20px;font-style:normal}.guang-detail-page .article-tag ul{float:left;max-width:555px}.guang-detail-page .article-tag ul li{float:left;margin:0 10px 10px 0}.guang-detail-page .article-tag ul li a{display:block;padding:0 15px;height:20px;line-height:20px;font-size:12px;color:#fff;font-weight:700;background:#c1c1c1}.guang-detail-page .article-tag ul li:hover a{background:#333}.guang-detail-page .article-tag ul li:first-child{margin-left:0}.guang-detail-page .article-share{float:right}.guang-detail-page .article-share .title{font-size:12px}.guang-detail-page .detail-related-posts{margin:14px 0 0}.guang-detail-page .detail-related-posts li{float:left;width:264px;margin-left:19px}.guang-detail-page .detail-related-posts li a{display:block}.guang-detail-page .detail-related-posts li .bg-img{display:block;width:100%;height:173px;line-height:173px;text-align:center;font-size:0}.guang-detail-page .detail-related-posts li .bg-img img{max-width:100%;max-height:100%;vertical-align:middle}.guang-detail-page .detail-related-posts li .post-title{margin:8px 0 0}.guang-detail-page .detail-related-posts li .post-title h2{line-height:16px;font-size:14px;color:#000;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.guang-detail-page .detail-related-posts li .post-title:hover h2{color:#c30!important}.guang-detail-page .detail-related-posts li:first-child{margin-left:0}.guang-detail-page .comment-area{margin:58px 0 0}.guang-detail-page .comment-area .comment-publish{height:48px}.guang-detail-page .comment-textarea textarea{display:block;width:812px;height:86px;padding:12px;resize:none;outline:none;font-size:14px;line-height:18px;color:#535353;font-family:arial,helvetica,微软雅黑;border:1px solid #e7e7e7}.guang-detail-page .word-count-tip{display:inline-block;height:48px;line-height:48px;font-size:12px;color:#c8c8c8}.guang-detail-page .word-count-tip .exceed-count{color:red}.guang-detail-page .publish-btn{margin:10px 0 0;float:right;width:90px;height:33px;line-height:33px;text-align:center;color:#fff;font-size:14px;background:#cb3a3e;cursor:pointer}.guang-detail-page .publish-btn:hover{background:#c03234}.guang-detail-page .publish-btn.disable{background-color:#e79c9e}.guang-detail-page .comments-wrap h4{position:relative;line-height:32px;border-bottom:1px solid #e7e7e7}.guang-detail-page .comments-wrap h4 .comment-num{margin-right:5px;color:#c11e00}.guang-detail-page .comments-wrap h4 i{position:absolute;width:13px;height:7px;left:30px;bottom:-7px;background:url(../assets/img/guang/comment-icon.png?v1559f4c3c6c) no-repeat}.guang-detail-page .comments-wrap .comment-pager{float:right;margin:20px 0}.guang-detail-page .comments-empty{display:none;color:#ccc;margin:20px 0;font-size:12px;line-height:12px;text-align:center}.guang-detail-page .commnets-resultwrapper{display:none}.guang-detail-page .comments-list li{margin:14px 0 0;padding:0 0 15px;border-bottom:1px dotted #e7e7e7}.guang-detail-page .comments-list li .avatar{float:left;width:40px;height:40px;overflow:hidden}.guang-detail-page .comments-list li .avatar img{display:block;width:100%;height:100%;border-radius:50%}.guang-detail-page .comments-list li .comment-info{float:left;width:774px;margin:0 0 0 16px}.guang-detail-page .comments-list li .comment-info .comment-user-name{color:#c11e00;font-size:15px;line-height:15px}.guang-detail-page .comments-list li .comment-info .comment-content{margin-top:10px;line-height:16px;font-size:12px;word-wrap:break-word}.guang-detail-page .comments-list li .comment-info .comment-time{margin:10px 0 0;color:#c8c8c8;font-size:12px;line-height:12px;clear:both}.guang-detail-page .brand{margin-right:22px;margin-bottom:20px;float:left}.guang-detail-page .brand .thumb{display:table-cell;border:1px solid #f5f5f5;height:120px;width:120px;box-sizing:border-box;text-align:center;vertical-align:middle}.guang-detail-page .brand .thumb img{display:block;max-width:120px;max-height:120px;margin:0 auto}.guang-detail-page .brand .brand-name{width:120px;font-size:13px;line-height:20px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:center;color:#333}.guang-detail-page .few-tag,.guang-detail-page .tag-container{display:none}.guang-detail-page .good-info{width:192px;margin-right:20px;margin-bottom:12px}.guang-detail-page .good-info .good-detail-img{height:auto}.guang-detail-page .good-info .good-detail-img .good-thumb,.guang-detail-page .good-info .good-detail-img img.lazy{height:257px}.guang-detail-page .good-info .good-detail-text>a{margin-top:0;line-height:36px}.guang-detail-page .good-info .good-detail-text>.price{margin-top:0}.guang-editor-page .tag-header,.guang-list-page .tag-header{height:45px;line-height:45px;color:#333;font-size:14px;font-weight:700;border-bottom:1px solid #ccc}.guang-editor-page .tag-header>span,.guang-list-page .tag-header>span{font-size:20px}.guang-editor-page .msg-pager,.guang-list-page .msg-pager{float:right;margin:20px 0}.guang-editor-page .right-side{margin-top:20px}.guang-list-page .right-side{margin-top:11px}.guang-editor-page .editor-info{padding:10px;background:#fafafa}.guang-editor-page .editor-info .author-avatar{float:left;width:80px;height:100%}.guang-editor-page .editor-info .author-avatar img{width:80px;height:80px;vertical-align:middle;border-radius:50%}.guang-editor-page .editor-info .author-info{float:left;margin:0 0 0 10px;max-width:1060px}.guang-editor-page .editor-info .author-name{margin-top:11px;font-size:20px;height:30px!important;line-height:30px!important}.guang-editor-page .editor-info .author-introduce{line-height:24px;font-size:14px;color:#999}.guang-editor-page .editor-info .intro-content{margin:15px 0 0;line-height:18px;font-size:14px;color:#999}.home-page{width:1150px;margin:10px auto 0}.home-page .slide-container{position:absolute;left:0;right:0;height:450px}.home-page .slide-thumb-container{height:510px}.home-page .slide-wrapper{position:relative;height:450px;overflow:hidden}.home-page .slide-wrapper ul{position:relative;height:100%}.home-page .slide-wrapper li{display:none;position:absolute;top:0;right:0;width:100%;height:100%}.home-page .slide-wrapper li a{display:block;height:100%;width:1150px;margin:0 auto}.home-page .slide-wrapper li img{width:100%;height:100%}.home-page .slide-wrapper:hover .slide-switch.show,.home-page .slide-wrapper li:first-child{display:block}.home-page .slide-container-placeholder{height:450px;width:100%}.home-page .slide-thumb-container-placeholder{height:510px}.home-page .slide-switch{display:block}.home-page .slide-switch a{position:absolute;top:50%;margin:-30px 0 0;width:60px;height:60px;line-height:56px;text-align:center;z-index:2;background:#fff;opacity:.55;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=55)"}.home-page .slide-switch a .iconfont{font-size:32px;color:#59585a}.home-page .slide-switch a.prev{left:50%;margin-left:-575px}.home-page .slide-switch a.next{right:50%;margin-right:-575px}.home-page .slide-switch a:hover{opacity:.9;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=90)"}.home-page .thumb-pagination{width:1148px;margin:6px auto 0;padding-left:2px}.home-page .thumb-pagination li{position:relative;float:left;margin-left:6px;width:138px;height:54px}.home-page .thumb-pagination li a{position:absolute;left:0;right:0;bottom:0;top:0;background:#000;opacity:.3;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"}.home-page .thumb-pagination li img{width:100%;height:100%}.home-page .thumb-pagination li:first-child{margin:0}.home-page .thumb-pagination li.focus a{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"}.home-page .slide-pagination{font-size:0}.home-page .slide-pagination .slide-shade{position:absolute;left:0;right:0;top:0;bottom:0;background:#000;opacity:.3;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";border-radius:13px}.home-page .slide-pagination span{position:relative;display:inline-block;margin:0 7px;width:12px;height:12px;background:#fff;cursor:pointer;opacity:.6;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";border-radius:6px;z-index:2}.home-page .slide-pagination span.focus{opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}.home-page .debris-slider{height:510px;width:100%}.home-page .debris-slider .col{float:left}.home-page .debris-slider .col a{display:block}.home-page .debris-slider .left-col a,.home-page .debris-slider .right-col a{margin-bottom:10px}.home-page .debris-slider .left-col a:last-child,.home-page .debris-slider .right-col a:last-child{margin-bottom:0}.home-page .debris-slider .left-col img,.home-page .debris-slider .right-col img{height:100%;width:100%}.home-page .debris-slider .left-col{margin-right:10px}.home-page .debris-slider .left-col a{width:280px;height:120px}.home-page .debris-slider .left-col a:first-child{height:250px}.home-page .debris-slider .center-col{position:relative;width:570px;height:100%;margin-right:10px;font-size:0}.home-page .debris-slider .center-col .slide-wrapper{height:100%}.home-page .debris-slider .center-col .slide-wrapper li a{width:100%}.home-page .debris-slider .center-col .slide-switch a.prev{left:0;margin-left:0}.home-page .debris-slider .center-col .slide-switch a.next{right:0;margin-right:0}.home-page .debris-slider .center-col img{max-width:100%;max-height:100%}.home-page .debris-slider .center-col:hover .slide-switch.show{display:block}.home-page .debris-slider .right-col a{width:280px;height:120px}.home-page .debris-slider .right-col a:first-child{height:380px;margin-bottom:11px}.home-page .new-report img{display:block;width:100%;height:100%}.home-page .new-report .report-list{float:left;width:868px}.home-page .new-report .report-list li{float:left;margin:0 8px 8px 0;width:185px;height:248px;overflow:hidden}.home-page .new-report .report-list li:first-child{margin-right:7px;width:282px;height:504px}.home-page .new-report .last-item{float:left;width:282px;height:504px;overflow:hidden}.home-page .preference-brand{overflow:hidden}.home-page .preference-brand-list{margin-top:8px;width:1158px}.home-page .preference-brand-item{float:left;margin-right:8px;margin-bottom:8px}.home-page .preference-brand-item a{display:table-cell;width:185px;height:86px;text-align:center;vertical-align:middle}.home-page .preference-brand-item img{display:block;max-width:100%;max-height:100%;margin:0 auto}.home-page .preference-more{float:left;width:185px;height:86px;line-height:100px;text-align:center;color:#000;font-size:16px}.home-page .img-slider-wrapper{position:relative;width:100%;height:558px;background:#8ae6e0;overflow:hidden}.home-page .img-slider-wrapper .img-brand-switch{display:block}.home-page .img-slider-wrapper .img-brand-switch a{position:absolute;top:50%;font-size:36px;color:#fff}.home-page .img-slider-wrapper .img-brand-switch a.next{right:30px}.home-page .img-slider-wrapper .img-brand-switch a.prev{left:30px}.home-page .img-container-landscape{box-sizing:border-box;margin:86px auto 0;width:982px;height:433px;overflow:hidden}.home-page .img-container-landscape .img-list{width:1000px;height:100%}.home-page .img-container-landscape .img-item{float:left;box-sizing:border-box;width:320px;height:100%;margin-right:10px}.home-page .img-container-landscape .img-item img{width:100%;height:100%}.home-page .img-brand{position:relative;width:100%;height:175px;overflow:hidden}.home-page .img-brand ul{width:1158px}.home-page .img-brand li{float:left;margin:0 8px 0 0;width:378px;height:175px;line-height:175px;overflow:hidden;font-size:0;text-align:center}.home-page .img-brand li img{max-width:100%;max-height:100%;vertical-align:middle}.home-page .img-brand .img-brand-switch{display:none}.home-page .img-brand .img-brand-switch a{position:absolute;top:50%;margin:-20px 0 0;width:40px;height:40px;line-height:40px;text-align:center;z-index:2;background:#fff;opacity:.55;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=55)"}.home-page .img-brand .img-brand-switch a.prev{left:0}.home-page .img-brand .img-brand-switch a.next{right:0}.home-page .img-brand .img-brand-switch a:hover{opacity:.9;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=90)"}.home-page .img-brand:hover .img-brand-switch{display:block}.home-page .logo-brand{width:100%;height:282px;overflow:hidden}.home-page .logo-brand ul{width:1158px}.home-page .logo-brand li{float:left;margin:8px 8px 0 0;width:185px;height:86px;line-height:86px;font-size:0;text-align:center}.home-page .logo-brand li img{max-width:100%;max-height:100%;vertical-align:middle}.home-page .logo-brand .logo-brand-switch{position:relative;background:url(../assets/img/index/logo-brand-line.png?v1559f4c3cd6) no-repeat 50%;line-height:normal}.home-page .logo-brand .logo-brand-switch .iconfont{position:absolute;left:50%;font-size:32px}.home-page .logo-brand .logo-brand-switch .iconfont.prev{top:10px;margin-left:-48px}.home-page .logo-brand .logo-brand-switch .iconfont.next{bottom:12px;margin-left:20px}.home-page .logo-brand .brand-more{font-size:16px}.home-page .logo-brand .brand-more:hover{text-decoration:underline}.home-page .logo-brand.logos-10{height:188px}.home-page .categorys-list ul{width:1158px}.home-page .categorys-list li{float:left;margin:0 8px 8px 0;width:185px;height:248px}.home-page .categorys-list li img{display:block;width:100%;height:100%}.home-page .categorys-list li.cate-item0{width:185px;height:504px}.home-page .categorys-list li.cate-item1{width:377px;height:504px}.home-page .floor-header{position:relative;margin:80px 0 40px}.home-page .floor-header .floor-title{margin:0 auto;width:298px;height:31px;line-height:31px;border:1px solid #000;font-size:16px;text-align:center}.home-page .floor-header .header-navs{position:absolute;padding:10px 0;top:0;right:0;font-size:14px}.home-page .floor-header .header-navs li{float:left;padding:1px 15px;border-left:1px solid #ccc}.home-page .floor-header .header-navs li a{color:#333}.home-page .floor-header .header-navs li:first-child{border-left:none}.home-page .floor-header .header-navs li:hover{text-decoration:underline}.g-list li{float:left}.g-list li a{position:relative;display:block;overflow:hidden}.g-list li a img,.g-mask{width:100%;height:100%}.g-mask{display:block;position:absolute;z-index:1;background:#000;opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";overflow:hidden;transition:opacity .6s}.g-title{display:block;text-align:center;font-weight:700;line-height:1.5;width:100%;margin-top:14px}.home-page .tpl-recommend{width:100%;position:relative}.home-page .tpl-recommend a{display:block}.home-page .tpl-recommend a img{display:block;width:100%;height:100%}.home-page .tpl-recommend .tpl-body{margin-bottom:8px}.home-page .tpl-recommend .tpl-nav{float:left;overflow:hidden}.home-page .tpl-recommend .tpl-nav .tpl-keywords{margin-bottom:8px}.home-page .tpl-recommend .tpl-nav .tpl-category{padding:10px 0;background-color:#f8f8f8;overflow:hidden}.home-page .tpl-recommend .tpl-nav .tpl-category a{float:left;width:50%;text-align:center;color:#000;overflow:hidden}.home-page .tpl-recommend .tpl-brands{float:left;overflow:hidden;margin-left:8px}.home-page .tpl-recommend .tpl-brands li{margin-top:8px}.home-page .tpl-recommend .tpl-types{float:left;overflow:hidden;margin-top:-8px;width:579px}.home-page .tpl-recommend .tpl-types li{float:left;margin-left:8px;margin-top:8px}.home-page .tpl-recommend .tpl-types li a{width:185px;height:248px}.home-page .tpl-recommend .tpl-products{overflow:hidden;margin-left:-10px}.home-page .tpl-recommend .tpl-products li{float:left;margin-left:10px}.home-page .tpl-recommend .tpl-products li a{width:222px;height:298px}.home-page .tpl-recommend .tpl-nav{width:185px}.home-page .tpl-recommend .tpl-nav .keywords0,.home-page .tpl-recommend .tpl-nav .keywords1,.home-page .tpl-recommend .tpl-nav .keywords2{margin-bottom:10px;height:76px}.home-page .tpl-recommend .tpl-nav .keywords2{margin-bottom:0}.home-page .tpl-recommend .tpl-nav .tpl-category{height:228px}.home-page .tpl-recommend .tpl-nav .tpl-category a{height:38px;line-height:38px;font-size:14px}.home-page .tpl-recommend .tpl-brands{width:378px;height:512px}.home-page .tpl-recommend .tpl-brands li a{height:248px}.min-screen .home-page .tpl-recommend .tpl-nav{width:158px}.min-screen .home-page .tpl-recommend .tpl-nav .keywords0,.min-screen .home-page .tpl-recommend .tpl-nav .keywords1,.min-screen .home-page .tpl-recommend .tpl-nav .keywords2{margin-bottom:8px;height:65px}.min-screen .home-page .tpl-recommend .tpl-nav .keywords2{margin-bottom:0}.min-screen .home-page .tpl-recommend .tpl-nav .tpl-category{height:192px}.min-screen .home-page .tpl-recommend .tpl-nav .tpl-category a{height:32px;line-height:32px;font-size:12px}.min-screen .home-page .tpl-recommend .tpl-nav .tpl-category a:hover{text-decoration:underline}.min-screen .home-page .tpl-recommend .tpl-brands{width:324px;height:432px}.min-screen .home-page .tpl-recommend .tpl-brands li a{height:212px}.min-screen .home-page .tpl-recommend .tpl-types{width:498px}.min-screen .home-page .tpl-recommend .tpl-types li a{width:158px;height:212px}.min-screen .home-page .tpl-recommend .tpl-products li a{width:190px;height:254px}.home-page .singlehot{overflow:hidden;margin-left:-8px}.home-page .singlehot li{margin-left:8px;margin-bottom:8px}.home-page .singlehot li a{width:185px;height:248px}.home-page .singlehot .impo1,.home-page .singlehot .impo9{width:378px}.home-page .floor-ad a{display:block;height:129px}.home-page .floor-ad a img{display:block;width:100%;height:100%}.home-page .goods-container{margin-right:-10px;width:inherit;padding-top:0}.home-page .goods-container .good-info{margin-bottom:0;width:280px;height:485px}.home-page .goods-container .good-detail-img{height:374px}.home-page .goods-container .good-detail-text{text-align:center}.home-page .adbanner{margin-top:12px}.home-page .adbanner a{height:150px}.min-screen .home-page .singlehot li a{width:158px;height:212px}.min-screen .home-page .singlehot .impo1,.min-screen .home-page .singlehot .impo9{width:323px}.min-screen .home-page .goods-container .good-info{width:240px;height:412px}.min-screen .home-page .goods-container .good-info .good-detail-img{height:320px}.home-page .commodity .commodity-list{margin-left:-10px}.home-page .commodity .commodity-list a{height:465px;width:280px}.home-page .commodity .commodity-list li{margin-left:10px}.home-page .commodity .commodity-list i{position:absolute;bottom:0;width:100%;height:20px;background:#ffac5b;color:#fff;line-height:20px;text-align:center;font-size:12px}.home-page .commodity .commodity-list i.top{position:absolute;top:10px;right:10px;background-color:#ff575c;color:#fff;border-radius:30px;z-index:2;height:60px;width:60px;line-height:60px;font-size:20px}.home-page .commodity .commodity-list .commodity-img{position:relative;height:374px}.home-page .commodity .commodity-list p.commodity-name{font-size:12px;color:#000;text-align:center;margin-top:14px;line-height:18px}.home-page .commodity .commodity-list p.commodity-price{position:relative;margin:3px 0 0;text-align:center;line-height:20px;color:#000}.home-page .commodity .commodity-list p.commodity-price span{display:inline-block;font-size:12px}.home-page .commodity .commodity-brands{margin-left:-8px}.home-page .commodity .commodity-brands a{float:left;margin-left:8px;display:block;width:185px;height:86px}.home-page .commodity .commodity-brands a img{width:100%;height:100%}.home-page .commodity .loading{position:relative;width:100%;text-align:center;padding-top:40px}.home-page .commodity .loading a{display:block;height:35px;width:120px;margin:0 auto 40px;background-color:#000;color:#fff;font-size:14px;line-height:35px;text-align:center}.min-screen .home-page .commodity .commodity-list a{height:400px;width:240px}.min-screen .home-page .commodity .commodity-list .commodity-img{height:320px}.min-screen .home-page .commodity .commodity-list i.top{height:52px;width:52px;line-height:52px;font-size:14px}.min-screen .home-page .commodity .commodity-brands a{width:158px;height:74px}.home-page .slide-accordion{overflow:hidden;position:relative;height:400px}.home-page .slide-accordion a{position:relative;display:block}.home-page .slide-accordion a img{display:block;width:100%;height:100%}.home-page .slide-accordion ul{position:absolute;left:-5px}.home-page .slide-accordion li{position:absolute;border-left:5px solid #fff}.home-page .slide-accordion li a{width:650px;height:400px}.home-page .slide-accordion .g-mask{opacity:.2;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=20)"}.home-page .slide-accordion .g-mask:hover{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"}.min-screen .home-page .slide-accordion{height:342px}.min-screen .home-page .slide-accordion li a{width:558px;height:342px}.boys .tpl-nav .keywords0{margin-bottom:10px!important;height:152px!important}.boys .tpl-nav .keywords1{height:86px!important}.boys .tpl-nav .tpl-category a{height:38px!important;line-height:38px!important;font-size:14px!important}.boys .tpl-brands{margin-top:-8px!important}.boys .goods-container .good-info,.lifestyle .goods-container .good-info{width:222px!important;height:408px!important}.boys .goods-container .good-info .good-detail-img,.lifestyle .goods-container .good-info .good-detail-img{height:298px!important}.min-screen .boys .tpl-nav .keywords0{margin-bottom:8px!important;height:130px!important}.min-screen .boys .tpl-nav .keywords1{margin-bottom:0!important;height:74px!important}.min-screen .boys .tpl-brands{margin-top:-8px!important}.min-screen .boys .goods-container .good-info,.min-screen .lifestyle .goods-container .good-info{width:188px;height:360px}.min-screen .boys .goods-container .good-info .good-detail-img,.min-screen .lifestyle .goods-container .good-info .good-detail-img{height:255px}.min-screen .home-page{width:990px}.min-screen .home-page .slide-container{height:387px}.min-screen .home-page .slide-container img{display:block}.min-screen .home-page .slide-thumb-container{height:440px}.min-screen .home-page .slide-container-placeholder{height:387px}.min-screen .home-page .slide-thumb-container-placeholder{height:440px}.min-screen .home-page .slide-wrapper{height:387px}.min-screen .home-page .slide-wrapper li a{width:990px}.min-screen .home-page .slide-switch{display:block}.min-screen .home-page .slide-switch a.prev{margin-left:-495px}.min-screen .home-page .slide-switch a.next{margin-right:-495px}.min-screen .home-page .slide-switch a:hover{opacity:.9;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=90)"}.min-screen .home-page .thumb-pagination{width:990px;margin:7px auto 0;padding:0}.min-screen .home-page .thumb-pagination li{width:118px;height:46px}.min-screen .home-page .debris-slider{height:440px}.min-screen .home-page .debris-slider .left-col{margin-right:9px}.min-screen .home-page .debris-slider .left-col a{width:240px;height:103px}.min-screen .home-page .debris-slider .left-col a:first-child{height:214px}.min-screen .home-page .debris-slider .center-col{width:492px;margin-right:9px}.min-screen .home-page .debris-slider .right-col a{width:240px;height:103px}.min-screen .home-page .debris-slider .right-col a:first-child{height:326px;margin-bottom:10px}.min-screen .home-page .new-report .report-list{width:748px}.min-screen .home-page .new-report .report-list li{width:158px;height:212px}.min-screen .home-page .new-report .last-item,.min-screen .home-page .new-report .report-list li:first-child{width:242px;height:432px}.min-screen .home-page .preference-brand-list{width:998px}.min-screen .home-page .preference-brand-item{margin-right:7px}.min-screen .home-page .preference-brand-item a{width:159px;height:74px}.min-screen .home-page .preference-more{width:159px;height:74px;line-height:90px}.min-screen .home-page .img-slider-wrapper{height:480px}.min-screen .home-page .img-container-landscape{margin:73px auto 0;width:844px;height:370px}.min-screen .home-page .img-container-landscape .img-item{width:275px;height:100%;margin-right:9px}.min-screen .home-page .img-brand{height:150px}.min-screen .home-page .img-brand ul{width:998px}.min-screen .home-page .img-brand li{width:325px;height:150px;line-height:150px}.min-screen .home-page .logo-brand{height:246px}.min-screen .home-page .logo-brand ul{width:998px}.min-screen .home-page .logo-brand li{margin:8px 8px 0 0;width:158px;height:74px;line-height:74px}.min-screen .home-page .logo-brand .logo-brand-switch .iconfont{font-size:24px}.min-screen .home-page .logo-brand .logo-brand-switch .iconfont.prev{top:-12px}.min-screen .home-page .logo-brand .logo-brand-switch .iconfont.next{bottom:-12px}.min-screen .home-page .logo-brand.logos-10{height:164px}.min-screen .home-page .categorys-list ul{width:1004px}.min-screen .home-page .categorys-list li{margin:0 7px 7px 0;width:161px;height:214px}.min-screen .home-page .categorys-list li.cate-item0{width:160px;height:435px}.min-screen .home-page .categorys-list li.cate-item1{width:326px;height:435px}.min-screen .home-page .floor-header{margin:50px 0 30px}.min-screen .home-page .floor-header .header-navs li{padding:1px 10px}.brands .path-nav{border-bottom:none;margin-bottom:0;padding-top:10px;padding-bottom:20px}.brands .brands-tabs{position:relative}.brands .brands-tabs a{display:block}.brands .brands-tabs a img{width:100%;height:100%;display:block}.brands .brands-tabs li{float:left}.brands .brands-tabs li p{display:block;font-size:30px;text-align:center;color:#dedede;position:absolute;top:50%;width:100%;margin-top:-15px;z-index:3}.brands .brands-tabs li .g-mask{opacity:.4;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"}.brands .brands-tabs li .g-mask-on,.brands .brands-tabs li:hover .g-mask{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"}.brands .brands-tabs .hover-contain{position:relative;border-bottom:1px solid #dfdfdf}.brands .brands-tabs .hover-contain .hoverarr{background-color:#3d3d3d;position:absolute;bottom:0;z-index:7}.brands .brands-tabs .hover-contain .hoverarr i{width:0;height:0;position:absolute;left:50%;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #3d3d3d;top:-6px;margin-left:-3px}.brands .header-navs{margin-right:-15px}.brands .category-nav{border:2px solid #222;padding-left:16px;height:44px;line-height:44px;font-size:12px;font-weight:700;position:relative;z-index:9;background-color:#fff}.brands .category-nav span{display:inline-block;margin-right:15px}.brands .category-nav a{display:inline-block;padding:0 7px;text-align:center;color:#222;cursor:pointer}.brands .category-fix{position:fixed;top:0;z-index:9;margin-top:0!important}.brands .brands-list dl{position:relative;border-top:1px dotted #999;padding:20px 0}.brands .brands-list dt{position:absolute;width:130px;font-weight:700;font-size:16px;text-align:center;top:50%;margin-top:-9px}.brands .brands-list dd{margin-left:130px}.brands .brands-list dd li{float:left;display:block;width:170px;height:18px}.brands .brands-list dd a{color:#666;line-height:18px;font-size:12px;position:relative}.brands .brands-list dd a span{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}.brands .brands-list dd a span:hover{text-decoration:underline}.brands .brands-list dd .brands-dialog{display:inline;position:relative}.brands .brands-list dd .hot{font-weight:700;color:#222}.brands .brands-list dd i{position:relative;top:-4px;color:#e01;font-size:14px}.brands .brands-category{width:1150px}.brands .brands-tabs{width:100%}.brands .brands-tabs li{margin-left:10px}.brands .brands-tabs li a{position:relative;width:222px;height:180px}.brands .brands-tabs li:first-child{margin-left:0}.brands .brands-tabs .hover-contain{height:30px}.brands .brands-tabs .hover-contain .hoverarr{height:5px;width:222px}.brands .brands-ad,.brands .brands-logo{margin:20px 0}.brands .brands-ad li{float:left;margin-left:10px}.brands .brands-ad li img{display:block;width:280px;height:280px}.brands .brands-ad li:first-child{margin-left:0}.brands .brands-ad li:first-child img{width:570px}.brands .brands-logo a{float:left;margin-left:26px}.brands .brands-logo a img{display:block;width:91px;height:38px}.brands .brands-logo a:first-child{margin-left:0}.brands .list-floor{width:1160px}.brands .brandfloor .g-list{margin-top:-32px}.brands .brandfloor li{margin-right:8px;margin-top:32px}.brands .brandfloor li a{width:378px;height:250px}.brands .singlegoods .g-list{margin-top:-10px}.brands .singlegoods li{margin-right:10px;margin-top:10px}.brands .singlegoods li a{width:280px;height:374px}.brands .singlegoods .singlegoods-title{position:absolute;left:0;bottom:0;height:50px;width:100%}.brands .singlegoods .singlegoods-title p{position:absolute;z-index:2;top:0;left:0;display:block;width:100%;height:100%;line-height:50px;font-size:18px;text-align:center;color:#fff}.brands .video .g-list{margin-top:-10px}.brands .video li{margin-right:8px;margin-top:10px}.brands .video li a{width:378px;height:242px}.brands .video .video-play{display:block;position:absolute;left:50%;top:50%;margin-left:-30px;margin-top:-28px;width:60px;height:56px;background-image:url(../assets/img/index/play.png?v1559f4c3cd8)}.brands .video .video-title{position:absolute;left:0;bottom:0;height:32px;width:100%}.brands .video .video-title p{position:absolute;z-index:2;top:0;left:0;display:block;width:100%;height:100%;font-size:14px;line-height:32px;text-align:center;color:#fff}.brands .news{margin-bottom:40px}.brands .news .news-pic{position:relative;float:left;width:764px;height:436px}.brands .news .news-pic .slide-container{height:100%}.brands .news .news-pic .slide-container li a{height:100%;width:764px}.brands .news .news-pic .slide-container .slide-wrapper{height:100%}.brands .news .news-pic .slide-container .slide-switch{display:none}.brands .news .news-pic .slide-container .slide-switch .prev{left:0;margin-left:0}.brands .news .news-pic .slide-container .slide-switch .next{right:0;margin-right:0}.brands .news .news-pic .slide-container .slide-switch.show{display:block}.brands .news .news-pic .slide-tips{position:absolute;left:0;bottom:0;height:30px;width:100%;background:#000;opacity:.8;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"}.brands .news .news-pic .slide-tips p{position:absolute;left:18px;z-index:2;height:30px;font-size:14px;line-height:30px;color:#fff}.brands .news .news-pic .slide-pagination{right:0;left:auto;bottom:0}.brands .news .news-pic .slide-pagination .slide-shade{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";background:none}.brands .news .news-pic .slide-pagination span{margin-top:3px}.brands .news .news-txt{padding:20px 16px;float:right;border:1px solid #000;overflow:hidden}.brands .news .news-txt ul{height:100%}.brands .news .news-txt li{position:relative;display:block;margin-bottom:10px;margin-left:20px}.brands .news .news-txt a{font-size:14px;line-height:27px;cursor:pointer;color:#010101;display:block}.brands .news .news-txt a:hover{color:#fff;background:#000;padding-left:12px;transition:padding .4s}.brands .news .news-txt i{position:absolute;top:0;left:-26px;font-size:22px}.brands .news .news-txt{width:342px;height:394px}.brands .ads{margin:40px 0}.brands .ads li{margin-right:10px;margin-bottom:10px}.brands .ads li a{width:280px}.brands .ads li a img{height:160px}.brands .ads li .name{font-size:14px}.brands .ads li .des{font-size:12px}.brands .brands-items{margin:25px auto}.brands .brands-items .brands-item{float:left;padding:15px 0;width:50%}.brands .brands-items a.brands-pic{float:left;width:280px;height:136px;display:block}.brands .brands-items a.brands-pic img{width:100%;height:100%}.brands .brands-items .brand-info{float:right;padding:0 20px;width:255px;color:#000}.brands .brands-items .brand-info h3{width:100%;font-size:20px;line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brands .brands-items .brand-info .brand-desc{padding:12px 0;height:92px;font-size:14px;line-height:22px;overflow:hidden}.brands .pagination{margin:40px 0 80px;text-align:center}.brands .pagination a{height:24px;padding:0 9px;line-height:24px;display:inline-block;text-align:center;margin-right:8px;color:#222;font-size:12px}.brands .pagination a i{position:relative;top:-1px;font-size:10px;transform:scale(.8)}.brands .pagination a.cur{background:#222;color:#fff}.min-screen .brands .header-navs{margin-right:-10px}.min-screen .brands .sit-nav{padding-top:10px;font-size:12px}.min-screen .brands .sit-nav .sep{margin:0 6px}.min-screen .brands .brands-category{width:990px}.min-screen .brands .brands-tabs li a{width:190px;height:154px}.min-screen .brands .brands-tabs .hover-contain{height:25px}.min-screen .brands .brands-tabs .hover-contain .hoverarr{height:4px;width:190px}.min-screen .brands .brands-ad li img{width:240px;height:240px}.min-screen .brands .brands-ad li:first-child img{width:490px}.min-screen .brands .brands-logo a{margin-left:10px}.min-screen .brands .brands-logo a img{width:90px;height:37px}.min-screen .brands .brands-logo a:first-child{margin-left:0}.min-screen .brands .list-floor{width:1000px}.min-screen .brands .brandfloor .g-list{margin-top:-26px}.min-screen .brands .brandfloor li{margin-right:9px;margin-top:26px}.min-screen .brands .brandfloor li a{width:324px;height:214px}.min-screen .brands .singlegoods .g-list{margin-top:-10px}.min-screen .brands .singlegoods li{margin-right:10px;margin-top:10px}.min-screen .brands .singlegoods li a{width:240px;height:324px}.min-screen .brands .singlegoods .singlegoods-title{position:absolute;left:0;bottom:0;height:50px;width:100%}.min-screen .brands .singlegoods .singlegoods-title p{position:absolute;z-index:2;top:0;left:0;display:block;width:100%;height:100%;line-height:50px;font-size:18px;text-align:center;color:#fff}.min-screen .brands .video .g-list{margin-top:-10px}.min-screen .brands .video li{margin-right:9px;margin-top:10px}.min-screen .brands .video li a{width:324px;height:206px}.min-screen .brands .video .video-play{display:block;position:absolute;left:50%;top:50%;margin-left:-30px;margin-top:-28px;width:60px;height:56px;background-image:url(../assets/img/index/play.png?v1559f4c3cd8)}.min-screen .brands .video .video-title{position:absolute;left:0;bottom:0;height:30px;width:100%}.min-screen .brands .video .video-title p{position:absolute;z-index:2;top:0;left:0;display:block;width:100%;height:100%;font-size:14px;line-height:30px;text-align:center;color:#fff}.min-screen .brands .news .news-pic{width:660px;height:376px}.min-screen .brands .news .news-pic .slide-container,.min-screen .brands .news .news-pic .slide-container img{height:376px}.min-screen .brands .news .news-txt{width:284px;height:334px}.min-screen .brands .news .news-txt li{margin-bottom:13px}.min-screen .brands .ads{margin-bottom:30px}.min-screen .brands .ads li{margin-right:10px;margin-bottom:10px}.min-screen .brands .ads li a{width:240px}.min-screen .brands .ads li a img{height:138px}.min-screen .brands .ads li .name{font-size:14px}.min-screen .brands .ads li .des{font-size:12px}.min-screen .brands .brands-items a.brands-pic{width:240px;height:116px}.min-screen .brands .brands-items .brand-info{width:212px}.min-screen .brands .brands-items .brand-info .brand-desc{height:72px}.brands-layer{position:absolute;z-index:9;top:-83px;left:15px;width:325px;height:287px;background:url(../assets/img/index/brands-layer.png?v1559f4c3cd5) no-repeat;font-weight:400}.brands-layer .layer-content{padding:20px 20px 20px 35px}.brands-layer .layer-content .title{font-size:24px;line-height:24px;border-bottom:1px solid #ccc;padding-bottom:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brands-layer .layer-content .desc{margin:5px 0;height:72px;overflow:hidden}.brands-layer .layer-content .desc img{width:80px;height:50px;margin:3px 5px 0 0;float:left}.brands-layer .layer-content .desc .right{width:180px;float:right;font-size:12px;line-height:150%;max-height:80px}.brands-layer .layer-content .featured{font-size:16px;margin-right:-15px}.brands-layer .layer-content .featured img{height:100px;width:80px;float:left;margin:15px 15px 0 0}.brands-layer-right{background:url(../assets/img/index/brands-layer.png?v1559f4c3cd5) no-repeat 0 -287px;left:-325px;top:-83px}.brands-layer-right .layer-content{padding:20px 35px 20px 20px}.coupon-page{width:1150px;margin:10px auto 0}.coupon-page .slide-container{position:relative}.coupon-page .slide-wrapper{position:relative;height:450px;overflow:hidden}.coupon-page .slide-wrapper ul{position:relative;height:100%}.coupon-page .slide-wrapper li{display:none;position:absolute;top:0;right:0;width:100%;height:100%}.coupon-page .slide-wrapper li a{display:block;height:100%;width:1150px;margin:0 auto}.coupon-page .slide-wrapper li img{width:100%;height:100%}.coupon-page .slide-switch,.coupon-page .slide-wrapper:hover .slide-switch.show,.coupon-page .slide-wrapper li:first-child{display:block}.coupon-page .slide-switch a{position:absolute;top:50%;margin:-30px 0 0;width:60px;height:60px;line-height:56px;text-align:center;z-index:2;background:#fff;opacity:.55;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=55)"}.coupon-page .slide-switch a .iconfont{font-size:32px;color:#59585a}.coupon-page .slide-switch a.prev{left:50%;margin-left:-575px}.coupon-page .slide-switch a.next{right:50%;margin-right:-575px}.coupon-page .slide-switch a:hover{opacity:.9;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=90)"}.coupon-page .title{width:300px;margin:80px auto 40px;text-align:center;border:1px solid #000;height:31px;line-height:31px;position:relative}.coupon-page .title span{margin:5px}.coupon-page .coupon{display:inline-block;position:relative;width:282px;height:258px;margin-right:2px}.coupon-page .coupon img{width:100%;height:100%}.coupon-page .coupon .coupon-mask{width:100%;height:259px;background-color:rgba(0,0,0,.6);position:absolute;top:0;left:0;right:0;z-index:8}.coupon-page .coupon .info{width:78px;height:78px;position:absolute;right:2px;bottom:-1px}.coupon-page .coupon .info>div{width:100%;height:38px;font-size:16px;color:#fff;text-align:center;position:absolute;top:50%;margin-top:-19px}.coupon-page .coupon .info p{margin-bottom:5px}.coupon-page .coupon .info .guang{width:50px;height:18px;line-height:18px;font-size:12px;background-color:#fff;color:#d0021b;margin:0 auto}.me-page{width:990px;margin:0 auto 20px}.me-page .home-path{height:40px;line-height:40px;color:#ccc;font-size:12px}.me-page .home-path .path-icon{float:left;display:block;background-image:url(../assets/img/sprite.home.png?v1559f4c4798);background-position:-22px -24px;width:15px;height:15px;margin-right:10px;margin-top:11px}.me-page .home-path a,.me-page .home-path span{color:#666}.me-page .home-path span{font-weight:700}.me-page .block{border:1px solid #dedede;border-radius:2px}.me-page .me-main .block{margin-bottom:10px}.me-page .title{height:40px;line-height:40px;padding:0 8px;background-color:#e3e3e3;background-position:10px 12px;background-repeat:no-repeat}.me-page .user-thumb{text-align:center;padding:20px 0;background:#f8f8f8}.me-page .user-thumb .thumb-bg{width:100px;height:100px;padding:5px 7px 7px 5px;margin:0 auto;background:url(../assets/img/home/thumb-bg.png?v1559f4c3cd1)}.me-page .user-thumb .default-user-thumb,.me-page .user-thumb img{width:100px;height:100px}.me-page .user-thumb .default-user-thumb{background:url(../assets/img/home/default-thumb.png?v1559f4c3caa) no-repeat;background-size:100%}.me-page .home-navigation{float:left;width:180px;margin-right:8px}.me-page .home-navigation .ucenter{background-image:url(../assets/img/home/ucenter.png?v1559f4c3cd2)}.me-page .nav-group .row{height:38px;line-height:38px;border-top:1px solid #e2e2e2;padding-left:35px;color:#666;background:#f8f8f8;font-size:12px}.me-page .nav-group .row a{display:inline-block;color:#666}.me-page .nav-group .row span{color:#e0012b;font-weight:700}.me-page .nav-group .row.active{background:#636363}.me-page .nav-group .row.active a{color:#fff}.me-page .nav-group .row.first{border-top:none}.me-page .nav-group li:hover{background:#fff;color:#000}.me-page .nav-group .nav-title{font-size:14px;border-top:1px solid #ccc;border-bottom:1px solid #ccc;color:#333;background:#e6e6e6;padding-left:0}.me-page .nav-group .nav-title .title-icon{float:left;display:block;width:15px;height:15px;background-image:url(../assets/img/sprite.home.png?v1559f4c4798);background-position:-48px 0;margin:10px 10px 0}.me-page .me-main{float:left;width:800px}.me-page .me-pager{width:778px;height:22px;line-height:22px;background:#f3f3f3;border-top:1px solid #e3e3e3;padding:10px;font-size:12px;color:#666}.me-page .me-pager .check-all{margin:0;vertical-align:text-top;margin-right:5px}.me-page .me-pager .del-checked{cursor:pointer;margin-left:5px}.me-page .me-pager .del-checked:hover{color:#468fa2;text-decoration:underline}.me-page .me-pager a{border:1px solid #cecece;padding:0 6px;height:18px;line-height:18px;border-radius:2px;margin-right:4px;background-color:#fff}.me-page .me-pager a.cur,.me-page .me-pager a:hover{background-color:#222;color:#fff}.me-page .me-pager .pager-html{display:inline}.me-page .help-us{height:20px;line-height:20px;font-size:12px}.me-page .help-us a{color:#468fa2}.me-page .help-us .help-us-icon{display:inline-block;width:12px;height:12px;margin-right:8px;margin-top:-3px;vertical-align:middle;background-image:url(../assets/img/sprite.home.png?v1559f4c4798);background-position:-48px -17px}.me-page .empty-tip{padding:200px 0;text-align:center;overflow:hidden}.me-page .tabs{height:25px;margin:10px;background:url(../assets/img/home/tab.png?v1559f4c3cd0) repeat-x 0 -25px;font-size:12px;line-height:25px;padding-left:10px}.me-page .tabs li{display:block;float:left;width:88px;height:25px;text-align:center;background:url(../assets/img/home/tab.png?v1559f4c3cd0) no-repeat -92px 0;margin-right:3px;color:#333}.me-page .tabs li.active{background-position:0 0;font-weight:700}.me-page .tabs a{display:block;width:100%;height:100%}.me-page .table-header{height:30px;line-height:30px;background:#efefef;border:1px solid #e6e6e6;padding:0 10px}.me-page .table-header>span{display:block;float:left;text-align:center}.me-page .advance-buy-tag,.me-page .freebie-tag,.me-page .presall-tag,.me-page .virtual-good-tag{display:block;position:absolute;bottom:0;left:0;right:0;height:15px;line-height:16px;text-align:center;color:#fff}.me-page .freebie-tag{background:#88be51}.me-page .advance-buy-tag{background:#fc1264}.me-page .presall-tag,.me-page .virtual-good-tag{background:#333}.default-me-page .message-tip{box-sizing:border-box;width:800px;height:40px;line-height:40px;padding:0 10px;margin-bottom:10px;background:#faf6d9;border:1px solid #f5e8c5;border-radius:2px;font-weight:700;font-size:12px}.default-me-page .message-tip a{color:#468fa2;font-weight:400}.default-me-page .message-tip b{color:#e8044f;margin-right:5px}.default-me-page .message-tip .close{float:right;cursor:pointer;font-weight:400}.default-me-page .more{display:block;float:right;height:21px;line-height:22px;width:63px;margin-top:8px;padding-right:8px;font-size:12px;color:#fdfdfd;text-align:center;border-radius:2px;background:url(../assets/img/home/btn-more.png?v1559f4c3c9f) no-repeat}.default-me-page .brands ul{padding:10px 0 10px 10px}.default-me-page .brands ul li{float:left;width:122px;height:103px;border:1px solid #f6f6f6;margin-right:7px;overflow:hidden}.default-me-page .brands ul img{width:80px;height:50px;display:block;vertical-align:middle;margin:15px auto}.default-me-page .brands ul .brand-name{display:block;width:114px;height:18px;line-height:18px;color:#333;background:#f4f4f4;font-size:12px;text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin:0 auto}.default-me-page .new-arrival{overflow:hidden}.default-me-page .new-arrival .na-pager-wrap{float:right}.default-me-page .new-arrival .na-pager-wrap .next,.default-me-page .new-arrival .na-pager-wrap .pre{display:inline-block;height:22px;line-height:22px;margin-top:8px;padding:0 6px;font-size:12px;color:#fff;background:#646464;text-align:center;border-radius:2px;cursor:pointer}.default-me-page .new-arrival .na-pager-wrap .next .iconfont,.default-me-page .new-arrival .na-pager-wrap .pre .iconfont{font-size:12px}.default-me-page .new-arrival .na-pager-wrap .no-visible{visibility:hidden}.default-me-page .new-arrival ul{width:800px;height:218px;overflow:hidden}.default-me-page .new-arrival li{float:left;width:101px;height:160px;padding:29px;border-right:1px solid #e3e3e3;text-align:center;font-size:12px;overflow:hidden}.default-me-page .new-arrival li .thumb{width:100px;height:100px}.default-me-page .new-arrival li .name{margin:10px 0;text-decoration:underline;color:#666;line-height:14px}.default-me-page .new-arrival li .price{color:#000}.default-me-page .banner{display:block;width:800px;border:none}.default-me-page .latest-orders .title{background-image:url(../assets/img/home/latest-orders.png?v1559f4c3cb8)}.default-me-page .brands .title{background-image:url(../assets/img/home/brands.png?v1559f4c3c9d)}.default-me-page .new-arrival .title{background-image:url(../assets/img/home/new-arrival.png?v1559f4c3cba)}.me-orders{font-size:12px}.me-orders .right{float:right}.me-orders .order-table-header .info{width:330px;text-align:left;padding-left:10px}.me-orders .order-table-header .price{width:75px}.me-orders .order-table-header .count{width:60px}.me-orders .order-table-header .operation,.me-orders .order-table-header .order-status,.me-orders .order-table-header .pay{width:100px}.me-orders .order-title{height:28px;line-height:28px;background:#efefef;padding:0 5px;border-bottom:1px solid #e6e6e6}.me-orders .order{margin:10px;border:1px solid #e6e6e6;border-radius:2px}.me-orders .order .order-wrap{position:relative;display:table;text-align:center}.me-orders .order .order-wrap>*{display:table-cell;vertical-align:middle}.me-orders .order li{display:table;border-top:1px solid #e6e6e6}.me-orders .order li>div{display:table-cell;color:#666;text-align:center;vertical-align:middle}.me-orders .order li:first-child{border-top:none}.me-orders .order .thumb-wrap{position:relative}.me-orders .order .thumb{width:60px;height:60px}.me-orders .order .info{position:relative;width:320px;text-align:left;padding:10px 0 10px 10px}.me-orders .order .info>*{float:left}.me-orders .order .info .color-size{color:#999}.me-orders .order .info .arrival-date{color:#e8044f;margin-left:2px}.me-orders .order .text-info{position:absolute;padding:5px;bottom:10px;left:72px}.me-orders .order .text-info>*{display:block;line-height:18px}.me-orders .order .name{color:#468fa2;max-width:245px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-orders .order .had-refund{color:#e8044f}.me-orders .order .price{width:80px;padding:5px;font-weight:700}.me-orders .order .price .free-icon{display:block;width:37px;height:18px;line-height:18px;font-size:12px;text-align:center;color:#80bb45;background:#e7fbc0;margin:5px auto;border:1px solid #80bb45;border-radius:3px}.me-orders .order .price.free-price em{text-decoration:line-through}.me-orders .order .count{width:50px}.me-orders .order .operation,.me-orders .order .order-status,.me-orders .order .pay{width:90px;border-left:1px solid #e6e6e6;padding:5px}.me-orders .order .pay{font-weight:700}.me-orders .order .pay-tip{font-weight:400;display:block;line-height:18px;color:#999}.me-orders .order .op-item{display:block;color:#468fa2;line-height:18px}.me-orders .order .op-item.op-dis{color:#999}.me-orders .order .no-pay,.me-orders .order .paid{color:#e8044f}.me-orders .order .order-status span{line-height:18px;color:#999}.me-orders .order .order-status .cancel{color:#e8044f}.me-orders .order .check-logistics{display:block;cursor:pointer;color:#468fa2}.me-orders .order .cancel{color:#e8044f}.me-orders .order .logistics{position:absolute;padding:20px 12px;color:#ff8341;border:1px solid #c9c9c9;background:#fff;right:185px;margin-top:-40px;z-index:11}.me-orders .order .logistics li{line-height:18px;white-space:nowrap}.me-orders .order .logistics .close-logistics{position:absolute;top:0;right:0;color:#c9c9c9;cursor:pointer}.me-orders .order .logistics .right-triangle{position:absolute;width:0;height:0;right:-6px;top:24px}.me-orders .order .logistics .right-triangle.top{margin-top:1px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:6px solid #fff}.me-orders .order .logistics .right-triangle.bottom{margin-right:-1px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:7px solid #c9c9c9}.me-orders .order .operation>*{cursor:pointer}.me-orders .order .operation .pay-now{display:block;color:#fff;background:#de034a;height:20px;line-height:20px;text-align:center;margin:0 auto;border-radius:4px;width:68px}.me-history-orders .order-table-header .info,.me-history-orders .order .info{width:520px}.me-history-orders .order .info{text-align:center}.me-history-orders .order-table-header .order-sum,.me-history-orders .order .order-sum{width:90px;text-align:left}.me-history-orders .order li{border:none}.cancel-dialog{width:600px;background:#fff;padding:20px 30px 35px}.cancel-dialog header{font-size:18px;padding-bottom:20px;border-bottom:1px solid #e8e8e8;color:#000;text-align:left}.cancel-dialog .close{top:15px;right:30px}.cancel-dialog .close .iconfont{font-size:30px}.cancel-dialog .cancel-reason{text-align:left}.cancel-dialog .cancel-reason li{float:left;width:50%;height:28px;line-height:28px;font-size:14px}.cancel-dialog .cancel-reason label{padding-left:10px}.cancel-dialog .cancel-reason input[type=text]{margin-left:10px;height:24px;text-indent:5px}.cancel-dialog .cancel-tip{margin-top:20px;color:#d60248;font-size:14px;padding-left:17px;text-align:left}.cancel-dialog .btns{padding:15px 30px 0;text-align:center}.cancel-dialog .btns .btn{height:35px;font-size:15px;line-height:35px}.cancel-dialog .btns .cancel-sure{width:130px;color:#fff;background:#000;border:none}.cancel-dialog .btns .cancel-no{margin-left:30px;background:#fff;color:#000;border-color:#000;width:126px}.cancel-dialog .tip{margin:20px 0;font-size:12px;text-align:left;color:#db3d50}.cancel-dialog .reminder{margin:20px 0 10px}.cancel-dialog .info-prompt ul{margin-top:-10px}.cancel-dialog .info-prompt li{margin:10px 0;font-size:14px;line-height:16px;text-align:left}.cancel-dialog .info-prompt i{color:#d70400;font-family:SimSun;font-size:16px;margin-right:10px;vertical-align:-6px}.message-dialog{width:350px;background:#fff;padding:20px 30px 35px}.message-dialog .message-title{margin-top:40px;margin-bottom:27px;font-size:24px;font-weight:700}.message-dialog .message-summary{width:250px;margin:0 auto 22px;font-size:14px;word-wrap:break-word;line-height:20px}.message-dialog .btns{padding:15px 30px 0;text-align:center}.message-dialog .btns .btn{height:35px;font-size:15px;line-height:35px}.message-dialog .btns .message-sure{width:130px;color:#fff;background:#000;border:none}.message-dialog .close{top:15px;right:15px}.message-dialog .close .iconfont{font-size:30px}.edit-order-dialog{width:600px;background:#fff;padding:20px 30px 35px}.edit-order-dialog header{font-size:18px;padding-bottom:20px;border-bottom:1px solid #e8e8e8;color:#000;text-align:left}.edit-order-dialog .close{top:15px;right:30px}.edit-order-dialog .close .iconfont{font-size:30px}.edit-order-dialog .edit-order-info{text-align:left}.edit-order-dialog .edit-order-info li{height:26px;margin:20px 0;line-height:26px;font-size:14px;white-space:nowrap}.edit-order-dialog .edit-order-info .form-required{color:#d70400;font-family:SimSun;font-size:16px;margin-right:10px;vertical-align:-6px}.edit-order-dialog .edit-order-info label{display:inline-block;width:90px;text-align:right}.edit-order-dialog .edit-order-info .inp{width:188px;height:18px;line-height:18px;padding:3px 0;border:1px solid #e8e8e8;margin-left:10px;text-indent:5px;box-sizing:content-box}.edit-order-dialog .edit-order-info .w271{width:271px}.edit-order-dialog .edit-order-info .w40{width:40px}.edit-order-dialog .edit-order-info .inp[name=tel]{margin-left:0}.edit-order-dialog .ml10{margin-left:10px}.edit-order-dialog select{height:25px;line-height:25px;width:100px;padding:0;border:1px solid #ccc}.edit-order-dialog .error{display:none;margin-left:10px;color:#db3d50;font-size:12px}.edit-order-dialog .error .icon-error{margin-right:8px;vertical-align:text-bottom}.edit-order-dialog .btns{padding:15px 30px 0;text-align:center}.edit-order-dialog .btns .btn{height:35px;font-size:15px;line-height:35px}.edit-order-dialog .btns .edit-sure{width:130px;color:#fff;background:#000;border:none}.edit-order-dialog .btns .edit-no{margin-left:30px;background:#fff;color:#000;border-color:#000;width:126px}.edit-order-dialog .tip{margin:20px 0;font-size:12px;text-align:left;color:#db3d50}.order-icon{display:inline-block;vertical-align:middle;margin-right:10px;background:url(../assets/img/home/order-sprite.png?v1559f4c3cc0)}.icon-success{background-position:0 0}.icon-success,.icon-waiting{width:30px;height:30px;vertical-align:-6px}.icon-waiting{background-position:-32px 0}.icon-arrow{width:11px;height:7px;background-position:-36px -33px}.icon-error{width:15px;height:15px;background-position:0 -33px}.icon-right{width:15px;height:15px;background-position:-50px -33px}.icon-recycle{width:15px;height:17px;background-position:-18px -33px}.orders-me-page .orders .title{padding-left:130px;line-height:40px;background-image:url(../assets/img/home/orders.png?v1559f4c3cc1);font-size:12px;font-weight:700}.orders-me-page .order-table-header{padding:0;margin:0 10px;border:1px solid #e6e6e6}.order-detail-page{font-size:12px}.order-detail-page .order-detail>.title{background-image:url(../assets/img/home/order-detail.png?v1559f4c3cbe)}.order-detail-page .status{margin:10px 0;padding:10px;background:#efefef;border-bottom:1px solid #e6e6e6}.order-detail-page .status p{margin:5px 0;line-height:18px}.order-detail-page .status .cur-status{color:#e8044f}.order-detail-page .status .complete-tip{color:#999}.order-detail-page .status .cancel-order{margin-right:20px}.order-detail-page .status .cancel-order,.order-detail-page .status .edit-order{float:right;background:#ebebeb;border:1px solid #c1c1c1;color:#000}.order-detail-page .status .edit-order-active{background:#444;border:1px solid #444;color:#fff}.order-detail-page .status .go-pay{margin-left:60px}.order-detail-page .detail-info{padding:10px}.order-detail-page .sub-title{height:21px;line-height:21px;border:1px solid #e6e6e6;color:#333;background:#efefef}.order-detail-page .sub-title .icon{display:inline-block;height:11px;width:11px;background-image:url(../assets/img/home/complaint-icon.png?v1559f4c3ca5);margin:5px 5px 0}.order-detail-page .content{padding:10px 20px 20px}.order-detail-page .content p{line-height:18px}.order-detail-page .order-progress{padding-top:20px}.order-detail-page .order-progress li{position:absolute;width:150px;line-height:15px;top:20px}.order-detail-page .order-progress .cur{color:#e9034e;font-weight:700}.order-detail-page .order-progress .date{display:block;color:#999;padding-left:12px}.order-detail-page .progress-box{position:relative;width:552px;height:70px;margin:0 auto}.order-detail-page .progress-box .pg-0{left:-20px}.order-detail-page .progress-box .pg-1{left:145px}.order-detail-page .progress-box .pg-2{left:330px}.order-detail-page .progress-box .pg-3{left:515px}.order-detail-page .virtual-detail .pg-1{left:245px}.order-detail-page .virtual-detail .pg-2{left:515px}.order-detail-page .virtual-detail .outter-progress{background:url(../assets/img/home/virtual-order-progress.png?v1559f4c3cd5) no-repeat 0 0}.order-detail-page .virtual-detail .inner-progress{background:url(../assets/img/home/virtual-order-progress.png?v1559f4c3cd5) no-repeat 0 -12px}.order-detail-page .outter-progress{width:552px;height:12px;background:url(../assets/img/home/order-progress.png?v1559f4c3cbf) no-repeat 0 0}.order-detail-page .inner-progress{height:12px;background:url(../assets/img/home/order-progress.png?v1559f4c3cbf) no-repeat 0 -12px}.order-detail-page .handle-time{width:300px}.order-detail-page .recive-place{width:200px}.order-detail-page .logistics-info{width:800px}.order-detail-page .trace-order td,.order-detail-page .trace-order th{line-height:18px}.order-detail-page .differentOrder{position:relative;width:100%;margin-top:10px}.order-detail-page .differentOrder .warn{text-align:center;background:#fefbd5;font:initial;height:40px;line-height:40px;font-size:16px}.order-detail-page .differentOrder .warn .red{color:red}.order-detail-page .differentOrder .warn .why{background-image:url(../assets/img/sprite.order.png?v1559f4c4799);background-position:-247px -46px;width:26px;height:20px;display:inline-block;vertical-align:middle}.order-detail-page .differentOrder .warn .why:hover{cursor:pointer}.order-detail-page .differentOrder .differentBag:before{content:"";position:absolute;width:0;height:0;border-bottom:10px solid #000;border-left:10px solid transparent;border-right:10px solid transparent;top:-10px;right:113px}.order-detail-page .differentOrder .differentBag{display:none;position:absolute;right:-10px;top:40px;width:510px;padding:0 50px;background:#fff;z-index:1;border:1px solid #000;font-size:14px}.order-detail-page .differentOrder .bag{position:relative;border-bottom:1px solid #e0e0e0;margin-top:10px;padding:20px 0}.order-detail-page .differentOrder .bag h3{height:30px;line-height:30px;font-weight:700;margin-left:15px}.order-detail-page .differentOrder .bag .pre{background-position:0 -142px;left:-30px}.order-detail-page .differentOrder .bag .next,.order-detail-page .differentOrder .bag .pre{position:absolute;background-image:url(../assets/img/sprite.order.png?v1559f4c4799);width:30px;height:50px;top:70px;display:none;cursor:pointer}.order-detail-page .differentOrder .bag .next{background-position:-32px -142px;right:-30px}.order-detail-page .differentOrder .bag p{color:#767676;margin-left:15px}.order-detail-page .differentOrder .bagDetil{position:relative;height:90px;width:510px;overflow:hidden;margin-bottom:20px}.order-detail-page .differentOrder .bagDetil ul{list-style:none;position:absolute;left:0;clear:both;height:90px}.order-detail-page .differentOrder .bagDetil ul li{float:left;width:102px;height:90px;line-height:90px;text-align:center;position:relative}.order-detail-page .differentOrder .bagDetil ul li img{width:90px;height:90px}.order-detail-page .differentOrder .bagDetil ul li p{position:absolute;bottom:0;background:#9c3;width:90px;height:1rem;line-height:1rem;color:#fff;margin-left:7px}.order-detail-page .differentOrder .bagDetil ul li a,.order-detail-page .differentOrder .bagDetil ul li a:hover{cursor:default}.order-detail-page .good-list table{border-collapse:collapse}.order-detail-page .good-list thead{height:25px;line-height:25px;background:#000;padding:2px 5px;color:#fff}.order-detail-page .good-list td,.order-detail-page .good-list th{padding:5px;text-align:center;border-right:1px solid #e6e6e6;border-bottom:1px solid #e6e6e6}.order-detail-page .good-list th{border-color:#000}.order-detail-page .good-list tr td:last-child,.order-detail-page .good-list tr th:last-child{border-right:none}.order-detail-page .good-list .product-info{width:314px}.order-detail-page .good-list .good-price,.order-detail-page .good-list .num,.order-detail-page .good-list .sum{width:91px}.order-detail-page .good-list .yoho-coin{width:100px}.order-detail-page .good-list .yoho-coin a{display:inline-block;width:12px;height:12px;background-image:url(../assets/img/sprite.home.png?v1559f4c4798);background-position:0 -44px;vertical-align:text-top}.order-detail-page .good-list .thumb-link{float:left;position:relative;margin-left:5px;margin-right:10px}.order-detail-page .good-list .thumb{display:block;width:60px;height:60px}.order-detail-page .good-list .name-color-size{float:left;color:#999;padding-top:12px;text-align:left}.order-detail-page .good-list .name{display:block;color:#468fa2;line-height:18px;text-align:left;max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.order-detail-page .order-balance{text-align:right;border-bottom:1px solid #e6e6e6;padding:10px 0}.order-detail-page .order-balance .back-coin{height:30px}.order-detail-page .order-balance .yoho-coin{width:14px;height:14px;display:inline-block;background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:-321px -225px;vertical-align:middle;margin-top:-2px;margin-right:4px}.order-detail-page .order-balance em{font-weight:700}.order-detail-page .order-balance .payment{color:#e8044f}.order-detail-page .oo-btn{display:inline-block;height:30px;width:92px;line-height:30px;text-align:center;border-radius:3px;color:#fff;cursor:pointer}.order-detail-page .go-pay{background:#d9044a;border:1px solid #c54b73}.order-detail-page .order-operation{text-align:right;padding:20px 10px}.order-detail-page .order-operation .oo-icon{display:inline-block;height:22px;width:22px;vertical-align:text-bottom}.order-detail-page .order-operation .success-icon{background-image:url(../assets/img/sprite.home.png?v1559f4c4798);background-position:0 0}.order-detail-page .order-operation .cancel-icon{background-image:url(../assets/img/sprite.home.png?v1559f4c4798);background-position:-24px 0}.order-detail-page .order-operation .confirm-received{display:block;float:right;margin-top:5px;background:#d9044a;border:1px solid #c54b73}.order-detail-page .order-operation .cancel-order{background:#ebebeb;border:1px solid #c1c1c1;color:#000}.order-detail-page .freebie-tag{background:#9c3}.order-detail-page .advance-buy-tag{background:#fc1264}.order-detail-page .virtual-good-tag{background:red}.order-detail-page .presall-tag{background:blue}.order-ticket-page{font-size:12px}.order-ticket-page .order-ticket .title{background-image:url(../assets/img/home/orders.png?v1559f4c3cc1)}.order-ticket-page .ticket-info{padding:20px 10px}.order-ticket-page .ticket-info .ticket-tag{display:inline-block;width:72px;height:19px;line-height:19px;text-align:center;font-size:12px;color:#fff;background:#000;border-radius:3px;margin-right:5px}.order-ticket-page .ticket-info .order-num{margin-left:10px}.order-ticket-page .ticket-info .return-to-orders{float:right;color:#468fa2}.order-ticket-page .qr-codes{width:768px;padding:10px 0 10px 10px;border:1px solid #e7e7e7;background:#fff;margin:0 auto}.order-ticket-page .qr-codes li{float:left;width:232px;height:260px;margin:10px;border:1px solid #e7e7e7;word-break:break-all;overflow:hidden;text-align:center}.order-ticket-page .qr-codes .qr{width:230px;height:230px}.order-ticket-page .tickets-tip{width:758px;padding:10px;border:1px solid #e7e7e7;background:#fff;margin:20px auto}.order-ticket-page .tickets-tip p{padding-left:20px;padding-bottom:10px;line-height:20px;background:url(../assets/img/home/qr-tip.png?v1559f4c3cc3) no-repeat -27px 5px}.order-ticket-page .tickets-tip .warn{background-position:0 -23px}.red-envelopes-page{font-size:12px}.red-envelopes-page .red-envelopes>.title{font-size:14px;font-weight:700}.red-envelopes-page .re-header{height:25px;line-height:25px;width:100%;text-align:center;border-bottom:1px solid #e6e6e6;background:#efefef}.red-envelopes-page .re-header span{display:inline-block;width:33%}.red-envelopes-page .money{color:#d52c29;font-family:微软雅黑;font-size:20px;font-weight:700}.red-envelopes-page .re-icon{display:inline-block;width:20px;height:18px;background-image:url(../assets/img/sprite.home.png?v1559f4c4798);background-position:0 -24px}.red-envelopes-page .red-envelopes-list{display:table;width:100%}.red-envelopes-page .red-envelopes-list li{display:table-row;color:#666;border-top:1px solid #e6e6e6}.red-envelopes-page .red-envelopes-list li>*{display:table-cell;width:33%;padding:10px;text-align:center;vertical-align:middle;border-left:1px solid #e6e6e6}.red-envelopes-page .red-envelopes-list li>:first-child{border-left:none}.red-envelopes-page .red-envelopes-list .use-remark{text-align:left;line-height:18px}.me-coupons-page{font-size:12px}.me-coupons-page .coupons>.title{font-size:14px;font-weight:700}.me-coupons-page .coupons-header{width:776px;height:25px;line-height:25px;text-align:center;border:1px solid #e6e6e6;background:#efefef;margin:0 auto}.me-coupons-page .coupons-header span{display:block;float:left}.me-coupons-page .coupon{display:table;border:1px solid #e6e6e6;width:778px;margin:10px auto;text-align:center;color:#666}.me-coupons-page .coupon>*{display:table-cell;vertical-align:middle;border-left:1px solid #e6e6e6;padding:5px;line-height:18px}.me-coupons-page .coupon .coupons-img{border-left:none}.me-coupons-page .coupon .end-soon{color:#e8044f}.me-coupons-page .un-use-coupons .coupons-img{width:20%}.me-coupons-page .un-use-coupons .value{width:18%}.me-coupons-page .un-use-coupons .term-of-validity{width:22%}.me-coupons-page .un-use-coupons .term-of-validity span{display:none}.me-coupons-page .un-use-coupons .use-remark{width:24%}.me-coupons-page .un-use-coupons .status{width:16%}.me-coupons-page .un-use-coupons .end-soon span{display:inline;padding:3px 10px;color:#fff;background:#e8044f}.me-coupons-page .used-coupons .coupon>*,.me-coupons-page .used-coupons .coupons-header>span{width:16.66%}.me-coupons-page .no-valid-coupons .coupon>*,.me-coupons-page .no-valid-coupons .coupons-header>span{width:25%}.me-currency-page{font-size:12px}.me-currency-page .currencies>.title{background-image:url(../assets/img/home/currency.png?v1559f4c3ca9)}.me-currency-page .my-currency{height:58px;line-height:58px;font-weight:700;border-bottom:1px solid #e8e8e8;font-size:18px;color:#333;margin:0 10px}.me-currency-page .my-currency em{color:#ff2400;font-weight:400}.me-currency-page .my-currency.has-tip{border-bottom:none}.me-currency-page .currency-tip{height:40px;line-height:24px;font-size:18px;color:#333;font-weight:700;margin:-16px 10px 0;border-bottom:1px solid #e8e8e8}.me-currency-page .currency-tip em{color:#ff2400;font-weight:400}.me-currency-page .currency,.me-currency-page .tab-wrap{margin:0 10px}.me-currency-page .tab-wrap{position:relative}.me-currency-page .tab-wrap .options-helper{position:absolute;right:10px;top:0}.me-currency-page .tab-wrap .coin-helper{margin-left:10px;color:#468fa2}.me-currency-page .tabs{margin-left:0;margin-right:0}.me-currency-page .currency-header{height:25px;line-height:25px;text-align:center;border:1px solid #e6e6e6;background:#efefef;margin:0 10px}.me-currency-page .currency-header span{display:block;float:left;font-size:14px;font-weight:700}.me-currency-page .currency-header .date{width:159px}.me-currency-page .currency-header .income-expenditure{width:317px}.me-currency-page .currency-header .remark{width:300px}.me-currency-page .currency{display:table;border:1px solid #e6e6e6;margin-bottom:20px;border-bottom:none}.me-currency-page .currency li{display:table-row;text-align:center;font-size:14px;height:50px;line-height:50px}.me-currency-page .currency li>*{display:table-cell;border-left:1px solid #e6e6e6;border-bottom:1px solid #e6e6e6;vertical-align:middle;color:#666;padding:5px;line-height:18px}.me-currency-page .currency li>:first-child{border-left:none}.me-currency-page .currency .date{width:155px}.me-currency-page .currency .remark{width:300px}.me-currency-page .currency .remark>a{color:#468fa2;margin-left:10px;text-decoration:underline}.me-currency-page .currency .income-expenditure{width:320px;color:#73a7b5}.me-currency-page .currency .income{color:#e10049}.me-favorite-page .favorite .title{background-image:url(../assets/img/home/favorite.png?v1559f4c3caf)}.me-favorite-page .favorite-table-header{font-size:12px;padding:0}.me-favorite-page .favorite-table-header .options{width:136px}.me-favorite-page .fav-row{display:table;padding:10px 0;border-bottom:1px solid #e6e6e6}.me-favorite-page .fav-row>*{display:table-cell;vertical-align:middle}.me-favorite-page .fav-row .checkbox{width:40px;padding-left:10px}.me-favorite-page .del-favorite{color:#666;visibility:hidden;cursor:pointer}.me-favorite-page .fav-row:hover .del-favorite{visibility:visible}.me-favorite-page .empty-reduction,.me-favorite-page .favorite-articles,.me-favorite-page .favorite-brands,.me-favorite-page .favorite-products,.me-favorite-page .reduction-notice-tip{margin:0 10px;font-size:12px}.me-favorite-page .price-notice{position:absolute;width:320px;height:194px;z-index:12;top:50%;left:50%;margin-left:-160px;margin-top:-130px;background:#fff;border:1px solid #999;padding:20px;font-size:14px}.me-favorite-page .price-notice .close{position:absolute;display:block;top:5px;right:5px;width:46px;height:16px;cursor:pointer;background:#cdcdcd;color:#fff;border-radius:2px;font-size:12px}.me-favorite-page .price-notice .close:hover{background:#414141}.me-favorite-page .price-notice .price-notice-sure{display:block;width:82px;height:34px;line-height:34px;text-align:center;color:#fff;background:#e90024;font-weight:700;cursor:pointer;margin:20px auto 0}.me-favorite-page .price-notice .tip{line-height:20px;margin:20px 0}.me-favorite-page .price-notice label{margin-right:10px}.me-favorite-page .price-notice input{width:180px;height:30px;line-height:30px;color:#333;padding:0 5px;font-size:14px;border:1px solid #bebebe}.me-favorite-page .price-notice input.error{border-color:red}.me-favorite-page .price-notice .err-text{padding-left:70px;line-height:24px;color:red}.me-favorite-page .price-notice .err-text i{display:block;float:left;height:14px;width:14px;background-image:url(../assets/img/sprite.passport.png?v1559f4c4797);background-position:-95px -113px;margin-right:5px;margin-top:5px}.me-favorite-page .price-notice .phone-diff{color:red;line-height:18px}.me-favorite-page .price-notice .success{text-align:center}.me-favorite-page .price-notice .success p{font-size:14px;line-height:22px;margin-top:20px}.me-favorite-page .price-notice .success .iconfont{color:#51c516;font-size:24px}.me-favorite-page .price-notice .success .notice-num{color:#e20d29}.me-favorite-page .price-notice .cue{text-align:center;padding:70px 0 50px;display:none}.me-favorite-page .price-notice .cue span{color:#e90024}.me-favorite-page .price-notice .cue p{font-size:14px;line-height:22px}.me-favorite-page .error .content,.me-favorite-page .error .success{display:none}.me-favorite-page .error .cue{display:block}.me-favorite-page .reduction-notice-tip{border:1px solid #e7e7e7;padding:20px;margin-bottom:10px}.me-favorite-page .reduction-notice-tip .notice-text{width:245px;float:left}.me-favorite-page .reduction-notice-tip h2{color:#000;font-size:14px;line-height:1.5}.me-favorite-page .reduction-notice-tip p{padding:10px 0;color:#999;font-size:12px;line-height:1.5}.me-favorite-page .reduction-notice-tip .notice-img{float:right;width:458px;height:197px;background:url(../assets/img/home/reduction-notice.jpg?v1559f4c3cc6)}.me-favorite-page .empty-reduction{text-align:center;font-size:14px;border:1px solid #e7e7e7;padding:40px;margin-bottom:20px}.me-favorite-page .empty-reduction a{display:inline-block;width:92px;height:30px;line-height:30px;color:#666;text-align:center;cursor:pointer;background:#ededed;border:1px solid #dbdbdb;border-radius:3px}.me-favorite-page .reduction-products{margin-bottom:20px}.fav-products .favorite-products>ul{padding-bottom:20px}.fav-products .sorts{position:relative;padding:10px 35px 10px 10px;min-height:20px;line-height:20px;margin:0 10px 10px;background:#f3f3f3;border:1px solid #e6e6e6;color:#ccc}.fav-products .sorts .sort{height:20px;line-height:20px;color:#666;font-size:12px;display:inline-block}.fav-products .sorts .sort.focus{background:url(../assets/img/home/sort-select.png?v1559f4c3ccd) no-repeat 0;padding-left:18px;color:#fff}.fav-products .sorts .sort.focus a{display:inline-block;background:url(../assets/img/home/sort-select.png?v1559f4c3ccd) no-repeat 100%;font-weight:700;color:#fff}.fav-products .sorts .sep{margin:0 10px}.fav-products .sorts .has-more{margin-left:10px}.fav-products .all-sorts{display:none}.fav-products .sort-btn{position:absolute;display:block;width:19px;height:19px;line-height:19px;right:10px;top:10px;text-align:center;border:1px solid #ececec;background:#fff;cursor:pointer}.fav-products .sort-btn .iconfont{color:#000;font-size:12px}.fav-products .reduction-filter{height:30px;line-height:30px;text-align:right;font-size:12px;margin:0 10px}.fav-products .reduction-notice{float:left;color:#666}.fav-products .favorite-goods{margin:0 10px;font-size:12px}.fav-products .favorite-goods>ul{padding-bottom:20px}.fav-products .favorite-table-header .info{width:390px;padding-left:50px;text-align:left}.fav-products .favorite-table-header .price{width:200px;text-align:left}.fav-products .fav-good{position:relative}.fav-products .fav-good .thumb{width:110px;text-align:center}.fav-products .fav-good .thumb img{width:100px}.fav-products .fav-good .text-info{width:270px;line-height:16px}.fav-products .fav-good .name{color:#468fa2;display:block}.fav-products .fav-good .name:hover{text-decoration:underline}.fav-products .fav-good .has-bought{display:inline-block;width:37px;height:15px;line-height:15px;text-align:center;color:#fff;background:#418fa3;border-radius:2px}.fav-products .fav-good .has-activity{color:#666;cursor:pointer}.fav-products .fav-good .price{width:200px;padding-left:10px}.fav-products .fav-good .price>em{font-weight:700;color:#e8044f;font-size:14px}.fav-products .fav-good .price .price-down{display:block;margin-top:5px}.fav-products .fav-good .price .price-down>em{color:#e8044f}.fav-products .fav-good .price .price-down .iconfont{font-size:12px}.fav-products .fav-good .options{width:136px;text-align:center}.fav-products .fav-good .options>*{display:block}.fav-products .fav-good .options .buy-again,.fav-products .fav-good .options .buy-now{width:92px;height:30px;line-height:30px;font-size:14px;text-align:center;border-radius:4px;margin:0 auto}.fav-products .fav-good .options .buy-now{color:#fff;background:#da044a}.fav-products .fav-good .options .buy-again{color:#666;background:#ececec;border:1px solid #cecece}.fav-products .fav-good .options .price-down-clock{line-height:20px;color:#666;cursor:pointer}.fav-products .fav-good .options .sold-out{color:#666}.fav-products .fav-good .options .buy-again,.fav-products .fav-good .options .buy-now,.fav-products .fav-good .options .sold-out{margin-top:12px}.fav-products .fav-good .activites{position:absolute;left:160px;right:0;top:120px;padding:10px 0;border-top:1px dashed #ccc}.fav-products .fav-good .activites li{line-height:18px}.fav-products .fav-good .activites .type{display:inline-block;width:54px;height:14px;line-height:14px;margin-right:5px;overflow:hidden;background:#6c6c6c;border-radius:2px;color:#fff;text-align:center;vertical-align:middle}.fav-products .fav-good .activites .arrow{position:absolute;width:13px;left:20px;top:-7px;height:7px;background-image:url(../assets/img/sprite.home.png?v1559f4c4798);background-position:-48px -31px}.fav-products .fav-good:hover{background:#f3f3f3}.fav-brands .favorite-brands>ul{padding-bottom:20px}.fav-brands .favorite-table-header .name{width:190px;padding-left:50px;text-align:left}.fav-brands .favorite-table-header .col-count,.fav-brands .favorite-table-header .new-arrival{width:200px}.fav-brands .fav-brand{position:relative;font-size:12px}.fav-brands .fav-brand .thumb{width:190px}.fav-brands .fav-brand .thumb a{display:block;width:115px;padding:5px;text-align:center;border:1px solid #f4f4f4}.fav-brands .fav-brand .thumb .name{display:block;background:#f4f4f4;color:#666;line-height:18px}.fav-brands .fav-brand .thumb img{width:100px;height:100px}.fav-brands .fav-brand .col-count,.fav-brands .fav-brand .new-arrival{width:200px;text-align:center}.fav-brands .fav-brand .new-arrival{cursor:pointer}.fav-brands .fav-brand .options{width:136px;text-align:center}.fav-brands .fav-brand .brand-shop{display:block;width:92px;height:30px;line-height:30px;border:1px solid #c2c2c2;background:#ececec;text-align:center;cursor:pointer;margin:14px auto 10px;border-radius:2px;color:#666;font-size:14px}.fav-brands .fav-brand .na-list{position:absolute;left:50px;right:0;top:152px;padding:10px 0;border-top:1px dashed #ccc}.fav-brands .fav-brand .na-list .arrow{position:absolute;width:13px;left:265px;top:-7px;height:7px;background-image:url(../assets/img/sprite.home.png?v1559f4c4798);background-position:-48px -31px}.fav-brands .fav-brand .na-good{width:102px;height:165px;padding:0 15px;text-align:left}.fav-brands .fav-brand .na-good-thumb{border:1px solid #ccc;width:100px;height:100px;vertical-align:middle}.fav-brands .fav-brand .na-good-name{color:#666;line-height:14px;margin:5px 0;max-height:28px;overflow:hidden}.fav-brands .fav-brand .na-content>*{float:left}.fav-brands .fav-brand .has-no-na{text-align:center;float:none;padding:20px 183px 20px 0}.fav-brands .fav-brand .has-sale{text-decoration:line-through}.fav-brands .fav-brand .na-next,.fav-brands .fav-brand .na-pre{display:block;width:31px;height:31px;line-height:33px;text-align:center;background:#f4f4f4;border:1px solid #eee;margin-top:66px}.fav-brands .fav-brand .na-next.hidden,.fav-brands .fav-brand .na-pre.hidden{visibility:hidden}.fav-brands .fav-brand .na-goods{width:660px;height:165px;padding-top:20px;overflow:hidden}.fav-brands .fav-brand .na-goods-ul{width:2640px}.fav-brands .fav-brand .na-goods-ul>li{float:left}.fav-articles .favorite-articles>ul{padding-bottom:20px}.fav-articles .fav-article:first-child{padding-top:8px}.fav-articles .bg-img{display:block;width:146px;height:96px;backgound-size:cover;background-position:50%}.fav-articles .text-info{width:559px;padding-left:20px}.fav-articles .name{display:block;font-weight:700;font-size:14px;line-height:30px;color:#000;width:550px;word-break:keep-all;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fav-articles .name:hover{text-decoration:underline}.fav-articles .desc{color:#333;font-size:12px;line-height:24px;height:48px}.fav-articles .del-favorite{float:right;font-size:12px;cursor:pointer}.user-me-page{font-size:12px;line-height:150%}.user-me-page form{display:inline}.user-me-page strong{font-weight:700}.user-me-page .clear{zoom:1}.user-me-page .clear:after{content:".";display:block;height:0;visibility:hidden;overflow:hidden;clear:both}.user-me-page .userinfo-edit form{display:none}.user-me-page .userinfo-edit h2.title{background-image:url(../assets/img/home/edit/title-informations.png?v1559f4c3d4a)}.user-me-page .account,.user-me-page .email,.user-me-page .gift,.user-me-page .mobile,.user-me-page .userpwd{font-size:12px;line-height:150%}.user-me-page .account .title,.user-me-page .email .title,.user-me-page .gift .title,.user-me-page .mobile .title,.user-me-page .userpwd .title{position:relative}.user-me-page .account .title h2,.user-me-page .email .title h2,.user-me-page .gift .title h2,.user-me-page .mobile .title h2,.user-me-page .userpwd .title h2{height:16px;font-size:14px;font-weight:700;line-height:16px;position:absolute;top:50%;margin-top:-8px}.user-me-page .account .title h2 span,.user-me-page .email .title h2 span,.user-me-page .gift .title h2 span,.user-me-page .mobile .title h2 span,.user-me-page .userpwd .title h2 span{font-size:10px;-webkit-transform:scale(.85);display:inline-block;line-height:15px;font-weight:400;padding-left:0}.user-me-page .address{font-family:arial,Microsoft YaHei}.user-me-page .address a{color:#468fa2;text-decoration:none}.user-me-page .address .a-underline{text-decoration:underline}.user-me-page .address input[type=button]{margin-top:0}.user-me-page .address input#address{width:340px}.user-me-page .address .title{position:relative}.user-me-page .address .title h2{width:66px;height:16px;background:url(../assets/img/home/edit/title-address.png?v1559f4c3d49) no-repeat;text-indent:-999em;float:left;position:absolute;top:50%;margin-top:-8px}.user-me-page .address .main{width:798px;padding:10px 1px 1px;float:left;border:1px solid #dedede;border-radius:2px}.user-me-page .address .address-list{width:776px;margin:0 10px;display:inline;border:1px solid #e6e6e6;border-bottom:0;float:left}.user-me-page .address .address-content{width:756px;padding:10px;border-bottom:1px solid #e6e6e6;float:left}.user-me-page .address .address-content.preferred{background:#fdfcdd;color:#333}.user-me-page .address .address-detail{width:596px;float:left}.user-me-page .address .address-edit{width:150px;padding:10px 0 10px 10px;text-align:center;float:left}.user-me-page .address.block{border:none}.user-me-page .btn-c3{height:22px;background:url(../assets/img/home/edit/btn_hs.png?v1559f4c3d42) no-repeat left -66px;padding-left:8px;display:inline-block}.user-me-page .btn-c3 span{height:22px;line-height:21px;background:url(../assets/img/home/edit/btn_hs.png?v1559f4c3d42) no-repeat right -66px;padding-right:10px;display:inline-block;cursor:pointer;color:#fff}.user-me-page .btn-c2{height:22px;background:url(../assets/img/home/edit/btn_hs.png?v1559f4c3d42) no-repeat left -44px;padding-left:8px;display:inline-block}.user-me-page .btn-c2 span{height:22px;line-height:21px;background:url(../assets/img/home/edit/btn_hs.png?v1559f4c3d42) no-repeat right -44px;padding-right:10px;display:inline-block;cursor:pointer;color:#b3b3b3}.user-me-page .main-info{border-top:1px solid #ddd;padding:20px 10px 10px}.user-me-page .main-info .p1{padding-bottom:10px;font-weight:700}.user-me-page .main-info .blue2{color:#468fa2}.user-me-page .block{min-height:375px;height:auto}.user-me-page .block form#giftCardForm,.user-me-page .block form#pwdform,.user-me-page .block form.first{display:block}.user-me-page .edit-box{padding:10px 11px 11px}.user-me-page .form-group{height:30px;border:1px solid #fff;margin-bottom:2px;line-height:22px;font-size:12px;font-family:Arial,helvetica,sans-serif}.user-me-page .form-group label{width:80px;text-align:right;color:#333;float:left}.user-me-page .plain{color:#666;font-weight:700}.user-me-page .width-300{width:300px}.user-me-page .width-150{width:150px}.user-me-page .input-1{height:20px;line-height:20px;color:#333;border:1px solid #c9c9c9;background:url(../assets/img/home/edit/input_1.png?v1559f4c3d48) repeat-x #fff;vertical-align:top}.user-me-page .btn-b1{width:118px;height:34px;border:0;background:url(../assets/img/home/edit/btn_b1.png?v1559f4c3d40) no-repeat;color:#fff;font-size:14px;font-weight:700;padding-right:10px;cursor:pointer;display:inline-block;margin-top:12px;margin-left:80px}.user-me-page #btn-reset{margin-left:0}.user-me-page .tips-p{margin-left:10px;color:#999;display:inline-block}.user-me-page .box{width:778px;clear:both;padding-top:10px;margin-bottom:10px;float:left}.user-me-page .sub-title{clear:both;height:21px;line-height:21px;padding-left:23px;background:url(../assets/img/home/edit/ico_arrow2.png?v1559f4c3d45) no-repeat 5px 5px #efefef;border:1px solid #e6e6e6;font-size:12px;color:#333;font-weight:400;cursor:pointer;margin-bottom:2px}.user-me-page .sub-title .more{padding:2px 10px 0 0;float:right}.user-me-page .sub-title .btn-edit{width:37px;height:17px;background:url(../assets/img/home/edit/btn_edit.png?v1559f4c3d41) no-repeat;display:inline-block;overflow:hidden;border:0}.user-me-page .user-personal-info .user-info{width:552px;padding-right:38px;float:left}.user-me-page .user-personal-info .user-profile{width:148px;padding:18px;text-align:center;float:right;border-left:1px solid #e0e0e0}.user-me-page .user-personal-info .user-profile img{width:100px;height:100px;margin-bottom:10px}.user-me-page .user-favorite-info ul{clear:both;width:750px;padding:0 20px 0 0;float:left}.user-me-page .user-favorite-info ul li{height:22px;padding-left:20px;float:left;font-size:12px}.user-me-page .user-favorite-info .brand-box{width:725px;margin:0 0 10px 20px;display:inline;padding:5px 10px 5px 0;border:1px solid #ccc;background:#f8f8f8;color:#000}.user-me-page .user-favorite-info .brand-box li{height:22px;line-height:22px;padding:0 0 0 10px;float:left;display:inline-block;white-space:nowrap}.user-me-page .user-favorite-info .btn-del{height:20px;line-height:20px;border:0;padding-left:18px;background:url(../assets/img/home/edit/ico_del.png?v1559f4c3d46) no-repeat 0 2px;color:#468fa2;display:inline-block;overflow:hidden;text-decoration:none;vertical-align:middle}.user-me-page .user-favorite-info .btn-submit-sm{width:56px;height:20px;border:0;font-size:12px;color:#fff;line-height:20px;padding:0;margin:0;background:url(../assets/img/home/edit/btn_s1_z2.png?v1559f4c3d43) repeat-x;text-align:center;display:inline-block;cursor:pointer}.user-me-page .user-favorite-info span{color:#999;line-height:25px;display:inline-block}.user-me-page .user-favorite-info .form-group{clear:both;width:730px;padding:0 20px 5px;float:left}.user-me-page .account-row{padding:30px 0;border-bottom:1px solid #ddd}.user-me-page .account-row .content{height:32px;line-height:32px;position:relative}.user-me-page .account-row .content div{float:left;display:inline-block}.user-me-page .account-row .content .left-content{width:200px}.user-me-page .account-row .content .middle-content{width:500px}.user-me-page .account-row .content .middle-content .tip{color:#666}.user-me-page .account-row .content .middle-content .tip.red{color:#e01}.user-me-page .account-row .content .right-content{width:75px;height:20px;line-height:20px;position:absolute;top:50%;margin-top:-10px;text-align:center}.user-me-page .account-row .center{text-align:center}.user-me-page .account-row a{text-decoration:none;color:#666;outline:none}.user-me-page .account-row [class*=" icon-"],.user-me-page .account-row [class^=icon-]{height:32px;line-height:32px;vertical-align:middle;display:inline-block;padding-left:42px;margin-left:20px}.user-me-page .account-row .icon-ok{background:url(../assets/img/home/edit/icon-32.png?v1559f4c3d44) no-repeat 0 0}.user-me-page .account-row .icon-warning{background:url(../assets/img/home/edit/icon-32.png?v1559f4c3d44) no-repeat 0 -32px}.user-me-page .account-row .account-type{font-size:18px;line-height:32px;display:inline-block;padding-left:20px}.user-me-page .button-icon20{padding-left:5px;background:url(../assets/img/home/edit/btn_bg_20.png?v1559f4c3d40) no-repeat left 0;display:inline-block;cursor:pointer}.user-me-page .button-icon20 i{font-style:normal;background:url(../assets/img/home/edit/btn_bg_20.png?v1559f4c3d40) repeat-x left -20px;display:inline-block;height:20px;line-height:20px;text-align:center}.user-me-page .button-sliver20 i{background-position:left -80px;width:52px}.user-me-page .button-icon20 span{background:url(../assets/img/home/edit/btn_bg_20.png?v1559f4c3d40) no-repeat right -40px;display:inline-block;padding-right:5px}.user-me-page .button-sliver20 span{background-position:right -100px}.user-me-page .button-sliver20{background-position:left -60px}.user-me-page .gift-box{padding:10px 11px 11px}.user-me-page .gift-box h2{height:16px;font-size:14px;font-weight:700;line-height:16px}.user-me-page .gift-box li{font-size:12px;font-family:arial,Microsoft YaHei;margin-bottom:25px}.user-me-page .gift-box .gift-input{width:60px;height:20px;line-height:20px;color:#333;border:1px solid #c9c9c9;background:url(../assets/img/home/edit/input_1.png?v1559f4c3d48) repeat-x #fff}.user-me-page .gift-box .gift-error{color:red;margin-left:10px}.user-me-page .gift-box #imgcode{border:0;vertical-align:middle;outline:none;cursor:pointer}.user-me-page .gift-box .check-img{color:#468fa2;text-decoration:underline}.user-me-page .gift-box .btn-b1{margin:0}.user-me-page .form-error{background:url(../assets/img/home/onError.png?v1559f4c3cbc) no-repeat 5px 9px #fff2e8;color:#e8044f}.user-me-page .form-error,.user-me-page .form-success{padding-left:25px;padding-right:5px;font-size:12px;line-height:30px;height:30px;display:inline-block;margin-left:5px}.user-me-page .form-success{background:url(../assets/img/home/onCorrect.png?v1559f4c3cbb) no-repeat 5px 9px #e9ffeb;color:green}.user-me-page .form-focus,.user-me-page .form-prompt{background:url(../assets/img/home/onShow.png?v1559f4c3cbc) no-repeat 5px 9px;padding-left:25px;font-size:12px;line-height:30px;height:30px;display:inline-block;color:#999}.user-me-page .form-focus{background:url(../assets/img/home/onShow.png?v1559f4c3cbc) no-repeat 5px 9px #e9f0ff;color:#666}.user-me-page .add-address{width:778px;padding:10px 0;float:left}.user-me-page .add-address h2{clear:both;height:21px;line-height:21px;padding-left:23px;margin-left:10px;background:url(../assets/img/home/edit/ico_arrow2.png?v1559f4c3d45) no-repeat 5px 5px #efefef;border:1px solid #e6e6e6;font-size:12px;color:#333;font-weight:400}.user-me-page .add-address .form-group{width:130%}.user-me-page .add-address .add-address-detail{padding:10px 0}.user-me-page .add-address .add-address-detail .form-info{vertical-align:middle;line-height:22px;height:22px;background-position:5px 5px}.user-me-page .add-address #btnReset{margin-left:0}.user-me-page .gift-fail,.user-me-page .gift-ok{padding:50px 260px;height:310px;display:block}.user-me-page .gift-fail h3,.user-me-page .gift-ok h3{font-size:18px;height:22px;line-height:25px;padding-left:25px;color:#000;background:url(../assets/img/home/edit/ico_i_sf.png?v1559f4c3d47) no-repeat}.user-me-page .gift-fail .fail,.user-me-page .gift-ok .fail{background-position:0 -22px}.user-me-page .gift-fail .input-again,.user-me-page .gift-ok .input-again{text-decoration:underline;color:#c4153a}.user-me-page .gift-fail .input-again:active,.user-me-page .gift-fail .input-again:hover,.user-me-page .gift-ok .input-again:active,.user-me-page .gift-ok .input-again:hover{color:#c4153a}.user-me-page .gift-fail .success,.user-me-page .gift-ok .success{background-position:0 0}.user-me-page .gift-fail .currency-info,.user-me-page .gift-ok .currency-info{margin-top:20px;padding-left:25px}.user-me-page .gift-fail .gift-red,.user-me-page .gift-ok .gift-red{color:#bc0029;font-size:16px;font-weight:700;margin-left:5px}.user-me-page .gift-fail .yoho-currency,.user-me-page .gift-ok .yoho-currency{font-size:16px;font-weight:700;color:#3e3e3e}.user-me-page .check-safe{padding:10px 11px 11px;height:auto;overflow:hidden}.user-me-page .check-safe .form-success{background:url(../assets/img/home/onCorrect.png?v1559f4c3cbb) no-repeat 5px 9px}.user-me-page .check-safe .progress-bar{width:780px;height:24px}.user-me-page .check-safe .progress-bar li{float:left;width:260px;color:#666;text-align:center;height:24px;line-height:24px}.user-me-page .check-safe .progress-bar li.cur{color:#fff}.user-me-page .check-safe .progress1{background:url(../assets/img/home/edit/icon-bar.png?v1559f4c3d44) no-repeat}.user-me-page .check-safe .progress2{background:url(../assets/img/home/edit/icon-bar.png?v1559f4c3d44) no-repeat 0 -24px}.user-me-page .check-safe .progress3{background:url(../assets/img/home/edit/icon-bar.png?v1559f4c3d44) no-repeat 0 -48px}.user-me-page .check-safe input[type=password],.user-me-page .check-safe input[type=text]{height:28px;border:1px solid #bebebe;line-height:28px;padding:0 5px}.user-me-page .check-safe .form-nav{padding:30px 0}.user-me-page .check-safe .form-nav ul{width:690px;margin:0 auto}.user-me-page .check-safe .form-nav li{padding:10px 0;float:left}.user-me-page .check-safe .form-nav .safe-form-l{float:left;width:220px;line-height:30px;padding:0 5px;text-align:right}.user-me-page .check-safe .form-nav .safe-form-r{width:422px;line-height:30px;float:left}.user-me-page .check-safe .form-nav .input-text{width:208px}.user-me-page .check-safe .form-nav .input-code{width:54px;margin-right:5px}.user-me-page .check-safe .form-nav #the-code-img{border:0;vertical-align:middle;outline:none;height:30px;cursor:pointer}.user-me-page .check-safe .form-nav .change-code{height:30px;padding:0 0 0 5px;line-height:15px;display:inline-block;vertical-align:middle;color:#666}.user-me-page .check-safe .form-nav .the-code{color:#468fa2}.user-me-page .check-safe .form-nav .btn-b1{margin:0}.user-me-page .check-safe .form-nav .check-info{display:inline-block;vertical-align:top}.user-me-page .check-safe .form-nav .input-error{border:2px solid #e8044f;height:26px;padding:0 4px}.user-me-page .feedback dt{height:20px;line-height:20px;background:url(../assets/img/home/suggest-icon.png?v1559f4c3ccf) no-repeat 2px 3px;padding:0 0 0 20px;float:left;font-family:arial,Microsoft YaHei;font-size:12px}.user-me-page .feedback dt a{color:#468fa2}.user-me-page .feedback dd{float:right}.user-me-page .button-top{width:66px;height:22px;padding-left:10px;line-height:21px;border:0;text-align:center;background:url(../assets/img/home/btn_top.png?v1559f4c3ca0) no-repeat;color:#666;font-size:12px;cursor:pointer;display:inline-block}.user-me-page .rgb6{color:#666}.user-me-page .font14{font-size:14px}.user-me-page .button-icon{padding-left:5px;background:url(../assets/img/home/button-icon.png?v1559f4c3ca1) no-repeat left 0;display:inline-block;cursor:pointer}.user-me-page .button-icon i{font-style:normal;background:url(../assets/img/home/button-icon.png?v1559f4c3ca1) repeat-x left -33px;display:inline-block;height:33px;line-height:33px;text-align:center}.user-me-page .button-icon span{background:url(../assets/img/home/button-icon.png?v1559f4c3ca1) no-repeat right -66px;display:inline-block;padding-right:5px}.user-me-page .button-red{background-position:left -99px;color:#fff}.user-me-page .button-red i{background-position:left -134px;width:120px}.user-me-page .button-red i .btn-jt{background:url(../assets/img/home/btn-jt.png?v1559f4c3c9e) no-repeat;width:5px;height:8px;display:inline-block;margin-left:10px}.user-me-page .button-red span{background-position:right -169px}.user-me-page .button-sliver i{width:100px;color:#666}.user-me-page .result-email,.user-me-page .result-info{padding:30px 0;min-height:360px;width:616px;margin:0 auto;text-align:center}.user-me-page .result-email p,.user-me-page .result-info p{line-height:24px}.user-me-page .result-email .info-detail,.user-me-page .result-info .info-detail{margin-top:20px;text-align:left}.user-me-page .result-email .button-icon,.user-me-page .result-info .button-icon{margin-top:20px}.user-me-page .result-email{text-align:left;width:400px}.user-me-page .res-info{height:24px;line-height:51px;padding-left:28px;font-size:20px;color:#000;line-height:24px;display:inline-block}.user-me-page .res-success{background:url(../assets/img/home/icon-24.png?v1559f4c3cb7) no-repeat}.user-me-page .res-error{background:url(../assets/img/home/icon-24.png?v1559f4c3cb7) no-repeat 0 -24px;color:red}.returns-me-page .returns .title{background-image:url(../assets/img/home/returns.png?v1559f4c3ccc)}.returns-me-page .operation,.returns-me-page .return-status,.returns-me-page .time{width:100px;border-left:1px solid #e6e6e6}.returns-me-page .return-type{width:80px;border-left:1px solid #e6e6e6}.returns-me-page .order-table-header{padding:0;margin:10px;border:1px solid #e6e6e6}.returns-me-page .order-table-header>span{text-align:center;border-left:none}.returns-me-page .order-table-header .info{width:384px;padding-left:10px;text-align:left}.returns-me-page .order-wrap li{border-top:none}.returns-me-page .order-wrap li .info{width:384px;padding:5px 0 5px 10px}.returns-me-page .order-wrap li .text-info{width:300px;right:0;bottom:15px}.returns-me-page .order-wrap li .text-info .name{max-width:300px}.returns-me-page .order-wrap li .text-info .name:hover{text-decoration:underline}.detail-me-page{font-size:12px}.detail-me-page .returns-detail .title{background-image:url(../assets/img/home/returns.png?v1559f4c3ccc)}.detail-me-page .order-info{background:#efefef;padding:10px}.detail-me-page .order-info span{color:#468fa2;margin:0 8px}.detail-me-page .visual-return-state{margin:40px auto;height:40px;width:560px;background:url(../assets/img/home/exchange-bg.png?v1559f4c3cae) no-repeat top}.detail-me-page .visual-return-state li{width:112px;padding:20px 0 0;text-align:center;float:left}.detail-me-page .visual-return-state .act{background:url(../assets/img/home/detail-act.png?v1559f4c3cac) no-repeat top}.detail-me-page .detail-container{padding:10px}.detail-me-page .detail-container h2{height:21px;line-height:21px;padding-left:23px;background:url(../../../img/home/complaint-icon.png?v154be17d15d) no-repeat 5px 5px #efefef;border:1px solid #e6e6e6;font-size:12px;color:#333;font-weight:400;margin-bottom:10px}.detail-me-page .detail-container .courier-code{margin:60px auto;text-align:center}.detail-me-page .detail-container .courier-code .express-edit-box{display:none}.detail-me-page .detail-container .courier-code button{padding:5px 15px}.detail-me-page .detail-container .in-edit .express-view-box{display:none}.detail-me-page .detail-container .in-edit .express-edit-box{display:block}.detail-me-page .detail-container .main-detail table{width:100%}.detail-me-page .detail-container .main-detail table tr{border:1px solid #e6e6e6}.detail-me-page .detail-container .main-detail table td{text-align:left;padding:8px 10px;border:none;color:#333}.detail-me-page .detail-container .word-h{display:none}.detail-me-page .detail-container .refund-tips{color:#999;margin-top:10px;margin-bottom:40px}.detail-me-page .exchange-detail .word-t{display:none}.detail-me-page .exchange-detail .word-h{display:inline-block}.detail-me-page .exchange-detail .refund-tips span{display:none}.apply-returns-page{font-size:12px}.apply-returns-page .title{background-image:url(../assets/img/home/refund-apply.png?v1559f4c3cc7)}.apply-returns-page .exchange .title{background-image:url(../assets/img/home/exchange-apply.png?v1559f4c3cad)}.apply-returns-page select{width:85px;font-size:12px;outline:none}.apply-returns-page .apply-container{padding:10px}.apply-returns-page .apply-container .return-prompt{padding:20px;border:1px solid #e6e6e6;margin-bottom:10px;line-height:21px;color:#333}.apply-returns-page .apply-container .return-prompt span{color:red}.apply-returns-page .apply-container .return-prompt .footwear-tip{height:142px;line-height:18px;margin-top:20px;padding-left:536px;background:url(../assets/img/home/footwear-tips.jpg?v1559f4c3cb3) no-repeat}.apply-returns-page .apply-container .return-prompt .footwear-tip span{color:#666}.apply-returns-page .apply-container .return-prompt .footwear-tip span:first-child{display:block;margin-bottom:15px}.apply-returns-page .apply-container h2{height:21px;line-height:21px;padding-left:23px;background:url(../assets/img/home/complaint-icon.png?v1559f4c3ca5) no-repeat 5px 5px #efefef;border:1px solid #e6e6e6;font-size:12px;color:#333;font-weight:400}.apply-returns-page .apply-container .goods-list-table{width:100%;margin-bottom:10px}.apply-returns-page .apply-container .goods-list-table tr{border:1px solid #e6e6e6;height:18px;line-height:18px}.apply-returns-page .apply-container .goods-list-table tr th{text-align:center;background:#efefef;padding:5px;color:#333}.apply-returns-page .apply-container .goods-list-table tr th:first-child{text-align:left}.apply-returns-page .apply-container .goods-list-table tr td{color:#666;padding:5px}.apply-returns-page .apply-container .goods-list-table .return-goods-info>*{display:block}.apply-returns-page .apply-container .goods-list-table .return-goods-info a{color:#468fa2;text-decoration:none;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.apply-returns-page .apply-container .goods-list-table .return-goods-info span{color:#999}.apply-returns-page .apply-container .goods-list-table .exchange-choose-wrap{width:185px;border:1px solid #e6e6e6;text-align:center}.apply-returns-page .apply-container .goods-list-table .exchange-choose-wrap p{line-height:29px}.apply-returns-page .apply-container .goods-list-table .exchange-choose-wrap select{width:85px}.apply-returns-page .apply-container .goods-list-table .refund-price{width:185px;color:#666;font-weight:700;text-align:center}.apply-returns-page .apply-container .goods-list-table .return-reason-wrap{width:200px;text-align:center}.apply-returns-page .apply-container .goods-list-table .return-reason-wrap select{width:190px}.apply-returns-page .apply-container .goods-list-table .return-reason-wrap label{color:#999;padding:4px 20px;background:#f5f5f5;border:1px solid #dadada}.apply-returns-page .apply-container .goods-list-table .border-style{border:1px solid #e6e6e6}.apply-returns-page .apply-container .goods-list-table .ex-tips,.apply-returns-page .apply-container .goods-list-table .re-tips{text-align:left;padding-left:10px;color:#666}.apply-returns-page .apply-container .goods-list-table .problem-description{display:none}.apply-returns-page .apply-container .goods-list-table .problem-description .left-title{width:160px;text-align:right;padding-right:15px}.apply-returns-page .apply-container .goods-list-table .problem-description .left-title .red-icon{color:red}.apply-returns-page .apply-container .goods-list-table .problem-description textarea{width:545px;height:75px;max-width:545px;max-height:300px;padding:5px;border:1px solid #ccc}.apply-returns-page .apply-container .goods-list-table .problem-description .up-image-tips{width:545px;background:#f5f5f5;border:1px solid #ccc;margin-bottom:15px;padding:3px 5px}.apply-returns-page .apply-container .goods-list-table .problem-description .up-image-list li{float:left;width:126px;height:126px;border:1px solid #ccc;padding:2px;display:inline-block;vertical-align:bottom;margin:0 0 10px 10px;background:url(../assets/img/home/up-pic-back.png?v1559f4c3cd3) no-repeat;position:relative}.apply-returns-page .apply-container .goods-list-table .problem-description .up-image-list li:first-child{margin-left:0}.apply-returns-page .apply-container .goods-list-table .problem-description .up-image-list .btn-del{padding:8px;background:url(../assets/img/home/del-icon.png?v1559f4c3cab) no-repeat;color:#468fa2;display:inline-block;position:absolute;right:-1px;z-index:5;cursor:pointer}.apply-returns-page .apply-container .goods-list-table .problem-description .swfupload{background:#000}.apply-returns-page .apply-container .goods-list-table .problem-description .btn_upload_text{font-family:SimHei;font-size:16px;font-weight:700}.apply-returns-page .apply-container .refund-detail{padding-top:20px;text-align:center}.apply-returns-page .apply-container .refund-detail p{margin-bottom:25px}.apply-returns-page .apply-container .refund-detail p input[type=radio]{vertical-align:middle;margin:0 5px 0 40px}.apply-returns-page .apply-container .refund-detail .refund-pay-info p{height:23px;line-height:22px;padding-top:11px;color:#666;background:url(../assets/img/home/refund_tips.png?v1559f4c3cc9) no-repeat;display:none}.apply-returns-page .apply-container .refund-detail .refund-pay-info tr{display:none}.apply-returns-page .apply-container .refund-detail .refund-pay-info .type-yoho-tips{width:515px;margin-left:160px}.apply-returns-page .apply-container .refund-detail .refund-pay-info .type-bank-tips{width:290px;margin-left:260px;background-position:0 -35px}.apply-returns-page .apply-container .refund-detail .refund-pay-info .type-alipay-tips{width:290px;margin-left:260px;background-position:0 -70px}.apply-returns-page .apply-container .refund-detail .refund-pay-table{width:100%;margin-bottom:25px}.apply-returns-page .apply-container .refund-detail .refund-pay-table td{padding:5px 0 5px 5px}.apply-returns-page .apply-container .refund-detail .refund-pay-table tr td:first-child{width:310px;text-align:right}.apply-returns-page .apply-container .exchange-detail{padding:30px}.apply-returns-page .apply-container .exchange-detail dt{font-weight:700;font-size:14px;color:#333;margin:10px 0}.apply-returns-page .apply-container .exchange-detail dd{padding:10px 5px}.apply-returns-page .apply-container .exchange-detail dd input[type=radio]{margin-left:50px;margin-top:0;vertical-align:middle}.apply-returns-page .apply-container .exchange-detail dd input[type=radio]:first-child{margin-left:0}.apply-returns-page .apply-container .exchange-detail dd>label{line-height:20px;width:100px;float:left;display:block}.apply-returns-page .apply-container .exchange-detail dd>label span{color:red}.apply-returns-page .apply-container .submit-box{text-align:center;margin-bottom:30px}.apply-returns-page .apply-container .submit-box .save-btn{width:138px;height:34px;border:0;background:url(../assets/img/home/submit-btn.png?v1559f4c3cce) no-repeat;color:#fff;font-size:14px;font-weight:700;padding-right:20px;cursor:pointer;display:inline-block;outline:none}.apply-returns-page .apply-container .submit-box .wait-gif{width:138px;height:34px;line-height:34px;font-size:14px;color:#8c8686;background:url(../assets/img/home/return-waiting.png?v1559f4c3ccb) no-repeat top;vertical-align:top;display:none}.apply-returns-page .apply-container .submit-box .wait-gif span{display:inline-block;width:32px;text-align:left;padding-left:4px}.apply-returns-page .apply-container .applying .save-btn{display:none}.apply-returns-page .apply-container .applying .wait-gif{display:inline-block}.save-returns-page .title{background-image:url(../assets/img/home/refund-apply.png?v1559f4c3cc7)}.save-returns-page .exchange .title{background-image:url(../assets/img/home/exchange-apply.png?v1559f4c3cad)}.save-returns-page .save-container{padding:10px}.save-returns-page .save-container h2{height:21px;line-height:21px;padding-left:23px;background:url(../assets/img/home/complaint-icon.png?v1559f4c3ca5) no-repeat 5px 5px #efefef;border:1px solid #e6e6e6;font-size:12px;color:#333;font-weight:400}.save-returns-page .save-container .save-prompt{width:527px;margin:0 auto;padding:100px 0}.save-returns-page .save-container .save-prompt h1{font-size:30px;color:#9c0;margin-bottom:20px;font-weight:700;background:url(../assets/img/home/return-success-icon.png?v1559f4c3cca) no-repeat;cursor:pointer;display:inline-block;height:31px;line-height:31px;padding-left:45px}.save-returns-page .save-container .save-prompt p{font-size:12px;color:#999;line-height:23px}.save-returns-page .save-container .save-prompt p span{color:#9c0}.save-returns-page .save-container .save-prompt .retund-address{font-size:15px;font-weight:700;color:#333;margin-bottom:15px}.save-returns-page .save-container .save-prompt .backto-center{margin-top:30px}.save-returns-page .save-container .save-prompt .backto-center label{width:174px;height:35px;line-height:33px;font-size:14px;font-weight:700;color:#fff;text-align:center;display:inline-block;background:url(../assets/img/home/back-returns-btn.png?v1559f4c3c9c) no-repeat;cursor:pointer}.save-returns-page .save-container .save-prompt .backto-center a:first-child{margin-right:15px}.save-returns-page .save-container .save-prompt .backto-center a:first-child label{background:url(../assets/img/home/back-orders-btn.png?v1559f4c3c9b) no-repeat}.consult-me-page{font-size:12px}.consult-me-page .consult .title{background-image:url(../assets/img/home/consult.png?v1559f4c3ca9)}.consult-me-page .consults{margin:10px}.consult-me-page .consults-table{width:100%;border:1px solid #e6e6e6}.consult-me-page .consults-table th{height:28px;line-height:28px;background:#efefef;padding:0 5px}.consult-me-page .consults-table td{color:#666;border-top:1px solid #e6e6e6;padding:5px;line-height:18px}.consult-me-page .consults-table td .thumb{width:60px;height:60px}.consult-me-page .consults-table td a{color:#468fa2;text-decoration:none}.consult-me-page .consults-table td a:hover{text-decoration:underline}.consult-me-page .consults-table td p{padding-left:20px;margin-top:5px;color:#999;word-break:break-all;overflow:hidden}.consult-me-page .consults-table td .question{color:#e9034e;background:url(../assets/img/home/consult-wd.png?v1559f4c3ca8) no-repeat -13px 2px}.consult-me-page .consults-table td .reply{color:#390;background:url(../assets/img/home/consult-wd.png?v1559f4c3ca8) no-repeat 0 -25px}.comment-me-page .comment .title{background-image:url(../assets/img/home/comment.png?v1559f4c3ca4)}.comment-me-page .me-comment{padding:10px;font-size:12px;line-height:18px}.comment-me-page .main-tip span{color:#e8044f}.comment-me-page .comment-table-header{padding:0;margin-top:10px}.comment-me-page .comment-table-header .info{width:260px}.comment-me-page .comment-table-header .time{width:415px;border-left:1px solid #e6e6e6;border-right:1px solid #e6e6e6}.comment-me-page .comment-table-header .type{width:98px}.comment-me-page .comment-table{width:100%;margin-top:10px}.comment-me-page .comment-table tr{border:1px solid #e6e6e6}.comment-me-page .comment-table tr th{background:#efefef;padding:5px}.comment-me-page .comment-table tr td{color:#666;padding:5px;text-align:center}.comment-me-page .comment-table tr a{color:#468fa2;text-decoration:none}.comment-me-page .comment-table tr .remarked{color:#e8044f}.comment-me-page .comment-table tr .remark-btn{width:69px;height:22px;line-height:21px;border:0;background:url(../assets/img/home/remark-btn.png?v1559f4c3cca) no-repeat;cursor:pointer;color:#fff;outline:none}.comment-me-page .comment-table .remark-content{width:405px;border:1px solid #e6e6e6;word-break:break-all}.comment-me-page #comment-dialog-widget{position:absolute;padding:5px;border:1px solid #999;background:#fff;border-radius:4px;z-index:15}.comment-me-page #comment-dialog-widget .dialog-titlebar{height:16px;cursor:move}.comment-me-page #comment-dialog-widget .dialog-titlebar .dialog-close-btn{float:right;width:46px;height:16px;background:url(../assets/img/home/openbox_close.png?v1559f4c3cbd) no-repeat 0 0;cursor:pointer}.comment-me-page #comment-dialog-widget .dialog-titlebar .dialog-close-btn:hover{background-position:0 -16px}.comment-me-page #comment-dialog-widget .dialog-content{padding:3px 30px}.comment-me-page #comment-dialog-widget .dialog-content dl{display:table-row}.comment-me-page #comment-dialog-widget .dialog-content dd{display:table-cell;vertical-align:top;font-size:13px;line-height:15px}.comment-me-page #comment-dialog-widget .dialog-content textarea{width:390px;height:80px;max-width:390px;max-height:240px;background:url(../assets/img/home/input-back.png?v1559f4c3cb7) repeat-x;font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif}.comment-me-page #comment-dialog-widget .dialog-buttons{padding-right:30px}.comment-me-page #comment-dialog-widget .dialog-buttons button{color:#666;float:right;padding:8px 15px;margin-left:5px;border:1px solid #aaa;border-radius:3px;background-color:#f2f2f2;outline:none}.comment-me-page #comment-dialog-widget .dialog-buttons .dialog-save-btn{color:#fff;font-weight:700;border-color:#b5023d;background-color:#da0249}.complaint-me-page{font-size:12px}.complaint-me-page .complaint .title{background-image:url(../assets/img/home/complaints.png?v1559f4c3ca7)}.complaint-me-page .me-complaints{padding:10px 10px 0}.complaint-me-page .me-complaints .empty-tip{padding:100px 0}.complaint-me-page .me-complaints .complaints-table-header{margin-bottom:10px}.complaint-me-page .me-complaints .complaint-item{padding:10px;border:1px solid #e6e6e6;margin-bottom:5px;color:#999;line-height:18px}.complaint-me-page .me-complaints .complaint-item .question{color:#e9034e;background:url(../assets/img/home/complaints-sd.png?v1559f4c3ca6) no-repeat -13px 2px}.complaint-me-page .me-complaints .complaint-item .reply{color:#390;background:url(../assets/img/home/complaints-sd.png?v1559f4c3ca6) no-repeat 0 -25px}.complaint-me-page .me-complaints .complaint-item .cancel-btn{width:68px;line-height:23px;text-align:center;color:#fff;background:url(../assets/img/home/remark-btn.png?v1559f4c3cca) no-repeat;display:inline-block;cursor:pointer}.complaint-me-page .me-complaints .complaint-item>div{display:inline-block;vertical-align:top}.complaint-me-page .me-complaints .info{width:280px;color:#000;text-align:left}.complaint-me-page .me-complaints .content{width:340px;text-align:left}.complaint-me-page .me-complaints .content p{padding-left:20px;margin-top:5px}.complaint-me-page .complaint-form{padding:10px}.complaint-me-page .complaint-form h2{clear:both;height:21px;line-height:21px;padding-left:23px;background:url(../assets/img/home/complaint-icon.png?v1559f4c3ca5) no-repeat 5px 5px #efefef;border:1px solid #e6e6e6;font-size:12px;color:#333;font-weight:400}.complaint-me-page .complaint-form .form-content{font-size:12px;padding:7px 0}.complaint-me-page .complaint-form .form-content dl{padding:7px 5px;line-height:22px}.complaint-me-page .complaint-form .form-content dt{width:75px;color:#333;text-align:right;float:left}.complaint-me-page .complaint-form .form-content dd>input{width:150px;height:18px;line-height:18px}.complaint-me-page .complaint-form .form-content dd>input,.complaint-me-page .complaint-form .form-content dd>textarea{color:#333;border:1px solid #c9c9c9;background:url(../assets/img/home/input-back.png?v1559f4c3cb7) repeat-x;vertical-align:top}.complaint-me-page .complaint-form .form-content dd>textarea{width:400px;height:80px;max-width:500px;max-height:320px;overflow:auto}.complaint-me-page .complaint-form .form-submit>input{width:138px;height:34px;margin-left:80px;border:0;background:url(../assets/img/home/submit-btn.png?v1559f4c3cce) no-repeat;color:#fff;font-size:14px;font-weight:700;text-align:center;padding-right:20px;cursor:pointer;display:inline-block}.message-me-page .message .title{background-image:url(../assets/img/home/message.png?v1559f4c3cb9)}.message-me-page .message-table-header{font-size:12px}.message-me-page .message-table-header .sender{width:118px;padding-left:38px;text-align:left}.message-me-page .message-table-header .heading{width:408px;text-align:left}.message-me-page .message-table-header .time{width:130px}.message-me-page .message-table-header .action{padding-left:10px;width:66px}.message-me-page .message-list{padding:10px;font-size:12px}.message-me-page .message-list table{width:100%;line-height:38px}.message-me-page .message-list table tr{color:#999;border:1px solid #e6e6e6}.message-me-page .message-list table tr td{text-align:center}.message-me-page .message-list table tr input{vertical-align:middle;margin:0}.message-me-page .message-list table tr .del-btn{color:#468fa2;text-decoration:none;cursor:pointer}.message-me-page .message-list table .list-foot{background:#f8f8f8}.message-me-page .message-list table .list-foot button{float:left;line-height:18px;padding:2px 10px;border:1px solid #ccc;border-radius:2px;cursor:pointer;outline:none}.message-me-page .message-list table .list-foot .del-choose-btn{background:#da044a;border-color:#cc0345;margin-right:10px;color:#fff}.message-me-page .message-list table .list-foot .read-choose-btn{background:#ddd;color:#b3b3b3}.message-me-page .message-list table .list-foot .has-new{background:#3797af;border-color:#147e98;color:#fff}.message-me-page .message-list table .td-sender{width:110px;color:#666;text-align:left;white-space:nowrap;overflow:hidden}.message-me-page .message-list table .td-title{width:410px;padding-left:10px;color:#666;text-align:left;white-space:nowrap;overflow:hidden}.message-me-page .message-list table .new-msg{background:#f0f5f8;border-bottom:1px solid #becfd3}.message-me-page .message-list table .new-msg .td-sender a,.message-me-page .message-list table .new-msg .td-title a{font-weight:700;color:#468fa2}.content-message-page .title{background-image:url(../assets/img/home/message.png?v1559f4c3cb9)}.content-message-page .title .back-list{font-size:12px;float:right;width:67px;height:22px;line-height:22px;margin-top:9px;padding-right:4px;text-align:center;color:#fdfdfd;display:inline-block;background:url(../assets/img/home/btn-more.png?v1559f4c3c9f) no-repeat;cursor:pointer}.content-message-page .text-container{font-size:12px;line-height:18px;padding:20px}.content-message-page .text-container .text-title{margin-bottom:10px;padding-bottom:10px;border-bottom:1px dashed #999}.content-message-page .text-container .text-title span{color:#999}.content-message-page .text-container .coupon-item{display:table-row}.content-message-page .text-container .coupon-item>div{padding:10px 0;display:table-cell;vertical-align:middle}.content-message-page .text-container .coupon-item img{vertical-align:middle}.content-message-page .text-container .coupon-item a{width:90px;height:30px;line-height:30px;text-align:center;color:#b3b3b3;font-size:14px;background-color:#ddd;border:1px solid #ccc;border-radius:4px;display:inline-block;cursor:pointer}.content-message-page .text-container .coupon-item .coupon-img{width:160px;text-align:center}.content-message-page .text-container .coupon-item .coupon-info{width:470px;line-height:20px}.content-message-page .text-container .coupon-item .pick-coupon-btn,.content-message-page .text-container .coupon-item .view-coupon-btn{color:#fff;background:#da044a;border-color:#cc0345;display:inline-block}.content-message-page .text-container .sale-img{margin-bottom:15px;overflow:hidden}.content-message-page .text-container .sale-img img{vertical-align:top}.content-message-page .text-container .sale-btn{color:#fff;padding:0 10px;background:#e1044b;margin-top:15px;border:1px solid #c10241;border-radius:2px;display:inline-block;cursor:pointer}.vip-me-page .title{background-image:url(../assets/img/home/vip-img/vip-title.png?v1559f4c3d52)}.vip-me-page .vip-level{clear:both;overflow:hidden}.vip-me-page .level{margin:20px 15px 0 40px;line-height:31px;float:left;clear:both;font-size:14px;color:#000}.vip-me-page .vipimg1{background-image:url(../assets/img/home/vip-img/silver-vip.png?v1559f4c3d4d)}.vip-me-page .vipimg1,.vip-me-page .vipimg2{margin-top:20px;width:138px;height:31px;float:left}.vip-me-page .vipimg2{background-image:url(../assets/img/home/vip-img/gold-vip.png?v1559f4c3d4b)}.vip-me-page .vipimg3{margin-top:20px;width:138px;height:31px;float:left;background-image:url(../assets/img/home/vip-img/platinum-vip.png?v1559f4c3d4c)}.vip-me-page .favimg{float:left;width:645px;margin-top:20px;overflow:hidden}.vip-me-page .list{width:145px;float:left;margin:0 10px 8px 0}.vip-me-page .imgsrc{width:25px;float:left;margin-top:5px}.vip-me-page .fav-font{line-height:31px;font-size:12px;margin-left:30px;color:#000}.vip-me-page .year-amount{float:left;width:600px;margin-top:20px}.vip-me-page .amount{float:left}.vip-me-page .amount,.vip-me-page .ps{font-size:14px;font-weight:700;line-height:31px}.vip-me-page .ps{margin-left:30px}.vip-me-page .plalevel{margin-top:7px;width:160px;height:21px;background-image:url(../assets/img/home/vip-img/platinum.png?v1559f4c3d4d)}.vip-me-page .amount-length{width:400px;height:15px;margin-bottom:5px}.vip-me-page .img-length{width:293px;height:12px;background-color:#e0e0e0}.vip-me-page .amount-left{width:298px;height:12px;overflow:hidden;float:left}.vip-me-page .img-left{height:12px;background-color:#cda16c;z-index:7;float:left}.vip-me-page .img-right{width:5px;height:12px;float:left;z-index:7;background-image:url(../assets/img/sprite.home.png?v1559f4c4798);background-position:-39px -24px;margin-left:-5px}.vip-me-page .letter{width:100px;font-size:12px;margin-left:303px;line-height:10px;margin-bottom:2px}.vip-me-page .change-img0{width:293px;height:18px;background-image:url(../assets/img/home/vip-img/vip-change1.png?v1559f4c3d4f)}.vip-me-page .change-img1{width:293px;height:18px;background-image:url(../assets/img/home/vip-img/vip-change2.png?v1559f4c3d50)}.vip-me-page .change-img2{width:293px;height:18px;background-image:url(../assets/img/home/vip-img/vip-change3.png?v1559f4c3d51)}.vip-me-page .balance{margin-top:7px;font-size:13px;font-weight:700;margin-bottom:10px}.vip-me-page .balance p{float:left}.vip-me-page .balance a{color:red;margin-left:10px;float:left}.vip-me-page .history{margin-top:10px;clear:both;overflow:hidden}.vip-me-page .hisamout{margin-left:10px}.vip-me-page .line{clear:both;width:703px;height:1px;margin-bottom:5px;margin-left:40px;margin-top:25px;background-color:#e8e8e8;overflow:hidden}.vip-me-page .valid{overflow:hidden}.vip-me-page .valid-time{clear:both;width:720px;height:175px;margin-left:40px;position:relative;font-size:14px}.vip-me-page .time1{float:left;width:135px;height:135px;border-right:2px dashed #000}.vip-me-page .time1-img{margin-top:95px;width:130px;height:33px;background-image:url(../assets/img/home/vip-img/time1.png?v1559f4c3d4e)}.vip-me-page .time2{width:129px}.vip-me-page .time2,.vip-me-page .time3{float:left;height:175px;border-right:2px dashed #000}.vip-me-page .time3{width:354px}.vip-me-page .time4{float:left;width:90px;height:155px}.vip-me-page .time-top{display:block;font-size:13px;margin-top:10px;margin-left:10px;line-height:18px}.vip-me-page .time-top span{font-weight:700}.vip-me-page .time-top a{color:red}.vip-me-page .time2-img{margin-top:47px;width:131px;height:33px;background-color:#ecdbca}.vip-me-page .time-left{float:left;display:block;font-size:13px;margin-top:10px;margin-left:10px;line-height:18px}.vip-me-page .time-left span{font-weight:700}.vip-me-page .time-right{float:right;display:block;font-size:13px;margin-top:10px;margin-right:10px;line-height:18px}.vip-me-page .time-right span{font-weight:700}.vip-me-page .time3-img{color:#fff;line-height:33px;margin-top:93px;width:356px;height:33px;background-color:#cda16d;text-align:center}.vip-me-page .time4-img{margin-top:65px;width:62px;height:33px;border-color:#ecdbca #fff transparent transparent;border-style:solid solid dashed dashed;border-width:33px 20px 0 0}.vip-me-page .doubt{margin-left:40px;margin-bottom:25px;margin-top:20px;font-size:14px}.vip-me-page .doubt a{float:right;margin-right:55px}.vip-me-page .tell{color:red}.vip-me-page .time-line{position:absolute;width:703px;height:2px;background-color:#e8e8e8;margin-top:65px}.help-page{width:990px;font-size:12px;margin:0 auto 20px}.help-page .path-nav{padding:11px 0;border-bottom:0;padding-left:25px;background:url(../assets/img/help/home-icon.png?v1559f4c3c98) no-repeat 0 12px}.help-page .left-container{float:left;width:180px;margin-right:8px}.help-page .block{border:1px solid #dedede;border-radius:2px}.help-page .title{height:40px;line-height:40px;padding:0 8px;background-color:#e3e3e3;background-position:10px 12px;background-repeat:no-repeat}.help-page .help-navigation{background:#f8f8f8;margin-bottom:10px}.help-page .help-navigation .help-center{background-image:url(../assets/img/help/help-center.png?v1559f4c3c95)}.help-page .help-navigation dl{width:100%;height:40px;background:#efefef;border-top:1px solid #e6e6e6;border-bottom:1px solid #e6e6e6}.help-page .help-navigation dl dt{width:132px;height:22px;margin:10px 0 10px 7px;overflow:hidden;background:url(../assets/img/help/help-search.png?v1559f4c3c97) no-repeat;float:left}.help-page .help-navigation dl dt input{width:110px;border:0;background:none;margin:3px 10px}.help-page .help-navigation dl dd{width:31px;float:left;margin:10px 0}.help-page .help-navigation dl dd .search-btn{width:31px;height:22px;border:0;background:url(../assets/img/help/help-search.png?v1559f4c3c97) no-repeat -134px 0;cursor:pointer;text-indent:-999em}.help-page .help-navigation ul{width:154px;padding:8px 12px}.help-page .help-navigation ul li{line-height:20px;font-family:Arial,helvetica,sans-serif;margin:5px 0;padding-left:20px;color:#333;background:url(../assets/img/help/help-nav-li.png?v1559f4c3c96) no-repeat}.help-page .help-navigation ul .active{background-position:0 -20px}.help-page .help-navigation ul .active a{color:#fff}.help-page .help-service{background:#f8f8f8;line-height:15px}.help-page .help-service .service-center{background-image:url(../assets/img/help/yoho-service.png?v1559f4c3c99);background-position:10px 9px}.help-page .help-service .service-main{padding:12px}.help-page .help-service .service-main strong{color:#000;font-size:18px;font-weight:700;font-family:Arial,helvetica,sans-serif}.help-page .help-service .service-main p:first-child{margin-bottom:10px}.help-page .help-main{width:800px;float:left;line-height:18px}.help-page .help-main strong{font-weight:700}.help-page .help-main .help-content{padding:15px}.help-page .help-main .help-content a{color:#468fa2;text-decoration:underline}.search-help-page .search-content{padding:15px}.search-help-page .search-content h2{border-bottom:2px solid #eee;font-size:14px;color:#333;height:20px;line-height:20px;padding-top:10px}.search-help-page .search-content ul{margin:10px 0;display:block;min-height:20px}.search-help-page .search-content ul li{width:345px;height:20px;line-height:20px;padding:0 0 0 20px;margin:0 15px 5px 0;display:inline-block;overflow:hidden;background:url(../assets/img/help/ask-icon.png?v1559f4c3c94) no-repeat 2px 3px;font-family:Arial,helvetica,sans-serif}.search-help-page .search-content ul .faqs{color:#666;cursor:pointer}.search-help-page .search-content .full-search{line-height:22px;padding:10px 8px;background-color:#e3e3e3;font-size:14px;font-weight:700}.search-help-page .search-content .full-search label{padding:12px}.search-help-page .search-content .full-search .full-search-name{width:185px;height:22px;padding:0 10px;border:0;background:url(../assets/img/help/help-search.png?v1559f4c3c97) no-repeat 0 -22px}.search-help-page .search-content .full-search .search-btn{width:31px;height:22px;border:0;background:url(../assets/img/help/help-search.png?v1559f4c3c97) no-repeat -134px 0;cursor:pointer;text-indent:-999em}.search-help-page .search-content .full-search .yoho-im-btn{width:120px;height:20px;background:url(../assets/img/help/yoho-im.png?v1559f4c3c99);display:inline-block;vertical-align:middle;margin-left:10px;border:0;cursor:pointer}.search-help-page .search-content .empty-tip{padding:200px 0;text-align:center}.search-help-page .search-content .empty-tip span{color:#e8044f;font-weight:700}.search-help-page .search-content .all-ask-list{line-height:18px;padding-top:10px}.search-help-page .search-content .all-ask-list .ask-item{padding:10px}.search-help-page .search-content .all-ask-list .ask-item.even{border:1px solid #fbf0d5;background:#fefaf0}.search-help-page .search-content .all-ask-list .ask{min-height:10px;padding-left:20px;margin-bottom:10px;background:url(../assets/img/help/ask-icon.png?v1559f4c3c94) no-repeat 2px 2px}.search-help-page .search-content .all-ask-list .answer{padding-left:20px;color:#f07100;background:url(../assets/img/help/answer-icon.png?v1559f4c3c93) no-repeat 2px 2px}.search-help-page .search-content .search-pager{height:20px;padding:10px}.search-help-page .search-content .search-pager .pager-html{display:inline}.search-help-page .search-content .search-pager a{border:1px solid #cecece;padding:0 6px;height:18px;line-height:18px;border-radius:2px;margin-right:4px;background-color:#fff}.search-help-page .search-content .search-pager a.cur{background-color:#222;color:#fff}.search-help-page .dialog-widget{position:absolute;width:450px;padding:5px;border:1px solid #999;background:#fff;border-radius:4px;z-index:16}.search-help-page .dialog-widget .dialog-titlebar{height:16px;cursor:move}.search-help-page .dialog-widget .dialog-titlebar .dialog-close-btn{float:right;width:46px;height:16px;background:url(../assets/img/home/openbox_close.png?v1559f4c3cbd) no-repeat 0 0;cursor:pointer}.search-help-page .dialog-widget .dialog-titlebar .dialog-close-btn:hover{background-position:0 -16px}.search-help-page .dialog-widget .dialog-content{padding:20px 30px}.search-help-page .dialog-widget .dialog-content p{line-height:20px;padding-left:20px;padding-bottom:10px;font-size:12px;background:url(../assets/img/help/ask-icon.png?v1559f4c3c94) no-repeat 2px 3px}.search-help-page .dialog-widget .dialog-content .answer{color:#f07100;background:url(../assets/img/help/answer-icon.png?v1559f4c3c93) no-repeat 2px 2px}.search-help-page .dialog-bg{position:fixed;top:0;left:0;width:100%;height:100%;background:#000;opacity:.2;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=20)";z-index:15}.order-ensure-page{width:990px;margin:40px auto}.order-ensure-page .order-edit{width:100%;position:relative;margin-bottom:35px}.order-ensure-page .order-edit .order-title{position:relative;margin-bottom:15px}.order-ensure-page .order-edit .order-title ul{display:block;background-image:url(../assets/img/sprite.order.png?v1559f4c4799);background-position:-247px 0;width:364px;height:12px;position:absolute;right:0;top:0}.order-ensure-page .order-edit .order-title ul li{display:block;width:33.33333333%;float:left;font-size:12px;color:#999;height:50px;line-height:50px;text-align:center;position:relative}.order-ensure-page .order-edit .order-title ul li.active{color:#333}.order-ensure-page .order-edit .order-title ul li.active:after{display:block;content:'';background-image:url(../assets/img/sprite.order.png?v1559f4c4799);background-position:-273px -46px;width:12px;height:12px;position:absolute;left:50%;margin-left:-6px;top:0}.order-ensure-page .order-edit .order-title ul li.first{text-align:left}.order-ensure-page .order-edit .order-title ul li.first.active:after{left:0;margin-left:0}.order-ensure-page .order-edit .order-title ul li.end{text-align:right}.order-ensure-page .order-edit .order-title ul li.end.active:after{right:0;margin-left:0}.order-ensure-page .order-edit .order-title:before{content:'';display:block;background-image:url(../assets/img/sprite.order.png?v1559f4c4799);background-position:0 -72px;width:117px;height:33px}.order-ensure-page .order-edit .order-title.cart-page-title:before{content:'';display:block;background-image:url(../assets/img/sprite.order.png?v1559f4c4799);background-position:-119px -72px;width:117px;height:33px}.order-ensure-page .order-edit .order-edit-main{border:1px solid #ccc;margin-top:20px}.order-ensure-page .order-edit .order-edit-main h2.title{height:30px;line-height:30px;background:#000;color:#fff;font-size:12px;text-indent:15px;overflow:hidden}.order-ensure-page .order-edit .order-edit-main h2.title a{display:block;width:90px;height:22px;background-image:url(../assets/img/sprite.order.png?v1559f4c4799);background-position:-521px -14px;float:right;margin-top:4px;margin-right:10px;cursor:pointer}.order-ensure-page .order-edit .order-edit-main .order-content{padding:5px 30px;font-size:12px;color:#333}.order-ensure-page .order-edit .order-edit-main .order-content .order-selection{border-bottom:1px dashed #ccc;padding:15px 0 0}.order-ensure-page .order-edit .order-edit-main .order-content .order-selection h2{font-size:14px;color:#000}.order-ensure-page .order-edit .order-edit-main .order-content .order-selection h2 span{color:#e8044f;text-decoration:underline;cursor:pointer}.order-ensure-page .order-edit .order-edit-main .order-content .address-list h2{margin-bottom:15px}.order-ensure-page .order-edit .order-edit-main .order-content .address-list ul li{padding:10px 0}.order-ensure-page .order-edit .order-edit-main .order-content .address-list ul li strong{font-weight:700;margin-right:15px}.order-ensure-page .order-edit .order-edit-main .order-content .address-list ul li input.radio{margin:0;vertical-align:middle}.order-ensure-page .order-edit .order-edit-main .order-content .address-list ul .order-modify-btn{display:inline-block;float:right;color:#e8044f;width:80px;padding-right:20px;height:auto;overflow:hidden}.order-ensure-page .order-edit .order-edit-main .order-content .address-list ul .order-modify-btn span{text-decoration:underline;cursor:pointer;float:right}.order-ensure-page .order-edit .order-edit-main .order-content .address-list ul .order-modify-btn span.address-modify{float:left}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list{min-height:35px}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list li{border:1px solid #fff;padding-left:15px}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list li strong{color:#e8044f}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list li .default-address,.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list li .order-modify-btn{display:none}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list li .default-address{margin-left:15px;color:#468fa2;text-decoration:underline}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list li .radio{display:none}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list li.has-exist-address .default-address{color:#468fa2;text-decoration:underline;cursor:pointer}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list.address-expand li .default-address,.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list.address-expand li .order-modify-btn,.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list.address-expand li .radio{display:inline-block}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list.address-expand li.active{background:#dbedf7;border:1px solid #8fb8e0}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list.address-expand li.address_select .default-address{color:#999;text-decoration:none}.order-ensure-page .order-edit .order-edit-main .order-content .address-manage{margin-top:20px;border-top:1px dashed #ccc}.order-ensure-page .order-edit .order-edit-main .order-content .address-manage li{height:25px;line-height:25px}.order-ensure-page .order-edit .order-edit-main .order-content .address-manage li .address-legend{width:80px;text-align:right;display:inline-block;color:#333}.order-ensure-page .order-edit .order-edit-main .order-content .address-manage li .address-legend i{color:#e8044f}.order-ensure-page .order-edit .order-edit-main .order-content .address-manage li .text-input{height:25px;line-height:25px;width:180px;padding:0;border:1px solid #ccc}.order-ensure-page .order-edit .order-edit-main .order-content .address-manage li select.text-input{width:100px}.order-ensure-page .order-edit .order-edit-main .order-content .address-manage li .address-tel-input{width:180px;text-align:center;display:inline-block;height:25px;line-height:25px}.order-ensure-page .order-edit .order-edit-main .order-content .address-manage li .address-tel-input input{text-align:left;float:right;width:120px}.order-ensure-page .order-edit .order-edit-main .order-content .address-manage li .address-tel-input input.tel-lengend{float:left;width:40px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-btn,.order-ensure-page .order-edit .order-edit-main .order-content .save-btn{display:block;font-size:14px;color:#fff;font-weight:700;text-indent:25px;cursor:pointer;margin-bottom:15px}.order-ensure-page .order-edit .order-edit-main .order-content .save-btn{background-image:url(../assets/img/sprite.order.png?v1559f4c4799);background-position:0 -36px;width:200px;height:34px;line-height:34px}.order-ensure-page .order-edit .order-edit-main .order-content .save-btn.new-user-btn{width:245px;background-image:url(../assets/img/sprite.order.png?v1559f4c4799);background-position:0 0}.order-ensure-page .order-edit .order-edit-main .order-content .pay-btn{background-image:url(../assets/img/sprite.order.png?v1559f4c4799);background-position:0 -107px;width:90px;height:34px;line-height:34px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-btn.new-user-pay{background-image:url(../assets/img/sprite.order.png?v1559f4c4799);background-position:0 -36px;width:200px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time ul{padding:15px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time ul li{margin:10px 0}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time ul li input.radio{margin:0;vertical-align:middle}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time ul .prev-sell-item{color:#e8044f}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .pay-time-title{margin-top:20px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify h3{height:25px;line-height:25px;border:1px solid #e6e6e6;background:#efefef;text-indent:25px;position:relative}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify h3:after{content:'';display:block;width:11px;height:11px;background:url(../assets/img/order/roundgreybtn.gif?v1559f4c3ce9);position:absolute;top:7px;left:8px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .pay-dashed-hr{border-bottom:1px dashed #ccc;padding-bottom:10px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .pay-type-tips{color:#999;padding-left:15px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify div.pay-type-legend{width:130px;display:inline-block;padding:0;text-indent:0}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify span.pay-type-legend{margin:0;color:#468fa2;cursor:pointer}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify span.pay-type-legend:after{content:'';width:12px;height:12px;background:url(../assets/img/order/icon-arrow.png?v1559f4c3ce5);display:inline-block;transition:transform .3}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify span.pay-type-legend.active:after{transform:rotate(180deg)}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .support-type{display:block;margin-left:130px;border-left:1px dashed #ccc;font-size:12px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .support-type h4{padding:10px 0 10px 15px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .support-type ul{height:auto;overflow:hidden;margin:0;padding:0}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .support-type ul li{display:block;float:left;width:105px;height:30px;border:1px solid #ccc;margin:0 0 10px 15px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .support-type ul li img{display:block;width:100%;height:100%;overflow:hidden}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .pay-recommend{font-size:0}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .pay-recommend .pay-type-legend,.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .pay-recommend .support-type{font-size:12px}.order-ensure-page .order-edit .order-edit-main .order-content .select-express{border-bottom:none}.order-ensure-page .order-edit .order-edit-main .order-content .select-express .sf{color:red;text-decoration:underline}.order-ensure-page .order-edit .order-edit-main .order-content .select-express .express-list{padding-left:15px;margin:10px 0}.order-ensure-page .order-edit .order-edit-main .order-content .select-express .express-list input.radio{margin:0;vertical-align:middle}.order-ensure-page .order-edit .order-edit-main .order-content .select-express .express-tips{color:#999}.order-ensure-page .order-pay{width:100%}.order-ensure-page .differentOrder{position:relative;width:100%}.order-ensure-page .differentOrder .warn{text-align:center;background:#fefbd5;font:initial;height:40px;line-height:40px;font-size:16px}.order-ensure-page .differentOrder .warn .red{color:red}.order-ensure-page .differentOrder .warn .why{background-image:url(../assets/img/sprite.order.png?v1559f4c4799);background-position:-247px -46px;width:26px;height:20px;display:inline-block;vertical-align:middle}.order-ensure-page .differentOrder .warn .why:hover{cursor:pointer}.order-ensure-page .differentOrder .differentBag:before{content:"";position:absolute;width:0;height:0;border-bottom:10px solid #000;border-left:10px solid transparent;border-right:10px solid transparent;top:-10px;right:219px}.order-ensure-page .differentOrder .differentBag{display:none;position:absolute;right:-10px;top:40px;width:510px;padding:0 50px;background:#fff;z-index:1;border:1px solid #000;font-size:14px}.order-ensure-page .differentOrder .bag{position:relative;border-bottom:1px solid #e0e0e0;margin-top:10px;padding:20px 0}.order-ensure-page .differentOrder .bag h3{height:30px;line-height:30px;font-weight:700;margin-left:15px}.order-ensure-page .differentOrder .bag .pre{background-position:0 -142px;left:-30px}.order-ensure-page .differentOrder .bag .next,.order-ensure-page .differentOrder .bag .pre{position:absolute;background-image:url(../assets/img/sprite.order.png?v1559f4c4799);width:30px;height:50px;top:70px;display:none}.order-ensure-page .differentOrder .bag .next{background-position:-32px -142px;right:-30px}.order-ensure-page .differentOrder .bag p{color:#767676;margin-left:15px}.order-ensure-page .differentOrder .bagDetil{position:relative;height:90px;width:510px;overflow:hidden;margin-bottom:20px}.order-ensure-page .differentOrder .bagDetil ul{list-style:none;position:absolute;left:0;clear:both;height:90px}.order-ensure-page .differentOrder .bagDetil ul li{float:left;width:102px;height:90px;line-height:90px;text-align:center;position:relative}.order-ensure-page .differentOrder .bagDetil ul li img{width:90px;height:90px}.order-ensure-page .differentOrder .bagDetil ul li p{position:absolute;bottom:0;background:#9c3;width:90px;height:1rem;line-height:1rem;color:#fff;margin-left:7px}.freebie-tag{background:#9c3}.advance-buy-tag{background:#fc1264}.virtual-good-tag{background:red}.presall-tag{background:blue}.order-pay{font-size:12px;line-height:150%}.order-pay .pay-wapper{border:1px solid #ccc;border-top:none}.order-pay .pay-wapper .cart-sub-total{font-weight:700}.order-pay .pay-wapper .cart-sub-total-all{font-weight:700;font-size:18px}.order-pay table{width:100%}.order-pay table td{border:1px solid #ccc;border-left:0 none;padding:10px;text-align:center}.order-pay thead{background:#000}.order-pay thead th{height:32px;line-height:32px;color:#fff;vertical-align:middle;text-align:center;font-weight:700}.order-pay thead .clo1{width:10%}.order-pay thead .clo2{width:20%}.order-pay thead .clo4{width:40%}.order-pay .pay-pro-icon{float:left;width:60px;height:60px;display:block;position:relative}.order-pay .pay-pro-icon span{width:100%;height:16px;line-height:16px;position:absolute;left:0;bottom:0;text-align:center;color:#fff;display:block;cursor:pointer}.order-pay .pay-pro-icon .incentive{background:#f74a87}.order-pay .pay-pro-icon .gift{background:#9c3}.order-pay .pay-pro-info{color:#999;margin-left:70px;text-align:left}.order-pay .pay-pro-info a{color:#468fa2;text-decoration:none;display:block}.order-pay .pay-pro-info a:hover{text-decoration:underline}.order-pay .play-content{padding:10px}.order-pay .play-content .red{color:#e8044f!important}.order-pay .play-content .orange{color:#f60!important}.order-pay .play-content .strong{font-weight:700;color:#000}.order-pay .play-content .pan dt{width:105px;height:30px;padding:0 0 0 30px;line-height:30px;text-align:left;border:0;color:#fff;display:inline-block;cursor:pointer;background:url(../assets/img/order/btn-openclose.png?v1559f4c3ce4) no-repeat 0 -60px;margin-bottom:5px}.order-pay .play-content .pan dd{display:none;border:1px solid #ccc;padding:10px 15px;margin-bottom:10px}.order-pay .play-content .dropdown,.order-pay .play-content .textbox{height:20px;line-height:20px;color:#333;border:1px solid #c9c9c9;vertical-align:top}.order-pay .play-content .btn-group{text-align:right}.order-pay .play-content .btn-group input{display:inline-block;background:none;border:1px solid #ccc;border-radius:2px;height:20px}.order-pay .play-content .btn-group .ok{background-color:#000;color:#fff;cursor:pointer}.order-pay .play-content .btn-group .cancel{cursor:pointer}.order-pay .play-content .play-left{float:left;width:405px}.order-pay .play-content .play-left .pan{text-align:left}.order-pay .play-content .play-left .pan dt{color:#000;background-image:url(../assets/img/sprite.order.png?v1559f4c4799);background-position:-384px -14px}.order-pay .play-content .play-left .pan dt.active{background-image:url(../assets/img/sprite.order.png?v1559f4c4799);background-position:-247px -14px}.order-pay .play-content .play-piao-pan li{height:25px;padding:10px 0;line-height:22px}.order-pay .play-content .play-piao-pan li label{width:65px;display:inline-block}.order-pay .play-content .play-piao-pan li .textbox{width:200px}.order-pay .play-content .play-remark-pan .textbox{width:369px;height:70px}.order-pay .play-content .play-remark-pan .note{padding:5px 0;color:#999}.order-pay .play-content .play-right{float:right;width:50%;width:405px}.order-pay .play-content .play-right .pan{text-align:right}.order-pay .play-content .play-right .red-envelopes{width:200px;height:60px;border:1px dashed #000;margin-top:10px;float:right;padding:15px;font-size:12px;color:#000}.order-pay .play-content .play-right .red-envelopes.active{background:#fefccb}.order-pay .play-content .play-right .use-envelopes{font-weight:700}.order-pay .play-content .play-right .has-envelopes{margin-top:5px}.order-pay .play-content .play-right .has-envelopes span{font-weight:700}.order-pay .play-content .back-coin{text-align:right;height:30px;line-height:30px;padding-right:18px}.order-pay .play-content .back-coin .yoho-coin{width:14px;height:14px;display:inline-block;background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:-321px -225px;vertical-align:middle;margin-top:-2px;margin-right:4px}.order-pay .play-content .play-total{text-align:right;padding-bottom:20px}.order-pay .play-content .play-total .bi-modify,.order-pay .play-content .play-total .juan-modify{color:#468fa2;text-decoration:underline;cursor:pointer}.order-pay .play-content .play-total label{padding-right:10px}.order-pay .play-content .play-total em{width:80px;text-align:left;display:inline-block}.order-pay .play-content .play-total a{color:#468fa2;text-decoration:underline}.order-pay .play-content .play-total .total-express-w{color:#e80480}.order-pay .play-content .play-juan-pan dd{text-align:left}.order-pay .play-content .play-juan{padding:10px 0}.order-pay .play-content .play-juan .textbox{width:70px}.order-pay .play-content .play-juan [disabled=disabled]+label{color:#999}.order-pay .play-content .play-bi-pan dd{text-align:right}.order-pay .play-content .play-bi-pan .textbox{width:70px}.order-pay .play-content .play-bi-pan p{padding:10px 0}.order-pay .play-content .play-bi-pan p.errbitip{padding-top:0}.order-pay .to-play p{padding:10px 0;font-size:14px;text-align:right;color:#000}.order-pay .to-play p em{color:#e8044f;font-size:24px}.order-pay .to-play .btn-group{padding:10px 0 40px}.order-pay .to-play .btn-group .submit{float:right;width:133px;height:33px;padding:0;text-align:center;border:0;line-height:33px;font-size:14px;color:#fff;font-weight:700;background:url(../assets/img/order/btns.png?v1559f4c3ce5) no-repeat 0 -33px;display:inline-block;cursor:pointer}.order-ensure-page .none{display:none}.order-ensure-page .gift{position:relative;width:988px;height:50px;background:url(../assets/img/cart/cart_gift.png?v1559f4c3c57) 0 0 repeat;border:1px solid #ccc;text-align:center}.order-ensure-page .gift p{background:url(../assets/img/cart/cart_gift_banner.jpg?v1559f4c3c59) 0 0 no-repeat;display:inline-block;width:450px;height:50px;overflow:hidden}.order-ensure-page .gift i{width:30px;height:30px;overflow:hidden;position:absolute;top:10px;right:5px;cursor:pointer}.order-ensure-page .gift .up{background-position:-329px -141px}.order-ensure-page .gift .down,.order-ensure-page .gift .up{background-image:url(../assets/img/sprite.cart.png?v1559f4c4796)}.order-ensure-page .gift .down{background-position:-332px -178px}.order-ensure-page .loading{width:120px;height:28px;overflow:hidden;position:absolute;left:50%;top:50%;display:none;line-height:30px;border:1px solid #ccc;font-size:12px;text-indent:10px;background:#fff}.order-ensure-page .loading span{width:20px;height:20px;float:left;margin:4px 4px 4px 13px;background:url(../assets/img/cart/loading_s.gif?v1559f4c3c66) 2px 2px no-repeat}.order-ensure-page .dev-revocation{border:1px solid #fcd081;background:#fff8d9;margin-bottom:15px}.order-ensure-page .dev-revocation td{border:none}.order-ensure-page .dev-revocation td a{color:#468fa2;margin-left:12px}.order-ensure-page .dev-revocation td a:hover{text-decoration:underline}.order-ensure-page .order-title{margin-top:30px;height:auto;overflow:hidden}.order-ensure-page .salesPromotion{width:990px;height:36px;border-bottom:1px solid #ccc;font-size:12px}.order-ensure-page .salesPromotion p{width:800px;height:36px;line-height:36px;float:left;padding:0 10px}.order-ensure-page .salesPromotion p b{margin-right:5px;background:#6c6c6c;border-radius:4px;padding:1px 5px;color:#fff}.order-ensure-page .salesPromotion span{width:150px;height:36px;padding:0 10px;line-height:36px;float:right;text-align:right;position:relative}.order-ensure-page .salesPromotion span i{position:absolute;top:11px;left:108px;float:left;width:13px;height:13px;background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:-357px -71px}.order-ensure-page .cartnew-tips{height:auto;overflow:hidden;font-size:12px;margin-bottom:5px}.order-ensure-page .cartnew-tips .tipsbox{width:648px;height:23px;line-height:18px;padding:4px 5px 4px 10px;color:#666;background:url(../assets/img/cart/cartnew_tipsbox.png?v1559f4c3c50) no-repeat;position:relative;float:left}.order-ensure-page .cartnew-tips .tipsbox .btn_close{width:17px;height:17px;padding:0;background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:-270px -225px;float:right;cursor:pointer}.order-ensure-page .cartnew-tips .tipsbox strong{color:#000;font-weight:700}.order-ensure-page .cartnew-tips .tipsbox a{color:#468fa2}.order-ensure-page .pay-wapper{position:relative}.order-ensure-page .pay-wapper .pre-sell .pre-sell-title{background:#fff9d9}.order-ensure-page .pay-wapper .pre-sell .pre-sell-title span{margin-right:10px}.order-ensure-page .pay-wapper .free{display:inline-block;width:39px;height:20px;background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:-150px -225px}.order-ensure-page .pay-wapper .fold,.order-ensure-page .pay-wapper .none{display:none}.order-ensure-page .pay-wapper .vipPrice{color:#e8044f;display:block}.order-ensure-page .pay-wapper .presell{color:#c21250;display:block}.order-ensure-page .pay-wapper .giftInfo{margin-left:30px}.order-ensure-page .pay-wapper .pay-pro-info{padding-left:15px;padding-top:10px;margin-left:0;float:left}.order-ensure-page .pay-wapper .pay-pro-info a{width:200px}.order-ensure-page .pay-wapper .pre-sell-box .cart-empty{border:none;padding:100px 0 100px 260px;background:url(../assets/img/cart/cart_empty.gif?v1559f4c3c56) 200px 56px no-repeat}.order-ensure-page .pay-wapper .pre-sell-box .cart-empty a{display:inline-block;width:90px;height:35px;background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:-237px -141px;overflow:hidden;color:#666;line-height:32px}.order-ensure-page .pay-wapper .pre-sell-box .incentive{background:#000100;color:#fff}.order-ensure-page .pay-wapper .tip-message{background:#e8044f;color:#fff;font-size:12px;margin-top:5px}.order-ensure-page .pay-wapper .cart-product-num{font-size:12px;text-align:left;height:33px;line-height:33px;background:#f8f8f8;padding:0 10px;position:relative}.order-ensure-page .pay-wapper .cart-product-num strong{padding-left:20px;font-weight:700}.order-ensure-page .pay-wapper .cart-product-num .icon-minusCart{background-position:-289px -225px}.order-ensure-page .pay-wapper .cart-product-num .icon-addCart,.order-ensure-page .pay-wapper .cart-product-num .icon-minusCart{position:absolute;top:9px;left:15px;float:left;width:15px;height:15px;cursor:pointer;background-image:url(../assets/img/sprite.cart.png?v1559f4c4796)}.order-ensure-page .pay-wapper .cart-product-num .icon-addCart{background-position:-305px -225px}.order-ensure-page .pay-wapper .cart-product-num .icon-zp{position:absolute;top:8px;left:10px;float:left;width:18px;height:19px;background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:-251px -225px}.order-ensure-page .pay-wapper .cart-product-num .cart-unfold{position:absolute;top:0;right:10px}.order-ensure-page .pay-wapper .cart-product-num .cart-unfold i{width:28px;height:20px;overflow:hidden;display:inline-block;margin-top:5px;cursor:pointer}.order-ensure-page .pay-wapper .cart-product-num .cart-btn-pre{background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:-191px -225px}.order-ensure-page .pay-wapper .cart-product-num .cart-btn-next{background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:-221px -225px}.order-ensure-page .pay-wapper .cart-product-num .unfold-color{color:#666;cursor:pointer}.order-ensure-page .pay-wapper .cart-product-num .cart-page p{float:left;padding-right:5px}.order-ensure-page .pay-wapper .cart-product-num .cart-page .f-red{color:red}.order-ensure-page .pay-wapper .cart-product-num input{position:relative;top:2px}.order-ensure-page .pay-wapper input.cart-item-check{float:left;margin-top:25px;margin-left:15px}.order-ensure-page .pay-wapper .adjust-cart-num input{width:30px;margin:0 5px;text-align:center}.order-ensure-page .pay-wapper .adjust-cart-num span{display:inline-block;width:11px;height:11px;cursor:pointer;font-size:10px}.order-ensure-page .pay-wapper .adjust-cart-num .minus{background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:-357px -119px}.order-ensure-page .pay-wapper .adjust-cart-num .plus{background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:-357px -106px}.order-ensure-page .pay-wapper .cart-add-btn{width:118px;height:32px;display:inline-block;overflow:hidden;border:0;cursor:pointer;line-height:32px}.order-ensure-page .pay-wapper .zp{background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:-237px -71px}.order-ensure-page .pay-wapper .order{background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:-237px -106px}.order-ensure-page .pay-wapper .cart-yetremove-btn{height:20px;line-height:21px;padding:0 10px;display:inline-block;color:#b3b3b3;position:relative;border:1px solid #dcdcdc;background:#ebebeb;border-radius:3px}.order-ensure-page .pay-wapper .cart-del-btn,.order-ensure-page .pay-wapper .cart-remove-btn{height:22px;line-height:21px;padding:0 10px;display:inline-block;cursor:pointer;color:#666;position:relative}.order-ensure-page .pay-wapper .cart-del-btn span,.order-ensure-page .pay-wapper .cart-remove-btn span{position:relative;z-index:9}.order-ensure-page .pay-wapper .cart-del-btn:after,.order-ensure-page .pay-wapper .cart-remove-btn:after{content:'';display:block;width:16px;height:100%;background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:-102px -248px;position:absolute;right:0;top:0;z-index:7}.order-ensure-page .pay-wapper .cart-del-btn:before,.order-ensure-page .pay-wapper .cart-remove-btn:before{content:'';display:block;width:100%;height:100%;background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:0 -225px;position:absolute;left:0;top:0}.order-ensure-page .cartnew-sum{background:#efefef;border:1px solid #ccc;padding:10px;margin-bottom:10px;zoom:1;margin-top:20px;height:auto;overflow:hidden;font-size:12px}.order-ensure-page .cartnew-sum .left{float:left}.order-ensure-page .cartnew-sum .left a{color:#333;margin-left:20px}.order-ensure-page .cartnew-sum .left input{position:relative;top:2px}.order-ensure-page .cartnew-sum .right{float:right;text-align:right}.order-ensure-page .cartnew-sum .right strong{color:#e8044f;font-size:18px}.order-ensure-page .cartnew-sum .sum{color:#333;font-weight:700;padding-bottom:5px}.order-ensure-page .cartnew-sum .yoho-coin{width:14px;height:14px;display:inline-block;background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:-321px -225px;vertical-align:middle;margin-top:-2px;margin-right:4px}.order-ensure-page .cartnew-submit{padding:10px 0 40px;text-align:right;position:relative}.order-ensure-page .cartnew-submit .btn_continue{width:60px;padding:0 0 0 33px;text-align:left;color:#333;background-position:-237px -178px;float:left}.order-ensure-page .cartnew-submit .btn_account,.order-ensure-page .cartnew-submit .btn_continue{height:33px;border:0;line-height:33px;font-size:14px;font-weight:700;background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);display:inline-block;cursor:pointer}.order-ensure-page .cartnew-submit .btn_account{width:133px;padding:0;text-align:center;color:#fff;background-position:-237px 0;float:right}.order-ensure-page .cartnew-submit .go_cash_tips{font-size:12px;width:200px;padding:5px 7px 0 28px;height:45px;position:absolute;right:135px;top:10px;text-align:left;color:#e8044f;background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:0 0;display:block}.order-ensure-page .cartnew-submit .btn_account_disabled{width:133px;height:33px;padding:0;text-align:center;border:0;line-height:33px;font-size:14px;color:#ccc;font-weight:700;background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:-237px -36px;display:inline-block;cursor:pointer}.order-ensure-page .cartnew-goodslist{margin-bottom:10px;font-size:12px;border:1px solid #ccc}.order-ensure-page .cartnew-goodslist .title{height:20px;padding:8px 10px;background:#efefef}.order-ensure-page .cartnew-goodslist .title h2{height:20px;line-height:24px;overflow:hidden;font-size:12px;float:left;cursor:pointer}.order-ensure-page .cartnew-goodslist .title h2 i{width:15px;height:15px;float:left;position:relative;top:4px;margin-right:5px}.order-ensure-page .cartnew-goodslist .title h2 .icon-minus{background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:-289px -225px}.order-ensure-page .cartnew-goodslist .title h2 .icon-add{background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:-305px -225px}.order-ensure-page .cartnew-goodslist .right{float:right}.order-ensure-page .cartnew-goodslist .right span{width:28px;height:22px;display:inline-block}.order-ensure-page .cartnew-goodslist .right .pageprev{background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:-191px -225px}.order-ensure-page .cartnew-goodslist .right .pagenext{background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:-221px -225px}.order-ensure-page .cartnew-goodslist .main{height:230px;border-top:1px solid #e3e3e3;display:block}.order-ensure-page .cartnew-goodslist .main ul{height:auto;width:100%;overflow:hidden}.order-ensure-page .cartnew-goodslist .main li{width:16.6667%;box-sizing:border-box;height:230px;border-right:1px solid #e3e3e3;float:left}.order-ensure-page .cartnew-goodslist .main li.end{border:none}.order-ensure-page .cartnew-goodslist .main .list{width:102px;padding:10px 0 0;margin:0 auto}.order-ensure-page .cartnew-goodslist .main .thumb{height:110px}.order-ensure-page .cartnew-goodslist .main .thumb img{display:block;margin:0 auto}.order-ensure-page .cartnew-goodslist .main .name{height:35px;overflow:hidden;font-size:12px}.order-ensure-page .cartnew-goodslist .main .name h3{height:30px;line-height:15px;font-size:12px;font-weight:400;color:#333;cursor:pointer;overflow:hidden}.order-ensure-page .cartnew-goodslist .main .name a{color:#333;text-decoration:underline}.order-ensure-page .cartnew-goodslist .main .price{color:#333;height:25px;line-height:25px;font-weight:700;white-space:nowrap;overflow:hidden;text-align:center;font-size:12px}.order-ensure-page .cartnew-goodslist .main .price del{color:#999}.order-ensure-page .cartnew-goodslist .main .op{text-align:center;padding:0 0 5px}.order-ensure-page .cartnew-goodslist .main .btn_view_s{width:100px;height:22px;background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:0 -248px;display:inline-block;border:0}.shop-cart .goods-detail{position:absolute;top:10%;left:0;z-index:10;width:650px;height:auto;overflow:hidden;border:1px solid #ccc;border-radius:5px;background:#fff;display:none}.shop-cart .goods-detail .magnify{position:absolute;width:12px;height:12px;background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:-357px -85px;bottom:2px;right:2px}.shop-cart .goods-detail .detail-header{display:block;font-size:12px;line-height:16px;text-align:center;color:#fff;margin-top:5px;box-sizing:border-box;padding-right:5px;height:16px;cursor:move}.shop-cart .goods-detail .detail-header .colse{float:right;width:46px;height:16px;background:#ccc;border-radius:2px;cursor:pointer}.shop-cart .goods-detail .detail-header .colse:hover{background:#414141}.shop-cart .goods-detail .detail-body{width:610px;padding:15px;margin:0 auto}.shop-cart .goods-detail .detail-body .none{display:none}.shop-cart .goods-detail .detail-body .detail-bigpic{width:290px;padding-bottom:15px;float:left}.shop-cart .goods-detail .detail-body .detail-bigpic .bigpic{width:210px;height:280px;display:block;margin:0 auto 10px}.shop-cart .goods-detail .detail-body .detail-bigpic .bigpic img{width:100%;height:auto}.shop-cart .goods-detail .detail-body .detail-bigpic .piclist{height:65px;cursor:pointer}.shop-cart .goods-detail .detail-body .detail-bigpic .piclist span{width:10px;height:60px}.shop-cart .goods-detail .detail-body .detail-bigpic .piclist .pre{background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:0 -304px;float:left}.shop-cart .goods-detail .detail-body .detail-bigpic .piclist .con{width:260px;height:65px;overflow:hidden;float:left;margin-left:5px}.shop-cart .goods-detail .detail-body .detail-bigpic .piclist .con li{float:left;width:58px;height:58px;border:1px solid #ccc;margin:1px;vertical-align:top;overflow:hidden;text-align:center}.shop-cart .goods-detail .detail-body .detail-bigpic .piclist .con li img{width:auto;height:100%;display:inline-block}.shop-cart .goods-detail .detail-body .detail-bigpic .piclist .con .active{width:56px;height:56px;border:2px solid #333}.shop-cart .goods-detail .detail-body .detail-bigpic .piclist .next{background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:-12px -304px;float:right}.shop-cart .goods-detail .detail-body .detail-info{width:300px;float:right;padding-bottom:15px}.shop-cart .goods-detail .detail-body .detail-info .title{padding:5px 0}.shop-cart .goods-detail .detail-body .detail-info .title h2{width:300px;color:#000;font-size:12px;font-weight:400;white-space:nowrap;overflow:hidden}.shop-cart .goods-detail .detail-body .detail-info .arrivalDate{color:red}.shop-cart .goods-detail .detail-body .detail-info .type{padding-bottom:10px}.shop-cart .goods-detail .detail-body .detail-info .type .type-s{background:#ccc;padding:0 5px;color:#fff;font-size:12px;height:15px;line-height:15px;display:inline-block}.shop-cart .goods-detail .detail-body .detail-info .price{padding:0 0 10px;margin-bottom:10px;border-bottom:1px solid #000}.shop-cart .goods-detail .detail-body .detail-info .price .oldprice{color:#999;font-size:14px;font-weight:700;display:block;padding-bottom:5px}.shop-cart .goods-detail .detail-body .detail-info .price .newprice{color:#000;font-size:14px;font-weight:700;height:30px;line-height:30px;padding:0 0 5px}.shop-cart .goods-detail .detail-body .detail-info .price .newprice b{font-size:22px;font-family:arial}.shop-cart .goods-detail .detail-body .detail-info .order{color:#000;font-size:12px}.shop-cart .goods-detail .detail-body .detail-info .order dd{width:55px;float:left;padding-bottom:8px}.shop-cart .goods-detail .detail-body .detail-info .order dt{width:245px;float:left;padding-bottom:8px}.shop-cart .goods-detail .detail-body .detail-info .order dd.colorBox{line-height:44px}.shop-cart .goods-detail .detail-body .detail-info .order .colorBox{height:75px}.shop-cart .goods-detail .detail-body .detail-info .order .colorBox li{width:44px;height:65px;overflow:hidden;text-align:center;margin-right:4px;display:inline;float:left;cursor:pointer}.shop-cart .goods-detail .detail-body .detail-info .order .colorBox li .atcive{width:40px;height:40px;border:2px solid #e8044f}.shop-cart .goods-detail .detail-body .detail-info .order .colorBox li .atcive span{position:absolute;bottom:0;right:0;width:11px;height:11px;overflow:hidden;background:url(../assets/img/cart/ico_r_act.png?v1559f4c3c61) 0 0 no-repeat}.shop-cart .goods-detail .detail-body .detail-info .order .colorBox li p{width:42px;height:42px;margin:0;display:inline-block;border:1px solid #ccc;position:relative}.shop-cart .goods-detail .detail-body .detail-info .order .colorBox li p img{width:100%;height:auto}.shop-cart .goods-detail .detail-body .detail-info .order .colorBox li span{line-height:20px}.shop-cart .goods-detail .detail-body .detail-info .order .showSizeBox{height:25px;line-height:18px}.shop-cart .goods-detail .detail-body .detail-info .order .showSizeBox span{cursor:pointer;height:18px;padding:0 10px;border:1px solid #ccc;margin:1px 5px 5px 1px;display:inline;float:left;overflow:hidden}.shop-cart .goods-detail .detail-body .detail-info .order .showSizeBox .atcive{height:16px;border:2px solid red;background:url(../assets/img/cart/ico_r_act.png?v1559f4c3c61) 100% 100% no-repeat}.shop-cart .goods-detail .detail-body .detail-info .order .showSizeBox .null-atcivec{height:18px;border:1px solid #ccc;color:#ccc}.shop-cart .goods-detail .detail-body .detail-info .order .showSizeBox .atcivec{height:16px;border:2px solid #ccc;background:url(../assets/img/cart/ico_r_act_h.png?v1559f4c3c61) 100% 100% no-repeat;color:#ccc}.shop-cart .goods-detail .detail-body .detail-info .order .amount_wrapper{width:100px;height:20px;display:inline-block}.shop-cart .goods-detail .detail-body .detail-info .order .amount_wrapper .amount{width:12px;height:12px;display:inline;cursor:pointer;border:0;float:left;font-size:10px;color:#c4c4c4}.shop-cart .goods-detail .detail-body .detail-info .order .amount_wrapper .cut{background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:-357px -119px;margin:5px 5px 0 0}.shop-cart .goods-detail .detail-body .detail-info .order .amount_wrapper .add{background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:-357px -106px;margin:5px 0 0 5px}.shop-cart .goods-detail .detail-body .detail-info .order .amount_wrapper .mnum{width:33px;height:18px;line-height:16px;border:1px solid #c4c4c4;text-align:center;overflow:hidden;float:left;font-size:12px}.shop-cart .goods-detail .detail-body .detail-info .submit{padding-top:10px;float:left}.shop-cart .goods-detail .detail-body .detail-info .submit input{width:225px;height:45px;overflow:hidden;border:0;cursor:pointer;float:left}.shop-cart .goods-detail .detail-body .detail-info .submit .addcart{background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:0 -146px}.shop-cart .goods-detail .detail-body .detail-info .submit .btn_pre_sale{background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:0 -52px}.shop-cart .goods-detail .detail-body .detail-info .submit .btn_sellout{background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:0 -99px}.shop-cart .goods-detail .detail-body .detail-info .submit .fav_count{background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:0 -193px;height:30px}.shop-cart .goods-detail .detail-body .detail-size{float:left;border-top:1px dashed #ccc;width:100%;height:auto;padding-bottom:15px}.shop-cart .goods-detail .detail-body .detail-size h3{height:35px;line-height:35px;font-size:14px}.shop-cart .goods-detail .detail-body .detail-size h3 span{font-size:12px}.shop-cart .goods-detail .detail-body .detail-size table{width:100%;height:auto;border:1px solid #ccc;margin-bottom:5px;font-size:12px}.shop-cart .goods-detail .detail-body .detail-size table td{border:1px solid #fff;padding:3px;font-weight:400;background:#fbfbfb;text-align:center;padding:8px 3px}.shop-cart .goods-detail .detail-body .detail-size table tr:nth-of-type(even) td{background:#f4f4f4}.shop-cart .goods-detail .detail-body .detail-size .size-info{font-size:12px;color:#999}.shopping-pay-page{margin:25px auto}.shopping-pay-page .pay-page{width:100%;position:relative}.shopping-pay-page .not-pay{width:680px;height:400px;margin:0 auto;overflow:hidden;padding-top:100px;padding-left:200px}.shopping-pay-page .not-pay p{padding-left:30px;line-height:32px}.shopping-pay-page .not-pay .success{background:url(../assets/img/pay/success.png?v1559f4c3d09) no-repeat 0}.shopping-pay-page .not-pay a{margin-top:40px;margin-left:140px;float:left;color:#c5c5c5}.shopping-pay-page .pay-title{width:980px;height:52px;overflow:hidden;padding:20px 0 0;margin:0 auto;border-bottom:2px solid #000}.shopping-pay-page .pay-title ul{width:446px;height:12px;float:right;list-style:none;padding:0;margin:0;background:url(../assets/img/pay/pay-list.png?v1559f4c3d06) no-repeat 100% 0}.shopping-pay-page .pay-title li{width:176px;height:12px;text-align:center;color:#999;float:left}.shopping-pay-page .pay-title li span{display:block;height:15px;padding:15px 0 0;line-height:15px;font-size:12px}.shopping-pay-page .pay-title .end{width:93px;height:18px;color:#000}.shopping-pay-page .pay-title .end span{text-align:right}.shopping-pay-page .step4{height:24px;width:99px;overflow:hidden;background-image:url(../assets/img/pay/pay-title.png?v1559f4c3d08);float:left}.shopping-pay-page .step5{height:31px;width:117px;overflow:hidden;background-image:url(../assets/img/pay/bc.png?v1559f4c3cfa);float:left}.shopping-pay-page .cart-pay{width:980px;margin:25px auto}.shopping-pay-page .cart-pay h2{width:950px;height:40px;padding:0 0 0 30px;line-height:40px;color:#000;font-size:20px;font-family:Arial,helvetica,sans-serif;background:url(../assets/img/pay/cat-pay.png?v1559f4c3cfe) no-repeat 0 11px;font-weight:400}.shopping-pay-page .cart-pay h3{height:40px;line-height:40px;font-weight:400;color:#666;font-size:12px;margin:0}.shopping-pay-page .cart-pay h3 strong{color:#e8044f;font-size:14px;font-weight:700}.shopping-pay-page .cart-pay h4{height:30px;line-height:30px;color:#000;font-size:14px;display:block;margin:0}.shopping-pay-page .wrapper{width:980px;margin:25px auto;overflow:hidden;border-top:2px solid #d9d9d9;padding-top:19px}.shopping-pay-page .pay-way{width:980px;height:32px;margin-bottom:27px;overflow:hidden;margin:30 auto}.shopping-pay-page .word{display:block;float:left;line-height:32px;font-size:16px;margin-right:10px}.shopping-pay-page .pay-type-img{height:30px;float:left;vertical-align:middle}.shopping-pay-page #tab-box{width:980px;margin-top:30px}.shopping-pay-page .tab-conbox,.shopping-pay-page .tabs{border-bottom:1px solid #d9d9d9}.shopping-pay-page .tabs{height:40px;padding-left:20px;background:#fff}.shopping-pay-page .tabs li{height:40px;width:85px;line-height:40px;float:left;margin-bottom:-1px;background:#ededed;overflow:hidden;position:relative;margin-left:20px;font-size:12px}.shopping-pay-page .tabs li a{display:block;outline:none;font-size:12px;text-align:center}.shopping-pay-page .tabs li.thistab{background:#fff;border-bottom:1px solid #fff;border:1px solid #d9d9d9;border-bottom:none}.shopping-pay-page .tab-con{padding-top:30px;font-size:14px;line-height:175%;overflow:hidden}.shopping-pay-page .none{display:none}.shopping-pay-page .count{width:1020px;height:170px}.shopping-pay-page .mode{width:210px;height:50px;border:1px solid #d9d9d9;margin-right:45px;margin-bottom:30px;float:left;box-sizing:border-box;text-align:center;vertical-align:middle;display:block;position:relative;line-height:44px}.shopping-pay-page .mode img{vertical-align:middle;outline:none}.shopping-pay-page .mode:hover{border:1px solid red}.shopping-pay-page .choosed-tag{background-image:url(../assets/img/pay/mode-top.png?v1559f4c3cff);height:22px;width:23px;position:absolute;top:0;right:0}.shopping-pay-page .choose-type,.shopping-pay-page .choose-type:hover{border:2px solid red}.shopping-pay-page .btn-wrapper{width:100%;padding-top:21px;margin-top:10px;margin-bottom:55px}.shopping-pay-page .btnby{outline:none;background:url(../assets/img/pay/pay-btn.png?v1559f4c3d04) no-repeat 100% 0;background-repeat:no-repeat;background-position:191px;float:right;width:230px;height:40px;line-height:40px;background-color:#da0040;color:#fff;font-size:16px;border:none;font-weight:700;font-family:arial,Microsoft YaHei!important}.shopping-pay-page .light-box{display:block;position:fixed;width:100%;height:100%;z-index:17;top:0;left:0;font-family:Microsoft Yahei;display:none}.shopping-pay-page .opacity{width:100%;height:1000px;background:#000;filter:Alpha(Opacity=50);opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";overflow:hidden;position:absolute;top:0;left:0}.shopping-pay-page .content{margin-left:-203px;margin-top:-124px;padding:50px 40px;background-color:#fff;position:absolute;top:50%;left:50%;box-shadow:0 0 8px #e8e8e8}.shopping-pay-page .notice{padding:26px 14px;line-height:20px;font-size:13px;color:#9f9f9f}.shopping-pay-page .btns a{width:134px;height:38px;line-height:38px;color:#fff;font-size:14px;margin:0 14px;display:inline-block;text-align:center;text-decoration:none}.shopping-pay-page .change{background:#bdbdbd}.shopping-pay-page .over{background:#da0040}.shopping-pay-page .close a{text-decoration:none;color:#666;outline:none}.shopping-pay-page .close,.shopping-pay-page .close a{width:30px;height:30px;line-height:30px;position:absolute;top:0;right:0;font-size:16px;font-family:arial;text-align:center}.shopping-cashondelivery-page{width:860px;margin:0 auto;font-family:arial,Microsoft YaHei;font-size:12px;text-align:left;line-height:150%}.shopping-cashondelivery-page .cart-order{width:860px;margin-top:70px}.shopping-cashondelivery-page .cart-order h1{height:70px;line-height:40px;color:#333;text-align:center;font-size:20px;font-family:Arial,helvetica,sans-serif}.shopping-cashondelivery-page .ok-br{width:30px;height:30px;background:url(../assets/img/pay/ok.png?v1559f4c3d03) no-repeat;display:inline-block;vertical-align:middle}.shopping-cashondelivery-page .list-box{border:1px solid #dadada;border-top:10px solid #000;border-bottom:0;margin-bottom:20px;font-size:14px}.shopping-cashondelivery-page .list-t{height:36px;line-height:36px;background:#f3f3f3;text-align:center;color:#333;border-bottom:1px solid #dadada}.shopping-cashondelivery-page .list-t .yoho-coin{width:14px;height:14px;display:inline-block;background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:-321px -225px;vertical-align:middle;margin-top:-2px;margin-right:4px}.shopping-cashondelivery-page .li-1{width:170px;height:36px;border-right:1px solid #dadada;font-weight:700;float:left}.shopping-cashondelivery-page .li-1 a{text-decoration:none;color:#468fa2;outline:none}.shopping-cashondelivery-page .li-2,.shopping-cashondelivery-page .li-3,.shopping-cashondelivery-page .li-4{width:170px;height:36px;border-right:1px solid #dadada;float:left}.shopping-cashondelivery-page .li-5{width:170px;height:36px;float:left}.shopping-cashondelivery-page .list{height:36px;line-height:36px;background:#fff;text-align:center;border-bottom:1px solid #dadada;font-size:14px}.shopping-cashondelivery-page .f-rz{font-weight:700;font-size:14px;color:#e8044f}.shopping-cashondelivery-page .f-e{color:#468fa2}.shopping-cashondelivery-page .f-a{color:#e8044f}.shopping-cashondelivery-page .list-b{border:1px solid #fdcf74;background:#fcfbdd;color:#976637;padding:20px;line-height:1.8;margin-bottom:20px;font-family:Arial,helvetica,sans-serif}.shopping-cashondelivery-page .list-b a{text-decoration:none;color:#468fa2;outline:none}.shopping-cashondelivery-page .list-b b{color:#c00}.shopping-cashondelivery-page .pay-mode{color:#666}.shopping-cashondelivery-page .btns{text-align:center;padding:20px 0;margin-bottom:150px}.shopping-cashondelivery-page .btns a{display:inline-block;height:33px;line-height:33px;text-align:center;font-size:14px;font-weight:700;cursor:pointer;border-radius:4px}.shopping-cashondelivery-page .btns .check-order{background:#da034a;color:#fff;border:1px solid #9d0134;width:134px;margin-right:15px}.shopping-cashondelivery-page .btns .return-home{background:#eee;color:#000;border:1px solid #b0b0b0;width:97px}.pay-notice-page{width:860px;margin:70px auto;font-size:12px}.pay-notice-page .font-red{color:#e8044f}.pay-notice-page h1{height:70px;line-height:40px;color:#333;text-align:center;font-size:20px;font-family:Arial,helvetica,sans-serif}.pay-notice-page .ok-icon{display:inline-block;width:30px;height:30px;background:url(../assets/img/pay/ok.png?v1559f4c3d03) no-repeat;vertical-align:text-top}.pay-notice-page .order-info{border-right:1px solid #dadada;border-top:10px solid #000;margin-bottom:20px}.pay-notice-page .table-row{height:36px;line-height:36px;text-align:center;color:#333;border-bottom:1px solid #dadada}.pay-notice-page .table-row .order-num,.pay-notice-page .table-row .pay,.pay-notice-page .table-row em{font-weight:700}.pay-notice-page .table-row .pay-mode{color:#666}.pay-notice-page .table-row li{float:left;width:170px;border-left:1px solid #dadada;font-size:14px}.pay-notice-page .order-table-header{background:#f3f3f3}.pay-notice-page .order-table-header .yoho-coin{width:14px;height:14px;display:inline-block;background-image:url(../assets/img/sprite.cart.png?v1559f4c4796);background-position:-321px -225px;vertical-align:middle;margin-top:-2px;margin-right:4px}.pay-notice-page .notice-link{color:#468fa2}.pay-notice-page .notice-tip{border:1px solid #fdcf74;background:#fcfbdd;color:#976637;line-height:1.8;margin-bottom:20px;padding:20px;font-family:Arial,helvetica,sans-serif}.pay-notice-page .btns{text-align:center;padding:20px 0}.pay-notice-page .btns a{display:inline-block;height:33px;line-height:33px;text-align:center;font-size:14px;font-weight:700;cursor:pointer;border-radius:4px}.pay-notice-page .btns .check-order{background:#da034a;color:#fff;border:1px solid #9d0134;width:134px;margin-right:15px}.pay-notice-page .btns .return-home{background:#eee;color:#000;border:1px solid #b0b0b0;width:97px}.pay-notice-page .notice-img{width:100%}.pay-wechatqrcode-page{width:990px;margin:0 auto;font-size:12px;font-family:arial,Microsoft YaHei}.pay-wechatqrcode-page .pay-title{height:52px;overflow:hidden;padding:20px 0 0;margin:0 auto;border-bottom:2px solid #000}.pay-wechatqrcode-page .pay-title ul{width:446px;height:12px;float:right;list-style:none;padding:0;margin:0;background:url(../assets/img/pay/pay-list.png?v1559f4c3d06) no-repeat 100% 0}.pay-wechatqrcode-page .pay-title li{width:176px;height:12px;text-align:center;color:#999;float:left}.pay-wechatqrcode-page .pay-title li span{display:block;height:15px;padding:15px 0 0;line-height:15px}.pay-wechatqrcode-page .pay-title .end{width:93px;height:18px;color:#000}.pay-wechatqrcode-page .pay-title .end span{text-align:right}.pay-wechatqrcode-page .step4{height:24px;width:99px;overflow:hidden;background-image:url(../assets/img/pay/pay-title.png?v1559f4c3d08);float:left}.pay-wechatqrcode-page .w-title{padding:25px 0 12px;overflow:hidden}.pay-wechatqrcode-page .w-left{width:670px;float:left}.pay-wechatqrcode-page .w-left h3{line-height:26px;height:26px;margin-bottom:4px;overflow:hidden;font-size:14px;font-weight:400}.pay-wechatqrcode-page .w-left p{height:22px;line-height:22px;color:#9b9b9b}.pay-wechatqrcode-page .w-left p span{color:red}.pay-wechatqrcode-page .w-right{margin-left:670px;overflow:hidden;text-align:right}.pay-wechatqrcode-page .w-right p{line-height:26px;height:26px;margin-bottom:4px;overflow:hidden;font-size:14px}.pay-wechatqrcode-page .w-right p strong{color:#ff5d5b;font-size:18px;margin:0 3px;font-weight:700}.pay-wechatqrcode-page .w-right a{color:#2ea7e7;padding-right:14px;position:relative;display:inline-block;height:22px;line-height:22px}.pay-wechatqrcode-page .w-right a i{width:0;height:0;font-size:0;position:absolute;top:9px;right:4px;z-index:1;cursor:pointer}.pay-wechatqrcode-page .up{float:right;border-width:4px 3px 0;border-style:solid dashed dashed;border-color:#2ea7e7 transparent transparent}.pay-wechatqrcode-page .down{float:right;border-width:0 3px 4px;border-style:dashed dashed solid;border-color:transparent transparent #2ea7e7}.pay-wechatqrcode-page .w-addrinfo{padding:12px 0;color:#9b9b9b;line-height:22px;border-top:1px solid #e4e5eb;display:none}.pay-wechatqrcode-page .w-addrinfo span{padding:0 20px}.pay-wechatqrcode-page .w-payment{border:1px solid #e5e5e5;border-top:3px solid #4b5b78;background-color:#fff;padding:26px 30px 30px;margin-top:6px;margin-bottom:50px}.pay-wechatqrcode-page .w-payment h2{font-size:18px;font-weight:400;display:block}.pay-wechatqrcode-page .w-p-weixin{width:300px;height:380px;padding:20px 370px 30px 0;margin:0 auto;overflow:hidden;background:url(../assets/img/pay/w-p-phone.png?v1559f4c3d09) no-repeat 100% 0}.pay-wechatqrcode-page .w-p-erm{width:250px;height:250px;padding:24px;margin-bottom:20px;border:1px solid #ddd;overflow:hidden}.pay-wechatqrcode-page .w-p-word{height:44px;padding:8px 0 8px 125px;background:url(../assets/img/pay/w-p-word.png?v1559f4c3d0a) no-repeat 50px 8px #090909}.pay-wechatqrcode-page .w-p-word p{margin:0;font-size:14px;line-height:22px;color:#fff;font-weight:700}.pay-wechatqrcode-page .w-pay-change{display:block;height:30px;line-height:30px;margin-top:50px;color:#0aaefa;cursor:14px}.pay-wechatqrcode-page .w-pay-change i{float:left;margin-right:14px;font-family:arial;font-style:normal;font-size:16px}.wechatqrcodereturn{width:990px;margin:0 auto;font-size:12px;font-family:Arial,helvetica,sans-serif}.wechatqrcodereturn .pay-title{height:65px;overflow:hidden;padding:20px 0 0;margin:0 auto;border-bottom:2px solid #000}.wechatqrcodereturn .pay-title ul{width:446px;height:12px;float:right;list-style:none;padding:0;margin:0;background:url(../assets/img/pay/pay-list.png?v1559f4c3d06) no-repeat 100% 0}.wechatqrcodereturn .pay-title li{width:176px;height:12px;text-align:center;color:#999;float:left}.wechatqrcodereturn .pay-title li span{display:block;height:15px;padding:15px 0 0;line-height:15px}.wechatqrcodereturn .pay-title .end{width:93px;height:18px;color:#000}.wechatqrcodereturn .pay-title .end span{text-align:right}.wechatqrcodereturn .step5{height:33px;width:97px;overflow:hidden;background-image:url(../assets/img/pay/finsh.png?v1559f4c3cff);float:left}.wechatqrcodereturn .pay-wechat-return{overflow:hidden;padding-top:10px}.wechatqrcodereturn .payerror{margin:50px 0 0 300px;font-size:14px;font-weight:700;color:#000;padding-left:25px;line-height:21px;background:url(../assets/img/pay/pay-fail.png?v1559f4c3d05) no-repeat}.wechatqrcodereturn .arrival-time{margin:10px 0 0 325px;color:#666}.wechatqrcodereturn .tell-phone{color:#e8044f;font-weight:700;font-size:16px}.wechatqrcodereturn .cart-bigbtns span{margin-right:5px}.wechatqrcodereturn .btn-type{display:inline-block;height:35px;padding:0 0 0 2px;overflow:hidden;font-size:14px;margin:40px 0 0 320px}.wechatqrcodereturn .btn-type a{display:inline-block;height:35px;line-height:32px;padding:0 20px;background:url(../assets/img/pay/btnby.png?v1559f4c3cfb) no-repeat;border:none;overflow:visible;cursor:pointer;margin:0;color:#666}.wechatqrcodereturn .we-font{margin:20px 0 0 320px;height:36px;line-height:36px;padding-left:16px;color:#999;display:block;background:url(../assets/img/pay/pay-plaint.png?v1559f4c3d07) no-repeat 1px}.about-page{width:990px;padding:10px 0 20px}.about-page .about-nav{width:210px;padding:10px 20px;background-color:#ebe9ea;border:1px solid #d7d7d7;border-radius:5px}.about-page .about-nav li{line-height:30px;font-size:12px;text-align:center;border-bottom:1px solid #ddd;border-top:1px solid #fff}.about-page .about-nav li a{color:#333;font-weight:700}.about-page .about-nav li a:hover{color:#f60}.about-page .about-nav li:first-child{border-top:0}.about-page .about-nav .act a{color:#ed004c;cursor:pointer}.about-page .about-nav .act a:hover{color:#ed004c}.yohobuy-about-page .main-container{width:720px;border:1px solid #d7d7d7;border-radius:5px;overflow:hidden}.yohobuy-about-page .main-container .text-title{border-bottom:4px solid red;font-family:微软雅黑;height:100px;line-height:100px;font-weight:700;font-size:36px;color:#333;text-align:center}.yohobuy-about-page .main-container .text-info{padding:20px;color:#333;overflow:hidden;font-size:12px;font-weight:400;line-height:24px}.newpower-about-page .main-container{width:720px;border:1px solid #d7d7d7;border-radius:5px;overflow:hidden}.newpower-about-page .main-container .text-info{line-height:30px;font-size:14px;font-weight:700;text-align:center;color:#333;padding:20px;overflow:hidden}.contact-about-page .main-container{width:720px;border:1px solid #d7d7d7;border-radius:5px;overflow:hidden}.contact-about-page .main-container .text-title{border-bottom:4px solid red;font-family:微软雅黑;height:100px;line-height:100px;font-weight:700;font-size:36px;color:#333;text-align:center}.contact-about-page .main-container .text-info{padding:20px;color:#333;overflow:hidden;font-size:12px;font-weight:400;line-height:24px}.contact-about-page .main-container strong{font-weight:700}.link-about-page .main-container{width:720px;border:1px solid #d7d7d7;border-radius:5px;overflow:hidden}.link-about-page .main-container .text-title{border-bottom:4px solid red;font-family:微软雅黑;height:100px;line-height:100px;font-weight:700;font-size:36px;color:#333;text-align:center}.link-about-page .main-container .text-info{padding:20px;color:#333;overflow:hidden;font-size:12px;font-weight:400;line-height:24px}.link-about-page .main-container h2{font-size:14px;line-height:30px;border-bottom:1px dashed #ccc}.link-about-page .main-container ul{padding:10px 0;list-style:none}.link-about-page .main-container strong{font-weight:700}.privacy-about-page .main-container{width:720px;border:1px solid #d7d7d7;border-radius:5px;overflow:hidden}.privacy-about-page .main-container .text-title{border-bottom:4px solid red;font-family:微软雅黑;height:100px;line-height:100px;font-weight:700;font-size:36px;color:#333;text-align:center}.privacy-about-page .main-container .text-info{padding:20px;color:#333;overflow:hidden;font-size:12px;font-weight:400;line-height:24px}.privacy-about-page .main-container strong{font-weight:700}.settled-apply-page .mask,.settled-page .mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#ccc;opacity:.3;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";z-index:20}.settled-page{margin-top:10px;margin-bottom:30px}.settled-page .banner{margin-bottom:45px}.settled-page .flow-container{position:relative;width:1033px;margin:0 auto}.settled-page .fake-link{position:absolute;bottom:-4px;left:221px;width:150px;height:32px;background:#fff;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";cursor:pointer}.settled-page .notice-container{position:fixed;width:960px;left:50%;top:30px;margin-left:-480px;z-index:2;overflow-y:auto;overflow-x:hidden;border-radius:10px;z-index:21}.settled-page .fake-close{position:fixed;width:30px;height:30px;top:44px;margin-left:914px;cursor:pointer;background:url(../assets/img/about/close.png?v1559f4c3c42) no-repeat 50%}.min-screen .settled-page .banner{width:990px}.min-screen .settled-page .flow-container,.min-screen .settled-page .flow-path{width:890px}.min-screen .settled-page .fake-link{bottom:-6px;left:190px;width:130px}.settled-apply-page{font-size:14px}.settled-apply-page .error{border-color:red!important}.settled-apply-page .required-mark{color:red}.settled-apply-page .banner{display:block;margin-top:10px;margin-bottom:30px}.settled-apply-page .title{margin-bottom:10px;padding-left:215px}.settled-apply-page .title span{font-size:18px;line-height:20px;color:#000;font-weight:700;vertical-align:top}.settled-apply-page .title .edit-img{width:24px;height:22px}.settled-apply-page .form-container{width:100%;padding:30px 0;border:1px solid #f4f5f5;border-left:none;border-right:none}.settled-apply-page .signup-form{width:790px;margin:0 auto}.settled-apply-page .signup-form .long-input{width:400px}.settled-apply-page .signup-form .short-input{width:150px}.settled-apply-page .signup-form td{border:10px solid transparent;height:41px}.settled-apply-page .signup-form tr.has-sub td{border-bottom:0}.settled-apply-page .signup-form tr.sub td{border-top:2px}.settled-apply-page .signup-form tr td:first-child{text-align:right}.settled-apply-page .signup-form .sub .tip-td{vertical-align:top}.settled-apply-page .signup-form .button,.settled-apply-page .signup-form input,.settled-apply-page .signup-form select{height:36px;line-height:36px;border-radius:3px;border:1px solid #979797}.settled-apply-page .signup-form select{line-height:18px;padding:9px 0}.settled-apply-page .signup-form input[type=radio]{border:none;vertical-align:text-bottom;margin-bottom:-10px}.settled-apply-page .signup-form .button{width:156px;background-color:#fff;border-radius:6px}.settled-apply-page .signup-form input[type=text]{text-indent:5px}.settled-apply-page .signup-form .swfupload{border:1px solid #ccc;border-radius:6px;height:35px;width:160px;background-color:#fff;cursor:pointer}.settled-apply-page .signup-form .placeholder{color:#979797}.settled-apply-page .signup-form ul{list-style:none;padding-left:0}.settled-apply-page .signup-form .for-other{width:120px;padding:0}.settled-apply-page .signup-form .upload-btn{font-size:13px;border-radius:3px;border:1px solid #979797}.settled-apply-page .signup-form .upload-btn input{cursor:pointer}.settled-apply-page .signup-form .uploadifive-queue{display:none}.settled-apply-page .shop-addres{width:300px}.settled-apply-page .shop-sales-volume{width:80px}.settled-apply-page .shop-list li{margin-bottom:5px}.settled-apply-page .shop-list li>span{margin:0 4px}.settled-apply-page .shop-list li:last-child{margin-bottom:0}.settled-apply-page .tip{font-size:12px;color:#c7c7c7;margin:2px 0}.settled-apply-page .submit-btn{background-color:#000;color:#fff;height:37px;width:157px;border-radius:6px;border:none;margin-top:30px;margin-left:377px;cursor:pointer;margin-bottom:30px}.settled-apply-page .add-btn{width:22px;height:22px;vertical-align:middle;margin-left:20px;cursor:pointer}.settled-apply-page .submit-success{position:fixed;width:500px;height:180px;top:50%;left:50%;margin-top:-170px;margin-left:-280px;z-index:8;padding:30px 50px;background-color:#fff;border-radius:10px;text-align:center}.settled-apply-page .submit-success .content{border-bottom:1px solid #ccc;margin-bottom:20px}.settled-apply-page .submit-success .content h1,.settled-apply-page .submit-success .content h2{margin-bottom:30px}.settled-apply-page .submit-success .sure{font-size:24px;color:red;text-align:center;text-decoration:none;font-weight:700}.settled-apply-page .category-list{margin-top:-12px}.settled-apply-page .category-list li{margin-bottom:5px}.settled-apply-page .category-list li:last-child{margin-bottom:0}.settled-apply-page .has-radio td{line-height:41px}.settled-apply-page .tip-sub td{height:14px}.settled-apply-page input[type=radio]{margin-left:10px}.settled-apply-page .brand-tip,.settled-apply-page .goods-tip{color:#000;margin-top:10px}.settled-success{border:none;border-radius:10px;background:#fff}.settled-success .content{border-bottom:1px solid #ccc}.settled-success .main-title{font-size:28px}.settled-success .sub-title{font-size:16px;margin:20px 0}.settled-success .apply-success-ok{border:none;color:red;font-weight:700;font-size:18px;line-height:60px}.app-download-page .top-wrapper{height:550px;background:url(../assets/img/download/main-top.png?random=1466056691&v1559f4c3c86) no-repeat top}.app-download-page .top-wrapper .top-down{width:444px;margin:0 auto;padding-top:305px}.app-download-page .top-wrapper .down-btns{width:216px;height:65px;display:block;margin-left:200px;float:right}.app-download-page .top-wrapper .down-btns:first-child{margin-bottom:10px}.app-download-page .main-wrapper .intro{width:990px;height:437px;margin:114px auto 0}.app-download-page .main-wrapper .intro-6{height:350px}.app-download-page .main-wrapper .bottom-down{width:350px;margin:0 auto;overflow:hidden;padding-top:34px}.app-download-page .main-wrapper .bottom-down .qr-code{width:130px;height:130px;background-image:url(../assets/img/sprite.download.png?v1559f4c4799);background-position:0 0}.app-download-page .main-wrapper .bottom-down .down-btns{width:200px;height:60px;display:block}.app-download-page .main-wrapper .bottom-down .down-app-btn{margin-bottom:8px;background-image:url(../assets/img/sprite.download.png?v1559f4c4799);background-position:-132px 0}.app-download-page .main-wrapper .bottom-down .down-apk-btn{background-image:url(../assets/img/sprite.download.png?v1559f4c4799);background-position:-132px -62px}.app-download-page .foot-wrapper{height:100px;text-align:center} \ No newline at end of file diff --git a/web-static/dist/yohobuy/4.6.3/index.js b/web-static/dist/yohobuy/4.6.3/index.js new file mode 100644 index 0000000..485de10 --- /dev/null +++ b/web-static/dist/yohobuy/4.6.3/index.js @@ -0,0 +1,8 @@ +define("index",["jquery","handlebars","source-map","index","lazyload","jquery-pjax","dot","jquery.placeholder"],function(e,t,n){var a;e("js/common"),e("js/header"),e("js/simple-header"),e("js/product/entry"),e("js/index/index"),e("js/brand/index"),e("js/passport/entry"),e("js/cart/cart"),e("js/guang/entry"),e("js/home/entry"),e("js/help/entry"),e("js/order/ensure"),e("js/shopping/pay"),e("js/pay/wechatqrcode"),e("js/about/entry"),e("js/coupon/entry"),n.exports=a}),define("js/common",["jquery"],function(e,t,n){function a(e){var t=new RegExp(e+"=([^;$]*)","i"),n="$1";return t.test(decodeURIComponent(document.cookie))?RegExp[n]:""}function i(e,t,n){var a,i,o,s,r="";"undefined"!=typeof t&&(n=n||{},null===t&&(t="",n.expires=-1),n.expires&&("number"==typeof n.expires||n.expires.toUTCString)&&("number"==typeof n.expires?(s=new Date,s.setTime(s.getTime()+24*n.expires*60*60*1e3)):s=n.expires,r="; expires="+s.toUTCString()),a=n.path?"; path="+n.path:"",i=n.domain?"; domain="+n.domain:"",o=n.secure?"; secure":"",document.cookie=[e,"=",encodeURIComponent(t),r,a,i,o].join(""))}function o(){var e,t=a("_UID");return"undefined"==typeof t?0:(e=t.split("::"),"undefined"==typeof e||e.length<4?0:e)}function s(){var e=o();return 0===e?0:e[1]}function r(){var e=a("_g");return"undefined"==typeof e?"":JSON.parse(e).k}function d(){var e,t,n={},a=window.location.search,i=a?decodeURIComponent(a).slice(1).split("&"):[];for(t=0;t<i.length;t++)e=i[t].split("="),n[e[0]]=e[1];return n}var l=e("jquery"),c=l("body");e("js/footer"),function(e,t,n,a,i){var o=t.createElement(n),s=t.getElementsByTagName(n)[0];e.YohoAcquisitionObject=i,e[i]=function(){e[i].p=arguments},o.async=1,o.src=a,s.parentNode.insertBefore(o,s)}(window,document,"script",("https:"==document.location.protocol?"https":"http")+"://cdn.yoho.cn/yas-jssdk/1.0.17/yas.js","_yas"),function(){var e=s();e=0===e?"":e,window._ozuid=e,window._yas&&window._yas(1*new Date,"1.0.17","yohobuy_web",e,"","")}(),l(window).on("resize",function(){var e=l(this).width();1360>e?l(".return-top").addClass("min"):l(".return-top").removeClass("min"),1180>e?c.addClass("min-screen"):c.removeClass("min-screen")}).trigger("resize"),l.extend({queryString:function(){var e,t,n=[],a=window.location.search.slice(1).split("&");for(t=0;t<a.length;t++)e=a[t].split("="),n.push(e[0]),n[e[0]]=e[1];return n}}),function(){l(window).load(function(){var e,t=document.getElementById("user-thumb");t&&(e=new Image,e.src=t.src,e.onerror=function(){l(t).parent().append('<div class="default-user-thumb"></div>').end().remove()})})}(),window.cookie=a,window.setCookie=i,window.getUser=o,window.getUid=s,window.getShoppingKey=r,window.queryString=d}),define("js/footer",["jquery"],function(e,t,n){function a(){var e=s("#subscriber-box"),t=s("#subscriber-btn"),n=/^[.\-_a-zA-Z0-9]+@[\-_a-zA-Z0-9]+\.[a-zA-Z0-9]/,a={mail:"",tick:""};e.focus(function(){s(this).val("").css("color",""),t.removeClass("done").html(a.mail)}),t.click(function(){var i=s.trim(e.val());if(""!==i&&n.test(i))try{s.ajax({url:"//www.yohobuy.com/common/emailSubscriber",dataType:"jsonp",data:{email:i,tmp:Math.random(),uid:window.getUid()},success:function(n){1===n.data.result?(e.val("已订阅到:"+i),t.addClass("done").html(a.tick)):e.css("color","red")}})}catch(o){console.log(o.message)}else e.css("color","red")})}function i(){var e=s(".vote"),t=s("#feed-back-page"),n=e.children("li").length;t.on("click","span",function(){var t=s(this);t.hasClass("cur")||(t.siblings(".cur").removeClass("cur"),t.addClass("cur"),e.children().not(".hide").addClass("hide").end().eq(t.index()).removeClass("hide"))}),e.on("click",".feed-back-btn",function(){var a=s(this),i=a.closest("li"),o=i.index(),r=[],d=i.find(".feedback-answer").val(),l=i.find(".feedback-id").val(),c=i.find(".question-id").val();i.find(":checked").each(function(){r.push(s(this).val())}),s.ajax({url:"//www.yohobuy.com/common/suggestFeedback",dataType:"jsonp",data:{feedback_id:l||0,question_id:c||0,answer:d||"",solution:r.join(",")},success:function(a){var s=o+1;if(1===~~a.data.result){if(o===n-1)return void alert("感谢您的参与!");i.addClass("hide"),e.children(":eq("+(o+1)+")").removeClass("hide"),t.children(".cur").removeClass("cur"),t.children(":eq("+s+")").addClass("cur")}}})})}function o(){s(window).height()>s(document).height()&&r.addClass("hide")}var s=e("jquery"),r=s(".return-top");r.click(function(){s("html,body").animate({scrollTop:0},500)}),s(window).scroll(function(){0===s(window).scrollTop()?r.addClass("hide"):r.removeClass("hide")}),r.hasClass("hide")&&s("img").load(o),a(),i(),window.rePosReturnTop=o}),define("js/header",["jquery","handlebars","source-map","index"],function(e,t,n){function a(e,t,n){try{ee.push({louceng:e,weizhi:t,event:n})}catch(a){}}function i(){var e=H("#nav_keyword").text(),t="vans",n=H("#query_key");""!==e?(n.css({color:"#000"}),n.val(e)):(n.css({color:"#e0e0e0"}),n.val(t),n.on("focus",function(e){n.css({color:"#000"}),n.val("")}))}function o(){var e={cookie:"_g",cartNum:""},t="",n="",a=0,i=0,o=0,s=0,r="";H.fn.miniCart=function(a){if(t=H.extend(e,a),"undefined"==typeof window.cookie(t.cookie))n=null;else if(t.cookie)try{n=Y.parse(window.cookie(t.cookie))}catch(i){}null!==n&&""!==n&&(s=parseInt(n._nac)+parseInt(n._ac),0===s?H("#icart-num").attr("class","icart-num icart-none"):H("#icart-num").attr("class","icart-num"),H(t.cartNum).html(s))},H.fn.search=function(e){function t(t){var n=H.trim(H(t).val());return n=n.replace(new RegExp("'","gm"),""),""===n?(H(".search-list").hide(),!1):(n=encodeURI(n),void H.get(e+"?query="+n,function(e){H(".search-list").html(e.data),a=H(".search-list").children("li").length,i=-1,a>0?H(".search-list").show():H(".search-list").hide(),H(".search-list").find("a").hover(function(){H(this).css("background-color","#eee")},function(){H(this).css("background-color","#fff")})},"jsonp"))}function n(e){H(".search-list li:eq("+o+")").children("a").css("background-color","#fff"),H(".search-list li:eq("+i+")").children("a").css("background-color","#eee"),r=H(".search-list li:eq("+i+")").children("a").attr("title"),H("#query_key").val(r)}return this.each(function(){H(this).keyup(function(e){if(38===e.which){if(0===a)return!1;-1===i&&(i=0),o=i,i=(i-1+a)%a,n(this)}else if(40===e.which){if(0===a)return!1;o=i,i=(i+1)%a,n(this)}else 13===e.which?window.submitSearch():t(this)})})},H.extend({getData:function(e,t,n){var a={page:1,method:"",v:1,return_type:"jsonp",open_key:"12345",tmp:Math.random()},i="";if(void 0===typeof e||""===e)return!1;i=H.extend(a,t),i.page=i.page||1;try{H.getJSON(e+"/?callback=?",i,function(e){return""!==n?("undefined"!=typeof n(e.data)&&Y.parse(n(e.data)),!1):void 0})}catch(o){console.log(o.message)}},getShoppingKey:function(){var e,t=window.cookie("_g"),n=Y.parse(t);return"undefined"==typeof t||null===t?(e=window.cookie("_SPK"),e?e:""):n._k}})}function s(e){var t;200===+e.code&&"object"==typeof e.data&&(t=""!==e.data.url?'<a target="_blank" href="'+e.data.url+'" class="page-top-banner"style="height:36px;border:none;background-image:url('+window.unescape(e.data.src)+');background-position: center;display:block;"> </a>':'<div class="yoho-notice"><div class="notice-container center-content"><h1 class="notice-title">关于系统升级的公告</h1><div class="notice-content"><p class="tips">尊敬的顾客:</p><p class="detail">您好!为了向您提供更优质的服务,目前系统正在升级,请耐心等待。</p><p class="detail">系统升级期间,部分地区用户体验会有暂时中断,如遇紧急事宜,欢迎垂询客服热线:400-889-9646 09:00-22:30(周一至周日)。稍后系统将恢复正常使用,欢迎您继续光顾YOHO!BUY有货!带来不便之处深表歉意,请您谅解!</p></div></div></div>',H("body").prepend(t))}function r(e){var t=document.createElement("script");t.src=le+e+"&client_type=web&callback=JsonPCallBack",document.getElementsByTagName("head")[0].appendChild(t)}function d(e,t){var n,a;H(e).hover(function(e){e.preventDefault(),n=H(this),a=H(t)[0],""===a.style.display?(n.addClass("acttags"),a.style.display="block"):(n.removeClass("acttags"),a.style.display="")})}function l(){var e,t,n=[{sourceClass:".myyoho",targetClass:".myyoho-info"},{sourceClass:".phone",targetClass:".qr"}];for(t=0;t<n.length;t++)e=n[t],d(e.sourceClass,e.targetClass)}function c(){var e;H(".yohogroup").mouseenter(function(){e=H(this),e.text(e.attr("cn"))}),H(".yohogroup").mouseleave(function(){e=H(this),e.text(e.attr("en"))})}function u(){var e,t,n=["webkit","moz","ms"];for(t=0;t<n.length;t++)return e=n[t]+"RequestAnimationFrame",!!window[e]}function h(){var e=["webkit","moz","ms"],t=e[0]+"RequestAnimationFrame",n=e[1]+"RequestAnimationFrame",a=e[2]+"RequestAnimationFrame";return window[t]?function(e){requestAnimationFrame(e)}:window[n]?function(e){window[n](e)}:window[a]?function(e){window[a](e)}:function(e){window.setTimeout(e,67)}}function p(){ne+=10,ae.css({transform:"rotateX("+ne+"deg)","-webkit-transform":"rotateX("+ne+"deg)","-moz-transform":"rotateX("+ne+"deg)"}),ne/90%2===1&&(ie?(ae.css("background-image","url(//static.yohobuy.com/newheader/img/logo1.png)"),ie=!1):(ae.css("background-image","url(//static.yohobuy.com/newheader/img/logo_e.png)"),ie=!0)),ne/90%2===0&&ne%360!==0?window.setTimeout(p,3e3):ne%360===0?window.setTimeout(p,6e4):te(function(){p()})}function f(){W&&window.clearTimeout(W),ae.fadeOut(oe,function(){ie=!1,ae.css("background-image","url(//static.yohobuy.com/newheader/img/logo.png)"),ae.fadeIn(oe,function(){M=window.setTimeout(function(){ae.fadeOut(oe,function(){window.clearTimeout(M),ie=!0,ae.css("background-image","url(//static.yohobuy.com/newheader/img/logo_e.png)"),ae.fadeIn(oe,function(){W=window.setTimeout(f,6e4)})})},3e3)})})}function m(){u()?(te=h(),window.setTimeout(p,3e3)):window.setTimeout(f,3e3)}function g(e){var t=H(e);t.find(".thirdnavbar").each(function(){var e=H(this),t=e.find("a"),n=t.attr("href"),a="hot"===t.attr("hot"),i={};i=e.hasClass("category-title")?{type:"title",height:49,content:e.text(),index:window.valueIndex,href:n,hot:!1}:{type:"catlist",height:36,content:t.text(),index:window.valueIndex,href:n,hot:a},window.valueIndex++,window.newArr.push(i)})}function v(){var e=window.newArr.length,t=0,n=[],a=[],i=[],o=[],s="",r="",d="",l=0,c=0,u=0;for(t;e>t;t++){if(n=window.newArr[t],0===window.gindex&&(window.oh1=window.oh1+n.height,window.oh1>=340&&t!==e-1&&(window.targetArr1=window.newArr.slice(0,n.index+1),window.nowIndex=n.index+1,window.gindex++),t===e-1)){window.targetArr1=window.newArr.slice(0,e+1);break}if(1===window.gindex&&(window.oh2=window.oh2+n.height,window.oh2>=340&&t!==e-1&&(window.targetArr2=window.newArr.slice(window.nowIndex,n.index+1),window.nowIndex=n.index+1,window.gindex++),t===e-1)){window.targetArr2=window.newArr.slice(window.nowIndex,e+1);break}if(2===window.gindex){if(window.oh3=window.oh3+n.height,window.oh3>=340&&t!==e-1){window.targetArr3=window.newArr.slice(window.nowIndex,n.index+1),window.nowIndex=n.index+1,window.gindex++;break}if(t===e-1){window.targetArr3=window.newArr.slice(window.nowIndex,e+1);break}}}for(l;l<window.targetArr1.length;l++)a=window.targetArr1[l]||{},"title"===a.type?window.inner1=window.inner1+'<li class="cattitle"><h3><a href="'+a.href+'">'+a.content+"</a></h3></li>":a.hot===!0?window.inner1=window.inner1+'<li class="catdetail"><a class="thirdcatelink hot" href="'+a.href+'">'+a.content+"</a></li>":window.inner1=window.inner1+'<li class="catdetail"><a class="thirdcatelink" href="'+a.href+'">'+a.content+"</a></li>";for(c;c<window.targetArr2.length;c++)i=window.targetArr2[c]||{},"title"===i.type?window.inner2=window.inner2+'<li class="cattitle"><h3><a href="'+i.href+'">'+i.content+"</a></h3></li>":i.hot===!0?window.inner2=window.inner2+'<li class="catdetail"><a class="thirdcatelink hot" href="'+i.href+'">'+i.content+"</a></li>":window.inner2=window.inner2+'<li class="catdetail"><a class="thirdcatelink" href="'+i.href+'">'+i.content+"</a></li>";for(u;u<window.targetArr3.length;u++)o=window.targetArr3[u]||{},"title"===o.type?window.inner3=window.inner3+'<li class="cattitle"><h3><a href="'+o.href+'">'+o.content+"</a></h3></li>":o.hot===!0?window.inner3=window.inner3+'<li class="catdetail"><a class="thirdcatelink hot" href="'+o.href+'">'+o.content+"</a></li>":window.inner3=window.inner3+'<li class="catdetail"><a class="thirdcatelink" href="'+o.href+'">'+o.content+"</a></li>";""!==window.inner1&&(s='<ul class="cate_row1 cate_row">'+window.inner1+"</ul>"),""!==window.inner2&&(r='<ul class="cate_row2 cate_row">'+window.inner2+"</ul>"),""!==window.inner3&&(d='<ul class="cate_row3 cate_row">'+window.inner3+"</ul>"),window.finalresult=s+r+d,H("#"+window.wrapperindex).empty().append(window.finalresult)}function y(){H(".categorywrapper").each(function(e){window.wrapperindex=H(this).attr("id"),window.newArr=[],window.gindex=0,window.targetArr1=[],window.targetArr2=[],window.targetArr3=[],window.oh1=0,window.oh2=0,window.oh3=0,window.valueIndex=0,window.nowIndex=0,window.inner1="",window.inner2="",window.inner3="",g(H(this).find(".category")),v()})}function b(){var e={},t="",n="",a="",i="",o="";H(document).on("mouseenter",".sub-nav-item",function(){t=H(this).find(".showdetail").attr("data-code"),t&&(e[t]||(e[t]=t,n=H(this).find(".showdetail").find("img"),a=H(this).find(".showdetail").find(".title"),i=H(this).find(".showdetail").find("a"),H.get(le+t+"&width=337&height=250&client_type=web",function(e){n.attr("src",e.data.src),i.attr("href",e.data.url),a.text(e.data.title)},"jsonp")))}),o=H(".cure").find(".name-cn").find("a").attr("href"),H(".main-link").attr("href",o)}function w(){var e=H("#cover");e.remove()}function C(){var e,t=window.cookie("_Gender"),n="",i="",o="",s="";"www.yohobuy.com"!==window.location.host||"undefined"!=typeof t&&""!==t&&null!==t||H.get("//www.yohobuy.com/index/guide",function(t){n=document.createElement("div"),n.id="cover",n.innerHTML=t,document.body.appendChild(n),i=H(window).height(),o=H(".guide-box").height(),e=i/2-o/2,s=H(".guide-box .clear").find("li").length,H(".guide-box").css({width:200*s+"px",top:e+"px"}),H("#cover").bind("click",function(e){window.setCookie("_Gender","1,3",{path:"/",domain:".yohobuy.com",expires:90}),window.setCookie("_Channel","boys",{path:"/",domain:".yohobuy.com",expires:7}),w()}),H("#cover .guide-box .close").bind("click",function(e){a("弹窗","CLOSE","homepage_man"),window.setCookie("_Gender","1,3",{path:"/",domain:".yohobuy.com",expires:90}),window.setCookie("_Channel","boys",{path:"/",domain:".yohobuy.com",expires:7}),w()}),H(".boys img , .boys .go").bind("click",function(e){a("弹窗","BOYS","homepage_man"),window.setCookie("_Gender","1,3",{path:"/",domain:".yohobuy.com",expires:90}),window.setCookie("_Channel","boys",{path:"/",domain:".yohobuy.com",expires:7}),w()}),H(".girls img, .girls .go").bind("click",function(e){a("弹窗","GIRLS","homepage_woman"),window.setCookie("_Gender","2,3",{path:"/",domain:".yohobuy.com",expires:90}),window.setCookie("_Channel","girls",{path:"/",domain:".yohobuy.com",expires:7})}),H(".lifestyle img, .lifestyle .go").bind("click",function(e){window.setCookie("_Channel","lifestyle",{path:"/",domain:".yohobuy.com",expires:7}),a("弹窗","LIEFSTYLE","homepage_lifestyle")}),H("#cover .guide-box").bind("click",function(e){e.stopPropagation()})})}function i(){var e=H("#nav_keyword").text(),t=H("#defaultsearch").val(),n=H("#query_key");""!==e?(n.css({color:"#000"}),n.val(e)):(n.css({color:"#e0e0e0"}),n.val(t),n.on("focus",function(e){n.css({color:"#000"}),n.val("")})),H(document).click(function(e){H(e.target).closest(".searchspan, .search-list").length||H(".search-list").hide()})}function _(){var e=window.cookie("_Gender"),t=H(".cure");"undefined"!=typeof e&&""!==e&&window.setCookie("_Gender",1,{path:"/",domain:".yohobuy.com",expires:7}),"男生"===t.find(".name-cn a").text()&&(window.setCookie("_Gender","1,3",{path:"/",domain:".yohobuy.com",expires:7}),window.setCookie("_Channel","boys",{path:"/",domain:".yohobuy.com",expires:7})),"女生"===t.find(".name-cn a").text()&&window.setCookie("_Gender","2,3",{path:"/",domain:".yohobuy.com",expires:7}),"创意生活"===t.find(".name-cn a").text()&&window.setCookie("_Channel","lifestyle",{path:"/",domain:".yohobuy.com",expires:7}),"潮童"===t.find(".name-cn a").text()&&window.setCookie("_Channel","kids",{path:"/",domain:".yohobuy.com",expires:7})}function x(){H(".first-nav-item").click(function(){var e=window.cookie("_Gender");"undefined"!=typeof e&&""!==e&&window.setCookie("_Gender",1,{path:"/",domain:".yohobuy.com",expires:7}),"男生"===H(this).find(".name-cn a").text()&&(window.setCookie("_Gender","1,3",{path:"/",domain:".yohobuy.com",expires:7}),window.setCookie("_Channel","boys",{path:"/",domain:".yohobuy.com",expires:7})),"女生"===H(this).find(".name-cn a").text()&&(window.setCookie("_Gender","2,3",{path:"/",domain:".yohobuy.com",expires:7}),window.setCookie("_Channel","girls",{path:"/",domain:".yohobuy.com",expires:7})),"创意生活"===H(this).find(".name-cn a").text()&&window.setCookie("_Channel","lifestyle",{path:"/",domain:".yohobuy.com",expires:7}),"潮童"===H(this).find(".name-cn a").text()&&window.setCookie("_Channel","kids",{path:"/",domain:".yohobuy.com",expires:7})})}function k(){var e,t,n,a=document.cookie,i=a.split(";");for(e=0;e<i.length;e++)t=i[e].split("="),"undefined"!=typeof t[0]&&(n=t[0].replace(/\s/g,""),de[n]=t[1])}function j(){H("#miniCartBox").miniCart({cartNum:".ic-infomation"})}function S(){var e,t,n;H.getData("//www.yohobuy.com/common/shoppingCart","",function(a){""===V&&(V=G.compile(H("#mini-cart-tpl").html())),H("#miniCartBox").children(".gobuy-wrapper").html(V({carData:a})),0===parseInt(H(".ic-infomation").html())&&H("#miniCartBox .gobuy-wrapper").html('<div class="gobuy-empty"><h3 class="information">您的购物车暂无商品</h3></div>'),H("#miniCartBox .goods-list li").length<1&&(e=window.cookie("_g"),t=Y.parse(e),null!==t&&(n='{"_k":"'+t._k+'","_nac":0,"_ac":0,"_r":0}',window.setCookie("_g",n,{path:"/",domain:".yohobuy.com"})),H(".ic-infomation").html(0),H("#miniCartBox .gobuy-wrapper").html('<div class="gobuy-empty"><h3 class="information">您的购物车暂无商品</h3></div>'))})}function T(e,t,n){H.getData("//www.yohobuy.com/common/delCartGoods",{product_sku:e,promotion_id:t,product_num:n},function(e){var t=window.cookie("_g"),n=Y.parse(t),a='{"_k":"'+n._k+'","_nac":'+e.total_goods_num+',"_ac":0,"_r":0}';window.setCookie("_g",a,{path:"/",domain:".yohobuy.com"}),S(),j()})}function q(){var e,t,n,a;H(document).on("click",".goodscardelete",function(i){e=H(this),t=e.attr("product_sku"),n=e.attr("promotion_id"),a=e.prev("h3").find(".num").html(),T(t,n,a)})}function I(){var e;H(document).on("click",".mycart_i_down",function(t){e=H(this),e.toggleClass("mycart_i_up"),H("#mycartmore").slideToggle(300)})}function E(){var e,t="//www.yohobuy.com/shopping/cart";H("#miniCartBox").on("click",function(n){e=H(n.target),e.hasClass("gobuy")&&(window.location.href=t)})}function A(e){1===e?(H("#miniCartBox").addClass("list-cur"),H(".gobuy-wrapper").show(),0!==parseInt(H(".ic-infomation").html())?(H("#miniCartBox .gobuy-wrapper").html('<div class="gobuy-loading"><h3 class="information">加载中,请稍后</h3></div>'),S()):H("#miniCartBox .gobuy-wrapper").html('<div class="gobuy-empty"><h3 class="information">您的购物车暂无商品</h3></div>')):(H("#miniCartBox").removeClass("list-cur"),H(".gobuy-wrapper").hide())}function F(){var e;H("#miniCartBox").mouseenter(function(t){e=H(t.target),"miniCartBox"!==e.attr("id")&&"ic-infomation"!==e.attr("class")||A(1)}),H("#miniCartBox").mouseleave(function(e){A(0)})}function U(){var e,t="indexkids",n="indexlifestyle",a="indexboys",i="indexgirls",o="uniquebrand",s=window.location.href,d=window.location.host,l="";-1!==s.indexOf("search")&&(l=re["search"+de._Channel]),-1!==s.indexOf("list")&&(l=re["list"+de._Channel]),-1!==s.indexOf("brands")&&(l=re["brands"+de._Channel]),-1!==s.indexOf("new")&&(l=re["new"+de._Channel]),-1!==s.indexOf("sale")&&(l=re["sale"+de._Channel]),-1!==s.indexOf("home")&&(l=re["home"+de._Channel]),-1!==s.indexOf("kids")&&(l=re[t]),-1===s.indexOf("woman")&&-1===s.indexOf("girls")||(l=re[i]),-1!==s.indexOf("lifestyle")&&(l=re[n]),-1!==s.indexOf("www.yohobuy.com")&&"/"===window.location.pathname&&(l=re[a]),e=d.split(".")[0],"list"!==e&&"search"!==e&&"www"!==e&&"new"!==e&&"item"!==e&&"guang"!==e&&(l=re[o+de._Channel]),r(l)}function D(e){H(".hot-brands").find("ul").stop().animate({opacity:0,"z-index":1},200).eq(e).animate({opacity:1,"z-index":2},200)}function P(){var e,t=0;H(".hot-brands").size()>0&&(e=H(".hot-brands").find("ul").size(),H(".hot-brands").find("ul").eq(0).css({opacity:1,"z-index":2}),H(".brands-control").on("click",".next",function(){t===e-1?t=0:t++,D(t)}),H(".brands-control").on("click",".prev",function(){0===t?t=e-1:t--,D(t)}))}function O(){setInterval(j,2e3)}function L(){var e=H("#goodcartempwarpper"),t="";e&&e.html()&&(t=H("#goodcartempwarpper").html().replace(/\\/g,""),H("#goodcartempwarpper").html(t),Q=G.compile(H("#tmpl-my-login-new").html()))}function $(){var e="//search.yohobuy.com/api/suggest";H("#query_key").search(e)}function N(e){var t=(new Date).getTime(),n='<span>Hi~</span>[<a href="//www.yohobuy.com/signin.html" class="list-a login-out ">请登录</a>] [<a href="//www.yohobuy.com/reg.html" class="list-a login-out" onclick="">免费注册</a>]',a='<span>Hi~<a href="//www.yohobuy.com/home?t='+t+'">{{user_name}}</a></span> {{#if islogin}}[<a href="{{logout}}" class="list-a login-out">退出</a>]{{/if}}{{#unless islogin}}[<a href="//www.yohobuy.com/signin.html" class="list-a login-out">请登录</a>] [<a href="//www.yohobuy.com/reg.html" onclick="" class="list-a login-out">免费注册</a>]{{/unless}}',i=H("#loginBox"),o=window.cookie("_UID"),s=e.data.profile_name,r=0,d=0,l="",c=o.split("::"),u=c[0]||" ",h="//www.yohobuy.com/logout.html",p="1",f=0,m={user_name:s,logout:h,random:Math.random()};if(i.html("").show(),X=G.compile(a),"undefined"==typeof o||null===o)return i.html(n),!1;if("undefined"==typeof c||c.length<4)return i.html(n),!1;for(d;d<u.length;d++)l=u.substr(d,1),r+=/.*[\u4e00-\u9fa5]+.*$/.test(l)?2:1;if(10>=r)s=u;else{for(f=0,d;d<u.length;d++)10>f&&(l=u.substr(d,1),"*"!==l&&(f+=/.*[\u4e00-\u9fa5]+.*$/.test(l)?2:1),s+=l);s.length<u.length&&(s+="...")}h=/http:\/\//.test(c[3])?c[3].replace("www.yohobuy.com","www.yohobuy.com"):"//www.yohobuy.com/logout.html",-1===e.result&&(p="-1"),m.islogin=p,i.html(X(m))}function z(e){var t=e.data,n="";if(1===e.result){if(void 0===typeof t||t.length<1)return!1;"3"===t.vip.curVipInfo.curLevel&&(t.vip3=!0),H("#myYohoBox").mouseenter(function(){return H(this).addClass("acttags"),H("#myYohoBox .myyoho-info").show().html(Q(t)),n=H(".myyoho-photo img").attr("data-url"),1===H._checkUrlState?void H(".myyoho-photo").show().find("img").attr("src",n):void(""!==n&&""===H._checkUrl&&H.ajax({url:n,type:"GET",complete:function(e){200!==e.status&&0!==e.status||(H(".myyoho-photo").show().find("img").attr("src",n),H._checkUrlState=1),H._checkUrl=n}}))}),H("#myYohoBox").mouseleave(function(){H(this).removeClass("acttags"),H("#myYohoBox .myyoho-info").hide()})}}function B(){H.getData("//www.yohobuy.com/common/passport","",function(e){e&&-1!==e.result?(N(e),z(e)):(window.setCookie("_UID","",{path:"/",domain:".yohobuy.com",expires:-1}),se.show())})}function R(){y(),b(),L(),C(),_(),x(),k(),o(),c(),l(),m(),U(),P(),F(),j(),O(),$(),E(),q(),I(),B(),i()}var W,M,H=e("jquery"),G=e("handlebars"),Y=e("index"),Q=null,X=null,V="",Z=/^[\^\!\+\-\(\)\:\[\]\\\{\}\~\*\?\|\&\;\/]{0,}$/g,J="",K="",ee=[],te=null,ne=0,ae=H(".icon-logo"),ie=!0,oe=500,se=H("#loginBox"),re={listboys:"4f78b0f418fc42314d8b6e791cfb7fa8",listgirls:"00c1f025a51b6b597dc37925951ea27d",listkids:"b02df11184727701ade1b6de9737d08c",listlifestyle:"fd35c52dced0c880976ba858346d1fc5",searchboys:"9fb8986ea700cc27a8057361c3924394",searchgirls:"e3e207a1443ca60c8037fe52a5560c18",searchkids:"620fc77f479da8feaeb06f2324e5d0bb",searchlifestyle:"a3c93301c6ffaf3ed0f36a4a451be36d",uniquebrandboys:"2ebb0810c0d1a67e5229149c9c3aba7d",uniquebrandgirls:"99e23385f4ba4b65f406b7e2968ac821",uniquebrandkids:"a74ebc9b17840c91b9ea46568111fe6b",uniquebrandlifestyle:"0e8c81ead53f56302baa4d0ad967f527",brandsboys:"77b352db07129c76a9d532acad149f9f",brandsgirls:"bf047f16e52ebc38be5ce9c7623831e6",brandskids:"e3ae1ce9b5e13c6d271ef3eccb831652",brandslifestyle:"e4ac8029c30f65d7f1af030980d140fe",newboys:"869d3c5f3b450fb52101d00a61ce87cb",newgirls:"d953b6dfdac02483d1dcce8d96055954",newkids:"0874cb6d75df8e0e78f2d475e53ecc08",newlifestyle:"43e8fc8e178115c262bbce2bd0012db7",saleboys:"c846e3165c994769b4201d8c32f3ae9b",salegirls:"52b1d389edcbc62d65de71b80c4d6ad0",salekids:"ad8b1703c761ba00973868ab5199cc27",salelifestyle:"7acc64905c70ac91846f43fb2cec4bbd",homeboys:"b0856a771ef1b59ab1234c74688fa42d",homegirls:"2bd61fa12e4933211518f70fe5ce3c48",homekids:"895c59e8c64b40399c9533509507320c",homelifestyle:"2e037d4e25d2767352ca3e0a4627f7bd",indexboys:"0c911d3000f52e8ca7cffb74f5864c29",indexgirls:"b645b8980c423ab30485e0a9d08c2ef7",indexkids:"17f6d5d5d454d2c507bc5fcbc90f7756",indexlifestyle:"735cd393e841762af8793c346abbbc36"},de={},le="//new.yohobuy.com/common/getbanner?content_code=";H("#api-domain").remove(),window.submitSearch=function(){var e,t,n=H("#query_key").val(),i=H("#defaultsearch").val(),o="Search",s="Head Search",r="Search";if(e=H.trim(J.toLowerCase()),t=H.trim(n.toLowerCase()),a(o,s,r),""!==K&&""!==J&&e===t)location.href=K.replace("'","");else{if(!Z.test(n)||""===n)return""===n&&H("#query_key").val(i),H("#searchForm").submit(),!1;location.href="//search.yohobuy.com/error?query="+n+"&result=error"}},G.registerHelper("timestamp",function(){return(new Date).getTime()}),G.registerHelper("headerimg",function(e){return""===e?"//img10.static.yhbimg.com/headimg/2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100":e}),G.registerHelper("equallevelthree",function(e,t){return"3"===e?t.fn(this):t.inverse(this)}),G.registerHelper("notzero",function(e,t){return"0"!==e?t.fn(this):t.inverse(this)}),window.JsonPCallBack=s,window.newArr=[],window.wrapperindex=0,window.gindex=0,window.targetArr1=[],window.targetArr2=[],window.targetArr3=[],window.oh1=0,window.oh2=0,window.oh3=0,window.valueIndex=0,window.nowIndex=0,window.inner1="",window.inner2="",window.inner3="",window.finalresult="",R()}),define("js/simple-header",["jquery"],function(e,t,n){function a(e){var t,n,a,i=0,o=0;for(a=0;a<e.length;a++)n=e.substr(a,1),o+=/.*[\u4e00-\u9fa5]+.*$/.test(n)?2:1;if(10>=o)t=e;else{for(i=0,t="",a=0;a<e.length;a++)10>i&&(n=e.substr(a,1),"*"!==n&&(i+=/.*[\u4e00-\u9fa5]+.*$/.test(n)?2:1),t+=n);t.length<e.length&&(t+="...")}return t}function i(e){var t,n,i=e.data;-1!==e.result?(n=a(i.profile_name),t='<span>Hi~</span><a href="//www.yohobuy.com/home?t='+i.random+'">'+n+'</a> <a href="//www.yohobuy.com/logout.html">[退出]</a>'):t='<span>Hi~</span> <a href="//www.yohobuy.com/signin.html">[请登录]</a> <a href="//www.yohobuy.com/reg.html">[免费注册]</a>',s(".header-tool li").eq(0).html(t)}function o(){var e={return_type:"jsonp"};s.getJSON("//www.yohobuy.com/common/passport/?callback=?",e,function(e){e&&e.data&&i(e.data)})}var s=e("jquery"),r=s("#api-domain");r.val();r.remove(),s(".simple-header").size()>0&&s(".tool-options").on("mouseenter",function(){s(this).find(".tool-select").fadeIn()}).on("mouseleave",function(){s(this).find(".tool-select").fadeOut()}),o()}),define("js/product/entry",["jquery","handlebars","source-map","lazyload","index","jquery-pjax"],function(e,t,n){e("js/product/list"),e("js/product/brand"),e("js/product/hotrank"),e("js/product/item"),e("js/product/shop-index")}),define("js/product/list",["jquery","handlebars","source-map","lazyload"],function(e,t,n){var a=e("jquery");e("js/product/filter"),e("js/product/sort-pager"),e("js/product/latest-walk"),e("js/product/product"),function(){var e,t=a(".banner-img");0!==t.length&&(e=new Image,e.onload=function(){e.height&&t.height(e.height),e=null},e.src=t.css("background-image").replace(/"/g,"").slice(4,-1))}()}),define("js/product/filter",["jquery","handlebars","source-map"],function(e,t,n){function a(e,t){e.each(function(){g(this).closest(".attr").hasClass("checked")||g(this).removeClass("checked").html(y.unchecked)}),t.find(".checkbox").addClass("checked").html(y.checked)}function i(){w.addClass("hide"),_.removeClass("hide")}function o(){_.addClass("hide"),w.removeClass("hide"),S.children("span").removeClass("hover")}function s(e,t){var n,a=window.queryString();a[e]=t,delete a.page,n="?"+decodeURIComponent(g.param(a)),window.location.href=n}function r(e){E.children(".senior-sub:eq("+m+")").addClass("hide"),A.children(".attr:eq("+m+")").removeClass("hover"),m=-1}var d,l,c,u,h,p,f,m,g=e("jquery"),v=e("handlebars"),y={unchecked:"",checked:""},b={up:"",down:""},w=g(".brand .default"),C=g("#brand-search-input"),_=g(".brand .brand-panel"),x=_.find(".attr"),k=g("#brand-more"),j=g("#brand-multi"),S=g(".brands-index"),T=g(".ud-price-range"),q=/^\d+$/,I=g(".sort-sub-wrap"),E=g(".senior-sub-wrap"),A=g(".senior-attr-wrap"),F='{{# size}}<a class="attr {{#if checked}}checked{{/if}}" href="{{href}}">{{name}}</a>{{/ size}}',U={},D=g(".filter-box .size");F=v.compile(F),g(".filter-box").on("selectstart",".attr, .brands-index span",function(){return!1}),g(".sort-pre").on("click","li",function(){var e=g(this),t=e.index(),n=e.data("id");return e.hasClass("active")?(e.removeClass("active"),I.children(":eq("+t+")").addClass("hide"),void D.addClass("hide")):(e.siblings(".active").removeClass("active"),e.addClass("active"),I.children(":not(.hide)").addClass("hide"),I.children(":eq("+t+")").removeClass("hide"),void(D.data("load")||(U[n]?(D.find(".attr-content").html(U[n]),D.removeClass("hide")):g.ajax({url:"/product/search/sortSize",data:{msort:n}}).then(function(e){"array"===g.type(e)&&e.length?(U[n]=F({size:e}),D.find(".attr-content").html(U[n]),D.removeClass("hide")):D.addClass("hide")}))))}),k.length>0&&(d=k.children("em"),l=k.children(".iconfont")),j.click(function(){"none"===_.css("display")&&k.trigger("click"),i(),_.removeClass("hide").addClass("multi"),g(this).addClass("hide"),k.addClass("hide")}),k.click(function(){var e=g(this);e.hasClass("more")?(o(),d.text("更多"),l.html(b.down),C.val("").trigger("keyup")):(i(),d.text("收起"),l.html(b.up)),g(this).toggleClass("more")}),S.on("mouseenter","span",function(){var e=g(this),t=e.data("index");e.hasClass("hover")||setTimeout(function(){e.siblings("span.hover").removeClass("hover"),e.addClass("hover"),0===e.index()?x.removeClass("hide"):x.addClass("hide").filter("[data-index="+t+"]").removeClass("hide")},120)}),C.keyup(function(){var e=g(this).val().toLowerCase();""===e?x.removeClass("hide"):x.addClass("hide").filter('[data-key*="'+e+'"]').removeClass("hide")}),g("#brand-multi-ok").click(function(){var e=[];g(this).hasClass("dis")||(_.find("span.checked").each(function(){e.push(g(this).data("id"))}),s("brand",e.join(",")))}),g(".multi-select-cancel").click(function(){var e=g(this).closest(".multi");e.hasClass("brand-panel")&&(j.removeClass("hide"),k.trigger("click"),k.removeClass("hide"),C.val("").trigger("keyup"),o()),e.addClass("hide").removeClass("multi"),a(e.find(".checkbox.checked"),e.find(".attr.checked")),g(this).siblings(".multi-select-ok").addClass("dis")}),g(".check-container").on("click",".attr",function(){var e=g(this),t=e.find(".checkbox"),n=e.closest(".brand-panel, .senior-sub").find(".multi-select-ok");t.toggleClass("checked"),t.hasClass("checked")?t.html(y.checked):t.html(y.unchecked),t.hasClass("checked")||e.siblings(".attr").find(".checked").length>0?n.removeClass("dis"):n.addClass("dis")}),g(".brand, .senior").on("click",".attr > a",function(e){g(this).closest(".multi").length>0&&e.preventDefault()}),g(".filter-box").on("click","li.checked, a.checked",function(e){e.preventDefault()}),T.length>0&&(c=T.find(".limit"),u=c.filter(".min"),h=c.filter(".max"),p=T.find(".price-sure"),c.keyup(function(){var e,t,n,a=g.trim(g(this).val()),i=q.test(a);i||(e=parseInt(a,10),g(this).val(isNaN(e)?"":e)),t=g.trim(u.val()),n=g.trim(h.val()),""!==t||""!==n?p.removeClass("hide"):p.addClass("hide")}),p.click(function(){var e,t=g.trim(u.val()),n=g.trim(h.val());""!==t&&""!==n&&+t>+n&&(e=n,n=t,t=e),s("price",t+","+n)})),A.on("mouseenter",".attr",function(){var e=g(this),t=e.index();e.hasClass("no-sub")||(e.addClass("hover").siblings().removeClass("hover"), +E.children(".senior-sub:eq("+t+")").removeClass("hide").siblings().addClass("hide"))}).on("mouseleave",".attr",function(){var e=g(this),t=e.index();e.hasClass("no-sub")||(m=t,f=setTimeout(function(){r()},100))}),g(".senior-sub").on("click",".multi-select",function(){g(this).closest(".senior-sub").addClass("multi")}).on("click",".multi-select-ok",function(){var e=g(this),t=e.closest(".senior-sub"),n=[];e.hasClass("dis")||(t.find("span.checked").each(function(){n.push(g(this).data("id"))}),s(t.data("attr"),n.join(",")))}).on("mouseenter",function(){clearTimeout(f)}).on("mouseleave",function(){r()})}),define("js/product/sort-pager",["jquery"],function(e,t,n){var a=e("jquery"),i=a("#count-per-page"),o=i.next("ul"),s=200;a(document).click(function(e){a(e.target).closest(".page-count").length>0||o&&o.slideUp(s)}),i.click(function(){"none"===o.css("display")?o.slideDown(s):o.slideUp(s)})}),define("js/product/latest-walk",["jquery","handlebars","source-map","lazyload"],function(e,t,n){var a=e("jquery"),i=e("handlebars"),o=e("lazyload"),s=a("#latest-walk-count");!function(){var e;0!==s.length&&(e=i.compile(a("#latest-walk-tpl").html()),a.ajax({url:"//www.yohobuy.com/common/recentReview",dataType:"jsonp",data:{limit:s.val()},success:function(t){var n,i,s,r=[];if(200===t.code){if(n=t.data,0===n.length)return void a(".latest-walk").addClass("hide");for(i=0;i<n.length;i++)s=n[i],r.push({href:s.url,img:s.pic_url,name:s.product_name,salePrice:s.price,marketPrice:s.market_price});r.length>0&&(a("#latest-walk-goods").html(e({latestWalk:r})),o(a("#latest-walk-goods .lazy")))}}}))}()}),define("js/product/product",["jquery","lazyload","handlebars","source-map"],function(e,t,n){var a,i=e("jquery"),o=e("lazyload"),s=e("handlebars"),r=e("js/common/product-event"),d=i(".goods-container"),l=d.find(".good-info"),c=d.find(".good-item-wrapper"),u=d.find(".good-info-main"),h=d.find(".good-select-color"),p=i(".product-list-nav");o(i("img.lazy")),t.init=function(e){function t(e,t){var n,a,i,o="",s=e.length,r=4,d=Math.ceil(s/r),l=0;for(n=0;d>n;n++)for(o+="<ul>",a=0;r>a&&(i=n*r+a,i!==s);a++)o+='<li><a target="_blank" href="'+e[n*r+a].url+t+'"><img src="'+e[n*r+a].src+'" data-cover="'+e[n*r+a].coverImg+'" /></a></li>',a===r-1&&(o+="</ul>",l++);return d>l&&(o+="</ul>"),{colorListStr:o,ulNum:d}}function n(){u.html(""),h.html(""),c.css({display:"none"})}var o=i(".shop-entry"),s=i(".shop-entry-area"),p=o.length;p>1?(3===p?o.css({width:"32%"}):p%2&&i(".shop-entry:gt("+(p-4)+")").css({width:"32%"}),i(".shop-entry:nth-child(2n+1)").css({marginLeft:0}),o.last().css({marginLeft:"2%"}),p%2===0?o.find(".name").css({width:"50%"}):p%3===0&&o.find(".name").css({width:"26%"})):o.css({width:"100%"}),s.slideDown(),a=null,l.unbind(),a=r(l,e),a.addHandler("MouseEnter",function(e){var a,o,s,r,l,p,f,m,g=10,v=35,y="",b=e.target.attr("data-from")||"";i.ajax({type:"POST",url:"/product/list/getProductPic",dataType:"jsonp",jsonp:"callback",data:{skn:e.target.attr("data-skn"),skc:e.target.attr("data-skc")}}).then(function(w){var C=w.data,_=t(C.pics,b);n(),y=_.colorListStr,a=_.ulNum,u.append(e.targetDuplicate),h.append(i(y)),p=c.css("paddingLeft"),f=c.css("paddingTop"),m=d.css("paddingTop"),o=10+65*a+e.targetWidth,r=(e.targetX-1)*(e.targetWidth+g)-(parseInt(p)+1),l=(e.targetY-1)*(e.targetHeight+v)+parseInt(m)-(parseInt(f)+1),s=e.offsetR-(65*a+25),0>=s&&(r=r+s-25),c.css({width:o,left:r,top:l,display:"inline-block"}),C.pics[0]&&C.pics[0].src&&u.find(".good-thumb img").attr("src",C.pics[0].src)})}),a.addHandler("MouseLeave",function(){n()}),c.mouseleave(function(){n()})},i(document).on("hover",".good-select-color li",function(){var e=i(this).find("img").attr("data-cover"),t=i(this).closest(".good-item-wrapper").find(".good-detail-img").find("img");t.attr("src",e)}),p.find("h3").click(function(e){var t=i(this).closest(".product-list-nav");t.hasClass("active")?t.find(".sort-child-list").stop(!0,!0).slideUp():t.find(".sort-child-list").stop(!0,!0).slideDown(),t.toggleClass("active")}),function(){var e,t=i("#brand-card"),n=i("#brand-favor");t.length&&i.ajax({type:"POST",url:"/product/index/getNodeContent",data:{node:t.data("node")}}).then(function(e){t.html(e)}),n.length&&(e=i("#pic-link-tpl").html(),i.ajax({type:"POST",url:"/product/index/getAdnav",data:{brandId:n.data("id")}}).then(function(t){t&&i("#brand-ad").html(s.compile(e)({picLink:t}))}))}()}),define("js/common/product-event",["jquery"],function(e,t,n){function a(){this.handlers={}}var i=e("jquery");a.prototype={constructor:a,addHandler:function(e,t){"undefined"==typeof this.handlers[e]&&(this.handlers[e]=[]),this.handlers[e].push(t)},fire:function(e){var t,n;if(e.target||(e.target=this),this.handlers[e.type]instanceof Array)for(t=this.handlers[e.type],n=0;n<t.length;n++)t[n](e)},removeHandler:function(e,t){var n,a;if(this.handlers[e]instanceof Array){for(n=this.handlers[e],a=0;a<n.length&&n[a]!==t;a++);n.splice(a,1)}}},n.exports=function(e,t){function n(e){var n,a=0,u=0,h=t,p=0,f="",m=0,g=0;switch(e.type){case"mouseenter":n=i(this),o=setTimeout(function(){s=!0,f=n.clone(),p=n.index()+1,a=p%h===0?h:p%h,u=Math.ceil(p/h),m=n.offset().left,g=c-(m+d),r.fire({type:"MouseEnter",target:n,targetWidth:d,targetHeight:l,targetX:a,targetY:u,rowWidth:h,activeIndex:p,targetDuplicate:f,offsetL:m,offsetR:g})},150);break;case"mouseleave":s||(o&&clearTimeout(o),r.fire({type:"MouseLeave"})),s=!1}}var o,s,r=new a,d=e.eq(0).width(),l=e.eq(0).height(),c=i(window).width();return e.bind({mouseenter:n,mouseleave:n}),r}}),define("js/product/brand",["jquery"],function(e,t,n){var a=e("jquery"),i=a("#brand-favor"),o=i.data("id");i.on("click",function(){a.ajax({type:"post",url:"/product/index/favoriteBrand",data:{brandId:o}}).then(function(e){200===e.code?i.find("i").toggleClass("coled"):403===e.code&&(location.href="//www.yohobuy.com/signin.html?refer="+encodeURIComponent(location.href))})}),a.ajax({type:"POST",url:"/product/index/isFavoriteBrand",data:{brandId:o}}).then(function(e){200===e.code?i.find("i").addClass("coled"):404===e.code&&i.find("i").removeClass("coled")})}),define("js/product/hotrank",["jquery","handlebars","source-map","lazyload"],function(e,t,n){var a=e("jquery"),i=e("handlebars"),o=e("lazyload");e("js/common/slider"),e("js/common/logo-brand"),o(a("img.lazy")),a(".slide-container").slider(),a(".logo-brand").logoBrand({showNum:10,url:a(".logo-brand").data("url")}),function(e){function t(t,n){var d={};d=n?{sid:t,page:n}:{sid:t},e.ajax({type:"GET",dataType:"json",url:"/product/index/getdata",data:d,success:function(t){var d;200===t.code&&(d={list:t.data},s=i.compile(a),n?(e(".hot-week-list").append(s(d)),r.css({position:"fixed",marginTop:-r.height()/2,top:"50%"})):e(".hot-week-list").html(s(d)),o(e("img.lazy")),c=!1)}})}var n,a,s,r=e(".hot-week").find(".floatlayer"),d=(e(".hot-cate").find("li").eq(0).data("sid"),1),l=0,c=!1;a='{{# list}}<div class="good-info"><div class="item-img"><a class="good-thumb" target="_blank" href="{{url}}"><img class="lazy" data-original="{{thumb}}"></a></div><div class="good-detail-text"><a target="_blank" href="{{url}}">{{name}}</a><p class="price">{{# marketPrice}}<span class="market-price">¥{{.}}</span>{{/ marketPrice}} <span class="sale-price{{#unless marketPrice}}prime-cost{{/unless}}">¥{{salePrice}}</span></p></div></div>{{/ list}}',e(window).on("scroll",function(){var a,i=n+e(".hot-week").outerHeight();n=e(".hot-week").offset().top,e(this).scrollTop()>=n-e(window).height()/2?r.offset().top+r.outerHeight()>=i?r.css({position:"absolute",marginTop:0,top:e(".hot-week").outerHeight()-r.outerHeight()}):r.css({marginTop:-r.height()/2}).stop().animate({opacity:1},200,function(){r.show()}):r.stop().animate({opacity:0},200,function(){r.hide()}),r.offset().top>=e(this).scrollTop()+(e(window).height()-r.outerHeight())/2&&r.css({position:"fixed",marginTop:-r.height()/2,top:"50%"}),e(this).scrollTop()>=n+e(".hot-week").height()-e(window).height()&&(c||(a=e(".hot-cate").find("li.current").data("sid"),d++,c=!0,t(a,d)))}),e(".hot-cate").find("li").each(function(t){var n=e(".hot-cate").width();n>=l&&(l+=e(this).width(),l>=n&&e(".floatlayer").find("li").eq(t).hide().nextAll().hide())}),e(".hot-cate").on("click","li",function(){var a=e(this).index(),i=e(this).data("sid");e(this).hasClass("current")||(e(this).addClass("current").siblings().removeClass("current"),e(".floatlayer").find("li").removeClass("current").eq(a).addClass("current"),e("body,html").stop().animate({scrollTop:n-110},500),t(i),d=1)}),e(".floatlayer").on("click","li",function(){var t=e(this).index();e(this).hasClass("current")||(e(".hot-cate").find("li").eq(t).trigger("click"),e(this).addClass("current").siblings().removeClass("current"),e(".hot-cate").find("li").removeClass("current").eq(t).addClass("current"))}),e(".hot-cate").find("li").eq(0).addClass("current"),e(".floatlayer").find("li").eq(0).addClass("current")}(a)}),define("js/common/slider",["jquery","lazyload"],function(e,t,n){var a=e("jquery"),i=e("lazyload");!function(e){var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.slider.defaults,n),this.bigItem=this.$element.find(".slide-wrapper").find("li"),this.smallItem=null,this.len=this.bigItem.size(),this.index=0,this.timer=null,this.init()};t.prototype={init:function(){if(this.$element){if(this.len<=1)return void i(this.$element.find("img.lazy"));this.options.pagination?this.smallItem=e(this.options.pagination).find("li"):this._createPage(),this.options.orient&&this._createOrient(),this._slideShow(),this._bindEvent(),this._autoplay()}},_createOrient:function(){var e='<div class="slide-switch"><a class="prev" href="javascript:;"><span class="iconfont"></span></a><a class="next" href="javascript:;"><span class="iconfont"></span></a></div>';this.$element.find(".slide-switch").length>0||this.$element.append(e)},_createPage:function(){var t='<div class="slide-pagination"><div class="slide-pagination-inner"><div class="slide-shade"></div><div class="slide-pagination-last">',n=0;if(!(this.len<=1)){for(n=0;n<this.len;n++)t+="<span></span>";t+="</div></div></div>",this.$element.append(e(t)),this.smallItem=this.$element.find(".slide-pagination-inner span")}},_bindEvent:function(){var t=this;this.$element.find(".slide-switch").on("click",".next",function(){t._nextSlide(),clearInterval(t.timer),t.timer=setInterval(function(){t._nextSlide()},t.options.time)}).on("click",".prev",function(){t._prevSlide(),clearInterval(t.timer),t.timer=setInterval(function(){t._nextSlide()},t.options.time)}),this.smallItem.on("mouseenter",function(){t.index=e(this).index(),clearInterval(t.timer),t._slideShow()}).on("mouseleave",function(){t._autoplay()}),this.$element.on("mouseenter",function(){e(this).find(".slide-switch").addClass("show")}).on("mouseleave",function(){e(this).find(".slide-switch").removeClass("show")})},_nextSlide:function(){this.index===this.len-1?this.index=0:this.index++,this._slideShow()},_prevSlide:function(){0===this.index?this.index=this.len-1:this.index--,this._slideShow()},_slideShow:function(){var t=this.bigItem.eq(this.index).find("img.lazy");t.attr("src")!==t.data("original")&&(i(t,{event:"sporty"}),t.trigger("sporty")),this.smallItem.eq(this.index).addClass("focus").siblings().removeClass("focus"),this.bigItem.eq(this.index).show().stop().animate({opacity:1},function(){e(this).find(".slide-tips > p").removeClass("hide")}).siblings().stop().animate({opacity:0},function(){e(this).hide().find(".slide-tips > p").addClass("hide")})},_autoplay:function(){var e=this;clearInterval(this.timer),this.timer=setInterval(function(){e._nextSlide()},this.options.time)}},e.fn.slider=function(n){return this.each(function(){var a=e(this),i=a.data("Slider"),o="object"==typeof n&&n;i||a.data("Slider",i=new t(this,o)),"string"==typeof n&&i[n]()})},e.fn.slider.Constructor=t,e.fn.slider.defaults={time:5e3,orient:!0,pagination:null}}(a)}),define("js/common/logo-brand",["jquery","handlebars","source-map","lazyload"],function(e,t,n){var a=e("jquery"),i=e("handlebars"),o=e("lazyload");!function(e){var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.logoBrand.defaults,n),this.init()};t.prototype={init:function(){this.$element.addClass("logos-"+this.options.showNum),this._sendRequest()},_createHelper:function(){var e=this.options.showNum;i.registerHelper("brandList",function(t,n){var a="<ul>",i=0,o=null,s=0;if(t.length%e!==0)for(s=e-t.length%e,i=0;s>i;i++)t.push({href:"javascript:;",img:""});for(i=0;i<t.length;i++)o=n.fn(t[i]),a=i%e===5||5===i?a+'<li class="logo-brand-switch" data-page="'+Math.floor(i/e)+'"><a class="prev iconfont" href="javascript:;"></a><a class="next iconfont" href="javascript:;"></a></li><li data-page="'+Math.floor(i/e)+'">'+o+"</li>":0!==i&&i%e===0?a+'<li class="brand-more" data-page="'+Math.floor(i/(e+1))+'"><a href="javascript:;" target="_blank">MORE ></a></li><li data-page="'+Math.floor(i/e)+'">'+o+"</li>":a+'<li data-page="'+Math.floor(i/e)+'">'+o+"</li>";return a+'<li class="brand-more" data-page="'+Math.floor(i/(e+1))+'"><a href="javascript:;" target="_blank">MORE ></a></li></ul>'})},_sendRequest:function(){var t=this;e.ajax({type:"GET",url:t.options.url,dataType:"json",success:function(e){var n,a;e&&0!==e.length&&(t._createHelper(),a='{{#brandList logoBrand}}<a href="{{href}}" target="_blank"><img class="lazy" data-original="{{img}}" alt=""></a>{{/brandList}}',n=i.compile(a),t.$element.html(n(e)),t.$element.find(".brand-more a").attr("href",e.moreBrand),o(t.$element.find("img.lazy")),t._bindEvent())}})},_brandShow:function(t,n){var a=this;o(e("li[data-page="+n+"]").find("img.lazy").trigger("appear")),a.$element.find("li[data-page="+t+"]").find("img").fadeOut("normal",function(){a.$element.find("li").hide(),a.$element.find("li[data-page="+n+"]").show().find("img").fadeIn()})},_bindEvent:function(){var t=this;t.$element.on("click",".next",function(){var n=e(this).parent().data("page"),a=0,i=Math.ceil(t.$element.find("li").size()/(t.options.showNum+2))-1;a=n===i?0:n+1,t._brandShow(n,a)}),t.$element.on("click",".prev",function(){var n=e(this).parent().data("page"),a=0,i=Math.ceil(t.$element.find("li").size()/(t.options.showNum+2))-1;a=0===n?i:n-1,t._brandShow(n,a)})}},e.fn.logoBrand=function(n){return this.each(function(){var a=e(this),i=a.data("LogoBrand"),o="object"==typeof n&&n;i||a.data("LogoBrand",i=new t(this,o)),"string"==typeof n&&i[n]()})},e.fn.logoBrand.Constructor=t,e.fn.logoBrand.defaults={showNum:16,url:"/boys/getBrand"}}(a)}),define("js/product/item",["jquery","lazyload","handlebars","source-map","index"],function(e,t,n){function a(e){h.attr("src",e)}function i(){return+y.text()}function o(){y.text("1"),1===I||0===I?(b.addClass("dis"),w.addClass("dis")):(b.removeClass("dis"),w.addClass("dis"))}function s(e){0!==k.length&&(0===I||e&&0===~~e.data("total")?(k.addClass("hide"),_.removeClass("hide")):(k.removeClass("hide"),_.addClass("hide")))}function r(){m.not(".hide").children(".size-warn").removeClass("hide")}var d=e("jquery"),l=e("lazyload"),c=e("handlebars"),u=e("index"),h=d("#img-show"),p=d("#thumbs > .thumb-wrap"),f=d("#sizes"),m=f.children(".size"),g=f.find(".size-warn"),v=f.children(".color-size-tip"),y=d("#num"),b=d("#plus-num"),w=d("#minus-num"),C=d("#add-to-cart"),_=d("#sold-out"),x=d(".lc-container"),k=d(".item-buy"),j=d("#desc-color"),S={},T=d(".main"),q=T.data("id"),I=-1,E=200,A={def:"收藏商品",coled:"已收藏",hover:"取消收藏"},F=e("js/common/dialog").Alert;e("js/product/latest-walk"),e("js/common/share"),function(){var e,t=d("#size-title-json"),n=t.html();""!==n&&(e=u.parse(n),t.remove(),m.children("li").each(function(){var t=d(this),n=t.data("name");t.data("title",e[n])}))}(),S[d(".colors .focus").index()]=!0,d("#brand-favour").click(function(){var e=d(this);d.ajax({type:"POST",url:"/product/index/favoriteBrand",data:{brandId:e.data("id")}}).then(function(t){200===t.code?e.toggleClass("coled"):403===t.code&&(location.href=t.data.url)})}),d(".colors").on("click","li",function(){var e,t=d(this),n=t.index();v.addClass("hide"),g.addClass("hide"),I=-1,t.hasClass("focus")?m.eq(n).children("li").removeClass("focus"):(t.siblings(".focus").removeClass("focus"),t.addClass("focus"),p.not(".hide").addClass("hide"),e=p.eq(n).removeClass("hide").find("img"),"undefined"==typeof S[n]&&(l(e,{event:"sporty"}),e.trigger("sporty"),S[n]=!0),a(e.first().data("shower")),j.text(t.data("color")),m.not(".hide").addClass("hide").children("li").removeClass("focus"),m.eq(n).removeClass("hide")),o(),s(t)}),d("#thumbs").on("mouseenter",".thumb",function(){a(d(this).data("shower"))}),f.on("click","li",function(){var e=d(this);e.hasClass("focus")||(I=+e.data("num"),e.siblings(".focus").removeClass("focus"),e.addClass("focus"),v.html(e.data("title")).removeClass("hide"),g.addClass("hide"),s(),o())}).on("click",".size-ruler",function(){d("body,html").animate({scrollTop:d(".size-info").offset().top},300)}),b.click(function(){var e=i();if(!d(this).hasClass("dis"))return-1===I?void r():void(0!==I&&(e===I-1&&d(this).addClass("dis"),1===e&&w.removeClass("dis"),y.text(e+1>I?I:e+1)))}).on("selectstart",function(){return!1}),w.click(function(){var e=i();d(this).hasClass("dis")||(2===e&&d(this).addClass("dis"),e===I&&b.removeClass("dis"),y.text(0>e-1?0:e-1))}).on("selectstart",function(){return!1}),d(".get-lc:not(.dis)").hover(function(){x.removeClass("hide")},function(){x.addClass("hide")}),C.click(function(){return-1===I?void r():void d.ajax({type:"POST",url:"/cart/index/add",data:{productSku:d(".size:not(.hide) li.focus").data("sku"),buyNumber:i()}}).then(function(e){var t=e.code;200===t&&(d("#type-chose").slideUp(E),d("#balance").slideDown(E),d("#cart-num").text(e.data.goods_count))})}),d("#collect-product").click(function(){var e,t=d(this);t.hasClass("coled")&&(e=!0),d.ajax({type:"POST",url:"/product/item/togglecollect",data:{productId:q,type:e?"cancel":"add"}}).then(function(n){var a=n.code;200===a?(t.toggleClass("coled"),e?t.find("em").text(A.def):t.find("em").text(A.coled)):403===a&&(location.href=n.data.url)})}).hover(function(){var e=d(this);e.hasClass("coled")&&e.find("em").text(A.hover)},function(){var e=d(this);e.hasClass("coled")&&e.find("em").text(A.coled)}),d("#keep-shopping").click(function(){d("#type-chose").slideDown(E),d("#balance").slideUp(E)}),d("#buy-now").click(function(){var e,t,n;if(-1===I)return void r();if(!d(this).hasClass("dis")){if(t=d(this).data("base"),!t)return n=new F("打开APP可抢购该商品哦~~"),void n.show();e=m.find(".focus").data("sku"),e&&t&&(location.href=t+"?product_sku="+e)}}),d(".buy-btn").mouseover(function(){d(this).hasClass("dis")||d(this).addClass("hover")}).mouseleave(function(){d(this).removeClass("hover")}),d(".description-material").on("click",".title",function(){var e=d(this),t=e.index(),n=d(".description-content"),a=d(".material-content");e.hasClass("cur")||(e.addClass("cur"),e.siblings(".cur").removeClass("cur"),0===t?(n.slideDown(E),a.slideUp(E)):(n.slideUp(E),a.slideDown(E)))}),d(".after-service-switch").click(function(){var e=d(this),t=e.next(".after-service-content"),n={def:"",spread:""};"none"===t.css("display")?(t.slideDown(E),e.find(".triangle").html(n.spread)):(t.slideUp(E),e.find(".triangle").html(n.def))}),d.ajax({type:"GET",url:"/product/item/hotarea",data:{productId:q}}).then(function(e){d("#details-html").prepend(e),d(".hot-point-wrap > img").load(function(){d(this).parent(".hot-point-wrap").width(d(this).width())}),d(".hot-point").hover(function(){d(this).addClass("hover")},function(){d(this).removeClass("hover")})}),l(d("#details-html img")),function(){var e,t=!0;for(e=0;e<m.length;e++)if(1!==m.eq(e).find("li").length){t=!1;break}t&&m.eq(d(".colors .focus").index()).find("li").click()}(),function(){function e(){n||(n=!0,d.ajax({type:"GET",url:"/product/item/comments",data:{productId:q,page:i}}).then(function(e){var t;if(200===e.code){if(t=e.data,0===t.length)return void l.next(".more-wrap").addClass("hide");h.text(t[0].total),l.append(s({comments:t})),i++}}).always(function(){n=!1}))}function t(){a||(a=!0,d.ajax({type:"GET",url:"/product/item/consults",data:{productId:q,page:o}}).then(function(e){var t;if(200===e.code){if(t=e.data,0===t.length)return void u.next(".more-wrap").addClass("hide");p.text(t[0].total),u.append(r({consults:t})),o++}}).always(function(){a=!1}))}var n,a,i=1,o=1,s=c.compile(d("#comments-tpl").html()),r=c.compile(d("#consults-tpl").html()),l=d("#comments-ul"),u=d("#consults-ul"),h=d(".comment-num"),p=d(".consult-num");d(".consult-comment").on("click",".title",function(){var e=d(this),t=e.index(),n=d(".comments"),a=d(".consults");e.hasClass("cur")||(e.addClass("cur"),e.siblings(".cur").removeClass("cur"),0===t?(a.slideDown(E),n.slideUp(E)):(a.slideUp(E),n.slideDown(E)))}).on("click",".load-more",function(){var n=d(this);n.hasClass("load-more-comments")?e():t()}),d("#consults-btn").click(function(){d(".new-consult").removeClass("hide"),d(".consult-success").addClass("hide")}),d("#submit-consult").click(function(){var e=d(this),t=e.closest(".new-consult"),n=t.find(".my-consult"),a=d.trim(n.val()),i=t.find(".consult-warn"),o=!0;""===a?(n.addClass("error"),i.removeClass("hide"),o=!1):(n.removeClass("error"),i.addClass("hide")),o!==!1&&d.ajax({type:"POST",url:"/product/item/addconsult",data:{productId:q,content:a}}).then(function(e){var a=e.code;200===a?(t.addClass("hide"),t.siblings(".consult-success").removeClass("hide"),n.val("")):403===a&&(location.href=e.data.url)})}),e(),t()}()}),define("js/common/dialog",["jquery","handlebars","source-map"],function(e,t,n){function a(){return 0===l(".body-mask").length&&l("body").append('<div class="body-mask hide"></div>'),l(".body-mask").css({height:l(document).height(),width:l(document).width()})}function i(e){return l("body").append(p(e)),l(".yoho-dialog")}function o(e){var t=l(".yoho-dialog"),n='<p class="sub-content">'+e+"</p>";t&&t.length>0&&t.find(".content").after(n)}function s(e){function t(e){r.$el.find("#dialog-"+s.btns[e].id).on("click",function(){s.btns[e].cb&&s.btns[e].cb()})}var n,s=l.extend({},u,e),r=this;if(s.inherit)return this;if(s.mask&&(r.$mask=a()),r.$el=i(s),s.subContent&&o(s.subContent),s.subContents)for(n=s.subContents.length-1;n>=0;n--)o(s.subContents[n]);if(r.$el.find(".close").click(function(){r.close(),e.refreshOnClose&&window.location.reload()}),r.$el.find(".btn-close").click(function(){r.close()}),s.btns)for(n=0;n<s.btns.length;n++)t(n)}function r(e){var t=this,n={content:e,className:"alert-dialog",btns:[{id:"alert-sure",btnClass:["alert-sure"],name:"确定",cb:function(){t.close()}}]};s.call(this,n)}function d(e){var t=this,n={content:e.content,className:"confirm-dialog",btns:[{id:"confirm-sure",btnClass:["confirm-sure"],name:"确定",cb:e.cb},{id:"confirm-cancel",btnClass:["confirm-cancel"],name:"取消",cb:function(){t.close()}}]};s.call(this,n)}var l=e("jquery"),c=e("handlebars"),u={mask:!0,closeIcon:!0,refreshOnClose:!1},h='<div class="yoho-dialog {{className}} hide">{{#if closeIcon}}<span class="close"><i class="iconfont"></i></span>{{/if}}<div class="content">{{{content}}}</div><div class="btns">{{# btns}}<span {{#if id}}id="dialog-{{id}}"{{/if}} class="btn{{#each btnClass}} {{.}}{{/each}}">{{name}}</span>{{/ btns}}</div></div>',p=c.compile(h);s.prototype.close=function(){this.$mask&&this.$mask.addClass("hide"),this.$el.remove()},s.prototype.show=function(){this.$mask&&this.$mask.removeClass("hide"),this.$el.removeClass("hide").css({"margin-top":-this.$el.height()/2,"margin-left":-this.$el.width()/2})},t.Dialog=s,r.prototype=new s({inherit:!0}),r.prototype.constructor=r,t.Alert=r,d.prototype=new s({inherit:!0}),d.prototype.constructor=d,t.Confirm=d}),define("js/common/share",["jquery"],function(e,t,n){function a(e){var t,n="",a={title:"",url:window.location.href,weixinUrl:"",image:"",desc:"",channel:""},i=["weibo","tweibo","qzone","renren","qq","douban","weixin"],s="<em><i></i></em>";if(a=o.extend(a,e),-1===o.inArray(a.channel,i))return alert("不存在的分享平台!"),!1;switch(a.channel){case"weibo":n="http://service.weibo.com/share/share.php?url="+a.url+"&title="+a.title+"&appkey=3739328910&searchPic=true&pic="+a.image;break;case"tweibo":n="http://share.v.t.qq.com/index.php?c=share&a=index&url="+a.url+"&title="+a.title+"&appkey=c0af9c29e0900813028c2ccb42021792&pic="+a.image;break;case"qzone":n="http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url="+a.url+"&title="+a.title+"&desc=&summary="+a.desc+"&site=YOHO!BUY 有货&pics="+a.image;break;case"renren":n="http://widget.renren.com/dialog/share?resourceUrl="+a.url+"&srcUrl="+a.url+"&desc="+a.desc+"&title="+a.title+"&description="+a.desc+"&pic="+a.image;break;case"qq":n="http://connect.qq.com/widget/shareqq/index.html?url="+a.url+"&desc="+a.desc+"&title="+a.title.replace("%","")+"&desc=&summary="+a.desc+"&site=YOHO!BUY 有货&pics="+a.image;break;case"weixin":n="http://s.jiathis.com/qrcode.php?url="+a.weixinUrl+"&desc="+a.desc+"&title="+a.title+"&description="+a.desc+"&pic="+a.image;break;case"douban":n="//www.douban.com/share/service?href="+a.url+"&text="+a.desc+"&image="+a.image+"&title="+a.title+"&comment="}if("weixin"===a.channel){if(!a.self)return;t=a.self.closest(".share-to").find(".weixin-share-box"),t.length>0&&(s+='<div class="con"><h2>分享到微信朋友圈</h2><p class="pic"><img src="'+n+'" /></p><p class="w">打开微信,点击底部得“发现”,使用<br/>“扫一扫“即可将网页分享到我的朋友圈。</p><a href="javascript:void(0)" class="close">x</a></div>',t.find("div").length>0?t.show():t.html(s).show(),t.find(".close").click(function(){o(this).closest(".weixin-share-box").hide()}))}else window.open(encodeURI(n))}function i(e,t){var n=document.title.replace(/(^\s*)|(\s*$)/g,""),i=o("#share-desc").val(),s=o("#share-img").val(),r=o("#weixin-url").val();a("weibo"===e||"tqq"===e?{channel:e,title:n,image:s}:{channel:e,title:n,desc:i,image:s,self:t,weixinUrl:r})}var o=e("jquery");o(".share-wrapper").on("click","i",function(){var e=o(this),t=e.data("type"),n=o(".weixin-share-box");"weixin"===t?i(t,e):(n.hide(),i(t))})}),define("js/product/shop-index",["jquery","lazyload","handlebars","source-map","jquery-pjax"],function(e,t,n){function a(){var e=d.find(".shop-collect-ico"),t=d.find(".shop-collect-text"),n=e.hasClass("on"),a=window.cookie("needColloect");i.ajax({type:"post",url:"/shoplist/setFavorite",data:{isFavorite:n?0:1,needColloect:a,shopId:d.data("id")},success:function(i){200===i.code?(n?(e.removeClass("on"),t.html("收藏")):(e.addClass("on"),t.html("已收藏")),a&&(e.addClass("on"),t.html("已收藏"))):401===i.code&&(window.setCookie("needColloect","1",{path:"/",domain:".yohobuy.com",expires:90}),location.href=i.url)}})}var i=e("jquery"),o=e("lazyload"),s=e("js/product/product"),r=i(".shop-intro"),d=i(".shop-collect"),l=i(".slider-left"),c=i(".all-goods"),u=c.find(".fixed-area"),h=u.offset()?u.offset().top:0;e("jquery-pjax"),e("js/common/slider"),e("js/product/list"),s.init(4),o(i("img.lazy")),l.length&&l.slider(),r.on("click",function(){i(".pop-shop-intro").show(),i(".mask").show()}),i(".close-btn, .mask").on("click",function(){i(".pop-shop-intro").hide(),i(".mask").hide()}),d.on("click",function(){a()}),1*window.cookie("needColloect")===1&&window.getUid()&&(a(),window.setCookie("needColloect","",{path:"/",domain:".yohobuy.com",expires:1})),c.pjax("a.pjax",".goods-wrap",{timeout:5e3,scrollTo:!1}).on("pjax:end",function(){s.init(4),o(i("img.lazy")),u=c.find(".fixed-area"),i("html, body").animate({scrollTop:c.offset().top-30})}).on("click",".menu-list li",function(){var e=i(this);e.siblings().removeClass("on"),e.addClass("on")}),i(window).on("scroll",function(){var e=i(this).scrollTop();e>h?u.css({position:"fixed",top:0}):u.css({position:"static",top:0})})}),define("js/index/index",["jquery","lazyload","handlebars","source-map"],function(e,t,n){var a=e("jquery"),i=e("lazyload"),o=a(".home-page").data("page"),s=a(".logo-brand").data("url");e("js/common/slider"),e("js/common/slider2"),e("js/common/logo-brand"),e("js/common/accordion"),a(document).on("mouseenter",".imgopacity a img",function(){a(this).css("opacity",.8)}),a(document).on("mouseout",".imgopacity a img",function(){a(this).css("opacity",1)}),a.inArray(o,["boys","girls","kids","lifestyle"])>-1&&(e("js/common/new-arrivls")({type:o,url:"/common/getNewArrival",count:"boys"===o||"lifestyle"===o?5:4,rows:[5,3]}),window.setCookie("_Channel",o,{domain:".yohobuy.com",path:"/",expires:365})),i(a("img.lazy")),"boys"===o?a(".slide-container").slider({pagination:".thumb-pagination"}):(a(".center-col").slider(),a(".slide-container").slider()),"boys"===o?(a(".logo-brand").logoBrand({url:s}),a(".img-brand").slider2()):(a(".logo-brand").logoBrand({showNum:10,url:s}),a(".img-slider-wrapper").slider2())}),define("js/common/slider2",["jquery"],function(e,t,n){var a=e("jquery");!function(e){e.fn.slider2=function(t){function n(t,n,i){i===!0?(e(".next").trigger("click"),t===n-3?a(--t,n,!1):a(++t,n,!0)):(e(".prev").trigger("click"),0===t?a(++t,n,!0):a(--t,n,!1))}function a(t,a,i){window.setTimeout(n,e.fn.slider2.defaults.delaytime,t,a,i)}function i(t,n,a){var i=-(t*n);e(".img-list").animate({"margin-left":i+"px"},"slow",a)}return e.fn.slider2.defaults={index:0,shownum:3,autoplay:!1,delaytime:3e3},this.each(function(){var n=e.extend({},e.fn.slider2.defaults,t),o=parseInt(e(".img-item").css("margin-right")),s=e(".img-item"),r=[],d=s.outerWidth()+o,l=s.length,c=0;if(3>=l)return void e(this).find(".img-brand-switch").hide();for(c=0;c<s.length;c++)r.push(s[c]);l=r.length,e(this).find(".img-list").css({width:d*l}),e(this).find(".next").on("click",function(t){var n=0,a=null;t.preventDefault(),i(3,d,function(){for(n=0;3>n;n++)a=r.shift(),e(".img-item").parent().append(a.outerHTML),r.push(a);e(".img-item").first().remove(),e(".img-item").first().remove(),e(".img-item").first().remove(),e(".img-list").css({"margin-left":"0"})})}),e(this).find(".prev").on("click",function(t){var n=0,a=null,o="";for(t.preventDefault(),n=0;3>n;n++)a=r.pop(),e(".img-item").parent().prepend(a.outerHTML),r.unshift(a);o=3*d,e(".img-item").last().remove(),e(".img-item").last().remove(),e(".img-item").last().remove(),e(".img-list").css({"margin-left":-o+"px"}),i(0,d)}),n.autoplay===!0&&a(n.index,l,!0)})}}(a)}),define("js/common/accordion",["jquery"],function(e,t,n){function a(e){d.each(function(t){s(this).css("zIndex",t),e>=t?s(this).stop().animate({left:t*c},400):s(this).stop().animate({left:e*c+l+c*(t-e-1)},400)})}var i,o=e("js/common/yohoui/YH.slide"),s=e("jquery"),r=s(".slide-accordion"),d=r.find("li"),l=d.width(),c=1150===parseInt(s(".home-page").width())?125:107;a(0),i=new o({length:5,loop:!1,auto:!1,timeout:2,index:0}),i.on("change",function(e){a(e.to)}),d.mouseover(function(){i.go(s(this).index())}),i.init()}),define("js/common/yohoui/YH.slide",[],function(e,t,n){var a=e("js/common/yohoui/YH.base"),i=function(e){this.__lastTime=null,this.__isStop=!1,e=a.extend(this.defaults,e),i.superclass.constructor.call(this,e)};a.inherit(i,a.assembly),i.prototype.oninit=function(){var e=this,t=e.options;return t.auto&&e.play(),e.go(t.index),this},i.prototype.go=function(e,t){var n,a,i,o,s,r,d,l,c=this,u=c.options;c.__lastTime&&(clearTimeout(c.__lastTime),c.__lastTime=null),t="undefined"==typeof t?u.index:t,n=e===t?0:e>t?1:-1,a=u.loop,o=u.length-1,s=e,e=a?e>o?e-o-1:0>e?e+o+1:e:e>o?o:0>e?0:e,i=u.index=e,r={from:t,to:e,originalto:s,direction:n};for(d in c.registerEvent)if(c.registerEvent[d].length>0)for(l in c.registerEvent[d])c.registerEvent[d].hasOwnProperty(l)&&c.registerEvent[d][l](r);i!==o||e?!c.__isStop&&u.auto&&c.play():c.__lastTime&&clearTimeout(c.__lastTime)},i.prototype.play=function(){var e=this,t=e.options;return e.__lastTime=setTimeout(function(){e.next()},1e3*t.timeout),this},i.prototype.next=function(){var e=this,t=e.options,n=t.index,a=n+t.step;e.go(a,n)},i.prototype.prev=function(){var e=this,t=e.options,n=t.index,a=n-t.step;e.go(a,n)},i.prototype.pause=function(){var e=this;e.__lastTime&&clearTimeout(e.__lastTime),e.__isStop=!0},i.prototype.resume=function(){var e=this;e.__isStop=!1,e.play()},i.prototype.defaults={index:0,timeout:5,step:1,per:1,auto:!1,loop:!1},n.exports=i}),define("js/common/yohoui/YH.base",[],function(e,t,n){var a,i={ +"[object Array]":"array","[object Boolean]":"boolean","[object Date]":"date","[object Function]":"function","[object Number]":"number","[object Object]":"object","[object RegExp]":"regexp","[object String]":"string"},o={__Index:0,list:[],get:function(e){return void 0===e?this.list:this.list[e]},fn:function(){},inherit:function(e,t){var n=o.fn;n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e,e.superclass=t.prototype,e.prototype.constructor===Object.prototype.constructor&&(e.prototype.constructor=t)},extend:function(e,t){var n;for(n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},copy:function(e,t,n){var a,i,s;if("object"!=typeof t)return t;if(a=t.valueOf(),t!==a)return new t.constructor(a);if(t instanceof t.constructor&&t.constructor!==Object){i=e?new e:o.clone(t.constructor.prototype);for(s in t)(e||t.hasOwnProperty(s))&&(i[s]=t[s])}else{i={};for(s in t)i.hasOwnProperty(s)&&(i[s]=t[s])}if(n)for(s in n)i.hasOwnProperty(s)&&(i[s]=n[s]);return i},clone:function(e){return o.__cloneFunc.prototype=e,new o.__cloneFunc},__cloneFunc:function(){},delegate:function(e,t){var n;return t=t||window,arguments.length>2?(n=Array.prototype.slice.call(arguments,2),function(){return e.apply(t,n)}):function(){return e.call(t)}},dom:function(e,t){var n,a,i=e,o={wrap:i},s=i[0].getElementsByTagName("*"),r=s.length;for(a=0;r>a;a++)n=s[a].className,n.indexOf(t)>-1&&(n=n.split(t)[1]),n&&(o[n]=i.find(s[a]));return o},template:function(){var e,t,n,a,i=arguments;if(i.length>0&&o.isString(i[0]))if(e=i[0],2===i.length&&o.isObject(i[1]))for(t in i[1])void 0!==i[1][t]&&(n=new RegExp("({"+t+"})","g"),e=e.replace(n,i[1][t]));else for(a=1;a<i.length;a++)void 0!==i[a]&&(n=new RegExp("({["+(a-1)+"]})","g"),e=e.replace(n,i[a]));return e},__type:function(e){return null==e?String(e):i[Object.prototype.toString.call(e)]||"object"},isObject:function(e){return this.isFunction(e)||!(!e||"object"!=typeof e)},isFunction:function(e){return"function"===this.__type(e)},isArray:Array.isArray||function(e){return"array"===this.__type(e)},isNum:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},isString:function(e){return"string"===this.__type(e)},each:function(e,t,n){var a,i;if(o.isArray(e))for(a=0,i=e.length;i>a&&t.call(e[a],a,e[a],n)!==!1;a++);else for(a in e)if(t.call(e[a],a,e[a],n)===!1)break},funManager:{__loadList:{},__loadFun:function(e,t,n){e.methord&&o.isFunction(e.methord())&&(n=n||window,e.methord()(e,function(){t()},n))},load:function(e,t,n,a){a=a||0,e[a]&&o.funManager.__loadFun(e[a],function(){o.funManager.load(e,t,n,a+1)},n),t(a,n)},get:function(e){return this.__loadList[e]}},log:function(e){var t=window.console||{log:function(){}};t.log(e)},Event:{mousewheel:function(e){var t=e.originalEvent,n=t.detail?-1*t.detail:t.wheelDelta/40,a=0>n?-1:1;return{direction:a,unit:n}},__:function(e,t,n,a){var i;for(i in e)if(window[e[i].validator]){t[e[i].validator](e[i].prefix+n,a,!1);break}},add:function(e,t,n){var a=[{validator:"addEventListener",prefix:""},{validator:"attachEvent",prefix:"on"}];this.__(a,e,t,n)},remove:function(e,t,n){var a=[{validator:"removeEventListener",prefix:""},{validator:"detachEvent",prefix:"on"}];this.__(a,e,t,n)}},getUid:function(e){return o.template("me-{0}{1}-{2}",e,(new Date).getTime(),o.__Index++)},Browser:{isTouch:function(){var e=window.navigator&&window.navigator.msPointerEnabled&&window.MSGesture;return!!("ontouchstart"in window||e||window.DocumentTouch)},Prefix:function(){var e,t=["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"],n=document.createElement("div");for(e in t)if(void 0!==n.style[t[e]])return o.template("-{0}-",t[e].replace("Perspective","").toLowerCase())},parseURL:function(e){var t,n,a,i,o,s=document.createElement("a");return s.href=e,{source:e,protocol:s.protocol.replace(":",""),host:s.hostname,port:s.port,query:s.search,params:function(){for(t={},n=s.search.replace(/^\?/,"").split("&"),a=n.length,i=0,o;a>i;i++)n[i]&&(o=n[i].split("="),t[o[0]]=o[1]);return t}(),file:(s.pathname.match(/\/([^\/?#]+)$/i)||[null,""])[1],hash:s.hash.replace("#",""),path:s.pathname.replace(/^([^\/])/,"/$1"),relative:(s.href.match(/tps?:\/\/[^\/]+(.+)/)||[null,""])[1],segments:s.pathname.replace(/^\//,"").split("/")}}},Array:{indexOf:function(e,t){var n;for(n=0;n<e.length;n++)if(this[n]===t)return n;return-1},remove:function(e,t){var n=this.indexOf(e,t);return n>-1&&e.splice(n,1),e}}};a=function(e){this.initialized=!1,this.registerEvent={before:[],change:[],after:[]},this.options=e,this.init(e)},a.output=function(){o.log(o.list)},a.prototype.oninit=o.fn,a.prototype.init=function(e){this.initialized=!0,this.__Uid=o.getUid("me"),this.oninit(e),o.list[this.__Uid]=this},a.prototype.destory=function(){this.initialized=!1,delete o.list[this.__Uid]},a.prototype.getUid=function(){return this.__Uid},a.prototype.getOptions=function(){return this.options},a.prototype.config=function(){if(!(arguments.length>0))return this.options;if("string"==typeof arguments[0]){if(!(arguments.length>1))return this.options[name];this.options[arguments[0]]=arguments[1]}},a.prototype.on=function(e,t){var n=this,a=n.registerEvent[e];return a&&a.push(t),a},a.prototype.off=function(e,t){var n=this,a=n.registerEvent[e],i=[];o.each(a,function(e,n){n===t&&i.push(e)}),o.each(i.reverse(),function(e,t){a.splice(t,1)})},o.assembly=a,n.exports=o}),define("js/common/new-arrivls",["jquery","lazyload","handlebars","source-map"],function(e,t,n){function a(e){var t={index:0,isload:!0,isrun:!0,offset:{height:null,width:null}};return this.registerEvent={before:[],change:[],after:[]},this.options=i.extend(!0,{},t,e),this}var i=e("jquery"),o=e("lazyload"),s=e("handlebars");a.prototype.on=function(e,t){var n=this,a=n.registerEvent[e];return a&&a.push(t),a},a.prototype.exect=function(e,t){var n,a=this;if(a.registerEvent[e]&&a.registerEvent[e].length>0)for(n in a.registerEvent[e])a.registerEvent[e].hasOwnProperty(n)&&a.registerEvent[e][n](t)},a.prototype.init=function(){function e(){n.isrun&&n.isload&&t.__directionCalculation()&&(n.isload=!1,n.index++,t.exect("after",n)),t.exect("change",n)}var t=this,n=this.options;t.exect("before",n),i(window).scroll(e)},a.prototype.emit=function(){var e=this.options;e.isload=!0},a.prototype.stop=function(){var e=this.options;e.isrun=!1,e.isload=!1},a.prototype.__directionCalculation=function(){var e=this.options;return!!(e.offset.height&&e.offset.height()>0&&i(window).scrollTop()+i(window).height()>=e.offset.height())},n.exports=function(e){var t,n=i("#newarrivals .goods-container"),r=i(".loading a"),d=new a({index:1,isload:!1,offset:{height:function(){return parseFloat(n.offset().top)+parseFloat(n.height())-200}}}),l=e.url,c=e.count,u=e.rows;e.pageIndex=0,delete e.url,delete e.count,delete e.rows,t=function(e,t,a){var l={type:"POST",url:e,success:function(e){var i,l,c,u=e.code;200===u?(l=e.goods.length%a,c=e.goods.length-l-1,e.goods.splice(c,l),i=s.compile(d.tpl),n.append(i(e.goods)),t.pageIndex=t.pageIndex+e.goods.length,o(n.find("img.lazy")),d.emit()):(d.stop(),r.html("查看更多"))},error:function(){d.stop(),r.html("网络断开连接了~")}};l.data=t,i.ajax(l)},d.on("after",function(n){e.pageCount=c*u[1],t(l,e)}),d.on("before",function(n){d.tpl="{{#each this}}",d.tpl+='<div class="good-info imgopacity" data-skn="{{skn}}">',d.tpl+=' <div class="tag-container clearfix">',d.tpl+=" {{# tags}}",d.tpl+=" {{# isNew}}",d.tpl+=' <span class="good-tag new-tag">NEW</span>',d.tpl+=" {{/ isNew}}",d.tpl+=" {{# isReNew}}",d.tpl+=' <span class="good-tag renew-tag">再到着</span>',d.tpl+=" {{/ isReNew}}",d.tpl+=" {{# isSale}}",d.tpl+=' <span class="good-tag sale-tag">SALE</span>',d.tpl+=" {{/ isSale}}",d.tpl+=" {{# isNewFestival}}",d.tpl+=' <span class="good-tag new-festival-tag">新品节</span>',d.tpl+=" {{/ isNewFestival}}",d.tpl+=" {{# isLimit}}",d.tpl+=' <span class="good-tag limit-tag">限量商品</span>',d.tpl+=" {{/ isLimit}}",d.tpl+=" {{# isYearEndPromotion}}",d.tpl+=' <span class="good-tag yep-tag">年终大促</span>',d.tpl+=" {{/ isYearEndPromotion}}",d.tpl+=" {{# isYearMidPromotion}}",d.tpl+=' <span class="good-tag ymp-tag">年中热促</span>',d.tpl+=" {{/ isYearMidPromotion}}",d.tpl+=" {{/ tags}}",d.tpl+=" </div>",d.tpl+=' <div class="good-detail-img">',d.tpl+=' <a class="good-thumb" href="{{url}}" target= "_blank">',d.tpl+=' <img class="lazy" data-original="{{thumb}}">',d.tpl+=" </a>",d.tpl+=" {{# isFew}}",d.tpl+=' <p class="few-tag">即将售罄</p>',d.tpl+=" {{/ isFew}}",d.tpl+=" {{#if showColBtn}}",d.tpl+=' <span class="col-btn iconfont{{#if coled}} coled{{/if}}"></span>',d.tpl+=" {{/if}}",d.tpl+=" </div>",d.tpl+=' <div class="good-detail-text">',d.tpl+=' <a href="{{url}}" target= "_blank">{{name}}</a>',d.tpl+=' <p class="price">',d.tpl+=' <span class="sale-price{{#unless marketPrice}}prime-cost{{/unless}}">',d.tpl+=" ¥{{salePrice}}",d.tpl+=" </span>",d.tpl+=" {{# marketPrice}}",d.tpl+=' <span class="market-price">¥{{.}}</span>',d.tpl+=" {{/ marketPrice}}",d.tpl+=" </p>",d.tpl+=" </div>",d.tpl+="</div>",d.tpl+="{{/each}}",e.pageCount=c*u[0],t(l,e,e.count)}),d.init()}}),define("js/brand/index",["jquery","lazyload","handlebars","source-map","dot"],function(e,t,n){var a=e("jquery"),i=e("lazyload");e("js/common/slider"),e("js/brand/brands"),i(a("img.lazy")),a(".slide-container").slider({orient:!0})}),define("js/brand/brands",["jquery","handlebars","source-map","dot"],function(e,t,n){function a(e){var t=new RegExp("(^|&)"+e+"=([^&]*)(&|$)"),n=window.location.search.substr(1).match(t);return null!=n?window.unescape(n[2]):null}function i(e,t,n){var a,i=e,o={width:i.width(),left:i.offset().left,right:parseFloat(l(window).width())-parseFloat(i.offset().left)-parseFloat(i.width())},s=i.parent("li");p.find(".brands-dialog").remove(),a=c.compile(n),s.append(a(t)),u(s.find(".right")),o.right-350<0&&s.find(".brands-layer").addClass("brands-layer-right").css("left",-330-o.width)}function o(){v.unbind("mouseenter").unbind("mouseleave").hover(function(){var e=l(this),t=e.attr("data-key"),n={url:"/brands/brandinfo",type:"get",data:{brandId:t},success:function(t){200===t.code&&t.brand&&(j.hasOwnProperty(t.brand.key)||(j[t.brand.key]=t.brand),i(e,j[t.brand.key],S))}};clearTimeout(r),r=setTimeout(function(){j.hasOwnProperty(t)?i(e,j[t],S):l.ajax(n)},200)},function(){clearTimeout(r),p.find(".brands-dialog").remove()})}var s,r,d,l=e("jquery"),c=e("handlebars"),u=e("dot"),h=l(".brands-tabs"),p=l(".brands-list"),f=l(".brands-category"),m=l(".news-txt ul"),g=p.find("dl.clearfix"),v=p.find("li>a"),y=f.find("a"),b=h.find("li>a"),w=h.find(".hoverarr"),C=y.height(),_=y.offset()?y.offset().top:0,x=m.height(),k=m.offset()?m.offset().top:0,j={},S='<div class="brands-dialog">';S+=' <div class="brands-layer">',S+=' <div class="layer-content">',S+=' <div class="title">{{title}}</div>',S+=' <div class="clearfix desc">',S+=' <img src="{{icon}}">',S+=' <p class="right">{{content}}</p>',S+=" </div> ",S+=' <div class="featured">',S+=" <p>{{subtitle}}</p> ",S+=' <div class="clearfix"> ',S+=" {{#each imgs}}",S+=' <img src="{{src}}">',S+=" {{/each}}",S+=" </div>",S+=" </div>",S+=" </div>",S+=" </div>",S+="</div>",u(l(".brand-desc")),l.easing.easeOutQuint=function(e,t,n,a,i){return a*((t=t/i-1)*t*t*t*t+1)+n},m.length&&m.find("li").each(function(){var e=l(this),t=e.offset().top-k+e.height();t>x&&e.hide()}),b.eq(0).parent("li").find(".brands-content").css("z-index","1"),d=a("id")?a("id"):0,s=b.eq(d),s.find(".g-mask").addClass("g-mask-on"),d&&s.length&&w.css({left:parseFloat(s.offset().left)-parseFloat(h.offset().left)}),b.hover(function(){var e=l(this);clearTimeout(r),r=setTimeout(function(){var t=parseFloat(e.offset().left)-parseFloat(h.offset().left);w.animate({left:t},200,"easeOutQuint")},50),h.find(".brands-content").removeAttr("style"),e.parent("li").find(".brands-content").css("z-index","1")},function(){clearTimeout(r)}),l(window).scroll(function(){l(this).scrollTop()>=_?f.addClass("category-fix"):f.removeClass("category-fix")}),y.click(function(){var e=l(this).attr("href").split("#")[1],t=p.find("[name="+e+"]").offset().top-C;return f.hasClass("category-fix")||(t-=C),l("html,body").animate({scrollTop:t},200),!1}),g.length<26&&l.ajax({url:"/brands/brandList",type:"POST",data:{start:g.length?g.length+1:1},success:function(e){e&&(p.append(e),v=p.find("li>a"),o())}}),o()}),define("js/passport/entry",["jquery","jquery.placeholder"],function(e,t,n){e("js/passport/reg"),e("js/passport/back"),e("js/passport/login"),e("js/passport/reset"),e("js/passport/vertification"),e("js/passport/thirdlogin"),e("js/passport/third-pwd"),e("js/passport/relate")}),define("js/passport/reg",["jquery","jquery.placeholder"],function(e,t,n){function a(){var e=new Date,t=m(".captcha-img"),n=t.attr("src").split("?")[0];t.attr("src",n+"?t="+e.getTime())}function i(e,t){var n,i;"reg"===e?(n="/passport/register/checkmobile",i={mobile:I.val(),area:L.text().split("+")[1]}):"third"===e&&(n="/passport/autouserinfo/bindCheck",i={mobile:I.val(),area:L.text().split("+")[1],openId:m("#open-id").val(),sourceType:m("#source-type").val()}),q[0].message="err",q[0].status=!1,m.ajax({url:n,type:"POST",data:i}).then(function(e){if(e){switch(e.code){case 200:I.val()!==B&&""!==B&&(a(),S.addClass("disable").attr("disabled","disabled"),q[1].message="图形验证码错误",q[1].status=!1),B=I.val(),q[0].message="",q[0].status=!0;break;case 400:a(),q[0].message=e.message,q[0].status=!1}t()}})}function o(e,t){var n;"reg"===e?n="/passport/register/piccaptcha":"third"===e&&(n="/passport/autouserinfo/checkPicCode"),m.ajax({type:"POST",url:n,data:{verifyCode:U.val()}}).then(function(e){if(e){switch(e.code){case 200:q[1].message="",q[1].status=!0;break;case 400:a(),q[1].message="图形验证码错误",q[1].status=!1}t()}})}function s(e,t){var n;"reg"===e?n="/passport/register/msgcaptcha":"third"===e&&(n="/passport/autouserinfo/checkBindMsg"),m.ajax({type:"POST",url:n,data:{code:E.val(),mobile:I.val(),area:L.text().split("+")[1]}}).then(function(e){if(e){switch(e.code){case 200:q[2].message="",q[2].status=!0;break;case 400:q[2].message="短信验证码错误",q[2].status=!1}t()}})}function r(e,t,n){var a,r=m.trim(t.val());t.hasClass("phone-num")?(a=L.text(),""===r?(q[0].message="请输入手机号码",q[0].status=!1,n()):!/^[0-9]+$/.test(r)||"+86"===a&&!g.phoneRegx[a].test(r)?(q[0].message="手机号码格式不正确,请重新输入",q[0].status=!1,n()):i(e,n)):t.hasClass("captcha")?""===r?(q[1].message="请输入图形验证码",q[1].status=!1,n()):r.length<=3?(q[1].message="图形验证码为4位",q[1].status=!1,n()):q[0].status?o(e,n):(q[1].message="图形验证码错误",q[1].status=!1,n()):t.hasClass("msg-captcha")?""===r?(q[2].message="请输入短信验证码",q[2].status=!1,n()):r.length<=3?(q[2].message="短信验证码错误",q[2].status=!1,n()):q[1].status?s(e,n):(q[2].message="短信验证码错误",q[2].status=!1,n()):t.hasClass("pwd")?(""===r?(q[3].message="请输入密码",q[3].status=!1):r.length<6||r.length>20?(q[3].message="密码只支持6-20位字符",q[3].status=!1):z.test(t.val())?(q[3].message="",q[3].status=!0):(q[3].message="密码须字母和数字组合",q[3].status=!1),n()):t.hasClass("repwd")&&(""===r?(q[4].message="请输入密码确认",q[4].status=!1):A.val()!==r?(q[4].message="与密码不一致,请重新输入",q[4].status=!1):(q[4].message="",q[4].status=!0),n())}function d(){var e=f.offset();return C.css({top:e.top-40,left:e.left})}function l(){var e,t=!1,n=q.length;for(e=0;n>e;e++)t||(q[e].message&&"err"!==q[e].message?(C.find("span").text(q[e].message),f=m("#"+q[e].id),d().removeClass("hide"),t=!0):C.addClass("hide"))}function c(){var e,t,n=q.length;for(t=0;n>t;t++)q[t].message?(e=m("#"+q[t].id),e.addClass("error")):(e=m("#"+q[t].id),e.removeClass("error"))}function u(e){var t=e.val(),n=v(t),a=0;switch(a=0===n?0:10>=n?1:20>=n?2:3){case 0:O.removeClass("red yellow green"),P.removeClass("color");break;case 1:O.addClass("red").removeClass("yellow green"),P.filter(".low").addClass("color"),P.filter(".mid,.high").removeClass("color");break;case 2:O.addClass("yellow").removeClass("red green"),P.filter(".low,.mid").addClass("color"),P.filter(".high").removeClass("color");break;case 3:O.addClass("green").removeClass("yellow red"),P.addClass("color")}""===t?w.removeClass("red yes no").addClass("default"):t.length<6||t.length>20?w.removeClass("default yes").addClass("no red"):w.removeClass("default no red").addClass("yes")}var h,p,f,m=e("jquery"),g=e("js/passport/mail-phone-regx"),v=e("js/passport/pwd-strength"),y=m(".register-page"),b=m("#pwd-tips"),w=b.find("#pwd-tip1"),C=m("#err-tip"),_=m("#register-btn"),x=m("#count-down"),k=m(".success-btn"),j=5,S=m("#send-captcha"),T=4,q=[],I=m("#phone-num"),E=m("#msg-captcha"),A=m("#pwd"),F=m("#repwd"),U=m("#captcha"),D=0,P=m(".pwd-intensity"),O=P.closest(".pwd-intensity-container"),L=m("#country-code"),$=m("#region"),N=!1,z=g.pwdValidateRegx,B="";e("jquery.placeholder"),setTimeout(function(){I.val(""),E.val(""),A.val(""),F.val(""),U.val("")},0),U.attr("maxlength",T),A.focus(function(e){b.removeClass("hide"),N=!0,p=m(this).val()}).blur(function(){b.addClass("hide"),N=!1}),m("[placeholder]").placeholder(),q=[{id:"phone-num",message:"",status:!1},{id:"captcha",message:"",status:!1},{id:"msg-captcha",message:"",status:!1},{id:"pwd",message:"",status:!1},{id:"repwd",message:"",status:!1}],m(window).resize(function(){C.hasClass("hide")||d()}),t.init=function(e){m("#agree-terms").click(function(){var e,t=m(this),n=0;if(t.attr("notchecked")){for(t.removeAttr("notchecked"),e=0;e<q.length;e++)q[e].status&&n++;4===n&&_.removeClass("disable").removeAttr("disabled")}else _.addClass("disable").attr("disabled","disabled"),t.attr("notchecked","notchecked")}),y.on("keydown",function(e){var t=e.which;13===t&&_.click()}),y.find(".va").keyup(function(){var t,n=0,a=q.length,i=m(this);r(e,m(this),function(){for(l(),c(),t=0;a>t;t++)q[t].status&&n++;4!==n||m("#agree-terms").attr("notchecked")?_.addClass("disable").attr("disabled","disabled"):_.removeClass("disable").removeAttr("disabled"),q[1].status&&0>=D?S.removeClass("disable").removeAttr("disabled"):S.addClass("disable").attr("disabled","disabled")}),i.hasClass("pwd")&&u(i)}).blur(function(){}),$.change(function(){L.text(m("#region").val()),r(e,I,l)}),S.click(function(){var t,n;m(this).hasClass("disable")||(D=60,m("#msg-tip").removeClass("hide"),S.addClass("disable").attr("disabled","disabled"),S.val("60秒可重新发送"),t=setInterval(function(){return 0>=D?(S.removeClass("disable").removeAttr("disabled").val("获取短信验证码"),void clearInterval(t)):void S.val(D--+"秒可重新发送")},1e3),"reg"===e?n="/passport/register/sendBindMsg":"third"===e&&(n="/passport/autouserinfo/sendBindMsg"),m.ajax({type:"POST",url:n,data:{area:L.text().split("+")[1],mobile:I.val(),verifyCode:U.val()}}))}),m(".success-box").length<=0&&(A[0].onpaste=function(){return!1}),_.click(function(){var t;"reg"===e?t="/passport/register/mobileregister":"third"===e&&(t="/passport/autouserinfo/bindMobile"),m(this).hasClass("disable")||m.ajax({type:"POST",url:t,data:{area:L.text().split("+")[1],mobile:I.val(),verifyCode:U.val(),code:E.val(),password:A.val()}}).then(function(e){var t,n,a=0;200===e.code?(n=e.data.href,t=setTimeout(function(){a++},1e3),m.ajax({type:"GET",url:e.data.session}).then(function(e){200===e.code&&3>t&&(clearInterval(t),location.href=n)}),t>=3&&(clearInterval(t),location.href=n)):console.log("网络超时~")})}),m(".change-captcha").click(function(){a()}),m(".success-box").length>0&&(h=setInterval(function(){0===j&&(window.location.href=k.attr("data-url"),clearInterval(h)),x.text(j--)},1e3))}}),define("js/passport/mail-phone-regx",[],function(e,t,n){var a={"+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]{1}[0-9]{8}$/,"+81":/^0[9|8|7][0-9]{9}$/,"+61":/^[0-9]{11}$/},i=/^[.\-_a-zA-Z0-9]+@[\-_a-zA-Z0-9]+\.[a-zA-Z0-9]/,o=/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/;t.phoneRegx=a,t.emailRegx=i,t.pwdValidateRegx=o}),define("js/passport/pwd-strength",[],function(e,t,n){function a(e,t){return e.charCodeAt(t)>=48&&e.charCodeAt(t)<=57?1:e.charCodeAt(t)>=97&&e.charCodeAt(t)<=122?2:e.charCodeAt(t)>=65&&e.charCodeAt(t)<=90?3:4}function i(e,t,n){var a=e.charCodeAt(0),i=t.charCodeAt(0);return a-i===0?!0:4!==n&&(a-i===1||a-i===-1)}function o(e,t){return 0===t||e===t?0:4===e||4===t?2:1}function s(e){var t,n,s=0,r=e.length,d="",l=0,c=0;for(c=0;r>c;c++)t=e.charAt(c),n=a(e,c),l===n&&i(t,d,n)||(s+=n+o(n,l)),d=t,l=n;return s}n.exports=s}),define("js/passport/back",["jquery","jquery.placeholder"],function(e,t,n){function a(){var e=new Date,t=d("#captcha-img"),n=t.attr("src").split("?")[0];d("#captcha-img").attr("src",n+"?t="+e.getTime())}function i(){_&&x?y.removeClass("disable").prop("disabled",!1):y.addClass("disable").prop("disabled",!0)}function o(){return _&&x?void d.ajax({type:"POST",url:"/passport/back/authcode",data:{verifyCode:d.trim(m.val()),phoneNum:f.val(),area:p.val()}}).then(function(e){200===e.code?x=!0:402===e.code?(_=!1,x=!0,b.removeClass("hide").find("em").text("该账号不存在"),f.addClass("error")):400===e.code&&(x=!1,a()),i()}):void i()}function s(e){var t=!0,n="";return e=d.trim(e),""!==e?/^[0-9]+$/.test(e)?u[p.val()].test(e)?t=!0:(n="手机号码格式不正确, 请重新输入",t=!1):c.test(e)?t=!0:(n="邮箱格式不正确, 请重新输入",t=!1):(n="账户名不能为空",t=!1),_=t,o(),{pass:t,errTxt:n}}function r(){var e=d.trim(m.val());return""===e||e.length<C?(x=!1,void i()):(x=!0,void o())}var d=e("jquery"),l=e("js/passport/mail-phone-regx"),c=l.emailRegx,u=l.phoneRegx,h=e("js/passport/ac-email"),p=d("#country-code-hide"),f=d("#phone-num"),m=d("#captcha"),g=d("#country-code-list"),v=d("#country-code"),y=d("#find-btn"),b=d("#account-err"),w=d("#captcha-err"),C=4,_=!1,x=!1;e("jquery.placeholder"),h(f,function(){var e=s(f.val());e.pass?(b.addClass("hide"),f.removeClass("error")):(b.removeClass("hide").find("em").text(e.errTxt),f.addClass("error"))}),m.attr("maxlength",C),d("input").placeholder(),d("#change-captcha, #captcha-img").on("click",function(){a()}),v.on("click",function(e){e.stopPropagation(),"block"===g.css("style")?g.slideUp("fast"):g.slideDown("fast")}),g.delegate("li","click",function(e){var t,n=d(this),a=n.data("cc");e.stopPropagation(),p.val(a),v.find("em").html(n.text()),""!==d.trim(f.val())&&(t=s(f.val()),i(),_?(b.addClass("hide"),f.removeClass("error")):(b.removeClass("hide").text(t.errTxt),f.addClass("error"))),g.slideUp("fast")}),d(document).click(function(){"block"===g.css("display")&&g.slideUp()}),f.keyup(function(){s(d.trim(d(this).val()))}).focus(function(){d(this).removeClass("error"),b.addClass("hide")}),m.blur(function(){var e=""===d.trim(m.val())?"验证码不能为空":"验证码不正确";x?(w.addClass("hide"),m.removeClass("error")):(w.removeClass("hide").find("em").text(e),m.addClass("error"),m.val()<C&&a())}).focus(function(){d(this).removeClass("error"),w.addClass("hide")}).keyup(function(){r()}),d("#find-btn").click(function(e){return/^[0-9]+$/.test(d.trim(f.val()))&&d("#find-form").attr("action","/passport/back/mobile"),d(this).hasClass("disable")?void 0:x&&_?void 0:(e.preventDefault(),!0)})}),define("js/passport/ac-email",["jquery"],function(e,t,n){var a,i=e("jquery"),o={num:["qq.com","163.com","126.com","sina.com","gmail.com","sohu.com","hotmail.com","139.com","189.com"],other:["gmail.com","qq.com","163.com","126.com","sina.com","sohu.com","hotmail.com","139.com","189.com"]};n.exports=function(e,t){var n,s='<ul id="email-autocomplete" class="email-autocomplete hide"></ul>';e.parent().append(s),n=i("#email-autocomplete"),e.on("keyup",function(){var e,t,a,s,r=i.trim(i(this).val()),d="";if(r.indexOf("@")>0){for(e=r.match(/^[0-9]+@(.*)/),e?(a=o.num,t=e[1]):(a=o.other,t=r.match(/@(.*)/)[1]),s=0;s<a.length;s++)a[s].indexOf(t)>-1&&(d+="<li>"+r.slice(0,r.indexOf("@"))+"@"+a[s]+"</li>");""!==d&&/.com$/.test(r)===!1?n.html(d).removeClass("hide"):n.html("").addClass("hide")}}).on("blur",function(){a=setTimeout(function(){n.addClass("hide"),t&&t()},200)}),n.on("click","li",function(){clearTimeout(a),e.val(i(this).text()).focus(),n.addClass("hide"),t&&t()})}}),define("js/passport/login",["jquery","jquery.placeholder"],function(e,t,n){function a(){var e,t=!1,n=c.trim(u.val()),a=y.val();return""!==n?/^[0-9]+$/.test(n)?"+86"!==a||_.phoneRegx[a].test(n)?t=!0:(t=!1,e="手机号码不正确,请重新输入"):_.emailRegx.test(n)?t=!0:(t=!1,e="邮箱格式不正确,请重新输入"):e="请输入账户名",t?(f.addClass("hide"),u.removeClass("error")):(f.removeClass("hide").children("em").text(e),u.addClass("error")),t}function i(){var e,t=!1,n=c.trim(h.val());return""!==n?n.length<6?e="请输入长度为6-20字符的密码":t=!0:e="请输入密码",t?(m.addClass("hide"),h.removeClass("error")):(m.removeClass("hide").children("em").text(e),h.addClass("error")),t}function o(){var e,t=!1,n=c.trim(p.val());return S.is(":hidden")?!0:(""!==n?4!==n.length?e="请输入长度为4字符的验证码":t=!0:e="请输入验证码",t?(g.addClass("hide"),p.removeClass("error")):(g.removeClass("hide").children("em").text(e),p.addClass("error")),t)}function s(){var e=!0,t=c.trim(u.val()),n=c.trim(h.val());return""!==t?e=a()&&i()&&o():(e=!1,u.addClass("error"),""===n?(f.addClass("both-error").removeClass("hide").children("em").text("请输入账户名和密码"),m.addClass("hide"),h.addClass("error")):f.removeClass("hide").children("em").text("请输入账户名")),e}function r(){T.attr("src",j+c.now()),p.val(""),S.removeClass("hide")}function d(){var e=s();e&&I===!1&&(I=!0,c.ajax({url:"/passport/login/auth",type:"POST",data:{areaCode:y.val().replace("+",""),account:c.trim(u.val()),password:c.trim(h.val()),captcha:c.trim(p.val()),isRemember:!!k.hasClass("checked")},success:function(e){200===e.code?e.data&&(location.href=e.data.session):("captcha"===e.data.errorType?(g.removeClass("hide").children("em").html(e.message),p.addClass("error").val("")):(m.removeClass("hide").children("em").html(e.message),h.addClass("error").val("")),e.data&&e.data.needCaptcha&&r())},complete:function(){I=!1}}))}var l,c=e("jquery"),u=c("#account"),h=c("#password"),p=c("#captcha"),f=u.siblings(".err-tip"),m=h.siblings(".err-tip"),g=p.siblings(".err-tip"),v=c("#caps-lock"),y=c("#country-code-hide"),b=c("#country-code > em"),w=c("#country-list"),C=c("#email-autocomplete"),_=e("js/passport/mail-phone-regx"),x=e("js/passport/ac-email"),k=c(".remember-me"),j="/passport/images?t=",S=c(".captcha-wrap"),p=S.find("#captcha"),T=S.find("#captcha-img"),g=S.find(".err-tip"),q={checked:"",unchecked:""},I=!1;e("jquery.placeholder"),x(u,function(){a()&&c.ajax({url:"/passport/login/account",type:"GET",data:{account:c.trim(u.val())}}).then(function(e){e.data&&e.data.needCaptcha&&r()})}),c("[placeholder]").placeholder(),c("#country-code").on("click",function(){"none"===w.css("display")&&w.slideDown()}),w.on("click","li",function(){var e=c(this),t=e.data("cc");b.html(e.html()),y.val(t),w.slideUp()}),c(document).on("click",function(e){c(e.target).closest("#country-code").length>0||"block"===w.css("display")&&w.slideUp()}),h.on("blur",function(){i(),v.hasClass("hide")||v.addClass("hide")}).on("keypress",function(e){var t=e.which;return t>=65&&90>=t?void v.removeClass("hide"):void v.addClass("hide")}),p.on("blur",function(){o()}),C.on("click","li",function(){clearTimeout(l),u.val(c(this).text()).focus(),C.addClass("hide")}),k.on("click",function(){var e=c(this);e.toggleClass("checked"),e.hasClass("checked")?e.children("i").html(q.checked):e.children("i").html(q.unchecked)}),c(".va").on("focus",function(){var e=c(this);e.removeClass("error"),e.siblings(".err-tip").addClass("hide")}),S.on("click",".change-captcha, .captcha-img",function(){T.attr("src",j+c.now())}),c("#login-btn").on("click",d),c("input.va").on("keypress",function(e){13===e.which&&d()}),""===u.val()&&u.val()!==u.attr("placeholder")||""!==h.val()||h.focus()}),define("js/passport/reset",["jquery","jquery.placeholder"],function(e,t,n){function a(e,t){return e.charCodeAt(t)>=48&&e.charCodeAt(t)<=57?1:e.charCodeAt(t)>=97&&e.charCodeAt(t)<=122?2:e.charCodeAt(t)>=65&&e.charCodeAt(t)<=90?3:4}function i(e,t,n){var a=e.charCodeAt(0),i=t.charCodeAt(0);return a-i===0?!0:4!==n&&(a-i===1||a-i===-1)}function o(e,t){return 0===t||e===t?0:4===e||4===t?2:1}function s(e){var t,n,s=0,r=e.length,d="",l=0,c=0;for(c=0;r>c;c++)t=e.charAt(c),n=a(e,c),l===n&&i(t,d,n)||(s+=n+o(n,l)),d=t,l=n;return s}function r(){var e=l.val(),t=s(e),n=0;switch(n=0===t?0:10>=t?1:20>=t?2:3){case 0:v.removeClass("red yellow green"),g.removeClass("color");break;case 1:v.addClass("red").removeClass("yellow green"),g.filter(".low").addClass("color"),g.filter(".mid,.high").removeClass("color");break;case 2:v.addClass("yellow").removeClass("red green"),g.filter(".low,.mid").addClass("color"),g.filter(".high").removeClass("color");break;case 3:v.addClass("green").removeClass("yellow red"),g.addClass("color")}""===e?y.removeClass("red yes no").addClass("default"):e.length<6||e.length>20?y.removeClass("default yes").addClass("no red"):y.removeClass("default no red").addClass("yes"),m=!!b.test(e)}var d=e("jquery"),l=d("#pwd"),c=d("#re-input"),u=d("#reset-pwd-btn"),h=d("#pwd-err"),p=d("#repwd-err"),f=d("#pwd-tips"),m=!1,g=d(".pwd-intensity"),v=g.closest(".pwd-intensity-container"),y=d("#pwd-tip1"),b=e("js/passport/mail-phone-regx").pwdValidateRegx;e("jquery.placeholder"),d("input").placeholder(),d(".va").keyup(function(){var e=!0;d(this).hasClass("pwd")?r():""===d(this).val()&&(e=!1),e=!(!e||!m||l.val()!==c.val()),e?u.removeClass("disable").prop("disabled",!1):u.addClass("disable").prop("disabled",!0)}).blur(function(){var e=d(this),t=e.val();e.hasClass("pwd")?""===t?(e.addClass("error"),h.removeClass("hide").find("em").text("请输入密码")):t.length<6||t.length>20?(e.addClass("error"),h.removeClass("hide").find("em").text("密码只支持6-20位")):b.test(t)?(h.addClass("hide"),""!==c.val()&&(t!==c.val()?(c.addClass("error"),p.removeClass("hide").find("em").text("两次密码输入不一致,请重新输入")):(c.removeClass("error"),p.addClass("hide")))):(e.addClass("error"),h.removeClass("hide").find("em").text("密码须字母和数字组合")):""===t?(e.addClass("error"),p.removeClass("hide").find("em").text("请输入密码确认")):""!==l.val()&&t!==l.val()?(e.addClass("error"),p.removeClass("hide").find("em").text("两次密码输入不一致,请重新输入")):(e.removeClass("error"),p.addClass("hide"))}).focus(function(){d(this).removeClass("error"),d(this).hasClass("pwd")?h.addClass("hide"):p.addClass("hide")}),l.focus(function(){h.addClass("hide"),f.removeClass("hide")}).blur(function(){f.addClass("hide")}),d("#pwd, #repwd").keydown(function(e){var t=e.keyCode||e.which;return 32===t?void e.preventDefault():void 0})}),define("js/passport/vertification",["jquery"],function(e,t,n){var a,i,o=e("jquery"),s=o("#send-captcha"),r=o("#captcha-tip"),d=o("#err-tip"),l=o("#next-step");s.click(function(){o.post("/passport/back/sendbackmobile",{mobile:o("#mobile").val(),area:o("#area").val(),verifyCode:o("#captchaPic").val()},function(e){if(200===e.code){if(d.hide(),o(this).hasClass("disable"))return;a=60,s.addClass("disable").attr("disabled",!0),r.removeClass("hide"),s.val(a--+"秒后可重新操作"),i=setInterval(function(){0===a?(clearInterval(i),s.val("发送验证码").removeClass("disable").removeAttr("disabled")):s.val(a--+"秒后可重新操作")},1e3)}else o(this).addClass("error"),d.removeClass("hide").text("发送失败")})}),a=60,s.addClass("disable").attr("disabled",!0),r.removeClass("hide"),s.val(a--+"秒后可重新操作"),i=setInterval(function(){0===a?(clearInterval(i),s.val("发送验证码").removeClass("disable").removeAttr("disabled")):s.val(a--+"秒后可重新操作")},1e3),o("#captcha").keyup(function(){var e=o.trim(o(this).val()),t=this;4===e.length?o.ajax({type:"POST",url:"/passport/back/backmobile",dataType:"json",data:{code:o("#captcha").val(),verifyCode:o("#captchaPic").val(),area:o("#area").val(),mobile:o("#mobile").val() +},success:function(e){200===e.code?(l.removeClass("disable").attr("href",e.data),d.addClass("hide"),o(t).removeClass("error")):(l.addClass("disable"),d.removeClass("hide").find("em").text("验证码输入错误"),o(t).addClass("error"))}}):l.addClass("disable").attr("href","javascript:;")}).blur(function(){var e=o.trim(o(this).val());""===e&&(o(this).addClass("error"),d.removeClass("hide").text("请输入验证码"))}).focus(function(){o(this).removeClass("error")})}),define("js/passport/thirdlogin",["jquery"],function(e,t,n){function a(){b(".choosetag").on("change",function(){var e="#f02200";"checked"===b(this).attr("checked")?b(".choosewrapper").css({"background-image":'url("'+S+'")'}):(b(".choosewrapper").css({"background-image":"none"}),e="#CCCCCC"),I.css({"background-color":e})})}function i(){return"checked"===b(".choosetag").attr("checked")}function o(){b(".optionshow").on("click",function(){b(".optionslist").toggleClass("hide")})}function s(){var e="";b(document).on("keyup","#validatenum",function(){e=b(this).val(),4===e.length&&(k||(k=!0,b.ajax({type:"POST",url:"/passport/autouserinfo/checkBindMsg",data:{code:e,mobile:b("#mobile").val(),area:b("#areacode").val()}}).then(function(e){k=!1,200===e.code?j=!0:alert(e.message)})))}),b("#validatenum").focus(function(){b(this).removeAttr("placeholder")}).blur(function(){b(this).attr("placeholder","验证码")})}function r(){b(".optionitem").on("click",function(){var e=b(this),t=e.attr("areanum"),n=e.text();b("#areaname").text(n),b("#areanum").text(t),b("#areacode").val(t),b(".optionslist").addClass("hide")})}function d(){b(document).on("click","body",function(e){var t=b(e.target);t.hasClass("yohoselectarea")||t.hasClass("areaname")||t.hasClass("righttag")||t.hasClass("optionslist")||t.hasClass("optionitem")||b(".optionslist").addClass("hide")})}function l(){var e="",t="";b(".optionitem").each(function(){e=b(this),t=e.attr("areanum").replace(/\+/g,""),e.attr("areanum",t)})}function c(){var e;b(document).on("click","#alreayregist",function(t){e=b(t.target),(e.hasClass("mask")||e.hasClass("backdrop"))&&(b("#alreayregist").hide(),b(".backdrop").hide())}),b(document).on("click","#bindconfirm",function(t){e=b(t.target),(e.hasClass("mask")||e.hasClass("backdrop"))&&(b("#bindconfirm").hide(),b(".backdrop").hide())})}function u(){b(document).on("click","#yohobindbtn",function(e){b(".phonenum").val(""),b("#bindconfirm").hide(),b(".backdrop").hide()}),b(document).on("click","#yohobindbtn2",function(e){b(".phonenum").val(""),b("#alreayregist").hide(),b(".backdrop").hide()})}function h(){return x-=1,0>x?(x=60,void b(".validatewrapper").html(_)):(b(".second").text(x),void window.setTimeout(h,1e3))}function p(e){b(".validatewrapper").html(C),window.setTimeout(h,1e3)}function f(){b(document).on("click","#sendmessage",function(){"disabled"!==b("#sendmessage").attr("disabled")&&(p(b("#mobile").val()),b.ajax({type:"POST",url:"/passport/autouserinfo/sendBindMsg",data:{mobile:b("#mobile").val(),area:b("#areacode").val()}}).then(function(e){200!==e.code&&alert(e.message)}))})}function m(){var e="",t="";t=b("#areacode").val(),e=b("#mobile").val(),b.ajax({type:"POST",url:"/passport/autouserinfo/bindMobile",data:{area:t,openId:b("#openId").val(),sourceType:b("#sourceType").val(),mobile:e,code:b("#validatenum").val()}}).then(function(e){200===e.code?e.data&&e.data.refer?window.location.href=e.data.refer:window.location.href="/passport/thirdlogin/bindsuccess":alert(e.message)})}function g(){b(document).on("click","#gotobindphone",function(){j===!0?(b("#inarea").val(b("#areacode").val()),b("#inmobile").val(b("#mobile").val()),m()):alert("请输入正确验证码")})}function v(){var e="",t="",n="",a="",o="",s="";b("#bindfirststep").on("click",function(r){var d;if(r.preventDefault(),n=b(".phonenum").val(),a=b("#areanum").text(),d=w["+"+a],i()){if(""===n||!d||!d.test(n))return q.find("em").text("手机格式错误"),void q.removeClass("hide");e=b("#openId").val()||"29803EC6D4AAC3AAB8ABDB6AE829D579",t=b("#sourceType").val()||"qq",b.ajax({type:"post",url:"/passport/autouserinfo/bindCheck",data:{mobile:n,area:a,openId:e,sourceType:t},dataType:"json",success:function(e){var t=b(window).height();200===e.code?(b("#bindmobileform").attr("action",e.data.next),b("#bindmobileform").submit()):201===e.code?(o=e.data.user.username,s=e.data.user.headImg,b("#registphone").text(n),b("#username").text(o),""===s?b("#userphoto").attr("src","//img10.static.yhbimg.com/headimg/2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100"):b("#userphoto").attr("src",s),b("#logindirectly2").attr("href",e.data.user.bindLogin),b(".backdrop").show(),b("#sendmessage").click(),b("#alreayregist .mask").css({"padding-top":t>440?t/2:217}),b("#alreayregist").show()):203===e.code?(b("#bindmobileform").attr("action",e.data.next),b("#bindmobileform").submit()):205===e.code?(o=e.data.user.username,s=e.data.user.headImg,b("#registphonetwo").text(n),b("#username1").text(o),""===s?b("#userphoto1").attr("src","//img10.static.yhbimg.com/headimg/2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100"):b("#userphoto1").attr("src",s),b("#logindirectly").attr("href",e.data.user.bindLogin),b(".backdrop").show(),b("#bindconfirm .mask").css({"padding-top":t>440?t/2:217}),b("#bindconfirm").show()):402===e.code?(q.find("em").text("手机格式错误"),q.removeClass("hide")):e&&e.message&&alert(e.message)}})}})}function y(){l(),f(),a(),r(),o(),d(),v(),c(),u(),g(),s()}var b=e("jquery"),w=e("js/passport/mail-phone-regx").phoneRegx,C=b("#nopermissionmessage").html(),_=b(".validatewrapper").html(),x=+b(".second").text(),k=!1,j=!1,S="//cdn.yoho.cn/yohobuy/assets/img/passport/choosed.png",T=b(".bindwrapper"),q=T.find(".phone-err-tip"),I=T.find(".yohobindbtn");T.on("keydown",".phonenum",function(e){return 13===e.keyCode?(I.trigger("click"),!1):void 0}),y()}),define("js/passport/third-pwd",["jquery"],function(e,t,n){function a(e,t){return e.charCodeAt(t)>=48&&e.charCodeAt(t)<=57?1:e.charCodeAt(t)>=97&&e.charCodeAt(t)<=122?2:e.charCodeAt(t)>=65&&e.charCodeAt(t)<=90?3:4}function i(e,t,n){var a=e.charCodeAt(0),i=t.charCodeAt(0);return a-i===0?!0:4!==n&&(a-i===1||a-i===-1)}function o(e,t){return 0===t||e===t?0:4===e||4===t?2:1}function s(e){var t=0,n=e.length,s="",r=0,d=0,l="",c="";for(d;n>d;d++)l=e.charAt(d),c=a(e,d),r===c&&i(l,s,c)||(t+=c+o(c,r)),s=l,r=c;return t}function r(e,t){e.find("em").text(t),e.removeClass("hide")}function d(){return j-=1,0>j?(j=60,void C(".validatewrapper").html(T)):(C(".second").text(j),void window.setTimeout(d,1e3))}function l(){C(".validatewrapper").html(S),window.setTimeout(d,1e3)}function c(){C(document).on("click","#sendmessage",function(){l(),C.ajax({type:"POST",url:"/passport/autouserinfo/sendBindMsg",data:{mobile:P,area:O}}).then(function(e){200!==e.code&&alert(e.message)})})}function u(){var e="";C(document).on("keyup","#validatenum",function(){C("#err-info").hide(),e=C(this).val(),4===e.length&&(_||(_=!0,C.ajax({type:"POST",url:"/passport/autouserinfo/checkBindMsg",data:{code:e,mobile:P,area:O}}).then(function(e){_=!1,200!==e.code?C("#err-info").show():x=!0})))})}function h(){var e=v.val(),t=s(e),n=0;switch(n=0===t?0:10>=t?1:20>=t?2:3){case 0:y.removeClass("red yellow green"),w.removeClass("color");break;case 1:y.addClass("red").removeClass("yellow green"),w.filter(".low").addClass("color"),w.filter(".mid,.high").removeClass("color");break;case 2:y.addClass("yellow").removeClass("red green"),w.filter(".low,.mid").addClass("color"),w.filter(".high").removeClass("color");break;case 3:y.addClass("green").removeClass("yellow red"),w.addClass("color")}""===e?(k=!1,b.removeClass("red yes no").addClass("default")):(e.length<6||e.length>20?(k=!1,b.removeClass("default yes").addClass("no red")):(k=!0,b.removeClass("default no red").addClass("yes")),/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]*$/.test(e)?F.removeClass("default no red").addClass("yes"):F.removeClass("default yes").addClass("no red"))}function p(){C(document).on("keyup",".pwdcontent",function(){h(C(this))}),C(document).on("focus",".pwdcontent",function(){C("#pwd-tips").removeClass("hide")}),C(document).on("blur",".pwdcontent",function(){C("#pwd-tips").addClass("hide")})}function f(){var e="",t="";q||(q=!0,setTimeout(function(){q=!1},5e4),e=C("#pwd").val(),t=C("#validatenum").val(),C.ajax({type:"POST",url:"/passport/autouserinfo/bindMobile",data:{area:O,openId:C("#openId").val(),sourceType:C("#sourceType").val(),mobile:P,password:e,code:t}}).then(function(e){q=!1,200===e.code?e.data&&e.data.refer?window.location.href=e.data.refer:window.location.href="/passport/thirdlogin/bindsuccess":alert(e.message)}))}function m(){var e="",t="";C("#confirmsubmit").on("click",function(){var n=!0;e=C("#validatenum").val(),t=C("#pwd").val(),""===e?(r(E,"短信验证码不能为空"),n=!1):x===!1&&(r(E,"请输入正确的验证码"),n=!1),""===t?(r(A,"密码不能为空"),n=!1):t.length<6||t.length>20?(r(A,"密码只支持6-20位字符"),n=!1):D.test(t)?k===!1&&(r(A,"请输入符合强度的密码"),n=!1):(r(A,"密码须由字母和数字组合"),n=!1),n&&f()})}function g(){v=C("#pwd"),y=C(".safelevel"),w=C(".pwd-intensity"),b=C("#pwd-tip1"),c(),u(),p(),m(),P&&O&&U.click()}var v,y,b,w,C=e("jquery"),_=!1,x=!1,k=!1,j="",S="",T="",q=!1,I=C(".bindwrapper"),E=I.find(".code-err-tip"),A=I.find(".pwd-err-tip"),F=C("#pwd-tip2"),U=C("#sendmessage"),D=e("js/passport/mail-phone-regx").pwdValidateRegx,P=C("#mobile").val(),O=C("#area").val();S=C("#nopermissionmessage").html(),T=C(".validatewrapper").html(),j=+C(".second").text(),g()}),define("js/passport/relate",["jquery"],function(e,t,n){function a(){f.init(),o.ajax({type:"POST",url:"/passport/autouserinfo/sendBindMsg",data:{mobile:p.mobile,area:p.area}}).then(function(e){e&&200!==e.code&&(f.clearTime(),alert(e.message))})}function i(){var e=l.val();e&&o.ajax({type:"POST",url:"/passport/autouserinfo/relateMobile",data:{mobile:p.mobile,area:p.area,openId:p.openid,sourceType:p.source,code:e}}).then(function(e){200===e.code?window.location.href=e.data.refer:402===e.code?u.removeClass("hide"):(u.addClass("hide"),alert(e.message))})}var o=e("jquery"),s=o("#relate-main"),r=o("#code-validate"),d=r.find(".validate-wrapper"),l=r.find(".msg-code"),c=r.find(".count-down span"),u=r.find(".code-error"),h=o("#hide-info"),p={},f={};p=h.data(),h.remove(),f={init:function(){this.timer&&window.clearTimeout(this.timer),this.second=60,d.addClass("waiting"),this.changeTime()},changeTime:function(){var e=this;this.second&&this.second>0?(c.text(this.second),this.second--,this.timer=window.setTimeout(function(){e.changeTime()},1e3)):this.clearTime()},clearTime:function(){this.timer&&window.clearTimeout(this.timer),d.removeClass("waiting")}},o("#next-step-btn").click(function(){a(),s.addClass("hide"),u.addClass("hide"),r.removeClass("hide")}),r.on("keydown",".msg-code",function(e){return 13===e.keyCode?(i(),!1):void 0}),r.on("click",".get-code",function(){a()}),r.on("click",".perv-step",function(){f.clearTime(),s.removeClass("hide"),r.addClass("hide"),l.val("")}),o("#relate-btn").click(function(){i()})}),define("js/cart/cart",["jquery","handlebars","source-map"],function(e,t,n){function a(e){z.ajax({type:"POST",dataType:"json",url:"/cart/index/select",data:e,beforeSend:function(){z(".loading").css({top:z(document).scrollTop()+200}),z(".loading").show()}}).then(function(e){200===e.code&&window.history.go(0)})}function i(e,t){te=[],k={},w=e.attr("checked")?"Y":"N",z("."+t).each(function(){oe=!!z(this).data("promotionid"),z(this).data("id")&&te.push({product_sku:z(this).data("id"),selected:w,buy_number:z(this).data("productnum"),goods_type:z(this).data("goodstype"),promotion_id:z(this).data("promotionid")?z(this).data("promotionid"):0})}),k={skuList:JSON.stringify(te),hasPromotion:oe},a(k)}function o(e,t,n){z.ajax({type:"GET",dataType:"json",url:t,data:n}).then(function(t){200===t.code&&t.data.item&&t.data.item.length>0&&(e.html(" "),m=f(t.data),e.append(z(m)),z("#orderProduct li:last").addClass("end"),z(".gift").removeClass("none"))})}function s(e){z.ajax({type:"GET",dataType:"html",url:"/cart/index/getProductInfo",data:e}).then(function(e){K=0,Q.html(" "),Q.append(e),Q.show(),z(".detail-bigpic:not(.none) .con li:first").addClass("active"),z(".showSizeBox:not(.none) span").length<2&&z(".showSizeBox:not(.none) span:first").addClass("atcive"),1!==Number(z("#addToCart").val())&&z(".showSizeBox span").data("num",0),z.each(z(".showSizeBox span"),function(){z(this).data("num")<=0&&(z(this).addClass("null-atcivec"),console.log(z(".showSizeBox:not(.none) span:first")),z(".showSizeBox:not(.none) span:first").removeClass("atcive"))}),"undefined"!=typeof q&&($=z(".detail-info .oldprice del").html()?z(".detail-info .oldprice del").html():N,O='<span class="oldprice">现价:<del>'+$+'</del></span><span class="newprice">活动价:<b class="promotion-price">'+q+"</b></span>",z(".detail-info .price").html(O)),z(".detail-bigpic:not(.none) .bigpic:gt(0)").hide(),z(".showSizeBox:not(.none)").find("span").each(function(){return z(this).hasClass("null-atcivec")?(z(".addcart").addClass("none"),void z(".btn_sellout").removeClass("none")):(z(".addcart").removeClass("none"),z(".btn_sellout").addClass("none"),!1)})})}function r(){Q.html(" "),Q.css({top:z(document).scrollTop()+30,left:z(document).width()/2-Q.width()/2})}function d(e){e.addClass("none").siblings("i").removeClass("none"),e.parents(".cart-product-num").siblings("div").toggleClass("fold"),e.siblings(".unfold-color").toggleClass("none"),e.siblings(".cart-page").toggleClass("none")}function l(e,t,n){z.ajax({type:"POST",dataType:"json",url:t,data:k,beforeSend:function(){z(".loading").css({top:z(document).scrollTop()+200}),z(".loading").show()}}).then(function(e){200===e.code?(n&&window.setCookie("cart-del-list",JSON.stringify(n),{domain:".yohobuy.com",path:"/"}),window.history.go(0)):300===e.code?(z(".loading").hide(),new M(e.message).show()):403===e.code&&e.data.url&&(window.location=e.data.url)})}function c(e){se=!0,z.ajax({type:"POST",dataType:"json",url:"/cart/index/modify",data:e}).then(function(e){200===e.code&&window.history.go(0),se=!1})}function u(e,t){z.ajax({type:"POST",url:"/cart/index/add",data:e}).then(function(e){200===e.code?(window.history.go(0),t&&window.setCookie("cart-del-list",JSON.stringify(t),{domain:".yohobuy.com",path:"/"})):500===e.code&&new M(e.message).show()})}function h(){z(".gift-wrapper .fold").show(),z(".pre-sell-box input:checked").length===z('.pre-sell-box input[type="checkbox"]').length&&z('.per-list input[type="checkbox"]').attr("checked",!0),z(".common-sell-box input:checked").length===z('.common-sell-box input[type="checkbox"]').length&&z('.common-list input[type="checkbox"]').attr("checked",!0),z('.common-list input[type="checkbox"]').attr("checked")&&(ie=!0),z('.per-list input[type="checkbox"]').attr("checked")&&(ae=!0),0!==z(".per-list").length&&0!==z(".common-list").length?ie&&ae&&z('.batch_div input[type="checkbox"]').attr("checked",!0):(ie||ae)&&z('.batch_div input[type="checkbox"]').attr("checked",!0),z(".cart-page").each(function(){1===z(this).data("pageall")?(z(".cart-btn-pre",this).hide(),z(".cart-btn-next",this).hide()):z(".cart-btn-pre",this).hide()}),z(".pre-sell-box input:checked").length>0&&z(".common-sell-box input:checked").length>0?(z(".go_cash_tips").show(),z(".btn_account_disabled").show(),z(".btn_account").hide()):(z(".go_cash_tips").hide(),z(".btn_account").show(),z(".btn_account_disabled").hide()),z(".pay-wapper tr").each(function(){z(this).data("pid")&&te.push(z(this).data("pid")+"")}),z.ajax({type:"POST",url:"/cart/index/checkFav",data:{pidList:JSON.stringify(te)}}).then(function(e){I='<span class="cart-yetremove-btn">已收藏</span>',E='<a href="javascript:void(0);" class="cart-remove-btn"><span>移入收藏</span></a>',z.each(e.data,function(e,t,n){z(".pay-wapper tr").each(function(){Number(z(this).data("pid"))===Number(e)&&(t?z(this).find(".cart-operation").append(I):z(this).find(".cart-operation").append(E))})})})}var p,f,m,g,v,y,b,w,C,_,x,k,j,S,T,q,I,E,A,F,U,D,P,O,L,$,N,z=e("jquery"),B=e("handlebars"),R=e("js/common/dialog"),W=R.Confirm,M=R.Alert,H=z(".cartnew-sum"),G=z(".cartnew-tips"),Y=z(".pay-wapper"),Q=z(".goods-detail"),X=z(".histroy"),V=z(".together"),Z=z(".shop-cart"),J=1,K=0,ee=1,te=[],ne=[],ae=!1,ie=!1,oe=!1,se=!1;G.find(".btn_close").click(function(){G.fadeOut()}),Y.one("click",'.common-sell-box input[type="checkbox"], .pre-sell-box input[type="checkbox"]',function(){w=z(this).attr("checked")?"Y":"N",te=[],te.push({product_sku:z(this).parents("tr").data("id"),selected:w,buy_number:z(this).parents("tr").data("productnum"),goods_type:z(this).parents("tr").data("goodstype"),promotion_id:z(this).parents("tr").data("promotionid")?z(this).parents("tr").data("promotionid"):0}),oe=!!z(this).parents("tr").promotion_id,k={skuList:JSON.stringify(te),hasPromotion:oe},a(k)}),H.one("click",'input[type="checkbox"]',function(){te=[],L={},k={},w=z(this).attr("checked")?"Y":"N",z(".pay-wapper:first tr").each(function(){z(this).data("promotionid")&&(oe=!0),z(this).data("id")&&te.push({product_sku:z(this).data("id"),selected:w,buy_number:z(this).data("productnum"),goods_type:z(this).data("goodstype"),promotion_id:z(this).data("promotionid")?z(this).data("promotionid"):0})}),k={skuList:JSON.stringify(te),hasPromotion:oe},a(k)}),z(".per-list").on("click",'input[type="checkbox"]',function(){i(z(this),"pre-sell-box")}),z(".common-list").on("click",'input[type="checkbox"]',function(){i(z(this),"common-sell-box")}),p=z("#togetherProduct").html(),f=B.compile(p),o(X,"/cart/index/getHistroyProduct"),o(V,"/cart/index/getTogetherProduct"),V.on("click",".pagenext, .pageprev",function(){o(V,"/cart/index/getTogetherProduct",{page:Math.ceil(100*Math.random())+1})}),Z.on("click",".icon-minus, .icon-add",function(){z(this).hasClass("icon-minus")?(z(this).parents(".title").next(".main").hide(),z(this).parents("h2").next(".right").hide()):(z(this).parents(".title").next(".main").show(),z(this).parents("h2").next(".right").show()),z(this).siblings("i").toggleClass("none"),z(this).toggleClass("none")}),X.on("click",".pagenext, .pageprev",function(){z(this).hasClass("pagenext")?J++:--J>0||(J=1),o(X,"/cart/index/getHistroyProduct",{page:J})}),Y.on("click",".cart-add-btn",function(){F=z(this).data("id"),T=z(this).parents("table").data("promotion"),q=z(this).parents("table").find(".subjoin-price").html(),N=z(this).parents("table").find(".wapper-price").html(),r(),s({productId:F})}),z(".clearfix").on("click",".btn_view_s",function(){F=z(this).data("id"),T=z(this).parents("table").data("promotion"),q=z(this).parents("table").find(".subjoin-price").html(),r(),s({productId:F})}),Q.on("click",".colse",function(){Q.hide(),Q.html(" "),ee=1}),Y.on("click",".icon-minusCart, .icon-addCart",function(){d(z(this))}),Y.on("click",".unfold-color",function(){d(z(this)),z(this).siblings(".icon-minusCart").removeClass("none"),z(this).siblings(".icon-addCart").addClass("none")}),Y.on("click",".cart-btn-next",function(){g=z(this).siblings("p").find(".f-red"),y=Number(z(this).siblings("p").find(".subjoinPageNum").html()),v=Number(g.html()),g.html(v+1),v>=y-1?z(this).hide():z(this).siblings("i").show(),b=z(this).parents(".cart-product-num").siblings("div").find("table"),b.addClass("none").eq(v).removeClass("none")}),Y.on("click",".cart-btn-pre",function(){g=z(this).siblings("p").find(".f-red"),y=Number(z(this).siblings("p").find(".subjoinPageNum").html()),v=Number(g.html()),g.html(v-1),2>=v?z(this).hide():z(this).siblings("i").show(),b=z(this).parents(".cart-product-num").siblings("div").find("table"),b.addClass("none").eq(v-2).removeClass("none")}),Q.on("click",".fav_count",function(){z.ajax({type:"POST",dataType:"json",url:"/product/item/togglecollect",data:{productId:F,type:"add"}}).then(function(e){200===e.code?new M(e.message).show():403===e.code?e.data.url&&(window.location=e.data.url):new M(e.message).show()})}),Y.on("click",".cart-del-btn",function(){k={},te=[],T=z(this).parents("tr").data("promotionid")?z(this).parents("tr").data("promotionid"):0,te.push({product_sku:z(this).parents("tr").data("id"),buy_number:z(this).parents("tr").data("productnum"),promotion_id:T}),oe=!!T,k={skuList:JSON.stringify(te),hasPromotion:oe},A="<div><span></span>删除商品</div><p>确定从购物车中删除此商品?</p>",z(this).data("gift")||(x={productPrice:z(this).parents("tr").find(".productPrice").text(),productTitle:z(this).parents("tr").find(".pay-pro-info a").text(),link:z(this).parents("tr").find(".pay-pro-info a").attr("href"),productNum:z(this).parents("tr").data("productnum"),productSku:z(this).parents("tr").data("id"),promotionId:z(this).parents("tr").data("promotionid")}),C="/cart/index/remove",new W({content:A,cb:function(){l(k,C,x)}}).show()}),Y.on("click",".cart-remove-btn",function(){k={},te=[],T=z(this).parents("tr").data("promotionid")?z(this).parents("tr").data("promotionid"):0,te.push({product_sku:z(this).parents("tr").data("id"),buy_number:z(this).parents("tr").data("productnum"),promotion_id:T}),oe=!!T,k={skuList:JSON.stringify(te),hasPromotion:oe},l(k,"/cart/index/fav")}),H.on("click",".delAll",function(){k={},x={},te=[],ne=[],z(".pay-wapper:first tr").each(function(){z(this).find('input[type="checkbox"]').attr("checked")&&(T=z(this).data("promotionid")?z(this).data("promotionid"):0,T&&(oe=!0),z(this).data("id")&&(z(this).find('input[type="checkbox"]').attr("checked")&&te.push({product_sku:z(this).data("id"),buy_number:z(this).data("productnum"),promotion_id:T}),x={productPrice:z(this).find(".productPrice").text(),productTitle:z(this).find(".pay-pro-info a").text(),link:z(this).find(".pay-pro-info a").attr("href"),productNum:z(this).data("productnum"),productSku:z(this).data("id"),promotionId:z(this).data("promotionid")},ne.push(x)))}),C="/cart/index/remove",A="<div><span></span>删除商品</div><p>确定从购物车中删除所有选中商品?</p>",k={skuList:JSON.stringify(te),hasPromotion:oe},z.isEmptyObject(te)?new M("请至少选择一件商品").show():new W({content:A,cb:function(){l(k,C,ne)}}).show()}),H.on("click",".removeAll",function(){k={},x={},te=[],z(".pay-wapper:first tr").each(function(){z(this).find('input[type="checkbox"]').attr("checked")&&(T=z(this).data("promotionid")?z(this).data("promotionid"):0,T&&(oe=!0),z(this).data("id")&&z(this).find('input[type="checkbox"]').attr("checked")&&te.push({product_sku:z(this).data("id"),buy_number:z(this).data("productnum"),promotion_id:T}))}),k={skuList:JSON.stringify(te),hasPromotion:oe},z.isEmptyObject(te)?new M("请至少选择一件商品").show():l(k,"/cart/index/fav")}),Y.on("click",".minus, .plus",function(){return x={},_=z(this).hasClass("minus")?"decreaseNum":"increaseNum",x[""+_]=1,se||"1"===z(this).siblings("input").val()&&z(this).hasClass("minus")?!1:void c(z.extend(x,{sku:z(this).parents("tr").data("id")}))}),z(".gift").on("click",".up, .down",function(){z(this).siblings("i").toggleClass("none"),z(this).toggleClass("none")}),Q.on("click",".addcart",function(){return 0===z(".showSizeBox:not(.none) .atcive").length?(new M("请选择尺码").show(),!1):(j=z(".showSizeBox:not(.none) .atcive").data("num"),S=z(".showSizeBox:not(.none) .atcive").data("sku"),k={productSku:S,buyNumber:z("#mnum").val(),promotionId:T},void(z("#mnum").val()>j?new M("库存不足,目前还有"+j+"个库存").show():1===Number(z("#addToCart").val())?u(k):new M("该商品无法加入购物车").show()))}),Q.on("click",".cut, .add",function(){if(_=z(this).hasClass("minus")?"decreaseNum":"increaseNum",T)z(this).hasClass("cut")?new M("-_-,已经是最后一件,不能在减了!").show():new M("最多只能购买1,您好像购买的太多了!").show();else{if(z(this).hasClass("add")?ee++:ee--,1>ee)return new M("-_-,已经是最后一件,不能在减了!").show(),ee=1,!1;z("#mnum").val(ee)}}),Q.on("click",".color",function(){K=0,z(".color").find("p").removeClass("atcive"),z(this).find("p").addClass("atcive"),z(".showSizeBox").addClass("none").eq(z(this).index()).removeClass("none"),z(".showSizeBox:not(.none) span").length<2&&z(".showSizeBox:not(.none) span:first").addClass("atcive"),z(".detail-bigpic").addClass("none").eq(z(this).index()).removeClass("none"),z(".detail-bigpic").eq(z(this).index()).find(".bigpic").hide(),z(".detail-bigpic").eq(z(this).index()).find(".bigpic:first").show(),z(".detail-bigpic").eq(z(this).index()).find(".con li").removeClass("active"),z(".detail-bigpic").eq(z(this).index()).find(".con li:first").addClass("active"),z(".showSizeBox").eq(z(this).index()).find("span").each(function(){return z(this).hasClass("null-atcivec")?(z(".addcart").addClass("none"),void z(".btn_sellout").removeClass("none")):(z(".addcart").removeClass("none"),z(".btn_sellout").addClass("none"),!1)})}),Q.on("click",".showSizeBox span",function(){j=z(this).data("num"),z(this).data("num")>0?(z(".showSizeBox:not(.none) span").removeClass("atcivec atcive").eq(z(this).index()).addClass("atcive"),z(".addcart").removeClass("none"),z(".btn_sellout").addClass("none")):(z(".showSizeBox:not(.none) span").removeClass("atcivec atcive").eq(z(this).index()).addClass("atcivec"),z(".addcart").addClass("none"),z(".btn_sellout").removeClass("none"))}),z(".goBack").on("click",function(){k={},D=z(".dev-revocation .goBack").index(this),te=[],z(".dev-revocation tr").each(function(e){D!==e&&(x={productPrice:z(this).find(".productPrice").text(),productTitle:z(this).find(".title").text(),link:z(this).find(".title").attr("href"),productNum:z(this).data("productnum"),productSku:z(this).data("productsku"),promotionId:z(this).data("promotionid")},te.push(x))}),k={productSku:z(this).parents("tr").data("productsku"),promotionId:z(this).parents("tr").data("promotionid"),buyNumber:z(this).parents("tr").data("productnum")},u(k,te)}),Q.on("click",".piclist li",function(){K=z(this).index(),z(".detail-bigpic:not(.none) .piclist li").removeClass("active"),z(this).addClass("active"),z(".detail-bigpic:not(.none) .bigpic").hide().eq(z(this).index()).show()}),h(),Q.on("click",".pre, .next",function(){if(z(this).hasClass("next")){if(K>=z(this).siblings(".con").find("li").length-1)return!1;K++}else{if(1>K)return!1;K--}z(this).siblings(".con").find("li").removeClass("active").eq(K).addClass("active"),z(".detail-bigpic:not(.none) .bigpic").hide().eq(K).show()}),z(".btn_account").on("click",function(){P="",z(".pay-wapper input:checked").parents("tr").find(".tipNoStore").length>0?(U=z(".pay-wapper input:checked").parents("tr").find(".tipNoStore"),z.each(U.parents("tr").find(".pay-pro-info a"),function(){P+=z(this).html()}),new M(P+"库存不足").show()):z(".zp").length>0&&!z(this).attr("title")?(z(this).attr("title","1"),new M("您有赠品没有选择,请选择完再结算!").show()):z("input:checked").length>0?z(".pre-sell-box input:checked").length>0?window.location.href="/cart/index/orderEnsure?type=2":window.location.href="/cart/index/orderEnsure?type=1":new M("请至少选择一件商品").show()}),Y.on("selectstart",function(){return!1}),Q.on("selectstart",function(){return!1})}),define("js/guang/entry",["jquery","lazyload","dot","jquery-pjax"],function(e,t,n){e("js/guang/list"),e("js/guang/detail"),e("js/guang/index")}),define("js/guang/list",["jquery","lazyload","dot"],function(e,t,n){e("js/guang/msg"),e("js/guang/img-blink"),e("js/guang/right-side")}),define("js/guang/msg",["jquery","lazyload","dot"],function(e,t,n){function a(){o(".msg-title, .msg-content .content").dotdotdot({wrap:"letter"}),s(o("#msg-list img.lazy"))}var i,o=e("jquery"),s=e("lazyload");e("dot"),o(".guang-page").on("click",".like-icon",function(){var e,t=o(this),n=t.closest(".msg-content").data("id");i!==n&&(i=n,t.toggleClass("liked"),e=t.hasClass("liked")?"/guang/info/praise":"/guang/info/cancelPraise",o.ajax({type:"GET",url:e,data:{id:n,time:(new Date).getTime()}}).then(function(e){200===e.code&&(1*e.data===0?t.next("b").addClass("num-0").children(".num").html("0"):t.next("b").removeClass("num-0").children(".num").html(e.data)),i=!1}))}).on("mouseenter mouseleave",".like-icon",function(){o(this).closest(".like").toggleClass("hover")}),a(),t.dotLazy=a}),define("js/guang/img-blink",["jquery"],function(e,t,n){var a=e("jquery");a(".guang-page").on("mouseover","a img, a .bg-img",function(e){var t=a(e.target);t.closest(".slider").length>0||(t.addClass("blink"),setTimeout(function(){t.removeClass("blink")},100))})}),define("js/guang/right-side",["jquery","lazyload","dot"],function(e,t,n){var a=e("jquery"),i=e("lazyload");e("dot"),a(".ex-reco-context").dotdotdot({wrap:"letter"}),i(a(".ads img.lazy"))}),define("js/guang/detail",["jquery","lazyload","dot","jquery-pjax"],function(e,t,n){function a(){var e=o(".comments-list").find("li").length;0===e?(o(".commnets-resultwrapper").hide(),o(".comments-empty").show()):(o(".commnets-resultwrapper").show(),o(".comments-empty").hide())}function i(e){var t=o("#comment-info").val();return""===t?(alert("评论不能为空"),!1):(u=!0,void o.ajax({url:"/guang/info/comment",data:{id:e,comment:t},type:"post",success:function(e){switch(e.code){case 401:h=!0,location.href="//www.yohobuy.com/signin.html?refer="+window.escape(location.href+"#comment-info");break;case 400:alert(e.message);break;case 200:e.data&&(l.html(e.data.content),c.html(e.data.count),a(),o("#comment-info").val("").keyup())}u=!1}}))}var o=e("jquery"),s=e("lazyload"),r=o("#comment-area"),d=o(".detail-body").data("id"),l=r.find(".comments-wrap"),c=o("#article-comment > .comment-num"),u=!1,h=!1,p=o("#comment-btn"),f=100,m=o("#word-count-tip");e("js/guang/right-side"),e("js/guang/img-blink"),e("js/common/share"),e("jquery-pjax"),s({failure_limit:50}),o("#prise-btn").click(function(){var e,t=!1,n=o(this);t||(n.toggleClass("liked"),e=n.hasClass("liked")?"/guang/info/praise":"/guang/info/cancelPraise",t=!0,o.ajax({type:"GET",url:e,data:{id:d}}).then(function(e){200===e.code&&n.find(".like-num").html(e.data),t=!1}))}).bind("mouseenter mouseleave",function(){o(this).toggleClass("hover")}),o("#collect-btn").click(function(){var e,t,n=!1,a=o(this);n||(a.hasClass("collected")?(e="/guang/info/cancelcollect",t=0):(e="/guang/info/collect",t=1),n=!0,o.ajax({type:"GET",url:e,data:{id:d}}).then(function(e){var i;switch(e.code){case 401:i=/\?col=(1|0)/.test(location.href)?location.href.replace(/\?col=(1|0)/,"?col="+t):location.href+"?col="+t,location.href="//www.yohobuy.com/signin.html?refer="+encodeURI(i);break;case 400:break;case 200:/\?col=(1|0)/.test(location.href)?location.href=location.href.replace(/\?col=(1|0)/,""):a.toggleClass("collected")}n=!1}))}).bind("mouseenter mouseleave",function(){o(this).toggleClass("hover")}),a(),p.click(function(e){return h||u?!1:void(o("#comment-info").val().length-f>0||(e.preventDefault(),i(d)))}),o(document).pjax(".comment-pager a","#pjax-container",{timeout:5e3}),o(document).on("pjax:end",function(){a(),o("html,body").scrollTop(o("#comment-info").offset().top)}),o("#comment-info").keyup(function(){var e,t=o(this).val().length;0===t?(m.html(""),p.addClass("disable")):0>=t-f?(e="还可以输入"+(f-t)+"字",p.removeClass("disable")):(e='已超过<span class="exceed-count">'+(t-f)+"</span>字",p.addClass("disable")),m.html(e)}),o("#comment-info").trigger("keyup")}),define("js/guang/index",["jquery","lazyload","dot","jquery-pjax"],function(e,t,n){var a=e("jquery"),i=e("js/guang/msg");e("jquery-pjax"),e("js/common/slider"),e("js/guang/img-blink"),e("js/guang/right-side"),a("#slider").slider(),a(document).pjax(".pjax-link, .msg-pager a","#pjax-container",{timeout:2e3}),a(document).on("pjax:end",function(){i.dotLazy()})}),define("js/home/entry",["jquery","handlebars","source-map","dot"],function(e,t,n){e("js/home/index"),e("js/home/orders"),e("js/home/favorite"),e("js/home/currency"),e("js/home/returns"),e("js/home/comment"),e("js/home/complaints"),e("js/home/message"),e("js/home/edit"),e("js/home/gift"),e("js/home/validate"),e("js/home/address"),e("js/home/common-address")}),define("js/home/index",["jquery","handlebars","source-map"],function(e,t,n){var a=e("jquery");e("js/home/order-block"),a("#close-message").click(function(){a(".message-tip").slideUp(200)}),function(){var e=a(".na-pager"),t=a(".new-arrival ul"),n=Math.ceil(t.children("li").length/5),i=t.children("li:last-child").outerWidth(),o=1;t.width(t.width()*n),e.click(function(){var e,s=a(this);s.hasClass("next")?(++o,2===o&&s.siblings().removeClass("no-visible"),o===n&&s.addClass("no-visible")):(--o,o===n-1&&s.siblings().removeClass("no-visible"),1===o&&s.addClass("no-visible")),e=-5*(o-1)*i,t.animate({marginLeft:e},400)})}()}), +define("js/home/order-block",["jquery","handlebars","source-map"],function(e,t,n){function a(e){var t={mask:!0,btns:[{id:"cancel-sure",name:"确定并取消订单",btnClass:["cancel-sure"],cb:function(){var t=_(".cancel-dialog :checked"),n=_(".cancel-dialog .cancel-tip"),a="";return a="10"===t.val()?t.parent().find("#reason_other").val():t.siblings("label").text(),0===t.length?void n.html("请选择要取消订单的原因"):void _.ajax({type:"POST",url:"/home/orders/cancelorder",data:{orderCode:e,reasonId:t.val(),reason:a}}).then(function(e){200===e.code?(u.close(),u=i("icon-success","订单修改","您已成功取消了该订单",function(){location.reload(!0)}),u.show()):n.html(e.message)})}},{id:"cancel-no",name:"暂不取消",btnClass:["cancel-no"],cb:function(){u.close()}}],content:q,className:"cancel-dialog"};return new j(t)}function i(e,t,n,a){var i=x.compile(I),o=i({messageIcon:e,messageTitle:t,messageSummary:n}),s={mask:!0,btns:[{id:"message-sure",name:"确定",btnClass:["message-sure"],cb:function(){u.close(),a&&a()}}],content:o,className:"message-dialog"};return new j(s)}function o(e){var t={mask:!0,btns:[{id:"edit-sure",name:"确定",btnClass:["edit-sure"],cb:function(){l(e)}},{id:"edit-no",name:"取消",btnClass:["edit-no"],cb:function(){u.close()}}],content:E.html(),className:"edit-order-dialog"};return new j(t)}function s(e){var t,n,a=e||0,i=/[0-9]{2}/gi;h=_(".edit-order-dialog"),p=h.find('select[name="province"]'),f=h.find('select[name="city"]'),m=h.find('select[name="county"]'),g=h.find('select[name="province"],select[name="city"]'),v=h.find('.inp[name="name"]'),y=h.find('.inp[name="phone"]'),b=h.find('.inp[name="address"]'),w=h.find('.inp[name="tel-code"]'),C=h.find('.inp[name="tel"]');var o=c();t=p.data("areacode")+"",n=!!t&&t.match(i),r({id:a,type:"getProvince",selectId:n[0]},function(){var e=p.val();"0"!==e?(A=!0,r({id:e,type:"getCity",selectId:""+n[0]+n[1]},function(){var e=f.val();"0"!==e&&r({id:e,type:"getCounty",selectId:t})})):(h.find('select[name="city"]').html('<option value="0">请选择城市</option>'),h.find('select[name="county"]').html('<option value="0">请选择区县</option>'))}),g.change(function(){var e=_(this);"province"===e.attr("name")&&("0"===e.val()?(h.find('select[name="city"]').html('<option value="0">请选择城市</option>'),h.find('select[name="county"]').html('<option value="0">请选择区县</option>')):(r({id:e.val(),type:"getCity"},function(){A=!0}),h.find('select[name="county"]').html('<option value="0">请选择区县</option>'))),"city"===e.attr("name")&&A&&("0"===e.val()?h.find('select[name="county"]').html('<option value="0">请选择区县</option>'):r({id:e.val(),type:"getCounty"}))}),v.on("blur",function(){o.name(_.trim(v.val()))}),b.on("blur",function(){o.address(_.trim(b.val()))}),y.on("blur",function(){o.mobile(_.trim(y.val()))}),C.on("blur",function(){o.tel(_.trim(w.val()),_.trim(C.val()))}),m.on("change",function(){o.city(p.val(),f.val(),m.val())})}function r(e,t){var n,a=e.selectId;"getProvince"===e.type?n=p:"getCity"===e.type?n=f:"getCounty"===e.type&&(n=m),_.ajax({type:"GET",url:"/cart/index/getAreaList",dataType:"json",data:{id:1*e.id}}).then(function(e){d(n,e.data,a),"function"==typeof t&&t()})}function d(e,t,n){var a,i,o="",s="";for(a=0;a<t.length;a++)s="Y"===t[a].is_support_express?"*":"",o+=t[a].id===n?'<option selected value="'+t[a].id+'">'+s+t[a].caption+"</option>":'<option value="'+t[a].id+'">'+s+t[a].caption+"</option>";"province"===e.attr("name")?i='<option value="0">请选择省份</option>':"city"===e.attr("name")?i='<option value="0">请选择城市</option>':"county"===e.attr("name")&&(i='<option value="0">请选择区县</option>'),e.html(i+o)}function l(e){var t=v.val(),n=p.val(),a=f.val(),o=m.val(),s=b.val(),r=y.val(),d=w.val(),l=C.val(),h={orderCode:e,userName:t,areaCode:o,address:s,mobile:r,phoneCode:d,phoneNum:l},g=c();g.name(t)&&g.city(n,a,o)&&g.address(s)&&g.mobile(r)&&g.tel(d,l)&&_.ajax({type:"post",url:"/home/orders/modifyAddress",data:h}).then(function(e){200===e.code?(u.close(),u=i("icon-waiting","订单修改","您的订单正在尝试修改,请耐心等待。稍后可在订单详情页查看修改情况!",function(){location.reload(!0)}),u.show()):new k.Alert(e.message).show()})}function c(){var e=v.siblings(".error"),t=p.siblings(".error"),n=b.siblings(".error"),a=y.siblings(".error"),i=C.siblings(".error"),o=/^[\u4e00-\u9fa5]{2,5}$/,s=/^[a-zA-Z0-9-#()()\u4e00-\u9fa5]+$/,r=/^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/,d=/^[0-9]{3,4}$/,l=/^[0-9]{8}$/,c='<i class="order-icon icon-right"></i>',u='<i class="order-icon icon-error"></i><b></b>';return{name:function(t){return o.test(t)?(e.html(c).show(),!0):(e.html(u),e.find("b").html("真实姓名至少2个中文,最多5个中文"),e.show(),!1)},city:function(e,n,a){return"0"===e||"0"===n||"0"===a?(t.html(u),t.find("b").html("请填写完整的省市区信息"),t.show(),!1):(t.html(c).show(),!0)},address:function(e){if(s.test(e))return n.html(c).show(),!0;var t="详细地址不能为空";return""!==_.trim(e)&&(t="只能包含数字、字母、汉字、#、-、()及其组合"),n.html(u),n.find("b").html(t),n.show(),!1},mobile:function(e){if(r.test(e))return a.html(c).show(),!0;var t="手机号码不能为空";return""!==_.trim(e)&&(t="你输入的联系电话格式不正确"),a.html(u),a.find("b").html(t),a.show(),!1},tel:function(e,t){return""===e&&""===t&&(c=""),e&&!d.test(e)||t&&!l.test(t)||d.test(e)&&!l.test(t)||!d.test(e)&&l.test(t)?(i.html(u),i.find("b").html("你输入的电话格式不正确"),i.show(),!1):(i.html(c).show(),!0)}}}var u,h,p,f,m,g,v,y,b,w,C,_=e("jquery"),x=e("handlebars"),k=e("js/common/dialog"),j=k.Dialog,S=k.Confirm,T=_("#cancel-dialog-tpl"),q=T.html(),I='<p class="message-title"><i class="order-icon {{messageIcon}}"></i>{{messageTitle}}</p><p class="message-summary">{{messageSummary}}</p>',E=_("#edit-dialog-tpl"),A=!1;T.remove(),E.remove(),_(".check-logistics").click(function(){_(this).siblings(".logistics").removeClass("hide")}),_(".close-logistics").click(function(){_(this).closest(".logistics").addClass("hide")}),_(".me-orders, .order-detail").on("click",".cancel-order",function(e){u=a(_(this).closest(".order, .order-detail").data("id")),u.show()}).on("click",".confirm-received",function(e){var t=_(this).closest(".order, .order-detail").data("id");u=new S({cb:function(){_.ajax({type:"POST",url:"/home/orders/confirmorder",data:{orderCode:t}}).then(function(e){200===e.code&&(u.close(),history.go(0))})},content:"您确定要确认收货吗?"}),u.show()}).on("click",".edit-order",function(){_(this).addClass("edit-order-active"),u=o(_(this).closest(".order, .order-detail").data("id")),u.show(),s(0)})}),define("js/home/orders",["jquery","handlebars","source-map"],function(e,t,n){function a(e,t,n,a){var i=1,o=1,s=0,r=!1;e.click(function(){r||("0px"===n.css("left")?s=0:(s+=o*a,r=!0),n.stop().animate({left:s},300,function(){r=!1}))}),t.click(function(){var e=n.parent().width()-n.width()+"px";r||(n.css("left")===e?n.css("left",e):(s+=-i*a,r=!0),n.stop().animate({left:s},300,function(){r=!1}))})}var i=e("jquery");e("js/home/order-block"),i(".why").click(function(){return i("#differentBag").show(),!1}),i("#differentBag").click(function(){return!1}),i(document).click(function(){i("#differentBag").hide()}),i(".bag").find("ul").each(function(){var e=i(this).parent().parent().find(".pre"),t=i(this).parent().parent().find(".next"),n=i(this).find("li").eq(0).width(),o=i(this).find("li").size(),s=n*o;i(this).css("width",s),o>5?(e.show(),t.show(),a(e,t,i(this),n)):(e.hide(),t.hide())})}),define("js/home/favorite",["jquery","handlebars","source-map","dot"],function(e,t,n){var a,i,o,s=e("jquery"),r=e("handlebars"),d=e("js/passport/mail-phone-regx").phoneRegx["+86"],l={on:"[ 降价通知 ]",off:"[ 取消通知 ]"},c=location.href.match(/type=(.*)[&]*/);e("dot"),function(){function e(e){y=1*e,u.text(e),f.find(".notice-num").text(5-e)}function t(){c.addClass("hide"),h.addClass("hide"),g.text("订阅成功")}function n(){var t=s(document).scrollTop()+s(window).height()/2;"undefined"==typeof c&&(s("body").append('<div class="body-mask hide"></div>'),c=s(".body-mask")),c.css({height:s(document).height(),width:s(document).width()}).removeClass("hide"),h.removeClass("error"),o.hasClass("noticed")?s.ajax({type:"GET",url:"/home/favorite/cancelnotice",data:{id:i}}).then(function(n){200===n.code?(e(n.data.num),p.addClass("hide"),f.removeClass("hide"),g.text("取消成功"),h.removeClass("hide").css({top:t}),o.closest(".reduction-products").length>0?o.closest(".fav-good").remove():o.removeClass("noticed").text(l.on)):n.message&&(m.text(n.message),h.removeClass("hide").addClass("error").css({top:t}))}):y>=5?(m.text("您的订阅数已经到达上限"),h.removeClass("hide").addClass("error").css({top:t})):(p.removeClass("hide"),f.addClass("hide"),h.removeClass("hide").css({top:t}))}var a,r,c,u,h,p,f,m,g,v,y,b={};0!==s(".fav-products").length&&(a=s(".default-sorts"),r=s(".all-sorts"),u=s(".reduction-notice span"),h=s(".price-notice"),p=s("#price-notice .content"),f=s("#price-notice .success"),m=s("#price-notice .error-message"),g=f.find(".subscribe-or-cancel"),v=s("#notice-phone-num"),b.phone=v.val(),b.change=!1,y=1*u.text(),s("#spread-sort").click(function(){a.slideUp(function(){r.slideDown()})}),s("#retract-sort").click(function(){r.slideUp(function(){a.slideDown()})}),s(".price-down-clock").click(function(){o=s(this),i=o.closest(".fav-good").data("id"),n()}),s('.reduction-filter input[type="checkbox"]').change(function(){location.href=s(this).parent().attr("href")}),s("#price-notice").on("click",".close",function(){t()}).on("click",".price-notice-sure",function(){var n,a;if(h.hasClass("error")||p.hasClass("hide"))t();else{if(n=s.trim(v.val()),""===n||!d.test(n))return a=""===n?"请输入手机号码":"手机号码格式不正确",v.addClass("error"),void s("#price-notice .err-text").removeClass("hide").find("em").html(a);if(v.removeClass("error"),s("#price-notice .err-text").addClass("hide"),""!==b.phone&&b.phone!==n&&!b.change)return s("#price-notice .phone-diff").removeClass("hide"),void(b.change=!0);s.ajax({type:"GET",url:"/home/favorite/notice",data:{mobile:n,id:i}}).then(function(t){200===t.code?(e(t.data.num),f.removeClass("hide"),p.addClass("hide"),b.phone=n,b.change=!1,s("#price-notice .phone-diff").addClass("hide"),o.toggleClass("noticed").text(l.off)):t.message&&(m.text(t.message),h.removeClass("hide").addClass("error"))})}}),s(".has-activity").click(function(){var e=s(this),t=e.next(".activites"),n=e.closest("li");t.hasClass("hide")?(t.removeClass("hide"),n.css("padding-bottom",t.outerHeight())):(t.addClass("hide"),n.css("padding-bottom",""))}))}(),function(){function e(e,t){var n=e.data("id"),i=e.find(".na-goods-ul"),o=a[n],s=o.cur?o.cur:1,r=Math.ceil(o.total/5),d=e.find(".na-pre"),l=e.find(".na-next");s+=t,d.removeClass("hidden"),l.removeClass("hidden"),1===s&&d.addClass("hidden"),s===r&&l.addClass("hidden"),i.animate({marginLeft:-(s-1)*i.parent(".na-goods").width()},200),o.cur=s}function t(e,t){e.css("padding-bottom",t.outerHeight()+10)}var n,a={};0!==s(".fav-brands").length&&(n=r.compile(s("#na-tpl").html()),s(".na-trigger").click(function(){var e,i=s(this),o=i.next(".na-list"),r=i.closest("li");return o.hasClass("hide")?(e=r.data("id"),a[e]&&a[e].cache?(o.removeClass("hide"),void t(r,o)):void s.ajax({type:"GET",url:"/home/favorite/newproduct",data:{id:e}}).then(function(i){var s,d,l;200===i.code&&(d=i.data,l=0===d.length?{}:{naGoods:d},s=n(l),o.removeClass("hide").find(".na-content").html(s),t(r,o),d.length>5&&r.find(".na-next").removeClass("hidden"),a[e]||(a[e]={}),a[e].cache=!0,a[e].total=d.length)})):(o.addClass("hide"),void r.css("padding-bottom",""))}),s(".na-content").on("click",".na-pre, .na-next",function(){var t=s(this),n=t.hasClass("na-pre")?-1:1;e(t.closest(".fav-brand"),n)}))}(),function(){s(".fav-articles").length<0||s(".fav-articles .desc").dotdotdot()}(),c&&c.length&&(a=c[1]),s("#me-checkall").click(function(){s('.checkbox input[type="checkbox"]').prop("checked",s(this).prop("checked"))}),s(".del-favorite").click(function(e){var t=s(this).closest(".fav-row").data("id"),n=s(this).closest(".fav-row").data("shopid"),i=s(this).closest(".fav-row").data("brandorshoptype");e.preventDefault(),s.ajax({type:"GET",url:"/home/favorite/cancel",data:{id:t,shopid:n,brandorshoptype:i,type:a}}).then(function(e){200===e.code&&history.go(0)})}),s("#me-del-checked").click(function(){var e=[],t="商品";if("brand"===a?t="品牌":"article"===a&&(t="文章"),confirm("您确定要删除您收藏的"+t+"吗?")){if(s('.checkbox input[type="checkbox"]:checked').each(function(){e.push(s(this).closest(".fav-row").data("id"))}),0===e.length)return void alert("请选中您要移除的"+t);s.ajax({type:"GET",url:"/home/favorite/cancel",data:{id:e.join(","),type:a}}).then(function(e){history.go(0)})}}),location.href.match(/is_reduction=(.*)[&]*/)&&s(".reductionChecked").attr("checked",!0),location.href.match(/is_promotion=(.*)[&]*/)&&s(".activityChecked").attr("checked",!0)}),define("js/home/currency",["jquery"],function(e,t,n){var a=e("jquery");a(".filter-select").change(function(){location.href=a(this).val()})}),define("js/home/returns",["jquery","handlebars","source-map"],function(e,t,n){e("js/home/returns-detail"),e("js/home/returns-apply")}),define("js/home/returns-detail",["jquery"],function(e,t,n){function a(){g=v[f]?v[f]:"",h.html(g+" 快递单号:"+m),c.val(f),u.val(m)}function i(){var e={};if(e.number=u.val(),e.id=1*c.val(),e.id){if(e.number)return e;alert("请填入快递单号")}else alert("请选择快递公司");return!1}function o(){var e=i();e&&s.ajax({type:"POST",url:"/home/returns/setExpressNumber",data:{id:p,isChange:y,expressId:e.id,expressNumber:e.number,expressCompany:v[e.id]}}).then(function(t){200===t.code?(f=e.id,m=e.number,r.eq(2).addClass("act")):alert(t.message),a(),l.removeClass("in-edit")})}var s=e("jquery"),r=s(".visual-return-state li"),d=s(".detail-container"),l=s(".courier-code"),c=s("#express-company"),u=s("#express-number"),h=s(".express-view-box > span"),p=s("#return-id").val(),f=s("#express-old-id").val(),m=u.val(),g="",v={},y=!1;d.parent().hasClass("exchange-detail")&&(y=!0),c.val(f),d.find(".company-list").each(function(){var e=s(this).data();v[e.id]=e.name}),s("#modify").click(function(){l.addClass("in-edit")}),s("#submit-btn").click(function(){o()})}),define("js/home/returns-apply",["jquery","handlebars","source-map"],function(e,t,n){function a(e){c.ajax({type:"POST",url:"/home/returns/getDelivery",data:{areaCode:e}}).then(function(e){var t="";200===e.code&&(c.each(e.data,function(e,n){var a="";"Y"===n.is_default&&(a='checked="checked"'),t+='<input type="radio" name="delivery-tpye" value="'+n.id+'" '+a+'"">'+n.name}),S.html(t))})}function i(e){C.hide(),2===e?(_.show(),x.hide(),C.hide()):3===e?(x.show(),_.hide(),C.hide()):4===e&&(C.show(),_.hide(),x.hide())}function o(){var e=[],t="换货";return I&&(t="退货"),p.length||(D="没有可以"+t+"的商品"),p.each(function(){var n,a=c(this).parent().parent(),i=a.next();D.length||c(this).prop("checked")&&(n={product_skn:a.find('input[name="skn"]').val(),product_skc:a.find('input[name="skc"]').val(),product_sku:a.find('input[name="sku"]').val(),goods_type:a.find('input[name="typeid"]').val(),last_price:a.find('input[name="price"]').val(),reason:1*a.find(".return-reason").val()},I?n.returned_reason=n.reason:(n.exchange_reason=n.reason,n.new_goods_id=1*a.find(".exchange-color").val(),n.new_product_sku=1*a.find(".exchange-size").val(),D||n.new_goods_id||(D="请选择要换的颜色"),D||n.new_product_sku||(D="请选择要换的尺码")),D||n.reason||(D="请选择"+t+"原因"),4!==n.reason&&6!==n.reason&&8!==n.reason||(n.remark=c.trim(i.find("textarea").val()),n.evidence_images=[],i.find('input[name="imgs"]').each(function(){n.evidence_images.push(c(this).val())}),D||n.remark||(D="请填写"+t+"描述"),D||n.evidence_images.length||(D="请上传图片")),delete n.reason,e.push(n))}),D||e.length||(D="请选择要"+t+"的商品"),e}function s(){var e={};return e.goods=o(),e.payment={},g.each(function(){c(this).prop("checked")&&(e.payment.return_amount_mode=1*c(this).val())}),D||e.payment.return_amount_mode||(D="请选择退款方式"),2===e.payment.return_amount_mode?(e.payment.province=v.val(),e.payment.city=y.val(),e.payment.area_code=b.val(),!D&&1*!e.payment.area_code&&(D="请选择银行所在地"),e.payment.bank_name=c.trim(w.find('input[name="bank-name"]').val()),D||e.payment.bank_name||(D="请填写银行名称"),e.payment.payee_name=c.trim(w.find('input[name="payee-name"]').val()),D||e.payment.payee_name||(D="请填写收款人姓名"),e.payment.bank_card=c.trim(w.find('input[name="bank-card"]').val()),D||e.payment.bank_card||(D="请填写收款账户")):3===e.payment.return_amount_mode&&(e.payment.alipay_name=c.trim(w.find('input[name="alipay-name"]').val()),D||e.payment.alipay_name||(D="请填写收款人姓名"),e.payment.alipay_account=c.trim(w.find('input[name="alipay-account"]').val()),D||e.payment.alipay_account||(D="请填写收款账户")),e}function r(){var e={};return e.goods=o(),e.consigneeName=c.trim(k.find('input[name="name"]').val()),D||e.consigneeName||(D="请填写收货人姓名"),e.areaCode=b.val(),!D&&1*!e.areaCode&&(D="请选择地区"),e.address=c.trim(k.find('input[name="address"]').val()),D||e.address||(D="请填写详细地址"),e.mobile=c.trim(k.find('input[name="phone"]').val()),e.mobile===U?e.mobile=F:D||e.mobile||(D="请填写手机号"),e.zipCode=c.trim(k.find('input[name="postcode"]').val()),e.deliveryType=k.find('input[name="delivery-tpye"]:checked').val(),D||e.deliveryType||(D="请选择商品返回方式"),e}function d(e){var t="○";e?(T.addClass("applying"),l=setInterval(function(){q.text(t),t.length>3&&(t=""),t+="○"},600)):(T.removeClass("applying"),clearInterval(l))}var l,c=e("jquery"),u=e("js/home/common-address"),h=c("#goods-table"),p=h.find('input[type="checkbox"]'),f=h.find(".return-reason"),m=h.find("input[type=file]"),g=c('input[name="refund-type"]'),v=c("#province"),y=c("#city"),b=c("#area"),w=c("#refund-pay-info"),C=w.find(".type-yoho"),_=w.find(".type-bank"),x=w.find(".type-alipay"),k=c(".exchange-detail"),j=k.find('input[name="hide-phone"]'),S=k.find(".refund-mode"),T=c(".submit-box"),q=T.find(".wait-gif span"),I=0,E=c("#order-code").val(),A=k.find('input[name="hide-area"]').val(),F=j.val(),U="",D="",P={};e("plugin/jquery.qupload"),F&&(j.remove(),U=F.replace(/(\d{3})\d{4}(\d{4})/,"$1****$2"),k.find('input[name="phone"]').val(U)),w.length?(I=1,g.each(function(){c(this).prop("checked")&&i(1*c(this).val())})):A&&a(A),A=A?A:"",u.loadAllData(A,{areaDomId:"area"}),h.find(".sizeinfo").each(function(){var e=[];c(this).children().each(function(){e.push(c(this).data())}),P[c(this).data().id]=e}),f.change(function(){var e=c(this).parent().parent(),t=1*c(this).val();4===t||6===t||8===t?e.next().show():e.next().hide()}),p.change(function(){var e=c(this).parent().parent();c(this).prop("checked")?e.find("select").prop("disabled",!1):(e.find("select").val(0).prop("disabled",!0),e.next().hide())}),h.on("change",".exchange-color",function(){var e=c(this).closest(".exchange-choose-wrap"),t='<option value="0">请选择尺码</option>',n=c(this).val();P[n]&&c.each(P[n],function(e,n){t+='<option value="'+n.id+'">'+n.name+"</option>"}),e.find(".exchange-size").html(t).val(0)}),h.on("click",".btn-del",function(){c(this).parent().empty()}),m.each(function(e){var t=c("#upload-img-"+e),n=t.closest(".problem-description");t.qupload({button_image_url:"",upload_url:window.location.origin+"/home/returns/imgUpload",file_post_name:"fileData",button_text:'<span class="btn_upload_text">上传图片</span>',button_text_style:".btn_upload_text{color: #ffffff;}",button_width:116,button_height:33,button_text_left_padding:32,button_text_top_padding:8,button_action:window.SWFUpload.BUTTON_ACTION.SELECT_FILE,file_size_limit:"10240",file_types:"*.jpg;*.jpeg;*.png;*.bmp",uploadSuccessed:function(e){var t,a,i=n.find("li"),o=!1;t=JSON.parse(e).imgList[0],a='<span class="btn-del" title="删除"></span><img src="'+t.imgUrl+'" width="126" height="126"><input type="hidden" name="imgs" value="'+t.imgRelUrl+'">',i.each(function(){o||c(this).find("img").length||(o=!0,c(this).html(a))})}})}),k.on("change","#area",function(){var e=1*c(this).val();e&&a(e)}),g.change(function(){var e=1*c(this).val();i(e)}),c(".save-btn").click(function(){var e,t;return D="",I?(e="/home/returns/saveRefund",t=s()):(e="/home/returns/saveExchange",t=r()),t.orderCode=E,D?void alert(D):(d(!0),void c.ajax({type:"POST",url:e,data:t}).then(function(e){200===e.code?e.data&&e.data.refer&&(window.location.href=e.data.refer):(alert(e.message),d(!1))}))})}),define("js/home/common-address",["jquery","handlebars","source-map"],function(e,t,n){var a=e("jquery"),i=e("js/common/dialog"),o=i.Alert,s={provinceDomId:"province",cityDomId:"city",areaDomId:"areaCode",initDomIds:function(e){var t=this;void 0!==e.provinceDomId&&(t.provinceDomId=e.provinceDomId),void 0!==e.cityDomId&&(t.cityDomId=e.cityDomId),void 0!==e.areaDomId&&(t.areaDomId=e.areaDomId)},loadAreaData:function(e,t,n,i){var s,r,d,l,c=this,u=a("#"+t),h=0,p="";u.empty(),91>e&&(a("#"+c.areaDomId).empty(),a("#county").attr("disabled","disabled")),a.ajax({type:"GET",url:"/home/address/area",data:"id="+e,success:function(e){if(e.code=200,200!==e.code)return s=new o("暂无数据"),s.show(),!1;u.append('<option value="0">'+n+"</option>");for(h in e.options)e.options[h]&&(r=e.options[h],p=t===c.areaDomId&&"Y"===r.is_support?"*":"",d=r.value,l="","undefined"!=typeof i&&0!==i&&d===i.substr(0,d.length)&&(l="selected"),u.append('<option value="'+d+'" '+l+">"+p+r.text+"</option>"))}})},bindAreaChange:function(e){var t=this;void 0===a("#"+t.provinceDomId).data("events")&&(a("#"+t.provinceDomId).change(function(){var n=a("#"+t.provinceDomId).val();"0"!==n&&(t.loadAreaData(n,t.cityDomId,"请选择城市",n),a("#"+t.areaDomId).hide(),t.showAreaSel(e.dispDomId))}),a("#"+this.cityDomId).change(function(){var n=a("#"+t.cityDomId).val();"0"!==n&&(t.loadAreaData(n,t.areaDomId,"请选择区县",n),a("#"+t.areaDomId).show(),t.showAreaSel(e.dispDomId))}),a("#"+t.areaDomId).change(function(){t.showAreaSel(e.dispDomId)}),t.showAreaSel(e.dispDomId))},showAreaSel:function(e){var t=this,n="",i=a("#"+t.provinceDomId).find("option:selected").text(),o=a("#"+t.cityDomId).find("option:selected").text(),s=a("#"+t.areaDomId).find("option:selected").text();void 0!==e&&""!==e&&(i.indexOf("选择")<0&&(n=i),""!==o&&o.indexOf("选择")<0&&(n+=","+o),""!==s&&s.indexOf("选择")<0&&(n+=","+s),a("#"+e).html(n))},loadAllData:function(e,t){var n=this;n.initDomIds(t),e+="",91>e?(n.loadAreaData(0,n.provinceDomId,"请选择省份",""),a("#"+n.areaDomId).hide(),a("#"+n.cityDomId).html('<option value="0">请选择市</option>')):4===e.length?(n.loadAreaData(0,n.provinceDomId,"请选择省份",e),n.loadAreaData(e.substr(0,2),n.cityDomId,"请选择城市",e),n.loadAreaData(e,n.areaDomId,"请选择区县",e),a("#"+n.areaDomId).show()):6===e.length&&(n.loadAreaData(0,n.provinceDomId,"请选择省份",e),n.loadAreaData(e.substr(0,2),n.cityDomId,"请选择城市",e),n.loadAreaData(e.substr(0,4),n.areaDomId,"请选择区县",e),a("#"+this.areaDomId).show()),n.bindAreaChange(t)}};n.exports=s}),define("plugin/jquery.qupload",["jquery"],function(e,t,n){function a(){0==l&&(s("body").append('<div id="progressDialog" style="display: none;width:370px;height:80px !important;"><div style="padding:10px 20px;"><span id="curUploadStatus">图片上传中……请稍等</span><div id="progress"></div></div></div>'),l=1)}function i(e,t){s("#uploadNum").html(e),s("#totalUploadNum").html(t)}function o(e,t){function n(e,n){this.options[e]=void 0==t[e]?n:t[e]}function a(e){try{}catch(t){this.debug(t)}}function o(e,t,n){var a;try{if(t===r.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED)return void alert("您尝试上传太多文件.\n"+(0===n?"您已达到上传限制.":"您最多还可以 "+(n>1?"上传 "+n+"文件.":"一个文件.")));switch(t){case r.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:a="文件超过"+C.file_size_limit/1024+"M",alert(a),this.debug("Error Code: File too big, File name: "+e.name+", File size: "+e.size+", Message: "+n);break;case r.QUEUE_ERROR.ZERO_BYTE_FILE:alert("请上传有内容的文件!"),this.debug("Error Code: Zero byte file, File name: "+e.name+", File size: "+e.size+", Message: "+n);break;case r.QUEUE_ERROR.INVALID_FILETYPE:alert("请上传指定类型的文件!"),this.debug("Error Code: Invalid File Type, File name: "+e.name+", File size: "+e.size+", Message: "+n);break;default:alert("上传文件失败,请稍后在试!"),this.debug("Error Code: "+t+", File name: "+e.name+", File size: "+e.size+", Message: "+n)}}catch(i){this.debug(i)}}function s(){null!=y&&y()}function l(e,t){try{e>0&&(b=e,w=1,i(w,b),this.startUpload())}catch(n){this.debug(n)}}function c(e){this.addPostParam("_key",v)}function u(e,t,n){Math.ceil(t/n*100)}function h(e,t){w++,i(w,b),null!=g&&g(t)}function p(e,t,n){try{if(t===r.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED)return void alert("您尝试上传太多文件.\n"+(0===n?"您已达到上传限制.":"您最多还可以 "+(n>1?"上传 "+n+"文件.":"一个文件.")));switch(t){case r.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:alert("Error Code: 文件太大。 文件名为: "+e.name+", 大小为: "+e.size+", Message: "+n);break;case r.QUEUE_ERROR.ZERO_BYTE_FILE:alert("Error Code: 文件为0, 文件名为: "+e.name+", 大小为: "+e.size+", Message: "+n);break;case r.QUEUE_ERROR.INVALID_FILETYPE:alert("Error Code: 文件类型不合要求, 文件名为: "+e.name+", 大小为: "+e.size+", Message: "+n);break;default:alert("上传出错Error Code: "+t+", File name: "+e.name+", File size: "+e.size+", Message: "+n)}}catch(a){this.debug(a)}}function f(e){}function m(e){}var g=null;void 0!=t.uploadSuccessed&&(g=t.uploadSuccessed);var v="";void 0!=t.uploadKey&&(v=t.uploadKey);var y=null;void 0!=t.preupload&&(y=t.preupload);var b=0,w=0;this.options=t;this.options.errmsg_box;n("flash_url","http://static.yohobuy.com/admin/js/swfupload/swfupload.swf"),n("upload_url","http://upload.yohobuy.com"),n("file_post_name","Filedata"),n("file_size_limit","2 MB"),n("file_types","*.*"),n("file_types_description","All Files"),n("file_upload_limit",d),n("file_queue_limit",0),n("button_image_url","http://static.yohobuy.com/admin/images/btn_swfupload.png"),n("button_width","104"),n("button_height","20"),n("button_text",'<span class="btn_upload_xzzp">选择本地照片</span>'),n("button_text_style",".btn_upload_xzzp{color:#ffffff}"),n("button_text_left_padding",24),n("button_text_top_padding",0),n("button_window_mode","TRANSPARENT"),n("button_cursor","-2");var C={flash_url:this.options.flash_url,upload_url:this.options.upload_url,file_post_name:this.options.file_post_name,file_size_limit:this.options.file_size_limit,file_types:this.options.file_types,file_types_description:this.options.file_types_description,file_upload_limit:this.options.file_upload_limit,file_queue_limit:this.options.file_queue_limit,prevent_swf_caching:!1,preserve_relative_urls:!1,custom_settings:{},debug:!1,button_image_url:this.options.button_image_url,button_width:this.options.button_width,button_height:this.options.button_height,button_placeholder_id:e,button_text:this.options.button_text,button_text_style:this.options.button_text_style,button_text_left_padding:this.options.button_text_left_padding,button_text_top_padding:this.options.button_text_top_padding,button_window_mode:this.options.button_window_mode,button_cursor:this.options.button_cursor,file_dialog_start_handler:s,file_queued_handler:a,file_queue_error_handler:o,file_dialog_complete_handler:l,upload_start_handler:c,upload_progress_handler:u,upload_error_handler:p,upload_success_handler:h,upload_complete_handler:f,queue_complete_handler:m,button_action:this.options.button_action};new r(C)}var s=e("jquery"),r=e("plugin/swfupload.queue").SWFUpload,d=6;s.fn.extend({qupload:function(e){a(),o(s(this).attr("id"),e)}});var l=0;window.SWFUpload=r}),define("plugin/swfupload.queue",[],function(e,t,n){var a=e("plugin/swfupload").SWFUpload;"function"==typeof a&&(a.queue={},a.prototype.initSettings=function(e){return function(){"function"==typeof e&&e.call(this),this.queueSettings={},this.queueSettings.queue_cancelled_flag=!1,this.queueSettings.queue_upload_count=0,this.queueSettings.user_upload_complete_handler=this.settings.upload_complete_handler,this.queueSettings.user_upload_start_handler=this.settings.upload_start_handler,this.settings.upload_complete_handler=a.queue.uploadCompleteHandler,this.settings.upload_start_handler=a.queue.uploadStartHandler,this.settings.queue_complete_handler=this.settings.queue_complete_handler||null}}(a.prototype.initSettings),a.prototype.startUpload=function(e){this.queueSettings.queue_cancelled_flag=!1,this.callFlash("StartUpload",[e])},a.prototype.cancelQueue=function(){this.queueSettings.queue_cancelled_flag=!0,this.stopUpload();for(var e=this.getStats();e.files_queued>0;)this.cancelUpload(),e=this.getStats()},a.queue.uploadStartHandler=function(e){var t;return"function"==typeof this.queueSettings.user_upload_start_handler&&(t=this.queueSettings.user_upload_start_handler.call(this,e)),t=t!==!1,this.queueSettings.queue_cancelled_flag=!t,t},a.queue.uploadCompleteHandler=function(e){var t,n=this.queueSettings.user_upload_complete_handler;if(e.filestatus===a.FILE_STATUS.COMPLETE&&this.queueSettings.queue_upload_count++,t="function"==typeof n?n.call(this,e)!==!1:e.filestatus!==a.FILE_STATUS.QUEUED){var i=this.getStats();i.files_queued>0&&this.queueSettings.queue_cancelled_flag===!1?this.startUpload():this.queueSettings.queue_cancelled_flag===!1?(this.queueEvent("queue_complete_handler",[this.queueSettings.queue_upload_count]),this.queueSettings.queue_upload_count=0):(this.queueSettings.queue_cancelled_flag=!1,this.queueSettings.queue_upload_count=0)}}),t.SWFUpload=a}),define("plugin/swfupload",[],function(require,exports,module){var SWFUpload;void 0==SWFUpload&&(SWFUpload=function(e){this.initSWFUpload(e)}),SWFUpload.prototype.initSWFUpload=function(e){try{this.customSettings={},this.settings=e,this.eventQueue=[],this.movieName="SWFUpload_"+SWFUpload.movieCount++,this.movieElement=null,SWFUpload.instances[this.movieName]=this,this.initSettings(),this.loadFlash(),this.displayDebugInfo()}catch(t){throw delete SWFUpload.instances[this.movieName],t}},SWFUpload.instances={},SWFUpload.movieCount=0,SWFUpload.version="2.2.0 2009-03-25",SWFUpload.QUEUE_ERROR={QUEUE_LIMIT_EXCEEDED:-100,FILE_EXCEEDS_SIZE_LIMIT:-110,ZERO_BYTE_FILE:-120,INVALID_FILETYPE:-130},SWFUpload.UPLOAD_ERROR={HTTP_ERROR:-200,MISSING_UPLOAD_URL:-210,IO_ERROR:-220,SECURITY_ERROR:-230,UPLOAD_LIMIT_EXCEEDED:-240,UPLOAD_FAILED:-250,SPECIFIED_FILE_ID_NOT_FOUND:-260,FILE_VALIDATION_FAILED:-270,FILE_CANCELLED:-280,UPLOAD_STOPPED:-290},SWFUpload.FILE_STATUS={QUEUED:-1,IN_PROGRESS:-2,ERROR:-3,COMPLETE:-4,CANCELLED:-5},SWFUpload.BUTTON_ACTION={SELECT_FILE:-100,SELECT_FILES:-110,START_UPLOAD:-120},SWFUpload.CURSOR={ARROW:-1,HAND:-2},SWFUpload.WINDOW_MODE={WINDOW:"window",TRANSPARENT:"transparent",OPAQUE:"opaque"},SWFUpload.completeURL=function(e){if("string"!=typeof e||e.match(/^https?:\/\//i)||e.match(/^\//))return e;var t=(window.location.protocol+"//"+window.location.hostname+(window.location.port?":"+window.location.port:""),window.location.pathname.lastIndexOf("/"));return 0>=t?path="/":path=window.location.pathname.substr(0,t)+"/",path+e},SWFUpload.prototype.initSettings=function(){this.ensureDefault=function(e,t){this.settings[e]=void 0==this.settings[e]?t:this.settings[e]},this.ensureDefault("upload_url",""),this.ensureDefault("preserve_relative_urls",!1),this.ensureDefault("file_post_name","Filedata"),this.ensureDefault("post_params",{}),this.ensureDefault("use_query_string",!1),this.ensureDefault("requeue_on_error",!1),this.ensureDefault("http_success",[]),this.ensureDefault("assume_success_timeout",0),this.ensureDefault("file_types","*.*"),this.ensureDefault("file_types_description","All Files"),this.ensureDefault("file_size_limit",0),this.ensureDefault("file_upload_limit",0),this.ensureDefault("file_queue_limit",0),this.ensureDefault("flash_url","swfupload.swf"),this.ensureDefault("prevent_swf_caching",!0),this.ensureDefault("button_image_url",""),this.ensureDefault("button_width",1),this.ensureDefault("button_height",1),this.ensureDefault("button_text",""),this.ensureDefault("button_text_style","color: #000000; font-size: 16pt;"),this.ensureDefault("button_text_top_padding",0),this.ensureDefault("button_text_left_padding",0),this.ensureDefault("button_action",SWFUpload.BUTTON_ACTION.SELECT_FILES),this.ensureDefault("button_disabled",!1),this.ensureDefault("button_placeholder_id",""),this.ensureDefault("button_placeholder",null),this.ensureDefault("button_cursor",SWFUpload.CURSOR.ARROW),this.ensureDefault("button_window_mode",SWFUpload.WINDOW_MODE.WINDOW),this.ensureDefault("debug",!1),this.settings.debug_enabled=this.settings.debug,this.settings.return_upload_start_handler=this.returnUploadStart,this.ensureDefault("swfupload_loaded_handler",null),this.ensureDefault("file_dialog_start_handler",null),this.ensureDefault("file_queued_handler",null),this.ensureDefault("file_queue_error_handler",null), +this.ensureDefault("file_dialog_complete_handler",null),this.ensureDefault("upload_start_handler",null),this.ensureDefault("upload_progress_handler",null),this.ensureDefault("upload_error_handler",null),this.ensureDefault("upload_success_handler",null),this.ensureDefault("upload_complete_handler",null),this.ensureDefault("debug_handler",this.debugMessage),this.ensureDefault("custom_settings",{}),this.customSettings=this.settings.custom_settings,this.settings.prevent_swf_caching&&(this.settings.flash_url=this.settings.flash_url+(this.settings.flash_url.indexOf("?")<0?"?":"&")+"preventswfcaching="+(new Date).getTime()),this.settings.preserve_relative_urls||(this.settings.upload_url=SWFUpload.completeURL(this.settings.upload_url),this.settings.button_image_url&&(this.settings.button_image_url=SWFUpload.completeURL(this.settings.button_image_url))),delete this.ensureDefault},SWFUpload.prototype.loadFlash=function(){var e,t;if(null!==document.getElementById(this.movieName))throw"ID "+this.movieName+" is already in use. The Flash Object could not be added";if(e=document.getElementById(this.settings.button_placeholder_id)||this.settings.button_placeholder,void 0==e)throw"Could not find the placeholder element: "+this.settings.button_placeholder_id;t=document.createElement("div"),t.innerHTML=this.getFlashHTML(),e.parentNode.replaceChild(t.firstChild,e),void 0==window[this.movieName]&&(window[this.movieName]=this.getMovieElement())},SWFUpload.prototype.getFlashHTML=function(){return['<object id="',this.movieName,'" type="application/x-shockwave-flash" data="',this.settings.flash_url,'" width="',this.settings.button_width,'" height="',this.settings.button_height,'" class="swfupload">','<param name="wmode" value="',this.settings.button_window_mode,'" />','<param name="movie" value="',this.settings.flash_url,'" />','<param name="quality" value="high" />','<param name="menu" value="false" />','<param name="allowScriptAccess" value="always" />','<param name="flashvars" value="'+this.getFlashVars()+'" />',"</object>"].join("")},SWFUpload.prototype.getFlashVars=function(){var e=this.buildParamString(),t=this.settings.http_success.join(",");return["movieName=",encodeURIComponent(this.movieName),"&uploadURL=",encodeURIComponent(this.settings.upload_url),"&useQueryString=",encodeURIComponent(this.settings.use_query_string),"&requeueOnError=",encodeURIComponent(this.settings.requeue_on_error),"&httpSuccess=",encodeURIComponent(t),"&assumeSuccessTimeout=",encodeURIComponent(this.settings.assume_success_timeout),"&params=",encodeURIComponent(e),"&filePostName=",encodeURIComponent(this.settings.file_post_name),"&fileTypes=",encodeURIComponent(this.settings.file_types),"&fileTypesDescription=",encodeURIComponent(this.settings.file_types_description),"&fileSizeLimit=",encodeURIComponent(this.settings.file_size_limit),"&fileUploadLimit=",encodeURIComponent(this.settings.file_upload_limit),"&fileQueueLimit=",encodeURIComponent(this.settings.file_queue_limit),"&debugEnabled=",encodeURIComponent(this.settings.debug_enabled),"&buttonImageURL=",encodeURIComponent(this.settings.button_image_url),"&buttonWidth=",encodeURIComponent(this.settings.button_width),"&buttonHeight=",encodeURIComponent(this.settings.button_height),"&buttonText=",encodeURIComponent(this.settings.button_text),"&buttonTextTopPadding=",encodeURIComponent(this.settings.button_text_top_padding),"&buttonTextLeftPadding=",encodeURIComponent(this.settings.button_text_left_padding),"&buttonTextStyle=",encodeURIComponent(this.settings.button_text_style),"&buttonAction=",encodeURIComponent(this.settings.button_action),"&buttonDisabled=",encodeURIComponent(this.settings.button_disabled),"&buttonCursor=",encodeURIComponent(this.settings.button_cursor)].join("")},SWFUpload.prototype.getMovieElement=function(){if(void 0==this.movieElement&&(this.movieElement=document.getElementById(this.movieName)),null===this.movieElement)throw"Could not find Flash element";return this.movieElement},SWFUpload.prototype.buildParamString=function(){var e=this.settings.post_params,t=[];if("object"==typeof e)for(var n in e)e.hasOwnProperty(n)&&t.push(encodeURIComponent(n.toString())+"="+encodeURIComponent(e[n].toString()));return t.join("&")},SWFUpload.prototype.destroy=function(){try{this.cancelUpload(null,!1);var e=null;if(e=this.getMovieElement(),e&&"unknown"==typeof e.CallFunction){for(var t in e)try{"function"==typeof e[t]&&(e[t]=null)}catch(n){}try{e.parentNode.removeChild(e)}catch(a){}}return window[this.movieName]=null,SWFUpload.instances[this.movieName]=null,delete SWFUpload.instances[this.movieName],this.movieElement=null,this.settings=null,this.customSettings=null,this.eventQueue=null,this.movieName=null,!0}catch(i){return!1}},SWFUpload.prototype.displayDebugInfo=function(){this.debug(["---SWFUpload Instance Info---\n","Version: ",SWFUpload.version,"\n","Movie Name: ",this.movieName,"\n","Settings:\n"," ","upload_url: ",this.settings.upload_url,"\n"," ","flash_url: ",this.settings.flash_url,"\n"," ","use_query_string: ",this.settings.use_query_string.toString(),"\n"," ","requeue_on_error: ",this.settings.requeue_on_error.toString(),"\n"," ","http_success: ",this.settings.http_success.join(", "),"\n"," ","assume_success_timeout: ",this.settings.assume_success_timeout,"\n"," ","file_post_name: ",this.settings.file_post_name,"\n"," ","post_params: ",this.settings.post_params.toString(),"\n"," ","file_types: ",this.settings.file_types,"\n"," ","file_types_description: ",this.settings.file_types_description,"\n"," ","file_size_limit: ",this.settings.file_size_limit,"\n"," ","file_upload_limit: ",this.settings.file_upload_limit,"\n"," ","file_queue_limit: ",this.settings.file_queue_limit,"\n"," ","debug: ",this.settings.debug.toString(),"\n"," ","prevent_swf_caching: ",this.settings.prevent_swf_caching.toString(),"\n"," ","button_placeholder_id: ",this.settings.button_placeholder_id.toString(),"\n"," ","button_placeholder: ",this.settings.button_placeholder?"Set":"Not Set","\n"," ","button_image_url: ",this.settings.button_image_url.toString(),"\n"," ","button_width: ",this.settings.button_width.toString(),"\n"," ","button_height: ",this.settings.button_height.toString(),"\n"," ","button_text: ",this.settings.button_text.toString(),"\n"," ","button_text_style: ",this.settings.button_text_style.toString(),"\n"," ","button_text_top_padding: ",this.settings.button_text_top_padding.toString(),"\n"," ","button_text_left_padding: ",this.settings.button_text_left_padding.toString(),"\n"," ","button_action: ",this.settings.button_action.toString(),"\n"," ","button_disabled: ",this.settings.button_disabled.toString(),"\n"," ","custom_settings: ",this.settings.custom_settings.toString(),"\n","Event Handlers:\n"," ","swfupload_loaded_handler assigned: ",("function"==typeof this.settings.swfupload_loaded_handler).toString(),"\n"," ","file_dialog_start_handler assigned: ",("function"==typeof this.settings.file_dialog_start_handler).toString(),"\n"," ","file_queued_handler assigned: ",("function"==typeof this.settings.file_queued_handler).toString(),"\n"," ","file_queue_error_handler assigned: ",("function"==typeof this.settings.file_queue_error_handler).toString(),"\n"," ","upload_start_handler assigned: ",("function"==typeof this.settings.upload_start_handler).toString(),"\n"," ","upload_progress_handler assigned: ",("function"==typeof this.settings.upload_progress_handler).toString(),"\n"," ","upload_error_handler assigned: ",("function"==typeof this.settings.upload_error_handler).toString(),"\n"," ","upload_success_handler assigned: ",("function"==typeof this.settings.upload_success_handler).toString(),"\n"," ","upload_complete_handler assigned: ",("function"==typeof this.settings.upload_complete_handler).toString(),"\n"," ","debug_handler assigned: ",("function"==typeof this.settings.debug_handler).toString(),"\n"].join(""))},SWFUpload.prototype.addSetting=function(e,t,n){return void 0==t?this.settings[e]=n:this.settings[e]=t},SWFUpload.prototype.getSetting=function(e){return void 0!=this.settings[e]?this.settings[e]:""},SWFUpload.prototype.callFlash=function(functionName,argumentArray){argumentArray=argumentArray||[];var movieElement=this.getMovieElement(),returnValue,returnString;try{returnString=movieElement.CallFunction('<invoke name="'+functionName+'" returntype="javascript">'+__flash__argumentsToXML(argumentArray,0)+"</invoke>"),returnValue=eval(returnString)}catch(ex){throw"Call to "+functionName+" failed"}return void 0!=returnValue&&"object"==typeof returnValue.post&&(returnValue=this.unescapeFilePostParams(returnValue)),returnValue},SWFUpload.prototype.selectFile=function(){this.callFlash("SelectFile")},SWFUpload.prototype.selectFiles=function(){this.callFlash("SelectFiles")},SWFUpload.prototype.startUpload=function(e){this.callFlash("StartUpload",[e])},SWFUpload.prototype.cancelUpload=function(e,t){t!==!1&&(t=!0),this.callFlash("CancelUpload",[e,t])},SWFUpload.prototype.stopUpload=function(){this.callFlash("StopUpload")},SWFUpload.prototype.getStats=function(){return this.callFlash("GetStats")},SWFUpload.prototype.setStats=function(e){this.callFlash("SetStats",[e])},SWFUpload.prototype.getFile=function(e){return"number"==typeof e?this.callFlash("GetFileByIndex",[e]):this.callFlash("GetFile",[e])},SWFUpload.prototype.addFileParam=function(e,t,n){return this.callFlash("AddFileParam",[e,t,n])},SWFUpload.prototype.removeFileParam=function(e,t){this.callFlash("RemoveFileParam",[e,t])},SWFUpload.prototype.setUploadURL=function(e){this.settings.upload_url=e.toString(),this.callFlash("SetUploadURL",[e])},SWFUpload.prototype.setPostParams=function(e){this.settings.post_params=e,this.callFlash("SetPostParams",[e])},SWFUpload.prototype.addPostParam=function(e,t){this.settings.post_params[e]=t,this.callFlash("SetPostParams",[this.settings.post_params])},SWFUpload.prototype.removePostParam=function(e){delete this.settings.post_params[e],this.callFlash("SetPostParams",[this.settings.post_params])},SWFUpload.prototype.setFileTypes=function(e,t){this.settings.file_types=e,this.settings.file_types_description=t,this.callFlash("SetFileTypes",[e,t])},SWFUpload.prototype.setFileSizeLimit=function(e){this.settings.file_size_limit=e,this.callFlash("SetFileSizeLimit",[e])},SWFUpload.prototype.setFileUploadLimit=function(e){this.settings.file_upload_limit=e,this.callFlash("SetFileUploadLimit",[e])},SWFUpload.prototype.setFileQueueLimit=function(e){this.settings.file_queue_limit=e,this.callFlash("SetFileQueueLimit",[e])},SWFUpload.prototype.setFilePostName=function(e){this.settings.file_post_name=e,this.callFlash("SetFilePostName",[e])},SWFUpload.prototype.setUseQueryString=function(e){this.settings.use_query_string=e,this.callFlash("SetUseQueryString",[e])},SWFUpload.prototype.setRequeueOnError=function(e){this.settings.requeue_on_error=e,this.callFlash("SetRequeueOnError",[e])},SWFUpload.prototype.setHTTPSuccess=function(e){"string"==typeof e&&(e=e.replace(" ","").split(",")),this.settings.http_success=e,this.callFlash("SetHTTPSuccess",[e])},SWFUpload.prototype.setAssumeSuccessTimeout=function(e){this.settings.assume_success_timeout=e,this.callFlash("SetAssumeSuccessTimeout",[e])},SWFUpload.prototype.setDebugEnabled=function(e){this.settings.debug_enabled=e,this.callFlash("SetDebugEnabled",[e])},SWFUpload.prototype.setButtonImageURL=function(e){void 0==e&&(e=""),this.settings.button_image_url=e,this.callFlash("SetButtonImageURL",[e])},SWFUpload.prototype.setButtonDimensions=function(e,t){this.settings.button_width=e,this.settings.button_height=t;var n=this.getMovieElement();void 0!=n&&(n.style.width=e+"px",n.style.height=t+"px"),this.callFlash("SetButtonDimensions",[e,t])},SWFUpload.prototype.setButtonText=function(e){this.settings.button_text=e,this.callFlash("SetButtonText",[e])},SWFUpload.prototype.setButtonTextPadding=function(e,t){this.settings.button_text_top_padding=t,this.settings.button_text_left_padding=e,this.callFlash("SetButtonTextPadding",[e,t])},SWFUpload.prototype.setButtonTextStyle=function(e){this.settings.button_text_style=e,this.callFlash("SetButtonTextStyle",[e])},SWFUpload.prototype.setButtonDisabled=function(e){this.settings.button_disabled=e,this.callFlash("SetButtonDisabled",[e])},SWFUpload.prototype.setButtonAction=function(e){this.settings.button_action=e,this.callFlash("SetButtonAction",[e])},SWFUpload.prototype.setButtonCursor=function(e){this.settings.button_cursor=e,this.callFlash("SetButtonCursor",[e])},SWFUpload.prototype.queueEvent=function(e,t){void 0==t?t=[]:t instanceof Array||(t=[t]);var n=this;if("function"==typeof this.settings[e])this.eventQueue.push(function(){this.settings[e].apply(this,t)}),setTimeout(function(){n.executeNextEvent()},0);else if(null!==this.settings[e])throw"Event handler "+e+" is unknown or is not a function"},SWFUpload.prototype.executeNextEvent=function(){var e=this.eventQueue?this.eventQueue.shift():null;"function"==typeof e&&e.apply(this)},SWFUpload.prototype.unescapeFilePostParams=function(e){var t,n=/[$]([0-9a-f]{4})/i,a={};if(void 0!=e){for(var i in e.post)if(e.post.hasOwnProperty(i)){t=i;for(var o;null!==(o=n.exec(t));)t=t.replace(o[0],String.fromCharCode(parseInt("0x"+o[1],16)));a[t]=e.post[i]}e.post=a}return e},SWFUpload.prototype.testExternalInterface=function(){try{return this.callFlash("TestExternalInterface")}catch(e){return!1}},SWFUpload.prototype.flashReady=function(){var e=this.getMovieElement();return e?(this.cleanUp(e),void this.queueEvent("swfupload_loaded_handler")):void this.debug("Flash called back ready but the flash movie can't be found.")},SWFUpload.prototype.cleanUp=function(e){try{if(this.movieElement&&"unknown"==typeof e.CallFunction){this.debug("Removing Flash functions hooks (this should only run in IE and should prevent memory leaks)");for(var t in e)try{"function"==typeof e[t]&&(e[t]=null)}catch(n){}}}catch(a){}window.__flash__removeCallback=function(e,t){try{e&&(e[t]=null)}catch(n){}}},SWFUpload.prototype.fileDialogStart=function(){this.queueEvent("file_dialog_start_handler")},SWFUpload.prototype.fileQueued=function(e){e=this.unescapeFilePostParams(e),this.queueEvent("file_queued_handler",e)},SWFUpload.prototype.fileQueueError=function(e,t,n){e=this.unescapeFilePostParams(e),this.queueEvent("file_queue_error_handler",[e,t,n])},SWFUpload.prototype.fileDialogComplete=function(e,t,n){this.queueEvent("file_dialog_complete_handler",[e,t,n])},SWFUpload.prototype.uploadStart=function(e){e=this.unescapeFilePostParams(e),this.queueEvent("return_upload_start_handler",e)},SWFUpload.prototype.returnUploadStart=function(e){var t;if("function"==typeof this.settings.upload_start_handler)e=this.unescapeFilePostParams(e),t=this.settings.upload_start_handler.call(this,e);else if(void 0!=this.settings.upload_start_handler)throw"upload_start_handler must be a function";void 0===t&&(t=!0),t=!!t,this.callFlash("ReturnUploadStart",[t])},SWFUpload.prototype.uploadProgress=function(e,t,n){e=this.unescapeFilePostParams(e),this.queueEvent("upload_progress_handler",[e,t,n])},SWFUpload.prototype.uploadError=function(e,t,n){e=this.unescapeFilePostParams(e),this.queueEvent("upload_error_handler",[e,t,n])},SWFUpload.prototype.uploadSuccess=function(e,t,n){e=this.unescapeFilePostParams(e),this.queueEvent("upload_success_handler",[e,t,n])},SWFUpload.prototype.uploadComplete=function(e){e=this.unescapeFilePostParams(e),this.queueEvent("upload_complete_handler",e)},SWFUpload.prototype.debug=function(e){this.queueEvent("debug_handler",e)},SWFUpload.prototype.debugMessage=function(e){if(this.settings.debug){var t,n=[];if("object"==typeof e&&"string"==typeof e.name&&"string"==typeof e.message){for(var a in e)e.hasOwnProperty(a)&&n.push(a+": "+e[a]);t=n.join("\n")||"",n=t.split("\n"),t="EXCEPTION: "+n.join("\nEXCEPTION: "),SWFUpload.Console.writeLine(t)}else SWFUpload.Console.writeLine(e)}},SWFUpload.Console={},SWFUpload.Console.writeLine=function(e){var t,n;try{t=document.getElementById("SWFUpload_Console"),t||(n=document.createElement("form"),document.getElementsByTagName("body")[0].appendChild(n),t=document.createElement("textarea"),t.id="SWFUpload_Console",t.style.fontFamily="monospace",t.setAttribute("wrap","off"),t.wrap="off",t.style.overflow="auto",t.style.width="700px",t.style.height="350px",t.style.margin="5px",n.appendChild(t)),t.value+=e+"\n",t.scrollTop=t.scrollHeight-t.clientHeight}catch(a){alert("Exception: "+a.name+" Message: "+a.message)}},exports.SWFUpload=SWFUpload}),define("js/home/comment",["jquery"],function(e,t,n){var a,i=e("jquery"),o=i(".comment-table"),s=o.find(".remark-btn"),r=i("#comment-dialog-widget"),d=r.find(".dialog-titlebar"),l=r.find("textarea"),c=i(document).width(),u=i(document).height(),h=i(window).height(),p={canmove:!1,offset:{},maxtop:0,maxleft:0},f={};s.each(function(){var e=i(this).next(),t=e.data(),n=t.orderid;f[n]={},f[n].productSkn=t.productskn,f[n].productId=t.productid,f[n].goodsId=t.goodsid,f[n].orderId=t.orderid,f[n].erpSkuId=t.erpskuid,e.remove(),i(this).data("code",n)}),s.click(function(){var e=i(document).scrollTop();a=i(this),l.val(""),r.removeClass("hide").css({top:e+(h-r.outerHeight())/2,left:(c-r.outerWidth())/2})}),d.bind("mousedown",function(e){i(e.target).hasClass("dialog-close-btn")||(p.canmove=!0,p.offset={x:e.offsetX,y:e.offsetY},p.maxtop=u-r.outerHeight(),p.maxleft=c-r.outerWidth())}),i(document).mousemove(function(e){var t,n;p.canmove&&(t=e.pageY-p.offset.y,n=e.pageX-p.offset.x,t=t<p.maxtop?t:p.maxtop,n=n<p.maxleft?n:p.maxleft,r.css({top:t>0?t:0,left:n>0?n:0}))}).mouseup(function(e){p.canmove=!1}),r.on("click",".dialog-save-btn",function(){var e,t=i.trim(l.val());return""===t?void alert("请添加评论内容"):void(a.length&&(e=f[a.data().code],e.content=t,i.ajax({type:"POST",url:"/home/comment/saveComment",data:e}).then(function(e){var n=a.parent();200===e.code?(n.prev().text(t),n.html('<span class="remarked">已评论!</span>'),a.length=0,r.addClass("hide")):alert(e.message)})))}),r.on("click",".dialog-close-btn",function(){a.length=0,r.addClass("hide")})}),define("js/home/complaints",["jquery"],function(e,t,n){function a(){return m?!0:(m=!0,setTimeout(function(){m=!1},1e3),!1)}function i(e){var t=e.dom.siblings(".option-tip"),n=d.trim(e.dom.val()),a=n.length;return e.min&&a<e.min?(t.text(e.onmin),!1):e.max&&a>e.max?(t.text(e.onmax),!1):e.regexp&&!e.regexp.test(n)?(t.text(e.onerror),!1):(t.text("输入正确"),!0)}function o(){var e,t={};return d.each(g,function(n,a){i(a)?t[n]=d.trim(a.dom.val()):e||(e=n,a.dom.focus())}),t.complaintsType=h.val(),e?!1:t}function s(){var e=o();!a()&&e&&d.ajax({type:"POST",url:"/home/complaints/addcomplaints",data:e}).then(function(e){m=!1,200===e.code?window.location.reload():alert(e.message)})}function r(e,t){var n=t;a()||d.ajax({type:"POST",url:"/home/complaints/cancelcomplaints",data:{id:e}}).then(function(e){m=!1,200===e.code?(n.prev().remove(),n.text("问题已撤销")):alert(e.message)})}var d=e("jquery"),l=d(".cancel-btn"),c=d("#title"),u=d("#customer"),h=d("#complaintsType"),p=d("#orderCode"),f=d("#content"),m=!1,g={title:{dom:c,min:1,max:10,onshow:"请输入您的投诉主题",onfocus:"请输入主题",onmin:"投诉主题不能为空",onmax:"输入投诉主题不能超过10个字"},customer:{dom:u,min:1,max:10,onshow:"请填写您要投诉的对象,比如:客服00*号、发货员...",onfocus:"请填写您要投诉的对象",onmin:"投诉对象不能为空",onmax:"输入投诉对象不能超过10个字"},orderCode:{dom:p,regexp:/^([0-9,]{9,})$/,onshow:"如果多个是多个订单号,请用英文逗号隔开,没有则不填",onfocus:"请输入订单号",onerror:"您输入的订单格式不对,如果多个是多个订单号,请用英文逗号隔开"},content:{dom:f,min:1,max:130,onshow:"输入您投诉的内容",onfocus:"请输入您投诉的内容",onmin:"投诉内容不能为空",onmax:"输入的投诉内容不能超过130个字"}};d.each(g,function(e,t){t.dom.focus(function(){t.dom.siblings(".option-tip").text(t.onfocus)}).blur(function(){i(t)})}),d("#complaint-submit").click(function(){s()}),l.click(function(){var e=d(this).data();e&&e.id&&r(e.id,d(this).parent())})}),define("js/home/message",["jquery"],function(e,t,n){function a(){var e=!1;o=r.find(".msg-check:checked"),c=[],o.each(function(){var t=s(this).parent().parent();c.push(s(this).val()),t.hasClass("new-msg")&&(e=!0)}),e?l.addClass("has-new"):l.removeClass("has-new")}function i(e,t){var n;switch(e){case"del":n="/home/message/delMessage";break;case"read":n="/home/message/readMessage"}s.ajax({type:"GET",url:n,data:t}).then(function(t){t.code?200===t.code?"read"===e&&(o.removeAttr("checked"),o.parent().parent().removeClass("new-msg"),a()):alert(t.message):"del"===e&&(r.html(t),d=r.find(".msg-check"),l=r.find(".read-choose-btn"))})}var o,s=e("jquery"),r=s("#message-main-container"),d=r.find(".msg-check"),l=r.find(".read-choose-btn"),c=[];e("js/home/message-content"),r.on("change",'input[type="checkbox"]',function(){var e=s(this).attr("checked");s(this).hasClass("choose-all")&&("checked"===e?d.attr("checked",!0):d.removeAttr("checked")),a()}),r.on("click",".del-btn",function(){confirm("您确定要删除这条短消息?")&&i("del",s(this).data())}),r.on("click",".del-choose-btn",function(){return c.length?void(confirm("确定要删除您选中的消息")&&i("del",{id:c.join(",")})):void alert("请选中您要删除的消息")}),r.on("click",".read-choose-btn",function(){s(this).hasClass("has-new")&&i("read",{id:c.join(",")})})}),define("js/home/message-content",["jquery"],function(e,t,n){var a=e("jquery"),i=a(".pick-coupon-btn"),o=!1;i.click(function(){var e=a(this).data();o||(o=!0,a.ajax({type:"GET",url:"/home/message/pickCoupon",data:e}).then(function(e){var t=e.message;200===e.code&&(t="领取成功",a(this).removeClass("pick-coupon-btn")),o=!1,alert(t)}))})}),define("js/home/edit",["jquery","handlebars","source-map"],function(e,t,n){function a(){var e=u("#nickname").val().length,t=u("#username").val().length,n=u('input[name="gender"]'),a=u("#year"),i=u("#month"),o=u("#day");return 0===e?(alert("请输入昵称"),!1):0===t?(alert("请输入用户名"),!1):e>=20?(alert("昵称最长为20个字符"),!1):n.is(":checked")?"0"===a.val()||"0"===i.val()||"0"===o.val()?(alert("请选择出生年月日"),!1):!0:(alert("请选择性别"),!1)}function i(){return"0"===u("#province").val()||"0"===u("#city").val()||"0"===u("#areaCode").val()?(alert("请选择所在区域"),!1):null===u("#province").val()||null===u("#city").val()||null===u("#areaCode").val()?(alert("请选择所在区域"),!1):0===u("#phone").val().length&&0===u("#mobile").val().length?(alert("电话和手机号码不能同时为空,请填写!"),!1):0===u("#fullAddress").val().length?(alert("请填写地址"),!1):0===u("#zipCode").val().length||u("#zipCode").val().length<2?(alert("请填写邮编"),!1):!0}function o(){return u(".user-habbit-info input").is(":checked")?!0:(alert("请填写购物&着装习惯"),!1)}function s(){return""===u("#likebrand").val()?(alert("请选择品牌"),!1):!0}function r(e){var t=u("#likebrand").val();return 0===parseInt(e)?!1:(u("#likebrand").val(t.replace(","+e+",",",")),u("#pp-"+e).attr("checked",!1),void u("#brand-"+e).remove())}function d(e,t,n){var a='<li id="brand-'+t+'">'+n+'<a href="javascript:void(0);" class="btn-del"></a></li>',i=u("#brand-"+t).html(),o=u("#likebrand").val(),s=u("#brand-box");return 0===parseInt(t)?!1:"undefined"!=typeof e&&""!==e&&e.checked===!1?(r(t),!1):i?(alert("您已经选择了该品牌."),!1):(s.append(a),s.find("li>a").off("click").on("click",function(){r(u(this).closest("li").attr("id").substr(6))}),o+=t+",",void u("#likebrand").val(o))}function l(){var e={brandName:u("#keywords").val()};u.post("/home/user/isbrandname",e,function(e){return 200===e.code?e.data.id&&e.data.brand_name?(d("",e.data.id,e.data.brand_name),u("#keywords").val(""),!0):(alert("网络异常,请重试"),!1):(alert(e.message),!1)},"json")}function c(e,t){var n=u("#"+t).closest("form");u.post(e,n.serialize(),function(e){return 200===e.code?(alert(e.message),setTimeout(function(){n.closest("div").next().find("h2").click()},100),!0):(alert(e.message),!1)},"json")}var u=e("jquery"),h=u(".userinfo-edit form"),p=e("js/home/common-address"),f={init:function(e,t,n){var a=u("#year"),i=u("#month"),o=u("#day"),s=this;this.createDay(a.val(),i.val(),o.val()),a.on("change",function(){s.update()}),i.on("change",function(){s.update()})},update:function(){this.createDay(u("#year").val(),u("#month").val(),u("#day").val())},createDay:function(e,t,n){var a,i,o='<select name="day" id="day">',s=new Array(4,6,9,11),r=31;if(e=parseInt(e),t=parseInt(t),0===e&&(e=0),0===t&&(t=0),u("#year").val(e.toString()),u("#month").val(t.toString()),o+='<option value="0">日</option>',e>0&&t>0)for(-1!==u.inArray(t,s)?r=30:2===t&&(r=28,0!==e%4||e%100===0&&e%400!==0||(r=29)),i=1;r>=i;i++)a="",parseInt(n)===i&&(a="selected"),o+='<option value="'+i+'" '+a+">"+i+"</option>";o+="</select>",u("#day").replaceWith(o)}};u(".userinfo-edit h2").on("click",function(){var e=u(this).next();h.slideUp("fast"),"none"===e.css("display")?e.slideDown("slow"):null}),u("#base-info").on("click",function(){a()&&c("/home/user/edituserinfo/","base-info")}),u("#contact-info").on("click",function(){i()&&c("/home/user/editusercontactinfo/","contact-info")}),u("#shopping-info").on("click",function(){o()&&c("/home/user/edituserhabitsinfo/","shopping-info")}),u("#favorite-brand").on("click",function(){s()&&u.ajax({url:"/home/user/edituserlikebrand/",type:"post",datatype:"json",data:{brand:u("#likebrand").val()},success:function(e){return 200===e.code?(alert(e.message),!0):(alert(e.message),!1)},error:function(e){alert("网络异常")}})}),u("#add-brand-btn").on("click",function(){l()}),u('.user-favorite-info input[type="checkbox"]').on("click",function(){var e=u(this);d(this,e.attr("id").substr(3),e.parent().text())}),function(){var e=u("#brand-box li");e.length>0&&e.find("a").on("click",function(){r(u(this).closest("li").attr("id").substr(6))})}(),f.init(),function(){u("#province").val()?p.bindAreaChange({provinceDomId:"province",cityDomId:"city",areaDomId:"areaCode"}):p.loadAllData(0,{provinceDomId:"province",cityDomId:"city",areaDomId:"areaCode"})}()}),define("js/home/gift",["jquery","handlebars","source-map"],function(e,t,n){function a(){var e=new Date;return o("#imgcode").attr("src","/passport/images?t="+e.getTime()),!1}var i,o=e("jquery"),s=e("js/common/dialog"),r=s.Alert,d=o(".giftCardCode").find(".gift-error"),l=o(".captchaCode").find(".gift-error"),c="",u="",h=1,p={suc:[!1,!1,!1,!1],checkCard:function(e){if(c=/^[0-9a-zA-Z]{4,4}$/,c.test(o("#giftCardCode"+e).val())){for(h=1;3>=h;h++)c.test(o("#giftCardCode"+h).val())?(d.html(""),p.suc[h]=!0):(d.html("您输入的兑换码有误,兑换码必须为数字或字母,每个文本框里只能输入四个兑换码!"),p.suc[h]=!1);3!==e&&o("#giftCardCode"+(e+1)).focus()}else d.html("您输入的兑换码有误,兑换码必须为数字或字母,每个文本框里只能输入四个兑换码!"),p.suc[e-1]=!1},bindGiftCardForm:function(){o("#giftCardCode1").bind("blur keyup",function(){p.checkCard(1)}),o("#giftCardCode2").bind("blur keyup",function(){p.checkCard(2)}),o("#giftCardCode3").bind("blur keyup",function(){p.checkCard(3)}),o("#captchaCode").bind("blur keyup",function(){u=o("#captchaCode").val(),u.length<=0?(l.html("请输入验证码!"),p.suc[3]=!1):(l.html(""),p.suc[3]=!0)})},checkForm:function(){return c.test(o("#giftCardCode1").val())&&c.test(o("#giftCardCode2").val())&&c.test(o("#giftCardCode3").val())?""===o.trim(o("#captchaCode").val())?(l.html("请输入验证码!"),!1):!0:(d.html("您输入的兑换码有误,兑换码必须为数字或字母,每个文本框里只能输入四个兑换码!"),!1)}};o("#sub-gift").on("click",function(){return p.checkForm()?void o.post("/home/gift/exchange",o("#giftCardForm").serialize(),function(e){200===e.code?window.location.href="/home/gift?type=1":400===e.code?(i=new r(e.message),i.show(),a()):window.location.href="/home/gift?type=2"},"json"):!1}),o(document).on("click","#imgcode,.check-img",function(){a()}),o(function(){a(),p.bindGiftCardForm()})}),define("js/home/validate",["jquery","handlebars","source-map"],function(e,t,n){function a(e,t){return e.$checkInfo.html('<div class="form-error">'+t+"</div>"),"code"!==e.dom.attr("name")&&"verifyCode"!==e.dom.attr("name")&&e.dom.addClass("input-error"),!1}function i(e){return e.$checkInfo.html('<div class="form-success"> </div>'),"code"!==e.dom.attr("name")&&"verifyCode"!==e.dom.attr("name")&&e.dom.removeClass("input-error"),!0}function o(e){var t;return v.post(e.url,e.data,function(n){"undefined"!=typeof n.code&&200===n.code?t=i(e.opt):(e.txt=""!==e.txt&&null!==e.txt?e.txt:n.message,t=a(e.opt,e.txt))}),t}function s(e){var t=e.val(),n=t.length,s=e.parent(),r=s.find(".check-info"),d=e.attr("name"),l="",c="",u="",h={$checkInfo:r,dom:e},p={opt:h};return r.html(""),"password"===d?0===n?a(h,"密码不能为空!"):(v.extend(p,{url:"/home/account/checkpassword",data:{password:t},txt:"密码错误!"}),o(p)):"verifyCode"===d?(v.extend(p,{url:"/home/account/checkverifycode",data:{verifyCode:t},txt:"验证码错误!"}),o(p)):"email"===d?(l=b.emailRegx,null===t.match(l)?a(h,"邮箱错误!"):(v.extend(p,{url:"/home/account/checkemail",data:{email:t},txt:""}),o(p))):"mobile"===d?(l=b.phoneRegx,c=t.split("-"),l=1===c.length?t.match("^1[35847]{1}[0-9]{9}"):l["+"+c[0]].test(c[1]),0===n?a(h,"手机号不能为空!"):null!==l&&l?(v.extend(p,{url:"/home/account/checkmobile",data:{mobile:t},txt:"手机号已经存在!"}),o(p)):a(h,"手机号错误!")):"newPwd"===d?(l=b.pwdValidateRegx,l.test(t)?i(h):a(h,"建议6~20个数字+字母组合!")):"confirm_password"===d?v("#newPwd").val()!==t?a(h,"两次密码不一致!"):i(h):"code"!==d?!0:(u=v("#realAccount").length>0?v("#realAccount").val():v("#mobilevalue").val(),""!==t?(v.extend(p,{url:"/home/account/checkmobilemsg",data:{mobile:u,code:v("#inputcode").val()},txt:"验证码错误!"}),o(p)):void 0)}function r(){var e=[];return k=!1,v.each(_,function(t,n){e[t]=s(v(n))}),!(e.indexOf(!1)>=0)}function d(){var e=(new Date).getTime();v("#the-code-img").attr("src","/passport/images?len=6&time="+e)}function l(){var e="";j>0?(e="重新发送"+j+"秒",v("#sendButton").text(e),j-=1):(j=60,v("#sendButton").text("发送验证码"),clearInterval(m),x=!0)}function c(e){var t=v("#inputcode"),n=t.parent().find("check-info");v.post("/home/account/sendmobilemsg",{mobile:e},function(e){"undefined"!=typeof e.code&&200===e.code?(x=!1,m=setInterval(function(){l()},1e3),n.html("")):n.html('<div class="form-error">验证码发送失败</div>')})}function u(){var e,t,n,a=v("#mobilevalue");if(a.length>0?(e=a.next(),t=a.val(),n=t.split("-"),n=1===n.length?t.match("^1[35847]{1}[0-9]{9}"):b.phoneRegx["+"+n[0]].test(n[1])):t=v("#realAccount").val(),!x)return!1;if(a.length>0){if(null===n||!n)return e.html('<div class="form-error">手机号错误!</div>'),a.addClass("input-error"),!1;e.find(".form-success").length>0&&c(t)}v("#realAccount").length>0&&c(t)}function h(){window.location.href="/home/account"}function p(e,t){v.post(e.url,e.data,function(n){return 200!==n.code?(k=!0,g=new w(n.message),g.show(),!1):(t&&(e.hrefUrl+="&checkCode="+n.data),void(window.location.href=e.hrefUrl))},"json")}function f(){var e=v(".progress-bar .cur").index(),t=v("#verifyType").val(),n="",a={};v(".email").length>0&&(n="email"),v(".mobile").length>0&&(n="mobile"),v(".userpwd").length>0&&(n="userpwd"),0===e?"1"===t?(a={url:"/home/account/verifypassword",data:v("#pwdform").serialize(),hrefUrl:"/home/account/"+n+"?step=2"},p(a,"step1")):"2"===t?(a={url:"/home/account/sendemail",data:{checkType:n,email:v("#realAccount").val()},hrefUrl:"/home/account/sendemailsuccess?email="+v("#realAccount").val()+"&type=1&checkType="+n},p(a)):(a={url:"/home/account/checkmobilemsg",data:{mobile:v("#realAccount").val(),code:v("#inputcode").val()},hrefUrl:"/home/account/"+n+"?step=2"},p(a,"step1")):1===e&&("userpwd"===n?(a={url:"/home/account/modifypwd",data:v("#pwdform").serialize(),hrefUrl:"/home/account/userpwd?step=3&success=true"},p(a)):"email"===n?(a={url:"/home/account/modifyemail",data:{email:v("#email").val()},hrefUrl:"/home/account/sendemailsuccess?email="+v("#email").val()+"&type=2&checkType=email"},p(a)):(a={url:"/home/account/modifymobile",data:{mobile:v("#mobilevalue").val(),code:v("#inputcode").val()},hrefUrl:"/home/account/mobile?step=3&success=true"},p(a)))}var m,g,v=e("jquery"),y=e("js/common/dialog"),b=e("js/passport/mail-phone-regx"),w=y.Alert,C=v(".check-user"),_=C.find("input").not("input[type=button],input[type=hidden],input[type=reset]"),x=!0,k=!0,j=60;v.ajaxSetup({async:!1}),Array.prototype.indexOf||(Array.prototype.indexOf=function(e,t){ +var n,a;for(n=t||0,a=this.length;a>n;n++)if(this[n]===e)return n;return-1}),v(function(){var e=null;v(".res-info").length>0&&(e=setTimeout(function(){h()},5e3)),d(),v("#pwdform").submit(function(){return!1}),_.blur(function(){s(v(this))}),v(".sub-btn").on("click",function(){return k===!1?!1:r()?void f():!1}),v("input[name=verifyCode]").keydown(function(e){if(13===e.keyCode){if(k===!1)return!1;if(!r())return!1;f()}}),v(".the-code").on("click",function(){d()}),v("#send-mobile-code").on("click",function(){u()}),v("#newPwd").length>0&&v("#newPwd").on("input",function(e){var t=v("input[name=confirm_password]"),n=t.val(),i=v("#newPwd").val(),o={dom:t,$checkInfo:t.next()};n.length>0&&i!==n&&a(o,"两次密码不一致!")})})}),define("js/home/address",["jquery","handlebars","source-map"],function(e,t,n){function a(e){var t=e.parents(".address-content"),n=t.attr("addressId");return n}function i(e){var t="";"addressName"===e.inputName&&(t="真实姓名在2到5个汉字之间"),"address"===e.inputName&&(t="请填写详细地址"),"zipCode"===e.inputName&&(t="请输入收货人所在地邮编号"),"phone"===e.inputName&&(t="格式例如:0577-88888888"),"mobile"===e.inputName&&(t="请输入手机号,如1360000000"),"email"===e.inputName&&(t="用来接收订单提醒邮件,便于您及时了解订单状态"),e.$checkInfo.removeClass("form-prompt").addClass("form-focus").html(t)}function o(e){var t="",n=!0,a="输入正确",i="form-info form-success",o=e.val;return"addressName"===e.inputName&&(t=/^[\u4e00-\u9fa5]{2,5}$/,e.len<1||e.len>12?(a="真实姓名在2到5个汉字之间,请确认",n=!1,i="form-info form-error"):t.test(e.val)===!1&&(a="真实姓名至少2个中文,最多5个中文",n=!1,i="form-info form-error")),"address"===e.inputName&&e.len<2&&(a="请填写详细地址",n=!1,i="form-info form-error"),"zipCode"===e.inputName&&(t=/^[0-9]{6}$/,0===e.len?(a="请输入收货人所在地邮编号",n=!1,i="form-info form-error"):t.test(e.val)===!1&&(a="你输入的邮编式不正确",n=!1,i="form-info form-error")),"phone"===e.inputName&&(t=/^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$/,0===e.len?(a="你真的不想留联系电话了吗?",n=!0,i="form-info form-success"):t.test(e.val)===!1&&(a="你输入的联系电话格式不正确",n=!1,i="form-info form-error")),"mobile"===e.inputName&&(t=/^1[3|4|5|8|7][0-9]{9}$/,11!==e.len?(a="手机号码必须是11位的,请确认",n=!1,i="form-info form-error"):t.test(e.val)===!1&&(a="您输入的手机号格式不正确",n=!1,i="form-info form-error")),"email"===e.inputName&&(t="^[a-z0-9_-]+(.[_a-z0-9-]+)*@([_a-z0-9-]+.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$",null!==o.match(t)&&0!==e.len||(a="你输入的邮件地址格式不正确",n=!1,i="form-info form-error")),e.$checkInfo.removeClass().addClass(i).html(a),n}function s(e,t){var n=e.val(),a=e.parent(),s={val:n,len:n.length,$domParent:e.parent(),$checkInfo:a.find("span"),inputName:e.attr("name")};return"focus"===t&&i(s),"blur"===t?o(s):void 0}function r(){var e=c("#phone").next(),t=c("#mobile").next();return t.hasClass("form-success")&&!e.hasClass("form-error")&&0===c("#phone").val().length?(e.removeClass().addClass("form-prompt form-info").html("请输入你的联系电话,可以为空哦"),!0):"输入正确"!==e.html()||t.hasClass("form-error")||0!==c("#mobile").val().length?t.hasClass("form-success")||"输入正确"===e.html()?void 0:(e.removeClass().addClass("form-success form-info").html("你真的不想留联系电话了吗?"),t.removeClass().addClass("form-prompt form-info").html("填写手机号便于接收发货和收货通知"),c("#mobile").focus(),!1):(t.removeClass().addClass("form-prompt form-info").html("填写手机号便于接收发货和收货通知"),!0)}function d(){var e=[];return c.each(g,function(t,n){e.push(s(c(n),"blur"))}),e.push(r()),c.each(c(".form-info"),function(e,t){return c(t).hasClass("form-error")?(c(t).prev().focus(),!1):void 0}),-1===e.indexOf(!1)}var l,c=e("jquery"),u=e("js/home/common-address"),h=e("js/common/dialog"),p=h.Alert,f=c(".address-del"),m=c(".address-modify"),g=c(".input-1"),v={evil:function(e){var t=Function;return new t("return "+e)()},clearAddrForm:function(){c("#addressName").val(""),c("#address").val(""),c("#zipCode").val(""),c("#phone").val(""),c("#mobile").val(""),c("#email").val(""),c("#addrId").val(0),c("#province").val(0),c("#city").val(0),c("#areaCode").val(0).hide(),c("#btn-reset").hide(),c("#form-status").html("添加新地址")},editAddr:function(e){c.getJSON("/home/address/editAddress?id="+e,function(e){200===e.code&&(c("#form-status").html("修改地址"),c("#addressName").val(e.data.consignee),u.loadAllData(e.data.area_code,{}),c("#address").val(e.data.address),c("#email").val(e.data.email),c("#phone").val(e.data.phone),c("#mobile").val(e.data.mobile),c("#zipCode").val(e.data.zip_code),c("#addrId").val(e.data.address_id),c("#btn-reset").show())})},saveAddr:function(e){c.post("/home/address/saveAddress",c("#address-form").serialize(),function(e){200===e.code?location.reload():(l=new p(e.message),l.show())},"json")},delAddr:function(e){c.getJSON("/home/address/delAddress?id="+e,function(t){200===t.code?(c(".address-list").find("li[addressId="+e+"]").remove(),e===c("#addrId").val()&&v.clearAddrForm()):(l=new p("删除失败"),l.show())})},setDefaultAddr:function(e){var t=c(".address-list").find(".default-btn"),n=c(".address-list").find(".default-btn").parents("li"),a=c(".address-list").find("li[addressId="+e+"]"),i=a.find(".set-default-btn");c.getJSON("/home/address/defaultAddress?id="+e,function(e){200===e.code?(t.attr("class","btn-c3 set-default-btn"),n.removeClass("preferred"),t.html("<span>设为常用地址</span>"),i.attr("class","btn-c2 default-btn"),t.html("<span>设为常用地址</span>"),a.addClass("preferred")):(l=new p("设置失败"),l.show())})}};Array.prototype.indexOf||(Array.prototype.indexOf=function(e,t){var n,a;for(n=t||0,a=this.length;a>n;n++)if(this[n]===e)return n;return-1}),c(document).on("click",".set-default-btn",function(){var e=a(c(this));v.setDefaultAddr(e)}),f.on("click",function(){var e=a(c(this));v.delAddr(e)}),m.on("click",function(){var e=a(c(this));v.editAddr(e),c("#btn-reset").show()}),g.on("focus",function(){s(c(this),"focus")}),g.on("blur",function(){s(c(this),"blur")}),c("#address-info").on("click",function(){d()&&v.saveAddr()}),c(document).ready(function(){u.loadAllData(0,{provinceDomId:"province",cityDomId:"city",areaDomId:"areaCode"}),v.clearAddrForm(),c("#btn-reset").click(function(){v.clearAddrForm()})})}),define("js/help/entry",["jquery","handlebars","source-map"],function(e,t,n){e("js/help/search")}),define("js/help/search",["jquery","handlebars","source-map"],function(e,t,n){var a=e("jquery"),i=e("handlebars"),o=a(".search-content"),s=a("#help-dialog-widget"),r=a("#help-dialog-bg"),d=a(document).width(),l=a(window).height(),c='<div class="dialog-titlebar"><span class="dialog-close-btn"></span></div><div class="dialog-content"><p class="ask">问:<br>{{ask}}</p><p class="answer">答:<br>{{answer}}</p></div>',u=i.compile(c);o.on("click",".faqs",function(){var e=a(this).data(),t=a(document).scrollTop();s.html(u(e)).removeClass("hide"),r.removeClass("hide"),s.html(u(e)).css({top:t+(l-s.outerHeight())/2,left:(d-s.outerWidth())/2})}),s.on("click",".dialog-close-btn",function(){s.addClass("hide"),r.addClass("hide")})}),define("js/order/ensure",["jquery","handlebars","source-map"],function(e,t,n){function a(e,t,n,a){var i=1,o=1,s=0,r=!1;e.click(function(){r||("0px"===n.css("left")?s=0:(s+=o*a,r=!0),n.stop().animate({left:s},300,function(){r=!1}))}),t.click(function(){var e=n.parent().width()-n.width()+"px";r||(n.css("left")===e?n.css("left",e):(s+=-i*a,r=!0),n.stop().animate({left:s},300,function(){r=!1}))})}var i=e("jquery"),o=e("js/order/address"),s=e("js/common/dialog"),r=function(e,t){var n=0,a=e.toString(),i=t.toString();try{n+=a.split(".")[1].length}catch(o){}try{n+=i.split(".")[1].length}catch(o){}return Number(a.replace(".",""))*Number(i.replace(".",""))/Math.pow(10,n)},d={Data:{product:0,activity:0,carriage:0,juan:0,yohocoin:0},UI:{e:{$pan:i(".pan"),$jc:i("#juancode"),$bp:i("#biprice"),$statistics:i("li",".play-total"),$tobi:i("p em",".play-bi-pan .play-pan"),$cancel:i(".cancel",".btn-group"),$total:i("em",".to-play"),$tbody:i("table tbody",".pay-wapper"),$orderSelectionSave:i(".address-list h2 span"),$addAddress:i(".add-address"),$addressManage:i(".address-manage"),$spanPayTypeLegend:i("span.pay-type-legend"),$supportType:i(".support-type"),$existAddressListWrap:i(".exist-address-list"),$existAddressList:i(".exist-address-list").find("li"),$existAddress:i(".exist-address-list").find('input[name="exist-address"]'),$payTimeModify:i(".pay-time-modify"),$switchPayModify:i(".switch-pay-modify"),$modityPayInfo:i(".modity-pay-info"),$payTotal:i(".play-total"),$toPay:i(".to-play em"),$redEnvelopes:i(".red-envelopes"),$useEnvelopes:i(".use-envelopes"),$hasEnvelopes:i(".has-envelopes span"),$useEnvelopesInput:i(".use-envelopes").find("input"),$expressFee:i(".express-fee")},init:function(){var e=this.e,t=d.Data,n=d.Common;e.$tbody.find("tr").each(function(a){var o=i(this).find("td"),s=e.$tbody.find("tr").length,r=parseFloat(o.eq(1).html())*parseInt(o.eq(3).html());o.eq(1).html("¥"+o.eq(1).html()),o.hasClass("xforone")?(o.eq(4).find("del").html("¥"+n.strFixed(r)),r=0):o.eq(4).html("¥"+n.strFixed(r)),t.product+=r,a?o.last().remove():o.last().attr("rowspan",s),a===s-1&&e.$tbody.find("tr").eq(0).find("td").last().html("<strong>¥"+n.strFixed(t.product)+"</strong>")}),e.$pan.find("dt").click(function(){var e=i(this).parent("dl.pan");e.find("dd").is(":hidden")?(n.winShow(e),i(this).addClass("active")):(n.winHide(e),i(this).removeClass("active"))}),e.$orderSelectionSave.click(function(){var t=0,n=i(".exist-address-list li"),a=n.length,o=0;if(i(this).attr("expand")){for(t=0;a>t;t++)n.eq(t).hasClass("address_select")&&o++,n.eq(t).hasClass("address_select")||n.eq(t).addClass("hide");0===o&&(i('.exist-address-list li:not(".use-new-address")').removeClass("hide"),i(".use-new-address input").removeAttr("checked")),i(".address-list-inner li.address_select input").attr("checked","checked"),i(".address-list-inner li").removeClass("active"),i(".address-list-inner li.address_select").addClass("active"),i(this).removeAttr("expand").text("[修改]"),i(".save-btn").addClass("hide"),e.$existAddressListWrap.removeClass("address-expand"),e.$addressManage.addClass("hide")}else i(this).attr("expand","expand").text("[不保存并关闭]"),i(".exist-address-list li").removeClass("hide"),i(".save-btn").removeClass("hide"),e.$existAddressListWrap.addClass("address-expand"),1===a&&e.$addressManage.removeClass("hide")}),e.$switchPayModify.click(function(){e.$payTimeModify.hasClass("hide")?(e.$payTimeModify.removeClass("hide"),e.$modityPayInfo.addClass("hide"),i(this).text("[不保存并关闭]")):(e.$payTimeModify.addClass("hide"),e.$modityPayInfo.removeClass("hide"),i(this).text("[修改]"),e.$payTimeModify.find('input[name="pay-type"]').filter(".checked").attr("checked","checked"),e.$payTimeModify.find('input[name="pay-time-radio"]').filter(".checked").attr("checked","checked"),e.$payTimeModify.find('input[name="call-me"]').filter(".checked").attr("checked","checked"))}),e.$spanPayTypeLegend.click(function(){i(this).toggleClass("active"),e.$supportType.toggleClass("hide")}),i(document).on("click",".exist-address-list li",function(){i(".exist-address-list li").removeClass("active"),i(this).addClass("active"),i(this).find("input").attr("checked","checked"),i(this).hasClass("use-new-address")&&(e.$addressManage.removeClass("hide"),i(".address-manage input").val(""),i(".save-btn").removeAttr("data-id"),o.newAddress(0,"000000"))})},render:function(e,t){var n,a,o,s=this.e,d=e.promotion_formula_list,l=e.package_list,c="",u="";for(a=t?t:"",n=0;n<d.length;n++)"优惠券:"===d[n].promotion&&(d[n].promotion=(a?a:"优惠券")+'<span class="juan-modify">[修改]</span>:'),"YOHO币:"===d[n].promotion&&(d[n].promotion='YOHO币<span class="bi-modify">[修改]</span>:'),u=d[n].isExpress?"total-express-w":"",c+='<li class="'+u+'"><label>'+d[n].promotion+"</label><em>"+d[n].promotion_amount+"</em></li>";s.$payTotal.html(c),s.$toPay.html(e.last_order_amount.toFixed(2)),i("#biprice").val(r(100,e.use_yoho_coin)),0===~~e.use_yoho_coin?i(".errbitip").text(""):i(".errbitip").text("抵扣"+e.use_yoho_coin.toFixed(2)+"元"),o=s.$useEnvelopesInput.data("all")-e.use_red_envelopes,~~e.use_red_envelopes>0?(s.$useEnvelopes.find("span").html("-¥"+e.use_red_envelopes.toFixed(2)),s.$useEnvelopes.find("input").attr("data-use",e.use_red_envelopes)):(s.$useEnvelopes.find("span").html("-¥0.00"),s.$hasEnvelopes.html("¥"+(1*s.$useEnvelopesInput.attr("data-all")).toFixed(2)),s.$redEnvelopes.removeClass("active"),s.$useEnvelopesInput.prop("checked",!1)),s.$hasEnvelopes.html("¥"+o.toFixed(2)),l&&s.$expressFee.each(function(e,t){var n=l[e].shopping_orig_cost,a=l[e].shopping_cut_cost,o=l[e].shopping_cost,s=0===parseInt(n)?"运费:¥0.00元":"运费:¥"+o+"元(原价"+n+"元,优惠"+a+")元";i(t).text(s)})}},Common:{enterNUM:function(e,t){return e=e.replace(/[^\d]/g,""),e&&t&&(e=parseInt(e),t=parseInt(t),e>t&&(e=t)),e},calucate:function(){var e=d.Data;return i.each(d.Data,function(t,n){e[t]=parseFloat(d.Data[t])}),e.product-e.activity+e.carriage-e.juan-e.yohocoin},winShow:function(e){e.find("dt").show(),e.find("dd").show(),e.attr("class").match(/(-bi-)|(-juan-)/g)&&e.find("dt").hide()},winHide:function(e){e.find("dt").show(),e.find("dd").hide()},strFixed:function(e){return parseFloat(e).toFixed(2)}},Bll:{e:{$juanok:i("#juansubmit"),$juantip:i(".errtip",".play-juan-pan"),$biok:i("#bisubmit"),$carriageGroup:i('input[name="carriagegroup"]'),$selectExpress:i(".express-list input"),$bp:i("#biprice"),$errorTip:i(".errbitip"),$useEnvelopes:i(".use-envelopes"),$hasEnvelopes:i(".has-envelopes span"),$useEnvelopesInput:i(".use-envelopes").find("input"),$redEnvelopes:i(".red-envelopes"),$loading:i(".loading")},init:function(){function e(e){var t,n=i('.play-juan.is-select input[name="juangroup"]:checked'),a=i('.express-list input[name="carriagegroup"]:checked').val(),o=i("#biprice.is-select").val(),s=n.val(),r=i(".address-manage").attr("cart-type"),d=i(".use-envelopes input:checked").attr("data-use");s=s?s:n.closest("li").find("#juancode").val(),t={cartType:r,deliveryWay:a,couponCode:s,yohoCoin:o},d&&(t.redEnvelopes=d),e(t)}function t(e,t){var n=e;n.keyup(function(){n.val().length>t&&n.val(n.val().substr(0,t))})}var n,a,o=this.e,r=d.UI,l=d.Common;o.$selectExpress.click(function(){var t=i(this).val();o.$loading.show(),e(function(e){e.deliveryWay=t,n={type:"POST",url:"/cart/index/orderCompute",data:e,success:function(e){o.$loading.hide(),200===e.code?(r.render(e.data),"1"===t?i(".express-list.sf").addClass("hide"):"2"===t&&i(".express-list.sf").removeClass("hide")):new s.Alert(e.message).show()}},i.ajax(n)})}),o.$juanok.click(function(){var t=i(this).parents("dl.pan"),a="";i(".play-juan").addClass("is-select"),e(function(e){var s=e.couponCode;s?(o.$loading.show(),n={type:"POST",url:"/cart/index/orderCompute",data:e,success:function(e){o.$loading.hide(),200===e.code?(a=i('.play-juan input[value="'+s+'"]').next().text(),r.render(e.data,a),l.winHide(t),o.$juantip.html("")):(o.$juantip.html(e.message),i(".play-juan").removeClass("is-select"))}},i.ajax(n)):(o.$juantip.html("请选择或填写一个优惠券"),i(".play-juan").removeClass("is-select"))})}),i(document).on("click",".juan-modify",function(){var e=i(".play-juan-pan");l.winShow(e)}),o.$biok.click(function(){var t,a=i(this).parents("dl.pan");i("#biprice").addClass("is-select"),e(function(e){e.couponCode&&(t=i('.play-juan input[value="'+e.couponCode+'"]').next().text()),/^\d+$/.test(e.yohoCoin+"")&&1*e.yohoCoin!==0?1*e.yohoCoin>1*i(".play-pan em").text()?(i(".errbitip").html("您的YOHO币不足"),i("#biprice").removeClass("is-select")):(o.$loading.show(),n={type:"POST",url:"/cart/index/orderCompute",data:e,success:function(e){o.$loading.hide(),200===e.code?(r.render(e.data,t),l.winHide(a)):(i(".errbitip").html(e.message),i("#biprice").removeClass("is-select"))}},i.ajax(n)):(i(".errbitip").html("请输入一个正整数"),i("#biprice").removeClass("is-select"))})}),i(document).on("click",".bi-modify",function(){var e=i(".play-bi-pan");l.winShow(e)}),o.$bp.keyup(function(){var e=i(this).val();/^\d+$/.test(e+"")?1*e>1*i(this).data("bi")?o.$errorTip.html("您的YOHO币不足"):o.$errorTip.html("抵扣"+(e/100).toFixed(2)+"元"):o.$errorTip.html("请输入一个正整数")}),i(".cancel-bi").click(function(){var t,a=i(".play-bi-pan");i(".errbitip").html(""),i("#biprice").hasClass("is-select")?(o.$loading.show(),e(function(e){e.yohoCoin=0,e.couponCode&&(t=i('.play-juan input[value="'+e.couponCode+'"]').next().text()),n={type:"POST",url:"/cart/index/orderCompute",data:e,success:function(e){o.$loading.hide(),200===e.code?(r.render(e.data,t),l.winHide(a),i("#biprice").val("0"),i("#biprice").removeClass("is-select"),i(".errbitip").html("")):i(".errbitip").html(e.message)}},i.ajax(n)})):(l.winHide(a),i("#biprice").val("0"))}),i(".cancel-code").click(function(){var t=i(".play-juan-pan");i(".play-juan").hasClass("is-select")?(o.$loading.show(),e(function(e){e.couponCode="",n={type:"POST",url:"/cart/index/orderCompute",data:e,success:function(e){o.$loading.hide(),200===e.code?(r.render(e.data),l.winHide(t),i(".play-juan").removeClass("is-select"),i("#juancode").val("").siblings('input[name="juangroup"]').attr("checked","checked")):o.$juantip.html(e.message)}},i.ajax(n)})):l.winHide(t)}),a=o.$useEnvelopesInput.data("all")-o.$useEnvelopesInput.data("use"),o.$hasEnvelopes.text("¥"+a.toFixed(2)),o.$useEnvelopes.find("input").click(function(){var t,a=i(this);o.$loading.show(),a.attr("disabled","disabled"),e(function(e){a.attr("checked")?e.redEnvelopes=a.data("use"):e.redEnvelopes=0,t=i('.play-juan input[value="'+e.couponCode+'"]').next().text(),n={type:"POST",url:"/cart/index/orderCompute",data:e,success:function(e){o.$loading.hide(),200===e.code?(r.render(e.data,t),a.removeAttr("disabled"),a.attr("checked")?o.$redEnvelopes.addClass("active"):(o.$useEnvelopes.find("span").html("-¥0.00"),o.$hasEnvelopes.html("¥"+(1*a.attr("data-all")).toFixed(2)),o.$redEnvelopes.removeClass("active"))):new s.Alert(e.message).show()}},i.ajax(n)})}),t(i("#piaodesc"),30),t(i("#notedesc"),100)}}};d.Data.activity=0,d.Data.carriage=0,d.UI.init(),d.Bll.init(),o.getUserAddressList(),o.newAddress(0,"000000"),o.modifyAddress(),o.saveAddress(),i(".why").click(function(){return i("#differentBag").show(),!1}),i("#differentBag").click(function(){return!1}),i(document).click(function(){i("#differentBag").hide()}),i(".bag").find("ul").each(function(){var e=i(this).parent().parent().find(".pre"),t=i(this).parent().parent().find(".next"),n=i(this).find("li").eq(0).width(),o=i(this).find("li").size(),s=n*o;i(this).css("width",s),o>5?(e.show(),t.show(),a(e,t,i(this),n)):(e.hide(),t.hide())})}),define("js/order/address",["jquery","handlebars","source-map"],function(e,t,n){function a(e,t,n){var a,i,o="",s="";for(a=0;a<t.length;a++)s="Y"===t[a].is_support_express?"*":"",o+=t[a].id===n?'<option selected value="'+t[a].id+'">'+s+t[a].caption+"</option>":'<option value="'+t[a].id+'">'+s+t[a].caption+"</option>";"province"===e.attr("name")?i='<option value="0">请选择省份</option>':"city"===e.attr("name")?i='<option value="0">请选择城市</option>':"county"===e.attr("name")&&(i='<option value="0">请选择区县</option>'),e.html(i+o)}function i(e,t){var n,i=e.selectId;"getProvince"===e.type?n=f:"getCity"===e.type?n=m:"getCounty"===e.type&&(n=g),c.ajax({type:"GET",url:"/cart/index/getAreaList",dataType:"json",data:{id:1*e.id}}).then(function(e){a(n,e.data,i),"function"==typeof t&&t()})}function o(e){return e.replace(/^(\d{3}).*(\d{4})$/,"$1****$2")}function s(e){b.val(e.attr("data-name")),b.attr("data-id",e.attr("data-id")),_.val(e.attr("data-addressDesc")),w.val(e.attr("data-mobile")),C.val(e.attr("data-email")),x.val(e.attr("data-zipcode")),j.val(e.attr("data-phoneCode")),S.val(e.attr("data-phoneNum"))}function r(){T.removeClass("active"),q.find('li:not(".active")').addClass("hide"),q.find("li.active").addClass("address_select"),p.addClass("hide"),k.addClass("hide").removeAttr("data-id"),q.removeClass("address-expand"),c(".address-list h2 span").text("[修改]")}function d(){var e,t,n,a=c(".play-juan ul"),i="";c.ajax({type:"GET",dataType:"json",url:"/cart/index/getCouponList"}).then(function(o){if(200===o.code){for(t=o.data,e=t.length,n=0;e>n;n++)i+='<li><input name="juangroup" type="radio" value="'+t[n].code+'" '+(t[n].valid?"":'disabled="disabled"')+"><label>"+t[n].desc+"</label></li>";a.prepend(c(i))}})}function l(e){return"N"!==e}var c=e("jquery"),u=e("js/common/dialog"),h=!1,p=c(".address-manage"),f=p.find('.text-input[name="province"]'),m=p.find('.text-input[name="city"]'),g=p.find('.text-input[name="county"]'),v=p.find('.text-input[name="province"], .text-input[name="city"]'),y=c(".address-list"),b=p.find('.text-input[name="name"]'),w=p.find('.text-input[name="phone"]'),C=p.find('.text-input[name="mail"]'),_=p.find('.text-input[name="address"]'),x=p.find('.text-input[name="code"]'),k=c(".save-btn"),j=p.find('.text-input[name="tel-code"]'),S=p.find('.text-input[name="tel"]'),T=c(".use-new-address"),q=c(".exist-address-list"),I=c(".loading"),E=c("#order-edit-main"),A=p.attr("cart-type");I.show(),t.getUserAddressList=function(){var e,t,n="",a="",i="",o="",s=0;c.ajax({type:"GET",url:"/cart/index/getAddress",dataType:"json"}).then(function(r){if(I.hide(),200===r.code){if(e=r.data.list,!e)return E.attr("data-new")&&(k.addClass("new-user-btn").html("下一步:选择支付及送货时间"),c(".pay-btn").addClass("new-user-pay").html("下一步:发票和备注"),c(".switch-pay-modify").html("")),y.find(">h2").find("span").click(),c(".exist-address-list li").click(),void c(".use-new-address").removeClass("active");for(t=0;t<e.length;t++)e[t].checked?(a="checked",i="active address_select",s++,o="默认地址"):(a="",i="hide",o="设为默认地址"),n+='<li data-id="'+e[t].id+'" class="'+i+'" data-express="'+e[t].isSupport+'"><input data-name="'+e[t].user+'" data-areaCode="'+e[t].areaCode+'" data-addressDesc="'+e[t].addressDesc+'" data-mobile="'+e[t].mobile+'" data-phoneNum="'+e[t].phoneNum+'" data-phoneCode="'+e[t].phoneCode+'" data-zipCode="'+e[t].zipCode+'" data-email="'+e[t].email+'" class="radio" type="radio" name="address" '+a+' /><label for=""><strong>'+e[t].user+"</strong>"+e[t].address+'<a href="javascript:void(0);" class="default-address">'+o+'</a><div class="order-modify-btn"><span class="address-modify">[修改]</span><span class="address-del">[删除]</span></div></label></li>';c(".use-new-address").before(c(n)),0===s&&c(".address-list h2 span").click(),"N"===c(".active.address_select").attr("data-express")?(c('.express-list input[name="carriagegroup"][value="2"]').attr("disabled","disabled"),c('.express-list input[name="carriagegroup"][value="1"]').attr("checked","checked"),c(".express-list.sf").addClass("hide"),c(".is-sup").removeClass("hide")):(c('.express-list input[name="carriagegroup"][value="2"]').removeAttr("disabled"),c(".express-list.sf").removeClass("hide"),c(".is-sup").addClass("hide"))}})},t.newAddress=function(e,t){var n=e||0,a=/[0-9]{2}/gi,o=!!t&&t.match(a);i({id:n,type:"getProvince",selectId:o[0]},function(){var e=f.val();"0"!==e?i({id:e,type:"getCity",selectId:""+o[0]+o[1]},function(){var e=m.val();"0"!==e&&i({id:e,type:"getCounty",selectId:t})}):(p.find('select[name="city"]').html('<option value="0">请选择城市</option>'),p.find('select[name="county"]').html('<option value="0">请选择区县</option>'))}),v.change(function(){var e=c(this);"province"===e.attr("name")&&("0"===e.val()?(p.find('select[name="city"]').html('<option value="0">请选择城市</option>'),p.find('select[name="county"]').html('<option value="0">请选择区县</option>')):(i({id:e.val(),type:"getCity"},function(){h=!0}),p.find('select[name="county"]').html('<option value="0">请选择区县</option>'))),"city"===e.attr("name")&&h&&("0"===e.val()?p.find('select[name="county"]').html('<option value="0">请选择区县</option>'):i({id:e.val(),type:"getCounty"}))})},t.modifyAddress=function(){y.click(function(e){var n=c(e.target),a=n.closest("li").attr("data-id"),i=n.closest("li").find(".radio").attr("data-areaCode");n.hasClass("address-modify")?(p.removeClass("hide"),t.newAddress(0,i),s(n.closest("li").find(".radio")),c(".address-list-inner .save-btn").removeClass("hide"),k.attr("data-id",a),h=!0):n.hasClass("address-del")?(I.show(),c.ajax({type:"POST",url:"/cart/index/delAddress",data:{id:a}}).then(function(e){I.hide(),200===e.code?n.closest("li").remove():new u.Alert(e.message).show()}).fail(function(){})):n.hasClass("default-address")&&!n.parents("li").hasClass("address_select")&&(I.show(),c.ajax({type:"post",url:"/cart/index/setDefaultAddress",data:{id:a}}).then(function(e){I.hide(),200===e.code?(c(".exist-address-list li").removeClass("address_select").find(".default-address").text("设为默认地址"),n.parents("li").addClass("address_select"),n.text("默认地址")):new u.Alert(e.message).show()}))})},t.saveAddress=function(){k.click(function(){function e(e){return e===y?e?e+"-":" ":e?e+" ":" "}var t,n,a,i=c(this),s=b.val(),d=f.val(),l=m.val(),h=g.val(),p=_.val(),v=w.val(),y=j.val(),T=S.val(),q=C.val(),I=x.val(),E=f.find('option[value="'+d+'"]').text().replace(/\*/,""),A=m.find('option[value="'+l+'"]').text().replace(/\*/,""),F=g.find('option[value="'+h+'"]').text().replace(/\*/,""),U={consignee:s,areaCode:h,address:p,email:q,mobile:v,zipCode:I,phoneCode:y,phoneNum:T},D=/^[\u4e00-\u9fa5]{2,5}$/,P=/^[\s\S]{2,100}$/,O=/^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/,L=/^[0-9]{6}$/,$=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,N=/^[0-9]{3,5}$/,z=/^[0-9]{5,10}$/;if(a=c('.exist-address-list li:not(".use-new-address")').find('input[name="address"]:checked').length>0,c(".add-address").attr("checked")||!a||c(".save-btn").attr("data-id")||(c(".exist-address-list li").removeClass("address_select"),c(".exist-address-list li.active").addClass("address_select").find('input[name="address"]').attr("checked","checked"),c(".address-list span").removeAttr("expand"),r()),!c(".address-manage").hasClass("hide")){if(!D.test(s))return void new u.Alert("真实姓名至少2个中文,最多5个中文").show();if(!P.test(p))return void new u.Alert("你输入的地址格式不正确").show();if(!O.test(v))return void new u.Alert("你输入的联系电话格式不正确").show();if(y&&!N.test(y)||T&&!z.test(T)||N.test(y)&&!z.test(T)||!N.test(y)&&z.test(T))return void new u.Alert("你输入的电话格式不正确").show();if(q&&!$.test(q))return void new u.Alert("你输入的邮箱格式不正确").show();if(I&&!L.test(I))return void new u.Alert("你输入的邮编格式不正确").show();k.attr("data-id")&&(U.id=k.attr("data-id")),c.ajax({type:"post",url:"/cart/index/saveAddress",data:U}).then(function(a){var d;200===a.code?(d=a.data,"Y"===d.is_support?(c('.express-list input[name="carriagegroup"][value="2"]').removeAttr("disabled"),c(".express-list.sf").removeClass("hide"),c(".is-sup").addClass("hide")):(c('.express-list input[name="carriagegroup"][value="2"]').attr("disabled","disabled"),c('.express-list input[name="carriagegroup"][value="1"]').attr("checked","checked"),c(".express-list.sf").addClass("hide"),c(".is-sup").removeClass("hide")),t=U.id?'<li class="active" data-id="'+U.id+'" data-express="'+d.is_support+'"><input data-name="'+U.consignee+'" data-areaCode="'+U.areaCode+'" data-addressDesc="'+U.address+'" data-mobile="'+U.mobile+'" data-phoneNum="'+U.phoneNum+'" data-phoneCode="'+U.phoneCode+'" data-zipCode="'+U.zipCode+'" data-email="'+U.email+'" checked="checked" class="radio" type="radio" name="address" /><label><strong>'+s+"</strong><span>"+E+" "+A+" "+F+" "+p+" "+e(I)+o(v)+e(y)+e(T)+'</span><a href="javascript:void(0);" class="default-address">设为默认地址</a><div class="order-modify-btn"><span class="address-modify">[修改]</span><span class="address-del">[删除]</span></div></label></li>':'<li class="active" data-id="'+d.id+'" data-express="'+d.is_support+'"><input data-name="'+d.consignee+'" data-areaCode="'+d.area_code+'" data-addressDesc="'+d.address+'" data-mobile="'+d.mobile+'" data-phoneNum="'+U.phoneNum+'" data-phoneCode="'+U.phoneCode+'" data-zipCode="'+d.zip_code+'" data-email="'+d.email+'" checked="checked" class="radio" type="radio" name="address" /><label><strong>'+s+"</strong><span>"+E+" "+A+" "+F+" "+p+" "+e(I)+o(v)+e(y)+e(T)+'</span><a href="javascript:void(0);" class="default-address">设为默认地址</a><div class="order-modify-btn"><span class="address-modify">[修改]</span><span class="address-del">[删除]</span></div></label></li>',i.attr("data-id")?(n=c('.exist-address-list li[data-id="'+i.attr("data-id")+'"]'),n.after(c(t)).remove()):c(".use-new-address").before(c(t)),c(".address-list span").removeAttr("expand"),r()):new u.Alert(a.message).show()})}return 0===c(".exist-address-list li").find('input[name="address"]:checked').length?void new u.Alert("请选择一个地址").show():("N"===c(".exist-address-list li").find('input[name="address"]:checked').closest("li").attr("data-express")?(c('.express-list input[name="carriagegroup"][value="2"]').attr("disabled","disabled"),c('.express-list input[name="carriagegroup"][value="1"]').attr("checked","checked"),c(".express-list.sf").addClass("hide"),c(".is-sup").removeClass("hide")):(c('.express-list input[name="carriagegroup"][value="2"]').removeAttr("disabled"),c(".express-list.sf").removeClass("hide"),c(".is-sup").addClass("hide")),void(i.hasClass("new-user-btn")&&c(".switch-pay-modify").click()))})},c(".pay-time-modify .pay-btn").click(function(){var e=c(this),t=c(".modity-pay-info"),n=c(".pay-time-modify"),a=n.find('input[name="pay-type"]:checked').val(),i=n.find('input[name="pay-type"]:checked').next("label").text(),o=n.find('input[name="pay-time-radio"]:checked').next("label").text(),s=n.find('input[name="pay-time-radio"]:checked').val(),r=n.find('input[name="call-me"]:checked').next("label").text(),d=n.find('input[name="call-me"]:checked').val();I.show(),c.ajax({type:"POST",url:"/cart/index/orderCompute",dataType:"json",data:{cartType:A,paymentType:a}}).then(function(n){I.hide(),200===n.code?(t.find("li").eq(0).find("span").text(i),t.find("li").eq(1).find("span").text(o),t.find("li").eq(2).find("span").text(r),c(".pay-time-modify").addClass("hide").find('input[name="pay-type"][value='+a+"]").addClass("checked").end().find('input[name="pay-time-radio"][value='+s+"]").addClass("checked").end().find('input[name="call-me"][value='+d+"]").addClass("checked"),c(".modity-pay-info").removeClass("hide"),c(".switch-pay-modify").text("[修改]"),e.hasClass("new-user-pay")&&(c(".play-piao-pan dd").css({display:"block"}),c(".play-piao-pan dt").addClass("active"))):new u.Alert(n.message).show()})}),d(),c(".to-play input.submit").click(function(){var e=c(this),t=c('.exist-address-list input[name="address"]:checked').closest("li").attr("data-id"),n=c('.pay-time-modify input[name="pay-time-radio"]:checked').val(),a=c('.select-express input[name="carriagegroup"]:checked').val(),i=c("#piaodesc").val(),o=c("#piaotype").val(),s=c('.pay-time-modify input[name="pay-type"]:checked').val(),r=c('.pay-time-modify input[name="pay-type"]:checked').data("pay"),d=c("#notedesc").val(),h=c("#biprice").val(),p=c('.pay-time-modify input[name="call-me"]:checked').val(),f=c('.play-pan input[name="isPP"]:checked').val(),m=c(".use-envelopes input:checked").attr("data-use"),g=c('.play-juan.is-select input[name="juangroup"]:checked'),v=g.val(),y=v?v:g.closest("li").find("#juancode").val();I.show(),e.attr("disabled")||(e.attr("disabled","disabled"),c.ajax({type:"POST",dataType:"json",url:"/cart/index/orderSub",data:{addressId:t,cartType:A,deliveryTimeId:n,deliveryWayId:a,invoiceTitle:i,invoiceId:o,paymentId:r,paymentType:s,remark:d,couponCode:y,yohoCoin:h,isPreContact:l(p),isPrintPrice:l(f),redEnvelopes:m}}).then(function(e){I.hide(),200===e.code?window.location.href=e.data.payUrl:new u.Alert(e.message).show()}).always(function(){e.removeAttr("disabled")}))})}),define("js/shopping/pay",["jquery"],function(e,t,n){function a(){v?u('.mode div[id="'+v+'"]').addClass("choosed-tag").parent().addClass("choose-type"):(p.eq(0).addClass("choose-type").show(),p.eq(0).find("div").addClass("choosed-tag")),m.attr("value","前往"+u("#"+y).attr("alt")),f.attr("src",u("#"+y).attr("src"))}function i(e,t){u.ajax({type:"get",url:"/common/addpaymentinterval",dataType:"json",data:{orderCode:t,payment:e}})}var o,s,r,d,l,c,u=e("jquery"),h=u(".mode div"),p=u(".mode"),f=u("#show-pay-img"),m=u("#btnby"),g=u(".light-box"),v=u("#choosePay").val(),y=u('.mode div[id="'+v+'"]').parent().data("value"),b=v?y:u(".mode").eq(0).data("value"),w=u("#payUrl").val();u.jqtab=function(e,t){u(e+" li").click(function(){return s=u(this).find("a").attr("tab"),u(e+" li").removeClass("thistab"),u(this).addClass("thistab"), +u(t).hide(),u("#"+s).fadeIn(),!1})},u.jqtab("#tabs",".tab-con"),a(),p.click(function(){return o=u(this).data(),b=o.value,r=u("#"+b).attr("alt"),d=u("#"+b).attr("src"),p.removeClass("choose-type"),u(this).addClass("choose-type"),h.removeClass("choosed-tag"),u(this).find(".borer-tag").addClass("choosed-tag"),m.attr("value","前往"+r),f.attr("src",d),!1}),u(".close").click(function(){g.hide()}),u(".change").click(function(){g.hide()}),u("#btnby").click(function(){c=u(".choose-type").attr("data-id"),l=u(".order-num").text(),i(c,l),window.open(w+"?order_code="+l+"&payment_type="+b),g.show()}),u(".pay-over").unbind("click").bind("click",function(){var e=this;u.post("/shopping/pay/sendPay",{orderCode:l,paymentId:c},function(){window.location.href=u(e).data("url")})})}),define("js/pay/wechatqrcode",["jquery"],function(e,t,n){function a(){i.ajax({url:s,dataType:"jsonp",success:function(e){"success"===e.message&&(window.location.href=r)}})}var i=e("jquery"),o=i(".w-odetail"),s=i("#payHost").val(),r=i("#paySuccessUrl").val(),d=i(".w-p-erm");e("plugin/jquery.qrcode"),o.click(function(){i(".w-addrinfo").slideToggle("slow"),o.find("i").hasClass("up")?o.html('收起详情<i class="down"></i>'):o.html('订单详情<i class="up"></i>')}),d.qrcode({render:"table",text:d.data("url")}),setInterval(a,3e3)}),define("plugin/jquery.qrcode",["jquery"],function(e,t,n){var a=e("jquery");!function(e){e.fn.qrcode=function(t){function n(e){this.mode=d,this.data=e}function i(e,t){this.typeNumber=e,this.errorCorrectLevel=t,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}function o(e,t){if(void 0==e.length)throw Error(e.length+"/"+t);for(var n=0;n<e.length&&0==e[n];)n++;this.num=Array(e.length-n+t);for(var a=0;a<e.length-n;a++)this.num[a]=e[a+n]}function s(e,t){this.totalCount=e,this.dataCount=t}function r(){this.buffer=[],this.length=0}var d;n.prototype={getLength:function(){return this.data.length},write:function(e){for(var t=0;t<this.data.length;t++)e.put(this.data.charCodeAt(t),8)}},i.prototype={addData:function(e){this.dataList.push(new n(e)),this.dataCache=null},isDark:function(e,t){if(0>e||this.moduleCount<=e||0>t||this.moduleCount<=t)throw Error(e+","+t);return this.modules[e][t]},getModuleCount:function(){return this.moduleCount},make:function(){if(1>this.typeNumber){for(var e=1,e=1;40>e;e++){for(var t=s.getRSBlocks(e,this.errorCorrectLevel),n=new r,a=0,i=0;i<t.length;i++)a+=t[i].dataCount;for(i=0;i<this.dataList.length;i++)t=this.dataList[i],n.put(t.mode,4),n.put(t.getLength(),l.getLengthInBits(t.mode,e)),t.write(n);if(n.getLengthInBits()<=8*a)break}this.typeNumber=e}this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(e,t){this.moduleCount=4*this.typeNumber+17,this.modules=Array(this.moduleCount);for(var n=0;n<this.moduleCount;n++){this.modules[n]=Array(this.moduleCount);for(var a=0;a<this.moduleCount;a++)this.modules[n][a]=null}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(e,t),7<=this.typeNumber&&this.setupTypeNumber(e),null==this.dataCache&&(this.dataCache=i.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,t)},setupPositionProbePattern:function(e,t){for(var n=-1;7>=n;n++)if(!(-1>=e+n||this.moduleCount<=e+n))for(var a=-1;7>=a;a++)-1>=t+a||this.moduleCount<=t+a||(this.modules[e+n][t+a]=n>=0&&6>=n&&(0==a||6==a)||a>=0&&6>=a&&(0==n||6==n)||n>=2&&4>=n&&a>=2&&4>=a)},getBestMaskPattern:function(){for(var e=0,t=0,n=0;8>n;n++){this.makeImpl(!0,n);var a=l.getLostPoint(this);(0==n||e>a)&&(e=a,t=n)}return t},createMovieClip:function(e,t,n){for(e=e.createEmptyMovieClip(t,n),this.make(),t=0;t<this.modules.length;t++)for(var n=1*t,a=0;a<this.modules[t].length;a++){var i=1*a;this.modules[t][a]&&(e.beginFill(0,100),e.moveTo(i,n),e.lineTo(i+1,n),e.lineTo(i+1,n+1),e.lineTo(i,n+1),e.endFill())}return e},setupTimingPattern:function(){for(var e=8;e<this.moduleCount-8;e++)null==this.modules[e][6]&&(this.modules[e][6]=0==e%2);for(e=8;e<this.moduleCount-8;e++)null==this.modules[6][e]&&(this.modules[6][e]=0==e%2)},setupPositionAdjustPattern:function(){for(var e=l.getPatternPosition(this.typeNumber),t=0;t<e.length;t++)for(var n=0;n<e.length;n++){var a=e[t],i=e[n];if(null==this.modules[a][i])for(var o=-2;2>=o;o++)for(var s=-2;2>=s;s++)this.modules[a+o][i+s]=-2==o||2==o||-2==s||2==s||0==o&&0==s}},setupTypeNumber:function(e){for(var t=l.getBCHTypeNumber(this.typeNumber),n=0;18>n;n++){var a=!e&&1==(t>>n&1);this.modules[Math.floor(n/3)][n%3+this.moduleCount-8-3]=a}for(n=0;18>n;n++)a=!e&&1==(t>>n&1),this.modules[n%3+this.moduleCount-8-3][Math.floor(n/3)]=a},setupTypeInfo:function(e,t){for(var n=l.getBCHTypeInfo(this.errorCorrectLevel<<3|t),a=0;15>a;a++){var i=!e&&1==(n>>a&1);6>a?this.modules[a][8]=i:8>a?this.modules[a+1][8]=i:this.modules[this.moduleCount-15+a][8]=i}for(a=0;15>a;a++)i=!e&&1==(n>>a&1),8>a?this.modules[8][this.moduleCount-a-1]=i:9>a?this.modules[8][15-a-1+1]=i:this.modules[8][15-a-1]=i;this.modules[this.moduleCount-8][8]=!e},mapData:function(e,t){for(var n=-1,a=this.moduleCount-1,i=7,o=0,s=this.moduleCount-1;s>0;s-=2)for(6==s&&s--;;){for(var r=0;2>r;r++)if(null==this.modules[a][s-r]){var d=!1;o<e.length&&(d=1==(e[o]>>>i&1)),l.getMask(t,a,s-r)&&(d=!d),this.modules[a][s-r]=d,i--,-1==i&&(o++,i=7)}if(a+=n,0>a||this.moduleCount<=a){a-=n,n=-n;break}}}},i.PAD0=236,i.PAD1=17,i.createData=function(e,t,n){for(var t=s.getRSBlocks(e,t),a=new r,o=0;o<n.length;o++){var d=n[o];a.put(d.mode,4),a.put(d.getLength(),l.getLengthInBits(d.mode,e)),d.write(a)}for(o=e=0;o<t.length;o++)e+=t[o].dataCount;if(a.getLengthInBits()>8*e)throw Error("code length overflow. ("+a.getLengthInBits()+">"+8*e+")");for(a.getLengthInBits()+4<=8*e&&a.put(0,4);0!=a.getLengthInBits()%8;)a.putBit(!1);for(;!(a.getLengthInBits()>=8*e)&&(a.put(i.PAD0,8),!(a.getLengthInBits()>=8*e));)a.put(i.PAD1,8);return i.createBytes(a,t)},i.createBytes=function(e,t){for(var n=0,a=0,i=0,s=Array(t.length),r=Array(t.length),d=0;d<t.length;d++){var c=t[d].dataCount,u=t[d].totalCount-c,a=Math.max(a,c),i=Math.max(i,u);s[d]=Array(c);for(var h=0;h<s[d].length;h++)s[d][h]=255&e.buffer[h+n];for(n+=c,h=l.getErrorCorrectPolynomial(u),c=new o(s[d],h.getLength()-1).mod(h),r[d]=Array(h.getLength()-1),h=0;h<r[d].length;h++)u=h+c.getLength()-r[d].length,r[d][h]=u>=0?c.get(u):0}for(h=d=0;h<t.length;h++)d+=t[h].totalCount;for(n=Array(d),h=c=0;a>h;h++)for(d=0;d<t.length;d++)h<s[d].length&&(n[c++]=s[d][h]);for(h=0;i>h;h++)for(d=0;d<t.length;d++)h<r[d].length&&(n[c++]=r[d][h]);return n},d=4;for(var l={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(e){for(var t=e<<10;0<=l.getBCHDigit(t)-l.getBCHDigit(l.G15);)t^=l.G15<<l.getBCHDigit(t)-l.getBCHDigit(l.G15);return(e<<10|t)^l.G15_MASK},getBCHTypeNumber:function(e){for(var t=e<<12;0<=l.getBCHDigit(t)-l.getBCHDigit(l.G18);)t^=l.G18<<l.getBCHDigit(t)-l.getBCHDigit(l.G18);return e<<12|t},getBCHDigit:function(e){for(var t=0;0!=e;)t++,e>>>=1;return t},getPatternPosition:function(e){return l.PATTERN_POSITION_TABLE[e-1]},getMask:function(e,t,n){switch(e){case 0:return 0==(t+n)%2;case 1:return 0==t%2;case 2:return 0==n%3;case 3:return 0==(t+n)%3;case 4:return 0==(Math.floor(t/2)+Math.floor(n/3))%2;case 5:return 0==t*n%2+t*n%3;case 6:return 0==(t*n%2+t*n%3)%2;case 7:return 0==(t*n%3+(t+n)%2)%2;default:throw Error("bad maskPattern:"+e)}},getErrorCorrectPolynomial:function(e){for(var t=new o([1],0),n=0;e>n;n++)t=t.multiply(new o([1,c.gexp(n)],0));return t},getLengthInBits:function(e,t){if(t>=1&&10>t)switch(e){case 1:return 10;case 2:return 9;case d:return 8;case 8:return 8;default:throw Error("mode:"+e)}else if(27>t)switch(e){case 1:return 12;case 2:return 11;case d:return 16;case 8:return 10;default:throw Error("mode:"+e)}else{if(!(41>t))throw Error("type:"+t);switch(e){case 1:return 14;case 2:return 13;case d:return 16;case 8:return 12;default:throw Error("mode:"+e)}}},getLostPoint:function(e){for(var t=e.getModuleCount(),n=0,a=0;t>a;a++)for(var i=0;t>i;i++){for(var o=0,s=e.isDark(a,i),r=-1;1>=r;r++)if(!(0>a+r||a+r>=t))for(var d=-1;1>=d;d++)0>i+d||i+d>=t||0==r&&0==d||s==e.isDark(a+r,i+d)&&o++;o>5&&(n+=3+o-5)}for(a=0;t-1>a;a++)for(i=0;t-1>i;i++)o=0,e.isDark(a,i)&&o++,e.isDark(a+1,i)&&o++,e.isDark(a,i+1)&&o++,e.isDark(a+1,i+1)&&o++,(0==o||4==o)&&(n+=3);for(a=0;t>a;a++)for(i=0;t-6>i;i++)e.isDark(a,i)&&!e.isDark(a,i+1)&&e.isDark(a,i+2)&&e.isDark(a,i+3)&&e.isDark(a,i+4)&&!e.isDark(a,i+5)&&e.isDark(a,i+6)&&(n+=40);for(i=0;t>i;i++)for(a=0;t-6>a;a++)e.isDark(a,i)&&!e.isDark(a+1,i)&&e.isDark(a+2,i)&&e.isDark(a+3,i)&&e.isDark(a+4,i)&&!e.isDark(a+5,i)&&e.isDark(a+6,i)&&(n+=40);for(i=o=0;t>i;i++)for(a=0;t>a;a++)e.isDark(a,i)&&o++;return e=Math.abs(100*o/t/t-50)/5,n+10*e}},c={glog:function(e){if(1>e)throw Error("glog("+e+")");return c.LOG_TABLE[e]},gexp:function(e){for(;0>e;)e+=255;for(;e>=256;)e-=255;return c.EXP_TABLE[e]},EXP_TABLE:Array(256),LOG_TABLE:Array(256)},u=0;8>u;u++)c.EXP_TABLE[u]=1<<u;for(u=8;256>u;u++)c.EXP_TABLE[u]=c.EXP_TABLE[u-4]^c.EXP_TABLE[u-5]^c.EXP_TABLE[u-6]^c.EXP_TABLE[u-8];for(u=0;255>u;u++)c.LOG_TABLE[c.EXP_TABLE[u]]=u;return o.prototype={get:function(e){return this.num[e]},getLength:function(){return this.num.length},multiply:function(e){for(var t=Array(this.getLength()+e.getLength()-1),n=0;n<this.getLength();n++)for(var a=0;a<e.getLength();a++)t[n+a]^=c.gexp(c.glog(this.get(n))+c.glog(e.get(a)));return new o(t,0)},mod:function(e){if(0>this.getLength()-e.getLength())return this;for(var t=c.glog(this.get(0))-c.glog(e.get(0)),n=Array(this.getLength()),a=0;a<this.getLength();a++)n[a]=this.get(a);for(a=0;a<e.getLength();a++)n[a]^=c.gexp(c.glog(e.get(a))+t);return new o(n,0).mod(e)}},s.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],s.getRSBlocks=function(e,t){var n=s.getRsBlockTable(e,t);if(void 0==n)throw Error("bad rs block @ typeNumber:"+e+"/errorCorrectLevel:"+t);for(var a=n.length/3,i=[],o=0;a>o;o++)for(var r=n[3*o+0],d=n[3*o+1],l=n[3*o+2],c=0;r>c;c++)i.push(new s(d,l));return i},s.getRsBlockTable=function(e,t){switch(t){case 1:return s.RS_BLOCK_TABLE[4*(e-1)+0];case 0:return s.RS_BLOCK_TABLE[4*(e-1)+1];case 3:return s.RS_BLOCK_TABLE[4*(e-1)+2];case 2:return s.RS_BLOCK_TABLE[4*(e-1)+3]}},r.prototype={get:function(e){return 1==(this.buffer[Math.floor(e/8)]>>>7-e%8&1)},put:function(e,t){for(var n=0;t>n;n++)this.putBit(1==(e>>>t-n-1&1))},getLengthInBits:function(){return this.length},putBit:function(e){var t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},"string"==typeof t&&(t={text:t}),t=e.extend({},{render:"canvas",width:256,height:256,typeNumber:-1,correctLevel:2,background:"#ffffff",foreground:"#000000"},t),this.each(function(){var n;if("canvas"==t.render){n=new i(t.typeNumber,t.correctLevel),n.addData(t.text),n.make();var o=document.createElement("canvas");o.width=t.width,o.height=t.height;for(var s=o.getContext("2d"),r=t.width/n.getModuleCount(),d=t.height/n.getModuleCount(),l=0;l<n.getModuleCount();l++)for(var c=0;c<n.getModuleCount();c++){s.fillStyle=n.isDark(l,c)?t.foreground:t.background;var u=Math.ceil((c+1)*r)-Math.floor(c*r),h=Math.ceil((l+1)*r)-Math.floor(l*r);s.fillRect(Math.round(c*r),Math.round(l*d),u,h)}}else for(n=new i(t.typeNumber,t.correctLevel),n.addData(t.text),n.make(),o=e("<table></table>").css("width",t.width+"px").css("height",t.height+"px").css("border","0px").css("border-collapse","collapse").css("background-color",t.background),s=t.width/n.getModuleCount(),r=t.height/n.getModuleCount(),d=0;d<n.getModuleCount();d++)for(l=e("<tr></tr>").css("height",r+"px").appendTo(o),c=0;c<n.getModuleCount();c++)e("<td></td>").css("width",s+"px").css("background-color",n.isDark(d,c)?t.foreground:t.background).appendTo(l);n=o,a(n).appendTo(this)})}}(a)}),define("js/about/entry",["jquery","jquery.placeholder","handlebars","source-map"],function(e,t,n){e("js/about/settled")}),define("js/about/settled",["jquery","jquery.placeholder","handlebars","source-map"],function(e,t,n){var a=e("jquery"),i=e("js/passport/mail-phone-regx");e("jquery.placeholder"),e("plugin/jquery.qupload"),function(){function e(){var e=a(window).height();n.removeClass("hide"),i.css({"max-height":e-60}).removeClass("hide")}function t(){n.addClass("hide"),i.addClass("hide")}var n,i;0!==a(".settled-page").length&&(n=a("#mask"),i=a("#notice-container"),a("#fake-link").click(e),a("#fake-close").click(t),a("#mask").click(t))}(),function(){function t(e){a.each(e,function(e,t){a("#"+t.dom).qupload({uploadKey:w,button_image_url:"",button_text:'<span class="btn_upload_text">上传</span>',button_text_style:".btn_upload_text{color:#000;margin-left:30px;line-height: 2em;font-size:14px;}",button_text_left_padding:32,button_text_top_padding:8,button_width:160,button_height:35,button_action:x.BUTTON_ACTION.SELECT_FILE,file_size_limit:"10240",file_types:t.type,uploadSuccessed:function(e){var n=JSON.parse(e);return 12!==n.code?(alert(n.message),!1):void t.callback(n.data.hit.Filedata.return_file_path)}})})}function n(){var e=!0,t=/[0-9]\d{5}(?!\d)/,n=i.emailRegx,o=i.phoneRegx["+86"],s=/^(0|[1-9][0-9]*)$/;return a(".va, .category-item select, .for-other, .category-item").removeClass("error"),a(".va-null").each(function(){""===a(this).val()&&(a(this).addClass("error"),e=!1)}),""!==f.val()&&t.test(f.val())||(f.addClass("error"),e=!1),""!==m.val()&&n.test(m.val())||(m.addClass("error"),e=!1),""!==g.val()&&o.test(g.val())||(g.addClass("error"),e=!1),""!==y.val()&&s.test(y.val())||(y.addClass("error"),e=!1),a(".category-item").each(function(){0===a(this).get(0).selectedIndex&&(a(this).addClass("error"),e=!1)}),3===a('input[name="seller-role"]:checked').index()&&""===r.val()&&(e=!1,r.addClass("error")),5===a('input[name="new_cycle"]:checked').index()&&""===d.val()&&(e=!1,d.addClass("error")),5===a('input[name="supply_cycle"]:checked').index()&&""===l.val()&&(e=!1,l.addClass("error")),e}function o(){c.closest("tr").removeClass("hide"),c.append("<li>"+C+"</li>")}function s(){var e=a(this).val(),t=a(this).parent().find(".category-two"),n="<option>选择二级分类</option>";return""===e?void t.html(n):void a.ajax({url:"/shop/settled/getTwoCategory",type:"GET",data:{id:e}}).then(function(e){var a,i=[];if(200===e.code)for(i=e.data,a=0;a<i.length;a++)n+='<option value="'+i[a].id+'" >'+i[a].name+"</option>";t.html(n)})}var r,d,l,c,u,h,p,f,m,g,v,y,b,w,C=a("#category-tpl").html(),_=e("js/common/dialog").Dialog,x=window.SWFUpload;if(!(a(".settled-apply-page").length<0)){if(a("[placeholder]").placeholder(),r=a("#other-brand-relation"),d=a("#other-new-period"),l=a("#other-replenishment-period"),c=a("#category-list"),u=a("#shop-list"),h=a("#shops"),p=a("#mask, #submit-success"),f=a("#postcode"),m=a("#email"),g=a("#phone-number"),v=a("#upload-key"),y=a("#style-count"),w=v.val(),v.remove(),t([{dom:"upload-brand-material",type:"*.ppt;*.pdf;*.zip;*.rar",callback:function(e){a("#brand-material").val(e),a(".brand-tip").html("上传成功"),alert("上传成功!")}},{dom:"upload-goods-material",type:"*.xls;*.xlsx;*.zip;*.rar",callback:function(e){a("#goods-material").val(e),a(".goods-tip").html("上传成功"),alert("上传成功!")}}]),location.search.indexOf("state=1")>-1)return b=new _({className:"settled-success",closeIcon:!1,content:'<h1 class="main-title">恭喜您已提交成功</h1><h2 class="sub-title">我们将尽快与您联系</h2>',btns:[{id:"apply-success-ok",btnClass:["apply-success-ok"],name:"确认",cb:function(){location.href="/shop/settled/index"}}]}),void b.show();a('input[name="seller_role"]').change(function(){3===a(this).index()?r.removeClass("hide"):r.addClass("hide")}),a('input[name="new-cycle"]').change(function(){5===a(this).index()?d.removeClass("hide"):d.addClass("hide")}),a('input[name="supply-cycle"]').change(function(){5===a(this).index()?l.removeClass("hide"):l.addClass("hide")}),a('input[name="have-store"]').change(function(){1===a(this).index()?u.addClass("hide"):u.removeClass("hide")}),a(".form-container").on("change",".category-one",s),a("#category-add").click(o),h.delegate(".shop-add","click",function(){h.append('<li><input class="shop-addres" name="store-address[]" type="text" placeholder="输入店铺地址"><span>月均销售:</span><input class="shop-sales-volume" type="text" name="store-sales-volume[]" placeholder="输入价格"><span>元</span></li>')}),a("#apply-post").click(function(){var e;n()?(p.removeClass("hide"),a("form").submit()):(a(".error").first().focus(),e=a(".error").first().offset().top,a(window).scrollTop(e-10))}),navigator.userAgent.indexOf("MSIE")>=0&&a("[placeholder]").focus(function(){var e=a(this);e.removeClass("placeholder")}).blur(function(){var e=a(this);""===e.val()&&e.addClass("placeholder")})}}()}),define("js/coupon/entry",["jquery","lazyload","handlebars","source-map"],function(e,t,n){e("js/coupon/coupon")}),define("js/coupon/coupon",["jquery","lazyload","handlebars","source-map"],function(e,t,n){function a(e){var t=new l(e);t.show()}function i(t){r.ajax({type:"GET",url:"/coupon/sendcoupon",data:{id:t},success:function(e){var t=e.code;e.url&&e.url.length>0&&c[t]&&c[t](e.url+"?"+location.href.split("?")[1]),s[t]?s[t]():s[400]()},error:function(t){var n=e("js/common/dialog").Alert;new n("网络异常").show()}})}var o,s,r=e("jquery"),d=e("lazyload"),l=e("js/common/dialog").Dialog,c={gunangSrc:null,checkCouponSrc:null,goToGuang:function(){window.location.href=this.gunangSrc},goToCheck:function(){window.location.href=this.checkCouponSrc},403:function(e){window.location.href=e},200:function(e){this.checkCouponSrc=e}};d(r("img.lazy")),e("js/common/slider"),r(".slide-container").slider(),o={success:{content:"恭喜您,成功领取优惠券",subContents:["特殊情况下到账有延时","请耐心等待"],className:"subcontent-dialog",refreshOnClose:!0,btns:[{id:1,name:"去购物啦",btnClass:["black","btn-close"],cb:function(){c.goToGuang()}},{id:2,name:"查看优惠券",btnClass:["btn-close"],cb:function(){c.goToCheck()}}]},alreadyGot:{content:"您已领取过优惠券",subContent:"快去选购心仪的潮品吧",className:"subcontent-dialog",btns:[{id:1,name:"去使用",btnClass:["btn-close"],cb:function(){c.goToGuang()}}]},expired:{content:"优惠券已过期",subContent:"去领最新的优惠券吧",className:"subcontent-dialog",btns:[{id:1,name:"关闭",btnClass:["btn-close"]}]},failed:{content:"领取失败",subContents:["请刷新重试,","多次无效请联系客服"],className:"subcontent-dialog",btns:[{id:1,name:"刷新",btnClass:["btn-close"],cb:function(){window.location.reload()}}]}},s={200:function(){a(o.success)},401:function(){a(o.alreadyGot)},315:function(){a(o.expired)},400:function(){a(o.failed)},403:function(){}},r(".enable .info").on("click",function(e){e.preventDefault(),i(r(this).closest("a").data("id")),c.gunangSrc=r(this).closest("a").get(0).href})}); \ No newline at end of file diff --git a/web-static/dist/yohobuy/4.6.3/lib.js b/web-static/dist/yohobuy/4.6.3/lib.js new file mode 100644 index 0000000..e0d54a3 --- /dev/null +++ b/web-static/dist/yohobuy/4.6.3/lib.js @@ -0,0 +1,7 @@ +!function(e,t){function n(e){return function(t){return{}.toString.call(t)=="[object "+e+"]"}}function r(){return E++}function i(e){return e.match(T)[0]}function o(e){for(e=e.replace(P,"/");e.match(L);)e=e.replace(L,"/");return e=e.replace(j,"$1/")}function a(e){var t=e.length-1,n=e.charAt(t);return"#"===n?e.substring(0,t):".js"===e.substring(t-2)||e.indexOf("?")>0||".css"===e.substring(t-3)||"/"===n?e:e+".js"}function s(e){var t=w.alias;return t&&k(t[e])?t[e]:e}function l(e){var t,n=w.paths;return n&&(t=e.match(O))&&k(n[t[1]])&&(e=n[t[1]]+t[2]),e}function u(e){var t=w.vars;return t&&e.indexOf("{")>-1&&(e=e.replace(M,function(e,n){return k(t[n])?t[n]:e})),e}function c(e){var t=w.map,n=e;if(t)for(var r=0,i=t.length;i>r;r++){var o=t[r];if(n=_(o)?o(e)||e:e.replace(o[0],o[1]),n!==e)break}return n}function p(e,t){var n,r=e.charAt(0);if(D.test(e))n=e;else if("."===r)n=o((t?i(t):w.cwd)+e);else if("/"===r){var a=w.cwd.match(H);n=a?a[0]+e.substring(1):e}else n=w.base+e;return 0===n.indexOf("//")&&(n=location.protocol+n),n}function h(e,t){if(!e)return"";e=s(e),e=l(e),e=u(e),e=a(e);var n=p(e,t);return n=c(n)}function f(e){return e.hasAttribute?e.src:e.getAttribute("src",4)}function d(e,t,n){var r=V.test(e),i=I.createElement(r?"link":"script");if(n){var o=_(n)?n(e):n;o&&(i.charset=o)}g(i,t,r,e),r?(i.rel="stylesheet",i.href=e):(i.async=!0,i.src=e),q=i,z?U.insertBefore(i,z):U.appendChild(i),q=null}function g(e,n,r,i){function o(){e.onload=e.onerror=e.onreadystatechange=null,r||w.debug||U.removeChild(e),e=null,n()}var a="onload"in e;return!r||!G&&a?(a?(e.onload=o,e.onerror=function(){N("error",{uri:i,node:e}),o()}):e.onreadystatechange=function(){/loaded|complete/.test(e.readyState)&&o()},t):(setTimeout(function(){m(e,n)},1),t)}function m(e,t){var n,r=e.sheet;if(G)r&&(n=!0);else if(r)try{r.cssRules&&(n=!0)}catch(i){"NS_ERROR_DOM_SECURITY_ERR"===i.name&&(n=!0)}setTimeout(function(){n?t():m(e,t)},20)}function v(){if(q)return q;if(W&&"interactive"===W.readyState)return W;for(var e=U.getElementsByTagName("script"),t=e.length-1;t>=0;t--){var n=e[t];if("interactive"===n.readyState)return W=n}}function y(e){var t=[];return e.replace(K,"").replace(J,function(e,n,r){r&&t.push(r)}),t}function b(e,t){this.uri=e,this.dependencies=t||[],this.exports=null,this.status=0,this._waitings={},this._remain=0}if(!e.seajs){var x=e.seajs={version:"2.2.0"},w=x.data={},S=n("Object"),k=n("String"),C=Array.isArray||n("Array"),_=n("Function"),E=0,A=w.events={};x.on=function(e,t){var n=A[e]||(A[e]=[]);return n.push(t),x},x.off=function(e,t){if(!e&&!t)return A=w.events={},x;var n=A[e];if(n)if(t)for(var r=n.length-1;r>=0;r--)n[r]===t&&n.splice(r,1);else delete A[e];return x};var N=x.emit=function(e,t){var n,r=A[e];if(r)for(r=r.slice();n=r.shift();)n(t);return x},T=/[^?#]*\//,P=/\/\.\//g,L=/\/[^\/]+\/\.\.\//,j=/([^:\/])\/\//g,O=/^([^\/:]+)(\/.+)$/,M=/{([^{]+)}/g,D=/^\/\/.|:\//,H=/^.*?\/\/.*?\//,I=document,R=i(I.URL),B=I.scripts,$=I.getElementById("seajsnode")||B[B.length-1],F=i(f($)||R);x.resolve=h;var q,W,U=I.head||I.getElementsByTagName("head")[0]||I.documentElement,z=U.getElementsByTagName("base")[0],V=/\.css(?:\?|$)/i,G=+navigator.userAgent.replace(/.*AppleWebKit\/(\d+)\..*/,"$1")<536;x.request=d;var X,J=/"(?:\\"|[^"])*"|'(?:\\'|[^'])*'|\/\*[\S\s]*?\*\/|\/(?:\\\/|[^\/\r\n])+\/(?=[^\/])|\/\/.*|\.\s*require|(?:^|[^$])\brequire\s*\(\s*(["'])(.+?)\1\s*\)/g,K=/\\\\/g,Y=x.cache={},Q={},Z={},ee={},te=b.STATUS={FETCHING:1,SAVED:2,LOADING:3,LOADED:4,EXECUTING:5,EXECUTED:6};b.prototype.resolve=function(){for(var e=this,t=e.dependencies,n=[],r=0,i=t.length;i>r;r++)n[r]=b.resolve(t[r],e.uri);return n},b.prototype.load=function(){var e=this;if(!(e.status>=te.LOADING)){e.status=te.LOADING;var n=e.resolve();N("load",n);for(var r,i=e._remain=n.length,o=0;i>o;o++)r=b.get(n[o]),r.status<te.LOADED?r._waitings[e.uri]=(r._waitings[e.uri]||0)+1:e._remain--;if(0===e._remain)return e.onload(),t;var a={};for(o=0;i>o;o++)r=Y[n[o]],r.status<te.FETCHING?r.fetch(a):r.status===te.SAVED&&r.load();for(var s in a)a.hasOwnProperty(s)&&a[s]()}},b.prototype.onload=function(){var e=this;e.status=te.LOADED,e.callback&&e.callback();var t,n,r=e._waitings;for(t in r)r.hasOwnProperty(t)&&(n=Y[t],n._remain-=r[t],0===n._remain&&n.onload());delete e._waitings,delete e._remain},b.prototype.fetch=function(e){function n(){x.request(a.requestUri,a.onRequest,a.charset)}function r(){delete Q[s],Z[s]=!0,X&&(b.save(o,X),X=null);var e,t=ee[s];for(delete ee[s];e=t.shift();)e.load()}var i=this,o=i.uri;i.status=te.FETCHING;var a={uri:o};N("fetch",a);var s=a.requestUri||o;return!s||Z[s]?(i.load(),t):Q[s]?(ee[s].push(i),t):(Q[s]=!0,ee[s]=[i],N("request",a={uri:o,requestUri:s,onRequest:r,charset:w.charset}),a.requested||(e?e[a.requestUri]=n:n()),t)},b.prototype.exec=function(){function e(t){return b.get(e.resolve(t)).exec()}var n=this;if(n.status>=te.EXECUTING)return n.exports;n.status=te.EXECUTING;var i=n.uri;e.resolve=function(e){return b.resolve(e,i)},e.async=function(t,n){return b.use(t,n,i+"_async_"+r()),e};var o=n.factory,a=_(o)?o(e,n.exports={},n):o;return a===t&&(a=n.exports),delete n.factory,n.exports=a,n.status=te.EXECUTED,N("exec",n),a},b.resolve=function(e,t){var n={id:e,refUri:t};return N("resolve",n),n.uri||x.resolve(n.id,t)},b.define=function(e,n,r){var i=arguments.length;1===i?(r=e,e=t):2===i&&(r=n,C(e)?(n=e,e=t):n=t),!C(n)&&_(r)&&(n=y(""+r));var o={id:e,uri:b.resolve(e),deps:n,factory:r};if(!o.uri&&I.attachEvent){var a=v();a&&(o.uri=a.src)}N("define",o),o.uri?b.save(o.uri,o):X=o},b.save=function(e,t){var n=b.get(e);n.status<te.SAVED&&(n.id=t.id||e,n.dependencies=t.deps||[],n.factory=t.factory,n.status=te.SAVED)},b.get=function(e,t){return Y[e]||(Y[e]=new b(e,t))},b.use=function(t,n,r){var i=b.get(r,C(t)?t:[t]);i.callback=function(){for(var t=[],r=i.resolve(),o=0,a=r.length;a>o;o++)t[o]=Y[r[o]].exec();n&&n.apply(e,t),delete i.callback},i.load()},b.preload=function(e){var t=w.preload,n=t.length;n?b.use(t,function(){t.splice(0,n),b.preload(e)},w.cwd+"_preload_"+r()):e()},x.use=function(e,t){return b.preload(function(){b.use(e,t,w.cwd+"_use_"+r())}),x},b.define.cmd={},e.define=b.define,x.Module=b,w.fetchedList=Z,w.cid=r,x.require=function(e){var t=b.get(b.resolve(e));return t.status<te.EXECUTING&&(t.onload(),t.exec()),t.exports};var ne=/^(.+?\/)(\?\?)?(seajs\/)+/;w.base=(F.match(ne)||["",F])[1],w.dir=F,w.cwd=R,w.charset="utf-8",w.preload=function(){var e=[],t=location.search.replace(/(seajs-\w+)(&|$)/g,"$1=1$2");return t+=" "+I.cookie,t.replace(/(seajs-\w+)=1/g,function(t,n){e.push(n)}),e}(),x.config=function(e){for(var t in e){var n=e[t],r=w[t];if(r&&S(r))for(var i in n)r[i]=n[i];else C(r)?n=r.concat(n):"base"===t&&("/"!==n.slice(-1)&&(n+="/"),n=p(n)),w[t]=n}return N("config",e),x}}}(this),define("lazyload",[],function(e,t,n){var r=e("jquery");e("lib/jquery.lazyload"),n.exports=function(e,t){var n,i={effect:"fadeIn",effect_speed:10,placeholder:"data:image/gif;base64,R0lGODlhAQABAJEAAAAAAP///93d3f///yH5BAEAAAMALAAAAAABAAEAAAICVAEAOw==",skip_invisible:!1},o=arguments.length;!function(){switch(o){case 0:n=r("img.lazy");break;case 1:e instanceof r?n=e:(n=r("img.lazy"),r.extend(i,e));break;case 2:n=e,i=r.extend(i,t)}}(),n.lazyload(i)}}),define("jquery",[],function(e,t,n){!function(e,t){function r(e){var t=ge[e]={};return Z.each(e.split(ne),function(e,n){t[n]=!0}),t}function i(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(ve,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:me.test(r)?Z.parseJSON(r):r}catch(o){}Z.data(e,n,r)}else r=t}return r}function o(e){var t;for(t in e)if(("data"!==t||!Z.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function a(){return!1}function s(){return!0}function l(e){return!e||!e.parentNode||11===e.parentNode.nodeType}function u(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function c(e,t,n){if(t=t||0,Z.isFunction(t))return Z.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return Z.grep(e,function(e,r){return e===t===n});if("string"==typeof t){var r=Z.grep(e,function(e){return 1===e.nodeType});if(Ie.test(t))return Z.filter(t,r,!n);t=Z.filter(t,r)}return Z.grep(e,function(e,r){return Z.inArray(e,t)>=0===n})}function p(e){var t=$e.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function h(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function f(e,t){if(1===t.nodeType&&Z.hasData(e)){var n,r,i,o=Z._data(e),a=Z._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)Z.event.add(t,n,s[n][r])}a.data&&(a.data=Z.extend({},a.data))}}function d(e,t){var n;1===t.nodeType&&(t.clearAttributes&&t.clearAttributes(),t.mergeAttributes&&t.mergeAttributes(e),n=t.nodeName.toLowerCase(),"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),Z.support.html5Clone&&e.innerHTML&&!Z.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ke.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.selected=e.defaultSelected:"input"===n||"textarea"===n?t.defaultValue=e.defaultValue:"script"===n&&t.text!==e.text&&(t.text=e.text),t.removeAttribute(Z.expando))}function g(e){return"undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName("*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll("*"):[]}function m(e){Ke.test(e.type)&&(e.defaultChecked=e.checked)}function v(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=yt.length;i--;)if(t=yt[i]+n,t in e)return t;return r}function y(e,t){return e=t||e,"none"===Z.css(e,"display")||!Z.contains(e.ownerDocument,e)}function b(e,t){for(var n,r,i=[],o=0,a=e.length;a>o;o++)n=e[o],n.style&&(i[o]=Z._data(n,"olddisplay"),t?(i[o]||"none"!==n.style.display||(n.style.display=""),""===n.style.display&&y(n)&&(i[o]=Z._data(n,"olddisplay",k(n.nodeName)))):(r=rt(n,"display"),i[o]||"none"===r||Z._data(n,"olddisplay",r)));for(o=0;a>o;o++)n=e[o],n.style&&(t&&"none"!==n.style.display&&""!==n.style.display||(n.style.display=t?i[o]||"":"none"));return e}function x(e,t,n){var r=pt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function w(e,t,n,r){for(var i=n===(r?"border":"content")?4:"width"===t?1:0,o=0;4>i;i+=2)"margin"===n&&(o+=Z.css(e,n+vt[i],!0)),r?("content"===n&&(o-=parseFloat(rt(e,"padding"+vt[i]))||0),"margin"!==n&&(o-=parseFloat(rt(e,"border"+vt[i]+"Width"))||0)):(o+=parseFloat(rt(e,"padding"+vt[i]))||0,"padding"!==n&&(o+=parseFloat(rt(e,"border"+vt[i]+"Width"))||0));return o}function S(e,t,n){var r="width"===t?e.offsetWidth:e.offsetHeight,i=!0,o=Z.support.boxSizing&&"border-box"===Z.css(e,"boxSizing");if(0>=r||null==r){if(r=rt(e,t),(0>r||null==r)&&(r=e.style[t]),ht.test(r))return r;i=o&&(Z.support.boxSizingReliable||r===e.style[t]),r=parseFloat(r)||0}return r+w(e,t,n||(o?"border":"content"),i)+"px"}function k(e){if(dt[e])return dt[e];var t=Z("<"+e+">").appendTo(q.body),n=t.css("display");return t.remove(),"none"!==n&&""!==n||(it=q.body.appendChild(it||Z.extend(q.createElement("iframe"),{frameBorder:0,width:0,height:0})),ot&&it.createElement||(ot=(it.contentWindow||it.contentDocument).document,ot.write("<!doctype html><html><body>"),ot.close()),t=ot.body.appendChild(ot.createElement(e)),n=rt(t,"display"),q.body.removeChild(it)),dt[e]=n,n}function C(e,t,n,r){var i;if(Z.isArray(t))Z.each(t,function(t,i){n||wt.test(e)?r(e,i):C(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==Z.type(t))r(e,t);else for(i in t)C(e+"["+i+"]",t[i],n,r)}function _(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i,o,a=t.toLowerCase().split(ne),s=0,l=a.length;if(Z.isFunction(n))for(;l>s;s++)r=a[s],o=/^\+/.test(r),o&&(r=r.substr(1)||"*"),i=e[r]=e[r]||[],i[o?"unshift":"push"](n)}}function E(e,n,r,i,o,a){o=o||n.dataTypes[0],a=a||{},a[o]=!0;for(var s,l=e[o],u=0,c=l?l.length:0,p=e===It;c>u&&(p||!s);u++)s=l[u](n,r,i),"string"==typeof s&&(!p||a[s]?s=t:(n.dataTypes.unshift(s),s=E(e,n,r,i,s,a)));return!p&&s||a["*"]||(s=E(e,n,r,i,"*",a)),s}function A(e,n){var r,i,o=Z.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&&((o[r]?e:i||(i={}))[r]=n[r]);i&&Z.extend(!0,e,i)}function N(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes,c=e.responseFields;for(o in c)o in r&&(n[c[o]]=r[o]);for(;"*"===u[0];)u.shift(),i===t&&(i=e.mimeType||n.getResponseHeader("content-type"));if(i)for(o in l)if(l[o]&&l[o].test(i)){u.unshift(o);break}if(u[0]in r)a=u[0];else{for(o in r){if(!u[0]||e.converters[o+" "+u[0]]){a=o;break}s||(s=o)}a=a||s}return a?(a!==u[0]&&u.unshift(a),r[a]):void 0}function T(e,t){var n,r,i,o,a=e.dataTypes.slice(),s=a[0],l={},u=0;if(e.dataFilter&&(t=e.dataFilter(t,e.dataType)),a[1])for(n in e.converters)l[n.toLowerCase()]=e.converters[n];for(;i=a[++u];)if("*"!==i){if("*"!==s&&s!==i){if(n=l[s+" "+i]||l["* "+i],!n)for(r in l)if(o=r.split(" "),o[1]===i&&(n=l[s+" "+o[0]]||l["* "+o[0]])){n===!0?n=l[r]:l[r]!==!0&&(i=o[0],a.splice(u--,0,i));break}if(n!==!0)if(n&&e["throws"])t=n(t);else try{t=n(t)}catch(c){return{state:"parsererror",error:n?c:"No conversion from "+s+" to "+i}}}s=i}return{state:"success",data:t}}function P(){try{return new e.XMLHttpRequest}catch(t){}}function L(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function j(){return setTimeout(function(){Xt=t},0),Xt=Z.now()}function O(e,t){Z.each(t,function(t,n){for(var r=(en[t]||[]).concat(en["*"]),i=0,o=r.length;o>i;i++)if(r[i].call(e,t,n))return})}function M(e,t,n){var r,i=0,o=Zt.length,a=Z.Deferred().always(function(){delete s.elem}),s=function(){for(var t=Xt||j(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,i=1-r,o=0,s=l.tweens.length;s>o;o++)l.tweens[o].run(i);return a.notifyWith(e,[l,i,n]),1>i&&s?n:(a.resolveWith(e,[l]),!1)},l=a.promise({elem:e,props:Z.extend({},t),opts:Z.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xt||j(),duration:n.duration,tweens:[],createTween:function(t,n,r){var i=Z.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(i),i},stop:function(t){for(var n=0,r=t?l.tweens.length:0;r>n;n++)l.tweens[n].run(1);return t?a.resolveWith(e,[l,t]):a.rejectWith(e,[l,t]),this}}),u=l.props;for(D(u,l.opts.specialEasing);o>i;i++)if(r=Zt[i].call(l,e,u,l.opts))return r;return O(l,u),Z.isFunction(l.opts.start)&&l.opts.start.call(e,l),Z.fx.timer(Z.extend(s,{anim:l,queue:l.opts.queue,elem:e})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function D(e,t){var n,r,i,o,a;for(n in e)if(r=Z.camelCase(n),i=t[r],o=e[n],Z.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=Z.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function H(e,t,n){var r,i,o,a,s,l,u,c,p,h=this,f=e.style,d={},g=[],m=e.nodeType&&y(e);n.queue||(c=Z._queueHooks(e,"fx"),null==c.unqueued&&(c.unqueued=0,p=c.empty.fire,c.empty.fire=function(){c.unqueued||p()}),c.unqueued++,h.always(function(){h.always(function(){c.unqueued--,Z.queue(e,"fx").length||c.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[f.overflow,f.overflowX,f.overflowY],"inline"===Z.css(e,"display")&&"none"===Z.css(e,"float")&&(Z.support.inlineBlockNeedsLayout&&"inline"!==k(e.nodeName)?f.zoom=1:f.display="inline-block")),n.overflow&&(f.overflow="hidden",Z.support.shrinkWrapBlocks||h.done(function(){f.overflow=n.overflow[0],f.overflowX=n.overflow[1],f.overflowY=n.overflow[2]}));for(r in t)if(o=t[r],Kt.exec(o)){if(delete t[r],l=l||"toggle"===o,o===(m?"hide":"show"))continue;g.push(r)}if(a=g.length){s=Z._data(e,"fxshow")||Z._data(e,"fxshow",{}),"hidden"in s&&(m=s.hidden),l&&(s.hidden=!m),m?Z(e).show():h.done(function(){Z(e).hide()}),h.done(function(){var t;Z.removeData(e,"fxshow",!0);for(t in d)Z.style(e,t,d[t])});for(r=0;a>r;r++)i=g[r],u=h.createTween(i,m?s[i]:0),d[i]=s[i]||Z.style(e,i),i in s||(s[i]=u.start,m&&(u.end=u.start,u.start="width"===i||"height"===i?1:0))}}function I(e,t,n,r,i){return new I.prototype.init(e,t,n,r,i)}function R(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=vt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function B(e){return Z.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}var $,F,q=e.document,W=e.location,U=e.navigator,z=e.jQuery,V=e.$,G=Array.prototype.push,X=Array.prototype.slice,J=Array.prototype.indexOf,K=Object.prototype.toString,Y=Object.prototype.hasOwnProperty,Q=String.prototype.trim,Z=function(e,t){return new Z.fn.init(e,t,$)},ee=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,te=/\S/,ne=/\s+/,re=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,ie=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,oe=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,ae=/^[\],:{}\s]*$/,se=/(?:^|:|,)(?:\s*\[)+/g,le=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,ue=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,ce=/^-ms-/,pe=/-([\da-z])/gi,he=function(e,t){return(t+"").toUpperCase()},fe=function(){q.addEventListener?(q.removeEventListener("DOMContentLoaded",fe,!1),Z.ready()):"complete"===q.readyState&&(q.detachEvent("onreadystatechange",fe),Z.ready())},de={};Z.fn=Z.prototype={constructor:Z,init:function(e,n,r){var i,o,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:ie.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1])return n=n instanceof Z?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:q,e=Z.parseHTML(i[1],a,!0),oe.test(i[1])&&Z.isPlainObject(n)&&this.attr.call(e,n,!0),Z.merge(this,e);if(o=q.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=q,this.selector=e,this}return Z.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),Z.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return X.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=Z.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,"find"===t?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return Z.each(this,e,t)},ready:function(e){return Z.ready.promise().done(e),this},eq:function(e){return e=+e,-1===e?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(X.apply(this,arguments),"slice",X.call(arguments).join(","))},map:function(e){return this.pushStack(Z.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:G,sort:[].sort,splice:[].splice},Z.fn.init.prototype=Z.fn,Z.extend=Z.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||Z.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(e=arguments[l]))for(n in e)r=s[n],i=e[n],s!==i&&(c&&i&&(Z.isPlainObject(i)||(o=Z.isArray(i)))?(o?(o=!1,a=r&&Z.isArray(r)?r:[]):a=r&&Z.isPlainObject(r)?r:{},s[n]=Z.extend(c,a,i)):i!==t&&(s[n]=i));return s},Z.extend({noConflict:function(t){return e.$===Z&&(e.$=V),t&&e.jQuery===Z&&(e.jQuery=z),Z},isReady:!1,readyWait:1,holdReady:function(e){e?Z.readyWait++:Z.ready(!0)},ready:function(e){if(e===!0?!--Z.readyWait:!Z.isReady){if(!q.body)return setTimeout(Z.ready,1);Z.isReady=!0,e!==!0&&--Z.readyWait>0||(F.resolveWith(q,[Z]),Z.fn.trigger&&Z(q).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===Z.type(e)},isArray:Array.isArray||function(e){return"array"===Z.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?String(e):de[K.call(e)]||"object"},isPlainObject:function(e){if(!e||"object"!==Z.type(e)||e.nodeType||Z.isWindow(e))return!1;try{if(e.constructor&&!Y.call(e,"constructor")&&!Y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||Y.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return e&&"string"==typeof e?("boolean"==typeof t&&(n=t,t=0),t=t||q,(r=oe.exec(e))?[t.createElement(r[1])]:(r=Z.buildFragment([e],t,n?null:[]),Z.merge([],(r.cacheable?Z.clone(r.fragment):r.fragment).childNodes))):null},parseJSON:function(t){return t&&"string"==typeof t?(t=Z.trim(t),e.JSON&&e.JSON.parse?e.JSON.parse(t):ae.test(t.replace(le,"@").replace(ue,"]").replace(se,""))?new Function("return "+t)():void Z.error("Invalid JSON: "+t)):null},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||Z.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&te.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(ce,"ms-").replace(pe,he)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,o=0,a=e.length,s=a===t||Z.isFunction(e);if(r)if(s){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;a>o&&n.apply(e[o++],r)!==!1;);else if(s){for(i in e)if(n.call(e[i],i,e[i])===!1)break}else for(;a>o&&n.call(e[o],o,e[o++])!==!1;);return e},trim:Q&&!Q.call("\ufeff ")?function(e){return null==e?"":Q.call(e)}:function(e){return null==e?"":(e+"").replace(re,"")},makeArray:function(e,t){var n,r=t||[];return null!=e&&(n=Z.type(e),null==e.length||"string"===n||"function"===n||"regexp"===n||Z.isWindow(e)?G.call(r,e):Z.merge(r,e)),r},inArray:function(e,t,n){var r;if(t){if(J)return J.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else for(;n[o]!==t;)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,n,r){var i,o,a=[],s=0,l=e.length,u=e instanceof Z||l!==t&&"number"==typeof l&&(l>0&&e[0]&&e[l-1]||0===l||Z.isArray(e));if(u)for(;l>s;s++)i=n(e[s],s,r),null!=i&&(a[a.length]=i);else for(o in e)i=n(e[o],o,r),null!=i&&(a[a.length]=i);return a.concat.apply([],a)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(r=e[n],n=e,e=r),Z.isFunction(e)?(i=X.call(arguments,2),o=function(){return e.apply(n,i.concat(X.call(arguments)))},o.guid=e.guid=e.guid||Z.guid++,o):t},access:function(e,n,r,i,o,a,s){var l,u=null==r,c=0,p=e.length;if(r&&"object"==typeof r){for(c in r)Z.access(e,n,c,r[c],1,a,i);o=1}else if(i!==t){if(l=s===t&&Z.isFunction(i),u&&(l?(l=n,n=function(e,t,n){return l.call(Z(e),n)}):(n.call(e,i),n=null)),n)for(;p>c;c++)n(e[c],r,l?i.call(e[c],c,n(e[c],r)):i,s);o=1}return o?e:u?n.call(e):p?n(e[0],r):a},now:function(){return(new Date).getTime()}}),Z.ready.promise=function(t){if(!F)if(F=Z.Deferred(),"complete"===q.readyState)setTimeout(Z.ready,1);else if(q.addEventListener)q.addEventListener("DOMContentLoaded",fe,!1),e.addEventListener("load",Z.ready,!1);else{q.attachEvent("onreadystatechange",fe),e.attachEvent("onload",Z.ready);var n=!1;try{n=null==e.frameElement&&q.documentElement}catch(r){}n&&n.doScroll&&!function i(){if(!Z.isReady){try{n.doScroll("left")}catch(e){return setTimeout(i,50)}Z.ready()}}()}return F.promise(t)},Z.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(e,t){de["[object "+t+"]"]=t.toLowerCase()}),$=Z(q);var ge={};Z.Callbacks=function(e){e="string"==typeof e?ge[e]||r(e):Z.extend({},e);var n,i,o,a,s,l,u=[],c=!e.once&&[],p=function(t){for(n=e.memory&&t,i=!0,l=a||0,a=0,s=u.length,o=!0;u&&s>l;l++)if(u[l].apply(t[0],t[1])===!1&&e.stopOnFalse){n=!1;break}o=!1,u&&(c?c.length&&p(c.shift()):n?u=[]:h.disable())},h={add:function(){if(u){var t=u.length;!function r(t){Z.each(t,function(t,n){var i=Z.type(n);"function"===i?e.unique&&h.has(n)||u.push(n):n&&n.length&&"string"!==i&&r(n)})}(arguments),o?s=u.length:n&&(a=t,p(n))}return this},remove:function(){return u&&Z.each(arguments,function(e,t){for(var n;(n=Z.inArray(t,u,n))>-1;)u.splice(n,1),o&&(s>=n&&s--,l>=n&&l--)}),this},has:function(e){return Z.inArray(e,u)>-1},empty:function(){return u=[],this},disable:function(){return u=c=n=t,this},disabled:function(){return!u},lock:function(){return c=t,n||h.disable(),this},locked:function(){return!c},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!u||i&&!c||(o?c.push(t):p(t)),this},fire:function(){return h.fireWith(this,arguments),this},fired:function(){return!!i}};return h},Z.extend({Deferred:function(e){var t=[["resolve","done",Z.Callbacks("once memory"),"resolved"],["reject","fail",Z.Callbacks("once memory"),"rejected"],["notify","progress",Z.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return Z.Deferred(function(n){Z.each(t,function(t,r){var o=r[0],a=e[t];i[r[1]](Z.isFunction(a)?function(){var e=a.apply(this,arguments);e&&Z.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[o+"With"](this===i?n:this,[e])}:n[o])}),e=null}).promise()},promise:function(e){return null!=e?Z.extend(e,r):r}},i={};return r.pipe=r.then,Z.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=a.fire,i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,o=X.call(arguments),a=o.length,s=1!==a||e&&Z.isFunction(e.promise)?a:0,l=1===s?e:Z.Deferred(),u=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?X.call(arguments):i,r===t?l.notifyWith(n,r):--s||l.resolveWith(n,r)}};if(a>1)for(t=new Array(a),n=new Array(a),r=new Array(a);a>i;i++)o[i]&&Z.isFunction(o[i].promise)?o[i].promise().done(u(i,r,o)).fail(l.reject).progress(u(i,n,t)):--s;return s||l.resolveWith(r,o),l.promise()}}),Z.support=function(){var t,n,r,i,o,a,s,l,u,c,p,h=q.createElement("div");if(h.setAttribute("className","t"),h.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=h.getElementsByTagName("*"),r=h.getElementsByTagName("a")[0],!n||!r||!n.length)return{};i=q.createElement("select"),o=i.appendChild(q.createElement("option")),a=h.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:3===h.firstChild.nodeType,tbody:!h.getElementsByTagName("tbody").length,htmlSerialize:!!h.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:"/a"===r.getAttribute("href"),opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:"on"===a.value,optSelected:o.selected,getSetAttribute:"t"!==h.className,enctype:!!q.createElement("form").enctype,html5Clone:"<:nav></:nav>"!==q.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===q.compatMode,submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},a.checked=!0,t.noCloneChecked=a.cloneNode(!0).checked,i.disabled=!0,t.optDisabled=!o.disabled;try{delete h.test}catch(f){t.deleteExpando=!1}if(!h.addEventListener&&h.attachEvent&&h.fireEvent&&(h.attachEvent("onclick",p=function(){t.noCloneEvent=!1}),h.cloneNode(!0).fireEvent("onclick"),h.detachEvent("onclick",p)),a=q.createElement("input"),a.value="t",a.setAttribute("type","radio"),t.radioValue="t"===a.value,a.setAttribute("checked","checked"),a.setAttribute("name","t"),h.appendChild(a),s=q.createDocumentFragment(),s.appendChild(h.lastChild),t.checkClone=s.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=a.checked,s.removeChild(a),s.appendChild(h),h.attachEvent)for(u in{submit:!0,change:!0,focusin:!0})l="on"+u,c=l in h,c||(h.setAttribute(l,"return;"),c="function"==typeof h[l]),t[u+"Bubbles"]=c;return Z(function(){var n,r,i,o,a="padding:0;margin:0;border:0;display:block;overflow:hidden;",s=q.getElementsByTagName("body")[0];s&&(n=q.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",s.insertBefore(n,s.firstChild),r=q.createElement("div"),n.appendChild(r),r.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=r.getElementsByTagName("td"),i[0].style.cssText="padding:0;margin:0;border:0;display:none",c=0===i[0].offsetHeight,i[0].style.display="",i[1].style.display="none",t.reliableHiddenOffsets=c&&0===i[0].offsetHeight,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=4===r.offsetWidth,t.doesNotIncludeMarginInBodyOffset=1!==s.offsetTop,e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(r,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(r,null)||{width:"4px"}).width,o=q.createElement("div"),o.style.cssText=r.style.cssText=a,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),"undefined"!=typeof r.style.zoom&&(r.innerHTML="",r.style.cssText=a+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===r.offsetWidth,r.style.display="block",r.style.overflow="visible",r.innerHTML="<div></div>",r.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==r.offsetWidth,n.style.zoom=1),s.removeChild(n),n=r=i=o=null)}),s.removeChild(h),n=r=i=o=a=s=h=null,t}();var me=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,ve=/([A-Z])/g;Z.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(Z.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?Z.cache[e[Z.expando]]:e[Z.expando],!!e&&!o(e)},data:function(e,n,r,i){if(Z.acceptData(e)){var o,a,s=Z.expando,l="string"==typeof n,u=e.nodeType,c=u?Z.cache:e,p=u?e[s]:e[s]&&s;if(p&&c[p]&&(i||c[p].data)||!l||r!==t)return p||(u?e[s]=p=Z.deletedIds.pop()||Z.guid++:p=s),c[p]||(c[p]={},u||(c[p].toJSON=Z.noop)),"object"!=typeof n&&"function"!=typeof n||(i?c[p]=Z.extend(c[p],n):c[p].data=Z.extend(c[p].data,n)),o=c[p],i||(o.data||(o.data={}),o=o.data),r!==t&&(o[Z.camelCase(n)]=r),l?(a=o[n],null==a&&(a=o[Z.camelCase(n)])):a=o,a}},removeData:function(e,t,n){if(Z.acceptData(e)){var r,i,a,s=e.nodeType,l=s?Z.cache:e,u=s?e[Z.expando]:Z.expando;if(l[u]){if(t&&(r=n?l[u]:l[u].data)){Z.isArray(t)||(t in r?t=[t]:(t=Z.camelCase(t),t=t in r?[t]:t.split(" ")));for(i=0,a=t.length;a>i;i++)delete r[t[i]];if(!(n?o:Z.isEmptyObject)(r))return}(n||(delete l[u].data,o(l[u])))&&(s?Z.cleanData([e],!0):Z.support.deleteExpando||l!=l.window?delete l[u]:l[u]=null)}}},_data:function(e,t,n){return Z.data(e,t,n,!0)},acceptData:function(e){var t=e.nodeName&&Z.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),Z.fn.extend({data:function(e,n){var r,o,a,s,l,u=this[0],c=0,p=null;if(e===t){if(this.length&&(p=Z.data(u),1===u.nodeType&&!Z._data(u,"parsedAttrs"))){for(a=u.attributes,l=a.length;l>c;c++)s=a[c].name,s.indexOf("data-")||(s=Z.camelCase(s.substring(5)),i(u,s,p[s]));Z._data(u,"parsedAttrs",!0)}return p}return"object"==typeof e?this.each(function(){Z.data(this,e)}):(r=e.split(".",2),r[1]=r[1]?"."+r[1]:"",o=r[1]+"!",Z.access(this,function(n){return n===t?(p=this.triggerHandler("getData"+o,[r[0]]),p===t&&u&&(p=Z.data(u,e),p=i(u,e,p)),p===t&&r[1]?this.data(r[0]):p):(r[1]=n,void this.each(function(){var t=Z(this);t.triggerHandler("setData"+o,r),Z.data(this,e,n),t.triggerHandler("changeData"+o,r); +}))},null,n,arguments.length>1,null,!1))},removeData:function(e){return this.each(function(){Z.removeData(this,e)})}}),Z.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=Z._data(e,t),n&&(!r||Z.isArray(n)?r=Z._data(e,t,Z.makeArray(n)):r.push(n)),r||[]):void 0},dequeue:function(e,t){t=t||"fx";var n=Z.queue(e,t),r=n.length,i=n.shift(),o=Z._queueHooks(e,t),a=function(){Z.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Z._data(e,n)||Z._data(e,n,{empty:Z.Callbacks("once memory").add(function(){Z.removeData(e,t+"queue",!0),Z.removeData(e,n,!0)})})}}),Z.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),arguments.length<r?Z.queue(this[0],e):n===t?this:this.each(function(){var t=Z.queue(this,e,n);Z._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&Z.dequeue(this,e)})},dequeue:function(e){return this.each(function(){Z.dequeue(this,e)})},delay:function(e,t){return e=Z.fx?Z.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=Z.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};for("string"!=typeof e&&(n=e,e=t),e=e||"fx";s--;)r=Z._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var ye,be,xe,we=/[\t\r\n]/g,Se=/\r/g,ke=/^(?:button|input)$/i,Ce=/^(?:button|input|object|select|textarea)$/i,_e=/^a(?:rea|)$/i,Ee=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,Ae=Z.support.getSetAttribute;Z.fn.extend({attr:function(e,t){return Z.access(this,Z.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){Z.removeAttr(this,e)})},prop:function(e,t){return Z.access(this,Z.prop,e,t,arguments.length>1)},removeProp:function(e){return e=Z.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a,s;if(Z.isFunction(e))return this.each(function(t){Z(this).addClass(e.call(this,t,this.className))});if(e&&"string"==typeof e)for(t=e.split(ne),n=0,r=this.length;r>n;n++)if(i=this[n],1===i.nodeType)if(i.className||1!==t.length){for(o=" "+i.className+" ",a=0,s=t.length;s>a;a++)o.indexOf(" "+t[a]+" ")<0&&(o+=t[a]+" ");i.className=Z.trim(o)}else i.className=e;return this},removeClass:function(e){var n,r,i,o,a,s,l;if(Z.isFunction(e))return this.each(function(t){Z(this).removeClass(e.call(this,t,this.className))});if(e&&"string"==typeof e||e===t)for(n=(e||"").split(ne),s=0,l=this.length;l>s;s++)if(i=this[s],1===i.nodeType&&i.className){for(r=(" "+i.className+" ").replace(we," "),o=0,a=n.length;a>o;o++)for(;r.indexOf(" "+n[o]+" ")>=0;)r=r.replace(" "+n[o]+" "," ");i.className=e?Z.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return Z.isFunction(e)?this.each(function(n){Z(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n)for(var i,o=0,a=Z(this),s=t,l=e.split(ne);i=l[o++];)s=r?s:!a.hasClass(i),a[s?"addClass":"removeClass"](i);else"undefined"!==n&&"boolean"!==n||(this.className&&Z._data(this,"__className__",this.className),this.className=this.className||e===!1?"":Z._data(this,"__className__")||"")})},hasClass:function(e){for(var t=" "+e+" ",n=0,r=this.length;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(we," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=Z.isFunction(e),this.each(function(r){var o,a=Z(this);1===this.nodeType&&(o=i?e.call(this,r,a.val()):e,null==o?o="":"number"==typeof o?o+="":Z.isArray(o)&&(o=Z.map(o,function(e){return null==e?"":e+""})),n=Z.valHooks[this.type]||Z.valHooks[this.nodeName.toLowerCase()],n&&"set"in n&&n.set(this,o,"value")!==t||(this.value=o))});if(o)return n=Z.valHooks[o.type]||Z.valHooks[o.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(o,"value"))!==t?r:(r=o.value,"string"==typeof r?r.replace(Se,""):null==r?"":r)}}}),Z.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;s>l;l++)if(n=r[l],(n.selected||l===i)&&(Z.support.optDisabled?!n.disabled:null===n.getAttribute("disabled"))&&(!n.parentNode.disabled||!Z.nodeName(n.parentNode,"optgroup"))){if(t=Z(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n=Z.makeArray(t);return Z(e).find("option").each(function(){this.selected=Z.inArray(Z(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var o,a,s,l=e.nodeType;if(e&&3!==l&&8!==l&&2!==l)return i&&Z.isFunction(Z.fn[n])?Z(e)[n](r):"undefined"==typeof e.getAttribute?Z.prop(e,n,r):(s=1!==l||!Z.isXMLDoc(e),s&&(n=n.toLowerCase(),a=Z.attrHooks[n]||(Ee.test(n)?be:ye)),r!==t?null===r?void Z.removeAttr(e,n):a&&"set"in a&&s&&(o=a.set(e,r,n))!==t?o:(e.setAttribute(n,r+""),r):a&&"get"in a&&s&&null!==(o=a.get(e,n))?o:(o=e.getAttribute(n),null===o?t:o))},removeAttr:function(e,t){var n,r,i,o,a=0;if(t&&1===e.nodeType)for(r=t.split(ne);a<r.length;a++)i=r[a],i&&(n=Z.propFix[i]||i,o=Ee.test(i),o||Z.attr(e,i,""),e.removeAttribute(Ae?i:n),o&&n in e&&(e[n]=!1))},attrHooks:{type:{set:function(e,t){if(ke.test(e.nodeName)&&e.parentNode)Z.error("type property can't be changed");else if(!Z.support.radioValue&&"radio"===t&&Z.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}},value:{get:function(e,t){return ye&&Z.nodeName(e,"button")?ye.get(e,t):t in e?e.value:null},set:function(e,t,n){return ye&&Z.nodeName(e,"button")?ye.set(e,t,n):void(e.value=t)}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!Z.isXMLDoc(e),a&&(n=Z.propFix[n]||n,o=Z.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):Ce.test(e.nodeName)||_e.test(e.nodeName)&&e.href?0:t}}}}),be={get:function(e,n){var r,i=Z.prop(e,n);return i===!0||"boolean"!=typeof i&&(r=e.getAttributeNode(n))&&r.nodeValue!==!1?n.toLowerCase():t},set:function(e,t,n){var r;return t===!1?Z.removeAttr(e,n):(r=Z.propFix[n]||n,r in e&&(e[r]=!0),e.setAttribute(n,n.toLowerCase())),n}},Ae||(xe={name:!0,id:!0,coords:!0},ye=Z.valHooks.button={get:function(e,n){var r;return r=e.getAttributeNode(n),r&&(xe[n]?""!==r.value:r.specified)?r.value:t},set:function(e,t,n){var r=e.getAttributeNode(n);return r||(r=q.createAttribute(n),e.setAttributeNode(r)),r.value=t+""}},Z.each(["width","height"],function(e,t){Z.attrHooks[t]=Z.extend(Z.attrHooks[t],{set:function(e,n){return""===n?(e.setAttribute(t,"auto"),n):void 0}})}),Z.attrHooks.contenteditable={get:ye.get,set:function(e,t,n){""===t&&(t="false"),ye.set(e,t,n)}}),Z.support.hrefNormalized||Z.each(["href","src","width","height"],function(e,n){Z.attrHooks[n]=Z.extend(Z.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return null===r?t:r}})}),Z.support.style||(Z.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||t},set:function(e,t){return e.style.cssText=t+""}}),Z.support.optSelected||(Z.propHooks.selected=Z.extend(Z.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),Z.support.enctype||(Z.propFix.enctype="encoding"),Z.support.checkOn||Z.each(["radio","checkbox"],function(){Z.valHooks[this]={get:function(e){return null===e.getAttribute("value")?"on":e.value}}}),Z.each(["radio","checkbox"],function(){Z.valHooks[this]=Z.extend(Z.valHooks[this],{set:function(e,t){return Z.isArray(t)?e.checked=Z.inArray(Z(e).val(),t)>=0:void 0}})});var Ne=/^(?:textarea|input|select)$/i,Te=/^([^\.]*|)(?:\.(.+)|)$/,Pe=/(?:^|\s)hover(\.\S+|)\b/,Le=/^key/,je=/^(?:mouse|contextmenu)|click/,Oe=/^(?:focusinfocus|focusoutblur)$/,Me=function(e){return Z.event.special.hover?e:e.replace(Pe,"mouseenter$1 mouseleave$1")};Z.event={add:function(e,n,r,i,o){var a,s,l,u,c,p,h,f,d,g,m;if(3!==e.nodeType&&8!==e.nodeType&&n&&r&&(a=Z._data(e))){for(r.handler&&(d=r,r=d.handler,o=d.selector),r.guid||(r.guid=Z.guid++),l=a.events,l||(a.events=l={}),s=a.handle,s||(a.handle=s=function(e){return"undefined"==typeof Z||e&&Z.event.triggered===e.type?t:Z.event.dispatch.apply(s.elem,arguments)},s.elem=e),n=Z.trim(Me(n)).split(" "),u=0;u<n.length;u++)c=Te.exec(n[u])||[],p=c[1],h=(c[2]||"").split(".").sort(),m=Z.event.special[p]||{},p=(o?m.delegateType:m.bindType)||p,m=Z.event.special[p]||{},f=Z.extend({type:p,origType:c[1],data:i,handler:r,guid:r.guid,selector:o,needsContext:o&&Z.expr.match.needsContext.test(o),namespace:h.join(".")},d),g=l[p],g||(g=l[p]=[],g.delegateCount=0,m.setup&&m.setup.call(e,i,h,s)!==!1||(e.addEventListener?e.addEventListener(p,s,!1):e.attachEvent&&e.attachEvent("on"+p,s))),m.add&&(m.add.call(e,f),f.handler.guid||(f.handler.guid=r.guid)),o?g.splice(g.delegateCount++,0,f):g.push(f),Z.event.global[p]=!0;e=null}},global:{},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,h,f,d,g,m=Z.hasData(e)&&Z._data(e);if(m&&(h=m.events)){for(t=Z.trim(Me(t||"")).split(" "),o=0;o<t.length;o++)if(a=Te.exec(t[o])||[],s=l=a[1],u=a[2],s){for(f=Z.event.special[s]||{},s=(r?f.delegateType:f.bindType)||s,d=h[s]||[],c=d.length,u=u?new RegExp("(^|\\.)"+u.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null,p=0;p<d.length;p++)g=d[p],!i&&l!==g.origType||n&&n.guid!==g.guid||u&&!u.test(g.namespace)||r&&r!==g.selector&&("**"!==r||!g.selector)||(d.splice(p--,1),g.selector&&d.delegateCount--,f.remove&&f.remove.call(e,g));0===d.length&&c!==d.length&&(f.teardown&&f.teardown.call(e,u,m.handle)!==!1||Z.removeEvent(e,s,m.handle),delete h[s])}else for(s in h)Z.event.remove(e,s+t[o],n,r,!0);Z.isEmptyObject(h)&&(delete m.handle,Z.removeData(e,"events",!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(n,r,i,o){if(!i||3!==i.nodeType&&8!==i.nodeType){var a,s,l,u,c,p,h,f,d,g,m=n.type||n,v=[];if(!Oe.test(m+Z.event.triggered)&&(m.indexOf("!")>=0&&(m=m.slice(0,-1),s=!0),m.indexOf(".")>=0&&(v=m.split("."),m=v.shift(),v.sort()),i&&!Z.event.customEvent[m]||Z.event.global[m]))if(n="object"==typeof n?n[Z.expando]?n:new Z.Event(m,n):new Z.Event(m),n.type=m,n.isTrigger=!0,n.exclusive=s,n.namespace=v.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+v.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,p=m.indexOf(":")<0?"on"+m:"",i){if(n.result=t,n.target||(n.target=i),r=null!=r?Z.makeArray(r):[],r.unshift(n),h=Z.event.special[m]||{},!h.trigger||h.trigger.apply(i,r)!==!1){if(d=[[i,h.bindType||m]],!o&&!h.noBubble&&!Z.isWindow(i)){for(g=h.delegateType||m,u=Oe.test(g+m)?i:i.parentNode,c=i;u;u=u.parentNode)d.push([u,g]),c=u;c===(i.ownerDocument||q)&&d.push([c.defaultView||c.parentWindow||e,g])}for(l=0;l<d.length&&!n.isPropagationStopped();l++)u=d[l][0],n.type=d[l][1],f=(Z._data(u,"events")||{})[n.type]&&Z._data(u,"handle"),f&&f.apply(u,r),f=p&&u[p],f&&Z.acceptData(u)&&f.apply&&f.apply(u,r)===!1&&n.preventDefault();return n.type=m,o||n.isDefaultPrevented()||h._default&&h._default.apply(i.ownerDocument,r)!==!1||"click"===m&&Z.nodeName(i,"a")||!Z.acceptData(i)||p&&i[m]&&("focus"!==m&&"blur"!==m||0!==n.target.offsetWidth)&&!Z.isWindow(i)&&(c=i[p],c&&(i[p]=null),Z.event.triggered=m,i[m](),Z.event.triggered=t,c&&(i[p]=c)),n.result}}else{a=Z.cache;for(l in a)a[l].events&&a[l].events[m]&&Z.event.trigger(n,r,a[l].handle.elem,!0)}}},dispatch:function(n){n=Z.event.fix(n||e.event);var r,i,o,a,s,l,u,c,p,h=(Z._data(this,"events")||{})[n.type]||[],f=h.delegateCount,d=X.call(arguments),g=!n.exclusive&&!n.namespace,m=Z.event.special[n.type]||{},v=[];if(d[0]=n,n.delegateTarget=this,!m.preDispatch||m.preDispatch.call(this,n)!==!1){if(f&&(!n.button||"click"!==n.type))for(o=n.target;o!=this;o=o.parentNode||this)if(o.disabled!==!0||"click"!==n.type){for(s={},u=[],r=0;f>r;r++)c=h[r],p=c.selector,s[p]===t&&(s[p]=c.needsContext?Z(p,this).index(o)>=0:Z.find(p,this,null,[o]).length),s[p]&&u.push(c);u.length&&v.push({elem:o,matches:u})}for(h.length>f&&v.push({elem:this,matches:h.slice(f)}),r=0;r<v.length&&!n.isPropagationStopped();r++)for(l=v[r],n.currentTarget=l.elem,i=0;i<l.matches.length&&!n.isImmediatePropagationStopped();i++)c=l.matches[i],(g||!n.namespace&&!c.namespace||n.namespace_re&&n.namespace_re.test(c.namespace))&&(n.data=c.data,n.handleObj=c,a=((Z.event.special[c.origType]||{}).handle||c.handler).apply(l.elem,d),a!==t&&(n.result=a,a===!1&&(n.preventDefault(),n.stopPropagation())));return m.postDispatch&&m.postDispatch.call(this,n),n.result}},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,a=n.button,s=n.fromElement;return null==e.pageX&&null!=n.clientX&&(r=e.target.ownerDocument||q,i=r.documentElement,o=r.body,e.pageX=n.clientX+(i&&i.scrollLeft||o&&o.scrollLeft||0)-(i&&i.clientLeft||o&&o.clientLeft||0),e.pageY=n.clientY+(i&&i.scrollTop||o&&o.scrollTop||0)-(i&&i.clientTop||o&&o.clientTop||0)),!e.relatedTarget&&s&&(e.relatedTarget=s===e.target?n.toElement:s),e.which||a===t||(e.which=1&a?1:2&a?3:4&a?2:0),e}},fix:function(e){if(e[Z.expando])return e;var t,n,r=e,i=Z.event.fixHooks[e.type]||{},o=i.props?this.props.concat(i.props):this.props;for(e=Z.Event(r),t=o.length;t;)n=o[--t],e[n]=r[n];return e.target||(e.target=r.srcElement||q),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,i.filter?i.filter(e,r):e},special:{load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(e,t,n){Z.isWindow(this)&&(this.onbeforeunload=n)},teardown:function(e,t){this.onbeforeunload===t&&(this.onbeforeunload=null)}}},simulate:function(e,t,n,r){var i=Z.extend(new Z.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?Z.event.trigger(i,null,t):Z.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},Z.event.handle=Z.event.dispatch,Z.removeEvent=q.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&("undefined"==typeof e[r]&&(e[r]=null),e.detachEvent(r,n))},Z.Event=function(e,t){return this instanceof Z.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?s:a):this.type=e,t&&Z.extend(this,t),this.timeStamp=e&&e.timeStamp||Z.now(),void(this[Z.expando]=!0)):new Z.Event(e,t)},Z.Event.prototype={preventDefault:function(){this.isDefaultPrevented=s;var e=this.originalEvent;e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=s;var e=this.originalEvent;e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=s,this.stopPropagation()},isDefaultPrevented:a,isPropagationStopped:a,isImmediatePropagationStopped:a},Z.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){Z.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;o.selector;return i&&(i===r||Z.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),Z.support.submitBubbles||(Z.event.special.submit={setup:function(){return Z.nodeName(this,"form")?!1:void Z.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=Z.nodeName(n,"input")||Z.nodeName(n,"button")?n.form:t;r&&!Z._data(r,"_submit_attached")&&(Z.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),Z._data(r,"_submit_attached",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&Z.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return Z.nodeName(this,"form")?!1:void Z.event.remove(this,"._submit")}}),Z.support.changeBubbles||(Z.event.special.change={setup:function(){return Ne.test(this.nodeName)?("checkbox"!==this.type&&"radio"!==this.type||(Z.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),Z.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),Z.event.simulate("change",this,e,!0)})),!1):void Z.event.add(this,"beforeactivate._change",function(e){var t=e.target;Ne.test(t.nodeName)&&!Z._data(t,"_change_attached")&&(Z.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||Z.event.simulate("change",this.parentNode,e,!0)}),Z._data(t,"_change_attached",!0))})},handle:function(e){var t=e.target;return this!==t||e.isSimulated||e.isTrigger||"radio"!==t.type&&"checkbox"!==t.type?e.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return Z.event.remove(this,"._change"),!Ne.test(this.nodeName)}}),Z.support.focusinBubbles||Z.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){Z.event.simulate(t,e.target,Z.event.fix(e),!0)};Z.event.special[t]={setup:function(){0===n++&&q.addEventListener(e,r,!0)},teardown:function(){0===--n&&q.removeEventListener(e,r,!0)}}}),Z.fn.extend({on:function(e,n,r,i,o){var s,l;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(l in e)this.on(l,n,r,e[l],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=a;else if(!i)return this;return 1===o&&(s=i,i=function(e){return Z().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=Z.guid++)),this.each(function(){Z.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,Z(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return n!==!1&&"function"!=typeof n||(r=n,n=t),r===!1&&(r=a),this.each(function(){Z.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},live:function(e,t,n){return Z(this.context).on(e,this.selector,t,n),this},die:function(e,t){return Z(this.context).off(e,this.selector||"**",t),this},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){Z.event.trigger(e,t,this)})},triggerHandler:function(e,t){return this[0]?Z.event.trigger(e,t,this[0],!0):void 0},toggle:function(e){var t=arguments,n=e.guid||Z.guid++,r=0,i=function(n){var i=(Z._data(this,"lastToggle"+e.guid)||0)%r;return Z._data(this,"lastToggle"+e.guid,i+1),n.preventDefault(),t[i].apply(this,arguments)||!1};for(i.guid=n;r<t.length;)t[r++].guid=n;return this.click(i)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),Z.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){Z.fn[t]=function(e,n){return null==n&&(n=e,e=null),arguments.length>0?this.on(t,null,e,n):this.trigger(t)},Le.test(t)&&(Z.event.fixHooks[t]=Z.event.keyHooks),je.test(t)&&(Z.event.fixHooks[t]=Z.event.mouseHooks)}),function(e,t){function n(e,t,n,r){n=n||[],t=t||L;var i,o,a,s,l=t.nodeType;if(!e||"string"!=typeof e)return n;if(1!==l&&9!==l)return[];if(a=w(t),!a&&!r&&(i=ne.exec(e)))if(s=i[1]){if(9===l){if(o=t.getElementById(s),!o||!o.parentNode)return n;if(o.id===s)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(s))&&S(t,o)&&o.id===s)return n.push(o),n}else{if(i[2])return H.apply(n,I.call(t.getElementsByTagName(e),0)),n;if((s=i[3])&&he&&t.getElementsByClassName)return H.apply(n,I.call(t.getElementsByClassName(s),0)),n}return g(e.replace(Y,"$1"),t,n,r,a)}function r(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function i(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function o(e){return B(function(t){return t=+t,B(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function a(e,t,n){if(e===t)return n;for(var r=e.nextSibling;r;){if(r===t)return-1;r=r.nextSibling}return 1}function s(e,t){var r,i,o,a,s,l,u,c=q[T][e+" "];if(c)return t?0:c.slice(0);for(s=e,l=[],u=b.preFilter;s;){r&&!(i=Q.exec(s))||(i&&(s=s.slice(i[0].length)||s),l.push(o=[])),r=!1,(i=ee.exec(s))&&(o.push(r=new P(i.shift())),s=s.slice(r.length),r.type=i[0].replace(Y," "));for(a in b.filter)!(i=se[a].exec(s))||u[a]&&!(i=u[a](i))||(o.push(r=new P(i.shift())),s=s.slice(r.length),r.type=a,r.matches=i);if(!r)break}return t?s.length:s?n.error(e):q(e,l).slice(0)}function l(e,t,n){var r=t.dir,i=n&&"parentNode"===t.dir,o=M++;return t.first?function(t,n,o){for(;t=t[r];)if(i||1===t.nodeType)return e(t,n,o)}:function(t,n,a){if(a){for(;t=t[r];)if((i||1===t.nodeType)&&e(t,n,a))return t}else for(var s,l=O+" "+o+" ",u=l+v;t=t[r];)if(i||1===t.nodeType){if((s=t[T])===u)return t.sizset;if("string"==typeof s&&0===s.indexOf(l)){if(t.sizset)return t}else{if(t[T]=u,e(t,n,a))return t.sizset=!0,t;t.sizset=!1}}}}function u(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function c(e,t,n,r,i){for(var o,a=[],s=0,l=e.length,u=null!=t;l>s;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),u&&t.push(s)));return a}function p(e,t,n,r,i,o){return r&&!r[T]&&(r=p(r)),i&&!i[T]&&(i=p(i,o)),B(function(o,a,s,l){var u,p,h,f=[],g=[],m=a.length,v=o||d(t||"*",s.nodeType?[s]:s,[]),y=!e||!o&&t?v:c(v,f,e,s,l),b=n?i||(o?e:m||r)?[]:a:y;if(n&&n(y,b,s,l),r)for(u=c(b,g),r(u,[],s,l),p=u.length;p--;)(h=u[p])&&(b[g[p]]=!(y[g[p]]=h));if(o){if(i||e){if(i){for(u=[],p=b.length;p--;)(h=b[p])&&u.push(y[p]=h);i(null,b=[],u,l)}for(p=b.length;p--;)(h=b[p])&&(u=i?R.call(o,h):f[p])>-1&&(o[u]=!(a[u]=h))}}else b=c(b===a?b.splice(m,b.length):b),i?i(null,a,b,l):H.apply(a,b)})}function h(e){for(var t,n,r,i=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,c=l(function(e){return e===t},a,!0),f=l(function(e){return R.call(t,e)>-1},a,!0),d=[function(e,n,r){return!o&&(r||n!==E)||((t=n).nodeType?c(e,n,r):f(e,n,r))}];i>s;s++)if(n=b.relative[e[s].type])d=[l(u(d),n)];else{if(n=b.filter[e[s].type].apply(null,e[s].matches),n[T]){for(r=++s;i>r&&!b.relative[e[r].type];r++);return p(s>1&&u(d),s>1&&e.slice(0,s-1).join("").replace(Y,"$1"),n,r>s&&h(e.slice(s,r)),i>r&&h(e=e.slice(r)),i>r&&e.join(""))}d.push(n)}return u(d)}function f(e,t){var r=t.length>0,i=e.length>0,o=function(a,s,l,u,p){var h,f,d,g=[],m=0,y="0",x=a&&[],w=null!=p,S=E,k=a||i&&b.find.TAG("*",p&&s.parentNode||s),C=O+=null==S?1:Math.E;for(w&&(E=s!==L&&s,v=o.el);null!=(h=k[y]);y++){if(i&&h){for(f=0;d=e[f];f++)if(d(h,s,l)){u.push(h);break}w&&(O=C,v=++o.el)}r&&((h=!d&&h)&&m--,a&&x.push(h))}if(m+=y,r&&y!==m){for(f=0;d=t[f];f++)d(x,g,s,l);if(a){if(m>0)for(;y--;)x[y]||g[y]||(g[y]=D.call(u));g=c(g)}H.apply(u,g),w&&!a&&g.length>0&&m+t.length>1&&n.uniqueSort(u)}return w&&(O=C,E=S),x};return o.el=0,r?B(o):o}function d(e,t,r){for(var i=0,o=t.length;o>i;i++)n(e,t[i],r);return r}function g(e,t,n,r,i){var o,a,l,u,c,p=s(e);p.length;if(!r&&1===p.length){if(a=p[0]=p[0].slice(0),a.length>2&&"ID"===(l=a[0]).type&&9===t.nodeType&&!i&&b.relative[a[1].type]){if(t=b.find.ID(l.matches[0].replace(ae,""),t,i)[0],!t)return n;e=e.slice(a.shift().length)}for(o=se.POS.test(e)?-1:a.length-1;o>=0&&(l=a[o],!b.relative[u=l.type]);o--)if((c=b.find[u])&&(r=c(l.matches[0].replace(ae,""),re.test(a[0].type)&&t.parentNode||t,i))){if(a.splice(o,1),e=r.length&&a.join(""),!e)return H.apply(n,I.call(r,0)),n;break}}return k(e,p)(r,t,i,n,re.test(e)),n}function m(){}var v,y,b,x,w,S,k,C,_,E,A=!0,N="undefined",T=("sizcache"+Math.random()).replace(".",""),P=String,L=e.document,j=L.documentElement,O=0,M=0,D=[].pop,H=[].push,I=[].slice,R=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},B=function(e,t){return e[T]=null==t||t,e},$=function(){var e={},t=[];return B(function(n,r){return t.push(n)>b.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},F=$(),q=$(),W=$(),U="[\\x20\\t\\r\\n\\f]",z="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",V=z.replace("w","w#"),G="([*^$|!~]?=)",X="\\["+U+"*("+z+")"+U+"*(?:"+G+U+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+V+")|)|)"+U+"*\\]",J=":("+z+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+X+")|[^:]|\\\\.)*|.*))\\)|)",K=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+U+"*((?:-\\d)?\\d*)"+U+"*\\)|)(?=[^-]|$)",Y=new RegExp("^"+U+"+|((?:^|[^\\\\])(?:\\\\.)*)"+U+"+$","g"),Q=new RegExp("^"+U+"*,"+U+"*"),ee=new RegExp("^"+U+"*([\\x20\\t\\r\\n\\f>+~])"+U+"*"),te=new RegExp(J),ne=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,re=/[\x20\t\r\n\f]*[+~]/,ie=/h\d/i,oe=/input|select|textarea|button/i,ae=/\\(?!\\)/g,se={ID:new RegExp("^#("+z+")"),CLASS:new RegExp("^\\.("+z+")"),NAME:new RegExp("^\\[name=['\"]?("+z+")['\"]?\\]"),TAG:new RegExp("^("+z.replace("w","w*")+")"),ATTR:new RegExp("^"+X),PSEUDO:new RegExp("^"+J),POS:new RegExp(K,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+U+"*(even|odd|(([+-]|)(\\d*)n|)"+U+"*(?:([+-]|)"+U+"*(\\d+)|))"+U+"*\\)|)","i"),needsContext:new RegExp("^"+U+"*[>+~]|"+K,"i")},le=function(e){var t=L.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},ue=le(function(e){return e.appendChild(L.createComment("")),!e.getElementsByTagName("*").length}),ce=le(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==N&&"#"===e.firstChild.getAttribute("href")}),pe=le(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),he=le(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),fe=le(function(e){e.id=T+0,e.innerHTML="<a name='"+T+"'></a><div name='"+T+"'></div>",j.insertBefore(e,j.firstChild);var t=L.getElementsByName&&L.getElementsByName(T).length===2+L.getElementsByName(T+0).length;return y=!L.getElementById(T),j.removeChild(e),t});try{I.call(j.childNodes,0)[0].nodeType}catch(de){I=function(e){for(var t,n=[];t=this[e];e++)n.push(t);return n}}n.matches=function(e,t){return n(e,null,null,t)},n.matchesSelector=function(e,t){return n(t,null,null,[e]).length>0},x=n.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=x(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=x(t);return n},w=n.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},S=n.contains=j.contains?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&1===r.nodeType&&n.contains&&n.contains(r))}:j.compareDocumentPosition?function(e,t){return t&&!!(16&e.compareDocumentPosition(t))}:function(e,t){for(;t=t.parentNode;)if(t===e)return!0;return!1},n.attr=function(e,t){var n,r=w(e);return r||(t=t.toLowerCase()),(n=b.attrHandle[t])?n(e):r||pe?e.getAttribute(t):(n=e.getAttributeNode(t),n?"boolean"==typeof e[t]?e[t]?t:null:n.specified?n.value:null:null)},b=n.selectors={cacheLength:50,createPseudo:B,match:se,attrHandle:ce?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:y?function(e,t,n){if(typeof t.getElementById!==N&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==N&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==N&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:ue?function(e,t){return typeof t.getElementsByTagName!==N?t.getElementsByTagName(e):void 0}:function(e,t){var n=t.getElementsByTagName(e);if("*"===e){for(var r,i=[],o=0;r=n[o];o++)1===r.nodeType&&i.push(r);return i}return n},NAME:fe&&function(e,t){return typeof t.getElementsByName!==N?t.getElementsByName(name):void 0},CLASS:he&&function(e,t,n){return typeof t.getElementsByClassName===N||n?void 0:t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(ae,""),e[3]=(e[4]||e[5]||"").replace(ae,""),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1]?(e[2]||n.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*("even"===e[2]||"odd"===e[2])),e[4]=+(e[6]+e[7]||"odd"===e[2])):e[2]&&n.error(e[0]),e},PSEUDO:function(e){var t,n;return se.CHILD.test(e[0])?null:(e[3]?e[2]=e[3]:(t=e[4])&&(te.test(t)&&(n=s(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t),e.slice(0,3))}},filter:{ID:y?function(e){return e=e.replace(ae,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace(ae,""),function(t){var n=typeof t.getAttributeNode!==N&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(ae,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=F[T][e+" "];return t||(t=new RegExp("(^|"+U+")"+e+"("+U+"|$)"))&&F(e,function(e){return t.test(e.className||typeof e.getAttribute!==N&&e.getAttribute("class")||"")})},ATTR:function(e,t,r){return function(i,o){var a=n.attr(i,e);return null==a?"!="===t:t?(a+="","="===t?a===r:"!="===t?a!==r:"^="===t?r&&0===a.indexOf(r):"*="===t?r&&a.indexOf(r)>-1:"$="===t?r&&a.substr(a.length-r.length)===r:"~="===t?(" "+a+" ").indexOf(r)>-1:"|="===t?a===r||a.substr(0,r.length+1)===r+"-":!1):!0}},CHILD:function(e,t,n,r){return"nth"===e?function(e){var t,i,o=e.parentNode;if(1===n&&0===r)return!0;if(o)for(i=0,t=o.firstChild;t&&(1!==t.nodeType||(i++,e!==t));t=t.nextSibling);return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":for(;n=n.previousSibling;)if(1===n.nodeType)return!1;if("first"===e)return!0;n=t;case"last":for(;n=n.nextSibling;)if(1===n.nodeType)return!1;return!0}}},PSEUDO:function(e,t){var r,i=b.pseudos[e]||b.setFilters[e.toLowerCase()]||n.error("unsupported pseudo: "+e);return i[T]?i(t):i.length>1?(r=[e,e,"",t],b.setFilters.hasOwnProperty(e.toLowerCase())?B(function(e,n){for(var r,o=i(e,t),a=o.length;a--;)r=R.call(e,o[a]),e[r]=!(n[r]=o[a])}):function(e){return i(e,0,r)}):i}},pseudos:{not:B(function(e){var t=[],n=[],r=k(e.replace(Y,"$1"));return r[T]?B(function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:B(function(e){return function(t){return n(e,t).length>0}}),contains:B(function(e){return function(t){return(t.textContent||t.innerText||x(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected; +},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!b.pseudos.empty(e)},empty:function(e){var t;for(e=e.firstChild;e;){if(e.nodeName>"@"||3===(t=e.nodeType)||4===t)return!1;e=e.nextSibling}return!0},header:function(e){return ie.test(e.nodeName)},text:function(e){var t,n;return"input"===e.nodeName.toLowerCase()&&"text"===(t=e.type)&&(null==(n=e.getAttribute("type"))||n.toLowerCase()===t)},radio:r("radio"),checkbox:r("checkbox"),file:r("file"),password:r("password"),image:r("image"),submit:i("submit"),reset:i("reset"),button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},input:function(e){return oe.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:o(function(){return[0]}),last:o(function(e,t){return[t-1]}),eq:o(function(e,t,n){return[0>n?n+t:n]}),even:o(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:o(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:o(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:o(function(e,t,n){for(var r=0>n?n+t:n;++r<t;)e.push(r);return e})}},C=j.compareDocumentPosition?function(e,t){return e===t?(_=!0,0):(e.compareDocumentPosition&&t.compareDocumentPosition?4&e.compareDocumentPosition(t):e.compareDocumentPosition)?-1:1}:function(e,t){if(e===t)return _=!0,0;if(e.sourceIndex&&t.sourceIndex)return e.sourceIndex-t.sourceIndex;var n,r,i=[],o=[],s=e.parentNode,l=t.parentNode,u=s;if(s===l)return a(e,t);if(!s)return-1;if(!l)return 1;for(;u;)i.unshift(u),u=u.parentNode;for(u=l;u;)o.unshift(u),u=u.parentNode;n=i.length,r=o.length;for(var c=0;n>c&&r>c;c++)if(i[c]!==o[c])return a(i[c],o[c]);return c===n?a(e,o[c],-1):a(i[c],t,1)},[0,0].sort(C),A=!_,n.uniqueSort=function(e){var t,n=[],r=1,i=0;if(_=A,e.sort(C),_){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));for(;i--;)e.splice(n[i],1)}return e},n.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},k=n.compile=function(e,t){var n,r=[],i=[],o=W[T][e+" "];if(!o){for(t||(t=s(e)),n=t.length;n--;)o=h(t[n]),o[T]?r.push(o):i.push(o);o=W(e,f(i,r))}return o},L.querySelectorAll&&!function(){var e,t=g,r=/'|\\/g,i=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,o=[":focus"],a=[":active"],l=j.matchesSelector||j.mozMatchesSelector||j.webkitMatchesSelector||j.oMatchesSelector||j.msMatchesSelector;le(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||o.push("\\["+U+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||o.push(":checked")}),le(function(e){e.innerHTML="<p test=''></p>",e.querySelectorAll("[test^='']").length&&o.push("[*^$]="+U+"*(?:\"\"|'')"),e.innerHTML="<input type='hidden'/>",e.querySelectorAll(":enabled").length||o.push(":enabled",":disabled")}),o=new RegExp(o.join("|")),g=function(e,n,i,a,l){if(!a&&!l&&!o.test(e)){var u,c,p=!0,h=T,f=n,d=9===n.nodeType&&e;if(1===n.nodeType&&"object"!==n.nodeName.toLowerCase()){for(u=s(e),(p=n.getAttribute("id"))?h=p.replace(r,"\\$&"):n.setAttribute("id",h),h="[id='"+h+"'] ",c=u.length;c--;)u[c]=h+u[c].join("");f=re.test(e)&&n.parentNode||n,d=u.join(",")}if(d)try{return H.apply(i,I.call(f.querySelectorAll(d),0)),i}catch(g){}finally{p||n.removeAttribute("id")}}return t(e,n,i,a,l)},l&&(le(function(t){e=l.call(t,"div");try{l.call(t,"[test!='']:sizzle"),a.push("!=",J)}catch(n){}}),a=new RegExp(a.join("|")),n.matchesSelector=function(t,r){if(r=r.replace(i,"='$1']"),!w(t)&&!a.test(r)&&!o.test(r))try{var s=l.call(t,r);if(s||e||t.document&&11!==t.document.nodeType)return s}catch(u){}return n(r,null,null,[t]).length>0})}(),b.pseudos.nth=b.pseudos.eq,b.filters=m.prototype=b.pseudos,b.setFilters=new m,n.attr=Z.attr,Z.find=n,Z.expr=n.selectors,Z.expr[":"]=Z.expr.pseudos,Z.unique=n.uniqueSort,Z.text=n.getText,Z.isXMLDoc=n.isXML,Z.contains=n.contains}(e);var De=/Until$/,He=/^(?:parents|prev(?:Until|All))/,Ie=/^.[^:#\[\.,]*$/,Re=Z.expr.match.needsContext,Be={children:!0,contents:!0,next:!0,prev:!0};Z.fn.extend({find:function(e){var t,n,r,i,o,a,s=this;if("string"!=typeof e)return Z(e).filter(function(){for(t=0,n=s.length;n>t;t++)if(Z.contains(s[t],this))return!0});for(a=this.pushStack("","find",e),t=0,n=this.length;n>t;t++)if(r=a.length,Z.find(e,this[t],a),t>0)for(i=r;i<a.length;i++)for(o=0;r>o;o++)if(a[o]===a[i]){a.splice(i--,1);break}return a},has:function(e){var t,n=Z(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(Z.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(c(this,e,!1),"not",e)},filter:function(e){return this.pushStack(c(this,e,!0),"filter",e)},is:function(e){return!!e&&("string"==typeof e?Re.test(e)?Z(e,this.context).index(this[0])>=0:Z.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){for(var n,r=0,i=this.length,o=[],a=Re.test(e)||"string"!=typeof e?Z(e,t||this.context):0;i>r;r++)for(n=this[r];n&&n.ownerDocument&&n!==t&&11!==n.nodeType;){if(a?a.index(n)>-1:Z.find.matchesSelector(n,e)){o.push(n);break}n=n.parentNode}return o=o.length>1?Z.unique(o):o,this.pushStack(o,"closest",e)},index:function(e){return e?"string"==typeof e?Z.inArray(this[0],Z(e)):Z.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n="string"==typeof e?Z(e,t):Z.makeArray(e&&e.nodeType?[e]:e),r=Z.merge(this.get(),n);return this.pushStack(l(n[0])||l(r[0])?r:Z.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),Z.fn.andSelf=Z.fn.addBack,Z.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return Z.dir(e,"parentNode")},parentsUntil:function(e,t,n){return Z.dir(e,"parentNode",n)},next:function(e){return u(e,"nextSibling")},prev:function(e){return u(e,"previousSibling")},nextAll:function(e){return Z.dir(e,"nextSibling")},prevAll:function(e){return Z.dir(e,"previousSibling")},nextUntil:function(e,t,n){return Z.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return Z.dir(e,"previousSibling",n)},siblings:function(e){return Z.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return Z.sibling(e.firstChild)},contents:function(e){return Z.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:Z.merge([],e.childNodes)}},function(e,t){Z.fn[e]=function(n,r){var i=Z.map(this,t,n);return De.test(e)||(r=n),r&&"string"==typeof r&&(i=Z.filter(r,i)),i=this.length>1&&!Be[e]?Z.unique(i):i,this.length>1&&He.test(e)&&(i=i.reverse()),this.pushStack(i,e,X.call(arguments).join(","))}}),Z.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?Z.find.matchesSelector(t[0],e)?[t[0]]:[]:Z.find.matches(e,t)},dir:function(e,n,r){for(var i=[],o=e[n];o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!Z(o).is(r));)1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});var $e="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",Fe=/ jQuery\d+="(?:null|\d+)"/g,qe=/^\s+/,We=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Ue=/<([\w:]+)/,ze=/<tbody/i,Ve=/<|&#?\w+;/,Ge=/<(?:script|style|link)/i,Xe=/<(?:script|object|embed|option|style)/i,Je=new RegExp("<(?:"+$e+")[\\s/>]","i"),Ke=/^(?:checkbox|radio)$/,Ye=/checked\s*(?:[^=]|=\s*.checked.)/i,Qe=/\/(java|ecma)script/i,Ze=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,et={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},tt=p(q),nt=tt.appendChild(q.createElement("div"));et.optgroup=et.option,et.tbody=et.tfoot=et.colgroup=et.caption=et.thead,et.th=et.td,Z.support.htmlSerialize||(et._default=[1,"X<div>","</div>"]),Z.fn.extend({text:function(e){return Z.access(this,function(e){return e===t?Z.text(this):this.empty().append((this[0]&&this[0].ownerDocument||q).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(Z.isFunction(e))return this.each(function(t){Z(this).wrapAll(e.call(this,t))});if(this[0]){var t=Z(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return Z.isFunction(e)?this.each(function(t){Z(this).wrapInner(e.call(this,t))}):this.each(function(){var t=Z(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=Z.isFunction(e);return this.each(function(n){Z(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){Z.nodeName(this,"body")||Z(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){1!==this.nodeType&&11!==this.nodeType||this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){1!==this.nodeType&&11!==this.nodeType||this.insertBefore(e,this.firstChild)})},before:function(){if(!l(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=Z.clean(arguments);return this.pushStack(Z.merge(e,this),"before",this.selector)}},after:function(){if(!l(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=Z.clean(arguments);return this.pushStack(Z.merge(this,e),"after",this.selector)}},remove:function(e,t){for(var n,r=0;null!=(n=this[r]);r++)e&&!Z.filter(e,[n]).length||(t||1!==n.nodeType||(Z.cleanData(n.getElementsByTagName("*")),Z.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)for(1===e.nodeType&&Z.cleanData(e.getElementsByTagName("*"));e.firstChild;)e.removeChild(e.firstChild);return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return Z.clone(this,e,t)})},html:function(e){return Z.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(Fe,""):t;if("string"==typeof e&&!Ge.test(e)&&(Z.support.htmlSerialize||!Je.test(e))&&(Z.support.leadingWhitespace||!qe.test(e))&&!et[(Ue.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(We,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(Z.cleanData(n.getElementsByTagName("*")),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){return l(this[0])?this.length?this.pushStack(Z(Z.isFunction(e)?e():e),"replaceWith",e):this:Z.isFunction(e)?this.each(function(t){var n=Z(this),r=n.html();n.replaceWith(e.call(this,t,r))}):("string"!=typeof e&&(e=Z(e).detach()),this.each(function(){var t=this.nextSibling,n=this.parentNode;Z(this).remove(),t?Z(t).before(e):Z(n).append(e)}))},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=[].concat.apply([],e);var i,o,a,s,l=0,u=e[0],c=[],p=this.length;if(!Z.support.checkClone&&p>1&&"string"==typeof u&&Ye.test(u))return this.each(function(){Z(this).domManip(e,n,r)});if(Z.isFunction(u))return this.each(function(i){var o=Z(this);e[0]=u.call(this,i,n?o.html():t),o.domManip(e,n,r)});if(this[0]){if(i=Z.buildFragment(e,this,c),a=i.fragment,o=a.firstChild,1===a.childNodes.length&&(a=o),o)for(n=n&&Z.nodeName(o,"tr"),s=i.cacheable||p-1;p>l;l++)r.call(n&&Z.nodeName(this[l],"table")?h(this[l],"tbody"):this[l],l===s?a:Z.clone(a,!0,!0));a=o=null,c.length&&Z.each(c,function(e,t){t.src?Z.ajax?Z.ajax({url:t.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):Z.error("no ajax"):Z.globalEval((t.text||t.textContent||t.innerHTML||"").replace(Ze,"")),t.parentNode&&t.parentNode.removeChild(t)})}return this}}),Z.buildFragment=function(e,n,r){var i,o,a,s=e[0];return n=n||q,n=!n.nodeType&&n[0]||n,n=n.ownerDocument||n,!(1===e.length&&"string"==typeof s&&s.length<512&&n===q&&"<"===s.charAt(0))||Xe.test(s)||!Z.support.checkClone&&Ye.test(s)||!Z.support.html5Clone&&Je.test(s)||(o=!0,i=Z.fragments[s],a=i!==t),i||(i=n.createDocumentFragment(),Z.clean(e,n,i,r),o&&(Z.fragments[s]=a&&i)),{fragment:i,cacheable:o}},Z.fragments={},Z.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){Z.fn[e]=function(n){var r,i=0,o=[],a=Z(n),s=a.length,l=1===this.length&&this[0].parentNode;if((null==l||l&&11===l.nodeType&&1===l.childNodes.length)&&1===s)return a[t](this[0]),this;for(;s>i;i++)r=(i>0?this.clone(!0):this).get(),Z(a[i])[t](r),o=o.concat(r);return this.pushStack(o,e,a.selector)}}),Z.extend({clone:function(e,t,n){var r,i,o,a;if(Z.support.html5Clone||Z.isXMLDoc(e)||!Je.test("<"+e.nodeName+">")?a=e.cloneNode(!0):(nt.innerHTML=e.outerHTML,nt.removeChild(a=nt.firstChild)),!(Z.support.noCloneEvent&&Z.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||Z.isXMLDoc(e)))for(d(e,a),r=g(e),i=g(a),o=0;r[o];++o)i[o]&&d(r[o],i[o]);if(t&&(f(e,a),n))for(r=g(e),i=g(a),o=0;r[o];++o)f(r[o],i[o]);return r=i=null,a},clean:function(e,t,n,r){var i,o,a,s,l,u,c,h,f,d,g,v=t===q&&tt,y=[];for(t&&"undefined"!=typeof t.createDocumentFragment||(t=q),i=0;null!=(a=e[i]);i++)if("number"==typeof a&&(a+=""),a){if("string"==typeof a)if(Ve.test(a)){for(v=v||p(t),c=t.createElement("div"),v.appendChild(c),a=a.replace(We,"<$1></$2>"),s=(Ue.exec(a)||["",""])[1].toLowerCase(),l=et[s]||et._default,u=l[0],c.innerHTML=l[1]+a+l[2];u--;)c=c.lastChild;if(!Z.support.tbody)for(h=ze.test(a),f="table"!==s||h?"<table>"!==l[1]||h?[]:c.childNodes:c.firstChild&&c.firstChild.childNodes,o=f.length-1;o>=0;--o)Z.nodeName(f[o],"tbody")&&!f[o].childNodes.length&&f[o].parentNode.removeChild(f[o]);!Z.support.leadingWhitespace&&qe.test(a)&&c.insertBefore(t.createTextNode(qe.exec(a)[0]),c.firstChild),a=c.childNodes,c.parentNode.removeChild(c)}else a=t.createTextNode(a);a.nodeType?y.push(a):Z.merge(y,a)}if(c&&(a=c=v=null),!Z.support.appendChecked)for(i=0;null!=(a=y[i]);i++)Z.nodeName(a,"input")?m(a):"undefined"!=typeof a.getElementsByTagName&&Z.grep(a.getElementsByTagName("input"),m);if(n)for(d=function(e){return!e.type||Qe.test(e.type)?r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e):void 0},i=0;null!=(a=y[i]);i++)Z.nodeName(a,"script")&&d(a)||(n.appendChild(a),"undefined"!=typeof a.getElementsByTagName&&(g=Z.grep(Z.merge([],a.getElementsByTagName("script")),d),y.splice.apply(y,[i+1,0].concat(g)),i+=g.length));return y},cleanData:function(e,t){for(var n,r,i,o,a=0,s=Z.expando,l=Z.cache,u=Z.support.deleteExpando,c=Z.event.special;null!=(i=e[a]);a++)if((t||Z.acceptData(i))&&(r=i[s],n=r&&l[r])){if(n.events)for(o in n.events)c[o]?Z.event.remove(i,o):Z.removeEvent(i,o,n.handle);l[r]&&(delete l[r],u?delete i[s]:i.removeAttribute?i.removeAttribute(s):i[s]=null,Z.deletedIds.push(r))}}}),function(){var e,t;Z.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=Z.uaMatch(U.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),Z.browser=t,Z.sub=function(){function e(t,n){return new e.fn.init(t,n)}Z.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(n,r){return r&&r instanceof Z&&!(r instanceof e)&&(r=e(r)),Z.fn.init.call(this,n,r,t)},e.fn.init.prototype=e.fn;var t=e(q);return e}}();var rt,it,ot,at=/alpha\([^)]*\)/i,st=/opacity=([^)]*)/,lt=/^(top|right|bottom|left)$/,ut=/^(none|table(?!-c[ea]).+)/,ct=/^margin/,pt=new RegExp("^("+ee+")(.*)$","i"),ht=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),ft=new RegExp("^([-+])=("+ee+")","i"),dt={BODY:"block"},gt={position:"absolute",visibility:"hidden",display:"block"},mt={letterSpacing:0,fontWeight:400},vt=["Top","Right","Bottom","Left"],yt=["Webkit","O","Moz","ms"],bt=Z.fn.toggle;Z.fn.extend({css:function(e,n){return Z.access(this,function(e,n,r){return r!==t?Z.style(e,n,r):Z.css(e,n)},e,n,arguments.length>1)},show:function(){return b(this,!0)},hide:function(){return b(this)},toggle:function(e,t){var n="boolean"==typeof e;return Z.isFunction(e)&&Z.isFunction(t)?bt.apply(this,arguments):this.each(function(){(n?e:y(this))?Z(this).show():Z(this).hide()})}}),Z.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=rt(e,"opacity");return""===n?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":Z.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=Z.camelCase(n),u=e.style;if(n=Z.cssProps[l]||(Z.cssProps[l]=v(u,l)),s=Z.cssHooks[n]||Z.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=ft.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(Z.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||Z.cssNumber[l]||(r+="px"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=Z.camelCase(n);return n=Z.cssProps[l]||(Z.cssProps[l]=v(e.style,l)),s=Z.cssHooks[n]||Z.cssHooks[l],s&&"get"in s&&(o=s.get(e,!0,i)),o===t&&(o=rt(e,n)),"normal"===o&&n in mt&&(o=mt[n]),r||i!==t?(a=parseFloat(o),r||Z.isNumeric(a)?a||0:o):o},swap:function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=o[i];return r}}),e.getComputedStyle?rt=function(t,n){var r,i,o,a,s=e.getComputedStyle(t,null),l=t.style;return s&&(r=s.getPropertyValue(n)||s[n],""!==r||Z.contains(t.ownerDocument,t)||(r=Z.style(t,n)),ht.test(r)&&ct.test(n)&&(i=l.width,o=l.minWidth,a=l.maxWidth,l.minWidth=l.maxWidth=l.width=r,r=s.width,l.width=i,l.minWidth=o,l.maxWidth=a)),r}:q.documentElement.currentStyle&&(rt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],o=e.style;return null==i&&o&&o[t]&&(i=o[t]),ht.test(i)&&!lt.test(t)&&(n=o.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),o.left="fontSize"===t?"1em":i,i=o.pixelLeft+"px",o.left=n,r&&(e.runtimeStyle.left=r)),""===i?"auto":i}),Z.each(["height","width"],function(e,t){Z.cssHooks[t]={get:function(e,n,r){return n?0===e.offsetWidth&&ut.test(rt(e,"display"))?Z.swap(e,gt,function(){return S(e,t,r)}):S(e,t,r):void 0},set:function(e,n,r){return x(e,n,r?w(e,t,r,Z.support.boxSizing&&"border-box"===Z.css(e,"boxSizing")):0)}}}),Z.support.opacity||(Z.cssHooks.opacity={get:function(e,t){return st.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=Z.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,t>=1&&""===Z.trim(o.replace(at,""))&&n.removeAttribute&&(n.removeAttribute("filter"),r&&!r.filter)||(n.filter=at.test(o)?o.replace(at,i):o+" "+i)}}),Z(function(){Z.support.reliableMarginRight||(Z.cssHooks.marginRight={get:function(e,t){return Z.swap(e,{display:"inline-block"},function(){return t?rt(e,"marginRight"):void 0})}}),!Z.support.pixelPosition&&Z.fn.position&&Z.each(["top","left"],function(e,t){Z.cssHooks[t]={get:function(e,n){if(n){var r=rt(e,t);return ht.test(r)?Z(e).position()[t]+"px":r}}}})}),Z.expr&&Z.expr.filters&&(Z.expr.filters.hidden=function(e){return 0===e.offsetWidth&&0===e.offsetHeight||!Z.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||rt(e,"display"))},Z.expr.filters.visible=function(e){return!Z.expr.filters.hidden(e)}),Z.each({margin:"",padding:"",border:"Width"},function(e,t){Z.cssHooks[e+t]={expand:function(n){var r,i="string"==typeof n?n.split(" "):[n],o={};for(r=0;4>r;r++)o[e+vt[r]+t]=i[r]||i[r-2]||i[0];return o}},ct.test(e)||(Z.cssHooks[e+t].set=x)});var xt=/%20/g,wt=/\[\]$/,St=/\r?\n/g,kt=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,Ct=/^(?:select|textarea)/i;Z.fn.extend({serialize:function(){return Z.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?Z.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||Ct.test(this.nodeName)||kt.test(this.type))}).map(function(e,t){var n=Z(this).val();return null==n?null:Z.isArray(n)?Z.map(n,function(e,n){return{name:t.name,value:e.replace(St,"\r\n")}}):{name:t.name,value:n.replace(St,"\r\n")}}).get()}}),Z.param=function(e,n){var r,i=[],o=function(e,t){t=Z.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=Z.ajaxSettings&&Z.ajaxSettings.traditional),Z.isArray(e)||e.jquery&&!Z.isPlainObject(e))Z.each(e,function(){o(this.name,this.value)});else for(r in e)C(r,e[r],n,o);return i.join("&").replace(xt,"+")};var _t,Et,At=/#.*$/,Nt=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Tt=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,Pt=/^(?:GET|HEAD)$/,Lt=/^\/\//,jt=/\?/,Ot=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,Mt=/([?&])_=[^&]*/,Dt=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Ht=Z.fn.load,It={},Rt={},Bt=["*/"]+["*"];try{Et=W.href}catch($t){Et=q.createElement("a"),Et.href="",Et=Et.href}_t=Dt.exec(Et.toLowerCase())||[],Z.fn.load=function(e,n,r){if("string"!=typeof e&&Ht)return Ht.apply(this,arguments);if(!this.length)return this;var i,o,a,s=this,l=e.indexOf(" ");return l>=0&&(i=e.slice(l,e.length),e=e.slice(0,l)),Z.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(o="POST"),Z.ajax({url:e,type:o,dataType:"html",data:n,complete:function(e,t){r&&s.each(r,a||[e.responseText,t,e])}}).done(function(e){a=arguments,s.html(i?Z("<div>").append(e.replace(Ot,"")).find(i):e)}),this},Z.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){Z.fn[t]=function(e){return this.on(t,e)}}),Z.each(["get","post"],function(e,n){Z[n]=function(e,r,i,o){return Z.isFunction(r)&&(o=o||i,i=r,r=t),Z.ajax({type:n,url:e,data:r,success:i,dataType:o})}}),Z.extend({getScript:function(e,n){return Z.get(e,t,n,"script")},getJSON:function(e,t,n){return Z.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?A(e,Z.ajaxSettings):(t=e,e=Z.ajaxSettings),A(e,t),e},ajaxSettings:{url:Et,isLocal:Tt.test(_t[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Bt},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":Z.parseJSON,"text xml":Z.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:_(It),ajaxTransport:_(Rt),ajax:function(e,n){function r(e,n,r,a){var u,p,y,b,w,k=n;2!==x&&(x=2,l&&clearTimeout(l),s=t,o=a||"",S.readyState=e>0?4:0,r&&(b=N(h,S,r)),e>=200&&300>e||304===e?(h.ifModified&&(w=S.getResponseHeader("Last-Modified"),w&&(Z.lastModified[i]=w),w=S.getResponseHeader("Etag"),w&&(Z.etag[i]=w)),304===e?(k="notmodified",u=!0):(u=T(h,b),k=u.state,p=u.data,y=u.error,u=!y)):(y=k,k&&!e||(k="error",0>e&&(e=0))),S.status=e,S.statusText=(n||k)+"",u?g.resolveWith(f,[p,k,S]):g.rejectWith(f,[S,k,y]),S.statusCode(v),v=t,c&&d.trigger("ajax"+(u?"Success":"Error"),[S,h,u?p:y]),m.fireWith(f,[S,k]),c&&(d.trigger("ajaxComplete",[S,h]),--Z.active||Z.event.trigger("ajaxStop")))}"object"==typeof e&&(n=e,e=t),n=n||{};var i,o,a,s,l,u,c,p,h=Z.ajaxSetup({},n),f=h.context||h,d=f!==h&&(f.nodeType||f instanceof Z)?Z(f):Z.event,g=Z.Deferred(),m=Z.Callbacks("once memory"),v=h.statusCode||{},y={},b={},x=0,w="canceled",S={readyState:0,setRequestHeader:function(e,t){if(!x){var n=e.toLowerCase();e=b[n]=b[n]||e,y[e]=t}return this},getAllResponseHeaders:function(){return 2===x?o:null},getResponseHeader:function(e){var n;if(2===x){if(!a)for(a={};n=Nt.exec(o);)a[n[1].toLowerCase()]=n[2];n=a[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return x||(h.mimeType=e),this},abort:function(e){return e=e||w,s&&s.abort(e),r(0,e),this}};if(g.promise(S),S.success=S.done,S.error=S.fail,S.complete=m.add,S.statusCode=function(e){if(e){var t;if(2>x)for(t in e)v[t]=[v[t],e[t]];else t=e[S.status],S.always(t)}return this},h.url=((e||h.url)+"").replace(At,"").replace(Lt,_t[1]+"//"),h.dataTypes=Z.trim(h.dataType||"*").toLowerCase().split(ne),null==h.crossDomain&&(u=Dt.exec(h.url.toLowerCase()),h.crossDomain=!(!u||u[1]===_t[1]&&u[2]===_t[2]&&(u[3]||("http:"===u[1]?80:443))==(_t[3]||("http:"===_t[1]?80:443)))),h.data&&h.processData&&"string"!=typeof h.data&&(h.data=Z.param(h.data,h.traditional)),E(It,h,n,S),2===x)return S;if(c=h.global,h.type=h.type.toUpperCase(),h.hasContent=!Pt.test(h.type),c&&0===Z.active++&&Z.event.trigger("ajaxStart"),!h.hasContent&&(h.data&&(h.url+=(jt.test(h.url)?"&":"?")+h.data,delete h.data),i=h.url,h.cache===!1)){var k=Z.now(),C=h.url.replace(Mt,"$1_="+k);h.url=C+(C===h.url?(jt.test(h.url)?"&":"?")+"_="+k:"")}(h.data&&h.hasContent&&h.contentType!==!1||n.contentType)&&S.setRequestHeader("Content-Type",h.contentType),h.ifModified&&(i=i||h.url,Z.lastModified[i]&&S.setRequestHeader("If-Modified-Since",Z.lastModified[i]),Z.etag[i]&&S.setRequestHeader("If-None-Match",Z.etag[i])),S.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+Bt+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)S.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(h.beforeSend.call(f,S,h)===!1||2===x))return S.abort();w="abort";for(p in{success:1,error:1,complete:1})S[p](h[p]);if(s=E(Rt,h,n,S)){S.readyState=1,c&&d.trigger("ajaxSend",[S,h]),h.async&&h.timeout>0&&(l=setTimeout(function(){S.abort("timeout")},h.timeout));try{x=1,s.send(y,r)}catch(_){if(!(2>x))throw _;r(-1,_)}}else r(-1,"No Transport");return S},active:0,lastModified:{},etag:{}});var Ft=[],qt=/\?/,Wt=/(=)\?(?=&|$)|\?\?/,Ut=Z.now();Z.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Ft.pop()||Z.expando+"_"+Ut++;return this[e]=!0,e}}),Z.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,l=n.data,u=n.url,c=n.jsonp!==!1,p=c&&Wt.test(u),h=c&&!p&&"string"==typeof l&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Wt.test(l);return"jsonp"===n.dataTypes[0]||p||h?(o=n.jsonpCallback=Z.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,a=e[o],p?n.url=u.replace(Wt,"$1"+o):h?n.data=l.replace(Wt,"$1"+o):c&&(n.url+=(qt.test(u)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||Z.error(o+" was not called"),s[0]},n.dataTypes[0]="json",e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Ft.push(o)),s&&Z.isFunction(a)&&a(s[0]),s=a=t}),"script"):void 0}),Z.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return Z.globalEval(e),e}}}),Z.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),Z.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=q.head||q.getElementsByTagName("head")[0]||q.documentElement;return{send:function(i,o){n=q.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){(i||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var zt,Vt=e.ActiveXObject?function(){for(var e in zt)zt[e](0,1)}:!1,Gt=0;Z.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&P()||L()}:P,function(e){Z.extend(Z.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(Z.ajaxSettings.xhr()),Z.support.ajax&&Z.ajaxTransport(function(n){if(!n.crossDomain||Z.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var s,u,c,p,h;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=Z.noop,Vt&&delete zt[a]),i)4!==l.readyState&&l.abort();else{s=l.status,c=l.getAllResponseHeaders(),p={},h=l.responseXML,h&&h.documentElement&&(p.xml=h);try{p.text=l.responseText}catch(f){}try{u=l.statusText}catch(f){u=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,u,p,c)},n.async?4===l.readyState?setTimeout(r,0):(a=++Gt,Vt&&(zt||(zt={},Z(e).unload(Vt)),zt[a]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var Xt,Jt,Kt=/^(?:toggle|show|hide)$/,Yt=new RegExp("^(?:([-+])=|)("+ee+")([a-z%]*)$","i"),Qt=/queueHooks$/,Zt=[H],en={"*":[function(e,t){var n,r,i=this.createTween(e,t),o=Yt.exec(t),a=i.cur(),s=+a||0,l=1,u=20;if(o){if(n=+o[2],r=o[3]||(Z.cssNumber[e]?"":"px"),"px"!==r&&s){s=Z.css(i.elem,e,!0)||n||1;do l=l||".5",s/=l,Z.style(i.elem,e,s+r);while(l!==(l=i.cur()/a)&&1!==l&&--u)}i.unit=r,i.start=s,i.end=o[1]?s+(o[1]+1)*n:n}return i}]};Z.Animation=Z.extend(M,{tweener:function(e,t){Z.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,r=0,i=e.length;i>r;r++)n=e[r],en[n]=en[n]||[],en[n].unshift(t)},prefilter:function(e,t){t?Zt.unshift(e):Zt.push(e)}}),Z.Tween=I,I.prototype={constructor:I,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(Z.cssNumber[n]?"":"px")},cur:function(){var e=I.propHooks[this.prop];return e&&e.get?e.get(this):I.propHooks._default.get(this)},run:function(e){var t,n=I.propHooks[this.prop];return this.options.duration?this.pos=t=Z.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):I.propHooks._default.set(this),this}},I.prototype.init.prototype=I.prototype,I.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=Z.css(e.elem,e.prop,!1,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){Z.fx.step[e.prop]?Z.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[Z.cssProps[e.prop]]||Z.cssHooks[e.prop])?Z.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},I.propHooks.scrollTop=I.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},Z.each(["toggle","show","hide"],function(e,t){var n=Z.fn[t];Z.fn[t]=function(r,i,o){return null==r||"boolean"==typeof r||!e&&Z.isFunction(r)&&Z.isFunction(i)?n.apply(this,arguments):this.animate(R(t,!0),r,i,o)}}),Z.fn.extend({fadeTo:function(e,t,n,r){return this.filter(y).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=Z.isEmptyObject(e),o=Z.speed(t,n,r),a=function(){var t=M(this,Z.extend({},e),o);i&&t.stop(!0)};return i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=Z.timers,a=Z._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Qt.test(n)&&i(a[n]); +for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));!t&&r||Z.dequeue(this,e)})}}),Z.each({slideDown:R("show"),slideUp:R("hide"),slideToggle:R("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){Z.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),Z.speed=function(e,t,n){var r=e&&"object"==typeof e?Z.extend({},e):{complete:n||!n&&t||Z.isFunction(e)&&e,duration:e,easing:n&&t||t&&!Z.isFunction(t)&&t};return r.duration=Z.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in Z.fx.speeds?Z.fx.speeds[r.duration]:Z.fx.speeds._default,null!=r.queue&&r.queue!==!0||(r.queue="fx"),r.old=r.complete,r.complete=function(){Z.isFunction(r.old)&&r.old.call(this),r.queue&&Z.dequeue(this,r.queue)},r},Z.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},Z.timers=[],Z.fx=I.prototype.init,Z.fx.tick=function(){var e,n=Z.timers,r=0;for(Xt=Z.now();r<n.length;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||Z.fx.stop(),Xt=t},Z.fx.timer=function(e){e()&&Z.timers.push(e)&&!Jt&&(Jt=setInterval(Z.fx.tick,Z.fx.interval))},Z.fx.interval=13,Z.fx.stop=function(){clearInterval(Jt),Jt=null},Z.fx.speeds={slow:600,fast:200,_default:400},Z.fx.step={},Z.expr&&Z.expr.filters&&(Z.expr.filters.animated=function(e){return Z.grep(Z.timers,function(t){return e===t.elem}).length});var tn=/^(?:body|html)$/i;Z.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){Z.offset.setOffset(this,e,t)});var n,r,i,o,a,s,l,u={top:0,left:0},c=this[0],p=c&&c.ownerDocument;if(p)return(r=p.body)===c?Z.offset.bodyOffset(c):(n=p.documentElement,Z.contains(n,c)?("undefined"!=typeof c.getBoundingClientRect&&(u=c.getBoundingClientRect()),i=B(p),o=n.clientTop||r.clientTop||0,a=n.clientLeft||r.clientLeft||0,s=i.pageYOffset||n.scrollTop,l=i.pageXOffset||n.scrollLeft,{top:u.top+s-o,left:u.left+l-a}):u)},Z.offset={bodyOffset:function(e){var t=e.offsetTop,n=e.offsetLeft;return Z.support.doesNotIncludeMarginInBodyOffset&&(t+=parseFloat(Z.css(e,"marginTop"))||0,n+=parseFloat(Z.css(e,"marginLeft"))||0),{top:t,left:n}},setOffset:function(e,t,n){var r=Z.css(e,"position");"static"===r&&(e.style.position="relative");var i,o,a=Z(e),s=a.offset(),l=Z.css(e,"top"),u=Z.css(e,"left"),c=("absolute"===r||"fixed"===r)&&Z.inArray("auto",[l,u])>-1,p={},h={};c?(h=a.position(),i=h.top,o=h.left):(i=parseFloat(l)||0,o=parseFloat(u)||0),Z.isFunction(t)&&(t=t.call(e,n,s)),null!=t.top&&(p.top=t.top-s.top+i),null!=t.left&&(p.left=t.left-s.left+o),"using"in t?t.using.call(e,p):a.css(p)}},Z.fn.extend({position:function(){if(this[0]){var e=this[0],t=this.offsetParent(),n=this.offset(),r=tn.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(Z.css(e,"marginTop"))||0,n.left-=parseFloat(Z.css(e,"marginLeft"))||0,r.top+=parseFloat(Z.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(Z.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent||q.body;e&&!tn.test(e.nodeName)&&"static"===Z.css(e,"position");)e=e.offsetParent;return e||q.body})}}),Z.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);Z.fn[e]=function(i){return Z.access(this,function(e,i,o){var a=B(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:void(a?a.scrollTo(r?Z(a).scrollLeft():o,r?o:Z(a).scrollTop()):e[i]=o)},e,i,arguments.length,null)}}),Z.each({Height:"height",Width:"width"},function(e,n){Z.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){Z.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return Z.access(this,function(n,r,i){var o;return Z.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?Z.css(n,r,i,s):Z.style(n,r,i,s)},n,a?i:t,a,null)}})}),"object"==typeof n&&n&&"object"==typeof n.exports?n.exports=Z:(e.jQuery=e.$=Z,"function"==typeof define&&define.amd&&define("jquery",[],function(){return Z}))}(window)}),define("lib/jquery.lazyload",[],function(e,t,n){var r=e("jquery");!function(e,t,n,r){var i=e(t);e.fn.lazyload=function(o){function a(){var t=0;l.each(function(){var n=e(this);if(!u.skip_invisible||n.is(":visible"))if(e.abovethetop(this,u)||e.leftofbegin(this,u));else if(e.belowthefold(this,u)||e.rightoffold(this,u)){if(++t>u.failure_limit)return!1}else n.trigger("appear"),t=0})}var s,l=this,u={threshold:0,failure_limit:0,event:"scroll",effect:"show",container:t,data_attribute:"original",skip_invisible:!0,appear:null,load:null,placeholder:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC"};return o&&(r!==o.failurelimit&&(o.failure_limit=o.failurelimit,delete o.failurelimit),r!==o.effectspeed&&(o.effect_speed=o.effectspeed,delete o.effectspeed),e.extend(u,o)),s=u.container===r||u.container===t?i:e(u.container),0===u.event.indexOf("scroll")&&s.bind(u.event,function(){return a()}),this.each(function(){var t=this,n=e(t);t.loaded=!1,n.attr("src")!==r&&n.attr("src")!==!1||n.is("img")&&n.attr("src",u.placeholder),n.one("appear",function(){if(!this.loaded){if(u.appear){var r=l.length;u.appear.call(t,r,u)}e("<img />").bind("load",function(){var r=n.attr("data-"+u.data_attribute);n.hide(),n.is("img")?n.attr("src",r):n.css("background-image","url('"+r+"')"),n[u.effect](u.effect_speed),t.loaded=!0;var i=e.grep(l,function(e){return!e.loaded});if(l=e(i),u.load){var o=l.length;u.load.call(t,o,u)}}).attr("src",n.attr("data-"+u.data_attribute))}}),0!==u.event.indexOf("scroll")&&n.bind(u.event,function(){t.loaded||n.trigger("appear")})}),i.bind("resize",function(){a()}),/(?:iphone|ipod|ipad).*os 5/gi.test(navigator.appVersion)&&i.bind("pageshow",function(t){t.originalEvent&&t.originalEvent.persisted&&l.each(function(){e(this).trigger("appear")})}),e(n).ready(function(){a()}),this},e.belowthefold=function(n,o){var a;return a=o.container===r||o.container===t?(t.innerHeight?t.innerHeight:i.height())+i.scrollTop():e(o.container).offset().top+e(o.container).height(),a<=e(n).offset().top-o.threshold},e.rightoffold=function(n,o){var a;return a=o.container===r||o.container===t?i.width()+i.scrollLeft():e(o.container).offset().left+e(o.container).width(),a<=e(n).offset().left-o.threshold},e.abovethetop=function(n,o){var a;return a=o.container===r||o.container===t?i.scrollTop():e(o.container).offset().top,a>=e(n).offset().top+o.threshold+e(n).height()},e.leftofbegin=function(n,o){var a;return a=o.container===r||o.container===t?i.scrollLeft():e(o.container).offset().left,a>=e(n).offset().left+o.threshold+e(n).width()},e.inviewport=function(t,n){return!(e.rightoffold(t,n)||e.leftofbegin(t,n)||e.belowthefold(t,n)||e.abovethetop(t,n))},e.extend(e.expr[":"],{"below-the-fold":function(t){return e.belowthefold(t,{threshold:0})},"above-the-top":function(t){return!e.belowthefold(t,{threshold:0})},"right-of-screen":function(t){return e.rightoffold(t,{threshold:0})},"left-of-screen":function(t){return!e.rightoffold(t,{threshold:0})},"in-viewport":function(t){return e.inviewport(t,{threshold:0})},"above-the-fold":function(t){return!e.belowthefold(t,{threshold:0})},"right-of-fold":function(t){return e.rightoffold(t,{threshold:0})},"left-of-fold":function(t){return!e.rightoffold(t,{threshold:0})}})}(r,window,document)}),define("handlebars",[],function(e,t,n){!function(e,r){"object"==typeof t&&"object"==typeof n?n.exports=r():"function"==typeof define&&define.amd?define(r):"object"==typeof t?t.Handlebars=r():e.Handlebars=r()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(){var e=v();return e.compile=function(t,n){return c.compile(t,n,e)},e.precompile=function(t,n){return c.precompile(t,n,e)},e.AST=l["default"],e.Compiler=c.Compiler,e.JavaScriptCompiler=h["default"],e.Parser=u.parser,e.parse=u.parse,e}var i=n(8)["default"];t.__esModule=!0;var o=n(1),a=i(o),s=n(2),l=i(s),u=n(3),c=n(4),p=n(5),h=i(p),f=n(6),d=i(f),g=n(7),m=i(g),v=a["default"].create,y=r();y.create=r,m["default"](y),y.Visitor=d["default"],y["default"]=y,t["default"]=y,e.exports=t["default"]},function(e,t,n){"use strict";function r(){var e=new s.HandlebarsEnvironment;return f.extend(e,s),e.SafeString=u["default"],e.Exception=p["default"],e.Utils=f,e.escapeExpression=f.escapeExpression,e.VM=g,e.template=function(t){return g.template(t,e)},e}var i=n(9)["default"],o=n(8)["default"];t.__esModule=!0;var a=n(10),s=i(a),l=n(11),u=o(l),c=n(12),p=o(c),h=n(13),f=i(h),d=n(14),g=i(d),m=n(7),v=o(m),y=r();y.create=r,v["default"](y),y["default"]=y,t["default"]=y,e.exports=t["default"]},function(e,t,n){"use strict";t.__esModule=!0;var r={Program:function(e,t,n,r){this.loc=r,this.type="Program",this.body=e,this.blockParams=t,this.strip=n},MustacheStatement:function(e,t,n,r,i,o){this.loc=o,this.type="MustacheStatement",this.path=e,this.params=t||[],this.hash=n,this.escaped=r,this.strip=i},BlockStatement:function(e,t,n,r,i,o,a,s,l){this.loc=l,this.type="BlockStatement",this.path=e,this.params=t||[],this.hash=n,this.program=r,this.inverse=i,this.openStrip=o,this.inverseStrip=a,this.closeStrip=s},PartialStatement:function(e,t,n,r,i){this.loc=i,this.type="PartialStatement",this.name=e,this.params=t||[],this.hash=n,this.indent="",this.strip=r},ContentStatement:function(e,t){this.loc=t,this.type="ContentStatement",this.original=this.value=e},CommentStatement:function(e,t,n){this.loc=n,this.type="CommentStatement",this.value=e,this.strip=t},SubExpression:function(e,t,n,r){this.loc=r,this.type="SubExpression",this.path=e,this.params=t||[],this.hash=n},PathExpression:function(e,t,n,r,i){this.loc=i,this.type="PathExpression",this.data=e,this.original=r,this.parts=n,this.depth=t},StringLiteral:function(e,t){this.loc=t,this.type="StringLiteral",this.original=this.value=e},NumberLiteral:function(e,t){this.loc=t,this.type="NumberLiteral",this.original=this.value=Number(e)},BooleanLiteral:function(e,t){this.loc=t,this.type="BooleanLiteral",this.original=this.value="true"===e},UndefinedLiteral:function(e){this.loc=e,this.type="UndefinedLiteral",this.original=this.value=void 0},NullLiteral:function(e){this.loc=e,this.type="NullLiteral",this.original=this.value=null},Hash:function(e,t){this.loc=t,this.type="Hash",this.pairs=e},HashPair:function(e,t,n){this.loc=n,this.type="HashPair",this.key=e,this.value=t},helpers:{helperExpression:function(e){return!("SubExpression"!==e.type&&!e.params.length&&!e.hash)},scopedId:function(e){return/^\.|this\b/.test(e.original)},simpleId:function(e){return 1===e.parts.length&&!r.helpers.scopedId(e)&&!e.depth}}};t["default"]=r,e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t){if("Program"===e.type)return e;s["default"].yy=g,g.locInfo=function(e){return new g.SourceLocation(t&&t.srcName,e)};var n=new p["default"];return n.accept(s["default"].parse(e))}var i=n(8)["default"],o=n(9)["default"];t.__esModule=!0,t.parse=r;var a=n(15),s=i(a),l=n(2),u=i(l),c=n(16),p=i(c),h=n(17),f=o(h),d=n(13);t.parser=s["default"];var g={};d.extend(g,f,u["default"])},function(e,t,n){"use strict";function r(){}function i(e,t,n){if(null==e||"string"!=typeof e&&"Program"!==e.type)throw new c["default"]("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+e);t=t||{},"data"in t||(t.data=!0),t.compat&&(t.useDepths=!0);var r=n.parse(e,t),i=(new n.Compiler).compile(r,t);return(new n.JavaScriptCompiler).compile(i,t)}function o(e,t,n){function r(){var t=n.parse(e,o),r=(new n.Compiler).compile(t,o),i=(new n.JavaScriptCompiler).compile(r,o,void 0,!0);return n.template(i)}function i(e,t){return a||(a=r()),a.call(this,e,t)}var o=void 0===arguments[1]?{}:arguments[1];if(null==e||"string"!=typeof e&&"Program"!==e.type)throw new c["default"]("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+e);"data"in o||(o.data=!0),o.compat&&(o.useDepths=!0);var a=void 0;return i._setup=function(e){return a||(a=r()),a._setup(e)},i._child=function(e,t,n,i){return a||(a=r()),a._child(e,t,n,i)},i}function a(e,t){if(e===t)return!0;if(p.isArray(e)&&p.isArray(t)&&e.length===t.length){for(var n=0;n<e.length;n++)if(!a(e[n],t[n]))return!1;return!0}}function s(e){if(!e.path.parts){var t=e.path;e.path=new f["default"].PathExpression(!1,0,[t.original+""],t.original+"",t.loc)}}var l=n(8)["default"];t.__esModule=!0,t.Compiler=r,t.precompile=i,t.compile=o;var u=n(12),c=l(u),p=n(13),h=n(2),f=l(h),d=[].slice;r.prototype={compiler:r,equals:function(e){var t=this.opcodes.length;if(e.opcodes.length!==t)return!1;for(var n=0;t>n;n++){var r=this.opcodes[n],i=e.opcodes[n];if(r.opcode!==i.opcode||!a(r.args,i.args))return!1}t=this.children.length;for(var n=0;t>n;n++)if(!this.children[n].equals(e.children[n]))return!1;return!0},guid:0,compile:function(e,t){this.sourceNode=[],this.opcodes=[],this.children=[],this.options=t,this.stringParams=t.stringParams,this.trackIds=t.trackIds,t.blockParams=t.blockParams||[];var n=t.knownHelpers;if(t.knownHelpers={helperMissing:!0,blockHelperMissing:!0,each:!0,"if":!0,unless:!0,"with":!0,log:!0,lookup:!0},n)for(var r in n)r in n&&(t.knownHelpers[r]=n[r]);return this.accept(e)},compileProgram:function(e){var t=new this.compiler,n=t.compile(e,this.options),r=this.guid++;return this.usePartial=this.usePartial||n.usePartial,this.children[r]=n,this.useDepths=this.useDepths||n.useDepths,r},accept:function(e){this.sourceNode.unshift(e);var t=this[e.type](e);return this.sourceNode.shift(),t},Program:function(e){this.options.blockParams.unshift(e.blockParams);for(var t=e.body,n=t.length,r=0;n>r;r++)this.accept(t[r]);return this.options.blockParams.shift(),this.isSimple=1===n,this.blockParams=e.blockParams?e.blockParams.length:0,this},BlockStatement:function(e){s(e);var t=e.program,n=e.inverse;t=t&&this.compileProgram(t),n=n&&this.compileProgram(n);var r=this.classifySexpr(e);"helper"===r?this.helperSexpr(e,t,n):"simple"===r?(this.simpleSexpr(e),this.opcode("pushProgram",t),this.opcode("pushProgram",n),this.opcode("emptyHash"),this.opcode("blockValue",e.path.original)):(this.ambiguousSexpr(e,t,n),this.opcode("pushProgram",t),this.opcode("pushProgram",n),this.opcode("emptyHash"),this.opcode("ambiguousBlockValue")),this.opcode("append")},PartialStatement:function(e){this.usePartial=!0;var t=e.params;if(t.length>1)throw new c["default"]("Unsupported number of partial arguments: "+t.length,e);t.length||t.push({type:"PathExpression",parts:[],depth:0});var n=e.name.original,r="SubExpression"===e.name.type;r&&this.accept(e.name),this.setupFullMustacheParams(e,void 0,void 0,!0);var i=e.indent||"";this.options.preventIndent&&i&&(this.opcode("appendContent",i),i=""),this.opcode("invokePartial",r,n,i),this.opcode("append")},MustacheStatement:function(e){this.SubExpression(e),e.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},ContentStatement:function(e){e.value&&this.opcode("appendContent",e.value)},CommentStatement:function(){},SubExpression:function(e){s(e);var t=this.classifySexpr(e);"simple"===t?this.simpleSexpr(e):"helper"===t?this.helperSexpr(e):this.ambiguousSexpr(e)},ambiguousSexpr:function(e,t,n){var r=e.path,i=r.parts[0],o=null!=t||null!=n;this.opcode("getContext",r.depth),this.opcode("pushProgram",t),this.opcode("pushProgram",n),this.accept(r),this.opcode("invokeAmbiguous",i,o)},simpleSexpr:function(e){this.accept(e.path),this.opcode("resolvePossibleLambda")},helperSexpr:function(e,t,n){var r=this.setupFullMustacheParams(e,t,n),i=e.path,o=i.parts[0];if(this.options.knownHelpers[o])this.opcode("invokeKnownHelper",r.length,o);else{if(this.options.knownHelpersOnly)throw new c["default"]("You specified knownHelpersOnly, but used the unknown helper "+o,e);i.falsy=!0,this.accept(i),this.opcode("invokeHelper",r.length,i.original,f["default"].helpers.simpleId(i))}},PathExpression:function(e){this.addDepth(e.depth),this.opcode("getContext",e.depth);var t=e.parts[0],n=f["default"].helpers.scopedId(e),r=!e.depth&&!n&&this.blockParamIndex(t);r?this.opcode("lookupBlockParam",r,e.parts):t?e.data?(this.options.data=!0,this.opcode("lookupData",e.depth,e.parts)):this.opcode("lookupOnContext",e.parts,e.falsy,n):this.opcode("pushContext")},StringLiteral:function(e){this.opcode("pushString",e.value)},NumberLiteral:function(e){this.opcode("pushLiteral",e.value)},BooleanLiteral:function(e){this.opcode("pushLiteral",e.value)},UndefinedLiteral:function(){this.opcode("pushLiteral","undefined")},NullLiteral:function(){this.opcode("pushLiteral","null")},Hash:function(e){var t=e.pairs,n=0,r=t.length;for(this.opcode("pushHash");r>n;n++)this.pushParam(t[n].value);for(;n--;)this.opcode("assignToHash",t[n].key);this.opcode("popHash")},opcode:function(e){this.opcodes.push({opcode:e,args:d.call(arguments,1),loc:this.sourceNode[0].loc})},addDepth:function(e){e&&(this.useDepths=!0)},classifySexpr:function(e){var t=f["default"].helpers.simpleId(e.path),n=t&&!!this.blockParamIndex(e.path.parts[0]),r=!n&&f["default"].helpers.helperExpression(e),i=!n&&(r||t);if(i&&!r){var o=e.path.parts[0],a=this.options;a.knownHelpers[o]?r=!0:a.knownHelpersOnly&&(i=!1)}return r?"helper":i?"ambiguous":"simple"},pushParams:function(e){for(var t=0,n=e.length;n>t;t++)this.pushParam(e[t])},pushParam:function(e){var t=null!=e.value?e.value:e.original||"";if(this.stringParams)t.replace&&(t=t.replace(/^(\.?\.\/)*/g,"").replace(/\//g,".")),e.depth&&this.addDepth(e.depth),this.opcode("getContext",e.depth||0),this.opcode("pushStringParam",t,e.type),"SubExpression"===e.type&&this.accept(e);else{if(this.trackIds){var n=void 0;if(!e.parts||f["default"].helpers.scopedId(e)||e.depth||(n=this.blockParamIndex(e.parts[0])),n){var r=e.parts.slice(1).join(".");this.opcode("pushId","BlockParam",n,r)}else t=e.original||t,t.replace&&(t=t.replace(/^\.\//g,"").replace(/^\.$/g,"")),this.opcode("pushId",e.type,t)}this.accept(e)}},setupFullMustacheParams:function(e,t,n,r){var i=e.params;return this.pushParams(i),this.opcode("pushProgram",t),this.opcode("pushProgram",n),e.hash?this.accept(e.hash):this.opcode("emptyHash",r),i},blockParamIndex:function(e){for(var t=0,n=this.options.blockParams.length;n>t;t++){var r=this.options.blockParams[t],i=r&&p.indexOf(r,e);if(r&&i>=0)return[t,i]}}}},function(e,t,n){"use strict";function r(e){this.value=e}function i(){}function o(e,t,n,r){var i=t.popStack(),o=0,a=n.length;for(e&&a--;a>o;o++)i=t.nameLookup(i,n[o],r);return e?[t.aliasable("this.strict"),"(",i,", ",t.quotedString(n[o]),")"]:i}var a=n(8)["default"];t.__esModule=!0;var s=n(10),l=n(12),u=a(l),c=n(13),p=n(18),h=a(p);i.prototype={nameLookup:function(e,t){return i.isValidJavaScriptVariableName(t)?[e,".",t]:[e,"['",t,"']"]},depthedLookup:function(e){return[this.aliasable("this.lookup"),'(depths, "',e,'")']},compilerInfo:function(){var e=s.COMPILER_REVISION,t=s.REVISION_CHANGES[e];return[e,t]},appendToBuffer:function(e,t,n){return c.isArray(e)||(e=[e]),e=this.source.wrap(e,t),this.environment.isSimple?["return ",e,";"]:n?["buffer += ",e,";"]:(e.appendToBuffer=!0,e)},initializeBuffer:function(){return this.quotedString("")},compile:function(e,t,n,r){this.environment=e,this.options=t,this.stringParams=this.options.stringParams,this.trackIds=this.options.trackIds,this.precompile=!r,this.name=this.environment.name,this.isChild=!!n,this.context=n||{programs:[],environments:[]},this.preamble(),this.stackSlot=0,this.stackVars=[],this.aliases={},this.registers={list:[]},this.hashes=[],this.compileStack=[],this.inlineStack=[],this.blockParams=[],this.compileChildren(e,t),this.useDepths=this.useDepths||e.useDepths||this.options.compat,this.useBlockParams=this.useBlockParams||e.useBlockParams;var i=e.opcodes,o=void 0,a=void 0,s=void 0,l=void 0;for(s=0,l=i.length;l>s;s++)o=i[s],this.source.currentLocation=o.loc,a=a||o.loc,this[o.opcode].apply(this,o.args);if(this.source.currentLocation=a,this.pushSource(""),this.stackSlot||this.inlineStack.length||this.compileStack.length)throw new u["default"]("Compile completed with content left on stack");var c=this.createFunctionContext(r);if(this.isChild)return c;var p={compiler:this.compilerInfo(),main:c},h=this.context.programs;for(s=0,l=h.length;l>s;s++)h[s]&&(p[s]=h[s]);return this.environment.usePartial&&(p.usePartial=!0),this.options.data&&(p.useData=!0),this.useDepths&&(p.useDepths=!0),this.useBlockParams&&(p.useBlockParams=!0),this.options.compat&&(p.compat=!0),r?p.compilerOptions=this.options:(p.compiler=JSON.stringify(p.compiler),this.source.currentLocation={start:{line:1,column:0}},p=this.objectLiteral(p),t.srcName?(p=p.toStringWithSourceMap({file:t.destName}),p.map=p.map&&p.map.toString()):p=p.toString()),p},preamble:function(){this.lastContext=0,this.source=new h["default"](this.options.srcName)},createFunctionContext:function(e){var t="",n=this.stackVars.concat(this.registers.list);n.length>0&&(t+=", "+n.join(", "));var r=0;for(var i in this.aliases){var o=this.aliases[i];this.aliases.hasOwnProperty(i)&&o.children&&o.referenceCount>1&&(t+=", alias"+ ++r+"="+i,o.children[0]="alias"+r)}var a=["depth0","helpers","partials","data"];(this.useBlockParams||this.useDepths)&&a.push("blockParams"),this.useDepths&&a.push("depths");var s=this.mergeSource(t);return e?(a.push(s),Function.apply(this,a)):this.source.wrap(["function(",a.join(","),") {\n ",s,"}"])},mergeSource:function(e){var t=this.environment.isSimple,n=!this.forceBuffer,r=void 0,i=void 0,o=void 0,a=void 0;return this.source.each(function(e){e.appendToBuffer?(o?e.prepend(" + "):o=e,a=e):(o&&(i?o.prepend("buffer += "):r=!0,a.add(";"),o=a=void 0),i=!0,t||(n=!1))}),n?o?(o.prepend("return "),a.add(";")):i||this.source.push('return "";'):(e+=", buffer = "+(r?"":this.initializeBuffer()),o?(o.prepend("return buffer + "),a.add(";")):this.source.push("return buffer;")),e&&this.source.prepend("var "+e.substring(2)+(r?"":";\n")),this.source.merge()},blockValue:function(e){var t=this.aliasable("helpers.blockHelperMissing"),n=[this.contextName(0)];this.setupHelperArgs(e,0,n);var r=this.popStack();n.splice(1,0,r),this.push(this.source.functionCall(t,"call",n))},ambiguousBlockValue:function(){var e=this.aliasable("helpers.blockHelperMissing"),t=[this.contextName(0)];this.setupHelperArgs("",0,t,!0),this.flushInline();var n=this.topStack();t.splice(1,0,n),this.pushSource(["if (!",this.lastHelper,") { ",n," = ",this.source.functionCall(e,"call",t),"}"])},appendContent:function(e){this.pendingContent?e=this.pendingContent+e:this.pendingLocation=this.source.currentLocation,this.pendingContent=e},append:function(){if(this.isInline())this.replaceStack(function(e){return[" != null ? ",e,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var e=this.popStack();this.pushSource(["if (",e," != null) { ",this.appendToBuffer(e,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("this.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(e){this.lastContext=e},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(e,t,n){var r=0;n||!this.options.compat||this.lastContext?this.pushContext():this.push(this.depthedLookup(e[r++])),this.resolvePath("context",e,r,t)},lookupBlockParam:function(e,t){this.useBlockParams=!0,this.push(["blockParams[",e[0],"][",e[1],"]"]),this.resolvePath("context",t,1)},lookupData:function(e,t){e?this.pushStackLiteral("this.data(data, "+e+")"):this.pushStackLiteral("data"),this.resolvePath("data",t,0,!0)},resolvePath:function(e,t,n,r){var i=this;if(this.options.strict||this.options.assumeObjects)return void this.push(o(this.options.strict,this,t,e));for(var a=t.length;a>n;n++)this.replaceStack(function(o){var a=i.nameLookup(o,t[n],e);return r?[" && ",a]:[" != null ? ",a," : ",o]})},resolvePossibleLambda:function(){this.push([this.aliasable("this.lambda"),"(",this.popStack(),", ",this.contextName(0),")"])},pushStringParam:function(e,t){this.pushContext(),this.pushString(t),"SubExpression"!==t&&("string"==typeof e?this.pushString(e):this.pushStackLiteral(e))},emptyHash:function(e){this.trackIds&&this.push("{}"),this.stringParams&&(this.push("{}"),this.push("{}")),this.pushStackLiteral(e?"undefined":"{}")},pushHash:function(){this.hash&&this.hashes.push(this.hash),this.hash={values:[],types:[],contexts:[],ids:[]}},popHash:function(){var e=this.hash;this.hash=this.hashes.pop(),this.trackIds&&this.push(this.objectLiteral(e.ids)),this.stringParams&&(this.push(this.objectLiteral(e.contexts)),this.push(this.objectLiteral(e.types))),this.push(this.objectLiteral(e.values))},pushString:function(e){this.pushStackLiteral(this.quotedString(e))},pushLiteral:function(e){this.pushStackLiteral(e)},pushProgram:function(e){null!=e?this.pushStackLiteral(this.programExpression(e)):this.pushStackLiteral(null)},invokeHelper:function(e,t,n){var r=this.popStack(),i=this.setupHelper(e,t),o=n?[i.name," || "]:"",a=["("].concat(o,r);this.options.strict||a.push(" || ",this.aliasable("helpers.helperMissing")),a.push(")"),this.push(this.source.functionCall(a,"call",i.callParams))},invokeKnownHelper:function(e,t){var n=this.setupHelper(e,t);this.push(this.source.functionCall(n.name,"call",n.callParams))},invokeAmbiguous:function(e,t){this.useRegister("helper");var n=this.popStack();this.emptyHash();var r=this.setupHelper(0,e,t),i=this.lastHelper=this.nameLookup("helpers",e,"helper"),o=["(","(helper = ",i," || ",n,")"];this.options.strict||(o[0]="(helper = ",o.push(" != null ? helper : ",this.aliasable("helpers.helperMissing"))),this.push(["(",o,r.paramsInit?["),(",r.paramsInit]:[],"),","(typeof helper === ",this.aliasable('"function"')," ? ",this.source.functionCall("helper","call",r.callParams)," : helper))"])},invokePartial:function(e,t,n){var r=[],i=this.setupParams(t,1,r,!1);e&&(t=this.popStack(),delete i.name),n&&(i.indent=JSON.stringify(n)),i.helpers="helpers",i.partials="partials",e?r.unshift(t):r.unshift(this.nameLookup("partials",t,"partial")),this.options.compat&&(i.depths="depths"),i=this.objectLiteral(i),r.push(i),this.push(this.source.functionCall("this.invokePartial","",r))},assignToHash:function(e){var t=this.popStack(),n=void 0,r=void 0,i=void 0;this.trackIds&&(i=this.popStack()),this.stringParams&&(r=this.popStack(),n=this.popStack());var o=this.hash;n&&(o.contexts[e]=n),r&&(o.types[e]=r),i&&(o.ids[e]=i),o.values[e]=t},pushId:function(e,t,n){"BlockParam"===e?this.pushStackLiteral("blockParams["+t[0]+"].path["+t[1]+"]"+(n?" + "+JSON.stringify("."+n):"")):"PathExpression"===e?this.pushString(t):"SubExpression"===e?this.pushStackLiteral("true"):this.pushStackLiteral("null")},compiler:i,compileChildren:function(e,t){for(var n=e.children,r=void 0,i=void 0,o=0,a=n.length;a>o;o++){r=n[o],i=new this.compiler;var s=this.matchExistingProgram(r);null==s?(this.context.programs.push(""),s=this.context.programs.length,r.index=s,r.name="program"+s,this.context.programs[s]=i.compile(r,t,this.context,!this.precompile),this.context.environments[s]=r,this.useDepths=this.useDepths||i.useDepths,this.useBlockParams=this.useBlockParams||i.useBlockParams):(r.index=s,r.name="program"+s,this.useDepths=this.useDepths||r.useDepths,this.useBlockParams=this.useBlockParams||r.useBlockParams)}},matchExistingProgram:function(e){for(var t=0,n=this.context.environments.length;n>t;t++){var r=this.context.environments[t];if(r&&r.equals(e))return t}},programExpression:function(e){var t=this.environment.children[e],n=[t.index,"data",t.blockParams];return(this.useBlockParams||this.useDepths)&&n.push("blockParams"),this.useDepths&&n.push("depths"),"this.program("+n.join(", ")+")"},useRegister:function(e){this.registers[e]||(this.registers[e]=!0,this.registers.list.push(e))},push:function(e){return e instanceof r||(e=this.source.wrap(e)),this.inlineStack.push(e),e},pushStackLiteral:function(e){this.push(new r(e))},pushSource:function(e){this.pendingContent&&(this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent),this.pendingLocation)),this.pendingContent=void 0),e&&this.source.push(e)},replaceStack:function(e){var t=["("],n=void 0,i=void 0,o=void 0;if(!this.isInline())throw new u["default"]("replaceStack on non-inline");var a=this.popStack(!0);if(a instanceof r)n=[a.value],t=["(",n],o=!0;else{i=!0;var s=this.incrStack();t=["((",this.push(s)," = ",a,")"],n=this.topStack()}var l=e.call(this,n);o||this.popStack(),i&&this.stackSlot--,this.push(t.concat(l,")"))},incrStack:function(){return this.stackSlot++,this.stackSlot>this.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var e=this.inlineStack;this.inlineStack=[];for(var t=0,n=e.length;n>t;t++){var i=e[t];if(i instanceof r)this.compileStack.push(i);else{var o=this.incrStack();this.pushSource([o," = ",i,";"]),this.compileStack.push(o)}}},isInline:function(){return this.inlineStack.length},popStack:function(e){var t=this.isInline(),n=(t?this.inlineStack:this.compileStack).pop();if(!e&&n instanceof r)return n.value;if(!t){if(!this.stackSlot)throw new u["default"]("Invalid stack pop");this.stackSlot--}return n},topStack:function(){var e=this.isInline()?this.inlineStack:this.compileStack,t=e[e.length-1];return t instanceof r?t.value:t},contextName:function(e){return this.useDepths&&e?"depths["+e+"]":"depth"+e},quotedString:function(e){return this.source.quotedString(e)},objectLiteral:function(e){return this.source.objectLiteral(e)},aliasable:function(e){var t=this.aliases[e];return t?(t.referenceCount++,t):(t=this.aliases[e]=this.source.wrap(e),t.aliasable=!0,t.referenceCount=1,t)},setupHelper:function(e,t,n){var r=[],i=this.setupHelperArgs(t,e,r,n),o=this.nameLookup("helpers",t,"helper");return{params:r,paramsInit:i,name:o,callParams:[this.contextName(0)].concat(r)}},setupParams:function(e,t,n){var r={},i=[],o=[],a=[],s=void 0;r.name=this.quotedString(e),r.hash=this.popStack(),this.trackIds&&(r.hashIds=this.popStack()),this.stringParams&&(r.hashTypes=this.popStack(),r.hashContexts=this.popStack());var l=this.popStack(),u=this.popStack();(u||l)&&(r.fn=u||"this.noop",r.inverse=l||"this.noop");for(var c=t;c--;)s=this.popStack(),n[c]=s,this.trackIds&&(a[c]=this.popStack()),this.stringParams&&(o[c]=this.popStack(),i[c]=this.popStack());return this.trackIds&&(r.ids=this.source.generateArray(a)),this.stringParams&&(r.types=this.source.generateArray(o),r.contexts=this.source.generateArray(i)),this.options.data&&(r.data="data"),this.useBlockParams&&(r.blockParams="blockParams"),r},setupHelperArgs:function(e,t,n,r){var i=this.setupParams(e,t,n,!0);return i=this.objectLiteral(i),r?(this.useRegister("options"),n.push("options"),["options=",i]):(n.push(i),"")}},function(){for(var e="break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield await null true false".split(" "),t=i.RESERVED_WORDS={},n=0,r=e.length;r>n;n++)t[e[n]]=!0}(),i.isValidJavaScriptVariableName=function(e){return!i.RESERVED_WORDS[e]&&/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(e)},t["default"]=i,e.exports=t["default"]},function(e,t,n){"use strict";function r(){this.parents=[]}var i=n(8)["default"];t.__esModule=!0;var o=n(12),a=i(o),s=n(2),l=i(s);r.prototype={constructor:r,mutating:!1,acceptKey:function(e,t){var n=this.accept(e[t]);if(this.mutating){if(n&&(!n.type||!l["default"][n.type]))throw new a["default"]('Unexpected node type "'+n.type+'" found when accepting '+t+" on "+e.type); +e[t]=n}},acceptRequired:function(e,t){if(this.acceptKey(e,t),!e[t])throw new a["default"](e.type+" requires "+t)},acceptArray:function(e){for(var t=0,n=e.length;n>t;t++)this.acceptKey(e,t),e[t]||(e.splice(t,1),t--,n--)},accept:function(e){if(e){this.current&&this.parents.unshift(this.current),this.current=e;var t=this[e.type](e);return this.current=this.parents.shift(),!this.mutating||t?t:t!==!1?e:void 0}},Program:function(e){this.acceptArray(e.body)},MustacheStatement:function(e){this.acceptRequired(e,"path"),this.acceptArray(e.params),this.acceptKey(e,"hash")},BlockStatement:function(e){this.acceptRequired(e,"path"),this.acceptArray(e.params),this.acceptKey(e,"hash"),this.acceptKey(e,"program"),this.acceptKey(e,"inverse")},PartialStatement:function(e){this.acceptRequired(e,"name"),this.acceptArray(e.params),this.acceptKey(e,"hash")},ContentStatement:function(){},CommentStatement:function(){},SubExpression:function(e){this.acceptRequired(e,"path"),this.acceptArray(e.params),this.acceptKey(e,"hash")},PathExpression:function(){},StringLiteral:function(){},NumberLiteral:function(){},BooleanLiteral:function(){},UndefinedLiteral:function(){},NullLiteral:function(){},Hash:function(e){this.acceptArray(e.pairs)},HashPair:function(e){this.acceptRequired(e,"value")}},t["default"]=r,e.exports=t["default"]},function(e,t,n){(function(n){"use strict";t.__esModule=!0,t["default"]=function(e){var t="undefined"!=typeof n?n:window,r=t.Handlebars;e.noConflict=function(){t.Handlebars===e&&(t.Handlebars=r)}},e.exports=t["default"]}).call(t,function(){return this}())},function(e,t,n){"use strict";t["default"]=function(e){return e&&e.__esModule?e:{"default":e}},t.__esModule=!0},function(e,t,n){"use strict";t["default"]=function(e){if(e&&e.__esModule)return e;var t={};if("object"==typeof e&&null!==e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t},t.__esModule=!0},function(e,t,n){"use strict";function r(e,t){this.helpers=e||{},this.partials=t||{},i(this)}function i(e){e.registerHelper("helperMissing",function(){if(1!==arguments.length)throw new p["default"]('Missing helper: "'+arguments[arguments.length-1].name+'"')}),e.registerHelper("blockHelperMissing",function(t,n){var r=n.inverse,i=n.fn;if(t===!0)return i(this);if(t===!1||null==t)return r(this);if(g(t))return t.length>0?(n.ids&&(n.ids=[n.name]),e.helpers.each(t,n)):r(this);if(n.data&&n.ids){var a=o(n.data);a.contextPath=u.appendContextPath(n.data.contextPath,n.name),n={data:a}}return i(t,n)}),e.registerHelper("each",function(e,t){function n(t,n,i){l&&(l.key=t,l.index=n,l.first=0===n,l.last=!!i,c&&(l.contextPath=c+t)),s+=r(e[t],{data:l,blockParams:u.blockParams([e[t],t],[c+t,null])})}if(!t)throw new p["default"]("Must pass iterator to #each");var r=t.fn,i=t.inverse,a=0,s="",l=void 0,c=void 0;if(t.data&&t.ids&&(c=u.appendContextPath(t.data.contextPath,t.ids[0])+"."),m(e)&&(e=e.call(this)),t.data&&(l=o(t.data)),e&&"object"==typeof e)if(g(e))for(var h=e.length;h>a;a++)n(a,a,a===e.length-1);else{var f=void 0;for(var d in e)e.hasOwnProperty(d)&&(f&&n(f,a-1),f=d,a++);f&&n(f,a-1,!0)}return 0===a&&(s=i(this)),s}),e.registerHelper("if",function(e,t){return m(e)&&(e=e.call(this)),!t.hash.includeZero&&!e||u.isEmpty(e)?t.inverse(this):t.fn(this)}),e.registerHelper("unless",function(t,n){return e.helpers["if"].call(this,t,{fn:n.inverse,inverse:n.fn,hash:n.hash})}),e.registerHelper("with",function(e,t){m(e)&&(e=e.call(this));var n=t.fn;if(u.isEmpty(e))return t.inverse(this);if(t.data&&t.ids){var r=o(t.data);r.contextPath=u.appendContextPath(t.data.contextPath,t.ids[0]),t={data:r}}return n(e,t)}),e.registerHelper("log",function(t,n){var r=n.data&&null!=n.data.level?parseInt(n.data.level,10):1;e.log(r,t)}),e.registerHelper("lookup",function(e,t){return e&&e[t]})}function o(e){var t=u.extend({},e);return t._parent=e,t}var a=n(9)["default"],s=n(8)["default"];t.__esModule=!0,t.HandlebarsEnvironment=r,t.createFrame=o;var l=n(13),u=a(l),c=n(12),p=s(c),h="3.0.1";t.VERSION=h;var f=6;t.COMPILER_REVISION=f;var d={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1"};t.REVISION_CHANGES=d;var g=u.isArray,m=u.isFunction,v=u.toString,y="[object Object]";r.prototype={constructor:r,logger:b,log:x,registerHelper:function(e,t){if(v.call(e)===y){if(t)throw new p["default"]("Arg not supported with multiple helpers");u.extend(this.helpers,e)}else this.helpers[e]=t},unregisterHelper:function(e){delete this.helpers[e]},registerPartial:function(e,t){if(v.call(e)===y)u.extend(this.partials,e);else{if("undefined"==typeof t)throw new p["default"]("Attempting to register a partial as undefined");this.partials[e]=t}},unregisterPartial:function(e){delete this.partials[e]}};var b={methodMap:{0:"debug",1:"info",2:"warn",3:"error"},DEBUG:0,INFO:1,WARN:2,ERROR:3,level:1,log:function(e,t){if("undefined"!=typeof console&&b.level<=e){var n=b.methodMap[e];(console[n]||console.log).call(console,t)}}};t.logger=b;var x=b.log;t.log=x},function(e,t,n){"use strict";function r(e){this.string=e}t.__esModule=!0,r.prototype.toString=r.prototype.toHTML=function(){return""+this.string},t["default"]=r,e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t){var n=t&&t.loc,o=void 0,a=void 0;n&&(o=n.start.line,a=n.start.column,e+=" - "+o+":"+a);for(var s=Error.prototype.constructor.call(this,e),l=0;l<i.length;l++)this[i[l]]=s[i[l]];Error.captureStackTrace&&Error.captureStackTrace(this,r),n&&(this.lineNumber=o,this.column=a)}t.__esModule=!0;var i=["description","fileName","lineNumber","message","name","number","stack"];r.prototype=new Error,t["default"]=r,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return c[e]}function i(e){for(var t=1;t<arguments.length;t++)for(var n in arguments[t])Object.prototype.hasOwnProperty.call(arguments[t],n)&&(e[n]=arguments[t][n]);return e}function o(e,t){for(var n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1}function a(e){if("string"!=typeof e){if(e&&e.toHTML)return e.toHTML();if(null==e)return"";if(!e)return e+"";e=""+e}return h.test(e)?e.replace(p,r):e}function s(e){return e||0===e?!(!g(e)||0!==e.length):!0}function l(e,t){return e.path=t,e}function u(e,t){return(e?e+".":"")+t}t.__esModule=!0,t.extend=i,t.indexOf=o,t.escapeExpression=a,t.isEmpty=s,t.blockParams=l,t.appendContextPath=u;var c={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},p=/[&<>"'`]/g,h=/[&<>"'`]/,f=Object.prototype.toString;t.toString=f;var d=function(e){return"function"==typeof e};d(/x/)&&(t.isFunction=d=function(e){return"function"==typeof e&&"[object Function]"===f.call(e)});var d;t.isFunction=d;var g=Array.isArray||function(e){return e&&"object"==typeof e?"[object Array]"===f.call(e):!1};t.isArray=g},function(e,t,n){"use strict";function r(e){var t=e&&e[0]||1,n=m.COMPILER_REVISION;if(t!==n){if(n>t){var r=m.REVISION_CHANGES[n],i=m.REVISION_CHANGES[t];throw new g["default"]("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+r+") or downgrade your runtime to an older version ("+i+").")}throw new g["default"]("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+e[1]+").")}}function i(e,t){function n(n,r,i){i.hash&&(r=f.extend({},r,i.hash)),n=t.VM.resolvePartial.call(this,n,r,i);var o=t.VM.invokePartial.call(this,n,r,i);if(null==o&&t.compile&&(i.partials[i.name]=t.compile(n,e.compilerOptions,t),o=i.partials[i.name](r,i)),null!=o){if(i.indent){for(var a=o.split("\n"),s=0,l=a.length;l>s&&(a[s]||s+1!==l);s++)a[s]=i.indent+a[s];o=a.join("\n")}return o}throw new g["default"]("The partial "+i.name+" could not be compiled when running in runtime-only mode")}function r(t){var n=void 0===arguments[1]?{}:arguments[1],o=n.data;r._setup(n),!n.partial&&e.useData&&(o=u(t,o));var a=void 0,s=e.useBlockParams?[]:void 0;return e.useDepths&&(a=n.depths?[t].concat(n.depths):[t]),e.main.call(i,t,i.helpers,i.partials,o,s,a)}if(!t)throw new g["default"]("No environment passed to template");if(!e||!e.main)throw new g["default"]("Unknown template object: "+typeof e);t.VM.checkRevision(e.compiler);var i={strict:function(e,t){if(!(t in e))throw new g["default"]('"'+t+'" not defined in '+e);return e[t]},lookup:function(e,t){for(var n=e.length,r=0;n>r;r++)if(e[r]&&null!=e[r][t])return e[r][t]},lambda:function(e,t){return"function"==typeof e?e.call(t):e},escapeExpression:f.escapeExpression,invokePartial:n,fn:function(t){return e[t]},programs:[],program:function(e,t,n,r,i){var a=this.programs[e],s=this.fn(e);return t||i||r||n?a=o(this,e,s,t,n,r,i):a||(a=this.programs[e]=o(this,e,s)),a},data:function(e,t){for(;e&&t--;)e=e._parent;return e},merge:function(e,t){var n=e||t;return e&&t&&e!==t&&(n=f.extend({},t,e)),n},noop:t.VM.noop,compilerInfo:e.compiler};return r.isTop=!0,r._setup=function(n){n.partial?(i.helpers=n.helpers,i.partials=n.partials):(i.helpers=i.merge(n.helpers,t.helpers),e.usePartial&&(i.partials=i.merge(n.partials,t.partials)))},r._child=function(t,n,r,a){if(e.useBlockParams&&!r)throw new g["default"]("must pass block params");if(e.useDepths&&!a)throw new g["default"]("must pass parent depths");return o(i,t,e[t],n,0,r,a)},r}function o(e,t,n,r,i,o,a){function s(t){var i=void 0===arguments[1]?{}:arguments[1];return n.call(e,t,e.helpers,e.partials,i.data||r,o&&[i.blockParams].concat(o),a&&[t].concat(a))}return s.program=t,s.depth=a?a.length:0,s.blockParams=i||0,s}function a(e,t,n){return e?e.call||n.name||(n.name=e,e=n.partials[e]):e=n.partials[n.name],e}function s(e,t,n){if(n.partial=!0,void 0===e)throw new g["default"]("The partial "+n.name+" could not be found");return e instanceof Function?e(t,n):void 0}function l(){return""}function u(e,t){return t&&"root"in t||(t=t?m.createFrame(t):{},t.root=e),t}var c=n(9)["default"],p=n(8)["default"];t.__esModule=!0,t.checkRevision=r,t.template=i,t.wrapProgram=o,t.resolvePartial=a,t.invokePartial=s,t.noop=l;var h=n(13),f=c(h),d=n(12),g=p(d),m=n(10)},function(e,t,n){"use strict";t.__esModule=!0;var r=function(){function e(){this.yy={}}var t={trace:function(){},yy:{},symbols_:{error:2,root:3,program:4,EOF:5,program_repetition0:6,statement:7,mustache:8,block:9,rawBlock:10,partial:11,content:12,COMMENT:13,CONTENT:14,openRawBlock:15,END_RAW_BLOCK:16,OPEN_RAW_BLOCK:17,helperName:18,openRawBlock_repetition0:19,openRawBlock_option0:20,CLOSE_RAW_BLOCK:21,openBlock:22,block_option0:23,closeBlock:24,openInverse:25,block_option1:26,OPEN_BLOCK:27,openBlock_repetition0:28,openBlock_option0:29,openBlock_option1:30,CLOSE:31,OPEN_INVERSE:32,openInverse_repetition0:33,openInverse_option0:34,openInverse_option1:35,openInverseChain:36,OPEN_INVERSE_CHAIN:37,openInverseChain_repetition0:38,openInverseChain_option0:39,openInverseChain_option1:40,inverseAndProgram:41,INVERSE:42,inverseChain:43,inverseChain_option0:44,OPEN_ENDBLOCK:45,OPEN:46,mustache_repetition0:47,mustache_option0:48,OPEN_UNESCAPED:49,mustache_repetition1:50,mustache_option1:51,CLOSE_UNESCAPED:52,OPEN_PARTIAL:53,partialName:54,partial_repetition0:55,partial_option0:56,param:57,sexpr:58,OPEN_SEXPR:59,sexpr_repetition0:60,sexpr_option0:61,CLOSE_SEXPR:62,hash:63,hash_repetition_plus0:64,hashSegment:65,ID:66,EQUALS:67,blockParams:68,OPEN_BLOCK_PARAMS:69,blockParams_repetition_plus0:70,CLOSE_BLOCK_PARAMS:71,path:72,dataName:73,STRING:74,NUMBER:75,BOOLEAN:76,UNDEFINED:77,NULL:78,DATA:79,pathSegments:80,SEP:81,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",13:"COMMENT",14:"CONTENT",16:"END_RAW_BLOCK",17:"OPEN_RAW_BLOCK",21:"CLOSE_RAW_BLOCK",27:"OPEN_BLOCK",31:"CLOSE",32:"OPEN_INVERSE",37:"OPEN_INVERSE_CHAIN",42:"INVERSE",45:"OPEN_ENDBLOCK",46:"OPEN",49:"OPEN_UNESCAPED",52:"CLOSE_UNESCAPED",53:"OPEN_PARTIAL",59:"OPEN_SEXPR",62:"CLOSE_SEXPR",66:"ID",67:"EQUALS",69:"OPEN_BLOCK_PARAMS",71:"CLOSE_BLOCK_PARAMS",74:"STRING",75:"NUMBER",76:"BOOLEAN",77:"UNDEFINED",78:"NULL",79:"DATA",81:"SEP"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[12,1],[10,3],[15,5],[9,4],[9,4],[22,6],[25,6],[36,6],[41,2],[43,3],[43,1],[24,3],[8,5],[8,5],[11,5],[57,1],[57,1],[58,5],[63,1],[65,3],[68,3],[18,1],[18,1],[18,1],[18,1],[18,1],[18,1],[18,1],[54,1],[54,1],[73,2],[72,1],[80,3],[80,1],[6,0],[6,2],[19,0],[19,2],[20,0],[20,1],[23,0],[23,1],[26,0],[26,1],[28,0],[28,2],[29,0],[29,1],[30,0],[30,1],[33,0],[33,2],[34,0],[34,1],[35,0],[35,1],[38,0],[38,2],[39,0],[39,1],[40,0],[40,1],[44,0],[44,1],[47,0],[47,2],[48,0],[48,1],[50,0],[50,2],[51,0],[51,1],[55,0],[55,2],[56,0],[56,1],[60,0],[60,2],[61,0],[61,1],[64,1],[64,2],[70,1],[70,2]],performAction:function(e,t,n,r,i,o,a){var s=o.length-1;switch(i){case 1:return o[s-1];case 2:this.$=new r.Program(o[s],null,{},r.locInfo(this._$));break;case 3:this.$=o[s];break;case 4:this.$=o[s];break;case 5:this.$=o[s];break;case 6:this.$=o[s];break;case 7:this.$=o[s];break;case 8:this.$=new r.CommentStatement(r.stripComment(o[s]),r.stripFlags(o[s],o[s]),r.locInfo(this._$));break;case 9:this.$=new r.ContentStatement(o[s],r.locInfo(this._$));break;case 10:this.$=r.prepareRawBlock(o[s-2],o[s-1],o[s],this._$);break;case 11:this.$={path:o[s-3],params:o[s-2],hash:o[s-1]};break;case 12:this.$=r.prepareBlock(o[s-3],o[s-2],o[s-1],o[s],!1,this._$);break;case 13:this.$=r.prepareBlock(o[s-3],o[s-2],o[s-1],o[s],!0,this._$);break;case 14:this.$={path:o[s-4],params:o[s-3],hash:o[s-2],blockParams:o[s-1],strip:r.stripFlags(o[s-5],o[s])};break;case 15:this.$={path:o[s-4],params:o[s-3],hash:o[s-2],blockParams:o[s-1],strip:r.stripFlags(o[s-5],o[s])};break;case 16:this.$={path:o[s-4],params:o[s-3],hash:o[s-2],blockParams:o[s-1],strip:r.stripFlags(o[s-5],o[s])};break;case 17:this.$={strip:r.stripFlags(o[s-1],o[s-1]),program:o[s]};break;case 18:var l=r.prepareBlock(o[s-2],o[s-1],o[s],o[s],!1,this._$),u=new r.Program([l],null,{},r.locInfo(this._$));u.chained=!0,this.$={strip:o[s-2].strip,program:u,chain:!0};break;case 19:this.$=o[s];break;case 20:this.$={path:o[s-1],strip:r.stripFlags(o[s-2],o[s])};break;case 21:this.$=r.prepareMustache(o[s-3],o[s-2],o[s-1],o[s-4],r.stripFlags(o[s-4],o[s]),this._$);break;case 22:this.$=r.prepareMustache(o[s-3],o[s-2],o[s-1],o[s-4],r.stripFlags(o[s-4],o[s]),this._$);break;case 23:this.$=new r.PartialStatement(o[s-3],o[s-2],o[s-1],r.stripFlags(o[s-4],o[s]),r.locInfo(this._$));break;case 24:this.$=o[s];break;case 25:this.$=o[s];break;case 26:this.$=new r.SubExpression(o[s-3],o[s-2],o[s-1],r.locInfo(this._$));break;case 27:this.$=new r.Hash(o[s],r.locInfo(this._$));break;case 28:this.$=new r.HashPair(r.id(o[s-2]),o[s],r.locInfo(this._$));break;case 29:this.$=r.id(o[s-1]);break;case 30:this.$=o[s];break;case 31:this.$=o[s];break;case 32:this.$=new r.StringLiteral(o[s],r.locInfo(this._$));break;case 33:this.$=new r.NumberLiteral(o[s],r.locInfo(this._$));break;case 34:this.$=new r.BooleanLiteral(o[s],r.locInfo(this._$));break;case 35:this.$=new r.UndefinedLiteral(r.locInfo(this._$));break;case 36:this.$=new r.NullLiteral(r.locInfo(this._$));break;case 37:this.$=o[s];break;case 38:this.$=o[s];break;case 39:this.$=r.preparePath(!0,o[s],this._$);break;case 40:this.$=r.preparePath(!1,o[s],this._$);break;case 41:o[s-2].push({part:r.id(o[s]),original:o[s],separator:o[s-1]}),this.$=o[s-2];break;case 42:this.$=[{part:r.id(o[s]),original:o[s]}];break;case 43:this.$=[];break;case 44:o[s-1].push(o[s]);break;case 45:this.$=[];break;case 46:o[s-1].push(o[s]);break;case 53:this.$=[];break;case 54:o[s-1].push(o[s]);break;case 59:this.$=[];break;case 60:o[s-1].push(o[s]);break;case 65:this.$=[];break;case 66:o[s-1].push(o[s]);break;case 73:this.$=[];break;case 74:o[s-1].push(o[s]);break;case 77:this.$=[];break;case 78:o[s-1].push(o[s]);break;case 81:this.$=[];break;case 82:o[s-1].push(o[s]);break;case 85:this.$=[];break;case 86:o[s-1].push(o[s]);break;case 89:this.$=[o[s]];break;case 90:o[s-1].push(o[s]);break;case 91:this.$=[o[s]];break;case 92:o[s-1].push(o[s])}},table:[{3:1,4:2,5:[2,43],6:3,13:[2,43],14:[2,43],17:[2,43],27:[2,43],32:[2,43],46:[2,43],49:[2,43],53:[2,43]},{1:[3]},{5:[1,4]},{5:[2,2],7:5,8:6,9:7,10:8,11:9,12:10,13:[1,11],14:[1,18],15:16,17:[1,21],22:14,25:15,27:[1,19],32:[1,20],37:[2,2],42:[2,2],45:[2,2],46:[1,12],49:[1,13],53:[1,17]},{1:[2,1]},{5:[2,44],13:[2,44],14:[2,44],17:[2,44],27:[2,44],32:[2,44],37:[2,44],42:[2,44],45:[2,44],46:[2,44],49:[2,44],53:[2,44]},{5:[2,3],13:[2,3],14:[2,3],17:[2,3],27:[2,3],32:[2,3],37:[2,3],42:[2,3],45:[2,3],46:[2,3],49:[2,3],53:[2,3]},{5:[2,4],13:[2,4],14:[2,4],17:[2,4],27:[2,4],32:[2,4],37:[2,4],42:[2,4],45:[2,4],46:[2,4],49:[2,4],53:[2,4]},{5:[2,5],13:[2,5],14:[2,5],17:[2,5],27:[2,5],32:[2,5],37:[2,5],42:[2,5],45:[2,5],46:[2,5],49:[2,5],53:[2,5]},{5:[2,6],13:[2,6],14:[2,6],17:[2,6],27:[2,6],32:[2,6],37:[2,6],42:[2,6],45:[2,6],46:[2,6],49:[2,6],53:[2,6]},{5:[2,7],13:[2,7],14:[2,7],17:[2,7],27:[2,7],32:[2,7],37:[2,7],42:[2,7],45:[2,7],46:[2,7],49:[2,7],53:[2,7]},{5:[2,8],13:[2,8],14:[2,8],17:[2,8],27:[2,8],32:[2,8],37:[2,8],42:[2,8],45:[2,8],46:[2,8],49:[2,8],53:[2,8]},{18:22,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{18:33,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{4:34,6:3,13:[2,43],14:[2,43],17:[2,43],27:[2,43],32:[2,43],37:[2,43],42:[2,43],45:[2,43],46:[2,43],49:[2,43],53:[2,43]},{4:35,6:3,13:[2,43],14:[2,43],17:[2,43],27:[2,43],32:[2,43],42:[2,43],45:[2,43],46:[2,43],49:[2,43],53:[2,43]},{12:36,14:[1,18]},{18:38,54:37,58:39,59:[1,40],66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{5:[2,9],13:[2,9],14:[2,9],16:[2,9],17:[2,9],27:[2,9],32:[2,9],37:[2,9],42:[2,9],45:[2,9],46:[2,9],49:[2,9],53:[2,9]},{18:41,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{18:42,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{18:43,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{31:[2,73],47:44,59:[2,73],66:[2,73],74:[2,73],75:[2,73],76:[2,73],77:[2,73],78:[2,73],79:[2,73]},{21:[2,30],31:[2,30],52:[2,30],59:[2,30],62:[2,30],66:[2,30],69:[2,30],74:[2,30],75:[2,30],76:[2,30],77:[2,30],78:[2,30],79:[2,30]},{21:[2,31],31:[2,31],52:[2,31],59:[2,31],62:[2,31],66:[2,31],69:[2,31],74:[2,31],75:[2,31],76:[2,31],77:[2,31],78:[2,31],79:[2,31]},{21:[2,32],31:[2,32],52:[2,32],59:[2,32],62:[2,32],66:[2,32],69:[2,32],74:[2,32],75:[2,32],76:[2,32],77:[2,32],78:[2,32],79:[2,32]},{21:[2,33],31:[2,33],52:[2,33],59:[2,33],62:[2,33],66:[2,33],69:[2,33],74:[2,33],75:[2,33],76:[2,33],77:[2,33],78:[2,33],79:[2,33]},{21:[2,34],31:[2,34],52:[2,34],59:[2,34],62:[2,34],66:[2,34],69:[2,34],74:[2,34],75:[2,34],76:[2,34],77:[2,34],78:[2,34],79:[2,34]},{21:[2,35],31:[2,35],52:[2,35],59:[2,35],62:[2,35],66:[2,35],69:[2,35],74:[2,35],75:[2,35],76:[2,35],77:[2,35],78:[2,35],79:[2,35]},{21:[2,36],31:[2,36],52:[2,36],59:[2,36],62:[2,36],66:[2,36],69:[2,36],74:[2,36],75:[2,36],76:[2,36],77:[2,36],78:[2,36],79:[2,36]},{21:[2,40],31:[2,40],52:[2,40],59:[2,40],62:[2,40],66:[2,40],69:[2,40],74:[2,40],75:[2,40],76:[2,40],77:[2,40],78:[2,40],79:[2,40],81:[1,45]},{66:[1,32],80:46},{21:[2,42],31:[2,42],52:[2,42],59:[2,42],62:[2,42],66:[2,42],69:[2,42],74:[2,42],75:[2,42],76:[2,42],77:[2,42],78:[2,42],79:[2,42],81:[2,42]},{50:47,52:[2,77],59:[2,77],66:[2,77],74:[2,77],75:[2,77],76:[2,77],77:[2,77],78:[2,77],79:[2,77]},{23:48,36:50,37:[1,52],41:51,42:[1,53],43:49,45:[2,49]},{26:54,41:55,42:[1,53],45:[2,51]},{16:[1,56]},{31:[2,81],55:57,59:[2,81],66:[2,81],74:[2,81],75:[2,81],76:[2,81],77:[2,81],78:[2,81],79:[2,81]},{31:[2,37],59:[2,37],66:[2,37],74:[2,37],75:[2,37],76:[2,37],77:[2,37],78:[2,37],79:[2,37]},{31:[2,38],59:[2,38],66:[2,38],74:[2,38],75:[2,38],76:[2,38],77:[2,38],78:[2,38],79:[2,38]},{18:58,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{28:59,31:[2,53],59:[2,53],66:[2,53],69:[2,53],74:[2,53],75:[2,53],76:[2,53],77:[2,53],78:[2,53],79:[2,53]},{31:[2,59],33:60,59:[2,59],66:[2,59],69:[2,59],74:[2,59],75:[2,59],76:[2,59],77:[2,59],78:[2,59],79:[2,59]},{19:61,21:[2,45],59:[2,45],66:[2,45],74:[2,45],75:[2,45],76:[2,45],77:[2,45],78:[2,45],79:[2,45]},{18:65,31:[2,75],48:62,57:63,58:66,59:[1,40],63:64,64:67,65:68,66:[1,69],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{66:[1,70]},{21:[2,39],31:[2,39],52:[2,39],59:[2,39],62:[2,39],66:[2,39],69:[2,39],74:[2,39],75:[2,39],76:[2,39],77:[2,39],78:[2,39],79:[2,39],81:[1,45]},{18:65,51:71,52:[2,79],57:72,58:66,59:[1,40],63:73,64:67,65:68,66:[1,69],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{24:74,45:[1,75]},{45:[2,50]},{4:76,6:3,13:[2,43],14:[2,43],17:[2,43],27:[2,43],32:[2,43],37:[2,43],42:[2,43],45:[2,43],46:[2,43],49:[2,43],53:[2,43]},{45:[2,19]},{18:77,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{4:78,6:3,13:[2,43],14:[2,43],17:[2,43],27:[2,43],32:[2,43],45:[2,43],46:[2,43],49:[2,43],53:[2,43]},{24:79,45:[1,75]},{45:[2,52]},{5:[2,10],13:[2,10],14:[2,10],17:[2,10],27:[2,10],32:[2,10],37:[2,10],42:[2,10],45:[2,10],46:[2,10],49:[2,10],53:[2,10]},{18:65,31:[2,83],56:80,57:81,58:66,59:[1,40],63:82,64:67,65:68,66:[1,69],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{59:[2,85],60:83,62:[2,85],66:[2,85],74:[2,85],75:[2,85],76:[2,85],77:[2,85],78:[2,85],79:[2,85]},{18:65,29:84,31:[2,55],57:85,58:66,59:[1,40],63:86,64:67,65:68,66:[1,69],69:[2,55],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{18:65,31:[2,61],34:87,57:88,58:66,59:[1,40],63:89,64:67,65:68,66:[1,69],69:[2,61],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{18:65,20:90,21:[2,47],57:91,58:66,59:[1,40],63:92,64:67,65:68,66:[1,69],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{31:[1,93]},{31:[2,74],59:[2,74],66:[2,74],74:[2,74],75:[2,74],76:[2,74],77:[2,74],78:[2,74],79:[2,74]},{31:[2,76]},{21:[2,24],31:[2,24],52:[2,24],59:[2,24],62:[2,24],66:[2,24],69:[2,24],74:[2,24],75:[2,24],76:[2,24],77:[2,24],78:[2,24],79:[2,24]},{21:[2,25],31:[2,25],52:[2,25],59:[2,25],62:[2,25],66:[2,25],69:[2,25],74:[2,25],75:[2,25],76:[2,25],77:[2,25],78:[2,25],79:[2,25]},{21:[2,27],31:[2,27],52:[2,27],62:[2,27],65:94,66:[1,95],69:[2,27]},{21:[2,89],31:[2,89],52:[2,89],62:[2,89],66:[2,89],69:[2,89]},{21:[2,42],31:[2,42],52:[2,42],59:[2,42],62:[2,42],66:[2,42],67:[1,96],69:[2,42],74:[2,42],75:[2,42],76:[2,42],77:[2,42],78:[2,42],79:[2,42],81:[2,42]},{21:[2,41],31:[2,41],52:[2,41],59:[2,41],62:[2,41],66:[2,41],69:[2,41],74:[2,41],75:[2,41],76:[2,41],77:[2,41],78:[2,41],79:[2,41],81:[2,41]},{52:[1,97]},{52:[2,78],59:[2,78],66:[2,78],74:[2,78],75:[2,78],76:[2,78],77:[2,78],78:[2,78],79:[2,78]},{52:[2,80]},{5:[2,12],13:[2,12],14:[2,12],17:[2,12],27:[2,12],32:[2,12],37:[2,12],42:[2,12],45:[2,12],46:[2,12],49:[2,12],53:[2,12]},{18:98,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{36:50,37:[1,52],41:51,42:[1,53],43:100,44:99,45:[2,71]},{31:[2,65],38:101,59:[2,65],66:[2,65],69:[2,65],74:[2,65],75:[2,65],76:[2,65],77:[2,65],78:[2,65],79:[2,65]},{45:[2,17]},{5:[2,13],13:[2,13],14:[2,13],17:[2,13],27:[2,13],32:[2,13],37:[2,13],42:[2,13],45:[2,13],46:[2,13],49:[2,13],53:[2,13]},{31:[1,102]},{31:[2,82],59:[2,82],66:[2,82],74:[2,82],75:[2,82],76:[2,82],77:[2,82],78:[2,82],79:[2,82]},{31:[2,84]},{18:65,57:104,58:66,59:[1,40],61:103,62:[2,87],63:105,64:67,65:68,66:[1,69],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{30:106,31:[2,57],68:107,69:[1,108]},{31:[2,54],59:[2,54],66:[2,54],69:[2,54],74:[2,54],75:[2,54],76:[2,54],77:[2,54],78:[2,54],79:[2,54]},{31:[2,56],69:[2,56]},{31:[2,63],35:109,68:110,69:[1,108]},{31:[2,60],59:[2,60],66:[2,60],69:[2,60],74:[2,60],75:[2,60],76:[2,60],77:[2,60],78:[2,60],79:[2,60]},{31:[2,62],69:[2,62]},{21:[1,111]},{21:[2,46],59:[2,46],66:[2,46],74:[2,46],75:[2,46],76:[2,46],77:[2,46],78:[2,46],79:[2,46]},{21:[2,48]},{5:[2,21],13:[2,21],14:[2,21],17:[2,21],27:[2,21],32:[2,21],37:[2,21],42:[2,21],45:[2,21],46:[2,21],49:[2,21],53:[2,21]},{21:[2,90],31:[2,90],52:[2,90],62:[2,90],66:[2,90],69:[2,90]},{67:[1,96]},{18:65,57:112,58:66,59:[1,40],66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{5:[2,22],13:[2,22],14:[2,22],17:[2,22],27:[2,22],32:[2,22],37:[2,22],42:[2,22],45:[2,22],46:[2,22],49:[2,22],53:[2,22]},{31:[1,113]},{45:[2,18]},{45:[2,72]},{18:65,31:[2,67],39:114,57:115,58:66,59:[1,40],63:116,64:67,65:68,66:[1,69],69:[2,67],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{5:[2,23],13:[2,23],14:[2,23],17:[2,23],27:[2,23],32:[2,23],37:[2,23],42:[2,23],45:[2,23],46:[2,23],49:[2,23],53:[2,23]},{62:[1,117]},{59:[2,86],62:[2,86],66:[2,86],74:[2,86],75:[2,86],76:[2,86],77:[2,86],78:[2,86],79:[2,86]},{62:[2,88]},{31:[1,118]},{31:[2,58]},{66:[1,120],70:119},{31:[1,121]},{31:[2,64]},{14:[2,11]},{21:[2,28],31:[2,28],52:[2,28],62:[2,28],66:[2,28],69:[2,28]},{5:[2,20],13:[2,20],14:[2,20],17:[2,20],27:[2,20],32:[2,20],37:[2,20],42:[2,20],45:[2,20],46:[2,20],49:[2,20],53:[2,20]},{31:[2,69],40:122,68:123,69:[1,108]},{31:[2,66],59:[2,66],66:[2,66],69:[2,66],74:[2,66],75:[2,66],76:[2,66],77:[2,66],78:[2,66],79:[2,66]},{31:[2,68],69:[2,68]},{21:[2,26],31:[2,26],52:[2,26],59:[2,26],62:[2,26],66:[2,26],69:[2,26],74:[2,26],75:[2,26],76:[2,26],77:[2,26],78:[2,26],79:[2,26]},{13:[2,14],14:[2,14],17:[2,14],27:[2,14],32:[2,14],37:[2,14],42:[2,14],45:[2,14],46:[2,14],49:[2,14],53:[2,14]},{66:[1,125],71:[1,124]},{66:[2,91],71:[2,91]},{13:[2,15],14:[2,15],17:[2,15],27:[2,15],32:[2,15],42:[2,15],45:[2,15],46:[2,15],49:[2,15],53:[2,15]},{31:[1,126]},{31:[2,70]},{31:[2,29]},{66:[2,92],71:[2,92]},{13:[2,16],14:[2,16],17:[2,16],27:[2,16],32:[2,16],37:[2,16],42:[2,16],45:[2,16],46:[2,16],49:[2,16],53:[2,16]}],defaultActions:{4:[2,1],49:[2,50],51:[2,19],55:[2,52],64:[2,76],73:[2,80],78:[2,17],82:[2,84],92:[2,48],99:[2,18],100:[2,72],105:[2,88],107:[2,58],110:[2,64],111:[2,11],123:[2,70],124:[2,29]},parseError:function(e,t){throw new Error(e)},parse:function(e){function t(){var e;return e=n.lexer.lex()||1,"number"!=typeof e&&(e=n.symbols_[e]||e),e}var n=this,r=[0],i=[null],o=[],a=this.table,s="",l=0,u=0,c=0;this.lexer.setInput(e),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,"undefined"==typeof this.lexer.yylloc&&(this.lexer.yylloc={});var p=this.lexer.yylloc;o.push(p);var h=this.lexer.options&&this.lexer.options.ranges;"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var f,d,g,m,v,y,b,x,w,S={};;){if(g=r[r.length-1],this.defaultActions[g]?m=this.defaultActions[g]:(null!==f&&"undefined"!=typeof f||(f=t()),m=a[g]&&a[g][f]),"undefined"==typeof m||!m.length||!m[0]){var k="";if(!c){w=[];for(y in a[g])this.terminals_[y]&&y>2&&w.push("'"+this.terminals_[y]+"'");k=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+w.join(", ")+", got '"+(this.terminals_[f]||f)+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(k,{text:this.lexer.match,token:this.terminals_[f]||f,line:this.lexer.yylineno,loc:p,expected:w})}}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+g+", token: "+f);switch(m[0]){case 1:r.push(f),i.push(this.lexer.yytext),o.push(this.lexer.yylloc),r.push(m[1]),f=null,d?(f=d,d=null):(u=this.lexer.yyleng,s=this.lexer.yytext,l=this.lexer.yylineno,p=this.lexer.yylloc,c>0&&c--);break;case 2:if(b=this.productions_[m[1]][1],S.$=i[i.length-b],S._$={first_line:o[o.length-(b||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(b||1)].first_column,last_column:o[o.length-1].last_column},h&&(S._$.range=[o[o.length-(b||1)].range[0],o[o.length-1].range[1]]),v=this.performAction.call(S,s,u,l,this.yy,m[1],i,o),"undefined"!=typeof v)return v;b&&(r=r.slice(0,-1*b*2),i=i.slice(0,-1*b),o=o.slice(0,-1*b)),r.push(this.productions_[m[1]][0]),i.push(S.$),o.push(S._$),x=a[r[r.length-2]][r[r.length-1]],r.push(x);break;case 3:return!0}}return!0}},n=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e;var t=e.match(/(?:\r\n?|\n).*/g);return t?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t-1),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-t]),this},more:function(){return this._more=!0,this},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,r,i;this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),a=0;a<o.length&&(n=this._input.match(this.rules[o[a]]),!n||t&&!(n[0].length>t[0].length)||(t=n,r=a,this.options.flex));a++);return t?(i=t[0].match(/(?:\r\n?|\n).*/g),i&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,o[r],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e?e:void 0):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return"undefined"!=typeof e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)}};return e.options={},e.performAction=function(e,t,n,r){function i(e,n){return t.yytext=t.yytext.substr(e,t.yyleng-n)}switch(n){case 0:if("\\\\"===t.yytext.slice(-2)?(i(0,1),this.begin("mu")):"\\"===t.yytext.slice(-1)?(i(0,1),this.begin("emu")):this.begin("mu"),t.yytext)return 14;break;case 1:return 14;case 2:return this.popState(), +14;case 3:return t.yytext=t.yytext.substr(5,t.yyleng-9),this.popState(),16;case 4:return 14;case 5:return this.popState(),13;case 6:return 59;case 7:return 62;case 8:return 17;case 9:return this.popState(),this.begin("raw"),21;case 10:return 53;case 11:return 27;case 12:return 45;case 13:return this.popState(),42;case 14:return this.popState(),42;case 15:return 32;case 16:return 37;case 17:return 49;case 18:return 46;case 19:this.unput(t.yytext),this.popState(),this.begin("com");break;case 20:return this.popState(),13;case 21:return 46;case 22:return 67;case 23:return 66;case 24:return 66;case 25:return 81;case 26:break;case 27:return this.popState(),52;case 28:return this.popState(),31;case 29:return t.yytext=i(1,2).replace(/\\"/g,'"'),74;case 30:return t.yytext=i(1,2).replace(/\\'/g,"'"),74;case 31:return 79;case 32:return 76;case 33:return 76;case 34:return 77;case 35:return 78;case 36:return 75;case 37:return 69;case 38:return 71;case 39:return 66;case 40:return 66;case 41:return"INVALID";case 42:return 5}},e.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]*?(?=(\{\{\{\{\/)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[[^\]]*\])/,/^(?:.)/,/^(?:$)/],e.conditions={mu:{rules:[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[5],inclusive:!1},raw:{rules:[3,4],inclusive:!1},INITIAL:{rules:[0,1,42],inclusive:!0}},e}();return t.lexer=n,e.prototype=t,t.Parser=e,new e}();t["default"]=r,e.exports=t["default"]},function(e,t,n){"use strict";function r(){}function i(e,t,n){void 0===t&&(t=e.length);var r=e[t-1],i=e[t-2];return r?"ContentStatement"===r.type?(i||!n?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test(r.original):void 0:n}function o(e,t,n){void 0===t&&(t=-1);var r=e[t+1],i=e[t+2];return r?"ContentStatement"===r.type?(i||!n?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test(r.original):void 0:n}function a(e,t,n){var r=e[null==t?0:t+1];if(r&&"ContentStatement"===r.type&&(n||!r.rightStripped)){var i=r.value;r.value=r.value.replace(n?/^\s+/:/^[ \t]*\r?\n?/,""),r.rightStripped=r.value!==i}}function s(e,t,n){var r=e[null==t?e.length-1:t-1];if(r&&"ContentStatement"===r.type&&(n||!r.leftStripped)){var i=r.value;return r.value=r.value.replace(n?/\s+$/:/[ \t]+$/,""),r.leftStripped=r.value!==i,r.leftStripped}}var l=n(8)["default"];t.__esModule=!0;var u=n(6),c=l(u);r.prototype=new c["default"],r.prototype.Program=function(e){var t=!this.isRootSeen;this.isRootSeen=!0;for(var n=e.body,r=0,l=n.length;l>r;r++){var u=n[r],c=this.accept(u);if(c){var p=i(n,r,t),h=o(n,r,t),f=c.openStandalone&&p,d=c.closeStandalone&&h,g=c.inlineStandalone&&p&&h;c.close&&a(n,r,!0),c.open&&s(n,r,!0),g&&(a(n,r),s(n,r)&&"PartialStatement"===u.type&&(u.indent=/([ \t]+$)/.exec(n[r-1].original)[1])),f&&(a((u.program||u.inverse).body),s(n,r)),d&&(a(n,r),s((u.inverse||u.program).body))}}return e},r.prototype.BlockStatement=function(e){this.accept(e.program),this.accept(e.inverse);var t=e.program||e.inverse,n=e.program&&e.inverse,r=n,l=n;if(n&&n.chained)for(r=n.body[0].program;l.chained;)l=l.body[l.body.length-1].program;var u={open:e.openStrip.open,close:e.closeStrip.close,openStandalone:o(t.body),closeStandalone:i((r||t).body)};if(e.openStrip.close&&a(t.body,null,!0),n){var c=e.inverseStrip;c.open&&s(t.body,null,!0),c.close&&a(r.body,null,!0),e.closeStrip.open&&s(l.body,null,!0),i(t.body)&&o(r.body)&&(s(t.body),a(r.body))}else e.closeStrip.open&&s(t.body,null,!0);return u},r.prototype.MustacheStatement=function(e){return e.strip},r.prototype.PartialStatement=r.prototype.CommentStatement=function(e){var t=e.strip||{};return{inlineStandalone:!0,open:t.open,close:t.close}},t["default"]=r,e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t){this.source=e,this.start={line:t.first_line,column:t.first_column},this.end={line:t.last_line,column:t.last_column}}function i(e){return/^\[.*\]$/.test(e)?e.substr(1,e.length-2):e}function o(e,t){return{open:"~"===e.charAt(2),close:"~"===t.charAt(t.length-3)}}function a(e){return e.replace(/^\{\{~?\!-?-?/,"").replace(/-?-?~?\}\}$/,"")}function s(e,t,n){n=this.locInfo(n);for(var r=e?"@":"",i=[],o=0,a="",s=0,l=t.length;l>s;s++){var u=t[s].part,c=t[s].original!==u;if(r+=(t[s].separator||"")+u,c||".."!==u&&"."!==u&&"this"!==u)i.push(u);else{if(i.length>0)throw new f["default"]("Invalid path: "+r,{loc:n});".."===u&&(o++,a+="../")}}return new this.PathExpression(e,o,i,r,n)}function l(e,t,n,r,i,o){var a=r.charAt(3)||r.charAt(2),s="{"!==a&&"&"!==a;return new this.MustacheStatement(e,t,n,s,i,this.locInfo(o))}function u(e,t,n,r){if(e.path.original!==n){var i={loc:e.path.loc};throw new f["default"](e.path.original+" doesn't match "+n,i)}r=this.locInfo(r);var o=new this.Program([t],null,{},r);return new this.BlockStatement(e.path,e.params,e.hash,o,void 0,{},{},{},r)}function c(e,t,n,r,i,o){if(r&&r.path&&e.path.original!==r.path.original){var a={loc:e.path.loc};throw new f["default"](e.path.original+" doesn't match "+r.path.original,a)}t.blockParams=e.blockParams;var s=void 0,l=void 0;return n&&(n.chain&&(n.program.body[0].closeStrip=r.strip),l=n.strip,s=n.program),i&&(i=s,s=t,t=i),new this.BlockStatement(e.path,e.params,e.hash,t,s,e.strip,l,r&&r.strip,this.locInfo(o))}var p=n(8)["default"];t.__esModule=!0,t.SourceLocation=r,t.id=i,t.stripFlags=o,t.stripComment=a,t.preparePath=s,t.prepareMustache=l,t.prepareRawBlock=u,t.prepareBlock=c;var h=n(12),f=p(h)},function(e,t,n){"use strict";function r(e,t,n){if(o.isArray(e)){for(var r=[],i=0,a=e.length;a>i;i++)r.push(t.wrap(e[i],n));return r}return"boolean"==typeof e||"number"==typeof e?e+"":e}function i(e){this.srcFile=e,this.source=[]}t.__esModule=!0;var o=n(13),a=void 0;try{}catch(s){}a||(a=function(e,t,n,r){this.src="",r&&this.add(r)},a.prototype={add:function(e){o.isArray(e)&&(e=e.join("")),this.src+=e},prepend:function(e){o.isArray(e)&&(e=e.join("")),this.src=e+this.src},toStringWithSourceMap:function(){return{code:this.toString()}},toString:function(){return this.src}}),i.prototype={prepend:function(e,t){this.source.unshift(this.wrap(e,t))},push:function(e,t){this.source.push(this.wrap(e,t))},merge:function(){var e=this.empty();return this.each(function(t){e.add([" ",t,"\n"])}),e},each:function(e){for(var t=0,n=this.source.length;n>t;t++)e(this.source[t])},empty:function(){var e=void 0===arguments[0]?this.currentLocation||{start:{}}:arguments[0];return new a(e.start.line,e.start.column,this.srcFile)},wrap:function(e){var t=void 0===arguments[1]?this.currentLocation||{start:{}}:arguments[1];return e instanceof a?e:(e=r(e,this,t),new a(t.start.line,t.start.column,this.srcFile,e))},functionCall:function(e,t,n){return n=this.generateList(n),this.wrap([e,t?"."+t+"(":"(",n,")"])},quotedString:function(e){return'"'+(e+"").replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")+'"'},objectLiteral:function(e){var t=[];for(var n in e)if(e.hasOwnProperty(n)){var i=r(e[n],this);"undefined"!==i&&t.push([this.quotedString(n),":",i])}var o=this.generateList(t);return o.prepend("{"),o.add("}"),o},generateList:function(e,t){for(var n=this.empty(t),i=0,o=e.length;o>i;i++)i&&n.add(","),n.add(r(e[i],this,t));return n},generateArray:function(e,t){var n=this.generateList(e,t);return n.prepend("["),n.add("]"),n}},t["default"]=i,e.exports=t["default"]}])})}),define("source-map",[],function(e,t,n){t.SourceMapGenerator=e("source-map/source-map-generator").SourceMapGenerator,t.SourceMapConsumer=e("source-map/source-map-consumer").SourceMapConsumer,t.SourceNode=e("source-map/source-node").SourceNode}),define("source-map/source-map-generator",[],function(e,t,n){define(function(e,t,n){function r(e){e||(e={}),this._file=o.getArg(e,"file",null),this._sourceRoot=o.getArg(e,"sourceRoot",null),this._sources=new a,this._names=new a,this._mappings=[],this._sourcesContents=null}var i=e("source-map/base64-vlq"),o=e("source-map/util"),a=e("source-map/array-set").ArraySet;r.prototype._version=3,r.fromSourceMap=function(e){var t=e.sourceRoot,n=new r({file:e.file,sourceRoot:t});return e.eachMapping(function(e){var r={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(r.source=e.source,null!=t&&(r.source=o.relative(t,r.source)),r.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(r.name=e.name)),n.addMapping(r)}),e.sources.forEach(function(t){var r=e.sourceContentFor(t);null!=r&&n.setSourceContent(t,r)}),n},r.prototype.addMapping=function(e){var t=o.getArg(e,"generated"),n=o.getArg(e,"original",null),r=o.getArg(e,"source",null),i=o.getArg(e,"name",null);this._validateMapping(t,n,r,i),null==r||this._sources.has(r)||this._sources.add(r),null==i||this._names.has(i)||this._names.add(i),this._mappings.push({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=n&&n.line,originalColumn:null!=n&&n.column,source:r,name:i})},r.prototype.setSourceContent=function(e,t){var n=e;null!=this._sourceRoot&&(n=o.relative(this._sourceRoot,n)),null!=t?(this._sourcesContents||(this._sourcesContents={}),this._sourcesContents[o.toSetString(n)]=t):this._sourcesContents&&(delete this._sourcesContents[o.toSetString(n)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},r.prototype.applySourceMap=function(e,t,n){var r=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');r=e.file}var i=this._sourceRoot;null!=i&&(r=o.relative(i,r));var s=new a,l=new a;this._mappings.forEach(function(t){if(t.source===r&&null!=t.originalLine){var a=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=a.source&&(t.source=a.source,null!=n&&(t.source=o.join(n,t.source)),null!=i&&(t.source=o.relative(i,t.source)),t.originalLine=a.line,t.originalColumn=a.column,null!=a.name&&(t.name=a.name))}var u=t.source;null==u||s.has(u)||s.add(u);var c=t.name;null==c||l.has(c)||l.add(c)},this),this._sources=s,this._names=l,e.sources.forEach(function(t){var r=e.sourceContentFor(t);null!=r&&(null!=n&&(t=o.join(n,t)),null!=i&&(t=o.relative(i,t)),this.setSourceContent(t,r))},this)},r.prototype._validateMapping=function(e,t,n,r){if((!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0)||t||n||r)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&n))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:n,original:t,name:r}))},r.prototype._serializeMappings=function(){var e,t=0,n=1,r=0,a=0,s=0,l=0,u="";this._mappings.sort(o.compareByGeneratedPositions);for(var c=0,p=this._mappings.length;p>c;c++){if(e=this._mappings[c],e.generatedLine!==n)for(t=0;e.generatedLine!==n;)u+=";",n++;else if(c>0){if(!o.compareByGeneratedPositions(e,this._mappings[c-1]))continue;u+=","}u+=i.encode(e.generatedColumn-t),t=e.generatedColumn,null!=e.source&&(u+=i.encode(this._sources.indexOf(e.source)-l),l=this._sources.indexOf(e.source),u+=i.encode(e.originalLine-1-a),a=e.originalLine-1,u+=i.encode(e.originalColumn-r),r=e.originalColumn,null!=e.name&&(u+=i.encode(this._names.indexOf(e.name)-s),s=this._names.indexOf(e.name)))}return u},r.prototype._generateSourcesContent=function(e,t){return e.map(function(e){if(!this._sourcesContents)return null;null!=t&&(e=o.relative(t,e));var n=o.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,n)?this._sourcesContents[n]:null},this)},r.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},r.prototype.toString=function(){return JSON.stringify(this)},t.SourceMapGenerator=r})}),define("source-map/base64-vlq",[],function(e,t,n){define(function(e,t,n){function r(e){return 0>e?(-e<<1)+1:(e<<1)+0}function i(e){var t=1===(1&e),n=e>>1;return t?-n:n}var o=e("source-map/base64"),a=5,s=1<<a,l=s-1,u=s;t.encode=function(e){var t,n="",i=r(e);do t=i&l,i>>>=a,i>0&&(t|=u),n+=o.encode(t);while(i>0);return n},t.decode=function(e,t){var n,r,s=0,c=e.length,p=0,h=0;do{if(s>=c)throw new Error("Expected more digits in base 64 VLQ value.");r=o.decode(e.charAt(s++)),n=!!(r&u),r&=l,p+=r<<h,h+=a}while(n);t.value=i(p),t.rest=e.slice(s)}})}),define("source-map/base64",[],function(e,t,n){define(function(e,t,n){var r={},i={};"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("").forEach(function(e,t){r[e]=t,i[t]=e}),t.encode=function(e){if(e in i)return i[e];throw new TypeError("Must be between 0 and 63: "+e)},t.decode=function(e){if(e in r)return r[e];throw new TypeError("Not a valid base 64 digit: "+e)}})}),define("source-map/util",[],function(e,t,n){define(function(e,t,n){function r(e,t,n){if(t in e)return e[t];if(3===arguments.length)return n;throw new Error('"'+t+'" is a required argument.')}function i(e){var t=e.match(d);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function o(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}function a(e){var t=e,n=i(e);if(n){if(!n.path)return e;t=n.path}for(var r,a="/"===t.charAt(0),s=t.split(/\/+/),l=0,u=s.length-1;u>=0;u--)r=s[u],"."===r?s.splice(u,1):".."===r?l++:l>0&&(""===r?(s.splice(u+1,l),l=0):(s.splice(u,2),l--));return t=s.join("/"),""===t&&(t=a?"/":"."),n?(n.path=t,o(n)):t}function s(e,t){""===e&&(e="."),""===t&&(t=".");var n=i(t),r=i(e);if(r&&(e=r.path||"/"),n&&!n.scheme)return r&&(n.scheme=r.scheme),o(n);if(n||t.match(g))return t;if(r&&!r.host&&!r.path)return r.host=t,o(r);var s="/"===t.charAt(0)?t:a(e.replace(/\/+$/,"")+"/"+t);return r?(r.path=s,o(r)):s}function l(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");var n=i(e);return"/"==t.charAt(0)&&n&&"/"==n.path?t.slice(1):0===t.indexOf(e+"/")?t.substr(e.length+1):t}function u(e){return"$"+e}function c(e){return e.substr(1)}function p(e,t){var n=e||"",r=t||"";return(n>r)-(r>n)}function h(e,t,n){var r;return(r=p(e.source,t.source))?r:(r=e.originalLine-t.originalLine)?r:(r=e.originalColumn-t.originalColumn,r||n?r:(r=p(e.name,t.name))?r:(r=e.generatedLine-t.generatedLine,r?r:e.generatedColumn-t.generatedColumn))}function f(e,t,n){var r;return(r=e.generatedLine-t.generatedLine)?r:(r=e.generatedColumn-t.generatedColumn,r||n?r:(r=p(e.source,t.source))?r:(r=e.originalLine-t.originalLine)?r:(r=e.originalColumn-t.originalColumn,r?r:p(e.name,t.name)))}t.getArg=r;var d=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,g=/^data:.+\,.+$/;t.urlParse=i,t.urlGenerate=o,t.normalize=a,t.join=s,t.relative=l,t.toSetString=u,t.fromSetString=c,t.compareByOriginalPositions=h,t.compareByGeneratedPositions=f})}),define("source-map/array-set",[],function(e,t,n){define(function(e,t,n){function r(){this._array=[],this._set={}}var i=e("source-map/util");r.fromArray=function(e,t){for(var n=new r,i=0,o=e.length;o>i;i++)n.add(e[i],t);return n},r.prototype.add=function(e,t){var n=this.has(e),r=this._array.length;n&&!t||this._array.push(e),n||(this._set[i.toSetString(e)]=r)},r.prototype.has=function(e){return Object.prototype.hasOwnProperty.call(this._set,i.toSetString(e))},r.prototype.indexOf=function(e){if(this.has(e))return this._set[i.toSetString(e)];throw new Error('"'+e+'" is not in the set.')},r.prototype.at=function(e){if(e>=0&&e<this._array.length)return this._array[e];throw new Error("No element indexed by "+e)},r.prototype.toArray=function(){return this._array.slice()},t.ArraySet=r})}),define("source-map/source-map-consumer",[],function(e,t,n){define(function(e,t,n){function r(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var n=i.getArg(t,"version"),r=i.getArg(t,"sources"),o=i.getArg(t,"names",[]),s=i.getArg(t,"sourceRoot",null),l=i.getArg(t,"sourcesContent",null),u=i.getArg(t,"mappings"),c=i.getArg(t,"file",null);if(n!=this._version)throw new Error("Unsupported version: "+n);r=r.map(i.normalize),this._names=a.fromArray(o,!0),this._sources=a.fromArray(r,!0),this.sourceRoot=s,this.sourcesContent=l,this._mappings=u,this.file=c}var i=e("source-map/util"),o=e("source-map/binary-search"),a=e("source-map/array-set").ArraySet,s=e("source-map/base64-vlq");r.fromSourceMap=function(e){var t=Object.create(r.prototype);return t._names=a.fromArray(e._names.toArray(),!0),t._sources=a.fromArray(e._sources.toArray(),!0),t.sourceRoot=e._sourceRoot,t.sourcesContent=e._generateSourcesContent(t._sources.toArray(),t.sourceRoot),t.file=e._file,t.__generatedMappings=e._mappings.slice().sort(i.compareByGeneratedPositions),t.__originalMappings=e._mappings.slice().sort(i.compareByOriginalPositions),t},r.prototype._version=3,Object.defineProperty(r.prototype,"sources",{get:function(){return this._sources.toArray().map(function(e){return null!=this.sourceRoot?i.join(this.sourceRoot,e):e},this)}}),r.prototype.__generatedMappings=null,Object.defineProperty(r.prototype,"_generatedMappings",{get:function(){return this.__generatedMappings||(this.__generatedMappings=[],this.__originalMappings=[],this._parseMappings(this._mappings,this.sourceRoot)),this.__generatedMappings}}),r.prototype.__originalMappings=null,Object.defineProperty(r.prototype,"_originalMappings",{get:function(){return this.__originalMappings||(this.__generatedMappings=[],this.__originalMappings=[],this._parseMappings(this._mappings,this.sourceRoot)),this.__originalMappings}}),r.prototype._nextCharIsMappingSeparator=function(e){var t=e.charAt(0);return";"===t||","===t},r.prototype._parseMappings=function(e,t){for(var n,r=1,o=0,a=0,l=0,u=0,c=0,p=e,h={};p.length>0;)if(";"===p.charAt(0))r++,p=p.slice(1),o=0;else if(","===p.charAt(0))p=p.slice(1);else{if(n={},n.generatedLine=r,s.decode(p,h),n.generatedColumn=o+h.value,o=n.generatedColumn,p=h.rest,p.length>0&&!this._nextCharIsMappingSeparator(p)){if(s.decode(p,h),n.source=this._sources.at(u+h.value),u+=h.value,p=h.rest,0===p.length||this._nextCharIsMappingSeparator(p))throw new Error("Found a source, but no line and column");if(s.decode(p,h),n.originalLine=a+h.value,a=n.originalLine,n.originalLine+=1,p=h.rest,0===p.length||this._nextCharIsMappingSeparator(p))throw new Error("Found a source and line, but no column");s.decode(p,h),n.originalColumn=l+h.value,l=n.originalColumn,p=h.rest,p.length>0&&!this._nextCharIsMappingSeparator(p)&&(s.decode(p,h),n.name=this._names.at(c+h.value),c+=h.value,p=h.rest)}this.__generatedMappings.push(n),"number"==typeof n.originalLine&&this.__originalMappings.push(n)}this.__generatedMappings.sort(i.compareByGeneratedPositions),this.__originalMappings.sort(i.compareByOriginalPositions)},r.prototype._findMapping=function(e,t,n,r,i){if(e[n]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[n]);if(e[r]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[r]);return o.search(e,t,i)},r.prototype.computeColumnSpans=function(){for(var e=0;e<this._generatedMappings.length;++e){var t=this._generatedMappings[e];if(e+1<this._generatedMappings.length){var n=this._generatedMappings[e+1];if(t.generatedLine===n.generatedLine){t.lastGeneratedColumn=n.generatedColumn-1;continue}}t.lastGeneratedColumn=1/0}},r.prototype.originalPositionFor=function(e){var t={generatedLine:i.getArg(e,"line"),generatedColumn:i.getArg(e,"column")},n=this._findMapping(t,this._generatedMappings,"generatedLine","generatedColumn",i.compareByGeneratedPositions);if(n>=0){var r=this._generatedMappings[n];if(r.generatedLine===t.generatedLine){var o=i.getArg(r,"source",null);return null!=o&&null!=this.sourceRoot&&(o=i.join(this.sourceRoot,o)),{source:o,line:i.getArg(r,"originalLine",null),column:i.getArg(r,"originalColumn",null),name:i.getArg(r,"name",null)}}}return{source:null,line:null,column:null,name:null}},r.prototype.sourceContentFor=function(e){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(e=i.relative(this.sourceRoot,e)),this._sources.has(e))return this.sourcesContent[this._sources.indexOf(e)];var t;if(null!=this.sourceRoot&&(t=i.urlParse(this.sourceRoot))){var n=e.replace(/^file:\/\//,"");if("file"==t.scheme&&this._sources.has(n))return this.sourcesContent[this._sources.indexOf(n)];if((!t.path||"/"==t.path)&&this._sources.has("/"+e))return this.sourcesContent[this._sources.indexOf("/"+e)]}throw new Error('"'+e+'" is not in the SourceMap.')},r.prototype.generatedPositionFor=function(e){var t={source:i.getArg(e,"source"),originalLine:i.getArg(e,"line"),originalColumn:i.getArg(e,"column")};null!=this.sourceRoot&&(t.source=i.relative(this.sourceRoot,t.source));var n=this._findMapping(t,this._originalMappings,"originalLine","originalColumn",i.compareByOriginalPositions);if(n>=0){var r=this._originalMappings[n];return{line:i.getArg(r,"generatedLine",null),column:i.getArg(r,"generatedColumn",null),lastColumn:i.getArg(r,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},r.prototype.allGeneratedPositionsFor=function(e){var t={source:i.getArg(e,"source"),originalLine:i.getArg(e,"line"),originalColumn:1/0};null!=this.sourceRoot&&(t.source=i.relative(this.sourceRoot,t.source));var n=[],r=this._findMapping(t,this._originalMappings,"originalLine","originalColumn",i.compareByOriginalPositions);if(r>=0)for(var o=this._originalMappings[r];o&&o.originalLine===t.originalLine;)n.push({line:i.getArg(o,"generatedLine",null),column:i.getArg(o,"generatedColumn",null),lastColumn:i.getArg(o,"lastGeneratedColumn",null)}),o=this._originalMappings[--r];return n.reverse()},r.GENERATED_ORDER=1,r.ORIGINAL_ORDER=2,r.prototype.eachMapping=function(e,t,n){var o,a=t||null,s=n||r.GENERATED_ORDER;switch(s){case r.GENERATED_ORDER:o=this._generatedMappings;break;case r.ORIGINAL_ORDER:o=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var l=this.sourceRoot;o.map(function(e){var t=e.source;return null!=t&&null!=l&&(t=i.join(l,t)),{source:t,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:e.name}}).forEach(e,a)},t.SourceMapConsumer=r})}),define("source-map/binary-search",[],function(e,t,n){define(function(e,t,n){function r(e,t,n,i,o){var a=Math.floor((t-e)/2)+e,s=o(n,i[a],!0);return 0===s?a:s>0?t-a>1?r(a,t,n,i,o):a:a-e>1?r(e,a,n,i,o):0>e?-1:e}t.search=function(e,t,n){return 0===t.length?-1:r(-1,t.length,e,t,n)}})}),define("source-map/source-node",[],function(e,t,n){define(function(e,t,n){function r(e,t,n,r,i){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==t?null:t,this.source=null==n?null:n,this.name=null==i?null:i,this[l]=!0,null!=r&&this.add(r)}var i=e("source-map/source-map-generator").SourceMapGenerator,o=e("source-map/util"),a=/(\r?\n)/,s=/\r\n|[\s\S]/g,l="$$$isSourceNode$$$";r.fromStringWithSourceMap=function(e,t,n){function i(e,t){if(null===e||void 0===e.source)s.add(t);else{var i=n?o.join(n,e.source):e.source;s.add(new r(e.originalLine,e.originalColumn,i,t,e.name))}}var s=new r,l=e.split(a),u=function(){var e=l.shift(),t=l.shift()||"";return e+t},c=1,p=0,h=null;return t.eachMapping(function(e){if(null!==h){if(!(c<e.generatedLine)){var t=l[0],n=t.substr(0,e.generatedColumn-p);return l[0]=t.substr(e.generatedColumn-p),p=e.generatedColumn,i(h,n),void(h=e)}var n="";i(h,u()),c++,p=0}for(;c<e.generatedLine;)s.add(u()),c++;if(p<e.generatedColumn){var t=l[0];s.add(t.substr(0,e.generatedColumn)),l[0]=t.substr(e.generatedColumn),p=e.generatedColumn}h=e},this),l.length>0&&(h&&i(h,u()),s.add(l.join(""))),t.sources.forEach(function(e){var r=t.sourceContentFor(e);null!=r&&(null!=n&&(e=o.join(n,e)),s.setSourceContent(e,r))}),s},r.prototype.add=function(e){if(Array.isArray(e))e.forEach(function(e){this.add(e)},this);else{if(!e[l]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);e&&this.children.push(e)}return this},r.prototype.prepend=function(e){if(Array.isArray(e))for(var t=e.length-1;t>=0;t--)this.prepend(e[t]);else{if(!e[l]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},r.prototype.walk=function(e){for(var t,n=0,r=this.children.length;r>n;n++)t=this.children[n],t[l]?t.walk(e):""!==t&&e(t,{source:this.source,line:this.line,column:this.column,name:this.name})},r.prototype.join=function(e){var t,n,r=this.children.length;if(r>0){for(t=[],n=0;r-1>n;n++)t.push(this.children[n]),t.push(e);t.push(this.children[n]),this.children=t}return this},r.prototype.replaceRight=function(e,t){var n=this.children[this.children.length-1];return n[l]?n.replaceRight(e,t):"string"==typeof n?this.children[this.children.length-1]=n.replace(e,t):this.children.push("".replace(e,t)),this},r.prototype.setSourceContent=function(e,t){this.sourceContents[o.toSetString(e)]=t},r.prototype.walkSourceContents=function(e){for(var t=0,n=this.children.length;n>t;t++)this.children[t][l]&&this.children[t].walkSourceContents(e);for(var r=Object.keys(this.sourceContents),t=0,n=r.length;n>t;t++)e(o.fromSetString(r[t]),this.sourceContents[r[t]])},r.prototype.toString=function(){var e="";return this.walk(function(t){e+=t}),e},r.prototype.toStringWithSourceMap=function(e){var t={code:"",line:1,column:0},n=new i(e),r=!1,o=null,l=null,u=null,c=null;return this.walk(function(e,i){t.code+=e,null!==i.source&&null!==i.line&&null!==i.column?(o===i.source&&l===i.line&&u===i.column&&c===i.name||n.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name}),o=i.source,l=i.line,u=i.column,c=i.name,r=!0):r&&(n.addMapping({generated:{line:t.line,column:t.column}}),o=null,r=!1),e.match(s).forEach(function(e,s,l){a.test(e)?(t.line++,t.column=0,s+1===l.length?(o=null,r=!1):r&&n.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name})):t.column+=e.length})}),this.walkSourceContents(function(e,t){n.setSourceContent(e,t)}),{code:t.code,map:n}},t.SourceNode=r})}),define("index",[],function(require,exports,module){"object"!=typeof JSON&&(JSON={}),function(){"use strict";function f(e){return 10>e?"0"+e:e}function quote(e){return escapable.lastIndex=0,escapable.test(e)?'"'+e.replace(escapable,function(e){var t=meta[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+e+'"'}function str(e,t){var n,r,i,o,a,s=gap,l=t[e];switch(l&&"object"==typeof l&&"function"==typeof l.toJSON&&(l=l.toJSON(e)),"function"==typeof rep&&(l=rep.call(t,e,l)),typeof l){case"string":return quote(l);case"number":return isFinite(l)?String(l):"null";case"boolean":case"null":return String(l);case"object":if(!l)return"null";if(gap+=indent,a=[],"[object Array]"===Object.prototype.toString.apply(l)){for(o=l.length,n=0;o>n;n+=1)a[n]=str(n,l)||"null";return i=0===a.length?"[]":gap?"[\n"+gap+a.join(",\n"+gap)+"\n"+s+"]":"["+a.join(",")+"]",gap=s,i}if(rep&&"object"==typeof rep)for(o=rep.length,n=0;o>n;n+=1)"string"==typeof rep[n]&&(r=rep[n],i=str(r,l),i&&a.push(quote(r)+(gap?": ":":")+i));else for(r in l)Object.prototype.hasOwnProperty.call(l,r)&&(i=str(r,l),i&&a.push(quote(r)+(gap?": ":":")+i));return i=0===a.length?"{}":gap?"{\n"+gap+a.join(",\n"+gap)+"\n"+s+"}":"{"+a.join(",")+"}",gap=s,i}}"function"!=typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()});var cx,escapable,gap,indent,meta,rep;"function"!=typeof JSON.stringify&&(escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,meta={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},JSON.stringify=function(e,t,n){var r;if(gap="",indent="","number"==typeof n)for(r=0;n>r;r+=1)indent+=" ";else"string"==typeof n&&(indent=n);if(rep=t,t&&"function"!=typeof t&&("object"!=typeof t||"number"!=typeof t.length))throw new Error("JSON.stringify");return str("",{"":e})}),"function"!=typeof JSON.parse&&(cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,JSON.parse=function(text,reviver){function walk(e,t){var n,r,i=e[t];if(i&&"object"==typeof i)for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(r=walk(i,n),void 0!==r?i[n]=r:delete i[n]);return reviver.call(e,t,i)}var j;if(text=String(text),cx.lastIndex=0,cx.test(text)&&(text=text.replace(cx,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})),/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return j=eval("("+text+")"),"function"==typeof reviver?walk({"":j},""):j;throw new SyntaxError("JSON.parse")})}(),module.exports=JSON}),define("jquery-pjax",[],function(e,t,n){var r=e("jquery");!function(e){function t(t,r,i){var o=this;return this.on("click.pjax",t,function(t){var a=e.extend({},v(r,i));a.container||(a.container=e(this).attr("data-pjax")||o),n(t,a)})}function n(t,n,r){r=v(n,r);var i=t.currentTarget;if("A"!==i.tagName.toUpperCase())throw"$.fn.pjax or $.pjax.click requires an anchor element";if(!(t.which>1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||location.protocol!==i.protocol||location.hostname!==i.hostname||i.href.indexOf("#")>-1&&m(i)==m(location)||t.isDefaultPrevented())){var a={url:i.href,container:e(i).attr("data-pjax"),target:i},s=e.extend({},a,r),l=e.Event("pjax:click");e(i).trigger(l,[s]),l.isDefaultPrevented()||(o(s),t.preventDefault(),e(i).trigger("pjax:clicked",[s]))}}function i(t,n,r){r=v(n,r);var i=t.currentTarget;if("FORM"!==i.tagName.toUpperCase())throw"$.pjax.submit requires a form element";var a={type:i.method.toUpperCase(),url:i.action,container:e(i).attr("data-pjax"),target:i};if("GET"!==a.type&&void 0!==window.FormData)a.data=new FormData(i),a.processData=!1,a.contentType=!1;else{if(e(i).find(":file").length)return;a.data=e(i).serializeArray()}o(e.extend({},a,r)),t.preventDefault()}function o(t){function n(t,n,i){i||(i={}),i.relatedTarget=r;var o=e.Event(t,i);return a.trigger(o,n),!o.isDefaultPrevented()}t=e.extend(!0,{},e.ajaxSettings,o.defaults,t),e.isFunction(t.url)&&(t.url=t.url());var r=t.target,i=g(t.url).hash,a=t.context=y(t.container);t.data||(t.data={}),e.isArray(t.data)?t.data.push({name:"_pjax",value:a.selector}):t.data._pjax=a.selector;var l;t.beforeSend=function(e,r){if("GET"!==r.type&&(r.timeout=0),e.setRequestHeader("X-PJAX","true"),e.setRequestHeader("X-PJAX-Container",a.selector),!n("pjax:beforeSend",[e,r]))return!1;r.timeout>0&&(l=setTimeout(function(){n("pjax:timeout",[e,t])&&e.abort("timeout")},r.timeout),r.timeout=0);var o=g(r.url);o.hash=i,t.requestUrl=d(o.href); +},t.complete=function(e,r){l&&clearTimeout(l),n("pjax:complete",[e,r,t]),n("pjax:end",[e,t])},t.error=function(e,r,i){var o=w("",e,t),a=n("pjax:error",[e,r,i,t]);"GET"==t.type&&"abort"!==r&&a&&s(o.url)},t.success=function(r,l,u){var c=o.state,h="function"==typeof e.pjax.defaults.version?e.pjax.defaults.version():e.pjax.defaults.version,f=u.getResponseHeader("X-PJAX-Version"),d=w(r,u,t),m=g(d.url);if(i&&(m.hash=i,d.url=m.href),h&&f&&h!==f)return void s(d.url);if(!d.contents)return void s(d.url);o.state={id:t.id||p(),url:d.url,title:d.title,container:a.selector,fragment:t.fragment,timeout:t.timeout},(t.push||t.replace)&&window.history.replaceState(o.state,d.title,d.url);try{document.activeElement.blur()}catch(v){}d.title&&(document.title=d.title),n("pjax:beforeReplace",[d.contents,t],{state:o.state,previousState:c}),a.html(d.contents);var y=a.find("input[autofocus], textarea[autofocus]").last()[0];y&&document.activeElement!==y&&y.focus(),S(d.scripts);var b=t.scrollTo;if(i){var x=decodeURIComponent(i.slice(1)),k=document.getElementById(x)||document.getElementsByName(x)[0];k&&(b=e(k).offset().top)}"number"==typeof b&&e(window).scrollTop(b),n("pjax:success",[r,l,u,t])},o.state||(o.state={id:p(),url:window.location.href,title:document.title,container:a.selector,fragment:t.fragment,timeout:t.timeout},window.history.replaceState(o.state,document.title)),c(o.xhr),o.options=t;var u=o.xhr=e.ajax(t);return u.readyState>0&&(t.push&&!t.replace&&(k(o.state.id,h(a)),window.history.pushState(null,"",t.requestUrl)),n("pjax:start",[u,t]),n("pjax:send",[u,t])),o.xhr}function a(t,n){var r={url:window.location.href,push:!1,replace:!0,scrollTo:!1};return o(e.extend(r,v(t,n)))}function s(e){window.history.replaceState(null,"",o.state.url),window.location.replace(e)}function l(t){T||c(o.xhr);var n=o.state,r=t.state;if(r&&r.container){if(T&&P==r.url)return;var i,a=r.container;if(n){if(n.id===r.id)return;i=n.id<r.id?"forward":"back","back"==i&&(a=n.container)}var l=e(a);if(l.length){var u=j[r.id];n&&C(i,n.id,h(l));var p=e.Event("pjax:popstate",{state:r,direction:i});l.trigger(p);var f={id:r.id,url:r.url,container:l,push:!1,fragment:r.fragment,timeout:r.timeout,scrollTo:!1};if(u){l.trigger("pjax:start",[null,f]),o.state=r,r.title&&(document.title=r.title);var d=e.Event("pjax:beforeReplace",{state:r,previousState:n});l.trigger(d,[u,f]),l.html(u),l.trigger("pjax:end",[null,f])}else o(f);l[0].offsetHeight}else s(location.href)}T=!1}function u(t){var n=e.isFunction(t.url)?t.url():t.url,r=t.type?t.type.toUpperCase():"GET",i=e("<form>",{method:"GET"===r?"GET":"POST",action:n,style:"display:none"});"GET"!==r&&"POST"!==r&&i.append(e("<input>",{type:"hidden",name:"_method",value:r.toLowerCase()}));var o=t.data;if("string"==typeof o)e.each(o.split("&"),function(t,n){var r=n.split("=");i.append(e("<input>",{type:"hidden",name:r[0],value:r[1]}))});else if(e.isArray(o))e.each(o,function(t,n){i.append(e("<input>",{type:"hidden",name:n.name,value:n.value}))});else if("object"==typeof o){var a;for(a in o)i.append(e("<input>",{type:"hidden",name:a,value:o[a]}))}e(document.body).append(i),i.submit()}function c(t){t&&t.readyState<4&&(t.onreadystatechange=e.noop,t.abort())}function p(){return(new Date).getTime()}function h(e){var t=e.clone();return t.find("script").each(function(){this.src||r._data(this,"globalEval",!1)}),t.contents()}function f(e,t){return e.replace(new RegExp("[?&]"+t+"=[^&#]*"),"").replace(/[?&]($|#)/,"").replace(/[?&]/,"?")}function d(e){return e=f(e,"_pjax"),e=f(e,"_")}function g(e){var t=document.createElement("a");return t.href=e,t}function m(e){return e.href.replace(/#.*/,"")}function v(t,n){return t&&n?n.container=t:n=e.isPlainObject(t)?t:{container:t},n.container&&(n.container=y(n.container)),n}function y(t){if(t=e(t),t.length){if(""!==t.selector&&t.context===document)return t;if(t.attr("id"))return e("#"+t.attr("id"));throw"cant get selector for pjax container!"}throw"no pjax container for "+t.selector}function b(e,t){return e.filter(t).add(e.find(t))}function x(t){return e.parseHTML(t,document,!0)}function w(t,n,r){var i={},o=/<html/i.test(t),a=n.getResponseHeader("X-PJAX-URL");if(i.url=a?d(a):r.requestUrl,o)var s=e(x(t.match(/<head[^>]*>([\s\S.]*)<\/head>/i)[0])),l=e(x(t.match(/<body[^>]*>([\s\S.]*)<\/body>/i)[0]));else var s=l=e(x(t));if(0===l.length)return i;if(i.title=b(s,"title").last().text(),r.fragment){if("body"===r.fragment)var u=l;else var u=b(l,r.fragment).first();u.length&&(i.contents="body"===r.fragment?u:u.contents(),i.title||(i.title=u.attr("title")||u.data("title")))}else o||(i.contents=l);return i.contents&&(i.contents=i.contents.not(function(){return e(this).is("title")}),i.contents.find("title").remove(),i.scripts=b(i.contents,"script[src]").remove(),i.contents=i.contents.not(i.scripts)),i.title&&(i.title=e.trim(i.title)),i}function S(t){if(t){var n=e("script[src]");t.each(function(){var t=this.src,r=n.filter(function(){return this.src===t});if(!r.length){var i=document.createElement("script"),o=e(this).attr("type");o&&(i.type=o),i.src=e(this).attr("src"),document.head.appendChild(i)}})}}function k(e,t){j[e]=t,M.push(e),_(O,0),_(M,o.defaults.maxCacheLength)}function C(e,t,n){var r,i;j[t]=n,"forward"===e?(r=M,i=O):(r=O,i=M),r.push(t),(t=i.pop())&&delete j[t],_(r,o.defaults.maxCacheLength)}function _(e,t){for(;e.length>t;)delete j[e.shift()]}function E(){return e("meta").filter(function(){var t=e(this).attr("http-equiv");return t&&"X-PJAX-VERSION"===t.toUpperCase()}).attr("content")}function A(){e.fn.pjax=t,e.pjax=o,e.pjax.enable=e.noop,e.pjax.disable=N,e.pjax.click=n,e.pjax.submit=i,e.pjax.reload=a,e.pjax.defaults={timeout:650,push:!0,replace:!1,type:"GET",dataType:"html",scrollTo:0,maxCacheLength:20,version:E},e(window).on("popstate.pjax",l)}function N(){e.fn.pjax=function(){return this},e.pjax=u,e.pjax.enable=A,e.pjax.disable=e.noop,e.pjax.click=e.noop,e.pjax.submit=e.noop,e.pjax.reload=function(){window.location.reload()},e(window).off("popstate.pjax",l)}var T=!0,P=window.location.href,L=window.history.state;L&&L.container&&(o.state=L),"state"in window.history&&(T=!1);var j={},O=[],M=[];e.inArray("state",e.event.props)<0&&e.event.props.push("state"),e.support.pjax=window.history&&window.history.pushState&&window.history.replaceState&&!navigator.userAgent.match(/((iPod|iPhone|iPad).+\bOS\s+[1-4]\D|WebApps\/.+CFNetwork)/),e.support.pjax?A():N()}(r)}),define("dot",[],function(e,t,n){e("lib/jquery.dotdotdot"),n.exports=function(e){e.dotdotdot({wrap:"letter"})}}),define("lib/jquery.dotdotdot",[],function(e,t,n){var r=e("jquery");!function(e,t){function n(e,t,n){var r=e.children(),i=!1;e.empty();for(var a=0,s=r.length;s>a;a++){var l=r.eq(a);if(e.append(l),n&&e.append(n),o(e,t)){l.remove(),i=!0;break}n&&n.detach()}return i}function r(t,n,a,s,l){var u=!1,c="a, table, thead, tbody, tfoot, tr, col, colgroup, object, embed, param, ol, ul, dl, blockquote, select, optgroup, option, textarea, script, style",p="script, .dotdotdot-keep";return t.contents().detach().each(function(){var h=this,f=e(h);if("undefined"==typeof h)return!0;if(f.is(p))t.append(f);else{if(u)return!0;t.append(f),!l||f.is(s.after)||f.find(s.after).length||t[t.is(c)?"after":"append"](l),o(a,s)&&(u=3==h.nodeType?i(f,n,a,s,l):r(f,n,a,s,l),u||(f.detach(),u=!0)),u||l&&l.detach()}}),n.addClass("is-truncated"),u}function i(t,n,r,i,s){var c=t[0];if(!c)return!1;var h=u(c),f=-1!==h.indexOf(" ")?" ":" ",d="letter"==i.wrap?"":f,g=h.split(d),m=-1,v=-1,y=0,b=g.length-1;for(i.fallbackToLetter&&0==y&&0==b&&(d="",g=h.split(d),b=g.length-1);b>=y&&(0!=y||0!=b);){var x=Math.floor((y+b)/2);if(x==v)break;v=x,l(c,g.slice(0,v+1).join(d)+i.ellipsis),o(r,i)?(b=v,i.fallbackToLetter&&0==y&&0==b&&(d="",g=g[0].split(d),m=-1,v=-1,y=0,b=g.length-1)):(m=v,y=v)}if(-1==m||1==g.length&&0==g[0].length){var w=t.parent();t.detach();var S=s&&s.closest(w).length?s.length:0;w.contents().length>S?c=p(w.contents().eq(-1-S),n):(c=p(w,n,!0),S||w.detach()),c&&(h=a(u(c),i),l(c,h),S&&s&&e(c).parent().append(s))}else h=a(g.slice(0,m+1).join(d),i),l(c,h);return!0}function o(e,t){return e.innerHeight()>t.maxHeight}function a(t,n){for(;e.inArray(t.slice(-1),n.lastCharacter.remove)>-1;)t=t.slice(0,-1);return e.inArray(t.slice(-1),n.lastCharacter.noEllipsis)<0&&(t+=n.ellipsis),t}function s(e){return{width:e.innerWidth(),height:e.innerHeight()}}function l(e,t){e.innerText?e.innerText=t:e.nodeValue?e.nodeValue=t:e.textContent&&(e.textContent=t)}function u(e){return e.innerText?e.innerText:e.nodeValue?e.nodeValue:e.textContent?e.textContent:""}function c(e){do e=e.previousSibling;while(e&&1!==e.nodeType&&3!==e.nodeType);return e}function p(t,n,r){var i,o=t&&t[0];if(o){if(!r){if(3===o.nodeType)return o;if(e.trim(t.text()))return p(t.contents().last(),n)}for(i=c(o);!i;){if(t=t.parent(),t.is(n)||!t.length)return!1;i=c(t[0])}if(i)return p(e(i),n)}return!1}function h(t,n){return t?"string"==typeof t?(t=e(t,n),t.length?t:!1):t.jquery?t:!1:!1}function f(e){for(var t=e.innerHeight(),n=["paddingTop","paddingBottom"],r=0,i=n.length;i>r;r++){var o=parseInt(e.css(n[r]),10);isNaN(o)&&(o=0),t-=o}return t}if(!e.fn.dotdotdot){e.fn.dotdotdot=function(t){if(0==this.length)return e.fn.dotdotdot.debug('No element found for "'+this.selector+'".'),this;if(this.length>1)return this.each(function(){e(this).dotdotdot(t)});var i=this;i.data("dotdotdot")&&i.trigger("destroy.dot"),i.data("dotdotdot-style",i.attr("style")||""),i.css("word-wrap","break-word"),"nowrap"===i.css("white-space")&&i.css("white-space","normal"),i.bind_events=function(){return i.bind("update.dot",function(t,s){i.removeClass("is-truncated"),t.preventDefault(),t.stopPropagation(),l.maxHeight="number"==typeof l.height?l.height:f(i),l.maxHeight+=l.tolerance,"undefined"!=typeof s&&(("string"==typeof s||"nodeType"in s&&1===s.nodeType)&&(s=e("<div />").append(s).contents()),s instanceof e&&(a=s)),g=i.wrapInner('<div class="dotdotdot" />').children(),g.contents().detach().end().append(a.clone(!0)).find("br").replaceWith(" <br /> ").end().css({height:"auto",width:"auto",border:"none",padding:0,margin:0});var c=!1,p=!1;return u.afterElement&&(c=u.afterElement.clone(!0),c.show(),u.afterElement.detach()),o(g,l)&&(p="children"==l.wrap?n(g,l,c):r(g,i,g,l,c)),g.replaceWith(g.contents()),g=null,e.isFunction(l.callback)&&l.callback.call(i[0],p,a),u.isTruncated=p,p}).bind("isTruncated.dot",function(e,t){return e.preventDefault(),e.stopPropagation(),"function"==typeof t&&t.call(i[0],u.isTruncated),u.isTruncated}).bind("originalContent.dot",function(e,t){return e.preventDefault(),e.stopPropagation(),"function"==typeof t&&t.call(i[0],a),a}).bind("destroy.dot",function(e){e.preventDefault(),e.stopPropagation(),i.unwatch().unbind_events().contents().detach().end().append(a).attr("style",i.data("dotdotdot-style")||"").data("dotdotdot",!1)}),i},i.unbind_events=function(){return i.unbind(".dot"),i},i.watch=function(){if(i.unwatch(),"window"==l.watch){var t=e(window),n=t.width(),r=t.height();t.bind("resize.dot"+u.dotId,function(){n==t.width()&&r==t.height()&&l.windowResizeFix||(n=t.width(),r=t.height(),p&&clearInterval(p),p=setTimeout(function(){i.trigger("update.dot")},100))})}else c=s(i),p=setInterval(function(){if(i.is(":visible")){var e=s(i);c.width==e.width&&c.height==e.height||(i.trigger("update.dot"),c=e)}},500);return i},i.unwatch=function(){return e(window).unbind("resize.dot"+u.dotId),p&&clearInterval(p),i};var a=i.contents(),l=e.extend(!0,{},e.fn.dotdotdot.defaults,t),u={},c={},p=null,g=null;return l.lastCharacter.remove instanceof Array||(l.lastCharacter.remove=e.fn.dotdotdot.defaultArrays.lastCharacter.remove),l.lastCharacter.noEllipsis instanceof Array||(l.lastCharacter.noEllipsis=e.fn.dotdotdot.defaultArrays.lastCharacter.noEllipsis),u.afterElement=h(l.after,i),u.isTruncated=!1,u.dotId=d++,i.data("dotdotdot",!0).bind_events().trigger("update.dot"),l.watch&&i.watch(),i},e.fn.dotdotdot.defaults={ellipsis:"... ",wrap:"word",fallbackToLetter:!0,lastCharacter:{},tolerance:0,callback:null,after:null,height:null,watch:!1,windowResizeFix:!0},e.fn.dotdotdot.defaultArrays={lastCharacter:{remove:[" "," ",",",";",".","!","?"],noEllipsis:[]}},e.fn.dotdotdot.debug=function(e){};var d=1,g=e.fn.html;e.fn.html=function(n){return n!=t&&!e.isFunction(n)&&this.data("dotdotdot")?this.trigger("update",[n]):g.apply(this,arguments)};var m=e.fn.text;e.fn.text=function(n){return n!=t&&!e.isFunction(n)&&this.data("dotdotdot")?(n=e("<div />").text(n).html(),this.trigger("update",[n])):m.apply(this,arguments)}}}(r)}),define("jquery.placeholder",[],function(e,t,n){var r=e("jquery");!function(e){function t(t){var n={},r=/^jQuery\d+$/;return e.each(t.attributes,function(e,t){t.specified&&!r.test(t.name)&&(n[t.name]=t.value)}),n}function n(t,n){var r=this,o=e(this);if(r.value===o.attr(s?"placeholder-x":"placeholder")&&o.hasClass(f.customClass))if(r.value="",o.removeClass(f.customClass),o.data("placeholder-password")){if(o=o.hide().nextAll('input[type="password"]:first').show().attr("id",o.removeAttr("id").data("placeholder-id")),t===!0)return o[0].value=n,n;o.focus()}else r==i()&&r.select()}function r(r){var i,o=this,a=e(this),l=o.id;if(!r||"blur"!==r.type||!a.hasClass(f.customClass))if(""===o.value){if("password"===o.type){if(!a.data("placeholder-textinput")){try{i=a.clone().prop({type:"text"})}catch(u){i=e("<input>").attr(e.extend(t(this),{type:"text"}))}i.removeAttr("name").data({"placeholder-enabled":!0,"placeholder-password":a,"placeholder-id":l}).bind("focus.placeholder",n),a.data({"placeholder-textinput":i,"placeholder-id":l}).before(i)}o.value="",a=a.removeAttr("id").hide().prevAll('input[type="text"]:first').attr("id",a.data("placeholder-id")).show()}else{var c=a.data("placeholder-password");c&&(c[0].value="",a.attr("id",a.data("placeholder-id")).show().nextAll('input[type="password"]:last').hide().removeAttr("id"))}a.addClass(f.customClass),a[0].value=a.attr(s?"placeholder-x":"placeholder")}else a.removeClass(f.customClass)}function i(){try{return document.activeElement}catch(e){}}var o,a,s=!1,l="[object OperaMini]"===Object.prototype.toString.call(window.operamini),u="placeholder"in document.createElement("input")&&!l&&!s,c="placeholder"in document.createElement("textarea")&&!l&&!s,p=e.valHooks,h=e.propHooks,f={};u&&c?(a=e.fn.placeholder=function(){return this},a.input=!0,a.textarea=!0):(a=e.fn.placeholder=function(t){var i={customClass:"placeholder"};return f=e.extend({},i,t),this.filter((u?"textarea":":input")+"["+(s?"placeholder-x":"placeholder")+"]").not("."+f.customClass).not(":radio, :checkbox, :hidden").bind({"focus.placeholder":n,"blur.placeholder":r}).data("placeholder-enabled",!0).trigger("blur.placeholder")},a.input=u,a.textarea=c,o={get:function(t){var n=e(t),r=n.data("placeholder-password");return r?r[0].value:n.data("placeholder-enabled")&&n.hasClass(f.customClass)?"":t.value},set:function(t,o){var a,s,l=e(t);return""!==o&&(a=l.data("placeholder-textinput"),s=l.data("placeholder-password"),a?(n.call(a[0],!0,o)||(t.value=o),a[0].value=o):s&&(n.call(t,!0,o)||(s[0].value=o),t.value=o)),l.data("placeholder-enabled")?(""===o?(t.value=o,t!=i()&&r.call(t)):(l.hasClass(f.customClass)&&n.call(t),t.value=o),l):(t.value=o,l)}},u||(p.input=o,h.value=o),c||(p.textarea=o,h.value=o),e(function(){e(document).delegate("form","submit.placeholder",function(){var t=e("."+f.customClass,this).each(function(){n.call(this,!0,"")});setTimeout(function(){t.each(r)},10)})}),e(window).bind("beforeunload.placeholder",function(){var t=!0;try{"javascript:void(0)"===document.activeElement.toString()&&(t=!1)}catch(n){}t&&e("."+f.customClass).each(function(){this.value=""})}))}(r)}); \ No newline at end of file diff --git a/web-static/dist/yohobuy/4.7.1/index-debug.js b/web-static/dist/yohobuy/4.7.1/index-debug.js new file mode 100644 index 0000000..88df255 --- /dev/null +++ b/web-static/dist/yohobuy/4.7.1/index-debug.js @@ -0,0 +1,17934 @@ +define("index", ["jquery","handlebars","source-map","index","lazyload","jquery-pjax","dot","jquery.placeholder"], function(require, exports, module){ +var webYohobuy; + +//通用 +require("js/common"); + +//头部 +require("js/header"); + +//简化头部 +require("js/simple-header"); + +//商品(列表、搜索、商品详情) +require("js/product/entry"); + +//频道页 +require("js/index/index"); + +//品牌一览 +require("js/brand/index"); + +//登录注册找回密码 +require("js/passport/entry"); + +//购物车 +require("js/cart/cart"); + +//逛 +require("js/guang/entry"); + +//个人中心 +require("js/home/entry"); + +//帮助中心 +require("js/help/entry"); + +//订单确认 +require("js/order/ensure"); + +//商品支付 +require("js/shopping/pay"); + +//微信扫码支付 +require("js/pay/wechatqrcode"); + +//关于我们 +require("js/about/entry"); + +//领券频道 +require("js/coupon/entry"); + +module.exports = webYohobuy; + +}); +define("js/common", ["jquery"], function(require, exports, module){ +/** + * 页面公共逻辑和接口 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/11/23 + */ +var $ = require("jquery"); + + +var $body = $('body'); + +require("js/footer"); + +function cookie(name) { + var re = new RegExp(name + '=([^;$]*)', 'i'), + matchPattern = '$1'; + + return re.test(decodeURIComponent(document.cookie)) ? RegExp[matchPattern] : ''; +} + +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; +} + +//YAS统计代码 +(function(w, d, s, j, f) { + var a = d.createElement(s); + var m = d.getElementsByTagName(s)[0]; + + w.YohoAcquisitionObject = f; + + w[f] = function() { + w[f].p = arguments; + }; + + a.async = 1; + a.src = j; + m.parentNode.insertBefore(a, m); +})(window, document, 'script', ('https:' == document.location.protocol ? 'https' : 'http') + '://' + 'cdn.yoho.cn/yas-jssdk/1.0.17/yas.js', '_yas'); + +(function() { + var uid = getUid(); + + uid = uid === 0 ? '' : uid; + + window._ozuid = uid; //暴露ozuid + + if (window._yas) { + window._yas(1 * new Date(), '1.0.17', 'yohobuy_web', uid, '', ''); + } +}()); + +//window.resize在width<1180时适配成990 +$(window).on('resize', function() { + var w = $(this).width(); + + //return top + if (w < 1360) { + $('.return-top').addClass('min'); + } else { + $('.return-top').removeClass('min'); + } + + //body + if (w < 1180) { + $body.addClass('min-screen'); + } else { + $body.removeClass('min-screen'); + } +}).trigger('resize'); + +function queryString() { + var vars = {}, + hash, + i, + search = window.location.search, + hashes = search ? decodeURIComponent(search).slice(1).split('&') : []; + + for (i = 0; i < hashes.length; i++) { + hash = hashes[i].split('='); + vars[hash[0]] = hash[1]; + } + return vars; +} + +// 给jQuery 扩展 queryString函数 +$.extend({ + queryString: function() { + var vars = [], + hash, + i; + var hashes = window.location.search.slice(1).split('&'); + + for (i = 0; i < hashes.length; i++) { + hash = hashes[i].split('='); + vars.push(hash[0]); + vars[hash[0]] = hash[1]; + } + return vars; + } +}); + +//个人中心左侧栏头像加载失败后,显示默认头像 +(function() { + $(window).load(function() { + var thumb = document.getElementById('user-thumb'); + var img; + + if (!thumb) { + return; + } + + img = new Image(); + + img.src = thumb.src; + + img.onerror = function() { + $(thumb).parent().append('<div class="default-user-thumb"></div>').end().remove(); + }; + }); +}()); + +window.cookie = cookie; + +window.setCookie = setCookie; + +window.getUser = getUser; + +window.getUid = getUid; + +window.getShoppingKey = getShoppingKey; + +window.queryString = queryString; + +}); +define("js/footer", ["jquery"], function(require, exports, module){ +/** + * 尾部 + * @author: wangqing<robin.wang@yoho.cn> + * @date: 2015/12/01 + */ + +var $ = require("jquery"); + +var $returnTop = $('.return-top'); + +/** + * 订阅 + * @return {[type]} [description] + */ +function actionSubscription() { + var $subscriberBox = $('#subscriber-box'), + $subscriberBtn = $('#subscriber-btn'), + emailReg = /^[.\-_a-zA-Z0-9]+@[\-_a-zA-Z0-9]+\.[a-zA-Z0-9]/; + + var iconCode = { + mail: '', + tick: '' + }; + + $subscriberBox.focus(function() { + $(this).val('').css('color', ''); + $subscriberBtn.removeClass('done').html(iconCode.mail); + }); + + $subscriberBtn.click(function() { + var email = $.trim($subscriberBox.val()); + + if (email !== '' && emailReg.test(email)) { + try { + $.ajax({ + url: '//www.yohobuy.com/common/emailSubscriber', + dataType: 'jsonp', + data: { + email: email, + tmp: Math.random(), + uid: window.getUid() + }, + success: function(data) { + if (data.data.result === 1) { + $subscriberBox.val('已订阅到:' + email); + $subscriberBtn.addClass('done').html(iconCode.tick); + } else { + $subscriberBox.css('color', 'red'); + } + } + }); + } catch (e) { + console.log(e.message); + } + } else { + $subscriberBox.css('color', 'red'); + } + }); +} + +function actionhomeFootChange() { + var $vote = $('.vote'), + $feedBackPage = $('#feed-back-page'), + count = $vote.children('li').length; + + //意见反馈 + $feedBackPage.on('click', 'span', function() { + var $this = $(this); + + if ($this.hasClass('cur')) { + return; + } + + $this.siblings('.cur').removeClass('cur'); + $this.addClass('cur'); + + $vote.children().not('.hide').addClass('hide') + .end() + .eq($this.index()).removeClass('hide'); + }); + + $vote.on('click', '.feed-back-btn', function() { + var $this = $(this), + $li = $this.closest('li'), + index = $li.index(), + _solution = []; + + var _answer = $li.find('.feedback-answer').val(), + _feedback = $li.find('.feedback-id').val(), + _question = $li.find('.question-id').val(); + + $li.find(':checked').each(function() { + _solution.push($(this).val()); + }); + + $.ajax({ + url: '//www.yohobuy.com/common/suggestFeedback', + dataType: 'jsonp', + data: { + feedback_id: _feedback || 0, + question_id: _question || 0, + answer: _answer || '', + solution: _solution.join(',') + }, + success: function(data) { + var next = index + 1; + + if (~~data.data.result === 1) { + if (index === count - 1) { + alert('感谢您的参与!'); + return; + } + + $li.addClass('hide'); + + $vote.children(':eq(' + (index + 1) + ')').removeClass('hide'); + $feedBackPage.children('.cur').removeClass('cur'); + $feedBackPage.children(':eq(' + next + ')').addClass('cur'); + } + } + }); + }); +} + +function rePosReturn() { + if ($(window).height() > $(document).height()) { + $returnTop.addClass('hide'); + } + + // 只在窗口高度大于文档高度的时候,隐藏返回顶部 + // else { + // $returnTop.removeClass('hide'); + // } +} + +//返回顶部 +$returnTop.click(function() { + $('html,body').animate({ + scrollTop: 0 + }, 500); +}); + +$(window).scroll(function() { + if ($(window).scrollTop() === 0) { + $returnTop.addClass('hide'); + } else { + $returnTop.removeClass('hide'); + } +}); + +//如果初始是隐藏的,监听图片加载,重新确定return-top的高度 +if ($returnTop.hasClass('hide')) { + $('img').load(rePosReturn); +} + +//初始化 +actionSubscription(); +actionhomeFootChange(); + +//暴露给有可能通AJAX改变内容的页面去用 +window.rePosReturnTop = rePosReturn; + +}); +define("js/header", ["jquery","handlebars","source-map","index"], function(require, exports, module){ +/** + * 头部 + * @author: wangqing<robin.wang@yoho.cn> + * @date: 2015/12/01 + */ +var $ = require("jquery"); +var handlebars = require("handlebars"); +var json2 = require("index"); +var vipInfoCombine = null; //用户信息编译模板 +var loginInfoCombine = null; //登录信息编译模板 +// var apiDomain = $('#api-domain').val(); //获取数据的地址 +var cartTpl = ''; //购物车模板 +/** + * 搜寻的时候过滤非法字符(+-/:等非法字符单独出现) + * @type {RegExp} + */ +var reg = /^[\^\!\+\-\(\)\:\[\]\\\{\}\~\*\?\|\&\;\/]{0,}$/g; +var keyword = ''; +var link = ''; +var dataLayer = []; +var requestFrame = null; +var logoanimationstart = 0; +var $logotrans = $('.icon-logo'); +var isen = true; +var loopdurationtime = 500; +var globaltimeout; +var onetimeoout; +var $loginBox = $('#loginBox'); +/** + * banner和地址的映射 + * @type {Object} + */ +var bannerMap = { + listboys: '4f78b0f418fc42314d8b6e791cfb7fa8', + listgirls: '00c1f025a51b6b597dc37925951ea27d', + listkids: 'b02df11184727701ade1b6de9737d08c', + listlifestyle: 'fd35c52dced0c880976ba858346d1fc5', + searchboys: '9fb8986ea700cc27a8057361c3924394', + searchgirls: 'e3e207a1443ca60c8037fe52a5560c18', + searchkids: '620fc77f479da8feaeb06f2324e5d0bb', + searchlifestyle: 'a3c93301c6ffaf3ed0f36a4a451be36d', + uniquebrandboys: '2ebb0810c0d1a67e5229149c9c3aba7d', + uniquebrandgirls: '99e23385f4ba4b65f406b7e2968ac821', + uniquebrandkids: 'a74ebc9b17840c91b9ea46568111fe6b', + uniquebrandlifestyle: '0e8c81ead53f56302baa4d0ad967f527', + brandsboys: '77b352db07129c76a9d532acad149f9f', + brandsgirls: 'bf047f16e52ebc38be5ce9c7623831e6', + brandskids: 'e3ae1ce9b5e13c6d271ef3eccb831652', + brandslifestyle: 'e4ac8029c30f65d7f1af030980d140fe', + newboys: '869d3c5f3b450fb52101d00a61ce87cb', + newgirls: 'd953b6dfdac02483d1dcce8d96055954', + newkids: '0874cb6d75df8e0e78f2d475e53ecc08', + newlifestyle: '43e8fc8e178115c262bbce2bd0012db7', + saleboys: 'c846e3165c994769b4201d8c32f3ae9b', + salegirls: '52b1d389edcbc62d65de71b80c4d6ad0', + salekids: 'ad8b1703c761ba00973868ab5199cc27', + salelifestyle: '7acc64905c70ac91846f43fb2cec4bbd', + homeboys: 'b0856a771ef1b59ab1234c74688fa42d', + homegirls: '2bd61fa12e4933211518f70fe5ce3c48', + homekids: '895c59e8c64b40399c9533509507320c', + homelifestyle: '2e037d4e25d2767352ca3e0a4627f7bd', + indexboys: '0c911d3000f52e8ca7cffb74f5864c29', + indexgirls: 'b645b8980c423ab30485e0a9d08c2ef7', + indexkids: '17f6d5d5d454d2c507bc5fcbc90f7756', + indexlifestyle: '735cd393e841762af8793c346abbbc36' +}; +var cookieMap = {}; + +var bannerApi = '//new.yohobuy.com/common/getbanner?content_code='; + +$('#api-domain').remove(); //删除信息表单 + +function getSource(column, postition, event) { + try { + dataLayer.push({ + louceng: column, + weizhi: postition, + event: event + }); + } catch (e) {} +} + + +window.submitSearch = function() { + var $keywordinput = $('#query_key').val(); + var $defaultsearch = $('#defaultsearch').val(); + var column = 'Search'; + var postition = 'Head Search'; + var event = 'Search'; + var $formatkeyword, + $formatkeywordinput; + + $formatkeyword = $.trim(keyword.toLowerCase()); + $formatkeywordinput = $.trim($keywordinput.toLowerCase()); + getSource(column, postition, event); + if (link !== '' && keyword !== '' && $formatkeyword === $formatkeywordinput) { + location.href = link.replace('\'', ''); + } else { + if (reg.test($keywordinput) && $keywordinput !== '') { + location.href = '//search.yohobuy.com/error?query=' + $keywordinput + '&result=error'; + } else { + if ($keywordinput === '') { + $('#query_key').val($defaultsearch); + } + $('#searchForm').submit(); + return false; + } + } +}; +/** + * 增加关键字 + * @return {[type]} [description] + */ +function actionAddKeyWords() { + var $keywords = $('#nav_keyword').text(); + var defaultsearch = 'vans'; + var $querykey = $('#query_key'); + + if ($keywords !== '') { + $querykey.css({ + color: '#000' + }); + $querykey.val($keywords); + } else { + $querykey.css({ + color: '#e0e0e0' + }); + $querykey.val(defaultsearch); + $querykey.on('focus', function(e) { + $querykey.css({ + color: '#000' + }); + $querykey.val(''); + }); + } +} +/** + * 定义购物车扩展 + */ + +function actionGoodsCart() { + var defaults = { + cookie: '_g', + cartNum: '' + }; + var params = ''; + var cartInfo = ''; + var queryNum = 0; + var listIndex = 0; + var tmpList = 0; + var totalNum = 0; + var text = ''; + + $.fn.miniCart = function(options) { + params = $.extend(defaults, options); + if (typeof window.cookie(params.cookie) === 'undefined') { + cartInfo = null; + } else { + if (params.cookie) { + try { + cartInfo = json2.parse(window.cookie(params.cookie)); + } catch (e) { + + } + + } + + } + if (cartInfo !== null && cartInfo !== '') { + totalNum = parseInt(cartInfo._nac) + parseInt(cartInfo._ac); + if (totalNum === 0) { + $('#icart-num').attr('class', 'icart-num icart-none'); + } else { + $('#icart-num').attr('class', 'icart-num'); + } + $(params.cartNum).html(totalNum); + } + }; + $.fn.search = function(searchDomain) { + + function getKeywords(obj) { + var key = $.trim($(obj).val()); + + key = key.replace(new RegExp('\'', 'gm'), ''); //去掉特殊字符 + if (key === '') { + $('.search-list').hide(); + return false; + } + key = encodeURI(key); + $.get(searchDomain + '?query=' + key, function(htmlData) { + $('.search-list').html(htmlData.data); + queryNum = $('.search-list').children('li').length; + listIndex = -1; + if (queryNum > 0) { + $('.search-list').show(); + } else { + $('.search-list').hide(); + } + $('.search-list').find('a').hover(function() { + $(this).css('background-color', '#eee'); + }, function() { + $(this).css('background-color', '#fff'); + }); + }, 'jsonp'); + } + + function getText(obj) { + $('.search-list li:eq(' + tmpList + ')').children('a').css('background-color', '#fff'); + $('.search-list li:eq(' + listIndex + ')').children('a').css('background-color', '#eee'); + text = $('.search-list li:eq(' + listIndex + ')').children('a').attr('title'); + $('#query_key').val(text); + } + return this.each(function() { + $(this).keyup(function(event) { + if (event.which === 38) { + if (queryNum === 0) { + return false; + } + if (listIndex === -1) { + listIndex = 0; + } + tmpList = listIndex; + listIndex = (listIndex - 1 + queryNum) % queryNum; + getText(this); + } else if (event.which === 40) { + if (queryNum === 0) { + return false; + } + tmpList = listIndex; + listIndex = (listIndex + 1) % queryNum; + getText(this); + } else if (event.which === 13) { + window.submitSearch(); + } else { + getKeywords(this); + } + }); + }); + }; + $.extend({ + getData: function(domain, options, onSuccess) { + var defaults = { + page: 1, + method: '', + v: 1, + return_type: 'jsonp', + open_key: '12345', + tmp: Math.random() + }; + var params = ''; + + if (typeof (domain) === undefined || domain === '') { + return false; + } + params = $.extend(defaults, options); + params.page = params.page || 1; + + // if (params.method === '') { + // return false; + // } + + try { + $.getJSON(domain + '/?callback=?', params, function(_data) { + if (onSuccess !== '') { + if (typeof onSuccess(_data.data) !== 'undefined') { + json2.parse(onSuccess(_data.data)); + } + return false; + } + }); + } catch (e) { + console.log(e.message); + } + }, + getShoppingKey: function() { + var shoppingInfo = window.cookie('_g'); + var shoppingData = json2.parse(shoppingInfo); + var spk; + + if (typeof shoppingInfo === 'undefined' || shoppingInfo === null) { + spk = window.cookie('_SPK'); + return spk ? spk : ''; + } + return shoppingData._k; + } + }); +} + +/** + * 时间戳 + * @param {[type]} v1 [description] + * @param {[type]} options) { if (v1 [description] + * @return {[type]} [description] + */ +handlebars.registerHelper('timestamp', function() { + return new Date().getTime(); +}); +/** + * 头像 + * @param {[type]} v1 [description] + * @param {[type]} options) { if (v1 [description] + * @return {[type]} [description] + */ +handlebars.registerHelper('headerimg', function(headerimg) { + + if (headerimg === '') { + return '//img10.static.yhbimg.com/headimg/2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif' + + '?imageView/2/w/100/h/100'; + } else { + return headerimg; + } + +}); +/** + * 判断等级为3的helper + * @param {[type]} v1 [description] + * @param {[type]} options) { if (v1 [description] + * @return {[type]} [description] + */ + +handlebars.registerHelper('equallevelthree', function(v1, options) { + + if (v1 === '3') { + return options.fn(this); + } else { + return options.inverse(this); + } +}); + +/** + * 判断不为'0'的helper + * @param {[type]} v1 [description] + * @param {[type]} options) { if (v1 [description] + * @return {[type]} [description] + */ + +handlebars.registerHelper('notzero', function(v1, options) { + if (v1 !== '0') { + return options.fn(this); + } else { + return options.inverse(this); + } +}); + +/** + * 获取头部banner的回调函数 + * @param {[type]} data [description] + */ +function JsonPCallBack(data) { + var topbanner; + + if (+data.code === 200) { + if (typeof data.data === 'object') { + if (data.data.url !== '') { + topbanner = '<a target="_blank" href="' + data.data.url + '" class="page-top-banner"' + + 'style="height:36px;border:none;background-image:url(' + window.unescape(data.data.src) + ');' + + 'background-position: center;display:block;"> </a>'; + } else { + topbanner = '<div class="yoho-notice">' + + '<div class="notice-container center-content">' + + '<h1 class="notice-title">关于系统升级的公告</h1>' + + '<div class="notice-content">' + + '<p class="tips">尊敬的顾客:</p>' + + '<p class="detail">您好!为了向您提供更优质的服务,目前系统正在升级,请耐心等待。</p>' + + '<p class="detail">系统升级期间,部分地区用户体验会有暂时中断,如遇紧急事宜,欢迎垂询客服热线:' + + '400-889-9646 09:00-22:30(周一至周日)。稍后系统将恢复正常' + + '使用,欢迎您继续光顾YOHO!BUY有货!带来不便之处深表歉意,请您谅解!</p>' + + '</div>' + + '</div>' + + '</div>'; + } + $('body').prepend(topbanner); + } + } +} + +window.JsonPCallBack = JsonPCallBack; + + +/** + * 获得banner数据 + * @param {[string]} code [banner对应的编码] + * @return {[type]} [description] + */ +function getBannerData(code) { + var script = document.createElement('script'); + + script.src = bannerApi + code + '&client_type=web&callback=JsonPCallBack'; + document.getElementsByTagName('head')[0].appendChild(script); +} + +/** + * 显示和隐藏 + * @param {[type]} sourceClass [description] + * @param {[type]} targetClass [description] + * @return {[type]} [description] + */ +function toggleDisplay(sourceClass, targetClass) { + var $that, + targetobj; + + $(sourceClass).hover(function(e) { + e.preventDefault(); + $that = $(this); + targetobj = $(targetClass)[0]; + if (targetobj.style.display === '') { + $that.addClass('acttags'); + targetobj.style.display = 'block'; + } else { + $that.removeClass('acttags'); + targetobj.style.display = ''; + } + }); +} + +/** + * 执行顶部显示和隐藏 + * @return {[type]} [description] + */ +function actionTopTagToggle() { + var tags = [{ + sourceClass: '.myyoho', + targetClass: '.myyoho-info' + }, { + sourceClass: '.phone', + targetClass: '.qr' + }], + obj, + i; + + for (i = 0; i < tags.length; i++) { + obj = tags[i]; + toggleDisplay(obj.sourceClass, obj.targetClass); + } +} +/** + * 执行顶部群组鼠标交互 + * @return {[type]} [description] + */ +function actionYoHoGroup() { + var $this; + + $('.yohogroup').mouseenter(function() { + $this = $(this); + $this.text($this.attr('cn')); + }); + $('.yohogroup').mouseleave(function() { + $this = $(this); + $this.text($this.attr('en')); + }); +} + +/** + * 检测是否支持css3的动画 + * @return {Boolean} [description] + */ +function isSupportCss3Animation() { + var thisFunc, + prefixList = ['webkit', 'moz', 'ms'], + i; + + for (i = 0; i < prefixList.length; i++) { + thisFunc = prefixList[i] + 'RequestAnimationFrame'; + if (window[thisFunc]) { + return true; + } else { + return false; + } + } + +} +/** + * css3动画 + * @param {Array} ) { var thisFunc, prefixList [description] + * @return {[type]} [description] + */ +function requestFrameAct() { + var prefixList = ['webkit', 'moz', 'ms']; + var func1 = prefixList[0] + 'RequestAnimationFrame'; + var func2 = prefixList[1] + 'RequestAnimationFrame'; + var func3 = prefixList[2] + 'RequestAnimationFrame'; + + if (window[func1]) { + return function(callback) { + requestAnimationFrame(callback); + }; + } + if (window[func2]) { + return function(callback) { + window[func2](callback); + }; + } + if (window[func3]) { + return function(callback) { + window[func3](callback); + }; + } + return function(callback) { + window.setTimeout(callback, 67); + }; +} + + +/** + * css3动画 + * @return {[type]} [description] + */ + +function tsAnimate() { + logoanimationstart += 10; + $logotrans.css({ + transform: 'rotateX(' + logoanimationstart + 'deg)', + '-webkit-transform': 'rotateX(' + logoanimationstart + 'deg)', + '-moz-transform': 'rotateX(' + logoanimationstart + 'deg)' + }); + if (logoanimationstart / 90 % 2 === 1) { + if (isen) { + $logotrans.css('background-image', 'url(//static.yohobuy.com/newheader/img/logo1.png)'); + isen = false; + } else { + $logotrans.css('background-image', 'url(//static.yohobuy.com/newheader/img/logo_e.png)'); + isen = true; + } + } + if (logoanimationstart / 90 % 2 === 0 && logoanimationstart % 360 !== 0) { + window.setTimeout(tsAnimate, 3000); + } else { + if (logoanimationstart % 360 === 0) { + window.setTimeout(tsAnimate, 1 * 60 * 1000); + } else { + requestFrame(function() { + tsAnimate(); + }); + } + } +} + +/** + * 淡出 + * @return {[type]} [description] + */ +function fadeAnimate() { + if (globaltimeout) { + window.clearTimeout(globaltimeout); + } + $logotrans.fadeOut(loopdurationtime, function() { + isen = false; + + $logotrans.css('background-image', 'url(//static.yohobuy.com/newheader/img/logo.png)'); + $logotrans.fadeIn(loopdurationtime, function() { + onetimeoout = window.setTimeout(function() { + $logotrans.fadeOut(loopdurationtime, function() { + window.clearTimeout(onetimeoout); + isen = true; + $logotrans.css('background-image', + 'url(//static.yohobuy.com/newheader/img/logo_e.png)'); + $logotrans.fadeIn(loopdurationtime, function() { + globaltimeout = window.setTimeout(fadeAnimate, 1 * 60 * 1000); + }); + }); + }, 3000); + }); + }); +} +/** + * 执行头部logo动画 + * @return {[type]} [description] + */ +function actionTopLogoAnimate() { + if (isSupportCss3Animation()) { + requestFrame = requestFrameAct(); + window.setTimeout(tsAnimate, 3000); + } else { + window.setTimeout(fadeAnimate, 3000); + } +} +window.newArr = []; +window.wrapperindex = 0; +window.gindex = 0; +window.targetArr1 = []; +window.targetArr2 = []; +window.targetArr3 = []; +window.oh1 = 0; +window.oh2 = 0; +window.oh3 = 0; +window.valueIndex = 0; +window.nowIndex = 0; +window.inner1 = ''; +window.inner2 = ''; +window.inner3 = ''; +window.finalresult = ''; + +function createNewArray(obj) { + var $thirdnavpanel = $(obj); + + $thirdnavpanel.find('.thirdnavbar').each(function() { + var $that = $(this); + var $alink = $that.find('a'); + var _href = $alink.attr('href'); + var hottag = $alink.attr('hot') === 'hot' ? true : false; + var objt = {}; + + if ($that.hasClass('category-title')) { + objt = { + type: 'title', + height: 49, + content: $that.text(), + index: window.valueIndex, + href: _href, + hot: false + }; + } else { + objt = { + type: 'catlist', + height: 36, + content: $alink.text(), + index: window.valueIndex, + href: _href, + hot: hottag + }; + } + window.valueIndex++; + window.newArr.push(objt); + }); +} + +function createWrapper() { + var arrlength = window.newArr.length; + var i = 0; + var objnew = []; + var aobj = []; + var bobj = []; + var cobj = []; + var final1 = '', + final2 = '', + final3 = ''; + var a = 0; + var b = 0; + var c = 0; + + for (i; i < arrlength; i++) { + objnew = window.newArr[i]; + if (window.gindex === 0) { + window.oh1 = (window.oh1 + objnew.height); + if (window.oh1 >= 340 && i !== (arrlength - 1)) { + window.targetArr1 = window.newArr.slice(0, objnew.index + 1); + window.nowIndex = objnew.index + 1; + window.gindex++; + } + if (i === (arrlength - 1)) { + window.targetArr1 = window.newArr.slice(0, arrlength + 1); + break; + } + } + if (window.gindex === 1) { + window.oh2 = (window.oh2 + objnew.height); + if (window.oh2 >= 340 && i !== (arrlength - 1)) { + window.targetArr2 = window.newArr.slice(window.nowIndex, objnew.index + 1); + window.nowIndex = objnew.index + 1; + window.gindex++; + } + if (i === (arrlength - 1)) { + window.targetArr2 = window.newArr.slice(window.nowIndex, arrlength + 1); + break; + } + } + if (window.gindex === 2) { + window.oh3 = (window.oh3 + objnew.height); + if (window.oh3 >= 340 && i !== (arrlength - 1)) { + window.targetArr3 = window.newArr.slice(window.nowIndex, objnew.index + 1); + window.nowIndex = objnew.index + 1; + window.gindex++; + break; + } + if (i === (arrlength - 1)) { + window.targetArr3 = window.newArr.slice(window.nowIndex, arrlength + 1); + break; + } + } + } + for (a; a < window.targetArr1.length; a++) { + aobj = window.targetArr1[a] || {}; + if (aobj.type === 'title') { + window.inner1 = window.inner1 + + '<li class="cattitle"><h3><a href="' + + aobj.href + + '">' + + aobj.content + + '</a></h3></li>'; + } else { + if (aobj.hot === true) { + window.inner1 = window.inner1 + + '<li class="catdetail"><a class="thirdcatelink hot" href="' + + aobj.href + + '">' + + aobj.content + + '</a></li>'; + } else { + window.inner1 = window.inner1 + + '<li class="catdetail"><a class="thirdcatelink" href="' + + aobj.href + '">' + + aobj.content + + '</a></li>'; + } + + } + } + for (b; b < window.targetArr2.length; b++) { + bobj = window.targetArr2[b] || {}; + if (bobj.type === 'title') { + window.inner2 = (window.inner2 + + '<li class="cattitle"><h3><a href="' + + bobj.href + '">' + + bobj.content + + '</a></h3></li>'); + } else { + if (bobj.hot === true) { + window.inner2 = (window.inner2 + + '<li class="catdetail"><a class="thirdcatelink hot" href="' + + bobj.href + '">' + bobj.content + '</a></li>'); + } else { + window.inner2 = (window.inner2 + + '<li class="catdetail"><a class="thirdcatelink" href="' + + bobj.href + '">' + bobj.content + '</a></li>'); + } + + } + } + for (c; c < window.targetArr3.length; c++) { + cobj = window.targetArr3[c] || {}; + if (cobj.type === 'title') { + window.inner3 = (window.inner3 + + '<li class="cattitle"><h3><a href="' + + cobj.href + + '">' + + cobj.content + + '</a></h3></li>'); + } else { + if (cobj.hot === true) { + window.inner3 = (window.inner3 + + '<li class="catdetail"><a class="thirdcatelink hot" href="' + + cobj.href + '">' + + cobj.content + + '</a></li>'); + } else { + window.inner3 = (window.inner3 + + '<li class="catdetail"><a class="thirdcatelink" href="' + + cobj.href + '">' + + cobj.content + + '</a></li>'); + } + + } + } + if (window.inner1 !== '') { + final1 = '<ul class="cate_row1 cate_row">' + + window.inner1 + + '</ul>'; + } + if (window.inner2 !== '') { + final2 = '<ul class="cate_row2 cate_row">' + + window.inner2 + + '</ul>'; + } + if (window.inner3 !== '') { + final3 = '<ul class="cate_row3 cate_row">' + + window.inner3 + + '</ul>'; + } + window.finalresult = final1 + final2 + final3; + $('#' + window.wrapperindex).empty().append(window.finalresult); +} + +function actionNav() { + $('.categorywrapper').each(function(index) { + window.wrapperindex = $(this).attr('id'); + window.newArr = []; + window.gindex = 0; + window.targetArr1 = []; + window.targetArr2 = []; + window.targetArr3 = []; + window.oh1 = 0; + window.oh2 = 0; + window.oh3 = 0; + window.valueIndex = 0; + window.nowIndex = 0; + window.inner1 = ''; + window.inner2 = ''; + window.inner3 = ''; + createNewArray($(this).find('.category')); + createWrapper(); + }); +} + +/** + * 获取三级导航的tip图标 + * @return {[type]} [description] + */ +function actionTipPic() { + var tipscode = {}; + var $contentcode = ''; + var $img = ''; + var $title = ''; + var $link = ''; + var logolink = ''; + + $(document).on('mouseenter', '.sub-nav-item', function() { + $contentcode = $(this).find('.showdetail').attr('data-code'); + if ($contentcode) { + if (!tipscode[$contentcode]) { + tipscode[$contentcode] = $contentcode; + $img = $(this).find('.showdetail').find('img'); + $title = $(this).find('.showdetail').find('.title'); + $link = $(this).find('.showdetail').find('a'); + $.get(bannerApi + $contentcode + '&width=337&height=250&client_type=web', function(rsdata) { + $img.attr('src', rsdata.data.src); + $link.attr('href', rsdata.data.url); + $title.text(rsdata.data.title); + }, 'jsonp'); + } + } + }); + logolink = $('.cure').find('.name-cn').find('a').attr('href'); + $('.main-link').attr('href', logolink); +} + + + +function closeCover() { + var $cover = $('#cover'); + + $cover.remove(); +} +/** + * 首次进入有弹窗 + * @return {[type]} [description] + */ +function actionCover() { + var gender = window.cookie('_Gender'); + var newMask = ''; + var windowheight = ''; + var selfheight = ''; + var containertop; + var length = ''; + + if (window.location.host === 'www.yohobuy.com' && + (typeof gender === 'undefined' || gender === '' || gender === null)) { + $.get('//www.yohobuy.com/index/guide', function(data) { + newMask = document.createElement('div'); + newMask.id = 'cover'; + newMask.innerHTML = data; + document.body.appendChild(newMask); + windowheight = $(window).height(); + selfheight = $('.guide-box').height(); + containertop = windowheight / 2 - selfheight / 2; + length = $('.guide-box .clear').find('li').length; + $('.guide-box').css({ + width: (200 * length) + 'px', + top: containertop + 'px' + }); + $('#cover').bind('click', function(event) { + window.setCookie('_Gender', '1,3', { + path: '/', + domain: '.yohobuy.com', + expires: 90 + }); + window.setCookie('_Channel', 'boys', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + closeCover(); + }); + $('#cover .guide-box .close').bind('click', function(event) { + getSource('弹窗', 'CLOSE', 'homepage_man'); + window.setCookie('_Gender', '1,3', { + path: '/', + domain: '.yohobuy.com', + expires: 90 + }); + window.setCookie('_Channel', 'boys', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + closeCover(); + }); + $('.boys img , .boys .go').bind('click', function(event) { + getSource('弹窗', 'BOYS', 'homepage_man'); + window.setCookie('_Gender', '1,3', { + path: '/', + domain: '.yohobuy.com', + expires: 90 + }); + window.setCookie('_Channel', 'boys', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + closeCover(); + }); + $('.girls img, .girls .go').bind('click', function(event) { + getSource('弹窗', 'GIRLS', 'homepage_woman'); + window.setCookie('_Gender', '2,3', { + path: '/', + domain: '.yohobuy.com', + expires: 90 + }); + window.setCookie('_Channel', 'girls', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + }); + $('.lifestyle img, .lifestyle .go').bind('click', function(event) { + window.setCookie('_Channel', 'lifestyle', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + getSource('弹窗', 'LIEFSTYLE', 'homepage_lifestyle'); + }); + $('#cover .guide-box').bind('click', function(event) { + event.stopPropagation(); + }); + }); + } +} +/** + * 查询跳转后保留关键字 + * @return {[type]} [description] + */ +function actionAddKeyWords() { + var $keywords = $('#nav_keyword').text(); + var defaultsearch = $('#defaultsearch').val(); + var $querykey = $('#query_key'); + + if ($keywords !== '') { + $querykey.css({ + color: '#000' + }); + $querykey.val($keywords); + } else { + $querykey.css({ + color: '#e0e0e0' + }); + $querykey.val(defaultsearch); + $querykey.on('focus', function(e) { + $querykey.css({ + color: '#000' + }); + $querykey.val(''); + }); + } + $(document).click(function(e) { + if (!$(e.target).closest('.searchspan, .search-list').length) { + $('.search-list').hide(); + } + }); +} + + +/** + * cookie 初始化 + * @return {[type]} [description] + */ +function actionInitCookie() { + var $cookieGender = window.cookie('_Gender'); + var $target = $('.cure'); + + if (typeof $cookieGender !== 'undefined' && $cookieGender !== '') { + window.setCookie('_Gender', 1, { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + } + if ($target.find('.name-cn a').text() === '男生') { + window.setCookie('_Gender', '1,3', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + window.setCookie('_Channel', 'boys', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + } + if ($target.find('.name-cn a').text() === '女生') { + window.setCookie('_Gender', '2,3', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + + // window.setCookie('_Channel', 'girls', { + // path: '/', + // domain: '.yohobuy.com', + // expires: 7 + // }); + } + if ($target.find('.name-cn a').text() === '创意生活') { + window.setCookie('_Channel', 'lifestyle', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + } + if ($target.find('.name-cn a').text() === '潮童') { + window.setCookie('_Channel', 'kids', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + } +} +/** + * 提前设置好频道的cookie + */ +function setChannelCookie() { + $('.first-nav-item').click(function() { + var _cookieGender = window.cookie('_Gender'); + + if (typeof _cookieGender !== 'undefined' && _cookieGender !== '') { + window.setCookie('_Gender', 1, { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + } + if ($(this).find('.name-cn a').text() === '男生') { + window.setCookie('_Gender', '1,3', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + window.setCookie('_Channel', 'boys', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + } + if ($(this).find('.name-cn a').text() === '女生') { + window.setCookie('_Gender', '2,3', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + window.setCookie('_Channel', 'girls', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + } + if ($(this).find('.name-cn a').text() === '创意生活') { + window.setCookie('_Channel', 'lifestyle', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + } + if ($(this).find('.name-cn a').text() === '潮童') { + window.setCookie('_Channel', 'kids', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + } + }); + +} +/** + * cookie集合 + * @type {Object} + */ +function actionExeCookieMap() { + var cookies = document.cookie; + var cookiearr = cookies.split(';'); + var i; + var temparr; + var key; + + for (i = 0; i < cookiearr.length; i++) { + temparr = cookiearr[i].split('='); + if (typeof temparr[0] !== 'undefined') { + key = temparr[0].replace(/\s/g, ''); + cookieMap[key] = temparr[1]; + } + } +} + + +/** + * 购物车商品数量 + * @return {[type]} [description] + */ +function actionUpdateCartNum() { + $('#miniCartBox').miniCart({ + cartNum: '.ic-infomation' + }); +} +/** + * 加载购物车数据 + * @return {[type]} [description] + */ +function loadCartData() { + var shoppingInfo, + shoppingData, + strK; + + $.getData('//www.yohobuy.com/common/shoppingCart', '', function(jsonData) { + if (cartTpl === '') { + cartTpl = handlebars.compile($('#mini-cart-tpl').html()); + } + $('#miniCartBox').children('.gobuy-wrapper').html(cartTpl({ + carData: jsonData + })); + if (parseInt($('.ic-infomation').html()) === 0) { + $('#miniCartBox .gobuy-wrapper').html('<div class="gobuy-empty">' + + '<h3 class="information">您的购物车暂无商品</h3></div>'); + } + if ($('#miniCartBox .goods-list li').length < 1) { + shoppingInfo = window.cookie('_g'); + shoppingData = json2.parse(shoppingInfo); + if (shoppingData !== null) { + strK = '{"_k":"' + shoppingData._k + '","_nac":0' + ',"_ac":0,"_r":0}'; + window.setCookie('_g', strK, { + path: '/', + domain: '.yohobuy.com' + }); + } + $('.ic-infomation').html(0); + $('#miniCartBox .gobuy-wrapper').html('<div class="gobuy-empty">' + + '<h3 class="information">您的购物车暂无商品</h3></div>'); + } + }); +} +/** + * 删除购物车数据 + * @param {[type]} id [description] + * @param {Boolean} isreduce [description] + * @return {[type]} [description] + */ +function delCartGoods(productSku, promotionId, productNum) { + + $.getData('//www.yohobuy.com/common/delCartGoods', { + + // shopping_key: $.getShoppingKey(), + product_sku: productSku, + promotion_id: promotionId, + product_num: productNum + }, function(jsonData) { + var shoppingInfo = window.cookie('_g'); + var shoppingData = json2.parse(shoppingInfo); + var strK = '{"_k":"' + shoppingData._k + '","_nac":' + jsonData.total_goods_num + ',"_ac":0,"_r":0}'; + + window.setCookie('_g', strK, { + path: '/', + domain: '.yohobuy.com' + }); + loadCartData(); + actionUpdateCartNum(); + }); +} + + +/** + * 监听购物车删除 + * @return {[type]} [description] + */ +function actionListenDelCarGoods() { + var $delcargoods, productSku, promotionId, productNum; + + $(document).on('click', '.goodscardelete', function(e) { + $delcargoods = $(this); + productSku = $delcargoods.attr('product_sku'); + promotionId = $delcargoods.attr('promotion_id'); + productNum = $delcargoods.prev('h3').find('.num').html(); + delCartGoods(productSku, promotionId, productNum); + }); +} +/** + * 监听点击更多打折商品 + * @return {[type]} [description] + */ +function actionListenCartMore() { + var $morecart; + + $(document).on('click', '.mycart_i_down', function(e) { + $morecart = $(this); + $morecart.toggleClass('mycart_i_up'); + $('#mycartmore').slideToggle(300); + }); +} +/** + * 点击购物车 + * @return {[type]} [description] + */ +function actionClickMiniCartBox() { + var $target; + var shopcarurl = '//www.yohobuy.com/shopping/cart'; + + $('#miniCartBox').on('click', function(e) { + $target = $(e.target); + if ($target.hasClass('gobuy')) { + window.location.href = shopcarurl; + } + }); +} + +/** + * 显示购物车效果 + * @param {Boolean} isShow [description] + * @return {[type]} [description] + */ +function showMiniCart(isShow) { + if (isShow === 1) { + $('#miniCartBox').addClass('list-cur'); + $('.gobuy-wrapper').show(); + if (parseInt($('.ic-infomation').html()) !== 0) { + $('#miniCartBox .gobuy-wrapper').html('<div class="gobuy-loading">' + + '<h3 class="information">加载中,请稍后</h3></div>'); + loadCartData(); + } else { + $('#miniCartBox .gobuy-wrapper').html('<div class="gobuy-empty">' + + '<h3 class="information">您的购物车暂无商品</h3></div>'); + } + } else { + $('#miniCartBox').removeClass('list-cur'); + $('.gobuy-wrapper').hide(); + } +} + + +/** + * 鼠标购物车的滑入滑出效果 + * @return {[type]} [description] + */ +function actionGoodsCarMouseEffect() { + var $target; + + $('#miniCartBox').mouseenter(function(e) { + $target = $(e.target); + if ($target.attr('id') === 'miniCartBox' || $target.attr('class') === 'ic-infomation') { + showMiniCart(1); + } + }); + $('#miniCartBox').mouseleave(function(e) { + showMiniCart(0); + }); +} +/** + * 获得banner & 异常通知 + * @return {[type]} [description] + */ +function actionGetBannerAndNotice() { + var INDEXKIDS = 'indexkids', + INDEXLIFESTYLE = 'indexlifestyle', + INDEXBOYS = 'indexboys', + INDEXWOMAN = 'indexgirls', + UNIQUEBRAND = 'uniquebrand'; + var url = window.location.href; + var host = window.location.host; + var code = ''; + var firstarea; + + if (url.indexOf('search') !== -1) { + code = bannerMap['search' + cookieMap._Channel]; + } + if (url.indexOf('list') !== -1) { + code = bannerMap['list' + cookieMap._Channel]; + } + if (url.indexOf('brands') !== -1) { + code = bannerMap['brands' + cookieMap._Channel]; + } + if (url.indexOf('new') !== -1) { + code = bannerMap['new' + cookieMap._Channel]; + } + if (url.indexOf('sale') !== -1) { + code = bannerMap['sale' + cookieMap._Channel]; + } + if (url.indexOf('home') !== -1) { + code = bannerMap['home' + cookieMap._Channel]; + } + if (url.indexOf('kids') !== -1) { + code = bannerMap[INDEXKIDS]; + } + if (url.indexOf('woman') !== -1 || url.indexOf('girls') !== -1) { + code = bannerMap[INDEXWOMAN]; + } + if (url.indexOf('lifestyle') !== -1) { + code = bannerMap[INDEXLIFESTYLE]; + } + if (url.indexOf('www.yohobuy.com') !== -1 && window.location.pathname === '/') { + code = bannerMap[INDEXBOYS]; + } + firstarea = host.split('.')[0]; + if (firstarea !== 'list' && firstarea !== 'search' && firstarea !== 'www' && + firstarea !== 'new' && firstarea !== 'item' && firstarea !== 'guang') { + code = bannerMap[UNIQUEBRAND + cookieMap._Channel]; + } + + getBannerData(code); //获得banner信息 + +} + +function brandSwitch(index) { + $('.hot-brands').find('ul').stop().animate({ + opacity: 0, + 'z-index': 1 + }, 200).eq(index).animate({ + opacity: 1, + 'z-index': 2 + }, 200); +} +/** + * 品牌左右切换 + * @return {[type]} [description] + */ +function actionBrandChange() { + var activeIndex = 0, + swiperLen; + + if ($('.hot-brands').size() > 0) { + swiperLen = $('.hot-brands').find('ul').size(); + $('.hot-brands').find('ul').eq(0).css({ + opacity: 1, + 'z-index': 2 + }); + $('.brands-control').on('click', '.next', function() { + if (activeIndex === swiperLen - 1) { + activeIndex = 0; + } else { + activeIndex++; + } + brandSwitch(activeIndex); + }); + $('.brands-control').on('click', '.prev', function() { + if (activeIndex === 0) { + activeIndex = swiperLen - 1; + } else { + activeIndex--; + } + brandSwitch(activeIndex); + }); + + + } +} +/** + * 循环检测购物车数量 + * @return {[type]} [description] + */ +function actionLoopUpdCartNum() { + setInterval(actionUpdateCartNum, 2000); +} +/** + * 处理模板 + * @return {[type]} [description] + */ +function actionExeTemplate() { + var $goodcartempwarpper = $('#goodcartempwarpper'); + var resulthtml = ''; + + if ($goodcartempwarpper) { + if ($goodcartempwarpper.html()) { + resulthtml = $('#goodcartempwarpper').html().replace(/\\/g, ''); + $('#goodcartempwarpper').html(resulthtml); + vipInfoCombine = handlebars.compile($('#tmpl-my-login-new').html()); + } + } +} +/** + * 执行搜索 + * @return {[type]} [description] + */ +function actionSearch() { + var searchDomain = '//search.yohobuy.com/api/suggest'; + + $('#query_key').search(searchDomain); +} +/** + * 获取登录状态 + * @return {[type]} [description] + */ +function actionLoginState(_data) { + var timestamp = new Date().getTime(); + var noLoginHtml = '<span>Hi~</span>[<a href="//www.yohobuy.com/signin.html" class="list-a login-out ">' + + '请登录</a>] ' + + '[<a href="//www.yohobuy.com/reg.html" class="list-a login-out" onclick="">免费注册</a>]'; + var loginHtml = '<span>Hi~<a href="//www.yohobuy.com/home?t=' + timestamp + + '">{{user_name}}</a></span> ' + + '{{#if islogin}}' + + '[<a href="{{logout}}" class="list-a login-out">退出</a>]' + + '{{/if}}{{#unless islogin}}' + + '[<a href="//www.yohobuy.com/signin.html" class="list-a login-out">请登录</a>] ' + + '[<a href="//www.yohobuy.com/reg.html" onclick="" class="list-a login-out">免费注册</a>]' + + '{{/unless}}'; + var $boxObj = $('#loginBox'); + var info = window.cookie('_UID'); + var name = _data.data.profile_name; + var _length = 0; + var t = 0; + var char = ''; + var user = info.split('::'); + var userName = user[0] || ' '; + var _logout = '//www.yohobuy.com/logout.html'; + var islogin = '1'; + var _num = 0; + var data = { + user_name: name, + logout: _logout, + random: Math.random() + }; + + $boxObj.html('').show(); + + + loginInfoCombine = handlebars.compile(loginHtml); + if (typeof info === 'undefined' || info === null) { + $boxObj.html(noLoginHtml); + return false; + } + if (typeof user === 'undefined' || user.length < 4) { + $boxObj.html(noLoginHtml); + return false; + } + + for (t; t < userName.length; t++) { + char = userName.substr(t, 1); + if (/.*[\u4e00-\u9fa5]+.*$/.test(char)) { + _length += 2; + } else { + _length += 1; + } + } + if (_length <= 10) { + name = userName; + } else { + _num = 0; + for (t; t < userName.length; t++) { + if (_num < 10) { + char = userName.substr(t, 1); + if (char !== '*') { + if (/.*[\u4e00-\u9fa5]+.*$/.test(char)) { + _num += 2; + } else { + _num += 1; + } + } + name += char; + } + } + if (name.length < userName.length) { + name += '...'; + } + } + + + if (/http:\/\//.test(user[3])) { + _logout = user[3].replace('www.yohobuy.com', 'www.yohobuy.com'); + } else { + _logout = '//www.yohobuy.com/logout.html'; + } + if (_data.result === -1) { + islogin = '-1'; + } + data.islogin = islogin; + $boxObj.html(loginInfoCombine(data)); +} +/** + * 获得vip用户信息 + * @return {[type]} [description] + */ +function actionVipInfo(_data) { + var vipInfo = _data.data; + var headUrl = ''; + + if (_data.result === 1) { + if (typeof vipInfo === undefined || vipInfo.length < 1) { + return false; + } + if (vipInfo.vip.curVipInfo.curLevel === '3') { + vipInfo.vip3 = true; + } + + $('#myYohoBox').mouseenter(function() { + $(this).addClass('acttags'); + $('#myYohoBox .myyoho-info').show().html(vipInfoCombine(vipInfo)); + headUrl = $('.myyoho-photo img').attr('data-url'); + if ($._checkUrlState === 1) { + $('.myyoho-photo').show().find('img').attr('src', headUrl); + return; + } + if (headUrl === '' || $._checkUrl !== '') { + return; + } + $.ajax({ + url: headUrl, + type: 'GET', + complete: function(response) { + if (response.status === 200 || response.status === 0) { + $('.myyoho-photo').show().find('img').attr('src', headUrl); + $._checkUrlState = 1; + } + $._checkUrl = headUrl; + } + }); + }); + $('#myYohoBox').mouseleave(function() { + $(this).removeClass('acttags'); + $('#myYohoBox .myyoho-info').hide(); + }); + } +} +/** + * 获取登录信息 + * @return {[type]} [description] + */ +function actionLoginInfo() { + $.getData('//www.yohobuy.com/common/passport', '', function(_data) { + if (_data && _data.result !== -1) { + actionLoginState(_data); // 更改登录状态 + actionVipInfo(_data); //获得vip; + } else { + window.setCookie('_UID', '', { + path: '/', + domain: '.yohobuy.com', + expires: -1 + }); + $loginBox.show(); + } + }); +} +/** + * 初始化函数 + * @return {[type]} [description] + */ +function init() { + actionNav(); //处理导航 + actionTipPic(); //鼠标移入后查询 + actionExeTemplate(); //处理模板 + actionCover(); //初次登录弹框 + actionInitCookie(); //初始化cookie + setChannelCookie(); //设置频道缓存 + actionExeCookieMap(); //格式化cookie + actionGoodsCart(); //初始化购物车插件 + actionYoHoGroup(); // yoho集团鼠标效果 + actionTopTagToggle(); // yoho上部分开关 + actionTopLogoAnimate(); //yoho logo动画 + actionGetBannerAndNotice(); // 获取banner和服务器维护提示 + actionBrandChange(); //切换品牌 + actionGoodsCarMouseEffect(); //鼠标滑入滑出效果 + actionUpdateCartNum(); //更新购物车数量 + actionLoopUpdCartNum(); //循环检测购物车数量 + actionSearch(); //搜索执行 + actionClickMiniCartBox(); //点击购物车跳转 + actionListenDelCarGoods(); //监听购物车删除 + actionListenCartMore(); // + actionLoginInfo(); //获取登录信息 + actionAddKeyWords(); //增加关键字 +} +init(); +}); +define("js/simple-header", ["jquery"], function(require, exports, module){ +var $ = require("jquery"); + +var $apiDom = $('#api-domain'); + +var apiDomain = $apiDom.val(); //获取数据的地址 + +$apiDom.remove(); //删除API信息 + +if ($('.simple-header').size() > 0) { + $('.tool-options').on('mouseenter', function() { + $(this).find('.tool-select').fadeIn(); + }).on('mouseleave', function() { + $(this).find('.tool-select').fadeOut(); + }); +} + +/** + * 格式化用户名 + * @return {[type]} [description] + */ +function formatUsernName(userName) { + var name, + char, + _num = 0, + _length = 0, + t; + + for (t = 0; t < userName.length; t++) { + char = userName.substr(t, 1); + if (/.*[\u4e00-\u9fa5]+.*$/.test(char)) { + _length += 2; + } else { + _length += 1; + } + } + if (_length <= 10) { + name = userName; + } else { + _num = 0; + name = ''; + for (t = 0; t < userName.length; t++) { + if (_num < 10) { + char = userName.substr(t, 1); + if (char !== '*') { + if (/.*[\u4e00-\u9fa5]+.*$/.test(char)) { + _num += 2; + } else { + _num += 1; + } + } + name += char; + } + } + if (name.length < userName.length) { + name += '...'; + } + } + return name; +} + +/** + * 设置简单头部登陆状态 + * @return {[type]} [description] + */ +function setLoginStatus(data) { + var info = data.data, + loginHtml, + name; + + if (data.result !== -1) { + name = formatUsernName(info.profile_name); + loginHtml = '<span>Hi~</span>' + + '<a href="//www.yohobuy.com/home?t=' + info.random + '">' + name + '</a> ' + + '<a href="//www.yohobuy.com/logout.html">[退出]</a>'; + } else { + loginHtml = '<span>Hi~</span> ' + + '<a href="//www.yohobuy.com/signin.html">[请登录]</a> ' + + '<a href="//www.yohobuy.com/reg.html">[免费注册]</a>'; + } + $('.header-tool li').eq(0).html(loginHtml); +} + +/** + * 获取登录信息 + * @return {[type]} [description] + */ +function actionLoginInfo() { + var param = { + return_type: 'jsonp' + }; + + $.getJSON('//www.yohobuy.com/common/passport' + '/?callback=?', param, function(_data) { + if (_data && _data.data) { + setLoginStatus(_data.data); + } + }); +} + +actionLoginInfo(); //获取登录信息 + + +}); +define("js/product/entry", ["jquery","handlebars","source-map","lazyload","index","jquery-pjax"], function(require, exports, module){ +/** + * 商品页面打包入口文件 + * @auhtor: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/28 + */ + +require("js/product/list"); + +require("js/product/brand"); + +require("js/product/hotrank"); + +require("js/product/item"); + +require("js/product/shop-index"); + +}); +define("js/product/list", ["jquery","handlebars","source-map","lazyload"], function(require, exports, module){ +/** + * 商品列表页 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/11/23 + */ +var $ = require("jquery"); + +require("js/product/filter"); + +require("js/product/sort-pager"); + +require("js/product/latest-walk"); + +require("js/product/product"); + +(function() { + var $banner = $('.banner-img'), + img; + + if ($banner.length === 0) { + return; + } + + img = new Image(); + + //重置Banner高度 + img.onload = function() { + if (img.height) { + $banner.height(img.height); + } + + img = null; + }; + + //replace('"', '')为处理浏览器兼容性代码,部分浏览器中取得的字符串中包含"" + img.src = $banner.css('background-image').replace(/"/g, '').slice(4, -1); +}()); + +}); +define("js/product/filter", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 商品筛选逻辑 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/4 + */ + +var $ = require("jquery"), + Handlebars = require("handlebars"); + +var checkUnicode = { + unchecked: '', + checked: '' +}, +moreUnicode = { + up: '', + down: '' +}; + +//品牌相关变量 +var $brandDefault = $('.brand .default'), + $brandInput = $('#brand-search-input'), + $brandPanel = $('.brand .brand-panel'), + $brandAttrs = $brandPanel.find('.attr'), + $brandMore = $('#brand-more'), + $brandMulti = $('#brand-multi'), + $brandsIndex = $('.brands-index'); + +var $brandMoreTxt, $brandMoreIcon; + +//价格相关变量 +var $udPrice = $('.ud-price-range'), + interReg = /^\d+$/, + $limit, $min, $max, $btn; + +//分类相关变量 +var $sortSub = $('.sort-sub-wrap'); + +//高级选项相关变量 +var $seniorSubWrap = $('.senior-sub-wrap'), + $seniorAttrWrap = $('.senior-attr-wrap'); + +var seniorHoverTime, hoveredIndex; + +// 尺寸 handlebars 模板 +var sizeTmpl = '{{# size}}<a class="attr {{#if checked}}checked{{/if}}" href="{{href}}">{{name}}</a>{{/ size}}', + sizeCache = {}, // 缓存一下尺寸信息 + $sizeWrap = $('.filter-box .size'); + +sizeTmpl = Handlebars.compile(sizeTmpl); + +//清除checkbox选中状态[页面默认checked不清空] +function clearChecked($checkbox, $checked) { + $checkbox.each(function() { + if ($(this).closest('.attr').hasClass('checked')) { + return; + } + $(this).removeClass('checked').html(checkUnicode.unchecked); + }); + $checked.find('.checkbox').addClass('checked').html(checkUnicode.checked); +} + +//显示更多品牌面板 +function brandShowMore() { + $brandDefault.addClass('hide'); + $brandPanel.removeClass('hide'); +} + +//隐藏更多品牌面板 +function brandHideMore() { + $brandPanel.addClass('hide'); + $brandDefault.removeClass('hide'); + + //清除索引状态 + $brandsIndex.children('span').removeClass('hover'); +} + +//url构造&跳转 +function uriLoc(attr, val) { + var qs = window.queryString(), + newHref; + + qs[attr] = val; + delete qs.page; + newHref = '?' + decodeURIComponent($.param(qs)); + window.location.href = newHref; +} + +//隐藏高级选项面板 +function hideSeniorPanel(index) { + $seniorSubWrap.children('.senior-sub:eq(' + hoveredIndex + ')').addClass('hide'); + $seniorAttrWrap.children('.attr:eq(' + hoveredIndex + ')').removeClass('hover'); + hoveredIndex = -1; +} + +//屏蔽筛选项双击文字选中 +$('.filter-box').on('selectstart', '.attr, .brands-index span', function() { + return false; +}); + +//【分类】 +$('.sort-pre').on('click', 'li', function() { + var $this = $(this), + index = $this.index(), + id = $this.data('id'); + + if ($this.hasClass('active')) { + + // 选中时,再次点击取消选中 + $this.removeClass('active'); + $sortSub.children(':eq(' + index + ')').addClass('hide'); + $sizeWrap.addClass('hide'); + return; + } + + $this.siblings('.active').removeClass('active'); + $this.addClass('active'); + + $sortSub.children(':not(.hide)').addClass('hide'); + $sortSub.children(':eq(' + index + ')').removeClass('hide'); + + if (!$sizeWrap.data('load')) { + if (sizeCache[id]) { + $sizeWrap.find('.attr-content').html(sizeCache[id]); + $sizeWrap.removeClass('hide'); + } else { + $.ajax({ + url: '/product/search/sortSize', + data: { + msort: id + } + }).then(function(res) { + if ($.type(res) === 'array' && res.length) { + sizeCache[id] = sizeTmpl({ + size: res + }); + $sizeWrap.find('.attr-content').html(sizeCache[id]); + $sizeWrap.removeClass('hide'); + } else { + $sizeWrap.addClass('hide'); + } + }); + } + } +}); + +//【品牌】 +if ($brandMore.length > 0) { + $brandMoreTxt = $brandMore.children('em'); + $brandMoreIcon = $brandMore.children('.iconfont'); +} + +//【品牌】多选 +$brandMulti.click(function() { + if ($brandPanel.css('display') === 'none') { + + //显示品牌面板 + $brandMore.trigger('click'); + } + + brandShowMore(); + $brandPanel.removeClass('hide').addClass('multi'); //显示出checkbox + $(this).addClass('hide'); + + //隐藏更多按钮 + $brandMore.addClass('hide'); +}); + +//【品牌】更多 +$brandMore.click(function() { + var $this = $(this); + + if ($this.hasClass('more')) { + brandHideMore(); + + $brandMoreTxt.text('更多'); + $brandMoreIcon.html(moreUnicode.down); + + //清空搜索框和搜索结果 + $brandInput.val('').trigger('keyup'); + } else { + brandShowMore(); + + $brandMoreTxt.text('收起'); + $brandMoreIcon.html(moreUnicode.up); + } + + $(this).toggleClass('more'); +}); + +//【品牌】索引 +$brandsIndex.on('mouseenter', 'span', function() { + var $this = $(this), + index = $this.data('index'); + + if ($this.hasClass('hover')) { + return; + } + setTimeout(function() { + $this.siblings('span.hover').removeClass('hover'); + $this.addClass('hover'); + + if ($this.index() === 0) { + + //全部 + $brandAttrs.removeClass('hide'); + } else { + $brandAttrs.addClass('hide').filter('[data-index=' + index + ']').removeClass('hide'); + } + }, 120); +}); + +//【品牌】搜索 +$brandInput.keyup(function() { + var val = $(this).val().toLowerCase(); + + if (val === '') { + $brandAttrs.removeClass('hide'); + } else { + $brandAttrs.addClass('hide').filter('[data-key*="' + val + '"]').removeClass('hide'); + } +}); + +//【品牌】多选确定 +$('#brand-multi-ok').click(function() { + var val = []; + + if ($(this).hasClass('dis')) { + return; + } + + $brandPanel.find('span.checked').each(function() { + val.push($(this).data('id')); + }); + + uriLoc('brand', val.join(',')); +}); + +//【品牌/高级选项】多选取消 +$('.multi-select-cancel').click(function() { + var $panel = $(this).closest('.multi'); + + if ($panel.hasClass('brand-panel')) { + + $brandMulti.removeClass('hide'); //显示多选按钮 + $brandMore.trigger('click'); + + //显示出更多按钮 + $brandMore.removeClass('hide'); + + //清空搜索框和搜索结果 + $brandInput.val('').trigger('keyup'); + brandHideMore(); + } + + $panel.addClass('hide').removeClass('multi'); + clearChecked($panel.find('.checkbox.checked'), $panel.find('.attr.checked')); //清除选中状态 + + //确定按钮状态恢复dis + $(this).siblings('.multi-select-ok').addClass('dis'); +}); + +//【品牌/高级选项】checkbox +$('.check-container').on('click', '.attr', function() { + var $this = $(this), + $check = $this.find('.checkbox'), + $btnOk = $this.closest('.brand-panel, .senior-sub').find('.multi-select-ok'); + + $check.toggleClass('checked'); + + if ($check.hasClass('checked')) { + $check.html(checkUnicode.checked); + } else { + $check.html(checkUnicode.unchecked); + } + + //更新按钮状态 + if ($check.hasClass('checked') || + $this.siblings('.attr').find('.checked').length > 0) { + $btnOk.removeClass('dis'); + } else { + $btnOk.addClass('dis'); + } +}); + +//【品牌/高级选项】当多选时阻止链接默认跳转 +$('.brand, .senior').on('click', '.attr > a', function(e) { + if ($(this).closest('.multi').length > 0) { + e.preventDefault(); + } +}); + +// 已选中的条件,点击不刷新 +$('.filter-box').on('click', 'li.checked, a.checked', function(e) { + e.preventDefault(); +}); + +//【价格】用户定义价格处理 +if ($udPrice.length > 0) { + $limit = $udPrice.find('.limit'); + $min = $limit.filter('.min'); + $max = $limit.filter('.max'); + $btn = $udPrice.find('.price-sure'); + + //【价格】输入 + $limit.keyup(function() { + var thisPrice = $.trim($(this).val()), + isPriInt = interReg.test(thisPrice), + intPrice, + min, + max; + + if (!isPriInt) { + intPrice = parseInt(thisPrice, 10); + $(this).val(isNaN(intPrice) ? '' : intPrice); + } + + min = $.trim($min.val()); + max = $.trim($max.val()); + + if (min !== '' || max !== '') { + $btn.removeClass('hide'); + } else { + $btn.addClass('hide'); + } + }); + + //【价格】多项查询 + $btn.click(function() { + var min = $.trim($min.val()), + max = $.trim($max.val()), + tmp; + + //对于min大于max的情况,交换位置 + if (min !== '' && max !== '' && +min > +max) { + tmp = max; + max = min; + min = tmp; + } + + uriLoc('price', min + ',' + max); + }); +} + +//【高级选项】鼠标移入显示子项 +$seniorAttrWrap.on('mouseenter', '.attr', function() { + var $this = $(this); + var index = $this.index(); + + if ($this.hasClass('no-sub')) { + return; + } + $this.addClass('hover').siblings().removeClass('hover'); + + $seniorSubWrap.children('.senior-sub:eq(' + index + ')').removeClass('hide').siblings().addClass('hide'); +}).on('mouseleave', '.attr', function() { + var $this = $(this), + index = $this.index(); + + if ($this.hasClass('no-sub')) { + return; + } + + hoveredIndex = index; + + seniorHoverTime = setTimeout(function() { + hideSeniorPanel(); + }, 100); +}); + +//【高级选项】多选 +$('.senior-sub').on('click', '.multi-select', function() { + $(this).closest('.senior-sub').addClass('multi'); +}).on('click', '.multi-select-ok', function() { + var $btn = $(this), + $sub = $btn.closest('.senior-sub'), + val = []; + + if ($btn.hasClass('dis')) { + return; + } + + $sub.find('span.checked').each(function() { + val.push($(this).data('id')); + }); + + uriLoc($sub.data('attr'), val.join(',')); +}).on('mouseenter', function() { + clearTimeout(seniorHoverTime); +}).on('mouseleave', function() { + hideSeniorPanel(); +}); + +}); +define("js/product/sort-pager", ["jquery"], function(require, exports, module){ +/** + * 筛选页和列表页操作banner中的每页N个商品选择逻辑 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/4 + */ + +var $ = require("jquery"); + +var $countPerPage = $('#count-per-page'), + $countChose = $countPerPage.next('ul'); + +var SLIDETIME = 200; + +$(document).click(function(e) { + if ($(e.target).closest('.page-count').length > 0) { + return; + } + + $countChose && $countChose.slideUp(SLIDETIME); +}); + +$countPerPage.click(function() { + if ($countChose.css('display') === 'none') { + $countChose.slideDown(SLIDETIME); + } else { + $countChose.slideUp(SLIDETIME); + } +}); +}); +define("js/product/latest-walk", ["jquery","handlebars","source-map","lazyload"], function(require, exports, module){ +/** + * 最近浏览取接口渲染模板 + * @author: xuqi<qi.xu@yoho.cn> + 8 @date: 2016/1/20 + */ + +var $ = require("jquery"); +var Handlebars = require("handlebars"); +var lazyLoad = require("lazyload"); + +var $latestWalkCount = $('#latest-walk-count'); + +(function() { + var tpl; + + if ($latestWalkCount.length === 0) { + return; + } + + tpl = Handlebars.compile($('#latest-walk-tpl').html()); + + $.ajax({ + url: '//www.yohobuy.com/common/recentReview', + dataType: 'jsonp', + data: { + limit: $latestWalkCount.val() + }, + success: function(data) { + var latestWalk = [], + res, i, cur; + + if (data.code === 200) { + res = data.data; + + //若无最近浏览,请隐藏容器 + if (res.length === 0) { + $('.latest-walk').addClass('hide'); + return; + } + for (i = 0; i < res.length; i++) { + cur = res[i]; + + latestWalk.push({ + href: cur.url, + img: cur.pic_url, + name: cur.product_name, + salePrice: cur.price, + marketPrice: cur.market_price + }); + } + + if (latestWalk.length > 0) { + $('#latest-walk-goods').html(tpl({ + latestWalk: latestWalk + })); + + lazyLoad($('#latest-walk-goods .lazy')); + } + } + } + }); +}()); +}); +define("js/product/product", ["jquery","lazyload","handlebars","source-map"], function(require, exports, module){ +/** + *Description: 商品列表页 + *Author: chenglong.wang@yoho.cn + *Date: 2015/12/2 + */ + +var $ = require("jquery"), + lazyLoad = require("lazyload"), + Handlebars = require("handlebars"), + productEvent = require("js/common/product-event"); + +var $goodsContainer = $('.goods-container'), + $goodItem = $goodsContainer.find('.good-info'), + $goodItemWrapper = $goodsContainer.find('.good-item-wrapper'), + $goodInfoMain = $goodsContainer.find('.good-info-main'), + $goodSelectColor = $goodsContainer.find('.good-select-color'), + $productListNav = $('.product-list-nav'), + productList; + +lazyLoad($('img.lazy')); + +/** + * @description 初始化鼠标移入商品列表弹层效果 + * @num 每列存放商品的个数 + */ +exports.init = function(num) { + var $shopEntry = $('.shop-entry'), + $shopEntryArea = $('.shop-entry-area'), + shopEntryLen = $shopEntry.length; + + if (shopEntryLen > 1) { + + if (shopEntryLen === 3) { + $shopEntry.css({ + width: '32%' + }); + } else if (shopEntryLen % 2) { + + // 大于 2 ,并且是基数 + $('.shop-entry:gt(' + (shopEntryLen - 4) + ')').css({ + width: '32%' + }); + } + + $('.shop-entry:nth-child(2n+1)').css({ + marginLeft: 0 + }); + + $shopEntry.last().css({ + marginLeft: '2%' + }); + + if (shopEntryLen % 2 === 0) { + $shopEntry.find('.name').css({ + width: '50%' + }); + } else if (shopEntryLen % 3 === 0) { + $shopEntry.find('.name').css({ + width: '26%' + }); + } + + } else { + $shopEntry.css({ + width: '100%' + }); + } + + $shopEntryArea.slideDown(); + + productList = null; + + $goodItem.unbind(); + + productList = productEvent($goodItem, num); + + /** + * @description 构造商品颜色列表的html结构 + * @param data 商品颜色的数组,[url: '',src: ''] + * @return json {'colorListStr': '', 'ulNum': ''} + * */ + function createColorList(data, _from) { + var colorListStr = '', + len = data.length, + row = 4, //每列ul放4个li + col = Math.ceil(len / row), //需要几**列**ul + i, + j, + index, + ulNum = 0; + + for (i = 0; i < col; i++) { + colorListStr += '<ul>'; + for (j = 0; j < row; j++) { + index = i * row + j; + if (index === len) { + break; + } + colorListStr += + '<li>' + + '<a target="_blank" href="' + data[i * row + j].url + _from + '">' + + '<img src="' + data[i * row + j].src + '" data-cover="' + data[i * row + j].coverImg + '" />' + + '</a>' + + '</li>'; + + if (j === row - 1) { + colorListStr += '</ul>'; + ulNum++; + } + } + } + if (ulNum < col) { + colorListStr += '</ul>'; + } + return { + colorListStr: colorListStr, + ulNum: col + }; + } + + function removeHtmlFn() { + $goodInfoMain.html(''); + $goodSelectColor.html(''); + $goodItemWrapper.css({ + display: 'none' + }); + } + + productList.addHandler('MouseEnter', function(event) { + var itemMr = 10, //list的右边距 + itemMb = 35, //list的下边距 + ulStr = '', + ulNum, + wrapperWidth, + diffWidth, + wrapperX, + wrapperY, + wrapperPl, //鼠标移入时弹层的左内边距 + wrapperPt, //鼠标移入时弹层的上内边距 + containerPt, //商品列表容器的上内边距 + _from = event.target.attr('data-from') || ''; + + $.ajax({ + type: 'POST', + url: '/product/list/getProductPic', + dataType: 'jsonp', + jsonp: 'callback', + data: { + skn: event.target.attr('data-skn'), + skc: event.target.attr('data-skc') + } + }).then(function(res) { + var data = res.data, + colorList = createColorList(data.pics, _from); + + removeHtmlFn(); + + ulStr = colorList.colorListStr; //ajax请求的颜色列表 + ulNum = colorList.ulNum;//ajax请求的颜色的数量 + + $goodInfoMain.append(event.targetDuplicate); + $goodSelectColor.append($(ulStr)); + + // 点击收藏商品不需要了 + // if (data.isFavorite) { + // $goodInfoMain.find('.col-btn').addClass('coled'); + // } else { + // $goodInfoMain.find('.col-btn').removeClass('coled'); + // } + + wrapperPl = $goodItemWrapper.css('paddingLeft'); + wrapperPt = $goodItemWrapper.css('paddingTop'); + containerPt = $goodsContainer.css('paddingTop'); + + wrapperWidth = 10 + (15 + 50) * ulNum + event.targetWidth; + + //wrapperWidth = $goodItemWrapper.width(); + + wrapperX = (event.targetX - 1) * (event.targetWidth + itemMr) - (parseInt(wrapperPl) + 1); + wrapperY = (event.targetY - 1) * + (event.targetHeight + itemMb) + parseInt(containerPt) - (parseInt(wrapperPt) + 1); + + //todo + //event.offsetR表示当前列表距离浏览器右侧边缘的距离 + diffWidth = event.offsetR - ((15 + 50) * ulNum + 25); + + if (diffWidth <= 0) { + wrapperX = wrapperX + diffWidth - 25; + } + $goodItemWrapper.css({ + width: wrapperWidth, + left: wrapperX, + top: wrapperY, + display: 'inline-block' + }); + + // 鼠标悬浮获取到商品信息后显示第一张图片 + if (data.pics[0] && data.pics[0].src) { + $goodInfoMain.find('.good-thumb img').attr('src', data.pics[0].src); + } + }); + }); + + productList.addHandler('MouseLeave', function() { + removeHtmlFn(); + }); + + $goodItemWrapper.mouseleave(function() { + + removeHtmlFn(); + }); + +}; + +//鼠标放在颜色列表上效果 +$(document).on('hover', '.good-select-color li', function() { + var coverImg = $(this).find('img').attr('data-cover'), + $coverImg = $(this).closest('.good-item-wrapper').find('.good-detail-img').find('img'); + + $coverImg.attr('src', coverImg); +}); + +// 左侧导航 +$productListNav.find('h3').click(function(event) { + var $this = $(this).closest('.product-list-nav'); + + if ($this.hasClass('active')) { + + $this.find('.sort-child-list').stop(true, true).slideUp(); + + } else { + + $this.find('.sort-child-list').stop(true, true).slideDown(); + } + + $this.toggleClass('active'); +}); + +//左侧需要ajax内容 +(function() { + var $brandCard = $('#brand-card'); + var $brandFavor = $('#brand-favor'); + var html; + + if ($brandCard.length) { + $.ajax({ + type: 'POST', + url: '/product/index/getNodeContent', + data: { + node: $brandCard.data('node') + } + }).then(function(data) { + $brandCard.html(data); + }); + } + + //品牌页请求 + if ($brandFavor.length) { + html = $('#pic-link-tpl').html(); + + $.ajax({ + type: 'POST', + url: '/product/index/getAdnav', + data: { + brandId: $brandFavor.data('id') + } + }).then(function(data) { + if (data) { + $('#brand-ad').html(Handlebars.compile(html)({ + picLink: data + })); + } + }); + } +}()); + +}); +define("js/common/product-event", ["jquery"], function(require, exports, module){ +/** + *Description: 商品自定义事件 + *Author: chenglong.wang@yoho.cn + *Date: 2015/12/3 + */ + +var $ = require("jquery"); + +function ProductEvent() { + + this.handlers = {}; + +} + +ProductEvent.prototype = { + + constructor: ProductEvent, + + addHandler: function(type, handler) { + if (typeof this.handlers[type] === 'undefined') { + this.handlers[type] = []; + } + this.handlers[type].push(handler); + }, + + fire: function(event) { + var handlers, + i; + + if (!event.target) { + + event.target = this; + } + if (this.handlers[event.type] instanceof Array) { + handlers = this.handlers[event.type]; + for (i = 0; i < handlers.length; i++) { + handlers[i](event); + } + } + }, + + removeHandler: function(type, handler) { + var handlers, + i; + + if (this.handlers[type] instanceof Array) { + handlers = this.handlers[type]; + for (i = 0; i < handlers.length; i++) { + if (handlers[i] === handler) { + break; + } + } + handlers.splice(i, 1); + } + } +}; + +module.exports = function($o, rowWidth) { + + var pMouseHover = new ProductEvent(); + + var targetWidth = $o.eq(0).width(), + targetHeight = $o.eq(0).height(), + winW = $(window).width(); + + var delayFunc, + loadInfo; + + function handleEvent(event) { + var $target, + targetX = 0, + targetY = 0, + rowW = rowWidth, + activeIndex = 0, + $targetDuplicate = '', + offsetL = 0, + offsetR = 0; + + + switch (event.type) { + case 'mouseenter': + $target = $(this); + + delayFunc = setTimeout(function() { + loadInfo = true; + $targetDuplicate = $target.clone(); + activeIndex = $target.index() + 1; + targetX = (activeIndex % rowW) === 0 ? rowW : activeIndex % rowW; + targetY = Math.ceil(activeIndex / rowW); + offsetL = $target.offset().left; + offsetR = winW - (offsetL + targetWidth); + + pMouseHover.fire({ + type: 'MouseEnter', + target: $target, + targetWidth: targetWidth, + targetHeight: targetHeight, + targetX: targetX, + targetY: targetY, + rowWidth: rowW, + activeIndex: activeIndex, + targetDuplicate: $targetDuplicate, + offsetL: offsetL, + offsetR: offsetR + }); + }, 150); + break; + case 'mouseleave': + if (!loadInfo) { + if (delayFunc) { + clearTimeout(delayFunc); + } + pMouseHover.fire({ + type: 'MouseLeave' + }); + } + loadInfo = false; + break; + } + } + + $o.bind({ + mouseenter: handleEvent, + mouseleave: handleEvent + }); + + return pMouseHover; +}; +}); +define("js/product/brand", ["jquery"], function(require, exports, module){ +/** + * 品牌页面 + * @auhtor: bikai<kai.bi@yoho.cn> + * @date: 2016/1/21 + */ + +var $ = require("jquery"); + +var $brandFavor = $('#brand-favor'), + id = $brandFavor.data('id'); + +$brandFavor.on('click', function() { + $.ajax({ + type: 'post', + url: '/product/index/favoriteBrand', + data: { + brandId: id + } + }).then(function(res) { + if (res.code === 200) { + $brandFavor.find('i').toggleClass('coled'); + } else if (res.code === 403) { + location.href = '//www.yohobuy.com/signin.html?refer=' + encodeURIComponent(location.href); + } + }); +}); + +//页面进入更新收藏状态 +$.ajax({ + type: 'POST', + url: '/product/index/isFavoriteBrand', + data: { + brandId: id + } +}).then(function(data) { + if (data.code === 200) { + + //已收藏 + $brandFavor.find('i').addClass('coled'); + } else if (data.code === 404) { + + //未收藏 + $brandFavor.find('i').removeClass('coled'); + } +}); + +}); +define("js/product/hotrank", ["jquery","handlebars","source-map","lazyload"], function(require, exports, module){ +/** + * 首页 + * @author: liuyue<yue.liu@yoho.cn> + * @date: 2015/12/17 + */ + +var $ = require("jquery"), + Handlebars = require("handlebars"), + lazyLoad = require("lazyload"); + +require("js/common/slider"); +require("js/common/logo-brand"); + +lazyLoad($('img.lazy')); +$('.slide-container').slider(); +$('.logo-brand').logoBrand({ + showNum: 10, + url: $('.logo-brand').data('url') +}); + +/* + * 一周热卖 + */ +(function($) { + var floatlayer = $('.hot-week').find('.floatlayer'), + sid = $('.hot-cate').find('li').eq(0).data('sid'), + weekOffsetTop, + source, + template, + page = 1, + hotCateW = 0, + weekEnd = false; + + source = '\{{# list}}' + + '<div class="good-info">' + + '<div class="item-img">' + + '<a class="good-thumb" target="_blank" href="\{{url}}">' + + '<img class="lazy" data-original="\{{thumb}}">' + + '</a>' + + '</div>' + + '<div class="good-detail-text">' + + '<a target="_blank" href="{{url}}">{{name}}</a>' + + '<p class="price">' + + '{{# marketPrice}}<span class="market-price">¥{{.}}</span>{{/ marketPrice}} ' + + '<span class="sale-price{{#unless marketPrice}}prime-cost{{/unless}}">' + + '¥{{salePrice}}</span>' + + '</p>' + + '</div>' + + '</div>' + + '{{/ list}}'; + + //监听滚动事件,控制浮层样式及下拉加载更多 + $(window).on('scroll', function() { + var maxH = weekOffsetTop + $('.hot-week').outerHeight(), + sid; + + //热卖右侧浮动导航位置 + weekOffsetTop = $('.hot-week').offset().top; + if ($(this).scrollTop() >= weekOffsetTop - $(window).height() / 2) { + if (floatlayer.offset().top + floatlayer.outerHeight() >= maxH) { + floatlayer.css({ + position: 'absolute', + marginTop: 0, + top: $('.hot-week').outerHeight() - floatlayer.outerHeight() + }); + } else { + floatlayer.css({ + marginTop: -floatlayer.height() / 2 + }).stop().animate({ + opacity: 1 + }, 200, function() { + floatlayer.show(); + }); + } + + } else { + floatlayer.stop().animate({ + opacity: 0 + }, 200, function() { + floatlayer.hide(); + }); + } + + if (floatlayer.offset().top >= $(this).scrollTop() + ($(window).height() - floatlayer.outerHeight()) / 2) { + floatlayer.css({ + position: 'fixed', + marginTop: -floatlayer.height() / 2, + top: '50%' + }); + } + + //下拉加载 + if ($(this).scrollTop() >= weekOffsetTop + $('.hot-week').height() - $(window).height()) { + if (!weekEnd) { + sid = $('.hot-cate').find('li.current').data('sid'); + page++; + weekEnd = true; //防止多次请求 + weekAjax(sid, page); + } + } + + }); + + //热卖横导航及竖导航的超出显示控制 + $('.hot-cate').find('li').each(function(i) { + var maxW = $('.hot-cate').width(); + + if (hotCateW <= maxW) { + hotCateW = hotCateW + $(this).width(); + if (hotCateW >= maxW) { + $('.floatlayer').find('li').eq(i).hide().nextAll().hide(); + } + } + + }); + + //热卖横导航点击事件处理 + $('.hot-cate').on('click', 'li', function() { + var nowIndex = $(this).index(), + sid = $(this).data('sid'); + + if ($(this).hasClass('current')) { + return; + } + + //处理current样式 + $(this).addClass('current').siblings().removeClass('current'); + $('.floatlayer').find('li').removeClass('current').eq(nowIndex).addClass('current'); + + //返回热卖顶部,110为floor-header所占高度 + $('body,html').stop().animate({ + scrollTop: weekOffsetTop - 110 + }, 500); + + //调用ajax请求函数,重置page,weekEnd + weekAjax(sid); + page = 1; + }); + + //热卖右侧悬浮导航点击事件处理 + $('.floatlayer').on('click', 'li', function() { + var nowIndex = $(this).index(); + + if ($(this).hasClass('current')) { + return; + } + + $('.hot-cate').find('li').eq(nowIndex).trigger('click'); + + //处理current样式 + $(this).addClass('current').siblings().removeClass('current'); + $('.hot-cate').find('li').removeClass('current').eq(nowIndex).addClass('current'); + }); + + /* + * 热卖内容ajax请求 + * param: sid(ajax请求的id), page(ajax请求的页码) + */ + function weekAjax(sid, page) { + var param = {}; + + if (page) { + param = { + sid: sid, + page: page + }; + } else { + param = { + sid: sid + }; + } + $.ajax({ + type: 'GET', + dataType: 'json', + url: '/product/index/getdata', + data: param, + success: function(res) { + var data; + + if (res.code === 200) { + data = { + list: res.data + }; + + //mustache渲染数据,并替换原内容 + template = Handlebars.compile(source); + if (page) { + $('.hot-week-list').append(template(data)); + floatlayer.css({ + position: 'fixed', + marginTop: -floatlayer.height() / 2, + top: '50%' + }); + } else { + $('.hot-week-list').html(template(data)); + } + + lazyLoad($('img.lazy')); + weekEnd = false; + } + } + }); + } + + //热卖中导航current类处理 + $('.hot-cate').find('li').eq(0).addClass('current'); + $('.floatlayer').find('li').eq(0).addClass('current'); +})($); + +}); +define("js/common/slider", ["jquery","lazyload"], function(require, exports, module){ +/** + * 首页banner轮播 + * @author: liuyue(yue.liu@yoho.cn) + * @date: 2015/12/04 + */ + +var $ = require("jquery"), + lazyLoad = require("lazyload"); + +(function($) { + var Slider = function(element, options) { + this.$element = $(element); + this.options = $.extend({}, $.fn.slider.defaults, options); + this.bigItem = this.$element.find('.slide-wrapper').find('li'); + this.smallItem = null; + this.len = this.bigItem.size(); + this.index = 0; + this.timer = null; + this.init(); + }; + + Slider.prototype = { + init: function() { + if (!this.$element) { + return; + } + + if (this.len <= 1) { + lazyLoad(this.$element.find('img.lazy')); + return; + } + if (!!this.options.pagination) { + this.smallItem = $(this.options.pagination).find('li'); + } else { + this._createPage(); + } + + if (this.options.orient) { + this._createOrient(); + } + this._slideShow(); + this._bindEvent(); + this._autoplay(); + }, + _createOrient: function() { + + var orientHtml = '<div class="slide-switch">' + + '<a class="prev" href="javascript:;"><span class="iconfont"></span></a>' + + '<a class="next" href="javascript:;"><span class="iconfont"></span></a>' + + '</div>'; + + if (this.$element.find('.slide-switch').length > 0) { + return; + } + + this.$element.append(orientHtml); + }, + _createPage: function() { + var pageHtml = '<div class="slide-pagination"><div class="slide-pagination-inner">' + + '<div class="slide-shade"></div><div class="slide-pagination-last">', + i = 0; + + if (this.len <= 1) { + return; + } + for (i = 0; i < this.len; i++) { + pageHtml += '<span></span>'; + } + pageHtml += '</div></div></div>'; + this.$element.append($(pageHtml)); + this.smallItem = this.$element.find('.slide-pagination-inner span'); + }, + _bindEvent: function() { + var that = this; + + this.$element.find('.slide-switch').on('click', '.next', function() { + that._nextSlide(); + clearInterval(that.timer); + that.timer = setInterval(function() { + that._nextSlide(); + }, that.options.time); + }).on('click', '.prev', function() { + that._prevSlide(); + clearInterval(that.timer); + that.timer = setInterval(function() { + that._nextSlide(); + }, that.options.time); + }); + + this.smallItem.on('mouseenter', function() { + that.index = $(this).index(); + clearInterval(that.timer); + that._slideShow(); + }).on('mouseleave', function() { + that._autoplay(); + }); + + this.$element.on('mouseenter', function() { + $(this).find('.slide-switch').addClass('show'); + }).on('mouseleave', function() { + $(this).find('.slide-switch').removeClass('show'); + }); + }, + _nextSlide: function() { + if (this.index === this.len - 1) { + this.index = 0; + } else { + this.index++; + } + this._slideShow(); + }, + _prevSlide: function() { + if (this.index === 0) { + this.index = this.len - 1; + } else { + this.index--; + } + this._slideShow(); + }, + _slideShow: function() { + var $img = this.bigItem.eq(this.index).find('img.lazy'); + + //未加载图片的及时显示 + if ($img.attr('src') !== $img.data('original')) { + lazyLoad($img, { + event: 'sporty' + }); + $img.trigger('sporty'); + } + + this.smallItem.eq(this.index).addClass('focus').siblings().removeClass('focus'); + this.bigItem.eq(this.index).show().stop().animate({ + opacity: 1 + }, function() { + + //修正IE下切换时文字会重叠的问题 + $(this).find('.slide-tips > p').removeClass('hide'); + }).siblings().stop().animate({ + opacity: 0 + }, function() { + $(this).hide().find('.slide-tips > p').addClass('hide'); + }); + }, + _autoplay: function() { + var that = this; + + clearInterval(this.timer); + this.timer = setInterval(function() { + that._nextSlide(); + }, this.options.time); + } + }; + $.fn.slider = function(option) { + return this.each(function() { + var $this = $(this), + data = $this.data('Slider'), + options = typeof option === 'object' && option; + + if (!data) { + $this.data('Slider', (data = new Slider(this, options))); + } + if (typeof option === 'string') { + data[option](); + } + }); + }; + $.fn.slider.Constructor = Slider; + $.fn.slider.defaults = { + time: 5000, + orient: true, //左右切换箭头的显示 + pagination: null + }; +})($); +}); +define("js/common/logo-brand", ["jquery","handlebars","source-map","lazyload"], function(require, exports, module){ +/** + * 首页优选品牌js + * @author: liuyue(yue.liu@yoho.cn) + * @date: 2015/12/08 + */ + +var $ = require("jquery"), + Handlebars = require("handlebars"), + lazyLoad = require("lazyload"); + +(function($) { + var LogoBrand = function(element, options) { + this.$element = $(element); + this.options = $.extend({}, $.fn.logoBrand.defaults, options); + + this.init(); + }; + + LogoBrand.prototype = { + init: function() { + this.$element.addClass('logos-' + this.options.showNum); + this._sendRequest(); + }, + _createHelper: function() { + var showNum = this.options.showNum; + + Handlebars.registerHelper('brandList', function(items, options) { + var out = '<ul>', + i = 0, + item = null, + fillNum = 0; + + //不是每页显示个数的倍数,填充数据 + if (items.length % showNum !== 0) { + fillNum = showNum - (items.length % showNum); + for (i = 0; i < fillNum; i++) { + items.push({ + href: 'javascript:;', + img: '' + }); + } + } + + for (i = 0; i < items.length; i++) { + item = options.fn(items[i]); + + if (i % showNum === 5 || i === 5) { + + //插入切换按钮的位置 + out = out + '<li class="logo-brand-switch" data-page="' + Math.floor(i / showNum) + '">' + + '<a class="prev iconfont" href="javascript:;"></a>' + + '<a class="next iconfont" href="javascript:;"></a></li>' + + '<li data-page="' + Math.floor(i / showNum) + '">' + item + '</li>'; + } else if (i !== 0 && i % showNum === 0) { + + //插入more的位置,more占的是下一页第一个brand的位置,所以page是i/17 + out = out + '<li class="brand-more" data-page="' + Math.floor(i / (showNum + 1)) + '">' + + '<a href="javascript:;" target="_blank">MORE ></a></li>' + + '<li data-page="' + Math.floor(i / showNum) + '">' + item + '</li>'; + } else { + out = out + '<li data-page="' + Math.floor(i / showNum) + '">' + item + '</li>'; + } + } + + //加上最后一个more, more占的是下一页第一个brand的位置,这里已经循环不到brand,所以加在末尾 + return out + '<li class="brand-more" data-page="' + Math.floor(i / (showNum + 1)) + '">' + + '<a href="javascript:;" target="_blank">MORE ></a></li></ul>'; + + }); + }, + _sendRequest: function() { + var that = this; + + $.ajax({ + type: 'GET', + url: that.options.url, + dataType: 'json', + success: function(data) { + var brandTpl, + brandHtml; + + if (!data || data.length === 0) { + return; + } + + that._createHelper(); + brandHtml = '\{{#brandList logoBrand}}' + + '<a href="\{{href}}" target="_blank"><img class="lazy" data-original="\{{img}}" alt=""></a>' + + '\{{/brandList}}'; + brandTpl = Handlebars.compile(brandHtml); + that.$element.html(brandTpl(data)); + that.$element.find('.brand-more a').attr('href', data.moreBrand); + lazyLoad(that.$element.find('img.lazy')); + that._bindEvent(); + } + }); + }, + _brandShow: function(hidePage, showPage) { + var that = this; + + lazyLoad($('li[data-page=' + showPage + ']').find('img.lazy').trigger('appear')); + that.$element.find('li[data-page=' + hidePage + ']').find('img').fadeOut('normal', function() { + that.$element.find('li').hide(); + that.$element.find('li[data-page=' + showPage + ']').show().find('img').fadeIn(); + }); + }, + _bindEvent: function() { + var that = this; + + that.$element.on('click', '.next', function() { + var page = $(this).parent().data('page'), + nextPage = 0, + totalPage = Math.ceil(that.$element.find('li').size() / (that.options.showNum + 2)) - 1; + + if (page === totalPage) { + nextPage = 0; + } else { + nextPage = page + 1; + } + that._brandShow(page, nextPage); + }); + + that.$element.on('click', '.prev', function() { + var page = $(this).parent().data('page'), + prevPage = 0, + totalPage = Math.ceil(that.$element.find('li').size() / (that.options.showNum + 2)) - 1; + + if (page === 0) { + prevPage = totalPage; + } else { + prevPage = page - 1; + } + that._brandShow(page, prevPage); + }); + } + }; + $.fn.logoBrand = function(option) { + return this.each(function() { + var $this = $(this), + data = $this.data('LogoBrand'), + options = typeof option === 'object' && option; + + if (!data) { + $this.data('LogoBrand', (data = new LogoBrand(this, options))); + } + if (typeof option === 'string') { + data[option](); + } + }); + }; + $.fn.logoBrand.Constructor = LogoBrand; + $.fn.logoBrand.defaults = { + showNum: 16, + url: '/boys/getBrand' + }; +})($); +}); +define("js/product/item", ["jquery","lazyload","handlebars","source-map","index"], function(require, exports, module){ +/** + * 商品详情页 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/23 + */ + +var $ = require("jquery"), + lazyLoad = require("lazyload"), + Handlebars = require("handlebars"), + JSON2 = require("index"); + +var $imgShow = $('#img-show'), + $thumbs = $('#thumbs > .thumb-wrap'); + +var $size = $('#sizes'), + $sizes = $size.children('.size'), + $sizeWarn = $size.find('.size-warn'), + $colorSizeTip = $size.children('.color-size-tip'); + +var $num = $('#num'), + $plusNum = $('#plus-num'), + $minusNum = $('#minus-num'); + +var $addToCart = $('#add-to-cart'), + $soldOut = $('#sold-out'); + +var $lcContainer = $('.lc-container'), + $itemBuy = $('.item-buy'); + +var $descColor = $('#desc-color'); + +var thumbsLoaded = {}; + +var $main = $('.main'), + id = $main.data('id'); + +var maxStock = -1; //记录当前选中的颜色-尺码的库存量,若为-1,代表未选择尺码 + +var SLIDETIME = 200; + +var colTxt = { + def: '收藏商品', + coled: '已收藏', + hover: '取消收藏' +}; + +var Alert = require("js/common/dialog").Alert; + +require("js/product/latest-walk"); + +require("js/common/share"); + +function imgShow(src) { + $imgShow.attr('src', src); +} + +/** + * 获取当前选择的商品数目 + * @return [Number] + */ +function getNum() { + return +$num.text(); +} + +//重置Num显示为1 +function resetNum() { + $num.text('1'); + + //+-按钮状态重置 + if (maxStock === 1 || maxStock === 0) { + + //数目为1/0时 + $plusNum.addClass('dis'); + $minusNum.addClass('dis'); + } else { + $plusNum.removeClass('dis'); + $minusNum.addClass('dis'); + } +} + +//加入购物车和已售罄状态控制 +function switchBtnStatus($color) { + if ($itemBuy.length === 0) { + + //全部售罄,按钮状态不变 + return; + } + + //选中的商品存量为0或者某个颜色的total为0 + if (maxStock === 0 || ($color && ~~$color.data('total') === 0)) { + $itemBuy.addClass('hide'); //隐藏加入购物车、即将开始、立即购买等相同位置的按钮 + $soldOut.removeClass('hide'); + } else { + + //包括默认的-1情况下 + $itemBuy.removeClass('hide'); + $soldOut.addClass('hide'); + } +} + +//size warn +function showSizeWarn() { + $sizes.not('.hide').children('.size-warn').removeClass('hide'); +} + +//size title +(function() { + var $sizeTitleJson = $('#size-title-json'), + jsonHtml = $sizeTitleJson.html(), + sizeTitle; + + if (jsonHtml === '') { + return; + } + + sizeTitle = JSON2.parse(jsonHtml); + + //数据获取后删除 + $sizeTitleJson.remove(); + + $sizes.children('li').each(function() { + var $this = $(this), + key = $this.data('name'); + + $this.data('title', sizeTitle[key]); + }); +}()); + +//初始化thumbsLoaded +thumbsLoaded[$('.colors .focus').index()] = true; + +//品牌收藏 +$('#brand-favour').click(function() { + var $this = $(this); + + $.ajax({ + type: 'POST', + url: '/product/index/favoriteBrand', + data: { + brandId: $this.data('id') + } + }).then(function(data) { + if (data.code === 200) { + $this.toggleClass('coled'); + } else if (data.code === 403) { + location.href = data.data.url; + } + }); +}); + +//颜色 +$('.colors').on('click', 'li', function() { + var $this = $(this), + index = $this.index(); + + var $imgs; + + //初始化color-size显示或隐藏 + $colorSizeTip.addClass('hide'); + + //隐藏尺码提示 + $sizeWarn.addClass('hide'); + + maxStock = -1; + + if ($this.hasClass('focus')) { + + //已获取焦点的颜色再次点击,清除尺码的选中 + $sizes.eq(index).children('li').removeClass('focus'); + } else { + + //未获取焦点,选择尺码 + $this.siblings('.focus').removeClass('focus'); + $this.addClass('focus'); + + //切换图片显示 + $thumbs.not('.hide').addClass('hide'); + $imgs = $thumbs.eq(index).removeClass('hide').find('img'); + + if (typeof thumbsLoaded[index] === 'undefined') { + + //trigger layLoad + lazyLoad($imgs, { + event: 'sporty' + }); + + $imgs.trigger('sporty'); + + thumbsLoaded[index] = true; + } + + imgShow($imgs.first().data('shower')); + + //切换详细信息的颜色显示 + $descColor.text($this.data('color')); + + //切换尺码显示 + $sizes.not('.hide').addClass('hide').children('li').removeClass('focus'); + $sizes.eq(index).removeClass('hide'); + } + + resetNum(); + switchBtnStatus($this); +}); + +//缩略图鼠标移入显示 +$('#thumbs').on('mouseenter', '.thumb', function() { + imgShow($(this).data('shower')); +}); + +//尺码 +$size.on('click', 'li', function() { + var $this = $(this); + + if ($this.hasClass('focus')) { + return; + } + + maxStock = +$this.data('num'); + + $this.siblings('.focus').removeClass('focus'); + $this.addClass('focus'); + + $colorSizeTip.html($this.data('title')).removeClass('hide'); + + $sizeWarn.addClass('hide'); + + switchBtnStatus(); + + resetNum(); +}).on('click', '.size-ruler', function() { + + //尺码帮助 + + $('body,html').animate({ + scrollTop: $('.size-info').offset().top + }, 300); +}); + +//数量 +$plusNum.click(function() { + var num = getNum(); + + if ($(this).hasClass('dis')) { + return; + } + + if (maxStock === -1) { + showSizeWarn();//显示选择尺码提示 + return; + } + + //已售罄 + if (maxStock === 0) { + return; + } + + if (num === maxStock - 1) { + + //+按钮不可点 + $(this).addClass('dis'); + } + + //数目为1时点+则移除-不可点状态 + if (num === 1) { + $minusNum.removeClass('dis'); + } + + $num.text(num + 1 > maxStock ? maxStock : num + 1); +}).on('selectstart', function() { + return false; +}); + +$minusNum.click(function() { + var num = getNum(); + + if ($(this).hasClass('dis')) { + return; + } + + if (num === 2) { + $(this).addClass('dis'); + } + + if (num === maxStock) { + + //恢复+可点 + $plusNum.removeClass('dis'); + } + + $num.text(num - 1 < 0 ? 0 : num - 1); +}).on('selectstart', function() { + return false; +}); + +//限购码 +$('.get-lc:not(.dis)').hover(function() { + $lcContainer.removeClass('hide'); +}, function() { + $lcContainer.addClass('hide'); +}); + +//加入购物车 +$addToCart.click(function() { + if (maxStock === -1) { + showSizeWarn(); + return; + } + + $.ajax({ + type: 'POST', + url: '/cart/index/add', + data: { + productSku: $('.size:not(.hide) li.focus').data('sku'), + buyNumber: getNum() + } + }).then(function(data) { + var code = data.code; + + if (code === 200) { + $('#type-chose').slideUp(SLIDETIME); + $('#balance').slideDown(SLIDETIME); + + $('#cart-num').text(data.data.goods_count); //更新数目 + } + }); +}); + +//收藏 +$('#collect-product').click(function() { + var $this = $(this), + cancel; + + if ($this.hasClass('coled')) { + cancel = true; + } + + $.ajax({ + type: 'POST', + url: '/product/item/togglecollect', + data: { + productId: id, + type: cancel ? 'cancel' : 'add' + } + }).then(function(data) { + var code = data.code; + + if (code === 200) { + + $this.toggleClass('coled'); + + if (cancel) { + $this.find('em').text(colTxt.def); + } else { + $this.find('em').text(colTxt.coled); + } + } else if (code === 403) { + location.href = data.data.url; + } + }); +}).hover(function() { + var $this = $(this); + + if ($this.hasClass('coled')) { + $this.find('em').text(colTxt.hover); + } +}, function() { + var $this = $(this); + + if ($this.hasClass('coled')) { + $this.find('em').text(colTxt.coled); + } +}); + +//继续购物 +$('#keep-shopping').click(function() { + $('#type-chose').slideDown(SLIDETIME); + $('#balance').slideUp(SLIDETIME); +}); + +//立即购买 +$('#buy-now').click(function() { + var sku, + base, + myAlert; + + if (maxStock === -1) { + showSizeWarn(); + return; + } + + if ($(this).hasClass('dis')) { + return; + } + + base = $(this).data('base'); + + //潮流尖货 + if (!base) { + myAlert = new Alert('打开APP可抢购该商品哦~~'); + myAlert.show(); + return; + } + + sku = $sizes.find('.focus').data('sku'); + + if (sku && base) { + location.href = base + '?product_sku=' + sku; + } +}); + +//按钮鼠标移入效果【dis状态的按钮状态不变】 +$('.buy-btn').mouseover(function() { + if ($(this).hasClass('dis')) { + return; + } + + $(this).addClass('hover'); +}).mouseleave(function() { + $(this).removeClass('hover'); +}); + +//商品详情/材质洗涤切换 +$('.description-material').on('click', '.title', function() { + var $this = $(this), + index = $this.index(); + + var $description = $('.description-content'), + $material = $('.material-content'); + + if ($this.hasClass('cur')) { + return; + } + + $this.addClass('cur'); + $this.siblings('.cur').removeClass('cur'); + + if (index === 0) { + + //商品信息 + $description.slideDown(SLIDETIME); + $material.slideUp(SLIDETIME); + } else { + $description.slideUp(SLIDETIME); + $material.slideDown(SLIDETIME); + } +}); + +//售后服务 +$('.after-service-switch').click(function() { + var $this = $(this), + $content = $this.next('.after-service-content'); + + var html = { + def: '', + spread: '' + }; + + if ($content.css('display') === 'none') { + $content.slideDown(SLIDETIME); + + $this.find('.triangle').html(html.spread); + } else { + $content.slideUp(SLIDETIME); + + $this.find('.triangle').html(html.def); + } +}); + + +//商品详情区的热点 +$.ajax({ + type: 'GET', + url: '/product/item/hotarea', + data: { + productId: id + } +}).then(function(html) { + $('#details-html').prepend(html); + + //修正热区尺寸使居中 + $('.hot-point-wrap > img').load(function() { + $(this).parent('.hot-point-wrap').width($(this).width()); + }); + + //Bind Hover event + $('.hot-point').hover(function() { + $(this).addClass('hover'); + }, function() { + $(this).removeClass('hover'); + }); +}); + +//商品详情懒加载 +lazyLoad($('#details-html img')); + +//只有一个尺码(多个或一个颜色)时默认选中第一个未售罄的颜色的第一个尺码 +(function() { + var hasOnlyOneSize = true, + i; + + for (i = 0; i < $sizes.length; i++) { + if ($sizes.eq(i).find('li').length !== 1) { + hasOnlyOneSize = false; + break; + } + } + + if (hasOnlyOneSize) { + $sizes.eq($('.colors .focus').index()).find('li').click(); + } +}()); + +//咨询和评价 +(function() { + var commentPage = 1, + consultPage = 1; + + var commentsTpl = Handlebars.compile($('#comments-tpl').html()), + consultsTpl = Handlebars.compile($('#consults-tpl').html()); + + var $commentsUl = $('#comments-ul'), + $consultsUl = $('#consults-ul'); + + var $commentNum = $('.comment-num'), + $consultNum = $('.consult-num'); + + var loadingComments, + loadingConsults; + + //购买评价 + function loadComments() { + if (loadingComments) { + return; + } + + loadingComments = true; + $.ajax({ + type: 'GET', + url: '/product/item/comments', + data: { + productId: id, + page: commentPage + } + }).then(function(data) { + var res; + + if (data.code === 200) { + res = data.data; + + if (res.length === 0) { + $commentsUl.next('.more-wrap').addClass('hide'); + return; + } + + //更新总数显示 + $commentNum.text(res[0].total); + + $commentsUl.append(commentsTpl({ + comments: res + })); + commentPage++; + } + }).always(function() { + loadingComments = false; + }); + } + + //顾客咨询 + function loadConsults() { + if (loadingConsults) { + return; + } + + loadingConsults = true; + + $.ajax({ + type: 'GET', + url: '/product/item/consults', + data: { + productId: id, + page: consultPage + } + }).then(function(data) { + var res; + + if (data.code === 200) { + res = data.data; + + if (res.length === 0) { + $consultsUl.next('.more-wrap').addClass('hide'); + return; + } + + //更新总数显示 + $consultNum.text(res[0].total); + + $consultsUl.append(consultsTpl({ + consults: res + })); + consultPage++; + } + }).always(function() { + loadingConsults = false; + }); + } + + //评价和咨询切换 + $('.consult-comment').on('click', '.title', function() { + var $this = $(this), + index = $this.index(); + + var $comments = $('.comments'), + $consults = $('.consults'); + + if ($this.hasClass('cur')) { + return; + } + + $this.addClass('cur'); + $this.siblings('.cur').removeClass('cur'); + + if (index === 0) { + + //咨询 + $consults.slideDown(SLIDETIME); + $comments.slideUp(SLIDETIME); + } else { + $consults.slideUp(SLIDETIME); + $comments.slideDown(SLIDETIME); + } + }).on('click', '.load-more', function() { + var $this = $(this); + + if ($this.hasClass('load-more-comments')) { + loadComments(); + } else { + loadConsults(); + } + }); + + //我要咨询 + $('#consults-btn').click(function() { + + //TODO:点击我要资讯的时候更新验证码显示 + $('.new-consult').removeClass('hide'); + $('.consult-success').addClass('hide'); + }); + + //提交咨询 + $('#submit-consult').click(function() { + var $this = $(this), + $parent = $this.closest('.new-consult'), + $textarea = $parent.find('.my-consult'), + content = $.trim($textarea.val()); + + var $consultWarn = $parent.find('.consult-warn'); + + var pass = true; + + if (content === '') { + $textarea.addClass('error'); + $consultWarn.removeClass('hide'); + + pass = false; + } else { + $textarea.removeClass('error'); + $consultWarn.addClass('hide'); + } + + if (pass === false) { + return; + } + + $.ajax({ + type: 'POST', + url: '/product/item/addconsult', + data: { + productId: id, + content: content + } + }).then(function(data) { + var code = data.code; + + if (code === 200) { + $parent.addClass('hide'); + + $parent.siblings('.consult-success').removeClass('hide'); + + //清空输入 + $textarea.val(''); + } else if (code === 403) { + + //跳转登录页 + location.href = data.data.url; + } + }); + }); + + loadComments(); + loadConsults(); +}()); +}); +define("js/common/dialog", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 弹框公共组件 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2016/2/24 + */ + +var $ = require("jquery"), + Handlebars = require("handlebars"); + +var defaultOptions = { + mask: true, + closeIcon: true, + refreshOnClose: false +}; + +var tpl = + '<div class="yoho-dialog {{className}} hide">' + + '{{#if closeIcon}}' + + '<span class="close">' + + '<i class="iconfont"></i>' + + '</span>' + + '{{/if}}' + + '<div class="content">' + + '{{{content}}}' + + '</div>' + + '<div class="btns">' + + '{{# btns}}' + + '<span {{#if id}}id="dialog-{{id}}"{{/if}} class="btn{{#each btnClass}} {{.}}{{/each}}">' + + '{{name}}' + + '</span>' + + '{{/ btns}}' + + '</div>' + + '</div>'; + +var tplFn = Handlebars.compile(tpl); + +//背景蒙版 +function createMask() { + if ($('.body-mask').length === 0) { + $('body').append('<div class="body-mask hide"></div>'); + } + + return $('.body-mask').css({ + height: $(document).height(), + width: $(document).width() + }); +} + +function createDialog(data) { + $('body').append(tplFn(data)); + + return $('.yoho-dialog'); +} + +function cerateSubContent(text) { + var $yohoDialog = $('.yoho-dialog'), + subContent = '<p class="sub-content">' + text + '</p>'; + + if ($yohoDialog && $yohoDialog.length > 0) { + $yohoDialog.find('.content').after(subContent); + } +} + +function Dialog(options) { + var opt = $.extend({}, defaultOptions, options); + var that = this, + i; + + //实现继承时,只返回实例,不生成html + if (opt.inherit) { + return this; + } + + if (opt.mask) { + that.$mask = createMask(); + } + + that.$el = createDialog(opt); + + + if (opt.subContent) { + cerateSubContent(opt.subContent); + } + + if (opt.subContents) { + for (i = opt.subContents.length - 1; i >= 0; i--) { + cerateSubContent(opt.subContents[i]); + } + } + + //绑定x关闭事件 + that.$el.find('.close').click(function() { + that.close(); + if (options.refreshOnClose) { + window.location.reload(); + } + }); + + //绑定btn关闭事件 + that.$el.find('.btn-close').click(function() { + that.close(); + }); + + function bindBtnEvt(index) { + that.$el.find('#dialog-' + opt.btns[index].id).on('click', function() { + opt.btns[index].cb && opt.btns[index].cb(); + }); + } + + //绑定按钮事件 + if (!!opt.btns) { + for (i = 0; i < opt.btns.length; i++) { + bindBtnEvt(i); + } + } +} + +Dialog.prototype.close = function() { + this.$mask && this.$mask.addClass('hide'); + this.$el.remove(); +}; + +Dialog.prototype.show = function() { + this.$mask && this.$mask.removeClass('hide'); + this.$el.removeClass('hide').css({ + 'margin-top': -this.$el.height() / 2, + 'margin-left': -this.$el.width() / 2 + }); +}; + +exports.Dialog = Dialog; + +//Alert +function Alert(content) { + var that = this; + var option = { + content: content, + className: 'alert-dialog', + btns: [ + { + id: 'alert-sure', + btnClass: ['alert-sure'], + name: '确定', + cb: function() { + that.close(); + } + } + ] + }; + + Dialog.call(this, option); +} + +Alert.prototype = new Dialog({ + inherit: true +}); +Alert.prototype.constructor = Alert; +exports.Alert = Alert; + +//Confirm +function Confirm(opt) { + var that = this; + + var option = { + content: opt.content, + className: 'confirm-dialog', + btns: [ + { + id: 'confirm-sure', + btnClass: ['confirm-sure'], + name: '确定', + cb: opt.cb + }, + { + id: 'confirm-cancel', + btnClass: ['confirm-cancel'], + name: '取消', + cb: function() { + that.close(); + } + } + ] + }; + + Dialog.call(this, option); +} + +Confirm.prototype = new Dialog({ + inherit: true +}); +Confirm.prototype.constructor = Confirm; +exports.Confirm = Confirm; + +}); +define("js/common/share", ["jquery"], function(require, exports, module){ +/** + * 分享 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2016/3/1 + */ + +var $ = require("jquery"); + +function shareBase(options) { + var openUrl = ''; + var defOption = { + title: '', + url: window.location.href, + weixinUrl: '', + image: '', + desc: '', + channel: '' + }; + var shareChannels = ['weibo', 'tweibo', 'qzone', 'renren', 'qq', 'douban','weixin']; + var sharebox; + var shareCon = '<em><i></i></em>'; + + defOption = $.extend(defOption, options); + + if ($.inArray(defOption.channel, shareChannels) === -1) { + alert('不存在的分享平台!'); + return false; + } + + switch (defOption.channel) { + case 'weibo': + openUrl = 'http://service.weibo.com/share/share.php?url=' + defOption.url + '&title=' + + defOption.title + '&appkey=3739328910&searchPic=true&pic=' + defOption.image; + break; + case 'tweibo': + openUrl = 'http://share.v.t.qq.com/index.php?c=share&a=index&url=' + defOption.url + '&title=' + + defOption.title + '&appkey=c0af9c29e0900813028c2ccb42021792&pic=' + defOption.image; + break; + case 'qzone': + openUrl = 'http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=' + defOption.url + '&title=' + + defOption.title + '&desc=&summary=' + defOption.desc + '&site=YOHO!BUY 有货&pics=' + defOption.image; + break; + case 'renren': + openUrl = 'http://widget.renren.com/dialog/share?resourceUrl=' + defOption.url + '&srcUrl=' + + defOption.url + '&desc=' + defOption.desc + '&title=' + defOption.title + '&description=' + + defOption.desc + '&pic=' + defOption.image; + break; + case 'qq': + openUrl = 'http://connect.qq.com/widget/shareqq/index.html?url=' + defOption.url + '&desc=' + + defOption.desc + '&title=' + defOption.title.replace('%', '') + '&desc=&summary=' + + defOption.desc + '&site=YOHO!BUY 有货&pics=' + defOption.image; + break; + case 'weixin': + openUrl = 'http://s.jiathis.com/qrcode.php?url=' + defOption.weixinUrl + '&desc=' + + defOption.desc + '&title=' + defOption.title + '&description=' + + defOption.desc + '&pic=' + defOption.image; + break; + case 'douban': + openUrl = '//www.douban.com/share/service?href=' + defOption.url + '&text=' + + defOption.desc + '&image=' + defOption.image + '&title=' + defOption.title + '&comment='; + break; + } + + if (defOption.channel === 'weixin') { + if (!defOption.self) { + return; + } + + sharebox = defOption.self.closest('.share-to').find('.weixin-share-box'); + + if (sharebox.length > 0) { + shareCon += '<div class="con"><h2>分享到微信朋友圈</h2><p class="pic">' + + '<img src="' + openUrl + '" /></p><p class="w">打开微信,点击底部得“发现”,使用<br/>“扫一扫“即可将网页分享到我的朋友圈。</p>' + + '<a href="javascript:void(0)" class="close">x</a></div>'; + sharebox.find('div').length > 0 ? sharebox.show() : sharebox.html(shareCon).show(); + + sharebox.find('.close').click(function() { + $(this).closest('.weixin-share-box').hide(); + }); + } + } else { + window.open(encodeURI(openUrl)); + } +} + +function share(channel, self) { + var title = document.title.replace(/(^\s*)|(\s*$)/g, ''); + var desc = $('#share-desc').val(); + var image = $('#share-img').val(); + var weixinUrl = $('#weixin-url').val(); + + + if (channel === 'weibo' || channel === 'tqq') { + shareBase({ + channel: channel, + title: title, + image: image + }); + } else { + shareBase({ + channel: channel, + title: title, + desc: desc, + image: image, + self: self, + weixinUrl: weixinUrl + }); + } +} + +$('.share-wrapper').on('click', 'i', function() { + var $el = $(this), + type = $el.data('type'), + $weixinShareBox = $('.weixin-share-box'); + + if (type === 'weixin') { + share(type, $el); + } else { + $weixinShareBox.hide(); + share(type); + } +}); + +}); +define("js/product/shop-index", ["jquery","lazyload","handlebars","source-map","jquery-pjax"], function(require, exports, module){ +/** + * 首页 + * @author: bikai<kai.bi@yoho.cn> + * @date: 2016/4/26 + */ + +var $ = require("jquery"), + lazyLoad = require("lazyload"), + product = require("js/product/product"); + +var $shopIntro = $('.shop-intro'), + $shopCollect = $('.shop-collect'), + $sliderLeft = $('.slider-left'), + $allGoods = $('.all-goods'), + $fixedArea = $allGoods.find('.fixed-area'), + fixedAreaTop = $fixedArea.offset() ? $fixedArea.offset().top : 0; + +// Pjax +require("jquery-pjax"); + +require("js/common/slider"); +require("js/product/list"); + +product.init(4); + +lazyLoad($('img.lazy')); + +if ($sliderLeft.length) { + $sliderLeft.slider(); +} + +$shopIntro.on('click', function() { + $('.pop-shop-intro').show(); + $('.mask').show(); +}); + +$('.close-btn, .mask').on('click', function() { + $('.pop-shop-intro').hide(); + $('.mask').hide(); +}); + + +// 收藏店铺 +function colloectAction() { + var $colloectIcon = $shopCollect.find('.shop-collect-ico'), + $colloectText = $shopCollect.find('.shop-collect-text'), + isFavorite = $colloectIcon.hasClass('on'), + needColloect = window.cookie('needColloect'); + + $.ajax({ + type: 'post', + url: '/shoplist/setFavorite', + data: { + isFavorite: isFavorite ? 0 : 1, + needColloect: needColloect, + shopId: $shopCollect.data('id') + }, + success: function(res) { + if (res.code === 200) { + if (isFavorite) { + $colloectIcon.removeClass('on'); + $colloectText.html('收藏'); + } else { + $colloectIcon.addClass('on'); + $colloectText.html('已收藏'); + } + + if (needColloect) { + $colloectIcon.addClass('on'); + $colloectText.html('已收藏'); + } + } else if (res.code === 401) { + window.setCookie('needColloect', '1', { + path: '/', + domain: '.yohobuy.com', + expires: 90 + }); + location.href = res.url; + } + } + }); +} + +$shopCollect.on('click', function() { + colloectAction(); +}); + +if (window.cookie('needColloect') * 1 === 1 && window.getUid()) { + colloectAction(); + window.setCookie('needColloect', '', { + path: '/', + domain: '.yohobuy.com', + expires: 1 + }); +} + +// 全部商品使用 pjax 翻页 +$allGoods.pjax('a.pjax', '.goods-wrap', { + timeout: 5000, + scrollTo: false // 默认滚动没有动画,禁止掉 +}).on('pjax:end', function() { + product.init(4); + lazyLoad($('img.lazy')); + + $fixedArea = $allGoods.find('.fixed-area'); // 翻页后 fixed-area 区域有变化,需要更新选择器 + + // 分页后移动到全部商品 + $('html, body').animate({ + scrollTop: $allGoods.offset().top - 30 + }); +}).on('click', '.menu-list li', function() { + var $this = $(this); + + $this.siblings().removeClass('on'); + $this.addClass('on'); +}); + +$(window).on('scroll', function() { + var scrollTop = $(this).scrollTop(); + + if (scrollTop > fixedAreaTop) { + $fixedArea.css({ + position: 'fixed', + top: 0 + }); + } else { + $fixedArea.css({ + position: 'static', + top: 0 + }); + } +}); + +}); +define("js/index/index", ["jquery","lazyload","handlebars","source-map"], function(require, exports, module){ +/** + * 首页 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/11/23 + */ + +var $ = require("jquery"), + lazyLoad = require("lazyload"), + homePage = $('.home-page').data('page'), + brandUrl = $('.logo-brand').data('url'); + + +require("js/common/slider"); +require("js/common/slider2"); +require("js/common/logo-brand"); + +require("js/common/accordion"); + +$(document).on('mouseenter', '.imgopacity a img', function() { + $(this).css('opacity', 0.8); +}); +$(document).on('mouseout', '.imgopacity a img', function() { + $(this).css('opacity', 1); +}); + + + +if ($.inArray(homePage, ['boys','girls','kids','lifestyle']) > -1) { + require("js/common/new-arrivls")({ + type: homePage, + url: '/common/getNewArrival', + count: (homePage === 'boys') || (homePage === 'lifestyle') ? 5 : 4, + rows: [5,3] + }); + window.setCookie('_Channel', homePage, { + domain: '.yohobuy.com', + path: '/', + expires: 365 + }); +} + + + +lazyLoad($('img.lazy')); +if (homePage === 'boys') { + $('.slide-container').slider({ + pagination: '.thumb-pagination' + }); +} else { + $('.center-col').slider(); + $('.slide-container').slider(); +} + +if (homePage === 'boys') { + $('.logo-brand').logoBrand({ + url: brandUrl + }); + $('.img-brand').slider2(); +} else { + $('.logo-brand').logoBrand({ + showNum: 10, + url: brandUrl + }); + $('.img-slider-wrapper').slider2(); +} + + + +}); +define("js/common/slider2", ["jquery"], function(require, exports, module){ +/** + * (品牌优选)图片幻灯片插件 + * @author: wangqing(robin.wang@yoho.cn) + * @date: 205/7/2 + */ +var $ = require("jquery"); + +(function($) { + $.fn.slider2 = function(options) { + function autoplay(index, limit, toright) { + if (toright === true) { + $('.next').trigger('click'); + if (index === (limit - 3)) { + autoplayrecycle(--index, limit, false); + } else { + autoplayrecycle(++index, limit, true); + } + } else { + $('.prev').trigger('click'); + if (index === 0) { + autoplayrecycle(++index, limit, true); + } else { + autoplayrecycle(--index, limit, false); + } + } + } + + function autoplayrecycle(index, limit, toright) { + window.setTimeout(autoplay, $.fn.slider2.defaults.delaytime, index, limit, toright); + } + + function changePic(index, width, callback) { + var offersetleft = -(index * width); + + $('.img-list') + .animate({ + 'margin-left': offersetleft + 'px' + }, 'slow', callback); + + } + $.fn.slider2.defaults = { + index: 0, + shownum: 3, + autoplay: false, + delaytime: 3000 + }; + return this.each(function() { + var opts = $.extend({}, $.fn.slider2.defaults, options); + var mr = parseInt($('.img-item').css('margin-right')); + var $banneritems = $('.img-item'); + var bannerarr = []; + var _width = $banneritems.outerWidth() + mr, + _size = $banneritems.length, + j = 0; + + if (_size <= 3) { + $(this).find('.img-brand-switch').hide(); + return; + } + for (j = 0; j < $banneritems.length; j++) { + bannerarr.push($banneritems[j]); + } + _size = bannerarr.length; + $(this).find('.img-list').css({ + width: (_width * _size) + }); + $(this).find('.next').on('click', function(e) { + var i = 0, + _obj = null; + + e.preventDefault(); + + changePic(3, _width, function() { + for (i = 0; i < 3; i++) { + _obj = bannerarr.shift(); + + $('.img-item').parent().append(_obj.outerHTML); + bannerarr.push(_obj); + } + $('.img-item').first().remove(); + $('.img-item').first().remove(); + $('.img-item').first().remove(); + $('.img-list').css({ + 'margin-left': '0' + }); + }); + }); + $(this).find('.prev').on('click', function(e) { + var i = 0, + _obj = null, + offersetleft = ''; + + e.preventDefault(); + for (i = 0; i < 3; i++) { + _obj = bannerarr.pop(); + + $('.img-item').parent().prepend(_obj.outerHTML); + bannerarr.unshift(_obj); + } + offersetleft = 3 * _width; + $('.img-item').last().remove(); + $('.img-item').last().remove(); + $('.img-item').last().remove(); + $('.img-list').css({ + 'margin-left': -offersetleft + 'px' + }); + changePic(0, _width); + }); + if (opts.autoplay === true) { + autoplayrecycle(opts.index, _size, true); + } + }); + + }; + +}($)); +}); +define("js/common/accordion", ["jquery"], function(require, exports, module){ +var Slide = require("js/common/yohoui/YH.slide"); +var $ = require("jquery"); + +var $contain = $('.slide-accordion'); +var $item = $contain.find('li'); + +var $width = $item.width(); +var $spn = parseInt($('.home-page').width()) === 1150 ? (120 + 5) : (102 + 5); +var slide; + +function switchfun(to) { + $item.each(function(index) { + $(this).css('zIndex', index); + if (index <= to) { + $(this).stop().animate({ + left: index * $spn + }, 400); + } else { + $(this).stop().animate({ + left: (to) * $spn + $width + $spn * (index - to - 1) + }, 400); + } + }); +} + +switchfun(0); + +slide = new Slide({ + length: 5, + loop: false, + auto: false, + timeout: 2, + index: 0 +}); + +slide.on('change', function(data) { + switchfun(data.to); +}); + +$item.mouseover(function() { + slide.go($(this).index()); +}); + +slide.init(); +}); +define("js/common/yohoui/YH.slide", [], function(require, exports, module){ +var me = require("js/common/yohoui/YH.base"); + +var slide = function(options) { + this.__lastTime = null; + this.__isStop = false; + options = me.extend(this.defaults, options); + slide.superclass.constructor.call(this, options); +}; + +me.inherit(slide, me.assembly); + +slide.prototype.oninit = function() { + var __self = this, + _o = __self.options; + + if (_o.auto) { + __self.play(); + } + __self.go(_o.index); + return this; +}; + +slide.prototype.go = function(_to, _from) { + var __self = this, + _o = __self.options; + var _direction,_loop,_current,_index,_originalto,o,key,_e; + + if (__self.__lastTime) { + clearTimeout(__self.__lastTime); + __self.__lastTime = null; + } + _from = 'undefined' === typeof _from ? _o.index : _from; + _direction = _to === _from ? 0 : _to > _from ? 1 : -1; + _loop = _o.loop, _index = _o.length - 1, _originalto = _to; + if (_loop) { + if (_to > _index) { + _to = _to - _index - 1; + } else { + if (0 > _to) { + _to = _to + _index + 1; + } else { + _to = _to; + } + } + } else { + if (_to > _index) { + _to = _index; + } else { + if (0 > _to) { + _to = 0; + } else { + _to = _to; + } + } + } + _current = _o.index = _to; + + o = { + from: _from, + to: _to, + originalto: _originalto, + direction: _direction + }; + + for (key in __self.registerEvent) { + if (__self.registerEvent[key].length > 0) { + for (_e in __self.registerEvent[key]) { + if (__self.registerEvent[key].hasOwnProperty(_e)) { + __self.registerEvent[key][_e](o); + } + } + } + } + + if (_current !== _index || _to) { + if (!__self.__isStop && _o.auto) { + __self.play(); + } + } else { + if (__self.__lastTime) { + clearTimeout(__self.__lastTime); + } + } +}; + +slide.prototype.play = function() { + var __self = this, + _o = __self.options; + + __self.__lastTime = setTimeout(function() { + __self.next(); + }, 1000 * _o.timeout); + return this; +}; + +slide.prototype.next = function() { + var __self = this, + _o = __self.options; + var _from = _o.index; + var _to = _from + _o.step; + + __self.go(_to, _from); +}; + +slide.prototype.prev = function() { + var __self = this, + _o = __self.options; + var _from = _o.index; + var _to = _from - _o.step; + + __self.go(_to, _from); +}; + +slide.prototype.pause = function() { + var __self = this; + + if (__self.__lastTime) { + clearTimeout(__self.__lastTime); + } + __self.__isStop = true; +}; + +slide.prototype.resume = function() { + var __self = this; + + __self.__isStop = false; + __self.play(); +}; + +slide.prototype.defaults = { + index: 0, + timeout: 5, + step: 1, + per: 1, + auto: false, + loop: false +}; + +module.exports = slide; +}); +define("js/common/yohoui/YH.base", [], function(require, exports, module){ +var assembly; +var classtype = { + '[object Array]': 'array', + '[object Boolean]': 'boolean', + '[object Date]': 'date', + '[object Function]': 'function', + '[object Number]': 'number', + '[object Object]': 'object', + '[object RegExp]': 'regexp', + '[object String]': 'string' + }; +var me = { + __Index: 0, + list: [], + get: function(id) { + return id === undefined ? this.list : this.list[id]; + }, + fn: function() { }, + inherit: function(childClass, parentClass) { + var Constructor = me.fn; + + Constructor.prototype = parentClass.prototype; + childClass.prototype = new Constructor(); + + childClass.prototype.constructor = childClass; + childClass.superclass = parentClass.prototype; + + if (childClass.prototype.constructor === Object.prototype.constructor) { + childClass.prototype.constructor = parentClass; + } + }, + extend: function(obj, newProperties) { + var key; + + for (key in newProperties) { + if (newProperties.hasOwnProperty(key)) { + obj[key] = newProperties[key]; + } + } + return obj; + }, + copy: function(TargetClass, obj, newProperties) { + var value,o,key; + + if (typeof obj !== 'object') { + return obj; + } + value = obj.valueOf(); + if (obj !== value) { + return new obj.constructor(value); + } + if (obj instanceof obj.constructor && obj.constructor !== Object) { + if (TargetClass) { + o = new TargetClass(); + } else { + o = me.clone(obj.constructor.prototype); + } + + for (key in obj) { + if (TargetClass || obj.hasOwnProperty(key)) { + o[key] = obj[key]; + } + } + } else { + o = {}; + for (key in obj) { + if (o.hasOwnProperty(key)) { + o[key] = obj[key]; + } + } + } + if (newProperties) { + for (key in newProperties) { + if (o.hasOwnProperty(key)) { + o[key] = newProperties[key]; + } + } + } + + return o; + }, + clone: function(obj) { + me.__cloneFunc.prototype = obj; + return new me.__cloneFunc(); + }, + __cloneFunc: function() { + }, + delegate: function(func, scope) { + var args; + + scope = scope || window; + + if (arguments.length > 2) { + args = Array.prototype.slice.call(arguments, 2); + + return function() { + return func.apply(scope, args); + }; + } else { + return function() { + return func.call(scope); + }; + } + }, + dom: function($select, classCss) { + var wrap = $select; + var name, DOM = { + wrap: wrap + }, + els = wrap[0].getElementsByTagName('*'), + elsLen = els.length; + var i; + + for (i = 0; i < elsLen; i++) { + name = els[i].className; + if (name.indexOf(classCss) > -1) { + name = name.split(classCss)[1]; + } + if (name) { + DOM[name] = wrap.find(els[i]); + } + } + return DOM; + }, + + //模板引擎 + template: function() { + var result, key, reg,i; + var args = arguments; + + if (args.length > 0) { + if (me.isString(args[0])) { + result = args[0]; + if (args.length === 2 && me.isObject(args[1])) { + for (key in args[1]) { + if (args[1][key] !== undefined) { + reg = new RegExp('({' + key + '})', 'g'); + + result = result.replace(reg, args[1][key]); + } + } + } else { + for (i = 1; i < args.length; i++) { + if (args[i] !== undefined) { + reg = new RegExp('({[' + (i - 1) + ']})', 'g'); + + result = result.replace(reg, args[i]); + } + } + } + } + } + return result; + }, + __type: function(obj) { + return obj == null ? String(obj) : classtype[Object.prototype.toString.call(obj)] || 'object'; + }, + isObject: function(obj) { + return this.isFunction(obj) || !!(obj && 'object' === typeof obj); + }, + isFunction: function(obj) { + return this.__type(obj) === 'function'; + }, + isArray: Array.isArray || function(obj) { + return this.__type(obj) === 'array'; + }, + isNum: function(obj) { + return !isNaN(parseFloat(obj)) && isFinite(obj); + }, + isString: function(obj) { + return this.__type(obj) === 'string'; + }, + each: function(data, callback, args) { + var i, len; + + if (me.isArray(data)) { + for (i = 0, len = data.length; i < len; i++) { + if (callback.call(data[i], i, data[i], args) === false) { + break; + } + } + } else { + + for (i in data) { + if (callback.call(data[i], i, data[i], args) === false) { + break; + } + } + } + }, + funManager: { + __loadList: {}, + __loadFun: function(item, callback, win) { + + if (item.methord && me.isFunction(item.methord())) { + win = win || window; + item.methord()(item, function() { + callback(); + }, win); + } + }, + load: function(fns, statechange, win, __index) { + __index = __index || 0; + + if (fns[__index]) { + me.funManager.__loadFun(fns[__index], function() { + me.funManager.load(fns, statechange, win, __index + 1); + }, win); + } + statechange(__index, win); + }, + get: function(id) { + return this.__loadList[id]; + } + }, + log: function(msg) { + var console = window.console || { + log: function() { } + }; + + console.log(msg); + }, + Event: { + mousewheel: function(e) { + var _eoe = e.originalEvent; + var _de = _eoe.detail ? _eoe.detail * -1 : _eoe.wheelDelta / 40; + var _direction = _de < 0 ? -1 : 1; + + return { + direction: _direction, + unit: _de + }; + }, + __: function(_e, el, event, handle) { + var key; + + for (key in _e) { + if (window[_e[key].validator]) { + el[_e[key].validator](_e[key].prefix + event, handle, false); + break; + } + } + }, + add: function(el, event, handle) { + var _e = [ + { + validator: 'addEventListener', + prefix: '' + }, + { + validator: 'attachEvent', + prefix: 'on' + } + ]; + + this.__(_e, el, event, handle); + }, + remove: function(el, event, handle) { + var _e = [ + { + validator: 'removeEventListener', + prefix: '' + }, + { + validator: 'detachEvent', + prefix: 'on' + } + ]; + + this.__(_e, el, event, handle); + } + }, + getUid: function(_name) { + return me.template('me-{0}{1}-{2}', _name, new Date().getTime(), me.__Index++); + }, + Browser: { + isTouch: function() { + var msGesture = window.navigator && window.navigator.msPointerEnabled && window.MSGesture; + + return (('ontouchstart' in window) || msGesture || window.DocumentTouch) ? true : false; + }, + Prefix: function() { + var i; + + var props = ['perspectiveProperty', 'WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']; + var obj = document.createElement('div'); + + for (i in props) { + if (obj.style[props[i]] !== undefined) { + return me.template('-{0}-', props[i].replace('Perspective', '').toLowerCase()); + } + } + }, + parseURL: function(url) { + var a = document.createElement('a'); + var ret,seg,len,i,s; + + a.href = url; + return { + source: url, + protocol: a.protocol.replace(':', ''), + host: a.hostname, + port: a.port, + query: a.search, + params: (function() { + ret = {}, + seg = a.search.replace(/^\?/, '').split('&'), + len = seg.length, i = 0, s; + + for (; i < len; i++) { + if (!seg[i]) { + continue; + } + s = seg[i].split('='); + ret[s[0]] = s[1]; + } + return ret; + })(), + file: (a.pathname.match(/\/([^\/?#]+)$/i) || [null, ''])[1], + hash: a.hash.replace('#', ''), + path: a.pathname.replace(/^([^\/])/, '/$1'), + relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [null, ''])[1], + segments: a.pathname.replace(/^\//, '').split('/') + }; + } + }, + Array: { + indexOf: function(array, val) { + var i; + + for (i = 0; i < array.length; i++) { + if (this[i] === val) { + return i; + } + } + return -1; + }, + remove: function(array, val) { + var index = this.indexOf(array, val); + + if (index > -1) { + array.splice(index, 1); + } + return array; + } + } +}; + +assembly = function(options) { + this.initialized = false; + this.registerEvent = { + before: [], + change: [], + after: [] + }; + this.options = options; + + this.init(options); +}; + +assembly.output = function() { + me.log(me.list); +}; +assembly.prototype.oninit = me.fn; + +assembly.prototype.init = function(cfg) { + this.initialized = true; + + // function _getClassName(_constructor, _constr) { + // var _constr = _constr || ""; + // if (_constructor.superclass) { + // var args = /(\w+)\.superclass/.exec(_constructor.arguments.callee); + // if (args != null) { + // _constr += args[1] + "-"; + // // return _getClassName(_constructor.superclass.constructor, _constr); + // } + // } + // return _constr; + // } + this.__Uid = me.getUid('me'); + this.oninit(cfg); + me.list[this.__Uid] = this; +}; +assembly.prototype.destory = function() { + this.initialized = false; + delete me.list[this.__Uid]; +}; +assembly.prototype.getUid = function() { + return this.__Uid; +}; +assembly.prototype.getOptions = function() { + return this.options; +}; +assembly.prototype.config = function() { + if (arguments.length > 0) { + if (typeof (arguments[0]) === 'string') { + if (arguments.length > 1) { + this.options[arguments[0]] = arguments[1]; + } else { + return this.options[name]; + } + } + } else { + return this.options; + } +}; +assembly.prototype.on = function(name, callback) { + var __self = this; + var _e = __self.registerEvent[name]; + + if (_e) { + _e.push(callback); + } + return _e; +}; +assembly.prototype.off = function(name, callback) { + var __self = this; + var _e = __self.registerEvent[name]; + var e = []; + + me.each(_e, function(name, _callback) { + + if (_callback === callback) { + e.push(name); + } + }); + + me.each(e.reverse(), function(name, _callback) { + _e.splice(_callback, 1); + }); +}; +me.assembly = assembly; + +module.exports = me; +}); +define("js/common/new-arrivls", ["jquery","lazyload","handlebars","source-map"], function(require, exports, module){ +var $ = require("jquery"), + lazyload = require("lazyload"); +var Handlebars = require("handlebars"); + +function InfiniteLoad(options) { + var defaults = { + index: 0, + isload: true,//是否正在加载 + isrun: true,//判断是否执行 + offset: { + height: null, + width: null + } + }; + + this.registerEvent = { + before: [], + change: [], + after: [] + }; + + this.options = $.extend(true, {}, defaults, options); + + return this; +} + +InfiniteLoad.prototype.on = function(name, callback) { + var g = this; + var _e = g.registerEvent[name]; + + if (_e) { + _e.push(callback); + } + return _e; +}; + +InfiniteLoad.prototype.exect = function(key, params) { + var g = this; + var e; + + if (g.registerEvent[key] && g.registerEvent[key].length > 0) { + for (e in g.registerEvent[key]) { + if (g.registerEvent[key].hasOwnProperty(e)) { + g.registerEvent[key][e](params); + } + } + } +}; + +InfiniteLoad.prototype.init = function() { + var g = this; + var p = this.options; + + function __loadMore() { + + if (p.isrun && p.isload && g.__directionCalculation()) { + p.isload = false; + p.index++; + g.exect('after', p); + } + + g.exect('change', p); + } + + g.exect('before', p); + + $(window).scroll(__loadMore); +}; + +InfiniteLoad.prototype.emit = function() { + var p = this.options; + + p.isload = true; +}; + +InfiniteLoad.prototype.stop = function() { + var p = this.options; + + p.isrun = false; + p.isload = false; +}; + +InfiniteLoad.prototype.__directionCalculation = function() { + var p = this.options; + + if (p.offset.height && p.offset.height() > 0 && $(window).scrollTop() + $(window).height() >= p.offset.height()) { + return true; + } + return false; +}; + +module.exports = function(data) { + var $container = $('#newarrivals .goods-container'); + var $load = $('.loading a'); + var load = new InfiniteLoad({ + index: 1, + isload: false, + offset: { + height: function() { + return parseFloat($container.offset().top) + parseFloat($container.height()) - 200; + } + } + }); + var loadAjax; + var url = data.url, + count = data.count, + rows = data.rows; + + data.pageIndex = 0; + + delete data.url; + delete data.count; + delete data.rows; + + loadAjax = function(url, data, count) { + + var options = { + type: 'POST', + url: url, + success: function(result) { + var code = result.code; + var myTemplate,len,pos; + + if (code === 200) { + len = result.goods.length % count; + pos = result.goods.length - len - 1; + + result.goods.splice(pos, len); + + myTemplate = Handlebars.compile(load.tpl); + + $container.append(myTemplate(result.goods)); + data.pageIndex = data.pageIndex + result.goods.length; + + //懒加载插件貌似有点问题,图片先直接展示 + lazyload($container.find('img.lazy')); + + load.emit(); + } else { + + load.stop(); + $load.html('查看更多'); + } + }, + error: function() { + + load.stop(); + $load.html('网络断开连接了~'); + } + }; + + options.data = data; + $.ajax(options); + }; + + + load.on('after', function(p) { + + data.pageCount = count * rows[1]; + + loadAjax(url, data); + }); + + load.on('before', function(p) { + + + load.tpl = '{{#each this}}'; + load.tpl += '<div class="good-info imgopacity" data-skn="{{skn}}">'; + load.tpl += ' <div class="tag-container clearfix">'; + load.tpl += ' {{# tags}}'; + load.tpl += ' {{# isNew}}'; + load.tpl += ' <span class="good-tag new-tag">NEW</span>'; + load.tpl += ' {{/ isNew}}'; + load.tpl += ' {{# isReNew}}'; + load.tpl += ' <span class="good-tag renew-tag">再到着</span>'; + load.tpl += ' {{/ isReNew}}'; + load.tpl += ' {{# isSale}}'; + load.tpl += ' <span class="good-tag sale-tag">SALE</span>'; + load.tpl += ' {{/ isSale}}'; + load.tpl += ' {{# isNewFestival}}'; + load.tpl += ' <span class="good-tag new-festival-tag">新品节</span>'; + load.tpl += ' {{/ isNewFestival}}'; + load.tpl += ' {{# isLimit}}'; + load.tpl += ' <span class="good-tag limit-tag">限量商品</span>'; + load.tpl += ' {{/ isLimit}}'; + load.tpl += ' {{# isYearEndPromotion}}'; + load.tpl += ' <span class="good-tag yep-tag">年终大促</span>'; + load.tpl += ' {{/ isYearEndPromotion}}'; + load.tpl += ' {{# isYearMidPromotion}}'; + load.tpl += ' <span class="good-tag ymp-tag">年中热促</span>'; + load.tpl += ' {{/ isYearMidPromotion}}'; + load.tpl += ' {{/ tags}}'; + load.tpl += ' </div>'; + load.tpl += ' <div class="good-detail-img">'; + load.tpl += ' <a class="good-thumb" href="{{url}}" target= "_blank">'; + load.tpl += ' <img class="lazy" data-original="{{thumb}}">'; + load.tpl += ' </a>'; + load.tpl += ' {{# isFew}}'; + load.tpl += ' <p class="few-tag">即将售罄</p>'; + load.tpl += ' {{/ isFew}}'; + + load.tpl += ' {{#if showColBtn}}'; + load.tpl += ' <span class="col-btn iconfont{{#if coled}} coled{{/if}}"></span>'; + load.tpl += ' {{/if}}'; + load.tpl += ' </div>'; + load.tpl += ' <div class="good-detail-text">'; + load.tpl += ' <a href="{{url}}" target= "_blank">{{name}}</a>'; + load.tpl += ' <p class="price">'; + load.tpl += ' <span class="sale-price{{#unless marketPrice}}prime-cost{{/unless}}">'; + load.tpl += ' ¥{{salePrice}}'; + load.tpl += ' </span>'; + load.tpl += ' {{# marketPrice}}'; + load.tpl += ' <span class="market-price">¥{{.}}</span>'; + load.tpl += ' {{/ marketPrice}}'; + load.tpl += ' </p>'; + load.tpl += ' </div>'; + load.tpl += '</div>'; + load.tpl += '{{/each}}'; + + + data.pageCount = count * rows[0]; + + loadAjax(url, data, data.count); + + //load.emit(); + }); + + load.init(); + +}; +}); +define("js/brand/index", ["jquery","lazyload","handlebars","source-map","dot"], function(require, exports, module){ +/** + * 首页 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/11/23 + */ + +var $ = require("jquery"), + lazyLoad = require("lazyload"); + + +require("js/common/slider"); +require("js/brand/brands"); + +lazyLoad($('img.lazy')); +$('.slide-container').slider({ + orient: true +}); +}); +define("js/brand/brands", ["jquery","handlebars","source-map","dot"], function(require, exports, module){ +var $ = require("jquery"), + Handlebars = require("handlebars"), + dot = require("dot"); + +var $tabs = $('.brands-tabs'); +var $list = $('.brands-list'); +var $gory = $('.brands-category'); +var $news = $('.news-txt ul'); +var $clearfix = $list.find('dl.clearfix'); +var $brand = $list.find('li>a'); +var $category = $gory.find('a'); +var $tab = $tabs.find('li>a'); +var $arr = $tabs.find('.hoverarr'); +var $thisTab; + +var categoryHeight = $category.height(); +var categoryTop = $category.offset() ? $category.offset().top : 0; +var newsHeight = $news.height(); +var newsTop = $news.offset() ? $news.offset().top : 0; +var timeout, _id; + + +//用于临时存储数据 +var tempdata = {}; + +var templete = '<div class="brands-dialog">'; + +templete += ' <div class="brands-layer">'; +templete += ' <div class="layer-content">'; +templete += ' <div class="title">{{title}}</div>'; +templete += ' <div class="clearfix desc">'; +templete += ' <img src="{{icon}}">'; +templete += ' <p class="right">{{content}}</p>'; +templete += ' </div> '; +templete += ' <div class="featured">'; +templete += ' <p>{{subtitle}}</p> '; +templete += ' <div class="clearfix"> '; +templete += ' {{#each imgs}}'; +templete += ' <img src="{{src}}">'; +templete += ' {{/each}}'; +templete += ' </div>'; +templete += ' </div>'; +templete += ' </div>'; +templete += ' </div>'; +templete += '</div>'; + +dot($('.brand-desc')); + +$.easing.easeOutQuint = function(x, t, b, c, d) { + return c * ((t = t / d - 1) * t * t * t * t + 1) + b; +}; + +function getQueryString(name) { + var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)'); + var r = window.location.search.substr(1).match(reg); + + if (r != null) { + return window.unescape(r[2]); + } + return null; +} + +// 格式化资讯NEWS标题数量 +if ($news.length) { + $news.find('li').each(function() { + var $dom = $(this); + var domHeight = $dom.offset().top - newsTop + $dom.height(); + + if (domHeight > newsHeight) { + $dom.hide(); + } + }); +} + +//头部图片TAB切换展示 +$tab.eq(0).parent('li').find('.brands-content').css('z-index', '1'); + +_id = getQueryString('id') ? getQueryString('id') : 0; + +// 设置对应TAB选中 +$thisTab = $tab.eq(_id); +$thisTab.find('.g-mask').addClass('g-mask-on'); + +if (_id && $thisTab.length) { + $arr.css({ + left: parseFloat($thisTab.offset().left) - parseFloat($tabs.offset().left) + }); +} +$tab.hover(function() { + var $this = $(this); + + clearTimeout(timeout); + timeout = setTimeout(function() { + var targetLeft = parseFloat($this.offset().left) - parseFloat($tabs.offset().left); + + $arr.animate({ + left: targetLeft + }, 200, 'easeOutQuint'); + }, 50); + $tabs.find('.brands-content').removeAttr('style'); + $this.parent('li').find('.brands-content').css('z-index', '1'); + +}, function() { + clearTimeout(timeout); +}); + +//品牌类别滚动事件 +$(window).scroll(function() { + if ($(this).scrollTop() >= categoryTop) { + $gory.addClass('category-fix'); + } else { + $gory.removeClass('category-fix'); + } +}); + +//点击字母,页面滚动到相关区域 +$category.click(function() { + var name = $(this).attr('href').split('#')[1]; + var targetTop = $list.find('[name=' + name + ']').offset().top - categoryHeight; + + if (!$gory.hasClass('category-fix')) { + targetTop -= categoryHeight; + } + + $('html,body').animate({ + scrollTop: targetTop + }, 200); + return false; +}); + + +//浮层代码 +function bindTemplete($select, data, templete) { + var $this = $select; + var offset = { + width: $this.width(), + left: $this.offset().left, + right: parseFloat($(window).width()) - parseFloat($this.offset().left) - parseFloat($this.width()) + }; + + var $parent = $this.parent('li'); + var myTemplate; + + $list.find('.brands-dialog').remove(); + myTemplate = Handlebars.compile(templete); + $parent.append(myTemplate(data)); + dot($parent.find('.right')); + + if (offset.right - 350 < 0) { + $parent.find('.brands-layer') + .addClass('brands-layer-right').css('left', -330 - offset.width); + } +} + +//鼠标悬浮品牌,请求数据,并且展示 +function bindHoverEvent() { + $brand.unbind('mouseenter').unbind('mouseleave').hover(function() { + var $this = $(this); + var key = $this.attr('data-key'); + + var options = { + url: '/brands/brandinfo', + type: 'get', + data: { + brandId: key + }, + success: function(_data) { + + if (_data.code === 200 && _data.brand) { + if (!tempdata.hasOwnProperty(_data.brand.key)) { + tempdata[_data.brand.key] = _data.brand; + } + bindTemplete($this, tempdata[_data.brand.key], templete); + } + } + }; + + clearTimeout(timeout); + timeout = setTimeout(function() { + if (!tempdata.hasOwnProperty(key)) { + $.ajax(options); + } else { + bindTemplete($this, tempdata[key], templete); + } + }, 200); + }, function() { + clearTimeout(timeout); + $list.find('.brands-dialog').remove(); + }); +} + +if ($clearfix.length < 26) { + $.ajax({ + url: '/brands/brandList', + type: 'POST', + data: { + start: $clearfix.length ? ($clearfix.length + 1) : 1 + }, + success: function(_data) { + if (_data) { + $list.append(_data); + $brand = $list.find('li>a'); + bindHoverEvent(); + } + } + }); +} + +bindHoverEvent(); +}); +define("js/passport/entry", ["jquery","jquery.placeholder"], function(require, exports, module){ +/* + * 密码中心打包入口文件 + */ + +require("js/passport/reg"); +require("js/passport/back"); +require("js/passport/login"); +require("js/passport/reset"); +require("js/passport/vertification"); +require("js/passport/thirdlogin"); +require("js/passport/third-pwd"); +require("js/passport/relate"); +}); +define("js/passport/reg", ["jquery","jquery.placeholder"], function(require, exports, module){ +/* + * @description 注册页js + * @time 2015/12/14 + */ + +var $ = require("jquery"), + regValidate = require("js/passport/mail-phone-regx"), + computeComplex = require("js/passport/pwd-strength"); + +var $registerPage = $('.register-page'), + $pwdTips = $('#pwd-tips'), + $pwdTip1 = $pwdTips.find('#pwd-tip1'), + $errTip = $('#err-tip'), + $registerBtn = $('#register-btn'), + $countDown = $('#count-down'), + $successBtn = $('.success-btn'), + countDown = 5, + clearT; + +var $sendCaptcha = $('#send-captcha'), + caCount = 4, + validateResult = []; + +var $pn = $('#phone-num'), + $mc = $('#msg-captcha'), + $pwd = $('#pwd'), + $repwd = $('#repwd'), + $ca = $('#captcha'), + timeResidue = 0; + +// 密码强度验证 +var $pwdIntensity = $('.pwd-intensity'), + $pwdParent = $pwdIntensity.closest('.pwd-intensity-container'); + +//signup验证 +var $region = $('#country-code'), + $regionSelect = $('#region'), + isPwd = false, + pwdVal; + +var pwdReg = regValidate.pwdValidateRegx; + +var $curErrContainer; + +var oldPhone = ''; //如果手机号改变时刷新验证码 + +require("jquery.placeholder"); + +setTimeout(function() { + $pn.val(''); + $mc.val(''); + $pwd.val(''); + $repwd.val(''); + $ca.val(''); +}, 0); + +//验证码位数 +$ca.attr('maxlength', caCount); + +//密码规则提示 +$pwd.focus(function(event) { + $pwdTips.removeClass('hide'); + isPwd = true; + pwdVal = $(this).val(); +}).blur(function() { + $pwdTips.addClass('hide'); + isPwd = false; +}); + + +//IE8 placeholder +$('[placeholder]').placeholder(); + +// 存储校验信息 +validateResult = [ + { + id: 'phone-num', + message: '', //错误信息 + status: false //当前的状态 + }, + { + id: 'captcha', + message: '', + status: false + }, + { + id: 'msg-captcha', + message: '', + status: false + }, + { + id: 'pwd', + message: '', + status: false + }, + { + id: 'repwd', + message: '', + status: false + } +]; + +//刷新图形验证码 +function refreshPic() { + var time = new Date(), + $captchaImg = $('.captcha-img'), + captchaImgSrc = $captchaImg.attr('src').split('?')[0]; + + $captchaImg.attr('src', captchaImgSrc + '?t=' + time.getTime()); +} + +//手机号ajax校验 +function phoneAjaxFn(page, callback) { + var url, + data; + + if (page === 'reg') { + url = '/passport/register/checkmobile'; + data = { + mobile: $pn.val(), + area: $region.text().split('+')[1] + }; + } else if (page === 'third') { + url = '/passport/autouserinfo/bindCheck'; + data = { + mobile: $pn.val(), + area: $region.text().split('+')[1], + openId: $('#open-id').val(), + sourceType: $('#source-type').val() + }; + } + + validateResult[0].message = 'err'; + validateResult[0].status = false; + + $.ajax({ + url: url, + type: 'POST', + data: data + }).then(function(data) { + if (!data) { + return; + } + + switch (data.code) { + case 200: + + if ($pn.val() !== oldPhone && oldPhone !== '') { + + // 如果手机号发生改变则刷新验证码并且更新状态 + refreshPic(); + $sendCaptcha.addClass('disable').attr('disabled', 'disabled'); + validateResult[1].message = '图形验证码错误'; + validateResult[1].status = false; + } + + oldPhone = $pn.val(); + + validateResult[0].message = ''; + validateResult[0].status = true; + break; + case 400: + refreshPic(); + validateResult[0].message = data.message; + validateResult[0].status = false; + break; + } + + callback(); + }); +} + +//图形验证码ajax校验 +function picCaptchaAjaxFn(page, callback) { + var url; + + if (page === 'reg') { + url = '/passport/register/piccaptcha'; + } else if (page === 'third') { + url = '/passport/autouserinfo/checkPicCode'; + } + $.ajax({ + type: 'POST', + url: url, + data: { + verifyCode: $ca.val() + + //mobile: $pn.val(), + //area: $region.text().split('+')[1] + } + }).then(function(data) { + if (!data) { + return; + } + + switch (data.code) { + case 200: + validateResult[1].message = ''; + validateResult[1].status = true; + break; + case 400: + refreshPic(); + validateResult[1].message = '图形验证码错误'; + validateResult[1].status = false; + break; + } + callback(); + }); +} + +//短信验证码ajax校验 +function msgCaptchaAjaxFn(page, callback) { + var url; + + if (page === 'reg') { + url = '/passport/register/msgcaptcha'; + } else if (page === 'third') { + url = '/passport/autouserinfo/checkBindMsg'; + } + $.ajax({ + type: 'POST', + url: url, + data: { + code: $mc.val(), + mobile: $pn.val(), + area: $region.text().split('+')[1] + } + }).then(function(data) { + if (!data) { + return; + } + + switch (data.code) { + case 200: + validateResult[2].message = ''; + validateResult[2].status = true; + break; + case 400: + validateResult[2].message = '短信验证码错误'; + validateResult[2].status = false; + break; + } + + callback(); + }); +} + +// 验证 +function validateRule(page, $element, callback) { + + var val = $.trim($element.val()), + regionCode; + + + + // 根据需求//redmine.yoho.cn/issues/3117改成上边的正则 + // 对应的错误提示语也改了,感觉要不了多久就会改回来 + // pwdReg = /^([a-zA-Z0-9\-\+_!@\#$%\^&\*\(\)\:\;\.=\[\]\\\',\?]){6,20}$/gi; + + //手机号校验 + if ($element.hasClass('phone-num')) { + + regionCode = $region.text(); + + + if (val === '') { + validateResult[0].message = '请输入手机号码'; + validateResult[0].status = false; + callback(); + + } else { + if (!/^[0-9]+$/.test(val) || + (regionCode === '+86' && !regValidate.phoneRegx[regionCode].test(val))) { + validateResult[0].message = '手机号码格式不正确,请重新输入'; + validateResult[0].status = false; + callback(); + } else { + phoneAjaxFn(page, callback); + } + } + + //图形验证码校验 + } else if ($element.hasClass('captcha')) { + if (val === '') { + validateResult[1].message = '请输入图形验证码'; + validateResult[1].status = false; + callback(); + + } else if (val.length <= 3) { + validateResult[1].message = '图形验证码为4位'; + validateResult[1].status = false; + callback(); + + } else { + + // 并且手机号正确 + if (validateResult[0].status) { + picCaptchaAjaxFn(page, callback); + } else { + validateResult[1].message = '图形验证码错误'; + validateResult[1].status = false; + callback(); + } + + } + + //短信验证码校验 + } else if ($element.hasClass('msg-captcha')) { + + if (val === '') { + validateResult[2].message = '请输入短信验证码'; + validateResult[2].status = false; + callback(); + + } else if (val.length <= 3) { + validateResult[2].message = '短信验证码错误'; + validateResult[2].status = false; + callback(); + + } else { + + // 并且图形验证码正确 + if (validateResult[1].status) { + msgCaptchaAjaxFn(page, callback); + } else { + validateResult[2].message = '短信验证码错误'; + validateResult[2].status = false; + callback(); + } + } + + //密码校验 + } else if ($element.hasClass('pwd')) { + if (val === '') { + validateResult[3].message = '请输入密码'; + validateResult[3].status = false; + + } else if (val.length < 6 || val.length > 20) { + validateResult[3].message = '密码只支持6-20位字符'; + validateResult[3].status = false; + + } else if (!pwdReg.test($element.val())) { + validateResult[3].message = '密码须字母和数字组合'; + validateResult[3].status = false; + + } else { + validateResult[3].message = ''; + validateResult[3].status = true; + } + callback(); + + //二次密码校验 + } else if ($element.hasClass('repwd')) { + if (val === '') { + validateResult[4].message = '请输入密码确认'; + validateResult[4].status = false; + + } else if ($pwd.val() !== val) { + validateResult[4].message = '与密码不一致,请重新输入'; + validateResult[4].status = false; + + } else { + validateResult[4].message = ''; + validateResult[4].status = true; + + } + + callback(); + } +} + +function posErrTip() { + var tipPos = $curErrContainer.offset(); + + return $errTip.css({ + top: tipPos.top - 40, + left: tipPos.left + }); +} + +//显示提示信息 +function showErrTip() { + + var show = false, + i, + validateResultLen = validateResult.length; + + for (i = 0; i < validateResultLen; i++) { + if (!show) { + + //不可以通过status判断 + if (!!validateResult[i].message && validateResult[i].message !== 'err') { + + //显示错误提示 + $errTip.find('span').text(validateResult[i].message); + $curErrContainer = $('#' + validateResult[i].id); + posErrTip().removeClass('hide'); + + show = true; //停止判断 + } else { + $errTip.addClass('hide'); + } + } + } +} + +//显示红色边框 +function showBorder() { + + var $errInput, + i, + validateResultLen = validateResult.length; + + for (i = 0; i < validateResultLen; i++) { + if (!!validateResult[i].message) { + + //显示红色边框 + $errInput = $('#' + validateResult[i].id); + $errInput.addClass('error'); + + } else { + + //去掉红色边框 + $errInput = $('#' + validateResult[i].id); + $errInput.removeClass('error'); + } + } +} + +// 密码强度验证 +function pwdFn($obj) { + var pwd = $obj.val(), + pwdStrength = computeComplex(pwd), + level = 0; + + if (pwdStrength === 0) { + level = 0; + } else if (pwdStrength <= 10) { + level = 1; + } else if (pwdStrength <= 20) { + level = 2; + } else { + level = 3; + } + + switch (level) { + case 0: + $pwdParent.removeClass('red yellow green'); + $pwdIntensity.removeClass('color'); + break; + case 1: + $pwdParent.addClass('red').removeClass('yellow green'); + $pwdIntensity.filter('.low').addClass('color'); + $pwdIntensity.filter('.mid,.high').removeClass('color'); + break; + case 2: + $pwdParent.addClass('yellow').removeClass('red green'); + $pwdIntensity.filter('.low,.mid').addClass('color'); + $pwdIntensity.filter('.high').removeClass('color'); + break; + case 3: + $pwdParent.addClass('green').removeClass('yellow red'); + $pwdIntensity.addClass('color'); + break; + } + + //提示框 + if (pwd === '') { + $pwdTip1.removeClass('red yes no').addClass('default'); + } else if (pwd.length < 6 || pwd.length > 20) { + $pwdTip1.removeClass('default yes').addClass('no red'); + } else { + $pwdTip1.removeClass('default no red').addClass('yes'); + } +} + +//重新定位错误提示 +$(window).resize(function() { + if ($errTip.hasClass('hide')) { + return; + } + + posErrTip(); +}); + +// 失去焦点时开始校验 +// Tips: 不可以在获得焦点的时候验证,获得焦点和失去焦点的间隔太小,如果中间存在ajax校验的话会出现问题 +// ( ▼-▼ )注册页和信息完善页面接口不同 +exports.init = function(page) { + + $('#agree-terms').click(function() { + + var $this = $(this), + i, + passI = 0; + + if (!!$this.attr('notchecked')) { + + $this.removeAttr('notchecked'); + + //勾选 + for (i = 0; i < validateResult.length; i++) { + if (validateResult[i].status) { + passI++; + } + } + if (passI === 4) { + $registerBtn.removeClass('disable').removeAttr('disabled'); + } + } else { + + //取消勾选 + $registerBtn.addClass('disable').attr('disabled', 'disabled'); + $this.attr('notchecked', 'notchecked'); + } + }); + + // 按回车键提交 + $registerPage.on('keydown', function(e) { + var key = e.which; + + if (key === 13) { + $registerBtn.click(); + } + }); + + $registerPage.find('.va').keyup(function() { + + var j, + statusLen = 0, + vLen = validateResult.length, + $that = $(this); + + validateRule(page, $(this), function() { + showErrTip(); // 显示错误提示 + showBorder(); // 显示红色边框 + + // 如果validateResult中有4个status为true表示验证通过 + for (j = 0; j < vLen; j++) { + + if (validateResult[j].status) { + + statusLen++; + } + + } + + if (statusLen === 4 && !$('#agree-terms').attr('notchecked')) { + $registerBtn.removeClass('disable').removeAttr('disabled'); + } else { + $registerBtn.addClass('disable').attr('disabled', 'disabled'); + } + + // 图形验证通过时,发送短信按钮可点击 + if (validateResult[1].status && timeResidue <= 0) { + $sendCaptcha.removeClass('disable').removeAttr('disabled'); + } else { + $sendCaptcha.addClass('disable').attr('disabled', 'disabled'); + } + + //图形验证通过时,发送短信按钮可点击 end + + }); + + // 如果是密码则校验强度 + if (($that).hasClass('pwd')) { + pwdFn($that); + } + + }).blur(function() { + + /*validateRule($(this), function() { + showErrTip(); + showBorder(); // 显示红色边框 + });*/ + }); + + $regionSelect.change(function() { + + $region.text($('#region').val()); + + validateRule(page, $pn, showErrTip); //验证 + }); + + // 点击发送验证码 + $sendCaptcha.click(function() { + var t, + url; + + if ($(this).hasClass('disable')) { + return; + } + + timeResidue = 60; + + $('#msg-tip').removeClass('hide'); + + $sendCaptcha.addClass('disable').attr('disabled', 'disabled'); + $sendCaptcha.val('60秒可重新发送'); + + t = setInterval(function() { + if (timeResidue <= 0) { + $sendCaptcha.removeClass('disable').removeAttr('disabled').val('获取短信验证码'); + clearInterval(t); + return; + } + $sendCaptcha.val(timeResidue-- + '秒可重新发送'); + }, 1000); + + if (page === 'reg') { + url = '/passport/register/sendBindMsg'; + } else if (page === 'third') { + url = '/passport/autouserinfo/sendBindMsg'; + } + + //todo ajax 发送验证码 + $.ajax({ + type: 'POST', + url: url, + data: { + area: $region.text().split('+')[1], + mobile: $pn.val(), + verifyCode: $ca.val() + } + }); + }); + + // 防止粘贴密码 + if ($('.success-box').length <= 0) { + $pwd[0].onpaste = function() { + return false; + }; + } + + //ajax表单提交 + $registerBtn.click(function() { + var url; + + if (page === 'reg') { + url = '/passport/register/mobileregister'; + } else if (page === 'third') { + url = '/passport/autouserinfo/bindMobile'; + } + + if ($(this).hasClass('disable')) { + return; + } else { + + //ajax提交 + $.ajax({ + type: 'POST', + url: url, + data: { + area: $region.text().split('+')[1], + mobile: $pn.val(), + verifyCode: $ca.val(), + code: $mc.val(), + password: $pwd.val() + } + }).then(function(data) { + + var time = 0, + t, + refer; + + if (data.code === 200) { + + refer = data.data.href; + + t = setTimeout(function() { + time++; + }, 1000); + + $.ajax({ + type: 'GET', + url: data.data.session + }).then(function(data) { + + if (data.code === 200 && t < 3) { + clearInterval(t); + location.href = refer; + } + }); + + if (t >= 3) { + clearInterval(t); + location.href = refer; + } + } else { + + //todo + console.log('网络超时~'); + } + + }); + } + }); + + $('.change-captcha').click(function() { + refreshPic(); + }); + + //注册成功页面5秒后跳转 + if ($('.success-box').length > 0) { + clearT = setInterval(function() { + + if (countDown === 0) { + + window.location.href = $successBtn.attr('data-url'); + + clearInterval(clearT); + } + $countDown.text(countDown--); + }, 1000); + } +}; +}); +define("js/passport/mail-phone-regx", [], function(require, exports, module){ +/** + * 国家区号Map手机号码以及邮箱验证正则 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/11 + */ + +var countryPhoneRegx = { + '+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]{1}[0-9]{8}$/, + '+81': /^0[9|8|7][0-9]{9}$/, + '+61': /^[0-9]{11}$/ +}; + +var emailRegx = /^[.\-_a-zA-Z0-9]+@[\-_a-zA-Z0-9]+\.[a-zA-Z0-9]/; + +var pwdValidateRegx = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/; + +exports.phoneRegx = countryPhoneRegx; + +exports.emailRegx = emailRegx; + +exports.pwdValidateRegx = pwdValidateRegx; +}); +define("js/passport/pwd-strength", [], function(require, exports, module){ +/* + * 计算密码复杂度 + */ + +function gettype(str, i) { + if (str.charCodeAt(i) >= 48 && str.charCodeAt(i) <= 57) { + return 1; + } else if (str.charCodeAt(i) >= 97 && str.charCodeAt(i) <= 122) { + return 2; + } else if (str.charCodeAt(i) >= 65 && str.charCodeAt(i) <= 90) { + return 3; + } + + return 4; +} + +function isregular(cur, pre, type) { + var curCode = cur.charCodeAt(0); + var preCode = pre.charCodeAt(0); + + if (curCode - preCode === 0) { + return true; + } + + if (type !== 4 && (curCode - preCode === 1 || curCode - preCode === -1)) { + return true; + } + + return false; +} + +function getcomplex(curType, preType) { + if (preType === 0 || curType === preType) { + return 0; + } else if (curType === 4 || preType === 4) { + return 2; + } else { + return 1; + } +} + +function computeComplex(password) { + var complex = 0, + length = password.length, + pre = '', + preType = 0, + i = 0, + cur, + curType; + + + for (i = 0; i < length; i++) { + cur = password.charAt(i); + curType = gettype(password, i); + + if (preType !== curType || !isregular(cur, pre, curType)) { + complex += curType + getcomplex(curType, preType); + } + + pre = cur; + preType = curType; + } + + return complex; +} + +module.exports = computeComplex; +}); +define("js/passport/back", ["jquery","jquery.placeholder"], function(require, exports, module){ +/** + * 找回密码 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/14 + */ + +var $ = require("jquery"), + regx = require("js/passport/mail-phone-regx"), + emailReg = regx.emailRegx, + phoneRegx = regx.phoneRegx; + +var emailAc = require("js/passport/ac-email"); //邮箱自动完成 + +var $cr = $('#country-code-hide'), + $phoneNum = $('#phone-num'), + $ca = $('#captcha'), + $ccList = $('#country-code-list'), + $cc = $('#country-code'), + $btn = $('#find-btn'), + $accErr = $('#account-err'), + $caErr = $('#captcha-err'), + caCount = 4, //验证码位数 + hasPh = false, + hasCa = false; + + +require("jquery.placeholder"); + +function imgcode() { + var time = new Date(), + $captchaImg = $('#captcha-img'), + captchaImgSrc = $captchaImg.attr('src').split('?')[0]; + + $('#captcha-img').attr('src', captchaImgSrc + '?t=' + time.getTime()); +} + +function enableBtn() { + if (hasPh && hasCa) { + $btn.removeClass('disable').prop('disabled', false); + } else { + $btn.addClass('disable').prop('disabled', true); + } +} + +function authcode() { + if (!hasPh || !hasCa) { + enableBtn(); + return; + } + + $.ajax({ + type: 'POST', + url: '/passport/back/authcode', + data: { + verifyCode: $.trim($ca.val()), + phoneNum: $phoneNum.val(), + area: $cr.val() + } + + }).then(function(data) { + if (data.code === 200) { + hasCa = true; + } else if (data.code === 402) { + hasPh = false; + hasCa = true; + $accErr.removeClass('hide').find('em').text('该账号不存在'); + $phoneNum.addClass('error'); + } else if (data.code === 400) { + hasCa = false; + imgcode(); + } + enableBtn(); + }); +} + +function vaPn(v) { + var pass = true, + errTxt = ''; + + v = $.trim(v); + if (v !== '') { + if (/^[0-9]+$/.test(v)) { + if (phoneRegx[$cr.val()].test(v)) { + pass = true; + } else { + errTxt = '手机号码格式不正确, 请重新输入'; + pass = false; + } + } else { + if (emailReg.test(v)) { + pass = true; + } else { + errTxt = '邮箱格式不正确, 请重新输入'; + pass = false; + } + } + } else { + errTxt = '账户名不能为空'; + pass = false; + } + hasPh = pass; + authcode(); + + return { + pass: pass, + errTxt: errTxt + }; +} + +function vaCa() { + var v = $.trim($ca.val()); + + if (v === '' || v.length < caCount) { + hasCa = false; + enableBtn(); + return; + } + + hasCa = true; + + authcode(); +} + +emailAc($phoneNum, function() { + var pnVa = vaPn($phoneNum.val()); + + if (pnVa.pass) { + $accErr.addClass('hide'); + $phoneNum.removeClass('error'); + } else { + $accErr.removeClass('hide').find('em').text(pnVa.errTxt); + $phoneNum.addClass('error'); + } + } +); + +$ca.attr('maxlength', caCount); + +//IE8 placeholder +$('input').placeholder(); + +$('#change-captcha, #captcha-img').on('click', function() { + imgcode(); +}); + +$cc.on('click', function(e) { + e.stopPropagation(); + if ($ccList.css('style') === 'block') { + $ccList.slideUp('fast'); + } else { + $ccList.slideDown('fast'); + } +}); + +$ccList.delegate('li', 'click', function(e) { + var $cur = $(this), + code = $cur.data('cc'), + pnVa; + + e.stopPropagation(); + $cr.val(code); + $cc.find('em').html($cur.text()); + + //切换后验证手机号码 + if ($.trim($phoneNum.val()) !== '') { + pnVa = vaPn($phoneNum.val()); + enableBtn(); + if (hasPh) { + $accErr.addClass('hide'); + $phoneNum.removeClass('error'); + } else { + $accErr.removeClass('hide').text(pnVa.errTxt); + $phoneNum.addClass('error'); + } + } + $ccList.slideUp('fast'); +}); + +$(document).click(function() { + if ($ccList.css('display') === 'block') { + $ccList.slideUp(); + } +}); + +$phoneNum.keyup(function() { + vaPn($.trim($(this).val())); +}).focus(function() { + $(this).removeClass('error'); + + //focus隐藏错误提示 + $accErr.addClass('hide'); +}); + +//验证码在鼠标移开后验证, keyup时不再验证 +$ca.blur(function() { + var errTxt = $.trim($ca.val()) === '' ? '验证码不能为空' : '验证码不正确'; + + if (hasCa) { + $caErr.addClass('hide'); + $ca.removeClass('error'); + } else { + $caErr.removeClass('hide').find('em').text(errTxt); + $ca.addClass('error'); + + //验证码错误则刷新验证码 + if ($ca.val() < caCount) { + + //防止重复刷新验证码 + imgcode(); + } + } +}).focus(function() { + $(this).removeClass('error'); + + //focus隐藏错误提示 + $caErr.addClass('hide'); +}).keyup(function() { + vaCa(); +}); + +$('#find-btn').click(function(e) { + + if (/^[0-9]+$/.test($.trim($phoneNum.val()))) { + $('#find-form').attr('action', '/passport/back/mobile'); + } + if ($(this).hasClass('disable')) { + return; + } + if (!hasCa || !hasPh) { + e.preventDefault(); + return true; + } +}); +}); +define("js/passport/ac-email", ["jquery"], function(require, exports, module){ +/** + * 邮箱自动补全 + * @author:xuqi<qi.xu@yoho.cn> + * @date: 2016/2/22 + */ +var $ = require("jquery"); + +var mailPostfix = { + num: ['qq.com', '163.com', '126.com', 'sina.com', 'gmail.com', 'sohu.com', 'hotmail.com', '139.com', '189.com'], + other: ['gmail.com', 'qq.com', '163.com', '126.com', 'sina.com', 'sohu.com', 'hotmail.com', '139.com', '189.com'] +}; + +var emailAcTime; + +/** + * @param $input 需要自动完成的$对象 + * @param cb 鼠标移开/点击自动完成项后需要执行的操作(验证等) + */ +module.exports = function($input, cb) { + var ulHtml = '<ul id="email-autocomplete" class="email-autocomplete hide"></ul>'; + + var $emailAutoComplete; + + $input.parent().append(ulHtml); + + $emailAutoComplete = $('#email-autocomplete'); + + $input.on('keyup', function() { + var account = $.trim($(this).val()), + html = '', + accountMatch, + matchStr, + postfix, + i; + + //输入@时自动补全邮箱后缀 + //此处>0非错误,用于避免输入的第一个字符为@被识别为邮箱 + if (account.indexOf('@') > 0) { + accountMatch = account.match(/^[0-9]+@(.*)/); + if (accountMatch) { + + //数字邮箱补全 + postfix = mailPostfix.num; + matchStr = accountMatch[1]; + } else { + postfix = mailPostfix.other; + matchStr = account.match(/@(.*)/)[1]; + } + + for (i = 0; i < postfix.length; i++) { + if (postfix[i].indexOf(matchStr) > -1) { + html += '<li>' + account.slice(0, account.indexOf('@')) + '@' + postfix[i] + '</li>'; + } + } + + if (html !== '' && /.com$/.test(account) === false) { + $emailAutoComplete.html(html).removeClass('hide'); + } else { + + //隐藏autocomplete + $emailAutoComplete.html('').addClass('hide'); + } + } + }).on('blur', function() { + emailAcTime = setTimeout(function() { + + //未点击自动完成项 + $emailAutoComplete.addClass('hide'); + + cb && cb(); + }, 200); + }); + + //邮箱自动完成列表项点击 + $emailAutoComplete.on('click', 'li', function() { + clearTimeout(emailAcTime); //清空默认关闭 + + //点击自动完成项后进行验证 + $input.val($(this).text()).focus(); + + $emailAutoComplete.addClass('hide'); + + cb && cb(); + }); +}; +}); +define("js/passport/login", ["jquery","jquery.placeholder"], function(require, exports, module){ +/** + * 登录 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/11 + */ +var $ = require("jquery"); + +var $account = $('#account'), + $password = $('#password'), + $captcha = $('#captcha'); + +var $accountTip = $account.siblings('.err-tip'), + $passwordTip = $password.siblings('.err-tip'), + $captchaTip = $captcha.siblings('.err-tip'), + $capsLock = $('#caps-lock'); + +var $countryCodeHide = $('#country-code-hide'), + $countryCodeEm = $('#country-code > em'), + $countryList = $('#country-list'); + +var $emailAutoComplete = $('#email-autocomplete'); + +var mailPhoneRegx = require("js/passport/mail-phone-regx"); +var mailAc = require("js/passport/ac-email"); //邮箱自动完成 + +var $remember = $('.remember-me'); + +var captchaUrl = '/passport/images?t='; // /passport/images?t=1454464125 + +var $captchaWrap = $('.captcha-wrap'), + $captcha = $captchaWrap.find('#captcha'), + $captchaImg = $captchaWrap.find('#captcha-img'), + $captchaTip = $captchaWrap.find('.err-tip'); + +//checkbox status unicode +var checkbox = { + checked: '', + unchecked: '' +}; + +var authing = false; + +var emailAcTime; + +require("jquery.placeholder"); + +//验证账户名 +function validateAccount() { + var pass = false, + account = $.trim($account.val()), + countryCode = $countryCodeHide.val(), + err; + + if (account !== '') { + if (/^[0-9]+$/.test(account)) { + + //如果是纯数字,则作为手机号码处理 + if (countryCode !== '+86' || + mailPhoneRegx.phoneRegx[countryCode].test(account)) { + pass = true; + } else { + pass = false; + err = '手机号码不正确,请重新输入'; + } + } else { + if (mailPhoneRegx.emailRegx.test(account)) { + pass = true; + } else { + pass = false; + err = '邮箱格式不正确,请重新输入'; + } + } + } else { + err = '请输入账户名'; + } + + if (pass) { + $accountTip.addClass('hide'); + $account.removeClass('error'); + } else { + $accountTip.removeClass('hide').children('em').text(err); + $account.addClass('error'); + } + return pass; +} + +//验证密码 +function validatePassword() { + var pass = false, + password = $.trim($password.val()), + err; + + if (password !== '') { + if (password.length < 6) { + err = '请输入长度为6-20字符的密码'; + } else { + pass = true; + } + } else { + err = '请输入密码'; + } + + if (pass) { + $passwordTip.addClass('hide'); + $password.removeClass('error'); + } else { + $passwordTip.removeClass('hide').children('em').text(err); + $password.addClass('error'); + } + return pass; +} + +//验证验证码 +function validateCaptcha() { + var pass = false, + captcha = $.trim($captcha.val()), + err; + + // 验证码不可见的时候不验证 + if ($captchaWrap.is(':hidden')) { + return true; + } + + if (captcha !== '') { + if (captcha.length !== 4) { + err = '请输入长度为4字符的验证码'; + } else { + pass = true; + } + } else { + err = '请输入验证码'; + } + + if (pass) { + $captchaTip.addClass('hide'); + $captcha.removeClass('error'); + } else { + $captchaTip.removeClass('hide').children('em').text(err); + $captcha.addClass('error'); + } + return pass; +} + +//验证 +function validate() { + var pass = true, + account = $.trim($account.val()), + password = $.trim($password.val()); + + if (account !== '') { + pass = validateAccount() && validatePassword() && validateCaptcha(); + } else { + pass = false; + $account.addClass('error'); + + if (password === '') { + + //账户名和密码都为空的情况下点击登陆,只在账户输入框后显示错误提示 + $accountTip.addClass('both-error').removeClass('hide').children('em').text('请输入账户名和密码'); + $passwordTip.addClass('hide'); + $password.addClass('error'); + } else { + $accountTip.removeClass('hide').children('em').text('请输入账户名'); + } + } + + return pass; +} + +//密码错误次数,超过三次显示验证码 +function vaAccountErrTimes() { + $captchaImg.attr('src', captchaUrl + $.now()); + $captcha.val(''); + $captchaWrap.removeClass('hide'); +} + +//登录 +function login() { + var pass = validate(); + + if (pass && authing === false) { + authing = true; + + $.ajax({ + url: '/passport/login/auth', + type: 'POST', + data: { + areaCode: $countryCodeHide.val().replace('+', ''), + account: $.trim($account.val()), + password: $.trim($password.val()), + captcha: $.trim($captcha.val()), + isRemember: $remember.hasClass('checked') ? true : false + }, + success: function(res) { + if (res.code === 200) { + if (res.data) { + + //防止data.data为undefined时下行语句执行出错而导致脚本不能走到complete去处理authing + location.href = res.data.session; + } + } else { + if (res.data.errorType === 'captcha') { + $captchaTip.removeClass('hide').children('em').html(res.message); + $captcha.addClass('error').val(''); + } else { + $passwordTip.removeClass('hide').children('em').html(res.message); + $password.addClass('error').val(''); + } + + //验证错误次数 + if (res.data && res.data.needCaptcha) { + vaAccountErrTimes(); + } + } + }, + complete: function() { + authing = false; + } + }); + } +} + +mailAc($account, function() { + if (validateAccount()) { + $.ajax({ + url: '/passport/login/account', + type: 'GET', + data: { + account: $.trim($account.val()) + } + }).then(function(res) { + if (res.data && res.data.needCaptcha) { + vaAccountErrTimes(); + } + }); + } + } +); + +$('[placeholder]').placeholder(); + +//展开地区列表 +$('#country-code').on('click', function() { + if ($countryList.css('display') === 'none') { + $countryList.slideDown(); + } +}); + +//选中地区列表项 +$countryList.on('click', 'li', function() { + var $this = $(this), + cc = $this.data('cc'); + + $countryCodeEm.html($this.html()); + + $countryCodeHide.val(cc); + + $countryList.slideUp(); +}); + +//点击其他区域,收起区域列表 +$(document).on('click', function(e) { + if ($(e.target).closest('#country-code').length > 0) { + return; + } + + if ($countryList.css('display') === 'block') { + $countryList.slideUp(); + } +}); + +//密码 +$password.on('blur', function() { + validatePassword(); + + if ($capsLock.hasClass('hide')) { + return; + } + + $capsLock.addClass('hide'); +}).on('keypress', function(e) { + var code = e.which; + + //CapsLock检测 + if (code >= 65 && code <= 90) { + $capsLock.removeClass('hide'); + return; + } + $capsLock.addClass('hide'); +}); + +// 验证码 +$captcha.on('blur', function() { + validateCaptcha(); +}); + +//邮箱自动完成列表项点击 +$emailAutoComplete.on('click', 'li', function() { + clearTimeout(emailAcTime); //清空默认关闭 + + $account.val($(this).text()).focus(); + + $emailAutoComplete.addClass('hide'); +}); + +//记住登录状态 +$remember.on('click', function() { + var $this = $(this); + + $this.toggleClass('checked'); + + if ($this.hasClass('checked')) { + $this.children('i').html(checkbox.checked); + } else { + $this.children('i').html(checkbox.unchecked); + } +}); + +//focus到输入框则隐藏错误提示和样式 +$('.va').on('focus', function() { + var $this = $(this); + + $this.removeClass('error'); + + $this.siblings('.err-tip').addClass('hide'); +}); + +// 验证码刷新 +$captchaWrap.on('click', '.change-captcha, .captcha-img', function() { + $captchaImg.attr('src', captchaUrl + $.now()); +}); + +//登录 +$('#login-btn').on('click', login); + +//Enter登录 +$('input.va').on('keypress', function(e) { + if (e.which === 13) { + login(); + } +}); + +// 初始:只带账户名的页面,密码输入获得焦点 +if (($account.val() !== '' || $account.val() === $account.attr('placeholder')) && + $password.val() === '') { + $password.focus(); +} +}); +define("js/passport/reset", ["jquery","jquery.placeholder"], function(require, exports, module){ +/** + * 找回密码 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/14 + */ + +var $ = require("jquery"); + +var $pwd = $('#pwd'), + $repwd = $('#re-input'), + $next = $('#reset-pwd-btn'), + $pwdErr = $('#pwd-err'), + $repwdErr = $('#repwd-err'), + $pwdTips = $('#pwd-tips'); + +var hasNoErrPw = false; + +var $pwdIntensity = $('.pwd-intensity'), + $pwdParent = $pwdIntensity.closest('.pwd-intensity-container'), + $pwdTip1 = $('#pwd-tip1'); + +var pwdRegx = require("js/passport/mail-phone-regx").pwdValidateRegx; + +require("jquery.placeholder"); + + +/* + * 计算密码复杂度 + */ + +function gettype(str, i) { + if (str.charCodeAt(i) >= 48 && str.charCodeAt(i) <= 57) { + return 1; + } else if (str.charCodeAt(i) >= 97 && str.charCodeAt(i) <= 122) { + return 2; + } else if (str.charCodeAt(i) >= 65 && str.charCodeAt(i) <= 90) { + return 3; + } + + return 4; +} + +function isregular(cur, pre, type) { + var curCode = cur.charCodeAt(0); + var preCode = pre.charCodeAt(0); + + if (curCode - preCode === 0) { + return true; + } + + if (type !== 4 && (curCode - preCode === 1 || curCode - preCode === -1)) { + return true; + } + + return false; +} + +function getcomplex(curType, preType) { + if (preType === 0 || curType === preType) { + return 0; + } else if (curType === 4 || preType === 4) { + return 2; + } else { + return 1; + } +} + +function computeComplex(password) { + var complex = 0, + length = password.length, + pre = '', + preType = 0, + i = 0, + cur, + curType; + + + for (i = 0; i < length; i++) { + cur = password.charAt(i); + curType = gettype(password, i); + + if (preType !== curType || !isregular(cur, pre, curType)) { + complex += curType + getcomplex(curType, preType); + } + + pre = cur; + preType = curType; + } + + return complex; +} + +function pwdKeyupEvt() { + var pwd = $pwd.val(), + pwdStrength = computeComplex(pwd), + level = 0; + + //TODO:自定义密码强度规则,需要修正 + if (pwdStrength === 0) { + level = 0; + } else if (pwdStrength <= 10) { + level = 1; + } else if (pwdStrength <= 20) { + level = 2; + } else { + level = 3; + } + switch (level) { + case 0: + $pwdParent.removeClass('red yellow green'); + $pwdIntensity.removeClass('color'); + break; + case 1: + $pwdParent.addClass('red').removeClass('yellow green'); + $pwdIntensity.filter('.low').addClass('color'); + $pwdIntensity.filter('.mid,.high').removeClass('color'); + break; + case 2: + $pwdParent.addClass('yellow').removeClass('red green'); + $pwdIntensity.filter('.low,.mid').addClass('color'); + $pwdIntensity.filter('.high').removeClass('color'); + break; + case 3: + $pwdParent.addClass('green').removeClass('yellow red'); + $pwdIntensity.addClass('color'); + break; + } + + //提示框 + if (pwd === '') { + $pwdTip1.removeClass('red yes no').addClass('default'); + } else if (pwd.length < 6 || pwd.length > 20) { + $pwdTip1.removeClass('default yes').addClass('no red'); + } else { + $pwdTip1.removeClass('default no red').addClass('yes'); + } + + if (pwdRegx.test(pwd)) { + hasNoErrPw = true; + } else { + hasNoErrPw = false; + } +} + +//IE8 placeholder +$('input').placeholder(); + +$('.va').keyup(function() { + var pass = true; + + if ($(this).hasClass('pwd')) { + pwdKeyupEvt(); + } else { + if ($(this).val() === '') { + pass = false; + } + } + if (pass && hasNoErrPw && $pwd.val() === $repwd.val()) { + pass = true; + } else { + pass = false; + } + if (pass) { + $next.removeClass('disable').prop('disabled', false); + } else { + $next.addClass('disable').prop('disabled', true); + } +}).blur(function() { + var $this = $(this), + v = $this.val(); + + if ($this.hasClass('pwd')) { + if (v === '') { + $this.addClass('error'); + $pwdErr.removeClass('hide').find('em').text('请输入密码'); + } else if (v.length < 6 || v.length > 20) { + $this.addClass('error'); + $pwdErr.removeClass('hide').find('em').text('密码只支持6-20位'); + } else if (!pwdRegx.test(v)) { + $this.addClass('error'); + $pwdErr.removeClass('hide').find('em').text('密码须字母和数字组合'); + } else { + $pwdErr.addClass('hide'); + if ($repwd.val() !== '') { + if (v !== $repwd.val()) { + $repwd.addClass('error'); + $repwdErr.removeClass('hide').find('em').text('两次密码输入不一致,请重新输入'); + } else { + $repwd.removeClass('error'); + $repwdErr.addClass('hide'); + } + } + } + } else { + if (v === '') { + $this.addClass('error'); + $repwdErr.removeClass('hide').find('em').text('请输入密码确认'); + } else { + if ($pwd.val() !== '' && v !== $pwd.val()) { + $this.addClass('error'); + $repwdErr.removeClass('hide').find('em').text('两次密码输入不一致,请重新输入'); + } else { + $this.removeClass('error'); + $repwdErr.addClass('hide'); + } + } + } +}).focus(function() { + $(this).removeClass('error'); + + //focus后错误提示隐藏 + if ($(this).hasClass('pwd')) { + $pwdErr.addClass('hide'); + } else { + $repwdErr.addClass('hide'); + } +}); + +$pwd.focus(function() { + $pwdErr.addClass('hide'); + $pwdTips.removeClass('hide'); +}).blur(function() { + $pwdTips.addClass('hide'); +}); + +$('#pwd, #repwd').keydown(function(e) { + var code = e.keyCode || e.which; + + //空格输入过滤 + if (code === 32) { + e.preventDefault(); + return; + } +}); + +}); +define("js/passport/vertification", ["jquery"], function(require, exports, module){ +/** + * 验证手机 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/14 + */ + +var $ = require("jquery"); + +var $sc = $('#send-captcha'), + $msgTip = $('#captcha-tip'), + $errTip = $('#err-tip'), + $next = $('#next-step'), + seconds, + itime; + +$sc.click(function() { + $.post('/passport/back/sendbackmobile', { + mobile: $('#mobile').val(), + area: $('#area').val(), + verifyCode: $('#captchaPic').val() + }, function(jsonData) { + if (jsonData.code === 200) { + $errTip.hide(); + if ($(this).hasClass('disable')) { + return; + } + seconds = 60; + + //$sc.addClass('disable').prop('disabled', true); + $sc.addClass('disable').attr('disabled', true); + $msgTip.removeClass('hide'); + + $sc.val(seconds-- + '秒后可重新操作'); + itime = setInterval(function() { + if (seconds === 0) { + clearInterval(itime); + + //$sc.val('发送验证码').removeClass('disable').prop('disabled', false); + $sc.val('发送验证码').removeClass('disable').removeAttr('disabled'); + } else { + $sc.val(seconds-- + '秒后可重新操作'); + } + }, 1000); + } else { + $(this).addClass('error'); + $errTip.removeClass('hide').text('发送失败'); + } + }); +}); + +seconds = 60; + +//$sc.addClass('disable').prop('disabled', true); +$sc.addClass('disable').attr('disabled', true); +$msgTip.removeClass('hide'); + +$sc.val(seconds-- + '秒后可重新操作'); +itime = setInterval(function() { + if (seconds === 0) { + clearInterval(itime); + + //$sc.val('发送验证码').removeClass('disable').prop('disabled', false); + $sc.val('发送验证码').removeClass('disable').removeAttr('disabled'); + } else { + $sc.val(seconds-- + '秒后可重新操作'); + } +}, 1000); + + +$('#captcha').keyup(function() { + var v = $.trim($(this).val()), + that = this; + + if (v.length === 4) { + $.ajax({ + type: 'POST', + url: '/passport/back/backmobile', + dataType: 'json', + data: { + code: $('#captcha').val(), + verifyCode: $('#captchaPic').val(), + area: $('#area').val(), + mobile: $('#mobile').val() + }, + success: function(res) { + if (res.code === 200) { + + //添加验证码正确验证 + $next.removeClass('disable').attr('href', res.data); + $errTip.addClass('hide'); + $(that).removeClass('error'); + } else { + $next.addClass('disable'); + $errTip.removeClass('hide').find('em').text('验证码输入错误'); + $(that).addClass('error'); + } + } + }); + } else { + $next.addClass('disable').attr('href', 'javascript:;'); + } +}).blur(function() { + var v = $.trim($(this).val()); + + if (v === '') { + + //添加验证码正确验证 + $(this).addClass('error'); + $errTip.removeClass('hide').text('请输入验证码'); + } +}).focus(function() { + $(this).removeClass('error'); +}); +}); +define("js/passport/thirdlogin", ["jquery"], function(require, exports, module){ +/** + * 第三方登录首页 + * @author: wq + * @date: 2016/1/21 + */ +var $ = require("jquery"); +var phoneRegx = require("js/passport/mail-phone-regx").phoneRegx; + +var nopermissionoption = $('#nopermissionmessage').html(); //倒计时dom +var sendmessagehtml = $('.validatewrapper').html(); //发送短信dom +var second = +$('.second').text(); //倒计时秒数 +var dovalidate = false; //校验验证码标识 +var validatecode = false; //验证码是否通过 +var choosedpic = '//cdn.yoho.cn/yohobuy/assets/img/passport/choosed.png';//已选择图片 + +var $wrapper = $('.bindwrapper'), + $phoneTip = $wrapper.find('.phone-err-tip'), + $nextBtn = $wrapper.find('.yohobindbtn'); + +/** + * 选择协议 + * @return {[type]} [description] + */ +function chooseProtocol() { + $('.choosetag').on('change', function() { + var btnColor = '#f02200'; + + if ($(this).attr('checked') === 'checked') { + $('.choosewrapper').css({ + 'background-image': 'url("' + choosedpic + '")' + }); + } else { + $('.choosewrapper').css({ + 'background-image': 'none' + }); + btnColor = '#CCCCCC'; + } + $nextBtn.css({ + 'background-color': btnColor + }); + }); +} +/** + * 判断是否同意协议 + * @return {[type]} [description] + */ +function isagree() { + return $('.choosetag').attr('checked') === 'checked'; +} +/** + * 选择区域的开关 + * @return {[type]} [description] + */ +function chooseAreaToogle() { + $('.optionshow').on('click', function() { + $('.optionslist').toggleClass('hide'); + }); +} + +/** + * 验证码校验 + * @return {[type]} [description] + */ +function codeValidate() { + var validatenum = ''; + + $(document).on('keyup', '#validatenum', function() { + validatenum = $(this).val(); + if (validatenum.length === 4) { + if (!dovalidate) { + dovalidate = true; + $.ajax({ + type: 'POST', + url: '/passport/autouserinfo/checkBindMsg', + data: { + code: validatenum, + mobile: $('#mobile').val(), + area: $('#areacode').val() + } + }).then(function(data) { + dovalidate = false; + if (data.code === 200) { + validatecode = true; + } else { + alert(data.message); + } + }); + } + } + }); + + $('#validatenum').focus(function() { + $(this).removeAttr('placeholder'); + }).blur(function() { + $(this).attr('placeholder', '验证码'); + }); +} + +/** + * 选择区域 + * @return {[type]} [description] + */ +function chooseArea() { + $('.optionitem').on('click', function() { + var $option = $(this); + var areanum = $option.attr('areanum'); + var areaname = $option.text(); + + $('#areaname').text(areaname); + $('#areanum').text(areanum); + $('#areacode').val(areanum); + $('.optionslist').addClass('hide'); + }); +} +/** + * 取消选择区域 + * @return {[type]} [description] + */ +function cancelChooseArea() { + $(document).on('click', 'body', function(e) { + var $target = $(e.target); + + if ($target.hasClass('yohoselectarea') || + $target.hasClass('areaname') || + $target.hasClass('righttag') || + $target.hasClass('optionslist') || + $target.hasClass('optionitem')) { + return; + } else { + $('.optionslist').addClass('hide'); + } + }); +} +/** + * 去掉区域号的加号 + * @return {[type]} [description] + */ +function fixAreaNum() { + var $opitem = ''; + var itemarecode = ''; + + $('.optionitem').each(function() { + $opitem = $(this); + itemarecode = $opitem.attr('areanum').replace(/\+/g, ''); + $opitem.attr('areanum', itemarecode); + }); +} + +/** + * 关闭蒙层 + * @return {[type]} [description] + */ +function closeMask() { + var $target; + + $(document).on('click', '#alreayregist', function(e) { + $target = $(e.target); + if ($target.hasClass('mask') || $target.hasClass('backdrop')) { + $('#alreayregist').hide(); + $('.backdrop').hide(); + } + }); + $(document).on('click', '#bindconfirm', function(e) { + $target = $(e.target); + if ($target.hasClass('mask') || $target.hasClass('backdrop')) { + $('#bindconfirm').hide(); + $('.backdrop').hide(); + } + }); +} +/** + * 绑定其他手机号 + * @return {[type]} [description] + */ +function yohoBindBtn() { + $(document).on('click', '#yohobindbtn', function(e) { + $('.phonenum').val(''); + $('#bindconfirm').hide(); + $('.backdrop').hide(); + }); + $(document).on('click', '#yohobindbtn2', function(e) { + $('.phonenum').val(''); + $('#alreayregist').hide(); + $('.backdrop').hide(); + }); +} +/** + * 发送短信的时间变换动画 + * @return {[type]} [description] + */ +function changeSecond() { + second -= 1; + if (second < 0) { + second = 60; + $('.validatewrapper').html(sendmessagehtml); + return; + } else { + $('.second').text(second); + window.setTimeout(changeSecond, 1000); + } + +} +/** + * 时间循环 + * @param {[type]} phonenum [description] + * @return {[type]} [description] + */ +function circleTime(phonenum) { + $('.validatewrapper').html(nopermissionoption); + window.setTimeout(changeSecond, 1000); +} +/** + * 发送短信 + * @return {[type]} [description] + */ +function sendMessageValidate() { + $(document).on('click', '#sendmessage', function() { + if ($('#sendmessage').attr('disabled') === 'disabled') { + return; + } + circleTime($('#mobile').val()); + $.ajax({ + type: 'POST', + url: '/passport/autouserinfo/sendBindMsg', + data: { + mobile: $('#mobile').val(), + area: $('#areacode').val() + } + }).then(function(data) { + if (data.code !== 200) { + alert(data.message); + } + }); + + }); +} + +/** + * 最终提交表单 + */ +function actionSubmit() { + var mobile = ''; + var area = ''; + + area = $('#areacode').val(); + mobile = $('#mobile').val(); + $.ajax({ + type: 'POST', + url: '/passport/autouserinfo/bindMobile', + data: { + area: area, + openId: $('#openId').val(), + sourceType: $('#sourceType').val(), + mobile: mobile, + code: $('#validatenum').val() + } + }).then(function(data) { + if (data.code === 200) { + if (data.data && data.data.refer) { + window.location.href = data.data.refer; + } else { + window.location.href = '/passport/thirdlogin/bindsuccess'; + } + } else { + alert(data.message); + } + }); +} + +/** + * 确认去绑定 + * @return {[type]} [description] + */ +function goToBindPhone() { + $(document).on('click', '#gotobindphone', function() { + if (validatecode === true) { + $('#inarea').val($('#areacode').val()); + $('#inmobile').val($('#mobile').val()); + actionSubmit(); + } else { + alert('请输入正确验证码'); + } + }); +} +/** + * 点击下一步 + * @return {[type]} [description] + */ +function nextStep() { + var openId = ''; + var sourceType = ''; + var mobile = ''; + var areaCode = ''; + var username = ''; + var headImg = ''; + + $('#bindfirststep').on('click', function(e) { + var regx; + + e.preventDefault(); + mobile = $('.phonenum').val(); + areaCode = $('#areanum').text(); + regx = phoneRegx['+' + areaCode]; + + if (!isagree()) { + return; + } + if (mobile === '' || !regx || !regx.test(mobile)) { + $phoneTip.find('em').text('手机格式错误'); + $phoneTip.removeClass('hide'); + return; + } + openId = $('#openId').val() || '29803EC6D4AAC3AAB8ABDB6AE829D579'; + sourceType = $('#sourceType').val() || 'qq'; + $.ajax({ + type: 'post', + url: '/passport/autouserinfo/bindCheck', + data: { + mobile: mobile, + area: areaCode, + openId: openId, + sourceType: sourceType + }, + dataType: 'json', + success: function(data) { + var winHeight = $(window).height(); + + if (data.code === 200) { + $('#bindmobileform').attr('action', data.data.next); + $('#bindmobileform').submit(); + } else if (data.code === 201) { + + // 已注册 未绑定 + username = data.data.user.username; + headImg = data.data.user.headImg; + $('#registphone').text(mobile); + $('#username').text(username); + if (headImg === '') { + $('#userphoto').attr('src', '//img10.static.yhbimg.com/headimg/2013/11/28/09/' + + '01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100'); + } else { + $('#userphoto').attr('src', headImg); + } + $('#logindirectly2').attr('href', data.data.user.bindLogin); + $('.backdrop').show(); + $('#sendmessage').click(); + $('#alreayregist .mask').css({ + 'padding-top': winHeight > 440 ? winHeight / 2 : 217 + }); + $('#alreayregist').show(); + } else if (data.code === 203) { + + // 已注册 可关联 + $('#bindmobileform').attr('action', data.data.next); + $('#bindmobileform').submit(); + } else if (data.code === 205) { + + // 未注册 不可关联 + username = data.data.user.username; + headImg = data.data.user.headImg; + $('#registphonetwo').text(mobile); + $('#username1').text(username); + if (headImg === '') { + $('#userphoto1').attr('src', '//img10.static.yhbimg.com/headimg/2013/11/28/09/' + + '01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100'); + } else { + $('#userphoto1').attr('src', headImg); + } + $('#logindirectly').attr('href', data.data.user.bindLogin); + $('.backdrop').show(); + $('#bindconfirm .mask').css({ + 'padding-top': winHeight > 440 ? winHeight / 2 : 217 + }); + $('#bindconfirm').show(); + } else if (data.code === 402) { + $phoneTip.find('em').text('手机格式错误'); + $phoneTip.removeClass('hide'); + } else { + if (data && data.message) { + alert(data.message); + } + } + } + }); + }); +} + +$wrapper.on('keydown', '.phonenum', function(e) { + if (e.keyCode === 13) { + $nextBtn.trigger('click'); + return false; + } +}); + +function init() { + fixAreaNum(); //去掉所有区域的+ + sendMessageValidate(); //有交互的发送短信 + chooseProtocol(); //选择协议 + chooseArea(); //选择区域 + chooseAreaToogle(); //选择区域展示或关闭 + cancelChooseArea(); //取消选择区域 + nextStep(); //下一步 + closeMask(); //关闭蒙层 + yohoBindBtn(); //绑定其他手机号点击 + goToBindPhone(); //绑定手机 + codeValidate(); //验证码校验 +} +init(); +}); +define("js/passport/third-pwd", ["jquery"], function(require, exports, module){ +/** + * 第三方绑定完善个人信息 + * @author: wq + * @date: 2016/1/27 + */ +var $ = require("jquery"); +var dovalidate = false; //校验验证码的标识 +var isvalidatecode = false; //是否验证成功的标识 +var isvalidatepwd = false; //密码验证是否通过的标识 +var second = ''; //倒计时时间 +var nopermissionoption = ''; //倒计时的dom +var sendmessagehtml = ''; //发送短信的dom +var submitStatus = false; //信息提交状态 + +var $wrapper = $('.bindwrapper'), + $codeTip = $wrapper.find('.code-err-tip'), + $pwdTip = $wrapper.find('.pwd-err-tip'), + $pwdTip2 = $('#pwd-tip2'), + $sendMsgBtn = $('#sendmessage'); +var $pwd, + $pwdParent, + $pwdTip1, + $pwdIntensity; + +var pwdRegx = require("js/passport/mail-phone-regx").pwdValidateRegx; +var mobile = $('#mobile').val(), + area = $('#area').val(); + +nopermissionoption = $('#nopermissionmessage').html(); +sendmessagehtml = $('.validatewrapper').html(); +second = +$('.second').text(); + + +function gettype(str, i) { + if (str.charCodeAt(i) >= 48 && str.charCodeAt(i) <= 57) { + return 1; + } else if (str.charCodeAt(i) >= 97 && str.charCodeAt(i) <= 122) { + return 2; + } else if (str.charCodeAt(i) >= 65 && str.charCodeAt(i) <= 90) { + return 3; + } + + return 4; +} + +function isregular(cur, pre, type) { + var curCode = cur.charCodeAt(0); + var preCode = pre.charCodeAt(0); + + if (curCode - preCode === 0) { + return true; + } + + if (type !== 4 && (curCode - preCode === 1 || curCode - preCode === -1)) { + return true; + } + + return false; +} + + +function getcomplex(curType, preType) { + if (preType === 0 || curType === preType) { + return 0; + } else if (curType === 4 || preType === 4) { + return 2; + } else { + return 1; + } +} + + +/** + * @desc: 计算密码复杂度(from://www.oschina.net/code/snippet_127301_17269) + * @author: xuqi(qi.xu@yoho.cn) + * @date: 2015/5/6 + */ +function computeComplex(password) { + var complex = 0; + var length = password.length; + var pre = ''; + var preType = 0; + var i = 0; + var cur = ''; + var curType = ''; + + for (i; i < length; i++) { + cur = password.charAt(i); + curType = gettype(password, i); + if (preType !== curType || !isregular(cur, pre, curType)) { + complex += curType + getcomplex(curType, preType); + } + pre = cur; + preType = curType; + } + + return complex; +} + +function showErrTip($dom, info) { + $dom.find('em').text(info); + $dom.removeClass('hide'); +} + +function changeSecond() { + second -= 1; + if (second < 0) { + second = 60; + $('.validatewrapper').html(sendmessagehtml); + return; + } else { + $('.second').text(second); + window.setTimeout(changeSecond, 1000); + } + +} +/** + * 启动倒计时 + * @return {[type]} [description] + */ +function circleTime() { + $('.validatewrapper').html(nopermissionoption); + window.setTimeout(changeSecond, 1000); +} + +function sendMessageValidate() { + $(document).on('click', '#sendmessage', function() { + circleTime(); + $.ajax({ + type: 'POST', + url: '/passport/autouserinfo/sendBindMsg', + data: { + mobile: mobile, + area: area + } + }).then(function(data) { + if (data.code !== 200) { + alert(data.message); + } + }); + + }); +} + + + +function codeValidate() { + var validatenum = ''; + + $(document).on('keyup', '#validatenum', function() { + $('#err-info').hide(); + validatenum = $(this).val(); + if (validatenum.length === 4) { + if (!dovalidate) { + dovalidate = true; + $.ajax({ + type: 'POST', + url: '/passport/autouserinfo/checkBindMsg', + data: { + code: validatenum, + mobile: mobile, + area: area + } + }).then(function(data) { + dovalidate = false; + if (data.code !== 200) { + $('#err-info').show(); + } else { + isvalidatecode = true; + } + }); + } + } + }); +} + +function pwdKeyupEvt() { + var pwd = $pwd.val(), + pwdStrength = computeComplex(pwd), + level = 0; + + if (pwdStrength === 0) { + level = 0; + } else if (pwdStrength <= 10) { + level = 1; + } else if (pwdStrength <= 20) { + level = 2; + } else { + level = 3; + } + switch (level) { + case 0: + $pwdParent.removeClass('red yellow green'); + $pwdIntensity.removeClass('color'); + break; + case 1: + $pwdParent.addClass('red').removeClass('yellow green'); + $pwdIntensity.filter('.low').addClass('color'); + $pwdIntensity.filter('.mid,.high').removeClass('color'); + break; + case 2: + $pwdParent.addClass('yellow').removeClass('red green'); + $pwdIntensity.filter('.low,.mid').addClass('color'); + $pwdIntensity.filter('.high').removeClass('color'); + break; + case 3: + $pwdParent.addClass('green').removeClass('yellow red'); + $pwdIntensity.addClass('color'); + break; + } + if (pwd === '') { + isvalidatepwd = false; + $pwdTip1.removeClass('red yes no').addClass('default'); + } else { + if (pwd.length < 6 || pwd.length > 20) { + isvalidatepwd = false; + $pwdTip1.removeClass('default yes').addClass('no red'); + } else { + isvalidatepwd = true; + $pwdTip1.removeClass('default no red').addClass('yes'); + } + if (/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]*$/.test(pwd)) { + $pwdTip2.removeClass('default no red').addClass('yes'); + } else { + $pwdTip2.removeClass('default yes').addClass('no red'); + } + } +} + +function validatePwd() { + $(document).on('keyup', '.pwdcontent', function() { + pwdKeyupEvt($(this)); + }); + $(document).on('focus', '.pwdcontent', function() { + $('#pwd-tips').removeClass('hide'); + }); + $(document).on('blur', '.pwdcontent', function() { + $('#pwd-tips').addClass('hide'); + }); +} + +/** + * 最终提交表单 + */ +function actionSubmit() { + var pwd = ''; + var code = ''; + + // 查看提交状态,避免重复提交 + if (submitStatus) { + return; + } + submitStatus = true; + setTimeout(function() { + submitStatus = false; + }, 50000); + + pwd = $('#pwd').val(); + code = $('#validatenum').val(); + $.ajax({ + type: 'POST', + url: '/passport/autouserinfo/bindMobile', + data: { + area: area, + openId: $('#openId').val(), + sourceType: $('#sourceType').val(), + mobile: mobile, + password: pwd, + code: code + } + }).then(function(data) { + submitStatus = false; + if (data.code === 200) { + if (data.data && data.data.refer) { + window.location.href = data.data.refer; + } else { + window.location.href = '/passport/thirdlogin/bindsuccess'; + } + } else { + alert(data.message); + } + }); +} +/** + * 确定完善信息 + * @return {[type]} [description] + */ +function actionConfirm() { + var validatenum = ''; + var pwd = ''; + + $('#confirmsubmit').on('click', function() { + var isAssess = true; + + validatenum = $('#validatenum').val(); + pwd = $('#pwd').val(); + + if (validatenum === '') { + showErrTip($codeTip, '短信验证码不能为空'); + isAssess = false; + } else if (isvalidatecode === false) { + showErrTip($codeTip, '请输入正确的验证码'); + isAssess = false; + } + + if (pwd === '') { + showErrTip($pwdTip, '密码不能为空'); + isAssess = false; + } else if (pwd.length < 6 || pwd.length > 20) { + showErrTip($pwdTip, '密码只支持6-20位字符'); + isAssess = false; + } else if (!pwdRegx.test(pwd)) { + showErrTip($pwdTip, '密码须由字母和数字组合'); + isAssess = false; + } else if (isvalidatepwd === false) { + showErrTip($pwdTip, '请输入符合强度的密码'); + isAssess = false; + } + + if (!isAssess) { + return; + } + + actionSubmit(); + }); +} + + + +function init() { + $pwd = $('#pwd'); + $pwdParent = $('.safelevel'); + $pwdIntensity = $('.pwd-intensity'); + $pwdTip1 = $('#pwd-tip1'); + sendMessageValidate(); + codeValidate(); + validatePwd(); + actionConfirm(); + if (mobile && area) { + $sendMsgBtn.click(); + } +} + +init(); + +}); +define("js/passport/relate", ["jquery"], function(require, exports, module){ +/** + * 第三方关联 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/4/11 + */ +var $ = require("jquery"); + +var $relateMain = $('#relate-main'), + $codeValidate = $('#code-validate'), + $vaWrapper = $codeValidate.find('.validate-wrapper'), + $msgCode = $codeValidate.find('.msg-code'), + $second = $codeValidate.find('.count-down span'), + $errTip = $codeValidate.find('.code-error'), + $hideDom = $('#hide-info'); + +var relate = {}; + +var circleTime = {}; + +relate = $hideDom.data(); +$hideDom.remove(); + +// 倒计时 +circleTime = { + init: function() { + if (this.timer) { + window.clearTimeout(this.timer); + } + this.second = 60; + $vaWrapper.addClass('waiting'); + this.changeTime(); + }, + changeTime: function() { + var that = this; + + if (this.second && this.second > 0) { + $second.text(this.second); + this.second--; + this.timer = window.setTimeout(function() { + that.changeTime(); + }, 1000); + } else { + this.clearTime(); + } + }, + clearTime: function() { + if (this.timer) { + window.clearTimeout(this.timer); + } + $vaWrapper.removeClass('waiting'); + } +}; + +function sendVerifyMsg() { + circleTime.init(); + + $.ajax({ + type: 'POST', + url: '/passport/autouserinfo/sendBindMsg', + data: { + mobile: relate.mobile, + area: relate.area + } + }).then(function(jsonData) { + if (jsonData && jsonData.code !== 200) { + circleTime.clearTime(); + alert(jsonData.message); + } + }); +} + +function relateMobile() { + var code = $msgCode.val(); + + if (!code) { + return; + } + + $.ajax({ + type: 'POST', + url: '/passport/autouserinfo/relateMobile', + data: { + mobile: relate.mobile, + area: relate.area, + openId: relate.openid, + sourceType: relate.source, + code: code + } + }).then(function(jsonData) { + if (jsonData.code === 200) { + window.location.href = jsonData.data.refer; + } else if (jsonData.code === 402) { + $errTip.removeClass('hide'); + } else { + $errTip.addClass('hide'); + alert(jsonData.message); + } + }); +} + +$('#next-step-btn').click(function() { + sendVerifyMsg(); + $relateMain.addClass('hide'); + $errTip.addClass('hide'); + $codeValidate.removeClass('hide'); +}); + +$codeValidate.on('keydown', '.msg-code', function(e) { + if (e.keyCode === 13) { + relateMobile(); + return false; + } +}); + +$codeValidate.on('click', '.get-code', function() { + sendVerifyMsg(); +}); + +$codeValidate.on('click', '.perv-step', function() { + circleTime.clearTime(); + $relateMain.removeClass('hide'); + $codeValidate.addClass('hide'); + $msgCode.val(''); +}); + +$('#relate-btn').click(function() { + relateMobile(); +}); +}); +define("js/cart/cart", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * @description: 购物车 + * @author: chenglong.wang@yoho.cn + * @tips: 购物车的商品计价在服务端处理,客户端只要在每次操作后刷新页面重新渲染就可以了 + */ + +var $ = require("jquery"); +var Handlerbars = require("handlebars"); +var dialog = require("js/common/dialog"); + +var Confirm = dialog.Confirm; +var Alert = dialog.Alert; + +var $cartnewSum = $('.cartnew-sum'), + $cartnewTips = $('.cartnew-tips'), + $payWapper = $('.pay-wapper'), + $goodsDetail = $('.goods-detail'), + $histroy = $('.histroy'), + $together = $('.together'), + $shopCart = $('.shop-cart'), + togetherProductSource, + togetherProductTemplate, + togetherProductStr, + subjoinPage, + subjoinPageNum, + subjoinPageAll, + pageDom, + selected, + pageNum = 1, + delUrl, + count, + countJSON, + dataJSON, + pacList = 0, + shopNum = 1, + shopNumAll, + productSku, + promotionId, + promotionPrice, + yetCollect, + collect, + content, + productId, + shopName, + delNum, + understock, + selectArray = [], + PromotionArray = [], + perList = false, + commonList = false, + hasPromotion = false, + htmlInfo, + shopJson, + oldprice, + wapperPrice, + countBusy = false; + + +// 关闭温馨提示 +$cartnewTips.find('.btn_close').click(function() { + $cartnewTips.fadeOut(); +}); + +// checkbox提交ajax +function choiceOut(data) { + $.ajax({ + type: 'POST', + dataType: 'json', + url: '/cart/index/select', + data: data, + beforeSend: function() { + $('.loading').css({ + top: $(document).scrollTop() + 200 + }); + $('.loading').show(); + } + }).then(function(d) { + if (d.code === 200) { + window.history.go(0); + } + }); +} + +//单选提交 +$payWapper.one('click', '.common-sell-box input[type="checkbox"], .pre-sell-box input[type="checkbox"]', function() { + selected = $(this).attr('checked') ? 'Y' : 'N'; + selectArray = []; + selectArray.push({ + product_sku: $(this).parents('tr').data('id'), + selected: selected, + buy_number: $(this).parents('tr').data('productnum'), + goods_type: $(this).parents('tr').data('goodstype'), + promotion_id: $(this).parents('tr').data('promotionid') ? $(this).parents('tr').data('promotionid') : 0 + }); + if ($(this).parents('tr').promotion_id) { + hasPromotion = true; + } else { + hasPromotion = false; + } + dataJSON = { + skuList: JSON.stringify(selectArray), + hasPromotion: hasPromotion + }; + choiceOut(dataJSON); +}); + +//多选提交 +$cartnewSum.one('click', 'input[type="checkbox"]', function() { + selectArray = []; + shopJson = {}; + dataJSON = {}; + selected = $(this).attr('checked') ? 'Y' : 'N'; + $('.pay-wapper:first tr').each(function() { + if ($(this).data('promotionid')) { + hasPromotion = true; + } + if ($(this).data('id')) { + selectArray.push({ + product_sku: $(this).data('id'), + selected: selected, + buy_number: $(this).data('productnum'), + goods_type: $(this).data('goodstype'), + promotion_id: $(this).data('promotionid') ? $(this).data('promotionid') : 0 + }); + } + }); + dataJSON = { + skuList: JSON.stringify(selectArray), + hasPromotion: hasPromotion + }; + choiceOut(dataJSON); +}); + +function isCheck(obj, className) { + selectArray = []; + dataJSON = {}; + selected = obj.attr('checked') ? 'Y' : 'N'; + $('.' + className).each(function() { + if ($(this).data('promotionid')) { + hasPromotion = true; + } else { + hasPromotion = false; + } + if ($(this).data('id')) { + selectArray.push({ + product_sku: $(this).data('id'), + selected: selected, + buy_number: $(this).data('productnum'), + goods_type: $(this).data('goodstype'), + promotion_id: $(this).data('promotionid') ? $(this).data('promotionid') : 0 + }); + } + }); + dataJSON = { + skuList: JSON.stringify(selectArray), + hasPromotion: hasPromotion + }; + choiceOut(dataJSON); +} + +$('.per-list').on('click', 'input[type="checkbox"]', function() { + isCheck($(this), 'pre-sell-box'); +}); + +$('.common-list').on('click', 'input[type="checkbox"]', function() { + isCheck($(this), 'common-sell-box'); +}); + +// 凑单商品,最近浏览异步加载 +togetherProductSource = $('#togetherProduct').html(); +togetherProductTemplate = Handlerbars.compile(togetherProductSource); + +function getTogetherProduct($obj, url, page) { + $.ajax({ + type: 'GET', + dataType: 'json', + url: url, + data: page + }).then(function(d) { + if (d.code === 200) { + if (d.data.item) { + if (d.data.item.length > 0) { + $obj.html(' '); + togetherProductStr = togetherProductTemplate(d.data); + $obj.append($(togetherProductStr)); + $('#orderProduct li:last').addClass('end'); + $('.gift').removeClass('none'); + } + } + } + }); +} + +// 最近浏览 +getTogetherProduct($histroy, '/cart/index/getHistroyProduct'); + +// 凑单商品 +getTogetherProduct($together, '/cart/index/getTogetherProduct'); + +//凑单商品翻页 +$together.on('click', '.pagenext, .pageprev', function() { + getTogetherProduct($together, '/cart/index/getTogetherProduct', { + page: Math.ceil(Math.random() * 100) + 1 + }); + +}); + +//凑单商品,历史商品商品折叠 +$shopCart.on('click', '.icon-minus, .icon-add', function() { + if ($(this).hasClass('icon-minus')) { + $(this).parents('.title').next('.main').hide(); + $(this).parents('h2').next('.right').hide(); + } else { + $(this).parents('.title').next('.main').show(); + $(this).parents('h2').next('.right').show(); + } + $(this).siblings('i').toggleClass('none'); + $(this).toggleClass('none'); + +}); + +// 最近浏览翻页 +$histroy.on('click', '.pagenext, .pageprev', function() { + if ($(this).hasClass('pagenext')) { + pageNum++; + } else { + --pageNum > 0 || (pageNum = 1); + } + getTogetherProduct($histroy, '/cart/index/getHistroyProduct', { + page: pageNum + }); + +}); + + +//根据id获取商品信息 +function productInfo(data) { + $.ajax({ + type: 'GET', + dataType: 'html', + url: '/cart/index/getProductInfo', + data: data + }).then(function(d) { + pacList = 0; + $goodsDetail.html(' '); + $goodsDetail.append(d); + $goodsDetail.show(); + $('.detail-bigpic:not(.none) .con li:first').addClass('active'); + + if ($('.showSizeBox:not(.none) span').length < 2) { + $('.showSizeBox:not(.none) span:first').addClass('atcive'); + } + if (Number($('#addToCart').val()) !== 1) { + $('.showSizeBox span').data('num', 0); + } + $.each($('.showSizeBox span'), function() { + if ($(this).data('num') <= 0) { + $(this).addClass('null-atcivec'); + console.log($('.showSizeBox:not(.none) span:first')); + $('.showSizeBox:not(.none) span:first').removeClass('atcive'); + } + }); + + if (typeof promotionPrice !== 'undefined') { + oldprice = $('.detail-info .oldprice del').html() ? $('.detail-info .oldprice del').html() : wapperPrice; + htmlInfo = '<span class="oldprice">现价:<del>' + oldprice + '</del></span>' + + '<span class="newprice">活动价:<b class="promotion-price">' + promotionPrice + '</b></span>'; + $('.detail-info .price').html(htmlInfo); + } + + $('.detail-bigpic:not(.none) .bigpic:gt(0)').hide(); + + $('.showSizeBox:not(.none)').find('span').each(function() { + if ($(this).hasClass('null-atcivec')) { + $('.addcart').addClass('none'); + $('.btn_sellout').removeClass('none'); + } else { + $('.addcart').removeClass('none'); + $('.btn_sellout').addClass('none'); + return false; + } + }); + }); +} + +function removeInfo() { + $goodsDetail.html(' '); + $goodsDetail.css({ + top: $(document).scrollTop() + 30, + left: $(document).width() / 2 - $goodsDetail.width() / 2 + }); + +} + +//显示加价购商品信息 +$payWapper.on('click', '.cart-add-btn', function() { + productId = $(this).data('id'); + promotionId = $(this).parents('table').data('promotion'); + promotionPrice = $(this).parents('table').find('.subjoin-price').html(); + wapperPrice = $(this).parents('table').find('.wapper-price').html(); + removeInfo(); + productInfo({ + productId: productId + }); +}); + +//凑单商品,历史商品商品记录 +$('.clearfix').on('click', '.btn_view_s', function() { + productId = $(this).data('id'); + promotionId = $(this).parents('table').data('promotion'); + promotionPrice = $(this).parents('table').find('.subjoin-price').html(); + removeInfo(); + productInfo({ + productId: productId + }); +}); + +//关闭商品信息窗口 +$goodsDetail.on('click', '.colse', function() { + $goodsDetail.hide(); + $goodsDetail.html(' '); + shopNum = 1; +}); + +//展开加价购商品列表 +function fold(icon) { + icon.addClass('none').siblings('i').removeClass('none'); + icon.parents('.cart-product-num').siblings('div').toggleClass('fold'); + icon.siblings('.unfold-color').toggleClass('none'); + icon.siblings('.cart-page').toggleClass('none'); +} + +$payWapper.on('click', '.icon-minusCart, .icon-addCart', function() { + fold($(this)); +}); + + +$payWapper.on('click', '.unfold-color', function() { + fold($(this)); + $(this).siblings('.icon-minusCart').removeClass('none'); + $(this).siblings('.icon-addCart').addClass('none'); +}); + +//加价购商品分页 +$payWapper.on('click', '.cart-btn-next', function() { + subjoinPage = $(this).siblings('p').find('.f-red'); + subjoinPageAll = Number($(this).siblings('p').find('.subjoinPageNum').html()); + subjoinPageNum = Number(subjoinPage.html()); + subjoinPage.html(subjoinPageNum + 1); + if (subjoinPageNum >= subjoinPageAll - 1) { + $(this).hide(); + } else { + $(this).siblings('i').show(); + } + pageDom = $(this).parents('.cart-product-num').siblings('div').find('table'); + pageDom.addClass('none').eq(subjoinPageNum).removeClass('none'); +}); + +$payWapper.on('click', '.cart-btn-pre', function() { + subjoinPage = $(this).siblings('p').find('.f-red'); + subjoinPageAll = Number($(this).siblings('p').find('.subjoinPageNum').html()); + subjoinPageNum = Number(subjoinPage.html()); + subjoinPage.html(subjoinPageNum - 1); + if (subjoinPageNum <= 2) { + $(this).hide(); + } else { + $(this).siblings('i').show(); + } + pageDom = $(this).parents('.cart-product-num').siblings('div').find('table'); + pageDom.addClass('none').eq(subjoinPageNum - 2).removeClass('none'); +}); + +//删除购物车商品,把删除的商品移入cookie中 +function cartDel(data, delUrl, cookieList) { + $.ajax({ + type: 'POST', + dataType: 'json', + url: delUrl, + data: dataJSON, + beforeSend: function() { + $('.loading').css({ + top: $(document).scrollTop() + 200 + }); + $('.loading').show(); + } + }).then(function(d) { + if (d.code === 200) { + if (cookieList) { + window.setCookie('cart-del-list', JSON.stringify(cookieList), { + domain: '.yohobuy.com', + path: '/' + }); + } + window.history.go(0); + } else if (d.code === 300) { + $('.loading').hide(); + new Alert(d.message).show(); + } else if (d.code === 403) { + if (d.data.url) { + window.location = d.data.url; + } + } + }); +} + +//商品信息弹出框,加入收藏夹 +$goodsDetail.on('click', '.fav_count', function() { + $.ajax({ + type: 'POST', + dataType: 'json', + url: '/product/item/togglecollect', + data: { + productId: productId, + type: 'add' + } + }).then(function(d) { + if (d.code === 200) { + new Alert(d.message).show(); + } else if (d.code === 403) { + if (d.data.url) { + window.location = d.data.url; + } + } else { + new Alert(d.message).show(); + } + }); +}); + + +//删除商品 +$payWapper.on('click', '.cart-del-btn', function() { + dataJSON = {}; + selectArray = []; + promotionId = $(this).parents('tr').data('promotionid') ? $(this).parents('tr').data('promotionid') : 0; + selectArray.push({ + product_sku: $(this).parents('tr').data('id'), + buy_number: $(this).parents('tr').data('productnum'), + promotion_id: promotionId + }); + + if (promotionId) { + hasPromotion = true; + } else { + hasPromotion = false; + } + + dataJSON = { + skuList: JSON.stringify(selectArray), + hasPromotion: hasPromotion + }; + content = '<div><span></span>删除商品</div>' + + '<p>确定从购物车中删除此商品?</p>'; + if (!$(this).data('gift')) { + countJSON = { + productPrice: $(this).parents('tr').find('.productPrice').text(), + productTitle: $(this).parents('tr').find('.pay-pro-info a').text(), + link: $(this).parents('tr').find('.pay-pro-info a').attr('href'), + productNum: $(this).parents('tr').data('productnum'), + productSku: $(this).parents('tr').data('id'), + promotionId: $(this).parents('tr').data('promotionid') + }; + } + delUrl = '/cart/index/remove'; + new Confirm({ + content: content, + cb: function() { + cartDel(dataJSON, delUrl, countJSON); + } + }).show(); +}); + +//移入收藏夹 +$payWapper.on('click', '.cart-remove-btn', function() { + dataJSON = {}; + selectArray = []; + promotionId = $(this).parents('tr').data('promotionid') ? $(this).parents('tr').data('promotionid') : 0; + selectArray.push({ + product_sku: $(this).parents('tr').data('id'), + buy_number: $(this).parents('tr').data('productnum'), + promotion_id: promotionId + }); + + if (promotionId) { + hasPromotion = true; + } else { + hasPromotion = false; + } + + dataJSON = { + skuList: JSON.stringify(selectArray), + hasPromotion: hasPromotion + }; + + cartDel(dataJSON, '/cart/index/fav'); +}); + +//批量删除商品 +$cartnewSum.on('click', '.delAll', function() { + dataJSON = {}; + countJSON = {}; + selectArray = []; + PromotionArray = []; + $('.pay-wapper:first tr').each(function() { + if ($(this).find('input[type="checkbox"]').attr('checked')) { + promotionId = $(this).data('promotionid') ? $(this).data('promotionid') : 0; + if (promotionId) { + hasPromotion = true; + } + if ($(this).data('id')) { + if ($(this).find('input[type="checkbox"]').attr('checked')) { + selectArray.push({ + product_sku: $(this).data('id'), + buy_number: $(this).data('productnum'), + promotion_id: promotionId + }); + } + countJSON = { + productPrice: $(this).find('.productPrice').text(), + productTitle: $(this).find('.pay-pro-info a').text(), + link: $(this).find('.pay-pro-info a').attr('href'), + productNum: $(this).data('productnum'), + productSku: $(this).data('id'), + promotionId: $(this).data('promotionid') + }; + PromotionArray.push(countJSON); + } + } + }); + delUrl = '/cart/index/remove'; + content = '<div><span></span>删除商品</div>' + + '<p>确定从购物车中删除所有选中商品?</p>'; + dataJSON = { + skuList: JSON.stringify(selectArray), + hasPromotion: hasPromotion + }; + if (!$.isEmptyObject(selectArray)) { + new Confirm({ + content: content, + cb: function() { + cartDel(dataJSON, delUrl, PromotionArray); + } + }).show(); + } else { + new Alert('请至少选择一件商品').show(); + } +}); + +//批量移入收藏夹商品 +$cartnewSum.on('click', '.removeAll', function() { + dataJSON = {}; + countJSON = {}; + selectArray = []; + $('.pay-wapper:first tr').each(function() { + if ($(this).find('input[type="checkbox"]').attr('checked')) { + promotionId = $(this).data('promotionid') ? $(this).data('promotionid') : 0; + if (promotionId) { + hasPromotion = true; + } + + if ($(this).data('id')) { + if ($(this).find('input[type="checkbox"]').attr('checked')) { + selectArray.push({ + product_sku: $(this).data('id'), + buy_number: $(this).data('productnum'), + promotion_id: promotionId + }); + } + } + } + }); + dataJSON = { + skuList: JSON.stringify(selectArray), + hasPromotion: hasPromotion + }; + if (!$.isEmptyObject(selectArray)) { + cartDel(dataJSON, '/cart/index/fav'); + } else { + new Alert('请至少选择一件商品').show(); + } +}); + +//购物车商品增减 +function countAJAX(data) { + countBusy = true; + $.ajax({ + type: 'POST', + dataType: 'json', + url: '/cart/index/modify', + data: data + }).then(function(d) { + if (d.code === 200) { + window.history.go(0); + } + countBusy = false; + }); +} + +$payWapper.on('click', '.minus, .plus', function() { + countJSON = {}; + count = $(this).hasClass('minus') ? 'decreaseNum' : 'increaseNum'; + countJSON['' + count] = 1; + if (countBusy || ($(this).siblings('input').val() === '1' && $(this).hasClass('minus'))) { + return false; + } + + countAJAX($.extend(countJSON, + { + sku: $(this).parents('tr').data('id') + } + )); +}); + +$('.gift').on('click', '.up, .down', function() { + $(this).siblings('i').toggleClass('none'); + $(this).toggleClass('none'); +}); + +//加入购物车 + +function addcart(data, cookieList) { + $.ajax({ + type: 'POST', + url: '/cart/index/add', + data: data + }).then(function(d) { + if (d.code === 200) { + window.history.go(0); + if (cookieList) { + window.setCookie('cart-del-list', JSON.stringify(cookieList), { + domain: '.yohobuy.com', + path: '/' + }); + } + } else if (d.code === 500) { + new Alert(d.message).show(); + } + }); +} + +$goodsDetail.on('click', '.addcart', function() { + if ($('.showSizeBox:not(.none) .atcive').length !== 0) { + shopNumAll = $('.showSizeBox:not(.none) .atcive').data('num'); + productSku = $('.showSizeBox:not(.none) .atcive').data('sku'); + dataJSON = { + productSku: productSku, + buyNumber: $('#mnum').val(), + promotionId: promotionId + }; + } else { + new Alert('请选择尺码').show(); + return false; + } + + if ($('#mnum').val() > shopNumAll) { + new Alert('库存不足,目前还有' + shopNumAll + '个库存').show(); + } else { + if (Number($('#addToCart').val()) === 1) { + addcart(dataJSON); + } else { + new Alert('该商品无法加入购物车').show(); + } + } +}); + +$goodsDetail.on('click', '.cut, .add', function() { + count = $(this).hasClass('minus') ? 'decreaseNum' : 'increaseNum'; + if (promotionId) { + if ($(this).hasClass('cut')) { + new Alert('-_-,已经是最后一件,不能在减了!').show(); + } else { + new Alert('最多只能购买1,您好像购买的太多了!').show(); + } + } else { + if ($(this).hasClass('add')) { + shopNum++; + } else { + shopNum--; + } + if (shopNum < 1) { + new Alert('-_-,已经是最后一件,不能在减了!').show(); + shopNum = 1; + return false; + } + + $('#mnum').val(shopNum); + } + +}); + +$goodsDetail.on('click', '.color', function() { + pacList = 0; + $('.color').find('p').removeClass('atcive'); + $(this).find('p').addClass('atcive'); + $('.showSizeBox').addClass('none').eq($(this).index()).removeClass('none'); + if ($('.showSizeBox:not(.none) span').length < 2) { + $('.showSizeBox:not(.none) span:first').addClass('atcive'); + } + $('.detail-bigpic').addClass('none').eq($(this).index()).removeClass('none'); + $('.detail-bigpic').eq($(this).index()).find('.bigpic').hide(); + $('.detail-bigpic').eq($(this).index()).find('.bigpic:first').show(); + $('.detail-bigpic').eq($(this).index()).find('.con li').removeClass('active'); + $('.detail-bigpic').eq($(this).index()).find('.con li:first').addClass('active'); + $('.showSizeBox').eq($(this).index()).find('span').each(function() { + if ($(this).hasClass('null-atcivec')) { + $('.addcart').addClass('none'); + $('.btn_sellout').removeClass('none'); + } else { + $('.addcart').removeClass('none'); + $('.btn_sellout').addClass('none'); + return false; + } + }); +}); + +$goodsDetail.on('click', '.showSizeBox span', function() { + shopNumAll = $(this).data('num'); + if ($(this).data('num') > 0) { + $('.showSizeBox:not(.none) span').removeClass('atcivec atcive').eq($(this).index()).addClass('atcive'); + $('.addcart').removeClass('none'); + $('.btn_sellout').addClass('none'); + } else { + $('.showSizeBox:not(.none) span').removeClass('atcivec atcive').eq($(this).index()).addClass('atcivec'); + $('.addcart').addClass('none'); + $('.btn_sellout').removeClass('none'); + } +}); + +//撤销删除 +$('.goBack').on('click', function() { + dataJSON = {}; + delNum = $('.dev-revocation .goBack').index(this); + selectArray = []; + $('.dev-revocation tr').each(function(index) { + if (delNum !== index) { + countJSON = { + productPrice: $(this).find('.productPrice').text(), + productTitle: $(this).find('.title').text(), + link: $(this).find('.title').attr('href'), + productNum: $(this).data('productnum'), + productSku: $(this).data('productsku'), + promotionId: $(this).data('promotionid') + }; + selectArray.push(countJSON); + } + }); + dataJSON = { + productSku: $(this).parents('tr').data('productsku'), + promotionId: $(this).parents('tr').data('promotionid'), + buyNumber: $(this).parents('tr').data('productnum') + }; + addcart(dataJSON, selectArray); +}); + +$goodsDetail.on('click', '.piclist li', function() { + pacList = $(this).index(); + $('.detail-bigpic:not(.none) .piclist li').removeClass('active'); + $(this).addClass('active'); + $('.detail-bigpic:not(.none) .bigpic').hide().eq($(this).index()).show(); +}); + +function isSollect() { + $('.gift-wrapper .fold').show(); + if ($('.pre-sell-box input:checked').length === $('.pre-sell-box input[type="checkbox"]').length) { + $('.per-list input[type="checkbox"]').attr('checked', true); + } + if ($('.common-sell-box input:checked').length === $('.common-sell-box input[type="checkbox"]').length) { + $('.common-list input[type="checkbox"]').attr('checked', true); + } + if ($('.common-list input[type="checkbox"]').attr('checked')) { + commonList = true; + } + if ($('.per-list input[type="checkbox"]').attr('checked')) { + perList = true; + } + if ($('.per-list').length !== 0 && $('.common-list').length !== 0) { + if (commonList && perList) { + $('.batch_div input[type="checkbox"]').attr('checked', true); + } + } else { + if (commonList || perList) { + $('.batch_div input[type="checkbox"]').attr('checked', true); + } + } + + $('.cart-page').each(function() { + if ($(this).data('pageall') === 1) { + $('.cart-btn-pre', this).hide(); + $('.cart-btn-next', this).hide(); + } else { + $('.cart-btn-pre', this).hide(); + } + }); + + if ($('.pre-sell-box input:checked').length > 0 && $('.common-sell-box input:checked').length > 0) { + $('.go_cash_tips').show(); + $('.btn_account_disabled').show(); + $('.btn_account').hide(); + } else { + $('.go_cash_tips').hide(); + $('.btn_account').show(); + $('.btn_account_disabled').hide(); + } + + $('.pay-wapper tr').each(function() { + if ($(this).data('pid')) { + selectArray.push($(this).data('pid') + ''); + } + + }); + $.ajax({ + type: 'POST', + url: '/cart/index/checkFav', + data: { + pidList: JSON.stringify(selectArray) + } + }).then(function(d) { + yetCollect = '<span class="cart-yetremove-btn">已收藏</span>'; + collect = '<a href="javascript:void(0);" class="cart-remove-btn"><span>移入收藏</span></a>'; + $.each(d.data, function(key, val, index) { + $('.pay-wapper tr').each(function() { + if (Number($(this).data('pid')) === Number(key)) { + if (val) { + $(this).find('.cart-operation').append(yetCollect); + } else { + $(this).find('.cart-operation').append(collect); + } + } + }); + }); + }); +} + +isSollect(); + +$goodsDetail.on('click', '.pre, .next', function() { + if ($(this).hasClass('next')) { + if (pacList >= $(this).siblings('.con').find('li').length - 1) { + return false; + } + pacList++; + } else { + if (pacList < 1) { + return false; + } + pacList--; + } + $(this).siblings('.con').find('li').removeClass('active').eq(pacList).addClass('active'); + $('.detail-bigpic:not(.none) .bigpic').hide().eq(pacList).show(); +}); + +//结算 +$('.btn_account').on('click', function() { + understock = ''; + if ($('.pay-wapper input:checked').parents('tr').find('.tipNoStore').length > 0) { + shopName = $('.pay-wapper input:checked').parents('tr').find('.tipNoStore'); + $.each(shopName.parents('tr').find('.pay-pro-info a'), function() { + understock += $(this).html(); + }); + new Alert(understock + '库存不足').show(); + } else { + if ($('.zp').length > 0 && !$(this).attr('title')) { + $(this).attr('title', '1'); + new Alert('您有赠品没有选择,请选择完再结算!').show(); + } else { + if ($('input:checked').length > 0) { + if ($('.pre-sell-box input:checked').length > 0) { + window.location.href = '/cart/index/orderEnsure?type=2'; + } else { + window.location.href = '/cart/index/orderEnsure?type=1'; + } + } else { + new Alert('请至少选择一件商品').show(); + } + } + } +}); + +$payWapper.on('selectstart', function() { + return false; +}); +$goodsDetail.on('selectstart', function() { + return false; +}); +}); +define("js/guang/entry", ["jquery","lazyload","dot","jquery-pjax"], function(require, exports, module){ +/** + * 逛打包入口 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2016/3/29 + */ + +require("js/guang/list"); + +require("js/guang/detail"); + +require("js/guang/index"); + +}); +define("js/guang/list", ["jquery","lazyload","dot"], function(require, exports, module){ +/** + * 逛编辑页、列表页 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/15 + */ + +require("js/guang/msg"); +require("js/guang/img-blink"); +require("js/guang/right-side"); +}); +define("js/guang/msg", ["jquery","lazyload","dot"], function(require, exports, module){ +var $ = require("jquery"), + lazyLoad = require("lazyload"); + +var prising; + +require("dot"); + +//资讯文字截取和lazyload +function dotLazy() { + + //文字截取 + $('.msg-title, .msg-content .content').dotdotdot({ + wrap: 'letter' + }); + + //Lazyload + lazyLoad($('#msg-list img.lazy')); +} + +//资讯点赞 +$('.guang-page').on('click', '.like-icon', function() { + var $this = $(this), + msgId = $this.closest('.msg-content').data('id'), + url; + + //同一资讯多次点击归一处理 + if (prising === msgId) { + return; + } + + prising = msgId; + + $this.toggleClass('liked'); + + //点赞或取消点赞 + if ($this.hasClass('liked')) { + url = '/guang/info/praise'; + } else { + url = '/guang/info/cancelPraise'; + } + $.ajax({ + type: 'GET', + url: url, + data: { + id: msgId, + time: new Date().getTime() + } + }).then(function(data) { + if (data.code === 200) { + if (data.data * 1 === 0) { + $this.next('b').addClass('num-0').children('.num').html('0'); //隐藏数字显示 + } else { + $this.next('b').removeClass('num-0').children('.num').html(data.data); + } + } + prising = false; + }); +}).on('mouseenter mouseleave', '.like-icon', function() { + $(this).closest('.like').toggleClass('hover'); +}); + +dotLazy(); + +exports.dotLazy = dotLazy; + +}); +define("js/guang/img-blink", ["jquery"], function(require, exports, module){ +/** + * 图片移入闪动效果JS + * @auhor: xuqi<qi.xu@yoho.cn> + * @date: 2015/7/29 + */ + +var $ = require("jquery"); + +$('.guang-page').on('mouseover', 'a img, a .bg-img', function(e) { + var $el = $(e.target); + + //slider中的图片不做此效果 + if ($el.closest('.slider').length > 0) { + return; + } + + $el.addClass('blink'); + + setTimeout(function() { + $el.removeClass('blink'); + }, 100); +}); + +}); +define("js/guang/right-side", ["jquery","lazyload","dot"], function(require, exports, module){ +/** + * 右侧栏文字截取js + */ +var $ = require("jquery"), + lazyLoad = require("lazyload"); + +require("dot"); + +$('.ex-reco-context').dotdotdot({ + wrap: 'letter' +}); + +lazyLoad($('.ads img.lazy')); +}); +define("js/guang/detail", ["jquery","lazyload","dot","jquery-pjax"], function(require, exports, module){ +/** + * 逛详情页 + * @author: liuyue<yue.liu@yoho.cn> + * @date: 2015/12/16 + */ + +var $ = require("jquery"), + lazyLoad = require("lazyload"), + $commentArea = $('#comment-area'), + articleId = $('.detail-body').data('id'); + +var $commentList = $commentArea.find('.comments-wrap'), + $commentNum = $('#article-comment > .comment-num'), + commenting = false, //评论请求尚未返回变量 + locating = false, //评论页面正在跳转 + $commentBtn = $('#comment-btn'), + MAX_COMMENTS_WORDS = 100, + $wordCountTip = $('#word-count-tip'); + +require("js/guang/right-side"); +require("js/guang/img-blink"); + +require("js/common/share"); + +//Pjax +require("jquery-pjax"); + +lazyLoad({ + failure_limit: 50 +}); + +//点击评论滑到评论区 +// $('#article-comment').click(function() { +// $('html, body').animate({ +// scrollTop: $commentArea.offset().top - 20 +// }, 800); +// }); + +//文章点赞与取消点赞 +$('#prise-btn').click(function() { + var prising = false, + url, + $this = $(this); + + if (prising) { + return; + } + $this.toggleClass('liked'); + if ($this.hasClass('liked')) { + + //点赞 + url = '/guang/info/praise'; + } else { + + //取消点赞 + url = '/guang/info/cancelPraise'; + } + prising = true; + $.ajax({ + type: 'GET', + url: url, + data: { + id: articleId + } + }).then(function(data) { + if (data.code === 200) { + $this.find('.like-num').html(data.data); + } + prising = false; + }); +}).bind('mouseenter mouseleave', function() { + $(this).toggleClass('hover'); +}); + +//文章收藏与取消收藏 +$('#collect-btn').click(function() { + var collecting = false, + url, + col, + $this = $(this); + + if (collecting) { + return; + } + if ($this.hasClass('collected')) { + + //取消收藏 + url = '/guang/info/cancelcollect'; + col = 0; + } else { + + //收藏 + url = '/guang/info/collect'; + col = 1; + } + collecting = true; + $.ajax({ + type: 'GET', + url: url, + data: { + id: articleId + } + }).then(function(data) { + var hrefUrl; + + switch (data.code) { + case 401: + + //防止从已有col的页面再次进行跳转后出错的情况 + if (/\?col=(1|0)/.test(location.href)) { + hrefUrl = location.href.replace(/\?col=(1|0)/, '?col=' + col); + } else { + hrefUrl = location.href + '?col=' + col; + } + location.href = '//www.yohobuy.com/signin.html?refer=' + encodeURI(hrefUrl); + break; + case 400: + + // alert(data.message); + break; + case 200: + if (/\?col=(1|0)/.test(location.href)) { + + //如果页面url中含有col,为了防止页面刷新时收藏或者取消收藏会根据col来的问题,进行页面跳转拿掉参数 + location.href = location.href.replace(/\?col=(1|0)/, ''); + } else { + $this.toggleClass('collected'); + } + break; + } + collecting = false; + }); +}).bind('mouseenter mouseleave', function() { + $(this).toggleClass('hover'); +}); + +function showComment() { + var commonlist = $('.comments-list').find('li').length; + + if (commonlist === 0) { + $('.commnets-resultwrapper').hide(); + $('.comments-empty').show(); + } else { + $('.commnets-resultwrapper').show(); + $('.comments-empty').hide(); + } +} +showComment(); + +//评论 +function comment(id) { + var commentInfo = $('#comment-info').val(); + + if (commentInfo === '') { + alert('评论不能为空'); + return false; + } + commenting = true; + $.ajax({ + url: '/guang/info/comment', + data: { + id: id, + comment: commentInfo + }, + type: 'post', + success: function(data) { + switch (data.code) { + case 401: + locating = true; + location.href = '//www.yohobuy.com/signin.html?refer=' + + window.escape(location.href + '#comment-info'); + break; + case 400: + alert(data.message); + break; + case 200: + if (data.data) { + $commentList.html(data.data.content); + $commentNum.html(data.data.count); + showComment(); + + //clear comment-text + $('#comment-info').val('').keyup(); + } + break; + } + commenting = false; + } + }); +} + +$commentBtn.click(function(e) { + + //页面正在跳转或者正在AJAX请求时评论无效 + if (locating || commenting) { + return false; + } + + //字数不符合要求 + if ($('#comment-info').val().length - MAX_COMMENTS_WORDS > 0) { + return; + } + e.preventDefault(); + comment(articleId); +}); + + +//comment pager pjax +$(document).pjax('.comment-pager a', '#pjax-container', { + timeout: 5000 +}); + +//分页后移动到评论框的位置 +$(document).on('pjax:end', function() { + showComment(); + $('html,body').scrollTop($('#comment-info').offset().top); +}); + +$('#comment-info').keyup(function() { + var len = $(this).val().length, + showTxt; + + if (len === 0) { + $wordCountTip.html(''); + $commentBtn.addClass('disable'); + } else { + if (len - MAX_COMMENTS_WORDS <= 0) { + showTxt = '还可以输入' + (MAX_COMMENTS_WORDS - len) + '字'; + $commentBtn.removeClass('disable'); + } else { + showTxt = '已超过<span class="exceed-count">' + (len - MAX_COMMENTS_WORDS) + '</span>字'; + $commentBtn.addClass('disable'); + } + } + $wordCountTip.html(showTxt); +}); + +//init +$('#comment-info').trigger('keyup'); + +}); +define("js/guang/index", ["jquery","lazyload","dot","jquery-pjax"], function(require, exports, module){ +/** + * 逛首页 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/15 + */ + +var $ = require("jquery"); + +var msg = require("js/guang/msg"); + +require("jquery-pjax"); +require("js/common/slider"); + +require("js/guang/img-blink"); + +require("js/guang/right-side"); + +$('#slider').slider(); //初始化slider + +$(document).pjax('.pjax-link, .msg-pager a', '#pjax-container', { + timeout: 2000 +}); + +$(document).on('pjax:end', function() { + msg.dotLazy(); +}); +}); +define("js/home/entry", ["jquery","handlebars","source-map","dot"], function(require, exports, module){ +/** + * 个人中心页js打包入口文件 + * @author: zhaobiao<bill.zhao@yoho.cn> + * @date: 2016/02/17 + */ + +require("js/home/index"); +require("js/home/orders"); +require("js/home/favorite"); +require("js/home/currency"); + +require("js/home/returns"); +require("js/home/comment"); +require("js/home/complaints"); +require("js/home/message"); + +require("js/home/edit"); +require("js/home/gift"); +require("js/home/validate"); +require("js/home/address"); +require("js/home/common-address"); +}); +define("js/home/index", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 个人中心首页 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2016/2/17 + */ + +var $ = require("jquery"); + +require("js/home/order-block"); + +//关闭消息提示 +$('#close-message').click(function() { + $('.message-tip').slideUp(200); +}); + +//新品上架 +(function() { + var $naPager = $('.na-pager'), + $naUl = $('.new-arrival ul'), + naPage = Math.ceil($naUl.children('li').length / 5), + naItemWith = $naUl.children('li:last-child').outerWidth(), + naCurPage = 1; + + $naUl.width($naUl.width() * naPage); + + //最新上架翻页 + $naPager.click(function() { + var $this = $(this), + left; + + if ($this.hasClass('next')) { + + //后翻 + ++naCurPage; + + //第2页显示前翻按钮 + if (naCurPage === 2) { + $this.siblings().removeClass('no-visible'); + } + + //最后一页隐藏后翻按钮 + if (naCurPage === naPage) { + $this.addClass('no-visible'); + } + } else { + + //前翻 + --naCurPage; + + //倒数第2页显示后翻按钮 + if (naCurPage === naPage - 1) { + $this.siblings().removeClass('no-visible'); + } + + //第1页隐藏前翻按钮 + if (naCurPage === 1) { + $this.addClass('no-visible'); + } + } + + left = -5 * (naCurPage - 1) * naItemWith; + + $naUl.animate({ + marginLeft: left + }, 400); + }); +}()); +}); +define("js/home/order-block", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 订单 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2016/2/17 + */ + +var $ = require("jquery"); +var Handlebars = require("handlebars"); + +var dialog = require("js/common/dialog"); + +var Dialog = dialog.Dialog; +var Confirm = dialog.Confirm; + +var $tpl = $('#cancel-dialog-tpl'); +var deleteDialog = '<div class="order-delete-confirm">' + + '<div class="header">' + + '<p>删除订单</p>' + + '<a href="javascript:;" title="关闭"></a>' + + '</div>' + + '<div class="body">' + + '<p class="confirm-tip"><i class="icon-doubt"></i>{{deleteMessage}}</p>' + + '<p class="delete-tip">{{deleteTip}}</p>' + + '</div>' + + '</div>'; +var html = $tpl.html(); + +var active; + +function cancelFactory(id) { + var options = { + mask: false, + btns: [ + { + id: 'cancel-sure', + name: '确定并取消订单', + btnClass: ['cancel-sure'], + cb: function () { + var $checked = $('.cancel-dialog :checked'); + var $tip = $('.cancel-dialog .cancel-tip'); + + if ($checked.length === 0) { + $tip.html('请选择要取消订单的原因'); + return; + } + + $.ajax({ + type: 'POST', + url: '/home/orders/cancelorder', + data: { + orderCode: id, + reason: $checked.val() + } + }).then(function (data) { + if (data.code === 200) { + active.close(); + history.go(0); + } else { + $tip.html(data.message); + } + }); + } + }, + { + id: 'cancel-no', + name: '取消', + btnClass: ['cancel-no'], + cb: function () { + active.close(); + } + } + ], + content: html, + className: 'cancel-dialog' + }; + + return new Dialog(options); +} + +$tpl.remove(); + +//查看物流 +$('.check-logistics').click(function () { + $(this).siblings('.logistics').removeClass('hide'); +}); + +$('.close-logistics').click(function () { + $(this).closest('.logistics').addClass('hide'); +}); + + +//订单列表&订单详情【取消订单和确认收货】 +$('.me-orders, .order-detail').on('click', '.cancel-order', function (e) { + + //取消订单 + active = cancelFactory($(this).closest('.order, .order-detail').data('id')); + active.show(); +}).on('click', '.confirm-received', function (e) { + var id = $(this).closest('.order, .order-detail').data('id'); + + //确认收货 + active = new Confirm({ + cb: function () { + $.ajax({ + type: 'POST', + url: '/home/orders/confirmorder', + data: { + orderCode: id + } + }).then(function (data) { + if (data.code === 200) { + active.close(); + history.go(0); + } + }); + }, + content: '您确定要确认收货吗?' + }); + active.show(); +}).on('click', '.order-delete', function () { + var id = $(this).closest('.order, .order-detail').data('id'); + active = deleteOrder(id, this); + active.show(); +}); +function deleteOrder(id, obj) { + // 是否为彻底删除 + var isFullyDelete = true; + var $order = $(obj).parents(".order"); + var deleteMessage = isFullyDelete ? "您确定要永久删除订单吗?" : "您确定要删除订单吗?"; + var deleteTip = isFullyDelete ? "永久删除后,订单将无法恢复,您将无法对该订单的商品申请售后服务,请谨慎操作。" : "删除后,您可以在订单回收站找回该订单,也可以做永久删除。"; + var insert = Handlebars.compile(deleteDialog); + var html = insert({deleteMessage: deleteMessage, deleteTip: deleteTip}); + var options = { + mask: false, + btns: [ + { + id: 'delete-sure', + name: '确定', + btnClass: ['delete-sure'], + cb: function () { + $.ajax({ + type: 'POST', + url: '/home/orders/delOrder', + data: { + orderCode: id, + isFullyDelete: isFullyDelete, + } + }).then(function (data) { + if (data.code === 200) { + active.close(); + $order.remove(); + location.reload(); + }else{ + active.close(); + new dialog.Alert(data.message).show(); + } + }); + } + }, + { + id: 'delete-no', + name: '取消', + btnClass: ['delete-no'], + cb: function () { + active.close(); + } + } + ], + content: html, + className: 'delete-dialog', + }; + return new Dialog(options); +} +}); +define("js/home/orders", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 我的订单 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2016/2/17 + */ +var $ = require("jquery"); + + +require("js/home/order-block"); + +//不同订单包裹提示 + +$('.why').click(function() { + $('#differentBag').show(); + return false; + +}); +$('#differentBag').click(function() { + return false; +}); +$(document).click(function() { + $('#differentBag').hide(); +}); + + +//订单包裹左右切换 +function lunBo($pre, $next, $ul, $iWidth) { + var i = 1, + j = 1; + + var iSpeed = 0, + isMoving = false; + + $pre.click(function() { + if (isMoving) { + return; + } + + if ($ul.css('left') === '0px') { + iSpeed = 0; + + } else { + iSpeed += j * $iWidth; + isMoving = true; + } + $ul.stop().animate({ + left: iSpeed + }, 300, function() { + isMoving = false; + }); + }); + $next.click(function() { + var $largeLeft = $ul.parent().width() - $ul.width() + 'px'; + + if (isMoving) { + return; + } + + if ($ul.css('left') === $largeLeft) { + $ul.css('left', $largeLeft); + } else { + iSpeed += -i * $iWidth; + isMoving = true; + } + + $ul.stop().animate({ + left: iSpeed + }, 300, function() { + isMoving = false; + }); + }); +} + +//订单分类 +$('.bag').find('ul').each(function() { + var $pre = $(this).parent().parent().find('.pre'); + var $next = $(this).parent().parent().find('.next'); + + var $iWidth = $(this).find('li').eq(0).width(); + var $length = $(this).find('li').size(); + var $ulWidth = $iWidth * $length; + + $(this).css('width', $ulWidth); + if ($length > 5) { + $pre.show(); + $next.show(); + lunBo($pre, $next, $(this), $iWidth); + } else { + $pre.hide(); + $next.hide(); + } + +}); + +}); +define("js/home/favorite", ["jquery","handlebars","source-map","dot"], function(require, exports, module){ +/** + * 我的收藏 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2016/2/23 + */ + +var $ = require("jquery"), + Handlebars = require("handlebars"); + +var phoneReg = require("js/passport/mail-phone-regx").phoneRegx['+86']; + +var clockTxt = { + on: '[ 降价通知 ]', + off: '[ 取消通知 ]' +}; + +var param = location.href.match(/type=(.*)[&]*/), + favType; + +var curSkn; + +var $curClock; + +require("dot"); + +//商品收藏 +(function() { + var $defaultSorts, + $allSorts; + + var $bodyMask, + $noticeNum, + $priceNotice, + $noticeContent, + $noticeSuccess, + $noticeErrorMsg, + $noticeSubOrCancel, + $phone; + + var reduction = {}, + noticeNum; + + // 同步订阅数量 + function syncSubscribeNum(num) { + noticeNum = num * 1; + $noticeNum.text(num); + $noticeSuccess.find('.notice-num').text(5 - num); + } + + //关闭价格订阅弹窗和蒙层 + function closeNoticeBox() { + $bodyMask.addClass('hide'); + $priceNotice.addClass('hide'); + + //重置头部文字 + $noticeSubOrCancel.text('订阅成功'); + } + + //显示价格订阅弹窗和蒙层 + function showNoticeBox() { + var top = $(document).scrollTop() + $(window).height() / 2; + + if (typeof $bodyMask === 'undefined') { + $('body').append('<div class="body-mask hide"></div>'); + $bodyMask = $('.body-mask'); + } + + $bodyMask.css({ + height: $(document).height(), + width: $(document).width() + }).removeClass('hide'); + + $priceNotice.removeClass('error'); + + if ($curClock.hasClass('noticed')) { + + //取消降价通知 + $.ajax({ + type: 'GET', + url: '/home/favorite/cancelnotice', + data: { + id: curSkn + } + }).then(function(data) { + if (data.code === 200) { + syncSubscribeNum(data.data.num); + $noticeContent.addClass('hide'); + $noticeSuccess.removeClass('hide'); + $noticeSubOrCancel.text('取消成功'); + $priceNotice.removeClass('hide').css({ + top: top + }); + + if ($curClock.closest('.reduction-products').length > 0) { + $curClock.closest('.fav-good').remove(); + } else { + $curClock.removeClass('noticed').text(clockTxt.on); + } + } else { + if (data.message) { + $noticeErrorMsg.text(data.message); + $priceNotice.removeClass('hide').addClass('error').css({ + top: top + }); + } + } + }); + } else { + if (noticeNum >= 5) { + $noticeErrorMsg.text('您的订阅数已经到达上限'); + $priceNotice.removeClass('hide').addClass('error').css({ + top: top + }); + } else { + $noticeContent.removeClass('hide'); + $noticeSuccess.addClass('hide'); + $priceNotice.removeClass('hide').css({ + top: top + }); + } + } + + } + + if ($('.fav-products').length === 0) { + return; + } + + $defaultSorts = $('.default-sorts'); + $allSorts = $('.all-sorts'); + + $noticeNum = $('.reduction-notice span'); + + $priceNotice = $('.price-notice'); + + $noticeContent = $('#price-notice .content'); + $noticeSuccess = $('#price-notice .success'); + $noticeErrorMsg = $('#price-notice .error-message'); + $noticeSubOrCancel = $noticeSuccess.find('.subscribe-or-cancel'); + $phone = $('#notice-phone-num'); + + reduction.phone = $phone.val(); + reduction.change = false; + + noticeNum = $noticeNum.text() * 1; + + //展开分类 + $('#spread-sort').click(function() { + $defaultSorts.slideUp(function() { + $allSorts.slideDown(); + }); + }); + + //收起分类 + $('#retract-sort').click(function() { + $allSorts.slideUp(function() { + $defaultSorts.slideDown(); + }); + }); + + //降价通知 + $('.price-down-clock').click(function() { + $curClock = $(this); + curSkn = $curClock.closest('.fav-good').data('id'); + showNoticeBox(); + }); + + //checkbox【手动触发checkbox点击后跳转链接的地址】 + $('.reduction-filter input[type="checkbox"]').change(function() { + location.href = $(this).parent().attr('href'); + }); + + //降价通知确定按钮 + $('#price-notice').on('click', '.close', function() { + closeNoticeBox(); + }).on('click', '.price-notice-sure', function() { + var phone, + errTxt; + + if (!$priceNotice.hasClass('error') && !$noticeContent.hasClass('hide')) { + + //订阅到手机号 + phone = $.trim($phone.val()); + + if (phone === '' || !phoneReg.test(phone)) { + errTxt = phone === '' ? '请输入手机号码' : '手机号码格式不正确'; + + $phone.addClass('error'); + $('#price-notice .err-text').removeClass('hide').find('em').html(errTxt); + return; + } else { + $phone.removeClass('error'); + $('#price-notice .err-text').addClass('hide'); + } + + if (reduction.phone !== '' && reduction.phone !== phone && !reduction.change) { + $('#price-notice .phone-diff').removeClass('hide'); + reduction.change = true; + return; + } + + $.ajax({ + type: 'GET', + url: '/home/favorite/notice', + data: { + mobile: phone, + id: curSkn + } + }).then(function(data) { + if (data.code === 200) { + syncSubscribeNum(data.data.num); + $noticeSuccess.removeClass('hide'); + $noticeContent.addClass('hide'); + + reduction.phone = phone; + reduction.change = false; + $('#price-notice .phone-diff').addClass('hide'); + + //切换商品通知文字 + $curClock.toggleClass('noticed').text(clockTxt.off); + } else { + if (data.message) { + $noticeErrorMsg.text(data.message); + $priceNotice.removeClass('hide').addClass('error'); + } + } + }); + } else { + + //关闭窗口 + closeNoticeBox(); + } + }); + + //商品可参加活动 + $('.has-activity').click(function() { + var $this = $(this), + $activites = $this.next('.activites'), + $li = $this.closest('li'); + + if ($activites.hasClass('hide')) { + + //显示 + $activites.removeClass('hide'); + $li.css('padding-bottom', $activites.outerHeight()); + } else { + + //隐藏 + $activites.addClass('hide'); + $li.css('padding-bottom', ''); + } + }); +}()); + + +//品牌收藏 +(function() { + var naTpl; + var naCache = {}; + + /** + * 翻页控制 + * @param $li 当前品牌容器 + * @param flag 翻页方向/-1-pre 1-next + */ + function pageControll($li, flag) { + var id = $li.data('id'), + $ul = $li.find('.na-goods-ul'), + theCache = naCache[id], + curPage = theCache.cur ? theCache.cur : 1, + page = Math.ceil(theCache.total / 5); + + var $pre = $li.find('.na-pre'); + var $next = $li.find('.na-next'); + + curPage += flag; + + //初始 + $pre.removeClass('hidden'); + $next.removeClass('hidden'); + + //第一页 + if (curPage === 1) { + $pre.addClass('hidden'); + } + + //最后一页 + if (curPage === page) { + $next.addClass('hidden'); + } + + $ul.animate({ + marginLeft: -(curPage - 1) * $ul.parent('.na-goods').width() + }, 200); + + theCache.cur = curPage; + } + + function setListPadding($li, $naList) { + $li.css('padding-bottom', $naList.outerHeight() + 10); + } + + if ($('.fav-brands').length === 0) { + return; + } + + naTpl = Handlebars.compile($('#na-tpl').html()); + + // 新品到着【重要信息:最多显示20个新品到着商品】 + $('.na-trigger').click(function() { + var $this = $(this), + $naList = $this.next('.na-list'), + $li = $this.closest('li'), + id; + + if (!$naList.hasClass('hide')) { + $naList.addClass('hide'); + $li.css('padding-bottom', ''); + return; + } + + id = $li.data('id'); + + if (naCache[id] && naCache[id].cache) { + $naList.removeClass('hide'); + setListPadding($li, $naList); + return; + } + + $.ajax({ + type: 'GET', + url: '/home/favorite/newproduct', + data: { + id: id + } + }).then(function(data) { + var html, + res, + tplData; + + if (data.code === 200) { + res = data.data; + tplData = res.length === 0 ? {} : { + naGoods: res + }; + html = naTpl(tplData); + + $naList.removeClass('hide').find('.na-content').html(html); + setListPadding($li, $naList); + + //初始,判断是否显示Next翻页 + if (res.length > 5) { + $li.find('.na-next').removeClass('hidden'); + } + + if (!naCache[id]) { + naCache[id] = {}; + } + + naCache[id].cache = true;//set cache + naCache[id].total = res.length; + } + }); + }); + + $('.na-content').on('click', '.na-pre, .na-next', function() { + var $this = $(this); + + var flag = $this.hasClass('na-pre') ? -1 : 1; + + pageControll($this.closest('.fav-brand'), flag); + }); +}()); + +//文章收藏 +(function() { + if ($('.fav-articles').length < 0) { + return; + } + + $('.fav-articles .desc').dotdotdot(); +}()); + +if (param && param.length) { + favType = param[1]; +} + +//全选【通用】 +$('#me-checkall').click(function() { + $('.checkbox input[type="checkbox"]').prop('checked', $(this).prop('checked')); +}); + +//删除收藏 +$('.del-favorite').click(function(e) { + var id = $(this).closest('.fav-row').data('id'), + shopid = $(this).closest('.fav-row').data('shopid'), + brandorshoptype = $(this).closest('.fav-row').data('brandorshoptype'); + + e.preventDefault(); + + $.ajax({ + type: 'GET', + url: '/home/favorite/cancel', + data: { + id: id, + shopid: shopid, + brandorshoptype: brandorshoptype, + type: favType + } + }).then(function(data) { + if (data.code === 200) { + history.go(0); + } + }); +}); + +//删除多个商品/品牌/文章【通用】 +$('#me-del-checked').click(function() { + var ids = [], + name = '商品'; + + if (favType === 'brand') { + name = '品牌'; + } else if (favType === 'article') { + name = '文章'; + } + + if (confirm('您确定要删除您收藏的' + name + '吗?')) { + $('.checkbox input[type="checkbox"]:checked').each(function() { + ids.push($(this).closest('.fav-row').data('id')); + }); + + if (ids.length === 0) { + alert('请选中您要移除的' + name); + return; + } + + $.ajax({ + type: 'GET', + url: '/home/favorite/cancel', + data: { + id: ids.join(','), + type: favType + } + }).then(function(data) { + history.go(0); + }); + } +}); + +if (location.href.match(/is_reduction=(.*)[&]*/)) { + $('.reductionChecked').attr('checked', true); +} +if (location.href.match(/is_promotion=(.*)[&]*/)) { + $('.activityChecked').attr('checked', true); +} +}); +define("js/home/currency", ["jquery"], function(require, exports, module){ +/** + * 我的YOHO币 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2016/3/22 + */ + +var $ = require("jquery"); + +$('.filter-select').change(function() { + location.href = $(this).val(); +}); +}); +define("js/home/returns", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 我的退/换货 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/2/26 + */ + +require("js/home/returns-detail"); +require("js/home/returns-apply"); +}); +define("js/home/returns-detail", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 退换货详情 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/2/26 + */ + +var $ = require("jquery"), + Handlebars = require("handlebars"), + dialog = require("js/common/dialog"); + +var $returnState = $('.visual-return-state li'), + $detail = $('.detail-container'), + $courierCode = $('.courier-code'), + $expressCompany = $('#express-company'), + $expressNumber = $('#express-number'), + $expressViewBox = $('.express-view-box > span'); + +var returnId = $('#return-id').val(), + expId = $('#express-old-id').val(), + expNumber = $expressNumber.val(), + expCompany = '', + expList = {}, + isChange = false; + +var Dialog = dialog.Dialog, + active, + cancelApplyDialog = '<p class="message-title"><i class="{{messageIcon}}"></i>{{messageTitle}}</p><p class="message-summary">{{messageSummary}}</p>';; + +function syncExpressInfo() { + expCompany = expList[expId] ? expList[expId] : ''; + $expressViewBox.html(expCompany + ' 快递单号:' + expNumber); + $expressCompany.val(expId); + $expressNumber.val(expNumber); +} + +function validateExpress() { + var send = {}; + + send.number = $expressNumber.val(); + send.id = $expressCompany.val() * 1; + + if (!send.id) { + alert('请选择快递公司'); + } else if (!send.number) { + alert('请填入快递单号'); + } else { + return send; + } + + return false; +} + +function sendExpressCode() { + var sendParm = validateExpress(); + + if (!sendParm) { + return; + } + + $.ajax({ + type: 'POST', + url: '/home/returns/setExpressNumber', + data: { + id: returnId, + isChange: isChange, + expressId: sendParm.id, + expressNumber: sendParm.number, + expressCompany: expList[sendParm.id] + } + }).then(function(jsonData) { + if (jsonData.code === 200) { + expId = sendParm.id; + expNumber = sendParm.number; + $returnState.eq(2).addClass('act'); + } else { + alert(jsonData.message); + } + syncExpressInfo(); + $courierCode.removeClass('in-edit'); + }); +} + +function cancelApply(id, url) { + var template = Handlebars.compile(cancelApplyDialog); + var html = template({messageIcon: 'icon-warn', messageTitle: '取消申请', messageSummary: '您确定要请取消申请吗?'}); + var options = { + mask: true, + btns: [ + { + id: 'cancel-sure', + name: '确定', + btnClass: ['cancel-sure'], + cb: function() { + $.ajax({ + type: 'POST', + url: url, + data: { + id: id + } + }).then(function(data) { + active.close(); + if (data.code === 200) { + location.reload(); + } else { + new dialog.Alert(data.message).show(); + } + }); + } + }, + { + id: 'cancel-no', + name: '取消', + btnClass: ['cancel-no'], + cb: function() { + active.close(); + } + } + ], + content: html, + className: 'cancel-dialog' + }; + return new Dialog(options); +} + + +if ($detail.parent().hasClass('exchange-detail')) { + isChange = true; +} + +$expressCompany.val(expId); + +$detail.find('.company-list').each(function() { + var data = $(this).data(); + + expList[data.id] = data.name; +}); + +$('#modify').click(function() { + $courierCode.addClass('in-edit'); +}); + +$('#submit-btn').click(function() { + sendExpressCode(); +}); + +$('.cancel-return').on('click', '.cancel-trigger', function() { + active = cancelApply($(this).data('id'), $(this).data('url')); + active.show(); +}) +}); +define("js/home/returns-apply", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 退换货申请 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/2/29 + */ +var $ = require("jquery"), + Addr = require("js/home/common-address"); + +var $goodsTable = $('#goods-table'), + $checkBox = $goodsTable.find('input[type="checkbox"]'), + $reasons = $goodsTable.find('.return-reason'), + $file = $goodsTable.find('input[type=file]'), + $refundType = $('input[name="refund-type"]'), + $province = $('#province'), + $city = $('#city'), + $areaCode = $('#area'); + +var $refundInfo = $('#refund-pay-info'), + $payYoho = $refundInfo.find('.type-yoho'), + $payBank = $refundInfo.find('.type-bank'), + $payAli = $refundInfo.find('.type-alipay'); + +var $exchange = $('.exchange-detail'), + $hidePhone = $exchange.find('input[name="hide-phone"]'), + $refundMode = $exchange.find('.refund-mode'); + +var $submitBox = $('.submit-box'), + $waitPoint = $submitBox.find('.wait-gif span'); + +var pageType = 0, // 0-换货 1-退货 + orderCode = $('#order-code').val(), + defaultArea = $exchange.find('input[name="hide-area"]').val(), + defaultPhone = $hidePhone.val(), + disPhone = '', + verifyTip = '', + colorSize = {}, + timer; + +require("plugin/jquery.qupload"); + +if (defaultPhone) { + $hidePhone.remove(); + disPhone = defaultPhone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2'); + $exchange.find('input[name="phone"]').val(disPhone); +} + +$goodsTable.on('mouseenter mouseleave', '.doubt', function(e) { + var $this = $(this); + var $tipwrapper = $this.parents('.special-tip'); + var $tipcontent = $tipwrapper.find('.special-content'); + var width = $tipwrapper.find('> span').width(); + if(e.type === 'mouseenter'){ + $tipcontent.css({left: width+10,zIndex:1}).show(); + }else if(e.type ==='mouseleave'){ + $tipcontent.css({zIndxex:0}).hide(); + } + +}); + +function syncRefundMode(code) { + $.ajax({ + type: 'POST', + url: '/home/returns/getDelivery', + data: { + areaCode: code + } + }).then(function(jsonData) { + var _html = ''; + + if (jsonData.code === 200) { + $.each(jsonData.data, function(k, v) { + var checked = ''; + + if (v.is_default === 'Y') { + checked = 'checked="checked"'; + } + _html += '<input type="radio" name="delivery-tpye" value="' + + v.id + '" ' + checked + '"">' + v.name; + }); + $refundMode.html(_html); + } + }); +} + +function setBackInput(type) { + $payYoho.hide(); + if (type === 2) { + $payBank.show(); + $payAli.hide(); + $payYoho.hide(); + } else if (type === 3) { + $payAli.show(); + $payBank.hide(); + $payYoho.hide(); + } else if (type === 4) { + $payYoho.show(); + $payBank.hide(); + $payAli.hide(); + } +} + +if ($refundInfo.length) { + pageType = 1; + + $refundType.each(function() { + if ($(this).prop('checked')) { + setBackInput($(this).val() * 1); + } + }); +} else if (defaultArea) { + syncRefundMode(defaultArea); +} + +defaultArea = defaultArea ? defaultArea : ''; +Addr.loadAllData(defaultArea, { + areaDomId: 'area' +}); + +// 页面获取size列表数据 +$goodsTable.find('.sizeinfo').each(function() { + var sizes = []; + + $(this).children().each(function() { + sizes.push($(this).data()); + }); + colorSize[$(this).data().id] = sizes; +}); + +$reasons.change(function() { + var $par = $(this).parent().parent(), + type = $(this).val() * 1; + + if (type === 4 || type === 6 || type === 8) { + $par.next().show(); + } else { + $par.next().hide(); + } +}); + +$checkBox.change(function() { + var $par = $(this).parent().parent(); + + if ($(this).prop('checked')) { + $par.find('select').prop('disabled', false); + } else { + $par.find('select').val(0).prop('disabled', true); + $par.next().hide(); + } +}); + +$goodsTable.on('change', '.exchange-color', function() { + var $warp = $(this).closest('.exchange-choose-wrap'), + _html = '<option value="0">请选择尺码</option>', + id = $(this).val(); + + if (colorSize[id]) { + $.each(colorSize[id], function(k, v) { + _html += '<option value="' + v.id + '">' + v.name + '</option>'; + }); + } + $warp.find('.exchange-size').html(_html).val(0); +}); + +$goodsTable.on('click', '.btn-del', function() { + $(this).parent().empty(); +}); + +$file.each(function(e) { + var $this = $('#upload-img-' + e), + $par = $this.closest('.problem-description'); + + $this.qupload({ + button_image_url: '', + upload_url: '//www.yohobuy.com/home/returns/imgUpload', + file_post_name: 'fileData', + button_text: '<span class="btn_upload_text">上传图片</span>', + button_text_style: '.btn_upload_text{color: #ffffff;}', + button_width: 116, + button_height: 33, + button_text_left_padding: 32, + button_text_top_padding: 8, + button_action: window.SWFUpload.BUTTON_ACTION.SELECT_FILE, + file_size_limit: '10240', + file_types: '*.jpg;*.jpeg;*.png;*.bmp', + uploadSuccessed: function(data) { + var $imgList = $par.find('li'), + isShow = false, + img, _html; + + img = JSON.parse(data).imgList[0]; + _html = '<span class="btn-del" title="删除"></span>' + + '<img src="' + img[0] + '" width="126" height="126">' + + '<input type="hidden" name="imgs" value="' + img.imgRelUrl + '">'; + $imgList.each(function() { + if (!isShow && !$(this).find('img').length) { + isShow = true; + $(this).html(_html); + } + }); + } + }); +}); + +$exchange.on('change', '#area', function() { + var code = $(this).val() * 1; + + if (code) { + syncRefundMode(code); + } +}); + +$refundType.change(function() { + var type = $(this).val() * 1; + + setBackInput(type); +}); + +// 打包退换货商品信息 +function packGoogsList() { + var goods = [], + type = '换货'; + + if (pageType) { + type = '退货'; + } + if (!$checkBox.length) { + verifyTip = '没有可以' + type + '的商品'; + } + + $checkBox.each(function() { + var $par = $(this).parent().parent(), + $next = $par.next(), + goodsInfo; + + if (verifyTip.length) { + return; + } + + if ($(this).prop('checked')) { + goodsInfo = { + product_skn: $par.find('input[name="skn"]').val(), + product_skc: $par.find('input[name="skc"]').val(), + product_sku: $par.find('input[name="sku"]').val(), + goods_type: $par.find('input[name="typeid"]').val(), + last_price: $par.find('input[name="price"]').val(), + reason: $par.find('.return-reason').val() * 1 + }; + + if (pageType) { + goodsInfo.returned_reason = goodsInfo.reason; + } else { + goodsInfo.exchange_reason = goodsInfo.reason; + goodsInfo.new_goods_id = $par.find('.exchange-color').val() * 1; + goodsInfo.new_product_sku = $par.find('.exchange-size').val() * 1; + + if (!verifyTip && !goodsInfo.new_goods_id) { + verifyTip = '请选择要换的颜色'; + } + + if (!verifyTip && !goodsInfo.new_product_sku) { + verifyTip = '请选择要换的尺码'; + } + } + if (!verifyTip && !goodsInfo.reason) { + verifyTip = '请选择' + type + '原因'; + } + + if (goodsInfo.reason === 4 || + goodsInfo.reason === 6 || + goodsInfo.reason === 8) { + goodsInfo.remark = $.trim($next.find('textarea').val()); + goodsInfo.evidence_images = []; + $next.find('input[name="imgs"]').each(function() { + goodsInfo.evidence_images.push($(this).val()); + }); + + if (!verifyTip && !goodsInfo.remark) { + verifyTip = '请填写' + type + '描述'; + } + + if (!verifyTip && !goodsInfo.evidence_images.length) { + verifyTip = '请上传图片'; + } + } + delete goodsInfo.reason; + + goods.push(goodsInfo); + } + }); + + if (!verifyTip && !goods.length) { + verifyTip = '请选择要' + type + '的商品'; + } + + return goods; +} + +// 打包退货信息 +function packRefundInfo() { + var res = {}; + + res.goods = packGoogsList(); + res.payment = {}; + + $refundType.each(function() { + if ($(this).prop('checked')) { + res.payment.return_amount_mode = $(this).val() * 1; + } + }); + + if (!verifyTip && !res.payment.return_amount_mode) { + verifyTip = '请选择退款方式'; + } + + if (res.payment.return_amount_mode === 2) { + res.payment.province = $province.val(); + res.payment.city = $city.val(); + res.payment.area_code = $areaCode.val(); + if (!verifyTip && !res.payment.area_code * 1) { + verifyTip = '请选择银行所在地'; + } + + res.payment.bank_name = $.trim($refundInfo.find('input[name="bank-name"]').val()); + if (!verifyTip && !res.payment.bank_name) { + verifyTip = '请填写银行名称'; + } + + res.payment.payee_name = $.trim($refundInfo.find('input[name="payee-name"]').val()); + if (!verifyTip && !res.payment.payee_name) { + verifyTip = '请填写收款人姓名'; + } + + res.payment.bank_card = $.trim($refundInfo.find('input[name="bank-card"]').val()); + if (!verifyTip && !res.payment.bank_card) { + verifyTip = '请填写收款账户'; + } + + } else if (res.payment.return_amount_mode === 3) { + res.payment.alipay_name = $.trim($refundInfo.find('input[name="alipay-name"]').val()); + if (!verifyTip && !res.payment.alipay_name) { + verifyTip = '请填写收款人姓名'; + } + + res.payment.alipay_account = $.trim($refundInfo.find('input[name="alipay-account"]').val()); + if (!verifyTip && !res.payment.alipay_account) { + verifyTip = '请填写收款账户'; + } + + } + return res; +} + +// 打包换货信息 +function packExchangeInfo() { + var res = {}; + + res.goods = packGoogsList(); + + res.consigneeName = $.trim($exchange.find('input[name="name"]').val()); + if (!verifyTip && !res.consigneeName) { + verifyTip = '请填写收货人姓名'; + } + + res.areaCode = $areaCode.val(); + if (!verifyTip && !res.areaCode * 1) { + verifyTip = '请选择地区'; + } + + res.address = $.trim($exchange.find('input[name="address"]').val()); + if (!verifyTip && !res.address) { + verifyTip = '请填写详细地址'; + } + + res.mobile = $.trim($exchange.find('input[name="phone"]').val()); + if (res.mobile === disPhone) { + res.mobile = defaultPhone; + } else { + if (!verifyTip && !res.mobile) { + verifyTip = '请填写手机号'; + } + } + + res.zipCode = $.trim($exchange.find('input[name="postcode"]').val()); + res.deliveryType = $exchange.find('input[name="delivery-tpye"]:checked').val(); + if (!verifyTip && !res.deliveryType) { + verifyTip = '请选择商品返回方式'; + } + + return res; +} + +function loadWaiting(status) { + var text = '○'; + + if (status) { + $submitBox.addClass('applying'); + timer = setInterval(function() { + $waitPoint.text(text); + if (text.length > 3) { + text = ''; + } + text += '○'; + }, 600); + } else { + $submitBox.removeClass('applying'); + clearInterval(timer); + } +} + +// 提交申请 +$('.save-btn').click(function() { + var url, data; + + verifyTip = ''; // 初始化提示语 + if (pageType) { + url = '/home/returns/saveRefund'; + data = packRefundInfo(); + } else { + url = '/home/returns/saveExchange'; + data = packExchangeInfo(); + } + data.orderCode = orderCode; + + if (verifyTip) { + alert(verifyTip); + return; + } + + loadWaiting(true); + $.ajax({ + type: 'POST', + url: url, + data: data + }).then(function(jsonData) { + if (jsonData.code === 200) { + if (jsonData.data && jsonData.data.refer) { + window.location.href = jsonData.data.refer; + } + } else { + alert(jsonData.message); + loadWaiting(false); + } + }); +}); +}); +define("js/home/common-address", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 个人中心页-地址管理 + * @author: wsl<shuiling.wang@yoho.cn> + * @date: 2016/02/24 + */ + +var $ = require("jquery"), + dialog = require("js/common/dialog"), + Alert = dialog.Alert; + +var address = { + + // 省的控件ID + provinceDomId: 'province', + + // 城市的控件ID + cityDomId: 'city', + + // 地区的控件ID + areaDomId: 'areaCode', + + initDomIds: function(domOptions) { + var the = this; + + if (domOptions.provinceDomId !== undefined) { + the.provinceDomId = domOptions.provinceDomId; + } + if (domOptions.cityDomId !== undefined) { + the.cityDomId = domOptions.cityDomId; + } + if (domOptions.areaDomId !== undefined) { + the.areaDomId = domOptions.areaDomId; + } + }, + + // 初始化地址数据 + loadAreaData: function(pCode, toDomId, defaultValue, allCode) { + var the = this, + $toDom = $('#' + toDomId), + i = 0, + point = ''; + + var active, + val, + nId, + selecter; + + $toDom.empty(); + + if (pCode < 91) { + $('#' + the.areaDomId).empty(); + $('#county').attr('disabled', 'disabled'); + } + + $.ajax({ + type: 'GET', + url: '/home/address/area', + data: 'id=' + pCode, + + success: function(jsonData) { + jsonData.code = 200; + + if (jsonData.code !== 200) { + active = new Alert('暂无数据'); + active.show(); + return false; + } + + $toDom.append('<option value="0">' + defaultValue + '</option>'); + for (i in jsonData.options) { + if (jsonData.options[i]) { + val = jsonData.options[i]; + point = (toDomId === the.areaDomId && val.is_support === 'Y') ? '*' : ''; + nId = val.value; + selecter = ''; + + if (typeof (allCode) !== 'undefined' && allCode !== 0 && + nId === allCode.substr(0, nId.length)) { + selecter = 'selected'; + } + $toDom.append('<option value="' + nId + '" ' + selecter + '>' + point + val.text + '</option>'); + } + } + } + }); + }, + bindAreaChange: function(domOptions) { + var the = this; + + if ($('#' + the.provinceDomId).data('events') !== undefined) { + return; + } + + // 初始化 + $('#' + the.provinceDomId).change(function() { + var pCode = $('#' + the.provinceDomId).val(); + + if (pCode === '0') { + return; + } + + the.loadAreaData(pCode, the.cityDomId, '请选择城市', pCode); + $('#' + the.areaDomId).hide(); + the.showAreaSel(domOptions.dispDomId); + }); + + $('#' + this.cityDomId).change(function() { + var pCode = $('#' + the.cityDomId).val(); + + if (pCode === '0') { + return; + } + + the.loadAreaData(pCode, the.areaDomId, '请选择区县', pCode); + $('#' + the.areaDomId).show(); + the.showAreaSel(domOptions.dispDomId); + }); + + $('#' + the.areaDomId).change(function() { + the.showAreaSel(domOptions.dispDomId); + }); + + the.showAreaSel(domOptions.dispDomId); + }, + + /** + * 显示地区选择 + */ + showAreaSel: function(dispDomId) { + var the = this, + strAddr = '', + strProvince = $('#' + the.provinceDomId).find('option:selected').text(), + strCity = $('#' + the.cityDomId).find('option:selected').text(), + strArea = $('#' + the.areaDomId).find('option:selected').text(); + + if (dispDomId !== undefined && dispDomId !== '') { + if (strProvince.indexOf('选择') < 0) { + strAddr = strProvince; + } + + if (strCity !== '' && strCity.indexOf('选择') < 0) { + strAddr += ',' + strCity; + } + + if (strArea !== '' && strArea.indexOf('选择') < 0) { + strAddr += ',' + strArea; + } + $('#' + dispDomId).html(strAddr); + } + }, + + loadAllData: function(areaCode, domOptions) { + var the = this; + + the.initDomIds(domOptions); + areaCode += ''; + + if (areaCode < 91) { + the.loadAreaData(0, the.provinceDomId, '请选择省份', ''); + $('#' + the.areaDomId).hide(); + $('#' + the.cityDomId).html('<option value="0">请选择市</option>'); + } else if (areaCode.length === 4) { + the.loadAreaData(0, the.provinceDomId, '请选择省份', areaCode); + the.loadAreaData(areaCode.substr(0, 2), the.cityDomId, '请选择城市', areaCode); + the.loadAreaData(areaCode, the.areaDomId, '请选择区县', areaCode); + $('#' + the.areaDomId).show(); + } else if (areaCode.length === 6) { + the.loadAreaData(0, the.provinceDomId, '请选择省份', areaCode); + the.loadAreaData(areaCode.substr(0, 2), the.cityDomId, '请选择城市', areaCode); + the.loadAreaData(areaCode.substr(0, 4), the.areaDomId, '请选择区县', areaCode); + $('#' + this.areaDomId).show(); + } + the.bindAreaChange(domOptions); + } +}; + +module.exports = address; + +}); +define("plugin/jquery.qupload", ["jquery"], function(require, exports, module){ +/** + * upload plugin + * + */ +var $ = require("jquery"); +var SWFUpload = require("plugin/swfupload.queue").SWFUpload; + +var file_upload_limit = 6; +$.fn.extend({ + qupload : function(options) { + writeProgressHtml(); + initSwfUpload($(this).attr('id'), options); + } +}); + +var hasProgreeHtml = 0; + +// 创建进度条的html +function writeProgressHtml() { + if (hasProgreeHtml == 0) // 一个页面只创建一次 + { + $('body') + .append( + '<div id="progressDialog" style="display: none;width:370px;height:80px !important;"><div style="padding:10px 20px;"><span id="curUploadStatus">图片上传中……请稍等</span><div id="progress"></div></div></div>'); + hasProgreeHtml = 1; + } +} + +function setUploadStatus(uploadNum, totalUploadNum) { + $('#uploadNum').html(uploadNum); + $('#totalUploadNum').html(totalUploadNum); +} + +// 初始化swf +function initSwfUpload(btnId, options) { + // 上传成功的回调函数 + var uploadSuccessCallBack = null; + if (options.uploadSuccessed != undefined) { + uploadSuccessCallBack = options.uploadSuccessed; + } + // 上传的key + var uploadKeyValue = ''; + if (options.uploadKey != undefined) { + uploadKeyValue = options.uploadKey; + } + + // 上传之前可以做的操作参数 + var preUploadCallBack = null; + if (options.preupload != undefined) { + preUploadCallBack = options.preupload; + } + + // 弹出层ID + var progressDivId = 'progressDialog'; + // 进度条ID + var progressTargetId = 'progress'; + + // 共有多少张需要上传 + var totalUploadNum = 0; + + // 当前已经上传的张数 + var curUploadedNum = 0; + + this.options = options; + + var numTest = 0; + + var errmsg_box = this.options.errmsg_box; + + // 设置默认值函数 + function setDefaultValue(optionName, optionValue) { + this.options[optionName] = options[optionName] == undefined ? optionValue + : options[optionName]; + } + + setDefaultValue('flash_url', + "http://static.yohobuy.com/admin/js/swfupload/swfupload.swf"); + setDefaultValue('upload_url', "http://upload.yohobuy.com"); + setDefaultValue('file_post_name', "Filedata"); + setDefaultValue('file_size_limit', "2 MB"); + setDefaultValue('file_types', "*.*"); + setDefaultValue('file_types_description', "All Files"); + setDefaultValue('file_upload_limit', file_upload_limit); + setDefaultValue('file_queue_limit', 0); + setDefaultValue('button_image_url', + "http://static.yohobuy.com/admin/images/btn_swfupload.png"); + setDefaultValue('button_width', "104"); + setDefaultValue('button_height', "20"); + setDefaultValue('button_text', '<span class="btn_upload_xzzp">选择本地照片</span>'); + setDefaultValue('button_text_style', '.btn_upload_xzzp{color:#ffffff}'); + setDefaultValue('button_text_left_padding', 24); + setDefaultValue('button_text_top_padding', 0); + setDefaultValue('button_window_mode', 'TRANSPARENT'); + setDefaultValue('button_cursor', '-2'); + + var settings = { + flash_url : this.options.flash_url, + upload_url : this.options.upload_url, + file_post_name : this.options.file_post_name, + // post_params: {"PHPSESSID" : "<?php echo session_id(); ?>"}, + file_size_limit : this.options.file_size_limit, + file_types : this.options.file_types, + file_types_description : this.options.file_types_description, + file_upload_limit : this.options.file_upload_limit, + file_queue_limit : this.options.file_queue_limit, + prevent_swf_caching : false, + preserve_relative_urls : false, + custom_settings : { + + }, + debug : false, + + // Button settings + button_image_url : this.options.button_image_url, + button_width : this.options.button_width, + button_height : this.options.button_height, + button_placeholder_id : btnId, + button_text : this.options.button_text, + button_text_style : this.options.button_text_style, + button_text_left_padding : this.options.button_text_left_padding, + button_text_top_padding : this.options.button_text_top_padding, + button_window_mode : this.options.button_window_mode, + button_cursor : this.options.button_cursor, + + // The event handler functions are defined in handlers.js + file_dialog_start_handler : fileDialogStart, + file_queued_handler : fileQueued, + file_queue_error_handler : fileQueueError, + file_dialog_complete_handler : fileDialogComplete, + upload_start_handler : uploadStart, + upload_progress_handler : uploadProgress, + upload_error_handler : uploadError, + upload_success_handler : uploadSuccess, + upload_complete_handler : uploadComplete, + queue_complete_handler : queueComplete, + button_action: this.options.button_action + }; + + var swfu = new SWFUpload(settings); + + function fileQueued(file) { + try { + + } catch (ex) { + this.debug(ex); + } + + } + + function fileQueueError(file, errorCode, message) { + var errmsg; + try { + if (errorCode === SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED) { + alert("您尝试上传太多文件.\n" + + (message === 0 ? "您已达到上传限制." : "您最多还可以 " + + (message > 1 ? "上传 " + message + "文件." + : "一个文件."))); + return; + } + + // var progress = new FileProgress(file, + // this.customSettings.progressTarget); + // progress.setError(); + // progress.toggleCancel(false); + switch (errorCode) { + + case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT: + // progress.setStatus("File is too big."); + + errmsg = '文件超过'+settings.file_size_limit/1024+'M'; + alert(errmsg); + this.debug("Error Code: File too big, File name: " + + file.name + ", File size: " + file.size + + ", Message: " + message); + break; + case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE: + // progress.setStatus("Cannot upload Zero Byte files."); + alert('请上传有内容的文件!'); + this.debug("Error Code: Zero byte file, File name: " + + file.name + ", File size: " + file.size + + ", Message: " + message); + break; + case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE: + alert('请上传指定类型的文件!'); + this.debug("Error Code: Invalid File Type, File name: " + + file.name + ", File size: " + file.size + + ", Message: " + message); + break; + default: + if (file !== null) { + // progress.setStatus("Unhandled Error"); + } + alert('上传文件失败,请稍后在试!'); + this.debug("Error Code: " + errorCode + ", File name: " + + file.name + ", File size: " + file.size + + ", Message: " + message); + break; + } + } catch (ex) { + this.debug(ex); + } + } + + function fileDialogStart() { + if (preUploadCallBack != null) { + preUploadCallBack(); + } + } + + // 选择文件完成 + function fileDialogComplete(numFilesSelected, numFilesQueued) { + try { + + if (numFilesSelected > 0) { + // document.getElementById(this.customSettings.cancelButtonId).disabled + // = false; + totalUploadNum = numFilesSelected; + curUploadedNum = 1; + setUploadStatus(curUploadedNum, totalUploadNum); + this.startUpload(); + } + + } catch (ex) { + this.debug(ex); + } + } + + // 开始上传 + function uploadStart(file) { + this.addPostParam('_key', uploadKeyValue); + //$('#' + progressDivId).dialog(); + } + + // 上传进度 + function uploadProgress(file, bytesLoaded, bytesTotal) { + // $('#uploadData').html(bytesLoaded + "/" + bytesTotal); + // $('#uploadData').html( $('#uploadData').html() + ' - ' + bytesLoaded + // + '+' + ',' + bytesTotal ); + var percent = Math.ceil((bytesLoaded / bytesTotal) * 100); + //$("#progress").progressbar({ + // value : percent + //}); + } + + // 上传成功 + function uploadSuccess(file, serverData) { + curUploadedNum++; + setUploadStatus(curUploadedNum, totalUploadNum); + if (uploadSuccessCallBack != null) { + uploadSuccessCallBack(serverData); + } + } + + // 上传出错 + function uploadError(file, errorCode, message) { + + try { + if (errorCode === SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED) { + alert("您尝试上传太多文件.\n" + + (message === 0 ? "您已达到上传限制." : "您最多还可以 " + + (message > 1 ? "上传 " + message + "文件." + : "一个文件."))); + return; + } + switch (errorCode) { + + case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT: + alert("Error Code: 文件太大。 文件名为: " + file.name + ", 大小为: " + + file.size + ", Message: " + message); + break; + case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE: + + alert("Error Code: 文件为0, 文件名为: " + file.name + ", 大小为: " + + file.size + ", Message: " + message); + break; + case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE: + alert("Error Code: 文件类型不合要求, 文件名为: " + file.name + ", 大小为: " + + file.size + ", Message: " + message); + break; + default: + if (file !== null) { + + } + alert("上传出错" + "Error Code: " + errorCode + ", File name: " + + file.name + ", File size: " + file.size + + ", Message: " + message); + break; + } + } catch (ex) { + this.debug(ex); + } + } + + // 上传完成 + function uploadComplete(file) { + //$('#' + progressDivId).dialog('close'); + } + + // This event comes from the Queue Plugin + function queueComplete(numFilesUploaded) { + + } +} + +window.SWFUpload = SWFUpload; +}); +define("plugin/swfupload.queue", [], function(require, exports, module){ +/* + Queue Plug-in + + Features: + *Adds a cancelQueue() method for cancelling the entire queue. + *All queued files are uploaded when startUpload() is called. + *If false is returned from uploadComplete then the queue upload is stopped. + If false is not returned (strict comparison) then the queue upload is continued. + *Adds a QueueComplete event that is fired when all the queued files have finished uploading. + Set the event handler with the queue_complete_handler setting. + + */ +var SWFUpload = require("plugin/swfupload").SWFUpload; + +if (typeof(SWFUpload) === "function") { + SWFUpload.queue = {}; + + SWFUpload.prototype.initSettings = (function (oldInitSettings) { + return function () { + if (typeof(oldInitSettings) === "function") { + oldInitSettings.call(this); + } + + this.queueSettings = {}; + + this.queueSettings.queue_cancelled_flag = false; + this.queueSettings.queue_upload_count = 0; + + this.queueSettings.user_upload_complete_handler = this.settings.upload_complete_handler; + this.queueSettings.user_upload_start_handler = this.settings.upload_start_handler; + this.settings.upload_complete_handler = SWFUpload.queue.uploadCompleteHandler; + this.settings.upload_start_handler = SWFUpload.queue.uploadStartHandler; + + this.settings.queue_complete_handler = this.settings.queue_complete_handler || null; + }; + })(SWFUpload.prototype.initSettings); + + SWFUpload.prototype.startUpload = function (fileID) { + this.queueSettings.queue_cancelled_flag = false; + this.callFlash("StartUpload", [fileID]); + }; + + SWFUpload.prototype.cancelQueue = function () { + this.queueSettings.queue_cancelled_flag = true; + this.stopUpload(); + + var stats = this.getStats(); + while (stats.files_queued > 0) { + this.cancelUpload(); + stats = this.getStats(); + } + }; + + SWFUpload.queue.uploadStartHandler = function (file) { + var returnValue; + if (typeof(this.queueSettings.user_upload_start_handler) === "function") { + returnValue = this.queueSettings.user_upload_start_handler.call(this, file); + } + + // To prevent upload a real "FALSE" value must be returned, otherwise default to a real "TRUE" value. + returnValue = (returnValue === false) ? false : true; + + this.queueSettings.queue_cancelled_flag = !returnValue; + + return returnValue; + }; + + SWFUpload.queue.uploadCompleteHandler = function (file) { + var user_upload_complete_handler = this.queueSettings.user_upload_complete_handler; + var continueUpload; + + if (file.filestatus === SWFUpload.FILE_STATUS.COMPLETE) { + this.queueSettings.queue_upload_count++; + } + + if (typeof(user_upload_complete_handler) === "function") { + continueUpload = (user_upload_complete_handler.call(this, file) === false) ? false : true; + } else if (file.filestatus === SWFUpload.FILE_STATUS.QUEUED) { + // If the file was stopped and re-queued don't restart the upload + continueUpload = false; + } else { + continueUpload = true; + } + + if (continueUpload) { + var stats = this.getStats(); + if (stats.files_queued > 0 && this.queueSettings.queue_cancelled_flag === false) { + this.startUpload(); + } else if (this.queueSettings.queue_cancelled_flag === false) { + this.queueEvent("queue_complete_handler", [this.queueSettings.queue_upload_count]); + this.queueSettings.queue_upload_count = 0; + } else { + this.queueSettings.queue_cancelled_flag = false; + this.queueSettings.queue_upload_count = 0; + } + } + }; +} + +exports.SWFUpload = SWFUpload; +}); +define("plugin/swfupload", [], function(require, exports, module){ +/** + * SWFUpload: http://www.swfupload.org, http://swfupload.googlecode.com + * + * mmSWFUpload 1.0: Flash upload dialog - http://profandesign.se/swfupload/, http://www.vinterwebb.se/ + * + * SWFUpload is (c) 2006-2007 Lars Huring, Olov Nilz锟絥 and Mammon Media and is released under the MIT License: + * http://www.opensource.org/licenses/mit-license.php + * + * SWFUpload 2 is (c) 2007-2008 Jake Roberts and is released under the MIT License: + * http://www.opensource.org/licenses/mit-license.php + * + */ + + +/* ******************* */ +/* Constructor & Init */ +/* ******************* */ +var SWFUpload; + +if (SWFUpload == undefined) { + SWFUpload = function (settings) { + this.initSWFUpload(settings); + }; +} + +SWFUpload.prototype.initSWFUpload = function (settings) { + try { + this.customSettings = {}; // A container where developers can place their own settings associated with this instance. + this.settings = settings; + this.eventQueue = []; + this.movieName = "SWFUpload_" + SWFUpload.movieCount++; + this.movieElement = null; + + + // Setup global control tracking + SWFUpload.instances[this.movieName] = this; + + // Load the settings. Load the Flash movie. + this.initSettings(); + this.loadFlash(); + this.displayDebugInfo(); + } catch (ex) { + delete SWFUpload.instances[this.movieName]; + throw ex; + } +}; + +/* *************** */ +/* Static Members */ +/* *************** */ +SWFUpload.instances = {}; +SWFUpload.movieCount = 0; +SWFUpload.version = "2.2.0 2009-03-25"; +SWFUpload.QUEUE_ERROR = { + QUEUE_LIMIT_EXCEEDED : -100, + FILE_EXCEEDS_SIZE_LIMIT : -110, + ZERO_BYTE_FILE : -120, + INVALID_FILETYPE : -130 +}; +SWFUpload.UPLOAD_ERROR = { + HTTP_ERROR : -200, + MISSING_UPLOAD_URL : -210, + IO_ERROR : -220, + SECURITY_ERROR : -230, + UPLOAD_LIMIT_EXCEEDED : -240, + UPLOAD_FAILED : -250, + SPECIFIED_FILE_ID_NOT_FOUND : -260, + FILE_VALIDATION_FAILED : -270, + FILE_CANCELLED : -280, + UPLOAD_STOPPED : -290 +}; +SWFUpload.FILE_STATUS = { + QUEUED : -1, + IN_PROGRESS : -2, + ERROR : -3, + COMPLETE : -4, + CANCELLED : -5 +}; +SWFUpload.BUTTON_ACTION = { + SELECT_FILE : -100, + SELECT_FILES : -110, + START_UPLOAD : -120 +}; +SWFUpload.CURSOR = { + ARROW : -1, + HAND : -2 +}; +SWFUpload.WINDOW_MODE = { + WINDOW : "window", + TRANSPARENT : "transparent", + OPAQUE : "opaque" +}; + +// Private: takes a URL, determines if it is relative and converts to an absolute URL +// using the current site. Only processes the URL if it can, otherwise returns the URL untouched +SWFUpload.completeURL = function(url) { + if (typeof(url) !== "string" || url.match(/^https?:\/\//i) || url.match(/^\//)) { + return url; + } + + var currentURL = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ":" + window.location.port : ""); + + var indexSlash = window.location.pathname.lastIndexOf("/"); + if (indexSlash <= 0) { + path = "/"; + } else { + path = window.location.pathname.substr(0, indexSlash) + "/"; + } + + return /*currentURL +*/ path + url; + +}; + + +/* ******************** */ +/* Instance Members */ +/* ******************** */ + +// Private: initSettings ensures that all the +// settings are set, getting a default value if one was not assigned. +SWFUpload.prototype.initSettings = function () { + this.ensureDefault = function (settingName, defaultValue) { + this.settings[settingName] = (this.settings[settingName] == undefined) ? defaultValue : this.settings[settingName]; + }; + + // Upload backend settings + this.ensureDefault("upload_url", ""); + this.ensureDefault("preserve_relative_urls", false); + this.ensureDefault("file_post_name", "Filedata"); + this.ensureDefault("post_params", {}); + this.ensureDefault("use_query_string", false); + this.ensureDefault("requeue_on_error", false); + this.ensureDefault("http_success", []); + this.ensureDefault("assume_success_timeout", 0); + + // File Settings + this.ensureDefault("file_types", "*.*"); + this.ensureDefault("file_types_description", "All Files"); + this.ensureDefault("file_size_limit", 0); // Default zero means "unlimited" + this.ensureDefault("file_upload_limit", 0); + this.ensureDefault("file_queue_limit", 0); + + // Flash Settings + this.ensureDefault("flash_url", "swfupload.swf"); + this.ensureDefault("prevent_swf_caching", true); + + // Button Settings + this.ensureDefault("button_image_url", ""); + this.ensureDefault("button_width", 1); + this.ensureDefault("button_height", 1); + this.ensureDefault("button_text", ""); + this.ensureDefault("button_text_style", "color: #000000; font-size: 16pt;"); + this.ensureDefault("button_text_top_padding", 0); + this.ensureDefault("button_text_left_padding", 0); + this.ensureDefault("button_action", SWFUpload.BUTTON_ACTION.SELECT_FILES); + this.ensureDefault("button_disabled", false); + this.ensureDefault("button_placeholder_id", ""); + this.ensureDefault("button_placeholder", null); + this.ensureDefault("button_cursor", SWFUpload.CURSOR.ARROW); + this.ensureDefault("button_window_mode", SWFUpload.WINDOW_MODE.WINDOW); + + // Debug Settings + this.ensureDefault("debug", false); + this.settings.debug_enabled = this.settings.debug; // Here to maintain v2 API + + // Event Handlers + this.settings.return_upload_start_handler = this.returnUploadStart; + this.ensureDefault("swfupload_loaded_handler", null); + this.ensureDefault("file_dialog_start_handler", null); + this.ensureDefault("file_queued_handler", null); + this.ensureDefault("file_queue_error_handler", null); + this.ensureDefault("file_dialog_complete_handler", null); + + this.ensureDefault("upload_start_handler", null); + this.ensureDefault("upload_progress_handler", null); + this.ensureDefault("upload_error_handler", null); + this.ensureDefault("upload_success_handler", null); + this.ensureDefault("upload_complete_handler", null); + + this.ensureDefault("debug_handler", this.debugMessage); + + this.ensureDefault("custom_settings", {}); + + // Other settings + this.customSettings = this.settings.custom_settings; + + // Update the flash url if needed + if (!!this.settings.prevent_swf_caching) { + this.settings.flash_url = this.settings.flash_url + (this.settings.flash_url.indexOf("?") < 0 ? "?" : "&") + "preventswfcaching=" + new Date().getTime(); + } + + if (!this.settings.preserve_relative_urls) { + //this.settings.flash_url = SWFUpload.completeURL(this.settings.flash_url); // Don't need to do this one since flash doesn't look at it + this.settings.upload_url = SWFUpload.completeURL(this.settings.upload_url); + if (this.settings.button_image_url) { + this.settings.button_image_url = SWFUpload.completeURL(this.settings.button_image_url); + } + } + + delete this.ensureDefault; +}; + +// Private: loadFlash replaces the button_placeholder element with the flash movie. +SWFUpload.prototype.loadFlash = function () { + var targetElement, tempParent; + + // Make sure an element with the ID we are going to use doesn't already exist + if (document.getElementById(this.movieName) !== null) { + throw "ID " + this.movieName + " is already in use. The Flash Object could not be added"; + } + + // Get the element where we will be placing the flash movie + targetElement = document.getElementById(this.settings.button_placeholder_id) || this.settings.button_placeholder; + + if (targetElement == undefined) { + throw "Could not find the placeholder element: " + this.settings.button_placeholder_id; + } + + // Append the container and load the flash + tempParent = document.createElement("div"); + tempParent.innerHTML = this.getFlashHTML(); // Using innerHTML is non-standard but the only sensible way to dynamically add Flash in IE (and maybe other browsers) + targetElement.parentNode.replaceChild(tempParent.firstChild, targetElement); + + // Fix IE Flash/Form bug + if (window[this.movieName] == undefined) { + window[this.movieName] = this.getMovieElement(); + } + +}; + +// Private: getFlashHTML generates the object tag needed to embed the flash in to the document +SWFUpload.prototype.getFlashHTML = function () { + // Flash Satay object syntax: http://www.alistapart.com/articles/flashsatay + return ['<object id="', this.movieName, '" type="application/x-shockwave-flash" data="', this.settings.flash_url, '" width="', this.settings.button_width, '" height="', this.settings.button_height, '" class="swfupload">', + '<param name="wmode" value="', this.settings.button_window_mode, '" />', + '<param name="movie" value="', this.settings.flash_url, '" />', + '<param name="quality" value="high" />', + '<param name="menu" value="false" />', + '<param name="allowScriptAccess" value="always" />', + '<param name="flashvars" value="' + this.getFlashVars() + '" />', + '</object>'].join(""); +}; + +// Private: getFlashVars builds the parameter string that will be passed +// to flash in the flashvars param. +SWFUpload.prototype.getFlashVars = function () { + // Build a string from the post param object + var paramString = this.buildParamString(); + var httpSuccessString = this.settings.http_success.join(","); + + // Build the parameter string + return ["movieName=", encodeURIComponent(this.movieName), + "&uploadURL=", encodeURIComponent(this.settings.upload_url), + "&useQueryString=", encodeURIComponent(this.settings.use_query_string), + "&requeueOnError=", encodeURIComponent(this.settings.requeue_on_error), + "&httpSuccess=", encodeURIComponent(httpSuccessString), + "&assumeSuccessTimeout=", encodeURIComponent(this.settings.assume_success_timeout), + "&params=", encodeURIComponent(paramString), + "&filePostName=", encodeURIComponent(this.settings.file_post_name), + "&fileTypes=", encodeURIComponent(this.settings.file_types), + "&fileTypesDescription=", encodeURIComponent(this.settings.file_types_description), + "&fileSizeLimit=", encodeURIComponent(this.settings.file_size_limit), + "&fileUploadLimit=", encodeURIComponent(this.settings.file_upload_limit), + "&fileQueueLimit=", encodeURIComponent(this.settings.file_queue_limit), + "&debugEnabled=", encodeURIComponent(this.settings.debug_enabled), + "&buttonImageURL=", encodeURIComponent(this.settings.button_image_url), + "&buttonWidth=", encodeURIComponent(this.settings.button_width), + "&buttonHeight=", encodeURIComponent(this.settings.button_height), + "&buttonText=", encodeURIComponent(this.settings.button_text), + "&buttonTextTopPadding=", encodeURIComponent(this.settings.button_text_top_padding), + "&buttonTextLeftPadding=", encodeURIComponent(this.settings.button_text_left_padding), + "&buttonTextStyle=", encodeURIComponent(this.settings.button_text_style), + "&buttonAction=", encodeURIComponent(this.settings.button_action), + "&buttonDisabled=", encodeURIComponent(this.settings.button_disabled), + "&buttonCursor=", encodeURIComponent(this.settings.button_cursor) + ].join(""); +}; + +// Public: getMovieElement retrieves the DOM reference to the Flash element added by SWFUpload +// The element is cached after the first lookup +SWFUpload.prototype.getMovieElement = function () { + if (this.movieElement == undefined) { + this.movieElement = document.getElementById(this.movieName); + } + + if (this.movieElement === null) { + throw "Could not find Flash element"; + } + + return this.movieElement; +}; + +// Private: buildParamString takes the name/value pairs in the post_params setting object +// and joins them up in to a string formatted "name=value&name=value" +SWFUpload.prototype.buildParamString = function () { + var postParams = this.settings.post_params; + var paramStringPairs = []; + + if (typeof(postParams) === "object") { + for (var name in postParams) { + if (postParams.hasOwnProperty(name)) { + paramStringPairs.push(encodeURIComponent(name.toString()) + "=" + encodeURIComponent(postParams[name].toString())); + } + } + } + + return paramStringPairs.join("&"); +}; + +// Public: Used to remove a SWFUpload instance from the page. This method strives to remove +// all references to the SWF, and other objects so memory is properly freed. +// Returns true if everything was destroyed. Returns a false if a failure occurs leaving SWFUpload in an inconsistant state. +// Credits: Major improvements provided by steffen +SWFUpload.prototype.destroy = function () { + try { + // Make sure Flash is done before we try to remove it + this.cancelUpload(null, false); + + + // Remove the SWFUpload DOM nodes + var movieElement = null; + movieElement = this.getMovieElement(); + + if (movieElement && typeof(movieElement.CallFunction) === "unknown") { // We only want to do this in IE + // Loop through all the movie's properties and remove all function references (DOM/JS IE 6/7 memory leak workaround) + for (var i in movieElement) { + try { + if (typeof(movieElement[i]) === "function") { + movieElement[i] = null; + } + } catch (ex1) {} + } + + // Remove the Movie Element from the page + try { + movieElement.parentNode.removeChild(movieElement); + } catch (ex) {} + } + + // Remove IE form fix reference + window[this.movieName] = null; + + // Destroy other references + SWFUpload.instances[this.movieName] = null; + delete SWFUpload.instances[this.movieName]; + + this.movieElement = null; + this.settings = null; + this.customSettings = null; + this.eventQueue = null; + this.movieName = null; + + + return true; + } catch (ex2) { + return false; + } +}; + + +// Public: displayDebugInfo prints out settings and configuration +// information about this SWFUpload instance. +// This function (and any references to it) can be deleted when placing +// SWFUpload in production. +SWFUpload.prototype.displayDebugInfo = function () { + this.debug( + [ + "---SWFUpload Instance Info---\n", + "Version: ", SWFUpload.version, "\n", + "Movie Name: ", this.movieName, "\n", + "Settings:\n", + "\t", "upload_url: ", this.settings.upload_url, "\n", + "\t", "flash_url: ", this.settings.flash_url, "\n", + "\t", "use_query_string: ", this.settings.use_query_string.toString(), "\n", + "\t", "requeue_on_error: ", this.settings.requeue_on_error.toString(), "\n", + "\t", "http_success: ", this.settings.http_success.join(", "), "\n", + "\t", "assume_success_timeout: ", this.settings.assume_success_timeout, "\n", + "\t", "file_post_name: ", this.settings.file_post_name, "\n", + "\t", "post_params: ", this.settings.post_params.toString(), "\n", + "\t", "file_types: ", this.settings.file_types, "\n", + "\t", "file_types_description: ", this.settings.file_types_description, "\n", + "\t", "file_size_limit: ", this.settings.file_size_limit, "\n", + "\t", "file_upload_limit: ", this.settings.file_upload_limit, "\n", + "\t", "file_queue_limit: ", this.settings.file_queue_limit, "\n", + "\t", "debug: ", this.settings.debug.toString(), "\n", + + "\t", "prevent_swf_caching: ", this.settings.prevent_swf_caching.toString(), "\n", + + "\t", "button_placeholder_id: ", this.settings.button_placeholder_id.toString(), "\n", + "\t", "button_placeholder: ", (this.settings.button_placeholder ? "Set" : "Not Set"), "\n", + "\t", "button_image_url: ", this.settings.button_image_url.toString(), "\n", + "\t", "button_width: ", this.settings.button_width.toString(), "\n", + "\t", "button_height: ", this.settings.button_height.toString(), "\n", + "\t", "button_text: ", this.settings.button_text.toString(), "\n", + "\t", "button_text_style: ", this.settings.button_text_style.toString(), "\n", + "\t", "button_text_top_padding: ", this.settings.button_text_top_padding.toString(), "\n", + "\t", "button_text_left_padding: ", this.settings.button_text_left_padding.toString(), "\n", + "\t", "button_action: ", this.settings.button_action.toString(), "\n", + "\t", "button_disabled: ", this.settings.button_disabled.toString(), "\n", + + "\t", "custom_settings: ", this.settings.custom_settings.toString(), "\n", + "Event Handlers:\n", + "\t", "swfupload_loaded_handler assigned: ", (typeof this.settings.swfupload_loaded_handler === "function").toString(), "\n", + "\t", "file_dialog_start_handler assigned: ", (typeof this.settings.file_dialog_start_handler === "function").toString(), "\n", + "\t", "file_queued_handler assigned: ", (typeof this.settings.file_queued_handler === "function").toString(), "\n", + "\t", "file_queue_error_handler assigned: ", (typeof this.settings.file_queue_error_handler === "function").toString(), "\n", + "\t", "upload_start_handler assigned: ", (typeof this.settings.upload_start_handler === "function").toString(), "\n", + "\t", "upload_progress_handler assigned: ", (typeof this.settings.upload_progress_handler === "function").toString(), "\n", + "\t", "upload_error_handler assigned: ", (typeof this.settings.upload_error_handler === "function").toString(), "\n", + "\t", "upload_success_handler assigned: ", (typeof this.settings.upload_success_handler === "function").toString(), "\n", + "\t", "upload_complete_handler assigned: ", (typeof this.settings.upload_complete_handler === "function").toString(), "\n", + "\t", "debug_handler assigned: ", (typeof this.settings.debug_handler === "function").toString(), "\n" + ].join("") + ); +}; + +/* Note: addSetting and getSetting are no longer used by SWFUpload but are included + the maintain v2 API compatibility +*/ +// Public: (Deprecated) addSetting adds a setting value. If the value given is undefined or null then the default_value is used. +SWFUpload.prototype.addSetting = function (name, value, default_value) { + if (value == undefined) { + return (this.settings[name] = default_value); + } else { + return (this.settings[name] = value); + } +}; + +// Public: (Deprecated) getSetting gets a setting. Returns an empty string if the setting was not found. +SWFUpload.prototype.getSetting = function (name) { + if (this.settings[name] != undefined) { + return this.settings[name]; + } + + return ""; +}; + + + +// Private: callFlash handles function calls made to the Flash element. +// Calls are made with a setTimeout for some functions to work around +// bugs in the ExternalInterface library. +SWFUpload.prototype.callFlash = function (functionName, argumentArray) { + argumentArray = argumentArray || []; + + var movieElement = this.getMovieElement(); + var returnValue, returnString; + + // Flash's method if calling ExternalInterface methods (code adapted from MooTools). + try { + returnString = movieElement.CallFunction('<invoke name="' + functionName + '" returntype="javascript">' + __flash__argumentsToXML(argumentArray, 0) + '</invoke>'); + returnValue = eval(returnString); + } catch (ex) { + throw "Call to " + functionName + " failed"; + } + + // Unescape file post param values + if (returnValue != undefined && typeof returnValue.post === "object") { + returnValue = this.unescapeFilePostParams(returnValue); + } + + return returnValue; +}; + +/* ***************************** + -- Flash control methods -- + Your UI should use these + to operate SWFUpload + ***************************** */ + +// WARNING: this function does not work in Flash Player 10 +// Public: selectFile causes a File Selection Dialog window to appear. This +// dialog only allows 1 file to be selected. +SWFUpload.prototype.selectFile = function () { + this.callFlash("SelectFile"); +}; + +// WARNING: this function does not work in Flash Player 10 +// Public: selectFiles causes a File Selection Dialog window to appear/ This +// dialog allows the user to select any number of files +// Flash Bug Warning: Flash limits the number of selectable files based on the combined length of the file names. +// If the selection name length is too long the dialog will fail in an unpredictable manner. There is no work-around +// for this bug. +SWFUpload.prototype.selectFiles = function () { + this.callFlash("SelectFiles"); +}; + + +// Public: startUpload starts uploading the first file in the queue unless +// the optional parameter 'fileID' specifies the ID +SWFUpload.prototype.startUpload = function (fileID) { + this.callFlash("StartUpload", [fileID]); +}; + +// Public: cancelUpload cancels any queued file. The fileID parameter may be the file ID or index. +// If you do not specify a fileID the current uploading file or first file in the queue is cancelled. +// If you do not want the uploadError event to trigger you can specify false for the triggerErrorEvent parameter. +SWFUpload.prototype.cancelUpload = function (fileID, triggerErrorEvent) { + if (triggerErrorEvent !== false) { + triggerErrorEvent = true; + } + this.callFlash("CancelUpload", [fileID, triggerErrorEvent]); +}; + +// Public: stopUpload stops the current upload and requeues the file at the beginning of the queue. +// If nothing is currently uploading then nothing happens. +SWFUpload.prototype.stopUpload = function () { + this.callFlash("StopUpload"); +}; + +/* ************************ + * Settings methods + * These methods change the SWFUpload settings. + * SWFUpload settings should not be changed directly on the settings object + * since many of the settings need to be passed to Flash in order to take + * effect. + * *********************** */ + +// Public: getStats gets the file statistics object. +SWFUpload.prototype.getStats = function () { + return this.callFlash("GetStats"); +}; + +// Public: setStats changes the SWFUpload statistics. You shouldn't need to +// change the statistics but you can. Changing the statistics does not +// affect SWFUpload accept for the successful_uploads count which is used +// by the upload_limit setting to determine how many files the user may upload. +SWFUpload.prototype.setStats = function (statsObject) { + this.callFlash("SetStats", [statsObject]); +}; + +// Public: getFile retrieves a File object by ID or Index. If the file is +// not found then 'null' is returned. +SWFUpload.prototype.getFile = function (fileID) { + if (typeof(fileID) === "number") { + return this.callFlash("GetFileByIndex", [fileID]); + } else { + return this.callFlash("GetFile", [fileID]); + } +}; + +// Public: addFileParam sets a name/value pair that will be posted with the +// file specified by the Files ID. If the name already exists then the +// exiting value will be overwritten. +SWFUpload.prototype.addFileParam = function (fileID, name, value) { + return this.callFlash("AddFileParam", [fileID, name, value]); +}; + +// Public: removeFileParam removes a previously set (by addFileParam) name/value +// pair from the specified file. +SWFUpload.prototype.removeFileParam = function (fileID, name) { + this.callFlash("RemoveFileParam", [fileID, name]); +}; + +// Public: setUploadUrl changes the upload_url setting. +SWFUpload.prototype.setUploadURL = function (url) { + this.settings.upload_url = url.toString(); + this.callFlash("SetUploadURL", [url]); +}; + +// Public: setPostParams changes the post_params setting +SWFUpload.prototype.setPostParams = function (paramsObject) { + this.settings.post_params = paramsObject; + this.callFlash("SetPostParams", [paramsObject]); +}; + +// Public: addPostParam adds post name/value pair. Each name can have only one value. +SWFUpload.prototype.addPostParam = function (name, value) { + this.settings.post_params[name] = value; + this.callFlash("SetPostParams", [this.settings.post_params]); +}; + +// Public: removePostParam deletes post name/value pair. +SWFUpload.prototype.removePostParam = function (name) { + delete this.settings.post_params[name]; + this.callFlash("SetPostParams", [this.settings.post_params]); +}; + +// Public: setFileTypes changes the file_types setting and the file_types_description setting +SWFUpload.prototype.setFileTypes = function (types, description) { + this.settings.file_types = types; + this.settings.file_types_description = description; + this.callFlash("SetFileTypes", [types, description]); +}; + +// Public: setFileSizeLimit changes the file_size_limit setting +SWFUpload.prototype.setFileSizeLimit = function (fileSizeLimit) { + this.settings.file_size_limit = fileSizeLimit; + this.callFlash("SetFileSizeLimit", [fileSizeLimit]); +}; + +// Public: setFileUploadLimit changes the file_upload_limit setting +SWFUpload.prototype.setFileUploadLimit = function (fileUploadLimit) { + this.settings.file_upload_limit = fileUploadLimit; + this.callFlash("SetFileUploadLimit", [fileUploadLimit]); +}; + +// Public: setFileQueueLimit changes the file_queue_limit setting +SWFUpload.prototype.setFileQueueLimit = function (fileQueueLimit) { + this.settings.file_queue_limit = fileQueueLimit; + this.callFlash("SetFileQueueLimit", [fileQueueLimit]); +}; + +// Public: setFilePostName changes the file_post_name setting +SWFUpload.prototype.setFilePostName = function (filePostName) { + this.settings.file_post_name = filePostName; + this.callFlash("SetFilePostName", [filePostName]); +}; + +// Public: setUseQueryString changes the use_query_string setting +SWFUpload.prototype.setUseQueryString = function (useQueryString) { + this.settings.use_query_string = useQueryString; + this.callFlash("SetUseQueryString", [useQueryString]); +}; + +// Public: setRequeueOnError changes the requeue_on_error setting +SWFUpload.prototype.setRequeueOnError = function (requeueOnError) { + this.settings.requeue_on_error = requeueOnError; + this.callFlash("SetRequeueOnError", [requeueOnError]); +}; + +// Public: setHTTPSuccess changes the http_success setting +SWFUpload.prototype.setHTTPSuccess = function (http_status_codes) { + if (typeof http_status_codes === "string") { + http_status_codes = http_status_codes.replace(" ", "").split(","); + } + + this.settings.http_success = http_status_codes; + this.callFlash("SetHTTPSuccess", [http_status_codes]); +}; + +// Public: setHTTPSuccess changes the http_success setting +SWFUpload.prototype.setAssumeSuccessTimeout = function (timeout_seconds) { + this.settings.assume_success_timeout = timeout_seconds; + this.callFlash("SetAssumeSuccessTimeout", [timeout_seconds]); +}; + +// Public: setDebugEnabled changes the debug_enabled setting +SWFUpload.prototype.setDebugEnabled = function (debugEnabled) { + this.settings.debug_enabled = debugEnabled; + this.callFlash("SetDebugEnabled", [debugEnabled]); +}; + +// Public: setButtonImageURL loads a button image sprite +SWFUpload.prototype.setButtonImageURL = function (buttonImageURL) { + if (buttonImageURL == undefined) { + buttonImageURL = ""; + } + + this.settings.button_image_url = buttonImageURL; + this.callFlash("SetButtonImageURL", [buttonImageURL]); +}; + +// Public: setButtonDimensions resizes the Flash Movie and button +SWFUpload.prototype.setButtonDimensions = function (width, height) { + this.settings.button_width = width; + this.settings.button_height = height; + + var movie = this.getMovieElement(); + if (movie != undefined) { + movie.style.width = width + "px"; + movie.style.height = height + "px"; + } + + this.callFlash("SetButtonDimensions", [width, height]); +}; +// Public: setButtonText Changes the text overlaid on the button +SWFUpload.prototype.setButtonText = function (html) { + this.settings.button_text = html; + this.callFlash("SetButtonText", [html]); +}; +// Public: setButtonTextPadding changes the top and left padding of the text overlay +SWFUpload.prototype.setButtonTextPadding = function (left, top) { + this.settings.button_text_top_padding = top; + this.settings.button_text_left_padding = left; + this.callFlash("SetButtonTextPadding", [left, top]); +}; + +// Public: setButtonTextStyle changes the CSS used to style the HTML/Text overlaid on the button +SWFUpload.prototype.setButtonTextStyle = function (css) { + this.settings.button_text_style = css; + this.callFlash("SetButtonTextStyle", [css]); +}; +// Public: setButtonDisabled disables/enables the button +SWFUpload.prototype.setButtonDisabled = function (isDisabled) { + this.settings.button_disabled = isDisabled; + this.callFlash("SetButtonDisabled", [isDisabled]); +}; +// Public: setButtonAction sets the action that occurs when the button is clicked +SWFUpload.prototype.setButtonAction = function (buttonAction) { + this.settings.button_action = buttonAction; + this.callFlash("SetButtonAction", [buttonAction]); +}; + +// Public: setButtonCursor changes the mouse cursor displayed when hovering over the button +SWFUpload.prototype.setButtonCursor = function (cursor) { + this.settings.button_cursor = cursor; + this.callFlash("SetButtonCursor", [cursor]); +}; + +/* ******************************* + Flash Event Interfaces + These functions are used by Flash to trigger the various + events. + + All these functions a Private. + + Because the ExternalInterface library is buggy the event calls + are added to a queue and the queue then executed by a setTimeout. + This ensures that events are executed in a determinate order and that + the ExternalInterface bugs are avoided. +******************************* */ + +SWFUpload.prototype.queueEvent = function (handlerName, argumentArray) { + // Warning: Don't call this.debug inside here or you'll create an infinite loop + + if (argumentArray == undefined) { + argumentArray = []; + } else if (!(argumentArray instanceof Array)) { + argumentArray = [argumentArray]; + } + + var self = this; + if (typeof this.settings[handlerName] === "function") { + // Queue the event + this.eventQueue.push(function () { + this.settings[handlerName].apply(this, argumentArray); + }); + + // Execute the next queued event + setTimeout(function () { + self.executeNextEvent(); + }, 0); + + } else if (this.settings[handlerName] !== null) { + throw "Event handler " + handlerName + " is unknown or is not a function"; + } +}; + +// Private: Causes the next event in the queue to be executed. Since events are queued using a setTimeout +// we must queue them in order to garentee that they are executed in order. +SWFUpload.prototype.executeNextEvent = function () { + // Warning: Don't call this.debug inside here or you'll create an infinite loop + + var f = this.eventQueue ? this.eventQueue.shift() : null; + if (typeof(f) === "function") { + f.apply(this); + } +}; + +// Private: unescapeFileParams is part of a workaround for a flash bug where objects passed through ExternalInterface cannot have +// properties that contain characters that are not valid for JavaScript identifiers. To work around this +// the Flash Component escapes the parameter names and we must unescape again before passing them along. +SWFUpload.prototype.unescapeFilePostParams = function (file) { + var reg = /[$]([0-9a-f]{4})/i; + var unescapedPost = {}; + var uk; + + if (file != undefined) { + for (var k in file.post) { + if (file.post.hasOwnProperty(k)) { + uk = k; + var match; + while ((match = reg.exec(uk)) !== null) { + uk = uk.replace(match[0], String.fromCharCode(parseInt("0x" + match[1], 16))); + } + unescapedPost[uk] = file.post[k]; + } + } + + file.post = unescapedPost; + } + + return file; +}; + +// Private: Called by Flash to see if JS can call in to Flash (test if External Interface is working) +SWFUpload.prototype.testExternalInterface = function () { + try { + return this.callFlash("TestExternalInterface"); + } catch (ex) { + return false; + } +}; + +// Private: This event is called by Flash when it has finished loading. Don't modify this. +// Use the swfupload_loaded_handler event setting to execute custom code when SWFUpload has loaded. +SWFUpload.prototype.flashReady = function () { + // Check that the movie element is loaded correctly with its ExternalInterface methods defined + var movieElement = this.getMovieElement(); + + if (!movieElement) { + this.debug("Flash called back ready but the flash movie can't be found."); + return; + } + + this.cleanUp(movieElement); + + this.queueEvent("swfupload_loaded_handler"); +}; + +// Private: removes Flash added fuctions to the DOM node to prevent memory leaks in IE. +// This function is called by Flash each time the ExternalInterface functions are created. +SWFUpload.prototype.cleanUp = function (movieElement) { + // Pro-actively unhook all the Flash functions + try { + if (this.movieElement && typeof(movieElement.CallFunction) === "unknown") { // We only want to do this in IE + this.debug("Removing Flash functions hooks (this should only run in IE and should prevent memory leaks)"); + for (var key in movieElement) { + try { + if (typeof(movieElement[key]) === "function") { + movieElement[key] = null; + } + } catch (ex) { + } + } + } + } catch (ex1) { + + } + + // Fix Flashes own cleanup code so if the SWFMovie was removed from the page + // it doesn't display errors. + window["__flash__removeCallback"] = function (instance, name) { + try { + if (instance) { + instance[name] = null; + } + } catch (flashEx) { + + } + }; + +}; + + +/* This is a chance to do something before the browse window opens */ +SWFUpload.prototype.fileDialogStart = function () { + this.queueEvent("file_dialog_start_handler"); +}; + + +/* Called when a file is successfully added to the queue. */ +SWFUpload.prototype.fileQueued = function (file) { + file = this.unescapeFilePostParams(file); + this.queueEvent("file_queued_handler", file); +}; + + +/* Handle errors that occur when an attempt to queue a file fails. */ +SWFUpload.prototype.fileQueueError = function (file, errorCode, message) { + file = this.unescapeFilePostParams(file); + this.queueEvent("file_queue_error_handler", [file, errorCode, message]); +}; + +/* Called after the file dialog has closed and the selected files have been queued. + You could call startUpload here if you want the queued files to begin uploading immediately. */ +SWFUpload.prototype.fileDialogComplete = function (numFilesSelected, numFilesQueued, numFilesInQueue) { + this.queueEvent("file_dialog_complete_handler", [numFilesSelected, numFilesQueued, numFilesInQueue]); +}; + +SWFUpload.prototype.uploadStart = function (file) { + file = this.unescapeFilePostParams(file); + this.queueEvent("return_upload_start_handler", file); +}; + +SWFUpload.prototype.returnUploadStart = function (file) { + var returnValue; + if (typeof this.settings.upload_start_handler === "function") { + file = this.unescapeFilePostParams(file); + returnValue = this.settings.upload_start_handler.call(this, file); + } else if (this.settings.upload_start_handler != undefined) { + throw "upload_start_handler must be a function"; + } + + // Convert undefined to true so if nothing is returned from the upload_start_handler it is + // interpretted as 'true'. + if (returnValue === undefined) { + returnValue = true; + } + + returnValue = !!returnValue; + + this.callFlash("ReturnUploadStart", [returnValue]); +}; + + + +SWFUpload.prototype.uploadProgress = function (file, bytesComplete, bytesTotal) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_progress_handler", [file, bytesComplete, bytesTotal]); +}; + +SWFUpload.prototype.uploadError = function (file, errorCode, message) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_error_handler", [file, errorCode, message]); +}; + +SWFUpload.prototype.uploadSuccess = function (file, serverData, responseReceived) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_success_handler", [file, serverData, responseReceived]); +}; + +SWFUpload.prototype.uploadComplete = function (file) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_complete_handler", file); +}; + +/* Called by SWFUpload JavaScript and Flash functions when debug is enabled. By default it writes messages to the + internal debug console. You can override this event and have messages written where you want. */ +SWFUpload.prototype.debug = function (message) { + this.queueEvent("debug_handler", message); +}; + + +/* ********************************** + Debug Console + The debug console is a self contained, in page location + for debug message to be sent. The Debug Console adds + itself to the body if necessary. + + The console is automatically scrolled as messages appear. + + If you are using your own debug handler or when you deploy to production and + have debug disabled you can remove these functions to reduce the file size + and complexity. +********************************** */ + +// Private: debugMessage is the default debug_handler. If you want to print debug messages +// call the debug() function. When overriding the function your own function should +// check to see if the debug setting is true before outputting debug information. +SWFUpload.prototype.debugMessage = function (message) { + if (this.settings.debug) { + var exceptionMessage, exceptionValues = []; + + // Check for an exception object and print it nicely + if (typeof message === "object" && typeof message.name === "string" && typeof message.message === "string") { + for (var key in message) { + if (message.hasOwnProperty(key)) { + exceptionValues.push(key + ": " + message[key]); + } + } + exceptionMessage = exceptionValues.join("\n") || ""; + exceptionValues = exceptionMessage.split("\n"); + exceptionMessage = "EXCEPTION: " + exceptionValues.join("\nEXCEPTION: "); + SWFUpload.Console.writeLine(exceptionMessage); + } else { + SWFUpload.Console.writeLine(message); + } + } +}; + +SWFUpload.Console = {}; +SWFUpload.Console.writeLine = function (message) { + var console, documentForm; + + try { + console = document.getElementById("SWFUpload_Console"); + + if (!console) { + documentForm = document.createElement("form"); + document.getElementsByTagName("body")[0].appendChild(documentForm); + + console = document.createElement("textarea"); + console.id = "SWFUpload_Console"; + console.style.fontFamily = "monospace"; + console.setAttribute("wrap", "off"); + console.wrap = "off"; + console.style.overflow = "auto"; + console.style.width = "700px"; + console.style.height = "350px"; + console.style.margin = "5px"; + documentForm.appendChild(console); + } + + console.value += message + "\n"; + + console.scrollTop = console.scrollHeight - console.clientHeight; + } catch (ex) { + alert("Exception: " + ex.name + " Message: " + ex.message); + } +}; + +exports.SWFUpload = SWFUpload; +}); +define("js/home/comment", ["jquery"], function(require, exports, module){ +/** + * 我的评论 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/3/1 + */ +var $ = require("jquery"); + +var $comment = $('.comment-table'), + $remarkBtn = $comment.find('.remark-btn'); + +var $dialog = $('#comment-dialog-widget'), + $titleBar = $dialog.find('.dialog-titlebar'), + $commentArea = $dialog.find('textarea'); + +var pageW = $(document).width(), + pageH = $(document).height(), + winH = $(window).height(); + +var dialog = { + canmove: false, + offset: {}, + maxtop: 0, + maxleft: 0 + }, + orderInfo = {}, + $optDom; + +// 处理订单数据 +$remarkBtn.each(function() { + var $next = $(this).next(), + data = $next.data(), + key = data.orderid; + + orderInfo[key] = {}; + orderInfo[key].productSkn = data.productskn; + orderInfo[key].productId = data.productid; + orderInfo[key].goodsId = data.goodsid; + orderInfo[key].orderId = data.orderid; + orderInfo[key].erpSkuId = data.erpskuid; + + $next.remove(); + $(this).data('code', key); +}); + +$remarkBtn.click(function() { + var scrollTop = $(document).scrollTop(); + + $optDom = $(this); + $commentArea.val(''); + $dialog.removeClass('hide').css({ + top: scrollTop + (winH - $dialog.outerHeight()) / 2, + left: (pageW - $dialog.outerWidth()) / 2 + }); +}); + +// 评论弹窗 +$titleBar.bind('mousedown', function(e) { + if ($(e.target).hasClass('dialog-close-btn')) { + return; + } + + dialog.canmove = true; + dialog.offset = { + x: e.offsetX, + y: e.offsetY + }; + dialog.maxtop = pageH - $dialog.outerHeight(); + dialog.maxleft = pageW - $dialog.outerWidth(); +}); + +$(document).mousemove(function(e) { + var mtop, mleft; + + if (!dialog.canmove) { + return; + } + + mtop = e.pageY - dialog.offset.y; + mleft = e.pageX - dialog.offset.x; + mtop = mtop < dialog.maxtop ? mtop : dialog.maxtop; + mleft = mleft < dialog.maxleft ? mleft : dialog.maxleft; + $dialog.css({ + top: mtop > 0 ? mtop : 0, + left: mleft > 0 ? mleft : 0 + }); +}).mouseup(function(e) { + dialog.canmove = false; +}); + +$dialog.on('click', '.dialog-save-btn', function() { + var remark = $.trim($commentArea.val()), + param; + + if (remark === '') { + alert('请添加评论内容'); + return; + } + if ($optDom.length) { + param = orderInfo[$optDom.data().code]; + param.content = remark; + + $.ajax({ + type: 'POST', + url: '/home/comment/saveComment', + data: param + }).then(function(jsonData) { + var $par = $optDom.parent(); + + if (jsonData.code === 200) { + $par.prev().text(remark); + $par.html('<span class="remarked">已评论!</span>'); + $optDom.length = 0; + $dialog.addClass('hide'); + } else { + alert(jsonData.message); + } + }); + } +}); + +$dialog.on('click', '.dialog-close-btn', function() { + $optDom.length = 0; + $dialog.addClass('hide'); +}); +}); +define("js/home/complaints", ["jquery"], function(require, exports, module){ +/** + * 我的投诉 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/3/18 + */ + +var $ = require("jquery"); + +var $cancelBtn = $('.cancel-btn'), + $title = $('#title'), + $customer = $('#customer'), + $complaintsType = $('#complaintsType'), + $orderCode = $('#orderCode'), + $content = $('#content'); + +var ajaxing = false; +var rule = { + title: { + dom: $title, + min: 1, + max: 10, + onshow: '请输入您的投诉主题', + onfocus: '请输入主题', + onmin: '投诉主题不能为空', + onmax: '输入投诉主题不能超过10个字' + }, + customer: { + dom: $customer, + min: 1, + max: 10, + onshow: '请填写您要投诉的对象,比如:客服00*号、发货员...', + onfocus: '请填写您要投诉的对象', + onmin: '投诉对象不能为空', + onmax: '输入投诉对象不能超过10个字' + }, + orderCode: { + dom: $orderCode, + regexp: /^([0-9,]{9,})$/, //一个和多个订单 + onshow: '如果多个是多个订单号,请用英文逗号隔开,没有则不填', + onfocus: '请输入订单号', + onerror: '您输入的订单格式不对,如果多个是多个订单号,请用英文逗号隔开' + }, + content: { + dom: $content, + min: 1, + max: 130, + onshow: '输入您投诉的内容', + onfocus: '请输入您投诉的内容', + onmin: '投诉内容不能为空', + onmax: '输入的投诉内容不能超过130个字' + } + }; + +function preventResubmit() { + if (!ajaxing) { + ajaxing = true; + setTimeout(function() { + ajaxing = false; + }, 1000); + return false; + } + return true; +} + +function validate(info) { + var $tips = info.dom.siblings('.option-tip'), + val = $.trim(info.dom.val()), + len = val.length; + + if (info.min && len < info.min) { + $tips.text(info.onmin); + return false; + } else if (info.max && len > info.max) { + $tips.text(info.onmax); + return false; + } + + if (info.regexp && !info.regexp.test(val)) { + $tips.text(info.onerror); + return false; + } + + $tips.text('输入正确'); + return true; +} + +function validateForm() { + var res = {}, + focus; + + $.each(rule, function(key, info) { + if (validate(info)) { + res[key] = $.trim(info.dom.val()); + } else { + if (!focus) { + focus = key; + info.dom.focus(); + } + } + }); + res.complaintsType = $complaintsType.val(); + + if (focus) { + return false; + } + return res; +} + +function addComplaint() { + var sendParm = validateForm(); + + if (preventResubmit() || !sendParm) { + return; + } + + $.ajax({ + type: 'POST', + url: '/home/complaints/addcomplaints', + data: sendParm + }).then(function(jsonData) { + ajaxing = false; + if (jsonData.code === 200) { + window.location.reload(); + } else { + alert(jsonData.message); + } + }); +} + +function cancelComplaint(id, dom) { + var $dom = dom; + + if (preventResubmit()) { + return; + } + + $.ajax({ + type: 'POST', + url: '/home/complaints/cancelcomplaints', + data: { + id: id + } + }).then(function(jsonData) { + ajaxing = false; + if (jsonData.code === 200) { + $dom.prev().remove(); + $dom.text('问题已撤销'); + } else { + alert(jsonData.message); + } + }); +} + +$.each(rule, function(key, info) { + info.dom.focus(function() { + info.dom.siblings('.option-tip').text(info.onfocus); + }).blur(function() { + validate(info); + }); +}); + +$('#complaint-submit').click(function() { + addComplaint(); +}); + +$cancelBtn.click(function() { + var data = $(this).data(); + + if (data && data.id) { + cancelComplaint(data.id, $(this).parent()); + } +}); +}); +define("js/home/message", ["jquery"], function(require, exports, module){ +/** + * 我的信息 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/3/21 + */ +var $ = require("jquery"); + +var $container = $('#message-main-container'), + $msgCheck = $container.find('.msg-check'), + $readBtn = $container.find('.read-choose-btn'), + $checked; + +var operationId = []; + +require("js/home/message-content"); + +function hasNew() { + var newMsg = false; + + $checked = $container.find('.msg-check:checked'); + operationId = []; + + $checked.each(function() { + var $par = $(this).parent().parent(); + + operationId.push($(this).val()); + if ($par.hasClass('new-msg')) { + newMsg = true; + } + }); + + if (newMsg) { + $readBtn.addClass('has-new'); + } else { + $readBtn.removeClass('has-new'); + } +} + +function msgOperation(type, data) { + var url; + + switch (type) { + case 'del': + url = '/home/message/delMessage'; + break; + case 'read': + url = '/home/message/readMessage'; + break; + } + + $.ajax({ + type: 'GET', + url: url, + data: data + }).then(function(jsonData) { + if (!jsonData.code) { + if (type === 'del') { + $container.html(jsonData); + $msgCheck = $container.find('.msg-check'); + $readBtn = $container.find('.read-choose-btn'); + } + } else { + if (jsonData.code === 200) { + if (type === 'read') { + $checked.removeAttr('checked'); + $checked.parent().parent().removeClass('new-msg'); + hasNew(); + } + } else { + alert(jsonData.message); + } + } + }); +} + +$container.on('change', 'input[type="checkbox"]', function() { + var checked = $(this).attr('checked'); + + if ($(this).hasClass('choose-all')) { + if (checked === 'checked') { + $msgCheck.attr('checked', true); + } else { + $msgCheck.removeAttr('checked'); + } + } + hasNew(); +}); + +$container.on('click', '.del-btn', function() { + if (confirm('您确定要删除这条短消息?')) { + msgOperation('del', $(this).data()); + } +}); + +$container.on('click', '.del-choose-btn', function() { + if (!operationId.length) { + alert('请选中您要删除的消息'); + return; + } + + if (confirm('确定要删除您选中的消息')) { + msgOperation('del', { + id: operationId.join(',') + }); + } +}); + +$container.on('click', '.read-choose-btn', function() { + if ($(this).hasClass('has-new')) { + msgOperation('read', { + id: operationId.join(',') + }); + } +}); +}); +define("js/home/message-content", ["jquery"], function(require, exports, module){ +/** + * 我的信息 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/3/25 + */ +var $ = require("jquery"); + +var $pickBtn = $('.pick-coupon-btn'); + +var pickBusy = false; + +$pickBtn.click(function() { + var data = $(this).data(); + + if (pickBusy) { + return; + } + pickBusy = true; + $.ajax({ + type: 'GET', + url: '/home/message/pickCoupon', + data: data + }).then(function(jsonData) { + var msg = jsonData.message; + + if (jsonData.code === 200) { + msg = '领取成功'; + $(this).removeClass('pick-coupon-btn'); + } + + pickBusy = false; + + alert(msg); + }); +}); +}); +define("js/home/edit", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 个人中心页-个人资料编辑 + * @author: zhaobiao<bill.zhao@yoho.cn> + * @date: 2016/02/17 + */ +var $ = require("jquery"); + +var $allEditForms = $('.userinfo-edit form'); + +var address = require("js/home/common-address"); + +var date = { + init: function(year, month, day) { + var $year = $('#year'), + $month = $('#month'), + $day = $('#day'); + + var that = this; + + this.createDay($year.val(), $month.val(), $day.val()); + + $year.on('change', function() { + that.update(); + }); + + $month.on('change', function() { + that.update(); + }); + }, + update: function() { + this.createDay($('#year').val(), $('#month').val(), $('#day').val()); + }, + createDay: function(year, month, day) { + var html = '<select name="day" id="day">', + monthArray = new Array(4, 6, 9, 11), + dayNum = 31; + + var select, + i; + + year = parseInt(year); + month = parseInt(month); + + if (year === 0) { + year = 0; + } + + if (month === 0) { + month = 0; + } + + $('#year').val(year.toString()); + $('#month').val(month.toString()); + + html += '<option value="0">日</option>'; + + if (year > 0 && month > 0) { + if ($.inArray(month, monthArray) !== -1) { + dayNum = 30; + } else if (month === 2) { + dayNum = 28; + if (0 === year % 4 && (year % 100 !== 0 || year % 400 === 0)) { + dayNum = 29; + } + } + + for (i = 1; i <= dayNum; i++) { + select = ''; + + if (parseInt(day) === i) { + select = 'selected'; + } + html += '<option value="' + i + '" ' + select + '>' + i + '</option>'; + } + } + html += '</select>'; + + $('#day').replaceWith(html); + } +}; + + +$('.userinfo-edit h2').on('click', function() { + var $form = $(this).next(); + + $allEditForms.slideUp('fast'); + $form.css('display') === 'none' ? $form.slideDown('slow') : null; + +}); + +function checkBaseForm() { + var nicknameLength = $('#nickname').val().length, + usernameLength = $('#username').val().length, + $gender = $('input[name="gender"]'), + $year = $('#year'), + $month = $('#month'), + $day = $('#day'); + + if (nicknameLength === 0) { + alert('请输入昵称'); + return false; + } + + if (usernameLength === 0) { + alert('请输入用户名'); + return false; + } + + if (nicknameLength >= 20) { + alert('昵称最长为20个字符'); + return false; + } + + + if (!$gender.is(':checked')) { + alert('请选择性别'); + return false; + } + + if ($year.val() === '0' || $month.val() === '0' || $day.val() === '0') { + alert('请选择出生年月日'); + return false; + } + + return true; +} + +function checkContactForm() { + if ($('#province').val() === '0' || $('#city').val() === '0' || $('#areaCode').val() === '0') { + alert('请选择所在区域'); + return false; + } + + if ($('#province').val() === null || $('#city').val() === null || $('#areaCode').val() === null) { + alert('请选择所在区域'); + return false; + } + + if ($('#phone').val().length === 0 && $('#mobile').val().length === 0) { + alert('电话和手机号码不能同时为空,请填写!'); + return false; + } + + + if ($('#fullAddress').val().length === 0) { + alert('请填写地址'); + return false; + } + + if ($('#zipCode').val().length === 0 || $('#zipCode').val().length < 2) { + alert('请填写邮编'); + return false; + } + + return true; +} + +function checkHabbitForm() { + if (!$('.user-habbit-info input').is(':checked')) { + alert('请填写购物&着装习惯'); + return false; + } + + return true; +} + +function checkFavoriteForm() { + if ($('#likebrand').val() === '') { + alert('请选择品牌'); + return false; + } + + return true; +} + +function delBrand(brandId) { + var brand = $('#likebrand').val(); + + if (parseInt(brandId) === 0) { + return false; + } + + $('#likebrand').val(brand.replace(',' + brandId + ',', ',')); + $('#pp-' + brandId).attr('checked', false); + $('#brand-' + brandId).remove(); +} + + + +function addBrand(domObj, brandId, brandName) { + var html = '<li id="brand-' + brandId + '">' + + brandName + '<a href="javascript:void(0);" class="btn-del"></a></li>'; + + var brandInfo = $('#brand-' + brandId).html(), + brandStr = $('#likebrand').val(); + + var $brandBox = $('#brand-box'); + + if (parseInt(brandId) === 0) { + return false; + } + + if (typeof domObj !== 'undefined' && domObj !== '' && domObj.checked === false) { + delBrand(brandId); + return false; + } + if (brandInfo) { + alert('您已经选择了该品牌.'); + return false; + } + $brandBox.append(html); + + $brandBox.find('li>a').off('click').on('click', function() { + delBrand($(this).closest('li').attr('id').substr(6)); + }); + + brandStr += brandId + ','; + $('#likebrand').val(brandStr); +} + +function checkBrand() { + var postData = { + brandName: $('#keywords').val() + }; + + $.post('/home/user/isbrandname', postData, function(data) { + if (data.code === 200) { + if (data.data.id && data.data.brand_name) { + addBrand('', data.data.id, data.data.brand_name); + $('#keywords').val(''); + return true; + } else { + alert('网络异常,请重试'); + return false; + } + } + alert(data.message); + return false; + }, 'json'); +} + +function save(postUrl, btnId) { + var $form = $('#' + btnId).closest('form'); + + $.post(postUrl, $form.serialize(), function(data) { + if (data.code === 200) { + alert(data.message); + setTimeout(function() { + $form.closest('div').next().find('h2').click(); + }, 100); + return true; + } + alert(data.message); + return false; + }, 'json'); +} + + +$('#base-info').on('click', function() { + if (checkBaseForm()) { + save('/home/user/edituserinfo/', 'base-info'); + } +}); + +$('#contact-info').on('click', function() { + if (checkContactForm()) { + save('/home/user/editusercontactinfo/', 'contact-info'); + } +}); + +$('#shopping-info').on('click', function() { + if (checkHabbitForm()) { + save('/home/user/edituserhabitsinfo/', 'shopping-info'); + } +}); + +$('#favorite-brand').on('click', function() { + if (checkFavoriteForm()) { + $.ajax({ + url: '/home/user/edituserlikebrand/', + type: 'post', + datatype: 'json', + data: { + brand: $('#likebrand').val() + }, + success: function(data) { + if (data.code === 200) { + alert(data.message); + return true; + } + alert(data.message); + return false; + }, + error: function(err) { + alert('网络异常'); + } + }); + } +}); + +$('#add-brand-btn').on('click', function() { + checkBrand(); +}); + +$('.user-favorite-info input[type="checkbox"]').on('click', function() { + var $this = $(this); + + addBrand(this, $this.attr('id').substr(3), $this.parent().text()); +}); + +(function() { + var $brands = $('#brand-box li'); + + if ($brands.length > 0) { + $brands.find('a').on('click', function() { + delBrand($(this).closest('li').attr('id').substr(6)); + }); + } +})(); + +date.init(); + +(function() { + if (!$('#province').val()) { + address.loadAllData(0, { + provinceDomId: 'province', + cityDomId: 'city', + areaDomId: 'areaCode' + }); + } else { + address.bindAreaChange({ + provinceDomId: 'province', + cityDomId: 'city', + areaDomId: 'areaCode' + }); + } +})(); + +}); +define("js/home/gift", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 个人中心页-兑换礼品卡 + * @author: wsl<shuiling.wang@yoho.cn> + * @date: 2016/02/22 + */ +var $ = require("jquery"), + dialog = require("js/common/dialog"), + Alert = dialog.Alert; + +var $giftError = $('.giftCardCode').find('.gift-error'), + $codeError = $('.captchaCode').find('.gift-error'), + reg = '', + code = '', + i = 1; + +var active; + +var Gift = { + suc: [ + false, + false, + false, + false + ], + checkCard: function(num) { + reg = /^[0-9a-zA-Z]{4,4}$/; + + if (!reg.test($('#giftCardCode' + num).val())) { + $giftError.html('您输入的兑换码有误,兑换码必须为数字或字母,每个文本框里只能输入四个兑换码!'); + Gift.suc[num - 1] = false; + } else { + for (i = 1; i <= 3; i++) { + if (!reg.test($('#giftCardCode' + i).val())) { + $giftError.html('您输入的兑换码有误,兑换码必须为数字或字母,每个文本框里只能输入四个兑换码!'); + Gift.suc[i] = false; + } else { + $giftError.html(''); + Gift.suc[i] = true; + } + } + + if (num !== 3) { + $('#giftCardCode' + (num + 1)).focus(); + } + } + }, + bindGiftCardForm: function() { + $('#giftCardCode1').bind('blur keyup', function() { + Gift.checkCard(1); + }); + + $('#giftCardCode2').bind('blur keyup', function() { + Gift.checkCard(2); + }); + + $('#giftCardCode3').bind('blur keyup', function() { + Gift.checkCard(3); + }); + + $('#captchaCode').bind('blur keyup', function() { + code = $('#captchaCode').val(); + + if (code.length <= 0) { + $codeError.html('请输入验证码!'); + Gift.suc[3] = false; + } else { + $codeError.html(''); + Gift.suc[3] = true; + } + }); + }, + + checkForm: function() { + if (!reg.test($('#giftCardCode1').val()) || !reg.test($('#giftCardCode2').val()) || + !reg.test($('#giftCardCode3').val())) { + $giftError.html('您输入的兑换码有误,兑换码必须为数字或字母,每个文本框里只能输入四个兑换码!'); + return false; + } + + if ($.trim($('#captchaCode').val()) === '') { + $codeError.html('请输入验证码!'); + return false; + } + return true; + } +}; + +//更换验证码 +function refreshCaptcha() { + var dt = new Date(); + + $('#imgcode').attr('src', '/passport/images?t=' + dt.getTime()); + return false; +} + +$('#sub-gift').on('click', function() { + if (Gift.checkForm()) { + $.post('/home/gift/exchange', $('#giftCardForm').serialize(), function(data) { + if (data.code === 200) { + window.location.href = '/home/gift?type=1'; + } else if (data.code === 400) { + active = new Alert(data.message); + active.show(); + refreshCaptcha(); + } else { + window.location.href = '/home/gift?type=2'; + } + }, 'json'); + } else { + return false; + } +}); + +$(document).on('click', '#imgcode,.check-img', function() { + refreshCaptcha(); +}); + +$(function() { + refreshCaptcha(); + Gift.bindGiftCardForm(); +}); +}); +define("js/home/validate", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 个人中心页-账号安全验证 + * @author:wsl<shuiling.wang@yoho.cn> + * @date: 2016/02/23 + */ +var $ = require("jquery"), + dialog = require("js/common/dialog"), + phoneRegx = require("js/passport/mail-phone-regx"), + Alert = dialog.Alert; + +var $checkUser = $('.check-user'), + $checkInput = $checkUser.find('input').not('input[type=button],input[type=hidden],input[type=reset]'), + canSend = true, + canFlag = true, + stime = 60; + +var sInt, + active; + +$.ajaxSetup({ + async: false +}); + +if (!Array.prototype.indexOf) { + Array.prototype.indexOf = function(obj, start) { + var i, + j; + + for (i = (start || 0), j = this.length; i < j; i++) { + if (this[i] === obj) { + return i; + } + } + + return -1; + }; +} + +function errorInfoAction(opt, txt) { + opt.$checkInfo.html('<div class="form-error">' + txt + '</div>'); + if (opt.dom.attr('name') !== 'code' && opt.dom.attr('name') !== 'verifyCode') { + opt.dom.addClass('input-error'); + } + return false; +} + +function successInfoAction(opt) { + opt.$checkInfo.html('<div class="form-success"> </div>'); + + if (opt.dom.attr('name') !== 'code' && opt.dom.attr('name') !== 'verifyCode') { + opt.dom.removeClass('input-error'); + } + return true; +} + +function checkFormAjax(ajaxData) { + var res; + + $.post(ajaxData.url, ajaxData.data, function(data) { + if (typeof data.code !== 'undefined' && data.code === 200) { + res = successInfoAction(ajaxData.opt); + } else { + ajaxData.txt = ajaxData.txt !== '' && ajaxData.txt !== null ? ajaxData.txt : data.message; + res = errorInfoAction(ajaxData.opt, ajaxData.txt); + } + }); + + return res; +} + +// 身份校验 +function checkForm(dom) { + var val = dom.val(), + len = val.length, + $domParent = dom.parent(), + $checkInfo = $domParent.find('.check-info'), + inputName = dom.attr('name'), + regular = '', + text = '', + mobileValue = '', + opt = { + $checkInfo: $checkInfo, + dom: dom + }, + ajaxData = { + opt: opt + }; + + $checkInfo.html(''); + + if (inputName === 'password') { + if (len === 0) { + return errorInfoAction(opt, '密码不能为空!'); + } else { + $.extend(ajaxData, { + url: '/home/account/checkpassword', + data: { + password: val + }, + txt: '密码错误!' + }); + return checkFormAjax(ajaxData); + } + } else if (inputName === 'verifyCode') { + $.extend(ajaxData, { + url: '/home/account/checkverifycode', + data: { + verifyCode: val + }, + txt: '验证码错误!' + }); + return checkFormAjax(ajaxData); + } else if (inputName === 'email') { + regular = phoneRegx.emailRegx; + + if (val.match(regular) === null) { + return errorInfoAction(opt, '邮箱错误!'); + } else { + $.extend(ajaxData, { + url: '/home/account/checkemail', + data: { + email: val + }, + txt: '' + }); + return checkFormAjax(ajaxData); + } + } else if (inputName === 'mobile') { + regular = phoneRegx.phoneRegx; + text = val.split('-'); + + if (text.length === 1) { + regular = val.match('^1[35847]{1}[0-9]{9}'); + } else { + regular = regular['+' + text[0]].test(text[1]); + } + + if (len === 0) { + return errorInfoAction(opt, '手机号不能为空!'); + } else if (regular === null || !regular) { + return errorInfoAction(opt, '手机号错误!'); + } else { + $.extend(ajaxData, { + url: '/home/account/checkmobile', + data: { + mobile: val + }, + txt: '手机号已经存在!' + }); + return checkFormAjax(ajaxData); + } + } else if (inputName === 'newPwd') { + regular = phoneRegx.pwdValidateRegx; + + if (!regular.test(val)) { + return errorInfoAction(opt, '建议6~20个数字+字母组合!'); + } else { + return successInfoAction(opt); + } + } else if (inputName === 'confirm_password') { + if ($('#newPwd').val() !== val) { + return errorInfoAction(opt, '两次密码不一致!'); + } else { + return successInfoAction(opt); + } + + // else if ($('#newPwd').val() !== '') { + // $('#newPwd').next().html('<div class="form-success"> </div>'); + // return successInfoAction(opt); + // } + } else if (inputName === 'code') { + mobileValue = $('#realAccount').length > 0 ? $('#realAccount').val() : $('#mobilevalue').val(); + + if (val !== '') { + $.extend(ajaxData, { + url: '/home/account/checkmobilemsg', + data: { + mobile: mobileValue, + code: $('#inputcode').val() + }, + txt: '验证码错误!' + }); + return checkFormAjax(ajaxData); + } + } else { + return true; + } +} + +// 校验表单 +function checkAllForm() { + var arr = []; + + canFlag = false; + + $.each($checkInput, function(key, item) { + arr[key] = checkForm($(item)); + }); + + if (arr.indexOf(false) >= 0) { + canFlag = true; + return false; + } else { + return true; + } +} + +// 切换验证码 +function changeCode() { + var timestamp = (new Date()).getTime(); + + $('#the-code-img').attr('src', '/passport/images?len=6&time=' + timestamp); +} + +// 重新发送倒计时 +function code() { + var sstring = ''; + + if (stime > 0) { + sstring = '重新发送' + stime + '秒'; + $('#sendButton').text(sstring); + stime = stime - 1; + } else { + stime = 60; + $('#sendButton').text('发送验证码'); + clearInterval(sInt); + canSend = true; + } +} + +// 发送手机验证码ajax请求 +function sendMobileMsg(mobileV) { + var $code = $('#inputcode'), + $ccheckInfo = $code.parent().find('check-info'); + + $.post('/home/account/sendmobilemsg', { + mobile: mobileV + }, function(data) { + if (typeof data.code !== 'undefined' && data.code === 200) { + canSend = false; + sInt = setInterval(function() { + code(); + }, 1000); + $ccheckInfo.html(''); + } else { + $ccheckInfo.html('<div class="form-error">验证码发送失败</div>'); + } + }); +} + +// 发送手机验证码 +function sendcode() { + var $mobile = $('#mobilevalue'); + + var $mcheckInfo, + mobileV, + mobileObj; + + if ($mobile.length > 0) { + $mcheckInfo = $mobile.next(), + mobileV = $mobile.val(), + mobileObj = mobileV.split('-'); + + if (mobileObj.length === 1) { + mobileObj = mobileV.match('^1[35847]{1}[0-9]{9}'); + } else { + mobileObj = phoneRegx.phoneRegx['+' + mobileObj[0]].test(mobileObj[1]); + } + } else { + mobileV = $('#realAccount').val(); + } + + if (canSend) { + if ($mobile.length > 0) { + if (mobileObj === null || !mobileObj) { + $mcheckInfo.html('<div class="form-error">手机号错误!</div>'); + $mobile.addClass('input-error'); + return false; + } + + if ($mcheckInfo.find('.form-success').length > 0) { + sendMobileMsg(mobileV); + } + } + + if ($('#realAccount').length > 0) { + sendMobileMsg(mobileV); + } + } else { + return false; + } +} + +// 验证完成后倒计时跳转 +function toHome() { + window.location.href = '/home/account'; +} + +// ajax公共处理模块 +function ajaxAction(opt, flag) { + $.post(opt.url, opt.data, function(data) { + if (data.code === 200) { + if (flag) { + opt.hrefUrl += '&checkCode=' + data.data; + } + window.location.href = opt.hrefUrl; + } else { + canFlag = true; + active = new Alert(data.message); + active.show(); + return false; + } + }, 'json'); +} + +// 提交表单 +function submitForm() { + var step = $('.progress-bar .cur').index(), + verifyType = $('#verifyType').val(), + curType = '', + opt = {}; + + if ($('.email').length > 0) { + curType = 'email'; + } + + if ($('.mobile').length > 0) { + curType = 'mobile'; + } + + if ($('.userpwd').length > 0) { + curType = 'userpwd'; + } + + /* + * step 0: 验证身份 1:验证第二步骤 2:验证第三步骤 + * verifyType 验证身份的状态 1:登录密码验证 2:邮箱的身份验证 3:手机的身份验证 + */ + if (step === 0) { + if (verifyType === '1') { + opt = { + url: '/home/account/verifypassword', + data: $('#pwdform').serialize(), + hrefUrl: '/home/account/' + curType + '?step=2' + }; + + ajaxAction(opt, 'step1'); + + // if (!ajaxAction(opt)) { + // $("input[type=reset]").trigger("click"); + // } + } else if (verifyType === '2') { + opt = { + url: '/home/account/sendemail', + data: { + checkType: curType, + email: $('#realAccount').val() + }, + hrefUrl: '/home/account/sendemailsuccess?email=' + $('#realAccount').val() + + '&type=1&checkType=' + curType + }; + ajaxAction(opt); + } else { + opt = { + url: '/home/account/checkmobilemsg', + data: { + mobile: $('#realAccount').val(), + code: $('#inputcode').val() + }, + hrefUrl: '/home/account/' + curType + '?step=2' + }; + ajaxAction(opt, 'step1'); + } + } else if (step === 1) { + if (curType === 'userpwd') { + opt = { + url: '/home/account/modifypwd', + data: $('#pwdform').serialize(), + hrefUrl: '/home/account/userpwd?step=3&success=true' + }; + ajaxAction(opt); + } else if (curType === 'email') { + opt = { + url: '/home/account/modifyemail', + data: { + email: $('#email').val() + }, + hrefUrl: '/home/account/sendemailsuccess?email=' + $('#email').val() + + '&type=2&checkType=email' + }; + ajaxAction(opt); + } else { + opt = { + url: '/home/account/modifymobile', + data: { + mobile: $('#mobilevalue').val(), + code: $('#inputcode').val() + }, + hrefUrl: '/home/account/mobile?step=3&success=true' + }; + ajaxAction(opt); + } + } +} + +$(function() { + var t = null; + + if ($('.res-info').length > 0) { + t = setTimeout(function() { + toHome(); + }, 5000); + } + + changeCode(); + + $('#pwdform').submit(function() { + return false; + }); + + $checkInput.blur(function() { + checkForm($(this)); + }); + + $('.sub-btn').on('click', function() { + if (canFlag === false) { + return false; + } + + if (checkAllForm()) { + submitForm(); + } else { + return false; + } + }); + + $('input[name=verifyCode]').keydown(function(e) { + if (e.keyCode === 13) { + if (canFlag === false) { + return false; + } + + if (checkAllForm()) { + submitForm(); + } else { + return false; + } + } + }); + + $('.the-code').on('click', function() { + changeCode(); + }); + + $('#send-mobile-code').on('click', function() { + sendcode(); + }); + + if ($('#newPwd').length > 0) { + $('#newPwd').on('input', function(e) { + var $confirm = $('input[name=confirm_password]'), + confirmV = $confirm.val(), + newPwdV = $('#newPwd').val(), + opt = { + dom: $confirm, + $checkInfo: $confirm.next() + }; + + if (confirmV.length > 0 && newPwdV !== confirmV) { + errorInfoAction(opt, '两次密码不一致!'); + } + }); + } +}); +}); +define("js/home/address", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 个人中心页-地址管理 + * @author: wsl<shuiling.wang@yoho.cn> + * @date: 2016/02/24 + */ +var $ = require("jquery"), + regionCode = require("js/home/common-address"), + dialog = require("js/common/dialog"), + Alert = dialog.Alert; + +var active; + +var $del = $('.address-del'), + $edit = $('.address-modify'), + $input = $('.input-1'); + +var address = { + + evil: function(fn) { + var Fn = Function; + + return new Fn('return ' + fn)(); + }, + + clearAddrForm: function() { + $('#addressName').val(''); + $('#address').val(''); + $('#zipCode').val(''); + $('#phone').val(''); + $('#mobile').val(''); + $('#email').val(''); + $('#addrId').val(0); + $('#province').val(0); + $('#city').val(0); + $('#areaCode').val(0).hide(); + $('#btn-reset').hide(); + $('#form-status').html('添加新地址'); + }, + + editAddr: function(id) { + $.getJSON('/home/address/editAddress?id=' + id, function(jsonData) { + if (jsonData.code === 200) { + $('#form-status').html('修改地址'); + $('#addressName').val(jsonData.data.consignee); + + regionCode.loadAllData(jsonData.data.area_code, {}); + $('#address').val(jsonData.data.address); + $('#email').val(jsonData.data.email); + $('#phone').val(jsonData.data.phone); + $('#mobile').val(jsonData.data.mobile); + $('#zipCode').val(jsonData.data.zip_code); + $('#addrId').val(jsonData.data.address_id); + $('#btn-reset').show(); + } + }); + }, + + saveAddr: function(callbackFunc) { + $.post('/home/address/saveAddress', $('#address-form').serialize(), function(data) { + if (data.code === 200) { + location.reload(); + } else { + active = new Alert(data.message); + active.show(); + } + }, 'json'); + }, + + // 删除地址 + delAddr: function(addrId) { + $.getJSON('/home/address/delAddress?id=' + addrId, function(jsonData) { + if (jsonData.code === 200) { + $('.address-list').find('li[addressId=' + addrId + ']').remove(); + if (addrId === $('#addrId').val()) { + address.clearAddrForm(); + } + } else { + active = new Alert('删除失败'); + active.show(); + } + }); + }, + + setDefaultAddr: function(addrId) { + var oldBtn = $('.address-list').find('.default-btn'), + oldLi = $('.address-list').find('.default-btn').parents('li'), + curLi = $('.address-list').find('li[addressId=' + addrId + ']'), + curBtn = curLi.find('.set-default-btn'); + + $.getJSON('/home/address/defaultAddress?id=' + addrId, function(jsonData) { + if (jsonData.code === 200) { + oldBtn.attr('class', 'btn-c3 set-default-btn'); + oldLi.removeClass('preferred'); + oldBtn.html('<span>设为常用地址</span>'); + curBtn.attr('class', 'btn-c2 default-btn'); + oldBtn.html('<span>设为常用地址</span>'); + curLi.addClass('preferred'); + } else { + active = new Alert('设置失败'); + active.show(); + } + }); + } +}; + +if (!Array.prototype.indexOf) { + Array.prototype.indexOf = function(obj, start) { + var i, + j; + + for (i = (start || 0), j = this.length; i < j; i++) { + if (this[i] === obj) { + return i; + } + } + + return -1; + }; +} + +// 获取地址id +function getAddressId(dom) { + var li = dom.parents('.address-content'), + id = li.attr('addressId'); + + return id; +} + +//表单焦点显示 +function focusAction(opt) { + var msg = ''; + + if (opt.inputName === 'addressName') { + msg = '真实姓名在2到5个汉字之间'; + } + + if (opt.inputName === 'address') { + msg = '请填写详细地址'; + } + + if (opt.inputName === 'zipCode') { + msg = '请输入收货人所在地邮编号'; + } + + if (opt.inputName === 'phone') { + msg = '格式例如:0577-88888888'; + } + + if (opt.inputName === 'mobile') { + msg = '请输入手机号,如1360000000'; + } + + if (opt.inputName === 'email') { + msg = '用来接收订单提醒邮件,便于您及时了解订单状态'; + } + + opt.$checkInfo.removeClass('form-prompt').addClass('form-focus').html(msg); +} + +//表单失去焦点显示 +function blurAction(opt) { + var regular = '', + res = true, + msg = '输入正确', + domClass = 'form-info form-success', + value = opt.val; + + if (opt.inputName === 'addressName') { + regular = /^[\u4e00-\u9fa5]{2,5}$/; + + if (opt.len < 1 || opt.len > 12) { + msg = '真实姓名在2到5个汉字之间,请确认'; + res = false; + domClass = 'form-info form-error'; + } else if (regular.test(opt.val) === false) { + msg = '真实姓名至少2个中文,最多5个中文'; + res = false; + domClass = 'form-info form-error'; + } + } + + if (opt.inputName === 'address') { + if (opt.len < 2) { + msg = '请填写详细地址'; + res = false; + domClass = 'form-info form-error'; + } + } + + if (opt.inputName === 'zipCode') { + regular = /^[0-9]{6}$/; + + if (opt.len === 0) { + msg = '请输入收货人所在地邮编号'; + res = false; + domClass = 'form-info form-error'; + } else if (regular.test(opt.val) === false) { + msg = '你输入的邮编式不正确'; + res = false; + domClass = 'form-info form-error'; + } + } + + if (opt.inputName === 'phone') { + regular = /^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$/; + + if (opt.len === 0) { + msg = '你真的不想留联系电话了吗?'; + res = true; + domClass = 'form-info form-success'; + } else if (regular.test(opt.val) === false) { + msg = '你输入的联系电话格式不正确'; + res = false; + domClass = 'form-info form-error'; + } + } + + if (opt.inputName === 'mobile') { + regular = /^1[3|4|5|8|7][0-9]{9}$/; + + if (opt.len !== 11) { + msg = '手机号码必须是11位的,请确认'; + res = false; + domClass = 'form-info form-error'; + } else if (regular.test(opt.val) === false) { + msg = '您输入的手机号格式不正确'; + res = false; + domClass = 'form-info form-error'; + } + } + + if (opt.inputName === 'email') { + regular = '^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|' + + 'edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$'; + + if (value.match(regular) === null || opt.len === 0) { + msg = '你输入的邮件地址格式不正确'; + res = false; + domClass = 'form-info form-error'; + } + } + + opt.$checkInfo.removeClass().addClass(domClass).html(msg); + return res; +} + + +// 地址表单验证 +function checkAddressForm(dom, action) { + var val = dom.val(), + $domParent = dom.parent(), + opt = { + val: val, + len: val.length, + $domParent: dom.parent(), + $checkInfo: $domParent.find('span'), + inputName: dom.attr('name') + }; + + if (action === 'focus') { + focusAction(opt); + } + + if (action === 'blur') { + return blurAction(opt); + } +} + +function fullOneValidator() { + var phone = $('#phone').next(), + mobile = $('#mobile').next(); + + if (mobile.hasClass('form-success') && !phone.hasClass('form-error') && $('#phone').val().length === 0) { + phone.removeClass().addClass('form-prompt form-info').html('请输入你的联系电话,可以为空哦'); + return true; + } else if (phone.html() === '输入正确' && !mobile.hasClass('form-error') && $('#mobile').val().length === 0) { + mobile.removeClass().addClass('form-prompt form-info').html('填写手机号便于接收发货和收货通知'); + return true; + } else if (!mobile.hasClass('form-success') && phone.html() !== '输入正确') { + phone.removeClass().addClass('form-success form-info').html('你真的不想留联系电话了吗?'); + mobile.removeClass().addClass('form-prompt form-info').html('填写手机号便于接收发货和收货通知'); + $('#mobile').focus(); + return false; + } +} + +//校验所有内容 +function checkAllForm() { + var arr = []; + + $.each($input, function(key, item) { + arr.push(checkAddressForm($(item), 'blur')); + }); + + arr.push(fullOneValidator()); + + $.each($('.form-info'), function(key, item) { + if ($(item).hasClass('form-error')) { + $(item).prev().focus(); + return false; + } + }); + + + if (arr.indexOf(false) === -1) { + return true; + } else { + return false; + } +} + +$(document).on('click', '.set-default-btn', function() { + var id = getAddressId($(this)); + + address.setDefaultAddr(id); +}); + +$del.on('click', function() { + var id = getAddressId($(this)); + + address.delAddr(id); +}); + +$edit.on('click', function() { + var id = getAddressId($(this)); + + address.editAddr(id); + $('#btn-reset').show(); +}); + +$input.on('focus', function() { + checkAddressForm($(this), 'focus'); +}); + +$input.on('blur', function() { + checkAddressForm($(this), 'blur'); +}); + +$('#address-info').on('click', function() { + if (checkAllForm()) { + address.saveAddr(); + } +}); + +$(document).ready(function() { + regionCode.loadAllData( + 0, + { + provinceDomId: 'province', + cityDomId: 'city', + areaDomId: 'areaCode' + } + ); + + address.clearAddrForm(); + + $('#btn-reset').click(function() { + address.clearAddrForm(); + }); +}); +}); +define("js/help/entry", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 帮助中心页js打包入口文件 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/3/23 + */ + +require("js/help/search"); +}); +define("js/help/search", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 我的信息 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/3/23 + */ +var $ = require("jquery"), + Handlebars = require("handlebars"); + +var $searchMain = $('.search-content'), + $dialog = $('#help-dialog-widget'), + $dialogBg = $('#help-dialog-bg'); + +var docW = $(document).width(), + winH = $(window).height(); + +var tpl = + '<div class="dialog-titlebar">' + + '<span class="dialog-close-btn"></span>' + + '</div>' + + '<div class="dialog-content">' + + '<p class="ask">问:<br>{{ask}}</p>' + + '<p class="answer">答:<br>{{answer}}</p>' + + '</div>'; + +var tplFn = Handlebars.compile(tpl); + +$searchMain.on('click', '.faqs', function() { + var data = $(this).data(), + top = $(document).scrollTop(); + + $dialog.html(tplFn(data)).removeClass('hide'); + $dialogBg.removeClass('hide'); + + $dialog.html(tplFn(data)).css({ + top: top + (winH - $dialog.outerHeight()) / 2, + left: (docW - $dialog.outerWidth()) / 2 + }); +}); + +$dialog.on('click', '.dialog-close-btn', function() { + $dialog.addClass('hide'); + $dialogBg.addClass('hide'); +}); +}); +define("js/order/ensure", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * @description: 订单保存 + * @time: 2015/12/21 + */ + +var $ = require("jquery"); + +var address = require("js/order/address"); + +var dialog = require("js/common/dialog"); + +var accMul = function(arg1, arg2) { + var m = 0, + s1 = arg1.toString(), + s2 = arg2.toString(); + + try { + m += s1.split('.')[1].length; + } catch (e) { + } + try { + m += s2.split('.')[1].length; + } catch (e) { + } + return Number(s1.replace('.', '')) * Number(s2.replace('.', '')) / Math.pow(10, m); +}; + +var Order = { + /*业务数据(人民币)*/ + Data: { + product: 0, //商品价格 + activity: 0, //活动 + carriage: 0, //邮费 + juan: 0, //优惠卷 + yohocoin: 0 //YOHO币 + }, + /*view 交互*/ + UI: { + e: { + $pan: $('.pan'), + $jc: $('#juancode'), + $bp: $('#biprice'), + $statistics: $('li', '.play-total'), + $tobi: $('p em', '.play-bi-pan .play-pan'), + $cancel: $('.cancel', '.btn-group'), + $total: $('em', '.to-play'), + $tbody: $('table tbody', '.pay-wapper'), + + //请填写并核对一下信息 + $orderSelectionSave: $('.address-list h2 span'), + $addAddress: $('.add-address'), + $addressManage: $('.address-manage'), + $spanPayTypeLegend: $('span.pay-type-legend'), + $supportType: $('.support-type'), + $existAddressListWrap: $('.exist-address-list'), + $existAddressList: $('.exist-address-list').find('li'), + $existAddress: $('.exist-address-list').find('input[name="exist-address"]'), + $payTimeModify: $('.pay-time-modify'), + $switchPayModify: $('.switch-pay-modify'), + $modityPayInfo: $('.modity-pay-info'), + $payTotal: $('.play-total'), + $toPay: $('.to-play em'), + $redEnvelopes: $('.red-envelopes'), + $useEnvelopes: $('.use-envelopes'), + $hasEnvelopes: $('.has-envelopes span'), + $useEnvelopesInput: $('.use-envelopes').find('input'), + $expressFee: $('.express-fee') + }, + init: function() { + var e = this.e, + d = Order.Data, + c = Order.Common; + + //初始化产品价格(表格中的价格) + e.$tbody.find('tr').each(function(index) { + + var td = $(this).find('td'); + var len = e.$tbody.find('tr').length; + var subtotal = parseFloat(td.eq(1).html()) * parseInt(td.eq(3).html()); + + td.eq(1).html('¥' + td.eq(1).html()); + + if (td.hasClass('xforone')) { + td.eq(4).find('del').html('¥' + c.strFixed(subtotal)); + subtotal = 0; + } else { + td.eq(4).html('¥' + c.strFixed(subtotal)); + } + d.product += subtotal; + if (!index) { + td.last().attr('rowspan', len); + } else { + td.last().remove(); + } + if (index === len - 1) { + e.$tbody.find('tr').eq(0).find('td').last().html('<strong>¥' + c.strFixed(d.product) + '</strong>'); + } + }); + + // 使用优惠券、使用yoho币点击展开 + e.$pan.find('dt').click(function() { + + var pan = $(this).parent('dl.pan'); + + if (pan.find('dd').is(':hidden')) { + c.winShow(pan); + + $(this).addClass('active'); + } else { + c.winHide(pan); + + $(this).removeClass('active'); + } + + }); + + //请填写并核对一下信息 + e.$orderSelectionSave.click(function() { + var i = 0, + $addressLi = $('.exist-address-list li'), + liLen = $addressLi.length, + notSelect = 0; + + if (!$(this).attr('expand')) { + + $(this).attr('expand', 'expand').text('[不保存并关闭]'); + + $('.exist-address-list li').removeClass('hide'); + + $('.save-btn').removeClass('hide'); + + e.$existAddressListWrap.addClass('address-expand'); + + if (liLen === 1) { + e.$addressManage.removeClass('hide'); + } + + } else { + + for (i = 0; i < liLen; i++) { + + if ($addressLi.eq(i).hasClass('address_select')) { + notSelect++; + } + + if (!$addressLi.eq(i).hasClass('address_select')) { + $addressLi.eq(i).addClass('hide'); + } + } + + if (notSelect === 0) { + $('.exist-address-list li:not(".use-new-address")').removeClass('hide'); + + $('.use-new-address input').removeAttr('checked'); + } + + $('.address-list-inner li.address_select input').attr('checked', 'checked'); + $('.address-list-inner li').removeClass('active'); + $('.address-list-inner li.address_select').addClass('active'); + + $(this).removeAttr('expand').text('[修改]'); + + $('.save-btn').addClass('hide'); + + e.$existAddressListWrap.removeClass('address-expand'); + + e.$addressManage.addClass('hide'); + } + + }); + + + //支付及送货时间 + e.$switchPayModify.click(function() { + + if (e.$payTimeModify.hasClass('hide')) { + e.$payTimeModify.removeClass('hide'); + e.$modityPayInfo.addClass('hide'); + $(this).text('[不保存并关闭]'); + } else { + e.$payTimeModify.addClass('hide'); + e.$modityPayInfo.removeClass('hide'); + $(this).text('[修改]'); + + e.$payTimeModify.find('input[name="pay-type"]').filter('.checked').attr('checked', 'checked'); + e.$payTimeModify.find('input[name="pay-time-radio"]').filter('.checked').attr('checked', 'checked'); + e.$payTimeModify.find('input[name="call-me"]').filter('.checked').attr('checked', 'checked'); + } + }); + + e.$spanPayTypeLegend.click(function() { + $(this).toggleClass('active'); + + e.$supportType.toggleClass('hide'); + }); + + $(document).on('click', '.exist-address-list li', function() { + + $('.exist-address-list li').removeClass('active'); + + $(this).addClass('active'); + + $(this).find('input').attr('checked', 'checked'); + + if ($(this).hasClass('use-new-address')) { + e.$addressManage.removeClass('hide'); + + $('.address-manage input').val(''); + + $('.save-btn').removeAttr('data-id'); + + // 0表示获取所有省的列表,'000000'表示无匹配的区域码 + address.newAddress(0, '000000'); + } + }); + }, + + //渲染价格明细 + render: function(data, tips) { + + // 下面这段是在服务端算价格 + var e = this.e, + i, + dArr = data.promotion_formula_list, + packageList = data.package_list, + str = '', + isExpress = ''; + + var tipsStr; + + var envelopesVal; + + if (!!tips) { + tipsStr = tips; + } else { + tipsStr = ''; + } + + for (i = 0; i < dArr.length; i++) { + + if (dArr[i].promotion === '优惠券:') { + dArr[i].promotion = (tipsStr ? tipsStr : '优惠券') + '<span class="juan-modify">[修改]</span>:'; + } + + if (dArr[i].promotion === 'YOHO币:') { + dArr[i].promotion = 'YOHO币<span class="bi-modify">[修改]</span>:'; + } + + if (dArr[i].isExpress) { + isExpress = 'total-express-w'; + } else { + isExpress = ''; + } + + str += '<li class="' + isExpress + '">' + + '<label>' + dArr[i].promotion + '</label>' + + '<em>' + dArr[i].promotion_amount + '</em>' + + '</li>'; + } + + e.$payTotal.html(str); + e.$toPay.html((data.last_order_amount).toFixed(2)); + + //有货币清零状态更新 + $('#biprice').val(accMul(100, data.use_yoho_coin)); + if (~~data.use_yoho_coin === 0) { + $('.errbitip').text(''); + } else { + $('.errbitip').text('抵扣' + data.use_yoho_coin.toFixed(2) + '元'); + } + + envelopesVal = e.$useEnvelopesInput.data('all') - data.use_red_envelopes; + + if (~~data.use_red_envelopes > 0) { + e.$useEnvelopes.find('span').html('-¥' + data.use_red_envelopes.toFixed(2)); + e.$useEnvelopes.find('input').attr('data-use', data.use_red_envelopes); + } else { + e.$useEnvelopes.find('span').html('-¥0.00'); + e.$hasEnvelopes.html('¥' + (e.$useEnvelopesInput.attr('data-all') * 1).toFixed(2)); + e.$redEnvelopes.removeClass('active'); + e.$useEnvelopesInput.prop('checked', false); + } + e.$hasEnvelopes.html('¥' + envelopesVal.toFixed(2)); + + if (packageList) { + e.$expressFee.each(function(index, expressCost) { + var orignCost = packageList[index].shopping_orig_cost, + disCount = packageList[index].shopping_cut_cost, + realCost = packageList[index].shopping_cost; + + var cost = parseInt(orignCost) === 0 ? + '运费:¥0.00元' : + '运费:¥' + realCost + '元(原价' + orignCost + '元,优惠' + disCount + ')元'; + + $(expressCost).text(cost); + }); + } + } + }, + /*公共方法*/ + Common: { + enterNUM: function(str1, str2) { + str1 = str1.replace(/[^\d]/g, ''); + if (str1 && str2) { + str1 = parseInt(str1); + str2 = parseInt(str2); + if (str1 > str2) { + str1 = str2; + } + } + return str1; + }, + calucate: function() { + var p = Order.Data; + + $.each(Order.Data, function(key, index) { + p[key] = parseFloat(Order.Data[key]); + }); + return p.product - p.activity + p.carriage - p.juan - p.yohocoin; + }, + winShow: function(pan) { + pan.find('dt').show(); + pan.find('dd').show(); + if (pan.attr('class').match(/(-bi-)|(-juan-)/g)) { + pan.find('dt').hide(); + } + }, + winHide: function(pan) { + pan.find('dt').show(); + pan.find('dd').hide(); + + /*if (pan.hasClass('play-juan-pan') && $('.juan-modify').length > 0) { + pan.find('dt').hide(); + } + + if (pan.hasClass('play-bi-pan') && $('.bi-modify').length > 0) { + pan.find('dt').hide(); + }*/ + }, + strFixed: function(str) { + return parseFloat(str).toFixed(2); + } + }, + /*业务逻辑*/ + Bll: { + e: { + $juanok: $('#juansubmit'), + $juantip: $('.errtip', '.play-juan-pan'), + $biok: $('#bisubmit'), + $carriageGroup: $('input[name="carriagegroup"]'), + $selectExpress: $('.express-list input'), + $bp: $('#biprice'), + $errorTip: $('.errbitip'), + $useEnvelopes: $('.use-envelopes'), + $hasEnvelopes: $('.has-envelopes span'), + $useEnvelopesInput: $('.use-envelopes').find('input'), + $redEnvelopes: $('.red-envelopes'), + $loading: $('.loading') + }, + init: function() { + var e = this.e, + u = Order.UI, + options, + c = Order.Common, + envelopesVal; + + function getSelectData(callback) { + + var $juangroupInput = $('.play-juan.is-select input[name="juangroup"]:checked'); + var expressVal = $('.express-list input[name="carriagegroup"]:checked').val(); + var biVal = $('#biprice.is-select').val(); + var codeVal = $juangroupInput.val(); + var cartType = $('.address-manage').attr('cart-type'); + var redEnvelopes = $('.use-envelopes input:checked').attr('data-use'); + var resultData; + + codeVal = codeVal ? codeVal : $juangroupInput.closest('li').find('#juancode').val(); + + resultData = { + cartType: cartType, + deliveryWay: expressVal, + couponCode: codeVal, + yohoCoin: biVal + + //redEnvelopes: e.$useEnvelopesInput.length > 0 ? ~~e.$hasEnvelopes.text().substring(1) : '0' + }; + + if (!!redEnvelopes) { + resultData.redEnvelopes = redEnvelopes; + } + + callback(resultData); + + } + + // 选择快递 + e.$selectExpress.click(function() { + + var expressId = $(this).val(); + + e.$loading.show(); + + getSelectData(function(d) { + + d.deliveryWay = expressId; + + options = { + type: 'POST', + url: '/cart/index/orderCompute', + data: d, + success: function(data) { + e.$loading.hide(); + + if (data.code === 200) { + u.render(data.data); + + if (expressId === '1') { + + $('.express-list.sf').addClass('hide'); + } else if (expressId === '2') { + $('.express-list.sf').removeClass('hide'); + } + } else { + new dialog.Alert(data.message).show(); + } + } + }; + + $.ajax(options); + }); + }); + + //点击 优惠卷支付 确认按钮 + e.$juanok.click(function() { + + var pan = $(this).parents('dl.pan'); + + var juanText = ''; + + $('.play-juan').addClass('is-select'); + + getSelectData(function(d) { + + var code = d.couponCode; + + if (!code) { + + e.$juantip.html('请选择或填写一个优惠券'); + $('.play-juan').removeClass('is-select'); + + } else { + + e.$loading.show(); + + options = { + type: 'POST', + url: '/cart/index/orderCompute', + data: d, + success: function(data) { + + e.$loading.hide(); + + if (data.code === 200) { + + juanText = $('.play-juan input[value="' + code + '"]').next().text(); + u.render(data.data, juanText); + + //$('#juancode').val(code); + + c.winHide(pan); + e.$juantip.html(''); + + //$('.play-juan-pan dt').hide(); + + } else { + e.$juantip.html(data.message); + $('.play-juan').removeClass('is-select'); + } + } + }; + + $.ajax(options); + } + }); + + }); + + // 优惠券修改 + $(document).on('click', '.juan-modify', function() { + + + var $pan = $('.play-juan-pan'); + + c.winShow($pan); + }); + + e.$biok.click(function() { + + var pan = $(this).parents('dl.pan'); + var juanText; + + $('#biprice').addClass('is-select'); + + getSelectData(function(d) { + + if (!!d.couponCode) { + juanText = $('.play-juan input[value="' + d.couponCode + '"]').next().text(); + } + + //if (d.yohoCoin * 1 === 0) { + if (!/^\d+$/.test(d.yohoCoin + '') || d.yohoCoin * 1 === 0) { + $('.errbitip').html('请输入一个正整数'); + $('#biprice').removeClass('is-select'); + + } else if (d.yohoCoin * 1 > $('.play-pan em').text() * 1) { + + $('.errbitip').html('您的YOHO币不足'); + $('#biprice').removeClass('is-select'); + + } else { + e.$loading.show(); + + options = { + type: 'POST', + url: '/cart/index/orderCompute', + data: d, + success: function(data) { + + e.$loading.hide(); + + if (data.code === 200) { + + u.render(data.data, juanText); + c.winHide(pan); + + //$('.play-bi-pan dt').hide(); + + } else { + $('.errbitip').html(data.message); + $('#biprice').removeClass('is-select'); + } + } + }; + + $.ajax(options); + } + + }); + }); + + // 修改yoho币 + $(document).on('click', '.bi-modify', function() { + + + var $pan = $('.play-bi-pan'); + + c.winShow($pan); + }); + + e.$bp.keyup(function() { + + var val = $(this).val(); + + //if (val * 1 < 0 || val.indexOf('.') > 0) { + if (!/^\d+$/.test(val + '')) { + e.$errorTip.html('请输入一个正整数'); + } else if (val * 1 > $(this).data('bi') * 1) { + e.$errorTip.html('您的YOHO币不足'); + } else { + e.$errorTip.html('抵扣' + (val / 100).toFixed(2) + '元'); + } + }); + + // 取消yoho 币 + $('.cancel-bi').click(function() { + + + var $pan = $('.play-bi-pan'); + var juanText; + + $('.errbitip').html(''); + + if ($('#biprice').hasClass('is-select')) { + + e.$loading.show(); + + getSelectData(function(d) { + + d.yohoCoin = 0; + + if (!!d.couponCode) { + juanText = $('.play-juan input[value="' + d.couponCode + '"]').next().text(); + } + + options = { + type: 'POST', + url: '/cart/index/orderCompute', + data: d, + success: function(data) { + + e.$loading.hide(); + + if (data.code === 200) { + u.render(data.data, juanText); + c.winHide($pan); + + $('#biprice').val('0'); + + //$('.play-bi-pan dt').hide(); + $('#biprice').removeClass('is-select'); + + $('.errbitip').html(''); + + // $('.use-envelopes input').attr('checked', 'checked'); + // $('.red-envelopes').addClass('active'); + + } else { + $('.errbitip').html(data.message); + } + } + }; + + $.ajax(options); + }); + + } else { + c.winHide($pan); + $('#biprice').val('0'); + } + + }); + + // 取消优惠券 + $('.cancel-code').click(function() { + + var $pan = $('.play-juan-pan'); + + if ($('.play-juan').hasClass('is-select')) { + + e.$loading.show(); + + getSelectData(function(d) { + + d.couponCode = ''; + + options = { + type: 'POST', + url: '/cart/index/orderCompute', + data: d, + success: function(data) { + + e.$loading.hide(); + + if (data.code === 200) { + u.render(data.data); + + c.winHide($pan); + $('.play-juan').removeClass('is-select'); + + $('#juancode').val('') + .siblings('input[name="juangroup"]').attr('checked', 'checked'); + + // $('.use-envelopes input').attr('checked', 'checked'); + // $('.red-envelopes').addClass('active'); + + } else { + e.$juantip.html(data.message); + } + } + }; + + $.ajax(options); + }); + } else { + c.winHide($pan); + } + }); + + + // 红包 + envelopesVal = e.$useEnvelopesInput.data('all') - e.$useEnvelopesInput.data('use'); // 剩余的红包 + e.$hasEnvelopes.text('¥' + envelopesVal.toFixed(2)); + e.$useEnvelopes.find('input').click(function() { + + var $this = $(this), + juanText; + + e.$loading.show(); + + $this.attr('disabled', 'disabled'); + + getSelectData(function(d) { + + if (!!$this.attr('checked')) { + + //d.redEnvelopes = $this.val(); + d.redEnvelopes = $this.data('use'); + + } else { + + d.redEnvelopes = 0; + } + + juanText = $('.play-juan input[value="' + d.couponCode + '"]').next().text(); + + options = { + type: 'POST', + url: '/cart/index/orderCompute', + data: d, + success: function(data) { + e.$loading.hide(); + + if (data.code === 200) { + u.render(data.data, juanText); + + $this.removeAttr('disabled'); + + if (!!$this.attr('checked')) { + e.$redEnvelopes.addClass('active'); + } else { + e.$useEnvelopes.find('span').html('-¥0.00'); + e.$hasEnvelopes.html('¥' + ($this.attr('data-all') * 1).toFixed(2)); + e.$redEnvelopes.removeClass('active'); + } + } else { + + new dialog.Alert(data.message).show(); + } + } + }; + + $.ajax(options); + }); + + }); + + + //发票抬头和备注字数限制 + function limitStrLen($obj, len) { + + var $this = $obj; + + $this.keyup(function() { + + if ($this.val().length > len) { + + $this.val($this.val().substr(0, len)); + } + }); + } + + limitStrLen($('#piaodesc'), 30); + limitStrLen($('#notedesc'), 100); + } + } +}; + +Order.Data.activity = 0; +Order.Data.carriage = 0; + +Order.UI.init(); +Order.Bll.init(); + + +address.getUserAddressList(); + +// 0表示获取所有省的列表,'000000'表示无匹配的区域码 +address.newAddress(0, '000000'); +address.modifyAddress(); +address.saveAddress(); + +//不同订单包裹提示 + +$('.why').click(function() { + $('#differentBag').show(); + return false; + +}); +$('#differentBag').click(function() { + return false; +}); +$(document).click(function() { + $('#differentBag').hide(); +}); + +//订单包裹左右切换 +function lunBo($pre, $next, $ul, $iWidth) { + var i = 1, + j = 1; + + var iSpeed = 0, + isMoving = false; + + $pre.click(function() { + if (isMoving) { + return; + } + + if ($ul.css('left') === '0px') { + iSpeed = 0; + + } else { + iSpeed += j * $iWidth; + isMoving = true; + } + $ul.stop().animate({ + left: iSpeed + }, 300, function() { + isMoving = false; + }); + }); + $next.click(function() { + var $largeLeft = $ul.parent().width() - $ul.width() + 'px'; + + if (isMoving) { + return; + } + + if ($ul.css('left') === $largeLeft) { + $ul.css('left', $largeLeft); + } else { + iSpeed += -i * $iWidth; + isMoving = true; + } + + $ul.stop().animate({ + left: iSpeed + }, 300, function() { + isMoving = false; + }); + }); +} + + + +//订单分类 +$('.bag').find('ul').each(function() { + var $pre = $(this).parent().parent().find('.pre'); + var $next = $(this).parent().parent().find('.next'); + + var $iWidth = $(this).find('li').eq(0).width(); + var $length = $(this).find('li').size(); + var $ulWidth = $iWidth * $length; + + $(this).css('width', $ulWidth); + if ($length > 5) { + $pre.show(); + $next.show(); + lunBo($pre, $next, $(this), $iWidth); + } else { + $pre.hide(); + $next.hide(); + } +}); + +}); +define("js/order/address", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * @description: 地址管理 + * @author: chenglong.wang@yoho.cn + */ + +var $ = require("jquery"); +var dialog = require("js/common/dialog"); + + +var isProvinceChecked = false; + +var $addressManage = $('.address-manage'), + $province = $addressManage.find('.text-input[name="province"]'), + $city = $addressManage.find('.text-input[name="city"]'), + $county = $addressManage.find('.text-input[name="county"]'), + $selectList = $addressManage.find('.text-input[name="province"], .text-input[name="city"]'), + $addressList = $('.address-list'), + $name = $addressManage.find('.text-input[name="name"]'), + $phone = $addressManage.find('.text-input[name="phone"]'), + $mail = $addressManage.find('.text-input[name="mail"]'), + $address = $addressManage.find('.text-input[name="address"]'), + $code = $addressManage.find('.text-input[name="code"]'), + $saveBtn = $('.save-btn'), + $telCode = $addressManage.find('.text-input[name="tel-code"]'), + $tel = $addressManage.find('.text-input[name="tel"]'), + $useNewAddress = $('.use-new-address'), + $existAddressList = $('.exist-address-list'), + $loading = $('.loading'), + $orderEditMain = $('#order-edit-main'); + +var cartType = $addressManage.attr('cart-type'); + +$loading.show(); + +// 构建select下拉选项 +function structureOption($obj, data, selectId) { + + var i, + optionHtml = '', + defaultOption, + isStar = ''; + + for (i = 0; i < data.length; i++) { + + if (data[i].is_support_express === 'Y') { + isStar = '*'; + } else { + isStar = ''; + } + + if (data[i].id === selectId) { + optionHtml += '<option selected value="' + data[i].id + '">' + isStar + data[i].caption + '</option>'; + } else { + optionHtml += '<option value="' + data[i].id + '">' + isStar + data[i].caption + '</option>'; + } + } + + + if ($obj.attr('name') === 'province') { + defaultOption = '<option value="0">请选择省份</option>'; + } else if ($obj.attr('name') === 'city') { + defaultOption = '<option value="0">请选择城市</option>'; + + } else if ($obj.attr('name') === 'county') { + defaultOption = '<option value="0">请选择区县</option>'; + } + + $obj.html(defaultOption + optionHtml); +} +/** + * @description: 改函数会返回地址信息 + * d {Object} type: 'getProvince'获取省 type: 'getCity'获取城市 type: 'getCounty'获取县 + * id: 0 && type: 'getProvince' 获取所有省,默认没有选中项 + * id !== 0 && type: 'getProvince' 获取所有省,默认选中用户所在的省 + */ +function getAddress(d, callback) { + + var $obj; + var selectId = d.selectId; + + if (d.type === 'getProvince') { + + //url = 'getProvince'; + $obj = $province; + } else if (d.type === 'getCity') { + + //url = 'getCity'; + $obj = $city; + } else if (d.type === 'getCounty') { + + //url = 'getCounty'; + $obj = $county; + } + + $.ajax({ + type: 'GET', + url: '/cart/index/getAreaList', + dataType: 'json', + data: { + id: d.id * 1 + } + }).then(function(d) { + + structureOption($obj, d.data, selectId); + + if (typeof callback === 'function') { + callback(); + } + + }); +} + +//手机号码****处理 +function setPhoneStar(pn) { + return pn.replace(/^(\d{3}).*(\d{4})$/, '$1****$2'); +} + +// 修改地址时把用户信息带过来 +function getUserInfo($obj) { + + $name.val($obj.attr('data-name')); + $name.attr('data-id', $obj.attr('data-id')); + $address.val($obj.attr('data-addressDesc')); + $phone.val($obj.attr('data-mobile')); + $mail.val($obj.attr('data-email')); + $code.val($obj.attr('data-zipcode')); + $telCode.val($obj.attr('data-phoneCode')); + $tel.val($obj.attr('data-phoneNum')); +} + +// 更新地址列表状态 +function refreshAddressStatus() { + $useNewAddress.removeClass('active'); + $existAddressList.find('li:not(".active")').addClass('hide'); + $existAddressList.find('li.active').addClass('address_select'); + $addressManage.addClass('hide'); + $saveBtn.addClass('hide').removeAttr('data-id'); //清除data-id + $existAddressList.removeClass('address-expand'); + $('.address-list h2 span').text('[修改]'); +} + +//获取用户已经存在的地址列表 +exports.getUserAddressList = function() { + + var addressData, + i, + addressStr = '', + isChecked = '', + isHide = '', + addressText = '', + hasDefault = 0; + + $.ajax({ + type: 'GET', + url: '/cart/index/getAddress', + dataType: 'json' + }).then(function(d) { + + $loading.hide(); + + if (d.code === 200) { + + addressData = d.data.list; + + if (!addressData) { + + // 新用户引导 + if (!!$orderEditMain.attr('data-new')) { + + $saveBtn.addClass('new-user-btn').html('下一步:选择支付及送货时间'); + + $('.pay-btn').addClass('new-user-pay').html('下一步:发票和备注'); + + $('.switch-pay-modify').html(''); + + } + + $addressList.find('>h2').find('span').click(); + + $('.exist-address-list li').click(); + + $('.use-new-address').removeClass('active'); + + return; + + } + + for (i = 0; i < addressData.length; i++) { + + if (addressData[i].checked) { + + isChecked = 'checked'; + isHide = 'active address_select'; + hasDefault++; + addressText = '默认地址'; + + } else { + isChecked = ''; + isHide = 'hide'; + addressText = '设为默认地址'; + } + + addressStr += + '<li data-id="' + addressData[i].id + '" class="' + isHide + + '" data-express="' + addressData[i].isSupport + '">' + + '<input data-name="' + addressData[i].user + + '" data-areaCode="' + addressData[i].areaCode + + '" data-addressDesc="' + addressData[i].addressDesc + + '" data-mobile="' + addressData[i].mobile + + '" data-phoneNum="' + addressData[i].phoneNum + + '" data-phoneCode="' + addressData[i].phoneCode + + '" data-zipCode="' + addressData[i].zipCode + + '" data-email="' + addressData[i].email + + '" class="radio" type="radio" name="address" ' + isChecked + ' />' + + '<label for="">' + + '<strong>' + addressData[i].user + '</strong>' + addressData[i].address + + '<a href="javascript:void(0);" class="default-address">' + addressText + '</a>' + + '<div class="order-modify-btn">' + + '<span class="address-modify">[修改]</span>' + + '<span class="address-del">[删除]</span>' + + '</div>' + + '</label>' + + '</li>'; + } + + $('.use-new-address').before($(addressStr)); + + //说明用户的地址列表没有默认地址 + if (hasDefault === 0) { + + //没有默认地址则把所有地址都显示出来 + //$('.exist-address-list li:not(".use-new-address")').removeClass('hide'); + $('.address-list h2 span').click(); + } + + if ($('.active.address_select').attr('data-express') === 'N') { + $('.express-list input[name="carriagegroup"][value="2"]').attr('disabled', 'disabled'); + $('.express-list input[name="carriagegroup"][value="1"]').attr('checked', 'checked'); + $('.express-list.sf').addClass('hide'); + $('.is-sup').removeClass('hide'); + } else { + $('.express-list input[name="carriagegroup"][value="2"]').removeAttr('disabled'); + $('.express-list.sf').removeClass('hide'); + $('.is-sup').addClass('hide'); + } + + } + + }); +}; + +/* + * 添加地址&修改地址 + * id: 根据id获取省市区列表 + * code: 根据code确定是否选中省市区 + */ +exports.newAddress = function(id, code) { + + var pId = id || 0; //如果没有传id则获取所有省列表 + + var addressCodeReg = /[0-9]{2}/gi; + + var codeId = !!code && code.match(addressCodeReg); + + //获取省 + getAddress({ + id: pId, + type: 'getProvince', + selectId: codeId[0] + }, function() { + + var provinceId = $province.val(); + + if (provinceId !== '0') { + + //如果获取的省有默认选中项则获取市 + getAddress({ + id: provinceId, + type: 'getCity', + selectId: '' + codeId[0] + codeId[1] + }, function() { + + var cityId = $city.val(); + + //如果获取的市有默认选中项则获取县 + if (cityId !== '0') { + getAddress({ + id: cityId, + type: 'getCounty', + selectId: code + }); + } + }); + } else { + $addressManage.find('select[name="city"]').html('<option value="0">请选择城市</option>'); + $addressManage.find('select[name="county"]').html('<option value="0">请选择区县</option>'); + } + }); + + // 发生change事件时获取下一级地址 + $selectList.change(function() { + + var $this = $(this); + + if ($this.attr('name') === 'province') { + + if ($this.val() === '0') { + $addressManage.find('select[name="city"]').html('<option value="0">请选择城市</option>'); + $addressManage.find('select[name="county"]').html('<option value="0">请选择区县</option>'); + } else { + getAddress({ + id: $this.val(), + type: 'getCity' + }, function() { + isProvinceChecked = true; + }); + $addressManage.find('select[name="county"]').html('<option value="0">请选择区县</option>'); + } + } + + if ($this.attr('name') === 'city' && isProvinceChecked) { + + if ($this.val() === '0') { + $addressManage.find('select[name="county"]').html('<option value="0">请选择区县</option>'); + } else { + getAddress({ + id: $this.val(), + type: 'getCounty' + }); + } + } + }); +}; + +//修改地址 +exports.modifyAddress = function() { + + $addressList.click(function(event) { + + var $this = $(event.target), + id = $this.closest('li').attr('data-id'), + areaCode = $this.closest('li').find('.radio').attr('data-areaCode'); + + if ($this.hasClass('address-modify')) { + $addressManage.removeClass('hide'); + exports.newAddress(0, areaCode); + getUserInfo($this.closest('li').find('.radio')); + $('.address-list-inner .save-btn').removeClass('hide'); + $saveBtn.attr('data-id', id); + isProvinceChecked = true; + } else if ($this.hasClass('address-del')) { + + $loading.show(); + + $.ajax({ + type: 'POST', + url: '/cart/index/delAddress', + data: { + id: id + } + }).then(function(d) { + + $loading.hide(); + + if (d.code === 200) { + + $this.closest('li').remove(); + } else { + new dialog.Alert(d.message).show(); + } + }).fail(function() { + + //todo + }); + } else if ($this.hasClass('default-address') && !$this.parents('li').hasClass('address_select')) { + + $loading.show(); + + // 设为默认地址 + $.ajax({ + type: 'post', + url: '/cart/index/setDefaultAddress', + data: { + id: id + } + }).then(function(d) { + + $loading.hide(); + + if (d.code === 200) { + + $('.exist-address-list li').removeClass('address_select') + .find('.default-address').text('设为默认地址'); + $this.parents('li').addClass('address_select'); + $this.text('默认地址'); + + } else { + new dialog.Alert(d.message).show(); + } + }); + } + }); +}; + +// 保存地址并送到这个地址 +exports.saveAddress = function() { + $saveBtn.click(function() { + + var $this = $(this); + + var name = $name.val(), + province = $province.val(), + city = $city.val(), + county = $county.val(), + address = $address.val(), + phone = $phone.val(), + telCode = $telCode.val(), + tel = $tel.val(), + mail = $mail.val(), + code = $code.val(); + + var provinceText = $province.find('option[value="' + province + '"]').text().replace(/\*/, ''), + cityText = $city.find('option[value="' + city + '"]').text().replace(/\*/, ''), + countyText = $county.find('option[value="' + county + '"]').text().replace(/\*/, ''); + + + var postData = { + consignee: name, + areaCode: county, + address: address, + email: mail, + mobile: phone, + zipCode: code, + phoneCode: telCode, + phoneNum: tel + }; + + var addressStr; + var $modifyLi; + var hasCheckedAddress; + + var nameReg = /^[\u4e00-\u9fa5]{2,5}$/; + var addressReg = /^[\s\S]{2,100}$/; + var phoneReg = /^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/; + var codeReg = /^[0-9]{6}$/; + var emailReg = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; + var telCodeReg = /^[0-9]{3,5}$/; + var telReg = /^[0-9]{5,10}$/; + + + function hasText(val) { + + if (val === telCode) { + + if (!!val) { + return val + '-'; + } else { + return ' '; + } + + } else { + if (!!val) { + return val + ' '; + } else { + return ' '; + } + } + } + + hasCheckedAddress = $('.exist-address-list li:not(".use-new-address")') + .find('input[name="address"]:checked').length > 0; + + // 说明是送货到这个地址 + if (!$('.add-address').attr('checked') && hasCheckedAddress && !$('.save-btn').attr('data-id')) { + + $('.exist-address-list li').removeClass('address_select'); + $('.exist-address-list li.active').addClass('address_select') + .find('input[name="address"]').attr('checked', 'checked'); + + $('.address-list span').removeAttr('expand'); + + refreshAddressStatus(); + + } + + //if (!!$('.add-address').attr('checked')) { + if (!$('.address-manage').hasClass('hide')) { + + if (!nameReg.test(name)) { + new dialog.Alert('真实姓名至少2个中文,最多5个中文').show(); + return; + } + if (!addressReg.test(address)) { + new dialog.Alert('你输入的地址格式不正确').show(); + return; + } + if (!phoneReg.test(phone)) { + new dialog.Alert('你输入的联系电话格式不正确').show(); + return; + } + + if ((!!telCode && !telCodeReg.test(telCode)) || (!!tel && !telReg.test(tel)) || + (telCodeReg.test(telCode) && !telReg.test(tel)) || + (!telCodeReg.test(telCode) && telReg.test(tel))) { + new dialog.Alert('你输入的电话格式不正确').show(); + return; + } + + if (!!mail && !emailReg.test(mail)) { + new dialog.Alert('你输入的邮箱格式不正确').show(); + return; + } + + if (!!code && !codeReg.test(code)) { + new dialog.Alert('你输入的邮编格式不正确').show(); + return; + } + + // 如果存在data-id说明是修改,否则是新增 + if (!!$saveBtn.attr('data-id')) { + postData.id = $saveBtn.attr('data-id'); + } + + $.ajax({ + type: 'post', + url: '/cart/index/saveAddress', + data: postData + }).then(function(d) { + + var addressData; + + if (d.code === 200) { + + addressData = d.data; + + if (addressData.is_support === 'Y') { + $('.express-list input[name="carriagegroup"][value="2"]').removeAttr('disabled'); + $('.express-list.sf').removeClass('hide'); + $('.is-sup').addClass('hide'); + + } else { + + $('.express-list input[name="carriagegroup"][value="2"]').attr('disabled', 'disabled'); + $('.express-list input[name="carriagegroup"][value="1"]').attr('checked', 'checked'); + $('.express-list.sf').addClass('hide'); + $('.is-sup').removeClass('hide'); + } + + if (!!postData.id) { + + // 修改操作接口没有返回id + addressStr = '<li class="active" data-id="' + postData.id + + '" data-express="' + addressData.is_support + '">' + + '<input data-name="' + postData.consignee + + '" data-areaCode="' + postData.areaCode + + '" data-addressDesc="' + postData.address + + '" data-mobile="' + postData.mobile + + '" data-phoneNum="' + postData.phoneNum + + '" data-phoneCode="' + postData.phoneCode + + '" data-zipCode="' + postData.zipCode + + '" data-email="' + postData.email + + '" checked="checked" class="radio" type="radio" name="address" />' + + '<label>' + + '<strong>' + name + '</strong>' + + '<span>' + provinceText + ' ' + cityText + ' ' + countyText + ' ' + address + + ' ' + hasText(code) + setPhoneStar(phone) + hasText(telCode) + hasText(tel) + '</span>' + + '<a href="javascript:void(0);" class="default-address">设为默认地址</a>' + + '<div class="order-modify-btn">' + + '<span class="address-modify">[修改]</span>' + + '<span class="address-del">[删除]</span>' + + '</div>' + + '</label>' + + '</li>'; + } else { + + //添加操作接口有返回id + addressStr = '<li class="active" data-id="' + addressData.id + + '" data-express="' + addressData.is_support + '">' + + '<input data-name="' + addressData.consignee + + '" data-areaCode="' + addressData.area_code + + '" data-addressDesc="' + addressData.address + + '" data-mobile="' + addressData.mobile + + '" data-phoneNum="' + postData.phoneNum + + '" data-phoneCode="' + postData.phoneCode + + '" data-zipCode="' + addressData.zip_code + + '" data-email="' + addressData.email + + '" checked="checked" class="radio" type="radio" name="address" />' + + '<label>' + + '<strong>' + name + '</strong>' + + '<span>' + provinceText + ' ' + cityText + ' ' + countyText + ' ' + address + + ' ' + hasText(code) + setPhoneStar(phone) + hasText(telCode) + hasText(tel) + '</span>' + + '<a href="javascript:void(0);" class="default-address">设为默认地址</a>' + + '<div class="order-modify-btn">' + + '<span class="address-modify">[修改]</span>' + + '<span class="address-del">[删除]</span>' + + '</div>' + + '</label>' + + '</li>'; + } + + + + // 如果dataID存在说明是修改操作 + if (!!$this.attr('data-id')) { + + $modifyLi = $('.exist-address-list li[data-id="' + $this.attr('data-id') + '"]'); + + $modifyLi.after($(addressStr)).remove(); + } else { + $('.use-new-address').before($(addressStr)); + } + + $('.address-list span').removeAttr('expand'); + + refreshAddressStatus(); + } else { + new dialog.Alert(d.message).show(); + } + }); + } + + if ($('.exist-address-list li').find('input[name="address"]:checked').length === 0) { + new dialog.Alert('请选择一个地址').show(); + return; + } else { + + if ($('.exist-address-list li').find('input[name="address"]:checked') + .closest('li').attr('data-express') === 'N') { + $('.express-list input[name="carriagegroup"][value="2"]').attr('disabled', 'disabled'); + $('.express-list input[name="carriagegroup"][value="1"]').attr('checked', 'checked'); + $('.express-list.sf').addClass('hide'); + $('.is-sup').removeClass('hide'); + } else { + $('.express-list input[name="carriagegroup"][value="2"]').removeAttr('disabled'); + $('.express-list.sf').removeClass('hide'); + $('.is-sup').addClass('hide'); + } + } + + + // 说明需要新用户引导,展开支付及送货时间 + if ($this.hasClass('new-user-btn')) { + + $('.switch-pay-modify').click(); + } + + }); +}; + + + +// 支付及送货时间选择 +$('.pay-time-modify .pay-btn').click(function() { + + var $this = $(this); + + var $payInfoBox = $('.modity-pay-info'), + $payTime = $('.pay-time-modify'), + payTypeVal = $payTime.find('input[name="pay-type"]:checked').val(), + payTypeText = $payTime.find('input[name="pay-type"]:checked').next('label').text(), + payTimeText = $payTime.find('input[name="pay-time-radio"]:checked').next('label').text(), + payTimeVal = $payTime.find('input[name="pay-time-radio"]:checked').val(), + isCall = $payTime.find('input[name="call-me"]:checked').next('label').text(), + callMeVal = $payTime.find('input[name="call-me"]:checked').val(); + + + $loading.show(); + + $.ajax({ + type: 'POST', + url: '/cart/index/orderCompute', + dataType: 'json', + data: { + cartType: cartType, + paymentType: payTypeVal + } + }).then(function(d) { + + $loading.hide(); + + if (d.code === 200) { + + $payInfoBox.find('li').eq(0).find('span').text(payTypeText); + $payInfoBox.find('li').eq(1).find('span').text(payTimeText); + $payInfoBox.find('li').eq(2).find('span').text(isCall); + + $('.pay-time-modify').addClass('hide') + .find('input[name="pay-type"][value=' + payTypeVal + ']').addClass('checked') + .end().find('input[name="pay-time-radio"][value=' + payTimeVal + ']').addClass('checked') + .end().find('input[name="call-me"][value=' + callMeVal + ']').addClass('checked'); + + $('.modity-pay-info').removeClass('hide'); + + $('.switch-pay-modify').text('[修改]'); + + if ($this.hasClass('new-user-pay')) { + + $('.play-piao-pan dd').css({ + + display: 'block' + }); + $('.play-piao-pan dt').addClass('active'); + } + + } else { + new dialog.Alert(d.message).show(); + } + }); +}); + +function getYohoBiList() { + + var $juanUl = $('.play-juan ul'), + juanStr = '', + dLen, + data, + i; + + $.ajax({ + type: 'GET', + dataType: 'json', + url: '/cart/index/getCouponList' + }).then(function(d) { + + if (d.code === 200) { + data = d.data; + dLen = data.length; + + for (i = 0; i < dLen; i++) { + juanStr += '<li>' + + '<input name="juangroup" type="radio" value="' + + data[i].code + '" ' + (data[i].valid ? '' : 'disabled="disabled"') + '>' + + '<label>' + data[i].desc + '</label>' + + '</li>'; + } + + $juanUl.prepend($(juanStr)); + + } + }); +} +getYohoBiList(); + +// 把Y、N转换成bool + +function ytoTrue(val) { + + if (val === 'N') { + return false; + } else { + return true; + } +} + + +// 去支付 +$('.to-play input.submit').click(function() { + + var $this = $(this); + + var addressId = $('.exist-address-list input[name="address"]:checked').closest('li').attr('data-id'), + deliveryTimeId = $('.pay-time-modify input[name="pay-time-radio"]:checked').val(), + deliveryWayId = $('.select-express input[name="carriagegroup"]:checked').val(), + invoiceTitle = $('#piaodesc').val(), + invoiceId = $('#piaotype').val(), + paymentType = $('.pay-time-modify input[name="pay-type"]:checked').val(), + paymentId = $('.pay-time-modify input[name="pay-type"]:checked').data('pay'), + remark = $('#notedesc').val(), + yohoCoin = $('#biprice').val(), + isPreContact = $('.pay-time-modify input[name="call-me"]:checked').val(), + isPrintPrice = $('.play-pan input[name="isPP"]:checked').val(), + redEnvelopes = $('.use-envelopes input:checked').attr('data-use'), + $juangroupInput = $('.play-juan.is-select input[name="juangroup"]:checked'), + codeVal = $juangroupInput.val(), + juanCode = !!codeVal ? codeVal : $juangroupInput.closest('li').find('#juancode').val(); + + $loading.show(); + + if (!!$this.attr('disabled')) { + return; + } + + $this.attr('disabled', 'disabled'); + + $.ajax({ + type: 'POST', + dataType: 'json', + url: '/cart/index/orderSub', + data: { + addressId: addressId, + cartType: cartType, + deliveryTimeId: deliveryTimeId, + deliveryWayId: deliveryWayId, + invoiceTitle: invoiceTitle, + invoiceId: invoiceId, + paymentId: paymentId, + paymentType: paymentType, + remark: remark, + couponCode: juanCode, + yohoCoin: yohoCoin, + isPreContact: ytoTrue(isPreContact), + isPrintPrice: ytoTrue(isPrintPrice), + redEnvelopes: redEnvelopes + } + }).then(function(d) { + + $loading.hide(); + + if (d.code === 200) { + window.location.href = d.data.payUrl; + } else { + new dialog.Alert(d.message).show(); + } + }).always(function() { + $this.removeAttr('disabled'); + }); +}); + +}); +define("js/shopping/pay", ["jquery"], function(require, exports, module){ +/** + * 支付页面 + */ + +//切换选项卡 +var $ = require("jquery"), + $choseTag = $('.mode div'), + $mode = $('.mode'), + $showPayImg = $('#show-pay-img'), + $btnty = $('#btnby'), + $lightBox = $('.light-box'), + $choosePay = $('#choosePay').val(), + $chooseMoid = $('.mode div[id="' + $choosePay + '"]').parent().data('value'), + $showValue = $choosePay ? $chooseMoid : $('.mode').eq(0).data('value'), + $payUrl = $('#payUrl').val(), + $modeData, + activeTab, + imgAlt, + imgSrc, + orderCode, + payment; + +$.jqtab = function(tabtit, tabcon) { + + $(tabtit + ' li').click(function() { + activeTab = $(this).find('a').attr('tab'); + + $(tabtit + ' li').removeClass('thistab'); + $(this).addClass('thistab'); + $(tabcon).hide(); + $('#' + activeTab).fadeIn(); + return false; + }); +}; + + +$.jqtab('#tabs', '.tab-con'); + +//选项卡点击 +function choosed() { + if ($choosePay) { + $('.mode div[id="' + $choosePay + '"]').addClass('choosed-tag').parent().addClass('choose-type'); + } else { + $mode.eq(0).addClass('choose-type').show(); + $mode.eq(0).find('div').addClass('choosed-tag'); + } + $btnty.attr('value', '前往' + $('#' + $chooseMoid).attr('alt')); + $showPayImg.attr('src', $('#' + $chooseMoid).attr('src')); +} + +choosed(); + +$mode.click(function() { + $modeData = $(this).data(); + $showValue = $modeData.value; + imgAlt = $('#' + $showValue).attr('alt'); + imgSrc = $('#' + $showValue).attr('src'); + + $mode.removeClass('choose-type'); + $(this).addClass('choose-type'); + $choseTag.removeClass('choosed-tag'); + $(this).find('.borer-tag').addClass('choosed-tag'); + $btnty.attr('value', '前往' + imgAlt); + $showPayImg.attr('src', imgSrc); + return false; +}); + + +$('.close').click(function() { + $lightBox.hide(); +}); + +$('.change').click(function() { + $lightBox.hide(); +}); + +//支付方式选择按钮 +function getData(payment, orderCode) { + $.ajax({ + type: 'get', + url: '/common/addpaymentinterval', + dataType: 'json', + data: { + orderCode: orderCode, + payment: payment + } + }); +} + +$('#btnby').click(function() { + payment = $('.choose-type').attr('data-id'); + orderCode = $('.order-num').text(); + getData(payment, orderCode); + window.open($payUrl + '?order_code=' + orderCode + '&payment_type=' + $showValue); + $lightBox.show(); +}); + +//发送支付确认 +$('.pay-over').unbind('click').bind('click', function() { + var _this = this; + + $.post('/shopping/pay/sendPay', + { + orderCode: orderCode, + paymentId: payment + }, + function() { + window.location.href = $(_this).data('url'); + } + ); +}); +}); +define("js/pay/wechatqrcode", ["jquery"], function(require, exports, module){ +/** + * 微信支付页面 + */ + +var $ = require("jquery"), + $wOdetail = $('.w-odetail'), + $payHost = $('#payHost').val(), + $paySuccessUrl = $('#paySuccessUrl').val(), + $wPerm = $('.w-p-erm'); + +require("plugin/jquery.qrcode"); + +$wOdetail.click(function() { + $('.w-addrinfo').slideToggle('slow'); + + if ($wOdetail.find('i').hasClass('up')) { + $wOdetail.html('收起详情<i class="down"></i>'); + } else { + $wOdetail.html('订单详情<i class="up"></i>'); + } +}); + +$wPerm.qrcode({ + render: 'table', + text: $wPerm.data('url') +}); + +function checkPayStatus() { + $.ajax({ + url: $payHost, + dataType: 'jsonp', + success: function(data) { + if (data.message === 'success') { + window.location.href = $paySuccessUrl; + } + } + }); +} + + +setInterval(checkPayStatus, 3000); +}); +define("plugin/jquery.qrcode", ["jquery"], function(require, exports, module){ +/* jscs: disable */ +/* jshint ignore:start */ +var jQuery = require("jquery"); + +(function(r) { + r.fn.qrcode = function(h) { + var s; + + function u(a) { + this.mode = s; + this.data = a + } + + function o(a, c) { + this.typeNumber = a; + this.errorCorrectLevel = c; + this.modules = null; + this.moduleCount = 0; + this.dataCache = null; + this.dataList = [] + } + + function q(a, c) { + if (void 0 == a.length) throw Error(a.length + "/" + c); + for (var d = 0; d < a.length && 0 == a[d];) d++; + this.num = Array(a.length - d + c); + for (var b = 0; b < a.length - d; b++) this.num[b] = a[b + d] + } + + function p(a, c) { + this.totalCount = a; + this.dataCount = c + } + + function t() { + this.buffer = []; + this.length = 0 + } + u.prototype = { + getLength: function() { + return this.data.length + }, + write: function(a) { + for (var c = 0; c < this.data.length; c++) a.put(this.data.charCodeAt(c), 8) + } + }; + o.prototype = { + addData: function(a) { + this.dataList.push(new u(a)); + this.dataCache = null + }, + isDark: function(a, c) { + if (0 > a || this.moduleCount <= a || 0 > c || this.moduleCount <= c) throw Error(a + "," + c); + return this.modules[a][c] + }, + getModuleCount: function() { + return this.moduleCount + }, + make: function() { + if (1 > this.typeNumber) { + for (var a = 1, a = 1; 40 > a; a++) { + for (var c = p.getRSBlocks(a, this.errorCorrectLevel), d = new t, b = 0, e = 0; e < c.length; e++) b += c[e].dataCount; + for (e = 0; e < this.dataList.length; e++) c = this.dataList[e], d.put(c.mode, 4), d.put(c.getLength(), j.getLengthInBits(c.mode, a)), c.write(d); + if (d.getLengthInBits() <= 8 * b) break + } + this.typeNumber = a + } + this.makeImpl(!1, this.getBestMaskPattern()) + }, + makeImpl: function(a, c) { + this.moduleCount = 4 * this.typeNumber + 17; + this.modules = Array(this.moduleCount); + for (var d = 0; d < this.moduleCount; d++) { + this.modules[d] = Array(this.moduleCount); + for (var b = 0; b < this.moduleCount; b++) this.modules[d][b] = null + } + this.setupPositionProbePattern(0, 0); + this.setupPositionProbePattern(this.moduleCount - + 7, 0); + this.setupPositionProbePattern(0, this.moduleCount - 7); + this.setupPositionAdjustPattern(); + this.setupTimingPattern(); + this.setupTypeInfo(a, c); + 7 <= this.typeNumber && this.setupTypeNumber(a); + null == this.dataCache && (this.dataCache = o.createData(this.typeNumber, this.errorCorrectLevel, this.dataList)); + this.mapData(this.dataCache, c) + }, + setupPositionProbePattern: function(a, c) { + for (var d = -1; 7 >= d; d++) + if (!(-1 >= a + d || this.moduleCount <= a + d)) + for (var b = -1; 7 >= b; b++) - 1 >= c + b || this.moduleCount <= c + b || (this.modules[a + d][c + b] = + 0 <= d && 6 >= d && (0 == b || 6 == b) || 0 <= b && 6 >= b && (0 == d || 6 == d) || 2 <= d && 4 >= d && 2 <= b && 4 >= b ? !0 : !1) + }, + getBestMaskPattern: function() { + for (var a = 0, c = 0, d = 0; 8 > d; d++) { + this.makeImpl(!0, d); + var b = j.getLostPoint(this); + if (0 == d || a > b) a = b, c = d + } + return c + }, + createMovieClip: function(a, c, d) { + a = a.createEmptyMovieClip(c, d); + this.make(); + for (c = 0; c < this.modules.length; c++) + for (var d = 1 * c, b = 0; b < this.modules[c].length; b++) { + var e = 1 * b; + this.modules[c][b] && (a.beginFill(0, 100), a.moveTo(e, d), a.lineTo(e + 1, d), a.lineTo(e + 1, d + 1), a.lineTo(e, d + 1), a.endFill()) + } + return a + }, + setupTimingPattern: function() { + for (var a = 8; a < this.moduleCount - 8; a++) null == this.modules[a][6] && (this.modules[a][6] = 0 == a % 2); + for (a = 8; a < this.moduleCount - 8; a++) null == this.modules[6][a] && (this.modules[6][a] = 0 == a % 2) + }, + setupPositionAdjustPattern: function() { + for (var a = j.getPatternPosition(this.typeNumber), c = 0; c < a.length; c++) + for (var d = 0; d < a.length; d++) { + var b = a[c], + e = a[d]; + if (null == this.modules[b][e]) + for (var f = -2; 2 >= f; f++) + for (var i = -2; 2 >= i; i++) this.modules[b + f][e + i] = -2 == f || 2 == f || -2 == i || 2 == i || 0 == f && 0 == i ? !0 : !1 + } + }, + setupTypeNumber: function(a) { + for (var c = + j.getBCHTypeNumber(this.typeNumber), d = 0; 18 > d; d++) { + var b = !a && 1 == (c >> d & 1); + this.modules[Math.floor(d / 3)][d % 3 + this.moduleCount - 8 - 3] = b + } + for (d = 0; 18 > d; d++) b = !a && 1 == (c >> d & 1), this.modules[d % 3 + this.moduleCount - 8 - 3][Math.floor(d / 3)] = b + }, + setupTypeInfo: function(a, c) { + for (var d = j.getBCHTypeInfo(this.errorCorrectLevel << 3 | c), b = 0; 15 > b; b++) { + var e = !a && 1 == (d >> b & 1); + 6 > b ? this.modules[b][8] = e : 8 > b ? this.modules[b + 1][8] = e : this.modules[this.moduleCount - 15 + b][8] = e + } + for (b = 0; 15 > b; b++) e = !a && 1 == (d >> b & 1), 8 > b ? this.modules[8][this.moduleCount - + b - 1 + ] = e : 9 > b ? this.modules[8][15 - b - 1 + 1] = e : this.modules[8][15 - b - 1] = e; + this.modules[this.moduleCount - 8][8] = !a + }, + mapData: function(a, c) { + for (var d = -1, b = this.moduleCount - 1, e = 7, f = 0, i = this.moduleCount - 1; 0 < i; i -= 2) + for (6 == i && i--;;) { + for (var g = 0; 2 > g; g++) + if (null == this.modules[b][i - g]) { + var n = !1; + f < a.length && (n = 1 == (a[f] >>> e & 1)); + j.getMask(c, b, i - g) && (n = !n); + this.modules[b][i - g] = n; + e--; - 1 == e && (f++, e = 7) + } + b += d; + if (0 > b || this.moduleCount <= b) { + b -= d; + d = -d; + break + } + } + } + }; + o.PAD0 = 236; + o.PAD1 = 17; + o.createData = function(a, c, d) { + for (var c = p.getRSBlocks(a, + c), b = new t, e = 0; e < d.length; e++) { + var f = d[e]; + b.put(f.mode, 4); + b.put(f.getLength(), j.getLengthInBits(f.mode, a)); + f.write(b) + } + for (e = a = 0; e < c.length; e++) a += c[e].dataCount; + if (b.getLengthInBits() > 8 * a) throw Error("code length overflow. (" + b.getLengthInBits() + ">" + 8 * a + ")"); + for (b.getLengthInBits() + 4 <= 8 * a && b.put(0, 4); 0 != b.getLengthInBits() % 8;) b.putBit(!1); + for (; !(b.getLengthInBits() >= 8 * a);) { + b.put(o.PAD0, 8); + if (b.getLengthInBits() >= 8 * a) break; + b.put(o.PAD1, 8) + } + return o.createBytes(b, c) + }; + o.createBytes = function(a, c) { + for (var d = + 0, b = 0, e = 0, f = Array(c.length), i = Array(c.length), g = 0; g < c.length; g++) { + var n = c[g].dataCount, + h = c[g].totalCount - n, + b = Math.max(b, n), + e = Math.max(e, h); + f[g] = Array(n); + for (var k = 0; k < f[g].length; k++) f[g][k] = 255 & a.buffer[k + d]; + d += n; + k = j.getErrorCorrectPolynomial(h); + n = (new q(f[g], k.getLength() - 1)).mod(k); + i[g] = Array(k.getLength() - 1); + for (k = 0; k < i[g].length; k++) h = k + n.getLength() - i[g].length, i[g][k] = 0 <= h ? n.get(h) : 0 + } + for (k = g = 0; k < c.length; k++) g += c[k].totalCount; + d = Array(g); + for (k = n = 0; k < b; k++) + for (g = 0; g < c.length; g++) k < f[g].length && + (d[n++] = f[g][k]); + for (k = 0; k < e; k++) + for (g = 0; g < c.length; g++) k < i[g].length && (d[n++] = i[g][k]); + return d + }; + s = 4; + for (var j = { + PATTERN_POSITION_TABLE: [ + [], + [6, 18], + [6, 22], + [6, 26], + [6, 30], + [6, 34], + [6, 22, 38], + [6, 24, 42], + [6, 26, 46], + [6, 28, 50], + [6, 30, 54], + [6, 32, 58], + [6, 34, 62], + [6, 26, 46, 66], + [6, 26, 48, 70], + [6, 26, 50, 74], + [6, 30, 54, 78], + [6, 30, 56, 82], + [6, 30, 58, 86], + [6, 34, 62, 90], + [6, 28, 50, 72, 94], + [6, 26, 50, 74, 98], + [6, 30, 54, 78, 102], + [6, 28, 54, 80, 106], + [6, 32, 58, 84, 110], + [6, 30, 58, 86, 114], + [6, 34, 62, 90, 118], + [6, 26, 50, 74, 98, 122], + [6, 30, 54, 78, 102, 126], + [6, 26, 52, + 78, 104, 130 + ], + [6, 30, 56, 82, 108, 134], + [6, 34, 60, 86, 112, 138], + [6, 30, 58, 86, 114, 142], + [6, 34, 62, 90, 118, 146], + [6, 30, 54, 78, 102, 126, 150], + [6, 24, 50, 76, 102, 128, 154], + [6, 28, 54, 80, 106, 132, 158], + [6, 32, 58, 84, 110, 136, 162], + [6, 26, 54, 82, 110, 138, 166], + [6, 30, 58, 86, 114, 142, 170] + ], + G15: 1335, + G18: 7973, + G15_MASK: 21522, + getBCHTypeInfo: function(a) { + for (var c = a << 10; 0 <= j.getBCHDigit(c) - j.getBCHDigit(j.G15);) c ^= j.G15 << j.getBCHDigit(c) - j.getBCHDigit(j.G15); + return (a << 10 | c) ^ j.G15_MASK + }, + getBCHTypeNumber: function(a) { + for (var c = a << 12; 0 <= j.getBCHDigit(c) - + j.getBCHDigit(j.G18);) c ^= j.G18 << j.getBCHDigit(c) - j.getBCHDigit(j.G18); + return a << 12 | c + }, + getBCHDigit: function(a) { + for (var c = 0; 0 != a;) c++, a >>>= 1; + return c + }, + getPatternPosition: function(a) { + return j.PATTERN_POSITION_TABLE[a - 1] + }, + getMask: function(a, c, d) { + switch (a) { + case 0: + return 0 == (c + d) % 2; + case 1: + return 0 == c % 2; + case 2: + return 0 == d % 3; + case 3: + return 0 == (c + d) % 3; + case 4: + return 0 == (Math.floor(c / 2) + Math.floor(d / 3)) % 2; + case 5: + return 0 == c * d % 2 + c * d % 3; + case 6: + return 0 == (c * d % 2 + c * d % 3) % 2; + case 7: + return 0 == (c * d % 3 + (c + d) % 2) % 2; + default: + throw Error("bad maskPattern:" + + a); + } + }, + getErrorCorrectPolynomial: function(a) { + for (var c = new q([1], 0), d = 0; d < a; d++) c = c.multiply(new q([1, l.gexp(d)], 0)); + return c + }, + getLengthInBits: function(a, c) { + if (1 <= c && 10 > c) switch (a) { + case 1: + return 10; + case 2: + return 9; + case s: + return 8; + case 8: + return 8; + default: + throw Error("mode:" + a); + } else if (27 > c) switch (a) { + case 1: + return 12; + case 2: + return 11; + case s: + return 16; + case 8: + return 10; + default: + throw Error("mode:" + a); + } else if (41 > c) switch (a) { + case 1: + return 14; + case 2: + return 13; + case s: + return 16; + case 8: + return 12; + default: + throw Error("mode:" + + a); + } else throw Error("type:" + c); + }, + getLostPoint: function(a) { + for (var c = a.getModuleCount(), d = 0, b = 0; b < c; b++) + for (var e = 0; e < c; e++) { + for (var f = 0, i = a.isDark(b, e), g = -1; 1 >= g; g++) + if (!(0 > b + g || c <= b + g)) + for (var h = -1; 1 >= h; h++) 0 > e + h || c <= e + h || 0 == g && 0 == h || i == a.isDark(b + g, e + h) && f++; + 5 < f && (d += 3 + f - 5) + } + for (b = 0; b < c - 1; b++) + for (e = 0; e < c - 1; e++) + if (f = 0, a.isDark(b, e) && f++, a.isDark(b + 1, e) && f++, a.isDark(b, e + 1) && f++, a.isDark(b + 1, e + 1) && f++, 0 == f || 4 == f) d += 3; + for (b = 0; b < c; b++) + for (e = 0; e < c - 6; e++) a.isDark(b, e) && !a.isDark(b, e + 1) && a.isDark(b, e + + 2) && a.isDark(b, e + 3) && a.isDark(b, e + 4) && !a.isDark(b, e + 5) && a.isDark(b, e + 6) && (d += 40); + for (e = 0; e < c; e++) + for (b = 0; b < c - 6; b++) a.isDark(b, e) && !a.isDark(b + 1, e) && a.isDark(b + 2, e) && a.isDark(b + 3, e) && a.isDark(b + 4, e) && !a.isDark(b + 5, e) && a.isDark(b + 6, e) && (d += 40); + for (e = f = 0; e < c; e++) + for (b = 0; b < c; b++) a.isDark(b, e) && f++; + a = Math.abs(100 * f / c / c - 50) / 5; + return d + 10 * a + } + }, l = { + glog: function(a) { + if (1 > a) throw Error("glog(" + a + ")"); + return l.LOG_TABLE[a] + }, + gexp: function(a) { + for (; 0 > a;) a += 255; + for (; 256 <= a;) a -= 255; + return l.EXP_TABLE[a] + }, + EXP_TABLE: Array(256), + LOG_TABLE: Array(256) + }, m = 0; 8 > m; m++) l.EXP_TABLE[m] = 1 << m; + for (m = 8; 256 > m; m++) l.EXP_TABLE[m] = l.EXP_TABLE[m - 4] ^ l.EXP_TABLE[m - 5] ^ l.EXP_TABLE[m - 6] ^ l.EXP_TABLE[m - 8]; + for (m = 0; 255 > m; m++) l.LOG_TABLE[l.EXP_TABLE[m]] = m; + q.prototype = { + get: function(a) { + return this.num[a] + }, + getLength: function() { + return this.num.length + }, + multiply: function(a) { + for (var c = Array(this.getLength() + a.getLength() - 1), d = 0; d < this.getLength(); d++) + for (var b = 0; b < a.getLength(); b++) c[d + b] ^= l.gexp(l.glog(this.get(d)) + l.glog(a.get(b))); + return new q(c, 0) + }, + mod: function(a) { + if (0 > + this.getLength() - a.getLength()) return this; + for (var c = l.glog(this.get(0)) - l.glog(a.get(0)), d = Array(this.getLength()), b = 0; b < this.getLength(); b++) d[b] = this.get(b); + for (b = 0; b < a.getLength(); b++) d[b] ^= l.gexp(l.glog(a.get(b)) + c); + return (new q(d, 0)).mod(a) + } + }; + p.RS_BLOCK_TABLE = [ + [1, 26, 19], + [1, 26, 16], + [1, 26, 13], + [1, 26, 9], + [1, 44, 34], + [1, 44, 28], + [1, 44, 22], + [1, 44, 16], + [1, 70, 55], + [1, 70, 44], + [2, 35, 17], + [2, 35, 13], + [1, 100, 80], + [2, 50, 32], + [2, 50, 24], + [4, 25, 9], + [1, 134, 108], + [2, 67, 43], + [2, 33, 15, 2, 34, 16], + [2, 33, 11, 2, 34, 12], + [2, 86, 68], + [4, 43, 27], + [4, 43, 19], + [4, 43, 15], + [2, 98, 78], + [4, 49, 31], + [2, 32, 14, 4, 33, 15], + [4, 39, 13, 1, 40, 14], + [2, 121, 97], + [2, 60, 38, 2, 61, 39], + [4, 40, 18, 2, 41, 19], + [4, 40, 14, 2, 41, 15], + [2, 146, 116], + [3, 58, 36, 2, 59, 37], + [4, 36, 16, 4, 37, 17], + [4, 36, 12, 4, 37, 13], + [2, 86, 68, 2, 87, 69], + [4, 69, 43, 1, 70, 44], + [6, 43, 19, 2, 44, 20], + [6, 43, 15, 2, 44, 16], + [4, 101, 81], + [1, 80, 50, 4, 81, 51], + [4, 50, 22, 4, 51, 23], + [3, 36, 12, 8, 37, 13], + [2, 116, 92, 2, 117, 93], + [6, 58, 36, 2, 59, 37], + [4, 46, 20, 6, 47, 21], + [7, 42, 14, 4, 43, 15], + [4, 133, 107], + [8, 59, 37, 1, 60, 38], + [8, 44, 20, 4, 45, 21], + [12, 33, 11, 4, 34, 12], + [3, 145, 115, 1, 146, + 116 + ], + [4, 64, 40, 5, 65, 41], + [11, 36, 16, 5, 37, 17], + [11, 36, 12, 5, 37, 13], + [5, 109, 87, 1, 110, 88], + [5, 65, 41, 5, 66, 42], + [5, 54, 24, 7, 55, 25], + [11, 36, 12], + [5, 122, 98, 1, 123, 99], + [7, 73, 45, 3, 74, 46], + [15, 43, 19, 2, 44, 20], + [3, 45, 15, 13, 46, 16], + [1, 135, 107, 5, 136, 108], + [10, 74, 46, 1, 75, 47], + [1, 50, 22, 15, 51, 23], + [2, 42, 14, 17, 43, 15], + [5, 150, 120, 1, 151, 121], + [9, 69, 43, 4, 70, 44], + [17, 50, 22, 1, 51, 23], + [2, 42, 14, 19, 43, 15], + [3, 141, 113, 4, 142, 114], + [3, 70, 44, 11, 71, 45], + [17, 47, 21, 4, 48, 22], + [9, 39, 13, 16, 40, 14], + [3, 135, 107, 5, 136, 108], + [3, 67, 41, 13, 68, 42], + [15, 54, 24, 5, 55, 25], + [15, + 43, 15, 10, 44, 16 + ], + [4, 144, 116, 4, 145, 117], + [17, 68, 42], + [17, 50, 22, 6, 51, 23], + [19, 46, 16, 6, 47, 17], + [2, 139, 111, 7, 140, 112], + [17, 74, 46], + [7, 54, 24, 16, 55, 25], + [34, 37, 13], + [4, 151, 121, 5, 152, 122], + [4, 75, 47, 14, 76, 48], + [11, 54, 24, 14, 55, 25], + [16, 45, 15, 14, 46, 16], + [6, 147, 117, 4, 148, 118], + [6, 73, 45, 14, 74, 46], + [11, 54, 24, 16, 55, 25], + [30, 46, 16, 2, 47, 17], + [8, 132, 106, 4, 133, 107], + [8, 75, 47, 13, 76, 48], + [7, 54, 24, 22, 55, 25], + [22, 45, 15, 13, 46, 16], + [10, 142, 114, 2, 143, 115], + [19, 74, 46, 4, 75, 47], + [28, 50, 22, 6, 51, 23], + [33, 46, 16, 4, 47, 17], + [8, 152, 122, 4, 153, 123], + [22, 73, 45, + 3, 74, 46 + ], + [8, 53, 23, 26, 54, 24], + [12, 45, 15, 28, 46, 16], + [3, 147, 117, 10, 148, 118], + [3, 73, 45, 23, 74, 46], + [4, 54, 24, 31, 55, 25], + [11, 45, 15, 31, 46, 16], + [7, 146, 116, 7, 147, 117], + [21, 73, 45, 7, 74, 46], + [1, 53, 23, 37, 54, 24], + [19, 45, 15, 26, 46, 16], + [5, 145, 115, 10, 146, 116], + [19, 75, 47, 10, 76, 48], + [15, 54, 24, 25, 55, 25], + [23, 45, 15, 25, 46, 16], + [13, 145, 115, 3, 146, 116], + [2, 74, 46, 29, 75, 47], + [42, 54, 24, 1, 55, 25], + [23, 45, 15, 28, 46, 16], + [17, 145, 115], + [10, 74, 46, 23, 75, 47], + [10, 54, 24, 35, 55, 25], + [19, 45, 15, 35, 46, 16], + [17, 145, 115, 1, 146, 116], + [14, 74, 46, 21, 75, 47], + [29, 54, 24, 19, + 55, 25 + ], + [11, 45, 15, 46, 46, 16], + [13, 145, 115, 6, 146, 116], + [14, 74, 46, 23, 75, 47], + [44, 54, 24, 7, 55, 25], + [59, 46, 16, 1, 47, 17], + [12, 151, 121, 7, 152, 122], + [12, 75, 47, 26, 76, 48], + [39, 54, 24, 14, 55, 25], + [22, 45, 15, 41, 46, 16], + [6, 151, 121, 14, 152, 122], + [6, 75, 47, 34, 76, 48], + [46, 54, 24, 10, 55, 25], + [2, 45, 15, 64, 46, 16], + [17, 152, 122, 4, 153, 123], + [29, 74, 46, 14, 75, 47], + [49, 54, 24, 10, 55, 25], + [24, 45, 15, 46, 46, 16], + [4, 152, 122, 18, 153, 123], + [13, 74, 46, 32, 75, 47], + [48, 54, 24, 14, 55, 25], + [42, 45, 15, 32, 46, 16], + [20, 147, 117, 4, 148, 118], + [40, 75, 47, 7, 76, 48], + [43, 54, 24, 22, 55, 25], + [10, + 45, 15, 67, 46, 16 + ], + [19, 148, 118, 6, 149, 119], + [18, 75, 47, 31, 76, 48], + [34, 54, 24, 34, 55, 25], + [20, 45, 15, 61, 46, 16] + ]; + p.getRSBlocks = function(a, c) { + var d = p.getRsBlockTable(a, c); + if (void 0 == d) throw Error("bad rs block @ typeNumber:" + a + "/errorCorrectLevel:" + c); + for (var b = d.length / 3, e = [], f = 0; f < b; f++) + for (var h = d[3 * f + 0], g = d[3 * f + 1], j = d[3 * f + 2], l = 0; l < h; l++) e.push(new p(g, j)); + return e + }; + p.getRsBlockTable = function(a, c) { + switch (c) { + case 1: + return p.RS_BLOCK_TABLE[4 * (a - 1) + 0]; + case 0: + return p.RS_BLOCK_TABLE[4 * (a - 1) + 1]; + case 3: + return p.RS_BLOCK_TABLE[4 * + (a - 1) + 2]; + case 2: + return p.RS_BLOCK_TABLE[4 * (a - 1) + 3] + } + }; + t.prototype = { + get: function(a) { + return 1 == (this.buffer[Math.floor(a / 8)] >>> 7 - a % 8 & 1) + }, + put: function(a, c) { + for (var d = 0; d < c; d++) this.putBit(1 == (a >>> c - d - 1 & 1)) + }, + getLengthInBits: function() { + return this.length + }, + putBit: function(a) { + var c = Math.floor(this.length / 8); + this.buffer.length <= c && this.buffer.push(0); + a && (this.buffer[c] |= 128 >>> this.length % 8); + this.length++ + } + }; + "string" === typeof h && (h = { + text: h + }); + h = r.extend({}, { + render: "canvas", + width: 256, + height: 256, + typeNumber: -1, + correctLevel: 2, + background: "#ffffff", + foreground: "#000000" + }, h); + return this.each(function() { + var a; + if ("canvas" == h.render) { + a = new o(h.typeNumber, h.correctLevel); + a.addData(h.text); + a.make(); + var c = document.createElement("canvas"); + c.width = h.width; + c.height = h.height; + for (var d = c.getContext("2d"), b = h.width / a.getModuleCount(), e = h.height / a.getModuleCount(), f = 0; f < a.getModuleCount(); f++) + for (var i = 0; i < a.getModuleCount(); i++) { + d.fillStyle = a.isDark(f, i) ? h.foreground : h.background; + var g = Math.ceil((i + 1) * b) - Math.floor(i * b), + j = Math.ceil((f + 1) * b) - Math.floor(f * b); + d.fillRect(Math.round(i * b), Math.round(f * e), g, j) + } + } else { + a = new o(h.typeNumber, h.correctLevel); + a.addData(h.text); + a.make(); + c = r("<table></table>").css("width", h.width + "px").css("height", h.height + "px").css("border", "0px").css("border-collapse", "collapse").css("background-color", h.background); + d = h.width / a.getModuleCount(); + b = h.height / a.getModuleCount(); + for (e = 0; e < a.getModuleCount(); e++) { + f = r("<tr></tr>").css("height", b + "px").appendTo(c); + for (i = 0; i < a.getModuleCount(); i++) r("<td></td>").css("width", + d + "px").css("background-color", a.isDark(e, i) ? h.foreground : h.background).appendTo(f) + } + } + a = c; + jQuery(a).appendTo(this) + }) + } +})(jQuery); +/* jscs: enable */ +/* jshint ignore:end */ +}); +define("js/about/entry", ["jquery","jquery.placeholder","handlebars","source-map"], function(require, exports, module){ +/** + * 逛打包入口 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/4/14 + */ + +require("js/about/settled"); + +}); +define("js/about/settled", ["jquery","jquery.placeholder","handlebars","source-map"], function(require, exports, module){ +/** + * 商家入驻 + * @author: xuqi<qi.xu@yoho> + * @date: 2016/3/24 + */ + +var $ = require("jquery"); + +var reg = require("js/passport/mail-phone-regx"); + +require("jquery.placeholder"); +require("plugin/jquery.qupload"); + +//入口页 +(function() { + var $mask, + $dialog; + + if ($('.settled-page').length === 0) { + return; + } + + $mask = $('#mask'); + $dialog = $('#notice-container'); + + function showNotice() { + var wh = $(window).height(); + + $mask.removeClass('hide'); + $dialog.css({ + 'max-height': wh - 60 + }).removeClass('hide'); + } + + function hideNotice() { + $mask.addClass('hide'); + $dialog.addClass('hide'); + } + + $('#fake-link').click(showNotice); + + $('#fake-close').click(hideNotice); + $('#mask').click(hideNotice); +}()); + +//申请页 +(function() { + var $otherBr, + $otherNp, + $otherRp, + $categoryUl, + $shopListTr, + $shops, + $panel; + + var $postcode, + $email, + $phoneNum, + $upKey, + $styleCount; + + var categoryHtml = $('#category-tpl').html(); + + var Dialog = require("js/common/dialog").Dialog; + var successDialog, + SWFUpload = window.SWFUpload, + upKey; + + if ($('.settled-apply-page').length < 0) { + return; + } + + $('[placeholder]').placeholder(); + + $otherBr = $('#other-brand-relation'); + $otherNp = $('#other-new-period'); + $otherRp = $('#other-replenishment-period'); + $categoryUl = $('#category-list'); + $shopListTr = $('#shop-list'); + $shops = $('#shops'); + $panel = $('#mask, #submit-success'); + + $postcode = $('#postcode'); + $email = $('#email'); + $phoneNum = $('#phone-number'); + $upKey = $('#upload-key'); + $styleCount = $('#style-count'); + upKey = $upKey.val(); + $upKey.remove(); + + function initUpload(arr) { + $.each(arr, function(k, v) { + $('#' + v.dom).qupload({ + uploadKey: upKey, + button_image_url: '', + button_text: '<span class="btn_upload_text">上传</span>', + button_text_style: + '.btn_upload_text{color:#000;margin-left:30px;' + + 'line-height: 2em;font-size:14px;}', + button_text_left_padding: 32, + button_text_top_padding: 8, + button_width: 160, + button_height: 35, + button_action: SWFUpload.BUTTON_ACTION.SELECT_FILE,//单选 + file_size_limit: '10240', + file_types: v.type, + uploadSuccessed: function(serverData) { + var data = JSON.parse(serverData); + + if (data.code !== 12) { + alert(data.message); + return false; + } + v.callback(data.data.hit.Filedata.return_file_path); + } + }); + }); + } + + function validate() { + var pass = true, + postcodeReg = /[0-9]\d{5}(?!\d)/, + emailReg = reg.emailRegx, + phoneReg = reg.phoneRegx['+86'], + styleCountReg = /^(0|[1-9][0-9]*)$/; + + $('.va, .category-item select, .for-other, .category-item').removeClass('error'); + + $('.va-null').each(function() { + if ($(this).val() === '') { + $(this).addClass('error'); + pass = false; + } + }); + + if ($postcode.val() === '' || !postcodeReg.test($postcode.val())) { + $postcode.addClass('error'); + pass = false; + } + + if ($email.val() === '' || !emailReg.test($email.val())) { + $email.addClass('error'); + pass = false; + } + + if ($phoneNum.val() === '' || !(phoneReg.test($phoneNum.val()))) { + $phoneNum.addClass('error'); + pass = false; + } + + if ($styleCount.val() === '' || !(styleCountReg.test($styleCount.val()))) { + $styleCount.addClass('error'); + pass = false; + } + + $('.category-item').each(function() { + if ($(this).get(0).selectedIndex === 0) { + $(this).addClass('error'); + pass = false; + } + }); + + if ($('input[name="seller-role"]:checked').index() === 3 && + $otherBr.val() === '') { + pass = false; + $otherBr.addClass('error'); + } + + if ($('input[name="new_cycle"]:checked').index() === 5 && + $otherNp.val() === '') { + pass = false; + $otherNp.addClass('error'); + } + + if ($('input[name="supply_cycle"]:checked').index() === 5 && + $otherRp.val() === '') { + pass = false; + $otherRp.addClass('error'); + } + + return pass; + } + + function addCategoryUI() { + $categoryUl.closest('tr').removeClass('hide'); + $categoryUl.append('<li>' + categoryHtml + '</li>'); + } + + //获取二级分类的方法 + function getCategoryTwo() { + var id = $(this).val(); + var $categoryTwo = $(this).parent().find('.category-two'); + var html = '<option>选择二级分类</option>'; + + if (id === '') { + $categoryTwo.html(html); + return; + } + + $.ajax({ + url: '/shop/settled/getTwoCategory', + type: 'GET', + data: { + id: id + } + }).then(function(data) { + var res = []; + var key; + + if (data.code === 200) { + res = data.data; + for (key = 0; key < res.length; key++) { + html += '<option value="' + res[key].id + '" >' + res[key].name + '</option>'; + } + } + $categoryTwo.html(html); + }); + } + + // 初始化上传插件 + initUpload([ + { + dom: 'upload-brand-material', + type: '*.ppt;*.pdf;*.zip;*.rar', + callback: function(data) { + $('#brand-material').val(data); + $('.brand-tip').html('上传成功'); + alert('上传成功!'); + } + }, + { + dom: 'upload-goods-material', + type: '*.xls;*.xlsx;*.zip;*.rar', + callback: function(data) { + $('#goods-material').val(data); + $('.goods-tip').html('上传成功'); + alert('上传成功!'); + } + } + ]); + + // 提交成功 + if (location.search.indexOf('state=1') > -1) { + successDialog = new Dialog({ + className: 'settled-success', + closeIcon: false, + content: '<h1 class="main-title">恭喜您已提交成功</h1><h2 class="sub-title">我们将尽快与您联系</h2>', + btns: [ + { + id: 'apply-success-ok', + btnClass: ['apply-success-ok'], + name: '确认', + cb: function() { + location.href = '/shop/settled/index'; + } + } + ] + }); + successDialog.show(); + return; + } + + $('input[name="seller_role"]').change(function() { + if ($(this).index() === 3) { + $otherBr.removeClass('hide'); + } else { + $otherBr.addClass('hide'); + } + }); + + $('input[name="new-cycle"]').change(function() { + if ($(this).index() === 5) { + $otherNp.removeClass('hide'); + } else { + $otherNp.addClass('hide'); + } + }); + + $('input[name="supply-cycle"]').change(function() { + if ($(this).index() === 5) { + $otherRp.removeClass('hide'); + } else { + $otherRp.addClass('hide'); + } + }); + + $('input[name="have-store"]').change(function() { + if ($(this).index() === 1) { + $shopListTr.addClass('hide'); + } else { + $shopListTr.removeClass('hide'); + } + }); + + $('.form-container').on('change', '.category-one', getCategoryTwo); + + $('#category-add').click(addCategoryUI); + + $shops.delegate('.shop-add', 'click', function() { + $shops.append( + '<li>' + + '<input class="shop-addres" name="store-address[]" type="text" placeholder="输入店铺地址">' + + '<span>月均销售:</span>' + + '<input class="shop-sales-volume" type="text" name="store-sales-volume[]" placeholder="输入价格">' + + '<span>元</span>' + + '</li>' + ); + }); + + $('#apply-post').click(function() { + var scrollTo; + + if (validate()) { + $panel.removeClass('hide'); + $('form').submit(); + } else { + $('.error').first().focus(); + scrollTo = $('.error').first().offset().top; + $(window).scrollTop(scrollTo - 10); + } + }); + + if (navigator.userAgent.indexOf('MSIE') >= 0) { + $('[placeholder]').focus(function() { + var $input = $(this); + + $input.removeClass('placeholder'); + }).blur(function() { + var $input = $(this); + + if ($input.val() === '') { + $input.addClass('placeholder'); + } + }); + } +}()); +}); +define("js/coupon/entry", ["jquery","lazyload","handlebars","source-map"], function(require, exports, module){ +/** + * 领券频道打包入口 + * @author: zhaobiao<biao.zhao@yoho.cn> + * @date: 2016/4/12 + */ + +require("js/coupon/coupon"); + +}); +define("js/coupon/coupon", ["jquery","lazyload","handlebars","source-map"], function(require, exports, module){ +/** + * 领券频道 + * @author: 赵彪<bill.zhao@yoho.cn> + * @date: 2016/04/14 + */ +var $ = require("jquery"), + lazyLoad = require("lazyload"), + Dialog = require("js/common/dialog").Dialog; + + +var alertConfig, + makeAlert; + +// j面跳转对象 +var redirect = { + + // 去逛逛跳转链接 + gunangSrc: null, + + // 查看优惠券跳转链接 + checkCouponSrc: null, + goToGuang: function() { + window.location.href = this.gunangSrc; + }, + goToCheck: function() { + window.location.href = this.checkCouponSrc; + }, + + // 处理网络返回 + 403: function(url) { + window.location.href = url; + }, + 200: function(url) { + this.checkCouponSrc = url; + } +}; + +//加载底部图片 +lazyLoad($('img.lazy')); + +require("js/common/slider"); + + +$('.slide-container').slider(); + +// 根据配置执行展示弹窗 +function couponAlert(opt) { + var newAlert = new Dialog(opt); + + newAlert.show(); +} + +// 配置弹窗 +alertConfig = { + success: { + content: '恭喜您,成功领取优惠券', + subContents: ['特殊情况下到账有延时', '请耐心等待'], + className: 'subcontent-dialog', + refreshOnClose: true, + btns: [ + { + id: 1, + name: '去购物啦', + btnClass: ['black', 'btn-close'], + cb: function() { + redirect.goToGuang(); + } + }, + { + id: 2, + name: '查看优惠券', + btnClass: ['btn-close'], + cb: function() { + redirect.goToCheck(); + } + } + ] + }, + alreadyGot: { + content: '您已领取过优惠券', + subContent: '快去选购心仪的潮品吧', + className: 'subcontent-dialog', + btns: [ + { + id: 1, + name: '去使用', + btnClass: ['btn-close'], + cb: function() { + redirect.goToGuang(); + } + } + ] + }, + expired: { + content: '优惠券已过期', + subContent: '去领最新的优惠券吧', + className: 'subcontent-dialog', + btns: [ + { + id: 1, + name: '关闭', + btnClass: ['btn-close'] + } + ] + }, + failed: { + content: '领取失败', + subContents: ['请刷新重试,', '多次无效请联系客服'], + className: 'subcontent-dialog', + btns: [ + { + id: 1, + name: '刷新', + btnClass: ['btn-close'], + cb: function() { + window.location.reload(); + } + } + ] + } +}; + +// 对应不同的网络返回码展示不同的弹窗 +makeAlert = { + 200: function() { + couponAlert(alertConfig.success); + }, + 401: function() { + couponAlert(alertConfig.alreadyGot); + }, + 315: function() { + couponAlert(alertConfig.expired); + }, + 400: function() { + couponAlert(alertConfig.failed); + }, + 403: function() { + + // do not make alert when user are not login in + } +}; + +function requestCoupon(id) { + $.ajax({ + type: 'GET', + url: '/coupon/sendcoupon', + data: { + id: id + }, + success: function(res) { + var code = res.code; + + // 如果返回的数据里有url,则执行redirect里的方法 + res.url && res.url.length > 0 && redirect[code] && redirect[code](res.url + '?'+ location.href.split('?')[1]); + + // 如果能找到对应code则执行相应方法,如果没有的对应code则执行error提示 + makeAlert[code] ? makeAlert[code]() : makeAlert['400'](); + + }, + error: function(err) { + var Alert = require("js/common/dialog").Alert; + + new Alert('网络异常').show(); + } + }); +} + +$('.enable .info').on('click', function(e) { + e.preventDefault(); + requestCoupon($(this).closest('a').data('id')); + redirect.gunangSrc = $(this).closest('a').get(0).href; +}); + +}); diff --git a/web-static/dist/yohobuy/4.7.1/index.css b/web-static/dist/yohobuy/4.7.1/index.css new file mode 100644 index 0000000..6e4ba7b --- /dev/null +++ b/web-static/dist/yohobuy/4.7.1/index.css @@ -0,0 +1 @@ +@charset "utf-8";a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:baseline}html{line-height:1}ol,ul{list-style:none}table{border-collapse:collapse;border-spacing:0}caption,td,th{text-align:left;font-weight:400;vertical-align:middle}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}a img{border:none}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}.clearfix:after{content:'';display:table;clear:both}body{font-family:arial,Microsoft YaHei}@font-face{font-family:iconfont;src:url(../assets/font/iconfont.eot?v155ba59e178);src:url(../assets/font/iconfont.eot?v155ba59e178#iefix) format('embedded-opentype'),url(../assets/font/iconfont.woff?v155ba59ea9c) format('woff'),url(../assets/font/iconfont.ttf?v155ba59e9c9) format('truetype'),url(../assets/font/iconfont.svg?v155ba59e18c#iconfont) format('svg')}.iconfont{font-family:iconfont!important;font-size:16px;font-style:normal;text-decoration:none;-webkit-font-smoothing:antialiased;-webkit-text-stroke-width:.2px;-moz-osx-font-smoothing:grayscale}.center-content{width:1150px;margin-left:auto;margin-right:auto}.min-screen .center-content{width:990px}.left,.pull-left{float:left}.pull-right,.right{float:right}.center{text-align:center}.hide{display:none!important}a:focus,input,textarea{outline:none}a{text-decoration:none;color:#000}.body-mask{position:absolute;z-index:9;background:#000;opacity:.2;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=20)";top:0;left:0}.yoho-notice{width:100%;height:100px;font-size:12px;background-color:#555;font-family:微软雅黑}.yoho-notice .notice-title{height:100px;line-height:100px;font-size:27px;font-weight:700;color:#fff;width:245px;position:absolute}.yoho-notice .notice-content{padding:16px 0 0 300px;color:#e8e8e8}.yoho-notice .notice-content .tips{margin-bottom:10px}.yoho-notice .notice-content .detail{line-height:16px}.yoho-header .header-topwrapper{width:100%;background-color:#f4f4f4;min-width:1150px}.yoho-header .header-top{width:1150px;height:32px;line-height:32px;margin:0 auto;position:relative}.yoho-header #loginBox{display:none}.yoho-header .leftpart{position:relative;padding-left:5px;padding-right:5px}.yoho-header .leftpart:hover{background-color:#dcdcdc}.yoho-header .leftpart:hover .yohoproducts-list{display:block!important}.yoho-header .leftpart .acttags{background-color:#dcdcdc}.yoho-header .yohoproducts-list{position:absolute;display:none;width:170px;left:0;top:32px;background-color:#f4f4f4;padding-top:30px;padding-bottom:10px;padding-left:20px;z-index:19}.yoho-header .yohoproducts-item{height:14px;line-height:14px;margin-bottom:20px}.yoho-header .yohoproducts-item a{color:#9196a0;font-size:14px}.yoho-header .yohoproducts-item:hover a{color:#000}.yoho-header .rightpart{position:absolute;right:0;top:0}.yoho-header .rightpart .acttags{background-color:#dcdcdc}.yoho-header .rightpart .tag-seprate{border-color:#dcdcdc}.yoho-header .hi,.yoho-header .loginbar,.yoho-header .registbar{display:inline-block;float:left}.yoho-header .hi{color:#8e8e8e;font-size:12px}.yoho-header #loginBox a,.yoho-header #loginBox span,.yoho-header .header-yoho,.yoho-header .login-out,.yoho-header .loginbar,.yoho-header .registbar{color:#000;font-size:12px}.yoho-header .registbar{margin-left:7px}.yoho-header .tag-list-wrapper{margin-left:13px;float:left}.yoho-header .tag-list{margin-left:13px;height:34px}.yoho-header .tag-seprate{margin-top:11px;width:0;height:14px;display:inline-block;float:left;border-left:1px solid #dcdcdc}.yoho-header .tag-item{display:inline-block;float:left;line-height:32px;box-sizing:border-box;margin-left:-1px}.yoho-header .tag-item a{color:#8e8e8e;font-size:12px;display:inline-block}.yoho-header .tag-item span{display:inline-block}.yoho-header .myyoho{padding-right:10px;position:relative}.yoho-header .myyoho .tag-seprate{margin-right:12px}.yoho-header .myyoho-info{position:absolute;display:none;top:32px;left:-110px;width:300px;background-color:#f8f8f8;z-index:18}.yoho-header .myyoho-photo{overflow:hidden}.yoho-header .myyoho-photo img{display:block;margin:0 auto;width:63px;height:63px;border-radius:50%}.yoho-header .myyoho-info-header{margin:17px auto 0;width:257px;border-bottom:1px solid #dcdcdc;text-align:center;padding-bottom:15px}.yoho-header .user-email{margin-top:14px;color:#000;height:25px;line-height:20px;font-size:18px}.yoho-header .user-level{color:#000;height:20px;line-height:20px;font-size:18px}.yoho-header .user-level .leveldetail{color:#8cc4f9}.yoho-header .levelinfo{width:100%;padding-top:10px;clear:both;height:15px}.yoho-header .levelwrapper{width:150px;height:14px;background-color:#e2e2e2;margin-left:40px;position:relative}.yoho-header .levelspan{position:absolute;left:2px;height:14px;top:0;line-height:16px}.yoho-header .levelwrapper .integrate{height:14px;line-height:15px;background-color:#ceae64;text-align:left;padding-left:5px}.yoho-header .cardcate{font-size:14px;line-height:14px;margin-left:5px}.yoho-header .myyoho-info-content{margin:20px auto 0;padding-left:35px;padding-right:29px;border-bottom:1px solid #dcdcdc}.yoho-header .myyoho-info-content .item{height:12px;line-height:12px;margin-bottom:16px}.yoho-header .myyoho-info-content .item a{font-size:14px;color:#000}.yoho-header .myyoho-info-footer{height:51px;line-height:51px;text-align:center}.yoho-header .myyoho-info-footer a{color:#000;font-size:14px}.yoho-header .myorder{padding-right:10px}.yoho-header .myorder .tag-seprate{margin-right:11px}.yoho-header .mycollect{padding-right:11px}.yoho-header .mycollect .tag-seprate{margin-right:11px}.yoho-header .message{padding-right:10px}.yoho-header .message .tag-seprate{margin-right:11px}.yoho-header .phone{padding-right:8px;position:relative}.yoho-header .phone .tag-seprate{margin-right:10px}.yoho-header .qr{position:absolute;display:none;top:32px;left:-100px;width:231px;height:290px;background-color:#f8f8f8;z-index:19}.yoho-header .qr-img{position:relative;background-image:url(../assets/img/header/qr.png?v155ba59f236);background-repeat:no-repeat;background-size:100% 100%;margin:32px auto 15px;width:143px;height:147px}.yoho-header .qr-words{height:25px;line-height:25px;font-size:16px;text-align:center}.yoho-header .qr-more{margin-top:6px;line-height:25px;font-size:14px;text-align:center}.yoho-header .onlineserver .tag-seprate{margin-right:10px}.yoho-header .header-navwrapper{width:100%;height:130px;position:relative;min-width:1150px}.yoho-header .header-navcontent{width:1150px;height:130px;margin:0 auto}.yoho-header .first-nav-list{margin-top:45px}.yoho-header .first-nav-item{float:left;padding:8px 23px 0}.yoho-header .first-nav-item .menu-ico{width:84px;height:32px;display:block}.yoho-header .all a,.yoho-header .all span,.yoho-header .boys a,.yoho-header .boys span,.yoho-header .girls a,.yoho-header .girls span,.yoho-header .kids a,.yoho-header .kids span,.yoho-header .lifestyle a,.yoho-header .lifestyle span{color:#fff!important}.yoho-header .all{background-color:#5e4b3c}.yoho-header .all .sub-nav-wrapper{background-color:#000;display:block!important}.yoho-header .all .third-nav-wrapper{border-top:2px solid #000}.yoho-header .searchcateboys .searchinput{border:1px solid #3a3a3a}.yoho-header .searchcateboys .icon-search{background-color:#3a3a3a!important}.yoho-header .searchcategirls .searchinput{border:1px solid #ff88ae}.yoho-header .searchcategirls .icon-search{background-color:#ff88ae!important}.yoho-header .searchcatewoman .searchinput{border:1px solid #ff88ae}.yoho-header .searchcatewoman .icon-search{background-color:#ff88ae!important}.yoho-header .searchcatekids .searchinput{border:1px solid #7bd3f9!important}.yoho-header .searchcatekids .icon-search{background-color:#7bd3f9!important}.yoho-header .gobuyboys{background-position:0 0}.yoho-header .gobuyboys,.yoho-header .gobuygirls{background-image:url(../assets/img/sprite.header.png?v155ba59fd52)}.yoho-header .gobuygirls{background-position:-56px 0}.yoho-header .gobuykids{background-position:-28px 0}.yoho-header .gobuykids,.yoho-header .gobuylifestyle{background-image:url(../assets/img/sprite.header.png?v155ba59fd52)}.yoho-header .gobuylifestyle{background-position:0 -28px}.yoho-header .gobuyoutlets{background-image:url(../assets/img/sprite.header.png?v155ba59fd52);background-position:-28px -28px}.yoho-header .searchcatelifestyle .searchinput{border:1px solid #5e4b3c!important}.yoho-header .searchcatelifestyle .icon-search{background-color:#5e4b3c!important}.yoho-header .boys{background-color:#3a3a3a}.yoho-header .boys .sub-nav-wrapper{background-color:#3a3a3a;display:block!important}.yoho-header .boys .third-nav-wrapper{border-top:2px solid #3a3a3a}.yoho-header .girls{background-color:#ff88ae}.yoho-header .girls .sub-nav-wrapper{background-color:#ff88ae;display:block!important}.yoho-header .girls .third-nav-wrapper{border-top:2px solid #ff88ae}.yoho-header .kids{background-color:#7bd3f9}.yoho-header .kids .sub-nav-wrapper{background-color:#7bd3f9;display:block!important}.yoho-header .kids .third-nav-wrapper{border-top:2px solid #7bd3f9}.yoho-header .lifestyle{background-color:#5e4b3c}.yoho-header .lifestyle .sub-nav-wrapper{background-color:#5e4b3c;display:block!important}.yoho-header .lifestyle .third-nav-wrapper{border-top:2px solid #5e4b3c}.yoho-header .outlets>.sub-nav-wrapper{display:block!important}.yoho-header .name-cn{text-align:center;line-height:16px!important}.yoho-header .name-cn a{color:#000;font-size:16px!important}.yoho-header .name-en{text-align:center;line-height:14px!important;margin-bottom:6px}.yoho-header .name-en a{color:#8e8e8e;font-size:12px;line-height:14px!important;font-family:arial!important}.yoho-header .sub-nav-wrapper{display:none;height:40px;left:0;width:100%;position:absolute;z-index:11}.yoho-header .sub-nav-list{width:1150px;height:40px;margin:0 auto;overflow:hidden}.yoho-header .sub-nav-item{float:left;padding:12px 46px 12px 0;box-sizing:border-box;margin-right:38px}.yoho-header .sub-nav-item a{position:relative;color:#fff;font-size:14px;line-height:14px;display:inline-block}.yoho-header .sub-nav-item:last-child{margin-right:0!important}.yoho-header .newlogo{display:block;width:26px;height:12px;background-image:url(../assets/img/header/new.png?v155ba59f232);background-repeat:no-repeat;position:absolute;right:-29px;top:-6px}.yoho-header .actsecondnav,.yoho-header .sub-nav-item:hover>a{padding-bottom:3px;border-bottom:2px solid #fff}.yoho-header .sub-nav-item:hover .third-nav-wrapper{display:block}.yoho-header .third-nav-wrapper{box-sizing:border-box;height:410px;position:absolute;left:0;top:38px;width:100%;min-width:1150px;display:none;z-index:17;padding-top:30px;padding-bottom:30px;background-color:#f8f8f8}.yoho-header .third-nav{width:1150px;height:100%;margin:0 auto}.yoho-header .category{width:880px;float:left;overflow:hidden}.yoho-header .category .thirdnavlist{box-sizing:border-box;width:220px;height:240px;float:left;padding-left:20px;border-right:1px solid #dcdcdc;padding-right:20px}.yoho-header .category-title{color:#000;font-size:16px;width:178px;padding-bottom:12px;border-bottom:1px solid #000;line-height:16px;margin-bottom:20px}.yoho-header .category-title a{color:#000!important}.yoho-header .category-list{margin-top:16px;margin-bottom:30px}.yoho-header .category-item{line-height:28px}.yoho-header .category-list a{color:#a1a1a1!important;font-size:14px}.yoho-header .category-list .category-item .hot{color:#e01!important;font-size:14px}.yoho-header .category-item-act a{color:#000!important}.yoho-header .showdetail{box-sizing:border-box;padding-left:19px;padding-right:19px;width:337px;height:250px;float:right}.yoho-header [class*=" icon-"],.yoho-header [class^=icon-]{display:inline-block;vertical-align:middle;background-repeat:none}.yoho-header .icon-hamburger{background-position:-56px -40px;width:13px;height:11px}.yoho-header .icon-hamburger,.yoho-header .icon-headphones{background-image:url(../assets/img/sprite.header.png?v155ba59fd52)}.yoho-header .icon-headphones{background-position:-84px 0;width:15px;height:10px;margin-top:2px}.yoho-header .icon-heart{background-position:-41px -56px;width:12px;height:11px}.yoho-header .icon-heart,.yoho-header .icon-mail{background-image:url(../assets/img/sprite.header.png?v155ba59fd52);margin-top:-2px}.yoho-header .icon-mail{background-position:-56px -28px;width:16px;height:10px}.yoho-header .icon-iphone{background-position:-84px 0;width:8px}.yoho-header .icon-iphone,.yoho-header .icon-papers{background-image:url(../assets/img/sprite.header.png?v155ba59fd52);height:14px;margin-top:-2px}.yoho-header .icon-papers{background-position:-29px -56px;width:10px}.yoho-header .icon-bottomarrow{background-image:url(../assets/img/sprite.header.png?v155ba59fd52);background-position:-71px -40px;width:10px;height:5px;margin-top:-2px}.yoho-header .outlets-logo{background:url(../assets/img/header/outlets.png?v155ba59f233) no-repeat 50%;width:200px;height:34px;left:42%;margin-top:28px;position:absolute;display:none}.yoho-header .icon-logo{background:url(../assets/img/header/logo.png?v155ba59f230) no-repeat 50%;width:182px;height:53px;top:22px;left:44.2%;position:absolute}.yoho-header .icon-logo .main-link{display:block;width:100%;height:100%}.yoho-header .search{position:relative}.yoho-header .searchspan{margin-top:45px;float:left;display:inline-block;overflow:hidden}.yoho-header .searchinput{float:left;width:240px;height:28px;border:1px solid #000;box-sizing:border-box;padding:6px 0 5px 10px;border-right:none}.yoho-header .icon-search{background:url(../assets/img/header/search.png?v155ba59f237) no-repeat 50%;width:80px;height:28px;float:left;border:none;margin-top:45px;background-color:#3a3a3a}.yoho-header .search-list{position:absolute;top:73px;left:0;z-index:11;box-sizing:border-box;display:none;background-color:#fff;padding-top:20px;width:100%;max-height:500px;border-left:1px solid #000;border-right:1px solid #000;border-bottom:1px solid #000}.yoho-header .search-item{position:relative;padding:5px;height:25px;line-height:25px;font:12px}.yoho-header .search-item:hover{background-color:#f4f4f4}.yoho-header .searchvalue{position:absolute;left:10px;max-width:192px;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yoho-header .valuenum{position:absolute;right:10px;font-size:12px}.yoho-header .header-tool{padding-right:23px}.yoho-header .gobuy{margin-top:47px;margin-left:23px;width:26px;height:26px;position:relative;cursor:pointer}.yoho-header .gobuy-wrapper{position:absolute;display:none;top:24px;right:-14px;width:378px;padding-top:6px;z-index:19}.yoho-header .gobuy-empty{position:absolute;width:100%;height:507px;z-index:1;background:#f8f8f8 url(../assets/img/header/empty_car.png?v155ba59f21a) no-repeat 106px 132px}.yoho-header .gobuy-empty .information{margin-top:300px;width:100%;height:18px;line-height:18px;font-size:18px;text-align:center}.yoho-header .gobuy-loading{position:absolute;width:100%;height:407px;z-index:1;background:#f8f8f8 url(../assets/img/header/loading.gif?v155ba59f22f) no-repeat center 150px}.yoho-header .gobuy-loading .information{margin-top:180px;width:100%;height:12px;line-height:12px;font-size:12px;text-align:center}.yoho-header .gobuy-notempty{position:absolute;width:100%;z-index:1;background-color:#f8f8f8;overflow:hidden}.yoho-header .goods-list-wrapper{width:100%;max-height:444px;margin-bottom:19px;overflow-y:auto;overflow-x:hidden}.yoho-header .goods-list{margin-top:40px}.yoho-header .goods-item{height:64px;margin-bottom:18px;padding-left:18px}.yoho-header .goods-img{display:inline-block;float:left;width:46px;height:62px;margin-right:13px}.yoho-header .goods-detail{margin-right:16px}.yoho-header .goods-detail .content{width:170px;height:14px;line-height:14px;font-size:14px;margin-bottom:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yoho-header .goods-detail .content a{color:#666;outline:none;text-decoration:none}.yoho-header .goods-detail .style{height:14px;line-height:14px;font-size:14px;color:#b0b0b0}.yoho-header .goods-price .priceandnum{height:14px;line-height:14px;font-size:14px;margin-bottom:13px;min-width:75px;text-align:right}.yoho-header .goods-price .delete{display:inline-block;float:right;font-size:14px;color:#000}.yoho-header .activity-item{margin-bottom:8px;padding-left:18px}.yoho-header .activity-name{display:inline-block;box-sizing:border-box;border:none;width:60px;height:18px;line-height:18px;background-color:#3a3a3a;color:#fff;font-size:14px;text-align:center;margin-right:13px;vertical-align:top}.yoho-header .activity-content{display:inline-block;line-height:14px;width:250px;color:#3a3a3a;font-size:12px;word-break:break-all}.yoho-header .gobuy-notempty-footer{width:100%;height:61px;text-align:center}.yoho-header .gobuy-notempty-footer h3{box-sizing:border-box;width:349px;margin:0 auto;height:61px;line-height:61px;border-top:1px solid #dcdcdc}.yoho-header .gobuy-notempty-footer a{font-size:18px;color:#444}.yoho-header .ic-infomation{position:absolute;background-image:url(../assets/img/sprite.header.png?v155ba59fd52);background-position:0 -56px;width:27px;height:20px;top:-10px;right:-15px;color:#fff;text-align:center;line-height:20px;font-size:12px}.yoho-header .float-left{float:left}.yoho-header .float-right{float:right}.yoho-header .showdetail img{display:block;box-sizing:border-box;width:337px;height:250px}.yoho-header .showdetail .title{display:block;margin-top:40px;width:100%;height:15px;text-align:center;line-height:15px;font-size:14px;color:#000!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yoho-header .cate_row{float:left;height:352px;box-sizing:border-box}.yoho-header .cate_row li{box-sizing:border-box}.yoho-header .cate_row1{width:253px}.yoho-header .cate_row2{width:278px;border-left:1px solid #ccc;padding-left:50px}.yoho-header .cate_row3{width:270px;border-left:1px solid #ccc;padding-left:50px}.yoho-header .third-nav .cattitle{width:180px;padding-bottom:10px;border-bottom:1px solid #000;line-height:18px;margin-bottom:20px}.yoho-header .third-nav .cattitle h3 a{color:#000!important;font-size:14px}.yoho-header .third-nav .catdetail{line-height:14px;height:14px;margin-bottom:24px;min-width:200px}.yoho-header .third-nav .catdetail a{color:#a1a1a1!important;font-size:14px}.yoho-header .third-nav .catdetail .hot{color:#e01!important}.yoho-header .thirdcatelink:hover{text-decoration:underline!important}.yoho-header .hovercontent{display:none}.yoho-header.outlets .header-navwrapper{background-color:#3a3a3a}.yoho-header.outlets .header-navwrapper .sub-nav-wrapper{background-color:#e6e6e6;margin-top:37px}.yoho-header.outlets .header-navwrapper .third-nav-wrapper{border-top:0}.yoho-header.outlets .outlets-logo{display:block}.yoho-header.outlets .icon-logo{display:none}.yoho-header.outlets .first-nav-item.cure{background:none}.yoho-header.outlets .first-nav-item>h3,.yoho-header.outlets .header-tool>.search{display:none}.yoho-header.outlets .sub-nav-list{padding-left:15%}.yoho-header.outlets .sub-nav-list .sub-nav-item{width:14%;text-align:center}.yoho-header.outlets .sub-nav-list .sub-nav-item>a{color:#222!important}.yoho-header.outlets .sub-nav-list .sub-nav-item:hover a{border-color:#555}.yoho-header.outlets .sub-nav-list .third-nav{text-align:left}.simple-header{height:66px;margin:0 0 20px;border-bottom:2px solid #222}.simple-header .header-inner{width:990px;height:100%;margin:0 auto}.simple-header .logo{float:left;line-height:66px;font-size:0}.simple-header .logo img{vertical-align:middle}.simple-header .header-tool{float:right;line-height:66px;font-size:0}.simple-header .header-tool li{display:inline-block;padding:0 10px;line-height:28px}.simple-header .header-tool li,.simple-header .header-tool li a,.simple-header .header-tool li span{font-size:12px;vertical-align:middle}.simple-header .header-tool li .tell-icon{font-size:12px}.simple-header .header-tool li .tell-icon~span{font-weight:700}.simple-header .header-tool .login-box a{color:#666}.simple-header .header-tool .tool-options{position:relative;font-size:0;cursor:pointer}.simple-header .header-tool .tool-options .iconfont,.simple-header .header-tool .tool-options span{display:inline-block;font-size:12px;height:28px;line-height:28px;vertical-align:top}.simple-header .header-tool .tool-options .iconfont.up,.simple-header .header-tool .tool-options span.up{display:none}.simple-header .header-tool .tool-options .tool-select{display:none;position:absolute;width:74px;left:0;background:#eaeceb;z-index:6}.simple-header .header-tool .tool-options .tool-select a{display:block;padding:0 0 0 10px;border-top:1px solid #ddd}.simple-header .header-tool .tool-options:hover{background-color:#eaeceb}.simple-header .header-tool .tool-options:hover .iconfont.up{display:inline-block}.simple-header .header-tool .tool-options:hover .iconfont.down{display:none}.min-screen .yoho-header .header-topwrapper{min-width:990px}.min-screen .yoho-header .header-top{width:990px}.min-screen .yoho-header .header-navwrapper{min-width:990px}.min-screen .yoho-header .header-navcontent,.min-screen .yoho-header .header-wrapper{width:990px}.min-screen .yoho-header .icon-logo{left:39.2%}.min-screen .yoho-header .icon-logo .main-link{display:block;width:100%;height:100%}.min-screen .yoho-header .sub-nav-list{width:990px;min-width:990px}.min-screen .yoho-header .sub-nav-item{margin-right:15px}.min-screen .yoho-header .first-nav-item{float:left;padding:10px 14px 0;margin-right:3px}.min-screen .yoho-header .third-nav{width:990px}.min-screen .yoho-header .third-nav-wrapper{min-width:990px}.min-screen .yoho-header .category{width:800px}.min-screen .yoho-header .cate_row1{width:204px}.min-screen .yoho-header .cate_row2{width:244px;border-left:1px solid #ccc;padding-left:39px}.min-screen .yoho-header .cate_row3{width:163px;border-left:1px solid #ccc;padding-left:28px}.min-screen .yoho-header .category .thirdnavlist{width:200px}.min-screen .yoho-header .category-title{width:152px}.min-screen .yoho-header .showdetail{width:190px;padding-right:0}.min-screen .yoho-header .showdetail img{width:174px;height:155px}#cover{position:fixed;z-index:12}#cover,#cover .con{left:0;top:0;width:100%;height:100%}#cover .con{background:rgba(0,0,0,.6)!important;position:absolute;z-index:13;opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"}#cover .tag_img_warpper{margin:0 auto;width:180px;height:168px}#cover .tag_img_warpper img{width:100%;height:100%}#cover .guide-box{background:#fff;margin:0 auto;height:400px;position:relative;z-index:14}#cover .guide-box .close{top:-15px;text-align:center;right:-15px;color:#fff;line-height:22px;font-size:24px;position:absolute;background:#000;border-radius:50px;border:currentColor;border-image:none;width:28px;height:28px;line-height:25px;display:block}#cover .guide-box li{padding:10px;width:200px;height:400px;float:left;box-sizing:border-box}#cover .guide-box li .go{margin:26px auto 0;width:100%;height:18px;text-align:center;color:#b0b0b0;line-height:18px;font-size:18px;font-style:italic;font-weight:lighter;display:block}#cover .guide-box li.girls{border-left-color:#eee;border-left-width:1px;border-left-style:solid}#cover .guide-box li.girls .goods-num{text-align:center;color:#bbb;line-height:12px;font-size:12px;margin-top:16px}#cover .guide-box li.lifestyle{border-left-color:#eee;border-left-width:1px;border-left-style:solid}#cover .guide-box li.lifestyle .goods-num{text-align:center;color:#bbb;line-height:12px;font-size:12px;margin-top:16px}#cover .guide-box li.kids{border-left-color:#eee;border-left-width:1px;border-left-style:solid}#cover .guide-box li.boys .goods-num,#cover .guide-box li.kids .goods-num{text-align:center;color:#bbb;line-height:12px;font-size:12px;margin-top:16px}#cover .boys .block_cn,#cover .girls .block_cn,#cover .kids .block_cn,#cover .lifestyle .block_cn{text-align:center;line-height:26px;font-size:26px;font-weight:700;margin-top:30px}#cover .boys .block_en,#cover .girls .block_en,#cover .kids .block_en,#cover .lifestyle .block_en{text-align:center;line-height:26px;font-size:26px;font-weight:700;margin-top:19px}#cover .boys .block_cn,#cover .boys .block_en{color:#000}#cover .girls .block_cn,#cover .girls .block_en{color:#ff88ae}#cover .kids .block_cn,#cover .kids .block_en{color:#7ad9f8}#cover .lifestyle .block_cn,#cover .lifestyle .block_en{color:#4f4037!important}#cover .boys .block_line,#cover .girls .block_line,#cover .kids .block_line,#cover .lifestyle .block_line{margin:20px auto 0;width:50px;height:0;border-bottom-color:#ccc;border-bottom-width:1px;border-bottom-style:solid}.yoho-footer{font-size:12px}.yoho-footer *{box-sizing:border-box}.yoho-footer .red{color:#e01}.yoho-footer .rgb6{color:#666}.yoho-footer .rgb9{color:#999}.yoho-footer .rgbf{color:#fff}.yoho-footer .index-foot{background:#eee;padding:20px 0}.yoho-footer .index-foot dd{float:left;width:370px;margin-right:20px;overflow:hidden}.yoho-footer .index-foot dd ul{margin-top:18px;padding-top:18px}.yoho-footer .index-foot dd.last{margin-right:0}.yoho-footer .foot-panel{background:#fff;padding:20px}.yoho-footer .title{position:relative;text-align:center}.yoho-footer .title-line{border-bottom:1px solid #ddd;position:absolute;top:9px;width:100%;left:0}.yoho-footer .text{position:absolute;width:100%;text-align:center;left:0;top:0}.yoho-footer .text span{background:#fff;font-size:18px;line-height:18px;padding:0 10px}.yoho-footer .item-nav{padding-top:20px}.yoho-footer .item-nav span{color:#fff;padding:0 3px;cursor:pointer;font-size:20px}.yoho-footer .item-nav .cur{color:#999}.yoho-footer .vote{line-height:24px}.yoho-footer .vote input{margin:0 5px 0 1px}.yoho-footer .vote .button{height:24px;line-height:24px;width:55px;font-size:12px;margin-top:11px;margin-right:10px;background:#222;color:#fff;display:inline-block;text-align:center;cursor:pointer}.yoho-footer .vote p{height:24px;overflow:hidden}.yoho-footer .vote textarea{width:98%;height:68px;vertical-align:middle;margin:5px 0 0;resize:none}.yoho-footer .vote-item p{float:left;width:50%}.yoho-footer .mobile{margin-right:-10px}.yoho-footer .mobile li{margin-right:10px;float:left}.yoho-footer .mobile img{display:block;width:103px;height:131px}.yoho-footer .index-banner{width:100%;margin-top:20px}.yoho-footer .two-dim{margin-right:-10px;overflow:hidden}.yoho-footer .two-dim li{border:1px solid #ddd;margin-right:10px}.yoho-footer .two-dim li a{display:block}.yoho-footer .two-dim li p{text-align:center;margin-top:13px;margin-bottom:10px;line-height:12px}.yoho-footer .dim-img{display:block;width:87px;height:87px;margin:7px}.yoho-footer .dim-hover{position:absolute}.yoho-footer .dim-hover img{width:38px;height:38px}.yoho-footer .dim-active .dim-img{opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}.yoho-footer .dim-active .dim-hover{display:none}.yoho-footer .footerbottom{width:100%}.yoho-footer .promise{padding:20px 0 10px;background:#000}.yoho-footer .promise .left{margin-right:60px;line-height:30px;font-size:12px;font-weight:700}.yoho-footer .promise .left .iconfont{display:inline-block;font-weight:400;font-size:22px;vertical-align:middle;margin-right:5px}.yoho-footer .promise .left:first-child .iconfont{font-size:27px}.yoho-footer .subscribe{border:1px solid #262626;width:240px}.yoho-footer .subscribe input{width:180px;height:32px;padding:0 10px;line-height:32px;border:none;margin:0;background:#000}.yoho-footer .subscribe a{display:block;float:right;margin-right:20px;font-size:20px;line-height:28px;opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"}.yoho-footer .footer-help{background:#000;font-size:12px;overflow:hidden}.yoho-footer .footer-help>div{padding:15px 0;border-top:1px solid #262626}.yoho-footer .footer-help ul{width:110%}.yoho-footer .footer-help p{line-height:24px}.yoho-footer .footer-help p span{color:#fff}.yoho-footer .footer-help p a{color:#666}.yoho-footer .footer-help p a:hover{text-decoration:underline}.yoho-footer .footer-help li{width:180px}.yoho-footer .footer-help .screen{border-top:1px solid #262626;padding:15px 0}.yoho-footer .footer-link{background:#000;padding:10px 0 30px;font-size:12px}.yoho-footer .footer-link .right-flag{margin-top:3px}.yoho-footer .footer-link .right-flag a{margin-right:5px}.yoho-footer .footer-link .about-us{line-height:20px;color:#666;margin-left:10px}.yoho-footer .footer-link .about-us a{color:#666}.yoho-footer .footer-link .about-us span{padding:0 10px}.yoho-footer .return-top{position:fixed;width:60px;height:60px;left:50%;margin-left:595px;text-align:center;line-height:50px;color:#fff;background:#000;opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";bottom:20px;cursor:pointer;z-index:4}.yoho-footer .return-top .iconfont{font-size:34px}.yoho-footer .return-top:hover{opacity:.9;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=90)"}.yoho-footer .return-top.min{left:100%;right:20px;margin-left:auto}.min-screen .yoho-footer .index-foot dd{width:316px}.min-screen .yoho-footer .two-dim{margin-top:26px;margin-bottom:10px;overflow:hidden}.min-screen .yoho-footer .dim-img{width:69px;height:69px}.min-screen .yoho-footer .mobile{margin-top:26px;padding-bottom:15px}.min-screen .yoho-footer .mobile img{width:85px;height:108px}.min-screen .yoho-footer .promise .left{margin-right:45px}.min-screen .yoho-footer .subscribe{width:200px}.min-screen .yoho-footer .subscribe input{width:140px}.min-screen .yoho-footer .footer-help li{width:150px}.path-nav{font-size:12px;padding:15px 0;height:18px;line-height:18px}.path-nav,.path-nav a{color:#666}.path-nav .iconfont{font-size:12px}.path-nav .last{font-weight:700}.slider{position:relative;height:327px;width:100%;overflow:hidden}.slider img{max-width:100%;max-height:100%}.slide-pagination{position:absolute;left:0;right:0;bottom:12px;text-align:center}.slide-pagination-inner{display:inline-block;position:relative;padding:7px;vertical-align:middle}.slide-shade{position:absolute;left:0;right:0;top:0;bottom:0;background:#000;opacity:.3;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";border-radius:13px}.slide-pagination-last span{display:block;float:left;position:relative;margin:0 7px;width:12px;height:12px;background:#fff;cursor:pointer;opacity:.6;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";border-radius:6px;z-index:2}.slide-pagination-last span.focus{opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}.slide-switch{display:none}.slide-switch a{display:block;position:absolute;top:50%;margin:-30px 0 0;width:60px;height:60px;line-height:56px;text-align:center;z-index:2;background:#fff;opacity:.55;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=55)"}.slide-switch a .iconfont{font-size:32px;color:#59585a}.slide-switch a:hover{opacity:.9;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=90)"}.slide-switch .prev{left:0}.slide-switch .next{right:0}.slide-switch.show{display:block}.yoho-dialog{position:fixed;padding:20px;top:50%;left:50%;min-height:130px;min-width:350px;background:#f8f8f8;z-index:12;border:5px solid rgba(0,0,0,.38)}.yoho-dialog .close{position:absolute;top:5px;right:5px;cursor:pointer}.yoho-dialog .btns,.yoho-dialog .content{text-align:center}.yoho-dialog .alert-sure,.yoho-dialog .confirm-sure{background:#000;color:#fff}.yoho-dialog .btn{display:inline-block;width:56px;height:26px;line-height:26px;text-align:center;border:1px solid #000;cursor:pointer;margin-left:10px}.yoho-dialog .btn:first-child{margin-left:0}.yoho-dialog.alert-dialog .content,.yoho-dialog.confirm-dialog .content{width:350px;height:auto;min-height:90px;overflow:hidden;line-height:20px;position:relative;padding-top:40px;padding-bottom:20px}.yoho-dialog.alert-dialog .content p,.yoho-dialog.confirm-dialog .content p{position:absolute;left:0;bottom:25px;width:100%;color:#444;line-height:25px}.yoho-dialog.alert-dialog .content div,.yoho-dialog.confirm-dialog .content div{position:absolute;top:0;left:100px;padding-top:30px;font-size:22px;font-weight:700;width:150px;height:30px;line-height:30px;margin:0 auto}.yoho-dialog.alert-dialog .content div span,.yoho-dialog.confirm-dialog .content div span{background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:0 -272px;float:left;width:27px;height:30px}.yoho-dialog.subcontent-dialog{padding:30px 0}.yoho-dialog.subcontent-dialog .content{font-weight:700;margin:0 auto 30px}.yoho-dialog.subcontent-dialog .sub-content{text-align:center;font-size:12px;color:#555;margin-left:5px;margin-bottom:5px}.yoho-dialog.subcontent-dialog .btn{margin-top:25px;width:100px;font-size:13px;margin-left:0;margin-right:0}.yoho-dialog.subcontent-dialog .btn.black{background-color:#000;color:#fff}.pager{font-size:12px}.pager a{height:24px;padding:0 9px;line-height:24px;display:inline-block;text-align:center;margin-right:8px;color:#222}.pager a.cur{color:#fff;background-color:#222}.pager a:first-child .iconfont{right:auto;left:-5px}.pager .iconfont{position:relative;vertical-align:middle;bottom:1px;right:-5px;font-size:14px}.err-page{width:650px;height:200px;overflow:hidden;margin:100px auto}.err-page .tips-404{float:left;height:200px;padding-left:20px}.err-page .tips-404 .tip{font-size:24px;color:#000;margin-top:55px}.err-page .tips-404 .links{font-size:12px;color:#666;margin-top:15px}.err-page:before{content:'';display:block;width:200px;height:200px;background:url(../assets/img/404.png?v155ba59e176) 50% no-repeat;float:left}.share-wrapper{position:relative}.share-wrapper i{display:block;float:left;width:16px;height:16px;margin-left:5px;cursor:pointer}.share-wrapper .weibo{background-position:0 0}.share-wrapper .tweibo,.share-wrapper .weibo{background-image:url(../assets/img/sprite.share.png?v155ba59fd53)}.share-wrapper .tweibo{background-position:-18px 0}.share-wrapper .renren{background-position:0 -18px}.share-wrapper .qzone,.share-wrapper .renren{background-image:url(../assets/img/sprite.share.png?v155ba59fd53)}.share-wrapper .qzone{background-position:-18px -18px}.share-wrapper .qq{background-position:-36px 0}.share-wrapper .douban,.share-wrapper .qq{background-image:url(../assets/img/sprite.share.png?v155ba59fd53)}.share-wrapper .douban{background-position:-36px -18px}.share-wrapper .weixin{background-image:url(../assets/img/sprite.share.png?v155ba59fd53);background-position:0 -36px}.share-wrapper .weixin-share-box{display:none;position:absolute;width:282px;height:302px;padding-top:9px;text-align:center;font-family:Microsoft Yahei,Arial,Verdana;top:22px;right:-26px;z-index:2}.share-wrapper .weixin-share-box em,.share-wrapper .weixin-share-box em i{position:absolute;width:0;height:0;font-size:0;border-width:0 10px 9px;border-style:dashed dashed solid}.share-wrapper .weixin-share-box em{border-color:transparent transparent #d6d6d6;top:0;left:50%;margin-left:-10px}.share-wrapper .weixin-share-box em i{border-color:transparent transparent #e8e8e8;overflow:hidden;top:1px;left:-15px}.share-wrapper .weixin-share-box .con{position:relative;width:280px;height:300px;overflow:hidden;background-color:#fff;border:1px solid #d6d6d6;box-shadow:0 2px 4px #d1d1d1}.share-wrapper .weixin-share-box h2{display:block;height:46px;line-height:46px;background-color:#e8e8e8;color:#000;font-size:18px}.share-wrapper .weixin-share-box .pic,.share-wrapper .weixin-share-box .pic img{width:168px;height:168px}.share-wrapper .weixin-share-box .pic{overflow:hidden;margin:16px auto}.share-wrapper .weixin-share-box .w{font-size:13px;color:#9f9f9f;line-height:20px}.share-wrapper .weixin-share-box .close{position:absolute;width:45px;height:45px;line-height:45px;overflow:hidden;top:0;right:0;font-size:16px;color:#999}.product-search-page .goods-container{height:auto;padding:25px 0 0;position:relative;width:1160px}.product-search-page .goods-container .good-info{width:222px}.product-search-page .path-nav .last{font-weight:400}.product-search-page .path-nav .last span{font-weight:700}.min-screen .product-search-page .goods-container{height:auto;padding-top:25px;position:relative;width:1000px}.min-screen .product-search-page .goods-container .good-info{width:190px}.min-screen .product-search-page .goods-container .good-info .good-detail-img{height:255px}.min-screen .product-search-page .goods-container .block-next-page{width:190px;height:255px}.min-screen .product-search-page .filter-box .brand .attr-content{max-width:750px}.product-list-page .list-left{width:160px}.product-list-page .list-right{width:970px}.product-list-page .brand-banner{position:relative;height:150px;overflow:hidden}.product-list-page .brand-banner .opt-wrap{position:absolute;width:100%;height:32px;top:50%;margin-top:-16px;text-align:right}.product-list-page .brand-banner a,.product-list-page .brand-banner span{display:inline-block;height:20px;margin-right:5px;line-height:20px;border:1px solid #fff;padding:5px 10px;color:#fff;font-size:12px}.product-list-page .brand-banner .iconfont{font-size:13px}.product-list-page .brand-banner .brand-favor{margin-right:0;cursor:pointer}.product-list-page .brand-banner .coled{color:red}.product-list-page .brand-about{font-size:12px;line-height:150%}.product-list-page .sort-intro{margin-bottom:20px}.product-list-page .sort-intro .texts{width:386px;height:298px;padding:0 50px;border:1px solid #eaeceb;text-align:center;overflow:hidden}.product-list-page .sort-intro .name{font-size:30px;font-weight:700;margin-top:60px}.product-list-page .sort-intro .en-name{font-size:14px;font-weight:700}.product-list-page .sort-intro .desc{color:#666;margin-top:15px;font-size:12px;line-height:150%}.product-list-page .sort-intro .img{width:480px;height:300px}.product-list-page .sort-intro .key-entry{width:330px;margin:30px auto 0}.product-list-page .sort-intro .key-entry a{float:left;display:block;width:110px;line-height:20px;font-size:12px;color:#069;text-decoration:underline}.product-list-page .sell-signboard .left-list li{padding-left:0;height:auto;margin-bottom:10px;line-height:inherit}.product-list-page .sell-signboard .left-list li img{width:100%}.product-list-page.search-page .path-nav .last{font-weight:400}.product-list-page.search-page .path-nav .last span{font-weight:700}.min-screen .product-list-page .sort-intro .texts{width:346px;height:248px;padding:0 30px}.min-screen .product-list-page .sort-intro .name{margin-top:30px}.min-screen .product-list-page .sort-intro .img{width:400px;height:250px}.new-sale-page .sale-list-banner{width:100%;position:relative}.new-sale-page .sale-list-banner ul{overflow:hidden;width:100%;position:relative;z-index:1}.new-sale-page .sale-list-banner ul li{width:100%;height:100%;display:block;float:left;position:absolute;top:0;left:0}.new-sale-page .sale-list-pagation{z-index:2;position:absolute;left:0;bottom:50px;width:100%;height:20px;text-align:center}.new-sale-page .sale-list-pagation div{display:inline-block}.new-sale-page .sale-list-pagation span{display:block;width:20px;height:20px;background:url(../assets/img/product/default-normal.png?v155ba59f2de);float:left;margin:0 10px;cursor:pointer}.new-sale-page .sale-list-pagation span.active{background:url(../assets/img/product/default-active.png?v155ba59f2dd)}.new-sale-page .header-title{position:relative;width:100%;height:42px;margin:20px 0;text-align:center;font-size:20px}.new-sale-page .header-title .count-wrap{position:relative}.new-sale-page .header-title .count{background:#fff;padding:0 5px;color:#999;font-size:12px;margin-top:6px}.new-sale-page .header-title .line-through{position:absolute;bottom:9px;left:0;right:0;height:1px;border-top:1px dotted #999}.new-sale-page .new-banner img{display:block;width:100%}.new-sale-page .new-brands{position:relative;width:100%;margin-top:25px}.new-sale-page .new-brands>*{float:left}.new-sale-page .new-brands .next,.new-sale-page .new-brands .pre{position:absolute;display:block;width:40px;height:40px;line-height:40px;color:#fff;background:#e0e0e0;text-align:center;top:50%;margin-top:-20px;cursor:pointer;opacity:.8;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"}.new-sale-page .new-brands .next:hover,.new-sale-page .new-brands .pre:hover{opacity:.9;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=90)"}.new-sale-page .new-brands .pre{left:0}.new-sale-page .new-brands .next{right:0}.new-sale-page .new-brands .brands-wrap{position:relative;overflow:hidden;width:890px;height:76px;margin-left:40px}.new-sale-page .new-brands .brands{position:absolute;width:auto;height:76px}.new-sale-page .new-brands .brands li{float:left;margin-left:14px}.new-sale-page .new-brands .brands li a{display:block;width:164px;height:76px;line-height:76px;vertical-align:middle;text-align:center}.new-sale-page .new-brands .brands li img{vertical-align:middle;max-width:100%;max-height:100%;border:none}.new-sale-page .new-floor-title{position:relative;margin:35px auto;width:300px;height:31px;line-height:31px;font-size:18px;border:1px solid #000}.new-sale-page .new-floor-title .date{position:absolute;left:-1px;top:-1px;width:155px;height:33px;color:#fff;text-align:center;background:url(../assets/img/product/floor-title.png?v155ba59f2df)}.new-sale-page .new-floor-title .title{float:right;margin-right:40px}.min-screen .new-sale-page .new-brands .brands-wrap{width:730px}.filter-box{border:1px solid #dfdfdf}.filter-box .section{padding:10px 15px;font-size:12px;border-top:1px solid #dfdfdf}.filter-box .section:first-child{border-top:none;padding:5px 15px}.filter-box .title{float:left;width:75px;line-height:30px;font-weight:700}.filter-box .attr-content{margin-left:75px}.filter-box .multi-select{display:inline-block;width:60px;height:18px;line-height:18px;border:1px solid #555;color:#555;text-align:center;cursor:pointer}.filter-box .attr{display:block;float:left;padding:0 10px;margin-right:30px;line-height:30px;cursor:pointer;color:#666;-moz-user-select:none}.filter-box .attr a{color:#666}.filter-box .attr:first-child{margin-left:0}.filter-box .attr.checked,.filter-box .attr.checked a{color:#e01}.filter-box .attr:hover{text-decoration:underline}.filter-box .color .attr{margin-right:0}.filter-box .checked .color-block{width:16px;height:16px;border:2px solid #222;padding:2px;background-size:100%!important}.filter-box .checked .color-block .sub-color-block{display:block;width:16px;height:16px;background-position:50%!important}.filter-box .checked-conditions{line-height:30px;background:#eaeceb}.filter-box .checked-conditions .title{margin-top:5px}.filter-box .checked-conditions .tag{display:block;float:left;padding:0 10px;margin:5px 30px 5px 0;background:#000;color:#fff;cursor:pointer}.filter-box .checked-conditions .color-block{height:14px;width:14px;border:1px solid #fff;margin-bottom:-3px;background-size:100%!important;background-position:50%!important}.filter-box .checked-conditions .clear-checked{margin-top:5px;color:#999;float:right}.filter-box .checked-conditions .clear-checked:hover{color:#468fa2}.filter-box .checked-conditions .close{font-size:14px}.filter-box .sort-pre .active .attr{border:1px solid #000}.filter-box .sort-pre .attr{position:relative}.filter-box .active .sort-up-icon{visibility:visible}.filter-box .sort-up-icon{position:absolute;width:15px;height:9px;left:50%;margin-left:-7px;bottom:-17px;z-index:3;visibility:hidden;background:url(../assets/img/product/senior-up.png?v155ba59f2e3) no-repeat;background-position:50% 0}.filter-box .sort-sub-wrap{width:100%}.filter-box .sort-sub-wrap .sort-sub{border-top:1px solid #eaeceb;margin-top:15px;padding:0 0 15px}.filter-box .sort-sub-wrap .sort-sub .attr{padding-top:15px}.filter-box .brand{position:relative}.filter-box .brand .attr{box-sizing:border-box;width:20%;height:30px;margin:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.filter-box .brand .attr-content{max-width:900px}.filter-box .brand .brand-opt{position:absolute;right:20px;top:15px;color:#555}.filter-box .brand .multi .attr.checked,.filter-box .brand .multi .attr.checked a{color:#000}.filter-box .brand .brand-more{margin-right:10px;cursor:pointer}.filter-box .brand .brands-index{float:left;line-height:30px;margin-right:5px;cursor:pointer}.filter-box .brand .brands-index span{margin:0 3px;-moz-user-select:none}.filter-box .brand .brands-index span:first-child{margin-left:10px}.filter-box .brand .brands-index span.hover{color:red}.filter-box .brand .brand-search{float:left;height:18px;line-height:18px;border:1px solid #b0b0b0;margin-top:5px;margin-left:10px}.filter-box .brand .brand-search input{float:left;border:none;width:100px;height:18px;padding:0}.filter-box .brand .brand-search .btn{position:relative;display:inline-block;top:-1px;width:55px;height:20px;line-height:20px;background:#3a3a3a;color:#fff;text-align:center;cursor:default}.filter-box .brand .panel-body{padding:15px 20px;background:#f4f7f6;margin-top:5px;margin-left:10px}.filter-box .brand .panel-body .ul-scroll{overflow:auto;min-height:30px;max-height:150px}.filter-box .btns{display:none;margin-top:10px;text-align:center}.filter-box .multi .btns{display:block}.filter-box .multi-select-cancel,.filter-box .multi-select-ok{width:55px;height:24px;border:none;background:#000;color:#fff;font-size:14px;margin-right:20px;cursor:pointer;outline:none;font-family:Microsoft YaHei}.filter-box .multi-select-cancel.dis,.filter-box .multi-select-ok.dis{background:#ccc}.filter-box .ud-price-range{margin-top:2px}.filter-box .limit{height:22px;width:42px;border:1px solid #ccc;padding:0}.filter-box .price-sep{margin:0 5px}.filter-box .price-sure{height:24px;width:44px;background:#333;color:#fff;margin-left:10px;outline:none;border:none;font-size:12px;cursor:pointer}.filter-box .color-block{display:inline-block;height:22px;width:22px;border:1px solid #ccc;margin-bottom:-6px;margin-right:5px;background-size:100%!important;background-repeat:no-repeat!important;background-position:50%!important}.filter-box .senior{padding-bottom:6px}.filter-box .senior .attr-content{position:relative}.filter-box .senior .senior-attr-wrap>.attr:hover{text-decoration:none}.filter-box .senior-attr-wrap{position:relative}.filter-box .senior-attr-wrap>.attr.hover,.filter-box .senior-attr-wrap>.attr:hover{font-weight:700}.filter-box .senior-attr-wrap>.attr.hover>.iconfont,.filter-box .senior-attr-wrap>.attr:hover>.iconfont{visibility:hidden}.filter-box .senior-attr-wrap>.attr.hover .senior-up-icon,.filter-box .senior-attr-wrap>.attr:hover .senior-up-icon{visibility:visible}.filter-box .senior-sub{box-sizing:border-box;position:absolute;padding:0 15px 15px 91px;left:-91px;right:-16px;top:39px;background:#fff;border:1px solid #dfdfdf;border-top:0;z-index:2}.filter-box .senior-sub ul{max-width:950px}.filter-box .senior-sub .multi-select{position:absolute;top:20px;right:15px}.filter-box .senior-sub .attr{height:30px}.filter-box .senior-sub.multi .multi-select{display:none}.filter-box .senior-baffle{height:18px;margin-top:-18px;background:none}.filter-box .senior-content{padding-top:15px;border-top:1px solid #eaeceb}.filter-box .senior-up-icon{position:relative;width:100%;height:9px;z-index:3;margin-left:-11px;visibility:hidden;background:url(../assets/img/product/senior-up.png?v155ba59f2e3) no-repeat;background-position:50% 0;top:-1px;top:1px\9}.filter-box .checkbox{display:none;float:left}.filter-box .multi .checkbox{display:block;color:#ccc;font-size:12px;margin-right:3px}.filter-box .multi .checkbox.checked{color:#000}.filter-box .multi .checkbox.checked+span{color:#000;font-weight:700}.min-screen .filter-box .brand .attr{width:25%}:root .senior-up-icon,_:-ms-fullscreen{top:1px}.sort-pager{height:48px;background:#f5f7f6;line-height:48px;margin:10px 0}.sort-pager .checks,.sort-pager .sort-type{color:#999;font-size:12px;padding:0 10px}.sort-pager .checks .iconfont,.sort-pager .sort-type .iconfont{font-size:12px}.sort-pager .checks.active,.sort-pager .checks.checked,.sort-pager .sort-type.active,.sort-pager .sort-type.checked{color:#000;font-weight:700}.sort-pager .checks.active .iconfont,.sort-pager .checks.checked .iconfont,.sort-pager .sort-type.active .iconfont,.sort-pager .sort-type.checked .iconfont{font-weight:100}.sort-pager .checks .iconfont{background:#fff}.sort-pager .sort-type:first-child .iconfont{display:none}.sort-pager .pager-wrap{float:right;padding:15px 0}.sort-pager .page-count{position:relative;height:18px;float:left;font-size:12px;line-height:18px}.sort-pager .page-count>span{float:left;display:block;width:42px;height:10px;line-height:10px;padding:3px;border:1px solid #ccc;color:#222;cursor:pointer;margin-right:10px;background:#fff}.sort-pager .page-count .iconfont{font-size:14px;color:#ccc;float:right}.sort-pager .page-count>ul{position:absolute;display:none;width:48px;border-left:1px solid #ccc;border-right:1px solid #ccc;background:#fff;z-index:1}.sort-pager .page-count li{padding:0 3px;border-bottom:1px solid #ccc}.sort-pager .page-count li:hover{background:#376cf7;color:#fff}.sort-pager .page-count a{display:block;width:100%}.sort-pager .page-orient{float:left;font-size:14px;line-height:15px;margin:0 20px}.sort-pager .page-orient .dis-icon{color:#e6e6e6}.sort-pager .page-orient i{color:red}.good-info{margin-bottom:35px;width:222px;margin-right:10px;float:left}.good-info .good-detail-img{width:100%;height:300px;position:relative}.good-info .good-detail-img .good-thumb,.good-info .good-detail-img img.lazy{display:block;overflow:hidden;width:100%;height:100%}.good-info .good-detail-img .few-tag{width:100%;position:absolute;left:0;height:16px;line-height:16px;background:#ffac5b;color:#fff;font-size:12px;text-align:center;bottom:0}.good-info .good-detail-text{color:#222;font-size:12px;text-align:left;overflow:hidden}.good-info .good-detail-text>a{margin-top:16px;line-height:1.5;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.good-info .good-detail-text>.price{margin-top:5px}.good-info .good-detail-text .brand a{color:#666;line-height:1.5}.good-info .good-detail-text .market-price{text-decoration:line-through;color:#999}.good-info .col-btn{position:absolute;top:15px;right:15px;color:#ccc;font-size:12px}.good-info .col-btn.coled{color:#f95b4f}.good-info .tag-container{font-size:12px;height:22px;line-height:22px}.good-info .tag-container .good-tag{float:left;box-sizing:border-box;display:block;height:22px;padding:0 7px;margin-right:3px;color:#fff}.good-info .tag-container .good-tag:nth-last-of-type(1){margin-right:0}.good-info .tag-container .new-tag{background:#78dc7d}.good-info .tag-container .renew-tag{background:#78dc7e}.good-info .tag-container .running-man-tag{background-color:#017df9;color:#f7ed02}.good-info .tag-container .sale-tag,.good-info .tag-container .yep-tag,.good-info .tag-container .ymp-tag{background:#ff565b}.good-info .tag-container .limit-tag{color:#4e4e4e;border:1px solid #4e4e4e}@keyframes a{0%{max-width:0}to{max-width:150px}}.good-item-wrapper{border:1px solid #ddd;padding-left:20px;padding-top:18px;padding-right:20px;position:absolute;background:#fff;display:none}.good-item-wrapper .good-info-main{float:left}.good-item-wrapper .col-btn{display:block}.good-item-wrapper .col-btn:hover{cursor:pointer}.good-item-wrapper .good-select-color{float:left;margin-top:22px;overflow:hidden;animation:a .6s 1}.good-item-wrapper .good-select-color ul{display:block;float:left;margin-left:15px}.good-item-wrapper .good-select-color li{width:50px;margin-bottom:15px}.good-item-wrapper .good-select-color li a,.good-item-wrapper .good-select-color li img{display:block;overflow:hidden;width:100%}.block-next-page,.good-item-wrapper .good-info{margin-right:10px}.block-next-page{width:222px;height:297px;padding-top:22px;margin-bottom:35px;float:left;cursor:pointer}.block-next-page a{display:block}.block-next-page a img{width:100%;height:100%;display:block;overflow:hidden}.latest-walk{overflow:hidden;border-top:2px solid #eaeceb;font-size:12px}.latest-walk h2{padding-top:15px;font-size:14px}.latest-walk .goods{min-width:984px;height:241px;margin:30px 0;overflow:hidden}.latest-walk .good{float:left;margin-right:14px;width:150px}.latest-walk img{display:block;width:150px;height:201px}.latest-walk .name{display:block;height:18px;line-height:18px;max-width:150px;margin:5px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.latest-walk .market-price{color:#999;margin-right:5px;text-decoration:line-through}.latest-walk .sale-price{color:#000;font-weight:700}.min-screen .latest-walk .goods{width:820px;min-width:820px;height:301px}.min-screen .latest-walk .good{margin-right:10px;width:195px}.min-screen .latest-walk img{width:195px;height:261px}.product-page .sort-container{width:100%;font-size:12px;border-bottom:1px solid #ebebeb;padding-bottom:10px;margin-bottom:10px}.product-page .sort-container h2{height:28px;line-height:28px;color:#222;font-weight:700;position:relative}.product-page .sort-container h2 span{color:#bbb;padding-left:5px}.product-page .product-list-nav h3{height:28px;line-height:28px;color:#222;font-weight:700;position:relative;text-indent:10px;cursor:pointer}.product-page .product-list-nav h3 span{color:#bbb;padding-left:5px}.product-page .product-list-nav h3 span.icon-triangle{display:inline-block;padding-left:0;width:0;height:0;border-top:6px solid #fff;border-left:6px solid #000;border-bottom:6px solid #fff;position:absolute;top:50%;margin-top:-6px;left:0;transition:transform .3s}.product-page .product-list-nav.active .icon-triangle{transform:rotate(90deg)}.product-page .product-list-nav.active .sort-child-list{display:block}.product-page .sort-child-list{display:none}.product-page .sort-child-list li{color:#bbb}.product-page .sort-child-list li span{padding-left:5px;color:#bbb}.product-page .sort-child-list li.active{background:#333;color:#fff}.product-page .sort-child-list li.active a{color:#fff}.product-page .sort-child-list a{display:block;color:#666;padding-left:10px;height:22px;line-height:22px}.product-page .sort-child-list.new-sale{display:block}.product-page .nav-pic-title{height:35px;line-height:35px;color:#000;font-weight:700;border-bottom:1px solid #ebebeb;font-size:12px}.product-page .pic-nav{display:block}.product-page .pic-nav li{margin-bottom:10px}.product-page .pic-nav img,.product-page .pic-nav li{display:block;width:100%;overflow:hidden}.product-page .brand-ad img,.product-page .brand-card img{max-width:100%}.product-page .no-result{border:1px solid #eaeceb;padding:60px 0;text-align:center;margin-bottom:20px}.product-page .no-result .no-title{font-size:16px}.product-page .no-result .keyword{color:#e01}.product-page .no-result .search-again{width:490px;margin:15px auto}.product-page .no-result .search-again input{float:left;width:380px;height:18px;padding:15px 5px;border:10px solid #343434;color:#333;outline:none;box-sizing:content-box}.product-page .no-result .search-again .search-again-btn{float:left;width:80px;height:68px;line-height:68px;background:#343434;vertical-align:middle;color:#fff;cursor:pointer;outline:none;border:none}.product-page .no-result .search-again .iconfont{font-size:30px}.product-page .no-result .no-tip{font-size:12px;color:#999}.hotrank-page .popular-list{width:1160px}.hotrank-page .popular-list li{position:relative;float:left;width:378px;height:596px;overflow:hidden;list-style:none;margin:0 8px 0 0}.hotrank-page .popular-list li .item-img{width:100%;height:506px;line-height:506px;text-align:center;overflow:hidden}.hotrank-page .popular-list li img{display:block;width:100%;height:100%}.hotrank-page .popular-list .polular-icon{position:absolute;top:0;right:0;width:50px;height:50px;line-height:60px;background:#ffc513 url(../assets/img/product/hotrank/popular-icon.png?v155ba59f34e) no-repeat 50%;text-align:center;color:#ffc513;font-weight:700}.hotrank-page .popular-list .item-content{width:100%;padding:14px 0 0;height:77px;overflow:hidden;text-align:center;color:#222;line-height:18px}.hotrank-page .popular-list .item-content h2{max-height:36px;font-size:12px;color:#000;line-height:18px;text-align:center;overflow:hidden}.hotrank-page .popular-list .item-content p{display:inline-block;margin:3px 0 0;font-size:12px;text-align:center;line-height:20px;color:#000}.hotrank-page .popular-list .item-content p span{text-decoration:line-through;margin:0 10px 0 0;color:#999}.hotrank-page .popular-list .popular-item6,.hotrank-page .popular-list .popular-item7,.hotrank-page .popular-list .popular-item8,.hotrank-page .popular-list .popular-item9{width:280px;height:464px;margin:0 10px 0 0;overflow:hidden}.hotrank-page .popular-list .popular-item6 .item-img,.hotrank-page .popular-list .popular-item7 .item-img,.hotrank-page .popular-list .popular-item8 .item-img,.hotrank-page .popular-list .popular-item9 .item-img{height:374px;line-height:374px}.hotrank-page .hot-week{position:relative;padding:0 0 40px}.hotrank-page .hot-cate{height:45px;background:#f5f7f6;overflow:hidden}.hotrank-page .hot-cate li{float:left;height:45px;line-height:45px;display:table-cell}.hotrank-page .hot-cate li a{vertical-align:middle;padding:0 26px;font-size:14px;color:#777;border-left:1px solid #999}.hotrank-page .hot-cate li:first-child a{border:none}.hotrank-page .hot-cate li.current a{font-size:16px;color:#000}.hotrank-page .hot-week-list{width:1160px}.hotrank-page .hot-week-list .good-info{width:280px;height:464px;margin:10px 10px 0 0}.hotrank-page .hot-week-list .good-info .tag-container{display:none}.hotrank-page .hot-week-list .good-info .good-detail-img{height:374px;line-height:374px;text-align:center;font-size:0}.hotrank-page .hot-week-list .good-info .good-detail-img img{vertical-align:middle}.hotrank-page .hot-week-list .good-info .good-detail-text{height:77px;overflow:hidden;text-align:center;color:#222;line-height:18px}.hotrank-page .hot-week-list .good-info .good-detail-text a{max-height:36px;font-size:12px;color:#000;line-height:18px;text-align:center;overflow:hidden}.hotrank-page .hot-week-list .good-info .good-detail-text p{display:inline-block;margin:3px 0 0;font-size:12px;text-align:center;line-height:20px;color:#000}.hotrank-page .hot-week-list .good-info .good-detail-text p .sale-price{margin:0 10px 0 0}.hotrank-page .floatlayer{display:none;position:fixed;top:50%;left:50%;margin:0 0 0 575px;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"}.hotrank-page .floatlayer li{width:42px;height:42px;border:2px solid #555;border-top:none;border-bottom-width:1px;text-align:center}.hotrank-page .floatlayer li a{position:relative;display:table-cell;width:42px;height:42px;vertical-align:middle;color:#555;font-size:12px}.hotrank-page .floatlayer li a span{display:inline-block;vertical-align:middle;width:28px;word-wrap:break-word}.hotrank-page .floatlayer li:first-child{border-top:1px solid #555}.hotrank-page .floatlayer li.current,.hotrank-page .floatlayer li:hover{background:#555}.hotrank-page .floatlayer li.current a,.hotrank-page .floatlayer li:hover a{color:#fff}.min-screen .hotrank-page{width:990px}.min-screen .hotrank-page .popular-list li{width:324px;height:521px}.min-screen .hotrank-page .popular-list li .item-img{height:434px;line-height:434px}.min-screen .hotrank-page .popular-list .popular-item6,.min-screen .hotrank-page .popular-list .popular-item7,.min-screen .hotrank-page .popular-list .popular-item8,.min-screen .hotrank-page .popular-list .popular-item9{width:240px;height:408px}.min-screen .hotrank-page .popular-list .popular-item6 .item-img,.min-screen .hotrank-page .popular-list .popular-item7 .item-img,.min-screen .hotrank-page .popular-list .popular-item8 .item-img,.min-screen .hotrank-page .popular-list .popular-item9 .item-img{height:320px;line-height:320px}.min-screen .hotrank-page .hot-week-list .good-info{width:240px;height:408px}.min-screen .hotrank-page .hot-week-list .good-info .good-detail-img{height:320px;line-height:320px}.shop-entry-area{width:100%;height:auto;overflow:hidden;display:none}.shop-entry-area .shop-entry:first-child{margin-left:0}.shop-entry{position:relative;background:#f5f7f6;border:1px solid #eaeceb;padding:12px 15px;width:49%;box-sizing:border-box;float:left;margin:0 0 10px 2%}.shop-entry .logo{width:80px;height:50px}.shop-entry .name{margin-left:10px;width:70%}.shop-entry .shop-name{font-size:16px;color:#222;line-height:26px;height:26px}.shop-entry .shop-name,.shop-entry .sorts{width:100%;display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.shop-entry .sorts{color:#999;font-size:12px;line-height:18px;height:18px}.shop-entry .sorts a{color:#999}.shop-entry .entry-btn{position:absolute;right:15px;top:50%;width:110px;height:32px;line-height:32px;margin-top:-16px;background:#222;text-align:center;color:#fff;font-size:12px}.shop-entry .entry-btn .iconfont{font-size:12px}.goods-container{height:auto;padding:25px 0 0;position:relative;width:980px}.goods-container .good-info{width:235px}.product-detail-page .brand-banner{height:45px;width:100%}.product-detail-page .brand-banner img{display:block;height:45px}.product-detail-page .brand-banner .opt{margin-top:5px}.product-detail-page .brand-banner .brand-fav,.product-detail-page .brand-banner .home{display:inline-block;width:32px;height:32px;line-height:32px;border:1px solid #fff;text-align:center;color:#fff;cursor:pointer}.product-detail-page .brand-banner .home{margin-right:5px}.product-detail-page .brand-banner .home .iconfont{font-size:14px}.product-detail-page .brand-banner .brand-fav .iconfont{font-size:13px}.product-detail-page .brand-banner .coled{color:#ee0014}.product-detail-page .path-nav{border:none;margin-bottom:0}.product-detail-page .main{width:990px;margin:0 auto}.product-detail-page .main .infos{width:465px}.product-detail-page .main .img{position:relative;width:420px;height:560px}.product-detail-page .main .img-show{display:block;width:100%;height:100%}.product-detail-page .main .tags{position:absolute;top:0;left:0}.product-detail-page .main .good-tag{float:left;box-sizing:border-box;height:22px;line-height:22px;color:#fff;padding:0 7px;margin-right:5px;font-size:12px}.product-detail-page .main .new-tag{background:#78dc7d}.product-detail-page .main .renew-tag{background:#78dc7e}.product-detail-page .main .running-man-tag{background-color:#017df9;color:#f7ed02}.product-detail-page .main .sale-tag,.product-detail-page .main .yep-tag,.product-detail-page .main .ymp-tag{background:#ff565b}.product-detail-page .main .few-tag{background:#ffac5b}.product-detail-page .main .limit-tag{border:1px solid #4e4e4e;color:#4e4e4e;background:#fff}.product-detail-page .main .thumbs{width:75px;height:510px;margin-left:2px;overflow:hidden}.product-detail-page .main .thumb{display:block;width:75px;cursor:pointer;margin-bottom:2px}.product-detail-page .main .name{font-size:18px;font-weight:700;line-height:24px}.product-detail-page .main .sale-tip{color:#ee0014;padding-left:3px}.product-detail-page .main .brand-name{color:#666;font-size:12px}.product-detail-page .main .title{color:#999;font-size:12px}.product-detail-page .main .market-price{margin-top:8px}.product-detail-page .main .price{color:#000;font-size:22px;line-height:24px;font-weight:700}.product-detail-page .main .has-other-price{color:#999;text-decoration:line-through;font-size:12px}.product-detail-page .main .arrival-date{color:#ee0014;font-size:14px;font-weight:700;margin-left:24px}.product-detail-page .main .vip-price{line-height:14px;color:#222;margin-top:5px;background:url(../assets/img/product/vip-price-icon.png?v155ba59f2ec) no-repeat;padding-left:48px;font-size:12px}.product-detail-page .main .vip-price .cur,.product-detail-page .main .vip-price .login-url{color:#f02200}.product-detail-page .main .vip-price .vip-price-item{margin-left:5px}.product-detail-page .main .vip-price .vip-schedual{color:#999;text-decoration:underline;margin-left:5px}.product-detail-page .main .activity{margin-top:12px}.product-detail-page .main .activity li{line-height:20px}.product-detail-page .main .ac-type{display:inline-block;min-width:50px;max-width:100px;height:16px;line-height:16px;margin-right:5px;padding:0 5px;text-align:center;background:#999;color:#fff;font-size:12px;overflow:hidden;vertical-align:middle}.product-detail-page .main .ac-des{font-size:12px}.product-detail-page .main .row{margin-top:10px}.product-detail-page .main .trade-content{padding-top:20px;margin-top:20px;border-top:1px solid #eaeceb}.product-detail-page .main .chose-color{font-size:12px}.product-detail-page .main .chose-color .title{margin-top:14px}.product-detail-page .main .chose-color img{display:block;height:36px;width:36px;border:2px solid #fff}.product-detail-page .main .chose-color .focus img{border-color:#222}.product-detail-page .main .chose-color li{margin-right:5px;margin-bottom:5px;cursor:pointer}.product-detail-page .main .chose-size{font-size:12px}.product-detail-page .main .chose-size .title{margin-top:6px}.product-detail-page .main .chose-size li{float:left;display:block;height:22px;line-height:22px;margin-right:5px;margin-bottom:5px;padding:0 5px;border:1px solid #eaeceb;text-align:center;cursor:pointer;min-width:28px}.product-detail-page .main .chose-size li.disable{opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"}.product-detail-page .main .chose-size li.focus{color:#fff;background:#222}.product-detail-page .main .size-wrapper{width:415px}.product-detail-page .main .size{float:left;color:#666}.product-detail-page .main .size-ruler{float:left;display:block;width:57px;height:24px;background:url(../assets/img/product/size-ruler.jpg?v155ba59f2ea);margin-bottom:5px;cursor:pointer}.product-detail-page .main .num-warn,.product-detail-page .main .size-warn{float:left;height:24px;line-height:24px}.product-detail-page .main .color-size-tip{color:#999;clear:both;line-height:18px}.product-detail-page .main .chose-count .title{margin-top:6px}.product-detail-page .main .num{display:block;width:38px;height:23px;line-height:23px;text-align:center;border:1px solid #eaeceb;color:#333;font-size:12px;background:#ebebe4}.product-detail-page .main .minus-plus{display:block;width:14px;height:23px;border:1px solid #eaeceb;border-left:none;text-align:center;cursor:pointer}.product-detail-page .main .minus-plus i{display:block;width:13px;height:11px;line-height:8px;font-size:12px;-moz-user-select:none}.product-detail-page .main .minus-plus .dis{color:#999}.product-detail-page .main .minus{border-top:1px solid #eaeceb;font-size:13px}.product-detail-page .main .lc-btn{float:left;display:block;width:80px;height:25px;line-height:25px;color:#fff;background:#222;margin-left:10px;font-size:12px;text-align:center;cursor:default}.product-detail-page .main .lc-btn.dis,.product-detail-page .main .lc-btn.had-lc,.product-detail-page .main .lc-btn.lc-sold-out{background:#ccc}.product-detail-page .main .num-wraper{position:relative}.product-detail-page .main .lc-container{position:absolute;top:-39px;right:-233px;z-index:1}.product-detail-page .main .lc-arrow{position:absolute;top:40px;left:-12px;width:13px;height:20px;background:url(../assets/img/product/arrow.png?v155ba59f2da)}.product-detail-page .main .lc-content{box-sizing:border-box;width:220px;height:285px;text-align:center;background:#f8f8f8;border:1px solid #cecece;padding:40px 25px 0}.product-detail-page .main .lc-content .qr-code{width:137px;height:137px;background:url(../assets/img/product/top-good-qr.png?v155ba59f2eb);margin:0 auto}.product-detail-page .main .lc-content .title{font-size:18px;color:#000;margin:12px 0;line-height:24px}.product-detail-page .main .lc-content .sub-title{font-size:14px;color:#939290}.product-detail-page .main .buy-btn{display:inline-block;margin-right:10px;height:48px;line-height:48px;width:197px;text-align:center;color:#fff;background:#e92601;font-size:14px;cursor:pointer}.product-detail-page .main .buy-btn.hover{background:#eb3b19;background:rgba(233,38,1,.8)}.product-detail-page .main .buy-btn.dis{background:#ccc}.product-detail-page .main .collect-product,.product-detail-page .main .keep-shopping{display:inline-block;width:127px;height:48px;text-align:center;line-height:48px;background:#fff;color:#222;border:1px solid #ccc;font-weight:700;font-size:12px;cursor:pointer}.product-detail-page .main .collect-product .iconfont,.product-detail-page .main .keep-shopping .iconfont{color:#ccc;font-size:14px}.product-detail-page .main .collect-product.coled .iconfont,.product-detail-page .main .keep-shopping.coled .iconfont{color:#fa5252}.product-detail-page .main .share-row{margin-top:20px}.product-detail-page .main .share-row .title{margin-top:2px}.product-detail-page .main .balance{display:none}.product-detail-page .main .balance .success-tip{color:#222;font-size:18px;margin-bottom:10px}.product-detail-page .main .balance .cart-total{color:#999;font-size:12px}.product-detail-page .main .balance .balance-btns{margin-top:20px}.product-detail-page .other-infos{padding-bottom:30px}.product-detail-page .info-block{margin-top:30px;color:#999;border-top:2px solid #eaeceb;font-size:12px}.product-detail-page .info-block .basic{width:640px;margin:0 auto}.product-detail-page .info-block .basic li{float:left;width:25%;line-height:20px}.product-detail-page .info-block .comfort{width:470px;border:1px solid #eaeceb;margin:17px auto 0;padding-bottom:15px}.product-detail-page .info-block .comfort li{margin:12px 20px 0}.product-detail-page .info-block .comfort-block{display:inline-block;width:14px;height:10px;border:1px solid #eaeceb;margin-right:2px}.product-detail-page .info-block .comfort-block.cur{background:#999;border:1px solid #999}.product-detail-page .block-title{margin-bottom:25px;text-align:center}.product-detail-page .block-title .title{display:inline-block;padding-top:15px;font-weight:700;cursor:pointer}.product-detail-page .block-title .title.cur{color:#222;border-top:2px solid #222;margin-top:-2px}.product-detail-page .block-title .sep{display:inline-block;margin:0 30px;color:#eaeceb;font-size:14px;cursor:default;font-weight:700}.product-detail-page .description-content{overflow:hidden}.product-detail-page .material-content{display:none;overflow:hidden}.product-detail-page .material-detail li{width:860px;padding-bottom:20px;border-bottom:1px dotted #eaeceb;margin:0 auto 20px}.product-detail-page .material-detail li img{float:left;width:125px;height:50px}.product-detail-page .material-detail li .name{float:left;width:100px;line-height:25px;border-right:1px dotted #eaeceb;color:#666;font-weight:700;text-align:center;font-size:14px}.product-detail-page .material-detail li .text{float:left;width:614px;padding-left:20px;line-height:18px}.product-detail-page .wash{text-align:center}.product-detail-page .wash li{display:inline-block;padding:0 20px;color:#666;border-right:1px solid #eaeceb}.product-detail-page .size-info{text-align:center}.product-detail-page .fitting-report-table,.product-detail-page .reference-table,.product-detail-page .size-table{text-align:center;margin:0 auto}.product-detail-page .fitting-report-table th,.product-detail-page .reference-table th,.product-detail-page .size-table th{width:110px;text-align:center}.product-detail-page .fitting-report-table tr,.product-detail-page .reference-table tr,.product-detail-page .size-table tr{height:30px}.product-detail-page .fitting-report-table td,.product-detail-page .fitting-report-table tr,.product-detail-page .reference-table td,.product-detail-page .reference-table tr,.product-detail-page .size-table td,.product-detail-page .size-table tr{text-align:center}.product-detail-page .fitting-report-table thead,.product-detail-page .reference-table thead,.product-detail-page .size-table thead{background:#f5f7f6;color:#999}.product-detail-page .fitting-report-table tbody,.product-detail-page .reference-table tbody,.product-detail-page .size-table tbody{color:#222}.product-detail-page .fitting-report-table .avatar,.product-detail-page .reference-table .avatar,.product-detail-page .size-table .avatar{width:26px;height:26px;border-radius:50px}.product-detail-page .fitting-report-table .avatar-col,.product-detail-page .reference-table .avatar-col,.product-detail-page .size-table .avatar-col{width:26px;padding-left:20px;padding-right:20px}.product-detail-page .fitting-report-table .model-col,.product-detail-page .reference-table .model-col,.product-detail-page .size-table .model-col{width:90px}.product-detail-page .fitting-report-table .remark-col,.product-detail-page .reference-table .remark-col,.product-detail-page .size-table .remark-col{width:200px}.product-detail-page .fr-img-wrap{width:100%;text-align:center}.product-detail-page .fr-img-wrap img{max-width:100%}.product-detail-page .ref-model{padding-top:10px}.product-detail-page .ref-model .model{width:444px;height:35px;padding-top:47px;padding-left:316px;color:#666;overflow:hidden;margin:10px auto 0}.product-detail-page .ref-model .model em{margin-left:5px}.product-detail-page .size-tip{color:#999;margin-top:15px;text-align:center}.product-detail-page .details{text-align:center;font-size:12px;color:#999;line-height:18px}.product-detail-page .details-html{width:750px;text-align:center;margin:0 auto}.product-detail-page .details-html b{font-weight:700}.product-detail-page .details-html i{font-style:italic}.product-detail-page .consults{display:none}.product-detail-page .consult-comment .title,.product-detail-page .consult-comment .title.cur{color:#666}.product-detail-page .cc-content{background:#f5f7f6;padding:20px 20px 0;font-size:12px}.product-detail-page .cc-content h2{font-weight:700;font-size:14px;margin-bottom:10px;color:#000}.product-detail-page .cc-content li{border-top:1px solid #eaeceb;padding:20px 0}.product-detail-page .cc-content .user-info{color:#999;line-height:16px}.product-detail-page .cc-content .user-info>*{float:left}.product-detail-page .cc-content .user-info .name{color:#666}.product-detail-page .cc-content .user-info .date{color:#bbb}.product-detail-page .cc-content .user-info .question{color:#222}.product-detail-page .cc-content .user-avatar{width:30px;height:30px;margin-right:5px}.product-detail-page .cc-content .more-wrap{text-align:center;border-top:1px solid #eaeceb;padding:20px 0;font-size:14px;font-weight:700;color:#666}.product-detail-page .cc-content .btn-wrap{padding:20px 0;border-top:1px solid #eaeceb}.product-detail-page .cc-content .load-more{cursor:pointer}.product-detail-page .cc-content .btn{display:block;width:140px;height:32px;line-height:32px;color:#fff;background:#222;text-align:center;font-size:12px;margin:0 auto;cursor:pointer}.product-detail-page .cc-content .btn .iconfont{font-size:14px}.product-detail-page .cc-content .comment,.product-detail-page .cc-content .consult{margin-top:10px}.product-detail-page .cc-content .consults{display:none}.product-detail-page .new-consult{padding:20px 0;border-top:1px solid #eaeceb}.product-detail-page .new-consult textarea{width:590px;height:80px;padding:5px;outline:none;resize:none}.product-detail-page .new-consult .submit-consult{display:block;width:140px;height:32px;line-height:32px;margin:8px 0 0}.product-detail-page .new-consult .error{border-color:#e01}.product-detail-page .consult-success{border-top:1px solid #eaeceb;margin-top:30px;text-align:center;padding:20px 0}.product-detail-page .consult-success p{width:295px;height:55px;line-height:55px;margin:0 auto;border:2px solid #222;display:block;color:#222;font-weight:700}.product-detail-page .after-service{text-align:center;margin-top:30px}.product-detail-page .after-service .after-service-content{display:none}.product-detail-page .after-service .after-service-switch{height:44px;line-height:44px;background:#eaeceb;text-align:center;font-size:12px;cursor:pointer}.product-detail-page .after-service .after-service-switch .iconfont{font-size:12px}.product-detail-page .after-service .text{padding:20px 15px;background:#f5f7f6;text-align:left;color:#666;line-height:18px}.product-detail-page .after-service .orange{color:#f9761a}.product-detail-page .after-service h4{font-weight:700;font-size:14px;line-height:24px;color:#222;margin-top:10px}.product-detail-page .after-service h4:first-child{margin-top:0}.product-detail-page .after-service .img-1{width:715px;height:259px;margin:0 auto;background:url(../assets/img/product/after-service-1.png?v155ba59f2d7)}.product-detail-page .after-service .img-2{width:715px;height:230px;margin:0 auto;background:url(../assets/img/product/after-service-2.png?v155ba59f2d8)}.product-detail-page .after-service a{color:#666}.product-detail-page .service{width:403px;height:19px;margin:45px auto;background:url(../assets/img/product/service.png?v155ba59f2e4)}.product-detail-page .latest-walk{overflow:inherit}.product-detail-page .latest-walk .goods{width:1010px;margin:0 auto;height:auto}.product-detail-page .latest-walk .goods>div{float:left;width:180px;margin-right:22px}.product-detail-page .latest-walk img{height:240px;width:180px;display:block}.product-detail-page .latest-walk .name{display:block;margin-top:5px;color:#222;line-height:16px}.product-detail-page .latest-walk .price{color:#222;font-weight:700;margin-top:5px}.product-detail-page .latest-walk .market-price{margin-right:5px}.product-detail-page .latest-walk .has-sale{text-decoration:line-through;color:#999}.product-detail-page .warn-tip{display:inline-block;color:#e01;margin-left:7px;font-size:12px}.product-detail-page .warn-tip i{font-size:14px}.product-detail-page .hot-point-wrap{position:relative;margin:0 auto}.product-detail-page .hot-point-wrap .hot-point{position:absolute;background:#fff\9;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0)}.product-detail-page .hot-point-wrap .hot-point.hover .pointer{background-position:0 -25px}.product-detail-page .hot-point-wrap .hot-point.hover .hp-good{display:block}.product-detail-page .hot-point-wrap .pointer{position:absolute;display:block;background:url(../assets/img/product/hp-num.png?v155ba59f2e2) no-repeat 0 0;color:#fff;cursor:pointer;width:25px;height:25px;line-height:25px;text-align:center;left:0;top:0;font-size:18px}.product-detail-page .hot-point-wrap .hp-good{display:none;position:absolute;left:30px;top:0;width:210px;background:#000;height:60px;padding:10px}.product-detail-page .hot-point-wrap .hp-good .pic{display:block;float:left;width:60px;height:60px;margin-right:10px}.product-detail-page .hot-point-wrap .hp-good .info{position:relative;float:left;color:#fff;font-size:12px;width:140px;height:60px;line-height:20px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:left}.product-detail-page .hot-point-wrap .hp-good .check-btn{display:block;position:absolute;height:18px;width:40px;text-decoration:none;right:0;bottom:0;text-align:center;background:#e8e8e8;border-radius:2px}.shop-index-page{margin:10px auto 30px;width:1150px}.shop-index-page .shop-banner{position:relative}.shop-index-page .shop-banner .shop-name{position:absolute;left:260px;bottom:20px;font-size:36px;color:#fff}.shop-index-page .shop-banner .banner-img{width:100%;height:150px}.shop-index-page .shop-banner .opt-wrap{position:absolute;top:65%;right:0;padding:0 10px}.shop-index-page .shop-banner .shop-collect,.shop-index-page .shop-banner .shop-intro{display:inline-block;width:110px;height:30px;margin-right:10px;font-size:16px;line-height:30px;text-align:center;color:#fff;border:1px solid #fff;cursor:pointer}.shop-index-page .shop-banner .shop-collect i,.shop-index-page .shop-banner .shop-intro i{background-repeat:no-repeat;float:left;position:relative;left:11px;top:5px}.shop-index-page .shop-banner .shop-collect .shop-intro-ico,.shop-index-page .shop-banner .shop-intro .shop-intro-ico{width:16px;height:20px;background-image:url(../assets/img/product/shop-instro.png?v155ba59f2e7);margin-right:12px}.shop-index-page .shop-banner .shop-collect .shop-collect-ico,.shop-index-page .shop-banner .shop-intro .shop-collect-ico{width:20px;height:19px;background-image:url(../assets/img/product/shop-collection.png?v155ba59f2e5);top:6px;margin-right:12px}.shop-index-page .shop-banner .shop-collect .shop-collect-ico.on,.shop-index-page .shop-banner .shop-intro .shop-collect-ico.on{background-image:url(../assets/img/product/shop-collection-on.png?v155ba59f2e4)}.shop-index-page .shop-nav{box-sizing:border-box;margin-bottom:30px;padding:0 20px;width:100%;height:40px;color:#fff;background:#000;font-size:16px}.shop-index-page .shop-nav a{position:relative;top:8px;display:inline-block;line-height:26px;color:#fff}.shop-index-page .shop-nav .nav-item{position:relative;float:left;width:160px;text-align:center}.shop-index-page .shop-nav .nav-item.first{width:100px;text-align:left}.shop-index-page .shop-nav .current a{border-bottom:2px solid #fff}.shop-index-page .coupon{margin-top:20px;width:100%;height:80px}.shop-index-page .coupon .coupon-title{width:162px;height:100%;background-image:url(../assets/img/sprite.product.png?v155ba59fd54);background-position:0 0}.shop-index-page .slider-wrap{height:360px}.shop-index-page .slider-wrap .slide-wrapper img{width:auto;height:auto}.shop-index-page .slider-left{float:left;margin-right:10px;width:660px;height:100%;overflow:hidden;position:relative}.shop-index-page .slider-left .slide-wrapper{height:358px}.shop-index-page .slider-left .slide-switch a.prev{margin-left:-330px}.shop-index-page .slider-left .slide-switch a.next{margin-right:-330px}.shop-index-page .slider-left img{width:100%;height:100%}.shop-index-page .slider-left .slide-pagination{display:none}.shop-index-page .slider-right{float:left;width:300px;height:100%}.shop-index-page .slider-right .slider-item{display:block;margin-bottom:10px;width:100%;height:175px}.shop-index-page .floor-header{margin-top:50px}.shop-index-page .hot-single,.shop-index-page .new-arrivel{width:980px}.shop-index-page .hot-single .item,.shop-index-page .new-arrivel .item{float:left;position:relative;margin-right:10px;margin-bottom:20px;width:235px;height:315px;font-size:14px;text-align:center;line-height:1.5;background:#f5f5f5;font-weight:700}.shop-index-page .hot-single .item img,.shop-index-page .new-arrivel .item img{width:235px;height:250px}.shop-index-page .hot-single .item .title,.shop-index-page .new-arrivel .item .title{width:220px;padding:0 5px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.shop-index-page .hot-single .hat,.shop-index-page .new-arrivel .hat{position:absolute;top:0;right:0;width:50px;height:50px;color:#ffc513;text-align:center;line-height:57px;background-image:url(../assets/img/sprite.product.png?v155ba59fd54);background-position:0 -82px}.shop-index-page .mask{background-color:#000;opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";position:fixed;top:0;left:0;right:0;bottom:0;z-index:12;display:none;cursor:pointer}.shop-index-page .pop-shop-intro{display:none}.shop-index-page .shop-intro-bg{width:908px;height:604px;background-color:#000;opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";position:fixed;left:50%;top:50%;z-index:13;margin:-302px 0 0 -454px}.shop-index-page .shop-intro-area{width:898px;height:594px;padding:60px 10px 35px 40px;background-color:#fff;position:fixed;left:50%;top:50%;margin:-297px 0 0 -449px;z-index:14;box-sizing:border-box}.shop-index-page .shop-intro-area .close-btn{width:18px;height:18px;background-image:url(../assets/img/product/shop-instro-close.png?v155ba59f2e7);position:absolute;right:20px;top:20px;cursor:pointer}.shop-index-page .shop-intro-area .brand-cont{overflow:auto;width:100%;height:499px;padding-right:30px;box-sizing:border-box}.shop-index-page .shop-intro-area .intro-title{float:left}.shop-index-page .shop-intro-area .intro-title h2{width:100%;float:left;text-align:left;font-size:26px;font-weight:700;color:#000;font-style:italic}.shop-index-page .shop-intro-area .intro-title p{font-family:黑体;font-size:20px;text-align:left;padding:10px 0;float:left}.shop-index-page .shop-intro-area .intro-cont{width:100%;float:left;margin-top:55px;font-size:14px;line-height:20px}.shop-index-page .shop-intro-area .intro-cont p{text-indent:2em}.shop-index-page .shop-intro-area .intro-cont img{width:100%;margin-top:10px}.shop-index-page .fixed-area{background:#fff;z-index:1;width:970px}.shop-index-page .all-goods-menu{width:100%;height:40px;line-height:40px}.shop-index-page .all-goods-menu .menu-tag{color:#d0021b;font-size:18px;font-weight:700;text-align:left;padding:0 20px 0 10px;border-right:1px solid #000;float:left}.shop-index-page .all-goods-menu .menu-list{width:810px;height:40px;overflow:hidden;float:left;font-size:14px}.shop-index-page .all-goods-menu .menu-list li{display:inline-block;padding:0 15px}.shop-index-page .all-goods-menu .menu-list .on{background:#000;height:28px;line-height:28px}.shop-index-page .all-goods-menu .menu-list .on a{color:#fff}.shop-index-page .all-goods-menu .more{font-size:14px;float:right}.shop-index-page .sort-pager .sort-type:first-child .iconfont{display:inline-block}.shop-index-page .loading{position:relative;width:100%;text-align:center}.shop-index-page .loading a{display:block;height:35px;width:120px;margin:0 auto;background-color:#000;color:#fff;font-size:14px;line-height:35px;text-align:center}.shop-index-page .trend-info,.shop-index-page .trend-info .trend-list{width:100%}.shop-index-page .trend-info .trend-list li{float:left;width:316px;margin-left:10px;text-align:center}.shop-index-page .trend-info .trend-list li:first-child{margin-left:0}.shop-index-page .trend-info .trend-list img{width:100%;height:181px}.shop-index-page .trend-info .trend-list .main-title,.shop-index-page .trend-info .trend-list .sub-title{box-sizing:border-box;font-size:16px;margin-top:15px;padding:0 10px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:24px}.shop-index-page .trend-info .trend-list .sub-title{margin-top:0;font-size:14px}.shop-index-page .goods-wrap .goods-container .good-info{width:235px;height:auto;margin-bottom:35px}.shop-index-page .goods-wrap .goods-container .good-detail-text{text-align:left}.shop-index-page .left-modular{width:160px;font-size:14px;margin-top:20px;float:left}.shop-index-page .left-modular .title{width:100%;height:25px;line-height:25px;background:#000;color:#fff;font-family:黑体;padding-left:14px;box-sizing:border-box}.shop-index-page .left-modular .left-list{width:100%;margin-top:5px}.shop-index-page .left-modular .left-list li{width:100%;height:42px;line-height:42px;background:#f5f5f5;float:left;box-sizing:border-box;margin-top:5px;padding-left:14px}.shop-index-page .left-modular .left-list li a{color:#000}.shop-index-page .left-modular .left-list li.on{border:1px solid #000}.shop-index-page .classic-recommend .left-list li{height:50px;line-height:50px}.shop-index-page .classic-recommend .classic-name{width:96px;display:inline-block;line-height:14px;vertical-align:middle;font-weight:700}.shop-index-page .classic-recommend .classic-name .name{font-size:14px}.shop-index-page .classic-recommend .classic-name .en-name{font-size:12px}.shop-index-page .classic-recommend img{width:40px;max-height:40px;margin-right:5px;vertical-align:middle}.shop-index-page .sell-recommend .left-list li{padding-left:0;height:auto;margin-bottom:25px;line-height:inherit}.shop-index-page .sell-recommend .left-list li img{width:100%}.shop-index-page ::-webkit-scrollbar{width:16px;height:16px}.shop-index-page ::-webkit-scrollbar-thumb,.shop-index-page ::-webkit-scrollbar-track{border-radius:999px;border:5px solid transparent}.shop-index-page ::-webkit-scrollbar-track{box-shadow:inset 0 0 6px transparent}.shop-index-page ::-webkit-scrollbar-thumb{min-height:20px;background-clip:content-box;box-shadow:inset 0 0 0 6px rgba(0,0,0,.3)}.shop-index-page ::-webkit-scrollbar-corner{background:transparent}.shop-index-page .page-nav{padding:7px 0;float:right;font-size:14px}.shop-index-page .page-nav .page-prev{width:33px;height:33px;background:#ccc;text-align:center;float:left}.shop-index-page .page-nav .arrow-left{width:10px;height:10px;display:inline-block;position:relative;top:-7px;background:url(../assets/img/product/arrow-left.png?v155ba59f2d9) no-repeat}.shop-index-page .page-nav a .page-next,.shop-index-page .page-nav a .page-prev{background:#000;color:#fff}.shop-index-page .page-nav .page-next{min-width:110px;height:33px;background:#a9a9a9;float:left;margin-left:1px;line-height:33px;padding-left:10px;box-sizing:border-box;padding-right:10px}.shop-index-page .page-nav .arrow-right{width:10px;height:10px;display:inline-block;vertical-align:middle;background:url(../assets/img/product/arrow-right.png?v155ba59f2d9) no-repeat}.shop-index-page .page-nav .pages{margin-left:10px}.product-page .product-pager{padding:20px 0;font-size:12px;color:#6a6a6a;border-top:2px solid #eaeceb}.product-page .product-pager .pager{float:right}.product-page .list-left{width:160px}.product-page .list-right{width:970px}.new-sale-page .goods-container,.product-list-page .goods-container{height:auto;padding-top:25px;position:relative;width:980px}.new-sale-page .goods-container .good-info,.product-list-page .goods-container .good-info{width:235px}.new-sale-page .goods-container .good-info .good-detail-img,.product-list-page .goods-container .good-info .good-detail-img{height:315px}.new-sale-page .goods-container .block-next-page,.product-list-page .goods-container .block-next-page{width:235px;height:315px}.new-sale-page .filter-box .brand .attr-content,.product-list-page .filter-box .brand .attr-content{max-width:730px}.min-screen .new-sale-page .list-right,.min-screen .product-list-page .list-right{width:810px}.min-screen .new-sale-page .goods-container,.min-screen .product-list-page .goods-container{height:auto;padding-top:25px;position:relative;width:820px}.min-screen .new-sale-page .goods-container .good-info,.min-screen .product-list-page .goods-container .good-info{width:195px}.min-screen .new-sale-page .goods-container .good-info .good-detail-img,.min-screen .product-list-page .goods-container .good-info .good-detail-img{height:261px}.min-screen .new-sale-page .goods-container .block-next-page,.min-screen .product-list-page .goods-container .block-next-page{width:195px;height:261px}.min-screen .new-sale-page .filter-box .brand .attr-content,.min-screen .product-list-page .filter-box .brand .attr-content{max-width:570px}.passport-page{width:1150px;margin-left:auto;margin-right:auto}.passport-page .content{float:left;margin-top:107px;padding-left:85px}.passport-page .input{height:43px;font-size:16px;line-height:1.2;line-height:43px\9;width:268px;border:1px solid #dbdbdb;text-indent:10px;color:#9a9a9a;color:rgba(0,0,0,.5)}.passport-page .error{border-color:red!important}.passport-page .btn{display:block;height:46px;line-height:46px;width:100%;text-align:center;color:#fff;background-color:#ff1901;letter-spacing:10px;font-size:20px;cursor:pointer}.passport-page .btn.disable{background-color:#555;cursor:default}.passport-page .pwd-intensity-container{width:270px;text-align:right;padding-top:5px}.passport-page .pwd-intensity-container .pwd-intensity{height:15px;font-size:12px;background-color:#e8e8e8;padding:0 10px;text-align:center;color:#b9b9b9}.passport-page .pwd-intensity-container.red .pwd-intensity{color:#e01}.passport-page .pwd-intensity-container.red .color{background:#e01;color:#fff}.passport-page .pwd-intensity-container.yellow .pwd-intensity{color:#f6da1e}.passport-page .pwd-intensity-container.yellow .color{background:#f6da1e;color:#fff}.passport-page .pwd-intensity-container.green .pwd-intensity{color:#3ee392}.passport-page .pwd-intensity-container.green .color{background:#3ee392;color:#fff}.passport-page .pwd-tips{position:absolute;top:-10px;left:285px;width:160px!important;height:72px;padding-top:7px;font-size:12px;background-image:url(../assets/img/sprite.passport.png?v155ba59fd55);background-position:0 0}.passport-page .pwd-tips>div{position:relative;height:22px;line-height:22px;margin-left:15px;padding-left:15px;font-size:12px;color:#b9b9b9}.passport-page .pwd-tips>div i{position:absolute;width:14px;height:14px;left:-2px;top:50%;margin:-7px 0 0;background-image:url(../assets/img/sprite.passport.png?v155ba59fd55);background-position:-63px -113px}.passport-page .pwd-tips>div.no{color:red}.passport-page .pwd-tips>div.no i{background-image:url(../assets/img/sprite.passport.png?v155ba59fd55);background-position:-95px -113px}.passport-page .pwd-tips>div.yes i{background-image:url(../assets/img/sprite.passport.png?v155ba59fd55);background-position:-79px -113px}.passport-page .email-autocomplete{position:absolute;width:248px;padding:0 10px;z-index:1;margin-top:5px;border-radius:5px;cursor:pointer;border:1px solid #fefefe;background-color:#161616;color:#fff;font-size:16px}.passport-page .email-autocomplete li{height:24px;line-height:24px}.passport-page .err-tip{position:absolute;font-size:14px;white-space:nowrap;top:8px;left:285px;padding:6px 0;color:red}.passport-page .err-tip i{display:block;float:left;height:14px;width:14px;background-image:url(../assets/img/sprite.passport.png?v155ba59fd55);background-position:-95px -113px;margin-right:5px}.passport-page .err-tip a{text-decoration:underline;color:red}.passport-page .page-tip{display:block;width:100%;height:30px;line-height:30px;text-align:center;font-size:20px;font-weight:700;color:#ccc;clear:both;margin-bottom:15px}.passport-cover{float:left;margin:107px 0;width:575px}.passport-cover .cover-content{width:100%;height:318px;padding:50px 0;border-right:1px solid #dfdfdf}.passport-cover .cover-img{display:block;width:252px;height:190px;margin:0 auto;margin-top:50px}.login-page .relative{position:relative}.login-page .right{float:right}.login-page .login-ul>li{margin-bottom:25px}.login-page .title{float:left;font-size:20px}.login-page .country-code{cursor:pointer;color:#b9b9b9}.login-page .country-list{display:none;position:absolute;padding:0 10px;background:#fff;border:1px solid #000;top:20px;right:0;z-index:1;border-radius:5px}.login-page .country-list li{height:20px;line-height:20px;color:#000}.login-page .captcha-wrap{position:relative}.login-page .captcha-wrap .err-tip{left:335px}.login-page .captcha{width:160px;float:left}.login-page .captcha-img{height:37px;width:90px;border:0;vertical-align:middle;outline:none;margin-left:10px;margin-top:4px;float:left}.login-page .change-captcha{position:absolute;top:0;right:-50px;cursor:pointer;float:left;height:43px;font-size:14px;line-height:43px;color:#ff1901}.login-page .remember-me{cursor:pointer}.login-page .other-opts{color:#b9b9b9;font-size:14px}.login-page .other-opts .iconfont{font-size:14px}.login-page .other-opts .fast-reg{color:#ff1901}.login-page .forget-password{color:#b9b9b9}.login-page .third-party-login{display:table}.login-page .third-party-login a{display:table-cell;width:45px;background-size:100% 100%}.login-page .third-party-login .icon{display:block;width:30px;height:30px;margin:0 auto}.login-page .third-party-login .weixin{background-image:url(../assets/img/sprite.passport.png?v155ba59fd55);background-position:-96px -81px}.login-page .third-party-login .qq{background-image:url(../assets/img/sprite.passport.png?v155ba59fd55);background-position:-128px -81px}.login-page .third-party-login .weibo{background-image:url(../assets/img/sprite.passport.png?v155ba59fd55);background-position:0 -81px}.login-page .third-party-login .alipay{background-image:url(../assets/img/sprite.passport.png?v155ba59fd55);background-position:0 -113px}.login-page .third-party-login .douban{background-image:url(../assets/img/sprite.passport.png?v155ba59fd55);background-position:-64px -81px}.login-page .third-party-login .renren{background-image:url(../assets/img/sprite.passport.png?v155ba59fd55);background-position:-32px -81px}.login-page .caps-lock{position:absolute;color:#666;border:#ffe57d;background:#fff6d2;white-space:nowrap;top:8px;left:278px;padding:0 20px;height:27px;line-height:30px}.register-page{font-size:14px;color:#b9b9b9}.register-page li{margin-bottom:25px;width:270px;position:relative}.register-page li input,.register-page li select{outline:none}.register-page li .input{height:43px;line-height:43px;font-size:16px;width:268px;border:1px solid #dbdbdb;text-indent:10px;color:#9a9a9a;padding:0}.register-page li .input.error{border:1px solid red}.register-page li .input.phone-num{width:209px;display:block;float:left;position:absolute;top:0;right:0}.register-page li .input.captcha,.register-page li .input.msg-captcha{width:160px;float:left}.register-page li .input.agree-terms{vertical-align:middle}.register-page li .send-captcha{top:0;background:#ff1901;position:absolute;width:100px;right:0;font-size:12px;text-indent:0;letter-spacing:0}.register-page li .send-captcha.disable{background:#555}.register-page li .link{text-decoration:underline;color:#ff1901}.register-page li .btn{height:45px;line-height:45px;color:#fff;border:none;padding:0;font-family:黑体,Regular;text-align:center}.register-page li .region{height:30px;padding:4px 0;width:132px;border-color:#c1c1c1;color:#9a9a9a;font-size:16px;font-family:黑体,Regular}.register-page li .country-code{width:58px;height:43px;line-height:43px;text-align:center;white-space:nowrap;border:1px solid #dbdbdb;border-right:0;font-size:16px;display:block;float:left}.register-page li .captcha-img{height:37px;width:90px;border:0;vertical-align:middle;outline:none;margin-left:10px;margin-top:4px;float:left}.register-page li .change-captcha{margin-left:10px;cursor:pointer;float:left;height:43px;line-height:43px}.register-page li .pwd-intensity-container{width:270px;text-align:right;margin-top:5px;height:auto;overflow:hidden}.register-page li .pwd-intensity-container .pwd-intensity{height:15px;font-size:12px;background-color:#e8e8e8;padding:1px 10px;text-align:center}.register-page li .pwd-intensity-container.red{color:red}.register-page li .pwd-intensity-container.red .color{background:red;color:#fff}.register-page li .pwd-intensity-container.yellow .color{background:#ff0;color:#fff}.register-page li .pwd-intensity-container.green .color{background:#3ee392;color:#fff}.register-page li .register-btn{width:270px;font-size:20px;font-weight:700;background:#ff1901}.register-page li .register-btn.disable{background:#555}.register-page li.w330{width:330px}.register-page li.items-container,.register-page li.quick-login-container{font-size:13px;text-align:right;white-space:nowrap}.register-page li.quick-login-container{width:270px}.register-page li.skip-user-info{font-size:18px;text-align:center}.register-page li.skip-user-info a{color:#ff1901;text-decoration:underline}.register-page .msg-tip{position:absolute;top:17px;left:285px;white-space:nowrap}.register-page .msg-tip:before{content:'';display:inline-block;width:12px;height:12px;margin-right:5px;background-image:url(../assets/img/sprite.passport.png?v155ba59fd55);background-position:-63px -129px}.register-page .err-tip{z-index:11;position:absolute;height:30px;line-height:30px;color:red;background-color:#ffebeb;border:1px solid #ffbdbe;padding:0 10px}.register-page .err-tip b{display:block;position:absolute;top:30px;left:20px;background-image:url(../assets/img/sprite.passport.png?v155ba59fd55);background-position:-111px -113px;width:17px;height:9px}.register-page .success-box{font-size:14px;color:#b9b9b9;margin-top:130px}.register-page .success-box .success-text{line-height:29px;padding-left:46px;font-size:16px;color:#000}.register-page .success-box .success-text span{font-size:22px}.register-page .success-box .success-text #count-down{color:#ff1901}.register-page .success-box .success-text:before{content:'';display:inline-block;background-image:url(../assets/img/sprite.passport.png?v155ba59fd55);background-position:-32px -113px;width:29px;height:29px;margin-right:5px;position:relative;top:6px}.register-page .success-box .success-btn{display:block;margin:46px auto 0;width:270px;height:45px;line-height:45px;background:#ff1901;text-align:center;color:#fff;letter-spacing:2px}.back-page{font-size:14px}.back-page .content{margin:175px 0 0!important}.back-page .back-header{position:relative;width:268px;line-height:40px;margin-bottom:5px}.back-page .back-header .country-code{float:right;cursor:pointer;color:#b9b9b9}.back-page .back-header .country-code .iconfont{font-size:14px;vertical-align:middle}.back-page .title{float:left;margin:0}.back-page .title,.back-page .title2{font-size:22px;line-height:40px;color:#000;font-weight:400}.back-page .title2{margin:0 0 5px}.back-page .err-tip.captcha-err{top:10px;left:326px}.back-page .country-code-list{display:none;position:absolute;padding:0 10px;color:#000;background-color:#fff;border:1px solid #000;margin-top:5px;cursor:pointer;z-index:9;top:30px;right:0;border-radius:5px}.back-page .country-code-list li{height:20px;line-height:20px}.back-page .input-container-li{position:relative;margin-bottom:22px}.back-page .input-container-li .btn{width:270px;height:45px;line-height:45px;cursor:pointer;font-size:20px;border:none;letter-spacing:0}.back-page .input-container-li .captcha{width:160px}.back-page .input-container-li .captcha-img{height:37px;width:90px;border:0;margin-left:10px;vertical-align:middle;outline:none;cursor:pointer}.back-page .input-container-li .change-captcha{color:#ff1901;font-size:12px;text-decoration:underline;margin-left:10px;cursor:pointer}.send-email-page{font-size:14px}.send-email-page .content{margin:216px 0 0!important}.send-email-page .send-tips{line-height:28px;color:#4c4c4c;text-align:center;font-size:15px}.send-email-page .send-tips .iconfont{margin:0 8px 0 0}.send-email-page .no-find{margin:10px 0 0;line-height:20px;color:#a5a4a4;text-align:center}.send-email-page .to-my-email a{display:block;margin:53px auto 0;width:270px;height:45px;line-height:45px;background:#ff1901;text-align:center;color:#fff;letter-spacing:2px}.verification-page .content li{position:relative;margin-bottom:43px}.verification-page .content .btn{display:inline-block;border:none}.verification-page .content .head-title{font-size:24px;color:#000}.verification-page .content .pn-label{color:#828282;font-size:16px}.verification-page .content .country-code{margin:0 10px}.verification-page .content .country-code,.verification-page .content .phone-num{color:#000;font-size:16px}.verification-page .content .captcha{width:160px!important}.verification-page .content .send-captcha{width:133px;font-size:12px;position:relative;top:-1px;letter-spacing:0}.verification-page .content .err-tip{left:310px}.verification-page .content .captcha-tips{position:absolute;top:50px;color:#a5a4a4}.verification-page .content .captcha-tips .iconfont{color:#0f9acd;font-size:14px;margin:0 8px 0 0;vertical-align:12%}.reset-success-page .content{margin:255px 0 0!important}.reset-success-page .success-text{line-height:35px}.reset-success-page .success-text .iconfont{font-size:30px;color:#ee3f14}.reset-success-page .success-text span{font-size:24px;margin:0 18px}.reset-success-page .success-text #count-down{color:#ee3f14}.reset-success-page .success-btn{display:block;margin:43px auto 0;width:269px;line-height:269px;height:45px;line-height:45px;font-size:14px;color:#fff;text-align:center;background-color:#ff1901}.welcome-page{text-align:center;color:#7f7f7f}.welcome-page .content{padding-top:82px}.welcome-page .wel-title{font-size:30px;margin-bottom:30px}.welcome-page .wel-title em{font-style:normal;color:#ff1901}.welcome-page .wel-sub-title{font-size:16px;margin-bottom:60px}.welcome-page .link{display:block}.welcome-page .link span{color:#7f7f7f}.welcome-page .link-img{height:91px;width:91px;background-size:100% 100%;margin-bottom:10px}.welcome-page .go-shopping{float:left;padding-left:100px}.welcome-page .go-shopping div{background-image:url(../assets/img/passport/go-shopping.png?v155ba59f2bc)}.welcome-page .complete-info{float:right;padding-right:100px}.welcome-page .complete-info div{background-image:url(../assets/img/passport/edit-info.png?v155ba59f2bb)}.yohobindbtn{display:block;width:210px;height:45px;line-height:45px;background-color:#f02200;color:#fff;font-size:16px;text-align:center}.hide{display:none}.novisiable{visibility:hidden}.actlevel{background-color:#f02200!important;color:#fff!important}.mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:15;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.bindwrapper{margin:0 auto;width:980px;min-height:450px;padding-top:122px}.welcomeword{width:100%;text-align:center;font-size:22px;line-height:22px;color:#545454;margin-bottom:15px}.welcomeword .yoho{color:#e12000}.safeword{width:100%;text-align:center;font-size:16px;line-height:16px;color:#545454;margin-bottom:63px}.yohobindrow{width:485px;margin:0 auto 22px;height:40px}.yohobindrow .name{float:left;text-align:right;margin-right:14px;width:96px}.yohobindrow .areatag{height:30px;line-height:30px}.yohobindrow .phonetag,.yohobindrow .setpwdtag{height:47px;line-height:47px}.yohobindrow .content{float:left;text-align:left;margin-top:0;padding-left:0}.yohobindrow .errinfo{color:#f02200;line-height:49px;margin-left:5px}.yohobindrow:after{display:block;content:'';clear:both}.sendnotify{width:260px;text-align:left;margin:0 auto 18px}.validaterow{margin:0 auto 22px;padding-left:248px}.validaterow .name{float:left;text-align:right;margin-right:14px;width:96px}.validaterow .areatag{height:30px;line-height:30px}.validaterow .phonetag{height:47px;line-height:47px}.validaterow .content{float:left;text-align:left}.validaterow .content .err-tip{left:430px}.validaterow .validatewrapper{float:left;height:45px;width:133px;text-align:center;line-height:45px;background-color:#d8d8d8;color:#000;font-size:13px;margin-left:18px}.validaterow .validatewrapper .yohobindbtn{width:133px;font-size:13px}.validaterow:after{display:block;content:'';clear:both}.validatepicrow{overflow:hidden;margin:0 auto 22px;padding-left:250px}.validatepicrow .name{float:left;text-align:right;margin-right:14px;width:96px}.validatepicrow .areatag{height:30px;line-height:30px}.validatepicrow .phonetag{height:47px;line-height:47px}.validatepicrow .content{float:left;text-align:left}.validatepicrow .validatewrapper{float:left;height:45px;text-align:center;line-height:45px;color:#000;font-size:13px;margin-left:18px}.validatepicrow .validatewrapper .yohobindbtn{width:133px;font-size:13px}.validatepicrow .change-captcha{cursor:pointer;color:#f02200;text-decoration:underline}.validatepicrow:after{display:block;content:'';clear:both}.setpwdwrapper{margin-bottom:10px;height:45px}.safelevel{width:291px;margin:0 auto;text-align:right}.safelevel,.safelevel span{height:15px;font-size:10px;color:#000}.safelevel span{width:28px;line-height:15px;background-color:#e5e5e5;margin-right:4px;padding:1px 8px}.green .color{background-color:#0f0;color:#fff}.yellow .color{background-color:#ff0;color:#fff}.red .color{background-color:red;color:#fff}.yohoselectarea{position:relative;box-sizing:border-box;width:131px;height:33px}.yohoselectarea .optionshow{width:100%;height:100%;padding-left:16px;border:1px solid #d9d9d9}.yohoselectarea .optionshow .areaname{display:block;float:left;width:110px;height:100%;line-height:33px;font-size:13px;color:#000}.yohoselectarea .optionshow .righttag{display:block;float:left;width:21px;height:100%;line-height:33px;background-color:#d8d8d8;background-image:url(../assets/img/passport/arrowbottom.png?v155ba59f2b7);background-repeat:no-repeat;background-position:50%}.yohoselectarea .optionslist{background-color:#fff;position:absolute;top:35px;left:0;width:149px;z-index:2}.yohoselectarea .optionslist .optionitem{height:33px;line-height:33px;padding-left:16px;font-size:13px}.yohoselectarea .optionslist .optionitem:hover{background-color:#dfdfdf}.yohophonewrapper{width:271px;height:47px;border:1px solid #d9d9d9;position:relative}.yohophonewrapper .areanum{float:left;height:100%;width:63px;line-height:47px;text-align:center;color:#000;background-color:#d8d8d8}.yohophonewrapper .phonenum{outline:none;box-sizing:border-box;float:left;height:45px;width:205px;line-height:38px;padding-left:8px;border:none;color:#000}.yohophonewrapper .pwdcontent,.yohophonewrapper .validatenum{width:100%}.protoctolwrapper{width:350px;margin:38px auto 0;padding-left:85px;overflow:hidden}.protoctolwrapper .choosewrapper{float:left;width:13px;height:13px;background-color:#4c4c4c;background-image:url(../assets/img/passport/choosed.png?v155ba59f2ba);background-position:50%;background-repeat:no-repeat;margin-right:14px}.protoctolwrapper .choosetag{width:110%;height:110%;display:block;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";margin:0}.protoctolwrapper span{float:left;color:#666;font-size:13px;line-height:14px}.protoctolwrapper .protoctol{color:#f02200;text-decoration:underline}.protoctolwrapper:after{display:block;content:'';clear:both}.confirmwrapper{overflow:hidden;margin-top:47px!important}.btnwrapper{width:350px;margin:20px auto 0;padding-left:85px}.thirdloginwrapper{margin:0 auto;width:1150px;min-height:450px;padding-top:160px}.thirdloginwrapper .safeword{margin-bottom:30px}.thirdloginwrapper .left{box-sizing:border-box;float:left;width:450px;height:318px;border-right:1px solid #e5e5e5}.thirdloginwrapper .right{box-sizing:border-box;float:right;width:696px;padding-top:64px;height:318px}.thirdloginwrapper .completeprofile,.thirdloginwrapper .gobuy{float:left;display:inline-block;width:94px;height:94px;line-height:94px;text-align:center;border-radius:50%;background-color:#f02200;color:#fff}.thirdloginwrapper .gobuy{margin-left:228px;margin-right:80px}.bindsuccesswrapper{margin:0 auto;width:1150px;min-height:450px;padding-top:160px}.bindsuccesswrapper .successwrapper{width:320px;height:29px;margin:0 auto 16px}.bindsuccesswrapper .successwrapper .successtag{display:inline-block;margin-right:28px;float:left;width:29px;height:29px;background-image:url(../assets/img/passport/bindsuccess.png?v155ba59f2b8);background-repeat:no-repeat}.bindsuccesswrapper .successwrapper .congratulation{display:inline-block;height:29px;line-height:29px;font-size:22px}.bindsuccesswrapper .info{text-align:center;font-size:16px;margin-bottom:48px}.bindsuccesswrapper .gobuynow{margin:0 auto}.bindconfrimwrapper{width:900px;height:439px;margin:-217px auto;background-color:#fff;box-sizing:border-box;padding-top:37px}.bindconfrimwrapper .topwrapper{width:281px;height:90px;margin:0 auto 32px}.bindconfrimwrapper .topwrapper .userphoto{width:90px;height:90px;vertical-align:middle;border-radius:50%;margin-right:22px}.bindconfrimwrapper .topwrapper .username{vertical-align:middle;display:inline-block;width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700;color:#545454}.bindconfrimwrapper .usertaginfo{text-align:center;font-size:18px;font-weight:700;color:#545454;margin-bottom:15px}.bindconfrimwrapper .usertagremind{text-align:center;font-size:16px;color:#888;margin-bottom:47px}.bindconfrimwrapper .otherphone{margin:0 auto 64px}.bindconfrimwrapper .logindirectly{display:block;text-align:center;text-decoration:underline;color:#f02200}.yohobindbtn[disabled]{background-color:#e5e5e5;cursor:not-allowed}.gobindwrapper{width:100%;height:45px;margin-bottom:70px}.gobindwrapper .myphone{float:left;margin-left:20px;width:193px}.gobindwrapper .logindirectly{display:inline-block}.gobindwrapper .validaterow{overflow:hidden;margin:0 auto 22px;padding-left:222px;float:left}.gobindwrapper .validaterow .name{float:left;text-align:right;margin-right:14px;width:96px}.gobindwrapper .validaterow .areatag{height:30px;line-height:30px}.gobindwrapper .validaterow .phonetag{height:47px;line-height:47px}.gobindwrapper .validaterow .content{float:left;text-align:left}.gobindwrapper .validaterow .content .validatacode{outline:none;box-sizing:border-box;float:left;height:45px;width:113px;line-height:38px;padding-left:8px;border:1px solid #d9d9d9;color:#000}.gobindwrapper .validaterow .validatewrapper{float:left;height:45px;width:133px;text-align:center;line-height:45px;background-color:#d8d8d8;color:#000;font-size:13px;margin-left:18px}.gobindwrapper .validaterow .validatewrapper .yohobindbtn{width:133px;font-size:13px}.gobindwrapper:after{display:block;content:'';clear:both}.gobindbottomwrapper{width:100%;padding-left:341px}.gobindbottomwrapper .logindirectly{display:inline-block;float:left;margin-right:36px;text-decoration:underline;color:#f02200}.pwd-tips{position:absolute;z-index:11;top:-10px;left:285px;width:160px!important;height:72px;padding-top:7px;font-size:12px;background-image:url(../assets/img/sprite.passport.png?v155ba59fd55);background-position:0 0;background-color:#fff}.pwd-tips>div{position:relative;height:22px;line-height:22px;margin-left:15px;padding-left:15px;font-size:12px;color:#b9b9b9}.pwd-tips>div i{position:absolute;width:14px;height:14px;left:-2px;top:50%;margin:-7px 0 0;background-image:url(../assets/img/sprite.passport.png?v155ba59fd55);background-position:-63px -113px}.pwd-tips>div.no{color:red}.pwd-tips>div.no i{background-position:-95px -113px}.pwd-tips>div.no i,.pwd-tips>div.yes i{background-image:url(../assets/img/sprite.passport.png?v155ba59fd55)}.pwd-tips>div.yes i{background-position:-79px -113px}.tip-panel{position:absolute;display:none;width:248px;padding:0 10px;z-index:9;background-color:#161616;border:1px solid hsla(0,0%,100%,.7);margin-top:5px;cursor:pointer;border-radius:5px}.tip-panel li{height:20px;line-height:20px;color:#b9b9b9}.err-tip{position:absolute;font-size:14px;white-space:nowrap;top:8px;left:285px;padding:6px 0;color:red}.err-tip i{display:block;float:left;height:14px;width:14px;background-image:url(../assets/img/sprite.passport.png?v155ba59fd55);background-position:-95px -113px;margin-right:5px}.err-tip a{text-decoration:underline;color:red}.backdrop{position:fixed;background:#000;width:100%;height:100%;left:0;top:0;bottom:0;right:0;opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"}.err-info{display:none;z-index:11;position:absolute;top:-41px;left:0;height:30px;line-height:30px;color:red;background-color:#ffebeb;border:1px solid #ffbdbe;padding:0 10px}.err-info b{background:url(../assets/img/passport/angle.png?v155ba59f2b6);position:absolute;height:9px;width:17px;top:30px;left:10px}.third-relate-page{min-height:600px}.third-relate-page .relate-main{padding-top:100px}.third-relate-page .user-wrapper{width:280px;margin:0 auto}.third-relate-page .user-wrapper .user-thumb{width:94px;height:94px;border-radius:50%;display:inline-block;overflow:hidden}.third-relate-page .user-wrapper .user-thumb img{width:100%;height:100%}.third-relate-page .user-wrapper label{width:190px;line-height:94px;margin-left:20px;font-size:18px;font-weight:700;color:#545454;word-break:keep-all;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:absolute}.third-relate-page .remind-info{width:490px;min-height:54px;padding-left:50px;margin:35px auto;background:url(../assets/img/passport/warn.png?v155ba59f2c2) no-repeat;text-align:center}.third-relate-page .remind-info h3{font-size:18px;font-weight:700;color:#545454;margin-bottom:12px}.third-relate-page .remind-info a{color:#f22c26;text-decoration:underline;cursor:pointer}.third-relate-page .remind-info p{font-size:16px;color:#888}.third-relate-page .option-btn{text-align:center}.third-relate-page .option-btn a{width:192px;height:46px;color:#fff;font-size:18px;line-height:46px;display:inline-block;background-color:#f12200;cursor:pointer}.third-relate-page .option-btn a:first-child{margin-right:14px}.third-relate-page .remind-tips{width:390px;margin:0 auto;font-size:14px;color:#888;text-align:center;margin-top:30px;text-decoration:underline;display:block}.third-relate-page .remind-tips a{color:#f12200;cursor:pointer}.third-relate-page .remind-tips>*{text-decoration:underline}.third-relate-page .code-validate{padding-top:140px}.third-relate-page .action-link{width:440px;margin:0 auto;padding-left:180px;color:#545454;line-height:46px}.third-relate-page .action-link .code-name{margin-left:-100px;position:absolute}.third-relate-page .action-link input{width:260px;height:40px;padding-left:10px;font-size:16px;margin-right:14px}.third-relate-page .action-link label{width:140px;height:46px;font-size:14px;color:#fff;background-color:#f12200;display:inline-block;text-align:center;cursor:pointer}.third-relate-page .action-link .count-down{color:#979797;background-color:#d8d8d8;display:none}.third-relate-page .action-link .code-error{position:absolute;width:200px;display:inline-block;color:red;padding-left:10px}.third-relate-page .action-link .code-error i{display:inline-block;height:14px;width:14px;background-image:url(../assets/img/sprite.passport.png?v155ba59fd55);background-position:-95px -113px;vertical-align:middle;margin-right:5px;margin-top:-2px}.third-relate-page .waiting .get-code{display:none}.third-relate-page .waiting .count-down{display:inline-block}.third-relate-page .relate-btn{width:212px;height:46px;font-family:arial,Microsoft YaHei;color:#fff;font-size:18px;background-color:#f12200;border:0;outline:none;margin:20px 0}.guang-page{width:1150px;margin:0 auto}.guang-page .left-side{float:left;width:830px}.guang-page .right-side{float:left;width:290px;margin-left:30px}.guang-page .bg-img.blink,.guang-page img.blink{opacity:.8;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"}.guang-page .ex-reco-title{color:#333;line-height:24px;padding-bottom:10px;border-bottom:1px solid #ccc;font-size:20px;font-weight:700}.guang-page .ex-reco-list{margin-top:14px}.guang-page .ex-reco-item{box-sizing:border-box;height:60px;margin-bottom:14px}.guang-page .ex-reco-item:last-child{margin-bottom:0}.guang-page .ex-reco-img{display:block;float:left;width:90px;height:60px;margin-right:5px}.guang-page .ex-reco-img span{display:block;height:100%;width:100%;background-size:cover;background-position:50%}.guang-page .ex-reco-img span img{width:100%;height:100%}.guang-page .ex-reco-context{float:left;max-width:195px;height:40px;line-height:20px;font-size:13px;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.guang-page .ex-reco-context:hover{color:#c30}.guang-page .hot{margin-top:40px}.guang-page .hot .hot-title{color:#333;line-height:24px;padding-bottom:10px;border-bottom:1px solid #ccc;font-weight:700;font-size:20px}.guang-page .hot .hot-tag-list{margin-top:14px;max-height:150px;overflow:hidden}.guang-page .hot .hot-tag{display:inline-block;float:left;padding:5px;font-size:12px;background-color:#ccc;border:none;margin-right:10px;margin-bottom:10px;color:#fff;font-weight:700}.guang-page .hot .hot-tag:hover{background-color:#333}.guang-page .ads{margin-top:30px}.guang-page .ads .ad{display:block;box-sizing:border-box;margin-bottom:24px;width:290px}.guang-page .ads .ad img{display:block;width:100%}.guang-page .msg-content{padding:24px 0;border-bottom:1px solid #ccc;position:relative}.guang-page .msg-content .content{height:80px;line-height:24px}.guang-page .msg-content .iconfont{color:#ccc}.guang-page .msg-content .msg-img{position:relative;float:left;margin-right:26px}.guang-page .msg-content .msg-img img{display:block;width:360px;height:240px}.guang-page .msg-content .msg-img img.square{height:360px}.guang-page .msg-content .classification{position:absolute;background-color:#000;color:#fff;text-align:center;width:80px;height:32px;line-height:32px;font-size:13px;opacity:.9;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=90)";z-index:8}.guang-page .msg-content .reco{position:absolute;top:0;left:66px;height:32px;width:32px;background:url(../assets/img/guang/msg-reco.png?v155ba59f1fa);background-size:100% 100%;z-index:9}.guang-page .msg-content .msg-info{float:left;width:440px}.guang-page .msg-content .msg-title{display:block;font-size:22px;color:#333;line-height:30px;max-height:64px}.guang-page .msg-content .msg-title:hover{color:#c30}.guang-page .msg-content .content{font-size:14px;color:#666}.guang-page .msg-content .msg-app{line-height:34px;color:#999;font-size:13px}.guang-page .msg-content .author{display:block;float:left;color:#333;margin-right:22px;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.guang-page .msg-content .author:hover{color:#c30}.guang-page .msg-content .page-view,.guang-page .msg-content .publish-time{color:#999}.guang-page .msg-content .publish-time{margin-right:30px}.guang-page .msg-content .like-comment,.guang-page .msg-content .tags{position:absolute;bottom:24px;font-size:12px}.guang-page .msg-content .like-comment .like,.guang-page .msg-content .tags .like{margin-right:10px}.guang-page .msg-content .like-comment .like:hover *,.guang-page .msg-content .tags .like:hover *{color:#000}.guang-page .msg-content .like-comment .like-icon,.guang-page .msg-content .tags .like-icon{cursor:pointer}.guang-page .msg-content .like-comment .like-icon.liked,.guang-page .msg-content .tags .like-icon.liked{color:#000}.guang-page .msg-content .like-comment.tags,.guang-page .msg-content .tags.tags{left:386px;max-width:350px;height:20px;overflow:hidden}.guang-page .msg-content .like-comment.like-comment,.guang-page .msg-content .tags.like-comment{right:0;color:#999}.guang-page .msg-content .msg-tag{display:inline-block;text-align:center;height:20px;line-height:20px;padding:0 10px;margin-right:10px;background-color:#ccc;color:#fff}.guang-page .msg-content .msg-tag:last-child{margin-right:0}.guang-page .msg-content .msg-tag:hover{background-color:#333}.guang-page .pager{font-size:12px}.guang-page .pager a{height:24px;padding:0 9px;line-height:24px;display:inline-block;text-align:center;margin-right:8px;color:#222}.guang-page .pager a.cur{background-color:#222;color:#fff}.guang-index-page .msg-nav{border-bottom:1px solid #000;margin-top:24px;height:30px}.guang-index-page .msg-nav li{float:left;height:30px;line-height:30px;text-align:center;font-size:18px;padding:0 28px}.guang-index-page .msg-nav li a{display:block;height:100%;width:100%;color:#333}.guang-index-page .msg-nav li.actived{background-color:#111}.guang-index-page .msg-nav li.actived a{color:#fff}.guang-index-page .msg-pager{float:right;margin:20px 0}.guang-detail-page{width:1150px;margin:0 auto 95px}.guang-detail-page b{font-weight:700}.guang-detail-page i{font-style:italic}.guang-detail-page .block{margin:15px 0}.guang-detail-page .excellent-recommendation-title{margin-top:4px}.guang-detail-page .block-header{position:relative;border-bottom:1px solid #c1c1c1;font-size:18px;height:38px;line-height:38px;text-align:center;margin-bottom:24px;color:#333}.guang-detail-page .block-header .more-reco{position:absolute;right:0;color:#000;font-size:14px;text-decoration:none}.guang-detail-page .related-brand .brands{width:852px}.guang-detail-page .related-reco .recos{width:850px}.guang-detail-page .detail-title{font-size:28px;line-height:64px;border-bottom:1px dotted #c1c1c1;word-wrap:break-word}.guang-detail-page .article-author{float:left;line-height:64px}.guang-detail-page .article-author .author-avatar{clear:both;width:38px;height:64px}.guang-detail-page .article-author .author-avatar img{width:38px;height:38px;border-radius:50%;vertical-align:middle}.guang-detail-page .author-info{float:left;margin-left:10px;font-size:14px;max-width:447px}.guang-detail-page .author-info .author-name{display:block;height:64px;line-height:64px;cursor:pointer;color:#000}.guang-detail-page .author-info .author-name:hover{color:#c30}.guang-detail-page .author-info .author-introduce{color:#999}.guang-detail-page .article-status{float:right;height:64px;line-height:64px;color:#999;font-size:13px}.guang-detail-page .article-status .article-click{margin:0 25px}.guang-detail-page .article-status .article-comment{color:#c30;cursor:pointer}.guang-detail-page .article-main img{display:block;max-width:100%;margin:0 auto}.guang-detail-page .article-main .article-text{margin:2px 0 20px;line-height:28px;font-size:14px}.guang-detail-page .article-main .article-small-pic{text-align:center;font-size:0}.guang-detail-page .article-main .article-small-pic img{display:inline-block;max-width:412px}.guang-detail-page .article-main .article-small-pic img:first-child{margin:0 6px 0 0}.guang-detail-page .article-main .block:first-child{margin-top:10px}.guang-detail-page .user-handle{margin:30px 0 0;text-align:center}.guang-detail-page .user-handle ul{display:inline-block}.guang-detail-page .user-handle ul li{float:left;margin:0 15px;cursor:pointer}.guang-detail-page .user-handle ul li a{position:relative;display:block;padding:0 10px;height:36px;line-height:36px;color:#535353;font-size:0;background:#efefef;text-align:left}.guang-detail-page .user-handle ul li a i,.guang-detail-page .user-handle ul li a span{display:inline-block;font-style:normal;font-size:14px}.guang-detail-page .user-handle ul li a i{margin:0 5px 0 0;font-size:18px;opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"}.guang-detail-page .user-handle ul li a .cancel-collect{display:none}.guang-detail-page .user-handle ul .like-status.hover i,.guang-detail-page .user-handle ul .like-status.liked i{opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}.guang-detail-page .user-handle ul .like-statis.hover .like-num{color:#000}.guang-detail-page .user-handle ul .sort-collect a i{width:21px}.guang-detail-page .user-handle ul .sort-collect.collected a i{opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}.guang-detail-page .user-handle ul .sort-collect.collected a span{display:none}.guang-detail-page .user-handle ul .sort-collect.collected a .cancel-collect{display:inline}.guang-detail-page .user-handle ul .sort-collect.hover i{opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}.guang-detail-page .user-handle ul .sort-collect.hover span{color:#000}.guang-detail-page .article-bottom-info{margin:44px 0 0;padding:0 0 10px;border-bottom:1px dotted #c1c1c1}.guang-detail-page .article-tag{float:left;width:588px}.guang-detail-page .article-tag .tag-icon{float:left;margin:0 12px 0 0;font-size:20px;font-style:normal}.guang-detail-page .article-tag ul{float:left;max-width:555px}.guang-detail-page .article-tag ul li{float:left;margin:0 10px 10px 0}.guang-detail-page .article-tag ul li a{display:block;padding:0 15px;height:20px;line-height:20px;font-size:12px;color:#fff;font-weight:700;background:#c1c1c1}.guang-detail-page .article-tag ul li:hover a{background:#333}.guang-detail-page .article-tag ul li:first-child{margin-left:0}.guang-detail-page .article-share{float:right}.guang-detail-page .article-share .title{font-size:12px}.guang-detail-page .detail-related-posts{margin:14px 0 0}.guang-detail-page .detail-related-posts li{float:left;width:264px;margin-left:19px}.guang-detail-page .detail-related-posts li a{display:block}.guang-detail-page .detail-related-posts li .bg-img{display:block;width:100%;height:173px;line-height:173px;text-align:center;font-size:0}.guang-detail-page .detail-related-posts li .bg-img img{max-width:100%;max-height:100%;vertical-align:middle}.guang-detail-page .detail-related-posts li .post-title{margin:8px 0 0}.guang-detail-page .detail-related-posts li .post-title h2{line-height:16px;font-size:14px;color:#000;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.guang-detail-page .detail-related-posts li .post-title:hover h2{color:#c30!important}.guang-detail-page .detail-related-posts li:first-child{margin-left:0}.guang-detail-page .comment-area{margin:58px 0 0}.guang-detail-page .comment-area .comment-publish{height:48px}.guang-detail-page .comment-textarea textarea{display:block;width:812px;height:86px;padding:12px;resize:none;outline:none;font-size:14px;line-height:18px;color:#535353;font-family:arial,helvetica,微软雅黑;border:1px solid #e7e7e7}.guang-detail-page .word-count-tip{display:inline-block;height:48px;line-height:48px;font-size:12px;color:#c8c8c8}.guang-detail-page .word-count-tip .exceed-count{color:red}.guang-detail-page .publish-btn{margin:10px 0 0;float:right;width:90px;height:33px;line-height:33px;text-align:center;color:#fff;font-size:14px;background:#cb3a3e;cursor:pointer}.guang-detail-page .publish-btn:hover{background:#c03234}.guang-detail-page .publish-btn.disable{background-color:#e79c9e}.guang-detail-page .comments-wrap h4{position:relative;line-height:32px;border-bottom:1px solid #e7e7e7}.guang-detail-page .comments-wrap h4 .comment-num{margin-right:5px;color:#c11e00}.guang-detail-page .comments-wrap h4 i{position:absolute;width:13px;height:7px;left:30px;bottom:-7px;background:url(../assets/img/guang/comment-icon.png?v155ba59f1f8) no-repeat}.guang-detail-page .comments-wrap .comment-pager{float:right;margin:20px 0}.guang-detail-page .comments-empty{display:none;color:#ccc;margin:20px 0;font-size:12px;line-height:12px;text-align:center}.guang-detail-page .commnets-resultwrapper{display:none}.guang-detail-page .comments-list li{margin:14px 0 0;padding:0 0 15px;border-bottom:1px dotted #e7e7e7}.guang-detail-page .comments-list li .avatar{float:left;width:40px;height:40px;overflow:hidden}.guang-detail-page .comments-list li .avatar img{display:block;width:100%;height:100%;border-radius:50%}.guang-detail-page .comments-list li .comment-info{float:left;width:774px;margin:0 0 0 16px}.guang-detail-page .comments-list li .comment-info .comment-user-name{color:#c11e00;font-size:15px;line-height:15px}.guang-detail-page .comments-list li .comment-info .comment-content{margin-top:10px;line-height:16px;font-size:12px;word-wrap:break-word}.guang-detail-page .comments-list li .comment-info .comment-time{margin:10px 0 0;color:#c8c8c8;font-size:12px;line-height:12px;clear:both}.guang-detail-page .brand{margin-right:22px;margin-bottom:20px;float:left}.guang-detail-page .brand .thumb{display:table-cell;border:1px solid #f5f5f5;height:120px;width:120px;box-sizing:border-box;text-align:center;vertical-align:middle}.guang-detail-page .brand .thumb img{display:block;max-width:120px;max-height:120px;margin:0 auto}.guang-detail-page .brand .brand-name{width:120px;font-size:13px;line-height:20px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:center;color:#333}.guang-detail-page .few-tag,.guang-detail-page .tag-container{display:none}.guang-detail-page .good-info{width:192px;margin-right:20px;margin-bottom:12px}.guang-detail-page .good-info .good-detail-img{height:auto}.guang-detail-page .good-info .good-detail-img .good-thumb,.guang-detail-page .good-info .good-detail-img img.lazy{height:257px}.guang-detail-page .good-info .good-detail-text>a{margin-top:0;line-height:36px}.guang-detail-page .good-info .good-detail-text>.price{margin-top:0}.guang-editor-page .tag-header,.guang-list-page .tag-header{height:45px;line-height:45px;color:#333;font-size:14px;font-weight:700;border-bottom:1px solid #ccc}.guang-editor-page .tag-header>span,.guang-list-page .tag-header>span{font-size:20px}.guang-editor-page .msg-pager,.guang-list-page .msg-pager{float:right;margin:20px 0}.guang-editor-page .right-side{margin-top:20px}.guang-list-page .right-side{margin-top:11px}.guang-editor-page .editor-info{padding:10px;background:#fafafa}.guang-editor-page .editor-info .author-avatar{float:left;width:80px;height:100%}.guang-editor-page .editor-info .author-avatar img{width:80px;height:80px;vertical-align:middle;border-radius:50%}.guang-editor-page .editor-info .author-info{float:left;margin:0 0 0 10px;max-width:1060px}.guang-editor-page .editor-info .author-name{margin-top:11px;font-size:20px;height:30px!important;line-height:30px!important}.guang-editor-page .editor-info .author-introduce{line-height:24px;font-size:14px;color:#999}.guang-editor-page .editor-info .intro-content{margin:15px 0 0;line-height:18px;font-size:14px;color:#999}.home-page{width:1150px;margin:10px auto 0}.home-page .slide-container{position:absolute;left:0;right:0;height:450px}.home-page .slide-thumb-container{height:510px}.home-page .slide-wrapper{position:relative;height:450px;overflow:hidden}.home-page .slide-wrapper ul{position:relative;height:100%}.home-page .slide-wrapper li{display:none;position:absolute;top:0;right:0;width:100%;height:100%}.home-page .slide-wrapper li a{display:block;height:100%;width:1150px;margin:0 auto}.home-page .slide-wrapper li img{width:100%;height:100%}.home-page .slide-wrapper:hover .slide-switch.show,.home-page .slide-wrapper li:first-child{display:block}.home-page .slide-container-placeholder{height:450px;width:100%}.home-page .slide-thumb-container-placeholder{height:510px}.home-page .slide-switch{display:block}.home-page .slide-switch a{position:absolute;top:50%;margin:-30px 0 0;width:60px;height:60px;line-height:56px;text-align:center;z-index:2;background:#fff;opacity:.55;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=55)"}.home-page .slide-switch a .iconfont{font-size:32px;color:#59585a}.home-page .slide-switch a.prev{left:50%;margin-left:-575px}.home-page .slide-switch a.next{right:50%;margin-right:-575px}.home-page .slide-switch a:hover{opacity:.9;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=90)"}.home-page .thumb-pagination{width:1148px;margin:6px auto 0;padding-left:2px}.home-page .thumb-pagination li{position:relative;float:left;margin-left:6px;width:138px;height:54px}.home-page .thumb-pagination li a{position:absolute;left:0;right:0;bottom:0;top:0;background:#000;opacity:.3;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"}.home-page .thumb-pagination li img{width:100%;height:100%}.home-page .thumb-pagination li:first-child{margin:0}.home-page .thumb-pagination li.focus a{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"}.home-page .slide-pagination{font-size:0}.home-page .slide-pagination .slide-shade{position:absolute;left:0;right:0;top:0;bottom:0;background:#000;opacity:.3;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";border-radius:13px}.home-page .slide-pagination span{position:relative;display:inline-block;margin:0 7px;width:12px;height:12px;background:#fff;cursor:pointer;opacity:.6;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";border-radius:6px;z-index:2}.home-page .slide-pagination span.focus{opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}.home-page .debris-slider{height:510px;width:100%}.home-page .debris-slider .col{float:left}.home-page .debris-slider .col a{display:block}.home-page .debris-slider .left-col a,.home-page .debris-slider .right-col a{margin-bottom:10px}.home-page .debris-slider .left-col a:last-child,.home-page .debris-slider .right-col a:last-child{margin-bottom:0}.home-page .debris-slider .left-col img,.home-page .debris-slider .right-col img{height:100%;width:100%}.home-page .debris-slider .left-col{margin-right:10px}.home-page .debris-slider .left-col a{width:280px;height:120px}.home-page .debris-slider .left-col a:first-child{height:250px}.home-page .debris-slider .center-col{position:relative;width:570px;height:100%;margin-right:10px;font-size:0}.home-page .debris-slider .center-col .slide-wrapper{height:100%}.home-page .debris-slider .center-col .slide-wrapper li a{width:100%}.home-page .debris-slider .center-col .slide-switch a.prev{left:0;margin-left:0}.home-page .debris-slider .center-col .slide-switch a.next{right:0;margin-right:0}.home-page .debris-slider .center-col img{max-width:100%;max-height:100%}.home-page .debris-slider .center-col:hover .slide-switch.show{display:block}.home-page .debris-slider .right-col a{width:280px;height:120px}.home-page .debris-slider .right-col a:first-child{height:380px;margin-bottom:11px}.home-page .new-report img{display:block;width:100%;height:100%}.home-page .new-report .report-list{float:left;width:868px}.home-page .new-report .report-list li{float:left;margin:0 8px 8px 0;width:185px;height:248px;overflow:hidden}.home-page .new-report .report-list li:first-child{margin-right:7px;width:282px;height:504px}.home-page .new-report .last-item{float:left;width:282px;height:504px;overflow:hidden}.home-page .preference-brand{overflow:hidden}.home-page .preference-brand-list{margin-top:8px;width:1158px}.home-page .preference-brand-item{float:left;margin-right:8px;margin-bottom:8px}.home-page .preference-brand-item a{display:table-cell;width:185px;height:86px;text-align:center;vertical-align:middle}.home-page .preference-brand-item img{display:block;max-width:100%;max-height:100%;margin:0 auto}.home-page .preference-more{float:left;width:185px;height:86px;line-height:100px;text-align:center;color:#000;font-size:16px}.home-page .img-slider-wrapper{position:relative;width:100%;height:558px;background:#8ae6e0;overflow:hidden}.home-page .img-slider-wrapper .img-brand-switch{display:block}.home-page .img-slider-wrapper .img-brand-switch a{position:absolute;top:50%;font-size:36px;color:#fff}.home-page .img-slider-wrapper .img-brand-switch a.next{right:30px}.home-page .img-slider-wrapper .img-brand-switch a.prev{left:30px}.home-page .img-container-landscape{box-sizing:border-box;margin:86px auto 0;width:982px;height:433px;overflow:hidden}.home-page .img-container-landscape .img-list{width:1000px;height:100%}.home-page .img-container-landscape .img-item{float:left;box-sizing:border-box;width:320px;height:100%;margin-right:10px}.home-page .img-container-landscape .img-item img{width:100%;height:100%}.home-page .img-brand{position:relative;width:100%;height:175px;overflow:hidden}.home-page .img-brand ul{width:1158px}.home-page .img-brand li{float:left;margin:0 8px 0 0;width:378px;height:175px;line-height:175px;overflow:hidden;font-size:0;text-align:center}.home-page .img-brand li img{max-width:100%;max-height:100%;vertical-align:middle}.home-page .img-brand .img-brand-switch{display:none}.home-page .img-brand .img-brand-switch a{position:absolute;top:50%;margin:-20px 0 0;width:40px;height:40px;line-height:40px;text-align:center;z-index:2;background:#fff;opacity:.55;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=55)"}.home-page .img-brand .img-brand-switch a.prev{left:0}.home-page .img-brand .img-brand-switch a.next{right:0}.home-page .img-brand .img-brand-switch a:hover{opacity:.9;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=90)"}.home-page .img-brand:hover .img-brand-switch{display:block}.home-page .logo-brand{width:100%;height:282px;overflow:hidden}.home-page .logo-brand ul{width:1158px}.home-page .logo-brand li{float:left;margin:8px 8px 0 0;width:185px;height:86px;line-height:86px;font-size:0;text-align:center}.home-page .logo-brand li img{max-width:100%;max-height:100%;vertical-align:middle}.home-page .logo-brand .logo-brand-switch{position:relative;background:url(../assets/img/index/logo-brand-line.png?v155ba59f298) no-repeat 50%;line-height:normal}.home-page .logo-brand .logo-brand-switch .iconfont{position:absolute;left:50%;font-size:32px}.home-page .logo-brand .logo-brand-switch .iconfont.prev{top:10px;margin-left:-48px}.home-page .logo-brand .logo-brand-switch .iconfont.next{bottom:12px;margin-left:20px}.home-page .logo-brand .brand-more{font-size:16px}.home-page .logo-brand .brand-more:hover{text-decoration:underline}.home-page .logo-brand.logos-10{height:188px}.home-page .categorys-list ul{width:1158px}.home-page .categorys-list li{float:left;margin:0 8px 8px 0;width:185px;height:248px}.home-page .categorys-list li img{display:block;width:100%;height:100%}.home-page .categorys-list li.cate-item0{width:185px;height:504px}.home-page .categorys-list li.cate-item1{width:377px;height:504px}.home-page .floor-header{position:relative;margin:80px 0 40px}.home-page .floor-header .floor-title{margin:0 auto;width:298px;height:31px;line-height:31px;border:1px solid #000;font-size:16px;text-align:center}.home-page .floor-header .header-navs{position:absolute;padding:10px 0;top:0;right:0;font-size:14px}.home-page .floor-header .header-navs li{float:left;padding:1px 15px;border-left:1px solid #ccc}.home-page .floor-header .header-navs li a{color:#333}.home-page .floor-header .header-navs li:first-child{border-left:none}.home-page .floor-header .header-navs li:hover{text-decoration:underline}.g-list li{float:left}.g-list li a{position:relative;display:block;overflow:hidden}.g-list li a img,.g-mask{width:100%;height:100%}.g-mask{display:block;position:absolute;z-index:1;background:#000;opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";overflow:hidden;transition:opacity .6s}.g-title{display:block;text-align:center;font-weight:700;line-height:1.5;width:100%;margin-top:14px}.home-page .tpl-recommend{width:100%;position:relative}.home-page .tpl-recommend a{display:block}.home-page .tpl-recommend a img{display:block;width:100%;height:100%}.home-page .tpl-recommend .tpl-body{margin-bottom:8px}.home-page .tpl-recommend .tpl-nav{float:left;overflow:hidden}.home-page .tpl-recommend .tpl-nav .tpl-keywords{margin-bottom:8px}.home-page .tpl-recommend .tpl-nav .tpl-category{padding:10px 0;background-color:#f8f8f8;overflow:hidden}.home-page .tpl-recommend .tpl-nav .tpl-category a{float:left;width:50%;text-align:center;color:#000;overflow:hidden}.home-page .tpl-recommend .tpl-brands{float:left;overflow:hidden;margin-left:8px}.home-page .tpl-recommend .tpl-brands li{margin-top:8px}.home-page .tpl-recommend .tpl-types{float:left;overflow:hidden;margin-top:-8px;width:579px}.home-page .tpl-recommend .tpl-types li{float:left;margin-left:8px;margin-top:8px}.home-page .tpl-recommend .tpl-types li a{width:185px;height:248px}.home-page .tpl-recommend .tpl-products{overflow:hidden;margin-left:-10px}.home-page .tpl-recommend .tpl-products li{float:left;margin-left:10px}.home-page .tpl-recommend .tpl-products li a{width:222px;height:298px}.home-page .tpl-recommend .tpl-nav{width:185px}.home-page .tpl-recommend .tpl-nav .keywords0,.home-page .tpl-recommend .tpl-nav .keywords1,.home-page .tpl-recommend .tpl-nav .keywords2{margin-bottom:10px;height:76px}.home-page .tpl-recommend .tpl-nav .keywords2{margin-bottom:0}.home-page .tpl-recommend .tpl-nav .tpl-category{height:228px}.home-page .tpl-recommend .tpl-nav .tpl-category a{height:38px;line-height:38px;font-size:14px}.home-page .tpl-recommend .tpl-brands{width:378px;height:512px}.home-page .tpl-recommend .tpl-brands li a{height:248px}.min-screen .home-page .tpl-recommend .tpl-nav{width:158px}.min-screen .home-page .tpl-recommend .tpl-nav .keywords0,.min-screen .home-page .tpl-recommend .tpl-nav .keywords1,.min-screen .home-page .tpl-recommend .tpl-nav .keywords2{margin-bottom:8px;height:65px}.min-screen .home-page .tpl-recommend .tpl-nav .keywords2{margin-bottom:0}.min-screen .home-page .tpl-recommend .tpl-nav .tpl-category{height:192px}.min-screen .home-page .tpl-recommend .tpl-nav .tpl-category a{height:32px;line-height:32px;font-size:12px}.min-screen .home-page .tpl-recommend .tpl-nav .tpl-category a:hover{text-decoration:underline}.min-screen .home-page .tpl-recommend .tpl-brands{width:324px;height:432px}.min-screen .home-page .tpl-recommend .tpl-brands li a{height:212px}.min-screen .home-page .tpl-recommend .tpl-types{width:498px}.min-screen .home-page .tpl-recommend .tpl-types li a{width:158px;height:212px}.min-screen .home-page .tpl-recommend .tpl-products li a{width:190px;height:254px}.home-page .singlehot{overflow:hidden;margin-left:-8px}.home-page .singlehot li{margin-left:8px;margin-bottom:8px}.home-page .singlehot li a{width:185px;height:248px}.home-page .singlehot .impo1,.home-page .singlehot .impo9{width:378px}.home-page .floor-ad a{display:block;height:129px}.home-page .floor-ad a img{display:block;width:100%;height:100%}.home-page .goods-container{margin-right:-10px;width:inherit;padding-top:0}.home-page .goods-container .good-info{margin-bottom:0;width:280px;height:485px}.home-page .goods-container .good-detail-img{height:374px}.home-page .goods-container .good-detail-text{text-align:center}.home-page .adbanner{margin-top:12px}.home-page .adbanner a{height:150px}.min-screen .home-page .singlehot li a{width:158px;height:212px}.min-screen .home-page .singlehot .impo1,.min-screen .home-page .singlehot .impo9{width:323px}.min-screen .home-page .goods-container .good-info{width:240px;height:412px}.min-screen .home-page .goods-container .good-info .good-detail-img{height:320px}.home-page .commodity .commodity-list{margin-left:-10px}.home-page .commodity .commodity-list a{height:465px;width:280px}.home-page .commodity .commodity-list li{margin-left:10px}.home-page .commodity .commodity-list i{position:absolute;bottom:0;width:100%;height:20px;background:#ffac5b;color:#fff;line-height:20px;text-align:center;font-size:12px}.home-page .commodity .commodity-list i.top{position:absolute;top:10px;right:10px;background-color:#ff575c;color:#fff;border-radius:30px;z-index:2;height:60px;width:60px;line-height:60px;font-size:20px}.home-page .commodity .commodity-list .commodity-img{position:relative;height:374px}.home-page .commodity .commodity-list p.commodity-name{font-size:12px;color:#000;text-align:center;margin-top:14px;line-height:18px}.home-page .commodity .commodity-list p.commodity-price{position:relative;margin:3px 0 0;text-align:center;line-height:20px;color:#000}.home-page .commodity .commodity-list p.commodity-price span{display:inline-block;font-size:12px}.home-page .commodity .commodity-brands{margin-left:-8px}.home-page .commodity .commodity-brands a{float:left;margin-left:8px;display:block;width:185px;height:86px}.home-page .commodity .commodity-brands a img{width:100%;height:100%}.home-page .commodity .loading{position:relative;width:100%;text-align:center;padding-top:40px}.home-page .commodity .loading a{display:block;height:35px;width:120px;margin:0 auto 40px;background-color:#000;color:#fff;font-size:14px;line-height:35px;text-align:center}.min-screen .home-page .commodity .commodity-list a{height:400px;width:240px}.min-screen .home-page .commodity .commodity-list .commodity-img{height:320px}.min-screen .home-page .commodity .commodity-list i.top{height:52px;width:52px;line-height:52px;font-size:14px}.min-screen .home-page .commodity .commodity-brands a{width:158px;height:74px}.home-page .slide-accordion{overflow:hidden;position:relative;height:400px}.home-page .slide-accordion a{position:relative;display:block}.home-page .slide-accordion a img{display:block;width:100%;height:100%}.home-page .slide-accordion ul{position:absolute;left:-5px}.home-page .slide-accordion li{position:absolute;border-left:5px solid #fff}.home-page .slide-accordion li a{width:650px;height:400px}.home-page .slide-accordion .g-mask{opacity:.2;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=20)"}.home-page .slide-accordion .g-mask:hover{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"}.min-screen .home-page .slide-accordion{height:342px}.min-screen .home-page .slide-accordion li a{width:558px;height:342px}.boys .tpl-nav .keywords0{margin-bottom:10px!important;height:152px!important}.boys .tpl-nav .keywords1{height:86px!important}.boys .tpl-nav .tpl-category a{height:38px!important;line-height:38px!important;font-size:14px!important}.boys .tpl-brands{margin-top:-8px!important}.boys .goods-container .good-info,.lifestyle .goods-container .good-info{width:222px!important;height:408px!important}.boys .goods-container .good-info .good-detail-img,.lifestyle .goods-container .good-info .good-detail-img{height:298px!important}.min-screen .boys .tpl-nav .keywords0{margin-bottom:8px!important;height:130px!important}.min-screen .boys .tpl-nav .keywords1{margin-bottom:0!important;height:74px!important}.min-screen .boys .tpl-brands{margin-top:-8px!important}.min-screen .boys .goods-container .good-info,.min-screen .lifestyle .goods-container .good-info{width:188px;height:360px}.min-screen .boys .goods-container .good-info .good-detail-img,.min-screen .lifestyle .goods-container .good-info .good-detail-img{height:255px}.min-screen .home-page{width:990px}.min-screen .home-page .slide-container{height:387px}.min-screen .home-page .slide-container img{display:block}.min-screen .home-page .slide-thumb-container{height:440px}.min-screen .home-page .slide-container-placeholder{height:387px}.min-screen .home-page .slide-thumb-container-placeholder{height:440px}.min-screen .home-page .slide-wrapper{height:387px}.min-screen .home-page .slide-wrapper li a{width:990px}.min-screen .home-page .slide-switch{display:block}.min-screen .home-page .slide-switch a.prev{margin-left:-495px}.min-screen .home-page .slide-switch a.next{margin-right:-495px}.min-screen .home-page .slide-switch a:hover{opacity:.9;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=90)"}.min-screen .home-page .thumb-pagination{width:990px;margin:7px auto 0;padding:0}.min-screen .home-page .thumb-pagination li{width:118px;height:46px}.min-screen .home-page .debris-slider{height:440px}.min-screen .home-page .debris-slider .left-col{margin-right:9px}.min-screen .home-page .debris-slider .left-col a{width:240px;height:103px}.min-screen .home-page .debris-slider .left-col a:first-child{height:214px}.min-screen .home-page .debris-slider .center-col{width:492px;margin-right:9px}.min-screen .home-page .debris-slider .right-col a{width:240px;height:103px}.min-screen .home-page .debris-slider .right-col a:first-child{height:326px;margin-bottom:10px}.min-screen .home-page .new-report .report-list{width:748px}.min-screen .home-page .new-report .report-list li{width:158px;height:212px}.min-screen .home-page .new-report .last-item,.min-screen .home-page .new-report .report-list li:first-child{width:242px;height:432px}.min-screen .home-page .preference-brand-list{width:998px}.min-screen .home-page .preference-brand-item{margin-right:7px}.min-screen .home-page .preference-brand-item a{width:159px;height:74px}.min-screen .home-page .preference-more{width:159px;height:74px;line-height:90px}.min-screen .home-page .img-slider-wrapper{height:480px}.min-screen .home-page .img-container-landscape{margin:73px auto 0;width:844px;height:370px}.min-screen .home-page .img-container-landscape .img-item{width:275px;height:100%;margin-right:9px}.min-screen .home-page .img-brand{height:150px}.min-screen .home-page .img-brand ul{width:998px}.min-screen .home-page .img-brand li{width:325px;height:150px;line-height:150px}.min-screen .home-page .logo-brand{height:246px}.min-screen .home-page .logo-brand ul{width:998px}.min-screen .home-page .logo-brand li{margin:8px 8px 0 0;width:158px;height:74px;line-height:74px}.min-screen .home-page .logo-brand .logo-brand-switch .iconfont{font-size:24px}.min-screen .home-page .logo-brand .logo-brand-switch .iconfont.prev{top:-12px}.min-screen .home-page .logo-brand .logo-brand-switch .iconfont.next{bottom:-12px}.min-screen .home-page .logo-brand.logos-10{height:164px}.min-screen .home-page .categorys-list ul{width:1004px}.min-screen .home-page .categorys-list li{margin:0 7px 7px 0;width:161px;height:214px}.min-screen .home-page .categorys-list li.cate-item0{width:160px;height:435px}.min-screen .home-page .categorys-list li.cate-item1{width:326px;height:435px}.min-screen .home-page .floor-header{margin:50px 0 30px}.min-screen .home-page .floor-header .header-navs li{padding:1px 10px}.brands .path-nav{border-bottom:none;margin-bottom:0;padding-top:10px;padding-bottom:20px}.brands .brands-tabs{position:relative}.brands .brands-tabs a{display:block}.brands .brands-tabs a img{width:100%;height:100%;display:block}.brands .brands-tabs li{float:left}.brands .brands-tabs li p{display:block;font-size:30px;text-align:center;color:#dedede;position:absolute;top:50%;width:100%;margin-top:-15px;z-index:3}.brands .brands-tabs li .g-mask{opacity:.4;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"}.brands .brands-tabs li .g-mask-on,.brands .brands-tabs li:hover .g-mask{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"}.brands .brands-tabs .hover-contain{position:relative;border-bottom:1px solid #dfdfdf}.brands .brands-tabs .hover-contain .hoverarr{background-color:#3d3d3d;position:absolute;bottom:0;z-index:7}.brands .brands-tabs .hover-contain .hoverarr i{width:0;height:0;position:absolute;left:50%;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #3d3d3d;top:-6px;margin-left:-3px}.brands .header-navs{margin-right:-15px}.brands .category-nav{border:2px solid #222;padding-left:16px;height:44px;line-height:44px;font-size:12px;font-weight:700;position:relative;z-index:9;background-color:#fff}.brands .category-nav span{display:inline-block;margin-right:15px}.brands .category-nav a{display:inline-block;padding:0 7px;text-align:center;color:#222;cursor:pointer}.brands .category-fix{position:fixed;top:0;z-index:9;margin-top:0!important}.brands .brands-list dl{position:relative;border-top:1px dotted #999;padding:20px 0}.brands .brands-list dt{position:absolute;width:130px;font-weight:700;font-size:16px;text-align:center;top:50%;margin-top:-9px}.brands .brands-list dd{margin-left:130px}.brands .brands-list dd li{float:left;display:block;width:170px;height:18px}.brands .brands-list dd a{color:#666;line-height:18px;font-size:12px;position:relative}.brands .brands-list dd a span{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}.brands .brands-list dd a span:hover{text-decoration:underline}.brands .brands-list dd .brands-dialog{display:inline;position:relative}.brands .brands-list dd .hot{font-weight:700;color:#222}.brands .brands-list dd i{position:relative;top:-4px;color:#e01;font-size:14px}.brands .brands-category{width:1150px}.brands .brands-tabs{width:100%}.brands .brands-tabs li{margin-left:10px}.brands .brands-tabs li a{position:relative;width:222px;height:180px}.brands .brands-tabs li:first-child{margin-left:0}.brands .brands-tabs .hover-contain{height:30px}.brands .brands-tabs .hover-contain .hoverarr{height:5px;width:222px}.brands .brands-ad,.brands .brands-logo{margin:20px 0}.brands .brands-ad li{float:left;margin-left:10px}.brands .brands-ad li img{display:block;width:280px;height:280px}.brands .brands-ad li:first-child{margin-left:0}.brands .brands-ad li:first-child img{width:570px}.brands .brands-logo a{float:left;margin-left:26px}.brands .brands-logo a img{display:block;width:91px;height:38px}.brands .brands-logo a:first-child{margin-left:0}.brands .list-floor{width:1160px}.brands .brandfloor .g-list{margin-top:-32px}.brands .brandfloor li{margin-right:8px;margin-top:32px}.brands .brandfloor li a{width:378px;height:250px}.brands .singlegoods .g-list{margin-top:-10px}.brands .singlegoods li{margin-right:10px;margin-top:10px}.brands .singlegoods li a{width:280px;height:374px}.brands .singlegoods .singlegoods-title{position:absolute;left:0;bottom:0;height:50px;width:100%}.brands .singlegoods .singlegoods-title p{position:absolute;z-index:2;top:0;left:0;display:block;width:100%;height:100%;line-height:50px;font-size:18px;text-align:center;color:#fff}.brands .video .g-list{margin-top:-10px}.brands .video li{margin-right:8px;margin-top:10px}.brands .video li a{width:378px;height:242px}.brands .video .video-play{display:block;position:absolute;left:50%;top:50%;margin-left:-30px;margin-top:-28px;width:60px;height:56px;background-image:url(../assets/img/index/play.png?v155ba59f29a)}.brands .video .video-title{position:absolute;left:0;bottom:0;height:32px;width:100%}.brands .video .video-title p{position:absolute;z-index:2;top:0;left:0;display:block;width:100%;height:100%;font-size:14px;line-height:32px;text-align:center;color:#fff}.brands .news{margin-bottom:40px}.brands .news .news-pic{position:relative;float:left;width:764px;height:436px}.brands .news .news-pic .slide-container{height:100%}.brands .news .news-pic .slide-container li a{height:100%;width:764px}.brands .news .news-pic .slide-container .slide-wrapper{height:100%}.brands .news .news-pic .slide-container .slide-switch{display:none}.brands .news .news-pic .slide-container .slide-switch .prev{left:0;margin-left:0}.brands .news .news-pic .slide-container .slide-switch .next{right:0;margin-right:0}.brands .news .news-pic .slide-container .slide-switch.show{display:block}.brands .news .news-pic .slide-tips{position:absolute;left:0;bottom:0;height:30px;width:100%;background:#000;opacity:.8;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"}.brands .news .news-pic .slide-tips p{position:absolute;left:18px;z-index:2;height:30px;font-size:14px;line-height:30px;color:#fff}.brands .news .news-pic .slide-pagination{right:0;left:auto;bottom:0}.brands .news .news-pic .slide-pagination .slide-shade{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";background:none}.brands .news .news-pic .slide-pagination span{margin-top:3px}.brands .news .news-txt{padding:20px 16px;float:right;border:1px solid #000;overflow:hidden}.brands .news .news-txt ul{height:100%}.brands .news .news-txt li{position:relative;display:block;margin-bottom:10px;margin-left:20px}.brands .news .news-txt a{font-size:14px;line-height:27px;cursor:pointer;color:#010101;display:block}.brands .news .news-txt a:hover{color:#fff;background:#000;padding-left:12px;transition:padding .4s}.brands .news .news-txt i{position:absolute;top:0;left:-26px;font-size:22px}.brands .news .news-txt{width:342px;height:394px}.brands .ads{margin:40px 0}.brands .ads li{margin-right:10px;margin-bottom:10px}.brands .ads li a{width:280px}.brands .ads li a img{height:160px}.brands .ads li .name{font-size:14px}.brands .ads li .des{font-size:12px}.brands .brands-items{margin:25px auto}.brands .brands-items .brands-item{float:left;padding:15px 0;width:50%}.brands .brands-items a.brands-pic{float:left;width:280px;height:136px;display:block}.brands .brands-items a.brands-pic img{width:100%;height:100%}.brands .brands-items .brand-info{float:right;padding:0 20px;width:255px;color:#000}.brands .brands-items .brand-info h3{width:100%;font-size:20px;line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brands .brands-items .brand-info .brand-desc{padding:12px 0;height:92px;font-size:14px;line-height:22px;overflow:hidden}.brands .pagination{margin:40px 0 80px;text-align:center}.brands .pagination a{height:24px;padding:0 9px;line-height:24px;display:inline-block;text-align:center;margin-right:8px;color:#222;font-size:12px}.brands .pagination a i{position:relative;top:-1px;font-size:10px;transform:scale(.8)}.brands .pagination a.cur{background:#222;color:#fff}.min-screen .brands .header-navs{margin-right:-10px}.min-screen .brands .sit-nav{padding-top:10px;font-size:12px}.min-screen .brands .sit-nav .sep{margin:0 6px}.min-screen .brands .brands-category{width:990px}.min-screen .brands .brands-tabs li a{width:190px;height:154px}.min-screen .brands .brands-tabs .hover-contain{height:25px}.min-screen .brands .brands-tabs .hover-contain .hoverarr{height:4px;width:190px}.min-screen .brands .brands-ad li img{width:240px;height:240px}.min-screen .brands .brands-ad li:first-child img{width:490px}.min-screen .brands .brands-logo a{margin-left:10px}.min-screen .brands .brands-logo a img{width:90px;height:37px}.min-screen .brands .brands-logo a:first-child{margin-left:0}.min-screen .brands .list-floor{width:1000px}.min-screen .brands .brandfloor .g-list{margin-top:-26px}.min-screen .brands .brandfloor li{margin-right:9px;margin-top:26px}.min-screen .brands .brandfloor li a{width:324px;height:214px}.min-screen .brands .singlegoods .g-list{margin-top:-10px}.min-screen .brands .singlegoods li{margin-right:10px;margin-top:10px}.min-screen .brands .singlegoods li a{width:240px;height:324px}.min-screen .brands .singlegoods .singlegoods-title{position:absolute;left:0;bottom:0;height:50px;width:100%}.min-screen .brands .singlegoods .singlegoods-title p{position:absolute;z-index:2;top:0;left:0;display:block;width:100%;height:100%;line-height:50px;font-size:18px;text-align:center;color:#fff}.min-screen .brands .video .g-list{margin-top:-10px}.min-screen .brands .video li{margin-right:9px;margin-top:10px}.min-screen .brands .video li a{width:324px;height:206px}.min-screen .brands .video .video-play{display:block;position:absolute;left:50%;top:50%;margin-left:-30px;margin-top:-28px;width:60px;height:56px;background-image:url(../assets/img/index/play.png?v155ba59f29a)}.min-screen .brands .video .video-title{position:absolute;left:0;bottom:0;height:30px;width:100%}.min-screen .brands .video .video-title p{position:absolute;z-index:2;top:0;left:0;display:block;width:100%;height:100%;font-size:14px;line-height:30px;text-align:center;color:#fff}.min-screen .brands .news .news-pic{width:660px;height:376px}.min-screen .brands .news .news-pic .slide-container,.min-screen .brands .news .news-pic .slide-container img{height:376px}.min-screen .brands .news .news-txt{width:284px;height:334px}.min-screen .brands .news .news-txt li{margin-bottom:13px}.min-screen .brands .ads{margin-bottom:30px}.min-screen .brands .ads li{margin-right:10px;margin-bottom:10px}.min-screen .brands .ads li a{width:240px}.min-screen .brands .ads li a img{height:138px}.min-screen .brands .ads li .name{font-size:14px}.min-screen .brands .ads li .des{font-size:12px}.min-screen .brands .brands-items a.brands-pic{width:240px;height:116px}.min-screen .brands .brands-items .brand-info{width:212px}.min-screen .brands .brands-items .brand-info .brand-desc{height:72px}.brands-layer{position:absolute;z-index:9;top:-83px;left:15px;width:325px;height:287px;background:url(../assets/img/index/brands-layer.png?v155ba59f297) no-repeat;font-weight:400}.brands-layer .layer-content{padding:20px 20px 20px 35px}.brands-layer .layer-content .title{font-size:24px;line-height:24px;border-bottom:1px solid #ccc;padding-bottom:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brands-layer .layer-content .desc{margin:5px 0;height:72px;overflow:hidden}.brands-layer .layer-content .desc img{width:80px;height:50px;margin:3px 5px 0 0;float:left}.brands-layer .layer-content .desc .right{width:180px;float:right;font-size:12px;line-height:150%;max-height:80px}.brands-layer .layer-content .featured{font-size:16px;margin-right:-15px}.brands-layer .layer-content .featured img{height:100px;width:80px;float:left;margin:15px 15px 0 0}.brands-layer-right{background:url(../assets/img/index/brands-layer.png?v155ba59f297) no-repeat 0 -287px;left:-325px;top:-83px}.brands-layer-right .layer-content{padding:20px 35px 20px 20px}.coupon-page{width:1150px;margin:10px auto 0}.coupon-page .slide-container{position:relative}.coupon-page .slide-wrapper{position:relative;height:450px;overflow:hidden}.coupon-page .slide-wrapper ul{position:relative;height:100%}.coupon-page .slide-wrapper li{display:none;position:absolute;top:0;right:0;width:100%;height:100%}.coupon-page .slide-wrapper li a{display:block;height:100%;width:1150px;margin:0 auto}.coupon-page .slide-wrapper li img{width:100%;height:100%}.coupon-page .slide-switch,.coupon-page .slide-wrapper:hover .slide-switch.show,.coupon-page .slide-wrapper li:first-child{display:block}.coupon-page .slide-switch a{position:absolute;top:50%;margin:-30px 0 0;width:60px;height:60px;line-height:56px;text-align:center;z-index:2;background:#fff;opacity:.55;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=55)"}.coupon-page .slide-switch a .iconfont{font-size:32px;color:#59585a}.coupon-page .slide-switch a.prev{left:50%;margin-left:-575px}.coupon-page .slide-switch a.next{right:50%;margin-right:-575px}.coupon-page .slide-switch a:hover{opacity:.9;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=90)"}.coupon-page .title{width:300px;margin:80px auto 40px;text-align:center;border:1px solid #000;height:31px;line-height:31px;position:relative}.coupon-page .title span{margin:5px}.coupon-page .coupon{display:inline-block;position:relative;width:282px;height:258px;margin-right:2px}.coupon-page .coupon img{width:100%;height:100%}.coupon-page .coupon .coupon-mask{width:100%;height:259px;background-color:rgba(0,0,0,.6);position:absolute;top:0;left:0;right:0;z-index:8}.coupon-page .coupon .info{width:78px;height:78px;position:absolute;right:2px;bottom:-1px}.coupon-page .coupon .info>div{width:100%;height:38px;font-size:16px;color:#fff;text-align:center;position:absolute;top:50%;margin-top:-19px}.coupon-page .coupon .info p{margin-bottom:5px}.coupon-page .coupon .info .guang{width:50px;height:18px;line-height:18px;font-size:12px;background-color:#fff;color:#d0021b;margin:0 auto}.me-page{width:990px;margin:0 auto 20px}.me-page .home-path{height:40px;line-height:40px;color:#ccc;font-size:12px}.me-page .home-path .path-icon{float:left;display:block;background-image:url(../assets/img/sprite.home.png?v155ba59fd56);background-position:-22px -24px;width:15px;height:15px;margin-right:10px;margin-top:11px}.me-page .home-path a,.me-page .home-path span{color:#666}.me-page .home-path span{font-weight:700}.me-page .block{border:1px solid #dedede;border-radius:2px}.me-page .me-main .block{margin-bottom:10px}.me-page .title{height:40px;line-height:40px;padding:0 8px;background-color:#e3e3e3;background-position:10px 12px;background-repeat:no-repeat}.me-page .user-thumb{text-align:center;padding:20px 0;background:#f8f8f8}.me-page .user-thumb .thumb-bg{width:100px;height:100px;padding:5px 7px 7px 5px;margin:0 auto;background:url(../assets/img/home/thumb-bg.png?v155ba59f293)}.me-page .user-thumb .default-user-thumb,.me-page .user-thumb img{width:100px;height:100px}.me-page .user-thumb .default-user-thumb{background:url(../assets/img/home/default-thumb.png?v155ba59f257) no-repeat;background-size:100%}.me-page .home-navigation{float:left;width:180px;margin-right:8px}.me-page .home-navigation .ucenter{background-image:url(../assets/img/home/ucenter.png?v155ba59f294)}.me-page .nav-group .row{height:38px;line-height:38px;border-top:1px solid #e2e2e2;padding-left:35px;color:#666;background:#f8f8f8;font-size:12px}.me-page .nav-group .row a{display:inline-block;color:#666}.me-page .nav-group .row span{color:#e0012b;font-weight:700}.me-page .nav-group .row.active{background:#636363}.me-page .nav-group .row.active a{color:#fff}.me-page .nav-group .row.first{border-top:none}.me-page .nav-group li:hover{background:#fff;color:#000}.me-page .nav-group .nav-title{font-size:14px;border-top:1px solid #ccc;border-bottom:1px solid #ccc;color:#333;background:#e6e6e6;padding-left:0}.me-page .nav-group .nav-title .title-icon{float:left;display:block;width:15px;height:15px;background-image:url(../assets/img/sprite.home.png?v155ba59fd56);background-position:-48px 0;margin:10px 10px 0}.me-page .me-main{float:left;width:800px}.me-page .me-pager{width:778px;height:22px;line-height:22px;background:#f3f3f3;border-top:1px solid #e3e3e3;padding:10px;font-size:12px;color:#666}.me-page .me-pager .check-all{margin:0;vertical-align:text-top;margin-right:5px}.me-page .me-pager .del-checked{cursor:pointer;margin-left:5px}.me-page .me-pager .del-checked:hover{color:#468fa2;text-decoration:underline}.me-page .me-pager a{border:1px solid #cecece;padding:0 6px;height:18px;line-height:18px;border-radius:2px;margin-right:4px;background-color:#fff}.me-page .me-pager a.cur,.me-page .me-pager a:hover{background-color:#222;color:#fff}.me-page .me-pager .pager-html{display:inline}.me-page .help-us{height:20px;line-height:20px;font-size:12px}.me-page .help-us a{color:#468fa2}.me-page .help-us .help-us-icon{display:inline-block;width:12px;height:12px;margin-right:8px;margin-top:-3px;vertical-align:middle;background-image:url(../assets/img/sprite.home.png?v155ba59fd56);background-position:-48px -17px}.me-page .empty-tip{padding:200px 0;text-align:center;overflow:hidden}.me-page .tabs{height:25px;margin:10px;background:url(../assets/img/home/tab.png?v155ba59f292) repeat-x 0 -25px;font-size:12px;line-height:25px;padding-left:10px}.me-page .tabs li{display:block;float:left;width:88px;height:25px;text-align:center;background:url(../assets/img/home/tab.png?v155ba59f292) no-repeat -92px 0;margin-right:3px;color:#333}.me-page .tabs li.active{background-position:0 0;font-weight:700}.me-page .tabs a{display:block;width:100%;height:100%}.me-page .table-header{height:30px;line-height:30px;background:#efefef;border:1px solid #e6e6e6;padding:0 10px}.me-page .table-header>span{display:block;float:left;text-align:center}.me-page .advance-buy-tag,.me-page .freebie-tag,.me-page .presall-tag,.me-page .virtual-good-tag{display:block;position:absolute;bottom:0;left:0;right:0;height:15px;line-height:16px;text-align:center;color:#fff}.me-page .freebie-tag{background:#88be51}.me-page .advance-buy-tag{background:#fc1264}.me-page .presall-tag,.me-page .virtual-good-tag{background:#333}.default-me-page .message-tip{box-sizing:border-box;width:800px;height:40px;line-height:40px;padding:0 10px;margin-bottom:10px;background:#faf6d9;border:1px solid #f5e8c5;border-radius:2px;font-weight:700;font-size:12px}.default-me-page .message-tip a{color:#468fa2;font-weight:400}.default-me-page .message-tip b{color:#e8044f;margin-right:5px}.default-me-page .message-tip .close{float:right;cursor:pointer;font-weight:400}.default-me-page .more{display:block;float:right;height:21px;line-height:22px;width:63px;margin-top:8px;padding-right:8px;font-size:12px;color:#fdfdfd;text-align:center;border-radius:2px;background:url(../assets/img/home/btn-more.png?v155ba59f249) no-repeat}.default-me-page .brands ul{padding:10px 0 10px 10px}.default-me-page .brands ul li{float:left;width:122px;height:103px;border:1px solid #f6f6f6;margin-right:7px;overflow:hidden}.default-me-page .brands ul img{width:80px;height:50px;display:block;vertical-align:middle;margin:15px auto}.default-me-page .brands ul .brand-name{display:block;width:114px;height:18px;line-height:18px;color:#333;background:#f4f4f4;font-size:12px;text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin:0 auto}.default-me-page .new-arrival{overflow:hidden}.default-me-page .new-arrival .na-pager-wrap{float:right}.default-me-page .new-arrival .na-pager-wrap .next,.default-me-page .new-arrival .na-pager-wrap .pre{display:inline-block;height:22px;line-height:22px;margin-top:8px;padding:0 6px;font-size:12px;color:#fff;background:#646464;text-align:center;border-radius:2px;cursor:pointer}.default-me-page .new-arrival .na-pager-wrap .next .iconfont,.default-me-page .new-arrival .na-pager-wrap .pre .iconfont{font-size:12px}.default-me-page .new-arrival .na-pager-wrap .no-visible{visibility:hidden}.default-me-page .new-arrival ul{width:800px;height:218px;overflow:hidden}.default-me-page .new-arrival li{float:left;width:101px;height:160px;padding:29px;border-right:1px solid #e3e3e3;text-align:center;font-size:12px;overflow:hidden}.default-me-page .new-arrival li .thumb{width:100px;height:100px}.default-me-page .new-arrival li .name{margin:10px 0;text-decoration:underline;color:#666;line-height:14px}.default-me-page .new-arrival li .price{color:#000}.default-me-page .banner{display:block;width:800px;border:none}.default-me-page .latest-orders .title{background-image:url(../assets/img/home/latest-orders.png?v155ba59f26f)}.default-me-page .brands .title{background-image:url(../assets/img/home/brands.png?v155ba59f246)}.default-me-page .new-arrival .title{background-image:url(../assets/img/home/new-arrival.png?v155ba59f272)}.me-orders{font-size:12px}.me-orders .right{float:right}.me-orders .order-table-header .info{width:330px;text-align:left;padding-left:10px}.me-orders .order-table-header .price{width:75px}.me-orders .order-table-header .count{width:60px}.me-orders .order-table-header .operation,.me-orders .order-table-header .order-status,.me-orders .order-table-header .pay{width:100px}.me-orders .order-title{height:28px;line-height:28px;background:#efefef;padding:0 5px;border-bottom:1px solid #e6e6e6}.me-orders .order-title .order-time{margin-left:25px}.me-orders .order-title .order-delete{margin-right:15px;color:#999}.me-orders .order-title .order-delete:hover{text-decoration:underline}.me-orders .order{margin:10px;border:1px solid #e6e6e6;border-radius:2px}.me-orders .order .order-wrap{position:relative;display:table;text-align:center}.me-orders .order .order-wrap>*{display:table-cell;vertical-align:middle}.me-orders .order li{display:table;border-top:1px solid #e6e6e6}.me-orders .order li>div{display:table-cell;color:#666;text-align:center;vertical-align:middle}.me-orders .order li:first-child{border-top:none}.me-orders .order .thumb-wrap{position:relative}.me-orders .order .thumb{width:60px;height:60px}.me-orders .order .info{position:relative;width:320px;text-align:left;padding:10px 0 10px 10px}.me-orders .order .info>*{float:left}.me-orders .order .info .color-size{color:#999}.me-orders .order .info .arrival-date{color:#e8044f;margin-left:2px}.me-orders .order .text-info{position:absolute;padding:5px;bottom:10px;left:72px}.me-orders .order .text-info>*{display:block;line-height:18px}.me-orders .order .name{color:#468fa2;max-width:245px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-orders .order .had-refund{color:#e8044f}.me-orders .order .price{width:80px;padding:5px;font-weight:700}.me-orders .order .price .free-icon{display:block;width:37px;height:18px;line-height:18px;font-size:12px;text-align:center;color:#80bb45;background:#e7fbc0;margin:5px auto;border:1px solid #80bb45;border-radius:3px}.me-orders .order .price.free-price em{text-decoration:line-through}.me-orders .order .count{width:50px}.me-orders .order .operation,.me-orders .order .order-status,.me-orders .order .pay{width:90px;border-left:1px solid #e6e6e6;padding:5px}.me-orders .order .pay{font-weight:700}.me-orders .order .pay-tip{font-weight:400;display:block;line-height:18px;color:#999}.me-orders .order .return-order{display:inline-block;padding:3px 10px;background:#ff7c48;border-radius:9px;color:#fff;text-align:center}.me-orders .order .op-item{display:block;color:#468fa2;line-height:18px}.me-orders .order .op-item.op-dis{color:#999}.me-orders .order .no-pay,.me-orders .order .paid{color:#e8044f}.me-orders .order .order-status span{line-height:18px;color:#999}.me-orders .order .order-status .cancel{color:#e8044f}.me-orders .order .check-logistics{display:block;cursor:pointer;color:#468fa2}.me-orders .order .cancel{color:#e8044f}.me-orders .order .logistics{position:absolute;padding:20px 12px;color:#ff8341;border:1px solid #c9c9c9;background:#fff;right:185px;margin-top:-40px;z-index:11}.me-orders .order .logistics li{line-height:18px;white-space:nowrap}.me-orders .order .logistics .close-logistics{position:absolute;top:0;right:0;color:#c9c9c9;cursor:pointer}.me-orders .order .logistics .right-triangle{position:absolute;width:0;height:0;right:-6px;top:24px}.me-orders .order .logistics .right-triangle.top{margin-top:1px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:6px solid #fff}.me-orders .order .logistics .right-triangle.bottom{margin-right:-1px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:7px solid #c9c9c9}.me-orders .order .operation>*{cursor:pointer}.me-orders .order .operation .pay-now{display:block;color:#fff;background:#de034a;height:20px;line-height:20px;text-align:center;margin:0 auto;border-radius:4px;width:68px}.me-history-orders .order-table-header .info,.me-history-orders .order .info{width:520px}.me-history-orders .order .info{text-align:center}.me-history-orders .order-table-header .order-sum,.me-history-orders .order .order-sum{width:90px;text-align:left}.me-history-orders .order li{border:none}.cancel-dialog header{font-size:14px;padding-bottom:10px;border-bottom:1px dotted #a7a7a7;color:#000;text-align:left}.cancel-dialog ul{text-align:left;padding:10px 0 0 25px}.cancel-dialog ul li{height:28px;line-height:28px;font-size:12px}.cancel-dialog ul label{padding-left:10px}.cancel-dialog ul input[type=text]{margin-left:10px;height:24px;text-indent:5px}.cancel-dialog .cancel-tip{margin-top:20px;color:#d60248;font-size:12px;padding-left:30px;text-align:left}.cancel-dialog .btns{padding:15px 30px;text-align:left}.cancel-dialog .btns .btn{height:35px;font-size:12px;line-height:35px}.cancel-dialog .btns .cancel-sure{width:130px;border-radius:3px;color:#fff;background:#d60248;border:none}.cancel-dialog .btns .cancel-no{background:#eaeaea;border-radius:3px;color:#999;border-color:#ebebeb;width:66px}.delete-dialog{padding:0 0 20px;border:1px solid #000;background:#fff}.delete-dialog .header{padding:0 10px;height:32px;background:#444;line-height:32px;color:#fff;text-align:left}.delete-dialog .close{color:#fff}.delete-dialog .close .iconfont{font-size:20px;font-weight:700}.delete-dialog .order-delete-confirm{width:400px;line-height:1.5}.delete-dialog .body{padding:20px;margin-top:30px}.delete-dialog .confirm-tip{font-size:18px;word-wrap:break-word}.delete-dialog .confirm-tip i{display:inline-block;width:30px;height:30px;margin-right:12px;background:url(../assets/img/home/doubt.png?v155ba59f25b) no-repeat;vertical-align:middle}.delete-dialog .delete-tip{padding-left:20px;margin:15px 0;font-size:13px;word-wrap:break-word}.delete-dialog .delete-sure{background:#efefef}.delete-dialog .delete-no{margin-left:60px;border-color:#cdcdcd}.orders-me-page .orders .title{padding-left:130px;line-height:40px;background-image:url(../assets/img/home/orders.png?v155ba59f27d);font-size:12px;font-weight:700}.orders-me-page .order-table-header{padding:0;margin:0 10px;border:1px solid #e6e6e6}.order-detail-page{font-size:12px}.order-detail-page .order-detail>.title{background-image:url(../assets/img/home/order-detail.png?v155ba59f279)}.order-detail-page .status{margin:10px 0;padding:10px;background:#efefef;border-bottom:1px solid #e6e6e6}.order-detail-page .status p{margin:5px 0;line-height:18px}.order-detail-page .status .cur-status{color:#e8044f}.order-detail-page .status .complete-tip{color:#999}.order-detail-page .status .cancel-order{margin-right:20px}.order-detail-page .status .cancel-order,.order-detail-page .status .edit-order{float:right;background:#ebebeb;border:1px solid #c1c1c1;color:#000}.order-detail-page .status .edit-order-active{background:#444;border:1px solid #444;color:#fff}.order-detail-page .status .go-pay{margin-left:60px}.order-detail-page .detail-info{padding:10px}.order-detail-page .sub-title{height:21px;line-height:21px;border:1px solid #e6e6e6;color:#333;background:#efefef}.order-detail-page .sub-title .icon{display:inline-block;height:11px;width:11px;background-image:url(../assets/img/home/complaint-icon.png?v155ba59f250);margin:5px 5px 0}.order-detail-page .content{padding:10px 20px 20px}.order-detail-page .content p{line-height:18px}.order-detail-page .order-progress{padding-top:20px}.order-detail-page .order-progress li{position:absolute;width:150px;line-height:15px;top:20px}.order-detail-page .order-progress .cur{color:#e9034e;font-weight:700}.order-detail-page .order-progress .date{display:block;color:#999;padding-left:12px}.order-detail-page .progress-box{position:relative;width:552px;height:70px;margin:0 auto}.order-detail-page .progress-box .pg-0{left:-20px}.order-detail-page .progress-box .pg-1{left:145px}.order-detail-page .progress-box .pg-2{left:330px}.order-detail-page .progress-box .pg-3{left:515px}.order-detail-page .virtual-detail .pg-1{left:245px}.order-detail-page .virtual-detail .pg-2{left:515px}.order-detail-page .virtual-detail .outter-progress{background:url(../assets/img/home/virtual-order-progress.png?v155ba59f296) no-repeat 0 0}.order-detail-page .virtual-detail .inner-progress{background:url(../assets/img/home/virtual-order-progress.png?v155ba59f296) no-repeat 0 -12px}.order-detail-page .outter-progress{width:552px;height:12px;background:url(../assets/img/home/order-progress.png?v155ba59f27a) no-repeat 0 0}.order-detail-page .inner-progress{height:12px;background:url(../assets/img/home/order-progress.png?v155ba59f27a) no-repeat 0 -12px}.order-detail-page .handle-time{width:300px}.order-detail-page .recive-place{width:200px}.order-detail-page .logistics-info{width:800px}.order-detail-page .trace-order td,.order-detail-page .trace-order th{line-height:18px}.order-detail-page .differentOrder{position:relative;width:100%;margin-top:10px}.order-detail-page .differentOrder .warn{text-align:center;background:#fefbd5;font:initial;height:40px;line-height:40px;font-size:16px}.order-detail-page .differentOrder .warn .red{color:red}.order-detail-page .differentOrder .warn .why{background-image:url(../assets/img/sprite.order.png?v155ba59fd56);background-position:-247px -46px;width:26px;height:20px;display:inline-block;vertical-align:middle}.order-detail-page .differentOrder .warn .why:hover{cursor:pointer}.order-detail-page .differentOrder .differentBag:before{content:"";position:absolute;width:0;height:0;border-bottom:10px solid #000;border-left:10px solid transparent;border-right:10px solid transparent;top:-10px;right:113px}.order-detail-page .differentOrder .differentBag{display:none;position:absolute;right:-10px;top:40px;width:510px;padding:0 50px;background:#fff;z-index:1;border:1px solid #000;font-size:14px}.order-detail-page .differentOrder .bag{position:relative;border-bottom:1px solid #e0e0e0;margin-top:10px;padding:20px 0}.order-detail-page .differentOrder .bag h3{height:30px;line-height:30px;font-weight:700;margin-left:15px}.order-detail-page .differentOrder .bag .pre{background-position:0 -142px;left:-30px}.order-detail-page .differentOrder .bag .next,.order-detail-page .differentOrder .bag .pre{position:absolute;background-image:url(../assets/img/sprite.order.png?v155ba59fd56);width:30px;height:50px;top:70px;display:none;cursor:pointer}.order-detail-page .differentOrder .bag .next{background-position:-32px -142px;right:-30px}.order-detail-page .differentOrder .bag p{color:#767676;margin-left:15px}.order-detail-page .differentOrder .bagDetil{position:relative;height:90px;width:510px;overflow:hidden;margin-bottom:20px}.order-detail-page .differentOrder .bagDetil ul{list-style:none;position:absolute;left:0;clear:both;height:90px}.order-detail-page .differentOrder .bagDetil ul li{float:left;width:102px;height:90px;line-height:90px;text-align:center;position:relative}.order-detail-page .differentOrder .bagDetil ul li img{width:90px;height:90px}.order-detail-page .differentOrder .bagDetil ul li p{position:absolute;bottom:0;background:#9c3;width:90px;height:1rem;line-height:1rem;color:#fff;margin-left:7px}.order-detail-page .differentOrder .bagDetil ul li a,.order-detail-page .differentOrder .bagDetil ul li a:hover{cursor:default}.order-detail-page .good-list table{border-collapse:collapse}.order-detail-page .good-list thead{height:25px;line-height:25px;background:#000;padding:2px 5px;color:#fff}.order-detail-page .good-list td,.order-detail-page .good-list th{padding:5px;text-align:center;border-right:1px solid #e6e6e6;border-bottom:1px solid #e6e6e6}.order-detail-page .good-list th{border-color:#000}.order-detail-page .good-list tr td:last-child,.order-detail-page .good-list tr th:last-child{border-right:none}.order-detail-page .good-list .product-info{width:314px}.order-detail-page .good-list .good-price,.order-detail-page .good-list .num,.order-detail-page .good-list .sum{width:91px}.order-detail-page .good-list .yoho-coin{width:100px}.order-detail-page .good-list .yoho-coin a{display:inline-block;width:12px;height:12px;background-image:url(../assets/img/sprite.home.png?v155ba59fd56);background-position:0 -44px;vertical-align:text-top}.order-detail-page .good-list .thumb-link{float:left;position:relative;margin-left:5px;margin-right:10px}.order-detail-page .good-list .thumb{display:block;width:60px;height:60px}.order-detail-page .good-list .name-color-size{float:left;color:#999;padding-top:12px;text-align:left}.order-detail-page .good-list .name{display:block;color:#468fa2;line-height:18px;text-align:left;max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.order-detail-page .order-balance{text-align:right;border-bottom:1px solid #e6e6e6;padding:10px 0}.order-detail-page .order-balance .back-coin{height:30px}.order-detail-page .order-balance .yoho-coin{width:14px;height:14px;display:inline-block;background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:-321px -225px;vertical-align:middle;margin-top:-2px;margin-right:4px}.order-detail-page .order-balance em{font-weight:700}.order-detail-page .order-balance .payment{color:#e8044f}.order-detail-page .oo-btn{display:inline-block;height:30px;width:92px;line-height:30px;text-align:center;border-radius:3px;color:#fff;cursor:pointer}.order-detail-page .go-pay{background:#d9044a;border:1px solid #c54b73}.order-detail-page .order-operation{text-align:right;padding:20px 10px}.order-detail-page .order-operation .oo-icon{display:inline-block;height:22px;width:22px;vertical-align:text-bottom}.order-detail-page .order-operation .success-icon{background-image:url(../assets/img/sprite.home.png?v155ba59fd56);background-position:0 0}.order-detail-page .order-operation .cancel-icon{background-image:url(../assets/img/sprite.home.png?v155ba59fd56);background-position:-24px 0}.order-detail-page .order-operation .confirm-received{display:block;float:right;margin-top:5px;background:#d9044a;border:1px solid #c54b73}.order-detail-page .order-operation .cancel-order{background:#ebebeb;border:1px solid #c1c1c1;color:#000}.order-detail-page .freebie-tag{background:#9c3}.order-detail-page .advance-buy-tag{background:#fc1264}.order-detail-page .virtual-good-tag{background:red}.order-detail-page .presall-tag{background:blue}.order-ticket-page{font-size:12px}.order-ticket-page .order-ticket .title{background-image:url(../assets/img/home/orders.png?v155ba59f27d)}.order-ticket-page .ticket-info{padding:20px 10px}.order-ticket-page .ticket-info .ticket-tag{display:inline-block;width:72px;height:19px;line-height:19px;text-align:center;font-size:12px;color:#fff;background:#000;border-radius:3px;margin-right:5px}.order-ticket-page .ticket-info .order-num{margin-left:10px}.order-ticket-page .ticket-info .return-to-orders{float:right;color:#468fa2}.order-ticket-page .qr-codes{width:768px;padding:10px 0 10px 10px;border:1px solid #e7e7e7;background:#fff;margin:0 auto}.order-ticket-page .qr-codes li{float:left;width:232px;height:260px;margin:10px;border:1px solid #e7e7e7;word-break:break-all;overflow:hidden;text-align:center}.order-ticket-page .qr-codes .qr{width:230px;height:230px}.order-ticket-page .tickets-tip{width:758px;padding:10px;border:1px solid #e7e7e7;background:#fff;margin:20px auto}.order-ticket-page .tickets-tip p{padding-left:20px;padding-bottom:10px;line-height:20px;background:url(../assets/img/home/qr-tip.png?v155ba59f27e) no-repeat -27px 5px}.order-ticket-page .tickets-tip .warn{background-position:0 -23px}.red-envelopes-page{font-size:12px}.red-envelopes-page .red-envelopes>.title{font-size:14px;font-weight:700}.red-envelopes-page .re-header{height:25px;line-height:25px;width:100%;text-align:center;border-bottom:1px solid #e6e6e6;background:#efefef}.red-envelopes-page .re-header span{display:inline-block;width:33%}.red-envelopes-page .money{color:#d52c29;font-family:微软雅黑;font-size:20px;font-weight:700}.red-envelopes-page .re-icon{display:inline-block;width:20px;height:18px;background-image:url(../assets/img/sprite.home.png?v155ba59fd56);background-position:0 -24px}.red-envelopes-page .red-envelopes-list{display:table;width:100%}.red-envelopes-page .red-envelopes-list li{display:table-row;color:#666;border-top:1px solid #e6e6e6}.red-envelopes-page .red-envelopes-list li>*{display:table-cell;width:33%;padding:10px;text-align:center;vertical-align:middle;border-left:1px solid #e6e6e6}.red-envelopes-page .red-envelopes-list li>:first-child{border-left:none}.red-envelopes-page .red-envelopes-list .use-remark{text-align:left;line-height:18px}.me-coupons-page{font-size:12px}.me-coupons-page .coupons>.title{font-size:14px;font-weight:700}.me-coupons-page .coupons-header{width:776px;height:25px;line-height:25px;text-align:center;border:1px solid #e6e6e6;background:#efefef;margin:0 auto}.me-coupons-page .coupons-header span{display:block;float:left}.me-coupons-page .coupon{display:table;border:1px solid #e6e6e6;width:778px;margin:10px auto;text-align:center;color:#666}.me-coupons-page .coupon>*{display:table-cell;vertical-align:middle;border-left:1px solid #e6e6e6;padding:5px;line-height:18px}.me-coupons-page .coupon .coupons-img{border-left:none}.me-coupons-page .coupon .end-soon{color:#e8044f}.me-coupons-page .un-use-coupons .coupons-img{width:20%}.me-coupons-page .un-use-coupons .value{width:18%}.me-coupons-page .un-use-coupons .term-of-validity{width:22%}.me-coupons-page .un-use-coupons .term-of-validity span{display:none}.me-coupons-page .un-use-coupons .use-remark{width:24%}.me-coupons-page .un-use-coupons .status{width:16%}.me-coupons-page .un-use-coupons .end-soon span{display:inline;padding:3px 10px;color:#fff;background:#e8044f}.me-coupons-page .used-coupons .coupon>*,.me-coupons-page .used-coupons .coupons-header>span{width:16.66%}.me-coupons-page .no-valid-coupons .coupon>*,.me-coupons-page .no-valid-coupons .coupons-header>span{width:25%}.me-currency-page{font-size:12px}.me-currency-page .currencies>.title{background-image:url(../assets/img/home/currency.png?v155ba59f256)}.me-currency-page .my-currency{height:58px;line-height:58px;font-weight:700;border-bottom:1px solid #e8e8e8;font-size:18px;color:#333;margin:0 10px}.me-currency-page .my-currency em{color:#ff2400;font-weight:400}.me-currency-page .my-currency.has-tip{border-bottom:none}.me-currency-page .currency-tip{height:40px;line-height:24px;font-size:18px;color:#333;font-weight:700;margin:-16px 10px 0;border-bottom:1px solid #e8e8e8}.me-currency-page .currency-tip em{color:#ff2400;font-weight:400}.me-currency-page .currency,.me-currency-page .tab-wrap{margin:0 10px}.me-currency-page .tab-wrap{position:relative}.me-currency-page .tab-wrap .options-helper{position:absolute;right:10px;top:0}.me-currency-page .tab-wrap .coin-helper{margin-left:10px;color:#468fa2}.me-currency-page .tabs{margin-left:0;margin-right:0}.me-currency-page .currency-header{height:25px;line-height:25px;text-align:center;border:1px solid #e6e6e6;background:#efefef;margin:0 10px}.me-currency-page .currency-header span{display:block;float:left;font-size:14px;font-weight:700}.me-currency-page .currency-header .date{width:159px}.me-currency-page .currency-header .income-expenditure{width:317px}.me-currency-page .currency-header .remark{width:300px}.me-currency-page .currency{display:table;border:1px solid #e6e6e6;margin-bottom:20px;border-bottom:none}.me-currency-page .currency li{display:table-row;text-align:center;font-size:14px;height:50px;line-height:50px}.me-currency-page .currency li>*{display:table-cell;border-left:1px solid #e6e6e6;border-bottom:1px solid #e6e6e6;vertical-align:middle;color:#666;padding:5px;line-height:18px}.me-currency-page .currency li>:first-child{border-left:none}.me-currency-page .currency .date{width:155px}.me-currency-page .currency .remark{width:300px}.me-currency-page .currency .remark>a{color:#468fa2;margin-left:10px;text-decoration:underline}.me-currency-page .currency .income-expenditure{width:320px;color:#73a7b5}.me-currency-page .currency .income{color:#e10049}.me-favorite-page .favorite .title{background-image:url(../assets/img/home/favorite.png?v155ba59f261)}.me-favorite-page .favorite-table-header{font-size:12px;padding:0}.me-favorite-page .favorite-table-header .options{width:136px}.me-favorite-page .fav-row{display:table;padding:10px 0;border-bottom:1px solid #e6e6e6}.me-favorite-page .fav-row>*{display:table-cell;vertical-align:middle}.me-favorite-page .fav-row .checkbox{width:40px;padding-left:10px}.me-favorite-page .del-favorite{color:#666;visibility:hidden;cursor:pointer}.me-favorite-page .fav-row:hover .del-favorite{visibility:visible}.me-favorite-page .empty-reduction,.me-favorite-page .favorite-articles,.me-favorite-page .favorite-brands,.me-favorite-page .favorite-products,.me-favorite-page .reduction-notice-tip{margin:0 10px;font-size:12px}.me-favorite-page .price-notice{position:absolute;width:320px;height:194px;z-index:12;top:50%;left:50%;margin-left:-160px;margin-top:-130px;background:#fff;border:1px solid #999;padding:20px;font-size:14px}.me-favorite-page .price-notice .close{position:absolute;display:block;top:5px;right:5px;width:46px;height:16px;cursor:pointer;background:#cdcdcd;color:#fff;border-radius:2px;font-size:12px}.me-favorite-page .price-notice .close:hover{background:#414141}.me-favorite-page .price-notice .price-notice-sure{display:block;width:82px;height:34px;line-height:34px;text-align:center;color:#fff;background:#e90024;font-weight:700;cursor:pointer;margin:20px auto 0}.me-favorite-page .price-notice .tip{line-height:20px;margin:20px 0}.me-favorite-page .price-notice label{margin-right:10px}.me-favorite-page .price-notice input{width:180px;height:30px;line-height:30px;color:#333;padding:0 5px;font-size:14px;border:1px solid #bebebe}.me-favorite-page .price-notice input.error{border-color:red}.me-favorite-page .price-notice .err-text{padding-left:70px;line-height:24px;color:red}.me-favorite-page .price-notice .err-text i{display:block;float:left;height:14px;width:14px;background-image:url(../assets/img/sprite.passport.png?v155ba59fd55);background-position:-95px -113px;margin-right:5px;margin-top:5px}.me-favorite-page .price-notice .phone-diff{color:red;line-height:18px}.me-favorite-page .price-notice .success{text-align:center}.me-favorite-page .price-notice .success p{font-size:14px;line-height:22px;margin-top:20px}.me-favorite-page .price-notice .success .iconfont{color:#51c516;font-size:24px}.me-favorite-page .price-notice .success .notice-num{color:#e20d29}.me-favorite-page .price-notice .cue{text-align:center;padding:70px 0 50px;display:none}.me-favorite-page .price-notice .cue span{color:#e90024}.me-favorite-page .price-notice .cue p{font-size:14px;line-height:22px}.me-favorite-page .error .content,.me-favorite-page .error .success{display:none}.me-favorite-page .error .cue{display:block}.me-favorite-page .reduction-notice-tip{border:1px solid #e7e7e7;padding:20px;margin-bottom:10px}.me-favorite-page .reduction-notice-tip .notice-text{width:245px;float:left}.me-favorite-page .reduction-notice-tip h2{color:#000;font-size:14px;line-height:1.5}.me-favorite-page .reduction-notice-tip p{padding:10px 0;color:#999;font-size:12px;line-height:1.5}.me-favorite-page .reduction-notice-tip .notice-img{float:right;width:458px;height:197px;background:url(../assets/img/home/reduction-notice.jpg?v155ba59f283)}.me-favorite-page .empty-reduction{text-align:center;font-size:14px;border:1px solid #e7e7e7;padding:40px;margin-bottom:20px}.me-favorite-page .empty-reduction a{display:inline-block;width:92px;height:30px;line-height:30px;color:#666;text-align:center;cursor:pointer;background:#ededed;border:1px solid #dbdbdb;border-radius:3px}.me-favorite-page .reduction-products{margin-bottom:20px}.fav-products .favorite-products>ul{padding-bottom:20px}.fav-products .sorts{position:relative;padding:10px 35px 10px 10px;min-height:20px;line-height:20px;margin:0 10px 10px;background:#f3f3f3;border:1px solid #e6e6e6;color:#ccc}.fav-products .sorts .sort{height:20px;line-height:20px;color:#666;font-size:12px;display:inline-block}.fav-products .sorts .sort.focus{background:url(../assets/img/home/sort-select.png?v155ba59f28d) no-repeat 0;padding-left:18px;color:#fff}.fav-products .sorts .sort.focus a{display:inline-block;background:url(../assets/img/home/sort-select.png?v155ba59f28d) no-repeat 100%;font-weight:700;color:#fff}.fav-products .sorts .sep{margin:0 10px}.fav-products .sorts .has-more{margin-left:10px}.fav-products .all-sorts{display:none}.fav-products .sort-btn{position:absolute;display:block;width:19px;height:19px;line-height:19px;right:10px;top:10px;text-align:center;border:1px solid #ececec;background:#fff;cursor:pointer}.fav-products .sort-btn .iconfont{color:#000;font-size:12px}.fav-products .reduction-filter{height:30px;line-height:30px;text-align:right;font-size:12px;margin:0 10px}.fav-products .reduction-notice{float:left;color:#666}.fav-products .favorite-goods{margin:0 10px;font-size:12px}.fav-products .favorite-goods>ul{padding-bottom:20px}.fav-products .favorite-table-header .info{width:390px;padding-left:50px;text-align:left}.fav-products .favorite-table-header .price{width:200px;text-align:left}.fav-products .fav-good{position:relative}.fav-products .fav-good .thumb{width:110px;text-align:center}.fav-products .fav-good .thumb img{width:100px}.fav-products .fav-good .text-info{width:270px;line-height:16px}.fav-products .fav-good .name{color:#468fa2;display:block}.fav-products .fav-good .name:hover{text-decoration:underline}.fav-products .fav-good .has-bought{display:inline-block;width:37px;height:15px;line-height:15px;text-align:center;color:#fff;background:#418fa3;border-radius:2px}.fav-products .fav-good .has-activity{color:#666;cursor:pointer}.fav-products .fav-good .price{width:200px;padding-left:10px}.fav-products .fav-good .price>em{font-weight:700;color:#e8044f;font-size:14px}.fav-products .fav-good .price .price-down{display:block;margin-top:5px}.fav-products .fav-good .price .price-down>em{color:#e8044f}.fav-products .fav-good .price .price-down .iconfont{font-size:12px}.fav-products .fav-good .options{width:136px;text-align:center}.fav-products .fav-good .options>*{display:block}.fav-products .fav-good .options .buy-again,.fav-products .fav-good .options .buy-now{width:92px;height:30px;line-height:30px;font-size:14px;text-align:center;border-radius:4px;margin:0 auto}.fav-products .fav-good .options .buy-now{color:#fff;background:#da044a}.fav-products .fav-good .options .buy-again{color:#666;background:#ececec;border:1px solid #cecece}.fav-products .fav-good .options .price-down-clock{line-height:20px;color:#666;cursor:pointer}.fav-products .fav-good .options .sold-out{color:#666}.fav-products .fav-good .options .buy-again,.fav-products .fav-good .options .buy-now,.fav-products .fav-good .options .sold-out{margin-top:12px}.fav-products .fav-good .activites{position:absolute;left:160px;right:0;top:120px;padding:10px 0;border-top:1px dashed #ccc}.fav-products .fav-good .activites li{line-height:18px}.fav-products .fav-good .activites .type{display:inline-block;width:54px;height:14px;line-height:14px;margin-right:5px;overflow:hidden;background:#6c6c6c;border-radius:2px;color:#fff;text-align:center;vertical-align:middle}.fav-products .fav-good .activites .arrow{position:absolute;width:13px;left:20px;top:-7px;height:7px;background-image:url(../assets/img/sprite.home.png?v155ba59fd56);background-position:-48px -31px}.fav-products .fav-good:hover{background:#f3f3f3}.fav-brands .favorite-brands>ul{padding-bottom:20px}.fav-brands .favorite-table-header .name{width:190px;padding-left:50px;text-align:left}.fav-brands .favorite-table-header .col-count,.fav-brands .favorite-table-header .new-arrival{width:200px}.fav-brands .fav-brand{position:relative;font-size:12px}.fav-brands .fav-brand .thumb{width:190px}.fav-brands .fav-brand .thumb a{display:block;width:115px;padding:5px;text-align:center;border:1px solid #f4f4f4}.fav-brands .fav-brand .thumb .name{display:block;background:#f4f4f4;color:#666;line-height:18px}.fav-brands .fav-brand .thumb img{width:100px;height:100px}.fav-brands .fav-brand .col-count,.fav-brands .fav-brand .new-arrival{width:200px;text-align:center}.fav-brands .fav-brand .new-arrival{cursor:pointer}.fav-brands .fav-brand .options{width:136px;text-align:center}.fav-brands .fav-brand .brand-shop{display:block;width:92px;height:30px;line-height:30px;border:1px solid #c2c2c2;background:#ececec;text-align:center;cursor:pointer;margin:14px auto 10px;border-radius:2px;color:#666;font-size:14px}.fav-brands .fav-brand .na-list{position:absolute;left:50px;right:0;top:152px;padding:10px 0;border-top:1px dashed #ccc}.fav-brands .fav-brand .na-list .arrow{position:absolute;width:13px;left:265px;top:-7px;height:7px;background-image:url(../assets/img/sprite.home.png?v155ba59fd56);background-position:-48px -31px}.fav-brands .fav-brand .na-good{width:102px;height:165px;padding:0 15px;text-align:left}.fav-brands .fav-brand .na-good-thumb{border:1px solid #ccc;width:100px;height:100px;vertical-align:middle}.fav-brands .fav-brand .na-good-name{color:#666;line-height:14px;margin:5px 0;max-height:28px;overflow:hidden}.fav-brands .fav-brand .na-content>*{float:left}.fav-brands .fav-brand .has-no-na{text-align:center;float:none;padding:20px 183px 20px 0}.fav-brands .fav-brand .has-sale{text-decoration:line-through}.fav-brands .fav-brand .na-next,.fav-brands .fav-brand .na-pre{display:block;width:31px;height:31px;line-height:33px;text-align:center;background:#f4f4f4;border:1px solid #eee;margin-top:66px}.fav-brands .fav-brand .na-next.hidden,.fav-brands .fav-brand .na-pre.hidden{visibility:hidden}.fav-brands .fav-brand .na-goods{width:660px;height:165px;padding-top:20px;overflow:hidden}.fav-brands .fav-brand .na-goods-ul{width:2640px}.fav-brands .fav-brand .na-goods-ul>li{float:left}.fav-articles .favorite-articles>ul{padding-bottom:20px}.fav-articles .fav-article:first-child{padding-top:8px}.fav-articles .bg-img{display:block;width:146px;height:96px;backgound-size:cover;background-position:50%}.fav-articles .text-info{width:559px;padding-left:20px}.fav-articles .name{display:block;font-weight:700;font-size:14px;line-height:30px;color:#000;width:550px;word-break:keep-all;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fav-articles .name:hover{text-decoration:underline}.fav-articles .desc{color:#333;font-size:12px;line-height:24px;height:48px}.fav-articles .del-favorite{float:right;font-size:12px;cursor:pointer}.user-me-page{font-size:12px;line-height:150%}.user-me-page form{display:inline}.user-me-page strong{font-weight:700}.user-me-page .clear{zoom:1}.user-me-page .clear:after{content:".";display:block;height:0;visibility:hidden;overflow:hidden;clear:both}.user-me-page .userinfo-edit form{display:none}.user-me-page .userinfo-edit h2.title{background-image:url(../assets/img/home/edit/title-informations.png?v155ba59f320)}.user-me-page .account,.user-me-page .email,.user-me-page .gift,.user-me-page .mobile,.user-me-page .userpwd{font-size:12px;line-height:150%}.user-me-page .account .title,.user-me-page .email .title,.user-me-page .gift .title,.user-me-page .mobile .title,.user-me-page .userpwd .title{position:relative}.user-me-page .account .title h2,.user-me-page .email .title h2,.user-me-page .gift .title h2,.user-me-page .mobile .title h2,.user-me-page .userpwd .title h2{height:16px;font-size:14px;font-weight:700;line-height:16px;position:absolute;top:50%;margin-top:-8px}.user-me-page .account .title h2 span,.user-me-page .email .title h2 span,.user-me-page .gift .title h2 span,.user-me-page .mobile .title h2 span,.user-me-page .userpwd .title h2 span{font-size:10px;-webkit-transform:scale(.85);display:inline-block;line-height:15px;font-weight:400;padding-left:0}.user-me-page .address{font-family:arial,Microsoft YaHei}.user-me-page .address a{color:#468fa2;text-decoration:none}.user-me-page .address .a-underline{text-decoration:underline}.user-me-page .address input[type=button]{margin-top:0}.user-me-page .address input#address{width:340px}.user-me-page .address .title{position:relative}.user-me-page .address .title h2{width:66px;height:16px;background:url(../assets/img/home/edit/title-address.png?v155ba59f31f) no-repeat;text-indent:-999em;float:left;position:absolute;top:50%;margin-top:-8px}.user-me-page .address .main{width:798px;padding:10px 1px 1px;float:left;border:1px solid #dedede;border-radius:2px}.user-me-page .address .address-list{width:776px;margin:0 10px;display:inline;border:1px solid #e6e6e6;border-bottom:0;float:left}.user-me-page .address .address-content{width:756px;padding:10px;border-bottom:1px solid #e6e6e6;float:left}.user-me-page .address .address-content.preferred{background:#fdfcdd;color:#333}.user-me-page .address .address-detail{width:596px;float:left}.user-me-page .address .address-edit{width:150px;padding:10px 0 10px 10px;text-align:center;float:left}.user-me-page .address.block{border:none}.user-me-page .btn-c3{height:22px;background:url(../assets/img/home/edit/btn_hs.png?v155ba59f317) no-repeat left -66px;padding-left:8px;display:inline-block}.user-me-page .btn-c3 span{height:22px;line-height:21px;background:url(../assets/img/home/edit/btn_hs.png?v155ba59f317) no-repeat right -66px;padding-right:10px;display:inline-block;cursor:pointer;color:#fff}.user-me-page .btn-c2{height:22px;background:url(../assets/img/home/edit/btn_hs.png?v155ba59f317) no-repeat left -44px;padding-left:8px;display:inline-block}.user-me-page .btn-c2 span{height:22px;line-height:21px;background:url(../assets/img/home/edit/btn_hs.png?v155ba59f317) no-repeat right -44px;padding-right:10px;display:inline-block;cursor:pointer;color:#b3b3b3}.user-me-page .main-info{border-top:1px solid #ddd;padding:20px 10px 10px}.user-me-page .main-info .p1{padding-bottom:10px;font-weight:700}.user-me-page .main-info .blue2{color:#468fa2}.user-me-page .block{min-height:375px;height:auto}.user-me-page .block form#giftCardForm,.user-me-page .block form#pwdform,.user-me-page .block form.first{display:block}.user-me-page .edit-box{padding:10px 11px 11px}.user-me-page .form-group{height:30px;border:1px solid #fff;margin-bottom:2px;line-height:22px;font-size:12px;font-family:Arial,helvetica,sans-serif}.user-me-page .form-group label{width:80px;text-align:right;color:#333;float:left}.user-me-page .plain{color:#666;font-weight:700}.user-me-page .width-300{width:300px}.user-me-page .width-150{width:150px}.user-me-page .input-1{height:20px;line-height:20px;color:#333;border:1px solid #c9c9c9;background:url(../assets/img/home/edit/input_1.png?v155ba59f31d) repeat-x #fff;vertical-align:top}.user-me-page .btn-b1{width:118px;height:34px;border:0;background:url(../assets/img/home/edit/btn_b1.png?v155ba59f313) no-repeat;color:#fff;font-size:14px;font-weight:700;padding-right:10px;cursor:pointer;display:inline-block;margin-top:12px;margin-left:80px}.user-me-page #btn-reset{margin-left:0}.user-me-page .tips-p{margin-left:10px;color:#999;display:inline-block}.user-me-page .box{width:778px;clear:both;padding-top:10px;margin-bottom:10px;float:left}.user-me-page .sub-title{clear:both;height:21px;line-height:21px;padding-left:23px;background:url(../assets/img/home/edit/ico_arrow2.png?v155ba59f31a) no-repeat 5px 5px #efefef;border:1px solid #e6e6e6;font-size:12px;color:#333;font-weight:400;cursor:pointer;margin-bottom:2px}.user-me-page .sub-title .more{padding:2px 10px 0 0;float:right}.user-me-page .sub-title .btn-edit{width:37px;height:17px;background:url(../assets/img/home/edit/btn_edit.png?v155ba59f315) no-repeat;display:inline-block;overflow:hidden;border:0}.user-me-page .user-personal-info .user-info{width:552px;padding-right:38px;float:left}.user-me-page .user-personal-info .user-profile{width:148px;padding:18px;text-align:center;float:right;border-left:1px solid #e0e0e0}.user-me-page .user-personal-info .user-profile img{width:100px;height:100px;margin-bottom:10px}.user-me-page .user-favorite-info ul{clear:both;width:750px;padding:0 20px 0 0;float:left}.user-me-page .user-favorite-info ul li{height:22px;padding-left:20px;float:left;font-size:12px}.user-me-page .user-favorite-info .brand-box{width:725px;margin:0 0 10px 20px;display:inline;padding:5px 10px 5px 0;border:1px solid #ccc;background:#f8f8f8;color:#000}.user-me-page .user-favorite-info .brand-box li{height:22px;line-height:22px;padding:0 0 0 10px;float:left;display:inline-block;white-space:nowrap}.user-me-page .user-favorite-info .btn-del{height:20px;line-height:20px;border:0;padding-left:18px;background:url(../assets/img/home/edit/ico_del.png?v155ba59f31b) no-repeat 0 2px;color:#468fa2;display:inline-block;overflow:hidden;text-decoration:none;vertical-align:middle}.user-me-page .user-favorite-info .btn-submit-sm{width:56px;height:20px;border:0;font-size:12px;color:#fff;line-height:20px;padding:0;margin:0;background:url(../assets/img/home/edit/btn_s1_z2.png?v155ba59f318) repeat-x;text-align:center;display:inline-block;cursor:pointer}.user-me-page .user-favorite-info span{color:#999;line-height:25px;display:inline-block}.user-me-page .user-favorite-info .form-group{clear:both;width:730px;padding:0 20px 5px;float:left}.user-me-page .account-row{padding:30px 0;border-bottom:1px solid #ddd}.user-me-page .account-row .content{height:32px;line-height:32px;position:relative}.user-me-page .account-row .content div{float:left;display:inline-block}.user-me-page .account-row .content .left-content{width:200px}.user-me-page .account-row .content .middle-content{width:500px}.user-me-page .account-row .content .middle-content .tip{color:#666}.user-me-page .account-row .content .middle-content .tip.red{color:#e01}.user-me-page .account-row .content .right-content{width:75px;height:20px;line-height:20px;position:absolute;top:50%;margin-top:-10px;text-align:center}.user-me-page .account-row .center{text-align:center}.user-me-page .account-row a{text-decoration:none;color:#666;outline:none}.user-me-page .account-row [class*=" icon-"],.user-me-page .account-row [class^=icon-]{height:32px;line-height:32px;vertical-align:middle;display:inline-block;padding-left:42px;margin-left:20px}.user-me-page .account-row .icon-ok{background:url(../assets/img/home/edit/icon-32.png?v155ba59f319) no-repeat 0 0}.user-me-page .account-row .icon-warning{background:url(../assets/img/home/edit/icon-32.png?v155ba59f319) no-repeat 0 -32px}.user-me-page .account-row .account-type{font-size:18px;line-height:32px;display:inline-block;padding-left:20px}.user-me-page .button-icon20{padding-left:5px;background:url(../assets/img/home/edit/btn_bg_20.png?v155ba59f314) no-repeat left 0;display:inline-block;cursor:pointer}.user-me-page .button-icon20 i{font-style:normal;background:url(../assets/img/home/edit/btn_bg_20.png?v155ba59f314) repeat-x left -20px;display:inline-block;height:20px;line-height:20px;text-align:center}.user-me-page .button-sliver20 i{background-position:left -80px;width:52px}.user-me-page .button-icon20 span{background:url(../assets/img/home/edit/btn_bg_20.png?v155ba59f314) no-repeat right -40px;display:inline-block;padding-right:5px}.user-me-page .button-sliver20 span{background-position:right -100px}.user-me-page .button-sliver20{background-position:left -60px}.user-me-page .gift-box{padding:10px 11px 11px}.user-me-page .gift-box h2{height:16px;font-size:14px;font-weight:700;line-height:16px}.user-me-page .gift-box li{font-size:12px;font-family:arial,Microsoft YaHei;margin-bottom:25px}.user-me-page .gift-box .gift-input{width:60px;height:20px;line-height:20px;color:#333;border:1px solid #c9c9c9;background:url(../assets/img/home/edit/input_1.png?v155ba59f31d) repeat-x #fff}.user-me-page .gift-box .gift-error{color:red;margin-left:10px}.user-me-page .gift-box #imgcode{border:0;vertical-align:middle;outline:none;cursor:pointer}.user-me-page .gift-box .check-img{color:#468fa2;text-decoration:underline}.user-me-page .gift-box .btn-b1{margin:0}.user-me-page .form-error{background:url(../assets/img/home/onError.png?v155ba59f275) no-repeat 5px 9px #fff2e8;color:#e8044f}.user-me-page .form-error,.user-me-page .form-success{padding-left:25px;padding-right:5px;font-size:12px;line-height:30px;height:30px;display:inline-block;margin-left:5px}.user-me-page .form-success{background:url(../assets/img/home/onCorrect.png?v155ba59f273) no-repeat 5px 9px #e9ffeb;color:green}.user-me-page .form-focus,.user-me-page .form-prompt{background:url(../assets/img/home/onShow.png?v155ba59f277) no-repeat 5px 9px;padding-left:25px;font-size:12px;line-height:30px;height:30px;display:inline-block;color:#999}.user-me-page .form-focus{background:url(../assets/img/home/onShow.png?v155ba59f277) no-repeat 5px 9px #e9f0ff;color:#666}.user-me-page .add-address{width:778px;padding:10px 0;float:left}.user-me-page .add-address h2{clear:both;height:21px;line-height:21px;padding-left:23px;margin-left:10px;background:url(../assets/img/home/edit/ico_arrow2.png?v155ba59f31a) no-repeat 5px 5px #efefef;border:1px solid #e6e6e6;font-size:12px;color:#333;font-weight:400}.user-me-page .add-address .form-group{width:130%}.user-me-page .add-address .add-address-detail{padding:10px 0}.user-me-page .add-address .add-address-detail .form-info{vertical-align:middle;line-height:22px;height:22px;background-position:5px 5px}.user-me-page .add-address #btnReset{margin-left:0}.user-me-page .gift-fail,.user-me-page .gift-ok{padding:50px 260px;height:310px;display:block}.user-me-page .gift-fail h3,.user-me-page .gift-ok h3{font-size:18px;height:22px;line-height:25px;padding-left:25px;color:#000;background:url(../assets/img/home/edit/ico_i_sf.png?v155ba59f31c) no-repeat}.user-me-page .gift-fail .fail,.user-me-page .gift-ok .fail{background-position:0 -22px}.user-me-page .gift-fail .input-again,.user-me-page .gift-ok .input-again{text-decoration:underline;color:#c4153a}.user-me-page .gift-fail .input-again:active,.user-me-page .gift-fail .input-again:hover,.user-me-page .gift-ok .input-again:active,.user-me-page .gift-ok .input-again:hover{color:#c4153a}.user-me-page .gift-fail .success,.user-me-page .gift-ok .success{background-position:0 0}.user-me-page .gift-fail .currency-info,.user-me-page .gift-ok .currency-info{margin-top:20px;padding-left:25px}.user-me-page .gift-fail .gift-red,.user-me-page .gift-ok .gift-red{color:#bc0029;font-size:16px;font-weight:700;margin-left:5px}.user-me-page .gift-fail .yoho-currency,.user-me-page .gift-ok .yoho-currency{font-size:16px;font-weight:700;color:#3e3e3e}.user-me-page .check-safe{padding:10px 11px 11px;height:auto;overflow:hidden}.user-me-page .check-safe .form-success{background:url(../assets/img/home/onCorrect.png?v155ba59f273) no-repeat 5px 9px}.user-me-page .check-safe .progress-bar{width:780px;height:24px}.user-me-page .check-safe .progress-bar li{float:left;width:260px;color:#666;text-align:center;height:24px;line-height:24px}.user-me-page .check-safe .progress-bar li.cur{color:#fff}.user-me-page .check-safe .progress1{background:url(../assets/img/home/edit/icon-bar.png?v155ba59f319) no-repeat}.user-me-page .check-safe .progress2{background:url(../assets/img/home/edit/icon-bar.png?v155ba59f319) no-repeat 0 -24px}.user-me-page .check-safe .progress3{background:url(../assets/img/home/edit/icon-bar.png?v155ba59f319) no-repeat 0 -48px}.user-me-page .check-safe input[type=password],.user-me-page .check-safe input[type=text]{height:28px;border:1px solid #bebebe;line-height:28px;padding:0 5px}.user-me-page .check-safe .form-nav{padding:30px 0}.user-me-page .check-safe .form-nav ul{width:690px;margin:0 auto}.user-me-page .check-safe .form-nav li{padding:10px 0;float:left}.user-me-page .check-safe .form-nav .safe-form-l{float:left;width:220px;line-height:30px;padding:0 5px;text-align:right}.user-me-page .check-safe .form-nav .safe-form-r{width:422px;line-height:30px;float:left}.user-me-page .check-safe .form-nav .input-text{width:208px}.user-me-page .check-safe .form-nav .input-code{width:54px;margin-right:5px}.user-me-page .check-safe .form-nav #the-code-img{border:0;vertical-align:middle;outline:none;height:30px;cursor:pointer}.user-me-page .check-safe .form-nav .change-code{height:30px;padding:0 0 0 5px;line-height:15px;display:inline-block;vertical-align:middle;color:#666}.user-me-page .check-safe .form-nav .the-code{color:#468fa2}.user-me-page .check-safe .form-nav .btn-b1{margin:0}.user-me-page .check-safe .form-nav .check-info{display:inline-block;vertical-align:top}.user-me-page .check-safe .form-nav .input-error{border:2px solid #e8044f;height:26px;padding:0 4px}.user-me-page .feedback dt{height:20px;line-height:20px;background:url(../assets/img/home/suggest-icon.png?v155ba59f291) no-repeat 2px 3px;padding:0 0 0 20px;float:left;font-family:arial,Microsoft YaHei;font-size:12px}.user-me-page .feedback dt a{color:#468fa2}.user-me-page .feedback dd{float:right}.user-me-page .button-top{width:66px;height:22px;padding-left:10px;line-height:21px;border:0;text-align:center;background:url(../assets/img/home/btn_top.png?v155ba59f24a) no-repeat;color:#666;font-size:12px;cursor:pointer;display:inline-block}.user-me-page .rgb6{color:#666}.user-me-page .font14{font-size:14px}.user-me-page .button-icon{padding-left:5px;background:url(../assets/img/home/button-icon.png?v155ba59f24a) no-repeat left 0;display:inline-block;cursor:pointer}.user-me-page .button-icon i{font-style:normal;background:url(../assets/img/home/button-icon.png?v155ba59f24a) repeat-x left -33px;display:inline-block;height:33px;line-height:33px;text-align:center}.user-me-page .button-icon span{background:url(../assets/img/home/button-icon.png?v155ba59f24a) no-repeat right -66px;display:inline-block;padding-right:5px}.user-me-page .button-red{background-position:left -99px;color:#fff}.user-me-page .button-red i{background-position:left -134px;width:120px}.user-me-page .button-red i .btn-jt{background:url(../assets/img/home/btn-jt.png?v155ba59f247) no-repeat;width:5px;height:8px;display:inline-block;margin-left:10px}.user-me-page .button-red span{background-position:right -169px}.user-me-page .button-sliver i{width:100px;color:#666}.user-me-page .result-email,.user-me-page .result-info{padding:30px 0;min-height:360px;width:616px;margin:0 auto;text-align:center}.user-me-page .result-email p,.user-me-page .result-info p{line-height:24px}.user-me-page .result-email .info-detail,.user-me-page .result-info .info-detail{margin-top:20px;text-align:left}.user-me-page .result-email .button-icon,.user-me-page .result-info .button-icon{margin-top:20px}.user-me-page .result-email{text-align:left;width:400px}.user-me-page .res-info{height:24px;line-height:51px;padding-left:28px;font-size:20px;color:#000;line-height:24px;display:inline-block}.user-me-page .res-success{background:url(../assets/img/home/icon-24.png?v155ba59f26b) no-repeat}.user-me-page .res-error{background:url(../assets/img/home/icon-24.png?v155ba59f26b) no-repeat 0 -24px;color:red}.returns-me-page .returns .title{background-image:url(../assets/img/home/returns.png?v155ba59f28c)}.returns-me-page .operation,.returns-me-page .return-status,.returns-me-page .time{width:100px;border-left:1px solid #e6e6e6}.returns-me-page .return-type{width:80px;border-left:1px solid #e6e6e6}.returns-me-page .order-table-header{padding:0;margin:10px;border:1px solid #e6e6e6}.returns-me-page .order-table-header>span{text-align:center;border-left:none}.returns-me-page .order-table-header .info{width:384px;padding-left:10px;text-align:left}.returns-me-page .order-wrap li{border-top:none}.returns-me-page .order-wrap li .info{width:384px;padding:5px 0 5px 10px}.returns-me-page .order-wrap li .text-info{width:300px;right:0;bottom:15px}.returns-me-page .order-wrap li .text-info .name{max-width:300px}.returns-me-page .order-wrap li .text-info .name:hover{text-decoration:underline}.cancel-dialog{width:350px;background:#fff;padding:20px 30px 35px}.cancel-dialog .message-title{margin-top:40px;margin-bottom:27px;font-size:24px;font-weight:700}.cancel-dialog .message-summary{width:250px;margin:0 auto 22px;font-size:14px;word-wrap:break-word;line-height:20px;color:#444}.cancel-dialog .btns{padding:15px 30px 0;text-align:center}.cancel-dialog .btns .btn{height:35px;font-size:15px;line-height:35px}.cancel-dialog .btns .cancel-sure{width:130px;color:#fff;background:#000;border:none}.cancel-dialog .btns .cancel-no{margin-left:30px;background:#fff;color:#000;border-color:#000;width:126px}.cancel-dialog .close{top:15px;right:15px}.cancel-dialog .close .iconfont{font-size:30px}.cancel-dialog .icon-warn{display:inline-block;margin-right:10px;background:url(../assets/img/home/icon-warn.png?v155ba59f26c) no-repeat;width:30px;height:30px;vertical-align:-6px}.detail-me-page{font-size:12px}.detail-me-page .returns-detail .title{background-image:url(../assets/img/home/returns.png?v155ba59f28c)}.detail-me-page .order-info{background:#efefef;padding:10px}.detail-me-page .order-info span{color:#468fa2;margin:0 8px}.detail-me-page .visual-return-state{margin:40px auto;height:40px;width:560px;background:url(../assets/img/home/exchange-bg.png?v155ba59f25f) no-repeat top}.detail-me-page .visual-return-state li{width:112px;padding:20px 0 0;text-align:center;float:left}.detail-me-page .visual-return-state .act{background:url(../assets/img/home/detail-act.png?v155ba59f25a) no-repeat top}.detail-me-page .cancel-return{height:26px;margin:0 10px;padding-top:10px;padding-left:10px;line-height:26px;border-top:1px solid #e0e0e0}.detail-me-page .cancel-return a{display:inline-block;padding:0 10px;margin-left:15px;color:#fff;background:#3a3a3a;text-align:center}.detail-me-page .detail-container{padding:10px}.detail-me-page .detail-container h2{height:21px;line-height:21px;padding-left:23px;background:url(../../../img/home/complaint-icon.png?v155ba3cdb93) no-repeat 5px 5px #efefef;border:1px solid #e6e6e6;font-size:12px;color:#333;font-weight:400;margin-bottom:10px}.detail-me-page .detail-container .courier-code{margin:60px auto;text-align:center}.detail-me-page .detail-container .courier-code .express-edit-box{display:none}.detail-me-page .detail-container .courier-code button{padding:5px 15px}.detail-me-page .detail-container .in-edit .express-view-box{display:none}.detail-me-page .detail-container .in-edit .express-edit-box{display:block}.detail-me-page .detail-container .main-detail table{width:100%}.detail-me-page .detail-container .main-detail table tr{border:1px solid #e6e6e6}.detail-me-page .detail-container .main-detail table td{text-align:left;padding:8px 10px;border:none;color:#333}.detail-me-page .detail-container .word-h{display:none}.detail-me-page .detail-container .refund-tips{color:#999;margin-top:10px;margin-bottom:40px}.detail-me-page .exchange-detail .word-t{display:none}.detail-me-page .exchange-detail .word-h{display:inline-block}.detail-me-page .exchange-detail .refund-tips span{display:none}.apply-returns-page{font-size:12px}.apply-returns-page .title{background-image:url(../assets/img/home/refund-apply.png?v155ba59f284)}.apply-returns-page .exchange .title{background-image:url(../assets/img/home/exchange-apply.png?v155ba59f25d)}.apply-returns-page select{width:85px;font-size:12px;outline:none}.apply-returns-page .apply-container{padding:10px}.apply-returns-page .apply-container .return-prompt{padding:20px;border:1px solid #e6e6e6;margin-bottom:10px;line-height:21px;color:#333}.apply-returns-page .apply-container .return-prompt span{color:red}.apply-returns-page .apply-container .return-prompt .footwear-tip{height:142px;line-height:18px;margin-top:20px;padding-left:536px;background:url(../assets/img/home/footwear-tips.jpg?v155ba59f263) no-repeat}.apply-returns-page .apply-container .return-prompt .footwear-tip span{color:#666}.apply-returns-page .apply-container .return-prompt .footwear-tip span:first-child{display:block;margin-bottom:15px}.apply-returns-page .apply-container .return-prompt .icon-onlineservice{display:inline-block;width:16px;height:16px;margin-left:10px;background:url(../assets/img/home/onlineservice.png?v155ba59f276) no-repeat;vertical-align:text-bottom}.apply-returns-page .apply-container h2{height:21px;line-height:21px;padding-left:23px;background:url(../assets/img/home/complaint-icon.png?v155ba59f250) no-repeat 5px 5px #efefef;border:1px solid #e6e6e6;font-size:12px;color:#333;font-weight:400}.apply-returns-page .apply-container .goods-list-table{width:100%;margin-bottom:10px}.apply-returns-page .apply-container .goods-list-table tr{border:1px solid #e6e6e6;height:18px;line-height:18px}.apply-returns-page .apply-container .goods-list-table tr th{text-align:center;background:#efefef;padding:5px;color:#333}.apply-returns-page .apply-container .goods-list-table tr th:first-child{text-align:left}.apply-returns-page .apply-container .goods-list-table tr td{color:#666;padding:5px}.apply-returns-page .apply-container .goods-list-table .return-goods-info>*{display:block}.apply-returns-page .apply-container .goods-list-table .return-goods-info a{color:#468fa2;text-decoration:none;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.apply-returns-page .apply-container .goods-list-table .return-goods-info span{color:#999}.apply-returns-page .apply-container .goods-list-table .special-tip{position:relative}.apply-returns-page .apply-container .goods-list-table .special-tip span{color:#3a3a3a}.apply-returns-page .apply-container .goods-list-table .special-tip .doubt{display:inline-block;margin-left:5px;width:14px;height:14px;background:url(../assets/img/home/return-doubt.png?v155ba59f289) no-repeat;vertical-align:text-bottom}.apply-returns-page .apply-container .goods-list-table .special-tip .special-content{display:none;position:absolute;top:0;width:280px;padding:10px 15px;border:1px solid #3a3a3a;background:#fff;color:#3a3a3a;word-break:break-word}.apply-returns-page .apply-container .goods-list-table .special-tip .special-content i.arrow{position:absolute;top:5px;left:-7px;width:7px;height:12px;background:url(../assets/img/home/return-arrow.png?v155ba59f288) no-repeat}.apply-returns-page .apply-container .goods-list-table .exchange-choose-wrap{width:185px;border:1px solid #e6e6e6;text-align:center}.apply-returns-page .apply-container .goods-list-table .exchange-choose-wrap p{line-height:29px}.apply-returns-page .apply-container .goods-list-table .exchange-choose-wrap select{width:85px}.apply-returns-page .apply-container .goods-list-table .refund-price{width:185px;color:#666;font-weight:700;text-align:center}.apply-returns-page .apply-container .goods-list-table .return-reason-wrap{width:200px;text-align:center}.apply-returns-page .apply-container .goods-list-table .return-reason-wrap select{width:190px}.apply-returns-page .apply-container .goods-list-table .return-reason-wrap label{color:#999;padding:4px 20px;background:#f5f5f5;border:1px solid #dadada}.apply-returns-page .apply-container .goods-list-table .border-style{border:1px solid #e6e6e6}.apply-returns-page .apply-container .goods-list-table .ex-tips,.apply-returns-page .apply-container .goods-list-table .re-tips{text-align:left;padding-left:10px;color:#666}.apply-returns-page .apply-container .goods-list-table .problem-description{display:none}.apply-returns-page .apply-container .goods-list-table .problem-description .left-title{width:160px;text-align:right;padding-right:15px}.apply-returns-page .apply-container .goods-list-table .problem-description .left-title .red-icon{color:red}.apply-returns-page .apply-container .goods-list-table .problem-description textarea{width:545px;height:75px;max-width:545px;max-height:300px;padding:5px;border:1px solid #ccc}.apply-returns-page .apply-container .goods-list-table .problem-description .up-image-tips{width:545px;background:#f5f5f5;border:1px solid #ccc;margin-bottom:15px;padding:3px 5px}.apply-returns-page .apply-container .goods-list-table .problem-description .up-image-list li{float:left;width:126px;height:126px;border:1px solid #ccc;padding:2px;display:inline-block;vertical-align:bottom;margin:0 0 10px 10px;background:url(../assets/img/home/up-pic-back.png?v155ba59f294) no-repeat;position:relative}.apply-returns-page .apply-container .goods-list-table .problem-description .up-image-list li:first-child{margin-left:0}.apply-returns-page .apply-container .goods-list-table .problem-description .up-image-list .btn-del{padding:8px;background:url(../assets/img/home/del-icon.png?v155ba59f258) no-repeat;color:#468fa2;display:inline-block;position:absolute;right:-1px;z-index:5;cursor:pointer}.apply-returns-page .apply-container .goods-list-table .problem-description .swfupload{background:#000}.apply-returns-page .apply-container .goods-list-table .problem-description .btn_upload_text{font-family:SimHei;font-size:16px;font-weight:700}.apply-returns-page .apply-container .refund-detail{padding-top:20px;text-align:center}.apply-returns-page .apply-container .refund-detail p{margin-bottom:25px}.apply-returns-page .apply-container .refund-detail p input[type=radio]{vertical-align:middle;margin:0 5px 0 40px}.apply-returns-page .apply-container .refund-detail .refund-pay-info p{height:23px;line-height:22px;padding-top:11px;color:#666;background:url(../assets/img/home/refund_tips.png?v155ba59f286) no-repeat;display:none}.apply-returns-page .apply-container .refund-detail .refund-pay-info tr{display:none}.apply-returns-page .apply-container .refund-detail .refund-pay-info .type-yoho-tips{width:515px;margin-left:160px}.apply-returns-page .apply-container .refund-detail .refund-pay-info .type-bank-tips{width:290px;margin-left:260px;background-position:0 -35px}.apply-returns-page .apply-container .refund-detail .refund-pay-info .type-alipay-tips{width:290px;margin-left:260px;background-position:0 -70px}.apply-returns-page .apply-container .refund-detail .refund-pay-table{width:100%;margin-bottom:25px}.apply-returns-page .apply-container .refund-detail .refund-pay-table td{padding:5px 0 5px 5px}.apply-returns-page .apply-container .refund-detail .refund-pay-table tr td:first-child{width:310px;text-align:right}.apply-returns-page .apply-container .exchange-detail{padding:30px}.apply-returns-page .apply-container .exchange-detail dt{font-weight:700;font-size:14px;color:#333;margin:10px 0}.apply-returns-page .apply-container .exchange-detail dd{padding:10px 5px}.apply-returns-page .apply-container .exchange-detail dd input[type=radio]{margin-left:50px;margin-top:0;vertical-align:middle}.apply-returns-page .apply-container .exchange-detail dd input[type=radio]:first-child{margin-left:0}.apply-returns-page .apply-container .exchange-detail dd>label{line-height:20px;width:100px;float:left;display:block}.apply-returns-page .apply-container .exchange-detail dd>label span{color:red}.apply-returns-page .apply-container .submit-box{text-align:center;margin-bottom:30px}.apply-returns-page .apply-container .submit-box .save-btn{width:138px;height:34px;border:0;background:url(../assets/img/home/submit-btn.png?v155ba59f28f) no-repeat;color:#fff;font-size:14px;font-weight:700;padding-right:20px;cursor:pointer;display:inline-block;outline:none}.apply-returns-page .apply-container .submit-box .wait-gif{width:138px;height:34px;line-height:34px;font-size:14px;color:#8c8686;background:url(../assets/img/home/return-waiting.png?v155ba59f28b) no-repeat top;vertical-align:top;display:none}.apply-returns-page .apply-container .submit-box .wait-gif span{display:inline-block;width:32px;text-align:left;padding-left:4px}.apply-returns-page .apply-container .applying .save-btn{display:none}.apply-returns-page .apply-container .applying .wait-gif{display:inline-block}.save-returns-page .title{background-image:url(../assets/img/home/refund-apply.png?v155ba59f284)}.save-returns-page .exchange .title{background-image:url(../assets/img/home/exchange-apply.png?v155ba59f25d)}.save-returns-page .save-container{padding:10px}.save-returns-page .save-container h2{height:21px;line-height:21px;padding-left:23px;background:url(../assets/img/home/complaint-icon.png?v155ba59f250) no-repeat 5px 5px #efefef;border:1px solid #e6e6e6;font-size:12px;color:#333;font-weight:400}.save-returns-page .save-container .save-prompt{width:527px;margin:0 auto;padding:100px 0}.save-returns-page .save-container .save-prompt h1{font-size:30px;color:#9c0;margin-bottom:20px;font-weight:700;background:url(../assets/img/home/return-success-icon.png?v155ba59f28a) no-repeat;cursor:pointer;display:inline-block;height:31px;line-height:31px;padding-left:45px}.save-returns-page .save-container .save-prompt p{font-size:12px;color:#999;line-height:23px}.save-returns-page .save-container .save-prompt p span{color:#9c0}.save-returns-page .save-container .save-prompt .retund-address{font-size:15px;font-weight:700;color:#333;margin-bottom:15px}.save-returns-page .save-container .save-prompt .backto-center{margin-top:30px}.save-returns-page .save-container .save-prompt .backto-center label{width:174px;height:35px;line-height:33px;font-size:14px;font-weight:700;color:#fff;text-align:center;display:inline-block;background:url(../assets/img/home/back-returns-btn.png?v155ba59f245) no-repeat;cursor:pointer}.save-returns-page .save-container .save-prompt .backto-center a:first-child{margin-right:15px}.save-returns-page .save-container .save-prompt .backto-center a:first-child label{background:url(../assets/img/home/back-orders-btn.png?v155ba59f244) no-repeat}.consult-me-page{font-size:12px}.consult-me-page .consult .title{background-image:url(../assets/img/home/consult.png?v155ba59f255)}.consult-me-page .consults{margin:10px}.consult-me-page .consults-table{width:100%;border:1px solid #e6e6e6}.consult-me-page .consults-table th{height:28px;line-height:28px;background:#efefef;padding:0 5px}.consult-me-page .consults-table td{color:#666;border-top:1px solid #e6e6e6;padding:5px;line-height:18px}.consult-me-page .consults-table td .thumb{width:60px;height:60px}.consult-me-page .consults-table td a{color:#468fa2;text-decoration:none}.consult-me-page .consults-table td a:hover{text-decoration:underline}.consult-me-page .consults-table td p{padding-left:20px;margin-top:5px;color:#999;word-break:break-all;overflow:hidden}.consult-me-page .consults-table td .question{color:#e9034e;background:url(../assets/img/home/consult-wd.png?v155ba59f254) no-repeat -13px 2px}.consult-me-page .consults-table td .reply{color:#390;background:url(../assets/img/home/consult-wd.png?v155ba59f254) no-repeat 0 -25px}.comment-me-page .comment .title{background-image:url(../assets/img/home/comment.png?v155ba59f24f)}.comment-me-page .me-comment{padding:10px;font-size:12px;line-height:18px}.comment-me-page .main-tip span{color:#e8044f}.comment-me-page .comment-table-header{padding:0;margin-top:10px}.comment-me-page .comment-table-header .info{width:260px}.comment-me-page .comment-table-header .time{width:415px;border-left:1px solid #e6e6e6;border-right:1px solid #e6e6e6}.comment-me-page .comment-table-header .type{width:98px}.comment-me-page .comment-table{width:100%;margin-top:10px}.comment-me-page .comment-table tr{border:1px solid #e6e6e6}.comment-me-page .comment-table tr th{background:#efefef;padding:5px}.comment-me-page .comment-table tr td{color:#666;padding:5px;text-align:center}.comment-me-page .comment-table tr a{color:#468fa2;text-decoration:none}.comment-me-page .comment-table tr .remarked{color:#e8044f}.comment-me-page .comment-table tr .remark-btn{width:69px;height:22px;line-height:21px;border:0;background:url(../assets/img/home/remark-btn.png?v155ba59f287) no-repeat;cursor:pointer;color:#fff;outline:none}.comment-me-page .comment-table .remark-content{width:405px;border:1px solid #e6e6e6;word-break:break-all}.comment-me-page #comment-dialog-widget{position:absolute;padding:5px;border:1px solid #999;background:#fff;border-radius:4px;z-index:15}.comment-me-page #comment-dialog-widget .dialog-titlebar{height:16px;cursor:move}.comment-me-page #comment-dialog-widget .dialog-titlebar .dialog-close-btn{float:right;width:46px;height:16px;background:url(../assets/img/home/openbox_close.png?v155ba59f278) no-repeat 0 0;cursor:pointer}.comment-me-page #comment-dialog-widget .dialog-titlebar .dialog-close-btn:hover{background-position:0 -16px}.comment-me-page #comment-dialog-widget .dialog-content{padding:3px 30px}.comment-me-page #comment-dialog-widget .dialog-content dl{display:table-row}.comment-me-page #comment-dialog-widget .dialog-content dd{display:table-cell;vertical-align:top;font-size:13px;line-height:15px}.comment-me-page #comment-dialog-widget .dialog-content textarea{width:390px;height:80px;max-width:390px;max-height:240px;background:url(../assets/img/home/input-back.png?v155ba59f26e) repeat-x;font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif}.comment-me-page #comment-dialog-widget .dialog-buttons{padding-right:30px}.comment-me-page #comment-dialog-widget .dialog-buttons button{color:#666;float:right;padding:8px 15px;margin-left:5px;border:1px solid #aaa;border-radius:3px;background-color:#f2f2f2;outline:none}.comment-me-page #comment-dialog-widget .dialog-buttons .dialog-save-btn{color:#fff;font-weight:700;border-color:#b5023d;background-color:#da0249}.complaint-me-page{font-size:12px}.complaint-me-page .complaint .title{background-image:url(../assets/img/home/complaints.png?v155ba59f253)}.complaint-me-page .me-complaints{padding:10px 10px 0}.complaint-me-page .me-complaints .empty-tip{padding:100px 0}.complaint-me-page .me-complaints .complaints-table-header{margin-bottom:10px}.complaint-me-page .me-complaints .complaint-item{padding:10px;border:1px solid #e6e6e6;margin-bottom:5px;color:#999;line-height:18px}.complaint-me-page .me-complaints .complaint-item .question{color:#e9034e;background:url(../assets/img/home/complaints-sd.png?v155ba59f252) no-repeat -13px 2px}.complaint-me-page .me-complaints .complaint-item .reply{color:#390;background:url(../assets/img/home/complaints-sd.png?v155ba59f252) no-repeat 0 -25px}.complaint-me-page .me-complaints .complaint-item .cancel-btn{width:68px;line-height:23px;text-align:center;color:#fff;background:url(../assets/img/home/remark-btn.png?v155ba59f287) no-repeat;display:inline-block;cursor:pointer}.complaint-me-page .me-complaints .complaint-item>div{display:inline-block;vertical-align:top}.complaint-me-page .me-complaints .info{width:280px;color:#000;text-align:left}.complaint-me-page .me-complaints .content{width:340px;text-align:left}.complaint-me-page .me-complaints .content p{padding-left:20px;margin-top:5px}.complaint-me-page .complaint-form{padding:10px}.complaint-me-page .complaint-form h2{clear:both;height:21px;line-height:21px;padding-left:23px;background:url(../assets/img/home/complaint-icon.png?v155ba59f250) no-repeat 5px 5px #efefef;border:1px solid #e6e6e6;font-size:12px;color:#333;font-weight:400}.complaint-me-page .complaint-form .form-content{font-size:12px;padding:7px 0}.complaint-me-page .complaint-form .form-content dl{padding:7px 5px;line-height:22px}.complaint-me-page .complaint-form .form-content dt{width:75px;color:#333;text-align:right;float:left}.complaint-me-page .complaint-form .form-content dd>input{width:150px;height:18px;line-height:18px}.complaint-me-page .complaint-form .form-content dd>input,.complaint-me-page .complaint-form .form-content dd>textarea{color:#333;border:1px solid #c9c9c9;background:url(../assets/img/home/input-back.png?v155ba59f26e) repeat-x;vertical-align:top}.complaint-me-page .complaint-form .form-content dd>textarea{width:400px;height:80px;max-width:500px;max-height:320px;overflow:auto}.complaint-me-page .complaint-form .form-submit>input{width:138px;height:34px;margin-left:80px;border:0;background:url(../assets/img/home/submit-btn.png?v155ba59f28f) no-repeat;color:#fff;font-size:14px;font-weight:700;text-align:center;padding-right:20px;cursor:pointer;display:inline-block}.message-me-page .message .title{background-image:url(../assets/img/home/message.png?v155ba59f271)}.message-me-page .message-table-header{font-size:12px}.message-me-page .message-table-header .sender{width:118px;padding-left:38px;text-align:left}.message-me-page .message-table-header .heading{width:408px;text-align:left}.message-me-page .message-table-header .time{width:130px}.message-me-page .message-table-header .action{padding-left:10px;width:66px}.message-me-page .message-list{padding:10px;font-size:12px}.message-me-page .message-list table{width:100%;line-height:38px}.message-me-page .message-list table tr{color:#999;border:1px solid #e6e6e6}.message-me-page .message-list table tr td{text-align:center}.message-me-page .message-list table tr input{vertical-align:middle;margin:0}.message-me-page .message-list table tr .del-btn{color:#468fa2;text-decoration:none;cursor:pointer}.message-me-page .message-list table .list-foot{background:#f8f8f8}.message-me-page .message-list table .list-foot button{float:left;line-height:18px;padding:2px 10px;border:1px solid #ccc;border-radius:2px;cursor:pointer;outline:none}.message-me-page .message-list table .list-foot .del-choose-btn{background:#da044a;border-color:#cc0345;margin-right:10px;color:#fff}.message-me-page .message-list table .list-foot .read-choose-btn{background:#ddd;color:#b3b3b3}.message-me-page .message-list table .list-foot .has-new{background:#3797af;border-color:#147e98;color:#fff}.message-me-page .message-list table .td-sender{width:110px;color:#666;text-align:left;white-space:nowrap;overflow:hidden}.message-me-page .message-list table .td-title{width:410px;padding-left:10px;color:#666;text-align:left;white-space:nowrap;overflow:hidden}.message-me-page .message-list table .new-msg{background:#f0f5f8;border-bottom:1px solid #becfd3}.message-me-page .message-list table .new-msg .td-sender a,.message-me-page .message-list table .new-msg .td-title a{font-weight:700;color:#468fa2}.content-message-page .title{background-image:url(../assets/img/home/message.png?v155ba59f271)}.content-message-page .title .back-list{font-size:12px;float:right;width:67px;height:22px;line-height:22px;margin-top:9px;padding-right:4px;text-align:center;color:#fdfdfd;display:inline-block;background:url(../assets/img/home/btn-more.png?v155ba59f249) no-repeat;cursor:pointer}.content-message-page .text-container{font-size:12px;line-height:18px;padding:20px}.content-message-page .text-container .text-title{margin-bottom:10px;padding-bottom:10px;border-bottom:1px dashed #999}.content-message-page .text-container .text-title span{color:#999}.content-message-page .text-container .coupon-item{display:table-row}.content-message-page .text-container .coupon-item>div{padding:10px 0;display:table-cell;vertical-align:middle}.content-message-page .text-container .coupon-item img{vertical-align:middle}.content-message-page .text-container .coupon-item a{width:90px;height:30px;line-height:30px;text-align:center;color:#b3b3b3;font-size:14px;background-color:#ddd;border:1px solid #ccc;border-radius:4px;display:inline-block;cursor:pointer}.content-message-page .text-container .coupon-item .coupon-img{width:160px;text-align:center}.content-message-page .text-container .coupon-item .coupon-info{width:470px;line-height:20px}.content-message-page .text-container .coupon-item .pick-coupon-btn,.content-message-page .text-container .coupon-item .view-coupon-btn{color:#fff;background:#da044a;border-color:#cc0345;display:inline-block}.content-message-page .text-container .sale-img{margin-bottom:15px;overflow:hidden}.content-message-page .text-container .sale-img img{vertical-align:top}.content-message-page .text-container .sale-btn{color:#fff;padding:0 10px;background:#e1044b;margin-top:15px;border:1px solid #c10241;border-radius:2px;display:inline-block;cursor:pointer}.vip-me-page .title{background-image:url(../assets/img/home/vip-img/vip-title.png?v155ba59f32b)}.vip-me-page .vip-level{clear:both;overflow:hidden}.vip-me-page .level{margin:20px 15px 0 40px;line-height:31px;float:left;clear:both;font-size:14px;color:#000}.vip-me-page .vipimg1{background-image:url(../assets/img/home/vip-img/silver-vip.png?v155ba59f324)}.vip-me-page .vipimg1,.vip-me-page .vipimg2{margin-top:20px;width:138px;height:31px;float:left}.vip-me-page .vipimg2{background-image:url(../assets/img/home/vip-img/gold-vip.png?v155ba59f321)}.vip-me-page .vipimg3{margin-top:20px;width:138px;height:31px;float:left;background-image:url(../assets/img/home/vip-img/platinum-vip.png?v155ba59f322)}.vip-me-page .favimg{float:left;width:645px;margin-top:20px;overflow:hidden}.vip-me-page .list{width:145px;float:left;margin:0 10px 8px 0}.vip-me-page .imgsrc{width:25px;float:left;margin-top:5px}.vip-me-page .fav-font{line-height:31px;font-size:12px;margin-left:30px;color:#000}.vip-me-page .year-amount{float:left;width:600px;margin-top:20px}.vip-me-page .amount{float:left}.vip-me-page .amount,.vip-me-page .ps{font-size:14px;font-weight:700;line-height:31px}.vip-me-page .ps{margin-left:30px}.vip-me-page .plalevel{margin-top:7px;width:160px;height:21px;background-image:url(../assets/img/home/vip-img/platinum.png?v155ba59f323)}.vip-me-page .amount-length{width:400px;height:15px;margin-bottom:5px}.vip-me-page .img-length{width:293px;height:12px;background-color:#e0e0e0}.vip-me-page .amount-left{width:298px;height:12px;overflow:hidden;float:left}.vip-me-page .img-left{height:12px;background-color:#cda16c;z-index:7;float:left}.vip-me-page .img-right{width:5px;height:12px;float:left;z-index:7;background-image:url(../assets/img/sprite.home.png?v155ba59fd56);background-position:-39px -24px;margin-left:-5px}.vip-me-page .letter{width:100px;font-size:12px;margin-left:303px;line-height:10px;margin-bottom:2px}.vip-me-page .change-img0{width:293px;height:18px;background-image:url(../assets/img/home/vip-img/vip-change1.png?v155ba59f327)}.vip-me-page .change-img1{width:293px;height:18px;background-image:url(../assets/img/home/vip-img/vip-change2.png?v155ba59f328)}.vip-me-page .change-img2{width:293px;height:18px;background-image:url(../assets/img/home/vip-img/vip-change3.png?v155ba59f329)}.vip-me-page .balance{margin-top:7px;font-size:13px;font-weight:700;margin-bottom:10px}.vip-me-page .balance p{float:left}.vip-me-page .balance a{color:red;margin-left:10px;float:left}.vip-me-page .history{margin-top:10px;clear:both;overflow:hidden}.vip-me-page .hisamout{margin-left:10px}.vip-me-page .line{clear:both;width:703px;height:1px;margin-bottom:5px;margin-left:40px;margin-top:25px;background-color:#e8e8e8;overflow:hidden}.vip-me-page .valid{overflow:hidden}.vip-me-page .valid-time{clear:both;width:720px;height:175px;margin-left:40px;position:relative;font-size:14px}.vip-me-page .time1{float:left;width:135px;height:135px;border-right:2px dashed #000}.vip-me-page .time1-img{margin-top:95px;width:130px;height:33px;background-image:url(../assets/img/home/vip-img/time1.png?v155ba59f325)}.vip-me-page .time2{width:129px}.vip-me-page .time2,.vip-me-page .time3{float:left;height:175px;border-right:2px dashed #000}.vip-me-page .time3{width:354px}.vip-me-page .time4{float:left;width:90px;height:155px}.vip-me-page .time-top{display:block;font-size:13px;margin-top:10px;margin-left:10px;line-height:18px}.vip-me-page .time-top span{font-weight:700}.vip-me-page .time-top a{color:red}.vip-me-page .time2-img{margin-top:47px;width:131px;height:33px;background-color:#ecdbca}.vip-me-page .time-left{float:left;display:block;font-size:13px;margin-top:10px;margin-left:10px;line-height:18px}.vip-me-page .time-left span{font-weight:700}.vip-me-page .time-right{float:right;display:block;font-size:13px;margin-top:10px;margin-right:10px;line-height:18px}.vip-me-page .time-right span{font-weight:700}.vip-me-page .time3-img{color:#fff;line-height:33px;margin-top:93px;width:356px;height:33px;background-color:#cda16d;text-align:center}.vip-me-page .time4-img{margin-top:65px;width:62px;height:33px;border-color:#ecdbca #fff transparent transparent;border-style:solid solid dashed dashed;border-width:33px 20px 0 0}.vip-me-page .doubt{margin-left:40px;margin-bottom:25px;margin-top:20px;font-size:14px}.vip-me-page .doubt a{float:right;margin-right:55px}.vip-me-page .tell{color:red}.vip-me-page .time-line{position:absolute;width:703px;height:2px;background-color:#e8e8e8;margin-top:65px}.help-page{width:990px;font-size:12px;margin:0 auto 20px}.help-page .path-nav{padding:11px 0;border-bottom:0;padding-left:25px;background:url(../assets/img/help/home-icon.png?v155ba59f240) no-repeat 0 12px}.help-page .left-container{float:left;width:180px;margin-right:8px}.help-page .block{border:1px solid #dedede;border-radius:2px}.help-page .title{height:40px;line-height:40px;padding:0 8px;background-color:#e3e3e3;background-position:10px 12px;background-repeat:no-repeat}.help-page .help-navigation{background:#f8f8f8;margin-bottom:10px}.help-page .help-navigation .help-center{background-image:url(../assets/img/help/help-center.png?v155ba59f23c)}.help-page .help-navigation dl{width:100%;height:40px;background:#efefef;border-top:1px solid #e6e6e6;border-bottom:1px solid #e6e6e6}.help-page .help-navigation dl dt{width:132px;height:22px;margin:10px 0 10px 7px;overflow:hidden;background:url(../assets/img/help/help-search.png?v155ba59f23f) no-repeat;float:left}.help-page .help-navigation dl dt input{width:110px;border:0;background:none;margin:3px 10px}.help-page .help-navigation dl dd{width:31px;float:left;margin:10px 0}.help-page .help-navigation dl dd .search-btn{width:31px;height:22px;border:0;background:url(../assets/img/help/help-search.png?v155ba59f23f) no-repeat -134px 0;cursor:pointer;text-indent:-999em}.help-page .help-navigation ul{width:154px;padding:8px 12px}.help-page .help-navigation ul li{line-height:20px;font-family:Arial,helvetica,sans-serif;margin:5px 0;padding-left:20px;color:#333;background:url(../assets/img/help/help-nav-li.png?v155ba59f23d) no-repeat}.help-page .help-navigation ul .active{background-position:0 -20px}.help-page .help-navigation ul .active a{color:#fff}.help-page .help-service{background:#f8f8f8;line-height:15px}.help-page .help-service .service-center{background-image:url(../assets/img/help/yoho-service.png?v155ba59f242);background-position:10px 9px}.help-page .help-service .service-main{padding:12px}.help-page .help-service .service-main strong{color:#000;font-size:18px;font-weight:700;font-family:Arial,helvetica,sans-serif}.help-page .help-service .service-main p:first-child{margin-bottom:10px}.help-page .help-main{width:800px;float:left;line-height:18px}.help-page .help-main strong{font-weight:700}.help-page .help-main .help-content{padding:15px}.help-page .help-main .help-content a{color:#468fa2;text-decoration:underline}.search-help-page .search-content{padding:15px}.search-help-page .search-content h2{border-bottom:2px solid #eee;font-size:14px;color:#333;height:20px;line-height:20px;padding-top:10px}.search-help-page .search-content ul{margin:10px 0;display:block;min-height:20px}.search-help-page .search-content ul li{width:345px;height:20px;line-height:20px;padding:0 0 0 20px;margin:0 15px 5px 0;display:inline-block;overflow:hidden;background:url(../assets/img/help/ask-icon.png?v155ba59f23b) no-repeat 2px 3px;font-family:Arial,helvetica,sans-serif}.search-help-page .search-content ul .faqs{color:#666;cursor:pointer}.search-help-page .search-content .full-search{line-height:22px;padding:10px 8px;background-color:#e3e3e3;font-size:14px;font-weight:700}.search-help-page .search-content .full-search label{padding:12px}.search-help-page .search-content .full-search .full-search-name{width:185px;height:22px;padding:0 10px;border:0;background:url(../assets/img/help/help-search.png?v155ba59f23f) no-repeat 0 -22px}.search-help-page .search-content .full-search .search-btn{width:31px;height:22px;border:0;background:url(../assets/img/help/help-search.png?v155ba59f23f) no-repeat -134px 0;cursor:pointer;text-indent:-999em}.search-help-page .search-content .full-search .yoho-im-btn{width:120px;height:20px;background:url(../assets/img/help/yoho-im.png?v155ba59f241);display:inline-block;vertical-align:middle;margin-left:10px;border:0;cursor:pointer}.search-help-page .search-content .empty-tip{padding:200px 0;text-align:center}.search-help-page .search-content .empty-tip span{color:#e8044f;font-weight:700}.search-help-page .search-content .all-ask-list{line-height:18px;padding-top:10px}.search-help-page .search-content .all-ask-list .ask-item{padding:10px}.search-help-page .search-content .all-ask-list .ask-item.even{border:1px solid #fbf0d5;background:#fefaf0}.search-help-page .search-content .all-ask-list .ask{min-height:10px;padding-left:20px;margin-bottom:10px;background:url(../assets/img/help/ask-icon.png?v155ba59f23b) no-repeat 2px 2px}.search-help-page .search-content .all-ask-list .answer{padding-left:20px;color:#f07100;background:url(../assets/img/help/answer-icon.png?v155ba59f238) no-repeat 2px 2px}.search-help-page .search-content .search-pager{height:20px;padding:10px}.search-help-page .search-content .search-pager .pager-html{display:inline}.search-help-page .search-content .search-pager a{border:1px solid #cecece;padding:0 6px;height:18px;line-height:18px;border-radius:2px;margin-right:4px;background-color:#fff}.search-help-page .search-content .search-pager a.cur{background-color:#222;color:#fff}.search-help-page .dialog-widget{position:absolute;width:450px;padding:5px;border:1px solid #999;background:#fff;border-radius:4px;z-index:16}.search-help-page .dialog-widget .dialog-titlebar{height:16px;cursor:move}.search-help-page .dialog-widget .dialog-titlebar .dialog-close-btn{float:right;width:46px;height:16px;background:url(../assets/img/home/openbox_close.png?v155ba59f278) no-repeat 0 0;cursor:pointer}.search-help-page .dialog-widget .dialog-titlebar .dialog-close-btn:hover{background-position:0 -16px}.search-help-page .dialog-widget .dialog-content{padding:20px 30px}.search-help-page .dialog-widget .dialog-content p{line-height:20px;padding-left:20px;padding-bottom:10px;font-size:12px;background:url(../assets/img/help/ask-icon.png?v155ba59f23b) no-repeat 2px 3px}.search-help-page .dialog-widget .dialog-content .answer{color:#f07100;background:url(../assets/img/help/answer-icon.png?v155ba59f238) no-repeat 2px 2px}.search-help-page .dialog-bg{position:fixed;top:0;left:0;width:100%;height:100%;background:#000;opacity:.2;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=20)";z-index:15}.order-ensure-page{width:990px;margin:40px auto}.order-ensure-page .order-edit{width:100%;position:relative;margin-bottom:35px}.order-ensure-page .order-edit .order-title{position:relative;margin-bottom:15px}.order-ensure-page .order-edit .order-title ul{display:block;background-image:url(../assets/img/sprite.order.png?v155ba59fd56);background-position:-247px 0;width:364px;height:12px;position:absolute;right:0;top:0}.order-ensure-page .order-edit .order-title ul li{display:block;width:33.33333333%;float:left;font-size:12px;color:#999;height:50px;line-height:50px;text-align:center;position:relative}.order-ensure-page .order-edit .order-title ul li.active{color:#333}.order-ensure-page .order-edit .order-title ul li.active:after{display:block;content:'';background-image:url(../assets/img/sprite.order.png?v155ba59fd56);background-position:-273px -46px;width:12px;height:12px;position:absolute;left:50%;margin-left:-6px;top:0}.order-ensure-page .order-edit .order-title ul li.first{text-align:left}.order-ensure-page .order-edit .order-title ul li.first.active:after{left:0;margin-left:0}.order-ensure-page .order-edit .order-title ul li.end{text-align:right}.order-ensure-page .order-edit .order-title ul li.end.active:after{right:0;margin-left:0}.order-ensure-page .order-edit .order-title:before{content:'';display:block;background-image:url(../assets/img/sprite.order.png?v155ba59fd56);background-position:0 -72px;width:117px;height:33px}.order-ensure-page .order-edit .order-title.cart-page-title:before{content:'';display:block;background-image:url(../assets/img/sprite.order.png?v155ba59fd56);background-position:-119px -72px;width:117px;height:33px}.order-ensure-page .order-edit .order-edit-main{border:1px solid #ccc;margin-top:20px}.order-ensure-page .order-edit .order-edit-main h2.title{height:30px;line-height:30px;background:#000;color:#fff;font-size:12px;text-indent:15px;overflow:hidden}.order-ensure-page .order-edit .order-edit-main h2.title a{display:block;width:90px;height:22px;background-image:url(../assets/img/sprite.order.png?v155ba59fd56);background-position:-521px -14px;float:right;margin-top:4px;margin-right:10px;cursor:pointer}.order-ensure-page .order-edit .order-edit-main .order-content{padding:5px 30px;font-size:12px;color:#333}.order-ensure-page .order-edit .order-edit-main .order-content .order-selection{border-bottom:1px dashed #ccc;padding:15px 0 0}.order-ensure-page .order-edit .order-edit-main .order-content .order-selection h2{font-size:14px;color:#000}.order-ensure-page .order-edit .order-edit-main .order-content .order-selection h2 span{color:#e8044f;text-decoration:underline;cursor:pointer}.order-ensure-page .order-edit .order-edit-main .order-content .address-list h2{margin-bottom:15px}.order-ensure-page .order-edit .order-edit-main .order-content .address-list ul li{padding:10px 0}.order-ensure-page .order-edit .order-edit-main .order-content .address-list ul li strong{font-weight:700;margin-right:15px}.order-ensure-page .order-edit .order-edit-main .order-content .address-list ul li input.radio{margin:0;vertical-align:middle}.order-ensure-page .order-edit .order-edit-main .order-content .address-list ul .order-modify-btn{display:inline-block;float:right;color:#e8044f;width:80px;padding-right:20px;height:auto;overflow:hidden}.order-ensure-page .order-edit .order-edit-main .order-content .address-list ul .order-modify-btn span{text-decoration:underline;cursor:pointer;float:right}.order-ensure-page .order-edit .order-edit-main .order-content .address-list ul .order-modify-btn span.address-modify{float:left}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list{min-height:35px}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list li{border:1px solid #fff;padding-left:15px}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list li strong{color:#e8044f}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list li .default-address,.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list li .order-modify-btn{display:none}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list li .default-address{margin-left:15px;color:#468fa2;text-decoration:underline}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list li .radio{display:none}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list li.has-exist-address .default-address{color:#468fa2;text-decoration:underline;cursor:pointer}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list.address-expand li .default-address,.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list.address-expand li .order-modify-btn,.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list.address-expand li .radio{display:inline-block}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list.address-expand li.active{background:#dbedf7;border:1px solid #8fb8e0}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list.address-expand li.address_select .default-address{color:#999;text-decoration:none}.order-ensure-page .order-edit .order-edit-main .order-content .address-manage{margin-top:20px;border-top:1px dashed #ccc}.order-ensure-page .order-edit .order-edit-main .order-content .address-manage li{height:25px;line-height:25px}.order-ensure-page .order-edit .order-edit-main .order-content .address-manage li .address-legend{width:80px;text-align:right;display:inline-block;color:#333}.order-ensure-page .order-edit .order-edit-main .order-content .address-manage li .address-legend i{color:#e8044f}.order-ensure-page .order-edit .order-edit-main .order-content .address-manage li .text-input{height:25px;line-height:25px;width:180px;padding:0;border:1px solid #ccc}.order-ensure-page .order-edit .order-edit-main .order-content .address-manage li select.text-input{width:100px}.order-ensure-page .order-edit .order-edit-main .order-content .address-manage li .address-tel-input{width:180px;text-align:center;display:inline-block;height:25px;line-height:25px}.order-ensure-page .order-edit .order-edit-main .order-content .address-manage li .address-tel-input input{text-align:left;float:right;width:120px}.order-ensure-page .order-edit .order-edit-main .order-content .address-manage li .address-tel-input input.tel-lengend{float:left;width:40px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-btn,.order-ensure-page .order-edit .order-edit-main .order-content .save-btn{display:block;font-size:14px;color:#fff;font-weight:700;text-indent:25px;cursor:pointer;margin-bottom:15px}.order-ensure-page .order-edit .order-edit-main .order-content .save-btn{background-image:url(../assets/img/sprite.order.png?v155ba59fd56);background-position:0 -36px;width:200px;height:34px;line-height:34px}.order-ensure-page .order-edit .order-edit-main .order-content .save-btn.new-user-btn{width:245px;background-image:url(../assets/img/sprite.order.png?v155ba59fd56);background-position:0 0}.order-ensure-page .order-edit .order-edit-main .order-content .pay-btn{background-image:url(../assets/img/sprite.order.png?v155ba59fd56);background-position:0 -107px;width:90px;height:34px;line-height:34px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-btn.new-user-pay{background-image:url(../assets/img/sprite.order.png?v155ba59fd56);background-position:0 -36px;width:200px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time ul{padding:15px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time ul li{margin:10px 0}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time ul li input.radio{margin:0;vertical-align:middle}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time ul .prev-sell-item{color:#e8044f}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .pay-time-title{margin-top:20px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify h3{height:25px;line-height:25px;border:1px solid #e6e6e6;background:#efefef;text-indent:25px;position:relative}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify h3:after{content:'';display:block;width:11px;height:11px;background:url(../assets/img/order/roundgreybtn.gif?v155ba59f2b1);position:absolute;top:7px;left:8px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .pay-dashed-hr{border-bottom:1px dashed #ccc;padding-bottom:10px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .pay-type-tips{color:#999;padding-left:15px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify div.pay-type-legend{width:130px;display:inline-block;padding:0;text-indent:0}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify span.pay-type-legend{margin:0;color:#468fa2;cursor:pointer}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify span.pay-type-legend:after{content:'';width:12px;height:12px;background:url(../assets/img/order/icon-arrow.png?v155ba59f2a9);display:inline-block;transition:transform .3}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify span.pay-type-legend.active:after{transform:rotate(180deg)}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .support-type{display:block;margin-left:130px;border-left:1px dashed #ccc;font-size:12px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .support-type h4{padding:10px 0 10px 15px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .support-type ul{height:auto;overflow:hidden;margin:0;padding:0}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .support-type ul li{display:block;float:left;width:105px;height:30px;border:1px solid #ccc;margin:0 0 10px 15px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .support-type ul li img{display:block;width:100%;height:100%;overflow:hidden}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .pay-recommend{font-size:0}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .pay-recommend .pay-type-legend,.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .pay-recommend .support-type{font-size:12px}.order-ensure-page .order-edit .order-edit-main .order-content .select-express{border-bottom:none}.order-ensure-page .order-edit .order-edit-main .order-content .select-express .sf{color:red;text-decoration:underline}.order-ensure-page .order-edit .order-edit-main .order-content .select-express .express-list{padding-left:15px;margin:10px 0}.order-ensure-page .order-edit .order-edit-main .order-content .select-express .express-list input.radio{margin:0;vertical-align:middle}.order-ensure-page .order-edit .order-edit-main .order-content .select-express .express-tips{color:#999}.order-ensure-page .order-pay{width:100%}.order-ensure-page .differentOrder{position:relative;width:100%}.order-ensure-page .differentOrder .warn{text-align:center;background:#fefbd5;font:initial;height:40px;line-height:40px;font-size:16px}.order-ensure-page .differentOrder .warn .red{color:red}.order-ensure-page .differentOrder .warn .why{background-image:url(../assets/img/sprite.order.png?v155ba59fd56);background-position:-247px -46px;width:26px;height:20px;display:inline-block;vertical-align:middle}.order-ensure-page .differentOrder .warn .why:hover{cursor:pointer}.order-ensure-page .differentOrder .differentBag:before{content:"";position:absolute;width:0;height:0;border-bottom:10px solid #000;border-left:10px solid transparent;border-right:10px solid transparent;top:-10px;right:219px}.order-ensure-page .differentOrder .differentBag{display:none;position:absolute;right:-10px;top:40px;width:510px;padding:0 50px;background:#fff;z-index:1;border:1px solid #000;font-size:14px}.order-ensure-page .differentOrder .bag{position:relative;border-bottom:1px solid #e0e0e0;margin-top:10px;padding:20px 0}.order-ensure-page .differentOrder .bag h3{height:30px;line-height:30px;font-weight:700;margin-left:15px}.order-ensure-page .differentOrder .bag .pre{background-position:0 -142px;left:-30px}.order-ensure-page .differentOrder .bag .next,.order-ensure-page .differentOrder .bag .pre{position:absolute;background-image:url(../assets/img/sprite.order.png?v155ba59fd56);width:30px;height:50px;top:70px;display:none}.order-ensure-page .differentOrder .bag .next{background-position:-32px -142px;right:-30px}.order-ensure-page .differentOrder .bag p{color:#767676;margin-left:15px}.order-ensure-page .differentOrder .bagDetil{position:relative;height:90px;width:510px;overflow:hidden;margin-bottom:20px}.order-ensure-page .differentOrder .bagDetil ul{list-style:none;position:absolute;left:0;clear:both;height:90px}.order-ensure-page .differentOrder .bagDetil ul li{float:left;width:102px;height:90px;line-height:90px;text-align:center;position:relative}.order-ensure-page .differentOrder .bagDetil ul li img{width:90px;height:90px}.order-ensure-page .differentOrder .bagDetil ul li p{position:absolute;bottom:0;background:#9c3;width:90px;height:1rem;line-height:1rem;color:#fff;margin-left:7px}.freebie-tag{background:#9c3}.advance-buy-tag{background:#fc1264}.virtual-good-tag{background:red}.presall-tag{background:blue}.order-pay{font-size:12px;line-height:150%}.order-pay .pay-wapper{border:1px solid #ccc;border-top:none}.order-pay .pay-wapper .cart-sub-total{font-weight:700}.order-pay .pay-wapper .cart-sub-total-all{font-weight:700;font-size:18px}.order-pay table{width:100%}.order-pay table td{border:1px solid #ccc;border-left:0 none;padding:10px;text-align:center}.order-pay thead{background:#000}.order-pay thead th{height:32px;line-height:32px;color:#fff;vertical-align:middle;text-align:center;font-weight:700}.order-pay thead .clo1{width:10%}.order-pay thead .clo2{width:20%}.order-pay thead .clo4{width:40%}.order-pay .pay-pro-icon{float:left;width:60px;height:60px;display:block;position:relative}.order-pay .pay-pro-icon span{width:100%;height:16px;line-height:16px;position:absolute;left:0;bottom:0;text-align:center;color:#fff;display:block;cursor:pointer}.order-pay .pay-pro-icon .incentive{background:#f74a87}.order-pay .pay-pro-icon .gift{background:#9c3}.order-pay .pay-pro-info{color:#999;margin-left:70px;text-align:left}.order-pay .pay-pro-info a{color:#468fa2;text-decoration:none;display:block}.order-pay .pay-pro-info a:hover{text-decoration:underline}.order-pay .play-content{padding:10px}.order-pay .play-content .red{color:#e8044f!important}.order-pay .play-content .orange{color:#f60!important}.order-pay .play-content .strong{font-weight:700;color:#000}.order-pay .play-content .pan dt{width:105px;height:30px;padding:0 0 0 30px;line-height:30px;text-align:left;border:0;color:#fff;display:inline-block;cursor:pointer;background:url(../assets/img/order/btn-openclose.png?v155ba59f2a7) no-repeat 0 -60px;margin-bottom:5px}.order-pay .play-content .pan dd{display:none;border:1px solid #ccc;padding:10px 15px;margin-bottom:10px}.order-pay .play-content .dropdown,.order-pay .play-content .textbox{height:20px;line-height:20px;color:#333;border:1px solid #c9c9c9;vertical-align:top}.order-pay .play-content .btn-group{text-align:right}.order-pay .play-content .btn-group input{display:inline-block;background:none;border:1px solid #ccc;border-radius:2px;height:20px}.order-pay .play-content .btn-group .ok{background-color:#000;color:#fff;cursor:pointer}.order-pay .play-content .btn-group .cancel{cursor:pointer}.order-pay .play-content .play-left{float:left;width:405px}.order-pay .play-content .play-left .pan{text-align:left}.order-pay .play-content .play-left .pan dt{color:#000;background-image:url(../assets/img/sprite.order.png?v155ba59fd56);background-position:-384px -14px}.order-pay .play-content .play-left .pan dt.active{background-image:url(../assets/img/sprite.order.png?v155ba59fd56);background-position:-247px -14px}.order-pay .play-content .play-piao-pan li{height:25px;padding:10px 0;line-height:22px}.order-pay .play-content .play-piao-pan li label{width:65px;display:inline-block}.order-pay .play-content .play-piao-pan li .textbox{width:200px}.order-pay .play-content .play-remark-pan .textbox{width:369px;height:70px}.order-pay .play-content .play-remark-pan .note{padding:5px 0;color:#999}.order-pay .play-content .play-right{float:right;width:50%;width:405px}.order-pay .play-content .play-right .pan{text-align:right}.order-pay .play-content .play-right .red-envelopes{width:200px;height:60px;border:1px dashed #000;margin-top:10px;float:right;padding:15px;font-size:12px;color:#000}.order-pay .play-content .play-right .red-envelopes.active{background:#fefccb}.order-pay .play-content .play-right .use-envelopes{font-weight:700}.order-pay .play-content .play-right .has-envelopes{margin-top:5px}.order-pay .play-content .play-right .has-envelopes span{font-weight:700}.order-pay .play-content .back-coin{text-align:right;height:30px;line-height:30px;padding-right:18px}.order-pay .play-content .back-coin .yoho-coin{width:14px;height:14px;display:inline-block;background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:-321px -225px;vertical-align:middle;margin-top:-2px;margin-right:4px}.order-pay .play-content .play-total{text-align:right;padding-bottom:20px}.order-pay .play-content .play-total .bi-modify,.order-pay .play-content .play-total .juan-modify{color:#468fa2;text-decoration:underline;cursor:pointer}.order-pay .play-content .play-total label{padding-right:10px}.order-pay .play-content .play-total em{width:80px;text-align:left;display:inline-block}.order-pay .play-content .play-total a{color:#468fa2;text-decoration:underline}.order-pay .play-content .play-total .total-express-w{color:#e80480}.order-pay .play-content .play-juan-pan dd{text-align:left}.order-pay .play-content .play-juan{padding:10px 0}.order-pay .play-content .play-juan .textbox{width:70px}.order-pay .play-content .play-juan [disabled=disabled]+label{color:#999}.order-pay .play-content .play-bi-pan dd{text-align:right}.order-pay .play-content .play-bi-pan .textbox{width:70px}.order-pay .play-content .play-bi-pan p{padding:10px 0}.order-pay .play-content .play-bi-pan p.errbitip{padding-top:0}.order-pay .to-play p{padding:10px 0;font-size:14px;text-align:right;color:#000}.order-pay .to-play p em{color:#e8044f;font-size:24px}.order-pay .to-play .btn-group{padding:10px 0 40px}.order-pay .to-play .btn-group .submit{float:right;width:133px;height:33px;padding:0;text-align:center;border:0;line-height:33px;font-size:14px;color:#fff;font-weight:700;background:url(../assets/img/order/btns.png?v155ba59f2a8) no-repeat 0 -33px;display:inline-block;cursor:pointer}.order-ensure-page .none{display:none}.order-ensure-page .gift{position:relative;width:988px;height:50px;background:url(../assets/img/cart/cart_gift.png?v155ba59f1d9) 0 0 repeat;border:1px solid #ccc;text-align:center}.order-ensure-page .gift p{background:url(../assets/img/cart/cart_gift_banner.jpg?v155ba59f1dc) 0 0 no-repeat;display:inline-block;width:450px;height:50px;overflow:hidden}.order-ensure-page .gift i{width:30px;height:30px;overflow:hidden;position:absolute;top:10px;right:5px;cursor:pointer}.order-ensure-page .gift .up{background-position:-329px -141px}.order-ensure-page .gift .down,.order-ensure-page .gift .up{background-image:url(../assets/img/sprite.cart.png?v155ba59fd53)}.order-ensure-page .gift .down{background-position:-332px -178px}.order-ensure-page .loading{width:120px;height:28px;overflow:hidden;position:absolute;left:50%;top:50%;display:none;line-height:30px;border:1px solid #ccc;font-size:12px;text-indent:10px;background:#fff}.order-ensure-page .loading span{width:20px;height:20px;float:left;margin:4px 4px 4px 13px;background:url(../assets/img/cart/loading_s.gif?v155ba59f1f0) 2px 2px no-repeat}.order-ensure-page .dev-revocation{border:1px solid #fcd081;background:#fff8d9;margin-bottom:15px}.order-ensure-page .dev-revocation td{border:none}.order-ensure-page .dev-revocation td a{color:#468fa2;margin-left:12px}.order-ensure-page .dev-revocation td a:hover{text-decoration:underline}.order-ensure-page .order-title{margin-top:30px;height:auto;overflow:hidden}.order-ensure-page .salesPromotion{width:990px;height:36px;border-bottom:1px solid #ccc;font-size:12px}.order-ensure-page .salesPromotion p{width:800px;height:36px;line-height:36px;float:left;padding:0 10px}.order-ensure-page .salesPromotion p b{margin-right:5px;background:#6c6c6c;border-radius:4px;padding:1px 5px;color:#fff}.order-ensure-page .salesPromotion span{width:150px;height:36px;padding:0 10px;line-height:36px;float:right;text-align:right;position:relative}.order-ensure-page .salesPromotion span i{position:absolute;top:11px;left:108px;float:left;width:13px;height:13px;background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:-357px -71px}.order-ensure-page .cartnew-tips{height:auto;overflow:hidden;font-size:12px;margin-bottom:5px}.order-ensure-page .cartnew-tips .tipsbox{width:648px;height:23px;line-height:18px;padding:4px 5px 4px 10px;color:#666;background:url(../assets/img/cart/cartnew_tipsbox.png?v155ba59f1d1) no-repeat;position:relative;float:left}.order-ensure-page .cartnew-tips .tipsbox .btn_close{width:17px;height:17px;padding:0;background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:-270px -225px;float:right;cursor:pointer}.order-ensure-page .cartnew-tips .tipsbox strong{color:#000;font-weight:700}.order-ensure-page .cartnew-tips .tipsbox a{color:#468fa2}.order-ensure-page .pay-wapper{position:relative}.order-ensure-page .pay-wapper .pre-sell .pre-sell-title{background:#fff9d9}.order-ensure-page .pay-wapper .pre-sell .pre-sell-title span{margin-right:10px}.order-ensure-page .pay-wapper .free{display:inline-block;width:39px;height:20px;background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:-150px -225px}.order-ensure-page .pay-wapper .fold,.order-ensure-page .pay-wapper .none{display:none}.order-ensure-page .pay-wapper .vipPrice{color:#e8044f;display:block}.order-ensure-page .pay-wapper .presell{color:#c21250;display:block}.order-ensure-page .pay-wapper .giftInfo{margin-left:30px}.order-ensure-page .pay-wapper .pay-pro-info{padding-left:15px;padding-top:10px;margin-left:0;float:left}.order-ensure-page .pay-wapper .pay-pro-info a{width:200px}.order-ensure-page .pay-wapper .pre-sell-box .cart-empty{border:none;padding:100px 0 100px 260px;background:url(../assets/img/cart/cart_empty.gif?v155ba59f1d8) 200px 56px no-repeat}.order-ensure-page .pay-wapper .pre-sell-box .cart-empty a{display:inline-block;width:90px;height:35px;background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:-237px -141px;overflow:hidden;color:#666;line-height:32px}.order-ensure-page .pay-wapper .pre-sell-box .incentive{background:#000100;color:#fff}.order-ensure-page .pay-wapper .tip-message{background:#e8044f;color:#fff;font-size:12px;margin-top:5px}.order-ensure-page .pay-wapper .cart-product-num{font-size:12px;text-align:left;height:33px;line-height:33px;background:#f8f8f8;padding:0 10px;position:relative}.order-ensure-page .pay-wapper .cart-product-num strong{padding-left:20px;font-weight:700}.order-ensure-page .pay-wapper .cart-product-num .icon-minusCart{background-position:-289px -225px}.order-ensure-page .pay-wapper .cart-product-num .icon-addCart,.order-ensure-page .pay-wapper .cart-product-num .icon-minusCart{position:absolute;top:9px;left:15px;float:left;width:15px;height:15px;cursor:pointer;background-image:url(../assets/img/sprite.cart.png?v155ba59fd53)}.order-ensure-page .pay-wapper .cart-product-num .icon-addCart{background-position:-305px -225px}.order-ensure-page .pay-wapper .cart-product-num .icon-zp{position:absolute;top:8px;left:10px;float:left;width:18px;height:19px;background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:-251px -225px}.order-ensure-page .pay-wapper .cart-product-num .cart-unfold{position:absolute;top:0;right:10px}.order-ensure-page .pay-wapper .cart-product-num .cart-unfold i{width:28px;height:20px;overflow:hidden;display:inline-block;margin-top:5px;cursor:pointer}.order-ensure-page .pay-wapper .cart-product-num .cart-btn-pre{background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:-191px -225px}.order-ensure-page .pay-wapper .cart-product-num .cart-btn-next{background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:-221px -225px}.order-ensure-page .pay-wapper .cart-product-num .unfold-color{color:#666;cursor:pointer}.order-ensure-page .pay-wapper .cart-product-num .cart-page p{float:left;padding-right:5px}.order-ensure-page .pay-wapper .cart-product-num .cart-page .f-red{color:red}.order-ensure-page .pay-wapper .cart-product-num input{position:relative;top:2px}.order-ensure-page .pay-wapper input.cart-item-check{float:left;margin-top:25px;margin-left:15px}.order-ensure-page .pay-wapper .adjust-cart-num input{width:30px;margin:0 5px;text-align:center}.order-ensure-page .pay-wapper .adjust-cart-num span{display:inline-block;width:11px;height:11px;cursor:pointer;font-size:10px}.order-ensure-page .pay-wapper .adjust-cart-num .minus{background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:-357px -119px}.order-ensure-page .pay-wapper .adjust-cart-num .plus{background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:-357px -106px}.order-ensure-page .pay-wapper .cart-add-btn{width:118px;height:32px;display:inline-block;overflow:hidden;border:0;cursor:pointer;line-height:32px}.order-ensure-page .pay-wapper .zp{background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:-237px -71px}.order-ensure-page .pay-wapper .order{background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:-237px -106px}.order-ensure-page .pay-wapper .cart-yetremove-btn{height:20px;line-height:21px;padding:0 10px;display:inline-block;color:#b3b3b3;position:relative;border:1px solid #dcdcdc;background:#ebebeb;border-radius:3px}.order-ensure-page .pay-wapper .cart-del-btn,.order-ensure-page .pay-wapper .cart-remove-btn{height:22px;line-height:21px;padding:0 10px;display:inline-block;cursor:pointer;color:#666;position:relative}.order-ensure-page .pay-wapper .cart-del-btn span,.order-ensure-page .pay-wapper .cart-remove-btn span{position:relative;z-index:9}.order-ensure-page .pay-wapper .cart-del-btn:after,.order-ensure-page .pay-wapper .cart-remove-btn:after{content:'';display:block;width:16px;height:100%;background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:-102px -248px;position:absolute;right:0;top:0;z-index:7}.order-ensure-page .pay-wapper .cart-del-btn:before,.order-ensure-page .pay-wapper .cart-remove-btn:before{content:'';display:block;width:100%;height:100%;background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:0 -225px;position:absolute;left:0;top:0}.order-ensure-page .cartnew-sum{background:#efefef;border:1px solid #ccc;padding:10px;margin-bottom:10px;zoom:1;margin-top:20px;height:auto;overflow:hidden;font-size:12px}.order-ensure-page .cartnew-sum .left{float:left}.order-ensure-page .cartnew-sum .left a{color:#333;margin-left:20px}.order-ensure-page .cartnew-sum .left input{position:relative;top:2px}.order-ensure-page .cartnew-sum .right{float:right;text-align:right}.order-ensure-page .cartnew-sum .right strong{color:#e8044f;font-size:18px}.order-ensure-page .cartnew-sum .sum{color:#333;font-weight:700;padding-bottom:5px}.order-ensure-page .cartnew-sum .yoho-coin{width:14px;height:14px;display:inline-block;background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:-321px -225px;vertical-align:middle;margin-top:-2px;margin-right:4px}.order-ensure-page .cartnew-submit{padding:10px 0 40px;text-align:right;position:relative}.order-ensure-page .cartnew-submit .btn_continue{width:60px;padding:0 0 0 33px;text-align:left;color:#333;background-position:-237px -178px;float:left}.order-ensure-page .cartnew-submit .btn_account,.order-ensure-page .cartnew-submit .btn_continue{height:33px;border:0;line-height:33px;font-size:14px;font-weight:700;background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);display:inline-block;cursor:pointer}.order-ensure-page .cartnew-submit .btn_account{width:133px;padding:0;text-align:center;color:#fff;background-position:-237px 0;float:right}.order-ensure-page .cartnew-submit .go_cash_tips{font-size:12px;width:200px;padding:5px 7px 0 28px;height:45px;position:absolute;right:135px;top:10px;text-align:left;color:#e8044f;background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:0 0;display:block}.order-ensure-page .cartnew-submit .btn_account_disabled{width:133px;height:33px;padding:0;text-align:center;border:0;line-height:33px;font-size:14px;color:#ccc;font-weight:700;background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:-237px -36px;display:inline-block;cursor:pointer}.order-ensure-page .cartnew-goodslist{margin-bottom:10px;font-size:12px;border:1px solid #ccc}.order-ensure-page .cartnew-goodslist .title{height:20px;padding:8px 10px;background:#efefef}.order-ensure-page .cartnew-goodslist .title h2{height:20px;line-height:24px;overflow:hidden;font-size:12px;float:left;cursor:pointer}.order-ensure-page .cartnew-goodslist .title h2 i{width:15px;height:15px;float:left;position:relative;top:4px;margin-right:5px}.order-ensure-page .cartnew-goodslist .title h2 .icon-minus{background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:-289px -225px}.order-ensure-page .cartnew-goodslist .title h2 .icon-add{background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:-305px -225px}.order-ensure-page .cartnew-goodslist .right{float:right}.order-ensure-page .cartnew-goodslist .right span{width:28px;height:22px;display:inline-block}.order-ensure-page .cartnew-goodslist .right .pageprev{background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:-191px -225px}.order-ensure-page .cartnew-goodslist .right .pagenext{background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:-221px -225px}.order-ensure-page .cartnew-goodslist .main{height:230px;border-top:1px solid #e3e3e3;display:block}.order-ensure-page .cartnew-goodslist .main ul{height:auto;width:100%;overflow:hidden}.order-ensure-page .cartnew-goodslist .main li{width:16.6667%;box-sizing:border-box;height:230px;border-right:1px solid #e3e3e3;float:left}.order-ensure-page .cartnew-goodslist .main li.end{border:none}.order-ensure-page .cartnew-goodslist .main .list{width:102px;padding:10px 0 0;margin:0 auto}.order-ensure-page .cartnew-goodslist .main .thumb{height:110px}.order-ensure-page .cartnew-goodslist .main .thumb img{display:block;margin:0 auto}.order-ensure-page .cartnew-goodslist .main .name{height:35px;overflow:hidden;font-size:12px}.order-ensure-page .cartnew-goodslist .main .name h3{height:30px;line-height:15px;font-size:12px;font-weight:400;color:#333;cursor:pointer;overflow:hidden}.order-ensure-page .cartnew-goodslist .main .name a{color:#333;text-decoration:underline}.order-ensure-page .cartnew-goodslist .main .price{color:#333;height:25px;line-height:25px;font-weight:700;white-space:nowrap;overflow:hidden;text-align:center;font-size:12px}.order-ensure-page .cartnew-goodslist .main .price del{color:#999}.order-ensure-page .cartnew-goodslist .main .op{text-align:center;padding:0 0 5px}.order-ensure-page .cartnew-goodslist .main .btn_view_s{width:100px;height:22px;background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:0 -248px;display:inline-block;border:0}.shop-cart .goods-detail{position:absolute;top:10%;left:0;z-index:10;width:650px;height:auto;overflow:hidden;border:1px solid #ccc;border-radius:5px;background:#fff;display:none}.shop-cart .goods-detail .magnify{position:absolute;width:12px;height:12px;background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:-357px -85px;bottom:2px;right:2px}.shop-cart .goods-detail .detail-header{display:block;font-size:12px;line-height:16px;text-align:center;color:#fff;margin-top:5px;box-sizing:border-box;padding-right:5px;height:16px;cursor:move}.shop-cart .goods-detail .detail-header .colse{float:right;width:46px;height:16px;background:#ccc;border-radius:2px;cursor:pointer}.shop-cart .goods-detail .detail-header .colse:hover{background:#414141}.shop-cart .goods-detail .detail-body{width:610px;padding:15px;margin:0 auto}.shop-cart .goods-detail .detail-body .none{display:none}.shop-cart .goods-detail .detail-body .detail-bigpic{width:290px;padding-bottom:15px;float:left}.shop-cart .goods-detail .detail-body .detail-bigpic .bigpic{width:210px;height:280px;display:block;margin:0 auto 10px}.shop-cart .goods-detail .detail-body .detail-bigpic .bigpic img{width:100%;height:auto}.shop-cart .goods-detail .detail-body .detail-bigpic .piclist{height:65px;cursor:pointer}.shop-cart .goods-detail .detail-body .detail-bigpic .piclist span{width:10px;height:60px}.shop-cart .goods-detail .detail-body .detail-bigpic .piclist .pre{background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:0 -304px;float:left}.shop-cart .goods-detail .detail-body .detail-bigpic .piclist .con{width:260px;height:65px;overflow:hidden;float:left;margin-left:5px}.shop-cart .goods-detail .detail-body .detail-bigpic .piclist .con li{float:left;width:58px;height:58px;border:1px solid #ccc;margin:1px;vertical-align:top;overflow:hidden;text-align:center}.shop-cart .goods-detail .detail-body .detail-bigpic .piclist .con li img{width:auto;height:100%;display:inline-block}.shop-cart .goods-detail .detail-body .detail-bigpic .piclist .con .active{width:56px;height:56px;border:2px solid #333}.shop-cart .goods-detail .detail-body .detail-bigpic .piclist .next{background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:-12px -304px;float:right}.shop-cart .goods-detail .detail-body .detail-info{width:300px;float:right;padding-bottom:15px}.shop-cart .goods-detail .detail-body .detail-info .title{padding:5px 0}.shop-cart .goods-detail .detail-body .detail-info .title h2{width:300px;color:#000;font-size:12px;font-weight:400;white-space:nowrap;overflow:hidden}.shop-cart .goods-detail .detail-body .detail-info .arrivalDate{color:red}.shop-cart .goods-detail .detail-body .detail-info .type{padding-bottom:10px}.shop-cart .goods-detail .detail-body .detail-info .type .type-s{background:#ccc;padding:0 5px;color:#fff;font-size:12px;height:15px;line-height:15px;display:inline-block}.shop-cart .goods-detail .detail-body .detail-info .price{padding:0 0 10px;margin-bottom:10px;border-bottom:1px solid #000}.shop-cart .goods-detail .detail-body .detail-info .price .oldprice{color:#999;font-size:14px;font-weight:700;display:block;padding-bottom:5px}.shop-cart .goods-detail .detail-body .detail-info .price .newprice{color:#000;font-size:14px;font-weight:700;height:30px;line-height:30px;padding:0 0 5px}.shop-cart .goods-detail .detail-body .detail-info .price .newprice b{font-size:22px;font-family:arial}.shop-cart .goods-detail .detail-body .detail-info .order{color:#000;font-size:12px}.shop-cart .goods-detail .detail-body .detail-info .order dd{width:55px;float:left;padding-bottom:8px}.shop-cart .goods-detail .detail-body .detail-info .order dt{width:245px;float:left;padding-bottom:8px}.shop-cart .goods-detail .detail-body .detail-info .order dd.colorBox{line-height:44px}.shop-cart .goods-detail .detail-body .detail-info .order .colorBox{height:75px}.shop-cart .goods-detail .detail-body .detail-info .order .colorBox li{width:44px;height:65px;overflow:hidden;text-align:center;margin-right:4px;display:inline;float:left;cursor:pointer}.shop-cart .goods-detail .detail-body .detail-info .order .colorBox li .atcive{width:40px;height:40px;border:2px solid #e8044f}.shop-cart .goods-detail .detail-body .detail-info .order .colorBox li .atcive span{position:absolute;bottom:0;right:0;width:11px;height:11px;overflow:hidden;background:url(../assets/img/cart/ico_r_act.png?v155ba59f1e9) 0 0 no-repeat}.shop-cart .goods-detail .detail-body .detail-info .order .colorBox li p{width:42px;height:42px;margin:0;display:inline-block;border:1px solid #ccc;position:relative}.shop-cart .goods-detail .detail-body .detail-info .order .colorBox li p img{width:100%;height:auto}.shop-cart .goods-detail .detail-body .detail-info .order .colorBox li span{line-height:20px}.shop-cart .goods-detail .detail-body .detail-info .order .showSizeBox{height:25px;line-height:18px}.shop-cart .goods-detail .detail-body .detail-info .order .showSizeBox span{cursor:pointer;height:18px;padding:0 10px;border:1px solid #ccc;margin:1px 5px 5px 1px;display:inline;float:left;overflow:hidden}.shop-cart .goods-detail .detail-body .detail-info .order .showSizeBox .atcive{height:16px;border:2px solid red;background:url(../assets/img/cart/ico_r_act.png?v155ba59f1e9) 100% 100% no-repeat}.shop-cart .goods-detail .detail-body .detail-info .order .showSizeBox .null-atcivec{height:18px;border:1px solid #ccc;color:#ccc}.shop-cart .goods-detail .detail-body .detail-info .order .showSizeBox .atcivec{height:16px;border:2px solid #ccc;background:url(../assets/img/cart/ico_r_act_h.png?v155ba59f1ea) 100% 100% no-repeat;color:#ccc}.shop-cart .goods-detail .detail-body .detail-info .order .amount_wrapper{width:100px;height:20px;display:inline-block}.shop-cart .goods-detail .detail-body .detail-info .order .amount_wrapper .amount{width:12px;height:12px;display:inline;cursor:pointer;border:0;float:left;font-size:10px;color:#c4c4c4}.shop-cart .goods-detail .detail-body .detail-info .order .amount_wrapper .cut{background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:-357px -119px;margin:5px 5px 0 0}.shop-cart .goods-detail .detail-body .detail-info .order .amount_wrapper .add{background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:-357px -106px;margin:5px 0 0 5px}.shop-cart .goods-detail .detail-body .detail-info .order .amount_wrapper .mnum{width:33px;height:18px;line-height:16px;border:1px solid #c4c4c4;text-align:center;overflow:hidden;float:left;font-size:12px}.shop-cart .goods-detail .detail-body .detail-info .submit{padding-top:10px;float:left}.shop-cart .goods-detail .detail-body .detail-info .submit input{width:225px;height:45px;overflow:hidden;border:0;cursor:pointer;float:left}.shop-cart .goods-detail .detail-body .detail-info .submit .addcart{background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:0 -146px}.shop-cart .goods-detail .detail-body .detail-info .submit .btn_pre_sale{background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:0 -52px}.shop-cart .goods-detail .detail-body .detail-info .submit .btn_sellout{background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:0 -99px}.shop-cart .goods-detail .detail-body .detail-info .submit .fav_count{background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:0 -193px;height:30px}.shop-cart .goods-detail .detail-body .detail-size{float:left;border-top:1px dashed #ccc;width:100%;height:auto;padding-bottom:15px}.shop-cart .goods-detail .detail-body .detail-size h3{height:35px;line-height:35px;font-size:14px}.shop-cart .goods-detail .detail-body .detail-size h3 span{font-size:12px}.shop-cart .goods-detail .detail-body .detail-size table{width:100%;height:auto;border:1px solid #ccc;margin-bottom:5px;font-size:12px}.shop-cart .goods-detail .detail-body .detail-size table td{border:1px solid #fff;padding:3px;font-weight:400;background:#fbfbfb;text-align:center;padding:8px 3px}.shop-cart .goods-detail .detail-body .detail-size table tr:nth-of-type(even) td{background:#f4f4f4}.shop-cart .goods-detail .detail-body .detail-size .size-info{font-size:12px;color:#999}.shopping-pay-page{margin:25px auto}.shopping-pay-page .pay-page{width:100%;position:relative}.shopping-pay-page .not-pay{width:680px;height:400px;margin:0 auto;overflow:hidden;padding-top:100px;padding-left:200px}.shopping-pay-page .not-pay p{padding-left:30px;line-height:32px}.shopping-pay-page .not-pay .success{background:url(../assets/img/pay/success.png?v155ba59f2d3) no-repeat 0}.shopping-pay-page .not-pay a{margin-top:40px;margin-left:140px;float:left;color:#c5c5c5}.shopping-pay-page .pay-title{width:980px;height:52px;overflow:hidden;padding:20px 0 0;margin:0 auto;border-bottom:2px solid #000}.shopping-pay-page .pay-title ul{width:446px;height:12px;float:right;list-style:none;padding:0;margin:0;background:url(../assets/img/pay/pay-list.png?v155ba59f2d1) no-repeat 100% 0}.shopping-pay-page .pay-title li{width:176px;height:12px;text-align:center;color:#999;float:left}.shopping-pay-page .pay-title li span{display:block;height:15px;padding:15px 0 0;line-height:15px;font-size:12px}.shopping-pay-page .pay-title .end{width:93px;height:18px;color:#000}.shopping-pay-page .pay-title .end span{text-align:right}.shopping-pay-page .step4{height:24px;width:99px;overflow:hidden;background-image:url(../assets/img/pay/pay-title.png?v155ba59f2d2);float:left}.shopping-pay-page .step5{height:31px;width:117px;overflow:hidden;background-image:url(../assets/img/pay/bc.png?v155ba59f2c4);float:left}.shopping-pay-page .cart-pay{width:980px;margin:25px auto}.shopping-pay-page .cart-pay h2{width:950px;height:40px;padding:0 0 0 30px;line-height:40px;color:#000;font-size:20px;font-family:Arial,helvetica,sans-serif;background:url(../assets/img/pay/cat-pay.png?v155ba59f2c8) no-repeat 0 11px;font-weight:400}.shopping-pay-page .cart-pay h3{height:40px;line-height:40px;font-weight:400;color:#666;font-size:12px;margin:0}.shopping-pay-page .cart-pay h3 strong{color:#e8044f;font-size:14px;font-weight:700}.shopping-pay-page .cart-pay h4{height:30px;line-height:30px;color:#000;font-size:14px;display:block;margin:0}.shopping-pay-page .wrapper{width:980px;margin:25px auto;overflow:hidden;border-top:2px solid #d9d9d9;padding-top:19px}.shopping-pay-page .pay-way{width:980px;height:32px;margin-bottom:27px;overflow:hidden;margin:30 auto}.shopping-pay-page .word{display:block;float:left;line-height:32px;font-size:16px;margin-right:10px}.shopping-pay-page .pay-type-img{height:30px;float:left;vertical-align:middle}.shopping-pay-page #tab-box{width:980px;margin-top:30px}.shopping-pay-page .tab-conbox,.shopping-pay-page .tabs{border-bottom:1px solid #d9d9d9}.shopping-pay-page .tabs{height:40px;padding-left:20px;background:#fff}.shopping-pay-page .tabs li{height:40px;width:85px;line-height:40px;float:left;margin-bottom:-1px;background:#ededed;overflow:hidden;position:relative;margin-left:20px;font-size:12px}.shopping-pay-page .tabs li a{display:block;outline:none;font-size:12px;text-align:center}.shopping-pay-page .tabs li.thistab{background:#fff;border-bottom:1px solid #fff;border:1px solid #d9d9d9;border-bottom:none}.shopping-pay-page .tab-con{padding-top:30px;font-size:14px;line-height:175%;overflow:hidden}.shopping-pay-page .none{display:none}.shopping-pay-page .count{width:1020px;height:170px}.shopping-pay-page .mode{width:210px;height:50px;border:1px solid #d9d9d9;margin-right:45px;margin-bottom:30px;float:left;box-sizing:border-box;text-align:center;vertical-align:middle;display:block;position:relative;line-height:44px}.shopping-pay-page .mode img{vertical-align:middle;outline:none}.shopping-pay-page .mode:hover{border:1px solid red}.shopping-pay-page .choosed-tag{background-image:url(../assets/img/pay/mode-top.png?v155ba59f2ca);height:22px;width:23px;position:absolute;top:0;right:0}.shopping-pay-page .choose-type,.shopping-pay-page .choose-type:hover{border:2px solid red}.shopping-pay-page .btn-wrapper{width:100%;padding-top:21px;margin-top:10px;margin-bottom:55px}.shopping-pay-page .btnby{outline:none;background:url(../assets/img/pay/pay-btn.png?v155ba59f2ce) no-repeat 100% 0;background-repeat:no-repeat;background-position:191px;float:right;width:230px;height:40px;line-height:40px;background-color:#da0040;color:#fff;font-size:16px;border:none;font-weight:700;font-family:arial,Microsoft YaHei!important}.shopping-pay-page .light-box{display:block;position:fixed;width:100%;height:100%;z-index:17;top:0;left:0;font-family:Microsoft Yahei;display:none}.shopping-pay-page .opacity{width:100%;height:1000px;background:#000;filter:Alpha(Opacity=50);opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";overflow:hidden;position:absolute;top:0;left:0}.shopping-pay-page .content{margin-left:-203px;margin-top:-124px;padding:50px 40px;background-color:#fff;position:absolute;top:50%;left:50%;box-shadow:0 0 8px #e8e8e8}.shopping-pay-page .notice{padding:26px 14px;line-height:20px;font-size:13px;color:#9f9f9f}.shopping-pay-page .btns a{width:134px;height:38px;line-height:38px;color:#fff;font-size:14px;margin:0 14px;display:inline-block;text-align:center;text-decoration:none}.shopping-pay-page .change{background:#bdbdbd}.shopping-pay-page .over{background:#da0040}.shopping-pay-page .close a{text-decoration:none;color:#666;outline:none}.shopping-pay-page .close,.shopping-pay-page .close a{width:30px;height:30px;line-height:30px;position:absolute;top:0;right:0;font-size:16px;font-family:arial;text-align:center}.shopping-cashondelivery-page{width:860px;margin:0 auto;font-family:arial,Microsoft YaHei;font-size:12px;text-align:left;line-height:150%}.shopping-cashondelivery-page .cart-order{width:860px;margin-top:70px}.shopping-cashondelivery-page .cart-order h1{height:70px;line-height:40px;color:#333;text-align:center;font-size:20px;font-family:Arial,helvetica,sans-serif}.shopping-cashondelivery-page .ok-br{width:30px;height:30px;background:url(../assets/img/pay/ok.png?v155ba59f2cd) no-repeat;display:inline-block;vertical-align:middle}.shopping-cashondelivery-page .list-box{border:1px solid #dadada;border-top:10px solid #000;border-bottom:0;margin-bottom:20px;font-size:14px}.shopping-cashondelivery-page .list-t{height:36px;line-height:36px;background:#f3f3f3;text-align:center;color:#333;border-bottom:1px solid #dadada}.shopping-cashondelivery-page .list-t .yoho-coin{width:14px;height:14px;display:inline-block;background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:-321px -225px;vertical-align:middle;margin-top:-2px;margin-right:4px}.shopping-cashondelivery-page .li-1{width:170px;height:36px;border-right:1px solid #dadada;font-weight:700;float:left}.shopping-cashondelivery-page .li-1 a{text-decoration:none;color:#468fa2;outline:none}.shopping-cashondelivery-page .li-2,.shopping-cashondelivery-page .li-3,.shopping-cashondelivery-page .li-4{width:170px;height:36px;border-right:1px solid #dadada;float:left}.shopping-cashondelivery-page .li-5{width:170px;height:36px;float:left}.shopping-cashondelivery-page .list{height:36px;line-height:36px;background:#fff;text-align:center;border-bottom:1px solid #dadada;font-size:14px}.shopping-cashondelivery-page .f-rz{font-weight:700;font-size:14px;color:#e8044f}.shopping-cashondelivery-page .f-e{color:#468fa2}.shopping-cashondelivery-page .f-a{color:#e8044f}.shopping-cashondelivery-page .list-b{border:1px solid #fdcf74;background:#fcfbdd;color:#976637;padding:20px;line-height:1.8;margin-bottom:20px;font-family:Arial,helvetica,sans-serif}.shopping-cashondelivery-page .list-b a{text-decoration:none;color:#468fa2;outline:none}.shopping-cashondelivery-page .list-b b{color:#c00}.shopping-cashondelivery-page .pay-mode{color:#666}.shopping-cashondelivery-page .btns{text-align:center;padding:20px 0;margin-bottom:150px}.shopping-cashondelivery-page .btns a{display:inline-block;height:33px;line-height:33px;text-align:center;font-size:14px;font-weight:700;cursor:pointer;border-radius:4px}.shopping-cashondelivery-page .btns .check-order{background:#da034a;color:#fff;border:1px solid #9d0134;width:134px;margin-right:15px}.shopping-cashondelivery-page .btns .return-home{background:#eee;color:#000;border:1px solid #b0b0b0;width:97px}.pay-notice-page{width:860px;margin:70px auto;font-size:12px}.pay-notice-page .font-red{color:#e8044f}.pay-notice-page h1{height:70px;line-height:40px;color:#333;text-align:center;font-size:20px;font-family:Arial,helvetica,sans-serif}.pay-notice-page .ok-icon{display:inline-block;width:30px;height:30px;background:url(../assets/img/pay/ok.png?v155ba59f2cd) no-repeat;vertical-align:text-top}.pay-notice-page .order-info{border-right:1px solid #dadada;border-top:10px solid #000;margin-bottom:20px}.pay-notice-page .table-row{height:36px;line-height:36px;text-align:center;color:#333;border-bottom:1px solid #dadada}.pay-notice-page .table-row .order-num,.pay-notice-page .table-row .pay,.pay-notice-page .table-row em{font-weight:700}.pay-notice-page .table-row .pay-mode{color:#666}.pay-notice-page .table-row li{float:left;width:170px;border-left:1px solid #dadada;font-size:14px}.pay-notice-page .order-table-header{background:#f3f3f3}.pay-notice-page .order-table-header .yoho-coin{width:14px;height:14px;display:inline-block;background-image:url(../assets/img/sprite.cart.png?v155ba59fd53);background-position:-321px -225px;vertical-align:middle;margin-top:-2px;margin-right:4px}.pay-notice-page .notice-link{color:#468fa2}.pay-notice-page .notice-tip{border:1px solid #fdcf74;background:#fcfbdd;color:#976637;line-height:1.8;margin-bottom:20px;padding:20px;font-family:Arial,helvetica,sans-serif}.pay-notice-page .btns{text-align:center;padding:20px 0}.pay-notice-page .btns a{display:inline-block;height:33px;line-height:33px;text-align:center;font-size:14px;font-weight:700;cursor:pointer;border-radius:4px}.pay-notice-page .btns .check-order{background:#da034a;color:#fff;border:1px solid #9d0134;width:134px;margin-right:15px}.pay-notice-page .btns .return-home{background:#eee;color:#000;border:1px solid #b0b0b0;width:97px}.pay-notice-page .notice-img{width:100%}.pay-wechatqrcode-page{width:990px;margin:0 auto;font-size:12px;font-family:arial,Microsoft YaHei}.pay-wechatqrcode-page .pay-title{height:52px;overflow:hidden;padding:20px 0 0;margin:0 auto;border-bottom:2px solid #000}.pay-wechatqrcode-page .pay-title ul{width:446px;height:12px;float:right;list-style:none;padding:0;margin:0;background:url(../assets/img/pay/pay-list.png?v155ba59f2d1) no-repeat 100% 0}.pay-wechatqrcode-page .pay-title li{width:176px;height:12px;text-align:center;color:#999;float:left}.pay-wechatqrcode-page .pay-title li span{display:block;height:15px;padding:15px 0 0;line-height:15px}.pay-wechatqrcode-page .pay-title .end{width:93px;height:18px;color:#000}.pay-wechatqrcode-page .pay-title .end span{text-align:right}.pay-wechatqrcode-page .step4{height:24px;width:99px;overflow:hidden;background-image:url(../assets/img/pay/pay-title.png?v155ba59f2d2);float:left}.pay-wechatqrcode-page .w-title{padding:25px 0 12px;overflow:hidden}.pay-wechatqrcode-page .w-left{width:670px;float:left}.pay-wechatqrcode-page .w-left h3{line-height:26px;height:26px;margin-bottom:4px;overflow:hidden;font-size:14px;font-weight:400}.pay-wechatqrcode-page .w-left p{height:22px;line-height:22px;color:#9b9b9b}.pay-wechatqrcode-page .w-left p span{color:red}.pay-wechatqrcode-page .w-right{margin-left:670px;overflow:hidden;text-align:right}.pay-wechatqrcode-page .w-right p{line-height:26px;height:26px;margin-bottom:4px;overflow:hidden;font-size:14px}.pay-wechatqrcode-page .w-right p strong{color:#ff5d5b;font-size:18px;margin:0 3px;font-weight:700}.pay-wechatqrcode-page .w-right a{color:#2ea7e7;padding-right:14px;position:relative;display:inline-block;height:22px;line-height:22px}.pay-wechatqrcode-page .w-right a i{width:0;height:0;font-size:0;position:absolute;top:9px;right:4px;z-index:1;cursor:pointer}.pay-wechatqrcode-page .up{float:right;border-width:4px 3px 0;border-style:solid dashed dashed;border-color:#2ea7e7 transparent transparent}.pay-wechatqrcode-page .down{float:right;border-width:0 3px 4px;border-style:dashed dashed solid;border-color:transparent transparent #2ea7e7}.pay-wechatqrcode-page .w-addrinfo{padding:12px 0;color:#9b9b9b;line-height:22px;border-top:1px solid #e4e5eb;display:none}.pay-wechatqrcode-page .w-addrinfo span{padding:0 20px}.pay-wechatqrcode-page .w-payment{border:1px solid #e5e5e5;border-top:3px solid #4b5b78;background-color:#fff;padding:26px 30px 30px;margin-top:6px;margin-bottom:50px}.pay-wechatqrcode-page .w-payment h2{font-size:18px;font-weight:400;display:block}.pay-wechatqrcode-page .w-p-weixin{width:300px;height:380px;padding:20px 370px 30px 0;margin:0 auto;overflow:hidden;background:url(../assets/img/pay/w-p-phone.png?v155ba59f2d4) no-repeat 100% 0}.pay-wechatqrcode-page .w-p-erm{width:250px;height:250px;padding:24px;margin-bottom:20px;border:1px solid #ddd;overflow:hidden}.pay-wechatqrcode-page .w-p-word{height:44px;padding:8px 0 8px 125px;background:url(../assets/img/pay/w-p-word.png?v155ba59f2d5) no-repeat 50px 8px #090909}.pay-wechatqrcode-page .w-p-word p{margin:0;font-size:14px;line-height:22px;color:#fff;font-weight:700}.pay-wechatqrcode-page .w-pay-change{display:block;height:30px;line-height:30px;margin-top:50px;color:#0aaefa;cursor:14px}.pay-wechatqrcode-page .w-pay-change i{float:left;margin-right:14px;font-family:arial;font-style:normal;font-size:16px}.wechatqrcodereturn{width:990px;margin:0 auto;font-size:12px;font-family:Arial,helvetica,sans-serif}.wechatqrcodereturn .pay-title{height:65px;overflow:hidden;padding:20px 0 0;margin:0 auto;border-bottom:2px solid #000}.wechatqrcodereturn .pay-title ul{width:446px;height:12px;float:right;list-style:none;padding:0;margin:0;background:url(../assets/img/pay/pay-list.png?v155ba59f2d1) no-repeat 100% 0}.wechatqrcodereturn .pay-title li{width:176px;height:12px;text-align:center;color:#999;float:left}.wechatqrcodereturn .pay-title li span{display:block;height:15px;padding:15px 0 0;line-height:15px}.wechatqrcodereturn .pay-title .end{width:93px;height:18px;color:#000}.wechatqrcodereturn .pay-title .end span{text-align:right}.wechatqrcodereturn .step5{height:33px;width:97px;overflow:hidden;background-image:url(../assets/img/pay/finsh.png?v155ba59f2c9);float:left}.wechatqrcodereturn .pay-wechat-return{overflow:hidden;padding-top:10px}.wechatqrcodereturn .payerror{margin:50px 0 0 300px;font-size:14px;font-weight:700;color:#000;padding-left:25px;line-height:21px;background:url(../assets/img/pay/pay-fail.png?v155ba59f2cf) no-repeat}.wechatqrcodereturn .arrival-time{margin:10px 0 0 325px;color:#666}.wechatqrcodereturn .tell-phone{color:#e8044f;font-weight:700;font-size:16px}.wechatqrcodereturn .cart-bigbtns span{margin-right:5px}.wechatqrcodereturn .btn-type{display:inline-block;height:35px;padding:0 0 0 2px;overflow:hidden;font-size:14px;margin:40px 0 0 320px}.wechatqrcodereturn .btn-type a{display:inline-block;height:35px;line-height:32px;padding:0 20px;background:url(../assets/img/pay/btnby.png?v155ba59f2c5) no-repeat;border:none;overflow:visible;cursor:pointer;margin:0;color:#666}.wechatqrcodereturn .we-font{margin:20px 0 0 320px;height:36px;line-height:36px;padding-left:16px;color:#999;display:block;background:url(../assets/img/pay/pay-plaint.png?v155ba59f2d2) no-repeat 1px}.about-page{width:990px;padding:10px 0 20px}.about-page .about-nav{width:210px;padding:10px 20px;background-color:#ebe9ea;border:1px solid #d7d7d7;border-radius:5px}.about-page .about-nav li{line-height:30px;font-size:12px;text-align:center;border-bottom:1px solid #ddd;border-top:1px solid #fff}.about-page .about-nav li a{color:#333;font-weight:700}.about-page .about-nav li a:hover{color:#f60}.about-page .about-nav li:first-child{border-top:0}.about-page .about-nav .act a{color:#ed004c;cursor:pointer}.about-page .about-nav .act a:hover{color:#ed004c}.yohobuy-about-page .main-container{width:720px;border:1px solid #d7d7d7;border-radius:5px;overflow:hidden}.yohobuy-about-page .main-container .text-title{border-bottom:4px solid red;font-family:微软雅黑;height:100px;line-height:100px;font-weight:700;font-size:36px;color:#333;text-align:center}.yohobuy-about-page .main-container .text-info{padding:20px;color:#333;overflow:hidden;font-size:12px;font-weight:400;line-height:24px}.newpower-about-page .main-container{width:720px;border:1px solid #d7d7d7;border-radius:5px;overflow:hidden}.newpower-about-page .main-container .text-info{line-height:30px;font-size:14px;font-weight:700;text-align:center;color:#333;padding:20px;overflow:hidden}.contact-about-page .main-container{width:720px;border:1px solid #d7d7d7;border-radius:5px;overflow:hidden}.contact-about-page .main-container .text-title{border-bottom:4px solid red;font-family:微软雅黑;height:100px;line-height:100px;font-weight:700;font-size:36px;color:#333;text-align:center}.contact-about-page .main-container .text-info{padding:20px;color:#333;overflow:hidden;font-size:12px;font-weight:400;line-height:24px}.contact-about-page .main-container strong{font-weight:700}.link-about-page .main-container{width:720px;border:1px solid #d7d7d7;border-radius:5px;overflow:hidden}.link-about-page .main-container .text-title{border-bottom:4px solid red;font-family:微软雅黑;height:100px;line-height:100px;font-weight:700;font-size:36px;color:#333;text-align:center}.link-about-page .main-container .text-info{padding:20px;color:#333;overflow:hidden;font-size:12px;font-weight:400;line-height:24px}.link-about-page .main-container h2{font-size:14px;line-height:30px;border-bottom:1px dashed #ccc}.link-about-page .main-container ul{padding:10px 0;list-style:none}.link-about-page .main-container strong{font-weight:700}.privacy-about-page .main-container{width:720px;border:1px solid #d7d7d7;border-radius:5px;overflow:hidden}.privacy-about-page .main-container .text-title{border-bottom:4px solid red;font-family:微软雅黑;height:100px;line-height:100px;font-weight:700;font-size:36px;color:#333;text-align:center}.privacy-about-page .main-container .text-info{padding:20px;color:#333;overflow:hidden;font-size:12px;font-weight:400;line-height:24px}.privacy-about-page .main-container strong{font-weight:700}.settled-apply-page .mask,.settled-page .mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#ccc;opacity:.3;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";z-index:20}.settled-page{margin-top:10px;margin-bottom:30px}.settled-page .banner{margin-bottom:45px}.settled-page .flow-container{position:relative;width:1033px;margin:0 auto}.settled-page .fake-link{position:absolute;bottom:-4px;left:221px;width:150px;height:32px;background:#fff;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";cursor:pointer}.settled-page .notice-container{position:fixed;width:960px;left:50%;top:30px;margin-left:-480px;z-index:2;overflow-y:auto;overflow-x:hidden;border-radius:10px;z-index:21}.settled-page .fake-close{position:fixed;width:30px;height:30px;top:44px;margin-left:914px;cursor:pointer;background:url(../assets/img/about/close.png?v155ba59f1be) no-repeat 50%}.min-screen .settled-page .banner{width:990px}.min-screen .settled-page .flow-container,.min-screen .settled-page .flow-path{width:890px}.min-screen .settled-page .fake-link{bottom:-6px;left:190px;width:130px}.settled-apply-page{font-size:14px}.settled-apply-page .error{border-color:red!important}.settled-apply-page .required-mark{color:red}.settled-apply-page .banner{display:block;margin-top:10px;margin-bottom:30px}.settled-apply-page .title{margin-bottom:10px;padding-left:215px}.settled-apply-page .title span{font-size:18px;line-height:20px;color:#000;font-weight:700;vertical-align:top}.settled-apply-page .title .edit-img{width:24px;height:22px}.settled-apply-page .form-container{width:100%;padding:30px 0;border:1px solid #f4f5f5;border-left:none;border-right:none}.settled-apply-page .signup-form{width:790px;margin:0 auto}.settled-apply-page .signup-form .long-input{width:400px}.settled-apply-page .signup-form .short-input{width:150px}.settled-apply-page .signup-form td{border:10px solid transparent;height:41px}.settled-apply-page .signup-form tr.has-sub td{border-bottom:0}.settled-apply-page .signup-form tr.sub td{border-top:2px}.settled-apply-page .signup-form tr td:first-child{text-align:right}.settled-apply-page .signup-form .sub .tip-td{vertical-align:top}.settled-apply-page .signup-form .button,.settled-apply-page .signup-form input,.settled-apply-page .signup-form select{height:36px;line-height:36px;border-radius:3px;border:1px solid #979797}.settled-apply-page .signup-form select{line-height:18px;padding:9px 0}.settled-apply-page .signup-form input[type=radio]{border:none;vertical-align:text-bottom;margin-bottom:-10px}.settled-apply-page .signup-form .button{width:156px;background-color:#fff;border-radius:6px}.settled-apply-page .signup-form input[type=text]{text-indent:5px}.settled-apply-page .signup-form .swfupload{border:1px solid #ccc;border-radius:6px;height:35px;width:160px;background-color:#fff;cursor:pointer}.settled-apply-page .signup-form .placeholder{color:#979797}.settled-apply-page .signup-form ul{list-style:none;padding-left:0}.settled-apply-page .signup-form .for-other{width:120px;padding:0}.settled-apply-page .signup-form .upload-btn{font-size:13px;border-radius:3px;border:1px solid #979797}.settled-apply-page .signup-form .upload-btn input{cursor:pointer}.settled-apply-page .signup-form .uploadifive-queue{display:none}.settled-apply-page .shop-addres{width:300px}.settled-apply-page .shop-sales-volume{width:80px}.settled-apply-page .shop-list li{margin-bottom:5px}.settled-apply-page .shop-list li>span{margin:0 4px}.settled-apply-page .shop-list li:last-child{margin-bottom:0}.settled-apply-page .tip{font-size:12px;color:#c7c7c7;margin:2px 0}.settled-apply-page .submit-btn{background-color:#000;color:#fff;height:37px;width:157px;border-radius:6px;border:none;margin-top:30px;margin-left:377px;cursor:pointer;margin-bottom:30px}.settled-apply-page .add-btn{width:22px;height:22px;vertical-align:middle;margin-left:20px;cursor:pointer}.settled-apply-page .submit-success{position:fixed;width:500px;height:180px;top:50%;left:50%;margin-top:-170px;margin-left:-280px;z-index:8;padding:30px 50px;background-color:#fff;border-radius:10px;text-align:center}.settled-apply-page .submit-success .content{border-bottom:1px solid #ccc;margin-bottom:20px}.settled-apply-page .submit-success .content h1,.settled-apply-page .submit-success .content h2{margin-bottom:30px}.settled-apply-page .submit-success .sure{font-size:24px;color:red;text-align:center;text-decoration:none;font-weight:700}.settled-apply-page .category-list{margin-top:-12px}.settled-apply-page .category-list li{margin-bottom:5px}.settled-apply-page .category-list li:last-child{margin-bottom:0}.settled-apply-page .has-radio td{line-height:41px}.settled-apply-page .tip-sub td{height:14px}.settled-apply-page input[type=radio]{margin-left:10px}.settled-apply-page .brand-tip,.settled-apply-page .goods-tip{color:#000;margin-top:10px}.settled-success{border:none;border-radius:10px;background:#fff}.settled-success .content{border-bottom:1px solid #ccc}.settled-success .main-title{font-size:28px}.settled-success .sub-title{font-size:16px;margin:20px 0}.settled-success .apply-success-ok{border:none;color:red;font-weight:700;font-size:18px;line-height:60px}.app-download-page .top-wrapper{height:550px;background:url(../assets/img/download/main-top.png?random=1466056691&v155ba59f216) no-repeat top}.app-download-page .top-wrapper .top-down{width:444px;margin:0 auto;padding-top:305px}.app-download-page .top-wrapper .down-btns{width:216px;height:65px;display:block;margin-left:200px;float:right}.app-download-page .top-wrapper .down-btns:first-child{margin-bottom:10px}.app-download-page .main-wrapper .intro{width:990px;height:437px;margin:114px auto 0}.app-download-page .main-wrapper .intro-6{height:350px}.app-download-page .main-wrapper .bottom-down{width:350px;margin:0 auto;overflow:hidden;padding-top:34px}.app-download-page .main-wrapper .bottom-down .qr-code{width:130px;height:130px;background-image:url(../assets/img/sprite.download.png?v155ba59fd57);background-position:0 0}.app-download-page .main-wrapper .bottom-down .down-btns{width:200px;height:60px;display:block}.app-download-page .main-wrapper .bottom-down .down-app-btn{margin-bottom:8px;background-image:url(../assets/img/sprite.download.png?v155ba59fd57);background-position:-132px 0}.app-download-page .main-wrapper .bottom-down .down-apk-btn{background-image:url(../assets/img/sprite.download.png?v155ba59fd57);background-position:-132px -62px}.app-download-page .foot-wrapper{height:100px;text-align:center} \ No newline at end of file diff --git a/web-static/dist/yohobuy/4.7.1/index.js b/web-static/dist/yohobuy/4.7.1/index.js new file mode 100644 index 0000000..a850fd6 --- /dev/null +++ b/web-static/dist/yohobuy/4.7.1/index.js @@ -0,0 +1,8 @@ +define("index",["jquery","handlebars","source-map","index","lazyload","jquery-pjax","dot","jquery.placeholder"],function(e,t,n){var a;e("js/common"),e("js/header"),e("js/simple-header"),e("js/product/entry"),e("js/index/index"),e("js/brand/index"),e("js/passport/entry"),e("js/cart/cart"),e("js/guang/entry"),e("js/home/entry"),e("js/help/entry"),e("js/order/ensure"),e("js/shopping/pay"),e("js/pay/wechatqrcode"),e("js/about/entry"),e("js/coupon/entry"),n.exports=a}),define("js/common",["jquery"],function(e,t,n){function a(e){var t=new RegExp(e+"=([^;$]*)","i"),n="$1";return t.test(decodeURIComponent(document.cookie))?RegExp[n]:""}function i(e,t,n){var a,i,o,s,r="";"undefined"!=typeof t&&(n=n||{},null===t&&(t="",n.expires=-1),n.expires&&("number"==typeof n.expires||n.expires.toUTCString)&&("number"==typeof n.expires?(s=new Date,s.setTime(s.getTime()+24*n.expires*60*60*1e3)):s=n.expires,r="; expires="+s.toUTCString()),a=n.path?"; path="+n.path:"",i=n.domain?"; domain="+n.domain:"",o=n.secure?"; secure":"",document.cookie=[e,"=",encodeURIComponent(t),r,a,i,o].join(""))}function o(){var e,t=a("_UID");return"undefined"==typeof t?0:(e=t.split("::"),"undefined"==typeof e||e.length<4?0:e)}function s(){var e=o();return 0===e?0:e[1]}function r(){var e=a("_g");return"undefined"==typeof e?"":JSON.parse(e).k}function d(){var e,t,n={},a=window.location.search,i=a?decodeURIComponent(a).slice(1).split("&"):[];for(t=0;t<i.length;t++)e=i[t].split("="),n[e[0]]=e[1];return n}var l=e("jquery"),c=l("body");e("js/footer"),function(e,t,n,a,i){var o=t.createElement(n),s=t.getElementsByTagName(n)[0];e.YohoAcquisitionObject=i,e[i]=function(){e[i].p=arguments},o.async=1,o.src=a,s.parentNode.insertBefore(o,s)}(window,document,"script",("https:"==document.location.protocol?"https":"http")+"://cdn.yoho.cn/yas-jssdk/1.0.17/yas.js","_yas"),function(){var e=s();e=0===e?"":e,window._ozuid=e,window._yas&&window._yas(1*new Date,"1.0.17","yohobuy_web",e,"","")}(),l(window).on("resize",function(){var e=l(this).width();1360>e?l(".return-top").addClass("min"):l(".return-top").removeClass("min"),1180>e?c.addClass("min-screen"):c.removeClass("min-screen")}).trigger("resize"),l.extend({queryString:function(){var e,t,n=[],a=window.location.search.slice(1).split("&");for(t=0;t<a.length;t++)e=a[t].split("="),n.push(e[0]),n[e[0]]=e[1];return n}}),function(){l(window).load(function(){var e,t=document.getElementById("user-thumb");t&&(e=new Image,e.src=t.src,e.onerror=function(){l(t).parent().append('<div class="default-user-thumb"></div>').end().remove()})})}(),window.cookie=a,window.setCookie=i,window.getUser=o,window.getUid=s,window.getShoppingKey=r,window.queryString=d}),define("js/footer",["jquery"],function(e,t,n){function a(){var e=s("#subscriber-box"),t=s("#subscriber-btn"),n=/^[.\-_a-zA-Z0-9]+@[\-_a-zA-Z0-9]+\.[a-zA-Z0-9]/,a={mail:"",tick:""};e.focus(function(){s(this).val("").css("color",""),t.removeClass("done").html(a.mail)}),t.click(function(){var i=s.trim(e.val());if(""!==i&&n.test(i))try{s.ajax({url:"//www.yohobuy.com/common/emailSubscriber",dataType:"jsonp",data:{email:i,tmp:Math.random(),uid:window.getUid()},success:function(n){1===n.data.result?(e.val("已订阅到:"+i),t.addClass("done").html(a.tick)):e.css("color","red")}})}catch(o){console.log(o.message)}else e.css("color","red")})}function i(){var e=s(".vote"),t=s("#feed-back-page"),n=e.children("li").length;t.on("click","span",function(){var t=s(this);t.hasClass("cur")||(t.siblings(".cur").removeClass("cur"),t.addClass("cur"),e.children().not(".hide").addClass("hide").end().eq(t.index()).removeClass("hide"))}),e.on("click",".feed-back-btn",function(){var a=s(this),i=a.closest("li"),o=i.index(),r=[],d=i.find(".feedback-answer").val(),l=i.find(".feedback-id").val(),c=i.find(".question-id").val();i.find(":checked").each(function(){r.push(s(this).val())}),s.ajax({url:"//www.yohobuy.com/common/suggestFeedback",dataType:"jsonp",data:{feedback_id:l||0,question_id:c||0,answer:d||"",solution:r.join(",")},success:function(a){var s=o+1;if(1===~~a.data.result){if(o===n-1)return void alert("感谢您的参与!");i.addClass("hide"),e.children(":eq("+(o+1)+")").removeClass("hide"),t.children(".cur").removeClass("cur"),t.children(":eq("+s+")").addClass("cur")}}})})}function o(){s(window).height()>s(document).height()&&r.addClass("hide")}var s=e("jquery"),r=s(".return-top");r.click(function(){s("html,body").animate({scrollTop:0},500)}),s(window).scroll(function(){0===s(window).scrollTop()?r.addClass("hide"):r.removeClass("hide")}),r.hasClass("hide")&&s("img").load(o),a(),i(),window.rePosReturnTop=o}),define("js/header",["jquery","handlebars","source-map","index"],function(e,t,n){function a(e,t,n){try{ee.push({louceng:e,weizhi:t,event:n})}catch(a){}}function i(){var e=H("#nav_keyword").text(),t="vans",n=H("#query_key");""!==e?(n.css({color:"#000"}),n.val(e)):(n.css({color:"#e0e0e0"}),n.val(t),n.on("focus",function(e){n.css({color:"#000"}),n.val("")}))}function o(){var e={cookie:"_g",cartNum:""},t="",n="",a=0,i=0,o=0,s=0,r="";H.fn.miniCart=function(a){if(t=H.extend(e,a),"undefined"==typeof window.cookie(t.cookie))n=null;else if(t.cookie)try{n=Y.parse(window.cookie(t.cookie))}catch(i){}null!==n&&""!==n&&(s=parseInt(n._nac)+parseInt(n._ac),0===s?H("#icart-num").attr("class","icart-num icart-none"):H("#icart-num").attr("class","icart-num"),H(t.cartNum).html(s))},H.fn.search=function(e){function t(t){var n=H.trim(H(t).val());return n=n.replace(new RegExp("'","gm"),""),""===n?(H(".search-list").hide(),!1):(n=encodeURI(n),void H.get(e+"?query="+n,function(e){H(".search-list").html(e.data),a=H(".search-list").children("li").length,i=-1,a>0?H(".search-list").show():H(".search-list").hide(),H(".search-list").find("a").hover(function(){H(this).css("background-color","#eee")},function(){H(this).css("background-color","#fff")})},"jsonp"))}function n(e){H(".search-list li:eq("+o+")").children("a").css("background-color","#fff"),H(".search-list li:eq("+i+")").children("a").css("background-color","#eee"),r=H(".search-list li:eq("+i+")").children("a").attr("title"),H("#query_key").val(r)}return this.each(function(){H(this).keyup(function(e){if(38===e.which){if(0===a)return!1;-1===i&&(i=0),o=i,i=(i-1+a)%a,n(this)}else if(40===e.which){if(0===a)return!1;o=i,i=(i+1)%a,n(this)}else 13===e.which?window.submitSearch():t(this)})})},H.extend({getData:function(e,t,n){var a={page:1,method:"",v:1,return_type:"jsonp",open_key:"12345",tmp:Math.random()},i="";if(void 0===typeof e||""===e)return!1;i=H.extend(a,t),i.page=i.page||1;try{H.getJSON(e+"/?callback=?",i,function(e){return""!==n?("undefined"!=typeof n(e.data)&&Y.parse(n(e.data)),!1):void 0})}catch(o){console.log(o.message)}},getShoppingKey:function(){var e,t=window.cookie("_g"),n=Y.parse(t);return"undefined"==typeof t||null===t?(e=window.cookie("_SPK"),e?e:""):n._k}})}function s(e){var t;200===+e.code&&"object"==typeof e.data&&(t=""!==e.data.url?'<a target="_blank" href="'+e.data.url+'" class="page-top-banner"style="height:36px;border:none;background-image:url('+window.unescape(e.data.src)+');background-position: center;display:block;"> </a>':'<div class="yoho-notice"><div class="notice-container center-content"><h1 class="notice-title">关于系统升级的公告</h1><div class="notice-content"><p class="tips">尊敬的顾客:</p><p class="detail">您好!为了向您提供更优质的服务,目前系统正在升级,请耐心等待。</p><p class="detail">系统升级期间,部分地区用户体验会有暂时中断,如遇紧急事宜,欢迎垂询客服热线:400-889-9646 09:00-22:30(周一至周日)。稍后系统将恢复正常使用,欢迎您继续光顾YOHO!BUY有货!带来不便之处深表歉意,请您谅解!</p></div></div></div>',H("body").prepend(t))}function r(e){var t=document.createElement("script");t.src=le+e+"&client_type=web&callback=JsonPCallBack",document.getElementsByTagName("head")[0].appendChild(t)}function d(e,t){var n,a;H(e).hover(function(e){e.preventDefault(),n=H(this),a=H(t)[0],""===a.style.display?(n.addClass("acttags"),a.style.display="block"):(n.removeClass("acttags"),a.style.display="")})}function l(){var e,t,n=[{sourceClass:".myyoho",targetClass:".myyoho-info"},{sourceClass:".phone",targetClass:".qr"}];for(t=0;t<n.length;t++)e=n[t],d(e.sourceClass,e.targetClass)}function c(){var e;H(".yohogroup").mouseenter(function(){e=H(this),e.text(e.attr("cn"))}),H(".yohogroup").mouseleave(function(){e=H(this),e.text(e.attr("en"))})}function u(){var e,t,n=["webkit","moz","ms"];for(t=0;t<n.length;t++)return e=n[t]+"RequestAnimationFrame",!!window[e]}function h(){var e=["webkit","moz","ms"],t=e[0]+"RequestAnimationFrame",n=e[1]+"RequestAnimationFrame",a=e[2]+"RequestAnimationFrame";return window[t]?function(e){requestAnimationFrame(e)}:window[n]?function(e){window[n](e)}:window[a]?function(e){window[a](e)}:function(e){window.setTimeout(e,67)}}function p(){ne+=10,ae.css({transform:"rotateX("+ne+"deg)","-webkit-transform":"rotateX("+ne+"deg)","-moz-transform":"rotateX("+ne+"deg)"}),ne/90%2===1&&(ie?(ae.css("background-image","url(//static.yohobuy.com/newheader/img/logo1.png)"),ie=!1):(ae.css("background-image","url(//static.yohobuy.com/newheader/img/logo_e.png)"),ie=!0)),ne/90%2===0&&ne%360!==0?window.setTimeout(p,3e3):ne%360===0?window.setTimeout(p,6e4):te(function(){p()})}function f(){M&&window.clearTimeout(M),ae.fadeOut(oe,function(){ie=!1,ae.css("background-image","url(//static.yohobuy.com/newheader/img/logo.png)"),ae.fadeIn(oe,function(){W=window.setTimeout(function(){ae.fadeOut(oe,function(){window.clearTimeout(W),ie=!0,ae.css("background-image","url(//static.yohobuy.com/newheader/img/logo_e.png)"),ae.fadeIn(oe,function(){M=window.setTimeout(f,6e4)})})},3e3)})})}function m(){u()?(te=h(),window.setTimeout(p,3e3)):window.setTimeout(f,3e3)}function g(e){var t=H(e);t.find(".thirdnavbar").each(function(){var e=H(this),t=e.find("a"),n=t.attr("href"),a="hot"===t.attr("hot"),i={};i=e.hasClass("category-title")?{type:"title",height:49,content:e.text(),index:window.valueIndex,href:n,hot:!1}:{type:"catlist",height:36,content:t.text(),index:window.valueIndex,href:n,hot:a},window.valueIndex++,window.newArr.push(i)})}function v(){var e=window.newArr.length,t=0,n=[],a=[],i=[],o=[],s="",r="",d="",l=0,c=0,u=0;for(t;e>t;t++){if(n=window.newArr[t],0===window.gindex&&(window.oh1=window.oh1+n.height,window.oh1>=340&&t!==e-1&&(window.targetArr1=window.newArr.slice(0,n.index+1),window.nowIndex=n.index+1,window.gindex++),t===e-1)){window.targetArr1=window.newArr.slice(0,e+1);break}if(1===window.gindex&&(window.oh2=window.oh2+n.height,window.oh2>=340&&t!==e-1&&(window.targetArr2=window.newArr.slice(window.nowIndex,n.index+1),window.nowIndex=n.index+1,window.gindex++),t===e-1)){window.targetArr2=window.newArr.slice(window.nowIndex,e+1);break}if(2===window.gindex){if(window.oh3=window.oh3+n.height,window.oh3>=340&&t!==e-1){window.targetArr3=window.newArr.slice(window.nowIndex,n.index+1),window.nowIndex=n.index+1,window.gindex++;break}if(t===e-1){window.targetArr3=window.newArr.slice(window.nowIndex,e+1);break}}}for(l;l<window.targetArr1.length;l++)a=window.targetArr1[l]||{},"title"===a.type?window.inner1=window.inner1+'<li class="cattitle"><h3><a href="'+a.href+'">'+a.content+"</a></h3></li>":a.hot===!0?window.inner1=window.inner1+'<li class="catdetail"><a class="thirdcatelink hot" href="'+a.href+'">'+a.content+"</a></li>":window.inner1=window.inner1+'<li class="catdetail"><a class="thirdcatelink" href="'+a.href+'">'+a.content+"</a></li>";for(c;c<window.targetArr2.length;c++)i=window.targetArr2[c]||{},"title"===i.type?window.inner2=window.inner2+'<li class="cattitle"><h3><a href="'+i.href+'">'+i.content+"</a></h3></li>":i.hot===!0?window.inner2=window.inner2+'<li class="catdetail"><a class="thirdcatelink hot" href="'+i.href+'">'+i.content+"</a></li>":window.inner2=window.inner2+'<li class="catdetail"><a class="thirdcatelink" href="'+i.href+'">'+i.content+"</a></li>";for(u;u<window.targetArr3.length;u++)o=window.targetArr3[u]||{},"title"===o.type?window.inner3=window.inner3+'<li class="cattitle"><h3><a href="'+o.href+'">'+o.content+"</a></h3></li>":o.hot===!0?window.inner3=window.inner3+'<li class="catdetail"><a class="thirdcatelink hot" href="'+o.href+'">'+o.content+"</a></li>":window.inner3=window.inner3+'<li class="catdetail"><a class="thirdcatelink" href="'+o.href+'">'+o.content+"</a></li>";""!==window.inner1&&(s='<ul class="cate_row1 cate_row">'+window.inner1+"</ul>"),""!==window.inner2&&(r='<ul class="cate_row2 cate_row">'+window.inner2+"</ul>"),""!==window.inner3&&(d='<ul class="cate_row3 cate_row">'+window.inner3+"</ul>"),window.finalresult=s+r+d,H("#"+window.wrapperindex).empty().append(window.finalresult)}function y(){H(".categorywrapper").each(function(e){window.wrapperindex=H(this).attr("id"),window.newArr=[],window.gindex=0,window.targetArr1=[],window.targetArr2=[],window.targetArr3=[],window.oh1=0,window.oh2=0,window.oh3=0,window.valueIndex=0,window.nowIndex=0,window.inner1="",window.inner2="",window.inner3="",g(H(this).find(".category")),v()})}function b(){var e={},t="",n="",a="",i="",o="";H(document).on("mouseenter",".sub-nav-item",function(){t=H(this).find(".showdetail").attr("data-code"),t&&(e[t]||(e[t]=t,n=H(this).find(".showdetail").find("img"),a=H(this).find(".showdetail").find(".title"),i=H(this).find(".showdetail").find("a"),H.get(le+t+"&width=337&height=250&client_type=web",function(e){n.attr("src",e.data.src),i.attr("href",e.data.url),a.text(e.data.title)},"jsonp")))}),o=H(".cure").find(".name-cn").find("a").attr("href"),H(".main-link").attr("href",o)}function w(){var e=H("#cover");e.remove()}function C(){var e,t=window.cookie("_Gender"),n="",i="",o="",s="";"www.yohobuy.com"!==window.location.host||"undefined"!=typeof t&&""!==t&&null!==t||H.get("//www.yohobuy.com/index/guide",function(t){n=document.createElement("div"),n.id="cover",n.innerHTML=t,document.body.appendChild(n),i=H(window).height(),o=H(".guide-box").height(),e=i/2-o/2,s=H(".guide-box .clear").find("li").length,H(".guide-box").css({width:200*s+"px",top:e+"px"}),H("#cover").bind("click",function(e){window.setCookie("_Gender","1,3",{path:"/",domain:".yohobuy.com",expires:90}),window.setCookie("_Channel","boys",{path:"/",domain:".yohobuy.com",expires:7}),w()}),H("#cover .guide-box .close").bind("click",function(e){a("弹窗","CLOSE","homepage_man"),window.setCookie("_Gender","1,3",{path:"/",domain:".yohobuy.com",expires:90}),window.setCookie("_Channel","boys",{path:"/",domain:".yohobuy.com",expires:7}),w()}),H(".boys img , .boys .go").bind("click",function(e){a("弹窗","BOYS","homepage_man"),window.setCookie("_Gender","1,3",{path:"/",domain:".yohobuy.com",expires:90}),window.setCookie("_Channel","boys",{path:"/",domain:".yohobuy.com",expires:7}),w()}),H(".girls img, .girls .go").bind("click",function(e){a("弹窗","GIRLS","homepage_woman"),window.setCookie("_Gender","2,3",{path:"/",domain:".yohobuy.com",expires:90}),window.setCookie("_Channel","girls",{path:"/",domain:".yohobuy.com",expires:7})}),H(".lifestyle img, .lifestyle .go").bind("click",function(e){window.setCookie("_Channel","lifestyle",{path:"/",domain:".yohobuy.com",expires:7}),a("弹窗","LIEFSTYLE","homepage_lifestyle")}),H("#cover .guide-box").bind("click",function(e){e.stopPropagation()})})}function i(){var e=H("#nav_keyword").text(),t=H("#defaultsearch").val(),n=H("#query_key");""!==e?(n.css({color:"#000"}),n.val(e)):(n.css({color:"#e0e0e0"}),n.val(t),n.on("focus",function(e){n.css({color:"#000"}),n.val("")})),H(document).click(function(e){H(e.target).closest(".searchspan, .search-list").length||H(".search-list").hide()})}function _(){var e=window.cookie("_Gender"),t=H(".cure");"undefined"!=typeof e&&""!==e&&window.setCookie("_Gender",1,{path:"/",domain:".yohobuy.com",expires:7}),"男生"===t.find(".name-cn a").text()&&(window.setCookie("_Gender","1,3",{path:"/",domain:".yohobuy.com",expires:7}),window.setCookie("_Channel","boys",{path:"/",domain:".yohobuy.com",expires:7})),"女生"===t.find(".name-cn a").text()&&window.setCookie("_Gender","2,3",{path:"/",domain:".yohobuy.com",expires:7}),"创意生活"===t.find(".name-cn a").text()&&window.setCookie("_Channel","lifestyle",{path:"/",domain:".yohobuy.com",expires:7}),"潮童"===t.find(".name-cn a").text()&&window.setCookie("_Channel","kids",{path:"/",domain:".yohobuy.com",expires:7})}function x(){H(".first-nav-item").click(function(){var e=window.cookie("_Gender");"undefined"!=typeof e&&""!==e&&window.setCookie("_Gender",1,{path:"/",domain:".yohobuy.com",expires:7}),"男生"===H(this).find(".name-cn a").text()&&(window.setCookie("_Gender","1,3",{path:"/",domain:".yohobuy.com",expires:7}),window.setCookie("_Channel","boys",{path:"/",domain:".yohobuy.com",expires:7})),"女生"===H(this).find(".name-cn a").text()&&(window.setCookie("_Gender","2,3",{path:"/",domain:".yohobuy.com",expires:7}),window.setCookie("_Channel","girls",{path:"/",domain:".yohobuy.com",expires:7})),"创意生活"===H(this).find(".name-cn a").text()&&window.setCookie("_Channel","lifestyle",{path:"/",domain:".yohobuy.com",expires:7}),"潮童"===H(this).find(".name-cn a").text()&&window.setCookie("_Channel","kids",{path:"/",domain:".yohobuy.com",expires:7})})}function k(){var e,t,n,a=document.cookie,i=a.split(";");for(e=0;e<i.length;e++)t=i[e].split("="),"undefined"!=typeof t[0]&&(n=t[0].replace(/\s/g,""),de[n]=t[1])}function j(){H("#miniCartBox").miniCart({cartNum:".ic-infomation"})}function S(){var e,t,n;H.getData("//www.yohobuy.com/common/shoppingCart","",function(a){""===V&&(V=G.compile(H("#mini-cart-tpl").html())),H("#miniCartBox").children(".gobuy-wrapper").html(V({carData:a})),0===parseInt(H(".ic-infomation").html())&&H("#miniCartBox .gobuy-wrapper").html('<div class="gobuy-empty"><h3 class="information">您的购物车暂无商品</h3></div>'),H("#miniCartBox .goods-list li").length<1&&(e=window.cookie("_g"),t=Y.parse(e),null!==t&&(n='{"_k":"'+t._k+'","_nac":0,"_ac":0,"_r":0}',window.setCookie("_g",n,{path:"/",domain:".yohobuy.com"})),H(".ic-infomation").html(0),H("#miniCartBox .gobuy-wrapper").html('<div class="gobuy-empty"><h3 class="information">您的购物车暂无商品</h3></div>'))})}function T(e,t,n){H.getData("//www.yohobuy.com/common/delCartGoods",{product_sku:e,promotion_id:t,product_num:n},function(e){var t=window.cookie("_g"),n=Y.parse(t),a='{"_k":"'+n._k+'","_nac":'+e.total_goods_num+',"_ac":0,"_r":0}';window.setCookie("_g",a,{path:"/",domain:".yohobuy.com"}),S(),j()})}function q(){var e,t,n,a;H(document).on("click",".goodscardelete",function(i){e=H(this),t=e.attr("product_sku"),n=e.attr("promotion_id"),a=e.prev("h3").find(".num").html(),T(t,n,a)})}function I(){var e;H(document).on("click",".mycart_i_down",function(t){e=H(this),e.toggleClass("mycart_i_up"),H("#mycartmore").slideToggle(300)})}function E(){var e,t="//www.yohobuy.com/shopping/cart";H("#miniCartBox").on("click",function(n){e=H(n.target),e.hasClass("gobuy")&&(window.location.href=t)})}function A(e){1===e?(H("#miniCartBox").addClass("list-cur"),H(".gobuy-wrapper").show(),0!==parseInt(H(".ic-infomation").html())?(H("#miniCartBox .gobuy-wrapper").html('<div class="gobuy-loading"><h3 class="information">加载中,请稍后</h3></div>'),S()):H("#miniCartBox .gobuy-wrapper").html('<div class="gobuy-empty"><h3 class="information">您的购物车暂无商品</h3></div>')):(H("#miniCartBox").removeClass("list-cur"),H(".gobuy-wrapper").hide())}function F(){var e;H("#miniCartBox").mouseenter(function(t){e=H(t.target),"miniCartBox"!==e.attr("id")&&"ic-infomation"!==e.attr("class")||A(1)}),H("#miniCartBox").mouseleave(function(e){A(0)})}function U(){var e,t="indexkids",n="indexlifestyle",a="indexboys",i="indexgirls",o="uniquebrand",s=window.location.href,d=window.location.host,l="";-1!==s.indexOf("search")&&(l=re["search"+de._Channel]),-1!==s.indexOf("list")&&(l=re["list"+de._Channel]),-1!==s.indexOf("brands")&&(l=re["brands"+de._Channel]),-1!==s.indexOf("new")&&(l=re["new"+de._Channel]),-1!==s.indexOf("sale")&&(l=re["sale"+de._Channel]),-1!==s.indexOf("home")&&(l=re["home"+de._Channel]),-1!==s.indexOf("kids")&&(l=re[t]),-1===s.indexOf("woman")&&-1===s.indexOf("girls")||(l=re[i]),-1!==s.indexOf("lifestyle")&&(l=re[n]),-1!==s.indexOf("www.yohobuy.com")&&"/"===window.location.pathname&&(l=re[a]),e=d.split(".")[0],"list"!==e&&"search"!==e&&"www"!==e&&"new"!==e&&"item"!==e&&"guang"!==e&&(l=re[o+de._Channel]),r(l)}function D(e){H(".hot-brands").find("ul").stop().animate({opacity:0,"z-index":1},200).eq(e).animate({opacity:1,"z-index":2},200)}function P(){var e,t=0;H(".hot-brands").size()>0&&(e=H(".hot-brands").find("ul").size(),H(".hot-brands").find("ul").eq(0).css({opacity:1,"z-index":2}),H(".brands-control").on("click",".next",function(){t===e-1?t=0:t++,D(t)}),H(".brands-control").on("click",".prev",function(){0===t?t=e-1:t--,D(t)}))}function O(){setInterval(j,2e3)}function L(){var e=H("#goodcartempwarpper"),t="";e&&e.html()&&(t=H("#goodcartempwarpper").html().replace(/\\/g,""),H("#goodcartempwarpper").html(t),Q=G.compile(H("#tmpl-my-login-new").html()))}function N(){var e="//search.yohobuy.com/api/suggest";H("#query_key").search(e)}function $(e){var t=(new Date).getTime(),n='<span>Hi~</span>[<a href="//www.yohobuy.com/signin.html" class="list-a login-out ">请登录</a>] [<a href="//www.yohobuy.com/reg.html" class="list-a login-out" onclick="">免费注册</a>]',a='<span>Hi~<a href="//www.yohobuy.com/home?t='+t+'">{{user_name}}</a></span> {{#if islogin}}[<a href="{{logout}}" class="list-a login-out">退出</a>]{{/if}}{{#unless islogin}}[<a href="//www.yohobuy.com/signin.html" class="list-a login-out">请登录</a>] [<a href="//www.yohobuy.com/reg.html" onclick="" class="list-a login-out">免费注册</a>]{{/unless}}',i=H("#loginBox"),o=window.cookie("_UID"),s=e.data.profile_name,r=0,d=0,l="",c=o.split("::"),u=c[0]||" ",h="//www.yohobuy.com/logout.html",p="1",f=0,m={user_name:s,logout:h,random:Math.random()};if(i.html("").show(),X=G.compile(a),"undefined"==typeof o||null===o)return i.html(n),!1;if("undefined"==typeof c||c.length<4)return i.html(n),!1;for(d;d<u.length;d++)l=u.substr(d,1),r+=/.*[\u4e00-\u9fa5]+.*$/.test(l)?2:1;if(10>=r)s=u;else{for(f=0,d;d<u.length;d++)10>f&&(l=u.substr(d,1),"*"!==l&&(f+=/.*[\u4e00-\u9fa5]+.*$/.test(l)?2:1),s+=l);s.length<u.length&&(s+="...")}h=/http:\/\//.test(c[3])?c[3].replace("www.yohobuy.com","www.yohobuy.com"):"//www.yohobuy.com/logout.html",-1===e.result&&(p="-1"),m.islogin=p,i.html(X(m))}function z(e){var t=e.data,n="";if(1===e.result){if(void 0===typeof t||t.length<1)return!1;"3"===t.vip.curVipInfo.curLevel&&(t.vip3=!0),H("#myYohoBox").mouseenter(function(){return H(this).addClass("acttags"),H("#myYohoBox .myyoho-info").show().html(Q(t)),n=H(".myyoho-photo img").attr("data-url"),1===H._checkUrlState?void H(".myyoho-photo").show().find("img").attr("src",n):void(""!==n&&""===H._checkUrl&&H.ajax({url:n,type:"GET",complete:function(e){200!==e.status&&0!==e.status||(H(".myyoho-photo").show().find("img").attr("src",n),H._checkUrlState=1),H._checkUrl=n}}))}),H("#myYohoBox").mouseleave(function(){H(this).removeClass("acttags"),H("#myYohoBox .myyoho-info").hide()})}}function B(){H.getData("//www.yohobuy.com/common/passport","",function(e){e&&-1!==e.result?($(e),z(e)):(window.setCookie("_UID","",{path:"/",domain:".yohobuy.com",expires:-1}),se.show())})}function R(){y(),b(),L(),C(),_(),x(),k(),o(),c(),l(),m(),U(),P(),F(),j(),O(),N(),E(),q(),I(),B(),i()}var M,W,H=e("jquery"),G=e("handlebars"),Y=e("index"),Q=null,X=null,V="",Z=/^[\^\!\+\-\(\)\:\[\]\\\{\}\~\*\?\|\&\;\/]{0,}$/g,J="",K="",ee=[],te=null,ne=0,ae=H(".icon-logo"),ie=!0,oe=500,se=H("#loginBox"),re={listboys:"4f78b0f418fc42314d8b6e791cfb7fa8",listgirls:"00c1f025a51b6b597dc37925951ea27d",listkids:"b02df11184727701ade1b6de9737d08c",listlifestyle:"fd35c52dced0c880976ba858346d1fc5",searchboys:"9fb8986ea700cc27a8057361c3924394",searchgirls:"e3e207a1443ca60c8037fe52a5560c18",searchkids:"620fc77f479da8feaeb06f2324e5d0bb",searchlifestyle:"a3c93301c6ffaf3ed0f36a4a451be36d",uniquebrandboys:"2ebb0810c0d1a67e5229149c9c3aba7d",uniquebrandgirls:"99e23385f4ba4b65f406b7e2968ac821",uniquebrandkids:"a74ebc9b17840c91b9ea46568111fe6b",uniquebrandlifestyle:"0e8c81ead53f56302baa4d0ad967f527",brandsboys:"77b352db07129c76a9d532acad149f9f",brandsgirls:"bf047f16e52ebc38be5ce9c7623831e6",brandskids:"e3ae1ce9b5e13c6d271ef3eccb831652",brandslifestyle:"e4ac8029c30f65d7f1af030980d140fe",newboys:"869d3c5f3b450fb52101d00a61ce87cb",newgirls:"d953b6dfdac02483d1dcce8d96055954",newkids:"0874cb6d75df8e0e78f2d475e53ecc08",newlifestyle:"43e8fc8e178115c262bbce2bd0012db7",saleboys:"c846e3165c994769b4201d8c32f3ae9b",salegirls:"52b1d389edcbc62d65de71b80c4d6ad0",salekids:"ad8b1703c761ba00973868ab5199cc27",salelifestyle:"7acc64905c70ac91846f43fb2cec4bbd",homeboys:"b0856a771ef1b59ab1234c74688fa42d",homegirls:"2bd61fa12e4933211518f70fe5ce3c48",homekids:"895c59e8c64b40399c9533509507320c",homelifestyle:"2e037d4e25d2767352ca3e0a4627f7bd",indexboys:"0c911d3000f52e8ca7cffb74f5864c29",indexgirls:"b645b8980c423ab30485e0a9d08c2ef7",indexkids:"17f6d5d5d454d2c507bc5fcbc90f7756",indexlifestyle:"735cd393e841762af8793c346abbbc36"},de={},le="//new.yohobuy.com/common/getbanner?content_code=";H("#api-domain").remove(),window.submitSearch=function(){var e,t,n=H("#query_key").val(),i=H("#defaultsearch").val(),o="Search",s="Head Search",r="Search";if(e=H.trim(J.toLowerCase()),t=H.trim(n.toLowerCase()),a(o,s,r),""!==K&&""!==J&&e===t)location.href=K.replace("'","");else{if(!Z.test(n)||""===n)return""===n&&H("#query_key").val(i),H("#searchForm").submit(),!1;location.href="//search.yohobuy.com/error?query="+n+"&result=error"}},G.registerHelper("timestamp",function(){return(new Date).getTime()}),G.registerHelper("headerimg",function(e){return""===e?"//img10.static.yhbimg.com/headimg/2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100":e}),G.registerHelper("equallevelthree",function(e,t){return"3"===e?t.fn(this):t.inverse(this)}),G.registerHelper("notzero",function(e,t){return"0"!==e?t.fn(this):t.inverse(this)}),window.JsonPCallBack=s,window.newArr=[],window.wrapperindex=0,window.gindex=0,window.targetArr1=[],window.targetArr2=[],window.targetArr3=[],window.oh1=0,window.oh2=0,window.oh3=0,window.valueIndex=0,window.nowIndex=0,window.inner1="",window.inner2="",window.inner3="",window.finalresult="",R()}),define("js/simple-header",["jquery"],function(e,t,n){function a(e){var t,n,a,i=0,o=0;for(a=0;a<e.length;a++)n=e.substr(a,1),o+=/.*[\u4e00-\u9fa5]+.*$/.test(n)?2:1;if(10>=o)t=e;else{for(i=0,t="",a=0;a<e.length;a++)10>i&&(n=e.substr(a,1),"*"!==n&&(i+=/.*[\u4e00-\u9fa5]+.*$/.test(n)?2:1),t+=n);t.length<e.length&&(t+="...")}return t}function i(e){var t,n,i=e.data;-1!==e.result?(n=a(i.profile_name),t='<span>Hi~</span><a href="//www.yohobuy.com/home?t='+i.random+'">'+n+'</a> <a href="//www.yohobuy.com/logout.html">[退出]</a>'):t='<span>Hi~</span> <a href="//www.yohobuy.com/signin.html">[请登录]</a> <a href="//www.yohobuy.com/reg.html">[免费注册]</a>',s(".header-tool li").eq(0).html(t)}function o(){var e={return_type:"jsonp"};s.getJSON("//www.yohobuy.com/common/passport/?callback=?",e,function(e){e&&e.data&&i(e.data)})}var s=e("jquery"),r=s("#api-domain");r.val();r.remove(),s(".simple-header").size()>0&&s(".tool-options").on("mouseenter",function(){s(this).find(".tool-select").fadeIn()}).on("mouseleave",function(){s(this).find(".tool-select").fadeOut()}),o()}),define("js/product/entry",["jquery","handlebars","source-map","lazyload","index","jquery-pjax"],function(e,t,n){e("js/product/list"),e("js/product/brand"),e("js/product/hotrank"),e("js/product/item"),e("js/product/shop-index")}),define("js/product/list",["jquery","handlebars","source-map","lazyload"],function(e,t,n){var a=e("jquery");e("js/product/filter"),e("js/product/sort-pager"),e("js/product/latest-walk"),e("js/product/product"),function(){var e,t=a(".banner-img");0!==t.length&&(e=new Image,e.onload=function(){e.height&&t.height(e.height),e=null},e.src=t.css("background-image").replace(/"/g,"").slice(4,-1))}()}),define("js/product/filter",["jquery","handlebars","source-map"],function(e,t,n){function a(e,t){e.each(function(){g(this).closest(".attr").hasClass("checked")||g(this).removeClass("checked").html(y.unchecked)}),t.find(".checkbox").addClass("checked").html(y.checked)}function i(){w.addClass("hide"),_.removeClass("hide")}function o(){_.addClass("hide"),w.removeClass("hide"),S.children("span").removeClass("hover")}function s(e,t){var n,a=window.queryString();a[e]=t,delete a.page,n="?"+decodeURIComponent(g.param(a)),window.location.href=n}function r(e){E.children(".senior-sub:eq("+m+")").addClass("hide"),A.children(".attr:eq("+m+")").removeClass("hover"),m=-1}var d,l,c,u,h,p,f,m,g=e("jquery"),v=e("handlebars"),y={unchecked:"",checked:""},b={up:"",down:""},w=g(".brand .default"),C=g("#brand-search-input"),_=g(".brand .brand-panel"),x=_.find(".attr"),k=g("#brand-more"),j=g("#brand-multi"),S=g(".brands-index"),T=g(".ud-price-range"),q=/^\d+$/,I=g(".sort-sub-wrap"),E=g(".senior-sub-wrap"),A=g(".senior-attr-wrap"),F='{{# size}}<a class="attr {{#if checked}}checked{{/if}}" href="{{href}}">{{name}}</a>{{/ size}}',U={},D=g(".filter-box .size");F=v.compile(F),g(".filter-box").on("selectstart",".attr, .brands-index span",function(){return!1}),g(".sort-pre").on("click","li",function(){var e=g(this),t=e.index(),n=e.data("id");return e.hasClass("active")?(e.removeClass("active"),I.children(":eq("+t+")").addClass("hide"),void D.addClass("hide")):(e.siblings(".active").removeClass("active"),e.addClass("active"),I.children(":not(.hide)").addClass("hide"),I.children(":eq("+t+")").removeClass("hide"),void(D.data("load")||(U[n]?(D.find(".attr-content").html(U[n]),D.removeClass("hide")):g.ajax({url:"/product/search/sortSize",data:{msort:n}}).then(function(e){"array"===g.type(e)&&e.length?(U[n]=F({size:e}),D.find(".attr-content").html(U[n]),D.removeClass("hide")):D.addClass("hide")}))))}),k.length>0&&(d=k.children("em"),l=k.children(".iconfont")),j.click(function(){"none"===_.css("display")&&k.trigger("click"),i(),_.removeClass("hide").addClass("multi"),g(this).addClass("hide"),k.addClass("hide")}),k.click(function(){var e=g(this);e.hasClass("more")?(o(),d.text("更多"),l.html(b.down),C.val("").trigger("keyup")):(i(),d.text("收起"),l.html(b.up)),g(this).toggleClass("more")}),S.on("mouseenter","span",function(){var e=g(this),t=e.data("index");e.hasClass("hover")||setTimeout(function(){e.siblings("span.hover").removeClass("hover"),e.addClass("hover"),0===e.index()?x.removeClass("hide"):x.addClass("hide").filter("[data-index="+t+"]").removeClass("hide")},120)}),C.keyup(function(){var e=g(this).val().toLowerCase();""===e?x.removeClass("hide"):x.addClass("hide").filter('[data-key*="'+e+'"]').removeClass("hide")}),g("#brand-multi-ok").click(function(){var e=[];g(this).hasClass("dis")||(_.find("span.checked").each(function(){e.push(g(this).data("id"))}),s("brand",e.join(",")))}),g(".multi-select-cancel").click(function(){var e=g(this).closest(".multi");e.hasClass("brand-panel")&&(j.removeClass("hide"),k.trigger("click"),k.removeClass("hide"),C.val("").trigger("keyup"),o()),e.addClass("hide").removeClass("multi"),a(e.find(".checkbox.checked"),e.find(".attr.checked")),g(this).siblings(".multi-select-ok").addClass("dis")}),g(".check-container").on("click",".attr",function(){var e=g(this),t=e.find(".checkbox"),n=e.closest(".brand-panel, .senior-sub").find(".multi-select-ok");t.toggleClass("checked"),t.hasClass("checked")?t.html(y.checked):t.html(y.unchecked),t.hasClass("checked")||e.siblings(".attr").find(".checked").length>0?n.removeClass("dis"):n.addClass("dis")}),g(".brand, .senior").on("click",".attr > a",function(e){g(this).closest(".multi").length>0&&e.preventDefault()}),g(".filter-box").on("click","li.checked, a.checked",function(e){e.preventDefault()}),T.length>0&&(c=T.find(".limit"),u=c.filter(".min"),h=c.filter(".max"),p=T.find(".price-sure"),c.keyup(function(){var e,t,n,a=g.trim(g(this).val()),i=q.test(a);i||(e=parseInt(a,10),g(this).val(isNaN(e)?"":e)),t=g.trim(u.val()),n=g.trim(h.val()),""!==t||""!==n?p.removeClass("hide"):p.addClass("hide")}),p.click(function(){var e,t=g.trim(u.val()),n=g.trim(h.val());""!==t&&""!==n&&+t>+n&&(e=n,n=t,t=e),s("price",t+","+n)})),A.on("mouseenter",".attr",function(){var e=g(this),t=e.index();e.hasClass("no-sub")||(e.addClass("hover").siblings().removeClass("hover"), +E.children(".senior-sub:eq("+t+")").removeClass("hide").siblings().addClass("hide"))}).on("mouseleave",".attr",function(){var e=g(this),t=e.index();e.hasClass("no-sub")||(m=t,f=setTimeout(function(){r()},100))}),g(".senior-sub").on("click",".multi-select",function(){g(this).closest(".senior-sub").addClass("multi")}).on("click",".multi-select-ok",function(){var e=g(this),t=e.closest(".senior-sub"),n=[];e.hasClass("dis")||(t.find("span.checked").each(function(){n.push(g(this).data("id"))}),s(t.data("attr"),n.join(",")))}).on("mouseenter",function(){clearTimeout(f)}).on("mouseleave",function(){r()})}),define("js/product/sort-pager",["jquery"],function(e,t,n){var a=e("jquery"),i=a("#count-per-page"),o=i.next("ul"),s=200;a(document).click(function(e){a(e.target).closest(".page-count").length>0||o&&o.slideUp(s)}),i.click(function(){"none"===o.css("display")?o.slideDown(s):o.slideUp(s)})}),define("js/product/latest-walk",["jquery","handlebars","source-map","lazyload"],function(e,t,n){var a=e("jquery"),i=e("handlebars"),o=e("lazyload"),s=a("#latest-walk-count");!function(){var e;0!==s.length&&(e=i.compile(a("#latest-walk-tpl").html()),a.ajax({url:"//www.yohobuy.com/common/recentReview",dataType:"jsonp",data:{limit:s.val()},success:function(t){var n,i,s,r=[];if(200===t.code){if(n=t.data,0===n.length)return void a(".latest-walk").addClass("hide");for(i=0;i<n.length;i++)s=n[i],r.push({href:s.url,img:s.pic_url,name:s.product_name,salePrice:s.price,marketPrice:s.market_price});r.length>0&&(a("#latest-walk-goods").html(e({latestWalk:r})),o(a("#latest-walk-goods .lazy")))}}}))}()}),define("js/product/product",["jquery","lazyload","handlebars","source-map"],function(e,t,n){var a,i=e("jquery"),o=e("lazyload"),s=e("handlebars"),r=e("js/common/product-event"),d=i(".goods-container"),l=d.find(".good-info"),c=d.find(".good-item-wrapper"),u=d.find(".good-info-main"),h=d.find(".good-select-color"),p=i(".product-list-nav");o(i("img.lazy")),t.init=function(e){function t(e,t){var n,a,i,o="",s=e.length,r=4,d=Math.ceil(s/r),l=0;for(n=0;d>n;n++)for(o+="<ul>",a=0;r>a&&(i=n*r+a,i!==s);a++)o+='<li><a target="_blank" href="'+e[n*r+a].url+t+'"><img src="'+e[n*r+a].src+'" data-cover="'+e[n*r+a].coverImg+'" /></a></li>',a===r-1&&(o+="</ul>",l++);return d>l&&(o+="</ul>"),{colorListStr:o,ulNum:d}}function n(){u.html(""),h.html(""),c.css({display:"none"})}var o=i(".shop-entry"),s=i(".shop-entry-area"),p=o.length;p>1?(3===p?o.css({width:"32%"}):p%2&&i(".shop-entry:gt("+(p-4)+")").css({width:"32%"}),i(".shop-entry:nth-child(2n+1)").css({marginLeft:0}),o.last().css({marginLeft:"2%"}),p%2===0?o.find(".name").css({width:"50%"}):p%3===0&&o.find(".name").css({width:"26%"})):o.css({width:"100%"}),s.slideDown(),a=null,l.unbind(),a=r(l,e),a.addHandler("MouseEnter",function(e){var a,o,s,r,l,p,f,m,g=10,v=35,y="",b=e.target.attr("data-from")||"";i.ajax({type:"POST",url:"/product/list/getProductPic",dataType:"jsonp",jsonp:"callback",data:{skn:e.target.attr("data-skn"),skc:e.target.attr("data-skc")}}).then(function(w){var C=w.data,_=t(C.pics,b);n(),y=_.colorListStr,a=_.ulNum,u.append(e.targetDuplicate),h.append(i(y)),p=c.css("paddingLeft"),f=c.css("paddingTop"),m=d.css("paddingTop"),o=10+65*a+e.targetWidth,r=(e.targetX-1)*(e.targetWidth+g)-(parseInt(p)+1),l=(e.targetY-1)*(e.targetHeight+v)+parseInt(m)-(parseInt(f)+1),s=e.offsetR-(65*a+25),0>=s&&(r=r+s-25),c.css({width:o,left:r,top:l,display:"inline-block"}),C.pics[0]&&C.pics[0].src&&u.find(".good-thumb img").attr("src",C.pics[0].src)})}),a.addHandler("MouseLeave",function(){n()}),c.mouseleave(function(){n()})},i(document).on("hover",".good-select-color li",function(){var e=i(this).find("img").attr("data-cover"),t=i(this).closest(".good-item-wrapper").find(".good-detail-img").find("img");t.attr("src",e)}),p.find("h3").click(function(e){var t=i(this).closest(".product-list-nav");t.hasClass("active")?t.find(".sort-child-list").stop(!0,!0).slideUp():t.find(".sort-child-list").stop(!0,!0).slideDown(),t.toggleClass("active")}),function(){var e,t=i("#brand-card"),n=i("#brand-favor");t.length&&i.ajax({type:"POST",url:"/product/index/getNodeContent",data:{node:t.data("node")}}).then(function(e){t.html(e)}),n.length&&(e=i("#pic-link-tpl").html(),i.ajax({type:"POST",url:"/product/index/getAdnav",data:{brandId:n.data("id")}}).then(function(t){t&&i("#brand-ad").html(s.compile(e)({picLink:t}))}))}()}),define("js/common/product-event",["jquery"],function(e,t,n){function a(){this.handlers={}}var i=e("jquery");a.prototype={constructor:a,addHandler:function(e,t){"undefined"==typeof this.handlers[e]&&(this.handlers[e]=[]),this.handlers[e].push(t)},fire:function(e){var t,n;if(e.target||(e.target=this),this.handlers[e.type]instanceof Array)for(t=this.handlers[e.type],n=0;n<t.length;n++)t[n](e)},removeHandler:function(e,t){var n,a;if(this.handlers[e]instanceof Array){for(n=this.handlers[e],a=0;a<n.length&&n[a]!==t;a++);n.splice(a,1)}}},n.exports=function(e,t){function n(e){var n,a=0,u=0,h=t,p=0,f="",m=0,g=0;switch(e.type){case"mouseenter":n=i(this),o=setTimeout(function(){s=!0,f=n.clone(),p=n.index()+1,a=p%h===0?h:p%h,u=Math.ceil(p/h),m=n.offset().left,g=c-(m+d),r.fire({type:"MouseEnter",target:n,targetWidth:d,targetHeight:l,targetX:a,targetY:u,rowWidth:h,activeIndex:p,targetDuplicate:f,offsetL:m,offsetR:g})},150);break;case"mouseleave":s||(o&&clearTimeout(o),r.fire({type:"MouseLeave"})),s=!1}}var o,s,r=new a,d=e.eq(0).width(),l=e.eq(0).height(),c=i(window).width();return e.bind({mouseenter:n,mouseleave:n}),r}}),define("js/product/brand",["jquery"],function(e,t,n){var a=e("jquery"),i=a("#brand-favor"),o=i.data("id");i.on("click",function(){a.ajax({type:"post",url:"/product/index/favoriteBrand",data:{brandId:o}}).then(function(e){200===e.code?i.find("i").toggleClass("coled"):403===e.code&&(location.href="//www.yohobuy.com/signin.html?refer="+encodeURIComponent(location.href))})}),a.ajax({type:"POST",url:"/product/index/isFavoriteBrand",data:{brandId:o}}).then(function(e){200===e.code?i.find("i").addClass("coled"):404===e.code&&i.find("i").removeClass("coled")})}),define("js/product/hotrank",["jquery","handlebars","source-map","lazyload"],function(e,t,n){var a=e("jquery"),i=e("handlebars"),o=e("lazyload");e("js/common/slider"),e("js/common/logo-brand"),o(a("img.lazy")),a(".slide-container").slider(),a(".logo-brand").logoBrand({showNum:10,url:a(".logo-brand").data("url")}),function(e){function t(t,n){var d={};d=n?{sid:t,page:n}:{sid:t},e.ajax({type:"GET",dataType:"json",url:"/product/index/getdata",data:d,success:function(t){var d;200===t.code&&(d={list:t.data},s=i.compile(a),n?(e(".hot-week-list").append(s(d)),r.css({position:"fixed",marginTop:-r.height()/2,top:"50%"})):e(".hot-week-list").html(s(d)),o(e("img.lazy")),c=!1)}})}var n,a,s,r=e(".hot-week").find(".floatlayer"),d=(e(".hot-cate").find("li").eq(0).data("sid"),1),l=0,c=!1;a='{{# list}}<div class="good-info"><div class="item-img"><a class="good-thumb" target="_blank" href="{{url}}"><img class="lazy" data-original="{{thumb}}"></a></div><div class="good-detail-text"><a target="_blank" href="{{url}}">{{name}}</a><p class="price">{{# marketPrice}}<span class="market-price">¥{{.}}</span>{{/ marketPrice}} <span class="sale-price{{#unless marketPrice}}prime-cost{{/unless}}">¥{{salePrice}}</span></p></div></div>{{/ list}}',e(window).on("scroll",function(){var a,i=n+e(".hot-week").outerHeight();n=e(".hot-week").offset().top,e(this).scrollTop()>=n-e(window).height()/2?r.offset().top+r.outerHeight()>=i?r.css({position:"absolute",marginTop:0,top:e(".hot-week").outerHeight()-r.outerHeight()}):r.css({marginTop:-r.height()/2}).stop().animate({opacity:1},200,function(){r.show()}):r.stop().animate({opacity:0},200,function(){r.hide()}),r.offset().top>=e(this).scrollTop()+(e(window).height()-r.outerHeight())/2&&r.css({position:"fixed",marginTop:-r.height()/2,top:"50%"}),e(this).scrollTop()>=n+e(".hot-week").height()-e(window).height()&&(c||(a=e(".hot-cate").find("li.current").data("sid"),d++,c=!0,t(a,d)))}),e(".hot-cate").find("li").each(function(t){var n=e(".hot-cate").width();n>=l&&(l+=e(this).width(),l>=n&&e(".floatlayer").find("li").eq(t).hide().nextAll().hide())}),e(".hot-cate").on("click","li",function(){var a=e(this).index(),i=e(this).data("sid");e(this).hasClass("current")||(e(this).addClass("current").siblings().removeClass("current"),e(".floatlayer").find("li").removeClass("current").eq(a).addClass("current"),e("body,html").stop().animate({scrollTop:n-110},500),t(i),d=1)}),e(".floatlayer").on("click","li",function(){var t=e(this).index();e(this).hasClass("current")||(e(".hot-cate").find("li").eq(t).trigger("click"),e(this).addClass("current").siblings().removeClass("current"),e(".hot-cate").find("li").removeClass("current").eq(t).addClass("current"))}),e(".hot-cate").find("li").eq(0).addClass("current"),e(".floatlayer").find("li").eq(0).addClass("current")}(a)}),define("js/common/slider",["jquery","lazyload"],function(e,t,n){var a=e("jquery"),i=e("lazyload");!function(e){var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.slider.defaults,n),this.bigItem=this.$element.find(".slide-wrapper").find("li"),this.smallItem=null,this.len=this.bigItem.size(),this.index=0,this.timer=null,this.init()};t.prototype={init:function(){if(this.$element){if(this.len<=1)return void i(this.$element.find("img.lazy"));this.options.pagination?this.smallItem=e(this.options.pagination).find("li"):this._createPage(),this.options.orient&&this._createOrient(),this._slideShow(),this._bindEvent(),this._autoplay()}},_createOrient:function(){var e='<div class="slide-switch"><a class="prev" href="javascript:;"><span class="iconfont"></span></a><a class="next" href="javascript:;"><span class="iconfont"></span></a></div>';this.$element.find(".slide-switch").length>0||this.$element.append(e)},_createPage:function(){var t='<div class="slide-pagination"><div class="slide-pagination-inner"><div class="slide-shade"></div><div class="slide-pagination-last">',n=0;if(!(this.len<=1)){for(n=0;n<this.len;n++)t+="<span></span>";t+="</div></div></div>",this.$element.append(e(t)),this.smallItem=this.$element.find(".slide-pagination-inner span")}},_bindEvent:function(){var t=this;this.$element.find(".slide-switch").on("click",".next",function(){t._nextSlide(),clearInterval(t.timer),t.timer=setInterval(function(){t._nextSlide()},t.options.time)}).on("click",".prev",function(){t._prevSlide(),clearInterval(t.timer),t.timer=setInterval(function(){t._nextSlide()},t.options.time)}),this.smallItem.on("mouseenter",function(){t.index=e(this).index(),clearInterval(t.timer),t._slideShow()}).on("mouseleave",function(){t._autoplay()}),this.$element.on("mouseenter",function(){e(this).find(".slide-switch").addClass("show")}).on("mouseleave",function(){e(this).find(".slide-switch").removeClass("show")})},_nextSlide:function(){this.index===this.len-1?this.index=0:this.index++,this._slideShow()},_prevSlide:function(){0===this.index?this.index=this.len-1:this.index--,this._slideShow()},_slideShow:function(){var t=this.bigItem.eq(this.index).find("img.lazy");t.attr("src")!==t.data("original")&&(i(t,{event:"sporty"}),t.trigger("sporty")),this.smallItem.eq(this.index).addClass("focus").siblings().removeClass("focus"),this.bigItem.eq(this.index).show().stop().animate({opacity:1},function(){e(this).find(".slide-tips > p").removeClass("hide")}).siblings().stop().animate({opacity:0},function(){e(this).hide().find(".slide-tips > p").addClass("hide")})},_autoplay:function(){var e=this;clearInterval(this.timer),this.timer=setInterval(function(){e._nextSlide()},this.options.time)}},e.fn.slider=function(n){return this.each(function(){var a=e(this),i=a.data("Slider"),o="object"==typeof n&&n;i||a.data("Slider",i=new t(this,o)),"string"==typeof n&&i[n]()})},e.fn.slider.Constructor=t,e.fn.slider.defaults={time:5e3,orient:!0,pagination:null}}(a)}),define("js/common/logo-brand",["jquery","handlebars","source-map","lazyload"],function(e,t,n){var a=e("jquery"),i=e("handlebars"),o=e("lazyload");!function(e){var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.logoBrand.defaults,n),this.init()};t.prototype={init:function(){this.$element.addClass("logos-"+this.options.showNum),this._sendRequest()},_createHelper:function(){var e=this.options.showNum;i.registerHelper("brandList",function(t,n){var a="<ul>",i=0,o=null,s=0;if(t.length%e!==0)for(s=e-t.length%e,i=0;s>i;i++)t.push({href:"javascript:;",img:""});for(i=0;i<t.length;i++)o=n.fn(t[i]),a=i%e===5||5===i?a+'<li class="logo-brand-switch" data-page="'+Math.floor(i/e)+'"><a class="prev iconfont" href="javascript:;"></a><a class="next iconfont" href="javascript:;"></a></li><li data-page="'+Math.floor(i/e)+'">'+o+"</li>":0!==i&&i%e===0?a+'<li class="brand-more" data-page="'+Math.floor(i/(e+1))+'"><a href="javascript:;" target="_blank">MORE ></a></li><li data-page="'+Math.floor(i/e)+'">'+o+"</li>":a+'<li data-page="'+Math.floor(i/e)+'">'+o+"</li>";return a+'<li class="brand-more" data-page="'+Math.floor(i/(e+1))+'"><a href="javascript:;" target="_blank">MORE ></a></li></ul>'})},_sendRequest:function(){var t=this;e.ajax({type:"GET",url:t.options.url,dataType:"json",success:function(e){var n,a;e&&0!==e.length&&(t._createHelper(),a='{{#brandList logoBrand}}<a href="{{href}}" target="_blank"><img class="lazy" data-original="{{img}}" alt=""></a>{{/brandList}}',n=i.compile(a),t.$element.html(n(e)),t.$element.find(".brand-more a").attr("href",e.moreBrand),o(t.$element.find("img.lazy")),t._bindEvent())}})},_brandShow:function(t,n){var a=this;o(e("li[data-page="+n+"]").find("img.lazy").trigger("appear")),a.$element.find("li[data-page="+t+"]").find("img").fadeOut("normal",function(){a.$element.find("li").hide(),a.$element.find("li[data-page="+n+"]").show().find("img").fadeIn()})},_bindEvent:function(){var t=this;t.$element.on("click",".next",function(){var n=e(this).parent().data("page"),a=0,i=Math.ceil(t.$element.find("li").size()/(t.options.showNum+2))-1;a=n===i?0:n+1,t._brandShow(n,a)}),t.$element.on("click",".prev",function(){var n=e(this).parent().data("page"),a=0,i=Math.ceil(t.$element.find("li").size()/(t.options.showNum+2))-1;a=0===n?i:n-1,t._brandShow(n,a)})}},e.fn.logoBrand=function(n){return this.each(function(){var a=e(this),i=a.data("LogoBrand"),o="object"==typeof n&&n;i||a.data("LogoBrand",i=new t(this,o)),"string"==typeof n&&i[n]()})},e.fn.logoBrand.Constructor=t,e.fn.logoBrand.defaults={showNum:16,url:"/boys/getBrand"}}(a)}),define("js/product/item",["jquery","lazyload","handlebars","source-map","index"],function(e,t,n){function a(e){h.attr("src",e)}function i(){return+y.text()}function o(){y.text("1"),1===I||0===I?(b.addClass("dis"),w.addClass("dis")):(b.removeClass("dis"),w.addClass("dis"))}function s(e){0!==k.length&&(0===I||e&&0===~~e.data("total")?(k.addClass("hide"),_.removeClass("hide")):(k.removeClass("hide"),_.addClass("hide")))}function r(){m.not(".hide").children(".size-warn").removeClass("hide")}var d=e("jquery"),l=e("lazyload"),c=e("handlebars"),u=e("index"),h=d("#img-show"),p=d("#thumbs > .thumb-wrap"),f=d("#sizes"),m=f.children(".size"),g=f.find(".size-warn"),v=f.children(".color-size-tip"),y=d("#num"),b=d("#plus-num"),w=d("#minus-num"),C=d("#add-to-cart"),_=d("#sold-out"),x=d(".lc-container"),k=d(".item-buy"),j=d("#desc-color"),S={},T=d(".main"),q=T.data("id"),I=-1,E=200,A={def:"收藏商品",coled:"已收藏",hover:"取消收藏"},F=e("js/common/dialog").Alert;e("js/product/latest-walk"),e("js/common/share"),function(){var e,t=d("#size-title-json"),n=t.html();""!==n&&(e=u.parse(n),t.remove(),m.children("li").each(function(){var t=d(this),n=t.data("name");t.data("title",e[n])}))}(),S[d(".colors .focus").index()]=!0,d("#brand-favour").click(function(){var e=d(this);d.ajax({type:"POST",url:"/product/index/favoriteBrand",data:{brandId:e.data("id")}}).then(function(t){200===t.code?e.toggleClass("coled"):403===t.code&&(location.href=t.data.url)})}),d(".colors").on("click","li",function(){var e,t=d(this),n=t.index();v.addClass("hide"),g.addClass("hide"),I=-1,t.hasClass("focus")?m.eq(n).children("li").removeClass("focus"):(t.siblings(".focus").removeClass("focus"),t.addClass("focus"),p.not(".hide").addClass("hide"),e=p.eq(n).removeClass("hide").find("img"),"undefined"==typeof S[n]&&(l(e,{event:"sporty"}),e.trigger("sporty"),S[n]=!0),a(e.first().data("shower")),j.text(t.data("color")),m.not(".hide").addClass("hide").children("li").removeClass("focus"),m.eq(n).removeClass("hide")),o(),s(t)}),d("#thumbs").on("mouseenter",".thumb",function(){a(d(this).data("shower"))}),f.on("click","li",function(){var e=d(this);e.hasClass("focus")||(I=+e.data("num"),e.siblings(".focus").removeClass("focus"),e.addClass("focus"),v.html(e.data("title")).removeClass("hide"),g.addClass("hide"),s(),o())}).on("click",".size-ruler",function(){d("body,html").animate({scrollTop:d(".size-info").offset().top},300)}),b.click(function(){var e=i();if(!d(this).hasClass("dis"))return-1===I?void r():void(0!==I&&(e===I-1&&d(this).addClass("dis"),1===e&&w.removeClass("dis"),y.text(e+1>I?I:e+1)))}).on("selectstart",function(){return!1}),w.click(function(){var e=i();d(this).hasClass("dis")||(2===e&&d(this).addClass("dis"),e===I&&b.removeClass("dis"),y.text(0>e-1?0:e-1))}).on("selectstart",function(){return!1}),d(".get-lc:not(.dis)").hover(function(){x.removeClass("hide")},function(){x.addClass("hide")}),C.click(function(){return-1===I?void r():void d.ajax({type:"POST",url:"/cart/index/add",data:{productSku:d(".size:not(.hide) li.focus").data("sku"),buyNumber:i()}}).then(function(e){var t=e.code;200===t&&(d("#type-chose").slideUp(E),d("#balance").slideDown(E),d("#cart-num").text(e.data.goods_count))})}),d("#collect-product").click(function(){var e,t=d(this);t.hasClass("coled")&&(e=!0),d.ajax({type:"POST",url:"/product/item/togglecollect",data:{productId:q,type:e?"cancel":"add"}}).then(function(n){var a=n.code;200===a?(t.toggleClass("coled"),e?t.find("em").text(A.def):t.find("em").text(A.coled)):403===a&&(location.href=n.data.url)})}).hover(function(){var e=d(this);e.hasClass("coled")&&e.find("em").text(A.hover)},function(){var e=d(this);e.hasClass("coled")&&e.find("em").text(A.coled)}),d("#keep-shopping").click(function(){d("#type-chose").slideDown(E),d("#balance").slideUp(E)}),d("#buy-now").click(function(){var e,t,n;if(-1===I)return void r();if(!d(this).hasClass("dis")){if(t=d(this).data("base"),!t)return n=new F("打开APP可抢购该商品哦~~"),void n.show();e=m.find(".focus").data("sku"),e&&t&&(location.href=t+"?product_sku="+e)}}),d(".buy-btn").mouseover(function(){d(this).hasClass("dis")||d(this).addClass("hover")}).mouseleave(function(){d(this).removeClass("hover")}),d(".description-material").on("click",".title",function(){var e=d(this),t=e.index(),n=d(".description-content"),a=d(".material-content");e.hasClass("cur")||(e.addClass("cur"),e.siblings(".cur").removeClass("cur"),0===t?(n.slideDown(E),a.slideUp(E)):(n.slideUp(E),a.slideDown(E)))}),d(".after-service-switch").click(function(){var e=d(this),t=e.next(".after-service-content"),n={def:"",spread:""};"none"===t.css("display")?(t.slideDown(E),e.find(".triangle").html(n.spread)):(t.slideUp(E),e.find(".triangle").html(n.def))}),d.ajax({type:"GET",url:"/product/item/hotarea",data:{productId:q}}).then(function(e){d("#details-html").prepend(e),d(".hot-point-wrap > img").load(function(){d(this).parent(".hot-point-wrap").width(d(this).width())}),d(".hot-point").hover(function(){d(this).addClass("hover")},function(){d(this).removeClass("hover")})}),l(d("#details-html img")),function(){var e,t=!0;for(e=0;e<m.length;e++)if(1!==m.eq(e).find("li").length){t=!1;break}t&&m.eq(d(".colors .focus").index()).find("li").click()}(),function(){function e(){n||(n=!0,d.ajax({type:"GET",url:"/product/item/comments",data:{productId:q,page:i}}).then(function(e){var t;if(200===e.code){if(t=e.data,0===t.length)return void l.next(".more-wrap").addClass("hide");h.text(t[0].total),l.append(s({comments:t})),i++}}).always(function(){n=!1}))}function t(){a||(a=!0,d.ajax({type:"GET",url:"/product/item/consults",data:{productId:q,page:o}}).then(function(e){var t;if(200===e.code){if(t=e.data,0===t.length)return void u.next(".more-wrap").addClass("hide");p.text(t[0].total),u.append(r({consults:t})),o++}}).always(function(){a=!1}))}var n,a,i=1,o=1,s=c.compile(d("#comments-tpl").html()),r=c.compile(d("#consults-tpl").html()),l=d("#comments-ul"),u=d("#consults-ul"),h=d(".comment-num"),p=d(".consult-num");d(".consult-comment").on("click",".title",function(){var e=d(this),t=e.index(),n=d(".comments"),a=d(".consults");e.hasClass("cur")||(e.addClass("cur"),e.siblings(".cur").removeClass("cur"),0===t?(a.slideDown(E),n.slideUp(E)):(a.slideUp(E),n.slideDown(E)))}).on("click",".load-more",function(){var n=d(this);n.hasClass("load-more-comments")?e():t()}),d("#consults-btn").click(function(){d(".new-consult").removeClass("hide"),d(".consult-success").addClass("hide")}),d("#submit-consult").click(function(){var e=d(this),t=e.closest(".new-consult"),n=t.find(".my-consult"),a=d.trim(n.val()),i=t.find(".consult-warn"),o=!0;""===a?(n.addClass("error"),i.removeClass("hide"),o=!1):(n.removeClass("error"),i.addClass("hide")),o!==!1&&d.ajax({type:"POST",url:"/product/item/addconsult",data:{productId:q,content:a}}).then(function(e){var a=e.code;200===a?(t.addClass("hide"),t.siblings(".consult-success").removeClass("hide"),n.val("")):403===a&&(location.href=e.data.url)})}),e(),t()}()}),define("js/common/dialog",["jquery","handlebars","source-map"],function(e,t,n){function a(){return 0===l(".body-mask").length&&l("body").append('<div class="body-mask hide"></div>'),l(".body-mask").css({height:l(document).height(),width:l(document).width()})}function i(e){return l("body").append(p(e)),l(".yoho-dialog")}function o(e){var t=l(".yoho-dialog"),n='<p class="sub-content">'+e+"</p>";t&&t.length>0&&t.find(".content").after(n)}function s(e){function t(e){r.$el.find("#dialog-"+s.btns[e].id).on("click",function(){s.btns[e].cb&&s.btns[e].cb()})}var n,s=l.extend({},u,e),r=this;if(s.inherit)return this;if(s.mask&&(r.$mask=a()),r.$el=i(s),s.subContent&&o(s.subContent),s.subContents)for(n=s.subContents.length-1;n>=0;n--)o(s.subContents[n]);if(r.$el.find(".close").click(function(){r.close(),e.refreshOnClose&&window.location.reload()}),r.$el.find(".btn-close").click(function(){r.close()}),s.btns)for(n=0;n<s.btns.length;n++)t(n)}function r(e){var t=this,n={content:e,className:"alert-dialog",btns:[{id:"alert-sure",btnClass:["alert-sure"],name:"确定",cb:function(){t.close()}}]};s.call(this,n)}function d(e){var t=this,n={content:e.content,className:"confirm-dialog",btns:[{id:"confirm-sure",btnClass:["confirm-sure"],name:"确定",cb:e.cb},{id:"confirm-cancel",btnClass:["confirm-cancel"],name:"取消",cb:function(){t.close()}}]};s.call(this,n)}var l=e("jquery"),c=e("handlebars"),u={mask:!0,closeIcon:!0,refreshOnClose:!1},h='<div class="yoho-dialog {{className}} hide">{{#if closeIcon}}<span class="close"><i class="iconfont"></i></span>{{/if}}<div class="content">{{{content}}}</div><div class="btns">{{# btns}}<span {{#if id}}id="dialog-{{id}}"{{/if}} class="btn{{#each btnClass}} {{.}}{{/each}}">{{name}}</span>{{/ btns}}</div></div>',p=c.compile(h);s.prototype.close=function(){this.$mask&&this.$mask.addClass("hide"),this.$el.remove()},s.prototype.show=function(){this.$mask&&this.$mask.removeClass("hide"),this.$el.removeClass("hide").css({"margin-top":-this.$el.height()/2,"margin-left":-this.$el.width()/2})},t.Dialog=s,r.prototype=new s({inherit:!0}),r.prototype.constructor=r,t.Alert=r,d.prototype=new s({inherit:!0}),d.prototype.constructor=d,t.Confirm=d}),define("js/common/share",["jquery"],function(e,t,n){function a(e){var t,n="",a={title:"",url:window.location.href,weixinUrl:"",image:"",desc:"",channel:""},i=["weibo","tweibo","qzone","renren","qq","douban","weixin"],s="<em><i></i></em>";if(a=o.extend(a,e),-1===o.inArray(a.channel,i))return alert("不存在的分享平台!"),!1;switch(a.channel){case"weibo":n="http://service.weibo.com/share/share.php?url="+a.url+"&title="+a.title+"&appkey=3739328910&searchPic=true&pic="+a.image;break;case"tweibo":n="http://share.v.t.qq.com/index.php?c=share&a=index&url="+a.url+"&title="+a.title+"&appkey=c0af9c29e0900813028c2ccb42021792&pic="+a.image;break;case"qzone":n="http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url="+a.url+"&title="+a.title+"&desc=&summary="+a.desc+"&site=YOHO!BUY 有货&pics="+a.image;break;case"renren":n="http://widget.renren.com/dialog/share?resourceUrl="+a.url+"&srcUrl="+a.url+"&desc="+a.desc+"&title="+a.title+"&description="+a.desc+"&pic="+a.image;break;case"qq":n="http://connect.qq.com/widget/shareqq/index.html?url="+a.url+"&desc="+a.desc+"&title="+a.title.replace("%","")+"&desc=&summary="+a.desc+"&site=YOHO!BUY 有货&pics="+a.image;break;case"weixin":n="http://s.jiathis.com/qrcode.php?url="+a.weixinUrl+"&desc="+a.desc+"&title="+a.title+"&description="+a.desc+"&pic="+a.image;break;case"douban":n="//www.douban.com/share/service?href="+a.url+"&text="+a.desc+"&image="+a.image+"&title="+a.title+"&comment="}if("weixin"===a.channel){if(!a.self)return;t=a.self.closest(".share-to").find(".weixin-share-box"),t.length>0&&(s+='<div class="con"><h2>分享到微信朋友圈</h2><p class="pic"><img src="'+n+'" /></p><p class="w">打开微信,点击底部得“发现”,使用<br/>“扫一扫“即可将网页分享到我的朋友圈。</p><a href="javascript:void(0)" class="close">x</a></div>',t.find("div").length>0?t.show():t.html(s).show(),t.find(".close").click(function(){o(this).closest(".weixin-share-box").hide()}))}else window.open(encodeURI(n))}function i(e,t){var n=document.title.replace(/(^\s*)|(\s*$)/g,""),i=o("#share-desc").val(),s=o("#share-img").val(),r=o("#weixin-url").val();a("weibo"===e||"tqq"===e?{channel:e,title:n,image:s}:{channel:e,title:n,desc:i,image:s,self:t,weixinUrl:r})}var o=e("jquery");o(".share-wrapper").on("click","i",function(){var e=o(this),t=e.data("type"),n=o(".weixin-share-box");"weixin"===t?i(t,e):(n.hide(),i(t))})}),define("js/product/shop-index",["jquery","lazyload","handlebars","source-map","jquery-pjax"],function(e,t,n){function a(){var e=d.find(".shop-collect-ico"),t=d.find(".shop-collect-text"),n=e.hasClass("on"),a=window.cookie("needColloect");i.ajax({type:"post",url:"/shoplist/setFavorite",data:{isFavorite:n?0:1,needColloect:a,shopId:d.data("id")},success:function(i){200===i.code?(n?(e.removeClass("on"),t.html("收藏")):(e.addClass("on"),t.html("已收藏")),a&&(e.addClass("on"),t.html("已收藏"))):401===i.code&&(window.setCookie("needColloect","1",{path:"/",domain:".yohobuy.com",expires:90}),location.href=i.url)}})}var i=e("jquery"),o=e("lazyload"),s=e("js/product/product"),r=i(".shop-intro"),d=i(".shop-collect"),l=i(".slider-left"),c=i(".all-goods"),u=c.find(".fixed-area"),h=u.offset()?u.offset().top:0;e("jquery-pjax"),e("js/common/slider"),e("js/product/list"),s.init(4),o(i("img.lazy")),l.length&&l.slider(),r.on("click",function(){i(".pop-shop-intro").show(),i(".mask").show()}),i(".close-btn, .mask").on("click",function(){i(".pop-shop-intro").hide(),i(".mask").hide()}),d.on("click",function(){a()}),1*window.cookie("needColloect")===1&&window.getUid()&&(a(),window.setCookie("needColloect","",{path:"/",domain:".yohobuy.com",expires:1})),c.pjax("a.pjax",".goods-wrap",{timeout:5e3,scrollTo:!1}).on("pjax:end",function(){s.init(4),o(i("img.lazy")),u=c.find(".fixed-area"),i("html, body").animate({scrollTop:c.offset().top-30})}).on("click",".menu-list li",function(){var e=i(this);e.siblings().removeClass("on"),e.addClass("on")}),i(window).on("scroll",function(){var e=i(this).scrollTop();e>h?u.css({position:"fixed",top:0}):u.css({position:"static",top:0})})}),define("js/index/index",["jquery","lazyload","handlebars","source-map"],function(e,t,n){var a=e("jquery"),i=e("lazyload"),o=a(".home-page").data("page"),s=a(".logo-brand").data("url");e("js/common/slider"),e("js/common/slider2"),e("js/common/logo-brand"),e("js/common/accordion"),a(document).on("mouseenter",".imgopacity a img",function(){a(this).css("opacity",.8)}),a(document).on("mouseout",".imgopacity a img",function(){a(this).css("opacity",1)}),a.inArray(o,["boys","girls","kids","lifestyle"])>-1&&(e("js/common/new-arrivls")({type:o,url:"/common/getNewArrival",count:"boys"===o||"lifestyle"===o?5:4,rows:[5,3]}),window.setCookie("_Channel",o,{domain:".yohobuy.com",path:"/",expires:365})),i(a("img.lazy")),"boys"===o?a(".slide-container").slider({pagination:".thumb-pagination"}):(a(".center-col").slider(),a(".slide-container").slider()),"boys"===o?(a(".logo-brand").logoBrand({url:s}),a(".img-brand").slider2()):(a(".logo-brand").logoBrand({showNum:10,url:s}),a(".img-slider-wrapper").slider2())}),define("js/common/slider2",["jquery"],function(e,t,n){var a=e("jquery");!function(e){e.fn.slider2=function(t){function n(t,n,i){i===!0?(e(".next").trigger("click"),t===n-3?a(--t,n,!1):a(++t,n,!0)):(e(".prev").trigger("click"),0===t?a(++t,n,!0):a(--t,n,!1))}function a(t,a,i){window.setTimeout(n,e.fn.slider2.defaults.delaytime,t,a,i)}function i(t,n,a){var i=-(t*n);e(".img-list").animate({"margin-left":i+"px"},"slow",a)}return e.fn.slider2.defaults={index:0,shownum:3,autoplay:!1,delaytime:3e3},this.each(function(){var n=e.extend({},e.fn.slider2.defaults,t),o=parseInt(e(".img-item").css("margin-right")),s=e(".img-item"),r=[],d=s.outerWidth()+o,l=s.length,c=0;if(3>=l)return void e(this).find(".img-brand-switch").hide();for(c=0;c<s.length;c++)r.push(s[c]);l=r.length,e(this).find(".img-list").css({width:d*l}),e(this).find(".next").on("click",function(t){var n=0,a=null;t.preventDefault(),i(3,d,function(){for(n=0;3>n;n++)a=r.shift(),e(".img-item").parent().append(a.outerHTML),r.push(a);e(".img-item").first().remove(),e(".img-item").first().remove(),e(".img-item").first().remove(),e(".img-list").css({"margin-left":"0"})})}),e(this).find(".prev").on("click",function(t){var n=0,a=null,o="";for(t.preventDefault(),n=0;3>n;n++)a=r.pop(),e(".img-item").parent().prepend(a.outerHTML),r.unshift(a);o=3*d,e(".img-item").last().remove(),e(".img-item").last().remove(),e(".img-item").last().remove(),e(".img-list").css({"margin-left":-o+"px"}),i(0,d)}),n.autoplay===!0&&a(n.index,l,!0)})}}(a)}),define("js/common/accordion",["jquery"],function(e,t,n){function a(e){d.each(function(t){s(this).css("zIndex",t),e>=t?s(this).stop().animate({left:t*c},400):s(this).stop().animate({left:e*c+l+c*(t-e-1)},400)})}var i,o=e("js/common/yohoui/YH.slide"),s=e("jquery"),r=s(".slide-accordion"),d=r.find("li"),l=d.width(),c=1150===parseInt(s(".home-page").width())?125:107;a(0),i=new o({length:5,loop:!1,auto:!1,timeout:2,index:0}),i.on("change",function(e){a(e.to)}),d.mouseover(function(){i.go(s(this).index())}),i.init()}),define("js/common/yohoui/YH.slide",[],function(e,t,n){var a=e("js/common/yohoui/YH.base"),i=function(e){this.__lastTime=null,this.__isStop=!1,e=a.extend(this.defaults,e),i.superclass.constructor.call(this,e)};a.inherit(i,a.assembly),i.prototype.oninit=function(){var e=this,t=e.options;return t.auto&&e.play(),e.go(t.index),this},i.prototype.go=function(e,t){var n,a,i,o,s,r,d,l,c=this,u=c.options;c.__lastTime&&(clearTimeout(c.__lastTime),c.__lastTime=null),t="undefined"==typeof t?u.index:t,n=e===t?0:e>t?1:-1,a=u.loop,o=u.length-1,s=e,e=a?e>o?e-o-1:0>e?e+o+1:e:e>o?o:0>e?0:e,i=u.index=e,r={from:t,to:e,originalto:s,direction:n};for(d in c.registerEvent)if(c.registerEvent[d].length>0)for(l in c.registerEvent[d])c.registerEvent[d].hasOwnProperty(l)&&c.registerEvent[d][l](r);i!==o||e?!c.__isStop&&u.auto&&c.play():c.__lastTime&&clearTimeout(c.__lastTime)},i.prototype.play=function(){var e=this,t=e.options;return e.__lastTime=setTimeout(function(){e.next()},1e3*t.timeout),this},i.prototype.next=function(){var e=this,t=e.options,n=t.index,a=n+t.step;e.go(a,n)},i.prototype.prev=function(){var e=this,t=e.options,n=t.index,a=n-t.step;e.go(a,n)},i.prototype.pause=function(){var e=this;e.__lastTime&&clearTimeout(e.__lastTime),e.__isStop=!0},i.prototype.resume=function(){var e=this;e.__isStop=!1,e.play()},i.prototype.defaults={index:0,timeout:5,step:1,per:1,auto:!1,loop:!1},n.exports=i}),define("js/common/yohoui/YH.base",[],function(e,t,n){var a,i={ +"[object Array]":"array","[object Boolean]":"boolean","[object Date]":"date","[object Function]":"function","[object Number]":"number","[object Object]":"object","[object RegExp]":"regexp","[object String]":"string"},o={__Index:0,list:[],get:function(e){return void 0===e?this.list:this.list[e]},fn:function(){},inherit:function(e,t){var n=o.fn;n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e,e.superclass=t.prototype,e.prototype.constructor===Object.prototype.constructor&&(e.prototype.constructor=t)},extend:function(e,t){var n;for(n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},copy:function(e,t,n){var a,i,s;if("object"!=typeof t)return t;if(a=t.valueOf(),t!==a)return new t.constructor(a);if(t instanceof t.constructor&&t.constructor!==Object){i=e?new e:o.clone(t.constructor.prototype);for(s in t)(e||t.hasOwnProperty(s))&&(i[s]=t[s])}else{i={};for(s in t)i.hasOwnProperty(s)&&(i[s]=t[s])}if(n)for(s in n)i.hasOwnProperty(s)&&(i[s]=n[s]);return i},clone:function(e){return o.__cloneFunc.prototype=e,new o.__cloneFunc},__cloneFunc:function(){},delegate:function(e,t){var n;return t=t||window,arguments.length>2?(n=Array.prototype.slice.call(arguments,2),function(){return e.apply(t,n)}):function(){return e.call(t)}},dom:function(e,t){var n,a,i=e,o={wrap:i},s=i[0].getElementsByTagName("*"),r=s.length;for(a=0;r>a;a++)n=s[a].className,n.indexOf(t)>-1&&(n=n.split(t)[1]),n&&(o[n]=i.find(s[a]));return o},template:function(){var e,t,n,a,i=arguments;if(i.length>0&&o.isString(i[0]))if(e=i[0],2===i.length&&o.isObject(i[1]))for(t in i[1])void 0!==i[1][t]&&(n=new RegExp("({"+t+"})","g"),e=e.replace(n,i[1][t]));else for(a=1;a<i.length;a++)void 0!==i[a]&&(n=new RegExp("({["+(a-1)+"]})","g"),e=e.replace(n,i[a]));return e},__type:function(e){return null==e?String(e):i[Object.prototype.toString.call(e)]||"object"},isObject:function(e){return this.isFunction(e)||!(!e||"object"!=typeof e)},isFunction:function(e){return"function"===this.__type(e)},isArray:Array.isArray||function(e){return"array"===this.__type(e)},isNum:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},isString:function(e){return"string"===this.__type(e)},each:function(e,t,n){var a,i;if(o.isArray(e))for(a=0,i=e.length;i>a&&t.call(e[a],a,e[a],n)!==!1;a++);else for(a in e)if(t.call(e[a],a,e[a],n)===!1)break},funManager:{__loadList:{},__loadFun:function(e,t,n){e.methord&&o.isFunction(e.methord())&&(n=n||window,e.methord()(e,function(){t()},n))},load:function(e,t,n,a){a=a||0,e[a]&&o.funManager.__loadFun(e[a],function(){o.funManager.load(e,t,n,a+1)},n),t(a,n)},get:function(e){return this.__loadList[e]}},log:function(e){var t=window.console||{log:function(){}};t.log(e)},Event:{mousewheel:function(e){var t=e.originalEvent,n=t.detail?-1*t.detail:t.wheelDelta/40,a=0>n?-1:1;return{direction:a,unit:n}},__:function(e,t,n,a){var i;for(i in e)if(window[e[i].validator]){t[e[i].validator](e[i].prefix+n,a,!1);break}},add:function(e,t,n){var a=[{validator:"addEventListener",prefix:""},{validator:"attachEvent",prefix:"on"}];this.__(a,e,t,n)},remove:function(e,t,n){var a=[{validator:"removeEventListener",prefix:""},{validator:"detachEvent",prefix:"on"}];this.__(a,e,t,n)}},getUid:function(e){return o.template("me-{0}{1}-{2}",e,(new Date).getTime(),o.__Index++)},Browser:{isTouch:function(){var e=window.navigator&&window.navigator.msPointerEnabled&&window.MSGesture;return!!("ontouchstart"in window||e||window.DocumentTouch)},Prefix:function(){var e,t=["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"],n=document.createElement("div");for(e in t)if(void 0!==n.style[t[e]])return o.template("-{0}-",t[e].replace("Perspective","").toLowerCase())},parseURL:function(e){var t,n,a,i,o,s=document.createElement("a");return s.href=e,{source:e,protocol:s.protocol.replace(":",""),host:s.hostname,port:s.port,query:s.search,params:function(){for(t={},n=s.search.replace(/^\?/,"").split("&"),a=n.length,i=0,o;a>i;i++)n[i]&&(o=n[i].split("="),t[o[0]]=o[1]);return t}(),file:(s.pathname.match(/\/([^\/?#]+)$/i)||[null,""])[1],hash:s.hash.replace("#",""),path:s.pathname.replace(/^([^\/])/,"/$1"),relative:(s.href.match(/tps?:\/\/[^\/]+(.+)/)||[null,""])[1],segments:s.pathname.replace(/^\//,"").split("/")}}},Array:{indexOf:function(e,t){var n;for(n=0;n<e.length;n++)if(this[n]===t)return n;return-1},remove:function(e,t){var n=this.indexOf(e,t);return n>-1&&e.splice(n,1),e}}};a=function(e){this.initialized=!1,this.registerEvent={before:[],change:[],after:[]},this.options=e,this.init(e)},a.output=function(){o.log(o.list)},a.prototype.oninit=o.fn,a.prototype.init=function(e){this.initialized=!0,this.__Uid=o.getUid("me"),this.oninit(e),o.list[this.__Uid]=this},a.prototype.destory=function(){this.initialized=!1,delete o.list[this.__Uid]},a.prototype.getUid=function(){return this.__Uid},a.prototype.getOptions=function(){return this.options},a.prototype.config=function(){if(!(arguments.length>0))return this.options;if("string"==typeof arguments[0]){if(!(arguments.length>1))return this.options[name];this.options[arguments[0]]=arguments[1]}},a.prototype.on=function(e,t){var n=this,a=n.registerEvent[e];return a&&a.push(t),a},a.prototype.off=function(e,t){var n=this,a=n.registerEvent[e],i=[];o.each(a,function(e,n){n===t&&i.push(e)}),o.each(i.reverse(),function(e,t){a.splice(t,1)})},o.assembly=a,n.exports=o}),define("js/common/new-arrivls",["jquery","lazyload","handlebars","source-map"],function(e,t,n){function a(e){var t={index:0,isload:!0,isrun:!0,offset:{height:null,width:null}};return this.registerEvent={before:[],change:[],after:[]},this.options=i.extend(!0,{},t,e),this}var i=e("jquery"),o=e("lazyload"),s=e("handlebars");a.prototype.on=function(e,t){var n=this,a=n.registerEvent[e];return a&&a.push(t),a},a.prototype.exect=function(e,t){var n,a=this;if(a.registerEvent[e]&&a.registerEvent[e].length>0)for(n in a.registerEvent[e])a.registerEvent[e].hasOwnProperty(n)&&a.registerEvent[e][n](t)},a.prototype.init=function(){function e(){n.isrun&&n.isload&&t.__directionCalculation()&&(n.isload=!1,n.index++,t.exect("after",n)),t.exect("change",n)}var t=this,n=this.options;t.exect("before",n),i(window).scroll(e)},a.prototype.emit=function(){var e=this.options;e.isload=!0},a.prototype.stop=function(){var e=this.options;e.isrun=!1,e.isload=!1},a.prototype.__directionCalculation=function(){var e=this.options;return!!(e.offset.height&&e.offset.height()>0&&i(window).scrollTop()+i(window).height()>=e.offset.height())},n.exports=function(e){var t,n=i("#newarrivals .goods-container"),r=i(".loading a"),d=new a({index:1,isload:!1,offset:{height:function(){return parseFloat(n.offset().top)+parseFloat(n.height())-200}}}),l=e.url,c=e.count,u=e.rows;e.pageIndex=0,delete e.url,delete e.count,delete e.rows,t=function(e,t,a){var l={type:"POST",url:e,success:function(e){var i,l,c,u=e.code;200===u?(l=e.goods.length%a,c=e.goods.length-l-1,e.goods.splice(c,l),i=s.compile(d.tpl),n.append(i(e.goods)),t.pageIndex=t.pageIndex+e.goods.length,o(n.find("img.lazy")),d.emit()):(d.stop(),r.html("查看更多"))},error:function(){d.stop(),r.html("网络断开连接了~")}};l.data=t,i.ajax(l)},d.on("after",function(n){e.pageCount=c*u[1],t(l,e)}),d.on("before",function(n){d.tpl="{{#each this}}",d.tpl+='<div class="good-info imgopacity" data-skn="{{skn}}">',d.tpl+=' <div class="tag-container clearfix">',d.tpl+=" {{# tags}}",d.tpl+=" {{# isNew}}",d.tpl+=' <span class="good-tag new-tag">NEW</span>',d.tpl+=" {{/ isNew}}",d.tpl+=" {{# isReNew}}",d.tpl+=' <span class="good-tag renew-tag">再到着</span>',d.tpl+=" {{/ isReNew}}",d.tpl+=" {{# isSale}}",d.tpl+=' <span class="good-tag sale-tag">SALE</span>',d.tpl+=" {{/ isSale}}",d.tpl+=" {{# isNewFestival}}",d.tpl+=' <span class="good-tag new-festival-tag">新品节</span>',d.tpl+=" {{/ isNewFestival}}",d.tpl+=" {{# isLimit}}",d.tpl+=' <span class="good-tag limit-tag">限量商品</span>',d.tpl+=" {{/ isLimit}}",d.tpl+=" {{# isYearEndPromotion}}",d.tpl+=' <span class="good-tag yep-tag">年终大促</span>',d.tpl+=" {{/ isYearEndPromotion}}",d.tpl+=" {{# isYearMidPromotion}}",d.tpl+=' <span class="good-tag ymp-tag">年中热促</span>',d.tpl+=" {{/ isYearMidPromotion}}",d.tpl+=" {{/ tags}}",d.tpl+=" </div>",d.tpl+=' <div class="good-detail-img">',d.tpl+=' <a class="good-thumb" href="{{url}}" target= "_blank">',d.tpl+=' <img class="lazy" data-original="{{thumb}}">',d.tpl+=" </a>",d.tpl+=" {{# isFew}}",d.tpl+=' <p class="few-tag">即将售罄</p>',d.tpl+=" {{/ isFew}}",d.tpl+=" {{#if showColBtn}}",d.tpl+=' <span class="col-btn iconfont{{#if coled}} coled{{/if}}"></span>',d.tpl+=" {{/if}}",d.tpl+=" </div>",d.tpl+=' <div class="good-detail-text">',d.tpl+=' <a href="{{url}}" target= "_blank">{{name}}</a>',d.tpl+=' <p class="price">',d.tpl+=' <span class="sale-price{{#unless marketPrice}}prime-cost{{/unless}}">',d.tpl+=" ¥{{salePrice}}",d.tpl+=" </span>",d.tpl+=" {{# marketPrice}}",d.tpl+=' <span class="market-price">¥{{.}}</span>',d.tpl+=" {{/ marketPrice}}",d.tpl+=" </p>",d.tpl+=" </div>",d.tpl+="</div>",d.tpl+="{{/each}}",e.pageCount=c*u[0],t(l,e,e.count)}),d.init()}}),define("js/brand/index",["jquery","lazyload","handlebars","source-map","dot"],function(e,t,n){var a=e("jquery"),i=e("lazyload");e("js/common/slider"),e("js/brand/brands"),i(a("img.lazy")),a(".slide-container").slider({orient:!0})}),define("js/brand/brands",["jquery","handlebars","source-map","dot"],function(e,t,n){function a(e){var t=new RegExp("(^|&)"+e+"=([^&]*)(&|$)"),n=window.location.search.substr(1).match(t);return null!=n?window.unescape(n[2]):null}function i(e,t,n){var a,i=e,o={width:i.width(),left:i.offset().left,right:parseFloat(l(window).width())-parseFloat(i.offset().left)-parseFloat(i.width())},s=i.parent("li");p.find(".brands-dialog").remove(),a=c.compile(n),s.append(a(t)),u(s.find(".right")),o.right-350<0&&s.find(".brands-layer").addClass("brands-layer-right").css("left",-330-o.width)}function o(){v.unbind("mouseenter").unbind("mouseleave").hover(function(){var e=l(this),t=e.attr("data-key"),n={url:"/brands/brandinfo",type:"get",data:{brandId:t},success:function(t){200===t.code&&t.brand&&(j.hasOwnProperty(t.brand.key)||(j[t.brand.key]=t.brand),i(e,j[t.brand.key],S))}};clearTimeout(r),r=setTimeout(function(){j.hasOwnProperty(t)?i(e,j[t],S):l.ajax(n)},200)},function(){clearTimeout(r),p.find(".brands-dialog").remove()})}var s,r,d,l=e("jquery"),c=e("handlebars"),u=e("dot"),h=l(".brands-tabs"),p=l(".brands-list"),f=l(".brands-category"),m=l(".news-txt ul"),g=p.find("dl.clearfix"),v=p.find("li>a"),y=f.find("a"),b=h.find("li>a"),w=h.find(".hoverarr"),C=y.height(),_=y.offset()?y.offset().top:0,x=m.height(),k=m.offset()?m.offset().top:0,j={},S='<div class="brands-dialog">';S+=' <div class="brands-layer">',S+=' <div class="layer-content">',S+=' <div class="title">{{title}}</div>',S+=' <div class="clearfix desc">',S+=' <img src="{{icon}}">',S+=' <p class="right">{{content}}</p>',S+=" </div> ",S+=' <div class="featured">',S+=" <p>{{subtitle}}</p> ",S+=' <div class="clearfix"> ',S+=" {{#each imgs}}",S+=' <img src="{{src}}">',S+=" {{/each}}",S+=" </div>",S+=" </div>",S+=" </div>",S+=" </div>",S+="</div>",u(l(".brand-desc")),l.easing.easeOutQuint=function(e,t,n,a,i){return a*((t=t/i-1)*t*t*t*t+1)+n},m.length&&m.find("li").each(function(){var e=l(this),t=e.offset().top-k+e.height();t>x&&e.hide()}),b.eq(0).parent("li").find(".brands-content").css("z-index","1"),d=a("id")?a("id"):0,s=b.eq(d),s.find(".g-mask").addClass("g-mask-on"),d&&s.length&&w.css({left:parseFloat(s.offset().left)-parseFloat(h.offset().left)}),b.hover(function(){var e=l(this);clearTimeout(r),r=setTimeout(function(){var t=parseFloat(e.offset().left)-parseFloat(h.offset().left);w.animate({left:t},200,"easeOutQuint")},50),h.find(".brands-content").removeAttr("style"),e.parent("li").find(".brands-content").css("z-index","1")},function(){clearTimeout(r)}),l(window).scroll(function(){l(this).scrollTop()>=_?f.addClass("category-fix"):f.removeClass("category-fix")}),y.click(function(){var e=l(this).attr("href").split("#")[1],t=p.find("[name="+e+"]").offset().top-C;return f.hasClass("category-fix")||(t-=C),l("html,body").animate({scrollTop:t},200),!1}),g.length<26&&l.ajax({url:"/brands/brandList",type:"POST",data:{start:g.length?g.length+1:1},success:function(e){e&&(p.append(e),v=p.find("li>a"),o())}}),o()}),define("js/passport/entry",["jquery","jquery.placeholder"],function(e,t,n){e("js/passport/reg"),e("js/passport/back"),e("js/passport/login"),e("js/passport/reset"),e("js/passport/vertification"),e("js/passport/thirdlogin"),e("js/passport/third-pwd"),e("js/passport/relate")}),define("js/passport/reg",["jquery","jquery.placeholder"],function(e,t,n){function a(){var e=new Date,t=m(".captcha-img"),n=t.attr("src").split("?")[0];t.attr("src",n+"?t="+e.getTime())}function i(e,t){var n,i;"reg"===e?(n="/passport/register/checkmobile",i={mobile:I.val(),area:L.text().split("+")[1]}):"third"===e&&(n="/passport/autouserinfo/bindCheck",i={mobile:I.val(),area:L.text().split("+")[1],openId:m("#open-id").val(),sourceType:m("#source-type").val()}),q[0].message="err",q[0].status=!1,m.ajax({url:n,type:"POST",data:i}).then(function(e){if(e){switch(e.code){case 200:I.val()!==B&&""!==B&&(a(),S.addClass("disable").attr("disabled","disabled"),q[1].message="图形验证码错误",q[1].status=!1),B=I.val(),q[0].message="",q[0].status=!0;break;case 400:a(),q[0].message=e.message,q[0].status=!1}t()}})}function o(e,t){var n;"reg"===e?n="/passport/register/piccaptcha":"third"===e&&(n="/passport/autouserinfo/checkPicCode"),m.ajax({type:"POST",url:n,data:{verifyCode:U.val()}}).then(function(e){if(e){switch(e.code){case 200:q[1].message="",q[1].status=!0;break;case 400:a(),q[1].message="图形验证码错误",q[1].status=!1}t()}})}function s(e,t){var n;"reg"===e?n="/passport/register/msgcaptcha":"third"===e&&(n="/passport/autouserinfo/checkBindMsg"),m.ajax({type:"POST",url:n,data:{code:E.val(),mobile:I.val(),area:L.text().split("+")[1]}}).then(function(e){if(e){switch(e.code){case 200:q[2].message="",q[2].status=!0;break;case 400:q[2].message="短信验证码错误",q[2].status=!1}t()}})}function r(e,t,n){var a,r=m.trim(t.val());t.hasClass("phone-num")?(a=L.text(),""===r?(q[0].message="请输入手机号码",q[0].status=!1,n()):!/^[0-9]+$/.test(r)||"+86"===a&&!g.phoneRegx[a].test(r)?(q[0].message="手机号码格式不正确,请重新输入",q[0].status=!1,n()):i(e,n)):t.hasClass("captcha")?""===r?(q[1].message="请输入图形验证码",q[1].status=!1,n()):r.length<=3?(q[1].message="图形验证码为4位",q[1].status=!1,n()):q[0].status?o(e,n):(q[1].message="图形验证码错误",q[1].status=!1,n()):t.hasClass("msg-captcha")?""===r?(q[2].message="请输入短信验证码",q[2].status=!1,n()):r.length<=3?(q[2].message="短信验证码错误",q[2].status=!1,n()):q[1].status?s(e,n):(q[2].message="短信验证码错误",q[2].status=!1,n()):t.hasClass("pwd")?(""===r?(q[3].message="请输入密码",q[3].status=!1):r.length<6||r.length>20?(q[3].message="密码只支持6-20位字符",q[3].status=!1):z.test(t.val())?(q[3].message="",q[3].status=!0):(q[3].message="密码须字母和数字组合",q[3].status=!1),n()):t.hasClass("repwd")&&(""===r?(q[4].message="请输入密码确认",q[4].status=!1):A.val()!==r?(q[4].message="与密码不一致,请重新输入",q[4].status=!1):(q[4].message="",q[4].status=!0),n())}function d(){var e=f.offset();return C.css({top:e.top-40,left:e.left})}function l(){var e,t=!1,n=q.length;for(e=0;n>e;e++)t||(q[e].message&&"err"!==q[e].message?(C.find("span").text(q[e].message),f=m("#"+q[e].id),d().removeClass("hide"),t=!0):C.addClass("hide"))}function c(){var e,t,n=q.length;for(t=0;n>t;t++)q[t].message?(e=m("#"+q[t].id),e.addClass("error")):(e=m("#"+q[t].id),e.removeClass("error"))}function u(e){var t=e.val(),n=v(t),a=0;switch(a=0===n?0:10>=n?1:20>=n?2:3){case 0:O.removeClass("red yellow green"),P.removeClass("color");break;case 1:O.addClass("red").removeClass("yellow green"),P.filter(".low").addClass("color"),P.filter(".mid,.high").removeClass("color");break;case 2:O.addClass("yellow").removeClass("red green"),P.filter(".low,.mid").addClass("color"),P.filter(".high").removeClass("color");break;case 3:O.addClass("green").removeClass("yellow red"),P.addClass("color")}""===t?w.removeClass("red yes no").addClass("default"):t.length<6||t.length>20?w.removeClass("default yes").addClass("no red"):w.removeClass("default no red").addClass("yes")}var h,p,f,m=e("jquery"),g=e("js/passport/mail-phone-regx"),v=e("js/passport/pwd-strength"),y=m(".register-page"),b=m("#pwd-tips"),w=b.find("#pwd-tip1"),C=m("#err-tip"),_=m("#register-btn"),x=m("#count-down"),k=m(".success-btn"),j=5,S=m("#send-captcha"),T=4,q=[],I=m("#phone-num"),E=m("#msg-captcha"),A=m("#pwd"),F=m("#repwd"),U=m("#captcha"),D=0,P=m(".pwd-intensity"),O=P.closest(".pwd-intensity-container"),L=m("#country-code"),N=m("#region"),$=!1,z=g.pwdValidateRegx,B="";e("jquery.placeholder"),setTimeout(function(){I.val(""),E.val(""),A.val(""),F.val(""),U.val("")},0),U.attr("maxlength",T),A.focus(function(e){b.removeClass("hide"),$=!0,p=m(this).val()}).blur(function(){b.addClass("hide"),$=!1}),m("[placeholder]").placeholder(),q=[{id:"phone-num",message:"",status:!1},{id:"captcha",message:"",status:!1},{id:"msg-captcha",message:"",status:!1},{id:"pwd",message:"",status:!1},{id:"repwd",message:"",status:!1}],m(window).resize(function(){C.hasClass("hide")||d()}),t.init=function(e){m("#agree-terms").click(function(){var e,t=m(this),n=0;if(t.attr("notchecked")){for(t.removeAttr("notchecked"),e=0;e<q.length;e++)q[e].status&&n++;4===n&&_.removeClass("disable").removeAttr("disabled")}else _.addClass("disable").attr("disabled","disabled"),t.attr("notchecked","notchecked")}),y.on("keydown",function(e){var t=e.which;13===t&&_.click()}),y.find(".va").keyup(function(){var t,n=0,a=q.length,i=m(this);r(e,m(this),function(){for(l(),c(),t=0;a>t;t++)q[t].status&&n++;4!==n||m("#agree-terms").attr("notchecked")?_.addClass("disable").attr("disabled","disabled"):_.removeClass("disable").removeAttr("disabled"),q[1].status&&0>=D?S.removeClass("disable").removeAttr("disabled"):S.addClass("disable").attr("disabled","disabled")}),i.hasClass("pwd")&&u(i)}).blur(function(){}),N.change(function(){L.text(m("#region").val()),r(e,I,l)}),S.click(function(){var t,n;m(this).hasClass("disable")||(D=60,m("#msg-tip").removeClass("hide"),S.addClass("disable").attr("disabled","disabled"),S.val("60秒可重新发送"),t=setInterval(function(){return 0>=D?(S.removeClass("disable").removeAttr("disabled").val("获取短信验证码"),void clearInterval(t)):void S.val(D--+"秒可重新发送")},1e3),"reg"===e?n="/passport/register/sendBindMsg":"third"===e&&(n="/passport/autouserinfo/sendBindMsg"),m.ajax({type:"POST",url:n,data:{area:L.text().split("+")[1],mobile:I.val(),verifyCode:U.val()}}))}),m(".success-box").length<=0&&(A[0].onpaste=function(){return!1}),_.click(function(){var t;"reg"===e?t="/passport/register/mobileregister":"third"===e&&(t="/passport/autouserinfo/bindMobile"),m(this).hasClass("disable")||m.ajax({type:"POST",url:t,data:{area:L.text().split("+")[1],mobile:I.val(),verifyCode:U.val(),code:E.val(),password:A.val()}}).then(function(e){var t,n,a=0;200===e.code?(n=e.data.href,t=setTimeout(function(){a++},1e3),m.ajax({type:"GET",url:e.data.session}).then(function(e){200===e.code&&3>t&&(clearInterval(t),location.href=n)}),t>=3&&(clearInterval(t),location.href=n)):console.log("网络超时~")})}),m(".change-captcha").click(function(){a()}),m(".success-box").length>0&&(h=setInterval(function(){0===j&&(window.location.href=k.attr("data-url"),clearInterval(h)),x.text(j--)},1e3))}}),define("js/passport/mail-phone-regx",[],function(e,t,n){var a={"+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]{1}[0-9]{8}$/,"+81":/^0[9|8|7][0-9]{9}$/,"+61":/^[0-9]{11}$/},i=/^[.\-_a-zA-Z0-9]+@[\-_a-zA-Z0-9]+\.[a-zA-Z0-9]/,o=/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/;t.phoneRegx=a,t.emailRegx=i,t.pwdValidateRegx=o}),define("js/passport/pwd-strength",[],function(e,t,n){function a(e,t){return e.charCodeAt(t)>=48&&e.charCodeAt(t)<=57?1:e.charCodeAt(t)>=97&&e.charCodeAt(t)<=122?2:e.charCodeAt(t)>=65&&e.charCodeAt(t)<=90?3:4}function i(e,t,n){var a=e.charCodeAt(0),i=t.charCodeAt(0);return a-i===0?!0:4!==n&&(a-i===1||a-i===-1)}function o(e,t){return 0===t||e===t?0:4===e||4===t?2:1}function s(e){var t,n,s=0,r=e.length,d="",l=0,c=0;for(c=0;r>c;c++)t=e.charAt(c),n=a(e,c),l===n&&i(t,d,n)||(s+=n+o(n,l)),d=t,l=n;return s}n.exports=s}),define("js/passport/back",["jquery","jquery.placeholder"],function(e,t,n){function a(){var e=new Date,t=d("#captcha-img"),n=t.attr("src").split("?")[0];d("#captcha-img").attr("src",n+"?t="+e.getTime())}function i(){_&&x?y.removeClass("disable").prop("disabled",!1):y.addClass("disable").prop("disabled",!0)}function o(){return _&&x?void d.ajax({type:"POST",url:"/passport/back/authcode",data:{verifyCode:d.trim(m.val()),phoneNum:f.val(),area:p.val()}}).then(function(e){200===e.code?x=!0:402===e.code?(_=!1,x=!0,b.removeClass("hide").find("em").text("该账号不存在"),f.addClass("error")):400===e.code&&(x=!1,a()),i()}):void i()}function s(e){var t=!0,n="";return e=d.trim(e),""!==e?/^[0-9]+$/.test(e)?u[p.val()].test(e)?t=!0:(n="手机号码格式不正确, 请重新输入",t=!1):c.test(e)?t=!0:(n="邮箱格式不正确, 请重新输入",t=!1):(n="账户名不能为空",t=!1),_=t,o(),{pass:t,errTxt:n}}function r(){var e=d.trim(m.val());return""===e||e.length<C?(x=!1,void i()):(x=!0,void o())}var d=e("jquery"),l=e("js/passport/mail-phone-regx"),c=l.emailRegx,u=l.phoneRegx,h=e("js/passport/ac-email"),p=d("#country-code-hide"),f=d("#phone-num"),m=d("#captcha"),g=d("#country-code-list"),v=d("#country-code"),y=d("#find-btn"),b=d("#account-err"),w=d("#captcha-err"),C=4,_=!1,x=!1;e("jquery.placeholder"),h(f,function(){var e=s(f.val());e.pass?(b.addClass("hide"),f.removeClass("error")):(b.removeClass("hide").find("em").text(e.errTxt),f.addClass("error"))}),m.attr("maxlength",C),d("input").placeholder(),d("#change-captcha, #captcha-img").on("click",function(){a()}),v.on("click",function(e){e.stopPropagation(),"block"===g.css("style")?g.slideUp("fast"):g.slideDown("fast")}),g.delegate("li","click",function(e){var t,n=d(this),a=n.data("cc");e.stopPropagation(),p.val(a),v.find("em").html(n.text()),""!==d.trim(f.val())&&(t=s(f.val()),i(),_?(b.addClass("hide"),f.removeClass("error")):(b.removeClass("hide").text(t.errTxt),f.addClass("error"))),g.slideUp("fast")}),d(document).click(function(){"block"===g.css("display")&&g.slideUp()}),f.keyup(function(){s(d.trim(d(this).val()))}).focus(function(){d(this).removeClass("error"),b.addClass("hide")}),m.blur(function(){var e=""===d.trim(m.val())?"验证码不能为空":"验证码不正确";x?(w.addClass("hide"),m.removeClass("error")):(w.removeClass("hide").find("em").text(e),m.addClass("error"),m.val()<C&&a())}).focus(function(){d(this).removeClass("error"),w.addClass("hide")}).keyup(function(){r()}),d("#find-btn").click(function(e){return/^[0-9]+$/.test(d.trim(f.val()))&&d("#find-form").attr("action","/passport/back/mobile"),d(this).hasClass("disable")?void 0:x&&_?void 0:(e.preventDefault(),!0)})}),define("js/passport/ac-email",["jquery"],function(e,t,n){var a,i=e("jquery"),o={num:["qq.com","163.com","126.com","sina.com","gmail.com","sohu.com","hotmail.com","139.com","189.com"],other:["gmail.com","qq.com","163.com","126.com","sina.com","sohu.com","hotmail.com","139.com","189.com"]};n.exports=function(e,t){var n,s='<ul id="email-autocomplete" class="email-autocomplete hide"></ul>';e.parent().append(s),n=i("#email-autocomplete"),e.on("keyup",function(){var e,t,a,s,r=i.trim(i(this).val()),d="";if(r.indexOf("@")>0){for(e=r.match(/^[0-9]+@(.*)/),e?(a=o.num,t=e[1]):(a=o.other,t=r.match(/@(.*)/)[1]),s=0;s<a.length;s++)a[s].indexOf(t)>-1&&(d+="<li>"+r.slice(0,r.indexOf("@"))+"@"+a[s]+"</li>");""!==d&&/.com$/.test(r)===!1?n.html(d).removeClass("hide"):n.html("").addClass("hide")}}).on("blur",function(){a=setTimeout(function(){n.addClass("hide"),t&&t()},200)}),n.on("click","li",function(){clearTimeout(a),e.val(i(this).text()).focus(),n.addClass("hide"),t&&t()})}}),define("js/passport/login",["jquery","jquery.placeholder"],function(e,t,n){function a(){var e,t=!1,n=c.trim(u.val()),a=y.val();return""!==n?/^[0-9]+$/.test(n)?"+86"!==a||_.phoneRegx[a].test(n)?t=!0:(t=!1,e="手机号码不正确,请重新输入"):_.emailRegx.test(n)?t=!0:(t=!1,e="邮箱格式不正确,请重新输入"):e="请输入账户名",t?(f.addClass("hide"),u.removeClass("error")):(f.removeClass("hide").children("em").text(e),u.addClass("error")),t}function i(){var e,t=!1,n=c.trim(h.val());return""!==n?n.length<6?e="请输入长度为6-20字符的密码":t=!0:e="请输入密码",t?(m.addClass("hide"),h.removeClass("error")):(m.removeClass("hide").children("em").text(e),h.addClass("error")),t}function o(){var e,t=!1,n=c.trim(p.val());return S.is(":hidden")?!0:(""!==n?4!==n.length?e="请输入长度为4字符的验证码":t=!0:e="请输入验证码",t?(g.addClass("hide"),p.removeClass("error")):(g.removeClass("hide").children("em").text(e),p.addClass("error")),t)}function s(){var e=!0,t=c.trim(u.val()),n=c.trim(h.val());return""!==t?e=a()&&i()&&o():(e=!1,u.addClass("error"),""===n?(f.addClass("both-error").removeClass("hide").children("em").text("请输入账户名和密码"),m.addClass("hide"),h.addClass("error")):f.removeClass("hide").children("em").text("请输入账户名")),e}function r(){T.attr("src",j+c.now()),p.val(""),S.removeClass("hide")}function d(){var e=s();e&&I===!1&&(I=!0,c.ajax({url:"/passport/login/auth",type:"POST",data:{areaCode:y.val().replace("+",""),account:c.trim(u.val()),password:c.trim(h.val()),captcha:c.trim(p.val()),isRemember:!!k.hasClass("checked")},success:function(e){200===e.code?e.data&&(location.href=e.data.session):("captcha"===e.data.errorType?(g.removeClass("hide").children("em").html(e.message),p.addClass("error").val("")):(m.removeClass("hide").children("em").html(e.message),h.addClass("error").val("")),e.data&&e.data.needCaptcha&&r())},complete:function(){I=!1}}))}var l,c=e("jquery"),u=c("#account"),h=c("#password"),p=c("#captcha"),f=u.siblings(".err-tip"),m=h.siblings(".err-tip"),g=p.siblings(".err-tip"),v=c("#caps-lock"),y=c("#country-code-hide"),b=c("#country-code > em"),w=c("#country-list"),C=c("#email-autocomplete"),_=e("js/passport/mail-phone-regx"),x=e("js/passport/ac-email"),k=c(".remember-me"),j="/passport/images?t=",S=c(".captcha-wrap"),p=S.find("#captcha"),T=S.find("#captcha-img"),g=S.find(".err-tip"),q={checked:"",unchecked:""},I=!1;e("jquery.placeholder"),x(u,function(){a()&&c.ajax({url:"/passport/login/account",type:"GET",data:{account:c.trim(u.val())}}).then(function(e){e.data&&e.data.needCaptcha&&r()})}),c("[placeholder]").placeholder(),c("#country-code").on("click",function(){"none"===w.css("display")&&w.slideDown()}),w.on("click","li",function(){var e=c(this),t=e.data("cc");b.html(e.html()),y.val(t),w.slideUp()}),c(document).on("click",function(e){c(e.target).closest("#country-code").length>0||"block"===w.css("display")&&w.slideUp()}),h.on("blur",function(){i(),v.hasClass("hide")||v.addClass("hide")}).on("keypress",function(e){var t=e.which;return t>=65&&90>=t?void v.removeClass("hide"):void v.addClass("hide")}),p.on("blur",function(){o()}),C.on("click","li",function(){clearTimeout(l),u.val(c(this).text()).focus(),C.addClass("hide")}),k.on("click",function(){var e=c(this);e.toggleClass("checked"),e.hasClass("checked")?e.children("i").html(q.checked):e.children("i").html(q.unchecked)}),c(".va").on("focus",function(){var e=c(this);e.removeClass("error"),e.siblings(".err-tip").addClass("hide")}),S.on("click",".change-captcha, .captcha-img",function(){T.attr("src",j+c.now())}),c("#login-btn").on("click",d),c("input.va").on("keypress",function(e){13===e.which&&d()}),""===u.val()&&u.val()!==u.attr("placeholder")||""!==h.val()||h.focus()}),define("js/passport/reset",["jquery","jquery.placeholder"],function(e,t,n){function a(e,t){return e.charCodeAt(t)>=48&&e.charCodeAt(t)<=57?1:e.charCodeAt(t)>=97&&e.charCodeAt(t)<=122?2:e.charCodeAt(t)>=65&&e.charCodeAt(t)<=90?3:4}function i(e,t,n){var a=e.charCodeAt(0),i=t.charCodeAt(0);return a-i===0?!0:4!==n&&(a-i===1||a-i===-1)}function o(e,t){return 0===t||e===t?0:4===e||4===t?2:1}function s(e){var t,n,s=0,r=e.length,d="",l=0,c=0;for(c=0;r>c;c++)t=e.charAt(c),n=a(e,c),l===n&&i(t,d,n)||(s+=n+o(n,l)),d=t,l=n;return s}function r(){var e=l.val(),t=s(e),n=0;switch(n=0===t?0:10>=t?1:20>=t?2:3){case 0:v.removeClass("red yellow green"),g.removeClass("color");break;case 1:v.addClass("red").removeClass("yellow green"),g.filter(".low").addClass("color"),g.filter(".mid,.high").removeClass("color");break;case 2:v.addClass("yellow").removeClass("red green"),g.filter(".low,.mid").addClass("color"),g.filter(".high").removeClass("color");break;case 3:v.addClass("green").removeClass("yellow red"),g.addClass("color")}""===e?y.removeClass("red yes no").addClass("default"):e.length<6||e.length>20?y.removeClass("default yes").addClass("no red"):y.removeClass("default no red").addClass("yes"),m=!!b.test(e)}var d=e("jquery"),l=d("#pwd"),c=d("#re-input"),u=d("#reset-pwd-btn"),h=d("#pwd-err"),p=d("#repwd-err"),f=d("#pwd-tips"),m=!1,g=d(".pwd-intensity"),v=g.closest(".pwd-intensity-container"),y=d("#pwd-tip1"),b=e("js/passport/mail-phone-regx").pwdValidateRegx;e("jquery.placeholder"),d("input").placeholder(),d(".va").keyup(function(){var e=!0;d(this).hasClass("pwd")?r():""===d(this).val()&&(e=!1),e=!(!e||!m||l.val()!==c.val()),e?u.removeClass("disable").prop("disabled",!1):u.addClass("disable").prop("disabled",!0)}).blur(function(){var e=d(this),t=e.val();e.hasClass("pwd")?""===t?(e.addClass("error"),h.removeClass("hide").find("em").text("请输入密码")):t.length<6||t.length>20?(e.addClass("error"),h.removeClass("hide").find("em").text("密码只支持6-20位")):b.test(t)?(h.addClass("hide"),""!==c.val()&&(t!==c.val()?(c.addClass("error"),p.removeClass("hide").find("em").text("两次密码输入不一致,请重新输入")):(c.removeClass("error"),p.addClass("hide")))):(e.addClass("error"),h.removeClass("hide").find("em").text("密码须字母和数字组合")):""===t?(e.addClass("error"),p.removeClass("hide").find("em").text("请输入密码确认")):""!==l.val()&&t!==l.val()?(e.addClass("error"),p.removeClass("hide").find("em").text("两次密码输入不一致,请重新输入")):(e.removeClass("error"),p.addClass("hide"))}).focus(function(){d(this).removeClass("error"),d(this).hasClass("pwd")?h.addClass("hide"):p.addClass("hide")}),l.focus(function(){h.addClass("hide"),f.removeClass("hide")}).blur(function(){f.addClass("hide")}),d("#pwd, #repwd").keydown(function(e){var t=e.keyCode||e.which;return 32===t?void e.preventDefault():void 0})}),define("js/passport/vertification",["jquery"],function(e,t,n){var a,i,o=e("jquery"),s=o("#send-captcha"),r=o("#captcha-tip"),d=o("#err-tip"),l=o("#next-step");s.click(function(){o.post("/passport/back/sendbackmobile",{mobile:o("#mobile").val(),area:o("#area").val(),verifyCode:o("#captchaPic").val()},function(e){if(200===e.code){if(d.hide(),o(this).hasClass("disable"))return;a=60,s.addClass("disable").attr("disabled",!0),r.removeClass("hide"),s.val(a--+"秒后可重新操作"),i=setInterval(function(){0===a?(clearInterval(i),s.val("发送验证码").removeClass("disable").removeAttr("disabled")):s.val(a--+"秒后可重新操作")},1e3)}else o(this).addClass("error"),d.removeClass("hide").text("发送失败")})}),a=60,s.addClass("disable").attr("disabled",!0),r.removeClass("hide"),s.val(a--+"秒后可重新操作"),i=setInterval(function(){0===a?(clearInterval(i),s.val("发送验证码").removeClass("disable").removeAttr("disabled")):s.val(a--+"秒后可重新操作")},1e3),o("#captcha").keyup(function(){var e=o.trim(o(this).val()),t=this;4===e.length?o.ajax({type:"POST",url:"/passport/back/backmobile",dataType:"json",data:{code:o("#captcha").val(),verifyCode:o("#captchaPic").val(),area:o("#area").val(),mobile:o("#mobile").val() +},success:function(e){200===e.code?(l.removeClass("disable").attr("href",e.data),d.addClass("hide"),o(t).removeClass("error")):(l.addClass("disable"),d.removeClass("hide").find("em").text("验证码输入错误"),o(t).addClass("error"))}}):l.addClass("disable").attr("href","javascript:;")}).blur(function(){var e=o.trim(o(this).val());""===e&&(o(this).addClass("error"),d.removeClass("hide").text("请输入验证码"))}).focus(function(){o(this).removeClass("error")})}),define("js/passport/thirdlogin",["jquery"],function(e,t,n){function a(){b(".choosetag").on("change",function(){var e="#f02200";"checked"===b(this).attr("checked")?b(".choosewrapper").css({"background-image":'url("'+S+'")'}):(b(".choosewrapper").css({"background-image":"none"}),e="#CCCCCC"),I.css({"background-color":e})})}function i(){return"checked"===b(".choosetag").attr("checked")}function o(){b(".optionshow").on("click",function(){b(".optionslist").toggleClass("hide")})}function s(){var e="";b(document).on("keyup","#validatenum",function(){e=b(this).val(),4===e.length&&(k||(k=!0,b.ajax({type:"POST",url:"/passport/autouserinfo/checkBindMsg",data:{code:e,mobile:b("#mobile").val(),area:b("#areacode").val()}}).then(function(e){k=!1,200===e.code?j=!0:alert(e.message)})))}),b("#validatenum").focus(function(){b(this).removeAttr("placeholder")}).blur(function(){b(this).attr("placeholder","验证码")})}function r(){b(".optionitem").on("click",function(){var e=b(this),t=e.attr("areanum"),n=e.text();b("#areaname").text(n),b("#areanum").text(t),b("#areacode").val(t),b(".optionslist").addClass("hide")})}function d(){b(document).on("click","body",function(e){var t=b(e.target);t.hasClass("yohoselectarea")||t.hasClass("areaname")||t.hasClass("righttag")||t.hasClass("optionslist")||t.hasClass("optionitem")||b(".optionslist").addClass("hide")})}function l(){var e="",t="";b(".optionitem").each(function(){e=b(this),t=e.attr("areanum").replace(/\+/g,""),e.attr("areanum",t)})}function c(){var e;b(document).on("click","#alreayregist",function(t){e=b(t.target),(e.hasClass("mask")||e.hasClass("backdrop"))&&(b("#alreayregist").hide(),b(".backdrop").hide())}),b(document).on("click","#bindconfirm",function(t){e=b(t.target),(e.hasClass("mask")||e.hasClass("backdrop"))&&(b("#bindconfirm").hide(),b(".backdrop").hide())})}function u(){b(document).on("click","#yohobindbtn",function(e){b(".phonenum").val(""),b("#bindconfirm").hide(),b(".backdrop").hide()}),b(document).on("click","#yohobindbtn2",function(e){b(".phonenum").val(""),b("#alreayregist").hide(),b(".backdrop").hide()})}function h(){return x-=1,0>x?(x=60,void b(".validatewrapper").html(_)):(b(".second").text(x),void window.setTimeout(h,1e3))}function p(e){b(".validatewrapper").html(C),window.setTimeout(h,1e3)}function f(){b(document).on("click","#sendmessage",function(){"disabled"!==b("#sendmessage").attr("disabled")&&(p(b("#mobile").val()),b.ajax({type:"POST",url:"/passport/autouserinfo/sendBindMsg",data:{mobile:b("#mobile").val(),area:b("#areacode").val()}}).then(function(e){200!==e.code&&alert(e.message)}))})}function m(){var e="",t="";t=b("#areacode").val(),e=b("#mobile").val(),b.ajax({type:"POST",url:"/passport/autouserinfo/bindMobile",data:{area:t,openId:b("#openId").val(),sourceType:b("#sourceType").val(),mobile:e,code:b("#validatenum").val()}}).then(function(e){200===e.code?e.data&&e.data.refer?window.location.href=e.data.refer:window.location.href="/passport/thirdlogin/bindsuccess":alert(e.message)})}function g(){b(document).on("click","#gotobindphone",function(){j===!0?(b("#inarea").val(b("#areacode").val()),b("#inmobile").val(b("#mobile").val()),m()):alert("请输入正确验证码")})}function v(){var e="",t="",n="",a="",o="",s="";b("#bindfirststep").on("click",function(r){var d;if(r.preventDefault(),n=b(".phonenum").val(),a=b("#areanum").text(),d=w["+"+a],i()){if(""===n||!d||!d.test(n))return q.find("em").text("手机格式错误"),void q.removeClass("hide");e=b("#openId").val()||"29803EC6D4AAC3AAB8ABDB6AE829D579",t=b("#sourceType").val()||"qq",b.ajax({type:"post",url:"/passport/autouserinfo/bindCheck",data:{mobile:n,area:a,openId:e,sourceType:t},dataType:"json",success:function(e){var t=b(window).height();200===e.code?(b("#bindmobileform").attr("action",e.data.next),b("#bindmobileform").submit()):201===e.code?(o=e.data.user.username,s=e.data.user.headImg,b("#registphone").text(n),b("#username").text(o),""===s?b("#userphoto").attr("src","//img10.static.yhbimg.com/headimg/2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100"):b("#userphoto").attr("src",s),b("#logindirectly2").attr("href",e.data.user.bindLogin),b(".backdrop").show(),b("#sendmessage").click(),b("#alreayregist .mask").css({"padding-top":t>440?t/2:217}),b("#alreayregist").show()):203===e.code?(b("#bindmobileform").attr("action",e.data.next),b("#bindmobileform").submit()):205===e.code?(o=e.data.user.username,s=e.data.user.headImg,b("#registphonetwo").text(n),b("#username1").text(o),""===s?b("#userphoto1").attr("src","//img10.static.yhbimg.com/headimg/2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100"):b("#userphoto1").attr("src",s),b("#logindirectly").attr("href",e.data.user.bindLogin),b(".backdrop").show(),b("#bindconfirm .mask").css({"padding-top":t>440?t/2:217}),b("#bindconfirm").show()):402===e.code?(q.find("em").text("手机格式错误"),q.removeClass("hide")):e&&e.message&&alert(e.message)}})}})}function y(){l(),f(),a(),r(),o(),d(),v(),c(),u(),g(),s()}var b=e("jquery"),w=e("js/passport/mail-phone-regx").phoneRegx,C=b("#nopermissionmessage").html(),_=b(".validatewrapper").html(),x=+b(".second").text(),k=!1,j=!1,S="//cdn.yoho.cn/yohobuy/assets/img/passport/choosed.png",T=b(".bindwrapper"),q=T.find(".phone-err-tip"),I=T.find(".yohobindbtn");T.on("keydown",".phonenum",function(e){return 13===e.keyCode?(I.trigger("click"),!1):void 0}),y()}),define("js/passport/third-pwd",["jquery"],function(e,t,n){function a(e,t){return e.charCodeAt(t)>=48&&e.charCodeAt(t)<=57?1:e.charCodeAt(t)>=97&&e.charCodeAt(t)<=122?2:e.charCodeAt(t)>=65&&e.charCodeAt(t)<=90?3:4}function i(e,t,n){var a=e.charCodeAt(0),i=t.charCodeAt(0);return a-i===0?!0:4!==n&&(a-i===1||a-i===-1)}function o(e,t){return 0===t||e===t?0:4===e||4===t?2:1}function s(e){var t=0,n=e.length,s="",r=0,d=0,l="",c="";for(d;n>d;d++)l=e.charAt(d),c=a(e,d),r===c&&i(l,s,c)||(t+=c+o(c,r)),s=l,r=c;return t}function r(e,t){e.find("em").text(t),e.removeClass("hide")}function d(){return j-=1,0>j?(j=60,void C(".validatewrapper").html(T)):(C(".second").text(j),void window.setTimeout(d,1e3))}function l(){C(".validatewrapper").html(S),window.setTimeout(d,1e3)}function c(){C(document).on("click","#sendmessage",function(){l(),C.ajax({type:"POST",url:"/passport/autouserinfo/sendBindMsg",data:{mobile:P,area:O}}).then(function(e){200!==e.code&&alert(e.message)})})}function u(){var e="";C(document).on("keyup","#validatenum",function(){C("#err-info").hide(),e=C(this).val(),4===e.length&&(_||(_=!0,C.ajax({type:"POST",url:"/passport/autouserinfo/checkBindMsg",data:{code:e,mobile:P,area:O}}).then(function(e){_=!1,200!==e.code?C("#err-info").show():x=!0})))})}function h(){var e=v.val(),t=s(e),n=0;switch(n=0===t?0:10>=t?1:20>=t?2:3){case 0:y.removeClass("red yellow green"),w.removeClass("color");break;case 1:y.addClass("red").removeClass("yellow green"),w.filter(".low").addClass("color"),w.filter(".mid,.high").removeClass("color");break;case 2:y.addClass("yellow").removeClass("red green"),w.filter(".low,.mid").addClass("color"),w.filter(".high").removeClass("color");break;case 3:y.addClass("green").removeClass("yellow red"),w.addClass("color")}""===e?(k=!1,b.removeClass("red yes no").addClass("default")):(e.length<6||e.length>20?(k=!1,b.removeClass("default yes").addClass("no red")):(k=!0,b.removeClass("default no red").addClass("yes")),/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]*$/.test(e)?F.removeClass("default no red").addClass("yes"):F.removeClass("default yes").addClass("no red"))}function p(){C(document).on("keyup",".pwdcontent",function(){h(C(this))}),C(document).on("focus",".pwdcontent",function(){C("#pwd-tips").removeClass("hide")}),C(document).on("blur",".pwdcontent",function(){C("#pwd-tips").addClass("hide")})}function f(){var e="",t="";q||(q=!0,setTimeout(function(){q=!1},5e4),e=C("#pwd").val(),t=C("#validatenum").val(),C.ajax({type:"POST",url:"/passport/autouserinfo/bindMobile",data:{area:O,openId:C("#openId").val(),sourceType:C("#sourceType").val(),mobile:P,password:e,code:t}}).then(function(e){q=!1,200===e.code?e.data&&e.data.refer?window.location.href=e.data.refer:window.location.href="/passport/thirdlogin/bindsuccess":alert(e.message)}))}function m(){var e="",t="";C("#confirmsubmit").on("click",function(){var n=!0;e=C("#validatenum").val(),t=C("#pwd").val(),""===e?(r(E,"短信验证码不能为空"),n=!1):x===!1&&(r(E,"请输入正确的验证码"),n=!1),""===t?(r(A,"密码不能为空"),n=!1):t.length<6||t.length>20?(r(A,"密码只支持6-20位字符"),n=!1):D.test(t)?k===!1&&(r(A,"请输入符合强度的密码"),n=!1):(r(A,"密码须由字母和数字组合"),n=!1),n&&f()})}function g(){v=C("#pwd"),y=C(".safelevel"),w=C(".pwd-intensity"),b=C("#pwd-tip1"),c(),u(),p(),m(),P&&O&&U.click()}var v,y,b,w,C=e("jquery"),_=!1,x=!1,k=!1,j="",S="",T="",q=!1,I=C(".bindwrapper"),E=I.find(".code-err-tip"),A=I.find(".pwd-err-tip"),F=C("#pwd-tip2"),U=C("#sendmessage"),D=e("js/passport/mail-phone-regx").pwdValidateRegx,P=C("#mobile").val(),O=C("#area").val();S=C("#nopermissionmessage").html(),T=C(".validatewrapper").html(),j=+C(".second").text(),g()}),define("js/passport/relate",["jquery"],function(e,t,n){function a(){f.init(),o.ajax({type:"POST",url:"/passport/autouserinfo/sendBindMsg",data:{mobile:p.mobile,area:p.area}}).then(function(e){e&&200!==e.code&&(f.clearTime(),alert(e.message))})}function i(){var e=l.val();e&&o.ajax({type:"POST",url:"/passport/autouserinfo/relateMobile",data:{mobile:p.mobile,area:p.area,openId:p.openid,sourceType:p.source,code:e}}).then(function(e){200===e.code?window.location.href=e.data.refer:402===e.code?u.removeClass("hide"):(u.addClass("hide"),alert(e.message))})}var o=e("jquery"),s=o("#relate-main"),r=o("#code-validate"),d=r.find(".validate-wrapper"),l=r.find(".msg-code"),c=r.find(".count-down span"),u=r.find(".code-error"),h=o("#hide-info"),p={},f={};p=h.data(),h.remove(),f={init:function(){this.timer&&window.clearTimeout(this.timer),this.second=60,d.addClass("waiting"),this.changeTime()},changeTime:function(){var e=this;this.second&&this.second>0?(c.text(this.second),this.second--,this.timer=window.setTimeout(function(){e.changeTime()},1e3)):this.clearTime()},clearTime:function(){this.timer&&window.clearTimeout(this.timer),d.removeClass("waiting")}},o("#next-step-btn").click(function(){a(),s.addClass("hide"),u.addClass("hide"),r.removeClass("hide")}),r.on("keydown",".msg-code",function(e){return 13===e.keyCode?(i(),!1):void 0}),r.on("click",".get-code",function(){a()}),r.on("click",".perv-step",function(){f.clearTime(),s.removeClass("hide"),r.addClass("hide"),l.val("")}),o("#relate-btn").click(function(){i()})}),define("js/cart/cart",["jquery","handlebars","source-map"],function(e,t,n){function a(e){z.ajax({type:"POST",dataType:"json",url:"/cart/index/select",data:e,beforeSend:function(){z(".loading").css({top:z(document).scrollTop()+200}),z(".loading").show()}}).then(function(e){200===e.code&&window.history.go(0)})}function i(e,t){te=[],k={},w=e.attr("checked")?"Y":"N",z("."+t).each(function(){oe=!!z(this).data("promotionid"),z(this).data("id")&&te.push({product_sku:z(this).data("id"),selected:w,buy_number:z(this).data("productnum"),goods_type:z(this).data("goodstype"),promotion_id:z(this).data("promotionid")?z(this).data("promotionid"):0})}),k={skuList:JSON.stringify(te),hasPromotion:oe},a(k)}function o(e,t,n){z.ajax({type:"GET",dataType:"json",url:t,data:n}).then(function(t){200===t.code&&t.data.item&&t.data.item.length>0&&(e.html(" "),m=f(t.data),e.append(z(m)),z("#orderProduct li:last").addClass("end"),z(".gift").removeClass("none"))})}function s(e){z.ajax({type:"GET",dataType:"html",url:"/cart/index/getProductInfo",data:e}).then(function(e){K=0,Q.html(" "),Q.append(e),Q.show(),z(".detail-bigpic:not(.none) .con li:first").addClass("active"),z(".showSizeBox:not(.none) span").length<2&&z(".showSizeBox:not(.none) span:first").addClass("atcive"),1!==Number(z("#addToCart").val())&&z(".showSizeBox span").data("num",0),z.each(z(".showSizeBox span"),function(){z(this).data("num")<=0&&(z(this).addClass("null-atcivec"),console.log(z(".showSizeBox:not(.none) span:first")),z(".showSizeBox:not(.none) span:first").removeClass("atcive"))}),"undefined"!=typeof q&&(N=z(".detail-info .oldprice del").html()?z(".detail-info .oldprice del").html():$,O='<span class="oldprice">现价:<del>'+N+'</del></span><span class="newprice">活动价:<b class="promotion-price">'+q+"</b></span>",z(".detail-info .price").html(O)),z(".detail-bigpic:not(.none) .bigpic:gt(0)").hide(),z(".showSizeBox:not(.none)").find("span").each(function(){return z(this).hasClass("null-atcivec")?(z(".addcart").addClass("none"),void z(".btn_sellout").removeClass("none")):(z(".addcart").removeClass("none"),z(".btn_sellout").addClass("none"),!1)})})}function r(){Q.html(" "),Q.css({top:z(document).scrollTop()+30,left:z(document).width()/2-Q.width()/2})}function d(e){e.addClass("none").siblings("i").removeClass("none"),e.parents(".cart-product-num").siblings("div").toggleClass("fold"),e.siblings(".unfold-color").toggleClass("none"),e.siblings(".cart-page").toggleClass("none")}function l(e,t,n){z.ajax({type:"POST",dataType:"json",url:t,data:k,beforeSend:function(){z(".loading").css({top:z(document).scrollTop()+200}),z(".loading").show()}}).then(function(e){200===e.code?(n&&window.setCookie("cart-del-list",JSON.stringify(n),{domain:".yohobuy.com",path:"/"}),window.history.go(0)):300===e.code?(z(".loading").hide(),new W(e.message).show()):403===e.code&&e.data.url&&(window.location=e.data.url)})}function c(e){se=!0,z.ajax({type:"POST",dataType:"json",url:"/cart/index/modify",data:e}).then(function(e){200===e.code&&window.history.go(0),se=!1})}function u(e,t){z.ajax({type:"POST",url:"/cart/index/add",data:e}).then(function(e){200===e.code?(window.history.go(0),t&&window.setCookie("cart-del-list",JSON.stringify(t),{domain:".yohobuy.com",path:"/"})):500===e.code&&new W(e.message).show()})}function h(){z(".gift-wrapper .fold").show(),z(".pre-sell-box input:checked").length===z('.pre-sell-box input[type="checkbox"]').length&&z('.per-list input[type="checkbox"]').attr("checked",!0),z(".common-sell-box input:checked").length===z('.common-sell-box input[type="checkbox"]').length&&z('.common-list input[type="checkbox"]').attr("checked",!0),z('.common-list input[type="checkbox"]').attr("checked")&&(ie=!0),z('.per-list input[type="checkbox"]').attr("checked")&&(ae=!0),0!==z(".per-list").length&&0!==z(".common-list").length?ie&&ae&&z('.batch_div input[type="checkbox"]').attr("checked",!0):(ie||ae)&&z('.batch_div input[type="checkbox"]').attr("checked",!0),z(".cart-page").each(function(){1===z(this).data("pageall")?(z(".cart-btn-pre",this).hide(),z(".cart-btn-next",this).hide()):z(".cart-btn-pre",this).hide()}),z(".pre-sell-box input:checked").length>0&&z(".common-sell-box input:checked").length>0?(z(".go_cash_tips").show(),z(".btn_account_disabled").show(),z(".btn_account").hide()):(z(".go_cash_tips").hide(),z(".btn_account").show(),z(".btn_account_disabled").hide()),z(".pay-wapper tr").each(function(){z(this).data("pid")&&te.push(z(this).data("pid")+"")}),z.ajax({type:"POST",url:"/cart/index/checkFav",data:{pidList:JSON.stringify(te)}}).then(function(e){I='<span class="cart-yetremove-btn">已收藏</span>',E='<a href="javascript:void(0);" class="cart-remove-btn"><span>移入收藏</span></a>',z.each(e.data,function(e,t,n){z(".pay-wapper tr").each(function(){Number(z(this).data("pid"))===Number(e)&&(t?z(this).find(".cart-operation").append(I):z(this).find(".cart-operation").append(E))})})})}var p,f,m,g,v,y,b,w,C,_,x,k,j,S,T,q,I,E,A,F,U,D,P,O,L,N,$,z=e("jquery"),B=e("handlebars"),R=e("js/common/dialog"),M=R.Confirm,W=R.Alert,H=z(".cartnew-sum"),G=z(".cartnew-tips"),Y=z(".pay-wapper"),Q=z(".goods-detail"),X=z(".histroy"),V=z(".together"),Z=z(".shop-cart"),J=1,K=0,ee=1,te=[],ne=[],ae=!1,ie=!1,oe=!1,se=!1;G.find(".btn_close").click(function(){G.fadeOut()}),Y.one("click",'.common-sell-box input[type="checkbox"], .pre-sell-box input[type="checkbox"]',function(){w=z(this).attr("checked")?"Y":"N",te=[],te.push({product_sku:z(this).parents("tr").data("id"),selected:w,buy_number:z(this).parents("tr").data("productnum"),goods_type:z(this).parents("tr").data("goodstype"),promotion_id:z(this).parents("tr").data("promotionid")?z(this).parents("tr").data("promotionid"):0}),oe=!!z(this).parents("tr").promotion_id,k={skuList:JSON.stringify(te),hasPromotion:oe},a(k)}),H.one("click",'input[type="checkbox"]',function(){te=[],L={},k={},w=z(this).attr("checked")?"Y":"N",z(".pay-wapper:first tr").each(function(){z(this).data("promotionid")&&(oe=!0),z(this).data("id")&&te.push({product_sku:z(this).data("id"),selected:w,buy_number:z(this).data("productnum"),goods_type:z(this).data("goodstype"),promotion_id:z(this).data("promotionid")?z(this).data("promotionid"):0})}),k={skuList:JSON.stringify(te),hasPromotion:oe},a(k)}),z(".per-list").on("click",'input[type="checkbox"]',function(){i(z(this),"pre-sell-box")}),z(".common-list").on("click",'input[type="checkbox"]',function(){i(z(this),"common-sell-box")}),p=z("#togetherProduct").html(),f=B.compile(p),o(X,"/cart/index/getHistroyProduct"),o(V,"/cart/index/getTogetherProduct"),V.on("click",".pagenext, .pageprev",function(){o(V,"/cart/index/getTogetherProduct",{page:Math.ceil(100*Math.random())+1})}),Z.on("click",".icon-minus, .icon-add",function(){z(this).hasClass("icon-minus")?(z(this).parents(".title").next(".main").hide(),z(this).parents("h2").next(".right").hide()):(z(this).parents(".title").next(".main").show(),z(this).parents("h2").next(".right").show()),z(this).siblings("i").toggleClass("none"),z(this).toggleClass("none")}),X.on("click",".pagenext, .pageprev",function(){z(this).hasClass("pagenext")?J++:--J>0||(J=1),o(X,"/cart/index/getHistroyProduct",{page:J})}),Y.on("click",".cart-add-btn",function(){F=z(this).data("id"),T=z(this).parents("table").data("promotion"),q=z(this).parents("table").find(".subjoin-price").html(),$=z(this).parents("table").find(".wapper-price").html(),r(),s({productId:F})}),z(".clearfix").on("click",".btn_view_s",function(){F=z(this).data("id"),T=z(this).parents("table").data("promotion"),q=z(this).parents("table").find(".subjoin-price").html(),r(),s({productId:F})}),Q.on("click",".colse",function(){Q.hide(),Q.html(" "),ee=1}),Y.on("click",".icon-minusCart, .icon-addCart",function(){d(z(this))}),Y.on("click",".unfold-color",function(){d(z(this)),z(this).siblings(".icon-minusCart").removeClass("none"),z(this).siblings(".icon-addCart").addClass("none")}),Y.on("click",".cart-btn-next",function(){g=z(this).siblings("p").find(".f-red"),y=Number(z(this).siblings("p").find(".subjoinPageNum").html()),v=Number(g.html()),g.html(v+1),v>=y-1?z(this).hide():z(this).siblings("i").show(),b=z(this).parents(".cart-product-num").siblings("div").find("table"),b.addClass("none").eq(v).removeClass("none")}),Y.on("click",".cart-btn-pre",function(){g=z(this).siblings("p").find(".f-red"),y=Number(z(this).siblings("p").find(".subjoinPageNum").html()),v=Number(g.html()),g.html(v-1),2>=v?z(this).hide():z(this).siblings("i").show(),b=z(this).parents(".cart-product-num").siblings("div").find("table"),b.addClass("none").eq(v-2).removeClass("none")}),Q.on("click",".fav_count",function(){z.ajax({type:"POST",dataType:"json",url:"/product/item/togglecollect",data:{productId:F,type:"add"}}).then(function(e){200===e.code?new W(e.message).show():403===e.code?e.data.url&&(window.location=e.data.url):new W(e.message).show()})}),Y.on("click",".cart-del-btn",function(){k={},te=[],T=z(this).parents("tr").data("promotionid")?z(this).parents("tr").data("promotionid"):0,te.push({product_sku:z(this).parents("tr").data("id"),buy_number:z(this).parents("tr").data("productnum"),promotion_id:T}),oe=!!T,k={skuList:JSON.stringify(te),hasPromotion:oe},A="<div><span></span>删除商品</div><p>确定从购物车中删除此商品?</p>",z(this).data("gift")||(x={productPrice:z(this).parents("tr").find(".productPrice").text(),productTitle:z(this).parents("tr").find(".pay-pro-info a").text(),link:z(this).parents("tr").find(".pay-pro-info a").attr("href"),productNum:z(this).parents("tr").data("productnum"),productSku:z(this).parents("tr").data("id"),promotionId:z(this).parents("tr").data("promotionid")}),C="/cart/index/remove",new M({content:A,cb:function(){l(k,C,x)}}).show()}),Y.on("click",".cart-remove-btn",function(){k={},te=[],T=z(this).parents("tr").data("promotionid")?z(this).parents("tr").data("promotionid"):0,te.push({product_sku:z(this).parents("tr").data("id"),buy_number:z(this).parents("tr").data("productnum"),promotion_id:T}),oe=!!T,k={skuList:JSON.stringify(te),hasPromotion:oe},l(k,"/cart/index/fav")}),H.on("click",".delAll",function(){k={},x={},te=[],ne=[],z(".pay-wapper:first tr").each(function(){z(this).find('input[type="checkbox"]').attr("checked")&&(T=z(this).data("promotionid")?z(this).data("promotionid"):0,T&&(oe=!0),z(this).data("id")&&(z(this).find('input[type="checkbox"]').attr("checked")&&te.push({product_sku:z(this).data("id"),buy_number:z(this).data("productnum"),promotion_id:T}),x={productPrice:z(this).find(".productPrice").text(),productTitle:z(this).find(".pay-pro-info a").text(),link:z(this).find(".pay-pro-info a").attr("href"),productNum:z(this).data("productnum"),productSku:z(this).data("id"),promotionId:z(this).data("promotionid")},ne.push(x)))}),C="/cart/index/remove",A="<div><span></span>删除商品</div><p>确定从购物车中删除所有选中商品?</p>",k={skuList:JSON.stringify(te),hasPromotion:oe},z.isEmptyObject(te)?new W("请至少选择一件商品").show():new M({content:A,cb:function(){l(k,C,ne)}}).show()}),H.on("click",".removeAll",function(){k={},x={},te=[],z(".pay-wapper:first tr").each(function(){z(this).find('input[type="checkbox"]').attr("checked")&&(T=z(this).data("promotionid")?z(this).data("promotionid"):0,T&&(oe=!0),z(this).data("id")&&z(this).find('input[type="checkbox"]').attr("checked")&&te.push({product_sku:z(this).data("id"),buy_number:z(this).data("productnum"),promotion_id:T}))}),k={skuList:JSON.stringify(te),hasPromotion:oe},z.isEmptyObject(te)?new W("请至少选择一件商品").show():l(k,"/cart/index/fav")}),Y.on("click",".minus, .plus",function(){return x={},_=z(this).hasClass("minus")?"decreaseNum":"increaseNum",x[""+_]=1,se||"1"===z(this).siblings("input").val()&&z(this).hasClass("minus")?!1:void c(z.extend(x,{sku:z(this).parents("tr").data("id")}))}),z(".gift").on("click",".up, .down",function(){z(this).siblings("i").toggleClass("none"),z(this).toggleClass("none")}),Q.on("click",".addcart",function(){return 0===z(".showSizeBox:not(.none) .atcive").length?(new W("请选择尺码").show(),!1):(j=z(".showSizeBox:not(.none) .atcive").data("num"),S=z(".showSizeBox:not(.none) .atcive").data("sku"),k={productSku:S,buyNumber:z("#mnum").val(),promotionId:T},void(z("#mnum").val()>j?new W("库存不足,目前还有"+j+"个库存").show():1===Number(z("#addToCart").val())?u(k):new W("该商品无法加入购物车").show()))}),Q.on("click",".cut, .add",function(){if(_=z(this).hasClass("minus")?"decreaseNum":"increaseNum",T)z(this).hasClass("cut")?new W("-_-,已经是最后一件,不能在减了!").show():new W("最多只能购买1,您好像购买的太多了!").show();else{if(z(this).hasClass("add")?ee++:ee--,1>ee)return new W("-_-,已经是最后一件,不能在减了!").show(),ee=1,!1;z("#mnum").val(ee)}}),Q.on("click",".color",function(){K=0,z(".color").find("p").removeClass("atcive"),z(this).find("p").addClass("atcive"),z(".showSizeBox").addClass("none").eq(z(this).index()).removeClass("none"),z(".showSizeBox:not(.none) span").length<2&&z(".showSizeBox:not(.none) span:first").addClass("atcive"),z(".detail-bigpic").addClass("none").eq(z(this).index()).removeClass("none"),z(".detail-bigpic").eq(z(this).index()).find(".bigpic").hide(),z(".detail-bigpic").eq(z(this).index()).find(".bigpic:first").show(),z(".detail-bigpic").eq(z(this).index()).find(".con li").removeClass("active"),z(".detail-bigpic").eq(z(this).index()).find(".con li:first").addClass("active"),z(".showSizeBox").eq(z(this).index()).find("span").each(function(){return z(this).hasClass("null-atcivec")?(z(".addcart").addClass("none"),void z(".btn_sellout").removeClass("none")):(z(".addcart").removeClass("none"),z(".btn_sellout").addClass("none"),!1)})}),Q.on("click",".showSizeBox span",function(){j=z(this).data("num"),z(this).data("num")>0?(z(".showSizeBox:not(.none) span").removeClass("atcivec atcive").eq(z(this).index()).addClass("atcive"),z(".addcart").removeClass("none"),z(".btn_sellout").addClass("none")):(z(".showSizeBox:not(.none) span").removeClass("atcivec atcive").eq(z(this).index()).addClass("atcivec"),z(".addcart").addClass("none"),z(".btn_sellout").removeClass("none"))}),z(".goBack").on("click",function(){k={},D=z(".dev-revocation .goBack").index(this),te=[],z(".dev-revocation tr").each(function(e){D!==e&&(x={productPrice:z(this).find(".productPrice").text(),productTitle:z(this).find(".title").text(),link:z(this).find(".title").attr("href"),productNum:z(this).data("productnum"),productSku:z(this).data("productsku"),promotionId:z(this).data("promotionid")},te.push(x))}),k={productSku:z(this).parents("tr").data("productsku"),promotionId:z(this).parents("tr").data("promotionid"),buyNumber:z(this).parents("tr").data("productnum")},u(k,te)}),Q.on("click",".piclist li",function(){K=z(this).index(),z(".detail-bigpic:not(.none) .piclist li").removeClass("active"),z(this).addClass("active"),z(".detail-bigpic:not(.none) .bigpic").hide().eq(z(this).index()).show()}),h(),Q.on("click",".pre, .next",function(){if(z(this).hasClass("next")){if(K>=z(this).siblings(".con").find("li").length-1)return!1;K++}else{if(1>K)return!1;K--}z(this).siblings(".con").find("li").removeClass("active").eq(K).addClass("active"),z(".detail-bigpic:not(.none) .bigpic").hide().eq(K).show()}),z(".btn_account").on("click",function(){P="",z(".pay-wapper input:checked").parents("tr").find(".tipNoStore").length>0?(U=z(".pay-wapper input:checked").parents("tr").find(".tipNoStore"),z.each(U.parents("tr").find(".pay-pro-info a"),function(){P+=z(this).html()}),new W(P+"库存不足").show()):z(".zp").length>0&&!z(this).attr("title")?(z(this).attr("title","1"),new W("您有赠品没有选择,请选择完再结算!").show()):z("input:checked").length>0?z(".pre-sell-box input:checked").length>0?window.location.href="/cart/index/orderEnsure?type=2":window.location.href="/cart/index/orderEnsure?type=1":new W("请至少选择一件商品").show()}),Y.on("selectstart",function(){return!1}),Q.on("selectstart",function(){return!1})}),define("js/guang/entry",["jquery","lazyload","dot","jquery-pjax"],function(e,t,n){e("js/guang/list"),e("js/guang/detail"),e("js/guang/index")}),define("js/guang/list",["jquery","lazyload","dot"],function(e,t,n){e("js/guang/msg"),e("js/guang/img-blink"),e("js/guang/right-side")}),define("js/guang/msg",["jquery","lazyload","dot"],function(e,t,n){function a(){o(".msg-title, .msg-content .content").dotdotdot({wrap:"letter"}),s(o("#msg-list img.lazy"))}var i,o=e("jquery"),s=e("lazyload");e("dot"),o(".guang-page").on("click",".like-icon",function(){var e,t=o(this),n=t.closest(".msg-content").data("id");i!==n&&(i=n,t.toggleClass("liked"),e=t.hasClass("liked")?"/guang/info/praise":"/guang/info/cancelPraise",o.ajax({type:"GET",url:e,data:{id:n,time:(new Date).getTime()}}).then(function(e){200===e.code&&(1*e.data===0?t.next("b").addClass("num-0").children(".num").html("0"):t.next("b").removeClass("num-0").children(".num").html(e.data)),i=!1}))}).on("mouseenter mouseleave",".like-icon",function(){o(this).closest(".like").toggleClass("hover")}),a(),t.dotLazy=a}),define("js/guang/img-blink",["jquery"],function(e,t,n){var a=e("jquery");a(".guang-page").on("mouseover","a img, a .bg-img",function(e){var t=a(e.target);t.closest(".slider").length>0||(t.addClass("blink"),setTimeout(function(){t.removeClass("blink")},100))})}),define("js/guang/right-side",["jquery","lazyload","dot"],function(e,t,n){var a=e("jquery"),i=e("lazyload");e("dot"),a(".ex-reco-context").dotdotdot({wrap:"letter"}),i(a(".ads img.lazy"))}),define("js/guang/detail",["jquery","lazyload","dot","jquery-pjax"],function(e,t,n){function a(){var e=o(".comments-list").find("li").length;0===e?(o(".commnets-resultwrapper").hide(),o(".comments-empty").show()):(o(".commnets-resultwrapper").show(),o(".comments-empty").hide())}function i(e){var t=o("#comment-info").val();return""===t?(alert("评论不能为空"),!1):(u=!0,void o.ajax({url:"/guang/info/comment",data:{id:e,comment:t},type:"post",success:function(e){switch(e.code){case 401:h=!0,location.href="//www.yohobuy.com/signin.html?refer="+window.escape(location.href+"#comment-info");break;case 400:alert(e.message);break;case 200:e.data&&(l.html(e.data.content),c.html(e.data.count),a(),o("#comment-info").val("").keyup())}u=!1}}))}var o=e("jquery"),s=e("lazyload"),r=o("#comment-area"),d=o(".detail-body").data("id"),l=r.find(".comments-wrap"),c=o("#article-comment > .comment-num"),u=!1,h=!1,p=o("#comment-btn"),f=100,m=o("#word-count-tip");e("js/guang/right-side"),e("js/guang/img-blink"),e("js/common/share"),e("jquery-pjax"),s({failure_limit:50}),o("#prise-btn").click(function(){var e,t=!1,n=o(this);t||(n.toggleClass("liked"),e=n.hasClass("liked")?"/guang/info/praise":"/guang/info/cancelPraise",t=!0,o.ajax({type:"GET",url:e,data:{id:d}}).then(function(e){200===e.code&&n.find(".like-num").html(e.data),t=!1}))}).bind("mouseenter mouseleave",function(){o(this).toggleClass("hover")}),o("#collect-btn").click(function(){var e,t,n=!1,a=o(this);n||(a.hasClass("collected")?(e="/guang/info/cancelcollect",t=0):(e="/guang/info/collect",t=1),n=!0,o.ajax({type:"GET",url:e,data:{id:d}}).then(function(e){var i;switch(e.code){case 401:i=/\?col=(1|0)/.test(location.href)?location.href.replace(/\?col=(1|0)/,"?col="+t):location.href+"?col="+t,location.href="//www.yohobuy.com/signin.html?refer="+encodeURI(i);break;case 400:break;case 200:/\?col=(1|0)/.test(location.href)?location.href=location.href.replace(/\?col=(1|0)/,""):a.toggleClass("collected")}n=!1}))}).bind("mouseenter mouseleave",function(){o(this).toggleClass("hover")}),a(),p.click(function(e){return h||u?!1:void(o("#comment-info").val().length-f>0||(e.preventDefault(),i(d)))}),o(document).pjax(".comment-pager a","#pjax-container",{timeout:5e3}),o(document).on("pjax:end",function(){a(),o("html,body").scrollTop(o("#comment-info").offset().top)}),o("#comment-info").keyup(function(){var e,t=o(this).val().length;0===t?(m.html(""),p.addClass("disable")):0>=t-f?(e="还可以输入"+(f-t)+"字",p.removeClass("disable")):(e='已超过<span class="exceed-count">'+(t-f)+"</span>字",p.addClass("disable")),m.html(e)}),o("#comment-info").trigger("keyup")}),define("js/guang/index",["jquery","lazyload","dot","jquery-pjax"],function(e,t,n){var a=e("jquery"),i=e("js/guang/msg");e("jquery-pjax"),e("js/common/slider"),e("js/guang/img-blink"),e("js/guang/right-side"),a("#slider").slider(),a(document).pjax(".pjax-link, .msg-pager a","#pjax-container",{timeout:2e3}),a(document).on("pjax:end",function(){i.dotLazy()})}),define("js/home/entry",["jquery","handlebars","source-map","dot"],function(e,t,n){e("js/home/index"),e("js/home/orders"),e("js/home/favorite"),e("js/home/currency"),e("js/home/returns"),e("js/home/comment"),e("js/home/complaints"),e("js/home/message"),e("js/home/edit"),e("js/home/gift"),e("js/home/validate"),e("js/home/address"),e("js/home/common-address")}),define("js/home/index",["jquery","handlebars","source-map"],function(e,t,n){var a=e("jquery");e("js/home/order-block"),a("#close-message").click(function(){a(".message-tip").slideUp(200)}),function(){var e=a(".na-pager"),t=a(".new-arrival ul"),n=Math.ceil(t.children("li").length/5),i=t.children("li:last-child").outerWidth(),o=1;t.width(t.width()*n),e.click(function(){var e,s=a(this);s.hasClass("next")?(++o,2===o&&s.siblings().removeClass("no-visible"),o===n&&s.addClass("no-visible")):(--o,o===n-1&&s.siblings().removeClass("no-visible"),1===o&&s.addClass("no-visible")),e=-5*(o-1)*i,t.animate({marginLeft:e},400)})}()}), +define("js/home/order-block",["jquery","handlebars","source-map"],function(e,t,n){function a(e){var t={mask:!1,btns:[{id:"cancel-sure",name:"确定并取消订单",btnClass:["cancel-sure"],cb:function(){var t=s(".cancel-dialog :checked"),n=s(".cancel-dialog .cancel-tip");return 0===t.length?void n.html("请选择要取消订单的原因"):void s.ajax({type:"POST",url:"/home/orders/cancelorder",data:{orderCode:e,reason:t.val()}}).then(function(e){200===e.code?(o.close(),history.go(0)):n.html(e.message)})}},{id:"cancel-no",name:"取消",btnClass:["cancel-no"],cb:function(){o.close()}}],content:p,className:"cancel-dialog"};return new l(t)}function i(e,t){var n=!0,a=s(t).parents(".order"),i=n?"您确定要永久删除订单吗?":"您确定要删除订单吗?",c=n?"永久删除后,订单将无法恢复,您将无法对该订单的商品申请售后服务,请谨慎操作。":"删除后,您可以在订单回收站找回该订单,也可以做永久删除。",u=r.compile(h),p=u({deleteMessage:i,deleteTip:c}),f={mask:!1,btns:[{id:"delete-sure",name:"确定",btnClass:["delete-sure"],cb:function(){s.ajax({type:"POST",url:"/home/orders/delOrder",data:{orderCode:e,isFullyDelete:n}}).then(function(e){200===e.code?(o.close(),a.remove(),location.reload()):(o.close(),new d.Alert(e.message).show())})}},{id:"delete-no",name:"取消",btnClass:["delete-no"],cb:function(){o.close()}}],content:p,className:"delete-dialog"};return new l(f)}var o,s=e("jquery"),r=e("handlebars"),d=e("js/common/dialog"),l=d.Dialog,c=d.Confirm,u=s("#cancel-dialog-tpl"),h='<div class="order-delete-confirm"><div class="header"><p>删除订单</p><a href="javascript:;" title="关闭"></a></div><div class="body"><p class="confirm-tip"><i class="icon-doubt"></i>{{deleteMessage}}</p><p class="delete-tip">{{deleteTip}}</p></div></div>',p=u.html();u.remove(),s(".check-logistics").click(function(){s(this).siblings(".logistics").removeClass("hide")}),s(".close-logistics").click(function(){s(this).closest(".logistics").addClass("hide")}),s(".me-orders, .order-detail").on("click",".cancel-order",function(e){o=a(s(this).closest(".order, .order-detail").data("id")),o.show()}).on("click",".confirm-received",function(e){var t=s(this).closest(".order, .order-detail").data("id");o=new c({cb:function(){s.ajax({type:"POST",url:"/home/orders/confirmorder",data:{orderCode:t}}).then(function(e){200===e.code&&(o.close(),history.go(0))})},content:"您确定要确认收货吗?"}),o.show()}).on("click",".order-delete",function(){var e=s(this).closest(".order, .order-detail").data("id");o=i(e,this),o.show()})}),define("js/home/orders",["jquery","handlebars","source-map"],function(e,t,n){function a(e,t,n,a){var i=1,o=1,s=0,r=!1;e.click(function(){r||("0px"===n.css("left")?s=0:(s+=o*a,r=!0),n.stop().animate({left:s},300,function(){r=!1}))}),t.click(function(){var e=n.parent().width()-n.width()+"px";r||(n.css("left")===e?n.css("left",e):(s+=-i*a,r=!0),n.stop().animate({left:s},300,function(){r=!1}))})}var i=e("jquery");e("js/home/order-block"),i(".why").click(function(){return i("#differentBag").show(),!1}),i("#differentBag").click(function(){return!1}),i(document).click(function(){i("#differentBag").hide()}),i(".bag").find("ul").each(function(){var e=i(this).parent().parent().find(".pre"),t=i(this).parent().parent().find(".next"),n=i(this).find("li").eq(0).width(),o=i(this).find("li").size(),s=n*o;i(this).css("width",s),o>5?(e.show(),t.show(),a(e,t,i(this),n)):(e.hide(),t.hide())})}),define("js/home/favorite",["jquery","handlebars","source-map","dot"],function(e,t,n){var a,i,o,s=e("jquery"),r=e("handlebars"),d=e("js/passport/mail-phone-regx").phoneRegx["+86"],l={on:"[ 降价通知 ]",off:"[ 取消通知 ]"},c=location.href.match(/type=(.*)[&]*/);e("dot"),function(){function e(e){y=1*e,u.text(e),f.find(".notice-num").text(5-e)}function t(){c.addClass("hide"),h.addClass("hide"),g.text("订阅成功")}function n(){var t=s(document).scrollTop()+s(window).height()/2;"undefined"==typeof c&&(s("body").append('<div class="body-mask hide"></div>'),c=s(".body-mask")),c.css({height:s(document).height(),width:s(document).width()}).removeClass("hide"),h.removeClass("error"),o.hasClass("noticed")?s.ajax({type:"GET",url:"/home/favorite/cancelnotice",data:{id:i}}).then(function(n){200===n.code?(e(n.data.num),p.addClass("hide"),f.removeClass("hide"),g.text("取消成功"),h.removeClass("hide").css({top:t}),o.closest(".reduction-products").length>0?o.closest(".fav-good").remove():o.removeClass("noticed").text(l.on)):n.message&&(m.text(n.message),h.removeClass("hide").addClass("error").css({top:t}))}):y>=5?(m.text("您的订阅数已经到达上限"),h.removeClass("hide").addClass("error").css({top:t})):(p.removeClass("hide"),f.addClass("hide"),h.removeClass("hide").css({top:t}))}var a,r,c,u,h,p,f,m,g,v,y,b={};0!==s(".fav-products").length&&(a=s(".default-sorts"),r=s(".all-sorts"),u=s(".reduction-notice span"),h=s(".price-notice"),p=s("#price-notice .content"),f=s("#price-notice .success"),m=s("#price-notice .error-message"),g=f.find(".subscribe-or-cancel"),v=s("#notice-phone-num"),b.phone=v.val(),b.change=!1,y=1*u.text(),s("#spread-sort").click(function(){a.slideUp(function(){r.slideDown()})}),s("#retract-sort").click(function(){r.slideUp(function(){a.slideDown()})}),s(".price-down-clock").click(function(){o=s(this),i=o.closest(".fav-good").data("id"),n()}),s('.reduction-filter input[type="checkbox"]').change(function(){location.href=s(this).parent().attr("href")}),s("#price-notice").on("click",".close",function(){t()}).on("click",".price-notice-sure",function(){var n,a;if(h.hasClass("error")||p.hasClass("hide"))t();else{if(n=s.trim(v.val()),""===n||!d.test(n))return a=""===n?"请输入手机号码":"手机号码格式不正确",v.addClass("error"),void s("#price-notice .err-text").removeClass("hide").find("em").html(a);if(v.removeClass("error"),s("#price-notice .err-text").addClass("hide"),""!==b.phone&&b.phone!==n&&!b.change)return s("#price-notice .phone-diff").removeClass("hide"),void(b.change=!0);s.ajax({type:"GET",url:"/home/favorite/notice",data:{mobile:n,id:i}}).then(function(t){200===t.code?(e(t.data.num),f.removeClass("hide"),p.addClass("hide"),b.phone=n,b.change=!1,s("#price-notice .phone-diff").addClass("hide"),o.toggleClass("noticed").text(l.off)):t.message&&(m.text(t.message),h.removeClass("hide").addClass("error"))})}}),s(".has-activity").click(function(){var e=s(this),t=e.next(".activites"),n=e.closest("li");t.hasClass("hide")?(t.removeClass("hide"),n.css("padding-bottom",t.outerHeight())):(t.addClass("hide"),n.css("padding-bottom",""))}))}(),function(){function e(e,t){var n=e.data("id"),i=e.find(".na-goods-ul"),o=a[n],s=o.cur?o.cur:1,r=Math.ceil(o.total/5),d=e.find(".na-pre"),l=e.find(".na-next");s+=t,d.removeClass("hidden"),l.removeClass("hidden"),1===s&&d.addClass("hidden"),s===r&&l.addClass("hidden"),i.animate({marginLeft:-(s-1)*i.parent(".na-goods").width()},200),o.cur=s}function t(e,t){e.css("padding-bottom",t.outerHeight()+10)}var n,a={};0!==s(".fav-brands").length&&(n=r.compile(s("#na-tpl").html()),s(".na-trigger").click(function(){var e,i=s(this),o=i.next(".na-list"),r=i.closest("li");return o.hasClass("hide")?(e=r.data("id"),a[e]&&a[e].cache?(o.removeClass("hide"),void t(r,o)):void s.ajax({type:"GET",url:"/home/favorite/newproduct",data:{id:e}}).then(function(i){var s,d,l;200===i.code&&(d=i.data,l=0===d.length?{}:{naGoods:d},s=n(l),o.removeClass("hide").find(".na-content").html(s),t(r,o),d.length>5&&r.find(".na-next").removeClass("hidden"),a[e]||(a[e]={}),a[e].cache=!0,a[e].total=d.length)})):(o.addClass("hide"),void r.css("padding-bottom",""))}),s(".na-content").on("click",".na-pre, .na-next",function(){var t=s(this),n=t.hasClass("na-pre")?-1:1;e(t.closest(".fav-brand"),n)}))}(),function(){s(".fav-articles").length<0||s(".fav-articles .desc").dotdotdot()}(),c&&c.length&&(a=c[1]),s("#me-checkall").click(function(){s('.checkbox input[type="checkbox"]').prop("checked",s(this).prop("checked"))}),s(".del-favorite").click(function(e){var t=s(this).closest(".fav-row").data("id"),n=s(this).closest(".fav-row").data("shopid"),i=s(this).closest(".fav-row").data("brandorshoptype");e.preventDefault(),s.ajax({type:"GET",url:"/home/favorite/cancel",data:{id:t,shopid:n,brandorshoptype:i,type:a}}).then(function(e){200===e.code&&history.go(0)})}),s("#me-del-checked").click(function(){var e=[],t="商品";if("brand"===a?t="品牌":"article"===a&&(t="文章"),confirm("您确定要删除您收藏的"+t+"吗?")){if(s('.checkbox input[type="checkbox"]:checked').each(function(){e.push(s(this).closest(".fav-row").data("id"))}),0===e.length)return void alert("请选中您要移除的"+t);s.ajax({type:"GET",url:"/home/favorite/cancel",data:{id:e.join(","),type:a}}).then(function(e){history.go(0)})}}),location.href.match(/is_reduction=(.*)[&]*/)&&s(".reductionChecked").attr("checked",!0),location.href.match(/is_promotion=(.*)[&]*/)&&s(".activityChecked").attr("checked",!0)}),define("js/home/currency",["jquery"],function(e,t,n){var a=e("jquery");a(".filter-select").change(function(){location.href=a(this).val()})}),define("js/home/returns",["jquery","handlebars","source-map"],function(e,t,n){e("js/home/returns-detail"),e("js/home/returns-apply")}),define("js/home/returns-detail",["jquery","handlebars","source-map"],function(e,t,n){function a(){w=C[y]?C[y]:"",g.html(w+" 快递单号:"+b),f.val(y),m.val(b)}function i(){var e={};if(e.number=m.val(),e.id=1*f.val(),e.id){if(e.number)return e;alert("请填入快递单号")}else alert("请选择快递公司");return!1}function o(){var e=i();e&&d.ajax({type:"POST",url:"/home/returns/setExpressNumber",data:{id:v,isChange:_,expressId:e.id,expressNumber:e.number,expressCompany:C[e.id]}}).then(function(t){200===t.code?(y=e.id,b=e.number,u.eq(2).addClass("act")):alert(t.message),a(),p.removeClass("in-edit")})}function s(e,t){var n=l.compile(k),a=n({messageIcon:"icon-warn",messageTitle:"取消申请",messageSummary:"您确定要请取消申请吗?"}),i={mask:!0,btns:[{id:"cancel-sure",name:"确定",btnClass:["cancel-sure"],cb:function(){d.ajax({type:"POST",url:t,data:{id:e}}).then(function(e){r.close(),200===e.code?location.reload():new c.Alert(e.message).show()})}},{id:"cancel-no",name:"取消",btnClass:["cancel-no"],cb:function(){r.close()}}],content:a,className:"cancel-dialog"};return new x(i)}var r,d=e("jquery"),l=e("handlebars"),c=e("js/common/dialog"),u=d(".visual-return-state li"),h=d(".detail-container"),p=d(".courier-code"),f=d("#express-company"),m=d("#express-number"),g=d(".express-view-box > span"),v=d("#return-id").val(),y=d("#express-old-id").val(),b=m.val(),w="",C={},_=!1,x=c.Dialog,k='<p class="message-title"><i class="{{messageIcon}}"></i>{{messageTitle}}</p><p class="message-summary">{{messageSummary}}</p>';h.parent().hasClass("exchange-detail")&&(_=!0),f.val(y),h.find(".company-list").each(function(){var e=d(this).data();C[e.id]=e.name}),d("#modify").click(function(){p.addClass("in-edit")}),d("#submit-btn").click(function(){o()}),d(".cancel-return").on("click",".cancel-trigger",function(){r=s(d(this).data("id"),d(this).data("url")),r.show()})}),define("js/home/returns-apply",["jquery","handlebars","source-map"],function(e,t,n){function a(e){c.ajax({type:"POST",url:"/home/returns/getDelivery",data:{areaCode:e}}).then(function(e){var t="";200===e.code&&(c.each(e.data,function(e,n){var a="";"Y"===n.is_default&&(a='checked="checked"'),t+='<input type="radio" name="delivery-tpye" value="'+n.id+'" '+a+'"">'+n.name}),S.html(t))})}function i(e){C.hide(),2===e?(_.show(),x.hide(),C.hide()):3===e?(x.show(),_.hide(),C.hide()):4===e&&(C.show(),_.hide(),x.hide())}function o(){var e=[],t="换货";return I&&(t="退货"),p.length||(D="没有可以"+t+"的商品"),p.each(function(){var n,a=c(this).parent().parent(),i=a.next();D.length||c(this).prop("checked")&&(n={product_skn:a.find('input[name="skn"]').val(),product_skc:a.find('input[name="skc"]').val(),product_sku:a.find('input[name="sku"]').val(),goods_type:a.find('input[name="typeid"]').val(),last_price:a.find('input[name="price"]').val(),reason:1*a.find(".return-reason").val()},I?n.returned_reason=n.reason:(n.exchange_reason=n.reason,n.new_goods_id=1*a.find(".exchange-color").val(),n.new_product_sku=1*a.find(".exchange-size").val(),D||n.new_goods_id||(D="请选择要换的颜色"),D||n.new_product_sku||(D="请选择要换的尺码")),D||n.reason||(D="请选择"+t+"原因"),4!==n.reason&&6!==n.reason&&8!==n.reason||(n.remark=c.trim(i.find("textarea").val()),n.evidence_images=[],i.find('input[name="imgs"]').each(function(){n.evidence_images.push(c(this).val())}),D||n.remark||(D="请填写"+t+"描述"),D||n.evidence_images.length||(D="请上传图片")),delete n.reason,e.push(n))}),D||e.length||(D="请选择要"+t+"的商品"),e}function s(){var e={};return e.goods=o(),e.payment={},g.each(function(){c(this).prop("checked")&&(e.payment.return_amount_mode=1*c(this).val())}),D||e.payment.return_amount_mode||(D="请选择退款方式"),2===e.payment.return_amount_mode?(e.payment.province=v.val(),e.payment.city=y.val(),e.payment.area_code=b.val(),!D&&1*!e.payment.area_code&&(D="请选择银行所在地"),e.payment.bank_name=c.trim(w.find('input[name="bank-name"]').val()),D||e.payment.bank_name||(D="请填写银行名称"),e.payment.payee_name=c.trim(w.find('input[name="payee-name"]').val()),D||e.payment.payee_name||(D="请填写收款人姓名"),e.payment.bank_card=c.trim(w.find('input[name="bank-card"]').val()),D||e.payment.bank_card||(D="请填写收款账户")):3===e.payment.return_amount_mode&&(e.payment.alipay_name=c.trim(w.find('input[name="alipay-name"]').val()),D||e.payment.alipay_name||(D="请填写收款人姓名"),e.payment.alipay_account=c.trim(w.find('input[name="alipay-account"]').val()),D||e.payment.alipay_account||(D="请填写收款账户")),e}function r(){var e={};return e.goods=o(),e.consigneeName=c.trim(k.find('input[name="name"]').val()),D||e.consigneeName||(D="请填写收货人姓名"),e.areaCode=b.val(),!D&&1*!e.areaCode&&(D="请选择地区"),e.address=c.trim(k.find('input[name="address"]').val()),D||e.address||(D="请填写详细地址"),e.mobile=c.trim(k.find('input[name="phone"]').val()),e.mobile===U?e.mobile=F:D||e.mobile||(D="请填写手机号"),e.zipCode=c.trim(k.find('input[name="postcode"]').val()),e.deliveryType=k.find('input[name="delivery-tpye"]:checked').val(),D||e.deliveryType||(D="请选择商品返回方式"),e}function d(e){var t="○";e?(T.addClass("applying"),l=setInterval(function(){q.text(t),t.length>3&&(t=""),t+="○"},600)):(T.removeClass("applying"),clearInterval(l))}var l,c=e("jquery"),u=e("js/home/common-address"),h=c("#goods-table"),p=h.find('input[type="checkbox"]'),f=h.find(".return-reason"),m=h.find("input[type=file]"),g=c('input[name="refund-type"]'),v=c("#province"),y=c("#city"),b=c("#area"),w=c("#refund-pay-info"),C=w.find(".type-yoho"),_=w.find(".type-bank"),x=w.find(".type-alipay"),k=c(".exchange-detail"),j=k.find('input[name="hide-phone"]'),S=k.find(".refund-mode"),T=c(".submit-box"),q=T.find(".wait-gif span"),I=0,E=c("#order-code").val(),A=k.find('input[name="hide-area"]').val(),F=j.val(),U="",D="",P={};e("plugin/jquery.qupload"),F&&(j.remove(),U=F.replace(/(\d{3})\d{4}(\d{4})/,"$1****$2"),k.find('input[name="phone"]').val(U)),h.on("mouseenter mouseleave",".doubt",function(e){var t=c(this),n=t.parents(".special-tip"),a=n.find(".special-content"),i=n.find("> span").width();"mouseenter"===e.type?a.css({left:i+10,zIndex:1}).show():"mouseleave"===e.type&&a.css({zIndxex:0}).hide()}),w.length?(I=1,g.each(function(){c(this).prop("checked")&&i(1*c(this).val())})):A&&a(A),A=A?A:"",u.loadAllData(A,{areaDomId:"area"}),h.find(".sizeinfo").each(function(){var e=[];c(this).children().each(function(){e.push(c(this).data())}),P[c(this).data().id]=e}),f.change(function(){var e=c(this).parent().parent(),t=1*c(this).val();4===t||6===t||8===t?e.next().show():e.next().hide()}),p.change(function(){var e=c(this).parent().parent();c(this).prop("checked")?e.find("select").prop("disabled",!1):(e.find("select").val(0).prop("disabled",!0),e.next().hide())}),h.on("change",".exchange-color",function(){var e=c(this).closest(".exchange-choose-wrap"),t='<option value="0">请选择尺码</option>',n=c(this).val();P[n]&&c.each(P[n],function(e,n){t+='<option value="'+n.id+'">'+n.name+"</option>"}),e.find(".exchange-size").html(t).val(0)}),h.on("click",".btn-del",function(){c(this).parent().empty()}),m.each(function(e){var t=c("#upload-img-"+e),n=t.closest(".problem-description");t.qupload({button_image_url:"",upload_url:"//www.yohobuy.com/home/returns/imgUpload",file_post_name:"fileData",button_text:'<span class="btn_upload_text">上传图片</span>',button_text_style:".btn_upload_text{color: #ffffff;}",button_width:116,button_height:33,button_text_left_padding:32,button_text_top_padding:8,button_action:window.SWFUpload.BUTTON_ACTION.SELECT_FILE,file_size_limit:"10240",file_types:"*.jpg;*.jpeg;*.png;*.bmp",uploadSuccessed:function(e){var t,a,i=n.find("li"),o=!1;t=JSON.parse(e).imgList[0],a='<span class="btn-del" title="删除"></span><img src="'+t[0]+'" width="126" height="126"><input type="hidden" name="imgs" value="'+t.imgRelUrl+'">',i.each(function(){o||c(this).find("img").length||(o=!0,c(this).html(a))})}})}),k.on("change","#area",function(){var e=1*c(this).val();e&&a(e)}),g.change(function(){var e=1*c(this).val();i(e)}),c(".save-btn").click(function(){var e,t;return D="",I?(e="/home/returns/saveRefund",t=s()):(e="/home/returns/saveExchange",t=r()),t.orderCode=E,D?void alert(D):(d(!0),void c.ajax({type:"POST",url:e,data:t}).then(function(e){200===e.code?e.data&&e.data.refer&&(window.location.href=e.data.refer):(alert(e.message),d(!1))}))})}),define("js/home/common-address",["jquery","handlebars","source-map"],function(e,t,n){var a=e("jquery"),i=e("js/common/dialog"),o=i.Alert,s={provinceDomId:"province",cityDomId:"city",areaDomId:"areaCode",initDomIds:function(e){var t=this;void 0!==e.provinceDomId&&(t.provinceDomId=e.provinceDomId),void 0!==e.cityDomId&&(t.cityDomId=e.cityDomId),void 0!==e.areaDomId&&(t.areaDomId=e.areaDomId)},loadAreaData:function(e,t,n,i){var s,r,d,l,c=this,u=a("#"+t),h=0,p="";u.empty(),91>e&&(a("#"+c.areaDomId).empty(),a("#county").attr("disabled","disabled")),a.ajax({type:"GET",url:"/home/address/area",data:"id="+e,success:function(e){if(e.code=200,200!==e.code)return s=new o("暂无数据"),s.show(),!1;u.append('<option value="0">'+n+"</option>");for(h in e.options)e.options[h]&&(r=e.options[h],p=t===c.areaDomId&&"Y"===r.is_support?"*":"",d=r.value,l="","undefined"!=typeof i&&0!==i&&d===i.substr(0,d.length)&&(l="selected"),u.append('<option value="'+d+'" '+l+">"+p+r.text+"</option>"))}})},bindAreaChange:function(e){var t=this;void 0===a("#"+t.provinceDomId).data("events")&&(a("#"+t.provinceDomId).change(function(){var n=a("#"+t.provinceDomId).val();"0"!==n&&(t.loadAreaData(n,t.cityDomId,"请选择城市",n),a("#"+t.areaDomId).hide(),t.showAreaSel(e.dispDomId))}),a("#"+this.cityDomId).change(function(){var n=a("#"+t.cityDomId).val();"0"!==n&&(t.loadAreaData(n,t.areaDomId,"请选择区县",n),a("#"+t.areaDomId).show(),t.showAreaSel(e.dispDomId))}),a("#"+t.areaDomId).change(function(){t.showAreaSel(e.dispDomId)}),t.showAreaSel(e.dispDomId))},showAreaSel:function(e){var t=this,n="",i=a("#"+t.provinceDomId).find("option:selected").text(),o=a("#"+t.cityDomId).find("option:selected").text(),s=a("#"+t.areaDomId).find("option:selected").text();void 0!==e&&""!==e&&(i.indexOf("选择")<0&&(n=i),""!==o&&o.indexOf("选择")<0&&(n+=","+o),""!==s&&s.indexOf("选择")<0&&(n+=","+s),a("#"+e).html(n))},loadAllData:function(e,t){var n=this;n.initDomIds(t),e+="",91>e?(n.loadAreaData(0,n.provinceDomId,"请选择省份",""),a("#"+n.areaDomId).hide(),a("#"+n.cityDomId).html('<option value="0">请选择市</option>')):4===e.length?(n.loadAreaData(0,n.provinceDomId,"请选择省份",e),n.loadAreaData(e.substr(0,2),n.cityDomId,"请选择城市",e),n.loadAreaData(e,n.areaDomId,"请选择区县",e),a("#"+n.areaDomId).show()):6===e.length&&(n.loadAreaData(0,n.provinceDomId,"请选择省份",e),n.loadAreaData(e.substr(0,2),n.cityDomId,"请选择城市",e),n.loadAreaData(e.substr(0,4),n.areaDomId,"请选择区县",e),a("#"+this.areaDomId).show()),n.bindAreaChange(t)}};n.exports=s}),define("plugin/jquery.qupload",["jquery"],function(e,t,n){function a(){0==l&&(s("body").append('<div id="progressDialog" style="display: none;width:370px;height:80px !important;"><div style="padding:10px 20px;"><span id="curUploadStatus">图片上传中……请稍等</span><div id="progress"></div></div></div>'),l=1)}function i(e,t){s("#uploadNum").html(e),s("#totalUploadNum").html(t)}function o(e,t){function n(e,n){this.options[e]=void 0==t[e]?n:t[e]}function a(e){try{}catch(t){this.debug(t)}}function o(e,t,n){var a;try{if(t===r.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED)return void alert("您尝试上传太多文件.\n"+(0===n?"您已达到上传限制.":"您最多还可以 "+(n>1?"上传 "+n+"文件.":"一个文件.")));switch(t){case r.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:a="文件超过"+C.file_size_limit/1024+"M",alert(a),this.debug("Error Code: File too big, File name: "+e.name+", File size: "+e.size+", Message: "+n);break;case r.QUEUE_ERROR.ZERO_BYTE_FILE:alert("请上传有内容的文件!"),this.debug("Error Code: Zero byte file, File name: "+e.name+", File size: "+e.size+", Message: "+n);break;case r.QUEUE_ERROR.INVALID_FILETYPE:alert("请上传指定类型的文件!"),this.debug("Error Code: Invalid File Type, File name: "+e.name+", File size: "+e.size+", Message: "+n);break;default:alert("上传文件失败,请稍后在试!"),this.debug("Error Code: "+t+", File name: "+e.name+", File size: "+e.size+", Message: "+n)}}catch(i){this.debug(i)}}function s(){null!=y&&y()}function l(e,t){try{e>0&&(b=e,w=1,i(w,b),this.startUpload())}catch(n){this.debug(n)}}function c(e){this.addPostParam("_key",v)}function u(e,t,n){Math.ceil(t/n*100)}function h(e,t){w++,i(w,b),null!=g&&g(t)}function p(e,t,n){try{if(t===r.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED)return void alert("您尝试上传太多文件.\n"+(0===n?"您已达到上传限制.":"您最多还可以 "+(n>1?"上传 "+n+"文件.":"一个文件.")));switch(t){case r.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:alert("Error Code: 文件太大。 文件名为: "+e.name+", 大小为: "+e.size+", Message: "+n);break;case r.QUEUE_ERROR.ZERO_BYTE_FILE:alert("Error Code: 文件为0, 文件名为: "+e.name+", 大小为: "+e.size+", Message: "+n);break;case r.QUEUE_ERROR.INVALID_FILETYPE:alert("Error Code: 文件类型不合要求, 文件名为: "+e.name+", 大小为: "+e.size+", Message: "+n);break;default:alert("上传出错Error Code: "+t+", File name: "+e.name+", File size: "+e.size+", Message: "+n)}}catch(a){this.debug(a)}}function f(e){}function m(e){}var g=null;void 0!=t.uploadSuccessed&&(g=t.uploadSuccessed);var v="";void 0!=t.uploadKey&&(v=t.uploadKey);var y=null;void 0!=t.preupload&&(y=t.preupload);var b=0,w=0;this.options=t;this.options.errmsg_box;n("flash_url","http://static.yohobuy.com/admin/js/swfupload/swfupload.swf"),n("upload_url","http://upload.yohobuy.com"),n("file_post_name","Filedata"),n("file_size_limit","2 MB"),n("file_types","*.*"),n("file_types_description","All Files"),n("file_upload_limit",d),n("file_queue_limit",0),n("button_image_url","http://static.yohobuy.com/admin/images/btn_swfupload.png"),n("button_width","104"),n("button_height","20"),n("button_text",'<span class="btn_upload_xzzp">选择本地照片</span>'),n("button_text_style",".btn_upload_xzzp{color:#ffffff}"),n("button_text_left_padding",24),n("button_text_top_padding",0),n("button_window_mode","TRANSPARENT"),n("button_cursor","-2");var C={flash_url:this.options.flash_url,upload_url:this.options.upload_url,file_post_name:this.options.file_post_name,file_size_limit:this.options.file_size_limit,file_types:this.options.file_types,file_types_description:this.options.file_types_description,file_upload_limit:this.options.file_upload_limit,file_queue_limit:this.options.file_queue_limit,prevent_swf_caching:!1,preserve_relative_urls:!1,custom_settings:{},debug:!1,button_image_url:this.options.button_image_url,button_width:this.options.button_width,button_height:this.options.button_height,button_placeholder_id:e,button_text:this.options.button_text,button_text_style:this.options.button_text_style,button_text_left_padding:this.options.button_text_left_padding,button_text_top_padding:this.options.button_text_top_padding,button_window_mode:this.options.button_window_mode,button_cursor:this.options.button_cursor,file_dialog_start_handler:s,file_queued_handler:a,file_queue_error_handler:o,file_dialog_complete_handler:l,upload_start_handler:c,upload_progress_handler:u,upload_error_handler:p,upload_success_handler:h,upload_complete_handler:f,queue_complete_handler:m,button_action:this.options.button_action};new r(C)}var s=e("jquery"),r=e("plugin/swfupload.queue").SWFUpload,d=6;s.fn.extend({qupload:function(e){a(),o(s(this).attr("id"),e)}});var l=0;window.SWFUpload=r}),define("plugin/swfupload.queue",[],function(e,t,n){var a=e("plugin/swfupload").SWFUpload;"function"==typeof a&&(a.queue={},a.prototype.initSettings=function(e){return function(){"function"==typeof e&&e.call(this),this.queueSettings={},this.queueSettings.queue_cancelled_flag=!1,this.queueSettings.queue_upload_count=0,this.queueSettings.user_upload_complete_handler=this.settings.upload_complete_handler,this.queueSettings.user_upload_start_handler=this.settings.upload_start_handler,this.settings.upload_complete_handler=a.queue.uploadCompleteHandler,this.settings.upload_start_handler=a.queue.uploadStartHandler,this.settings.queue_complete_handler=this.settings.queue_complete_handler||null}}(a.prototype.initSettings),a.prototype.startUpload=function(e){this.queueSettings.queue_cancelled_flag=!1,this.callFlash("StartUpload",[e])},a.prototype.cancelQueue=function(){this.queueSettings.queue_cancelled_flag=!0,this.stopUpload();for(var e=this.getStats();e.files_queued>0;)this.cancelUpload(),e=this.getStats()},a.queue.uploadStartHandler=function(e){var t;return"function"==typeof this.queueSettings.user_upload_start_handler&&(t=this.queueSettings.user_upload_start_handler.call(this,e)),t=t!==!1,this.queueSettings.queue_cancelled_flag=!t,t},a.queue.uploadCompleteHandler=function(e){var t,n=this.queueSettings.user_upload_complete_handler;if(e.filestatus===a.FILE_STATUS.COMPLETE&&this.queueSettings.queue_upload_count++,t="function"==typeof n?n.call(this,e)!==!1:e.filestatus!==a.FILE_STATUS.QUEUED){var i=this.getStats();i.files_queued>0&&this.queueSettings.queue_cancelled_flag===!1?this.startUpload():this.queueSettings.queue_cancelled_flag===!1?(this.queueEvent("queue_complete_handler",[this.queueSettings.queue_upload_count]),this.queueSettings.queue_upload_count=0):(this.queueSettings.queue_cancelled_flag=!1,this.queueSettings.queue_upload_count=0)}}),t.SWFUpload=a}),define("plugin/swfupload",[],function(require,exports,module){var SWFUpload;void 0==SWFUpload&&(SWFUpload=function(e){this.initSWFUpload(e)}),SWFUpload.prototype.initSWFUpload=function(e){try{this.customSettings={},this.settings=e,this.eventQueue=[],this.movieName="SWFUpload_"+SWFUpload.movieCount++,this.movieElement=null,SWFUpload.instances[this.movieName]=this,this.initSettings(),this.loadFlash(),this.displayDebugInfo()}catch(t){throw delete SWFUpload.instances[this.movieName],t}},SWFUpload.instances={},SWFUpload.movieCount=0,SWFUpload.version="2.2.0 2009-03-25",SWFUpload.QUEUE_ERROR={QUEUE_LIMIT_EXCEEDED:-100,FILE_EXCEEDS_SIZE_LIMIT:-110,ZERO_BYTE_FILE:-120,INVALID_FILETYPE:-130},SWFUpload.UPLOAD_ERROR={HTTP_ERROR:-200,MISSING_UPLOAD_URL:-210,IO_ERROR:-220,SECURITY_ERROR:-230,UPLOAD_LIMIT_EXCEEDED:-240,UPLOAD_FAILED:-250,SPECIFIED_FILE_ID_NOT_FOUND:-260,FILE_VALIDATION_FAILED:-270,FILE_CANCELLED:-280,UPLOAD_STOPPED:-290},SWFUpload.FILE_STATUS={QUEUED:-1,IN_PROGRESS:-2,ERROR:-3,COMPLETE:-4,CANCELLED:-5},SWFUpload.BUTTON_ACTION={SELECT_FILE:-100,SELECT_FILES:-110,START_UPLOAD:-120},SWFUpload.CURSOR={ARROW:-1,HAND:-2},SWFUpload.WINDOW_MODE={WINDOW:"window",TRANSPARENT:"transparent",OPAQUE:"opaque"},SWFUpload.completeURL=function(e){if("string"!=typeof e||e.match(/^https?:\/\//i)||e.match(/^\//))return e;var t=(window.location.protocol+"//"+window.location.hostname+(window.location.port?":"+window.location.port:""),window.location.pathname.lastIndexOf("/"));return 0>=t?path="/":path=window.location.pathname.substr(0,t)+"/",path+e},SWFUpload.prototype.initSettings=function(){this.ensureDefault=function(e,t){this.settings[e]=void 0==this.settings[e]?t:this.settings[e]},this.ensureDefault("upload_url",""),this.ensureDefault("preserve_relative_urls",!1),this.ensureDefault("file_post_name","Filedata"),this.ensureDefault("post_params",{}),this.ensureDefault("use_query_string",!1),this.ensureDefault("requeue_on_error",!1),this.ensureDefault("http_success",[]),this.ensureDefault("assume_success_timeout",0),this.ensureDefault("file_types","*.*"),this.ensureDefault("file_types_description","All Files"),this.ensureDefault("file_size_limit",0),this.ensureDefault("file_upload_limit",0),this.ensureDefault("file_queue_limit",0),this.ensureDefault("flash_url","swfupload.swf"),this.ensureDefault("prevent_swf_caching",!0),this.ensureDefault("button_image_url",""),this.ensureDefault("button_width",1),this.ensureDefault("button_height",1),this.ensureDefault("button_text",""),this.ensureDefault("button_text_style","color: #000000; font-size: 16pt;"),this.ensureDefault("button_text_top_padding",0),this.ensureDefault("button_text_left_padding",0),this.ensureDefault("button_action",SWFUpload.BUTTON_ACTION.SELECT_FILES),this.ensureDefault("button_disabled",!1),this.ensureDefault("button_placeholder_id",""),this.ensureDefault("button_placeholder",null),this.ensureDefault("button_cursor",SWFUpload.CURSOR.ARROW),this.ensureDefault("button_window_mode",SWFUpload.WINDOW_MODE.WINDOW),this.ensureDefault("debug",!1),this.settings.debug_enabled=this.settings.debug,this.settings.return_upload_start_handler=this.returnUploadStart,this.ensureDefault("swfupload_loaded_handler",null),this.ensureDefault("file_dialog_start_handler",null),this.ensureDefault("file_queued_handler",null),this.ensureDefault("file_queue_error_handler",null),this.ensureDefault("file_dialog_complete_handler",null),this.ensureDefault("upload_start_handler",null),this.ensureDefault("upload_progress_handler",null),this.ensureDefault("upload_error_handler",null),this.ensureDefault("upload_success_handler",null),this.ensureDefault("upload_complete_handler",null),this.ensureDefault("debug_handler",this.debugMessage),this.ensureDefault("custom_settings",{}),this.customSettings=this.settings.custom_settings,this.settings.prevent_swf_caching&&(this.settings.flash_url=this.settings.flash_url+(this.settings.flash_url.indexOf("?")<0?"?":"&")+"preventswfcaching="+(new Date).getTime()),this.settings.preserve_relative_urls||(this.settings.upload_url=SWFUpload.completeURL(this.settings.upload_url),this.settings.button_image_url&&(this.settings.button_image_url=SWFUpload.completeURL(this.settings.button_image_url))),delete this.ensureDefault},SWFUpload.prototype.loadFlash=function(){var e,t;if(null!==document.getElementById(this.movieName))throw"ID "+this.movieName+" is already in use. The Flash Object could not be added";if(e=document.getElementById(this.settings.button_placeholder_id)||this.settings.button_placeholder,void 0==e)throw"Could not find the placeholder element: "+this.settings.button_placeholder_id;t=document.createElement("div"),t.innerHTML=this.getFlashHTML(),e.parentNode.replaceChild(t.firstChild,e),void 0==window[this.movieName]&&(window[this.movieName]=this.getMovieElement())},SWFUpload.prototype.getFlashHTML=function(){return['<object id="',this.movieName,'" type="application/x-shockwave-flash" data="',this.settings.flash_url,'" width="',this.settings.button_width,'" height="',this.settings.button_height,'" class="swfupload">','<param name="wmode" value="',this.settings.button_window_mode,'" />','<param name="movie" value="',this.settings.flash_url,'" />','<param name="quality" value="high" />','<param name="menu" value="false" />','<param name="allowScriptAccess" value="always" />','<param name="flashvars" value="'+this.getFlashVars()+'" />',"</object>"].join("")},SWFUpload.prototype.getFlashVars=function(){var e=this.buildParamString(),t=this.settings.http_success.join(",");return["movieName=",encodeURIComponent(this.movieName),"&uploadURL=",encodeURIComponent(this.settings.upload_url),"&useQueryString=",encodeURIComponent(this.settings.use_query_string),"&requeueOnError=",encodeURIComponent(this.settings.requeue_on_error),"&httpSuccess=",encodeURIComponent(t),"&assumeSuccessTimeout=",encodeURIComponent(this.settings.assume_success_timeout),"&params=",encodeURIComponent(e),"&filePostName=",encodeURIComponent(this.settings.file_post_name),"&fileTypes=",encodeURIComponent(this.settings.file_types),"&fileTypesDescription=",encodeURIComponent(this.settings.file_types_description),"&fileSizeLimit=",encodeURIComponent(this.settings.file_size_limit),"&fileUploadLimit=",encodeURIComponent(this.settings.file_upload_limit),"&fileQueueLimit=",encodeURIComponent(this.settings.file_queue_limit),"&debugEnabled=",encodeURIComponent(this.settings.debug_enabled),"&buttonImageURL=",encodeURIComponent(this.settings.button_image_url),"&buttonWidth=",encodeURIComponent(this.settings.button_width),"&buttonHeight=",encodeURIComponent(this.settings.button_height),"&buttonText=",encodeURIComponent(this.settings.button_text),"&buttonTextTopPadding=",encodeURIComponent(this.settings.button_text_top_padding),"&buttonTextLeftPadding=",encodeURIComponent(this.settings.button_text_left_padding),"&buttonTextStyle=",encodeURIComponent(this.settings.button_text_style),"&buttonAction=",encodeURIComponent(this.settings.button_action),"&buttonDisabled=",encodeURIComponent(this.settings.button_disabled),"&buttonCursor=",encodeURIComponent(this.settings.button_cursor)].join(""); +},SWFUpload.prototype.getMovieElement=function(){if(void 0==this.movieElement&&(this.movieElement=document.getElementById(this.movieName)),null===this.movieElement)throw"Could not find Flash element";return this.movieElement},SWFUpload.prototype.buildParamString=function(){var e=this.settings.post_params,t=[];if("object"==typeof e)for(var n in e)e.hasOwnProperty(n)&&t.push(encodeURIComponent(n.toString())+"="+encodeURIComponent(e[n].toString()));return t.join("&")},SWFUpload.prototype.destroy=function(){try{this.cancelUpload(null,!1);var e=null;if(e=this.getMovieElement(),e&&"unknown"==typeof e.CallFunction){for(var t in e)try{"function"==typeof e[t]&&(e[t]=null)}catch(n){}try{e.parentNode.removeChild(e)}catch(a){}}return window[this.movieName]=null,SWFUpload.instances[this.movieName]=null,delete SWFUpload.instances[this.movieName],this.movieElement=null,this.settings=null,this.customSettings=null,this.eventQueue=null,this.movieName=null,!0}catch(i){return!1}},SWFUpload.prototype.displayDebugInfo=function(){this.debug(["---SWFUpload Instance Info---\n","Version: ",SWFUpload.version,"\n","Movie Name: ",this.movieName,"\n","Settings:\n"," ","upload_url: ",this.settings.upload_url,"\n"," ","flash_url: ",this.settings.flash_url,"\n"," ","use_query_string: ",this.settings.use_query_string.toString(),"\n"," ","requeue_on_error: ",this.settings.requeue_on_error.toString(),"\n"," ","http_success: ",this.settings.http_success.join(", "),"\n"," ","assume_success_timeout: ",this.settings.assume_success_timeout,"\n"," ","file_post_name: ",this.settings.file_post_name,"\n"," ","post_params: ",this.settings.post_params.toString(),"\n"," ","file_types: ",this.settings.file_types,"\n"," ","file_types_description: ",this.settings.file_types_description,"\n"," ","file_size_limit: ",this.settings.file_size_limit,"\n"," ","file_upload_limit: ",this.settings.file_upload_limit,"\n"," ","file_queue_limit: ",this.settings.file_queue_limit,"\n"," ","debug: ",this.settings.debug.toString(),"\n"," ","prevent_swf_caching: ",this.settings.prevent_swf_caching.toString(),"\n"," ","button_placeholder_id: ",this.settings.button_placeholder_id.toString(),"\n"," ","button_placeholder: ",this.settings.button_placeholder?"Set":"Not Set","\n"," ","button_image_url: ",this.settings.button_image_url.toString(),"\n"," ","button_width: ",this.settings.button_width.toString(),"\n"," ","button_height: ",this.settings.button_height.toString(),"\n"," ","button_text: ",this.settings.button_text.toString(),"\n"," ","button_text_style: ",this.settings.button_text_style.toString(),"\n"," ","button_text_top_padding: ",this.settings.button_text_top_padding.toString(),"\n"," ","button_text_left_padding: ",this.settings.button_text_left_padding.toString(),"\n"," ","button_action: ",this.settings.button_action.toString(),"\n"," ","button_disabled: ",this.settings.button_disabled.toString(),"\n"," ","custom_settings: ",this.settings.custom_settings.toString(),"\n","Event Handlers:\n"," ","swfupload_loaded_handler assigned: ",("function"==typeof this.settings.swfupload_loaded_handler).toString(),"\n"," ","file_dialog_start_handler assigned: ",("function"==typeof this.settings.file_dialog_start_handler).toString(),"\n"," ","file_queued_handler assigned: ",("function"==typeof this.settings.file_queued_handler).toString(),"\n"," ","file_queue_error_handler assigned: ",("function"==typeof this.settings.file_queue_error_handler).toString(),"\n"," ","upload_start_handler assigned: ",("function"==typeof this.settings.upload_start_handler).toString(),"\n"," ","upload_progress_handler assigned: ",("function"==typeof this.settings.upload_progress_handler).toString(),"\n"," ","upload_error_handler assigned: ",("function"==typeof this.settings.upload_error_handler).toString(),"\n"," ","upload_success_handler assigned: ",("function"==typeof this.settings.upload_success_handler).toString(),"\n"," ","upload_complete_handler assigned: ",("function"==typeof this.settings.upload_complete_handler).toString(),"\n"," ","debug_handler assigned: ",("function"==typeof this.settings.debug_handler).toString(),"\n"].join(""))},SWFUpload.prototype.addSetting=function(e,t,n){return void 0==t?this.settings[e]=n:this.settings[e]=t},SWFUpload.prototype.getSetting=function(e){return void 0!=this.settings[e]?this.settings[e]:""},SWFUpload.prototype.callFlash=function(functionName,argumentArray){argumentArray=argumentArray||[];var movieElement=this.getMovieElement(),returnValue,returnString;try{returnString=movieElement.CallFunction('<invoke name="'+functionName+'" returntype="javascript">'+__flash__argumentsToXML(argumentArray,0)+"</invoke>"),returnValue=eval(returnString)}catch(ex){throw"Call to "+functionName+" failed"}return void 0!=returnValue&&"object"==typeof returnValue.post&&(returnValue=this.unescapeFilePostParams(returnValue)),returnValue},SWFUpload.prototype.selectFile=function(){this.callFlash("SelectFile")},SWFUpload.prototype.selectFiles=function(){this.callFlash("SelectFiles")},SWFUpload.prototype.startUpload=function(e){this.callFlash("StartUpload",[e])},SWFUpload.prototype.cancelUpload=function(e,t){t!==!1&&(t=!0),this.callFlash("CancelUpload",[e,t])},SWFUpload.prototype.stopUpload=function(){this.callFlash("StopUpload")},SWFUpload.prototype.getStats=function(){return this.callFlash("GetStats")},SWFUpload.prototype.setStats=function(e){this.callFlash("SetStats",[e])},SWFUpload.prototype.getFile=function(e){return"number"==typeof e?this.callFlash("GetFileByIndex",[e]):this.callFlash("GetFile",[e])},SWFUpload.prototype.addFileParam=function(e,t,n){return this.callFlash("AddFileParam",[e,t,n])},SWFUpload.prototype.removeFileParam=function(e,t){this.callFlash("RemoveFileParam",[e,t])},SWFUpload.prototype.setUploadURL=function(e){this.settings.upload_url=e.toString(),this.callFlash("SetUploadURL",[e])},SWFUpload.prototype.setPostParams=function(e){this.settings.post_params=e,this.callFlash("SetPostParams",[e])},SWFUpload.prototype.addPostParam=function(e,t){this.settings.post_params[e]=t,this.callFlash("SetPostParams",[this.settings.post_params])},SWFUpload.prototype.removePostParam=function(e){delete this.settings.post_params[e],this.callFlash("SetPostParams",[this.settings.post_params])},SWFUpload.prototype.setFileTypes=function(e,t){this.settings.file_types=e,this.settings.file_types_description=t,this.callFlash("SetFileTypes",[e,t])},SWFUpload.prototype.setFileSizeLimit=function(e){this.settings.file_size_limit=e,this.callFlash("SetFileSizeLimit",[e])},SWFUpload.prototype.setFileUploadLimit=function(e){this.settings.file_upload_limit=e,this.callFlash("SetFileUploadLimit",[e])},SWFUpload.prototype.setFileQueueLimit=function(e){this.settings.file_queue_limit=e,this.callFlash("SetFileQueueLimit",[e])},SWFUpload.prototype.setFilePostName=function(e){this.settings.file_post_name=e,this.callFlash("SetFilePostName",[e])},SWFUpload.prototype.setUseQueryString=function(e){this.settings.use_query_string=e,this.callFlash("SetUseQueryString",[e])},SWFUpload.prototype.setRequeueOnError=function(e){this.settings.requeue_on_error=e,this.callFlash("SetRequeueOnError",[e])},SWFUpload.prototype.setHTTPSuccess=function(e){"string"==typeof e&&(e=e.replace(" ","").split(",")),this.settings.http_success=e,this.callFlash("SetHTTPSuccess",[e])},SWFUpload.prototype.setAssumeSuccessTimeout=function(e){this.settings.assume_success_timeout=e,this.callFlash("SetAssumeSuccessTimeout",[e])},SWFUpload.prototype.setDebugEnabled=function(e){this.settings.debug_enabled=e,this.callFlash("SetDebugEnabled",[e])},SWFUpload.prototype.setButtonImageURL=function(e){void 0==e&&(e=""),this.settings.button_image_url=e,this.callFlash("SetButtonImageURL",[e])},SWFUpload.prototype.setButtonDimensions=function(e,t){this.settings.button_width=e,this.settings.button_height=t;var n=this.getMovieElement();void 0!=n&&(n.style.width=e+"px",n.style.height=t+"px"),this.callFlash("SetButtonDimensions",[e,t])},SWFUpload.prototype.setButtonText=function(e){this.settings.button_text=e,this.callFlash("SetButtonText",[e])},SWFUpload.prototype.setButtonTextPadding=function(e,t){this.settings.button_text_top_padding=t,this.settings.button_text_left_padding=e,this.callFlash("SetButtonTextPadding",[e,t])},SWFUpload.prototype.setButtonTextStyle=function(e){this.settings.button_text_style=e,this.callFlash("SetButtonTextStyle",[e])},SWFUpload.prototype.setButtonDisabled=function(e){this.settings.button_disabled=e,this.callFlash("SetButtonDisabled",[e])},SWFUpload.prototype.setButtonAction=function(e){this.settings.button_action=e,this.callFlash("SetButtonAction",[e])},SWFUpload.prototype.setButtonCursor=function(e){this.settings.button_cursor=e,this.callFlash("SetButtonCursor",[e])},SWFUpload.prototype.queueEvent=function(e,t){void 0==t?t=[]:t instanceof Array||(t=[t]);var n=this;if("function"==typeof this.settings[e])this.eventQueue.push(function(){this.settings[e].apply(this,t)}),setTimeout(function(){n.executeNextEvent()},0);else if(null!==this.settings[e])throw"Event handler "+e+" is unknown or is not a function"},SWFUpload.prototype.executeNextEvent=function(){var e=this.eventQueue?this.eventQueue.shift():null;"function"==typeof e&&e.apply(this)},SWFUpload.prototype.unescapeFilePostParams=function(e){var t,n=/[$]([0-9a-f]{4})/i,a={};if(void 0!=e){for(var i in e.post)if(e.post.hasOwnProperty(i)){t=i;for(var o;null!==(o=n.exec(t));)t=t.replace(o[0],String.fromCharCode(parseInt("0x"+o[1],16)));a[t]=e.post[i]}e.post=a}return e},SWFUpload.prototype.testExternalInterface=function(){try{return this.callFlash("TestExternalInterface")}catch(e){return!1}},SWFUpload.prototype.flashReady=function(){var e=this.getMovieElement();return e?(this.cleanUp(e),void this.queueEvent("swfupload_loaded_handler")):void this.debug("Flash called back ready but the flash movie can't be found.")},SWFUpload.prototype.cleanUp=function(e){try{if(this.movieElement&&"unknown"==typeof e.CallFunction){this.debug("Removing Flash functions hooks (this should only run in IE and should prevent memory leaks)");for(var t in e)try{"function"==typeof e[t]&&(e[t]=null)}catch(n){}}}catch(a){}window.__flash__removeCallback=function(e,t){try{e&&(e[t]=null)}catch(n){}}},SWFUpload.prototype.fileDialogStart=function(){this.queueEvent("file_dialog_start_handler")},SWFUpload.prototype.fileQueued=function(e){e=this.unescapeFilePostParams(e),this.queueEvent("file_queued_handler",e)},SWFUpload.prototype.fileQueueError=function(e,t,n){e=this.unescapeFilePostParams(e),this.queueEvent("file_queue_error_handler",[e,t,n])},SWFUpload.prototype.fileDialogComplete=function(e,t,n){this.queueEvent("file_dialog_complete_handler",[e,t,n])},SWFUpload.prototype.uploadStart=function(e){e=this.unescapeFilePostParams(e),this.queueEvent("return_upload_start_handler",e)},SWFUpload.prototype.returnUploadStart=function(e){var t;if("function"==typeof this.settings.upload_start_handler)e=this.unescapeFilePostParams(e),t=this.settings.upload_start_handler.call(this,e);else if(void 0!=this.settings.upload_start_handler)throw"upload_start_handler must be a function";void 0===t&&(t=!0),t=!!t,this.callFlash("ReturnUploadStart",[t])},SWFUpload.prototype.uploadProgress=function(e,t,n){e=this.unescapeFilePostParams(e),this.queueEvent("upload_progress_handler",[e,t,n])},SWFUpload.prototype.uploadError=function(e,t,n){e=this.unescapeFilePostParams(e),this.queueEvent("upload_error_handler",[e,t,n])},SWFUpload.prototype.uploadSuccess=function(e,t,n){e=this.unescapeFilePostParams(e),this.queueEvent("upload_success_handler",[e,t,n])},SWFUpload.prototype.uploadComplete=function(e){e=this.unescapeFilePostParams(e),this.queueEvent("upload_complete_handler",e)},SWFUpload.prototype.debug=function(e){this.queueEvent("debug_handler",e)},SWFUpload.prototype.debugMessage=function(e){if(this.settings.debug){var t,n=[];if("object"==typeof e&&"string"==typeof e.name&&"string"==typeof e.message){for(var a in e)e.hasOwnProperty(a)&&n.push(a+": "+e[a]);t=n.join("\n")||"",n=t.split("\n"),t="EXCEPTION: "+n.join("\nEXCEPTION: "),SWFUpload.Console.writeLine(t)}else SWFUpload.Console.writeLine(e)}},SWFUpload.Console={},SWFUpload.Console.writeLine=function(e){var t,n;try{t=document.getElementById("SWFUpload_Console"),t||(n=document.createElement("form"),document.getElementsByTagName("body")[0].appendChild(n),t=document.createElement("textarea"),t.id="SWFUpload_Console",t.style.fontFamily="monospace",t.setAttribute("wrap","off"),t.wrap="off",t.style.overflow="auto",t.style.width="700px",t.style.height="350px",t.style.margin="5px",n.appendChild(t)),t.value+=e+"\n",t.scrollTop=t.scrollHeight-t.clientHeight}catch(a){alert("Exception: "+a.name+" Message: "+a.message)}},exports.SWFUpload=SWFUpload}),define("js/home/comment",["jquery"],function(e,t,n){var a,i=e("jquery"),o=i(".comment-table"),s=o.find(".remark-btn"),r=i("#comment-dialog-widget"),d=r.find(".dialog-titlebar"),l=r.find("textarea"),c=i(document).width(),u=i(document).height(),h=i(window).height(),p={canmove:!1,offset:{},maxtop:0,maxleft:0},f={};s.each(function(){var e=i(this).next(),t=e.data(),n=t.orderid;f[n]={},f[n].productSkn=t.productskn,f[n].productId=t.productid,f[n].goodsId=t.goodsid,f[n].orderId=t.orderid,f[n].erpSkuId=t.erpskuid,e.remove(),i(this).data("code",n)}),s.click(function(){var e=i(document).scrollTop();a=i(this),l.val(""),r.removeClass("hide").css({top:e+(h-r.outerHeight())/2,left:(c-r.outerWidth())/2})}),d.bind("mousedown",function(e){i(e.target).hasClass("dialog-close-btn")||(p.canmove=!0,p.offset={x:e.offsetX,y:e.offsetY},p.maxtop=u-r.outerHeight(),p.maxleft=c-r.outerWidth())}),i(document).mousemove(function(e){var t,n;p.canmove&&(t=e.pageY-p.offset.y,n=e.pageX-p.offset.x,t=t<p.maxtop?t:p.maxtop,n=n<p.maxleft?n:p.maxleft,r.css({top:t>0?t:0,left:n>0?n:0}))}).mouseup(function(e){p.canmove=!1}),r.on("click",".dialog-save-btn",function(){var e,t=i.trim(l.val());return""===t?void alert("请添加评论内容"):void(a.length&&(e=f[a.data().code],e.content=t,i.ajax({type:"POST",url:"/home/comment/saveComment",data:e}).then(function(e){var n=a.parent();200===e.code?(n.prev().text(t),n.html('<span class="remarked">已评论!</span>'),a.length=0,r.addClass("hide")):alert(e.message)})))}),r.on("click",".dialog-close-btn",function(){a.length=0,r.addClass("hide")})}),define("js/home/complaints",["jquery"],function(e,t,n){function a(){return m?!0:(m=!0,setTimeout(function(){m=!1},1e3),!1)}function i(e){var t=e.dom.siblings(".option-tip"),n=d.trim(e.dom.val()),a=n.length;return e.min&&a<e.min?(t.text(e.onmin),!1):e.max&&a>e.max?(t.text(e.onmax),!1):e.regexp&&!e.regexp.test(n)?(t.text(e.onerror),!1):(t.text("输入正确"),!0)}function o(){var e,t={};return d.each(g,function(n,a){i(a)?t[n]=d.trim(a.dom.val()):e||(e=n,a.dom.focus())}),t.complaintsType=h.val(),e?!1:t}function s(){var e=o();!a()&&e&&d.ajax({type:"POST",url:"/home/complaints/addcomplaints",data:e}).then(function(e){m=!1,200===e.code?window.location.reload():alert(e.message)})}function r(e,t){var n=t;a()||d.ajax({type:"POST",url:"/home/complaints/cancelcomplaints",data:{id:e}}).then(function(e){m=!1,200===e.code?(n.prev().remove(),n.text("问题已撤销")):alert(e.message)})}var d=e("jquery"),l=d(".cancel-btn"),c=d("#title"),u=d("#customer"),h=d("#complaintsType"),p=d("#orderCode"),f=d("#content"),m=!1,g={title:{dom:c,min:1,max:10,onshow:"请输入您的投诉主题",onfocus:"请输入主题",onmin:"投诉主题不能为空",onmax:"输入投诉主题不能超过10个字"},customer:{dom:u,min:1,max:10,onshow:"请填写您要投诉的对象,比如:客服00*号、发货员...",onfocus:"请填写您要投诉的对象",onmin:"投诉对象不能为空",onmax:"输入投诉对象不能超过10个字"},orderCode:{dom:p,regexp:/^([0-9,]{9,})$/,onshow:"如果多个是多个订单号,请用英文逗号隔开,没有则不填",onfocus:"请输入订单号",onerror:"您输入的订单格式不对,如果多个是多个订单号,请用英文逗号隔开"},content:{dom:f,min:1,max:130,onshow:"输入您投诉的内容",onfocus:"请输入您投诉的内容",onmin:"投诉内容不能为空",onmax:"输入的投诉内容不能超过130个字"}};d.each(g,function(e,t){t.dom.focus(function(){t.dom.siblings(".option-tip").text(t.onfocus)}).blur(function(){i(t)})}),d("#complaint-submit").click(function(){s()}),l.click(function(){var e=d(this).data();e&&e.id&&r(e.id,d(this).parent())})}),define("js/home/message",["jquery"],function(e,t,n){function a(){var e=!1;o=r.find(".msg-check:checked"),c=[],o.each(function(){var t=s(this).parent().parent();c.push(s(this).val()),t.hasClass("new-msg")&&(e=!0)}),e?l.addClass("has-new"):l.removeClass("has-new")}function i(e,t){var n;switch(e){case"del":n="/home/message/delMessage";break;case"read":n="/home/message/readMessage"}s.ajax({type:"GET",url:n,data:t}).then(function(t){t.code?200===t.code?"read"===e&&(o.removeAttr("checked"),o.parent().parent().removeClass("new-msg"),a()):alert(t.message):"del"===e&&(r.html(t),d=r.find(".msg-check"),l=r.find(".read-choose-btn"))})}var o,s=e("jquery"),r=s("#message-main-container"),d=r.find(".msg-check"),l=r.find(".read-choose-btn"),c=[];e("js/home/message-content"),r.on("change",'input[type="checkbox"]',function(){var e=s(this).attr("checked");s(this).hasClass("choose-all")&&("checked"===e?d.attr("checked",!0):d.removeAttr("checked")),a()}),r.on("click",".del-btn",function(){confirm("您确定要删除这条短消息?")&&i("del",s(this).data())}),r.on("click",".del-choose-btn",function(){return c.length?void(confirm("确定要删除您选中的消息")&&i("del",{id:c.join(",")})):void alert("请选中您要删除的消息")}),r.on("click",".read-choose-btn",function(){s(this).hasClass("has-new")&&i("read",{id:c.join(",")})})}),define("js/home/message-content",["jquery"],function(e,t,n){var a=e("jquery"),i=a(".pick-coupon-btn"),o=!1;i.click(function(){var e=a(this).data();o||(o=!0,a.ajax({type:"GET",url:"/home/message/pickCoupon",data:e}).then(function(e){var t=e.message;200===e.code&&(t="领取成功",a(this).removeClass("pick-coupon-btn")),o=!1,alert(t)}))})}),define("js/home/edit",["jquery","handlebars","source-map"],function(e,t,n){function a(){var e=u("#nickname").val().length,t=u("#username").val().length,n=u('input[name="gender"]'),a=u("#year"),i=u("#month"),o=u("#day");return 0===e?(alert("请输入昵称"),!1):0===t?(alert("请输入用户名"),!1):e>=20?(alert("昵称最长为20个字符"),!1):n.is(":checked")?"0"===a.val()||"0"===i.val()||"0"===o.val()?(alert("请选择出生年月日"),!1):!0:(alert("请选择性别"),!1)}function i(){return"0"===u("#province").val()||"0"===u("#city").val()||"0"===u("#areaCode").val()?(alert("请选择所在区域"),!1):null===u("#province").val()||null===u("#city").val()||null===u("#areaCode").val()?(alert("请选择所在区域"),!1):0===u("#phone").val().length&&0===u("#mobile").val().length?(alert("电话和手机号码不能同时为空,请填写!"),!1):0===u("#fullAddress").val().length?(alert("请填写地址"),!1):0===u("#zipCode").val().length||u("#zipCode").val().length<2?(alert("请填写邮编"),!1):!0}function o(){return u(".user-habbit-info input").is(":checked")?!0:(alert("请填写购物&着装习惯"),!1)}function s(){return""===u("#likebrand").val()?(alert("请选择品牌"),!1):!0}function r(e){var t=u("#likebrand").val();return 0===parseInt(e)?!1:(u("#likebrand").val(t.replace(","+e+",",",")),u("#pp-"+e).attr("checked",!1),void u("#brand-"+e).remove())}function d(e,t,n){var a='<li id="brand-'+t+'">'+n+'<a href="javascript:void(0);" class="btn-del"></a></li>',i=u("#brand-"+t).html(),o=u("#likebrand").val(),s=u("#brand-box");return 0===parseInt(t)?!1:"undefined"!=typeof e&&""!==e&&e.checked===!1?(r(t),!1):i?(alert("您已经选择了该品牌."),!1):(s.append(a),s.find("li>a").off("click").on("click",function(){r(u(this).closest("li").attr("id").substr(6))}),o+=t+",",void u("#likebrand").val(o))}function l(){var e={brandName:u("#keywords").val()};u.post("/home/user/isbrandname",e,function(e){return 200===e.code?e.data.id&&e.data.brand_name?(d("",e.data.id,e.data.brand_name),u("#keywords").val(""),!0):(alert("网络异常,请重试"),!1):(alert(e.message),!1)},"json")}function c(e,t){var n=u("#"+t).closest("form");u.post(e,n.serialize(),function(e){return 200===e.code?(alert(e.message),setTimeout(function(){n.closest("div").next().find("h2").click()},100),!0):(alert(e.message),!1)},"json")}var u=e("jquery"),h=u(".userinfo-edit form"),p=e("js/home/common-address"),f={init:function(e,t,n){var a=u("#year"),i=u("#month"),o=u("#day"),s=this;this.createDay(a.val(),i.val(),o.val()),a.on("change",function(){s.update()}),i.on("change",function(){s.update()})},update:function(){this.createDay(u("#year").val(),u("#month").val(),u("#day").val())},createDay:function(e,t,n){var a,i,o='<select name="day" id="day">',s=new Array(4,6,9,11),r=31;if(e=parseInt(e),t=parseInt(t),0===e&&(e=0),0===t&&(t=0),u("#year").val(e.toString()),u("#month").val(t.toString()),o+='<option value="0">日</option>',e>0&&t>0)for(-1!==u.inArray(t,s)?r=30:2===t&&(r=28,0!==e%4||e%100===0&&e%400!==0||(r=29)),i=1;r>=i;i++)a="",parseInt(n)===i&&(a="selected"),o+='<option value="'+i+'" '+a+">"+i+"</option>";o+="</select>",u("#day").replaceWith(o)}};u(".userinfo-edit h2").on("click",function(){var e=u(this).next();h.slideUp("fast"),"none"===e.css("display")?e.slideDown("slow"):null}),u("#base-info").on("click",function(){a()&&c("/home/user/edituserinfo/","base-info")}),u("#contact-info").on("click",function(){i()&&c("/home/user/editusercontactinfo/","contact-info")}),u("#shopping-info").on("click",function(){o()&&c("/home/user/edituserhabitsinfo/","shopping-info")}),u("#favorite-brand").on("click",function(){s()&&u.ajax({url:"/home/user/edituserlikebrand/",type:"post",datatype:"json",data:{brand:u("#likebrand").val()},success:function(e){return 200===e.code?(alert(e.message),!0):(alert(e.message),!1)},error:function(e){alert("网络异常")}})}),u("#add-brand-btn").on("click",function(){l()}),u('.user-favorite-info input[type="checkbox"]').on("click",function(){var e=u(this);d(this,e.attr("id").substr(3),e.parent().text())}),function(){var e=u("#brand-box li");e.length>0&&e.find("a").on("click",function(){r(u(this).closest("li").attr("id").substr(6))})}(),f.init(),function(){u("#province").val()?p.bindAreaChange({provinceDomId:"province",cityDomId:"city",areaDomId:"areaCode"}):p.loadAllData(0,{provinceDomId:"province",cityDomId:"city",areaDomId:"areaCode"})}()}),define("js/home/gift",["jquery","handlebars","source-map"],function(e,t,n){function a(){var e=new Date;return o("#imgcode").attr("src","/passport/images?t="+e.getTime()),!1}var i,o=e("jquery"),s=e("js/common/dialog"),r=s.Alert,d=o(".giftCardCode").find(".gift-error"),l=o(".captchaCode").find(".gift-error"),c="",u="",h=1,p={suc:[!1,!1,!1,!1],checkCard:function(e){if(c=/^[0-9a-zA-Z]{4,4}$/,c.test(o("#giftCardCode"+e).val())){for(h=1;3>=h;h++)c.test(o("#giftCardCode"+h).val())?(d.html(""),p.suc[h]=!0):(d.html("您输入的兑换码有误,兑换码必须为数字或字母,每个文本框里只能输入四个兑换码!"),p.suc[h]=!1);3!==e&&o("#giftCardCode"+(e+1)).focus()}else d.html("您输入的兑换码有误,兑换码必须为数字或字母,每个文本框里只能输入四个兑换码!"),p.suc[e-1]=!1},bindGiftCardForm:function(){o("#giftCardCode1").bind("blur keyup",function(){p.checkCard(1)}),o("#giftCardCode2").bind("blur keyup",function(){p.checkCard(2)}),o("#giftCardCode3").bind("blur keyup",function(){p.checkCard(3)}),o("#captchaCode").bind("blur keyup",function(){u=o("#captchaCode").val(),u.length<=0?(l.html("请输入验证码!"),p.suc[3]=!1):(l.html(""),p.suc[3]=!0)})},checkForm:function(){return c.test(o("#giftCardCode1").val())&&c.test(o("#giftCardCode2").val())&&c.test(o("#giftCardCode3").val())?""===o.trim(o("#captchaCode").val())?(l.html("请输入验证码!"),!1):!0:(d.html("您输入的兑换码有误,兑换码必须为数字或字母,每个文本框里只能输入四个兑换码!"),!1)}};o("#sub-gift").on("click",function(){return p.checkForm()?void o.post("/home/gift/exchange",o("#giftCardForm").serialize(),function(e){200===e.code?window.location.href="/home/gift?type=1":400===e.code?(i=new r(e.message),i.show(),a()):window.location.href="/home/gift?type=2"},"json"):!1}),o(document).on("click","#imgcode,.check-img",function(){a()}),o(function(){a(),p.bindGiftCardForm()})}),define("js/home/validate",["jquery","handlebars","source-map"],function(e,t,n){function a(e,t){return e.$checkInfo.html('<div class="form-error">'+t+"</div>"),"code"!==e.dom.attr("name")&&"verifyCode"!==e.dom.attr("name")&&e.dom.addClass("input-error"),!1}function i(e){return e.$checkInfo.html('<div class="form-success"> </div>'),"code"!==e.dom.attr("name")&&"verifyCode"!==e.dom.attr("name")&&e.dom.removeClass("input-error"),!0}function o(e){var t;return v.post(e.url,e.data,function(n){"undefined"!=typeof n.code&&200===n.code?t=i(e.opt):(e.txt=""!==e.txt&&null!==e.txt?e.txt:n.message,t=a(e.opt,e.txt))}),t}function s(e){var t=e.val(),n=t.length,s=e.parent(),r=s.find(".check-info"),d=e.attr("name"),l="",c="",u="",h={$checkInfo:r,dom:e},p={opt:h};return r.html(""),"password"===d?0===n?a(h,"密码不能为空!"):(v.extend(p,{url:"/home/account/checkpassword",data:{password:t},txt:"密码错误!"}),o(p)):"verifyCode"===d?(v.extend(p,{url:"/home/account/checkverifycode",data:{verifyCode:t},txt:"验证码错误!"}),o(p)):"email"===d?(l=b.emailRegx,null===t.match(l)?a(h,"邮箱错误!"):(v.extend(p,{url:"/home/account/checkemail",data:{email:t},txt:""}),o(p))):"mobile"===d?(l=b.phoneRegx,c=t.split("-"),l=1===c.length?t.match("^1[35847]{1}[0-9]{9}"):l["+"+c[0]].test(c[1]),0===n?a(h,"手机号不能为空!"):null!==l&&l?(v.extend(p,{url:"/home/account/checkmobile",data:{mobile:t},txt:"手机号已经存在!"}),o(p)):a(h,"手机号错误!")):"newPwd"===d?(l=b.pwdValidateRegx,l.test(t)?i(h):a(h,"建议6~20个数字+字母组合!")):"confirm_password"===d?v("#newPwd").val()!==t?a(h,"两次密码不一致!"):i(h):"code"!==d?!0:(u=v("#realAccount").length>0?v("#realAccount").val():v("#mobilevalue").val(),""!==t?(v.extend(p,{url:"/home/account/checkmobilemsg",data:{mobile:u,code:v("#inputcode").val()},txt:"验证码错误!"}),o(p)):void 0)}function r(){var e=[];return k=!1,v.each(_,function(t,n){e[t]=s(v(n))}),e.indexOf(!1)>=0?(k=!0,!1):!0}function d(){var e=(new Date).getTime();v("#the-code-img").attr("src","/passport/images?len=6&time="+e)}function l(){var e="";j>0?(e="重新发送"+j+"秒",v("#sendButton").text(e),j-=1):(j=60,v("#sendButton").text("发送验证码"),clearInterval(m),x=!0)}function c(e){var t=v("#inputcode"),n=t.parent().find("check-info");v.post("/home/account/sendmobilemsg",{mobile:e},function(e){"undefined"!=typeof e.code&&200===e.code?(x=!1,m=setInterval(function(){l()},1e3),n.html("")):n.html('<div class="form-error">验证码发送失败</div>')})}function u(){var e,t,n,a=v("#mobilevalue");if(a.length>0?(e=a.next(),t=a.val(),n=t.split("-"),n=1===n.length?t.match("^1[35847]{1}[0-9]{9}"):b.phoneRegx["+"+n[0]].test(n[1])):t=v("#realAccount").val(),!x)return!1;if(a.length>0){if(null===n||!n)return e.html('<div class="form-error">手机号错误!</div>'),a.addClass("input-error"),!1;e.find(".form-success").length>0&&c(t)}v("#realAccount").length>0&&c(t)}function h(){window.location.href="/home/account"}function p(e,t){v.post(e.url,e.data,function(n){return 200!==n.code?(k=!0,g=new w(n.message),g.show(),!1):(t&&(e.hrefUrl+="&checkCode="+n.data),void(window.location.href=e.hrefUrl))},"json")}function f(){var e=v(".progress-bar .cur").index(),t=v("#verifyType").val(),n="",a={};v(".email").length>0&&(n="email"),v(".mobile").length>0&&(n="mobile"),v(".userpwd").length>0&&(n="userpwd"),0===e?"1"===t?(a={url:"/home/account/verifypassword",data:v("#pwdform").serialize(),hrefUrl:"/home/account/"+n+"?step=2"},p(a,"step1")):"2"===t?(a={url:"/home/account/sendemail",data:{checkType:n,email:v("#realAccount").val()},hrefUrl:"/home/account/sendemailsuccess?email="+v("#realAccount").val()+"&type=1&checkType="+n},p(a)):(a={url:"/home/account/checkmobilemsg",data:{mobile:v("#realAccount").val(),code:v("#inputcode").val()},hrefUrl:"/home/account/"+n+"?step=2"},p(a,"step1")):1===e&&("userpwd"===n?(a={url:"/home/account/modifypwd",data:v("#pwdform").serialize(),hrefUrl:"/home/account/userpwd?step=3&success=true"},p(a)):"email"===n?(a={url:"/home/account/modifyemail",data:{email:v("#email").val()},hrefUrl:"/home/account/sendemailsuccess?email="+v("#email").val()+"&type=2&checkType=email"},p(a)):(a={url:"/home/account/modifymobile",data:{mobile:v("#mobilevalue").val(),code:v("#inputcode").val()},hrefUrl:"/home/account/mobile?step=3&success=true"},p(a)))}var m,g,v=e("jquery"),y=e("js/common/dialog"),b=e("js/passport/mail-phone-regx"),w=y.Alert,C=v(".check-user"),_=C.find("input").not("input[type=button],input[type=hidden],input[type=reset]"),x=!0,k=!0,j=60;v.ajaxSetup({async:!1}),Array.prototype.indexOf||(Array.prototype.indexOf=function(e,t){var n,a;for(n=t||0,a=this.length;a>n;n++)if(this[n]===e)return n;return-1}),v(function(){var e=null;v(".res-info").length>0&&(e=setTimeout(function(){h()},5e3)),d(),v("#pwdform").submit(function(){return!1}),_.blur(function(){s(v(this))}),v(".sub-btn").on("click",function(){return k===!1?!1:r()?void f():!1}),v("input[name=verifyCode]").keydown(function(e){if(13===e.keyCode){if(k===!1)return!1;if(!r())return!1;f()}}),v(".the-code").on("click",function(){d()}),v("#send-mobile-code").on("click",function(){u()}),v("#newPwd").length>0&&v("#newPwd").on("input",function(e){var t=v("input[name=confirm_password]"),n=t.val(),i=v("#newPwd").val(),o={dom:t,$checkInfo:t.next()};n.length>0&&i!==n&&a(o,"两次密码不一致!")})})}),define("js/home/address",["jquery","handlebars","source-map"],function(e,t,n){function a(e){var t=e.parents(".address-content"),n=t.attr("addressId");return n}function i(e){var t="";"addressName"===e.inputName&&(t="真实姓名在2到5个汉字之间"),"address"===e.inputName&&(t="请填写详细地址"),"zipCode"===e.inputName&&(t="请输入收货人所在地邮编号"),"phone"===e.inputName&&(t="格式例如:0577-88888888"),"mobile"===e.inputName&&(t="请输入手机号,如1360000000"),"email"===e.inputName&&(t="用来接收订单提醒邮件,便于您及时了解订单状态"),e.$checkInfo.removeClass("form-prompt").addClass("form-focus").html(t)}function o(e){var t="",n=!0,a="输入正确",i="form-info form-success",o=e.val;return"addressName"===e.inputName&&(t=/^[\u4e00-\u9fa5]{2,5}$/,e.len<1||e.len>12?(a="真实姓名在2到5个汉字之间,请确认",n=!1,i="form-info form-error"):t.test(e.val)===!1&&(a="真实姓名至少2个中文,最多5个中文",n=!1,i="form-info form-error")),"address"===e.inputName&&e.len<2&&(a="请填写详细地址",n=!1,i="form-info form-error"),"zipCode"===e.inputName&&(t=/^[0-9]{6}$/,0===e.len?(a="请输入收货人所在地邮编号",n=!1,i="form-info form-error"):t.test(e.val)===!1&&(a="你输入的邮编式不正确",n=!1,i="form-info form-error")),"phone"===e.inputName&&(t=/^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$/,0===e.len?(a="你真的不想留联系电话了吗?",n=!0,i="form-info form-success"):t.test(e.val)===!1&&(a="你输入的联系电话格式不正确",n=!1,i="form-info form-error")),"mobile"===e.inputName&&(t=/^1[3|4|5|8|7][0-9]{9}$/,11!==e.len?(a="手机号码必须是11位的,请确认",n=!1,i="form-info form-error"):t.test(e.val)===!1&&(a="您输入的手机号格式不正确",n=!1,i="form-info form-error")),"email"===e.inputName&&(t="^[a-z0-9_-]+(.[_a-z0-9-]+)*@([_a-z0-9-]+.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$",null!==o.match(t)&&0!==e.len||(a="你输入的邮件地址格式不正确",n=!1,i="form-info form-error")),e.$checkInfo.removeClass().addClass(i).html(a),n}function s(e,t){var n=e.val(),a=e.parent(),s={val:n,len:n.length,$domParent:e.parent(),$checkInfo:a.find("span"),inputName:e.attr("name")};return"focus"===t&&i(s),"blur"===t?o(s):void 0}function r(){var e=c("#phone").next(),t=c("#mobile").next();return t.hasClass("form-success")&&!e.hasClass("form-error")&&0===c("#phone").val().length?(e.removeClass().addClass("form-prompt form-info").html("请输入你的联系电话,可以为空哦"),!0):"输入正确"!==e.html()||t.hasClass("form-error")||0!==c("#mobile").val().length?t.hasClass("form-success")||"输入正确"===e.html()?void 0:(e.removeClass().addClass("form-success form-info").html("你真的不想留联系电话了吗?"),t.removeClass().addClass("form-prompt form-info").html("填写手机号便于接收发货和收货通知"),c("#mobile").focus(),!1):(t.removeClass().addClass("form-prompt form-info").html("填写手机号便于接收发货和收货通知"),!0)}function d(){var e=[];return c.each(g,function(t,n){e.push(s(c(n),"blur"))}),e.push(r()),c.each(c(".form-info"),function(e,t){return c(t).hasClass("form-error")?(c(t).prev().focus(),!1):void 0}),-1===e.indexOf(!1)}var l,c=e("jquery"),u=e("js/home/common-address"),h=e("js/common/dialog"),p=h.Alert,f=c(".address-del"),m=c(".address-modify"),g=c(".input-1"),v={evil:function(e){var t=Function;return new t("return "+e)()},clearAddrForm:function(){c("#addressName").val(""),c("#address").val(""),c("#zipCode").val(""),c("#phone").val(""),c("#mobile").val(""), +c("#email").val(""),c("#addrId").val(0),c("#province").val(0),c("#city").val(0),c("#areaCode").val(0).hide(),c("#btn-reset").hide(),c("#form-status").html("添加新地址")},editAddr:function(e){c.getJSON("/home/address/editAddress?id="+e,function(e){200===e.code&&(c("#form-status").html("修改地址"),c("#addressName").val(e.data.consignee),u.loadAllData(e.data.area_code,{}),c("#address").val(e.data.address),c("#email").val(e.data.email),c("#phone").val(e.data.phone),c("#mobile").val(e.data.mobile),c("#zipCode").val(e.data.zip_code),c("#addrId").val(e.data.address_id),c("#btn-reset").show())})},saveAddr:function(e){c.post("/home/address/saveAddress",c("#address-form").serialize(),function(e){200===e.code?location.reload():(l=new p(e.message),l.show())},"json")},delAddr:function(e){c.getJSON("/home/address/delAddress?id="+e,function(t){200===t.code?(c(".address-list").find("li[addressId="+e+"]").remove(),e===c("#addrId").val()&&v.clearAddrForm()):(l=new p("删除失败"),l.show())})},setDefaultAddr:function(e){var t=c(".address-list").find(".default-btn"),n=c(".address-list").find(".default-btn").parents("li"),a=c(".address-list").find("li[addressId="+e+"]"),i=a.find(".set-default-btn");c.getJSON("/home/address/defaultAddress?id="+e,function(e){200===e.code?(t.attr("class","btn-c3 set-default-btn"),n.removeClass("preferred"),t.html("<span>设为常用地址</span>"),i.attr("class","btn-c2 default-btn"),t.html("<span>设为常用地址</span>"),a.addClass("preferred")):(l=new p("设置失败"),l.show())})}};Array.prototype.indexOf||(Array.prototype.indexOf=function(e,t){var n,a;for(n=t||0,a=this.length;a>n;n++)if(this[n]===e)return n;return-1}),c(document).on("click",".set-default-btn",function(){var e=a(c(this));v.setDefaultAddr(e)}),f.on("click",function(){var e=a(c(this));v.delAddr(e)}),m.on("click",function(){var e=a(c(this));v.editAddr(e),c("#btn-reset").show()}),g.on("focus",function(){s(c(this),"focus")}),g.on("blur",function(){s(c(this),"blur")}),c("#address-info").on("click",function(){d()&&v.saveAddr()}),c(document).ready(function(){u.loadAllData(0,{provinceDomId:"province",cityDomId:"city",areaDomId:"areaCode"}),v.clearAddrForm(),c("#btn-reset").click(function(){v.clearAddrForm()})})}),define("js/help/entry",["jquery","handlebars","source-map"],function(e,t,n){e("js/help/search")}),define("js/help/search",["jquery","handlebars","source-map"],function(e,t,n){var a=e("jquery"),i=e("handlebars"),o=a(".search-content"),s=a("#help-dialog-widget"),r=a("#help-dialog-bg"),d=a(document).width(),l=a(window).height(),c='<div class="dialog-titlebar"><span class="dialog-close-btn"></span></div><div class="dialog-content"><p class="ask">问:<br>{{ask}}</p><p class="answer">答:<br>{{answer}}</p></div>',u=i.compile(c);o.on("click",".faqs",function(){var e=a(this).data(),t=a(document).scrollTop();s.html(u(e)).removeClass("hide"),r.removeClass("hide"),s.html(u(e)).css({top:t+(l-s.outerHeight())/2,left:(d-s.outerWidth())/2})}),s.on("click",".dialog-close-btn",function(){s.addClass("hide"),r.addClass("hide")})}),define("js/order/ensure",["jquery","handlebars","source-map"],function(e,t,n){function a(e,t,n,a){var i=1,o=1,s=0,r=!1;e.click(function(){r||("0px"===n.css("left")?s=0:(s+=o*a,r=!0),n.stop().animate({left:s},300,function(){r=!1}))}),t.click(function(){var e=n.parent().width()-n.width()+"px";r||(n.css("left")===e?n.css("left",e):(s+=-i*a,r=!0),n.stop().animate({left:s},300,function(){r=!1}))})}var i=e("jquery"),o=e("js/order/address"),s=e("js/common/dialog"),r=function(e,t){var n=0,a=e.toString(),i=t.toString();try{n+=a.split(".")[1].length}catch(o){}try{n+=i.split(".")[1].length}catch(o){}return Number(a.replace(".",""))*Number(i.replace(".",""))/Math.pow(10,n)},d={Data:{product:0,activity:0,carriage:0,juan:0,yohocoin:0},UI:{e:{$pan:i(".pan"),$jc:i("#juancode"),$bp:i("#biprice"),$statistics:i("li",".play-total"),$tobi:i("p em",".play-bi-pan .play-pan"),$cancel:i(".cancel",".btn-group"),$total:i("em",".to-play"),$tbody:i("table tbody",".pay-wapper"),$orderSelectionSave:i(".address-list h2 span"),$addAddress:i(".add-address"),$addressManage:i(".address-manage"),$spanPayTypeLegend:i("span.pay-type-legend"),$supportType:i(".support-type"),$existAddressListWrap:i(".exist-address-list"),$existAddressList:i(".exist-address-list").find("li"),$existAddress:i(".exist-address-list").find('input[name="exist-address"]'),$payTimeModify:i(".pay-time-modify"),$switchPayModify:i(".switch-pay-modify"),$modityPayInfo:i(".modity-pay-info"),$payTotal:i(".play-total"),$toPay:i(".to-play em"),$redEnvelopes:i(".red-envelopes"),$useEnvelopes:i(".use-envelopes"),$hasEnvelopes:i(".has-envelopes span"),$useEnvelopesInput:i(".use-envelopes").find("input"),$expressFee:i(".express-fee")},init:function(){var e=this.e,t=d.Data,n=d.Common;e.$tbody.find("tr").each(function(a){var o=i(this).find("td"),s=e.$tbody.find("tr").length,r=parseFloat(o.eq(1).html())*parseInt(o.eq(3).html());o.eq(1).html("¥"+o.eq(1).html()),o.hasClass("xforone")?(o.eq(4).find("del").html("¥"+n.strFixed(r)),r=0):o.eq(4).html("¥"+n.strFixed(r)),t.product+=r,a?o.last().remove():o.last().attr("rowspan",s),a===s-1&&e.$tbody.find("tr").eq(0).find("td").last().html("<strong>¥"+n.strFixed(t.product)+"</strong>")}),e.$pan.find("dt").click(function(){var e=i(this).parent("dl.pan");e.find("dd").is(":hidden")?(n.winShow(e),i(this).addClass("active")):(n.winHide(e),i(this).removeClass("active"))}),e.$orderSelectionSave.click(function(){var t=0,n=i(".exist-address-list li"),a=n.length,o=0;if(i(this).attr("expand")){for(t=0;a>t;t++)n.eq(t).hasClass("address_select")&&o++,n.eq(t).hasClass("address_select")||n.eq(t).addClass("hide");0===o&&(i('.exist-address-list li:not(".use-new-address")').removeClass("hide"),i(".use-new-address input").removeAttr("checked")),i(".address-list-inner li.address_select input").attr("checked","checked"),i(".address-list-inner li").removeClass("active"),i(".address-list-inner li.address_select").addClass("active"),i(this).removeAttr("expand").text("[修改]"),i(".save-btn").addClass("hide"),e.$existAddressListWrap.removeClass("address-expand"),e.$addressManage.addClass("hide")}else i(this).attr("expand","expand").text("[不保存并关闭]"),i(".exist-address-list li").removeClass("hide"),i(".save-btn").removeClass("hide"),e.$existAddressListWrap.addClass("address-expand"),1===a&&e.$addressManage.removeClass("hide")}),e.$switchPayModify.click(function(){e.$payTimeModify.hasClass("hide")?(e.$payTimeModify.removeClass("hide"),e.$modityPayInfo.addClass("hide"),i(this).text("[不保存并关闭]")):(e.$payTimeModify.addClass("hide"),e.$modityPayInfo.removeClass("hide"),i(this).text("[修改]"),e.$payTimeModify.find('input[name="pay-type"]').filter(".checked").attr("checked","checked"),e.$payTimeModify.find('input[name="pay-time-radio"]').filter(".checked").attr("checked","checked"),e.$payTimeModify.find('input[name="call-me"]').filter(".checked").attr("checked","checked"))}),e.$spanPayTypeLegend.click(function(){i(this).toggleClass("active"),e.$supportType.toggleClass("hide")}),i(document).on("click",".exist-address-list li",function(){i(".exist-address-list li").removeClass("active"),i(this).addClass("active"),i(this).find("input").attr("checked","checked"),i(this).hasClass("use-new-address")&&(e.$addressManage.removeClass("hide"),i(".address-manage input").val(""),i(".save-btn").removeAttr("data-id"),o.newAddress(0,"000000"))})},render:function(e,t){var n,a,o,s=this.e,d=e.promotion_formula_list,l=e.package_list,c="",u="";for(a=t?t:"",n=0;n<d.length;n++)"优惠券:"===d[n].promotion&&(d[n].promotion=(a?a:"优惠券")+'<span class="juan-modify">[修改]</span>:'),"YOHO币:"===d[n].promotion&&(d[n].promotion='YOHO币<span class="bi-modify">[修改]</span>:'),u=d[n].isExpress?"total-express-w":"",c+='<li class="'+u+'"><label>'+d[n].promotion+"</label><em>"+d[n].promotion_amount+"</em></li>";s.$payTotal.html(c),s.$toPay.html(e.last_order_amount.toFixed(2)),i("#biprice").val(r(100,e.use_yoho_coin)),0===~~e.use_yoho_coin?i(".errbitip").text(""):i(".errbitip").text("抵扣"+e.use_yoho_coin.toFixed(2)+"元"),o=s.$useEnvelopesInput.data("all")-e.use_red_envelopes,~~e.use_red_envelopes>0?(s.$useEnvelopes.find("span").html("-¥"+e.use_red_envelopes.toFixed(2)),s.$useEnvelopes.find("input").attr("data-use",e.use_red_envelopes)):(s.$useEnvelopes.find("span").html("-¥0.00"),s.$hasEnvelopes.html("¥"+(1*s.$useEnvelopesInput.attr("data-all")).toFixed(2)),s.$redEnvelopes.removeClass("active"),s.$useEnvelopesInput.prop("checked",!1)),s.$hasEnvelopes.html("¥"+o.toFixed(2)),l&&s.$expressFee.each(function(e,t){var n=l[e].shopping_orig_cost,a=l[e].shopping_cut_cost,o=l[e].shopping_cost,s=0===parseInt(n)?"运费:¥0.00元":"运费:¥"+o+"元(原价"+n+"元,优惠"+a+")元";i(t).text(s)})}},Common:{enterNUM:function(e,t){return e=e.replace(/[^\d]/g,""),e&&t&&(e=parseInt(e),t=parseInt(t),e>t&&(e=t)),e},calucate:function(){var e=d.Data;return i.each(d.Data,function(t,n){e[t]=parseFloat(d.Data[t])}),e.product-e.activity+e.carriage-e.juan-e.yohocoin},winShow:function(e){e.find("dt").show(),e.find("dd").show(),e.attr("class").match(/(-bi-)|(-juan-)/g)&&e.find("dt").hide()},winHide:function(e){e.find("dt").show(),e.find("dd").hide()},strFixed:function(e){return parseFloat(e).toFixed(2)}},Bll:{e:{$juanok:i("#juansubmit"),$juantip:i(".errtip",".play-juan-pan"),$biok:i("#bisubmit"),$carriageGroup:i('input[name="carriagegroup"]'),$selectExpress:i(".express-list input"),$bp:i("#biprice"),$errorTip:i(".errbitip"),$useEnvelopes:i(".use-envelopes"),$hasEnvelopes:i(".has-envelopes span"),$useEnvelopesInput:i(".use-envelopes").find("input"),$redEnvelopes:i(".red-envelopes"),$loading:i(".loading")},init:function(){function e(e){var t,n=i('.play-juan.is-select input[name="juangroup"]:checked'),a=i('.express-list input[name="carriagegroup"]:checked').val(),o=i("#biprice.is-select").val(),s=n.val(),r=i(".address-manage").attr("cart-type"),d=i(".use-envelopes input:checked").attr("data-use");s=s?s:n.closest("li").find("#juancode").val(),t={cartType:r,deliveryWay:a,couponCode:s,yohoCoin:o},d&&(t.redEnvelopes=d),e(t)}function t(e,t){var n=e;n.keyup(function(){n.val().length>t&&n.val(n.val().substr(0,t))})}var n,a,o=this.e,r=d.UI,l=d.Common;o.$selectExpress.click(function(){var t=i(this).val();o.$loading.show(),e(function(e){e.deliveryWay=t,n={type:"POST",url:"/cart/index/orderCompute",data:e,success:function(e){o.$loading.hide(),200===e.code?(r.render(e.data),"1"===t?i(".express-list.sf").addClass("hide"):"2"===t&&i(".express-list.sf").removeClass("hide")):new s.Alert(e.message).show()}},i.ajax(n)})}),o.$juanok.click(function(){var t=i(this).parents("dl.pan"),a="";i(".play-juan").addClass("is-select"),e(function(e){var s=e.couponCode;s?(o.$loading.show(),n={type:"POST",url:"/cart/index/orderCompute",data:e,success:function(e){o.$loading.hide(),200===e.code?(a=i('.play-juan input[value="'+s+'"]').next().text(),r.render(e.data,a),l.winHide(t),o.$juantip.html("")):(o.$juantip.html(e.message),i(".play-juan").removeClass("is-select"))}},i.ajax(n)):(o.$juantip.html("请选择或填写一个优惠券"),i(".play-juan").removeClass("is-select"))})}),i(document).on("click",".juan-modify",function(){var e=i(".play-juan-pan");l.winShow(e)}),o.$biok.click(function(){var t,a=i(this).parents("dl.pan");i("#biprice").addClass("is-select"),e(function(e){e.couponCode&&(t=i('.play-juan input[value="'+e.couponCode+'"]').next().text()),/^\d+$/.test(e.yohoCoin+"")&&1*e.yohoCoin!==0?1*e.yohoCoin>1*i(".play-pan em").text()?(i(".errbitip").html("您的YOHO币不足"),i("#biprice").removeClass("is-select")):(o.$loading.show(),n={type:"POST",url:"/cart/index/orderCompute",data:e,success:function(e){o.$loading.hide(),200===e.code?(r.render(e.data,t),l.winHide(a)):(i(".errbitip").html(e.message),i("#biprice").removeClass("is-select"))}},i.ajax(n)):(i(".errbitip").html("请输入一个正整数"),i("#biprice").removeClass("is-select"))})}),i(document).on("click",".bi-modify",function(){var e=i(".play-bi-pan");l.winShow(e)}),o.$bp.keyup(function(){var e=i(this).val();/^\d+$/.test(e+"")?1*e>1*i(this).data("bi")?o.$errorTip.html("您的YOHO币不足"):o.$errorTip.html("抵扣"+(e/100).toFixed(2)+"元"):o.$errorTip.html("请输入一个正整数")}),i(".cancel-bi").click(function(){var t,a=i(".play-bi-pan");i(".errbitip").html(""),i("#biprice").hasClass("is-select")?(o.$loading.show(),e(function(e){e.yohoCoin=0,e.couponCode&&(t=i('.play-juan input[value="'+e.couponCode+'"]').next().text()),n={type:"POST",url:"/cart/index/orderCompute",data:e,success:function(e){o.$loading.hide(),200===e.code?(r.render(e.data,t),l.winHide(a),i("#biprice").val("0"),i("#biprice").removeClass("is-select"),i(".errbitip").html("")):i(".errbitip").html(e.message)}},i.ajax(n)})):(l.winHide(a),i("#biprice").val("0"))}),i(".cancel-code").click(function(){var t=i(".play-juan-pan");i(".play-juan").hasClass("is-select")?(o.$loading.show(),e(function(e){e.couponCode="",n={type:"POST",url:"/cart/index/orderCompute",data:e,success:function(e){o.$loading.hide(),200===e.code?(r.render(e.data),l.winHide(t),i(".play-juan").removeClass("is-select"),i("#juancode").val("").siblings('input[name="juangroup"]').attr("checked","checked")):o.$juantip.html(e.message)}},i.ajax(n)})):l.winHide(t)}),a=o.$useEnvelopesInput.data("all")-o.$useEnvelopesInput.data("use"),o.$hasEnvelopes.text("¥"+a.toFixed(2)),o.$useEnvelopes.find("input").click(function(){var t,a=i(this);o.$loading.show(),a.attr("disabled","disabled"),e(function(e){a.attr("checked")?e.redEnvelopes=a.data("use"):e.redEnvelopes=0,t=i('.play-juan input[value="'+e.couponCode+'"]').next().text(),n={type:"POST",url:"/cart/index/orderCompute",data:e,success:function(e){o.$loading.hide(),200===e.code?(r.render(e.data,t),a.removeAttr("disabled"),a.attr("checked")?o.$redEnvelopes.addClass("active"):(o.$useEnvelopes.find("span").html("-¥0.00"),o.$hasEnvelopes.html("¥"+(1*a.attr("data-all")).toFixed(2)),o.$redEnvelopes.removeClass("active"))):new s.Alert(e.message).show()}},i.ajax(n)})}),t(i("#piaodesc"),30),t(i("#notedesc"),100)}}};d.Data.activity=0,d.Data.carriage=0,d.UI.init(),d.Bll.init(),o.getUserAddressList(),o.newAddress(0,"000000"),o.modifyAddress(),o.saveAddress(),i(".why").click(function(){return i("#differentBag").show(),!1}),i("#differentBag").click(function(){return!1}),i(document).click(function(){i("#differentBag").hide()}),i(".bag").find("ul").each(function(){var e=i(this).parent().parent().find(".pre"),t=i(this).parent().parent().find(".next"),n=i(this).find("li").eq(0).width(),o=i(this).find("li").size(),s=n*o;i(this).css("width",s),o>5?(e.show(),t.show(),a(e,t,i(this),n)):(e.hide(),t.hide())})}),define("js/order/address",["jquery","handlebars","source-map"],function(e,t,n){function a(e,t,n){var a,i,o="",s="";for(a=0;a<t.length;a++)s="Y"===t[a].is_support_express?"*":"",o+=t[a].id===n?'<option selected value="'+t[a].id+'">'+s+t[a].caption+"</option>":'<option value="'+t[a].id+'">'+s+t[a].caption+"</option>";"province"===e.attr("name")?i='<option value="0">请选择省份</option>':"city"===e.attr("name")?i='<option value="0">请选择城市</option>':"county"===e.attr("name")&&(i='<option value="0">请选择区县</option>'),e.html(i+o)}function i(e,t){var n,i=e.selectId;"getProvince"===e.type?n=f:"getCity"===e.type?n=m:"getCounty"===e.type&&(n=g),c.ajax({type:"GET",url:"/cart/index/getAreaList",dataType:"json",data:{id:1*e.id}}).then(function(e){a(n,e.data,i),"function"==typeof t&&t()})}function o(e){return e.replace(/^(\d{3}).*(\d{4})$/,"$1****$2")}function s(e){b.val(e.attr("data-name")),b.attr("data-id",e.attr("data-id")),_.val(e.attr("data-addressDesc")),w.val(e.attr("data-mobile")),C.val(e.attr("data-email")),x.val(e.attr("data-zipcode")),j.val(e.attr("data-phoneCode")),S.val(e.attr("data-phoneNum"))}function r(){T.removeClass("active"),q.find('li:not(".active")').addClass("hide"),q.find("li.active").addClass("address_select"),p.addClass("hide"),k.addClass("hide").removeAttr("data-id"),q.removeClass("address-expand"),c(".address-list h2 span").text("[修改]")}function d(){var e,t,n,a=c(".play-juan ul"),i="";c.ajax({type:"GET",dataType:"json",url:"/cart/index/getCouponList"}).then(function(o){if(200===o.code){for(t=o.data,e=t.length,n=0;e>n;n++)i+='<li><input name="juangroup" type="radio" value="'+t[n].code+'" '+(t[n].valid?"":'disabled="disabled"')+"><label>"+t[n].desc+"</label></li>";a.prepend(c(i))}})}function l(e){return"N"!==e}var c=e("jquery"),u=e("js/common/dialog"),h=!1,p=c(".address-manage"),f=p.find('.text-input[name="province"]'),m=p.find('.text-input[name="city"]'),g=p.find('.text-input[name="county"]'),v=p.find('.text-input[name="province"], .text-input[name="city"]'),y=c(".address-list"),b=p.find('.text-input[name="name"]'),w=p.find('.text-input[name="phone"]'),C=p.find('.text-input[name="mail"]'),_=p.find('.text-input[name="address"]'),x=p.find('.text-input[name="code"]'),k=c(".save-btn"),j=p.find('.text-input[name="tel-code"]'),S=p.find('.text-input[name="tel"]'),T=c(".use-new-address"),q=c(".exist-address-list"),I=c(".loading"),E=c("#order-edit-main"),A=p.attr("cart-type");I.show(),t.getUserAddressList=function(){var e,t,n="",a="",i="",o="",s=0;c.ajax({type:"GET",url:"/cart/index/getAddress",dataType:"json"}).then(function(r){if(I.hide(),200===r.code){if(e=r.data.list,!e)return E.attr("data-new")&&(k.addClass("new-user-btn").html("下一步:选择支付及送货时间"),c(".pay-btn").addClass("new-user-pay").html("下一步:发票和备注"),c(".switch-pay-modify").html("")),y.find(">h2").find("span").click(),c(".exist-address-list li").click(),void c(".use-new-address").removeClass("active");for(t=0;t<e.length;t++)e[t].checked?(a="checked",i="active address_select",s++,o="默认地址"):(a="",i="hide",o="设为默认地址"),n+='<li data-id="'+e[t].id+'" class="'+i+'" data-express="'+e[t].isSupport+'"><input data-name="'+e[t].user+'" data-areaCode="'+e[t].areaCode+'" data-addressDesc="'+e[t].addressDesc+'" data-mobile="'+e[t].mobile+'" data-phoneNum="'+e[t].phoneNum+'" data-phoneCode="'+e[t].phoneCode+'" data-zipCode="'+e[t].zipCode+'" data-email="'+e[t].email+'" class="radio" type="radio" name="address" '+a+' /><label for=""><strong>'+e[t].user+"</strong>"+e[t].address+'<a href="javascript:void(0);" class="default-address">'+o+'</a><div class="order-modify-btn"><span class="address-modify">[修改]</span><span class="address-del">[删除]</span></div></label></li>';c(".use-new-address").before(c(n)),0===s&&c(".address-list h2 span").click(),"N"===c(".active.address_select").attr("data-express")?(c('.express-list input[name="carriagegroup"][value="2"]').attr("disabled","disabled"),c('.express-list input[name="carriagegroup"][value="1"]').attr("checked","checked"),c(".express-list.sf").addClass("hide"),c(".is-sup").removeClass("hide")):(c('.express-list input[name="carriagegroup"][value="2"]').removeAttr("disabled"),c(".express-list.sf").removeClass("hide"),c(".is-sup").addClass("hide"))}})},t.newAddress=function(e,t){var n=e||0,a=/[0-9]{2}/gi,o=!!t&&t.match(a);i({id:n,type:"getProvince",selectId:o[0]},function(){var e=f.val();"0"!==e?i({id:e,type:"getCity",selectId:""+o[0]+o[1]},function(){var e=m.val();"0"!==e&&i({id:e,type:"getCounty",selectId:t})}):(p.find('select[name="city"]').html('<option value="0">请选择城市</option>'),p.find('select[name="county"]').html('<option value="0">请选择区县</option>'))}),v.change(function(){var e=c(this);"province"===e.attr("name")&&("0"===e.val()?(p.find('select[name="city"]').html('<option value="0">请选择城市</option>'),p.find('select[name="county"]').html('<option value="0">请选择区县</option>')):(i({id:e.val(),type:"getCity"},function(){h=!0}),p.find('select[name="county"]').html('<option value="0">请选择区县</option>'))),"city"===e.attr("name")&&h&&("0"===e.val()?p.find('select[name="county"]').html('<option value="0">请选择区县</option>'):i({id:e.val(),type:"getCounty"}))})},t.modifyAddress=function(){y.click(function(e){var n=c(e.target),a=n.closest("li").attr("data-id"),i=n.closest("li").find(".radio").attr("data-areaCode");n.hasClass("address-modify")?(p.removeClass("hide"),t.newAddress(0,i),s(n.closest("li").find(".radio")),c(".address-list-inner .save-btn").removeClass("hide"),k.attr("data-id",a),h=!0):n.hasClass("address-del")?(I.show(),c.ajax({type:"POST",url:"/cart/index/delAddress",data:{id:a}}).then(function(e){I.hide(),200===e.code?n.closest("li").remove():new u.Alert(e.message).show()}).fail(function(){})):n.hasClass("default-address")&&!n.parents("li").hasClass("address_select")&&(I.show(),c.ajax({type:"post",url:"/cart/index/setDefaultAddress",data:{id:a}}).then(function(e){I.hide(),200===e.code?(c(".exist-address-list li").removeClass("address_select").find(".default-address").text("设为默认地址"),n.parents("li").addClass("address_select"),n.text("默认地址")):new u.Alert(e.message).show()}))})},t.saveAddress=function(){k.click(function(){function e(e){return e===y?e?e+"-":" ":e?e+" ":" "}var t,n,a,i=c(this),s=b.val(),d=f.val(),l=m.val(),h=g.val(),p=_.val(),v=w.val(),y=j.val(),T=S.val(),q=C.val(),I=x.val(),E=f.find('option[value="'+d+'"]').text().replace(/\*/,""),A=m.find('option[value="'+l+'"]').text().replace(/\*/,""),F=g.find('option[value="'+h+'"]').text().replace(/\*/,""),U={consignee:s,areaCode:h,address:p,email:q,mobile:v,zipCode:I,phoneCode:y,phoneNum:T},D=/^[\u4e00-\u9fa5]{2,5}$/,P=/^[\s\S]{2,100}$/,O=/^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/,L=/^[0-9]{6}$/,N=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,$=/^[0-9]{3,5}$/,z=/^[0-9]{5,10}$/;if(a=c('.exist-address-list li:not(".use-new-address")').find('input[name="address"]:checked').length>0,c(".add-address").attr("checked")||!a||c(".save-btn").attr("data-id")||(c(".exist-address-list li").removeClass("address_select"),c(".exist-address-list li.active").addClass("address_select").find('input[name="address"]').attr("checked","checked"),c(".address-list span").removeAttr("expand"),r()),!c(".address-manage").hasClass("hide")){if(!D.test(s))return void new u.Alert("真实姓名至少2个中文,最多5个中文").show();if(!P.test(p))return void new u.Alert("你输入的地址格式不正确").show();if(!O.test(v))return void new u.Alert("你输入的联系电话格式不正确").show();if(y&&!$.test(y)||T&&!z.test(T)||$.test(y)&&!z.test(T)||!$.test(y)&&z.test(T))return void new u.Alert("你输入的电话格式不正确").show();if(q&&!N.test(q))return void new u.Alert("你输入的邮箱格式不正确").show();if(I&&!L.test(I))return void new u.Alert("你输入的邮编格式不正确").show();k.attr("data-id")&&(U.id=k.attr("data-id")),c.ajax({type:"post",url:"/cart/index/saveAddress",data:U}).then(function(a){var d;200===a.code?(d=a.data,"Y"===d.is_support?(c('.express-list input[name="carriagegroup"][value="2"]').removeAttr("disabled"),c(".express-list.sf").removeClass("hide"),c(".is-sup").addClass("hide")):(c('.express-list input[name="carriagegroup"][value="2"]').attr("disabled","disabled"),c('.express-list input[name="carriagegroup"][value="1"]').attr("checked","checked"),c(".express-list.sf").addClass("hide"),c(".is-sup").removeClass("hide")),t=U.id?'<li class="active" data-id="'+U.id+'" data-express="'+d.is_support+'"><input data-name="'+U.consignee+'" data-areaCode="'+U.areaCode+'" data-addressDesc="'+U.address+'" data-mobile="'+U.mobile+'" data-phoneNum="'+U.phoneNum+'" data-phoneCode="'+U.phoneCode+'" data-zipCode="'+U.zipCode+'" data-email="'+U.email+'" checked="checked" class="radio" type="radio" name="address" /><label><strong>'+s+"</strong><span>"+E+" "+A+" "+F+" "+p+" "+e(I)+o(v)+e(y)+e(T)+'</span><a href="javascript:void(0);" class="default-address">设为默认地址</a><div class="order-modify-btn"><span class="address-modify">[修改]</span><span class="address-del">[删除]</span></div></label></li>':'<li class="active" data-id="'+d.id+'" data-express="'+d.is_support+'"><input data-name="'+d.consignee+'" data-areaCode="'+d.area_code+'" data-addressDesc="'+d.address+'" data-mobile="'+d.mobile+'" data-phoneNum="'+U.phoneNum+'" data-phoneCode="'+U.phoneCode+'" data-zipCode="'+d.zip_code+'" data-email="'+d.email+'" checked="checked" class="radio" type="radio" name="address" /><label><strong>'+s+"</strong><span>"+E+" "+A+" "+F+" "+p+" "+e(I)+o(v)+e(y)+e(T)+'</span><a href="javascript:void(0);" class="default-address">设为默认地址</a><div class="order-modify-btn"><span class="address-modify">[修改]</span><span class="address-del">[删除]</span></div></label></li>',i.attr("data-id")?(n=c('.exist-address-list li[data-id="'+i.attr("data-id")+'"]'),n.after(c(t)).remove()):c(".use-new-address").before(c(t)),c(".address-list span").removeAttr("expand"),r()):new u.Alert(a.message).show()})}return 0===c(".exist-address-list li").find('input[name="address"]:checked').length?void new u.Alert("请选择一个地址").show():("N"===c(".exist-address-list li").find('input[name="address"]:checked').closest("li").attr("data-express")?(c('.express-list input[name="carriagegroup"][value="2"]').attr("disabled","disabled"),c('.express-list input[name="carriagegroup"][value="1"]').attr("checked","checked"),c(".express-list.sf").addClass("hide"),c(".is-sup").removeClass("hide")):(c('.express-list input[name="carriagegroup"][value="2"]').removeAttr("disabled"),c(".express-list.sf").removeClass("hide"),c(".is-sup").addClass("hide")),void(i.hasClass("new-user-btn")&&c(".switch-pay-modify").click()))})},c(".pay-time-modify .pay-btn").click(function(){var e=c(this),t=c(".modity-pay-info"),n=c(".pay-time-modify"),a=n.find('input[name="pay-type"]:checked').val(),i=n.find('input[name="pay-type"]:checked').next("label").text(),o=n.find('input[name="pay-time-radio"]:checked').next("label").text(),s=n.find('input[name="pay-time-radio"]:checked').val(),r=n.find('input[name="call-me"]:checked').next("label").text(),d=n.find('input[name="call-me"]:checked').val();I.show(),c.ajax({type:"POST",url:"/cart/index/orderCompute",dataType:"json",data:{cartType:A,paymentType:a}}).then(function(n){I.hide(),200===n.code?(t.find("li").eq(0).find("span").text(i),t.find("li").eq(1).find("span").text(o),t.find("li").eq(2).find("span").text(r),c(".pay-time-modify").addClass("hide").find('input[name="pay-type"][value='+a+"]").addClass("checked").end().find('input[name="pay-time-radio"][value='+s+"]").addClass("checked").end().find('input[name="call-me"][value='+d+"]").addClass("checked"),c(".modity-pay-info").removeClass("hide"),c(".switch-pay-modify").text("[修改]"),e.hasClass("new-user-pay")&&(c(".play-piao-pan dd").css({display:"block"}),c(".play-piao-pan dt").addClass("active"))):new u.Alert(n.message).show()})}),d(),c(".to-play input.submit").click(function(){var e=c(this),t=c('.exist-address-list input[name="address"]:checked').closest("li").attr("data-id"),n=c('.pay-time-modify input[name="pay-time-radio"]:checked').val(),a=c('.select-express input[name="carriagegroup"]:checked').val(),i=c("#piaodesc").val(),o=c("#piaotype").val(),s=c('.pay-time-modify input[name="pay-type"]:checked').val(),r=c('.pay-time-modify input[name="pay-type"]:checked').data("pay"),d=c("#notedesc").val(),h=c("#biprice").val(),p=c('.pay-time-modify input[name="call-me"]:checked').val(),f=c('.play-pan input[name="isPP"]:checked').val(),m=c(".use-envelopes input:checked").attr("data-use"),g=c('.play-juan.is-select input[name="juangroup"]:checked'),v=g.val(),y=v?v:g.closest("li").find("#juancode").val();I.show(),e.attr("disabled")||(e.attr("disabled","disabled"),c.ajax({type:"POST",dataType:"json",url:"/cart/index/orderSub",data:{addressId:t,cartType:A,deliveryTimeId:n,deliveryWayId:a,invoiceTitle:i,invoiceId:o,paymentId:r,paymentType:s,remark:d,couponCode:y,yohoCoin:h,isPreContact:l(p),isPrintPrice:l(f),redEnvelopes:m}}).then(function(e){I.hide(),200===e.code?window.location.href=e.data.payUrl:new u.Alert(e.message).show()}).always(function(){e.removeAttr("disabled")}))})}),define("js/shopping/pay",["jquery"],function(e,t,n){function a(){v?u('.mode div[id="'+v+'"]').addClass("choosed-tag").parent().addClass("choose-type"):(p.eq(0).addClass("choose-type").show(),p.eq(0).find("div").addClass("choosed-tag")),m.attr("value","前往"+u("#"+y).attr("alt")),f.attr("src",u("#"+y).attr("src"))}function i(e,t){u.ajax({type:"get",url:"/common/addpaymentinterval",dataType:"json",data:{orderCode:t,payment:e}})}var o,s,r,d,l,c,u=e("jquery"),h=u(".mode div"),p=u(".mode"),f=u("#show-pay-img"),m=u("#btnby"),g=u(".light-box"),v=u("#choosePay").val(),y=u('.mode div[id="'+v+'"]').parent().data("value"),b=v?y:u(".mode").eq(0).data("value"),w=u("#payUrl").val();u.jqtab=function(e,t){u(e+" li").click(function(){return s=u(this).find("a").attr("tab"),u(e+" li").removeClass("thistab"),u(this).addClass("thistab"),u(t).hide(),u("#"+s).fadeIn(),!1})},u.jqtab("#tabs",".tab-con"),a(),p.click(function(){return o=u(this).data(),b=o.value,r=u("#"+b).attr("alt"),d=u("#"+b).attr("src"),p.removeClass("choose-type"),u(this).addClass("choose-type"),h.removeClass("choosed-tag"),u(this).find(".borer-tag").addClass("choosed-tag"),m.attr("value","前往"+r),f.attr("src",d),!1}),u(".close").click(function(){g.hide()}),u(".change").click(function(){g.hide()}),u("#btnby").click(function(){c=u(".choose-type").attr("data-id"),l=u(".order-num").text(),i(c,l),window.open(w+"?order_code="+l+"&payment_type="+b),g.show()}),u(".pay-over").unbind("click").bind("click",function(){var e=this;u.post("/shopping/pay/sendPay",{orderCode:l,paymentId:c},function(){window.location.href=u(e).data("url")})})}),define("js/pay/wechatqrcode",["jquery"],function(e,t,n){function a(){i.ajax({url:s,dataType:"jsonp",success:function(e){"success"===e.message&&(window.location.href=r)}})}var i=e("jquery"),o=i(".w-odetail"),s=i("#payHost").val(),r=i("#paySuccessUrl").val(),d=i(".w-p-erm");e("plugin/jquery.qrcode"),o.click(function(){i(".w-addrinfo").slideToggle("slow"),o.find("i").hasClass("up")?o.html('收起详情<i class="down"></i>'):o.html('订单详情<i class="up"></i>')}),d.qrcode({render:"table",text:d.data("url")}),setInterval(a,3e3)}),define("plugin/jquery.qrcode",["jquery"],function(e,t,n){var a=e("jquery");!function(e){e.fn.qrcode=function(t){function n(e){this.mode=d,this.data=e}function i(e,t){this.typeNumber=e,this.errorCorrectLevel=t,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}function o(e,t){if(void 0==e.length)throw Error(e.length+"/"+t);for(var n=0;n<e.length&&0==e[n];)n++;this.num=Array(e.length-n+t);for(var a=0;a<e.length-n;a++)this.num[a]=e[a+n]}function s(e,t){this.totalCount=e,this.dataCount=t}function r(){this.buffer=[],this.length=0}var d;n.prototype={getLength:function(){return this.data.length},write:function(e){for(var t=0;t<this.data.length;t++)e.put(this.data.charCodeAt(t),8)}},i.prototype={addData:function(e){this.dataList.push(new n(e)),this.dataCache=null},isDark:function(e,t){if(0>e||this.moduleCount<=e||0>t||this.moduleCount<=t)throw Error(e+","+t);return this.modules[e][t]},getModuleCount:function(){return this.moduleCount},make:function(){if(1>this.typeNumber){for(var e=1,e=1;40>e;e++){for(var t=s.getRSBlocks(e,this.errorCorrectLevel),n=new r,a=0,i=0;i<t.length;i++)a+=t[i].dataCount;for(i=0;i<this.dataList.length;i++)t=this.dataList[i],n.put(t.mode,4),n.put(t.getLength(),l.getLengthInBits(t.mode,e)),t.write(n);if(n.getLengthInBits()<=8*a)break}this.typeNumber=e}this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(e,t){this.moduleCount=4*this.typeNumber+17,this.modules=Array(this.moduleCount);for(var n=0;n<this.moduleCount;n++){this.modules[n]=Array(this.moduleCount);for(var a=0;a<this.moduleCount;a++)this.modules[n][a]=null}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(e,t),7<=this.typeNumber&&this.setupTypeNumber(e),null==this.dataCache&&(this.dataCache=i.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,t)},setupPositionProbePattern:function(e,t){for(var n=-1;7>=n;n++)if(!(-1>=e+n||this.moduleCount<=e+n))for(var a=-1;7>=a;a++)-1>=t+a||this.moduleCount<=t+a||(this.modules[e+n][t+a]=n>=0&&6>=n&&(0==a||6==a)||a>=0&&6>=a&&(0==n||6==n)||n>=2&&4>=n&&a>=2&&4>=a)},getBestMaskPattern:function(){for(var e=0,t=0,n=0;8>n;n++){this.makeImpl(!0,n);var a=l.getLostPoint(this);(0==n||e>a)&&(e=a,t=n)}return t},createMovieClip:function(e,t,n){for(e=e.createEmptyMovieClip(t,n),this.make(),t=0;t<this.modules.length;t++)for(var n=1*t,a=0;a<this.modules[t].length;a++){ +var i=1*a;this.modules[t][a]&&(e.beginFill(0,100),e.moveTo(i,n),e.lineTo(i+1,n),e.lineTo(i+1,n+1),e.lineTo(i,n+1),e.endFill())}return e},setupTimingPattern:function(){for(var e=8;e<this.moduleCount-8;e++)null==this.modules[e][6]&&(this.modules[e][6]=0==e%2);for(e=8;e<this.moduleCount-8;e++)null==this.modules[6][e]&&(this.modules[6][e]=0==e%2)},setupPositionAdjustPattern:function(){for(var e=l.getPatternPosition(this.typeNumber),t=0;t<e.length;t++)for(var n=0;n<e.length;n++){var a=e[t],i=e[n];if(null==this.modules[a][i])for(var o=-2;2>=o;o++)for(var s=-2;2>=s;s++)this.modules[a+o][i+s]=-2==o||2==o||-2==s||2==s||0==o&&0==s}},setupTypeNumber:function(e){for(var t=l.getBCHTypeNumber(this.typeNumber),n=0;18>n;n++){var a=!e&&1==(t>>n&1);this.modules[Math.floor(n/3)][n%3+this.moduleCount-8-3]=a}for(n=0;18>n;n++)a=!e&&1==(t>>n&1),this.modules[n%3+this.moduleCount-8-3][Math.floor(n/3)]=a},setupTypeInfo:function(e,t){for(var n=l.getBCHTypeInfo(this.errorCorrectLevel<<3|t),a=0;15>a;a++){var i=!e&&1==(n>>a&1);6>a?this.modules[a][8]=i:8>a?this.modules[a+1][8]=i:this.modules[this.moduleCount-15+a][8]=i}for(a=0;15>a;a++)i=!e&&1==(n>>a&1),8>a?this.modules[8][this.moduleCount-a-1]=i:9>a?this.modules[8][15-a-1+1]=i:this.modules[8][15-a-1]=i;this.modules[this.moduleCount-8][8]=!e},mapData:function(e,t){for(var n=-1,a=this.moduleCount-1,i=7,o=0,s=this.moduleCount-1;s>0;s-=2)for(6==s&&s--;;){for(var r=0;2>r;r++)if(null==this.modules[a][s-r]){var d=!1;o<e.length&&(d=1==(e[o]>>>i&1)),l.getMask(t,a,s-r)&&(d=!d),this.modules[a][s-r]=d,i--,-1==i&&(o++,i=7)}if(a+=n,0>a||this.moduleCount<=a){a-=n,n=-n;break}}}},i.PAD0=236,i.PAD1=17,i.createData=function(e,t,n){for(var t=s.getRSBlocks(e,t),a=new r,o=0;o<n.length;o++){var d=n[o];a.put(d.mode,4),a.put(d.getLength(),l.getLengthInBits(d.mode,e)),d.write(a)}for(o=e=0;o<t.length;o++)e+=t[o].dataCount;if(a.getLengthInBits()>8*e)throw Error("code length overflow. ("+a.getLengthInBits()+">"+8*e+")");for(a.getLengthInBits()+4<=8*e&&a.put(0,4);0!=a.getLengthInBits()%8;)a.putBit(!1);for(;!(a.getLengthInBits()>=8*e)&&(a.put(i.PAD0,8),!(a.getLengthInBits()>=8*e));)a.put(i.PAD1,8);return i.createBytes(a,t)},i.createBytes=function(e,t){for(var n=0,a=0,i=0,s=Array(t.length),r=Array(t.length),d=0;d<t.length;d++){var c=t[d].dataCount,u=t[d].totalCount-c,a=Math.max(a,c),i=Math.max(i,u);s[d]=Array(c);for(var h=0;h<s[d].length;h++)s[d][h]=255&e.buffer[h+n];for(n+=c,h=l.getErrorCorrectPolynomial(u),c=new o(s[d],h.getLength()-1).mod(h),r[d]=Array(h.getLength()-1),h=0;h<r[d].length;h++)u=h+c.getLength()-r[d].length,r[d][h]=u>=0?c.get(u):0}for(h=d=0;h<t.length;h++)d+=t[h].totalCount;for(n=Array(d),h=c=0;a>h;h++)for(d=0;d<t.length;d++)h<s[d].length&&(n[c++]=s[d][h]);for(h=0;i>h;h++)for(d=0;d<t.length;d++)h<r[d].length&&(n[c++]=r[d][h]);return n},d=4;for(var l={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(e){for(var t=e<<10;0<=l.getBCHDigit(t)-l.getBCHDigit(l.G15);)t^=l.G15<<l.getBCHDigit(t)-l.getBCHDigit(l.G15);return(e<<10|t)^l.G15_MASK},getBCHTypeNumber:function(e){for(var t=e<<12;0<=l.getBCHDigit(t)-l.getBCHDigit(l.G18);)t^=l.G18<<l.getBCHDigit(t)-l.getBCHDigit(l.G18);return e<<12|t},getBCHDigit:function(e){for(var t=0;0!=e;)t++,e>>>=1;return t},getPatternPosition:function(e){return l.PATTERN_POSITION_TABLE[e-1]},getMask:function(e,t,n){switch(e){case 0:return 0==(t+n)%2;case 1:return 0==t%2;case 2:return 0==n%3;case 3:return 0==(t+n)%3;case 4:return 0==(Math.floor(t/2)+Math.floor(n/3))%2;case 5:return 0==t*n%2+t*n%3;case 6:return 0==(t*n%2+t*n%3)%2;case 7:return 0==(t*n%3+(t+n)%2)%2;default:throw Error("bad maskPattern:"+e)}},getErrorCorrectPolynomial:function(e){for(var t=new o([1],0),n=0;e>n;n++)t=t.multiply(new o([1,c.gexp(n)],0));return t},getLengthInBits:function(e,t){if(t>=1&&10>t)switch(e){case 1:return 10;case 2:return 9;case d:return 8;case 8:return 8;default:throw Error("mode:"+e)}else if(27>t)switch(e){case 1:return 12;case 2:return 11;case d:return 16;case 8:return 10;default:throw Error("mode:"+e)}else{if(!(41>t))throw Error("type:"+t);switch(e){case 1:return 14;case 2:return 13;case d:return 16;case 8:return 12;default:throw Error("mode:"+e)}}},getLostPoint:function(e){for(var t=e.getModuleCount(),n=0,a=0;t>a;a++)for(var i=0;t>i;i++){for(var o=0,s=e.isDark(a,i),r=-1;1>=r;r++)if(!(0>a+r||a+r>=t))for(var d=-1;1>=d;d++)0>i+d||i+d>=t||0==r&&0==d||s==e.isDark(a+r,i+d)&&o++;o>5&&(n+=3+o-5)}for(a=0;t-1>a;a++)for(i=0;t-1>i;i++)o=0,e.isDark(a,i)&&o++,e.isDark(a+1,i)&&o++,e.isDark(a,i+1)&&o++,e.isDark(a+1,i+1)&&o++,(0==o||4==o)&&(n+=3);for(a=0;t>a;a++)for(i=0;t-6>i;i++)e.isDark(a,i)&&!e.isDark(a,i+1)&&e.isDark(a,i+2)&&e.isDark(a,i+3)&&e.isDark(a,i+4)&&!e.isDark(a,i+5)&&e.isDark(a,i+6)&&(n+=40);for(i=0;t>i;i++)for(a=0;t-6>a;a++)e.isDark(a,i)&&!e.isDark(a+1,i)&&e.isDark(a+2,i)&&e.isDark(a+3,i)&&e.isDark(a+4,i)&&!e.isDark(a+5,i)&&e.isDark(a+6,i)&&(n+=40);for(i=o=0;t>i;i++)for(a=0;t>a;a++)e.isDark(a,i)&&o++;return e=Math.abs(100*o/t/t-50)/5,n+10*e}},c={glog:function(e){if(1>e)throw Error("glog("+e+")");return c.LOG_TABLE[e]},gexp:function(e){for(;0>e;)e+=255;for(;e>=256;)e-=255;return c.EXP_TABLE[e]},EXP_TABLE:Array(256),LOG_TABLE:Array(256)},u=0;8>u;u++)c.EXP_TABLE[u]=1<<u;for(u=8;256>u;u++)c.EXP_TABLE[u]=c.EXP_TABLE[u-4]^c.EXP_TABLE[u-5]^c.EXP_TABLE[u-6]^c.EXP_TABLE[u-8];for(u=0;255>u;u++)c.LOG_TABLE[c.EXP_TABLE[u]]=u;return o.prototype={get:function(e){return this.num[e]},getLength:function(){return this.num.length},multiply:function(e){for(var t=Array(this.getLength()+e.getLength()-1),n=0;n<this.getLength();n++)for(var a=0;a<e.getLength();a++)t[n+a]^=c.gexp(c.glog(this.get(n))+c.glog(e.get(a)));return new o(t,0)},mod:function(e){if(0>this.getLength()-e.getLength())return this;for(var t=c.glog(this.get(0))-c.glog(e.get(0)),n=Array(this.getLength()),a=0;a<this.getLength();a++)n[a]=this.get(a);for(a=0;a<e.getLength();a++)n[a]^=c.gexp(c.glog(e.get(a))+t);return new o(n,0).mod(e)}},s.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],s.getRSBlocks=function(e,t){var n=s.getRsBlockTable(e,t);if(void 0==n)throw Error("bad rs block @ typeNumber:"+e+"/errorCorrectLevel:"+t);for(var a=n.length/3,i=[],o=0;a>o;o++)for(var r=n[3*o+0],d=n[3*o+1],l=n[3*o+2],c=0;r>c;c++)i.push(new s(d,l));return i},s.getRsBlockTable=function(e,t){switch(t){case 1:return s.RS_BLOCK_TABLE[4*(e-1)+0];case 0:return s.RS_BLOCK_TABLE[4*(e-1)+1];case 3:return s.RS_BLOCK_TABLE[4*(e-1)+2];case 2:return s.RS_BLOCK_TABLE[4*(e-1)+3]}},r.prototype={get:function(e){return 1==(this.buffer[Math.floor(e/8)]>>>7-e%8&1)},put:function(e,t){for(var n=0;t>n;n++)this.putBit(1==(e>>>t-n-1&1))},getLengthInBits:function(){return this.length},putBit:function(e){var t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},"string"==typeof t&&(t={text:t}),t=e.extend({},{render:"canvas",width:256,height:256,typeNumber:-1,correctLevel:2,background:"#ffffff",foreground:"#000000"},t),this.each(function(){var n;if("canvas"==t.render){n=new i(t.typeNumber,t.correctLevel),n.addData(t.text),n.make();var o=document.createElement("canvas");o.width=t.width,o.height=t.height;for(var s=o.getContext("2d"),r=t.width/n.getModuleCount(),d=t.height/n.getModuleCount(),l=0;l<n.getModuleCount();l++)for(var c=0;c<n.getModuleCount();c++){s.fillStyle=n.isDark(l,c)?t.foreground:t.background;var u=Math.ceil((c+1)*r)-Math.floor(c*r),h=Math.ceil((l+1)*r)-Math.floor(l*r);s.fillRect(Math.round(c*r),Math.round(l*d),u,h)}}else for(n=new i(t.typeNumber,t.correctLevel),n.addData(t.text),n.make(),o=e("<table></table>").css("width",t.width+"px").css("height",t.height+"px").css("border","0px").css("border-collapse","collapse").css("background-color",t.background),s=t.width/n.getModuleCount(),r=t.height/n.getModuleCount(),d=0;d<n.getModuleCount();d++)for(l=e("<tr></tr>").css("height",r+"px").appendTo(o),c=0;c<n.getModuleCount();c++)e("<td></td>").css("width",s+"px").css("background-color",n.isDark(d,c)?t.foreground:t.background).appendTo(l);n=o,a(n).appendTo(this)})}}(a)}),define("js/about/entry",["jquery","jquery.placeholder","handlebars","source-map"],function(e,t,n){e("js/about/settled")}),define("js/about/settled",["jquery","jquery.placeholder","handlebars","source-map"],function(e,t,n){var a=e("jquery"),i=e("js/passport/mail-phone-regx");e("jquery.placeholder"),e("plugin/jquery.qupload"),function(){function e(){var e=a(window).height();n.removeClass("hide"),i.css({"max-height":e-60}).removeClass("hide")}function t(){n.addClass("hide"),i.addClass("hide")}var n,i;0!==a(".settled-page").length&&(n=a("#mask"),i=a("#notice-container"),a("#fake-link").click(e),a("#fake-close").click(t),a("#mask").click(t))}(),function(){function t(e){a.each(e,function(e,t){a("#"+t.dom).qupload({uploadKey:w,button_image_url:"",button_text:'<span class="btn_upload_text">上传</span>',button_text_style:".btn_upload_text{color:#000;margin-left:30px;line-height: 2em;font-size:14px;}",button_text_left_padding:32,button_text_top_padding:8,button_width:160,button_height:35,button_action:x.BUTTON_ACTION.SELECT_FILE,file_size_limit:"10240",file_types:t.type,uploadSuccessed:function(e){var n=JSON.parse(e);return 12!==n.code?(alert(n.message),!1):void t.callback(n.data.hit.Filedata.return_file_path)}})})}function n(){var e=!0,t=/[0-9]\d{5}(?!\d)/,n=i.emailRegx,o=i.phoneRegx["+86"],s=/^(0|[1-9][0-9]*)$/;return a(".va, .category-item select, .for-other, .category-item").removeClass("error"),a(".va-null").each(function(){""===a(this).val()&&(a(this).addClass("error"),e=!1)}),""!==f.val()&&t.test(f.val())||(f.addClass("error"),e=!1),""!==m.val()&&n.test(m.val())||(m.addClass("error"),e=!1),""!==g.val()&&o.test(g.val())||(g.addClass("error"),e=!1),""!==y.val()&&s.test(y.val())||(y.addClass("error"),e=!1),a(".category-item").each(function(){0===a(this).get(0).selectedIndex&&(a(this).addClass("error"),e=!1)}),3===a('input[name="seller-role"]:checked').index()&&""===r.val()&&(e=!1,r.addClass("error")),5===a('input[name="new_cycle"]:checked').index()&&""===d.val()&&(e=!1,d.addClass("error")),5===a('input[name="supply_cycle"]:checked').index()&&""===l.val()&&(e=!1,l.addClass("error")),e}function o(){c.closest("tr").removeClass("hide"),c.append("<li>"+C+"</li>")}function s(){var e=a(this).val(),t=a(this).parent().find(".category-two"),n="<option>选择二级分类</option>";return""===e?void t.html(n):void a.ajax({url:"/shop/settled/getTwoCategory",type:"GET",data:{id:e}}).then(function(e){var a,i=[];if(200===e.code)for(i=e.data,a=0;a<i.length;a++)n+='<option value="'+i[a].id+'" >'+i[a].name+"</option>";t.html(n)})}var r,d,l,c,u,h,p,f,m,g,v,y,b,w,C=a("#category-tpl").html(),_=e("js/common/dialog").Dialog,x=window.SWFUpload;if(!(a(".settled-apply-page").length<0)){if(a("[placeholder]").placeholder(),r=a("#other-brand-relation"),d=a("#other-new-period"),l=a("#other-replenishment-period"),c=a("#category-list"),u=a("#shop-list"),h=a("#shops"),p=a("#mask, #submit-success"),f=a("#postcode"),m=a("#email"),g=a("#phone-number"),v=a("#upload-key"),y=a("#style-count"),w=v.val(),v.remove(),t([{dom:"upload-brand-material",type:"*.ppt;*.pdf;*.zip;*.rar",callback:function(e){a("#brand-material").val(e),a(".brand-tip").html("上传成功"),alert("上传成功!")}},{dom:"upload-goods-material",type:"*.xls;*.xlsx;*.zip;*.rar",callback:function(e){a("#goods-material").val(e),a(".goods-tip").html("上传成功"),alert("上传成功!")}}]),location.search.indexOf("state=1")>-1)return b=new _({className:"settled-success",closeIcon:!1,content:'<h1 class="main-title">恭喜您已提交成功</h1><h2 class="sub-title">我们将尽快与您联系</h2>',btns:[{id:"apply-success-ok",btnClass:["apply-success-ok"],name:"确认",cb:function(){location.href="/shop/settled/index"}}]}),void b.show();a('input[name="seller_role"]').change(function(){3===a(this).index()?r.removeClass("hide"):r.addClass("hide")}),a('input[name="new-cycle"]').change(function(){5===a(this).index()?d.removeClass("hide"):d.addClass("hide")}),a('input[name="supply-cycle"]').change(function(){5===a(this).index()?l.removeClass("hide"):l.addClass("hide")}),a('input[name="have-store"]').change(function(){1===a(this).index()?u.addClass("hide"):u.removeClass("hide")}),a(".form-container").on("change",".category-one",s),a("#category-add").click(o),h.delegate(".shop-add","click",function(){h.append('<li><input class="shop-addres" name="store-address[]" type="text" placeholder="输入店铺地址"><span>月均销售:</span><input class="shop-sales-volume" type="text" name="store-sales-volume[]" placeholder="输入价格"><span>元</span></li>')}),a("#apply-post").click(function(){var e;n()?(p.removeClass("hide"),a("form").submit()):(a(".error").first().focus(),e=a(".error").first().offset().top,a(window).scrollTop(e-10))}),navigator.userAgent.indexOf("MSIE")>=0&&a("[placeholder]").focus(function(){var e=a(this);e.removeClass("placeholder")}).blur(function(){var e=a(this);""===e.val()&&e.addClass("placeholder")})}}()}),define("js/coupon/entry",["jquery","lazyload","handlebars","source-map"],function(e,t,n){e("js/coupon/coupon")}),define("js/coupon/coupon",["jquery","lazyload","handlebars","source-map"],function(e,t,n){function a(e){var t=new l(e);t.show()}function i(t){r.ajax({type:"GET",url:"/coupon/sendcoupon",data:{id:t},success:function(e){var t=e.code;e.url&&e.url.length>0&&c[t]&&c[t](e.url+"?"+location.href.split("?")[1]),s[t]?s[t]():s[400]()},error:function(t){var n=e("js/common/dialog").Alert;new n("网络异常").show()}})}var o,s,r=e("jquery"),d=e("lazyload"),l=e("js/common/dialog").Dialog,c={gunangSrc:null,checkCouponSrc:null,goToGuang:function(){window.location.href=this.gunangSrc},goToCheck:function(){window.location.href=this.checkCouponSrc},403:function(e){window.location.href=e},200:function(e){this.checkCouponSrc=e}};d(r("img.lazy")),e("js/common/slider"),r(".slide-container").slider(),o={success:{content:"恭喜您,成功领取优惠券",subContents:["特殊情况下到账有延时","请耐心等待"],className:"subcontent-dialog",refreshOnClose:!0,btns:[{id:1,name:"去购物啦",btnClass:["black","btn-close"],cb:function(){c.goToGuang()}},{id:2,name:"查看优惠券",btnClass:["btn-close"],cb:function(){c.goToCheck()}}]},alreadyGot:{content:"您已领取过优惠券",subContent:"快去选购心仪的潮品吧",className:"subcontent-dialog",btns:[{id:1,name:"去使用",btnClass:["btn-close"],cb:function(){c.goToGuang()}}]},expired:{content:"优惠券已过期",subContent:"去领最新的优惠券吧",className:"subcontent-dialog",btns:[{id:1,name:"关闭",btnClass:["btn-close"]}]},failed:{content:"领取失败",subContents:["请刷新重试,","多次无效请联系客服"],className:"subcontent-dialog",btns:[{id:1,name:"刷新",btnClass:["btn-close"],cb:function(){window.location.reload()}}]}},s={200:function(){a(o.success)},401:function(){a(o.alreadyGot)},315:function(){a(o.expired)},400:function(){a(o.failed)},403:function(){}},r(".enable .info").on("click",function(e){e.preventDefault(),i(r(this).closest("a").data("id")),c.gunangSrc=r(this).closest("a").get(0).href})}); \ No newline at end of file diff --git a/web-static/dist/yohobuy/4.7.1/lib.js b/web-static/dist/yohobuy/4.7.1/lib.js new file mode 100644 index 0000000..e0d54a3 --- /dev/null +++ b/web-static/dist/yohobuy/4.7.1/lib.js @@ -0,0 +1,7 @@ +!function(e,t){function n(e){return function(t){return{}.toString.call(t)=="[object "+e+"]"}}function r(){return E++}function i(e){return e.match(T)[0]}function o(e){for(e=e.replace(P,"/");e.match(L);)e=e.replace(L,"/");return e=e.replace(j,"$1/")}function a(e){var t=e.length-1,n=e.charAt(t);return"#"===n?e.substring(0,t):".js"===e.substring(t-2)||e.indexOf("?")>0||".css"===e.substring(t-3)||"/"===n?e:e+".js"}function s(e){var t=w.alias;return t&&k(t[e])?t[e]:e}function l(e){var t,n=w.paths;return n&&(t=e.match(O))&&k(n[t[1]])&&(e=n[t[1]]+t[2]),e}function u(e){var t=w.vars;return t&&e.indexOf("{")>-1&&(e=e.replace(M,function(e,n){return k(t[n])?t[n]:e})),e}function c(e){var t=w.map,n=e;if(t)for(var r=0,i=t.length;i>r;r++){var o=t[r];if(n=_(o)?o(e)||e:e.replace(o[0],o[1]),n!==e)break}return n}function p(e,t){var n,r=e.charAt(0);if(D.test(e))n=e;else if("."===r)n=o((t?i(t):w.cwd)+e);else if("/"===r){var a=w.cwd.match(H);n=a?a[0]+e.substring(1):e}else n=w.base+e;return 0===n.indexOf("//")&&(n=location.protocol+n),n}function h(e,t){if(!e)return"";e=s(e),e=l(e),e=u(e),e=a(e);var n=p(e,t);return n=c(n)}function f(e){return e.hasAttribute?e.src:e.getAttribute("src",4)}function d(e,t,n){var r=V.test(e),i=I.createElement(r?"link":"script");if(n){var o=_(n)?n(e):n;o&&(i.charset=o)}g(i,t,r,e),r?(i.rel="stylesheet",i.href=e):(i.async=!0,i.src=e),q=i,z?U.insertBefore(i,z):U.appendChild(i),q=null}function g(e,n,r,i){function o(){e.onload=e.onerror=e.onreadystatechange=null,r||w.debug||U.removeChild(e),e=null,n()}var a="onload"in e;return!r||!G&&a?(a?(e.onload=o,e.onerror=function(){N("error",{uri:i,node:e}),o()}):e.onreadystatechange=function(){/loaded|complete/.test(e.readyState)&&o()},t):(setTimeout(function(){m(e,n)},1),t)}function m(e,t){var n,r=e.sheet;if(G)r&&(n=!0);else if(r)try{r.cssRules&&(n=!0)}catch(i){"NS_ERROR_DOM_SECURITY_ERR"===i.name&&(n=!0)}setTimeout(function(){n?t():m(e,t)},20)}function v(){if(q)return q;if(W&&"interactive"===W.readyState)return W;for(var e=U.getElementsByTagName("script"),t=e.length-1;t>=0;t--){var n=e[t];if("interactive"===n.readyState)return W=n}}function y(e){var t=[];return e.replace(K,"").replace(J,function(e,n,r){r&&t.push(r)}),t}function b(e,t){this.uri=e,this.dependencies=t||[],this.exports=null,this.status=0,this._waitings={},this._remain=0}if(!e.seajs){var x=e.seajs={version:"2.2.0"},w=x.data={},S=n("Object"),k=n("String"),C=Array.isArray||n("Array"),_=n("Function"),E=0,A=w.events={};x.on=function(e,t){var n=A[e]||(A[e]=[]);return n.push(t),x},x.off=function(e,t){if(!e&&!t)return A=w.events={},x;var n=A[e];if(n)if(t)for(var r=n.length-1;r>=0;r--)n[r]===t&&n.splice(r,1);else delete A[e];return x};var N=x.emit=function(e,t){var n,r=A[e];if(r)for(r=r.slice();n=r.shift();)n(t);return x},T=/[^?#]*\//,P=/\/\.\//g,L=/\/[^\/]+\/\.\.\//,j=/([^:\/])\/\//g,O=/^([^\/:]+)(\/.+)$/,M=/{([^{]+)}/g,D=/^\/\/.|:\//,H=/^.*?\/\/.*?\//,I=document,R=i(I.URL),B=I.scripts,$=I.getElementById("seajsnode")||B[B.length-1],F=i(f($)||R);x.resolve=h;var q,W,U=I.head||I.getElementsByTagName("head")[0]||I.documentElement,z=U.getElementsByTagName("base")[0],V=/\.css(?:\?|$)/i,G=+navigator.userAgent.replace(/.*AppleWebKit\/(\d+)\..*/,"$1")<536;x.request=d;var X,J=/"(?:\\"|[^"])*"|'(?:\\'|[^'])*'|\/\*[\S\s]*?\*\/|\/(?:\\\/|[^\/\r\n])+\/(?=[^\/])|\/\/.*|\.\s*require|(?:^|[^$])\brequire\s*\(\s*(["'])(.+?)\1\s*\)/g,K=/\\\\/g,Y=x.cache={},Q={},Z={},ee={},te=b.STATUS={FETCHING:1,SAVED:2,LOADING:3,LOADED:4,EXECUTING:5,EXECUTED:6};b.prototype.resolve=function(){for(var e=this,t=e.dependencies,n=[],r=0,i=t.length;i>r;r++)n[r]=b.resolve(t[r],e.uri);return n},b.prototype.load=function(){var e=this;if(!(e.status>=te.LOADING)){e.status=te.LOADING;var n=e.resolve();N("load",n);for(var r,i=e._remain=n.length,o=0;i>o;o++)r=b.get(n[o]),r.status<te.LOADED?r._waitings[e.uri]=(r._waitings[e.uri]||0)+1:e._remain--;if(0===e._remain)return e.onload(),t;var a={};for(o=0;i>o;o++)r=Y[n[o]],r.status<te.FETCHING?r.fetch(a):r.status===te.SAVED&&r.load();for(var s in a)a.hasOwnProperty(s)&&a[s]()}},b.prototype.onload=function(){var e=this;e.status=te.LOADED,e.callback&&e.callback();var t,n,r=e._waitings;for(t in r)r.hasOwnProperty(t)&&(n=Y[t],n._remain-=r[t],0===n._remain&&n.onload());delete e._waitings,delete e._remain},b.prototype.fetch=function(e){function n(){x.request(a.requestUri,a.onRequest,a.charset)}function r(){delete Q[s],Z[s]=!0,X&&(b.save(o,X),X=null);var e,t=ee[s];for(delete ee[s];e=t.shift();)e.load()}var i=this,o=i.uri;i.status=te.FETCHING;var a={uri:o};N("fetch",a);var s=a.requestUri||o;return!s||Z[s]?(i.load(),t):Q[s]?(ee[s].push(i),t):(Q[s]=!0,ee[s]=[i],N("request",a={uri:o,requestUri:s,onRequest:r,charset:w.charset}),a.requested||(e?e[a.requestUri]=n:n()),t)},b.prototype.exec=function(){function e(t){return b.get(e.resolve(t)).exec()}var n=this;if(n.status>=te.EXECUTING)return n.exports;n.status=te.EXECUTING;var i=n.uri;e.resolve=function(e){return b.resolve(e,i)},e.async=function(t,n){return b.use(t,n,i+"_async_"+r()),e};var o=n.factory,a=_(o)?o(e,n.exports={},n):o;return a===t&&(a=n.exports),delete n.factory,n.exports=a,n.status=te.EXECUTED,N("exec",n),a},b.resolve=function(e,t){var n={id:e,refUri:t};return N("resolve",n),n.uri||x.resolve(n.id,t)},b.define=function(e,n,r){var i=arguments.length;1===i?(r=e,e=t):2===i&&(r=n,C(e)?(n=e,e=t):n=t),!C(n)&&_(r)&&(n=y(""+r));var o={id:e,uri:b.resolve(e),deps:n,factory:r};if(!o.uri&&I.attachEvent){var a=v();a&&(o.uri=a.src)}N("define",o),o.uri?b.save(o.uri,o):X=o},b.save=function(e,t){var n=b.get(e);n.status<te.SAVED&&(n.id=t.id||e,n.dependencies=t.deps||[],n.factory=t.factory,n.status=te.SAVED)},b.get=function(e,t){return Y[e]||(Y[e]=new b(e,t))},b.use=function(t,n,r){var i=b.get(r,C(t)?t:[t]);i.callback=function(){for(var t=[],r=i.resolve(),o=0,a=r.length;a>o;o++)t[o]=Y[r[o]].exec();n&&n.apply(e,t),delete i.callback},i.load()},b.preload=function(e){var t=w.preload,n=t.length;n?b.use(t,function(){t.splice(0,n),b.preload(e)},w.cwd+"_preload_"+r()):e()},x.use=function(e,t){return b.preload(function(){b.use(e,t,w.cwd+"_use_"+r())}),x},b.define.cmd={},e.define=b.define,x.Module=b,w.fetchedList=Z,w.cid=r,x.require=function(e){var t=b.get(b.resolve(e));return t.status<te.EXECUTING&&(t.onload(),t.exec()),t.exports};var ne=/^(.+?\/)(\?\?)?(seajs\/)+/;w.base=(F.match(ne)||["",F])[1],w.dir=F,w.cwd=R,w.charset="utf-8",w.preload=function(){var e=[],t=location.search.replace(/(seajs-\w+)(&|$)/g,"$1=1$2");return t+=" "+I.cookie,t.replace(/(seajs-\w+)=1/g,function(t,n){e.push(n)}),e}(),x.config=function(e){for(var t in e){var n=e[t],r=w[t];if(r&&S(r))for(var i in n)r[i]=n[i];else C(r)?n=r.concat(n):"base"===t&&("/"!==n.slice(-1)&&(n+="/"),n=p(n)),w[t]=n}return N("config",e),x}}}(this),define("lazyload",[],function(e,t,n){var r=e("jquery");e("lib/jquery.lazyload"),n.exports=function(e,t){var n,i={effect:"fadeIn",effect_speed:10,placeholder:"data:image/gif;base64,R0lGODlhAQABAJEAAAAAAP///93d3f///yH5BAEAAAMALAAAAAABAAEAAAICVAEAOw==",skip_invisible:!1},o=arguments.length;!function(){switch(o){case 0:n=r("img.lazy");break;case 1:e instanceof r?n=e:(n=r("img.lazy"),r.extend(i,e));break;case 2:n=e,i=r.extend(i,t)}}(),n.lazyload(i)}}),define("jquery",[],function(e,t,n){!function(e,t){function r(e){var t=ge[e]={};return Z.each(e.split(ne),function(e,n){t[n]=!0}),t}function i(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(ve,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:me.test(r)?Z.parseJSON(r):r}catch(o){}Z.data(e,n,r)}else r=t}return r}function o(e){var t;for(t in e)if(("data"!==t||!Z.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function a(){return!1}function s(){return!0}function l(e){return!e||!e.parentNode||11===e.parentNode.nodeType}function u(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function c(e,t,n){if(t=t||0,Z.isFunction(t))return Z.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return Z.grep(e,function(e,r){return e===t===n});if("string"==typeof t){var r=Z.grep(e,function(e){return 1===e.nodeType});if(Ie.test(t))return Z.filter(t,r,!n);t=Z.filter(t,r)}return Z.grep(e,function(e,r){return Z.inArray(e,t)>=0===n})}function p(e){var t=$e.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function h(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function f(e,t){if(1===t.nodeType&&Z.hasData(e)){var n,r,i,o=Z._data(e),a=Z._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;i>r;r++)Z.event.add(t,n,s[n][r])}a.data&&(a.data=Z.extend({},a.data))}}function d(e,t){var n;1===t.nodeType&&(t.clearAttributes&&t.clearAttributes(),t.mergeAttributes&&t.mergeAttributes(e),n=t.nodeName.toLowerCase(),"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),Z.support.html5Clone&&e.innerHTML&&!Z.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ke.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.selected=e.defaultSelected:"input"===n||"textarea"===n?t.defaultValue=e.defaultValue:"script"===n&&t.text!==e.text&&(t.text=e.text),t.removeAttribute(Z.expando))}function g(e){return"undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName("*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll("*"):[]}function m(e){Ke.test(e.type)&&(e.defaultChecked=e.checked)}function v(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=yt.length;i--;)if(t=yt[i]+n,t in e)return t;return r}function y(e,t){return e=t||e,"none"===Z.css(e,"display")||!Z.contains(e.ownerDocument,e)}function b(e,t){for(var n,r,i=[],o=0,a=e.length;a>o;o++)n=e[o],n.style&&(i[o]=Z._data(n,"olddisplay"),t?(i[o]||"none"!==n.style.display||(n.style.display=""),""===n.style.display&&y(n)&&(i[o]=Z._data(n,"olddisplay",k(n.nodeName)))):(r=rt(n,"display"),i[o]||"none"===r||Z._data(n,"olddisplay",r)));for(o=0;a>o;o++)n=e[o],n.style&&(t&&"none"!==n.style.display&&""!==n.style.display||(n.style.display=t?i[o]||"":"none"));return e}function x(e,t,n){var r=pt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function w(e,t,n,r){for(var i=n===(r?"border":"content")?4:"width"===t?1:0,o=0;4>i;i+=2)"margin"===n&&(o+=Z.css(e,n+vt[i],!0)),r?("content"===n&&(o-=parseFloat(rt(e,"padding"+vt[i]))||0),"margin"!==n&&(o-=parseFloat(rt(e,"border"+vt[i]+"Width"))||0)):(o+=parseFloat(rt(e,"padding"+vt[i]))||0,"padding"!==n&&(o+=parseFloat(rt(e,"border"+vt[i]+"Width"))||0));return o}function S(e,t,n){var r="width"===t?e.offsetWidth:e.offsetHeight,i=!0,o=Z.support.boxSizing&&"border-box"===Z.css(e,"boxSizing");if(0>=r||null==r){if(r=rt(e,t),(0>r||null==r)&&(r=e.style[t]),ht.test(r))return r;i=o&&(Z.support.boxSizingReliable||r===e.style[t]),r=parseFloat(r)||0}return r+w(e,t,n||(o?"border":"content"),i)+"px"}function k(e){if(dt[e])return dt[e];var t=Z("<"+e+">").appendTo(q.body),n=t.css("display");return t.remove(),"none"!==n&&""!==n||(it=q.body.appendChild(it||Z.extend(q.createElement("iframe"),{frameBorder:0,width:0,height:0})),ot&&it.createElement||(ot=(it.contentWindow||it.contentDocument).document,ot.write("<!doctype html><html><body>"),ot.close()),t=ot.body.appendChild(ot.createElement(e)),n=rt(t,"display"),q.body.removeChild(it)),dt[e]=n,n}function C(e,t,n,r){var i;if(Z.isArray(t))Z.each(t,function(t,i){n||wt.test(e)?r(e,i):C(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==Z.type(t))r(e,t);else for(i in t)C(e+"["+i+"]",t[i],n,r)}function _(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i,o,a=t.toLowerCase().split(ne),s=0,l=a.length;if(Z.isFunction(n))for(;l>s;s++)r=a[s],o=/^\+/.test(r),o&&(r=r.substr(1)||"*"),i=e[r]=e[r]||[],i[o?"unshift":"push"](n)}}function E(e,n,r,i,o,a){o=o||n.dataTypes[0],a=a||{},a[o]=!0;for(var s,l=e[o],u=0,c=l?l.length:0,p=e===It;c>u&&(p||!s);u++)s=l[u](n,r,i),"string"==typeof s&&(!p||a[s]?s=t:(n.dataTypes.unshift(s),s=E(e,n,r,i,s,a)));return!p&&s||a["*"]||(s=E(e,n,r,i,"*",a)),s}function A(e,n){var r,i,o=Z.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&&((o[r]?e:i||(i={}))[r]=n[r]);i&&Z.extend(!0,e,i)}function N(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes,c=e.responseFields;for(o in c)o in r&&(n[c[o]]=r[o]);for(;"*"===u[0];)u.shift(),i===t&&(i=e.mimeType||n.getResponseHeader("content-type"));if(i)for(o in l)if(l[o]&&l[o].test(i)){u.unshift(o);break}if(u[0]in r)a=u[0];else{for(o in r){if(!u[0]||e.converters[o+" "+u[0]]){a=o;break}s||(s=o)}a=a||s}return a?(a!==u[0]&&u.unshift(a),r[a]):void 0}function T(e,t){var n,r,i,o,a=e.dataTypes.slice(),s=a[0],l={},u=0;if(e.dataFilter&&(t=e.dataFilter(t,e.dataType)),a[1])for(n in e.converters)l[n.toLowerCase()]=e.converters[n];for(;i=a[++u];)if("*"!==i){if("*"!==s&&s!==i){if(n=l[s+" "+i]||l["* "+i],!n)for(r in l)if(o=r.split(" "),o[1]===i&&(n=l[s+" "+o[0]]||l["* "+o[0]])){n===!0?n=l[r]:l[r]!==!0&&(i=o[0],a.splice(u--,0,i));break}if(n!==!0)if(n&&e["throws"])t=n(t);else try{t=n(t)}catch(c){return{state:"parsererror",error:n?c:"No conversion from "+s+" to "+i}}}s=i}return{state:"success",data:t}}function P(){try{return new e.XMLHttpRequest}catch(t){}}function L(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function j(){return setTimeout(function(){Xt=t},0),Xt=Z.now()}function O(e,t){Z.each(t,function(t,n){for(var r=(en[t]||[]).concat(en["*"]),i=0,o=r.length;o>i;i++)if(r[i].call(e,t,n))return})}function M(e,t,n){var r,i=0,o=Zt.length,a=Z.Deferred().always(function(){delete s.elem}),s=function(){for(var t=Xt||j(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,i=1-r,o=0,s=l.tweens.length;s>o;o++)l.tweens[o].run(i);return a.notifyWith(e,[l,i,n]),1>i&&s?n:(a.resolveWith(e,[l]),!1)},l=a.promise({elem:e,props:Z.extend({},t),opts:Z.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xt||j(),duration:n.duration,tweens:[],createTween:function(t,n,r){var i=Z.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(i),i},stop:function(t){for(var n=0,r=t?l.tweens.length:0;r>n;n++)l.tweens[n].run(1);return t?a.resolveWith(e,[l,t]):a.rejectWith(e,[l,t]),this}}),u=l.props;for(D(u,l.opts.specialEasing);o>i;i++)if(r=Zt[i].call(l,e,u,l.opts))return r;return O(l,u),Z.isFunction(l.opts.start)&&l.opts.start.call(e,l),Z.fx.timer(Z.extend(s,{anim:l,queue:l.opts.queue,elem:e})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function D(e,t){var n,r,i,o,a;for(n in e)if(r=Z.camelCase(n),i=t[r],o=e[n],Z.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=Z.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function H(e,t,n){var r,i,o,a,s,l,u,c,p,h=this,f=e.style,d={},g=[],m=e.nodeType&&y(e);n.queue||(c=Z._queueHooks(e,"fx"),null==c.unqueued&&(c.unqueued=0,p=c.empty.fire,c.empty.fire=function(){c.unqueued||p()}),c.unqueued++,h.always(function(){h.always(function(){c.unqueued--,Z.queue(e,"fx").length||c.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[f.overflow,f.overflowX,f.overflowY],"inline"===Z.css(e,"display")&&"none"===Z.css(e,"float")&&(Z.support.inlineBlockNeedsLayout&&"inline"!==k(e.nodeName)?f.zoom=1:f.display="inline-block")),n.overflow&&(f.overflow="hidden",Z.support.shrinkWrapBlocks||h.done(function(){f.overflow=n.overflow[0],f.overflowX=n.overflow[1],f.overflowY=n.overflow[2]}));for(r in t)if(o=t[r],Kt.exec(o)){if(delete t[r],l=l||"toggle"===o,o===(m?"hide":"show"))continue;g.push(r)}if(a=g.length){s=Z._data(e,"fxshow")||Z._data(e,"fxshow",{}),"hidden"in s&&(m=s.hidden),l&&(s.hidden=!m),m?Z(e).show():h.done(function(){Z(e).hide()}),h.done(function(){var t;Z.removeData(e,"fxshow",!0);for(t in d)Z.style(e,t,d[t])});for(r=0;a>r;r++)i=g[r],u=h.createTween(i,m?s[i]:0),d[i]=s[i]||Z.style(e,i),i in s||(s[i]=u.start,m&&(u.end=u.start,u.start="width"===i||"height"===i?1:0))}}function I(e,t,n,r,i){return new I.prototype.init(e,t,n,r,i)}function R(e,t){var n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=vt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function B(e){return Z.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}var $,F,q=e.document,W=e.location,U=e.navigator,z=e.jQuery,V=e.$,G=Array.prototype.push,X=Array.prototype.slice,J=Array.prototype.indexOf,K=Object.prototype.toString,Y=Object.prototype.hasOwnProperty,Q=String.prototype.trim,Z=function(e,t){return new Z.fn.init(e,t,$)},ee=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,te=/\S/,ne=/\s+/,re=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,ie=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,oe=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,ae=/^[\],:{}\s]*$/,se=/(?:^|:|,)(?:\s*\[)+/g,le=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,ue=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,ce=/^-ms-/,pe=/-([\da-z])/gi,he=function(e,t){return(t+"").toUpperCase()},fe=function(){q.addEventListener?(q.removeEventListener("DOMContentLoaded",fe,!1),Z.ready()):"complete"===q.readyState&&(q.detachEvent("onreadystatechange",fe),Z.ready())},de={};Z.fn=Z.prototype={constructor:Z,init:function(e,n,r){var i,o,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:ie.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1])return n=n instanceof Z?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:q,e=Z.parseHTML(i[1],a,!0),oe.test(i[1])&&Z.isPlainObject(n)&&this.attr.call(e,n,!0),Z.merge(this,e);if(o=q.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=q,this.selector=e,this}return Z.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),Z.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return X.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=Z.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,"find"===t?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return Z.each(this,e,t)},ready:function(e){return Z.ready.promise().done(e),this},eq:function(e){return e=+e,-1===e?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(X.apply(this,arguments),"slice",X.call(arguments).join(","))},map:function(e){return this.pushStack(Z.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:G,sort:[].sort,splice:[].splice},Z.fn.init.prototype=Z.fn,Z.extend=Z.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||Z.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(e=arguments[l]))for(n in e)r=s[n],i=e[n],s!==i&&(c&&i&&(Z.isPlainObject(i)||(o=Z.isArray(i)))?(o?(o=!1,a=r&&Z.isArray(r)?r:[]):a=r&&Z.isPlainObject(r)?r:{},s[n]=Z.extend(c,a,i)):i!==t&&(s[n]=i));return s},Z.extend({noConflict:function(t){return e.$===Z&&(e.$=V),t&&e.jQuery===Z&&(e.jQuery=z),Z},isReady:!1,readyWait:1,holdReady:function(e){e?Z.readyWait++:Z.ready(!0)},ready:function(e){if(e===!0?!--Z.readyWait:!Z.isReady){if(!q.body)return setTimeout(Z.ready,1);Z.isReady=!0,e!==!0&&--Z.readyWait>0||(F.resolveWith(q,[Z]),Z.fn.trigger&&Z(q).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===Z.type(e)},isArray:Array.isArray||function(e){return"array"===Z.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?String(e):de[K.call(e)]||"object"},isPlainObject:function(e){if(!e||"object"!==Z.type(e)||e.nodeType||Z.isWindow(e))return!1;try{if(e.constructor&&!Y.call(e,"constructor")&&!Y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||Y.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return e&&"string"==typeof e?("boolean"==typeof t&&(n=t,t=0),t=t||q,(r=oe.exec(e))?[t.createElement(r[1])]:(r=Z.buildFragment([e],t,n?null:[]),Z.merge([],(r.cacheable?Z.clone(r.fragment):r.fragment).childNodes))):null},parseJSON:function(t){return t&&"string"==typeof t?(t=Z.trim(t),e.JSON&&e.JSON.parse?e.JSON.parse(t):ae.test(t.replace(le,"@").replace(ue,"]").replace(se,""))?new Function("return "+t)():void Z.error("Invalid JSON: "+t)):null},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||Z.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&te.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(ce,"ms-").replace(pe,he)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,o=0,a=e.length,s=a===t||Z.isFunction(e);if(r)if(s){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;a>o&&n.apply(e[o++],r)!==!1;);else if(s){for(i in e)if(n.call(e[i],i,e[i])===!1)break}else for(;a>o&&n.call(e[o],o,e[o++])!==!1;);return e},trim:Q&&!Q.call("\ufeff ")?function(e){return null==e?"":Q.call(e)}:function(e){return null==e?"":(e+"").replace(re,"")},makeArray:function(e,t){var n,r=t||[];return null!=e&&(n=Z.type(e),null==e.length||"string"===n||"function"===n||"regexp"===n||Z.isWindow(e)?G.call(r,e):Z.merge(r,e)),r},inArray:function(e,t,n){var r;if(t){if(J)return J.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];else for(;n[o]!==t;)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,n,r){var i,o,a=[],s=0,l=e.length,u=e instanceof Z||l!==t&&"number"==typeof l&&(l>0&&e[0]&&e[l-1]||0===l||Z.isArray(e));if(u)for(;l>s;s++)i=n(e[s],s,r),null!=i&&(a[a.length]=i);else for(o in e)i=n(e[o],o,r),null!=i&&(a[a.length]=i);return a.concat.apply([],a)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(r=e[n],n=e,e=r),Z.isFunction(e)?(i=X.call(arguments,2),o=function(){return e.apply(n,i.concat(X.call(arguments)))},o.guid=e.guid=e.guid||Z.guid++,o):t},access:function(e,n,r,i,o,a,s){var l,u=null==r,c=0,p=e.length;if(r&&"object"==typeof r){for(c in r)Z.access(e,n,c,r[c],1,a,i);o=1}else if(i!==t){if(l=s===t&&Z.isFunction(i),u&&(l?(l=n,n=function(e,t,n){return l.call(Z(e),n)}):(n.call(e,i),n=null)),n)for(;p>c;c++)n(e[c],r,l?i.call(e[c],c,n(e[c],r)):i,s);o=1}return o?e:u?n.call(e):p?n(e[0],r):a},now:function(){return(new Date).getTime()}}),Z.ready.promise=function(t){if(!F)if(F=Z.Deferred(),"complete"===q.readyState)setTimeout(Z.ready,1);else if(q.addEventListener)q.addEventListener("DOMContentLoaded",fe,!1),e.addEventListener("load",Z.ready,!1);else{q.attachEvent("onreadystatechange",fe),e.attachEvent("onload",Z.ready);var n=!1;try{n=null==e.frameElement&&q.documentElement}catch(r){}n&&n.doScroll&&!function i(){if(!Z.isReady){try{n.doScroll("left")}catch(e){return setTimeout(i,50)}Z.ready()}}()}return F.promise(t)},Z.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(e,t){de["[object "+t+"]"]=t.toLowerCase()}),$=Z(q);var ge={};Z.Callbacks=function(e){e="string"==typeof e?ge[e]||r(e):Z.extend({},e);var n,i,o,a,s,l,u=[],c=!e.once&&[],p=function(t){for(n=e.memory&&t,i=!0,l=a||0,a=0,s=u.length,o=!0;u&&s>l;l++)if(u[l].apply(t[0],t[1])===!1&&e.stopOnFalse){n=!1;break}o=!1,u&&(c?c.length&&p(c.shift()):n?u=[]:h.disable())},h={add:function(){if(u){var t=u.length;!function r(t){Z.each(t,function(t,n){var i=Z.type(n);"function"===i?e.unique&&h.has(n)||u.push(n):n&&n.length&&"string"!==i&&r(n)})}(arguments),o?s=u.length:n&&(a=t,p(n))}return this},remove:function(){return u&&Z.each(arguments,function(e,t){for(var n;(n=Z.inArray(t,u,n))>-1;)u.splice(n,1),o&&(s>=n&&s--,l>=n&&l--)}),this},has:function(e){return Z.inArray(e,u)>-1},empty:function(){return u=[],this},disable:function(){return u=c=n=t,this},disabled:function(){return!u},lock:function(){return c=t,n||h.disable(),this},locked:function(){return!c},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!u||i&&!c||(o?c.push(t):p(t)),this},fire:function(){return h.fireWith(this,arguments),this},fired:function(){return!!i}};return h},Z.extend({Deferred:function(e){var t=[["resolve","done",Z.Callbacks("once memory"),"resolved"],["reject","fail",Z.Callbacks("once memory"),"rejected"],["notify","progress",Z.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return Z.Deferred(function(n){Z.each(t,function(t,r){var o=r[0],a=e[t];i[r[1]](Z.isFunction(a)?function(){var e=a.apply(this,arguments);e&&Z.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[o+"With"](this===i?n:this,[e])}:n[o])}),e=null}).promise()},promise:function(e){return null!=e?Z.extend(e,r):r}},i={};return r.pipe=r.then,Z.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=a.fire,i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,o=X.call(arguments),a=o.length,s=1!==a||e&&Z.isFunction(e.promise)?a:0,l=1===s?e:Z.Deferred(),u=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?X.call(arguments):i,r===t?l.notifyWith(n,r):--s||l.resolveWith(n,r)}};if(a>1)for(t=new Array(a),n=new Array(a),r=new Array(a);a>i;i++)o[i]&&Z.isFunction(o[i].promise)?o[i].promise().done(u(i,r,o)).fail(l.reject).progress(u(i,n,t)):--s;return s||l.resolveWith(r,o),l.promise()}}),Z.support=function(){var t,n,r,i,o,a,s,l,u,c,p,h=q.createElement("div");if(h.setAttribute("className","t"),h.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=h.getElementsByTagName("*"),r=h.getElementsByTagName("a")[0],!n||!r||!n.length)return{};i=q.createElement("select"),o=i.appendChild(q.createElement("option")),a=h.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:3===h.firstChild.nodeType,tbody:!h.getElementsByTagName("tbody").length,htmlSerialize:!!h.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:"/a"===r.getAttribute("href"),opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:"on"===a.value,optSelected:o.selected,getSetAttribute:"t"!==h.className,enctype:!!q.createElement("form").enctype,html5Clone:"<:nav></:nav>"!==q.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===q.compatMode,submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},a.checked=!0,t.noCloneChecked=a.cloneNode(!0).checked,i.disabled=!0,t.optDisabled=!o.disabled;try{delete h.test}catch(f){t.deleteExpando=!1}if(!h.addEventListener&&h.attachEvent&&h.fireEvent&&(h.attachEvent("onclick",p=function(){t.noCloneEvent=!1}),h.cloneNode(!0).fireEvent("onclick"),h.detachEvent("onclick",p)),a=q.createElement("input"),a.value="t",a.setAttribute("type","radio"),t.radioValue="t"===a.value,a.setAttribute("checked","checked"),a.setAttribute("name","t"),h.appendChild(a),s=q.createDocumentFragment(),s.appendChild(h.lastChild),t.checkClone=s.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=a.checked,s.removeChild(a),s.appendChild(h),h.attachEvent)for(u in{submit:!0,change:!0,focusin:!0})l="on"+u,c=l in h,c||(h.setAttribute(l,"return;"),c="function"==typeof h[l]),t[u+"Bubbles"]=c;return Z(function(){var n,r,i,o,a="padding:0;margin:0;border:0;display:block;overflow:hidden;",s=q.getElementsByTagName("body")[0];s&&(n=q.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",s.insertBefore(n,s.firstChild),r=q.createElement("div"),n.appendChild(r),r.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=r.getElementsByTagName("td"),i[0].style.cssText="padding:0;margin:0;border:0;display:none",c=0===i[0].offsetHeight,i[0].style.display="",i[1].style.display="none",t.reliableHiddenOffsets=c&&0===i[0].offsetHeight,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=4===r.offsetWidth,t.doesNotIncludeMarginInBodyOffset=1!==s.offsetTop,e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(r,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(r,null)||{width:"4px"}).width,o=q.createElement("div"),o.style.cssText=r.style.cssText=a,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),"undefined"!=typeof r.style.zoom&&(r.innerHTML="",r.style.cssText=a+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===r.offsetWidth,r.style.display="block",r.style.overflow="visible",r.innerHTML="<div></div>",r.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==r.offsetWidth,n.style.zoom=1),s.removeChild(n),n=r=i=o=null)}),s.removeChild(h),n=r=i=o=a=s=h=null,t}();var me=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,ve=/([A-Z])/g;Z.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(Z.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?Z.cache[e[Z.expando]]:e[Z.expando],!!e&&!o(e)},data:function(e,n,r,i){if(Z.acceptData(e)){var o,a,s=Z.expando,l="string"==typeof n,u=e.nodeType,c=u?Z.cache:e,p=u?e[s]:e[s]&&s;if(p&&c[p]&&(i||c[p].data)||!l||r!==t)return p||(u?e[s]=p=Z.deletedIds.pop()||Z.guid++:p=s),c[p]||(c[p]={},u||(c[p].toJSON=Z.noop)),"object"!=typeof n&&"function"!=typeof n||(i?c[p]=Z.extend(c[p],n):c[p].data=Z.extend(c[p].data,n)),o=c[p],i||(o.data||(o.data={}),o=o.data),r!==t&&(o[Z.camelCase(n)]=r),l?(a=o[n],null==a&&(a=o[Z.camelCase(n)])):a=o,a}},removeData:function(e,t,n){if(Z.acceptData(e)){var r,i,a,s=e.nodeType,l=s?Z.cache:e,u=s?e[Z.expando]:Z.expando;if(l[u]){if(t&&(r=n?l[u]:l[u].data)){Z.isArray(t)||(t in r?t=[t]:(t=Z.camelCase(t),t=t in r?[t]:t.split(" ")));for(i=0,a=t.length;a>i;i++)delete r[t[i]];if(!(n?o:Z.isEmptyObject)(r))return}(n||(delete l[u].data,o(l[u])))&&(s?Z.cleanData([e],!0):Z.support.deleteExpando||l!=l.window?delete l[u]:l[u]=null)}}},_data:function(e,t,n){return Z.data(e,t,n,!0)},acceptData:function(e){var t=e.nodeName&&Z.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),Z.fn.extend({data:function(e,n){var r,o,a,s,l,u=this[0],c=0,p=null;if(e===t){if(this.length&&(p=Z.data(u),1===u.nodeType&&!Z._data(u,"parsedAttrs"))){for(a=u.attributes,l=a.length;l>c;c++)s=a[c].name,s.indexOf("data-")||(s=Z.camelCase(s.substring(5)),i(u,s,p[s]));Z._data(u,"parsedAttrs",!0)}return p}return"object"==typeof e?this.each(function(){Z.data(this,e)}):(r=e.split(".",2),r[1]=r[1]?"."+r[1]:"",o=r[1]+"!",Z.access(this,function(n){return n===t?(p=this.triggerHandler("getData"+o,[r[0]]),p===t&&u&&(p=Z.data(u,e),p=i(u,e,p)),p===t&&r[1]?this.data(r[0]):p):(r[1]=n,void this.each(function(){var t=Z(this);t.triggerHandler("setData"+o,r),Z.data(this,e,n),t.triggerHandler("changeData"+o,r); +}))},null,n,arguments.length>1,null,!1))},removeData:function(e){return this.each(function(){Z.removeData(this,e)})}}),Z.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=Z._data(e,t),n&&(!r||Z.isArray(n)?r=Z._data(e,t,Z.makeArray(n)):r.push(n)),r||[]):void 0},dequeue:function(e,t){t=t||"fx";var n=Z.queue(e,t),r=n.length,i=n.shift(),o=Z._queueHooks(e,t),a=function(){Z.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Z._data(e,n)||Z._data(e,n,{empty:Z.Callbacks("once memory").add(function(){Z.removeData(e,t+"queue",!0),Z.removeData(e,n,!0)})})}}),Z.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),arguments.length<r?Z.queue(this[0],e):n===t?this:this.each(function(){var t=Z.queue(this,e,n);Z._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&Z.dequeue(this,e)})},dequeue:function(e){return this.each(function(){Z.dequeue(this,e)})},delay:function(e,t){return e=Z.fx?Z.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=Z.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};for("string"!=typeof e&&(n=e,e=t),e=e||"fx";s--;)r=Z._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var ye,be,xe,we=/[\t\r\n]/g,Se=/\r/g,ke=/^(?:button|input)$/i,Ce=/^(?:button|input|object|select|textarea)$/i,_e=/^a(?:rea|)$/i,Ee=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,Ae=Z.support.getSetAttribute;Z.fn.extend({attr:function(e,t){return Z.access(this,Z.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){Z.removeAttr(this,e)})},prop:function(e,t){return Z.access(this,Z.prop,e,t,arguments.length>1)},removeProp:function(e){return e=Z.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a,s;if(Z.isFunction(e))return this.each(function(t){Z(this).addClass(e.call(this,t,this.className))});if(e&&"string"==typeof e)for(t=e.split(ne),n=0,r=this.length;r>n;n++)if(i=this[n],1===i.nodeType)if(i.className||1!==t.length){for(o=" "+i.className+" ",a=0,s=t.length;s>a;a++)o.indexOf(" "+t[a]+" ")<0&&(o+=t[a]+" ");i.className=Z.trim(o)}else i.className=e;return this},removeClass:function(e){var n,r,i,o,a,s,l;if(Z.isFunction(e))return this.each(function(t){Z(this).removeClass(e.call(this,t,this.className))});if(e&&"string"==typeof e||e===t)for(n=(e||"").split(ne),s=0,l=this.length;l>s;s++)if(i=this[s],1===i.nodeType&&i.className){for(r=(" "+i.className+" ").replace(we," "),o=0,a=n.length;a>o;o++)for(;r.indexOf(" "+n[o]+" ")>=0;)r=r.replace(" "+n[o]+" "," ");i.className=e?Z.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return Z.isFunction(e)?this.each(function(n){Z(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n)for(var i,o=0,a=Z(this),s=t,l=e.split(ne);i=l[o++];)s=r?s:!a.hasClass(i),a[s?"addClass":"removeClass"](i);else"undefined"!==n&&"boolean"!==n||(this.className&&Z._data(this,"__className__",this.className),this.className=this.className||e===!1?"":Z._data(this,"__className__")||"")})},hasClass:function(e){for(var t=" "+e+" ",n=0,r=this.length;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(we," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=Z.isFunction(e),this.each(function(r){var o,a=Z(this);1===this.nodeType&&(o=i?e.call(this,r,a.val()):e,null==o?o="":"number"==typeof o?o+="":Z.isArray(o)&&(o=Z.map(o,function(e){return null==e?"":e+""})),n=Z.valHooks[this.type]||Z.valHooks[this.nodeName.toLowerCase()],n&&"set"in n&&n.set(this,o,"value")!==t||(this.value=o))});if(o)return n=Z.valHooks[o.type]||Z.valHooks[o.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(o,"value"))!==t?r:(r=o.value,"string"==typeof r?r.replace(Se,""):null==r?"":r)}}}),Z.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;s>l;l++)if(n=r[l],(n.selected||l===i)&&(Z.support.optDisabled?!n.disabled:null===n.getAttribute("disabled"))&&(!n.parentNode.disabled||!Z.nodeName(n.parentNode,"optgroup"))){if(t=Z(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n=Z.makeArray(t);return Z(e).find("option").each(function(){this.selected=Z.inArray(Z(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var o,a,s,l=e.nodeType;if(e&&3!==l&&8!==l&&2!==l)return i&&Z.isFunction(Z.fn[n])?Z(e)[n](r):"undefined"==typeof e.getAttribute?Z.prop(e,n,r):(s=1!==l||!Z.isXMLDoc(e),s&&(n=n.toLowerCase(),a=Z.attrHooks[n]||(Ee.test(n)?be:ye)),r!==t?null===r?void Z.removeAttr(e,n):a&&"set"in a&&s&&(o=a.set(e,r,n))!==t?o:(e.setAttribute(n,r+""),r):a&&"get"in a&&s&&null!==(o=a.get(e,n))?o:(o=e.getAttribute(n),null===o?t:o))},removeAttr:function(e,t){var n,r,i,o,a=0;if(t&&1===e.nodeType)for(r=t.split(ne);a<r.length;a++)i=r[a],i&&(n=Z.propFix[i]||i,o=Ee.test(i),o||Z.attr(e,i,""),e.removeAttribute(Ae?i:n),o&&n in e&&(e[n]=!1))},attrHooks:{type:{set:function(e,t){if(ke.test(e.nodeName)&&e.parentNode)Z.error("type property can't be changed");else if(!Z.support.radioValue&&"radio"===t&&Z.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}},value:{get:function(e,t){return ye&&Z.nodeName(e,"button")?ye.get(e,t):t in e?e.value:null},set:function(e,t,n){return ye&&Z.nodeName(e,"button")?ye.set(e,t,n):void(e.value=t)}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!Z.isXMLDoc(e),a&&(n=Z.propFix[n]||n,o=Z.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):Ce.test(e.nodeName)||_e.test(e.nodeName)&&e.href?0:t}}}}),be={get:function(e,n){var r,i=Z.prop(e,n);return i===!0||"boolean"!=typeof i&&(r=e.getAttributeNode(n))&&r.nodeValue!==!1?n.toLowerCase():t},set:function(e,t,n){var r;return t===!1?Z.removeAttr(e,n):(r=Z.propFix[n]||n,r in e&&(e[r]=!0),e.setAttribute(n,n.toLowerCase())),n}},Ae||(xe={name:!0,id:!0,coords:!0},ye=Z.valHooks.button={get:function(e,n){var r;return r=e.getAttributeNode(n),r&&(xe[n]?""!==r.value:r.specified)?r.value:t},set:function(e,t,n){var r=e.getAttributeNode(n);return r||(r=q.createAttribute(n),e.setAttributeNode(r)),r.value=t+""}},Z.each(["width","height"],function(e,t){Z.attrHooks[t]=Z.extend(Z.attrHooks[t],{set:function(e,n){return""===n?(e.setAttribute(t,"auto"),n):void 0}})}),Z.attrHooks.contenteditable={get:ye.get,set:function(e,t,n){""===t&&(t="false"),ye.set(e,t,n)}}),Z.support.hrefNormalized||Z.each(["href","src","width","height"],function(e,n){Z.attrHooks[n]=Z.extend(Z.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return null===r?t:r}})}),Z.support.style||(Z.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||t},set:function(e,t){return e.style.cssText=t+""}}),Z.support.optSelected||(Z.propHooks.selected=Z.extend(Z.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),Z.support.enctype||(Z.propFix.enctype="encoding"),Z.support.checkOn||Z.each(["radio","checkbox"],function(){Z.valHooks[this]={get:function(e){return null===e.getAttribute("value")?"on":e.value}}}),Z.each(["radio","checkbox"],function(){Z.valHooks[this]=Z.extend(Z.valHooks[this],{set:function(e,t){return Z.isArray(t)?e.checked=Z.inArray(Z(e).val(),t)>=0:void 0}})});var Ne=/^(?:textarea|input|select)$/i,Te=/^([^\.]*|)(?:\.(.+)|)$/,Pe=/(?:^|\s)hover(\.\S+|)\b/,Le=/^key/,je=/^(?:mouse|contextmenu)|click/,Oe=/^(?:focusinfocus|focusoutblur)$/,Me=function(e){return Z.event.special.hover?e:e.replace(Pe,"mouseenter$1 mouseleave$1")};Z.event={add:function(e,n,r,i,o){var a,s,l,u,c,p,h,f,d,g,m;if(3!==e.nodeType&&8!==e.nodeType&&n&&r&&(a=Z._data(e))){for(r.handler&&(d=r,r=d.handler,o=d.selector),r.guid||(r.guid=Z.guid++),l=a.events,l||(a.events=l={}),s=a.handle,s||(a.handle=s=function(e){return"undefined"==typeof Z||e&&Z.event.triggered===e.type?t:Z.event.dispatch.apply(s.elem,arguments)},s.elem=e),n=Z.trim(Me(n)).split(" "),u=0;u<n.length;u++)c=Te.exec(n[u])||[],p=c[1],h=(c[2]||"").split(".").sort(),m=Z.event.special[p]||{},p=(o?m.delegateType:m.bindType)||p,m=Z.event.special[p]||{},f=Z.extend({type:p,origType:c[1],data:i,handler:r,guid:r.guid,selector:o,needsContext:o&&Z.expr.match.needsContext.test(o),namespace:h.join(".")},d),g=l[p],g||(g=l[p]=[],g.delegateCount=0,m.setup&&m.setup.call(e,i,h,s)!==!1||(e.addEventListener?e.addEventListener(p,s,!1):e.attachEvent&&e.attachEvent("on"+p,s))),m.add&&(m.add.call(e,f),f.handler.guid||(f.handler.guid=r.guid)),o?g.splice(g.delegateCount++,0,f):g.push(f),Z.event.global[p]=!0;e=null}},global:{},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,h,f,d,g,m=Z.hasData(e)&&Z._data(e);if(m&&(h=m.events)){for(t=Z.trim(Me(t||"")).split(" "),o=0;o<t.length;o++)if(a=Te.exec(t[o])||[],s=l=a[1],u=a[2],s){for(f=Z.event.special[s]||{},s=(r?f.delegateType:f.bindType)||s,d=h[s]||[],c=d.length,u=u?new RegExp("(^|\\.)"+u.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null,p=0;p<d.length;p++)g=d[p],!i&&l!==g.origType||n&&n.guid!==g.guid||u&&!u.test(g.namespace)||r&&r!==g.selector&&("**"!==r||!g.selector)||(d.splice(p--,1),g.selector&&d.delegateCount--,f.remove&&f.remove.call(e,g));0===d.length&&c!==d.length&&(f.teardown&&f.teardown.call(e,u,m.handle)!==!1||Z.removeEvent(e,s,m.handle),delete h[s])}else for(s in h)Z.event.remove(e,s+t[o],n,r,!0);Z.isEmptyObject(h)&&(delete m.handle,Z.removeData(e,"events",!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(n,r,i,o){if(!i||3!==i.nodeType&&8!==i.nodeType){var a,s,l,u,c,p,h,f,d,g,m=n.type||n,v=[];if(!Oe.test(m+Z.event.triggered)&&(m.indexOf("!")>=0&&(m=m.slice(0,-1),s=!0),m.indexOf(".")>=0&&(v=m.split("."),m=v.shift(),v.sort()),i&&!Z.event.customEvent[m]||Z.event.global[m]))if(n="object"==typeof n?n[Z.expando]?n:new Z.Event(m,n):new Z.Event(m),n.type=m,n.isTrigger=!0,n.exclusive=s,n.namespace=v.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+v.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,p=m.indexOf(":")<0?"on"+m:"",i){if(n.result=t,n.target||(n.target=i),r=null!=r?Z.makeArray(r):[],r.unshift(n),h=Z.event.special[m]||{},!h.trigger||h.trigger.apply(i,r)!==!1){if(d=[[i,h.bindType||m]],!o&&!h.noBubble&&!Z.isWindow(i)){for(g=h.delegateType||m,u=Oe.test(g+m)?i:i.parentNode,c=i;u;u=u.parentNode)d.push([u,g]),c=u;c===(i.ownerDocument||q)&&d.push([c.defaultView||c.parentWindow||e,g])}for(l=0;l<d.length&&!n.isPropagationStopped();l++)u=d[l][0],n.type=d[l][1],f=(Z._data(u,"events")||{})[n.type]&&Z._data(u,"handle"),f&&f.apply(u,r),f=p&&u[p],f&&Z.acceptData(u)&&f.apply&&f.apply(u,r)===!1&&n.preventDefault();return n.type=m,o||n.isDefaultPrevented()||h._default&&h._default.apply(i.ownerDocument,r)!==!1||"click"===m&&Z.nodeName(i,"a")||!Z.acceptData(i)||p&&i[m]&&("focus"!==m&&"blur"!==m||0!==n.target.offsetWidth)&&!Z.isWindow(i)&&(c=i[p],c&&(i[p]=null),Z.event.triggered=m,i[m](),Z.event.triggered=t,c&&(i[p]=c)),n.result}}else{a=Z.cache;for(l in a)a[l].events&&a[l].events[m]&&Z.event.trigger(n,r,a[l].handle.elem,!0)}}},dispatch:function(n){n=Z.event.fix(n||e.event);var r,i,o,a,s,l,u,c,p,h=(Z._data(this,"events")||{})[n.type]||[],f=h.delegateCount,d=X.call(arguments),g=!n.exclusive&&!n.namespace,m=Z.event.special[n.type]||{},v=[];if(d[0]=n,n.delegateTarget=this,!m.preDispatch||m.preDispatch.call(this,n)!==!1){if(f&&(!n.button||"click"!==n.type))for(o=n.target;o!=this;o=o.parentNode||this)if(o.disabled!==!0||"click"!==n.type){for(s={},u=[],r=0;f>r;r++)c=h[r],p=c.selector,s[p]===t&&(s[p]=c.needsContext?Z(p,this).index(o)>=0:Z.find(p,this,null,[o]).length),s[p]&&u.push(c);u.length&&v.push({elem:o,matches:u})}for(h.length>f&&v.push({elem:this,matches:h.slice(f)}),r=0;r<v.length&&!n.isPropagationStopped();r++)for(l=v[r],n.currentTarget=l.elem,i=0;i<l.matches.length&&!n.isImmediatePropagationStopped();i++)c=l.matches[i],(g||!n.namespace&&!c.namespace||n.namespace_re&&n.namespace_re.test(c.namespace))&&(n.data=c.data,n.handleObj=c,a=((Z.event.special[c.origType]||{}).handle||c.handler).apply(l.elem,d),a!==t&&(n.result=a,a===!1&&(n.preventDefault(),n.stopPropagation())));return m.postDispatch&&m.postDispatch.call(this,n),n.result}},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,a=n.button,s=n.fromElement;return null==e.pageX&&null!=n.clientX&&(r=e.target.ownerDocument||q,i=r.documentElement,o=r.body,e.pageX=n.clientX+(i&&i.scrollLeft||o&&o.scrollLeft||0)-(i&&i.clientLeft||o&&o.clientLeft||0),e.pageY=n.clientY+(i&&i.scrollTop||o&&o.scrollTop||0)-(i&&i.clientTop||o&&o.clientTop||0)),!e.relatedTarget&&s&&(e.relatedTarget=s===e.target?n.toElement:s),e.which||a===t||(e.which=1&a?1:2&a?3:4&a?2:0),e}},fix:function(e){if(e[Z.expando])return e;var t,n,r=e,i=Z.event.fixHooks[e.type]||{},o=i.props?this.props.concat(i.props):this.props;for(e=Z.Event(r),t=o.length;t;)n=o[--t],e[n]=r[n];return e.target||(e.target=r.srcElement||q),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,i.filter?i.filter(e,r):e},special:{load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(e,t,n){Z.isWindow(this)&&(this.onbeforeunload=n)},teardown:function(e,t){this.onbeforeunload===t&&(this.onbeforeunload=null)}}},simulate:function(e,t,n,r){var i=Z.extend(new Z.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?Z.event.trigger(i,null,t):Z.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},Z.event.handle=Z.event.dispatch,Z.removeEvent=q.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&("undefined"==typeof e[r]&&(e[r]=null),e.detachEvent(r,n))},Z.Event=function(e,t){return this instanceof Z.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?s:a):this.type=e,t&&Z.extend(this,t),this.timeStamp=e&&e.timeStamp||Z.now(),void(this[Z.expando]=!0)):new Z.Event(e,t)},Z.Event.prototype={preventDefault:function(){this.isDefaultPrevented=s;var e=this.originalEvent;e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=s;var e=this.originalEvent;e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=s,this.stopPropagation()},isDefaultPrevented:a,isPropagationStopped:a,isImmediatePropagationStopped:a},Z.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){Z.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;o.selector;return i&&(i===r||Z.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),Z.support.submitBubbles||(Z.event.special.submit={setup:function(){return Z.nodeName(this,"form")?!1:void Z.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=Z.nodeName(n,"input")||Z.nodeName(n,"button")?n.form:t;r&&!Z._data(r,"_submit_attached")&&(Z.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),Z._data(r,"_submit_attached",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&Z.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return Z.nodeName(this,"form")?!1:void Z.event.remove(this,"._submit")}}),Z.support.changeBubbles||(Z.event.special.change={setup:function(){return Ne.test(this.nodeName)?("checkbox"!==this.type&&"radio"!==this.type||(Z.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),Z.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),Z.event.simulate("change",this,e,!0)})),!1):void Z.event.add(this,"beforeactivate._change",function(e){var t=e.target;Ne.test(t.nodeName)&&!Z._data(t,"_change_attached")&&(Z.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||Z.event.simulate("change",this.parentNode,e,!0)}),Z._data(t,"_change_attached",!0))})},handle:function(e){var t=e.target;return this!==t||e.isSimulated||e.isTrigger||"radio"!==t.type&&"checkbox"!==t.type?e.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return Z.event.remove(this,"._change"),!Ne.test(this.nodeName)}}),Z.support.focusinBubbles||Z.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){Z.event.simulate(t,e.target,Z.event.fix(e),!0)};Z.event.special[t]={setup:function(){0===n++&&q.addEventListener(e,r,!0)},teardown:function(){0===--n&&q.removeEventListener(e,r,!0)}}}),Z.fn.extend({on:function(e,n,r,i,o){var s,l;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(l in e)this.on(l,n,r,e[l],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=a;else if(!i)return this;return 1===o&&(s=i,i=function(e){return Z().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=Z.guid++)),this.each(function(){Z.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,Z(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return n!==!1&&"function"!=typeof n||(r=n,n=t),r===!1&&(r=a),this.each(function(){Z.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},live:function(e,t,n){return Z(this.context).on(e,this.selector,t,n),this},die:function(e,t){return Z(this.context).off(e,this.selector||"**",t),this},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){Z.event.trigger(e,t,this)})},triggerHandler:function(e,t){return this[0]?Z.event.trigger(e,t,this[0],!0):void 0},toggle:function(e){var t=arguments,n=e.guid||Z.guid++,r=0,i=function(n){var i=(Z._data(this,"lastToggle"+e.guid)||0)%r;return Z._data(this,"lastToggle"+e.guid,i+1),n.preventDefault(),t[i].apply(this,arguments)||!1};for(i.guid=n;r<t.length;)t[r++].guid=n;return this.click(i)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),Z.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){Z.fn[t]=function(e,n){return null==n&&(n=e,e=null),arguments.length>0?this.on(t,null,e,n):this.trigger(t)},Le.test(t)&&(Z.event.fixHooks[t]=Z.event.keyHooks),je.test(t)&&(Z.event.fixHooks[t]=Z.event.mouseHooks)}),function(e,t){function n(e,t,n,r){n=n||[],t=t||L;var i,o,a,s,l=t.nodeType;if(!e||"string"!=typeof e)return n;if(1!==l&&9!==l)return[];if(a=w(t),!a&&!r&&(i=ne.exec(e)))if(s=i[1]){if(9===l){if(o=t.getElementById(s),!o||!o.parentNode)return n;if(o.id===s)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(s))&&S(t,o)&&o.id===s)return n.push(o),n}else{if(i[2])return H.apply(n,I.call(t.getElementsByTagName(e),0)),n;if((s=i[3])&&he&&t.getElementsByClassName)return H.apply(n,I.call(t.getElementsByClassName(s),0)),n}return g(e.replace(Y,"$1"),t,n,r,a)}function r(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function i(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function o(e){return B(function(t){return t=+t,B(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function a(e,t,n){if(e===t)return n;for(var r=e.nextSibling;r;){if(r===t)return-1;r=r.nextSibling}return 1}function s(e,t){var r,i,o,a,s,l,u,c=q[T][e+" "];if(c)return t?0:c.slice(0);for(s=e,l=[],u=b.preFilter;s;){r&&!(i=Q.exec(s))||(i&&(s=s.slice(i[0].length)||s),l.push(o=[])),r=!1,(i=ee.exec(s))&&(o.push(r=new P(i.shift())),s=s.slice(r.length),r.type=i[0].replace(Y," "));for(a in b.filter)!(i=se[a].exec(s))||u[a]&&!(i=u[a](i))||(o.push(r=new P(i.shift())),s=s.slice(r.length),r.type=a,r.matches=i);if(!r)break}return t?s.length:s?n.error(e):q(e,l).slice(0)}function l(e,t,n){var r=t.dir,i=n&&"parentNode"===t.dir,o=M++;return t.first?function(t,n,o){for(;t=t[r];)if(i||1===t.nodeType)return e(t,n,o)}:function(t,n,a){if(a){for(;t=t[r];)if((i||1===t.nodeType)&&e(t,n,a))return t}else for(var s,l=O+" "+o+" ",u=l+v;t=t[r];)if(i||1===t.nodeType){if((s=t[T])===u)return t.sizset;if("string"==typeof s&&0===s.indexOf(l)){if(t.sizset)return t}else{if(t[T]=u,e(t,n,a))return t.sizset=!0,t;t.sizset=!1}}}}function u(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function c(e,t,n,r,i){for(var o,a=[],s=0,l=e.length,u=null!=t;l>s;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),u&&t.push(s)));return a}function p(e,t,n,r,i,o){return r&&!r[T]&&(r=p(r)),i&&!i[T]&&(i=p(i,o)),B(function(o,a,s,l){var u,p,h,f=[],g=[],m=a.length,v=o||d(t||"*",s.nodeType?[s]:s,[]),y=!e||!o&&t?v:c(v,f,e,s,l),b=n?i||(o?e:m||r)?[]:a:y;if(n&&n(y,b,s,l),r)for(u=c(b,g),r(u,[],s,l),p=u.length;p--;)(h=u[p])&&(b[g[p]]=!(y[g[p]]=h));if(o){if(i||e){if(i){for(u=[],p=b.length;p--;)(h=b[p])&&u.push(y[p]=h);i(null,b=[],u,l)}for(p=b.length;p--;)(h=b[p])&&(u=i?R.call(o,h):f[p])>-1&&(o[u]=!(a[u]=h))}}else b=c(b===a?b.splice(m,b.length):b),i?i(null,a,b,l):H.apply(a,b)})}function h(e){for(var t,n,r,i=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,c=l(function(e){return e===t},a,!0),f=l(function(e){return R.call(t,e)>-1},a,!0),d=[function(e,n,r){return!o&&(r||n!==E)||((t=n).nodeType?c(e,n,r):f(e,n,r))}];i>s;s++)if(n=b.relative[e[s].type])d=[l(u(d),n)];else{if(n=b.filter[e[s].type].apply(null,e[s].matches),n[T]){for(r=++s;i>r&&!b.relative[e[r].type];r++);return p(s>1&&u(d),s>1&&e.slice(0,s-1).join("").replace(Y,"$1"),n,r>s&&h(e.slice(s,r)),i>r&&h(e=e.slice(r)),i>r&&e.join(""))}d.push(n)}return u(d)}function f(e,t){var r=t.length>0,i=e.length>0,o=function(a,s,l,u,p){var h,f,d,g=[],m=0,y="0",x=a&&[],w=null!=p,S=E,k=a||i&&b.find.TAG("*",p&&s.parentNode||s),C=O+=null==S?1:Math.E;for(w&&(E=s!==L&&s,v=o.el);null!=(h=k[y]);y++){if(i&&h){for(f=0;d=e[f];f++)if(d(h,s,l)){u.push(h);break}w&&(O=C,v=++o.el)}r&&((h=!d&&h)&&m--,a&&x.push(h))}if(m+=y,r&&y!==m){for(f=0;d=t[f];f++)d(x,g,s,l);if(a){if(m>0)for(;y--;)x[y]||g[y]||(g[y]=D.call(u));g=c(g)}H.apply(u,g),w&&!a&&g.length>0&&m+t.length>1&&n.uniqueSort(u)}return w&&(O=C,E=S),x};return o.el=0,r?B(o):o}function d(e,t,r){for(var i=0,o=t.length;o>i;i++)n(e,t[i],r);return r}function g(e,t,n,r,i){var o,a,l,u,c,p=s(e);p.length;if(!r&&1===p.length){if(a=p[0]=p[0].slice(0),a.length>2&&"ID"===(l=a[0]).type&&9===t.nodeType&&!i&&b.relative[a[1].type]){if(t=b.find.ID(l.matches[0].replace(ae,""),t,i)[0],!t)return n;e=e.slice(a.shift().length)}for(o=se.POS.test(e)?-1:a.length-1;o>=0&&(l=a[o],!b.relative[u=l.type]);o--)if((c=b.find[u])&&(r=c(l.matches[0].replace(ae,""),re.test(a[0].type)&&t.parentNode||t,i))){if(a.splice(o,1),e=r.length&&a.join(""),!e)return H.apply(n,I.call(r,0)),n;break}}return k(e,p)(r,t,i,n,re.test(e)),n}function m(){}var v,y,b,x,w,S,k,C,_,E,A=!0,N="undefined",T=("sizcache"+Math.random()).replace(".",""),P=String,L=e.document,j=L.documentElement,O=0,M=0,D=[].pop,H=[].push,I=[].slice,R=[].indexOf||function(e){for(var t=0,n=this.length;n>t;t++)if(this[t]===e)return t;return-1},B=function(e,t){return e[T]=null==t||t,e},$=function(){var e={},t=[];return B(function(n,r){return t.push(n)>b.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},F=$(),q=$(),W=$(),U="[\\x20\\t\\r\\n\\f]",z="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",V=z.replace("w","w#"),G="([*^$|!~]?=)",X="\\["+U+"*("+z+")"+U+"*(?:"+G+U+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+V+")|)|)"+U+"*\\]",J=":("+z+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+X+")|[^:]|\\\\.)*|.*))\\)|)",K=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+U+"*((?:-\\d)?\\d*)"+U+"*\\)|)(?=[^-]|$)",Y=new RegExp("^"+U+"+|((?:^|[^\\\\])(?:\\\\.)*)"+U+"+$","g"),Q=new RegExp("^"+U+"*,"+U+"*"),ee=new RegExp("^"+U+"*([\\x20\\t\\r\\n\\f>+~])"+U+"*"),te=new RegExp(J),ne=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,re=/[\x20\t\r\n\f]*[+~]/,ie=/h\d/i,oe=/input|select|textarea|button/i,ae=/\\(?!\\)/g,se={ID:new RegExp("^#("+z+")"),CLASS:new RegExp("^\\.("+z+")"),NAME:new RegExp("^\\[name=['\"]?("+z+")['\"]?\\]"),TAG:new RegExp("^("+z.replace("w","w*")+")"),ATTR:new RegExp("^"+X),PSEUDO:new RegExp("^"+J),POS:new RegExp(K,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+U+"*(even|odd|(([+-]|)(\\d*)n|)"+U+"*(?:([+-]|)"+U+"*(\\d+)|))"+U+"*\\)|)","i"),needsContext:new RegExp("^"+U+"*[>+~]|"+K,"i")},le=function(e){var t=L.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},ue=le(function(e){return e.appendChild(L.createComment("")),!e.getElementsByTagName("*").length}),ce=le(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==N&&"#"===e.firstChild.getAttribute("href")}),pe=le(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),he=le(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",e.getElementsByClassName&&e.getElementsByClassName("e").length?(e.lastChild.className="e",2===e.getElementsByClassName("e").length):!1}),fe=le(function(e){e.id=T+0,e.innerHTML="<a name='"+T+"'></a><div name='"+T+"'></div>",j.insertBefore(e,j.firstChild);var t=L.getElementsByName&&L.getElementsByName(T).length===2+L.getElementsByName(T+0).length;return y=!L.getElementById(T),j.removeChild(e),t});try{I.call(j.childNodes,0)[0].nodeType}catch(de){I=function(e){for(var t,n=[];t=this[e];e++)n.push(t);return n}}n.matches=function(e,t){return n(e,null,null,t)},n.matchesSelector=function(e,t){return n(t,null,null,[e]).length>0},x=n.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=x(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=x(t);return n},w=n.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},S=n.contains=j.contains?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&1===r.nodeType&&n.contains&&n.contains(r))}:j.compareDocumentPosition?function(e,t){return t&&!!(16&e.compareDocumentPosition(t))}:function(e,t){for(;t=t.parentNode;)if(t===e)return!0;return!1},n.attr=function(e,t){var n,r=w(e);return r||(t=t.toLowerCase()),(n=b.attrHandle[t])?n(e):r||pe?e.getAttribute(t):(n=e.getAttributeNode(t),n?"boolean"==typeof e[t]?e[t]?t:null:n.specified?n.value:null:null)},b=n.selectors={cacheLength:50,createPseudo:B,match:se,attrHandle:ce?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:y?function(e,t,n){if(typeof t.getElementById!==N&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==N&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==N&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:ue?function(e,t){return typeof t.getElementsByTagName!==N?t.getElementsByTagName(e):void 0}:function(e,t){var n=t.getElementsByTagName(e);if("*"===e){for(var r,i=[],o=0;r=n[o];o++)1===r.nodeType&&i.push(r);return i}return n},NAME:fe&&function(e,t){return typeof t.getElementsByName!==N?t.getElementsByName(name):void 0},CLASS:he&&function(e,t,n){return typeof t.getElementsByClassName===N||n?void 0:t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(ae,""),e[3]=(e[4]||e[5]||"").replace(ae,""),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1]?(e[2]||n.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*("even"===e[2]||"odd"===e[2])),e[4]=+(e[6]+e[7]||"odd"===e[2])):e[2]&&n.error(e[0]),e},PSEUDO:function(e){var t,n;return se.CHILD.test(e[0])?null:(e[3]?e[2]=e[3]:(t=e[4])&&(te.test(t)&&(n=s(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t),e.slice(0,3))}},filter:{ID:y?function(e){return e=e.replace(ae,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace(ae,""),function(t){var n=typeof t.getAttributeNode!==N&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(ae,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=F[T][e+" "];return t||(t=new RegExp("(^|"+U+")"+e+"("+U+"|$)"))&&F(e,function(e){return t.test(e.className||typeof e.getAttribute!==N&&e.getAttribute("class")||"")})},ATTR:function(e,t,r){return function(i,o){var a=n.attr(i,e);return null==a?"!="===t:t?(a+="","="===t?a===r:"!="===t?a!==r:"^="===t?r&&0===a.indexOf(r):"*="===t?r&&a.indexOf(r)>-1:"$="===t?r&&a.substr(a.length-r.length)===r:"~="===t?(" "+a+" ").indexOf(r)>-1:"|="===t?a===r||a.substr(0,r.length+1)===r+"-":!1):!0}},CHILD:function(e,t,n,r){return"nth"===e?function(e){var t,i,o=e.parentNode;if(1===n&&0===r)return!0;if(o)for(i=0,t=o.firstChild;t&&(1!==t.nodeType||(i++,e!==t));t=t.nextSibling);return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":for(;n=n.previousSibling;)if(1===n.nodeType)return!1;if("first"===e)return!0;n=t;case"last":for(;n=n.nextSibling;)if(1===n.nodeType)return!1;return!0}}},PSEUDO:function(e,t){var r,i=b.pseudos[e]||b.setFilters[e.toLowerCase()]||n.error("unsupported pseudo: "+e);return i[T]?i(t):i.length>1?(r=[e,e,"",t],b.setFilters.hasOwnProperty(e.toLowerCase())?B(function(e,n){for(var r,o=i(e,t),a=o.length;a--;)r=R.call(e,o[a]),e[r]=!(n[r]=o[a])}):function(e){return i(e,0,r)}):i}},pseudos:{not:B(function(e){var t=[],n=[],r=k(e.replace(Y,"$1"));return r[T]?B(function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:B(function(e){return function(t){return n(e,t).length>0}}),contains:B(function(e){return function(t){return(t.textContent||t.innerText||x(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected; +},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!b.pseudos.empty(e)},empty:function(e){var t;for(e=e.firstChild;e;){if(e.nodeName>"@"||3===(t=e.nodeType)||4===t)return!1;e=e.nextSibling}return!0},header:function(e){return ie.test(e.nodeName)},text:function(e){var t,n;return"input"===e.nodeName.toLowerCase()&&"text"===(t=e.type)&&(null==(n=e.getAttribute("type"))||n.toLowerCase()===t)},radio:r("radio"),checkbox:r("checkbox"),file:r("file"),password:r("password"),image:r("image"),submit:i("submit"),reset:i("reset"),button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},input:function(e){return oe.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:o(function(){return[0]}),last:o(function(e,t){return[t-1]}),eq:o(function(e,t,n){return[0>n?n+t:n]}),even:o(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:o(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:o(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:o(function(e,t,n){for(var r=0>n?n+t:n;++r<t;)e.push(r);return e})}},C=j.compareDocumentPosition?function(e,t){return e===t?(_=!0,0):(e.compareDocumentPosition&&t.compareDocumentPosition?4&e.compareDocumentPosition(t):e.compareDocumentPosition)?-1:1}:function(e,t){if(e===t)return _=!0,0;if(e.sourceIndex&&t.sourceIndex)return e.sourceIndex-t.sourceIndex;var n,r,i=[],o=[],s=e.parentNode,l=t.parentNode,u=s;if(s===l)return a(e,t);if(!s)return-1;if(!l)return 1;for(;u;)i.unshift(u),u=u.parentNode;for(u=l;u;)o.unshift(u),u=u.parentNode;n=i.length,r=o.length;for(var c=0;n>c&&r>c;c++)if(i[c]!==o[c])return a(i[c],o[c]);return c===n?a(e,o[c],-1):a(i[c],t,1)},[0,0].sort(C),A=!_,n.uniqueSort=function(e){var t,n=[],r=1,i=0;if(_=A,e.sort(C),_){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));for(;i--;)e.splice(n[i],1)}return e},n.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},k=n.compile=function(e,t){var n,r=[],i=[],o=W[T][e+" "];if(!o){for(t||(t=s(e)),n=t.length;n--;)o=h(t[n]),o[T]?r.push(o):i.push(o);o=W(e,f(i,r))}return o},L.querySelectorAll&&!function(){var e,t=g,r=/'|\\/g,i=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,o=[":focus"],a=[":active"],l=j.matchesSelector||j.mozMatchesSelector||j.webkitMatchesSelector||j.oMatchesSelector||j.msMatchesSelector;le(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||o.push("\\["+U+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||o.push(":checked")}),le(function(e){e.innerHTML="<p test=''></p>",e.querySelectorAll("[test^='']").length&&o.push("[*^$]="+U+"*(?:\"\"|'')"),e.innerHTML="<input type='hidden'/>",e.querySelectorAll(":enabled").length||o.push(":enabled",":disabled")}),o=new RegExp(o.join("|")),g=function(e,n,i,a,l){if(!a&&!l&&!o.test(e)){var u,c,p=!0,h=T,f=n,d=9===n.nodeType&&e;if(1===n.nodeType&&"object"!==n.nodeName.toLowerCase()){for(u=s(e),(p=n.getAttribute("id"))?h=p.replace(r,"\\$&"):n.setAttribute("id",h),h="[id='"+h+"'] ",c=u.length;c--;)u[c]=h+u[c].join("");f=re.test(e)&&n.parentNode||n,d=u.join(",")}if(d)try{return H.apply(i,I.call(f.querySelectorAll(d),0)),i}catch(g){}finally{p||n.removeAttribute("id")}}return t(e,n,i,a,l)},l&&(le(function(t){e=l.call(t,"div");try{l.call(t,"[test!='']:sizzle"),a.push("!=",J)}catch(n){}}),a=new RegExp(a.join("|")),n.matchesSelector=function(t,r){if(r=r.replace(i,"='$1']"),!w(t)&&!a.test(r)&&!o.test(r))try{var s=l.call(t,r);if(s||e||t.document&&11!==t.document.nodeType)return s}catch(u){}return n(r,null,null,[t]).length>0})}(),b.pseudos.nth=b.pseudos.eq,b.filters=m.prototype=b.pseudos,b.setFilters=new m,n.attr=Z.attr,Z.find=n,Z.expr=n.selectors,Z.expr[":"]=Z.expr.pseudos,Z.unique=n.uniqueSort,Z.text=n.getText,Z.isXMLDoc=n.isXML,Z.contains=n.contains}(e);var De=/Until$/,He=/^(?:parents|prev(?:Until|All))/,Ie=/^.[^:#\[\.,]*$/,Re=Z.expr.match.needsContext,Be={children:!0,contents:!0,next:!0,prev:!0};Z.fn.extend({find:function(e){var t,n,r,i,o,a,s=this;if("string"!=typeof e)return Z(e).filter(function(){for(t=0,n=s.length;n>t;t++)if(Z.contains(s[t],this))return!0});for(a=this.pushStack("","find",e),t=0,n=this.length;n>t;t++)if(r=a.length,Z.find(e,this[t],a),t>0)for(i=r;i<a.length;i++)for(o=0;r>o;o++)if(a[o]===a[i]){a.splice(i--,1);break}return a},has:function(e){var t,n=Z(e,this),r=n.length;return this.filter(function(){for(t=0;r>t;t++)if(Z.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(c(this,e,!1),"not",e)},filter:function(e){return this.pushStack(c(this,e,!0),"filter",e)},is:function(e){return!!e&&("string"==typeof e?Re.test(e)?Z(e,this.context).index(this[0])>=0:Z.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){for(var n,r=0,i=this.length,o=[],a=Re.test(e)||"string"!=typeof e?Z(e,t||this.context):0;i>r;r++)for(n=this[r];n&&n.ownerDocument&&n!==t&&11!==n.nodeType;){if(a?a.index(n)>-1:Z.find.matchesSelector(n,e)){o.push(n);break}n=n.parentNode}return o=o.length>1?Z.unique(o):o,this.pushStack(o,"closest",e)},index:function(e){return e?"string"==typeof e?Z.inArray(this[0],Z(e)):Z.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n="string"==typeof e?Z(e,t):Z.makeArray(e&&e.nodeType?[e]:e),r=Z.merge(this.get(),n);return this.pushStack(l(n[0])||l(r[0])?r:Z.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),Z.fn.andSelf=Z.fn.addBack,Z.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return Z.dir(e,"parentNode")},parentsUntil:function(e,t,n){return Z.dir(e,"parentNode",n)},next:function(e){return u(e,"nextSibling")},prev:function(e){return u(e,"previousSibling")},nextAll:function(e){return Z.dir(e,"nextSibling")},prevAll:function(e){return Z.dir(e,"previousSibling")},nextUntil:function(e,t,n){return Z.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return Z.dir(e,"previousSibling",n)},siblings:function(e){return Z.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return Z.sibling(e.firstChild)},contents:function(e){return Z.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:Z.merge([],e.childNodes)}},function(e,t){Z.fn[e]=function(n,r){var i=Z.map(this,t,n);return De.test(e)||(r=n),r&&"string"==typeof r&&(i=Z.filter(r,i)),i=this.length>1&&!Be[e]?Z.unique(i):i,this.length>1&&He.test(e)&&(i=i.reverse()),this.pushStack(i,e,X.call(arguments).join(","))}}),Z.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?Z.find.matchesSelector(t[0],e)?[t[0]]:[]:Z.find.matches(e,t)},dir:function(e,n,r){for(var i=[],o=e[n];o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!Z(o).is(r));)1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});var $e="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",Fe=/ jQuery\d+="(?:null|\d+)"/g,qe=/^\s+/,We=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Ue=/<([\w:]+)/,ze=/<tbody/i,Ve=/<|&#?\w+;/,Ge=/<(?:script|style|link)/i,Xe=/<(?:script|object|embed|option|style)/i,Je=new RegExp("<(?:"+$e+")[\\s/>]","i"),Ke=/^(?:checkbox|radio)$/,Ye=/checked\s*(?:[^=]|=\s*.checked.)/i,Qe=/\/(java|ecma)script/i,Ze=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,et={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},tt=p(q),nt=tt.appendChild(q.createElement("div"));et.optgroup=et.option,et.tbody=et.tfoot=et.colgroup=et.caption=et.thead,et.th=et.td,Z.support.htmlSerialize||(et._default=[1,"X<div>","</div>"]),Z.fn.extend({text:function(e){return Z.access(this,function(e){return e===t?Z.text(this):this.empty().append((this[0]&&this[0].ownerDocument||q).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(Z.isFunction(e))return this.each(function(t){Z(this).wrapAll(e.call(this,t))});if(this[0]){var t=Z(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return Z.isFunction(e)?this.each(function(t){Z(this).wrapInner(e.call(this,t))}):this.each(function(){var t=Z(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=Z.isFunction(e);return this.each(function(n){Z(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){Z.nodeName(this,"body")||Z(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){1!==this.nodeType&&11!==this.nodeType||this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){1!==this.nodeType&&11!==this.nodeType||this.insertBefore(e,this.firstChild)})},before:function(){if(!l(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=Z.clean(arguments);return this.pushStack(Z.merge(e,this),"before",this.selector)}},after:function(){if(!l(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=Z.clean(arguments);return this.pushStack(Z.merge(this,e),"after",this.selector)}},remove:function(e,t){for(var n,r=0;null!=(n=this[r]);r++)e&&!Z.filter(e,[n]).length||(t||1!==n.nodeType||(Z.cleanData(n.getElementsByTagName("*")),Z.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)for(1===e.nodeType&&Z.cleanData(e.getElementsByTagName("*"));e.firstChild;)e.removeChild(e.firstChild);return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return Z.clone(this,e,t)})},html:function(e){return Z.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(Fe,""):t;if("string"==typeof e&&!Ge.test(e)&&(Z.support.htmlSerialize||!Je.test(e))&&(Z.support.leadingWhitespace||!qe.test(e))&&!et[(Ue.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(We,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(Z.cleanData(n.getElementsByTagName("*")),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){return l(this[0])?this.length?this.pushStack(Z(Z.isFunction(e)?e():e),"replaceWith",e):this:Z.isFunction(e)?this.each(function(t){var n=Z(this),r=n.html();n.replaceWith(e.call(this,t,r))}):("string"!=typeof e&&(e=Z(e).detach()),this.each(function(){var t=this.nextSibling,n=this.parentNode;Z(this).remove(),t?Z(t).before(e):Z(n).append(e)}))},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=[].concat.apply([],e);var i,o,a,s,l=0,u=e[0],c=[],p=this.length;if(!Z.support.checkClone&&p>1&&"string"==typeof u&&Ye.test(u))return this.each(function(){Z(this).domManip(e,n,r)});if(Z.isFunction(u))return this.each(function(i){var o=Z(this);e[0]=u.call(this,i,n?o.html():t),o.domManip(e,n,r)});if(this[0]){if(i=Z.buildFragment(e,this,c),a=i.fragment,o=a.firstChild,1===a.childNodes.length&&(a=o),o)for(n=n&&Z.nodeName(o,"tr"),s=i.cacheable||p-1;p>l;l++)r.call(n&&Z.nodeName(this[l],"table")?h(this[l],"tbody"):this[l],l===s?a:Z.clone(a,!0,!0));a=o=null,c.length&&Z.each(c,function(e,t){t.src?Z.ajax?Z.ajax({url:t.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):Z.error("no ajax"):Z.globalEval((t.text||t.textContent||t.innerHTML||"").replace(Ze,"")),t.parentNode&&t.parentNode.removeChild(t)})}return this}}),Z.buildFragment=function(e,n,r){var i,o,a,s=e[0];return n=n||q,n=!n.nodeType&&n[0]||n,n=n.ownerDocument||n,!(1===e.length&&"string"==typeof s&&s.length<512&&n===q&&"<"===s.charAt(0))||Xe.test(s)||!Z.support.checkClone&&Ye.test(s)||!Z.support.html5Clone&&Je.test(s)||(o=!0,i=Z.fragments[s],a=i!==t),i||(i=n.createDocumentFragment(),Z.clean(e,n,i,r),o&&(Z.fragments[s]=a&&i)),{fragment:i,cacheable:o}},Z.fragments={},Z.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){Z.fn[e]=function(n){var r,i=0,o=[],a=Z(n),s=a.length,l=1===this.length&&this[0].parentNode;if((null==l||l&&11===l.nodeType&&1===l.childNodes.length)&&1===s)return a[t](this[0]),this;for(;s>i;i++)r=(i>0?this.clone(!0):this).get(),Z(a[i])[t](r),o=o.concat(r);return this.pushStack(o,e,a.selector)}}),Z.extend({clone:function(e,t,n){var r,i,o,a;if(Z.support.html5Clone||Z.isXMLDoc(e)||!Je.test("<"+e.nodeName+">")?a=e.cloneNode(!0):(nt.innerHTML=e.outerHTML,nt.removeChild(a=nt.firstChild)),!(Z.support.noCloneEvent&&Z.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||Z.isXMLDoc(e)))for(d(e,a),r=g(e),i=g(a),o=0;r[o];++o)i[o]&&d(r[o],i[o]);if(t&&(f(e,a),n))for(r=g(e),i=g(a),o=0;r[o];++o)f(r[o],i[o]);return r=i=null,a},clean:function(e,t,n,r){var i,o,a,s,l,u,c,h,f,d,g,v=t===q&&tt,y=[];for(t&&"undefined"!=typeof t.createDocumentFragment||(t=q),i=0;null!=(a=e[i]);i++)if("number"==typeof a&&(a+=""),a){if("string"==typeof a)if(Ve.test(a)){for(v=v||p(t),c=t.createElement("div"),v.appendChild(c),a=a.replace(We,"<$1></$2>"),s=(Ue.exec(a)||["",""])[1].toLowerCase(),l=et[s]||et._default,u=l[0],c.innerHTML=l[1]+a+l[2];u--;)c=c.lastChild;if(!Z.support.tbody)for(h=ze.test(a),f="table"!==s||h?"<table>"!==l[1]||h?[]:c.childNodes:c.firstChild&&c.firstChild.childNodes,o=f.length-1;o>=0;--o)Z.nodeName(f[o],"tbody")&&!f[o].childNodes.length&&f[o].parentNode.removeChild(f[o]);!Z.support.leadingWhitespace&&qe.test(a)&&c.insertBefore(t.createTextNode(qe.exec(a)[0]),c.firstChild),a=c.childNodes,c.parentNode.removeChild(c)}else a=t.createTextNode(a);a.nodeType?y.push(a):Z.merge(y,a)}if(c&&(a=c=v=null),!Z.support.appendChecked)for(i=0;null!=(a=y[i]);i++)Z.nodeName(a,"input")?m(a):"undefined"!=typeof a.getElementsByTagName&&Z.grep(a.getElementsByTagName("input"),m);if(n)for(d=function(e){return!e.type||Qe.test(e.type)?r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e):void 0},i=0;null!=(a=y[i]);i++)Z.nodeName(a,"script")&&d(a)||(n.appendChild(a),"undefined"!=typeof a.getElementsByTagName&&(g=Z.grep(Z.merge([],a.getElementsByTagName("script")),d),y.splice.apply(y,[i+1,0].concat(g)),i+=g.length));return y},cleanData:function(e,t){for(var n,r,i,o,a=0,s=Z.expando,l=Z.cache,u=Z.support.deleteExpando,c=Z.event.special;null!=(i=e[a]);a++)if((t||Z.acceptData(i))&&(r=i[s],n=r&&l[r])){if(n.events)for(o in n.events)c[o]?Z.event.remove(i,o):Z.removeEvent(i,o,n.handle);l[r]&&(delete l[r],u?delete i[s]:i.removeAttribute?i.removeAttribute(s):i[s]=null,Z.deletedIds.push(r))}}}),function(){var e,t;Z.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=Z.uaMatch(U.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),Z.browser=t,Z.sub=function(){function e(t,n){return new e.fn.init(t,n)}Z.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(n,r){return r&&r instanceof Z&&!(r instanceof e)&&(r=e(r)),Z.fn.init.call(this,n,r,t)},e.fn.init.prototype=e.fn;var t=e(q);return e}}();var rt,it,ot,at=/alpha\([^)]*\)/i,st=/opacity=([^)]*)/,lt=/^(top|right|bottom|left)$/,ut=/^(none|table(?!-c[ea]).+)/,ct=/^margin/,pt=new RegExp("^("+ee+")(.*)$","i"),ht=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),ft=new RegExp("^([-+])=("+ee+")","i"),dt={BODY:"block"},gt={position:"absolute",visibility:"hidden",display:"block"},mt={letterSpacing:0,fontWeight:400},vt=["Top","Right","Bottom","Left"],yt=["Webkit","O","Moz","ms"],bt=Z.fn.toggle;Z.fn.extend({css:function(e,n){return Z.access(this,function(e,n,r){return r!==t?Z.style(e,n,r):Z.css(e,n)},e,n,arguments.length>1)},show:function(){return b(this,!0)},hide:function(){return b(this)},toggle:function(e,t){var n="boolean"==typeof e;return Z.isFunction(e)&&Z.isFunction(t)?bt.apply(this,arguments):this.each(function(){(n?e:y(this))?Z(this).show():Z(this).hide()})}}),Z.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=rt(e,"opacity");return""===n?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":Z.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=Z.camelCase(n),u=e.style;if(n=Z.cssProps[l]||(Z.cssProps[l]=v(u,l)),s=Z.cssHooks[n]||Z.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=ft.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(Z.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||Z.cssNumber[l]||(r+="px"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=Z.camelCase(n);return n=Z.cssProps[l]||(Z.cssProps[l]=v(e.style,l)),s=Z.cssHooks[n]||Z.cssHooks[l],s&&"get"in s&&(o=s.get(e,!0,i)),o===t&&(o=rt(e,n)),"normal"===o&&n in mt&&(o=mt[n]),r||i!==t?(a=parseFloat(o),r||Z.isNumeric(a)?a||0:o):o},swap:function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=o[i];return r}}),e.getComputedStyle?rt=function(t,n){var r,i,o,a,s=e.getComputedStyle(t,null),l=t.style;return s&&(r=s.getPropertyValue(n)||s[n],""!==r||Z.contains(t.ownerDocument,t)||(r=Z.style(t,n)),ht.test(r)&&ct.test(n)&&(i=l.width,o=l.minWidth,a=l.maxWidth,l.minWidth=l.maxWidth=l.width=r,r=s.width,l.width=i,l.minWidth=o,l.maxWidth=a)),r}:q.documentElement.currentStyle&&(rt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],o=e.style;return null==i&&o&&o[t]&&(i=o[t]),ht.test(i)&&!lt.test(t)&&(n=o.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),o.left="fontSize"===t?"1em":i,i=o.pixelLeft+"px",o.left=n,r&&(e.runtimeStyle.left=r)),""===i?"auto":i}),Z.each(["height","width"],function(e,t){Z.cssHooks[t]={get:function(e,n,r){return n?0===e.offsetWidth&&ut.test(rt(e,"display"))?Z.swap(e,gt,function(){return S(e,t,r)}):S(e,t,r):void 0},set:function(e,n,r){return x(e,n,r?w(e,t,r,Z.support.boxSizing&&"border-box"===Z.css(e,"boxSizing")):0)}}}),Z.support.opacity||(Z.cssHooks.opacity={get:function(e,t){return st.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=Z.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,t>=1&&""===Z.trim(o.replace(at,""))&&n.removeAttribute&&(n.removeAttribute("filter"),r&&!r.filter)||(n.filter=at.test(o)?o.replace(at,i):o+" "+i)}}),Z(function(){Z.support.reliableMarginRight||(Z.cssHooks.marginRight={get:function(e,t){return Z.swap(e,{display:"inline-block"},function(){return t?rt(e,"marginRight"):void 0})}}),!Z.support.pixelPosition&&Z.fn.position&&Z.each(["top","left"],function(e,t){Z.cssHooks[t]={get:function(e,n){if(n){var r=rt(e,t);return ht.test(r)?Z(e).position()[t]+"px":r}}}})}),Z.expr&&Z.expr.filters&&(Z.expr.filters.hidden=function(e){return 0===e.offsetWidth&&0===e.offsetHeight||!Z.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||rt(e,"display"))},Z.expr.filters.visible=function(e){return!Z.expr.filters.hidden(e)}),Z.each({margin:"",padding:"",border:"Width"},function(e,t){Z.cssHooks[e+t]={expand:function(n){var r,i="string"==typeof n?n.split(" "):[n],o={};for(r=0;4>r;r++)o[e+vt[r]+t]=i[r]||i[r-2]||i[0];return o}},ct.test(e)||(Z.cssHooks[e+t].set=x)});var xt=/%20/g,wt=/\[\]$/,St=/\r?\n/g,kt=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,Ct=/^(?:select|textarea)/i;Z.fn.extend({serialize:function(){return Z.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?Z.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||Ct.test(this.nodeName)||kt.test(this.type))}).map(function(e,t){var n=Z(this).val();return null==n?null:Z.isArray(n)?Z.map(n,function(e,n){return{name:t.name,value:e.replace(St,"\r\n")}}):{name:t.name,value:n.replace(St,"\r\n")}}).get()}}),Z.param=function(e,n){var r,i=[],o=function(e,t){t=Z.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=Z.ajaxSettings&&Z.ajaxSettings.traditional),Z.isArray(e)||e.jquery&&!Z.isPlainObject(e))Z.each(e,function(){o(this.name,this.value)});else for(r in e)C(r,e[r],n,o);return i.join("&").replace(xt,"+")};var _t,Et,At=/#.*$/,Nt=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Tt=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,Pt=/^(?:GET|HEAD)$/,Lt=/^\/\//,jt=/\?/,Ot=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,Mt=/([?&])_=[^&]*/,Dt=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Ht=Z.fn.load,It={},Rt={},Bt=["*/"]+["*"];try{Et=W.href}catch($t){Et=q.createElement("a"),Et.href="",Et=Et.href}_t=Dt.exec(Et.toLowerCase())||[],Z.fn.load=function(e,n,r){if("string"!=typeof e&&Ht)return Ht.apply(this,arguments);if(!this.length)return this;var i,o,a,s=this,l=e.indexOf(" ");return l>=0&&(i=e.slice(l,e.length),e=e.slice(0,l)),Z.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(o="POST"),Z.ajax({url:e,type:o,dataType:"html",data:n,complete:function(e,t){r&&s.each(r,a||[e.responseText,t,e])}}).done(function(e){a=arguments,s.html(i?Z("<div>").append(e.replace(Ot,"")).find(i):e)}),this},Z.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){Z.fn[t]=function(e){return this.on(t,e)}}),Z.each(["get","post"],function(e,n){Z[n]=function(e,r,i,o){return Z.isFunction(r)&&(o=o||i,i=r,r=t),Z.ajax({type:n,url:e,data:r,success:i,dataType:o})}}),Z.extend({getScript:function(e,n){return Z.get(e,t,n,"script")},getJSON:function(e,t,n){return Z.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?A(e,Z.ajaxSettings):(t=e,e=Z.ajaxSettings),A(e,t),e},ajaxSettings:{url:Et,isLocal:Tt.test(_t[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Bt},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":Z.parseJSON,"text xml":Z.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:_(It),ajaxTransport:_(Rt),ajax:function(e,n){function r(e,n,r,a){var u,p,y,b,w,k=n;2!==x&&(x=2,l&&clearTimeout(l),s=t,o=a||"",S.readyState=e>0?4:0,r&&(b=N(h,S,r)),e>=200&&300>e||304===e?(h.ifModified&&(w=S.getResponseHeader("Last-Modified"),w&&(Z.lastModified[i]=w),w=S.getResponseHeader("Etag"),w&&(Z.etag[i]=w)),304===e?(k="notmodified",u=!0):(u=T(h,b),k=u.state,p=u.data,y=u.error,u=!y)):(y=k,k&&!e||(k="error",0>e&&(e=0))),S.status=e,S.statusText=(n||k)+"",u?g.resolveWith(f,[p,k,S]):g.rejectWith(f,[S,k,y]),S.statusCode(v),v=t,c&&d.trigger("ajax"+(u?"Success":"Error"),[S,h,u?p:y]),m.fireWith(f,[S,k]),c&&(d.trigger("ajaxComplete",[S,h]),--Z.active||Z.event.trigger("ajaxStop")))}"object"==typeof e&&(n=e,e=t),n=n||{};var i,o,a,s,l,u,c,p,h=Z.ajaxSetup({},n),f=h.context||h,d=f!==h&&(f.nodeType||f instanceof Z)?Z(f):Z.event,g=Z.Deferred(),m=Z.Callbacks("once memory"),v=h.statusCode||{},y={},b={},x=0,w="canceled",S={readyState:0,setRequestHeader:function(e,t){if(!x){var n=e.toLowerCase();e=b[n]=b[n]||e,y[e]=t}return this},getAllResponseHeaders:function(){return 2===x?o:null},getResponseHeader:function(e){var n;if(2===x){if(!a)for(a={};n=Nt.exec(o);)a[n[1].toLowerCase()]=n[2];n=a[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return x||(h.mimeType=e),this},abort:function(e){return e=e||w,s&&s.abort(e),r(0,e),this}};if(g.promise(S),S.success=S.done,S.error=S.fail,S.complete=m.add,S.statusCode=function(e){if(e){var t;if(2>x)for(t in e)v[t]=[v[t],e[t]];else t=e[S.status],S.always(t)}return this},h.url=((e||h.url)+"").replace(At,"").replace(Lt,_t[1]+"//"),h.dataTypes=Z.trim(h.dataType||"*").toLowerCase().split(ne),null==h.crossDomain&&(u=Dt.exec(h.url.toLowerCase()),h.crossDomain=!(!u||u[1]===_t[1]&&u[2]===_t[2]&&(u[3]||("http:"===u[1]?80:443))==(_t[3]||("http:"===_t[1]?80:443)))),h.data&&h.processData&&"string"!=typeof h.data&&(h.data=Z.param(h.data,h.traditional)),E(It,h,n,S),2===x)return S;if(c=h.global,h.type=h.type.toUpperCase(),h.hasContent=!Pt.test(h.type),c&&0===Z.active++&&Z.event.trigger("ajaxStart"),!h.hasContent&&(h.data&&(h.url+=(jt.test(h.url)?"&":"?")+h.data,delete h.data),i=h.url,h.cache===!1)){var k=Z.now(),C=h.url.replace(Mt,"$1_="+k);h.url=C+(C===h.url?(jt.test(h.url)?"&":"?")+"_="+k:"")}(h.data&&h.hasContent&&h.contentType!==!1||n.contentType)&&S.setRequestHeader("Content-Type",h.contentType),h.ifModified&&(i=i||h.url,Z.lastModified[i]&&S.setRequestHeader("If-Modified-Since",Z.lastModified[i]),Z.etag[i]&&S.setRequestHeader("If-None-Match",Z.etag[i])),S.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+Bt+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)S.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(h.beforeSend.call(f,S,h)===!1||2===x))return S.abort();w="abort";for(p in{success:1,error:1,complete:1})S[p](h[p]);if(s=E(Rt,h,n,S)){S.readyState=1,c&&d.trigger("ajaxSend",[S,h]),h.async&&h.timeout>0&&(l=setTimeout(function(){S.abort("timeout")},h.timeout));try{x=1,s.send(y,r)}catch(_){if(!(2>x))throw _;r(-1,_)}}else r(-1,"No Transport");return S},active:0,lastModified:{},etag:{}});var Ft=[],qt=/\?/,Wt=/(=)\?(?=&|$)|\?\?/,Ut=Z.now();Z.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Ft.pop()||Z.expando+"_"+Ut++;return this[e]=!0,e}}),Z.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,l=n.data,u=n.url,c=n.jsonp!==!1,p=c&&Wt.test(u),h=c&&!p&&"string"==typeof l&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Wt.test(l);return"jsonp"===n.dataTypes[0]||p||h?(o=n.jsonpCallback=Z.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,a=e[o],p?n.url=u.replace(Wt,"$1"+o):h?n.data=l.replace(Wt,"$1"+o):c&&(n.url+=(qt.test(u)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||Z.error(o+" was not called"),s[0]},n.dataTypes[0]="json",e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Ft.push(o)),s&&Z.isFunction(a)&&a(s[0]),s=a=t}),"script"):void 0}),Z.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return Z.globalEval(e),e}}}),Z.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),Z.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=q.head||q.getElementsByTagName("head")[0]||q.documentElement;return{send:function(i,o){n=q.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){(i||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var zt,Vt=e.ActiveXObject?function(){for(var e in zt)zt[e](0,1)}:!1,Gt=0;Z.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&P()||L()}:P,function(e){Z.extend(Z.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(Z.ajaxSettings.xhr()),Z.support.ajax&&Z.ajaxTransport(function(n){if(!n.crossDomain||Z.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var s,u,c,p,h;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=Z.noop,Vt&&delete zt[a]),i)4!==l.readyState&&l.abort();else{s=l.status,c=l.getAllResponseHeaders(),p={},h=l.responseXML,h&&h.documentElement&&(p.xml=h);try{p.text=l.responseText}catch(f){}try{u=l.statusText}catch(f){u=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,u,p,c)},n.async?4===l.readyState?setTimeout(r,0):(a=++Gt,Vt&&(zt||(zt={},Z(e).unload(Vt)),zt[a]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var Xt,Jt,Kt=/^(?:toggle|show|hide)$/,Yt=new RegExp("^(?:([-+])=|)("+ee+")([a-z%]*)$","i"),Qt=/queueHooks$/,Zt=[H],en={"*":[function(e,t){var n,r,i=this.createTween(e,t),o=Yt.exec(t),a=i.cur(),s=+a||0,l=1,u=20;if(o){if(n=+o[2],r=o[3]||(Z.cssNumber[e]?"":"px"),"px"!==r&&s){s=Z.css(i.elem,e,!0)||n||1;do l=l||".5",s/=l,Z.style(i.elem,e,s+r);while(l!==(l=i.cur()/a)&&1!==l&&--u)}i.unit=r,i.start=s,i.end=o[1]?s+(o[1]+1)*n:n}return i}]};Z.Animation=Z.extend(M,{tweener:function(e,t){Z.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,r=0,i=e.length;i>r;r++)n=e[r],en[n]=en[n]||[],en[n].unshift(t)},prefilter:function(e,t){t?Zt.unshift(e):Zt.push(e)}}),Z.Tween=I,I.prototype={constructor:I,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(Z.cssNumber[n]?"":"px")},cur:function(){var e=I.propHooks[this.prop];return e&&e.get?e.get(this):I.propHooks._default.get(this)},run:function(e){var t,n=I.propHooks[this.prop];return this.options.duration?this.pos=t=Z.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):I.propHooks._default.set(this),this}},I.prototype.init.prototype=I.prototype,I.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=Z.css(e.elem,e.prop,!1,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){Z.fx.step[e.prop]?Z.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[Z.cssProps[e.prop]]||Z.cssHooks[e.prop])?Z.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},I.propHooks.scrollTop=I.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},Z.each(["toggle","show","hide"],function(e,t){var n=Z.fn[t];Z.fn[t]=function(r,i,o){return null==r||"boolean"==typeof r||!e&&Z.isFunction(r)&&Z.isFunction(i)?n.apply(this,arguments):this.animate(R(t,!0),r,i,o)}}),Z.fn.extend({fadeTo:function(e,t,n,r){return this.filter(y).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=Z.isEmptyObject(e),o=Z.speed(t,n,r),a=function(){var t=M(this,Z.extend({},e),o);i&&t.stop(!0)};return i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=Z.timers,a=Z._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Qt.test(n)&&i(a[n]); +for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));!t&&r||Z.dequeue(this,e)})}}),Z.each({slideDown:R("show"),slideUp:R("hide"),slideToggle:R("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){Z.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),Z.speed=function(e,t,n){var r=e&&"object"==typeof e?Z.extend({},e):{complete:n||!n&&t||Z.isFunction(e)&&e,duration:e,easing:n&&t||t&&!Z.isFunction(t)&&t};return r.duration=Z.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in Z.fx.speeds?Z.fx.speeds[r.duration]:Z.fx.speeds._default,null!=r.queue&&r.queue!==!0||(r.queue="fx"),r.old=r.complete,r.complete=function(){Z.isFunction(r.old)&&r.old.call(this),r.queue&&Z.dequeue(this,r.queue)},r},Z.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},Z.timers=[],Z.fx=I.prototype.init,Z.fx.tick=function(){var e,n=Z.timers,r=0;for(Xt=Z.now();r<n.length;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||Z.fx.stop(),Xt=t},Z.fx.timer=function(e){e()&&Z.timers.push(e)&&!Jt&&(Jt=setInterval(Z.fx.tick,Z.fx.interval))},Z.fx.interval=13,Z.fx.stop=function(){clearInterval(Jt),Jt=null},Z.fx.speeds={slow:600,fast:200,_default:400},Z.fx.step={},Z.expr&&Z.expr.filters&&(Z.expr.filters.animated=function(e){return Z.grep(Z.timers,function(t){return e===t.elem}).length});var tn=/^(?:body|html)$/i;Z.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){Z.offset.setOffset(this,e,t)});var n,r,i,o,a,s,l,u={top:0,left:0},c=this[0],p=c&&c.ownerDocument;if(p)return(r=p.body)===c?Z.offset.bodyOffset(c):(n=p.documentElement,Z.contains(n,c)?("undefined"!=typeof c.getBoundingClientRect&&(u=c.getBoundingClientRect()),i=B(p),o=n.clientTop||r.clientTop||0,a=n.clientLeft||r.clientLeft||0,s=i.pageYOffset||n.scrollTop,l=i.pageXOffset||n.scrollLeft,{top:u.top+s-o,left:u.left+l-a}):u)},Z.offset={bodyOffset:function(e){var t=e.offsetTop,n=e.offsetLeft;return Z.support.doesNotIncludeMarginInBodyOffset&&(t+=parseFloat(Z.css(e,"marginTop"))||0,n+=parseFloat(Z.css(e,"marginLeft"))||0),{top:t,left:n}},setOffset:function(e,t,n){var r=Z.css(e,"position");"static"===r&&(e.style.position="relative");var i,o,a=Z(e),s=a.offset(),l=Z.css(e,"top"),u=Z.css(e,"left"),c=("absolute"===r||"fixed"===r)&&Z.inArray("auto",[l,u])>-1,p={},h={};c?(h=a.position(),i=h.top,o=h.left):(i=parseFloat(l)||0,o=parseFloat(u)||0),Z.isFunction(t)&&(t=t.call(e,n,s)),null!=t.top&&(p.top=t.top-s.top+i),null!=t.left&&(p.left=t.left-s.left+o),"using"in t?t.using.call(e,p):a.css(p)}},Z.fn.extend({position:function(){if(this[0]){var e=this[0],t=this.offsetParent(),n=this.offset(),r=tn.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(Z.css(e,"marginTop"))||0,n.left-=parseFloat(Z.css(e,"marginLeft"))||0,r.top+=parseFloat(Z.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(Z.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent||q.body;e&&!tn.test(e.nodeName)&&"static"===Z.css(e,"position");)e=e.offsetParent;return e||q.body})}}),Z.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);Z.fn[e]=function(i){return Z.access(this,function(e,i,o){var a=B(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:void(a?a.scrollTo(r?Z(a).scrollLeft():o,r?o:Z(a).scrollTop()):e[i]=o)},e,i,arguments.length,null)}}),Z.each({Height:"height",Width:"width"},function(e,n){Z.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){Z.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return Z.access(this,function(n,r,i){var o;return Z.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?Z.css(n,r,i,s):Z.style(n,r,i,s)},n,a?i:t,a,null)}})}),"object"==typeof n&&n&&"object"==typeof n.exports?n.exports=Z:(e.jQuery=e.$=Z,"function"==typeof define&&define.amd&&define("jquery",[],function(){return Z}))}(window)}),define("lib/jquery.lazyload",[],function(e,t,n){var r=e("jquery");!function(e,t,n,r){var i=e(t);e.fn.lazyload=function(o){function a(){var t=0;l.each(function(){var n=e(this);if(!u.skip_invisible||n.is(":visible"))if(e.abovethetop(this,u)||e.leftofbegin(this,u));else if(e.belowthefold(this,u)||e.rightoffold(this,u)){if(++t>u.failure_limit)return!1}else n.trigger("appear"),t=0})}var s,l=this,u={threshold:0,failure_limit:0,event:"scroll",effect:"show",container:t,data_attribute:"original",skip_invisible:!0,appear:null,load:null,placeholder:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC"};return o&&(r!==o.failurelimit&&(o.failure_limit=o.failurelimit,delete o.failurelimit),r!==o.effectspeed&&(o.effect_speed=o.effectspeed,delete o.effectspeed),e.extend(u,o)),s=u.container===r||u.container===t?i:e(u.container),0===u.event.indexOf("scroll")&&s.bind(u.event,function(){return a()}),this.each(function(){var t=this,n=e(t);t.loaded=!1,n.attr("src")!==r&&n.attr("src")!==!1||n.is("img")&&n.attr("src",u.placeholder),n.one("appear",function(){if(!this.loaded){if(u.appear){var r=l.length;u.appear.call(t,r,u)}e("<img />").bind("load",function(){var r=n.attr("data-"+u.data_attribute);n.hide(),n.is("img")?n.attr("src",r):n.css("background-image","url('"+r+"')"),n[u.effect](u.effect_speed),t.loaded=!0;var i=e.grep(l,function(e){return!e.loaded});if(l=e(i),u.load){var o=l.length;u.load.call(t,o,u)}}).attr("src",n.attr("data-"+u.data_attribute))}}),0!==u.event.indexOf("scroll")&&n.bind(u.event,function(){t.loaded||n.trigger("appear")})}),i.bind("resize",function(){a()}),/(?:iphone|ipod|ipad).*os 5/gi.test(navigator.appVersion)&&i.bind("pageshow",function(t){t.originalEvent&&t.originalEvent.persisted&&l.each(function(){e(this).trigger("appear")})}),e(n).ready(function(){a()}),this},e.belowthefold=function(n,o){var a;return a=o.container===r||o.container===t?(t.innerHeight?t.innerHeight:i.height())+i.scrollTop():e(o.container).offset().top+e(o.container).height(),a<=e(n).offset().top-o.threshold},e.rightoffold=function(n,o){var a;return a=o.container===r||o.container===t?i.width()+i.scrollLeft():e(o.container).offset().left+e(o.container).width(),a<=e(n).offset().left-o.threshold},e.abovethetop=function(n,o){var a;return a=o.container===r||o.container===t?i.scrollTop():e(o.container).offset().top,a>=e(n).offset().top+o.threshold+e(n).height()},e.leftofbegin=function(n,o){var a;return a=o.container===r||o.container===t?i.scrollLeft():e(o.container).offset().left,a>=e(n).offset().left+o.threshold+e(n).width()},e.inviewport=function(t,n){return!(e.rightoffold(t,n)||e.leftofbegin(t,n)||e.belowthefold(t,n)||e.abovethetop(t,n))},e.extend(e.expr[":"],{"below-the-fold":function(t){return e.belowthefold(t,{threshold:0})},"above-the-top":function(t){return!e.belowthefold(t,{threshold:0})},"right-of-screen":function(t){return e.rightoffold(t,{threshold:0})},"left-of-screen":function(t){return!e.rightoffold(t,{threshold:0})},"in-viewport":function(t){return e.inviewport(t,{threshold:0})},"above-the-fold":function(t){return!e.belowthefold(t,{threshold:0})},"right-of-fold":function(t){return e.rightoffold(t,{threshold:0})},"left-of-fold":function(t){return!e.rightoffold(t,{threshold:0})}})}(r,window,document)}),define("handlebars",[],function(e,t,n){!function(e,r){"object"==typeof t&&"object"==typeof n?n.exports=r():"function"==typeof define&&define.amd?define(r):"object"==typeof t?t.Handlebars=r():e.Handlebars=r()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(){var e=v();return e.compile=function(t,n){return c.compile(t,n,e)},e.precompile=function(t,n){return c.precompile(t,n,e)},e.AST=l["default"],e.Compiler=c.Compiler,e.JavaScriptCompiler=h["default"],e.Parser=u.parser,e.parse=u.parse,e}var i=n(8)["default"];t.__esModule=!0;var o=n(1),a=i(o),s=n(2),l=i(s),u=n(3),c=n(4),p=n(5),h=i(p),f=n(6),d=i(f),g=n(7),m=i(g),v=a["default"].create,y=r();y.create=r,m["default"](y),y.Visitor=d["default"],y["default"]=y,t["default"]=y,e.exports=t["default"]},function(e,t,n){"use strict";function r(){var e=new s.HandlebarsEnvironment;return f.extend(e,s),e.SafeString=u["default"],e.Exception=p["default"],e.Utils=f,e.escapeExpression=f.escapeExpression,e.VM=g,e.template=function(t){return g.template(t,e)},e}var i=n(9)["default"],o=n(8)["default"];t.__esModule=!0;var a=n(10),s=i(a),l=n(11),u=o(l),c=n(12),p=o(c),h=n(13),f=i(h),d=n(14),g=i(d),m=n(7),v=o(m),y=r();y.create=r,v["default"](y),y["default"]=y,t["default"]=y,e.exports=t["default"]},function(e,t,n){"use strict";t.__esModule=!0;var r={Program:function(e,t,n,r){this.loc=r,this.type="Program",this.body=e,this.blockParams=t,this.strip=n},MustacheStatement:function(e,t,n,r,i,o){this.loc=o,this.type="MustacheStatement",this.path=e,this.params=t||[],this.hash=n,this.escaped=r,this.strip=i},BlockStatement:function(e,t,n,r,i,o,a,s,l){this.loc=l,this.type="BlockStatement",this.path=e,this.params=t||[],this.hash=n,this.program=r,this.inverse=i,this.openStrip=o,this.inverseStrip=a,this.closeStrip=s},PartialStatement:function(e,t,n,r,i){this.loc=i,this.type="PartialStatement",this.name=e,this.params=t||[],this.hash=n,this.indent="",this.strip=r},ContentStatement:function(e,t){this.loc=t,this.type="ContentStatement",this.original=this.value=e},CommentStatement:function(e,t,n){this.loc=n,this.type="CommentStatement",this.value=e,this.strip=t},SubExpression:function(e,t,n,r){this.loc=r,this.type="SubExpression",this.path=e,this.params=t||[],this.hash=n},PathExpression:function(e,t,n,r,i){this.loc=i,this.type="PathExpression",this.data=e,this.original=r,this.parts=n,this.depth=t},StringLiteral:function(e,t){this.loc=t,this.type="StringLiteral",this.original=this.value=e},NumberLiteral:function(e,t){this.loc=t,this.type="NumberLiteral",this.original=this.value=Number(e)},BooleanLiteral:function(e,t){this.loc=t,this.type="BooleanLiteral",this.original=this.value="true"===e},UndefinedLiteral:function(e){this.loc=e,this.type="UndefinedLiteral",this.original=this.value=void 0},NullLiteral:function(e){this.loc=e,this.type="NullLiteral",this.original=this.value=null},Hash:function(e,t){this.loc=t,this.type="Hash",this.pairs=e},HashPair:function(e,t,n){this.loc=n,this.type="HashPair",this.key=e,this.value=t},helpers:{helperExpression:function(e){return!("SubExpression"!==e.type&&!e.params.length&&!e.hash)},scopedId:function(e){return/^\.|this\b/.test(e.original)},simpleId:function(e){return 1===e.parts.length&&!r.helpers.scopedId(e)&&!e.depth}}};t["default"]=r,e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t){if("Program"===e.type)return e;s["default"].yy=g,g.locInfo=function(e){return new g.SourceLocation(t&&t.srcName,e)};var n=new p["default"];return n.accept(s["default"].parse(e))}var i=n(8)["default"],o=n(9)["default"];t.__esModule=!0,t.parse=r;var a=n(15),s=i(a),l=n(2),u=i(l),c=n(16),p=i(c),h=n(17),f=o(h),d=n(13);t.parser=s["default"];var g={};d.extend(g,f,u["default"])},function(e,t,n){"use strict";function r(){}function i(e,t,n){if(null==e||"string"!=typeof e&&"Program"!==e.type)throw new c["default"]("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+e);t=t||{},"data"in t||(t.data=!0),t.compat&&(t.useDepths=!0);var r=n.parse(e,t),i=(new n.Compiler).compile(r,t);return(new n.JavaScriptCompiler).compile(i,t)}function o(e,t,n){function r(){var t=n.parse(e,o),r=(new n.Compiler).compile(t,o),i=(new n.JavaScriptCompiler).compile(r,o,void 0,!0);return n.template(i)}function i(e,t){return a||(a=r()),a.call(this,e,t)}var o=void 0===arguments[1]?{}:arguments[1];if(null==e||"string"!=typeof e&&"Program"!==e.type)throw new c["default"]("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+e);"data"in o||(o.data=!0),o.compat&&(o.useDepths=!0);var a=void 0;return i._setup=function(e){return a||(a=r()),a._setup(e)},i._child=function(e,t,n,i){return a||(a=r()),a._child(e,t,n,i)},i}function a(e,t){if(e===t)return!0;if(p.isArray(e)&&p.isArray(t)&&e.length===t.length){for(var n=0;n<e.length;n++)if(!a(e[n],t[n]))return!1;return!0}}function s(e){if(!e.path.parts){var t=e.path;e.path=new f["default"].PathExpression(!1,0,[t.original+""],t.original+"",t.loc)}}var l=n(8)["default"];t.__esModule=!0,t.Compiler=r,t.precompile=i,t.compile=o;var u=n(12),c=l(u),p=n(13),h=n(2),f=l(h),d=[].slice;r.prototype={compiler:r,equals:function(e){var t=this.opcodes.length;if(e.opcodes.length!==t)return!1;for(var n=0;t>n;n++){var r=this.opcodes[n],i=e.opcodes[n];if(r.opcode!==i.opcode||!a(r.args,i.args))return!1}t=this.children.length;for(var n=0;t>n;n++)if(!this.children[n].equals(e.children[n]))return!1;return!0},guid:0,compile:function(e,t){this.sourceNode=[],this.opcodes=[],this.children=[],this.options=t,this.stringParams=t.stringParams,this.trackIds=t.trackIds,t.blockParams=t.blockParams||[];var n=t.knownHelpers;if(t.knownHelpers={helperMissing:!0,blockHelperMissing:!0,each:!0,"if":!0,unless:!0,"with":!0,log:!0,lookup:!0},n)for(var r in n)r in n&&(t.knownHelpers[r]=n[r]);return this.accept(e)},compileProgram:function(e){var t=new this.compiler,n=t.compile(e,this.options),r=this.guid++;return this.usePartial=this.usePartial||n.usePartial,this.children[r]=n,this.useDepths=this.useDepths||n.useDepths,r},accept:function(e){this.sourceNode.unshift(e);var t=this[e.type](e);return this.sourceNode.shift(),t},Program:function(e){this.options.blockParams.unshift(e.blockParams);for(var t=e.body,n=t.length,r=0;n>r;r++)this.accept(t[r]);return this.options.blockParams.shift(),this.isSimple=1===n,this.blockParams=e.blockParams?e.blockParams.length:0,this},BlockStatement:function(e){s(e);var t=e.program,n=e.inverse;t=t&&this.compileProgram(t),n=n&&this.compileProgram(n);var r=this.classifySexpr(e);"helper"===r?this.helperSexpr(e,t,n):"simple"===r?(this.simpleSexpr(e),this.opcode("pushProgram",t),this.opcode("pushProgram",n),this.opcode("emptyHash"),this.opcode("blockValue",e.path.original)):(this.ambiguousSexpr(e,t,n),this.opcode("pushProgram",t),this.opcode("pushProgram",n),this.opcode("emptyHash"),this.opcode("ambiguousBlockValue")),this.opcode("append")},PartialStatement:function(e){this.usePartial=!0;var t=e.params;if(t.length>1)throw new c["default"]("Unsupported number of partial arguments: "+t.length,e);t.length||t.push({type:"PathExpression",parts:[],depth:0});var n=e.name.original,r="SubExpression"===e.name.type;r&&this.accept(e.name),this.setupFullMustacheParams(e,void 0,void 0,!0);var i=e.indent||"";this.options.preventIndent&&i&&(this.opcode("appendContent",i),i=""),this.opcode("invokePartial",r,n,i),this.opcode("append")},MustacheStatement:function(e){this.SubExpression(e),e.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},ContentStatement:function(e){e.value&&this.opcode("appendContent",e.value)},CommentStatement:function(){},SubExpression:function(e){s(e);var t=this.classifySexpr(e);"simple"===t?this.simpleSexpr(e):"helper"===t?this.helperSexpr(e):this.ambiguousSexpr(e)},ambiguousSexpr:function(e,t,n){var r=e.path,i=r.parts[0],o=null!=t||null!=n;this.opcode("getContext",r.depth),this.opcode("pushProgram",t),this.opcode("pushProgram",n),this.accept(r),this.opcode("invokeAmbiguous",i,o)},simpleSexpr:function(e){this.accept(e.path),this.opcode("resolvePossibleLambda")},helperSexpr:function(e,t,n){var r=this.setupFullMustacheParams(e,t,n),i=e.path,o=i.parts[0];if(this.options.knownHelpers[o])this.opcode("invokeKnownHelper",r.length,o);else{if(this.options.knownHelpersOnly)throw new c["default"]("You specified knownHelpersOnly, but used the unknown helper "+o,e);i.falsy=!0,this.accept(i),this.opcode("invokeHelper",r.length,i.original,f["default"].helpers.simpleId(i))}},PathExpression:function(e){this.addDepth(e.depth),this.opcode("getContext",e.depth);var t=e.parts[0],n=f["default"].helpers.scopedId(e),r=!e.depth&&!n&&this.blockParamIndex(t);r?this.opcode("lookupBlockParam",r,e.parts):t?e.data?(this.options.data=!0,this.opcode("lookupData",e.depth,e.parts)):this.opcode("lookupOnContext",e.parts,e.falsy,n):this.opcode("pushContext")},StringLiteral:function(e){this.opcode("pushString",e.value)},NumberLiteral:function(e){this.opcode("pushLiteral",e.value)},BooleanLiteral:function(e){this.opcode("pushLiteral",e.value)},UndefinedLiteral:function(){this.opcode("pushLiteral","undefined")},NullLiteral:function(){this.opcode("pushLiteral","null")},Hash:function(e){var t=e.pairs,n=0,r=t.length;for(this.opcode("pushHash");r>n;n++)this.pushParam(t[n].value);for(;n--;)this.opcode("assignToHash",t[n].key);this.opcode("popHash")},opcode:function(e){this.opcodes.push({opcode:e,args:d.call(arguments,1),loc:this.sourceNode[0].loc})},addDepth:function(e){e&&(this.useDepths=!0)},classifySexpr:function(e){var t=f["default"].helpers.simpleId(e.path),n=t&&!!this.blockParamIndex(e.path.parts[0]),r=!n&&f["default"].helpers.helperExpression(e),i=!n&&(r||t);if(i&&!r){var o=e.path.parts[0],a=this.options;a.knownHelpers[o]?r=!0:a.knownHelpersOnly&&(i=!1)}return r?"helper":i?"ambiguous":"simple"},pushParams:function(e){for(var t=0,n=e.length;n>t;t++)this.pushParam(e[t])},pushParam:function(e){var t=null!=e.value?e.value:e.original||"";if(this.stringParams)t.replace&&(t=t.replace(/^(\.?\.\/)*/g,"").replace(/\//g,".")),e.depth&&this.addDepth(e.depth),this.opcode("getContext",e.depth||0),this.opcode("pushStringParam",t,e.type),"SubExpression"===e.type&&this.accept(e);else{if(this.trackIds){var n=void 0;if(!e.parts||f["default"].helpers.scopedId(e)||e.depth||(n=this.blockParamIndex(e.parts[0])),n){var r=e.parts.slice(1).join(".");this.opcode("pushId","BlockParam",n,r)}else t=e.original||t,t.replace&&(t=t.replace(/^\.\//g,"").replace(/^\.$/g,"")),this.opcode("pushId",e.type,t)}this.accept(e)}},setupFullMustacheParams:function(e,t,n,r){var i=e.params;return this.pushParams(i),this.opcode("pushProgram",t),this.opcode("pushProgram",n),e.hash?this.accept(e.hash):this.opcode("emptyHash",r),i},blockParamIndex:function(e){for(var t=0,n=this.options.blockParams.length;n>t;t++){var r=this.options.blockParams[t],i=r&&p.indexOf(r,e);if(r&&i>=0)return[t,i]}}}},function(e,t,n){"use strict";function r(e){this.value=e}function i(){}function o(e,t,n,r){var i=t.popStack(),o=0,a=n.length;for(e&&a--;a>o;o++)i=t.nameLookup(i,n[o],r);return e?[t.aliasable("this.strict"),"(",i,", ",t.quotedString(n[o]),")"]:i}var a=n(8)["default"];t.__esModule=!0;var s=n(10),l=n(12),u=a(l),c=n(13),p=n(18),h=a(p);i.prototype={nameLookup:function(e,t){return i.isValidJavaScriptVariableName(t)?[e,".",t]:[e,"['",t,"']"]},depthedLookup:function(e){return[this.aliasable("this.lookup"),'(depths, "',e,'")']},compilerInfo:function(){var e=s.COMPILER_REVISION,t=s.REVISION_CHANGES[e];return[e,t]},appendToBuffer:function(e,t,n){return c.isArray(e)||(e=[e]),e=this.source.wrap(e,t),this.environment.isSimple?["return ",e,";"]:n?["buffer += ",e,";"]:(e.appendToBuffer=!0,e)},initializeBuffer:function(){return this.quotedString("")},compile:function(e,t,n,r){this.environment=e,this.options=t,this.stringParams=this.options.stringParams,this.trackIds=this.options.trackIds,this.precompile=!r,this.name=this.environment.name,this.isChild=!!n,this.context=n||{programs:[],environments:[]},this.preamble(),this.stackSlot=0,this.stackVars=[],this.aliases={},this.registers={list:[]},this.hashes=[],this.compileStack=[],this.inlineStack=[],this.blockParams=[],this.compileChildren(e,t),this.useDepths=this.useDepths||e.useDepths||this.options.compat,this.useBlockParams=this.useBlockParams||e.useBlockParams;var i=e.opcodes,o=void 0,a=void 0,s=void 0,l=void 0;for(s=0,l=i.length;l>s;s++)o=i[s],this.source.currentLocation=o.loc,a=a||o.loc,this[o.opcode].apply(this,o.args);if(this.source.currentLocation=a,this.pushSource(""),this.stackSlot||this.inlineStack.length||this.compileStack.length)throw new u["default"]("Compile completed with content left on stack");var c=this.createFunctionContext(r);if(this.isChild)return c;var p={compiler:this.compilerInfo(),main:c},h=this.context.programs;for(s=0,l=h.length;l>s;s++)h[s]&&(p[s]=h[s]);return this.environment.usePartial&&(p.usePartial=!0),this.options.data&&(p.useData=!0),this.useDepths&&(p.useDepths=!0),this.useBlockParams&&(p.useBlockParams=!0),this.options.compat&&(p.compat=!0),r?p.compilerOptions=this.options:(p.compiler=JSON.stringify(p.compiler),this.source.currentLocation={start:{line:1,column:0}},p=this.objectLiteral(p),t.srcName?(p=p.toStringWithSourceMap({file:t.destName}),p.map=p.map&&p.map.toString()):p=p.toString()),p},preamble:function(){this.lastContext=0,this.source=new h["default"](this.options.srcName)},createFunctionContext:function(e){var t="",n=this.stackVars.concat(this.registers.list);n.length>0&&(t+=", "+n.join(", "));var r=0;for(var i in this.aliases){var o=this.aliases[i];this.aliases.hasOwnProperty(i)&&o.children&&o.referenceCount>1&&(t+=", alias"+ ++r+"="+i,o.children[0]="alias"+r)}var a=["depth0","helpers","partials","data"];(this.useBlockParams||this.useDepths)&&a.push("blockParams"),this.useDepths&&a.push("depths");var s=this.mergeSource(t);return e?(a.push(s),Function.apply(this,a)):this.source.wrap(["function(",a.join(","),") {\n ",s,"}"])},mergeSource:function(e){var t=this.environment.isSimple,n=!this.forceBuffer,r=void 0,i=void 0,o=void 0,a=void 0;return this.source.each(function(e){e.appendToBuffer?(o?e.prepend(" + "):o=e,a=e):(o&&(i?o.prepend("buffer += "):r=!0,a.add(";"),o=a=void 0),i=!0,t||(n=!1))}),n?o?(o.prepend("return "),a.add(";")):i||this.source.push('return "";'):(e+=", buffer = "+(r?"":this.initializeBuffer()),o?(o.prepend("return buffer + "),a.add(";")):this.source.push("return buffer;")),e&&this.source.prepend("var "+e.substring(2)+(r?"":";\n")),this.source.merge()},blockValue:function(e){var t=this.aliasable("helpers.blockHelperMissing"),n=[this.contextName(0)];this.setupHelperArgs(e,0,n);var r=this.popStack();n.splice(1,0,r),this.push(this.source.functionCall(t,"call",n))},ambiguousBlockValue:function(){var e=this.aliasable("helpers.blockHelperMissing"),t=[this.contextName(0)];this.setupHelperArgs("",0,t,!0),this.flushInline();var n=this.topStack();t.splice(1,0,n),this.pushSource(["if (!",this.lastHelper,") { ",n," = ",this.source.functionCall(e,"call",t),"}"])},appendContent:function(e){this.pendingContent?e=this.pendingContent+e:this.pendingLocation=this.source.currentLocation,this.pendingContent=e},append:function(){if(this.isInline())this.replaceStack(function(e){return[" != null ? ",e,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var e=this.popStack();this.pushSource(["if (",e," != null) { ",this.appendToBuffer(e,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("this.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(e){this.lastContext=e},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(e,t,n){var r=0;n||!this.options.compat||this.lastContext?this.pushContext():this.push(this.depthedLookup(e[r++])),this.resolvePath("context",e,r,t)},lookupBlockParam:function(e,t){this.useBlockParams=!0,this.push(["blockParams[",e[0],"][",e[1],"]"]),this.resolvePath("context",t,1)},lookupData:function(e,t){e?this.pushStackLiteral("this.data(data, "+e+")"):this.pushStackLiteral("data"),this.resolvePath("data",t,0,!0)},resolvePath:function(e,t,n,r){var i=this;if(this.options.strict||this.options.assumeObjects)return void this.push(o(this.options.strict,this,t,e));for(var a=t.length;a>n;n++)this.replaceStack(function(o){var a=i.nameLookup(o,t[n],e);return r?[" && ",a]:[" != null ? ",a," : ",o]})},resolvePossibleLambda:function(){this.push([this.aliasable("this.lambda"),"(",this.popStack(),", ",this.contextName(0),")"])},pushStringParam:function(e,t){this.pushContext(),this.pushString(t),"SubExpression"!==t&&("string"==typeof e?this.pushString(e):this.pushStackLiteral(e))},emptyHash:function(e){this.trackIds&&this.push("{}"),this.stringParams&&(this.push("{}"),this.push("{}")),this.pushStackLiteral(e?"undefined":"{}")},pushHash:function(){this.hash&&this.hashes.push(this.hash),this.hash={values:[],types:[],contexts:[],ids:[]}},popHash:function(){var e=this.hash;this.hash=this.hashes.pop(),this.trackIds&&this.push(this.objectLiteral(e.ids)),this.stringParams&&(this.push(this.objectLiteral(e.contexts)),this.push(this.objectLiteral(e.types))),this.push(this.objectLiteral(e.values))},pushString:function(e){this.pushStackLiteral(this.quotedString(e))},pushLiteral:function(e){this.pushStackLiteral(e)},pushProgram:function(e){null!=e?this.pushStackLiteral(this.programExpression(e)):this.pushStackLiteral(null)},invokeHelper:function(e,t,n){var r=this.popStack(),i=this.setupHelper(e,t),o=n?[i.name," || "]:"",a=["("].concat(o,r);this.options.strict||a.push(" || ",this.aliasable("helpers.helperMissing")),a.push(")"),this.push(this.source.functionCall(a,"call",i.callParams))},invokeKnownHelper:function(e,t){var n=this.setupHelper(e,t);this.push(this.source.functionCall(n.name,"call",n.callParams))},invokeAmbiguous:function(e,t){this.useRegister("helper");var n=this.popStack();this.emptyHash();var r=this.setupHelper(0,e,t),i=this.lastHelper=this.nameLookup("helpers",e,"helper"),o=["(","(helper = ",i," || ",n,")"];this.options.strict||(o[0]="(helper = ",o.push(" != null ? helper : ",this.aliasable("helpers.helperMissing"))),this.push(["(",o,r.paramsInit?["),(",r.paramsInit]:[],"),","(typeof helper === ",this.aliasable('"function"')," ? ",this.source.functionCall("helper","call",r.callParams)," : helper))"])},invokePartial:function(e,t,n){var r=[],i=this.setupParams(t,1,r,!1);e&&(t=this.popStack(),delete i.name),n&&(i.indent=JSON.stringify(n)),i.helpers="helpers",i.partials="partials",e?r.unshift(t):r.unshift(this.nameLookup("partials",t,"partial")),this.options.compat&&(i.depths="depths"),i=this.objectLiteral(i),r.push(i),this.push(this.source.functionCall("this.invokePartial","",r))},assignToHash:function(e){var t=this.popStack(),n=void 0,r=void 0,i=void 0;this.trackIds&&(i=this.popStack()),this.stringParams&&(r=this.popStack(),n=this.popStack());var o=this.hash;n&&(o.contexts[e]=n),r&&(o.types[e]=r),i&&(o.ids[e]=i),o.values[e]=t},pushId:function(e,t,n){"BlockParam"===e?this.pushStackLiteral("blockParams["+t[0]+"].path["+t[1]+"]"+(n?" + "+JSON.stringify("."+n):"")):"PathExpression"===e?this.pushString(t):"SubExpression"===e?this.pushStackLiteral("true"):this.pushStackLiteral("null")},compiler:i,compileChildren:function(e,t){for(var n=e.children,r=void 0,i=void 0,o=0,a=n.length;a>o;o++){r=n[o],i=new this.compiler;var s=this.matchExistingProgram(r);null==s?(this.context.programs.push(""),s=this.context.programs.length,r.index=s,r.name="program"+s,this.context.programs[s]=i.compile(r,t,this.context,!this.precompile),this.context.environments[s]=r,this.useDepths=this.useDepths||i.useDepths,this.useBlockParams=this.useBlockParams||i.useBlockParams):(r.index=s,r.name="program"+s,this.useDepths=this.useDepths||r.useDepths,this.useBlockParams=this.useBlockParams||r.useBlockParams)}},matchExistingProgram:function(e){for(var t=0,n=this.context.environments.length;n>t;t++){var r=this.context.environments[t];if(r&&r.equals(e))return t}},programExpression:function(e){var t=this.environment.children[e],n=[t.index,"data",t.blockParams];return(this.useBlockParams||this.useDepths)&&n.push("blockParams"),this.useDepths&&n.push("depths"),"this.program("+n.join(", ")+")"},useRegister:function(e){this.registers[e]||(this.registers[e]=!0,this.registers.list.push(e))},push:function(e){return e instanceof r||(e=this.source.wrap(e)),this.inlineStack.push(e),e},pushStackLiteral:function(e){this.push(new r(e))},pushSource:function(e){this.pendingContent&&(this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent),this.pendingLocation)),this.pendingContent=void 0),e&&this.source.push(e)},replaceStack:function(e){var t=["("],n=void 0,i=void 0,o=void 0;if(!this.isInline())throw new u["default"]("replaceStack on non-inline");var a=this.popStack(!0);if(a instanceof r)n=[a.value],t=["(",n],o=!0;else{i=!0;var s=this.incrStack();t=["((",this.push(s)," = ",a,")"],n=this.topStack()}var l=e.call(this,n);o||this.popStack(),i&&this.stackSlot--,this.push(t.concat(l,")"))},incrStack:function(){return this.stackSlot++,this.stackSlot>this.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var e=this.inlineStack;this.inlineStack=[];for(var t=0,n=e.length;n>t;t++){var i=e[t];if(i instanceof r)this.compileStack.push(i);else{var o=this.incrStack();this.pushSource([o," = ",i,";"]),this.compileStack.push(o)}}},isInline:function(){return this.inlineStack.length},popStack:function(e){var t=this.isInline(),n=(t?this.inlineStack:this.compileStack).pop();if(!e&&n instanceof r)return n.value;if(!t){if(!this.stackSlot)throw new u["default"]("Invalid stack pop");this.stackSlot--}return n},topStack:function(){var e=this.isInline()?this.inlineStack:this.compileStack,t=e[e.length-1];return t instanceof r?t.value:t},contextName:function(e){return this.useDepths&&e?"depths["+e+"]":"depth"+e},quotedString:function(e){return this.source.quotedString(e)},objectLiteral:function(e){return this.source.objectLiteral(e)},aliasable:function(e){var t=this.aliases[e];return t?(t.referenceCount++,t):(t=this.aliases[e]=this.source.wrap(e),t.aliasable=!0,t.referenceCount=1,t)},setupHelper:function(e,t,n){var r=[],i=this.setupHelperArgs(t,e,r,n),o=this.nameLookup("helpers",t,"helper");return{params:r,paramsInit:i,name:o,callParams:[this.contextName(0)].concat(r)}},setupParams:function(e,t,n){var r={},i=[],o=[],a=[],s=void 0;r.name=this.quotedString(e),r.hash=this.popStack(),this.trackIds&&(r.hashIds=this.popStack()),this.stringParams&&(r.hashTypes=this.popStack(),r.hashContexts=this.popStack());var l=this.popStack(),u=this.popStack();(u||l)&&(r.fn=u||"this.noop",r.inverse=l||"this.noop");for(var c=t;c--;)s=this.popStack(),n[c]=s,this.trackIds&&(a[c]=this.popStack()),this.stringParams&&(o[c]=this.popStack(),i[c]=this.popStack());return this.trackIds&&(r.ids=this.source.generateArray(a)),this.stringParams&&(r.types=this.source.generateArray(o),r.contexts=this.source.generateArray(i)),this.options.data&&(r.data="data"),this.useBlockParams&&(r.blockParams="blockParams"),r},setupHelperArgs:function(e,t,n,r){var i=this.setupParams(e,t,n,!0);return i=this.objectLiteral(i),r?(this.useRegister("options"),n.push("options"),["options=",i]):(n.push(i),"")}},function(){for(var e="break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield await null true false".split(" "),t=i.RESERVED_WORDS={},n=0,r=e.length;r>n;n++)t[e[n]]=!0}(),i.isValidJavaScriptVariableName=function(e){return!i.RESERVED_WORDS[e]&&/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(e)},t["default"]=i,e.exports=t["default"]},function(e,t,n){"use strict";function r(){this.parents=[]}var i=n(8)["default"];t.__esModule=!0;var o=n(12),a=i(o),s=n(2),l=i(s);r.prototype={constructor:r,mutating:!1,acceptKey:function(e,t){var n=this.accept(e[t]);if(this.mutating){if(n&&(!n.type||!l["default"][n.type]))throw new a["default"]('Unexpected node type "'+n.type+'" found when accepting '+t+" on "+e.type); +e[t]=n}},acceptRequired:function(e,t){if(this.acceptKey(e,t),!e[t])throw new a["default"](e.type+" requires "+t)},acceptArray:function(e){for(var t=0,n=e.length;n>t;t++)this.acceptKey(e,t),e[t]||(e.splice(t,1),t--,n--)},accept:function(e){if(e){this.current&&this.parents.unshift(this.current),this.current=e;var t=this[e.type](e);return this.current=this.parents.shift(),!this.mutating||t?t:t!==!1?e:void 0}},Program:function(e){this.acceptArray(e.body)},MustacheStatement:function(e){this.acceptRequired(e,"path"),this.acceptArray(e.params),this.acceptKey(e,"hash")},BlockStatement:function(e){this.acceptRequired(e,"path"),this.acceptArray(e.params),this.acceptKey(e,"hash"),this.acceptKey(e,"program"),this.acceptKey(e,"inverse")},PartialStatement:function(e){this.acceptRequired(e,"name"),this.acceptArray(e.params),this.acceptKey(e,"hash")},ContentStatement:function(){},CommentStatement:function(){},SubExpression:function(e){this.acceptRequired(e,"path"),this.acceptArray(e.params),this.acceptKey(e,"hash")},PathExpression:function(){},StringLiteral:function(){},NumberLiteral:function(){},BooleanLiteral:function(){},UndefinedLiteral:function(){},NullLiteral:function(){},Hash:function(e){this.acceptArray(e.pairs)},HashPair:function(e){this.acceptRequired(e,"value")}},t["default"]=r,e.exports=t["default"]},function(e,t,n){(function(n){"use strict";t.__esModule=!0,t["default"]=function(e){var t="undefined"!=typeof n?n:window,r=t.Handlebars;e.noConflict=function(){t.Handlebars===e&&(t.Handlebars=r)}},e.exports=t["default"]}).call(t,function(){return this}())},function(e,t,n){"use strict";t["default"]=function(e){return e&&e.__esModule?e:{"default":e}},t.__esModule=!0},function(e,t,n){"use strict";t["default"]=function(e){if(e&&e.__esModule)return e;var t={};if("object"==typeof e&&null!==e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t},t.__esModule=!0},function(e,t,n){"use strict";function r(e,t){this.helpers=e||{},this.partials=t||{},i(this)}function i(e){e.registerHelper("helperMissing",function(){if(1!==arguments.length)throw new p["default"]('Missing helper: "'+arguments[arguments.length-1].name+'"')}),e.registerHelper("blockHelperMissing",function(t,n){var r=n.inverse,i=n.fn;if(t===!0)return i(this);if(t===!1||null==t)return r(this);if(g(t))return t.length>0?(n.ids&&(n.ids=[n.name]),e.helpers.each(t,n)):r(this);if(n.data&&n.ids){var a=o(n.data);a.contextPath=u.appendContextPath(n.data.contextPath,n.name),n={data:a}}return i(t,n)}),e.registerHelper("each",function(e,t){function n(t,n,i){l&&(l.key=t,l.index=n,l.first=0===n,l.last=!!i,c&&(l.contextPath=c+t)),s+=r(e[t],{data:l,blockParams:u.blockParams([e[t],t],[c+t,null])})}if(!t)throw new p["default"]("Must pass iterator to #each");var r=t.fn,i=t.inverse,a=0,s="",l=void 0,c=void 0;if(t.data&&t.ids&&(c=u.appendContextPath(t.data.contextPath,t.ids[0])+"."),m(e)&&(e=e.call(this)),t.data&&(l=o(t.data)),e&&"object"==typeof e)if(g(e))for(var h=e.length;h>a;a++)n(a,a,a===e.length-1);else{var f=void 0;for(var d in e)e.hasOwnProperty(d)&&(f&&n(f,a-1),f=d,a++);f&&n(f,a-1,!0)}return 0===a&&(s=i(this)),s}),e.registerHelper("if",function(e,t){return m(e)&&(e=e.call(this)),!t.hash.includeZero&&!e||u.isEmpty(e)?t.inverse(this):t.fn(this)}),e.registerHelper("unless",function(t,n){return e.helpers["if"].call(this,t,{fn:n.inverse,inverse:n.fn,hash:n.hash})}),e.registerHelper("with",function(e,t){m(e)&&(e=e.call(this));var n=t.fn;if(u.isEmpty(e))return t.inverse(this);if(t.data&&t.ids){var r=o(t.data);r.contextPath=u.appendContextPath(t.data.contextPath,t.ids[0]),t={data:r}}return n(e,t)}),e.registerHelper("log",function(t,n){var r=n.data&&null!=n.data.level?parseInt(n.data.level,10):1;e.log(r,t)}),e.registerHelper("lookup",function(e,t){return e&&e[t]})}function o(e){var t=u.extend({},e);return t._parent=e,t}var a=n(9)["default"],s=n(8)["default"];t.__esModule=!0,t.HandlebarsEnvironment=r,t.createFrame=o;var l=n(13),u=a(l),c=n(12),p=s(c),h="3.0.1";t.VERSION=h;var f=6;t.COMPILER_REVISION=f;var d={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1"};t.REVISION_CHANGES=d;var g=u.isArray,m=u.isFunction,v=u.toString,y="[object Object]";r.prototype={constructor:r,logger:b,log:x,registerHelper:function(e,t){if(v.call(e)===y){if(t)throw new p["default"]("Arg not supported with multiple helpers");u.extend(this.helpers,e)}else this.helpers[e]=t},unregisterHelper:function(e){delete this.helpers[e]},registerPartial:function(e,t){if(v.call(e)===y)u.extend(this.partials,e);else{if("undefined"==typeof t)throw new p["default"]("Attempting to register a partial as undefined");this.partials[e]=t}},unregisterPartial:function(e){delete this.partials[e]}};var b={methodMap:{0:"debug",1:"info",2:"warn",3:"error"},DEBUG:0,INFO:1,WARN:2,ERROR:3,level:1,log:function(e,t){if("undefined"!=typeof console&&b.level<=e){var n=b.methodMap[e];(console[n]||console.log).call(console,t)}}};t.logger=b;var x=b.log;t.log=x},function(e,t,n){"use strict";function r(e){this.string=e}t.__esModule=!0,r.prototype.toString=r.prototype.toHTML=function(){return""+this.string},t["default"]=r,e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t){var n=t&&t.loc,o=void 0,a=void 0;n&&(o=n.start.line,a=n.start.column,e+=" - "+o+":"+a);for(var s=Error.prototype.constructor.call(this,e),l=0;l<i.length;l++)this[i[l]]=s[i[l]];Error.captureStackTrace&&Error.captureStackTrace(this,r),n&&(this.lineNumber=o,this.column=a)}t.__esModule=!0;var i=["description","fileName","lineNumber","message","name","number","stack"];r.prototype=new Error,t["default"]=r,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return c[e]}function i(e){for(var t=1;t<arguments.length;t++)for(var n in arguments[t])Object.prototype.hasOwnProperty.call(arguments[t],n)&&(e[n]=arguments[t][n]);return e}function o(e,t){for(var n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1}function a(e){if("string"!=typeof e){if(e&&e.toHTML)return e.toHTML();if(null==e)return"";if(!e)return e+"";e=""+e}return h.test(e)?e.replace(p,r):e}function s(e){return e||0===e?!(!g(e)||0!==e.length):!0}function l(e,t){return e.path=t,e}function u(e,t){return(e?e+".":"")+t}t.__esModule=!0,t.extend=i,t.indexOf=o,t.escapeExpression=a,t.isEmpty=s,t.blockParams=l,t.appendContextPath=u;var c={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},p=/[&<>"'`]/g,h=/[&<>"'`]/,f=Object.prototype.toString;t.toString=f;var d=function(e){return"function"==typeof e};d(/x/)&&(t.isFunction=d=function(e){return"function"==typeof e&&"[object Function]"===f.call(e)});var d;t.isFunction=d;var g=Array.isArray||function(e){return e&&"object"==typeof e?"[object Array]"===f.call(e):!1};t.isArray=g},function(e,t,n){"use strict";function r(e){var t=e&&e[0]||1,n=m.COMPILER_REVISION;if(t!==n){if(n>t){var r=m.REVISION_CHANGES[n],i=m.REVISION_CHANGES[t];throw new g["default"]("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+r+") or downgrade your runtime to an older version ("+i+").")}throw new g["default"]("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+e[1]+").")}}function i(e,t){function n(n,r,i){i.hash&&(r=f.extend({},r,i.hash)),n=t.VM.resolvePartial.call(this,n,r,i);var o=t.VM.invokePartial.call(this,n,r,i);if(null==o&&t.compile&&(i.partials[i.name]=t.compile(n,e.compilerOptions,t),o=i.partials[i.name](r,i)),null!=o){if(i.indent){for(var a=o.split("\n"),s=0,l=a.length;l>s&&(a[s]||s+1!==l);s++)a[s]=i.indent+a[s];o=a.join("\n")}return o}throw new g["default"]("The partial "+i.name+" could not be compiled when running in runtime-only mode")}function r(t){var n=void 0===arguments[1]?{}:arguments[1],o=n.data;r._setup(n),!n.partial&&e.useData&&(o=u(t,o));var a=void 0,s=e.useBlockParams?[]:void 0;return e.useDepths&&(a=n.depths?[t].concat(n.depths):[t]),e.main.call(i,t,i.helpers,i.partials,o,s,a)}if(!t)throw new g["default"]("No environment passed to template");if(!e||!e.main)throw new g["default"]("Unknown template object: "+typeof e);t.VM.checkRevision(e.compiler);var i={strict:function(e,t){if(!(t in e))throw new g["default"]('"'+t+'" not defined in '+e);return e[t]},lookup:function(e,t){for(var n=e.length,r=0;n>r;r++)if(e[r]&&null!=e[r][t])return e[r][t]},lambda:function(e,t){return"function"==typeof e?e.call(t):e},escapeExpression:f.escapeExpression,invokePartial:n,fn:function(t){return e[t]},programs:[],program:function(e,t,n,r,i){var a=this.programs[e],s=this.fn(e);return t||i||r||n?a=o(this,e,s,t,n,r,i):a||(a=this.programs[e]=o(this,e,s)),a},data:function(e,t){for(;e&&t--;)e=e._parent;return e},merge:function(e,t){var n=e||t;return e&&t&&e!==t&&(n=f.extend({},t,e)),n},noop:t.VM.noop,compilerInfo:e.compiler};return r.isTop=!0,r._setup=function(n){n.partial?(i.helpers=n.helpers,i.partials=n.partials):(i.helpers=i.merge(n.helpers,t.helpers),e.usePartial&&(i.partials=i.merge(n.partials,t.partials)))},r._child=function(t,n,r,a){if(e.useBlockParams&&!r)throw new g["default"]("must pass block params");if(e.useDepths&&!a)throw new g["default"]("must pass parent depths");return o(i,t,e[t],n,0,r,a)},r}function o(e,t,n,r,i,o,a){function s(t){var i=void 0===arguments[1]?{}:arguments[1];return n.call(e,t,e.helpers,e.partials,i.data||r,o&&[i.blockParams].concat(o),a&&[t].concat(a))}return s.program=t,s.depth=a?a.length:0,s.blockParams=i||0,s}function a(e,t,n){return e?e.call||n.name||(n.name=e,e=n.partials[e]):e=n.partials[n.name],e}function s(e,t,n){if(n.partial=!0,void 0===e)throw new g["default"]("The partial "+n.name+" could not be found");return e instanceof Function?e(t,n):void 0}function l(){return""}function u(e,t){return t&&"root"in t||(t=t?m.createFrame(t):{},t.root=e),t}var c=n(9)["default"],p=n(8)["default"];t.__esModule=!0,t.checkRevision=r,t.template=i,t.wrapProgram=o,t.resolvePartial=a,t.invokePartial=s,t.noop=l;var h=n(13),f=c(h),d=n(12),g=p(d),m=n(10)},function(e,t,n){"use strict";t.__esModule=!0;var r=function(){function e(){this.yy={}}var t={trace:function(){},yy:{},symbols_:{error:2,root:3,program:4,EOF:5,program_repetition0:6,statement:7,mustache:8,block:9,rawBlock:10,partial:11,content:12,COMMENT:13,CONTENT:14,openRawBlock:15,END_RAW_BLOCK:16,OPEN_RAW_BLOCK:17,helperName:18,openRawBlock_repetition0:19,openRawBlock_option0:20,CLOSE_RAW_BLOCK:21,openBlock:22,block_option0:23,closeBlock:24,openInverse:25,block_option1:26,OPEN_BLOCK:27,openBlock_repetition0:28,openBlock_option0:29,openBlock_option1:30,CLOSE:31,OPEN_INVERSE:32,openInverse_repetition0:33,openInverse_option0:34,openInverse_option1:35,openInverseChain:36,OPEN_INVERSE_CHAIN:37,openInverseChain_repetition0:38,openInverseChain_option0:39,openInverseChain_option1:40,inverseAndProgram:41,INVERSE:42,inverseChain:43,inverseChain_option0:44,OPEN_ENDBLOCK:45,OPEN:46,mustache_repetition0:47,mustache_option0:48,OPEN_UNESCAPED:49,mustache_repetition1:50,mustache_option1:51,CLOSE_UNESCAPED:52,OPEN_PARTIAL:53,partialName:54,partial_repetition0:55,partial_option0:56,param:57,sexpr:58,OPEN_SEXPR:59,sexpr_repetition0:60,sexpr_option0:61,CLOSE_SEXPR:62,hash:63,hash_repetition_plus0:64,hashSegment:65,ID:66,EQUALS:67,blockParams:68,OPEN_BLOCK_PARAMS:69,blockParams_repetition_plus0:70,CLOSE_BLOCK_PARAMS:71,path:72,dataName:73,STRING:74,NUMBER:75,BOOLEAN:76,UNDEFINED:77,NULL:78,DATA:79,pathSegments:80,SEP:81,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",13:"COMMENT",14:"CONTENT",16:"END_RAW_BLOCK",17:"OPEN_RAW_BLOCK",21:"CLOSE_RAW_BLOCK",27:"OPEN_BLOCK",31:"CLOSE",32:"OPEN_INVERSE",37:"OPEN_INVERSE_CHAIN",42:"INVERSE",45:"OPEN_ENDBLOCK",46:"OPEN",49:"OPEN_UNESCAPED",52:"CLOSE_UNESCAPED",53:"OPEN_PARTIAL",59:"OPEN_SEXPR",62:"CLOSE_SEXPR",66:"ID",67:"EQUALS",69:"OPEN_BLOCK_PARAMS",71:"CLOSE_BLOCK_PARAMS",74:"STRING",75:"NUMBER",76:"BOOLEAN",77:"UNDEFINED",78:"NULL",79:"DATA",81:"SEP"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[12,1],[10,3],[15,5],[9,4],[9,4],[22,6],[25,6],[36,6],[41,2],[43,3],[43,1],[24,3],[8,5],[8,5],[11,5],[57,1],[57,1],[58,5],[63,1],[65,3],[68,3],[18,1],[18,1],[18,1],[18,1],[18,1],[18,1],[18,1],[54,1],[54,1],[73,2],[72,1],[80,3],[80,1],[6,0],[6,2],[19,0],[19,2],[20,0],[20,1],[23,0],[23,1],[26,0],[26,1],[28,0],[28,2],[29,0],[29,1],[30,0],[30,1],[33,0],[33,2],[34,0],[34,1],[35,0],[35,1],[38,0],[38,2],[39,0],[39,1],[40,0],[40,1],[44,0],[44,1],[47,0],[47,2],[48,0],[48,1],[50,0],[50,2],[51,0],[51,1],[55,0],[55,2],[56,0],[56,1],[60,0],[60,2],[61,0],[61,1],[64,1],[64,2],[70,1],[70,2]],performAction:function(e,t,n,r,i,o,a){var s=o.length-1;switch(i){case 1:return o[s-1];case 2:this.$=new r.Program(o[s],null,{},r.locInfo(this._$));break;case 3:this.$=o[s];break;case 4:this.$=o[s];break;case 5:this.$=o[s];break;case 6:this.$=o[s];break;case 7:this.$=o[s];break;case 8:this.$=new r.CommentStatement(r.stripComment(o[s]),r.stripFlags(o[s],o[s]),r.locInfo(this._$));break;case 9:this.$=new r.ContentStatement(o[s],r.locInfo(this._$));break;case 10:this.$=r.prepareRawBlock(o[s-2],o[s-1],o[s],this._$);break;case 11:this.$={path:o[s-3],params:o[s-2],hash:o[s-1]};break;case 12:this.$=r.prepareBlock(o[s-3],o[s-2],o[s-1],o[s],!1,this._$);break;case 13:this.$=r.prepareBlock(o[s-3],o[s-2],o[s-1],o[s],!0,this._$);break;case 14:this.$={path:o[s-4],params:o[s-3],hash:o[s-2],blockParams:o[s-1],strip:r.stripFlags(o[s-5],o[s])};break;case 15:this.$={path:o[s-4],params:o[s-3],hash:o[s-2],blockParams:o[s-1],strip:r.stripFlags(o[s-5],o[s])};break;case 16:this.$={path:o[s-4],params:o[s-3],hash:o[s-2],blockParams:o[s-1],strip:r.stripFlags(o[s-5],o[s])};break;case 17:this.$={strip:r.stripFlags(o[s-1],o[s-1]),program:o[s]};break;case 18:var l=r.prepareBlock(o[s-2],o[s-1],o[s],o[s],!1,this._$),u=new r.Program([l],null,{},r.locInfo(this._$));u.chained=!0,this.$={strip:o[s-2].strip,program:u,chain:!0};break;case 19:this.$=o[s];break;case 20:this.$={path:o[s-1],strip:r.stripFlags(o[s-2],o[s])};break;case 21:this.$=r.prepareMustache(o[s-3],o[s-2],o[s-1],o[s-4],r.stripFlags(o[s-4],o[s]),this._$);break;case 22:this.$=r.prepareMustache(o[s-3],o[s-2],o[s-1],o[s-4],r.stripFlags(o[s-4],o[s]),this._$);break;case 23:this.$=new r.PartialStatement(o[s-3],o[s-2],o[s-1],r.stripFlags(o[s-4],o[s]),r.locInfo(this._$));break;case 24:this.$=o[s];break;case 25:this.$=o[s];break;case 26:this.$=new r.SubExpression(o[s-3],o[s-2],o[s-1],r.locInfo(this._$));break;case 27:this.$=new r.Hash(o[s],r.locInfo(this._$));break;case 28:this.$=new r.HashPair(r.id(o[s-2]),o[s],r.locInfo(this._$));break;case 29:this.$=r.id(o[s-1]);break;case 30:this.$=o[s];break;case 31:this.$=o[s];break;case 32:this.$=new r.StringLiteral(o[s],r.locInfo(this._$));break;case 33:this.$=new r.NumberLiteral(o[s],r.locInfo(this._$));break;case 34:this.$=new r.BooleanLiteral(o[s],r.locInfo(this._$));break;case 35:this.$=new r.UndefinedLiteral(r.locInfo(this._$));break;case 36:this.$=new r.NullLiteral(r.locInfo(this._$));break;case 37:this.$=o[s];break;case 38:this.$=o[s];break;case 39:this.$=r.preparePath(!0,o[s],this._$);break;case 40:this.$=r.preparePath(!1,o[s],this._$);break;case 41:o[s-2].push({part:r.id(o[s]),original:o[s],separator:o[s-1]}),this.$=o[s-2];break;case 42:this.$=[{part:r.id(o[s]),original:o[s]}];break;case 43:this.$=[];break;case 44:o[s-1].push(o[s]);break;case 45:this.$=[];break;case 46:o[s-1].push(o[s]);break;case 53:this.$=[];break;case 54:o[s-1].push(o[s]);break;case 59:this.$=[];break;case 60:o[s-1].push(o[s]);break;case 65:this.$=[];break;case 66:o[s-1].push(o[s]);break;case 73:this.$=[];break;case 74:o[s-1].push(o[s]);break;case 77:this.$=[];break;case 78:o[s-1].push(o[s]);break;case 81:this.$=[];break;case 82:o[s-1].push(o[s]);break;case 85:this.$=[];break;case 86:o[s-1].push(o[s]);break;case 89:this.$=[o[s]];break;case 90:o[s-1].push(o[s]);break;case 91:this.$=[o[s]];break;case 92:o[s-1].push(o[s])}},table:[{3:1,4:2,5:[2,43],6:3,13:[2,43],14:[2,43],17:[2,43],27:[2,43],32:[2,43],46:[2,43],49:[2,43],53:[2,43]},{1:[3]},{5:[1,4]},{5:[2,2],7:5,8:6,9:7,10:8,11:9,12:10,13:[1,11],14:[1,18],15:16,17:[1,21],22:14,25:15,27:[1,19],32:[1,20],37:[2,2],42:[2,2],45:[2,2],46:[1,12],49:[1,13],53:[1,17]},{1:[2,1]},{5:[2,44],13:[2,44],14:[2,44],17:[2,44],27:[2,44],32:[2,44],37:[2,44],42:[2,44],45:[2,44],46:[2,44],49:[2,44],53:[2,44]},{5:[2,3],13:[2,3],14:[2,3],17:[2,3],27:[2,3],32:[2,3],37:[2,3],42:[2,3],45:[2,3],46:[2,3],49:[2,3],53:[2,3]},{5:[2,4],13:[2,4],14:[2,4],17:[2,4],27:[2,4],32:[2,4],37:[2,4],42:[2,4],45:[2,4],46:[2,4],49:[2,4],53:[2,4]},{5:[2,5],13:[2,5],14:[2,5],17:[2,5],27:[2,5],32:[2,5],37:[2,5],42:[2,5],45:[2,5],46:[2,5],49:[2,5],53:[2,5]},{5:[2,6],13:[2,6],14:[2,6],17:[2,6],27:[2,6],32:[2,6],37:[2,6],42:[2,6],45:[2,6],46:[2,6],49:[2,6],53:[2,6]},{5:[2,7],13:[2,7],14:[2,7],17:[2,7],27:[2,7],32:[2,7],37:[2,7],42:[2,7],45:[2,7],46:[2,7],49:[2,7],53:[2,7]},{5:[2,8],13:[2,8],14:[2,8],17:[2,8],27:[2,8],32:[2,8],37:[2,8],42:[2,8],45:[2,8],46:[2,8],49:[2,8],53:[2,8]},{18:22,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{18:33,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{4:34,6:3,13:[2,43],14:[2,43],17:[2,43],27:[2,43],32:[2,43],37:[2,43],42:[2,43],45:[2,43],46:[2,43],49:[2,43],53:[2,43]},{4:35,6:3,13:[2,43],14:[2,43],17:[2,43],27:[2,43],32:[2,43],42:[2,43],45:[2,43],46:[2,43],49:[2,43],53:[2,43]},{12:36,14:[1,18]},{18:38,54:37,58:39,59:[1,40],66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{5:[2,9],13:[2,9],14:[2,9],16:[2,9],17:[2,9],27:[2,9],32:[2,9],37:[2,9],42:[2,9],45:[2,9],46:[2,9],49:[2,9],53:[2,9]},{18:41,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{18:42,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{18:43,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{31:[2,73],47:44,59:[2,73],66:[2,73],74:[2,73],75:[2,73],76:[2,73],77:[2,73],78:[2,73],79:[2,73]},{21:[2,30],31:[2,30],52:[2,30],59:[2,30],62:[2,30],66:[2,30],69:[2,30],74:[2,30],75:[2,30],76:[2,30],77:[2,30],78:[2,30],79:[2,30]},{21:[2,31],31:[2,31],52:[2,31],59:[2,31],62:[2,31],66:[2,31],69:[2,31],74:[2,31],75:[2,31],76:[2,31],77:[2,31],78:[2,31],79:[2,31]},{21:[2,32],31:[2,32],52:[2,32],59:[2,32],62:[2,32],66:[2,32],69:[2,32],74:[2,32],75:[2,32],76:[2,32],77:[2,32],78:[2,32],79:[2,32]},{21:[2,33],31:[2,33],52:[2,33],59:[2,33],62:[2,33],66:[2,33],69:[2,33],74:[2,33],75:[2,33],76:[2,33],77:[2,33],78:[2,33],79:[2,33]},{21:[2,34],31:[2,34],52:[2,34],59:[2,34],62:[2,34],66:[2,34],69:[2,34],74:[2,34],75:[2,34],76:[2,34],77:[2,34],78:[2,34],79:[2,34]},{21:[2,35],31:[2,35],52:[2,35],59:[2,35],62:[2,35],66:[2,35],69:[2,35],74:[2,35],75:[2,35],76:[2,35],77:[2,35],78:[2,35],79:[2,35]},{21:[2,36],31:[2,36],52:[2,36],59:[2,36],62:[2,36],66:[2,36],69:[2,36],74:[2,36],75:[2,36],76:[2,36],77:[2,36],78:[2,36],79:[2,36]},{21:[2,40],31:[2,40],52:[2,40],59:[2,40],62:[2,40],66:[2,40],69:[2,40],74:[2,40],75:[2,40],76:[2,40],77:[2,40],78:[2,40],79:[2,40],81:[1,45]},{66:[1,32],80:46},{21:[2,42],31:[2,42],52:[2,42],59:[2,42],62:[2,42],66:[2,42],69:[2,42],74:[2,42],75:[2,42],76:[2,42],77:[2,42],78:[2,42],79:[2,42],81:[2,42]},{50:47,52:[2,77],59:[2,77],66:[2,77],74:[2,77],75:[2,77],76:[2,77],77:[2,77],78:[2,77],79:[2,77]},{23:48,36:50,37:[1,52],41:51,42:[1,53],43:49,45:[2,49]},{26:54,41:55,42:[1,53],45:[2,51]},{16:[1,56]},{31:[2,81],55:57,59:[2,81],66:[2,81],74:[2,81],75:[2,81],76:[2,81],77:[2,81],78:[2,81],79:[2,81]},{31:[2,37],59:[2,37],66:[2,37],74:[2,37],75:[2,37],76:[2,37],77:[2,37],78:[2,37],79:[2,37]},{31:[2,38],59:[2,38],66:[2,38],74:[2,38],75:[2,38],76:[2,38],77:[2,38],78:[2,38],79:[2,38]},{18:58,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{28:59,31:[2,53],59:[2,53],66:[2,53],69:[2,53],74:[2,53],75:[2,53],76:[2,53],77:[2,53],78:[2,53],79:[2,53]},{31:[2,59],33:60,59:[2,59],66:[2,59],69:[2,59],74:[2,59],75:[2,59],76:[2,59],77:[2,59],78:[2,59],79:[2,59]},{19:61,21:[2,45],59:[2,45],66:[2,45],74:[2,45],75:[2,45],76:[2,45],77:[2,45],78:[2,45],79:[2,45]},{18:65,31:[2,75],48:62,57:63,58:66,59:[1,40],63:64,64:67,65:68,66:[1,69],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{66:[1,70]},{21:[2,39],31:[2,39],52:[2,39],59:[2,39],62:[2,39],66:[2,39],69:[2,39],74:[2,39],75:[2,39],76:[2,39],77:[2,39],78:[2,39],79:[2,39],81:[1,45]},{18:65,51:71,52:[2,79],57:72,58:66,59:[1,40],63:73,64:67,65:68,66:[1,69],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{24:74,45:[1,75]},{45:[2,50]},{4:76,6:3,13:[2,43],14:[2,43],17:[2,43],27:[2,43],32:[2,43],37:[2,43],42:[2,43],45:[2,43],46:[2,43],49:[2,43],53:[2,43]},{45:[2,19]},{18:77,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{4:78,6:3,13:[2,43],14:[2,43],17:[2,43],27:[2,43],32:[2,43],45:[2,43],46:[2,43],49:[2,43],53:[2,43]},{24:79,45:[1,75]},{45:[2,52]},{5:[2,10],13:[2,10],14:[2,10],17:[2,10],27:[2,10],32:[2,10],37:[2,10],42:[2,10],45:[2,10],46:[2,10],49:[2,10],53:[2,10]},{18:65,31:[2,83],56:80,57:81,58:66,59:[1,40],63:82,64:67,65:68,66:[1,69],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{59:[2,85],60:83,62:[2,85],66:[2,85],74:[2,85],75:[2,85],76:[2,85],77:[2,85],78:[2,85],79:[2,85]},{18:65,29:84,31:[2,55],57:85,58:66,59:[1,40],63:86,64:67,65:68,66:[1,69],69:[2,55],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{18:65,31:[2,61],34:87,57:88,58:66,59:[1,40],63:89,64:67,65:68,66:[1,69],69:[2,61],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{18:65,20:90,21:[2,47],57:91,58:66,59:[1,40],63:92,64:67,65:68,66:[1,69],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{31:[1,93]},{31:[2,74],59:[2,74],66:[2,74],74:[2,74],75:[2,74],76:[2,74],77:[2,74],78:[2,74],79:[2,74]},{31:[2,76]},{21:[2,24],31:[2,24],52:[2,24],59:[2,24],62:[2,24],66:[2,24],69:[2,24],74:[2,24],75:[2,24],76:[2,24],77:[2,24],78:[2,24],79:[2,24]},{21:[2,25],31:[2,25],52:[2,25],59:[2,25],62:[2,25],66:[2,25],69:[2,25],74:[2,25],75:[2,25],76:[2,25],77:[2,25],78:[2,25],79:[2,25]},{21:[2,27],31:[2,27],52:[2,27],62:[2,27],65:94,66:[1,95],69:[2,27]},{21:[2,89],31:[2,89],52:[2,89],62:[2,89],66:[2,89],69:[2,89]},{21:[2,42],31:[2,42],52:[2,42],59:[2,42],62:[2,42],66:[2,42],67:[1,96],69:[2,42],74:[2,42],75:[2,42],76:[2,42],77:[2,42],78:[2,42],79:[2,42],81:[2,42]},{21:[2,41],31:[2,41],52:[2,41],59:[2,41],62:[2,41],66:[2,41],69:[2,41],74:[2,41],75:[2,41],76:[2,41],77:[2,41],78:[2,41],79:[2,41],81:[2,41]},{52:[1,97]},{52:[2,78],59:[2,78],66:[2,78],74:[2,78],75:[2,78],76:[2,78],77:[2,78],78:[2,78],79:[2,78]},{52:[2,80]},{5:[2,12],13:[2,12],14:[2,12],17:[2,12],27:[2,12],32:[2,12],37:[2,12],42:[2,12],45:[2,12],46:[2,12],49:[2,12],53:[2,12]},{18:98,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{36:50,37:[1,52],41:51,42:[1,53],43:100,44:99,45:[2,71]},{31:[2,65],38:101,59:[2,65],66:[2,65],69:[2,65],74:[2,65],75:[2,65],76:[2,65],77:[2,65],78:[2,65],79:[2,65]},{45:[2,17]},{5:[2,13],13:[2,13],14:[2,13],17:[2,13],27:[2,13],32:[2,13],37:[2,13],42:[2,13],45:[2,13],46:[2,13],49:[2,13],53:[2,13]},{31:[1,102]},{31:[2,82],59:[2,82],66:[2,82],74:[2,82],75:[2,82],76:[2,82],77:[2,82],78:[2,82],79:[2,82]},{31:[2,84]},{18:65,57:104,58:66,59:[1,40],61:103,62:[2,87],63:105,64:67,65:68,66:[1,69],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{30:106,31:[2,57],68:107,69:[1,108]},{31:[2,54],59:[2,54],66:[2,54],69:[2,54],74:[2,54],75:[2,54],76:[2,54],77:[2,54],78:[2,54],79:[2,54]},{31:[2,56],69:[2,56]},{31:[2,63],35:109,68:110,69:[1,108]},{31:[2,60],59:[2,60],66:[2,60],69:[2,60],74:[2,60],75:[2,60],76:[2,60],77:[2,60],78:[2,60],79:[2,60]},{31:[2,62],69:[2,62]},{21:[1,111]},{21:[2,46],59:[2,46],66:[2,46],74:[2,46],75:[2,46],76:[2,46],77:[2,46],78:[2,46],79:[2,46]},{21:[2,48]},{5:[2,21],13:[2,21],14:[2,21],17:[2,21],27:[2,21],32:[2,21],37:[2,21],42:[2,21],45:[2,21],46:[2,21],49:[2,21],53:[2,21]},{21:[2,90],31:[2,90],52:[2,90],62:[2,90],66:[2,90],69:[2,90]},{67:[1,96]},{18:65,57:112,58:66,59:[1,40],66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{5:[2,22],13:[2,22],14:[2,22],17:[2,22],27:[2,22],32:[2,22],37:[2,22],42:[2,22],45:[2,22],46:[2,22],49:[2,22],53:[2,22]},{31:[1,113]},{45:[2,18]},{45:[2,72]},{18:65,31:[2,67],39:114,57:115,58:66,59:[1,40],63:116,64:67,65:68,66:[1,69],69:[2,67],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{5:[2,23],13:[2,23],14:[2,23],17:[2,23],27:[2,23],32:[2,23],37:[2,23],42:[2,23],45:[2,23],46:[2,23],49:[2,23],53:[2,23]},{62:[1,117]},{59:[2,86],62:[2,86],66:[2,86],74:[2,86],75:[2,86],76:[2,86],77:[2,86],78:[2,86],79:[2,86]},{62:[2,88]},{31:[1,118]},{31:[2,58]},{66:[1,120],70:119},{31:[1,121]},{31:[2,64]},{14:[2,11]},{21:[2,28],31:[2,28],52:[2,28],62:[2,28],66:[2,28],69:[2,28]},{5:[2,20],13:[2,20],14:[2,20],17:[2,20],27:[2,20],32:[2,20],37:[2,20],42:[2,20],45:[2,20],46:[2,20],49:[2,20],53:[2,20]},{31:[2,69],40:122,68:123,69:[1,108]},{31:[2,66],59:[2,66],66:[2,66],69:[2,66],74:[2,66],75:[2,66],76:[2,66],77:[2,66],78:[2,66],79:[2,66]},{31:[2,68],69:[2,68]},{21:[2,26],31:[2,26],52:[2,26],59:[2,26],62:[2,26],66:[2,26],69:[2,26],74:[2,26],75:[2,26],76:[2,26],77:[2,26],78:[2,26],79:[2,26]},{13:[2,14],14:[2,14],17:[2,14],27:[2,14],32:[2,14],37:[2,14],42:[2,14],45:[2,14],46:[2,14],49:[2,14],53:[2,14]},{66:[1,125],71:[1,124]},{66:[2,91],71:[2,91]},{13:[2,15],14:[2,15],17:[2,15],27:[2,15],32:[2,15],42:[2,15],45:[2,15],46:[2,15],49:[2,15],53:[2,15]},{31:[1,126]},{31:[2,70]},{31:[2,29]},{66:[2,92],71:[2,92]},{13:[2,16],14:[2,16],17:[2,16],27:[2,16],32:[2,16],37:[2,16],42:[2,16],45:[2,16],46:[2,16],49:[2,16],53:[2,16]}],defaultActions:{4:[2,1],49:[2,50],51:[2,19],55:[2,52],64:[2,76],73:[2,80],78:[2,17],82:[2,84],92:[2,48],99:[2,18],100:[2,72],105:[2,88],107:[2,58],110:[2,64],111:[2,11],123:[2,70],124:[2,29]},parseError:function(e,t){throw new Error(e)},parse:function(e){function t(){var e;return e=n.lexer.lex()||1,"number"!=typeof e&&(e=n.symbols_[e]||e),e}var n=this,r=[0],i=[null],o=[],a=this.table,s="",l=0,u=0,c=0;this.lexer.setInput(e),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,"undefined"==typeof this.lexer.yylloc&&(this.lexer.yylloc={});var p=this.lexer.yylloc;o.push(p);var h=this.lexer.options&&this.lexer.options.ranges;"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var f,d,g,m,v,y,b,x,w,S={};;){if(g=r[r.length-1],this.defaultActions[g]?m=this.defaultActions[g]:(null!==f&&"undefined"!=typeof f||(f=t()),m=a[g]&&a[g][f]),"undefined"==typeof m||!m.length||!m[0]){var k="";if(!c){w=[];for(y in a[g])this.terminals_[y]&&y>2&&w.push("'"+this.terminals_[y]+"'");k=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+w.join(", ")+", got '"+(this.terminals_[f]||f)+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(k,{text:this.lexer.match,token:this.terminals_[f]||f,line:this.lexer.yylineno,loc:p,expected:w})}}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+g+", token: "+f);switch(m[0]){case 1:r.push(f),i.push(this.lexer.yytext),o.push(this.lexer.yylloc),r.push(m[1]),f=null,d?(f=d,d=null):(u=this.lexer.yyleng,s=this.lexer.yytext,l=this.lexer.yylineno,p=this.lexer.yylloc,c>0&&c--);break;case 2:if(b=this.productions_[m[1]][1],S.$=i[i.length-b],S._$={first_line:o[o.length-(b||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(b||1)].first_column,last_column:o[o.length-1].last_column},h&&(S._$.range=[o[o.length-(b||1)].range[0],o[o.length-1].range[1]]),v=this.performAction.call(S,s,u,l,this.yy,m[1],i,o),"undefined"!=typeof v)return v;b&&(r=r.slice(0,-1*b*2),i=i.slice(0,-1*b),o=o.slice(0,-1*b)),r.push(this.productions_[m[1]][0]),i.push(S.$),o.push(S._$),x=a[r[r.length-2]][r[r.length-1]],r.push(x);break;case 3:return!0}}return!0}},n=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e;var t=e.match(/(?:\r\n?|\n).*/g);return t?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t-1),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-t]),this},more:function(){return this._more=!0,this},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,r,i;this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),a=0;a<o.length&&(n=this._input.match(this.rules[o[a]]),!n||t&&!(n[0].length>t[0].length)||(t=n,r=a,this.options.flex));a++);return t?(i=t[0].match(/(?:\r\n?|\n).*/g),i&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,o[r],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e?e:void 0):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return"undefined"!=typeof e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)}};return e.options={},e.performAction=function(e,t,n,r){function i(e,n){return t.yytext=t.yytext.substr(e,t.yyleng-n)}switch(n){case 0:if("\\\\"===t.yytext.slice(-2)?(i(0,1),this.begin("mu")):"\\"===t.yytext.slice(-1)?(i(0,1),this.begin("emu")):this.begin("mu"),t.yytext)return 14;break;case 1:return 14;case 2:return this.popState(), +14;case 3:return t.yytext=t.yytext.substr(5,t.yyleng-9),this.popState(),16;case 4:return 14;case 5:return this.popState(),13;case 6:return 59;case 7:return 62;case 8:return 17;case 9:return this.popState(),this.begin("raw"),21;case 10:return 53;case 11:return 27;case 12:return 45;case 13:return this.popState(),42;case 14:return this.popState(),42;case 15:return 32;case 16:return 37;case 17:return 49;case 18:return 46;case 19:this.unput(t.yytext),this.popState(),this.begin("com");break;case 20:return this.popState(),13;case 21:return 46;case 22:return 67;case 23:return 66;case 24:return 66;case 25:return 81;case 26:break;case 27:return this.popState(),52;case 28:return this.popState(),31;case 29:return t.yytext=i(1,2).replace(/\\"/g,'"'),74;case 30:return t.yytext=i(1,2).replace(/\\'/g,"'"),74;case 31:return 79;case 32:return 76;case 33:return 76;case 34:return 77;case 35:return 78;case 36:return 75;case 37:return 69;case 38:return 71;case 39:return 66;case 40:return 66;case 41:return"INVALID";case 42:return 5}},e.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]*?(?=(\{\{\{\{\/)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[[^\]]*\])/,/^(?:.)/,/^(?:$)/],e.conditions={mu:{rules:[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[5],inclusive:!1},raw:{rules:[3,4],inclusive:!1},INITIAL:{rules:[0,1,42],inclusive:!0}},e}();return t.lexer=n,e.prototype=t,t.Parser=e,new e}();t["default"]=r,e.exports=t["default"]},function(e,t,n){"use strict";function r(){}function i(e,t,n){void 0===t&&(t=e.length);var r=e[t-1],i=e[t-2];return r?"ContentStatement"===r.type?(i||!n?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test(r.original):void 0:n}function o(e,t,n){void 0===t&&(t=-1);var r=e[t+1],i=e[t+2];return r?"ContentStatement"===r.type?(i||!n?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test(r.original):void 0:n}function a(e,t,n){var r=e[null==t?0:t+1];if(r&&"ContentStatement"===r.type&&(n||!r.rightStripped)){var i=r.value;r.value=r.value.replace(n?/^\s+/:/^[ \t]*\r?\n?/,""),r.rightStripped=r.value!==i}}function s(e,t,n){var r=e[null==t?e.length-1:t-1];if(r&&"ContentStatement"===r.type&&(n||!r.leftStripped)){var i=r.value;return r.value=r.value.replace(n?/\s+$/:/[ \t]+$/,""),r.leftStripped=r.value!==i,r.leftStripped}}var l=n(8)["default"];t.__esModule=!0;var u=n(6),c=l(u);r.prototype=new c["default"],r.prototype.Program=function(e){var t=!this.isRootSeen;this.isRootSeen=!0;for(var n=e.body,r=0,l=n.length;l>r;r++){var u=n[r],c=this.accept(u);if(c){var p=i(n,r,t),h=o(n,r,t),f=c.openStandalone&&p,d=c.closeStandalone&&h,g=c.inlineStandalone&&p&&h;c.close&&a(n,r,!0),c.open&&s(n,r,!0),g&&(a(n,r),s(n,r)&&"PartialStatement"===u.type&&(u.indent=/([ \t]+$)/.exec(n[r-1].original)[1])),f&&(a((u.program||u.inverse).body),s(n,r)),d&&(a(n,r),s((u.inverse||u.program).body))}}return e},r.prototype.BlockStatement=function(e){this.accept(e.program),this.accept(e.inverse);var t=e.program||e.inverse,n=e.program&&e.inverse,r=n,l=n;if(n&&n.chained)for(r=n.body[0].program;l.chained;)l=l.body[l.body.length-1].program;var u={open:e.openStrip.open,close:e.closeStrip.close,openStandalone:o(t.body),closeStandalone:i((r||t).body)};if(e.openStrip.close&&a(t.body,null,!0),n){var c=e.inverseStrip;c.open&&s(t.body,null,!0),c.close&&a(r.body,null,!0),e.closeStrip.open&&s(l.body,null,!0),i(t.body)&&o(r.body)&&(s(t.body),a(r.body))}else e.closeStrip.open&&s(t.body,null,!0);return u},r.prototype.MustacheStatement=function(e){return e.strip},r.prototype.PartialStatement=r.prototype.CommentStatement=function(e){var t=e.strip||{};return{inlineStandalone:!0,open:t.open,close:t.close}},t["default"]=r,e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t){this.source=e,this.start={line:t.first_line,column:t.first_column},this.end={line:t.last_line,column:t.last_column}}function i(e){return/^\[.*\]$/.test(e)?e.substr(1,e.length-2):e}function o(e,t){return{open:"~"===e.charAt(2),close:"~"===t.charAt(t.length-3)}}function a(e){return e.replace(/^\{\{~?\!-?-?/,"").replace(/-?-?~?\}\}$/,"")}function s(e,t,n){n=this.locInfo(n);for(var r=e?"@":"",i=[],o=0,a="",s=0,l=t.length;l>s;s++){var u=t[s].part,c=t[s].original!==u;if(r+=(t[s].separator||"")+u,c||".."!==u&&"."!==u&&"this"!==u)i.push(u);else{if(i.length>0)throw new f["default"]("Invalid path: "+r,{loc:n});".."===u&&(o++,a+="../")}}return new this.PathExpression(e,o,i,r,n)}function l(e,t,n,r,i,o){var a=r.charAt(3)||r.charAt(2),s="{"!==a&&"&"!==a;return new this.MustacheStatement(e,t,n,s,i,this.locInfo(o))}function u(e,t,n,r){if(e.path.original!==n){var i={loc:e.path.loc};throw new f["default"](e.path.original+" doesn't match "+n,i)}r=this.locInfo(r);var o=new this.Program([t],null,{},r);return new this.BlockStatement(e.path,e.params,e.hash,o,void 0,{},{},{},r)}function c(e,t,n,r,i,o){if(r&&r.path&&e.path.original!==r.path.original){var a={loc:e.path.loc};throw new f["default"](e.path.original+" doesn't match "+r.path.original,a)}t.blockParams=e.blockParams;var s=void 0,l=void 0;return n&&(n.chain&&(n.program.body[0].closeStrip=r.strip),l=n.strip,s=n.program),i&&(i=s,s=t,t=i),new this.BlockStatement(e.path,e.params,e.hash,t,s,e.strip,l,r&&r.strip,this.locInfo(o))}var p=n(8)["default"];t.__esModule=!0,t.SourceLocation=r,t.id=i,t.stripFlags=o,t.stripComment=a,t.preparePath=s,t.prepareMustache=l,t.prepareRawBlock=u,t.prepareBlock=c;var h=n(12),f=p(h)},function(e,t,n){"use strict";function r(e,t,n){if(o.isArray(e)){for(var r=[],i=0,a=e.length;a>i;i++)r.push(t.wrap(e[i],n));return r}return"boolean"==typeof e||"number"==typeof e?e+"":e}function i(e){this.srcFile=e,this.source=[]}t.__esModule=!0;var o=n(13),a=void 0;try{}catch(s){}a||(a=function(e,t,n,r){this.src="",r&&this.add(r)},a.prototype={add:function(e){o.isArray(e)&&(e=e.join("")),this.src+=e},prepend:function(e){o.isArray(e)&&(e=e.join("")),this.src=e+this.src},toStringWithSourceMap:function(){return{code:this.toString()}},toString:function(){return this.src}}),i.prototype={prepend:function(e,t){this.source.unshift(this.wrap(e,t))},push:function(e,t){this.source.push(this.wrap(e,t))},merge:function(){var e=this.empty();return this.each(function(t){e.add([" ",t,"\n"])}),e},each:function(e){for(var t=0,n=this.source.length;n>t;t++)e(this.source[t])},empty:function(){var e=void 0===arguments[0]?this.currentLocation||{start:{}}:arguments[0];return new a(e.start.line,e.start.column,this.srcFile)},wrap:function(e){var t=void 0===arguments[1]?this.currentLocation||{start:{}}:arguments[1];return e instanceof a?e:(e=r(e,this,t),new a(t.start.line,t.start.column,this.srcFile,e))},functionCall:function(e,t,n){return n=this.generateList(n),this.wrap([e,t?"."+t+"(":"(",n,")"])},quotedString:function(e){return'"'+(e+"").replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")+'"'},objectLiteral:function(e){var t=[];for(var n in e)if(e.hasOwnProperty(n)){var i=r(e[n],this);"undefined"!==i&&t.push([this.quotedString(n),":",i])}var o=this.generateList(t);return o.prepend("{"),o.add("}"),o},generateList:function(e,t){for(var n=this.empty(t),i=0,o=e.length;o>i;i++)i&&n.add(","),n.add(r(e[i],this,t));return n},generateArray:function(e,t){var n=this.generateList(e,t);return n.prepend("["),n.add("]"),n}},t["default"]=i,e.exports=t["default"]}])})}),define("source-map",[],function(e,t,n){t.SourceMapGenerator=e("source-map/source-map-generator").SourceMapGenerator,t.SourceMapConsumer=e("source-map/source-map-consumer").SourceMapConsumer,t.SourceNode=e("source-map/source-node").SourceNode}),define("source-map/source-map-generator",[],function(e,t,n){define(function(e,t,n){function r(e){e||(e={}),this._file=o.getArg(e,"file",null),this._sourceRoot=o.getArg(e,"sourceRoot",null),this._sources=new a,this._names=new a,this._mappings=[],this._sourcesContents=null}var i=e("source-map/base64-vlq"),o=e("source-map/util"),a=e("source-map/array-set").ArraySet;r.prototype._version=3,r.fromSourceMap=function(e){var t=e.sourceRoot,n=new r({file:e.file,sourceRoot:t});return e.eachMapping(function(e){var r={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(r.source=e.source,null!=t&&(r.source=o.relative(t,r.source)),r.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(r.name=e.name)),n.addMapping(r)}),e.sources.forEach(function(t){var r=e.sourceContentFor(t);null!=r&&n.setSourceContent(t,r)}),n},r.prototype.addMapping=function(e){var t=o.getArg(e,"generated"),n=o.getArg(e,"original",null),r=o.getArg(e,"source",null),i=o.getArg(e,"name",null);this._validateMapping(t,n,r,i),null==r||this._sources.has(r)||this._sources.add(r),null==i||this._names.has(i)||this._names.add(i),this._mappings.push({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=n&&n.line,originalColumn:null!=n&&n.column,source:r,name:i})},r.prototype.setSourceContent=function(e,t){var n=e;null!=this._sourceRoot&&(n=o.relative(this._sourceRoot,n)),null!=t?(this._sourcesContents||(this._sourcesContents={}),this._sourcesContents[o.toSetString(n)]=t):this._sourcesContents&&(delete this._sourcesContents[o.toSetString(n)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},r.prototype.applySourceMap=function(e,t,n){var r=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');r=e.file}var i=this._sourceRoot;null!=i&&(r=o.relative(i,r));var s=new a,l=new a;this._mappings.forEach(function(t){if(t.source===r&&null!=t.originalLine){var a=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=a.source&&(t.source=a.source,null!=n&&(t.source=o.join(n,t.source)),null!=i&&(t.source=o.relative(i,t.source)),t.originalLine=a.line,t.originalColumn=a.column,null!=a.name&&(t.name=a.name))}var u=t.source;null==u||s.has(u)||s.add(u);var c=t.name;null==c||l.has(c)||l.add(c)},this),this._sources=s,this._names=l,e.sources.forEach(function(t){var r=e.sourceContentFor(t);null!=r&&(null!=n&&(t=o.join(n,t)),null!=i&&(t=o.relative(i,t)),this.setSourceContent(t,r))},this)},r.prototype._validateMapping=function(e,t,n,r){if((!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0)||t||n||r)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&n))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:n,original:t,name:r}))},r.prototype._serializeMappings=function(){var e,t=0,n=1,r=0,a=0,s=0,l=0,u="";this._mappings.sort(o.compareByGeneratedPositions);for(var c=0,p=this._mappings.length;p>c;c++){if(e=this._mappings[c],e.generatedLine!==n)for(t=0;e.generatedLine!==n;)u+=";",n++;else if(c>0){if(!o.compareByGeneratedPositions(e,this._mappings[c-1]))continue;u+=","}u+=i.encode(e.generatedColumn-t),t=e.generatedColumn,null!=e.source&&(u+=i.encode(this._sources.indexOf(e.source)-l),l=this._sources.indexOf(e.source),u+=i.encode(e.originalLine-1-a),a=e.originalLine-1,u+=i.encode(e.originalColumn-r),r=e.originalColumn,null!=e.name&&(u+=i.encode(this._names.indexOf(e.name)-s),s=this._names.indexOf(e.name)))}return u},r.prototype._generateSourcesContent=function(e,t){return e.map(function(e){if(!this._sourcesContents)return null;null!=t&&(e=o.relative(t,e));var n=o.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,n)?this._sourcesContents[n]:null},this)},r.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},r.prototype.toString=function(){return JSON.stringify(this)},t.SourceMapGenerator=r})}),define("source-map/base64-vlq",[],function(e,t,n){define(function(e,t,n){function r(e){return 0>e?(-e<<1)+1:(e<<1)+0}function i(e){var t=1===(1&e),n=e>>1;return t?-n:n}var o=e("source-map/base64"),a=5,s=1<<a,l=s-1,u=s;t.encode=function(e){var t,n="",i=r(e);do t=i&l,i>>>=a,i>0&&(t|=u),n+=o.encode(t);while(i>0);return n},t.decode=function(e,t){var n,r,s=0,c=e.length,p=0,h=0;do{if(s>=c)throw new Error("Expected more digits in base 64 VLQ value.");r=o.decode(e.charAt(s++)),n=!!(r&u),r&=l,p+=r<<h,h+=a}while(n);t.value=i(p),t.rest=e.slice(s)}})}),define("source-map/base64",[],function(e,t,n){define(function(e,t,n){var r={},i={};"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("").forEach(function(e,t){r[e]=t,i[t]=e}),t.encode=function(e){if(e in i)return i[e];throw new TypeError("Must be between 0 and 63: "+e)},t.decode=function(e){if(e in r)return r[e];throw new TypeError("Not a valid base 64 digit: "+e)}})}),define("source-map/util",[],function(e,t,n){define(function(e,t,n){function r(e,t,n){if(t in e)return e[t];if(3===arguments.length)return n;throw new Error('"'+t+'" is a required argument.')}function i(e){var t=e.match(d);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function o(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}function a(e){var t=e,n=i(e);if(n){if(!n.path)return e;t=n.path}for(var r,a="/"===t.charAt(0),s=t.split(/\/+/),l=0,u=s.length-1;u>=0;u--)r=s[u],"."===r?s.splice(u,1):".."===r?l++:l>0&&(""===r?(s.splice(u+1,l),l=0):(s.splice(u,2),l--));return t=s.join("/"),""===t&&(t=a?"/":"."),n?(n.path=t,o(n)):t}function s(e,t){""===e&&(e="."),""===t&&(t=".");var n=i(t),r=i(e);if(r&&(e=r.path||"/"),n&&!n.scheme)return r&&(n.scheme=r.scheme),o(n);if(n||t.match(g))return t;if(r&&!r.host&&!r.path)return r.host=t,o(r);var s="/"===t.charAt(0)?t:a(e.replace(/\/+$/,"")+"/"+t);return r?(r.path=s,o(r)):s}function l(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");var n=i(e);return"/"==t.charAt(0)&&n&&"/"==n.path?t.slice(1):0===t.indexOf(e+"/")?t.substr(e.length+1):t}function u(e){return"$"+e}function c(e){return e.substr(1)}function p(e,t){var n=e||"",r=t||"";return(n>r)-(r>n)}function h(e,t,n){var r;return(r=p(e.source,t.source))?r:(r=e.originalLine-t.originalLine)?r:(r=e.originalColumn-t.originalColumn,r||n?r:(r=p(e.name,t.name))?r:(r=e.generatedLine-t.generatedLine,r?r:e.generatedColumn-t.generatedColumn))}function f(e,t,n){var r;return(r=e.generatedLine-t.generatedLine)?r:(r=e.generatedColumn-t.generatedColumn,r||n?r:(r=p(e.source,t.source))?r:(r=e.originalLine-t.originalLine)?r:(r=e.originalColumn-t.originalColumn,r?r:p(e.name,t.name)))}t.getArg=r;var d=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,g=/^data:.+\,.+$/;t.urlParse=i,t.urlGenerate=o,t.normalize=a,t.join=s,t.relative=l,t.toSetString=u,t.fromSetString=c,t.compareByOriginalPositions=h,t.compareByGeneratedPositions=f})}),define("source-map/array-set",[],function(e,t,n){define(function(e,t,n){function r(){this._array=[],this._set={}}var i=e("source-map/util");r.fromArray=function(e,t){for(var n=new r,i=0,o=e.length;o>i;i++)n.add(e[i],t);return n},r.prototype.add=function(e,t){var n=this.has(e),r=this._array.length;n&&!t||this._array.push(e),n||(this._set[i.toSetString(e)]=r)},r.prototype.has=function(e){return Object.prototype.hasOwnProperty.call(this._set,i.toSetString(e))},r.prototype.indexOf=function(e){if(this.has(e))return this._set[i.toSetString(e)];throw new Error('"'+e+'" is not in the set.')},r.prototype.at=function(e){if(e>=0&&e<this._array.length)return this._array[e];throw new Error("No element indexed by "+e)},r.prototype.toArray=function(){return this._array.slice()},t.ArraySet=r})}),define("source-map/source-map-consumer",[],function(e,t,n){define(function(e,t,n){function r(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var n=i.getArg(t,"version"),r=i.getArg(t,"sources"),o=i.getArg(t,"names",[]),s=i.getArg(t,"sourceRoot",null),l=i.getArg(t,"sourcesContent",null),u=i.getArg(t,"mappings"),c=i.getArg(t,"file",null);if(n!=this._version)throw new Error("Unsupported version: "+n);r=r.map(i.normalize),this._names=a.fromArray(o,!0),this._sources=a.fromArray(r,!0),this.sourceRoot=s,this.sourcesContent=l,this._mappings=u,this.file=c}var i=e("source-map/util"),o=e("source-map/binary-search"),a=e("source-map/array-set").ArraySet,s=e("source-map/base64-vlq");r.fromSourceMap=function(e){var t=Object.create(r.prototype);return t._names=a.fromArray(e._names.toArray(),!0),t._sources=a.fromArray(e._sources.toArray(),!0),t.sourceRoot=e._sourceRoot,t.sourcesContent=e._generateSourcesContent(t._sources.toArray(),t.sourceRoot),t.file=e._file,t.__generatedMappings=e._mappings.slice().sort(i.compareByGeneratedPositions),t.__originalMappings=e._mappings.slice().sort(i.compareByOriginalPositions),t},r.prototype._version=3,Object.defineProperty(r.prototype,"sources",{get:function(){return this._sources.toArray().map(function(e){return null!=this.sourceRoot?i.join(this.sourceRoot,e):e},this)}}),r.prototype.__generatedMappings=null,Object.defineProperty(r.prototype,"_generatedMappings",{get:function(){return this.__generatedMappings||(this.__generatedMappings=[],this.__originalMappings=[],this._parseMappings(this._mappings,this.sourceRoot)),this.__generatedMappings}}),r.prototype.__originalMappings=null,Object.defineProperty(r.prototype,"_originalMappings",{get:function(){return this.__originalMappings||(this.__generatedMappings=[],this.__originalMappings=[],this._parseMappings(this._mappings,this.sourceRoot)),this.__originalMappings}}),r.prototype._nextCharIsMappingSeparator=function(e){var t=e.charAt(0);return";"===t||","===t},r.prototype._parseMappings=function(e,t){for(var n,r=1,o=0,a=0,l=0,u=0,c=0,p=e,h={};p.length>0;)if(";"===p.charAt(0))r++,p=p.slice(1),o=0;else if(","===p.charAt(0))p=p.slice(1);else{if(n={},n.generatedLine=r,s.decode(p,h),n.generatedColumn=o+h.value,o=n.generatedColumn,p=h.rest,p.length>0&&!this._nextCharIsMappingSeparator(p)){if(s.decode(p,h),n.source=this._sources.at(u+h.value),u+=h.value,p=h.rest,0===p.length||this._nextCharIsMappingSeparator(p))throw new Error("Found a source, but no line and column");if(s.decode(p,h),n.originalLine=a+h.value,a=n.originalLine,n.originalLine+=1,p=h.rest,0===p.length||this._nextCharIsMappingSeparator(p))throw new Error("Found a source and line, but no column");s.decode(p,h),n.originalColumn=l+h.value,l=n.originalColumn,p=h.rest,p.length>0&&!this._nextCharIsMappingSeparator(p)&&(s.decode(p,h),n.name=this._names.at(c+h.value),c+=h.value,p=h.rest)}this.__generatedMappings.push(n),"number"==typeof n.originalLine&&this.__originalMappings.push(n)}this.__generatedMappings.sort(i.compareByGeneratedPositions),this.__originalMappings.sort(i.compareByOriginalPositions)},r.prototype._findMapping=function(e,t,n,r,i){if(e[n]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[n]);if(e[r]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[r]);return o.search(e,t,i)},r.prototype.computeColumnSpans=function(){for(var e=0;e<this._generatedMappings.length;++e){var t=this._generatedMappings[e];if(e+1<this._generatedMappings.length){var n=this._generatedMappings[e+1];if(t.generatedLine===n.generatedLine){t.lastGeneratedColumn=n.generatedColumn-1;continue}}t.lastGeneratedColumn=1/0}},r.prototype.originalPositionFor=function(e){var t={generatedLine:i.getArg(e,"line"),generatedColumn:i.getArg(e,"column")},n=this._findMapping(t,this._generatedMappings,"generatedLine","generatedColumn",i.compareByGeneratedPositions);if(n>=0){var r=this._generatedMappings[n];if(r.generatedLine===t.generatedLine){var o=i.getArg(r,"source",null);return null!=o&&null!=this.sourceRoot&&(o=i.join(this.sourceRoot,o)),{source:o,line:i.getArg(r,"originalLine",null),column:i.getArg(r,"originalColumn",null),name:i.getArg(r,"name",null)}}}return{source:null,line:null,column:null,name:null}},r.prototype.sourceContentFor=function(e){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(e=i.relative(this.sourceRoot,e)),this._sources.has(e))return this.sourcesContent[this._sources.indexOf(e)];var t;if(null!=this.sourceRoot&&(t=i.urlParse(this.sourceRoot))){var n=e.replace(/^file:\/\//,"");if("file"==t.scheme&&this._sources.has(n))return this.sourcesContent[this._sources.indexOf(n)];if((!t.path||"/"==t.path)&&this._sources.has("/"+e))return this.sourcesContent[this._sources.indexOf("/"+e)]}throw new Error('"'+e+'" is not in the SourceMap.')},r.prototype.generatedPositionFor=function(e){var t={source:i.getArg(e,"source"),originalLine:i.getArg(e,"line"),originalColumn:i.getArg(e,"column")};null!=this.sourceRoot&&(t.source=i.relative(this.sourceRoot,t.source));var n=this._findMapping(t,this._originalMappings,"originalLine","originalColumn",i.compareByOriginalPositions);if(n>=0){var r=this._originalMappings[n];return{line:i.getArg(r,"generatedLine",null),column:i.getArg(r,"generatedColumn",null),lastColumn:i.getArg(r,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},r.prototype.allGeneratedPositionsFor=function(e){var t={source:i.getArg(e,"source"),originalLine:i.getArg(e,"line"),originalColumn:1/0};null!=this.sourceRoot&&(t.source=i.relative(this.sourceRoot,t.source));var n=[],r=this._findMapping(t,this._originalMappings,"originalLine","originalColumn",i.compareByOriginalPositions);if(r>=0)for(var o=this._originalMappings[r];o&&o.originalLine===t.originalLine;)n.push({line:i.getArg(o,"generatedLine",null),column:i.getArg(o,"generatedColumn",null),lastColumn:i.getArg(o,"lastGeneratedColumn",null)}),o=this._originalMappings[--r];return n.reverse()},r.GENERATED_ORDER=1,r.ORIGINAL_ORDER=2,r.prototype.eachMapping=function(e,t,n){var o,a=t||null,s=n||r.GENERATED_ORDER;switch(s){case r.GENERATED_ORDER:o=this._generatedMappings;break;case r.ORIGINAL_ORDER:o=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var l=this.sourceRoot;o.map(function(e){var t=e.source;return null!=t&&null!=l&&(t=i.join(l,t)),{source:t,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:e.name}}).forEach(e,a)},t.SourceMapConsumer=r})}),define("source-map/binary-search",[],function(e,t,n){define(function(e,t,n){function r(e,t,n,i,o){var a=Math.floor((t-e)/2)+e,s=o(n,i[a],!0);return 0===s?a:s>0?t-a>1?r(a,t,n,i,o):a:a-e>1?r(e,a,n,i,o):0>e?-1:e}t.search=function(e,t,n){return 0===t.length?-1:r(-1,t.length,e,t,n)}})}),define("source-map/source-node",[],function(e,t,n){define(function(e,t,n){function r(e,t,n,r,i){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==t?null:t,this.source=null==n?null:n,this.name=null==i?null:i,this[l]=!0,null!=r&&this.add(r)}var i=e("source-map/source-map-generator").SourceMapGenerator,o=e("source-map/util"),a=/(\r?\n)/,s=/\r\n|[\s\S]/g,l="$$$isSourceNode$$$";r.fromStringWithSourceMap=function(e,t,n){function i(e,t){if(null===e||void 0===e.source)s.add(t);else{var i=n?o.join(n,e.source):e.source;s.add(new r(e.originalLine,e.originalColumn,i,t,e.name))}}var s=new r,l=e.split(a),u=function(){var e=l.shift(),t=l.shift()||"";return e+t},c=1,p=0,h=null;return t.eachMapping(function(e){if(null!==h){if(!(c<e.generatedLine)){var t=l[0],n=t.substr(0,e.generatedColumn-p);return l[0]=t.substr(e.generatedColumn-p),p=e.generatedColumn,i(h,n),void(h=e)}var n="";i(h,u()),c++,p=0}for(;c<e.generatedLine;)s.add(u()),c++;if(p<e.generatedColumn){var t=l[0];s.add(t.substr(0,e.generatedColumn)),l[0]=t.substr(e.generatedColumn),p=e.generatedColumn}h=e},this),l.length>0&&(h&&i(h,u()),s.add(l.join(""))),t.sources.forEach(function(e){var r=t.sourceContentFor(e);null!=r&&(null!=n&&(e=o.join(n,e)),s.setSourceContent(e,r))}),s},r.prototype.add=function(e){if(Array.isArray(e))e.forEach(function(e){this.add(e)},this);else{if(!e[l]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);e&&this.children.push(e)}return this},r.prototype.prepend=function(e){if(Array.isArray(e))for(var t=e.length-1;t>=0;t--)this.prepend(e[t]);else{if(!e[l]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},r.prototype.walk=function(e){for(var t,n=0,r=this.children.length;r>n;n++)t=this.children[n],t[l]?t.walk(e):""!==t&&e(t,{source:this.source,line:this.line,column:this.column,name:this.name})},r.prototype.join=function(e){var t,n,r=this.children.length;if(r>0){for(t=[],n=0;r-1>n;n++)t.push(this.children[n]),t.push(e);t.push(this.children[n]),this.children=t}return this},r.prototype.replaceRight=function(e,t){var n=this.children[this.children.length-1];return n[l]?n.replaceRight(e,t):"string"==typeof n?this.children[this.children.length-1]=n.replace(e,t):this.children.push("".replace(e,t)),this},r.prototype.setSourceContent=function(e,t){this.sourceContents[o.toSetString(e)]=t},r.prototype.walkSourceContents=function(e){for(var t=0,n=this.children.length;n>t;t++)this.children[t][l]&&this.children[t].walkSourceContents(e);for(var r=Object.keys(this.sourceContents),t=0,n=r.length;n>t;t++)e(o.fromSetString(r[t]),this.sourceContents[r[t]])},r.prototype.toString=function(){var e="";return this.walk(function(t){e+=t}),e},r.prototype.toStringWithSourceMap=function(e){var t={code:"",line:1,column:0},n=new i(e),r=!1,o=null,l=null,u=null,c=null;return this.walk(function(e,i){t.code+=e,null!==i.source&&null!==i.line&&null!==i.column?(o===i.source&&l===i.line&&u===i.column&&c===i.name||n.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name}),o=i.source,l=i.line,u=i.column,c=i.name,r=!0):r&&(n.addMapping({generated:{line:t.line,column:t.column}}),o=null,r=!1),e.match(s).forEach(function(e,s,l){a.test(e)?(t.line++,t.column=0,s+1===l.length?(o=null,r=!1):r&&n.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name})):t.column+=e.length})}),this.walkSourceContents(function(e,t){n.setSourceContent(e,t)}),{code:t.code,map:n}},t.SourceNode=r})}),define("index",[],function(require,exports,module){"object"!=typeof JSON&&(JSON={}),function(){"use strict";function f(e){return 10>e?"0"+e:e}function quote(e){return escapable.lastIndex=0,escapable.test(e)?'"'+e.replace(escapable,function(e){var t=meta[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+e+'"'}function str(e,t){var n,r,i,o,a,s=gap,l=t[e];switch(l&&"object"==typeof l&&"function"==typeof l.toJSON&&(l=l.toJSON(e)),"function"==typeof rep&&(l=rep.call(t,e,l)),typeof l){case"string":return quote(l);case"number":return isFinite(l)?String(l):"null";case"boolean":case"null":return String(l);case"object":if(!l)return"null";if(gap+=indent,a=[],"[object Array]"===Object.prototype.toString.apply(l)){for(o=l.length,n=0;o>n;n+=1)a[n]=str(n,l)||"null";return i=0===a.length?"[]":gap?"[\n"+gap+a.join(",\n"+gap)+"\n"+s+"]":"["+a.join(",")+"]",gap=s,i}if(rep&&"object"==typeof rep)for(o=rep.length,n=0;o>n;n+=1)"string"==typeof rep[n]&&(r=rep[n],i=str(r,l),i&&a.push(quote(r)+(gap?": ":":")+i));else for(r in l)Object.prototype.hasOwnProperty.call(l,r)&&(i=str(r,l),i&&a.push(quote(r)+(gap?": ":":")+i));return i=0===a.length?"{}":gap?"{\n"+gap+a.join(",\n"+gap)+"\n"+s+"}":"{"+a.join(",")+"}",gap=s,i}}"function"!=typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()});var cx,escapable,gap,indent,meta,rep;"function"!=typeof JSON.stringify&&(escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,meta={"\b":"\\b"," ":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},JSON.stringify=function(e,t,n){var r;if(gap="",indent="","number"==typeof n)for(r=0;n>r;r+=1)indent+=" ";else"string"==typeof n&&(indent=n);if(rep=t,t&&"function"!=typeof t&&("object"!=typeof t||"number"!=typeof t.length))throw new Error("JSON.stringify");return str("",{"":e})}),"function"!=typeof JSON.parse&&(cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,JSON.parse=function(text,reviver){function walk(e,t){var n,r,i=e[t];if(i&&"object"==typeof i)for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(r=walk(i,n),void 0!==r?i[n]=r:delete i[n]);return reviver.call(e,t,i)}var j;if(text=String(text),cx.lastIndex=0,cx.test(text)&&(text=text.replace(cx,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})),/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return j=eval("("+text+")"),"function"==typeof reviver?walk({"":j},""):j;throw new SyntaxError("JSON.parse")})}(),module.exports=JSON}),define("jquery-pjax",[],function(e,t,n){var r=e("jquery");!function(e){function t(t,r,i){var o=this;return this.on("click.pjax",t,function(t){var a=e.extend({},v(r,i));a.container||(a.container=e(this).attr("data-pjax")||o),n(t,a)})}function n(t,n,r){r=v(n,r);var i=t.currentTarget;if("A"!==i.tagName.toUpperCase())throw"$.fn.pjax or $.pjax.click requires an anchor element";if(!(t.which>1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||location.protocol!==i.protocol||location.hostname!==i.hostname||i.href.indexOf("#")>-1&&m(i)==m(location)||t.isDefaultPrevented())){var a={url:i.href,container:e(i).attr("data-pjax"),target:i},s=e.extend({},a,r),l=e.Event("pjax:click");e(i).trigger(l,[s]),l.isDefaultPrevented()||(o(s),t.preventDefault(),e(i).trigger("pjax:clicked",[s]))}}function i(t,n,r){r=v(n,r);var i=t.currentTarget;if("FORM"!==i.tagName.toUpperCase())throw"$.pjax.submit requires a form element";var a={type:i.method.toUpperCase(),url:i.action,container:e(i).attr("data-pjax"),target:i};if("GET"!==a.type&&void 0!==window.FormData)a.data=new FormData(i),a.processData=!1,a.contentType=!1;else{if(e(i).find(":file").length)return;a.data=e(i).serializeArray()}o(e.extend({},a,r)),t.preventDefault()}function o(t){function n(t,n,i){i||(i={}),i.relatedTarget=r;var o=e.Event(t,i);return a.trigger(o,n),!o.isDefaultPrevented()}t=e.extend(!0,{},e.ajaxSettings,o.defaults,t),e.isFunction(t.url)&&(t.url=t.url());var r=t.target,i=g(t.url).hash,a=t.context=y(t.container);t.data||(t.data={}),e.isArray(t.data)?t.data.push({name:"_pjax",value:a.selector}):t.data._pjax=a.selector;var l;t.beforeSend=function(e,r){if("GET"!==r.type&&(r.timeout=0),e.setRequestHeader("X-PJAX","true"),e.setRequestHeader("X-PJAX-Container",a.selector),!n("pjax:beforeSend",[e,r]))return!1;r.timeout>0&&(l=setTimeout(function(){n("pjax:timeout",[e,t])&&e.abort("timeout")},r.timeout),r.timeout=0);var o=g(r.url);o.hash=i,t.requestUrl=d(o.href); +},t.complete=function(e,r){l&&clearTimeout(l),n("pjax:complete",[e,r,t]),n("pjax:end",[e,t])},t.error=function(e,r,i){var o=w("",e,t),a=n("pjax:error",[e,r,i,t]);"GET"==t.type&&"abort"!==r&&a&&s(o.url)},t.success=function(r,l,u){var c=o.state,h="function"==typeof e.pjax.defaults.version?e.pjax.defaults.version():e.pjax.defaults.version,f=u.getResponseHeader("X-PJAX-Version"),d=w(r,u,t),m=g(d.url);if(i&&(m.hash=i,d.url=m.href),h&&f&&h!==f)return void s(d.url);if(!d.contents)return void s(d.url);o.state={id:t.id||p(),url:d.url,title:d.title,container:a.selector,fragment:t.fragment,timeout:t.timeout},(t.push||t.replace)&&window.history.replaceState(o.state,d.title,d.url);try{document.activeElement.blur()}catch(v){}d.title&&(document.title=d.title),n("pjax:beforeReplace",[d.contents,t],{state:o.state,previousState:c}),a.html(d.contents);var y=a.find("input[autofocus], textarea[autofocus]").last()[0];y&&document.activeElement!==y&&y.focus(),S(d.scripts);var b=t.scrollTo;if(i){var x=decodeURIComponent(i.slice(1)),k=document.getElementById(x)||document.getElementsByName(x)[0];k&&(b=e(k).offset().top)}"number"==typeof b&&e(window).scrollTop(b),n("pjax:success",[r,l,u,t])},o.state||(o.state={id:p(),url:window.location.href,title:document.title,container:a.selector,fragment:t.fragment,timeout:t.timeout},window.history.replaceState(o.state,document.title)),c(o.xhr),o.options=t;var u=o.xhr=e.ajax(t);return u.readyState>0&&(t.push&&!t.replace&&(k(o.state.id,h(a)),window.history.pushState(null,"",t.requestUrl)),n("pjax:start",[u,t]),n("pjax:send",[u,t])),o.xhr}function a(t,n){var r={url:window.location.href,push:!1,replace:!0,scrollTo:!1};return o(e.extend(r,v(t,n)))}function s(e){window.history.replaceState(null,"",o.state.url),window.location.replace(e)}function l(t){T||c(o.xhr);var n=o.state,r=t.state;if(r&&r.container){if(T&&P==r.url)return;var i,a=r.container;if(n){if(n.id===r.id)return;i=n.id<r.id?"forward":"back","back"==i&&(a=n.container)}var l=e(a);if(l.length){var u=j[r.id];n&&C(i,n.id,h(l));var p=e.Event("pjax:popstate",{state:r,direction:i});l.trigger(p);var f={id:r.id,url:r.url,container:l,push:!1,fragment:r.fragment,timeout:r.timeout,scrollTo:!1};if(u){l.trigger("pjax:start",[null,f]),o.state=r,r.title&&(document.title=r.title);var d=e.Event("pjax:beforeReplace",{state:r,previousState:n});l.trigger(d,[u,f]),l.html(u),l.trigger("pjax:end",[null,f])}else o(f);l[0].offsetHeight}else s(location.href)}T=!1}function u(t){var n=e.isFunction(t.url)?t.url():t.url,r=t.type?t.type.toUpperCase():"GET",i=e("<form>",{method:"GET"===r?"GET":"POST",action:n,style:"display:none"});"GET"!==r&&"POST"!==r&&i.append(e("<input>",{type:"hidden",name:"_method",value:r.toLowerCase()}));var o=t.data;if("string"==typeof o)e.each(o.split("&"),function(t,n){var r=n.split("=");i.append(e("<input>",{type:"hidden",name:r[0],value:r[1]}))});else if(e.isArray(o))e.each(o,function(t,n){i.append(e("<input>",{type:"hidden",name:n.name,value:n.value}))});else if("object"==typeof o){var a;for(a in o)i.append(e("<input>",{type:"hidden",name:a,value:o[a]}))}e(document.body).append(i),i.submit()}function c(t){t&&t.readyState<4&&(t.onreadystatechange=e.noop,t.abort())}function p(){return(new Date).getTime()}function h(e){var t=e.clone();return t.find("script").each(function(){this.src||r._data(this,"globalEval",!1)}),t.contents()}function f(e,t){return e.replace(new RegExp("[?&]"+t+"=[^&#]*"),"").replace(/[?&]($|#)/,"").replace(/[?&]/,"?")}function d(e){return e=f(e,"_pjax"),e=f(e,"_")}function g(e){var t=document.createElement("a");return t.href=e,t}function m(e){return e.href.replace(/#.*/,"")}function v(t,n){return t&&n?n.container=t:n=e.isPlainObject(t)?t:{container:t},n.container&&(n.container=y(n.container)),n}function y(t){if(t=e(t),t.length){if(""!==t.selector&&t.context===document)return t;if(t.attr("id"))return e("#"+t.attr("id"));throw"cant get selector for pjax container!"}throw"no pjax container for "+t.selector}function b(e,t){return e.filter(t).add(e.find(t))}function x(t){return e.parseHTML(t,document,!0)}function w(t,n,r){var i={},o=/<html/i.test(t),a=n.getResponseHeader("X-PJAX-URL");if(i.url=a?d(a):r.requestUrl,o)var s=e(x(t.match(/<head[^>]*>([\s\S.]*)<\/head>/i)[0])),l=e(x(t.match(/<body[^>]*>([\s\S.]*)<\/body>/i)[0]));else var s=l=e(x(t));if(0===l.length)return i;if(i.title=b(s,"title").last().text(),r.fragment){if("body"===r.fragment)var u=l;else var u=b(l,r.fragment).first();u.length&&(i.contents="body"===r.fragment?u:u.contents(),i.title||(i.title=u.attr("title")||u.data("title")))}else o||(i.contents=l);return i.contents&&(i.contents=i.contents.not(function(){return e(this).is("title")}),i.contents.find("title").remove(),i.scripts=b(i.contents,"script[src]").remove(),i.contents=i.contents.not(i.scripts)),i.title&&(i.title=e.trim(i.title)),i}function S(t){if(t){var n=e("script[src]");t.each(function(){var t=this.src,r=n.filter(function(){return this.src===t});if(!r.length){var i=document.createElement("script"),o=e(this).attr("type");o&&(i.type=o),i.src=e(this).attr("src"),document.head.appendChild(i)}})}}function k(e,t){j[e]=t,M.push(e),_(O,0),_(M,o.defaults.maxCacheLength)}function C(e,t,n){var r,i;j[t]=n,"forward"===e?(r=M,i=O):(r=O,i=M),r.push(t),(t=i.pop())&&delete j[t],_(r,o.defaults.maxCacheLength)}function _(e,t){for(;e.length>t;)delete j[e.shift()]}function E(){return e("meta").filter(function(){var t=e(this).attr("http-equiv");return t&&"X-PJAX-VERSION"===t.toUpperCase()}).attr("content")}function A(){e.fn.pjax=t,e.pjax=o,e.pjax.enable=e.noop,e.pjax.disable=N,e.pjax.click=n,e.pjax.submit=i,e.pjax.reload=a,e.pjax.defaults={timeout:650,push:!0,replace:!1,type:"GET",dataType:"html",scrollTo:0,maxCacheLength:20,version:E},e(window).on("popstate.pjax",l)}function N(){e.fn.pjax=function(){return this},e.pjax=u,e.pjax.enable=A,e.pjax.disable=e.noop,e.pjax.click=e.noop,e.pjax.submit=e.noop,e.pjax.reload=function(){window.location.reload()},e(window).off("popstate.pjax",l)}var T=!0,P=window.location.href,L=window.history.state;L&&L.container&&(o.state=L),"state"in window.history&&(T=!1);var j={},O=[],M=[];e.inArray("state",e.event.props)<0&&e.event.props.push("state"),e.support.pjax=window.history&&window.history.pushState&&window.history.replaceState&&!navigator.userAgent.match(/((iPod|iPhone|iPad).+\bOS\s+[1-4]\D|WebApps\/.+CFNetwork)/),e.support.pjax?A():N()}(r)}),define("dot",[],function(e,t,n){e("lib/jquery.dotdotdot"),n.exports=function(e){e.dotdotdot({wrap:"letter"})}}),define("lib/jquery.dotdotdot",[],function(e,t,n){var r=e("jquery");!function(e,t){function n(e,t,n){var r=e.children(),i=!1;e.empty();for(var a=0,s=r.length;s>a;a++){var l=r.eq(a);if(e.append(l),n&&e.append(n),o(e,t)){l.remove(),i=!0;break}n&&n.detach()}return i}function r(t,n,a,s,l){var u=!1,c="a, table, thead, tbody, tfoot, tr, col, colgroup, object, embed, param, ol, ul, dl, blockquote, select, optgroup, option, textarea, script, style",p="script, .dotdotdot-keep";return t.contents().detach().each(function(){var h=this,f=e(h);if("undefined"==typeof h)return!0;if(f.is(p))t.append(f);else{if(u)return!0;t.append(f),!l||f.is(s.after)||f.find(s.after).length||t[t.is(c)?"after":"append"](l),o(a,s)&&(u=3==h.nodeType?i(f,n,a,s,l):r(f,n,a,s,l),u||(f.detach(),u=!0)),u||l&&l.detach()}}),n.addClass("is-truncated"),u}function i(t,n,r,i,s){var c=t[0];if(!c)return!1;var h=u(c),f=-1!==h.indexOf(" ")?" ":" ",d="letter"==i.wrap?"":f,g=h.split(d),m=-1,v=-1,y=0,b=g.length-1;for(i.fallbackToLetter&&0==y&&0==b&&(d="",g=h.split(d),b=g.length-1);b>=y&&(0!=y||0!=b);){var x=Math.floor((y+b)/2);if(x==v)break;v=x,l(c,g.slice(0,v+1).join(d)+i.ellipsis),o(r,i)?(b=v,i.fallbackToLetter&&0==y&&0==b&&(d="",g=g[0].split(d),m=-1,v=-1,y=0,b=g.length-1)):(m=v,y=v)}if(-1==m||1==g.length&&0==g[0].length){var w=t.parent();t.detach();var S=s&&s.closest(w).length?s.length:0;w.contents().length>S?c=p(w.contents().eq(-1-S),n):(c=p(w,n,!0),S||w.detach()),c&&(h=a(u(c),i),l(c,h),S&&s&&e(c).parent().append(s))}else h=a(g.slice(0,m+1).join(d),i),l(c,h);return!0}function o(e,t){return e.innerHeight()>t.maxHeight}function a(t,n){for(;e.inArray(t.slice(-1),n.lastCharacter.remove)>-1;)t=t.slice(0,-1);return e.inArray(t.slice(-1),n.lastCharacter.noEllipsis)<0&&(t+=n.ellipsis),t}function s(e){return{width:e.innerWidth(),height:e.innerHeight()}}function l(e,t){e.innerText?e.innerText=t:e.nodeValue?e.nodeValue=t:e.textContent&&(e.textContent=t)}function u(e){return e.innerText?e.innerText:e.nodeValue?e.nodeValue:e.textContent?e.textContent:""}function c(e){do e=e.previousSibling;while(e&&1!==e.nodeType&&3!==e.nodeType);return e}function p(t,n,r){var i,o=t&&t[0];if(o){if(!r){if(3===o.nodeType)return o;if(e.trim(t.text()))return p(t.contents().last(),n)}for(i=c(o);!i;){if(t=t.parent(),t.is(n)||!t.length)return!1;i=c(t[0])}if(i)return p(e(i),n)}return!1}function h(t,n){return t?"string"==typeof t?(t=e(t,n),t.length?t:!1):t.jquery?t:!1:!1}function f(e){for(var t=e.innerHeight(),n=["paddingTop","paddingBottom"],r=0,i=n.length;i>r;r++){var o=parseInt(e.css(n[r]),10);isNaN(o)&&(o=0),t-=o}return t}if(!e.fn.dotdotdot){e.fn.dotdotdot=function(t){if(0==this.length)return e.fn.dotdotdot.debug('No element found for "'+this.selector+'".'),this;if(this.length>1)return this.each(function(){e(this).dotdotdot(t)});var i=this;i.data("dotdotdot")&&i.trigger("destroy.dot"),i.data("dotdotdot-style",i.attr("style")||""),i.css("word-wrap","break-word"),"nowrap"===i.css("white-space")&&i.css("white-space","normal"),i.bind_events=function(){return i.bind("update.dot",function(t,s){i.removeClass("is-truncated"),t.preventDefault(),t.stopPropagation(),l.maxHeight="number"==typeof l.height?l.height:f(i),l.maxHeight+=l.tolerance,"undefined"!=typeof s&&(("string"==typeof s||"nodeType"in s&&1===s.nodeType)&&(s=e("<div />").append(s).contents()),s instanceof e&&(a=s)),g=i.wrapInner('<div class="dotdotdot" />').children(),g.contents().detach().end().append(a.clone(!0)).find("br").replaceWith(" <br /> ").end().css({height:"auto",width:"auto",border:"none",padding:0,margin:0});var c=!1,p=!1;return u.afterElement&&(c=u.afterElement.clone(!0),c.show(),u.afterElement.detach()),o(g,l)&&(p="children"==l.wrap?n(g,l,c):r(g,i,g,l,c)),g.replaceWith(g.contents()),g=null,e.isFunction(l.callback)&&l.callback.call(i[0],p,a),u.isTruncated=p,p}).bind("isTruncated.dot",function(e,t){return e.preventDefault(),e.stopPropagation(),"function"==typeof t&&t.call(i[0],u.isTruncated),u.isTruncated}).bind("originalContent.dot",function(e,t){return e.preventDefault(),e.stopPropagation(),"function"==typeof t&&t.call(i[0],a),a}).bind("destroy.dot",function(e){e.preventDefault(),e.stopPropagation(),i.unwatch().unbind_events().contents().detach().end().append(a).attr("style",i.data("dotdotdot-style")||"").data("dotdotdot",!1)}),i},i.unbind_events=function(){return i.unbind(".dot"),i},i.watch=function(){if(i.unwatch(),"window"==l.watch){var t=e(window),n=t.width(),r=t.height();t.bind("resize.dot"+u.dotId,function(){n==t.width()&&r==t.height()&&l.windowResizeFix||(n=t.width(),r=t.height(),p&&clearInterval(p),p=setTimeout(function(){i.trigger("update.dot")},100))})}else c=s(i),p=setInterval(function(){if(i.is(":visible")){var e=s(i);c.width==e.width&&c.height==e.height||(i.trigger("update.dot"),c=e)}},500);return i},i.unwatch=function(){return e(window).unbind("resize.dot"+u.dotId),p&&clearInterval(p),i};var a=i.contents(),l=e.extend(!0,{},e.fn.dotdotdot.defaults,t),u={},c={},p=null,g=null;return l.lastCharacter.remove instanceof Array||(l.lastCharacter.remove=e.fn.dotdotdot.defaultArrays.lastCharacter.remove),l.lastCharacter.noEllipsis instanceof Array||(l.lastCharacter.noEllipsis=e.fn.dotdotdot.defaultArrays.lastCharacter.noEllipsis),u.afterElement=h(l.after,i),u.isTruncated=!1,u.dotId=d++,i.data("dotdotdot",!0).bind_events().trigger("update.dot"),l.watch&&i.watch(),i},e.fn.dotdotdot.defaults={ellipsis:"... ",wrap:"word",fallbackToLetter:!0,lastCharacter:{},tolerance:0,callback:null,after:null,height:null,watch:!1,windowResizeFix:!0},e.fn.dotdotdot.defaultArrays={lastCharacter:{remove:[" "," ",",",";",".","!","?"],noEllipsis:[]}},e.fn.dotdotdot.debug=function(e){};var d=1,g=e.fn.html;e.fn.html=function(n){return n!=t&&!e.isFunction(n)&&this.data("dotdotdot")?this.trigger("update",[n]):g.apply(this,arguments)};var m=e.fn.text;e.fn.text=function(n){return n!=t&&!e.isFunction(n)&&this.data("dotdotdot")?(n=e("<div />").text(n).html(),this.trigger("update",[n])):m.apply(this,arguments)}}}(r)}),define("jquery.placeholder",[],function(e,t,n){var r=e("jquery");!function(e){function t(t){var n={},r=/^jQuery\d+$/;return e.each(t.attributes,function(e,t){t.specified&&!r.test(t.name)&&(n[t.name]=t.value)}),n}function n(t,n){var r=this,o=e(this);if(r.value===o.attr(s?"placeholder-x":"placeholder")&&o.hasClass(f.customClass))if(r.value="",o.removeClass(f.customClass),o.data("placeholder-password")){if(o=o.hide().nextAll('input[type="password"]:first').show().attr("id",o.removeAttr("id").data("placeholder-id")),t===!0)return o[0].value=n,n;o.focus()}else r==i()&&r.select()}function r(r){var i,o=this,a=e(this),l=o.id;if(!r||"blur"!==r.type||!a.hasClass(f.customClass))if(""===o.value){if("password"===o.type){if(!a.data("placeholder-textinput")){try{i=a.clone().prop({type:"text"})}catch(u){i=e("<input>").attr(e.extend(t(this),{type:"text"}))}i.removeAttr("name").data({"placeholder-enabled":!0,"placeholder-password":a,"placeholder-id":l}).bind("focus.placeholder",n),a.data({"placeholder-textinput":i,"placeholder-id":l}).before(i)}o.value="",a=a.removeAttr("id").hide().prevAll('input[type="text"]:first').attr("id",a.data("placeholder-id")).show()}else{var c=a.data("placeholder-password");c&&(c[0].value="",a.attr("id",a.data("placeholder-id")).show().nextAll('input[type="password"]:last').hide().removeAttr("id"))}a.addClass(f.customClass),a[0].value=a.attr(s?"placeholder-x":"placeholder")}else a.removeClass(f.customClass)}function i(){try{return document.activeElement}catch(e){}}var o,a,s=!1,l="[object OperaMini]"===Object.prototype.toString.call(window.operamini),u="placeholder"in document.createElement("input")&&!l&&!s,c="placeholder"in document.createElement("textarea")&&!l&&!s,p=e.valHooks,h=e.propHooks,f={};u&&c?(a=e.fn.placeholder=function(){return this},a.input=!0,a.textarea=!0):(a=e.fn.placeholder=function(t){var i={customClass:"placeholder"};return f=e.extend({},i,t),this.filter((u?"textarea":":input")+"["+(s?"placeholder-x":"placeholder")+"]").not("."+f.customClass).not(":radio, :checkbox, :hidden").bind({"focus.placeholder":n,"blur.placeholder":r}).data("placeholder-enabled",!0).trigger("blur.placeholder")},a.input=u,a.textarea=c,o={get:function(t){var n=e(t),r=n.data("placeholder-password");return r?r[0].value:n.data("placeholder-enabled")&&n.hasClass(f.customClass)?"":t.value},set:function(t,o){var a,s,l=e(t);return""!==o&&(a=l.data("placeholder-textinput"),s=l.data("placeholder-password"),a?(n.call(a[0],!0,o)||(t.value=o),a[0].value=o):s&&(n.call(t,!0,o)||(s[0].value=o),t.value=o)),l.data("placeholder-enabled")?(""===o?(t.value=o,t!=i()&&r.call(t)):(l.hasClass(f.customClass)&&n.call(t),t.value=o),l):(t.value=o,l)}},u||(p.input=o,h.value=o),c||(p.textarea=o,h.value=o),e(function(){e(document).delegate("form","submit.placeholder",function(){var t=e("."+f.customClass,this).each(function(){n.call(this,!0,"")});setTimeout(function(){t.each(r)},10)})}),e(window).bind("beforeunload.placeholder",function(){var t=!0;try{"javascript:void(0)"===document.activeElement.toString()&&(t=!1)}catch(n){}t&&e("."+f.customClass).each(function(){this.value=""})}))}(r)}); \ No newline at end of file diff --git a/web-static/dist/yohobuy/4.7.2/index-debug.js b/web-static/dist/yohobuy/4.7.2/index-debug.js new file mode 100644 index 0000000..934a8e7 --- /dev/null +++ b/web-static/dist/yohobuy/4.7.2/index-debug.js @@ -0,0 +1,18327 @@ +define("index", ["jquery","handlebars","source-map","index","lazyload","jquery-pjax","dot","jquery.placeholder"], function(require, exports, module){ +var webYohobuy; + +//通用 +require("js/common"); + +//头部 +require("js/header"); + +//简化头部 +require("js/simple-header"); + +//商品(列表、搜索、商品详情) +require("js/product/entry"); + +//频道页 +require("js/index/index"); + +//品牌一览 +require("js/brand/index"); + +//登录注册找回密码 +require("js/passport/entry"); + +//购物车 +require("js/cart/cart"); + +//逛 +require("js/guang/entry"); + +//个人中心 +require("js/home/entry"); + +//帮助中心 +require("js/help/entry"); + +//订单确认 +require("js/order/ensure"); + +//商品支付 +require("js/shopping/pay"); + +//微信扫码支付 +require("js/pay/wechatqrcode"); + +//关于我们 +require("js/about/entry"); + +//领券频道 +require("js/coupon/entry"); + +module.exports = webYohobuy; + +}); +define("js/common", ["jquery"], function(require, exports, module){ +/** + * 页面公共逻辑和接口 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/11/23 + */ +var $ = require("jquery"); + + +var $body = $('body'); + +require("js/footer"); + +function cookie(name) { + var re = new RegExp(name + '=([^;$]*)', 'i'), + matchPattern = '$1'; + + return re.test(decodeURIComponent(document.cookie)) ? RegExp[matchPattern] : ''; +} + +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; +} + +//YAS统计代码 +(function(w, d, s, j, f) { + var a = d.createElement(s); + var m = d.getElementsByTagName(s)[0]; + + w.YohoAcquisitionObject = f; + + w[f] = function() { + w[f].p = arguments; + }; + + a.async = 1; + a.src = j; + m.parentNode.insertBefore(a, m); +})(window, document, 'script', ('https:' == document.location.protocol ? 'https' : 'http') + '://' + 'cdn.yoho.cn/yas-jssdk/1.0.17/yas.js', '_yas'); + +(function() { + var uid = getUid(); + + uid = uid === 0 ? '' : uid; + + window._ozuid = uid; //暴露ozuid + + if (window._yas) { + window._yas(1 * new Date(), '1.0.17', 'yohobuy_web', uid, '', ''); + } +}()); + +//window.resize在width<1180时适配成990 +$(window).on('resize', function() { + var w = $(this).width(); + + //return top + if (w < 1360) { + $('.return-top').addClass('min'); + } else { + $('.return-top').removeClass('min'); + } + + //body + if (w < 1180) { + $body.addClass('min-screen'); + } else { + $body.removeClass('min-screen'); + } +}).trigger('resize'); + +function queryString() { + var vars = {}, + hash, + i, + search = window.location.search, + hashes = search ? decodeURIComponent(search).slice(1).split('&') : []; + + for (i = 0; i < hashes.length; i++) { + hash = hashes[i].split('='); + vars[hash[0]] = hash[1]; + } + return vars; +} + +// 给jQuery 扩展 queryString函数 +$.extend({ + queryString: function() { + var vars = [], + hash, + i; + var hashes = window.location.search.slice(1).split('&'); + + for (i = 0; i < hashes.length; i++) { + hash = hashes[i].split('='); + vars.push(hash[0]); + vars[hash[0]] = hash[1]; + } + return vars; + } +}); + +//个人中心左侧栏头像加载失败后,显示默认头像 +(function() { + $(window).load(function() { + var thumb = document.getElementById('user-thumb'); + var img; + + if (!thumb) { + return; + } + + img = new Image(); + + img.src = thumb.src; + + img.onerror = function() { + $(thumb).parent().append('<div class="default-user-thumb"></div>').end().remove(); + }; + }); +}()); + +window.cookie = cookie; + +window.setCookie = setCookie; + +window.getUser = getUser; + +window.getUid = getUid; + +window.getShoppingKey = getShoppingKey; + +window.queryString = queryString; + +}); +define("js/footer", ["jquery"], function(require, exports, module){ +/** + * 尾部 + * @author: wangqing<robin.wang@yoho.cn> + * @date: 2015/12/01 + */ + +var $ = require("jquery"); + +var $returnTop = $('.return-top'); + +/** + * 订阅 + * @return {[type]} [description] + */ +function actionSubscription() { + var $subscriberBox = $('#subscriber-box'), + $subscriberBtn = $('#subscriber-btn'), + emailReg = /^[.\-_a-zA-Z0-9]+@[\-_a-zA-Z0-9]+\.[a-zA-Z0-9]/; + + var iconCode = { + mail: '', + tick: '' + }; + + $subscriberBox.focus(function() { + $(this).val('').css('color', ''); + $subscriberBtn.removeClass('done').html(iconCode.mail); + }); + + $subscriberBtn.click(function() { + var email = $.trim($subscriberBox.val()); + + if (email !== '' && emailReg.test(email)) { + try { + $.ajax({ + url: '//www.yohobuy.com/common/emailSubscriber', + dataType: 'jsonp', + data: { + email: email, + tmp: Math.random(), + uid: window.getUid() + }, + success: function(data) { + if (data.data.result === 1) { + $subscriberBox.val('已订阅到:' + email); + $subscriberBtn.addClass('done').html(iconCode.tick); + } else { + $subscriberBox.css('color', 'red'); + } + } + }); + } catch (e) { + console.log(e.message); + } + } else { + $subscriberBox.css('color', 'red'); + } + }); +} + +function actionhomeFootChange() { + var $vote = $('.vote'), + $feedBackPage = $('#feed-back-page'), + count = $vote.children('li').length; + + //意见反馈 + $feedBackPage.on('click', 'span', function() { + var $this = $(this); + + if ($this.hasClass('cur')) { + return; + } + + $this.siblings('.cur').removeClass('cur'); + $this.addClass('cur'); + + $vote.children().not('.hide').addClass('hide') + .end() + .eq($this.index()).removeClass('hide'); + }); + + $vote.on('click', '.feed-back-btn', function() { + var $this = $(this), + $li = $this.closest('li'), + index = $li.index(), + _solution = []; + + var _answer = $li.find('.feedback-answer').val(), + _feedback = $li.find('.feedback-id').val(), + _question = $li.find('.question-id').val(); + + $li.find(':checked').each(function() { + _solution.push($(this).val()); + }); + + $.ajax({ + url: '//www.yohobuy.com/common/suggestFeedback', + dataType: 'jsonp', + data: { + feedback_id: _feedback || 0, + question_id: _question || 0, + answer: _answer || '', + solution: _solution.join(',') + }, + success: function(data) { + var next = index + 1; + + if (~~data.data.result === 1) { + if (index === count - 1) { + alert('感谢您的参与!'); + return; + } + + $li.addClass('hide'); + + $vote.children(':eq(' + (index + 1) + ')').removeClass('hide'); + $feedBackPage.children('.cur').removeClass('cur'); + $feedBackPage.children(':eq(' + next + ')').addClass('cur'); + } + } + }); + }); +} + +function rePosReturn() { + if ($(window).height() > $(document).height()) { + $returnTop.addClass('hide'); + } + + // 只在窗口高度大于文档高度的时候,隐藏返回顶部 + // else { + // $returnTop.removeClass('hide'); + // } +} + +//返回顶部 +$returnTop.click(function() { + $('html,body').animate({ + scrollTop: 0 + }, 500); +}); + +$(window).scroll(function() { + if ($(window).scrollTop() === 0) { + $returnTop.addClass('hide'); + } else { + $returnTop.removeClass('hide'); + } +}); + +//如果初始是隐藏的,监听图片加载,重新确定return-top的高度 +if ($returnTop.hasClass('hide')) { + $('img').load(rePosReturn); +} + +//初始化 +actionSubscription(); +actionhomeFootChange(); + +//暴露给有可能通AJAX改变内容的页面去用 +window.rePosReturnTop = rePosReturn; + +}); +define("js/header", ["jquery","handlebars","source-map","index"], function(require, exports, module){ +/** + * 头部 + * @author: wangqing<robin.wang@yoho.cn> + * @date: 2015/12/01 + */ +var $ = require("jquery"); +var handlebars = require("handlebars"); +var json2 = require("index"); +var vipInfoCombine = null; //用户信息编译模板 +var loginInfoCombine = null; //登录信息编译模板 +// var apiDomain = $('#api-domain').val(); //获取数据的地址 +var cartTpl = ''; //购物车模板 +/** + * 搜寻的时候过滤非法字符(+-/:等非法字符单独出现) + * @type {RegExp} + */ +var reg = /^[\^\!\+\-\(\)\:\[\]\\\{\}\~\*\?\|\&\;\/]{0,}$/g; +var keyword = ''; +var link = ''; +var dataLayer = []; +var requestFrame = null; +var logoanimationstart = 0; +var $logotrans = $('.icon-logo'); +var isen = true; +var loopdurationtime = 500; +var globaltimeout; +var onetimeoout; +var $loginBox = $('#loginBox'); +/** + * banner和地址的映射 + * @type {Object} + */ +var bannerMap = { + listboys: '4f78b0f418fc42314d8b6e791cfb7fa8', + listgirls: '00c1f025a51b6b597dc37925951ea27d', + listkids: 'b02df11184727701ade1b6de9737d08c', + listlifestyle: 'fd35c52dced0c880976ba858346d1fc5', + searchboys: '9fb8986ea700cc27a8057361c3924394', + searchgirls: 'e3e207a1443ca60c8037fe52a5560c18', + searchkids: '620fc77f479da8feaeb06f2324e5d0bb', + searchlifestyle: 'a3c93301c6ffaf3ed0f36a4a451be36d', + uniquebrandboys: '2ebb0810c0d1a67e5229149c9c3aba7d', + uniquebrandgirls: '99e23385f4ba4b65f406b7e2968ac821', + uniquebrandkids: 'a74ebc9b17840c91b9ea46568111fe6b', + uniquebrandlifestyle: '0e8c81ead53f56302baa4d0ad967f527', + brandsboys: '77b352db07129c76a9d532acad149f9f', + brandsgirls: 'bf047f16e52ebc38be5ce9c7623831e6', + brandskids: 'e3ae1ce9b5e13c6d271ef3eccb831652', + brandslifestyle: 'e4ac8029c30f65d7f1af030980d140fe', + newboys: '869d3c5f3b450fb52101d00a61ce87cb', + newgirls: 'd953b6dfdac02483d1dcce8d96055954', + newkids: '0874cb6d75df8e0e78f2d475e53ecc08', + newlifestyle: '43e8fc8e178115c262bbce2bd0012db7', + saleboys: 'c846e3165c994769b4201d8c32f3ae9b', + salegirls: '52b1d389edcbc62d65de71b80c4d6ad0', + salekids: 'ad8b1703c761ba00973868ab5199cc27', + salelifestyle: '7acc64905c70ac91846f43fb2cec4bbd', + homeboys: 'b0856a771ef1b59ab1234c74688fa42d', + homegirls: '2bd61fa12e4933211518f70fe5ce3c48', + homekids: '895c59e8c64b40399c9533509507320c', + homelifestyle: '2e037d4e25d2767352ca3e0a4627f7bd', + indexboys: '0c911d3000f52e8ca7cffb74f5864c29', + indexgirls: 'b645b8980c423ab30485e0a9d08c2ef7', + indexkids: '17f6d5d5d454d2c507bc5fcbc90f7756', + indexlifestyle: '735cd393e841762af8793c346abbbc36' +}; +var cookieMap = {}; + +var bannerApi = '//new.yohobuy.com/common/getbanner?content_code='; + +$('#api-domain').remove(); //删除信息表单 + +function getSource(column, postition, event) { + try { + dataLayer.push({ + louceng: column, + weizhi: postition, + event: event + }); + } catch (e) {} +} + + +window.submitSearch = function() { + var $keywordinput = $('#query_key').val(); + var $defaultsearch = $('#defaultsearch').val(); + var column = 'Search'; + var postition = 'Head Search'; + var event = 'Search'; + var $formatkeyword, + $formatkeywordinput; + + $formatkeyword = $.trim(keyword.toLowerCase()); + $formatkeywordinput = $.trim($keywordinput.toLowerCase()); + getSource(column, postition, event); + if (link !== '' && keyword !== '' && $formatkeyword === $formatkeywordinput) { + location.href = link.replace('\'', ''); + } else { + if (reg.test($keywordinput) && $keywordinput !== '') { + location.href = '//search.yohobuy.com/error?query=' + $keywordinput + '&result=error'; + } else { + if ($keywordinput === '') { + $('#query_key').val($defaultsearch); + } + $('#searchForm').submit(); + return false; + } + } +}; +/** + * 增加关键字 + * @return {[type]} [description] + */ +function actionAddKeyWords() { + var $keywords = $('#nav_keyword').text(); + var defaultsearch = 'vans'; + var $querykey = $('#query_key'); + + if ($keywords !== '') { + $querykey.css({ + color: '#000' + }); + $querykey.val($keywords); + } else { + $querykey.css({ + color: '#e0e0e0' + }); + $querykey.val(defaultsearch); + $querykey.on('focus', function(e) { + $querykey.css({ + color: '#000' + }); + $querykey.val(''); + }); + } +} +/** + * 定义购物车扩展 + */ + +function actionGoodsCart() { + var defaults = { + cookie: '_g', + cartNum: '' + }; + var params = ''; + var cartInfo = ''; + var queryNum = 0; + var listIndex = 0; + var tmpList = 0; + var totalNum = 0; + var text = ''; + + $.fn.miniCart = function(options) { + params = $.extend(defaults, options); + if (typeof window.cookie(params.cookie) === 'undefined') { + cartInfo = null; + } else { + if (params.cookie) { + try { + cartInfo = json2.parse(window.cookie(params.cookie)); + } catch (e) { + + } + + } + + } + if (cartInfo !== null && cartInfo !== '') { + totalNum = parseInt(cartInfo._nac) + parseInt(cartInfo._ac); + if (totalNum === 0) { + $('#icart-num').attr('class', 'icart-num icart-none'); + } else { + $('#icart-num').attr('class', 'icart-num'); + } + $(params.cartNum).html(totalNum); + } + }; + $.fn.search = function(searchDomain) { + + function getKeywords(obj) { + var key = $.trim($(obj).val()); + + key = key.replace(new RegExp('\'', 'gm'), ''); //去掉特殊字符 + if (key === '') { + $('.search-list').hide(); + return false; + } + key = encodeURI(key); + $.get(searchDomain + '?query=' + key, function(htmlData) { + $('.search-list').html(htmlData.data); + queryNum = $('.search-list').children('li').length; + listIndex = -1; + if (queryNum > 0) { + $('.search-list').show(); + } else { + $('.search-list').hide(); + } + $('.search-list').find('a').hover(function() { + $(this).css('background-color', '#eee'); + }, function() { + $(this).css('background-color', '#fff'); + }); + }, 'jsonp'); + } + + function getText(obj) { + $('.search-list li:eq(' + tmpList + ')').children('a').css('background-color', '#fff'); + $('.search-list li:eq(' + listIndex + ')').children('a').css('background-color', '#eee'); + text = $('.search-list li:eq(' + listIndex + ')').children('a').attr('title'); + $('#query_key').val(text); + } + return this.each(function() { + $(this).keyup(function(event) { + if (event.which === 38) { + if (queryNum === 0) { + return false; + } + if (listIndex === -1) { + listIndex = 0; + } + tmpList = listIndex; + listIndex = (listIndex - 1 + queryNum) % queryNum; + getText(this); + } else if (event.which === 40) { + if (queryNum === 0) { + return false; + } + tmpList = listIndex; + listIndex = (listIndex + 1) % queryNum; + getText(this); + } else if (event.which === 13) { + window.submitSearch(); + } else { + getKeywords(this); + } + }); + }); + }; + $.extend({ + getData: function(domain, options, onSuccess) { + var defaults = { + page: 1, + method: '', + v: 1, + return_type: 'jsonp', + open_key: '12345', + tmp: Math.random() + }; + var params = ''; + + if (typeof (domain) === undefined || domain === '') { + return false; + } + params = $.extend(defaults, options); + params.page = params.page || 1; + + // if (params.method === '') { + // return false; + // } + + try { + $.getJSON(domain + '/?callback=?', params, function(_data) { + if (onSuccess !== '') { + if (typeof onSuccess(_data.data) !== 'undefined') { + json2.parse(onSuccess(_data.data)); + } + return false; + } + }); + } catch (e) { + console.log(e.message); + } + }, + getShoppingKey: function() { + var shoppingInfo = window.cookie('_g'); + var shoppingData = json2.parse(shoppingInfo); + var spk; + + if (typeof shoppingInfo === 'undefined' || shoppingInfo === null) { + spk = window.cookie('_SPK'); + return spk ? spk : ''; + } + return shoppingData._k; + } + }); +} + +/** + * 时间戳 + * @param {[type]} v1 [description] + * @param {[type]} options) { if (v1 [description] + * @return {[type]} [description] + */ +handlebars.registerHelper('timestamp', function() { + return new Date().getTime(); +}); +/** + * 头像 + * @param {[type]} v1 [description] + * @param {[type]} options) { if (v1 [description] + * @return {[type]} [description] + */ +handlebars.registerHelper('headerimg', function(headerimg) { + + if (headerimg === '') { + return '//img10.static.yhbimg.com/headimg/2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif' + + '?imageView/2/w/100/h/100'; + } else { + return headerimg; + } + +}); +/** + * 判断等级为3的helper + * @param {[type]} v1 [description] + * @param {[type]} options) { if (v1 [description] + * @return {[type]} [description] + */ + +handlebars.registerHelper('equallevelthree', function(v1, options) { + + if (v1 === '3') { + return options.fn(this); + } else { + return options.inverse(this); + } +}); + +/** + * 判断不为'0'的helper + * @param {[type]} v1 [description] + * @param {[type]} options) { if (v1 [description] + * @return {[type]} [description] + */ + +handlebars.registerHelper('notzero', function(v1, options) { + if (v1 !== '0') { + return options.fn(this); + } else { + return options.inverse(this); + } +}); + +/** + * 获取头部banner的回调函数 + * @param {[type]} data [description] + */ +function JsonPCallBack(data) { + var topbanner; + + if (+data.code === 200) { + if (typeof data.data === 'object') { + if (data.data.url !== '') { + topbanner = '<a target="_blank" href="' + data.data.url + '" class="page-top-banner"' + + 'style="height:36px;border:none;background-image:url(' + window.unescape(data.data.src) + ');' + + 'background-position: center;display:block;"> </a>'; + } else { + topbanner = '<div class="yoho-notice">' + + '<div class="notice-container center-content">' + + '<h1 class="notice-title">关于系统升级的公告</h1>' + + '<div class="notice-content">' + + '<p class="tips">尊敬的顾客:</p>' + + '<p class="detail">您好!为了向您提供更优质的服务,目前系统正在升级,请耐心等待。</p>' + + '<p class="detail">系统升级期间,部分地区用户体验会有暂时中断,如遇紧急事宜,欢迎垂询客服热线:' + + '400-889-9646 09:00-22:30(周一至周日)。稍后系统将恢复正常' + + '使用,欢迎您继续光顾YOHO!BUY有货!带来不便之处深表歉意,请您谅解!</p>' + + '</div>' + + '</div>' + + '</div>'; + } + $('body').prepend(topbanner); + } + } +} + +window.JsonPCallBack = JsonPCallBack; + + +/** + * 获得banner数据 + * @param {[string]} code [banner对应的编码] + * @return {[type]} [description] + */ +function getBannerData(code) { + var script = document.createElement('script'); + + script.src = bannerApi + code + '&client_type=web&callback=JsonPCallBack'; + document.getElementsByTagName('head')[0].appendChild(script); +} + +/** + * 显示和隐藏 + * @param {[type]} sourceClass [description] + * @param {[type]} targetClass [description] + * @return {[type]} [description] + */ +function toggleDisplay(sourceClass, targetClass) { + var $that, + targetobj; + + $(sourceClass).hover(function(e) { + e.preventDefault(); + $that = $(this); + targetobj = $(targetClass)[0]; + if (targetobj.style.display === '') { + $that.addClass('acttags'); + targetobj.style.display = 'block'; + } else { + $that.removeClass('acttags'); + targetobj.style.display = ''; + } + }); +} + +/** + * 执行顶部显示和隐藏 + * @return {[type]} [description] + */ +function actionTopTagToggle() { + var tags = [{ + sourceClass: '.myyoho', + targetClass: '.myyoho-info' + }, { + sourceClass: '.phone', + targetClass: '.qr' + }], + obj, + i; + + for (i = 0; i < tags.length; i++) { + obj = tags[i]; + toggleDisplay(obj.sourceClass, obj.targetClass); + } +} +/** + * 执行顶部群组鼠标交互 + * @return {[type]} [description] + */ +function actionYoHoGroup() { + var $this; + + $('.yohogroup').mouseenter(function() { + $this = $(this); + $this.text($this.attr('cn')); + }); + $('.yohogroup').mouseleave(function() { + $this = $(this); + $this.text($this.attr('en')); + }); +} + +/** + * 检测是否支持css3的动画 + * @return {Boolean} [description] + */ +function isSupportCss3Animation() { + var thisFunc, + prefixList = ['webkit', 'moz', 'ms'], + i; + + for (i = 0; i < prefixList.length; i++) { + thisFunc = prefixList[i] + 'RequestAnimationFrame'; + if (window[thisFunc]) { + return true; + } else { + return false; + } + } + +} +/** + * css3动画 + * @param {Array} ) { var thisFunc, prefixList [description] + * @return {[type]} [description] + */ +function requestFrameAct() { + var prefixList = ['webkit', 'moz', 'ms']; + var func1 = prefixList[0] + 'RequestAnimationFrame'; + var func2 = prefixList[1] + 'RequestAnimationFrame'; + var func3 = prefixList[2] + 'RequestAnimationFrame'; + + if (window[func1]) { + return function(callback) { + requestAnimationFrame(callback); + }; + } + if (window[func2]) { + return function(callback) { + window[func2](callback); + }; + } + if (window[func3]) { + return function(callback) { + window[func3](callback); + }; + } + return function(callback) { + window.setTimeout(callback, 67); + }; +} + + +/** + * css3动画 + * @return {[type]} [description] + */ + +function tsAnimate() { + logoanimationstart += 10; + $logotrans.css({ + transform: 'rotateX(' + logoanimationstart + 'deg)', + '-webkit-transform': 'rotateX(' + logoanimationstart + 'deg)', + '-moz-transform': 'rotateX(' + logoanimationstart + 'deg)' + }); + if (logoanimationstart / 90 % 2 === 1) { + if (isen) { + $logotrans.css('background-image', 'url(//static.yohobuy.com/newheader/img/logo1.png)'); + isen = false; + } else { + $logotrans.css('background-image', 'url(//static.yohobuy.com/newheader/img/logo_e.png)'); + isen = true; + } + } + if (logoanimationstart / 90 % 2 === 0 && logoanimationstart % 360 !== 0) { + window.setTimeout(tsAnimate, 3000); + } else { + if (logoanimationstart % 360 === 0) { + window.setTimeout(tsAnimate, 1 * 60 * 1000); + } else { + requestFrame(function() { + tsAnimate(); + }); + } + } +} + +/** + * 淡出 + * @return {[type]} [description] + */ +function fadeAnimate() { + if (globaltimeout) { + window.clearTimeout(globaltimeout); + } + $logotrans.fadeOut(loopdurationtime, function() { + isen = false; + + $logotrans.css('background-image', 'url(//static.yohobuy.com/newheader/img/logo.png)'); + $logotrans.fadeIn(loopdurationtime, function() { + onetimeoout = window.setTimeout(function() { + $logotrans.fadeOut(loopdurationtime, function() { + window.clearTimeout(onetimeoout); + isen = true; + $logotrans.css('background-image', + 'url(//static.yohobuy.com/newheader/img/logo_e.png)'); + $logotrans.fadeIn(loopdurationtime, function() { + globaltimeout = window.setTimeout(fadeAnimate, 1 * 60 * 1000); + }); + }); + }, 3000); + }); + }); +} +/** + * 执行头部logo动画 + * @return {[type]} [description] + */ +function actionTopLogoAnimate() { + if (isSupportCss3Animation()) { + requestFrame = requestFrameAct(); + window.setTimeout(tsAnimate, 3000); + } else { + window.setTimeout(fadeAnimate, 3000); + } +} +window.newArr = []; +window.wrapperindex = 0; +window.gindex = 0; +window.targetArr1 = []; +window.targetArr2 = []; +window.targetArr3 = []; +window.oh1 = 0; +window.oh2 = 0; +window.oh3 = 0; +window.valueIndex = 0; +window.nowIndex = 0; +window.inner1 = ''; +window.inner2 = ''; +window.inner3 = ''; +window.finalresult = ''; + +function createNewArray(obj) { + var $thirdnavpanel = $(obj); + + $thirdnavpanel.find('.thirdnavbar').each(function() { + var $that = $(this); + var $alink = $that.find('a'); + var _href = $alink.attr('href'); + var hottag = $alink.attr('hot') === 'hot' ? true : false; + var objt = {}; + + if ($that.hasClass('category-title')) { + objt = { + type: 'title', + height: 49, + content: $that.text(), + index: window.valueIndex, + href: _href, + hot: false + }; + } else { + objt = { + type: 'catlist', + height: 36, + content: $alink.text(), + index: window.valueIndex, + href: _href, + hot: hottag + }; + } + window.valueIndex++; + window.newArr.push(objt); + }); +} + +function createWrapper() { + var arrlength = window.newArr.length; + var i = 0; + var objnew = []; + var aobj = []; + var bobj = []; + var cobj = []; + var final1 = '', + final2 = '', + final3 = ''; + var a = 0; + var b = 0; + var c = 0; + + for (i; i < arrlength; i++) { + objnew = window.newArr[i]; + if (window.gindex === 0) { + window.oh1 = (window.oh1 + objnew.height); + if (window.oh1 >= 340 && i !== (arrlength - 1)) { + window.targetArr1 = window.newArr.slice(0, objnew.index + 1); + window.nowIndex = objnew.index + 1; + window.gindex++; + } + if (i === (arrlength - 1)) { + window.targetArr1 = window.newArr.slice(0, arrlength + 1); + break; + } + } + if (window.gindex === 1) { + window.oh2 = (window.oh2 + objnew.height); + if (window.oh2 >= 340 && i !== (arrlength - 1)) { + window.targetArr2 = window.newArr.slice(window.nowIndex, objnew.index + 1); + window.nowIndex = objnew.index + 1; + window.gindex++; + } + if (i === (arrlength - 1)) { + window.targetArr2 = window.newArr.slice(window.nowIndex, arrlength + 1); + break; + } + } + if (window.gindex === 2) { + window.oh3 = (window.oh3 + objnew.height); + if (window.oh3 >= 340 && i !== (arrlength - 1)) { + window.targetArr3 = window.newArr.slice(window.nowIndex, objnew.index + 1); + window.nowIndex = objnew.index + 1; + window.gindex++; + break; + } + if (i === (arrlength - 1)) { + window.targetArr3 = window.newArr.slice(window.nowIndex, arrlength + 1); + break; + } + } + } + for (a; a < window.targetArr1.length; a++) { + aobj = window.targetArr1[a] || {}; + if (aobj.type === 'title') { + window.inner1 = window.inner1 + + '<li class="cattitle"><h3><a href="' + + aobj.href + + '">' + + aobj.content + + '</a></h3></li>'; + } else { + if (aobj.hot === true) { + window.inner1 = window.inner1 + + '<li class="catdetail"><a class="thirdcatelink hot" href="' + + aobj.href + + '">' + + aobj.content + + '</a></li>'; + } else { + window.inner1 = window.inner1 + + '<li class="catdetail"><a class="thirdcatelink" href="' + + aobj.href + '">' + + aobj.content + + '</a></li>'; + } + + } + } + for (b; b < window.targetArr2.length; b++) { + bobj = window.targetArr2[b] || {}; + if (bobj.type === 'title') { + window.inner2 = (window.inner2 + + '<li class="cattitle"><h3><a href="' + + bobj.href + '">' + + bobj.content + + '</a></h3></li>'); + } else { + if (bobj.hot === true) { + window.inner2 = (window.inner2 + + '<li class="catdetail"><a class="thirdcatelink hot" href="' + + bobj.href + '">' + bobj.content + '</a></li>'); + } else { + window.inner2 = (window.inner2 + + '<li class="catdetail"><a class="thirdcatelink" href="' + + bobj.href + '">' + bobj.content + '</a></li>'); + } + + } + } + for (c; c < window.targetArr3.length; c++) { + cobj = window.targetArr3[c] || {}; + if (cobj.type === 'title') { + window.inner3 = (window.inner3 + + '<li class="cattitle"><h3><a href="' + + cobj.href + + '">' + + cobj.content + + '</a></h3></li>'); + } else { + if (cobj.hot === true) { + window.inner3 = (window.inner3 + + '<li class="catdetail"><a class="thirdcatelink hot" href="' + + cobj.href + '">' + + cobj.content + + '</a></li>'); + } else { + window.inner3 = (window.inner3 + + '<li class="catdetail"><a class="thirdcatelink" href="' + + cobj.href + '">' + + cobj.content + + '</a></li>'); + } + + } + } + if (window.inner1 !== '') { + final1 = '<ul class="cate_row1 cate_row">' + + window.inner1 + + '</ul>'; + } + if (window.inner2 !== '') { + final2 = '<ul class="cate_row2 cate_row">' + + window.inner2 + + '</ul>'; + } + if (window.inner3 !== '') { + final3 = '<ul class="cate_row3 cate_row">' + + window.inner3 + + '</ul>'; + } + window.finalresult = final1 + final2 + final3; + $('#' + window.wrapperindex).empty().append(window.finalresult); +} + +function actionNav() { + $('.categorywrapper').each(function(index) { + window.wrapperindex = $(this).attr('id'); + window.newArr = []; + window.gindex = 0; + window.targetArr1 = []; + window.targetArr2 = []; + window.targetArr3 = []; + window.oh1 = 0; + window.oh2 = 0; + window.oh3 = 0; + window.valueIndex = 0; + window.nowIndex = 0; + window.inner1 = ''; + window.inner2 = ''; + window.inner3 = ''; + createNewArray($(this).find('.category')); + createWrapper(); + }); +} + +/** + * 获取三级导航的tip图标 + * @return {[type]} [description] + */ +function actionTipPic() { + var tipscode = {}; + var $contentcode = ''; + var $img = ''; + var $title = ''; + var $link = ''; + var logolink = ''; + + $(document).on('mouseenter', '.sub-nav-item', function() { + $contentcode = $(this).find('.showdetail').attr('data-code'); + if ($contentcode) { + if (!tipscode[$contentcode]) { + tipscode[$contentcode] = $contentcode; + $img = $(this).find('.showdetail').find('img'); + $title = $(this).find('.showdetail').find('.title'); + $link = $(this).find('.showdetail').find('a'); + $.get(bannerApi + $contentcode + '&width=337&height=250&client_type=web', function(rsdata) { + $img.attr('src', rsdata.data.src); + $link.attr('href', rsdata.data.url); + $title.text(rsdata.data.title); + }, 'jsonp'); + } + } + }); + logolink = $('.cure').find('.name-cn').find('a').attr('href'); + $('.main-link').attr('href', logolink); +} + + + +function closeCover() { + var $cover = $('#cover'); + + $cover.remove(); +} +/** + * 首次进入有弹窗 + * @return {[type]} [description] + */ +function actionCover() { + var gender = window.cookie('_Gender'); + var newMask = ''; + var windowheight = ''; + var selfheight = ''; + var containertop; + var length = ''; + + if (window.location.host === 'www.yohobuy.com' && + (typeof gender === 'undefined' || gender === '' || gender === null)) { + $.get('//www.yohobuy.com/index/guide', function(data) { + newMask = document.createElement('div'); + newMask.id = 'cover'; + newMask.innerHTML = data; + document.body.appendChild(newMask); + windowheight = $(window).height(); + selfheight = $('.guide-box').height(); + containertop = windowheight / 2 - selfheight / 2; + length = $('.guide-box .clear').find('li').length; + $('.guide-box').css({ + width: (200 * length) + 'px', + top: containertop + 'px' + }); + $('#cover').bind('click', function(event) { + window.setCookie('_Gender', '1,3', { + path: '/', + domain: '.yohobuy.com', + expires: 90 + }); + window.setCookie('_Channel', 'boys', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + closeCover(); + }); + $('#cover .guide-box .close').bind('click', function(event) { + getSource('弹窗', 'CLOSE', 'homepage_man'); + window.setCookie('_Gender', '1,3', { + path: '/', + domain: '.yohobuy.com', + expires: 90 + }); + window.setCookie('_Channel', 'boys', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + closeCover(); + }); + $('.boys img , .boys .go').bind('click', function(event) { + getSource('弹窗', 'BOYS', 'homepage_man'); + window.setCookie('_Gender', '1,3', { + path: '/', + domain: '.yohobuy.com', + expires: 90 + }); + window.setCookie('_Channel', 'boys', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + closeCover(); + }); + $('.girls img, .girls .go').bind('click', function(event) { + getSource('弹窗', 'GIRLS', 'homepage_woman'); + window.setCookie('_Gender', '2,3', { + path: '/', + domain: '.yohobuy.com', + expires: 90 + }); + window.setCookie('_Channel', 'girls', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + }); + $('.lifestyle img, .lifestyle .go').bind('click', function(event) { + window.setCookie('_Channel', 'lifestyle', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + getSource('弹窗', 'LIEFSTYLE', 'homepage_lifestyle'); + }); + $('#cover .guide-box').bind('click', function(event) { + event.stopPropagation(); + }); + }); + } +} +/** + * 查询跳转后保留关键字 + * @return {[type]} [description] + */ +function actionAddKeyWords() { + var $keywords = $('#nav_keyword').text(); + var defaultsearch = $('#defaultsearch').val(); + var $querykey = $('#query_key'); + + if ($keywords !== '') { + $querykey.css({ + color: '#000' + }); + $querykey.val($keywords); + } else { + $querykey.css({ + color: '#e0e0e0' + }); + $querykey.val(defaultsearch); + $querykey.on('focus', function(e) { + $querykey.css({ + color: '#000' + }); + $querykey.val(''); + }); + } + $(document).click(function(e) { + if (!$(e.target).closest('.searchspan, .search-list').length) { + $('.search-list').hide(); + } + }); +} + + +/** + * cookie 初始化 + * @return {[type]} [description] + */ +function actionInitCookie() { + var $cookieGender = window.cookie('_Gender'); + var $target = $('.cure'); + + if (typeof $cookieGender !== 'undefined' && $cookieGender !== '') { + window.setCookie('_Gender', 1, { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + } + if ($target.find('.name-cn a').text() === '男生') { + window.setCookie('_Gender', '1,3', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + window.setCookie('_Channel', 'boys', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + } + if ($target.find('.name-cn a').text() === '女生') { + window.setCookie('_Gender', '2,3', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + + // window.setCookie('_Channel', 'girls', { + // path: '/', + // domain: '.yohobuy.com', + // expires: 7 + // }); + } + if ($target.find('.name-cn a').text() === '创意生活') { + window.setCookie('_Channel', 'lifestyle', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + } + if ($target.find('.name-cn a').text() === '潮童') { + window.setCookie('_Channel', 'kids', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + } +} +/** + * 提前设置好频道的cookie + */ +function setChannelCookie() { + $('.first-nav-item').click(function() { + var _cookieGender = window.cookie('_Gender'); + + if (typeof _cookieGender !== 'undefined' && _cookieGender !== '') { + window.setCookie('_Gender', 1, { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + } + if ($(this).find('.name-cn a').text() === '男生') { + window.setCookie('_Gender', '1,3', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + window.setCookie('_Channel', 'boys', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + } + if ($(this).find('.name-cn a').text() === '女生') { + window.setCookie('_Gender', '2,3', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + window.setCookie('_Channel', 'girls', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + } + if ($(this).find('.name-cn a').text() === '创意生活') { + window.setCookie('_Channel', 'lifestyle', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + } + if ($(this).find('.name-cn a').text() === '潮童') { + window.setCookie('_Channel', 'kids', { + path: '/', + domain: '.yohobuy.com', + expires: 7 + }); + } + }); + +} +/** + * cookie集合 + * @type {Object} + */ +function actionExeCookieMap() { + var cookies = document.cookie; + var cookiearr = cookies.split(';'); + var i; + var temparr; + var key; + + for (i = 0; i < cookiearr.length; i++) { + temparr = cookiearr[i].split('='); + if (typeof temparr[0] !== 'undefined') { + key = temparr[0].replace(/\s/g, ''); + cookieMap[key] = temparr[1]; + } + } +} + + +/** + * 购物车商品数量 + * @return {[type]} [description] + */ +function actionUpdateCartNum() { + $('#miniCartBox').miniCart({ + cartNum: '.ic-infomation' + }); +} +/** + * 加载购物车数据 + * @return {[type]} [description] + */ +function loadCartData() { + var shoppingInfo, + shoppingData, + strK; + + $.getData('//www.yohobuy.com/common/shoppingCart', '', function(jsonData) { + if (cartTpl === '') { + cartTpl = handlebars.compile($('#mini-cart-tpl').html()); + } + $('#miniCartBox').children('.gobuy-wrapper').html(cartTpl({ + carData: jsonData + })); + if (parseInt($('.ic-infomation').html()) === 0) { + $('#miniCartBox .gobuy-wrapper').html('<div class="gobuy-empty">' + + '<h3 class="information">您的购物车暂无商品</h3></div>'); + } + if ($('#miniCartBox .goods-list li').length < 1) { + shoppingInfo = window.cookie('_g'); + shoppingData = json2.parse(shoppingInfo); + if (shoppingData !== null) { + strK = '{"_k":"' + shoppingData._k + '","_nac":0' + ',"_ac":0,"_r":0}'; + window.setCookie('_g', strK, { + path: '/', + domain: '.yohobuy.com' + }); + } + $('.ic-infomation').html(0); + $('#miniCartBox .gobuy-wrapper').html('<div class="gobuy-empty">' + + '<h3 class="information">您的购物车暂无商品</h3></div>'); + } + }); +} +/** + * 删除购物车数据 + * @param {[type]} id [description] + * @param {Boolean} isreduce [description] + * @return {[type]} [description] + */ +function delCartGoods(productSku, promotionId, productNum) { + + $.getData('//www.yohobuy.com/common/delCartGoods', { + + // shopping_key: $.getShoppingKey(), + product_sku: productSku, + promotion_id: promotionId, + product_num: productNum + }, function(jsonData) { + var shoppingInfo = window.cookie('_g'); + var shoppingData = json2.parse(shoppingInfo); + var strK = '{"_k":"' + shoppingData._k + '","_nac":' + jsonData.total_goods_num + ',"_ac":0,"_r":0}'; + + window.setCookie('_g', strK, { + path: '/', + domain: '.yohobuy.com' + }); + loadCartData(); + actionUpdateCartNum(); + }); +} + + +/** + * 监听购物车删除 + * @return {[type]} [description] + */ +function actionListenDelCarGoods() { + var $delcargoods, productSku, promotionId, productNum; + + $(document).on('click', '.goodscardelete', function(e) { + $delcargoods = $(this); + productSku = $delcargoods.attr('product_sku'); + promotionId = $delcargoods.attr('promotion_id'); + productNum = $delcargoods.prev('h3').find('.num').html(); + delCartGoods(productSku, promotionId, productNum); + }); +} +/** + * 监听点击更多打折商品 + * @return {[type]} [description] + */ +function actionListenCartMore() { + var $morecart; + + $(document).on('click', '.mycart_i_down', function(e) { + $morecart = $(this); + $morecart.toggleClass('mycart_i_up'); + $('#mycartmore').slideToggle(300); + }); +} +/** + * 点击购物车 + * @return {[type]} [description] + */ +function actionClickMiniCartBox() { + var $target; + var shopcarurl = '//www.yohobuy.com/shopping/cart'; + + $('#miniCartBox').on('click', function(e) { + $target = $(e.target); + if ($target.hasClass('gobuy')) { + window.location.href = shopcarurl; + } + }); +} + +/** + * 显示购物车效果 + * @param {Boolean} isShow [description] + * @return {[type]} [description] + */ +function showMiniCart(isShow) { + if (isShow === 1) { + $('#miniCartBox').addClass('list-cur'); + $('.gobuy-wrapper').show(); + if (parseInt($('.ic-infomation').html()) !== 0) { + $('#miniCartBox .gobuy-wrapper').html('<div class="gobuy-loading">' + + '<h3 class="information">加载中,请稍后</h3></div>'); + loadCartData(); + } else { + $('#miniCartBox .gobuy-wrapper').html('<div class="gobuy-empty">' + + '<h3 class="information">您的购物车暂无商品</h3></div>'); + } + } else { + $('#miniCartBox').removeClass('list-cur'); + $('.gobuy-wrapper').hide(); + } +} + + +/** + * 鼠标购物车的滑入滑出效果 + * @return {[type]} [description] + */ +function actionGoodsCarMouseEffect() { + var $target; + + $('#miniCartBox').mouseenter(function(e) { + $target = $(e.target); + if ($target.attr('id') === 'miniCartBox' || $target.attr('class') === 'ic-infomation') { + showMiniCart(1); + } + }); + $('#miniCartBox').mouseleave(function(e) { + showMiniCart(0); + }); +} +/** + * 获得banner & 异常通知 + * @return {[type]} [description] + */ +function actionGetBannerAndNotice() { + var INDEXKIDS = 'indexkids', + INDEXLIFESTYLE = 'indexlifestyle', + INDEXBOYS = 'indexboys', + INDEXWOMAN = 'indexgirls', + UNIQUEBRAND = 'uniquebrand'; + var url = window.location.href; + var host = window.location.host; + var code = ''; + var firstarea; + + if (url.indexOf('search') !== -1) { + code = bannerMap['search' + cookieMap._Channel]; + } + if (url.indexOf('list') !== -1) { + code = bannerMap['list' + cookieMap._Channel]; + } + if (url.indexOf('brands') !== -1) { + code = bannerMap['brands' + cookieMap._Channel]; + } + if (url.indexOf('new') !== -1) { + code = bannerMap['new' + cookieMap._Channel]; + } + if (url.indexOf('sale') !== -1) { + code = bannerMap['sale' + cookieMap._Channel]; + } + if (url.indexOf('home') !== -1) { + code = bannerMap['home' + cookieMap._Channel]; + } + if (url.indexOf('kids') !== -1) { + code = bannerMap[INDEXKIDS]; + } + if (url.indexOf('woman') !== -1 || url.indexOf('girls') !== -1) { + code = bannerMap[INDEXWOMAN]; + } + if (url.indexOf('lifestyle') !== -1) { + code = bannerMap[INDEXLIFESTYLE]; + } + if (url.indexOf('www.yohobuy.com') !== -1 && window.location.pathname === '/') { + code = bannerMap[INDEXBOYS]; + } + firstarea = host.split('.')[0]; + if (firstarea !== 'list' && firstarea !== 'search' && firstarea !== 'www' && + firstarea !== 'new' && firstarea !== 'item' && firstarea !== 'guang') { + code = bannerMap[UNIQUEBRAND + cookieMap._Channel]; + } + + getBannerData(code); //获得banner信息 + +} + +function brandSwitch(index) { + $('.hot-brands').find('ul').stop().animate({ + opacity: 0, + 'z-index': 1 + }, 200).eq(index).animate({ + opacity: 1, + 'z-index': 2 + }, 200); +} +/** + * 品牌左右切换 + * @return {[type]} [description] + */ +function actionBrandChange() { + var activeIndex = 0, + swiperLen; + + if ($('.hot-brands').size() > 0) { + swiperLen = $('.hot-brands').find('ul').size(); + $('.hot-brands').find('ul').eq(0).css({ + opacity: 1, + 'z-index': 2 + }); + $('.brands-control').on('click', '.next', function() { + if (activeIndex === swiperLen - 1) { + activeIndex = 0; + } else { + activeIndex++; + } + brandSwitch(activeIndex); + }); + $('.brands-control').on('click', '.prev', function() { + if (activeIndex === 0) { + activeIndex = swiperLen - 1; + } else { + activeIndex--; + } + brandSwitch(activeIndex); + }); + + + } +} +/** + * 循环检测购物车数量 + * @return {[type]} [description] + */ +function actionLoopUpdCartNum() { + setInterval(actionUpdateCartNum, 2000); +} +/** + * 处理模板 + * @return {[type]} [description] + */ +function actionExeTemplate() { + var $goodcartempwarpper = $('#goodcartempwarpper'); + var resulthtml = ''; + + if ($goodcartempwarpper) { + if ($goodcartempwarpper.html()) { + resulthtml = $('#goodcartempwarpper').html().replace(/\\/g, ''); + $('#goodcartempwarpper').html(resulthtml); + vipInfoCombine = handlebars.compile($('#tmpl-my-login-new').html()); + } + } +} +/** + * 执行搜索 + * @return {[type]} [description] + */ +function actionSearch() { + var searchDomain = '//search.yohobuy.com/api/suggest'; + + $('#query_key').search(searchDomain); +} +/** + * 获取登录状态 + * @return {[type]} [description] + */ +function actionLoginState(_data) { + var timestamp = new Date().getTime(); + var noLoginHtml = '<span>Hi~</span>[<a href="//www.yohobuy.com/signin.html" class="list-a login-out ">' + + '请登录</a>] ' + + '[<a href="//www.yohobuy.com/reg.html" class="list-a login-out" onclick="">免费注册</a>]'; + var loginHtml = '<span>Hi~<a href="//www.yohobuy.com/home?t=' + timestamp + + '">{{user_name}}</a></span> ' + + '{{#if islogin}}' + + '[<a href="{{logout}}" class="list-a login-out">退出</a>]' + + '{{/if}}{{#unless islogin}}' + + '[<a href="//www.yohobuy.com/signin.html" class="list-a login-out">请登录</a>] ' + + '[<a href="//www.yohobuy.com/reg.html" onclick="" class="list-a login-out">免费注册</a>]' + + '{{/unless}}'; + var $boxObj = $('#loginBox'); + var info = window.cookie('_UID'); + var name = _data.data.profile_name; + var _length = 0; + var t = 0; + var char = ''; + var user = info.split('::'); + var userName = user[0] || ' '; + var _logout = '//www.yohobuy.com/logout.html'; + var islogin = '1'; + var _num = 0; + var data = { + user_name: name, + logout: _logout, + random: Math.random() + }; + + $boxObj.html('').show(); + + + loginInfoCombine = handlebars.compile(loginHtml); + if (typeof info === 'undefined' || info === null) { + $boxObj.html(noLoginHtml); + return false; + } + if (typeof user === 'undefined' || user.length < 4) { + $boxObj.html(noLoginHtml); + return false; + } + + for (t; t < userName.length; t++) { + char = userName.substr(t, 1); + if (/.*[\u4e00-\u9fa5]+.*$/.test(char)) { + _length += 2; + } else { + _length += 1; + } + } + if (_length <= 10) { + name = userName; + } else { + _num = 0; + for (t; t < userName.length; t++) { + if (_num < 10) { + char = userName.substr(t, 1); + if (char !== '*') { + if (/.*[\u4e00-\u9fa5]+.*$/.test(char)) { + _num += 2; + } else { + _num += 1; + } + } + name += char; + } + } + if (name.length < userName.length) { + name += '...'; + } + } + + + if (/http:\/\//.test(user[3])) { + _logout = user[3].replace('www.yohobuy.com', 'www.yohobuy.com'); + } else { + _logout = '//www.yohobuy.com/logout.html'; + } + if (_data.result === -1) { + islogin = '-1'; + } + data.islogin = islogin; + $boxObj.html(loginInfoCombine(data)); +} +/** + * 获得vip用户信息 + * @return {[type]} [description] + */ +function actionVipInfo(_data) { + var vipInfo = _data.data; + var headUrl = ''; + + if (_data.result === 1) { + if (typeof vipInfo === undefined || vipInfo.length < 1) { + return false; + } + if (vipInfo.vip.curVipInfo.curLevel === '3') { + vipInfo.vip3 = true; + } + + $('#myYohoBox').mouseenter(function() { + $(this).addClass('acttags'); + $('#myYohoBox .myyoho-info').show().html(vipInfoCombine(vipInfo)); + headUrl = $('.myyoho-photo img').attr('data-url'); + if ($._checkUrlState === 1) { + $('.myyoho-photo').show().find('img').attr('src', headUrl); + return; + } + if (headUrl === '' || $._checkUrl !== '') { + return; + } + $.ajax({ + url: headUrl, + type: 'GET', + complete: function(response) { + if (response.status === 200 || response.status === 0) { + $('.myyoho-photo').show().find('img').attr('src', headUrl); + $._checkUrlState = 1; + } + $._checkUrl = headUrl; + } + }); + }); + $('#myYohoBox').mouseleave(function() { + $(this).removeClass('acttags'); + $('#myYohoBox .myyoho-info').hide(); + }); + } +} +/** + * 获取登录信息 + * @return {[type]} [description] + */ +function actionLoginInfo() { + $.getData('//www.yohobuy.com/common/passport', '', function(_data) { + if (_data && _data.result !== -1) { + actionLoginState(_data); // 更改登录状态 + actionVipInfo(_data); //获得vip; + } else { + window.setCookie('_UID', '', { + path: '/', + domain: '.yohobuy.com', + expires: -1 + }); + $loginBox.show(); + } + }); +} +/** + * 初始化函数 + * @return {[type]} [description] + */ +function init() { + actionNav(); //处理导航 + actionTipPic(); //鼠标移入后查询 + actionExeTemplate(); //处理模板 + actionCover(); //初次登录弹框 + actionInitCookie(); //初始化cookie + setChannelCookie(); //设置频道缓存 + actionExeCookieMap(); //格式化cookie + actionGoodsCart(); //初始化购物车插件 + actionYoHoGroup(); // yoho集团鼠标效果 + actionTopTagToggle(); // yoho上部分开关 + actionTopLogoAnimate(); //yoho logo动画 + actionGetBannerAndNotice(); // 获取banner和服务器维护提示 + actionBrandChange(); //切换品牌 + actionGoodsCarMouseEffect(); //鼠标滑入滑出效果 + actionUpdateCartNum(); //更新购物车数量 + actionLoopUpdCartNum(); //循环检测购物车数量 + actionSearch(); //搜索执行 + actionClickMiniCartBox(); //点击购物车跳转 + actionListenDelCarGoods(); //监听购物车删除 + actionListenCartMore(); // + actionLoginInfo(); //获取登录信息 + actionAddKeyWords(); //增加关键字 +} +init(); +}); +define("js/simple-header", ["jquery"], function(require, exports, module){ +var $ = require("jquery"); + +var $apiDom = $('#api-domain'); + +var apiDomain = $apiDom.val(); //获取数据的地址 + +$apiDom.remove(); //删除API信息 + +if ($('.simple-header').size() > 0) { + $('.tool-options').on('mouseenter', function() { + $(this).find('.tool-select').fadeIn(); + }).on('mouseleave', function() { + $(this).find('.tool-select').fadeOut(); + }); +} + +/** + * 格式化用户名 + * @return {[type]} [description] + */ +function formatUsernName(userName) { + var name, + char, + _num = 0, + _length = 0, + t; + + for (t = 0; t < userName.length; t++) { + char = userName.substr(t, 1); + if (/.*[\u4e00-\u9fa5]+.*$/.test(char)) { + _length += 2; + } else { + _length += 1; + } + } + if (_length <= 10) { + name = userName; + } else { + _num = 0; + name = ''; + for (t = 0; t < userName.length; t++) { + if (_num < 10) { + char = userName.substr(t, 1); + if (char !== '*') { + if (/.*[\u4e00-\u9fa5]+.*$/.test(char)) { + _num += 2; + } else { + _num += 1; + } + } + name += char; + } + } + if (name.length < userName.length) { + name += '...'; + } + } + return name; +} + +/** + * 设置简单头部登陆状态 + * @return {[type]} [description] + */ +function setLoginStatus(data) { + var info = data.data, + loginHtml, + name; + + if (data.result !== -1) { + name = formatUsernName(info.profile_name); + loginHtml = '<span>Hi~</span>' + + '<a href="//www.yohobuy.com/home?t=' + info.random + '">' + name + '</a> ' + + '<a href="//www.yohobuy.com/logout.html">[退出]</a>'; + } else { + loginHtml = '<span>Hi~</span> ' + + '<a href="//www.yohobuy.com/signin.html">[请登录]</a> ' + + '<a href="//www.yohobuy.com/reg.html">[免费注册]</a>'; + } + $('.header-tool li').eq(0).html(loginHtml); +} + +/** + * 获取登录信息 + * @return {[type]} [description] + */ +function actionLoginInfo() { + var param = { + return_type: 'jsonp' + }; + + $.getJSON('//www.yohobuy.com/common/passport' + '/?callback=?', param, function(_data) { + if (_data && _data.data) { + setLoginStatus(_data.data); + } + }); +} + +actionLoginInfo(); //获取登录信息 + + +}); +define("js/product/entry", ["jquery","handlebars","source-map","lazyload","index","jquery-pjax"], function(require, exports, module){ +/** + * 商品页面打包入口文件 + * @auhtor: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/28 + */ + +require("js/product/list"); + +require("js/product/brand"); + +require("js/product/hotrank"); + +require("js/product/item"); + +require("js/product/shop-index"); + +}); +define("js/product/list", ["jquery","handlebars","source-map","lazyload"], function(require, exports, module){ +/** + * 商品列表页 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/11/23 + */ +var $ = require("jquery"); + +require("js/product/filter"); + +require("js/product/sort-pager"); + +require("js/product/latest-walk"); + +require("js/product/product"); + +(function() { + var $banner = $('.banner-img'), + img; + + if ($banner.length === 0) { + return; + } + + img = new Image(); + + //重置Banner高度 + img.onload = function() { + if (img.height) { + $banner.height(img.height); + } + + img = null; + }; + + //replace('"', '')为处理浏览器兼容性代码,部分浏览器中取得的字符串中包含"" + img.src = $banner.css('background-image').replace(/"/g, '').slice(4, -1); +}()); + +}); +define("js/product/filter", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 商品筛选逻辑 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/4 + */ + +var $ = require("jquery"), + Handlebars = require("handlebars"); + +var checkUnicode = { + unchecked: '', + checked: '' +}, +moreUnicode = { + up: '', + down: '' +}; + +//品牌相关变量 +var $brandDefault = $('.brand .default'), + $brandInput = $('#brand-search-input'), + $brandPanel = $('.brand .brand-panel'), + $brandAttrs = $brandPanel.find('.attr'), + $brandMore = $('#brand-more'), + $brandMulti = $('#brand-multi'), + $brandsIndex = $('.brands-index'); + +var $brandMoreTxt, $brandMoreIcon; + +//价格相关变量 +var $udPrice = $('.ud-price-range'), + interReg = /^\d+$/, + $limit, $min, $max, $btn; + +//分类相关变量 +var $sortSub = $('.sort-sub-wrap'); + +//高级选项相关变量 +var $seniorSubWrap = $('.senior-sub-wrap'), + $seniorAttrWrap = $('.senior-attr-wrap'); + +var seniorHoverTime, hoveredIndex; + +// 尺寸 handlebars 模板 +var sizeTmpl = '{{# size}}<a class="attr {{#if checked}}checked{{/if}}" href="{{href}}">{{name}}</a>{{/ size}}', + sizeCache = {}, // 缓存一下尺寸信息 + $sizeWrap = $('.filter-box .size'); + +sizeTmpl = Handlebars.compile(sizeTmpl); + +//清除checkbox选中状态[页面默认checked不清空] +function clearChecked($checkbox, $checked) { + $checkbox.each(function() { + if ($(this).closest('.attr').hasClass('checked')) { + return; + } + $(this).removeClass('checked').html(checkUnicode.unchecked); + }); + $checked.find('.checkbox').addClass('checked').html(checkUnicode.checked); +} + +//显示更多品牌面板 +function brandShowMore() { + $brandDefault.addClass('hide'); + $brandPanel.removeClass('hide'); +} + +//隐藏更多品牌面板 +function brandHideMore() { + $brandPanel.addClass('hide'); + $brandDefault.removeClass('hide'); + + //清除索引状态 + $brandsIndex.children('span').removeClass('hover'); +} + +//url构造&跳转 +function uriLoc(attr, val) { + var qs = window.queryString(), + newHref; + + qs[attr] = val; + delete qs.page; + newHref = '?' + decodeURIComponent($.param(qs)); + window.location.href = newHref; +} + +//隐藏高级选项面板 +function hideSeniorPanel(index) { + $seniorSubWrap.children('.senior-sub:eq(' + hoveredIndex + ')').addClass('hide'); + $seniorAttrWrap.children('.attr:eq(' + hoveredIndex + ')').removeClass('hover'); + hoveredIndex = -1; +} + +//屏蔽筛选项双击文字选中 +$('.filter-box').on('selectstart', '.attr, .brands-index span', function() { + return false; +}); + +//【分类】 +$('.sort-pre').on('click', 'li', function() { + var $this = $(this), + index = $this.index(), + id = $this.data('id'); + + if ($this.hasClass('active')) { + + // 选中时,再次点击取消选中 + $this.removeClass('active'); + $sortSub.children(':eq(' + index + ')').addClass('hide'); + $sizeWrap.addClass('hide'); + return; + } + + $this.siblings('.active').removeClass('active'); + $this.addClass('active'); + + $sortSub.children(':not(.hide)').addClass('hide'); + $sortSub.children(':eq(' + index + ')').removeClass('hide'); + + if (!$sizeWrap.data('load')) { + if (sizeCache[id]) { + $sizeWrap.find('.attr-content').html(sizeCache[id]); + $sizeWrap.removeClass('hide'); + } else { + $.ajax({ + url: '/product/search/sortSize', + data: { + msort: id + } + }).then(function(res) { + if ($.type(res) === 'array' && res.length) { + sizeCache[id] = sizeTmpl({ + size: res + }); + $sizeWrap.find('.attr-content').html(sizeCache[id]); + $sizeWrap.removeClass('hide'); + } else { + $sizeWrap.addClass('hide'); + } + }); + } + } +}); + +//【品牌】 +if ($brandMore.length > 0) { + $brandMoreTxt = $brandMore.children('em'); + $brandMoreIcon = $brandMore.children('.iconfont'); +} + +//【品牌】多选 +$brandMulti.click(function() { + if ($brandPanel.css('display') === 'none') { + + //显示品牌面板 + $brandMore.trigger('click'); + } + + brandShowMore(); + $brandPanel.removeClass('hide').addClass('multi'); //显示出checkbox + $(this).addClass('hide'); + + //隐藏更多按钮 + $brandMore.addClass('hide'); +}); + +//【品牌】更多 +$brandMore.click(function() { + var $this = $(this); + + if ($this.hasClass('more')) { + brandHideMore(); + + $brandMoreTxt.text('更多'); + $brandMoreIcon.html(moreUnicode.down); + + //清空搜索框和搜索结果 + $brandInput.val('').trigger('keyup'); + } else { + brandShowMore(); + + $brandMoreTxt.text('收起'); + $brandMoreIcon.html(moreUnicode.up); + } + + $(this).toggleClass('more'); +}); + +//【品牌】索引 +$brandsIndex.on('mouseenter', 'span', function() { + var $this = $(this), + index = $this.data('index'); + + if ($this.hasClass('hover')) { + return; + } + setTimeout(function() { + $this.siblings('span.hover').removeClass('hover'); + $this.addClass('hover'); + + if ($this.index() === 0) { + + //全部 + $brandAttrs.removeClass('hide'); + } else { + $brandAttrs.addClass('hide').filter('[data-index=' + index + ']').removeClass('hide'); + } + }, 120); +}); + +//【品牌】搜索 +$brandInput.keyup(function() { + var val = $(this).val().toLowerCase(); + + if (val === '') { + $brandAttrs.removeClass('hide'); + } else { + $brandAttrs.addClass('hide').filter('[data-key*="' + val + '"]').removeClass('hide'); + } +}); + +//【品牌】多选确定 +$('#brand-multi-ok').click(function() { + var val = []; + + if ($(this).hasClass('dis')) { + return; + } + + $brandPanel.find('span.checked').each(function() { + val.push($(this).data('id')); + }); + + uriLoc('brand', val.join(',')); +}); + +//【品牌/高级选项】多选取消 +$('.multi-select-cancel').click(function() { + var $panel = $(this).closest('.multi'); + + if ($panel.hasClass('brand-panel')) { + + $brandMulti.removeClass('hide'); //显示多选按钮 + $brandMore.trigger('click'); + + //显示出更多按钮 + $brandMore.removeClass('hide'); + + //清空搜索框和搜索结果 + $brandInput.val('').trigger('keyup'); + brandHideMore(); + } + + $panel.addClass('hide').removeClass('multi'); + clearChecked($panel.find('.checkbox.checked'), $panel.find('.attr.checked')); //清除选中状态 + + //确定按钮状态恢复dis + $(this).siblings('.multi-select-ok').addClass('dis'); +}); + +//【品牌/高级选项】checkbox +$('.check-container').on('click', '.attr', function() { + var $this = $(this), + $check = $this.find('.checkbox'), + $btnOk = $this.closest('.brand-panel, .senior-sub').find('.multi-select-ok'); + + $check.toggleClass('checked'); + + if ($check.hasClass('checked')) { + $check.html(checkUnicode.checked); + } else { + $check.html(checkUnicode.unchecked); + } + + //更新按钮状态 + if ($check.hasClass('checked') || + $this.siblings('.attr').find('.checked').length > 0) { + $btnOk.removeClass('dis'); + } else { + $btnOk.addClass('dis'); + } +}); + +//【品牌/高级选项】当多选时阻止链接默认跳转 +$('.brand, .senior').on('click', '.attr > a', function(e) { + if ($(this).closest('.multi').length > 0) { + e.preventDefault(); + } +}); + +// 已选中的条件,点击不刷新 +$('.filter-box').on('click', 'li.checked, a.checked', function(e) { + e.preventDefault(); +}); + +//【价格】用户定义价格处理 +if ($udPrice.length > 0) { + $limit = $udPrice.find('.limit'); + $min = $limit.filter('.min'); + $max = $limit.filter('.max'); + $btn = $udPrice.find('.price-sure'); + + //【价格】输入 + $limit.keyup(function() { + var thisPrice = $.trim($(this).val()), + isPriInt = interReg.test(thisPrice), + intPrice, + min, + max; + + if (!isPriInt) { + intPrice = parseInt(thisPrice, 10); + $(this).val(isNaN(intPrice) ? '' : intPrice); + } + + min = $.trim($min.val()); + max = $.trim($max.val()); + + if (min !== '' || max !== '') { + $btn.removeClass('hide'); + } else { + $btn.addClass('hide'); + } + }); + + //【价格】多项查询 + $btn.click(function() { + var min = $.trim($min.val()), + max = $.trim($max.val()), + tmp; + + //对于min大于max的情况,交换位置 + if (min !== '' && max !== '' && +min > +max) { + tmp = max; + max = min; + min = tmp; + } + + uriLoc('price', min + ',' + max); + }); +} + +//【高级选项】鼠标移入显示子项 +$seniorAttrWrap.on('mouseenter', '.attr', function() { + var $this = $(this); + var index = $this.index(); + + if ($this.hasClass('no-sub')) { + return; + } + $this.addClass('hover').siblings().removeClass('hover'); + + $seniorSubWrap.children('.senior-sub:eq(' + index + ')').removeClass('hide').siblings().addClass('hide'); +}).on('mouseleave', '.attr', function() { + var $this = $(this), + index = $this.index(); + + if ($this.hasClass('no-sub')) { + return; + } + + hoveredIndex = index; + + seniorHoverTime = setTimeout(function() { + hideSeniorPanel(); + }, 100); +}); + +//【高级选项】多选 +$('.senior-sub').on('click', '.multi-select', function() { + $(this).closest('.senior-sub').addClass('multi'); +}).on('click', '.multi-select-ok', function() { + var $btn = $(this), + $sub = $btn.closest('.senior-sub'), + val = []; + + if ($btn.hasClass('dis')) { + return; + } + + $sub.find('span.checked').each(function() { + val.push($(this).data('id')); + }); + + uriLoc($sub.data('attr'), val.join(',')); +}).on('mouseenter', function() { + clearTimeout(seniorHoverTime); +}).on('mouseleave', function() { + hideSeniorPanel(); +}); + +}); +define("js/product/sort-pager", ["jquery"], function(require, exports, module){ +/** + * 筛选页和列表页操作banner中的每页N个商品选择逻辑 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/4 + */ + +var $ = require("jquery"); + +var $countPerPage = $('#count-per-page'), + $countChose = $countPerPage.next('ul'); + +var SLIDETIME = 200; + +$(document).click(function(e) { + if ($(e.target).closest('.page-count').length > 0) { + return; + } + + $countChose && $countChose.slideUp(SLIDETIME); +}); + +$countPerPage.click(function() { + if ($countChose.css('display') === 'none') { + $countChose.slideDown(SLIDETIME); + } else { + $countChose.slideUp(SLIDETIME); + } +}); +}); +define("js/product/latest-walk", ["jquery","handlebars","source-map","lazyload"], function(require, exports, module){ +/** + * 最近浏览取接口渲染模板 + * @author: xuqi<qi.xu@yoho.cn> + 8 @date: 2016/1/20 + */ + +var $ = require("jquery"); +var Handlebars = require("handlebars"); +var lazyLoad = require("lazyload"); + +var $latestWalkCount = $('#latest-walk-count'); + +(function() { + var tpl; + + if ($latestWalkCount.length === 0) { + return; + } + + tpl = Handlebars.compile($('#latest-walk-tpl').html()); + + $.ajax({ + url: '//www.yohobuy.com/common/recentReview', + dataType: 'jsonp', + data: { + limit: $latestWalkCount.val() + }, + success: function(data) { + var latestWalk = [], + res, i, cur; + + if (data.code === 200) { + res = data.data; + + //若无最近浏览,请隐藏容器 + if (res.length === 0) { + $('.latest-walk').addClass('hide'); + return; + } + for (i = 0; i < res.length; i++) { + cur = res[i]; + + latestWalk.push({ + href: cur.url, + img: cur.pic_url, + name: cur.product_name, + salePrice: cur.price, + marketPrice: cur.market_price + }); + } + + if (latestWalk.length > 0) { + $('#latest-walk-goods').html(tpl({ + latestWalk: latestWalk + })); + + lazyLoad($('#latest-walk-goods .lazy')); + } + } + } + }); +}()); +}); +define("js/product/product", ["jquery","lazyload","handlebars","source-map"], function(require, exports, module){ +/** + *Description: 商品列表页 + *Author: chenglong.wang@yoho.cn + *Date: 2015/12/2 + */ + +var $ = require("jquery"), + lazyLoad = require("lazyload"), + Handlebars = require("handlebars"), + productEvent = require("js/common/product-event"); + +var $goodsContainer = $('.goods-container'), + $goodItem = $goodsContainer.find('.good-info'), + $goodItemWrapper = $goodsContainer.find('.good-item-wrapper'), + $goodInfoMain = $goodsContainer.find('.good-info-main'), + $goodSelectColor = $goodsContainer.find('.good-select-color'), + $productListNav = $('.product-list-nav'), + productList; + +lazyLoad($('img.lazy')); + +/** + * @description 初始化鼠标移入商品列表弹层效果 + * @num 每列存放商品的个数 + */ +exports.init = function(num) { + var $shopEntry = $('.shop-entry'), + $shopEntryArea = $('.shop-entry-area'), + shopEntryLen = $shopEntry.length; + + if (shopEntryLen > 1) { + + if (shopEntryLen === 3) { + $shopEntry.css({ + width: '32%' + }); + } else if (shopEntryLen % 2) { + + // 大于 2 ,并且是基数 + $('.shop-entry:gt(' + (shopEntryLen - 4) + ')').css({ + width: '32%' + }); + } + + $('.shop-entry:nth-child(2n+1)').css({ + marginLeft: 0 + }); + + $shopEntry.last().css({ + marginLeft: '2%' + }); + + if (shopEntryLen % 2 === 0) { + $shopEntry.find('.name').css({ + width: '50%' + }); + } else if (shopEntryLen % 3 === 0) { + $shopEntry.find('.name').css({ + width: '26%' + }); + } + + } else { + $shopEntry.css({ + width: '100%' + }); + } + + $shopEntryArea.slideDown(); + + productList = null; + + $goodItem.unbind(); + + productList = productEvent($goodItem, num); + + /** + * @description 构造商品颜色列表的html结构 + * @param data 商品颜色的数组,[url: '',src: ''] + * @return json {'colorListStr': '', 'ulNum': ''} + * */ + function createColorList(data, _from) { + var colorListStr = '', + len = data.length, + row = 4, //每列ul放4个li + col = Math.ceil(len / row), //需要几**列**ul + i, + j, + index, + ulNum = 0; + + for (i = 0; i < col; i++) { + colorListStr += '<ul>'; + for (j = 0; j < row; j++) { + index = i * row + j; + if (index === len) { + break; + } + colorListStr += + '<li>' + + '<a target="_blank" href="' + data[i * row + j].url + _from + '">' + + '<img src="' + data[i * row + j].src + '" data-cover="' + data[i * row + j].coverImg + '" />' + + '</a>' + + '</li>'; + + if (j === row - 1) { + colorListStr += '</ul>'; + ulNum++; + } + } + } + if (ulNum < col) { + colorListStr += '</ul>'; + } + return { + colorListStr: colorListStr, + ulNum: col + }; + } + + function removeHtmlFn() { + $goodInfoMain.html(''); + $goodSelectColor.html(''); + $goodItemWrapper.css({ + display: 'none' + }); + } + + productList.addHandler('MouseEnter', function(event) { + var itemMr = 10, //list的右边距 + itemMb = 35, //list的下边距 + ulStr = '', + ulNum, + wrapperWidth, + diffWidth, + wrapperX, + wrapperY, + wrapperPl, //鼠标移入时弹层的左内边距 + wrapperPt, //鼠标移入时弹层的上内边距 + containerPt, //商品列表容器的上内边距 + _from = event.target.attr('data-from') || ''; + + $.ajax({ + type: 'POST', + url: '/product/list/getProductPic', + dataType: 'jsonp', + jsonp: 'callback', + data: { + skn: event.target.attr('data-skn'), + skc: event.target.attr('data-skc') + } + }).then(function(res) { + var data = res.data, + colorList = createColorList(data.pics, _from); + + removeHtmlFn(); + + ulStr = colorList.colorListStr; //ajax请求的颜色列表 + ulNum = colorList.ulNum;//ajax请求的颜色的数量 + + $goodInfoMain.append(event.targetDuplicate); + $goodSelectColor.append($(ulStr)); + + // 点击收藏商品不需要了 + // if (data.isFavorite) { + // $goodInfoMain.find('.col-btn').addClass('coled'); + // } else { + // $goodInfoMain.find('.col-btn').removeClass('coled'); + // } + + wrapperPl = $goodItemWrapper.css('paddingLeft'); + wrapperPt = $goodItemWrapper.css('paddingTop'); + containerPt = $goodsContainer.css('paddingTop'); + + wrapperWidth = 10 + (15 + 50) * ulNum + event.targetWidth; + + //wrapperWidth = $goodItemWrapper.width(); + + wrapperX = (event.targetX - 1) * (event.targetWidth + itemMr) - (parseInt(wrapperPl) + 1); + wrapperY = (event.targetY - 1) * + (event.targetHeight + itemMb) + parseInt(containerPt) - (parseInt(wrapperPt) + 1); + + //todo + //event.offsetR表示当前列表距离浏览器右侧边缘的距离 + diffWidth = event.offsetR - ((15 + 50) * ulNum + 25); + + if (diffWidth <= 0) { + wrapperX = wrapperX + diffWidth - 25; + } + $goodItemWrapper.css({ + width: wrapperWidth, + left: wrapperX, + top: wrapperY, + display: 'inline-block' + }); + + // 鼠标悬浮获取到商品信息后显示第一张图片 + if (data.pics[0] && data.pics[0].src) { + $goodInfoMain.find('.good-thumb img').attr('src', data.pics[0].src); + } + }); + }); + + productList.addHandler('MouseLeave', function() { + removeHtmlFn(); + }); + + $goodItemWrapper.mouseleave(function() { + + removeHtmlFn(); + }); + +}; + +//鼠标放在颜色列表上效果 +$(document).on('hover', '.good-select-color li', function() { + var coverImg = $(this).find('img').attr('data-cover'), + $coverImg = $(this).closest('.good-item-wrapper').find('.good-detail-img').find('img'); + + $coverImg.attr('src', coverImg); +}); + +// 左侧导航 +$productListNav.find('h3').click(function(event) { + var $this = $(this).closest('.product-list-nav'); + + if ($this.hasClass('active')) { + + $this.find('.sort-child-list').stop(true, true).slideUp(); + + } else { + + $this.find('.sort-child-list').stop(true, true).slideDown(); + } + + $this.toggleClass('active'); +}); + +//左侧需要ajax内容 +(function() { + var $brandCard = $('#brand-card'); + var $brandFavor = $('#brand-favor'); + var html; + + if ($brandCard.length) { + $.ajax({ + type: 'POST', + url: '/product/index/getNodeContent', + data: { + node: $brandCard.data('node') + } + }).then(function(data) { + $brandCard.html(data); + }); + } + + //品牌页请求 + if ($brandFavor.length) { + html = $('#pic-link-tpl').html(); + + $.ajax({ + type: 'POST', + url: '/product/index/getAdnav', + data: { + brandId: $brandFavor.data('id') + } + }).then(function(data) { + if (data) { + $('#brand-ad').html(Handlebars.compile(html)({ + picLink: data + })); + } + }); + } +}()); + +}); +define("js/common/product-event", ["jquery"], function(require, exports, module){ +/** + *Description: 商品自定义事件 + *Author: chenglong.wang@yoho.cn + *Date: 2015/12/3 + */ + +var $ = require("jquery"); + +function ProductEvent() { + + this.handlers = {}; + +} + +ProductEvent.prototype = { + + constructor: ProductEvent, + + addHandler: function(type, handler) { + if (typeof this.handlers[type] === 'undefined') { + this.handlers[type] = []; + } + this.handlers[type].push(handler); + }, + + fire: function(event) { + var handlers, + i; + + if (!event.target) { + + event.target = this; + } + if (this.handlers[event.type] instanceof Array) { + handlers = this.handlers[event.type]; + for (i = 0; i < handlers.length; i++) { + handlers[i](event); + } + } + }, + + removeHandler: function(type, handler) { + var handlers, + i; + + if (this.handlers[type] instanceof Array) { + handlers = this.handlers[type]; + for (i = 0; i < handlers.length; i++) { + if (handlers[i] === handler) { + break; + } + } + handlers.splice(i, 1); + } + } +}; + +module.exports = function($o, rowWidth) { + + var pMouseHover = new ProductEvent(); + + var targetWidth = $o.eq(0).width(), + targetHeight = $o.eq(0).height(), + winW = $(window).width(); + + var delayFunc, + loadInfo; + + function handleEvent(event) { + var $target, + targetX = 0, + targetY = 0, + rowW = rowWidth, + activeIndex = 0, + $targetDuplicate = '', + offsetL = 0, + offsetR = 0; + + + switch (event.type) { + case 'mouseenter': + $target = $(this); + + delayFunc = setTimeout(function() { + loadInfo = true; + $targetDuplicate = $target.clone(); + activeIndex = $target.index() + 1; + targetX = (activeIndex % rowW) === 0 ? rowW : activeIndex % rowW; + targetY = Math.ceil(activeIndex / rowW); + offsetL = $target.offset().left; + offsetR = winW - (offsetL + targetWidth); + + pMouseHover.fire({ + type: 'MouseEnter', + target: $target, + targetWidth: targetWidth, + targetHeight: targetHeight, + targetX: targetX, + targetY: targetY, + rowWidth: rowW, + activeIndex: activeIndex, + targetDuplicate: $targetDuplicate, + offsetL: offsetL, + offsetR: offsetR + }); + }, 150); + break; + case 'mouseleave': + if (!loadInfo) { + if (delayFunc) { + clearTimeout(delayFunc); + } + pMouseHover.fire({ + type: 'MouseLeave' + }); + } + loadInfo = false; + break; + } + } + + $o.bind({ + mouseenter: handleEvent, + mouseleave: handleEvent + }); + + return pMouseHover; +}; +}); +define("js/product/brand", ["jquery"], function(require, exports, module){ +/** + * 品牌页面 + * @auhtor: bikai<kai.bi@yoho.cn> + * @date: 2016/1/21 + */ + +var $ = require("jquery"); + +var $brandFavor = $('#brand-favor'), + id = $brandFavor.data('id'); + +$brandFavor.on('click', function() { + $.ajax({ + type: 'post', + url: '/product/index/favoriteBrand', + data: { + brandId: id + } + }).then(function(res) { + if (res.code === 200) { + $brandFavor.find('i').toggleClass('coled'); + } else if (res.code === 403) { + location.href = '//www.yohobuy.com/signin.html?refer=' + encodeURIComponent(location.href); + } + }); +}); + +//页面进入更新收藏状态 +$.ajax({ + type: 'POST', + url: '/product/index/isFavoriteBrand', + data: { + brandId: id + } +}).then(function(data) { + if (data.code === 200) { + + //已收藏 + $brandFavor.find('i').addClass('coled'); + } else if (data.code === 404) { + + //未收藏 + $brandFavor.find('i').removeClass('coled'); + } +}); + +}); +define("js/product/hotrank", ["jquery","handlebars","source-map","lazyload"], function(require, exports, module){ +/** + * 首页 + * @author: liuyue<yue.liu@yoho.cn> + * @date: 2015/12/17 + */ + +var $ = require("jquery"), + Handlebars = require("handlebars"), + lazyLoad = require("lazyload"); + +require("js/common/slider"); +require("js/common/logo-brand"); + +lazyLoad($('img.lazy')); +$('.slide-container').slider(); +$('.logo-brand').logoBrand({ + showNum: 10, + url: $('.logo-brand').data('url') +}); + +/* + * 一周热卖 + */ +(function($) { + var floatlayer = $('.hot-week').find('.floatlayer'), + sid = $('.hot-cate').find('li').eq(0).data('sid'), + weekOffsetTop, + source, + template, + page = 1, + hotCateW = 0, + weekEnd = false; + + source = '\{{# list}}' + + '<div class="good-info">' + + '<div class="item-img">' + + '<a class="good-thumb" target="_blank" href="\{{url}}">' + + '<img class="lazy" data-original="\{{thumb}}">' + + '</a>' + + '</div>' + + '<div class="good-detail-text">' + + '<a target="_blank" href="{{url}}">{{name}}</a>' + + '<p class="price">' + + '{{# marketPrice}}<span class="market-price">¥{{.}}</span>{{/ marketPrice}} ' + + '<span class="sale-price{{#unless marketPrice}}prime-cost{{/unless}}">' + + '¥{{salePrice}}</span>' + + '</p>' + + '</div>' + + '</div>' + + '{{/ list}}'; + + //监听滚动事件,控制浮层样式及下拉加载更多 + $(window).on('scroll', function() { + var maxH = weekOffsetTop + $('.hot-week').outerHeight(), + sid; + + //热卖右侧浮动导航位置 + weekOffsetTop = $('.hot-week').offset().top; + if ($(this).scrollTop() >= weekOffsetTop - $(window).height() / 2) { + if (floatlayer.offset().top + floatlayer.outerHeight() >= maxH) { + floatlayer.css({ + position: 'absolute', + marginTop: 0, + top: $('.hot-week').outerHeight() - floatlayer.outerHeight() + }); + } else { + floatlayer.css({ + marginTop: -floatlayer.height() / 2 + }).stop().animate({ + opacity: 1 + }, 200, function() { + floatlayer.show(); + }); + } + + } else { + floatlayer.stop().animate({ + opacity: 0 + }, 200, function() { + floatlayer.hide(); + }); + } + + if (floatlayer.offset().top >= $(this).scrollTop() + ($(window).height() - floatlayer.outerHeight()) / 2) { + floatlayer.css({ + position: 'fixed', + marginTop: -floatlayer.height() / 2, + top: '50%' + }); + } + + //下拉加载 + if ($(this).scrollTop() >= weekOffsetTop + $('.hot-week').height() - $(window).height()) { + if (!weekEnd) { + sid = $('.hot-cate').find('li.current').data('sid'); + page++; + weekEnd = true; //防止多次请求 + weekAjax(sid, page); + } + } + + }); + + //热卖横导航及竖导航的超出显示控制 + $('.hot-cate').find('li').each(function(i) { + var maxW = $('.hot-cate').width(); + + if (hotCateW <= maxW) { + hotCateW = hotCateW + $(this).width(); + if (hotCateW >= maxW) { + $('.floatlayer').find('li').eq(i).hide().nextAll().hide(); + } + } + + }); + + //热卖横导航点击事件处理 + $('.hot-cate').on('click', 'li', function() { + var nowIndex = $(this).index(), + sid = $(this).data('sid'); + + if ($(this).hasClass('current')) { + return; + } + + //处理current样式 + $(this).addClass('current').siblings().removeClass('current'); + $('.floatlayer').find('li').removeClass('current').eq(nowIndex).addClass('current'); + + //返回热卖顶部,110为floor-header所占高度 + $('body,html').stop().animate({ + scrollTop: weekOffsetTop - 110 + }, 500); + + //调用ajax请求函数,重置page,weekEnd + weekAjax(sid); + page = 1; + }); + + //热卖右侧悬浮导航点击事件处理 + $('.floatlayer').on('click', 'li', function() { + var nowIndex = $(this).index(); + + if ($(this).hasClass('current')) { + return; + } + + $('.hot-cate').find('li').eq(nowIndex).trigger('click'); + + //处理current样式 + $(this).addClass('current').siblings().removeClass('current'); + $('.hot-cate').find('li').removeClass('current').eq(nowIndex).addClass('current'); + }); + + /* + * 热卖内容ajax请求 + * param: sid(ajax请求的id), page(ajax请求的页码) + */ + function weekAjax(sid, page) { + var param = {}; + + if (page) { + param = { + sid: sid, + page: page + }; + } else { + param = { + sid: sid + }; + } + $.ajax({ + type: 'GET', + dataType: 'json', + url: '/product/index/getdata', + data: param, + success: function(res) { + var data; + + if (res.code === 200) { + data = { + list: res.data + }; + + //mustache渲染数据,并替换原内容 + template = Handlebars.compile(source); + if (page) { + $('.hot-week-list').append(template(data)); + floatlayer.css({ + position: 'fixed', + marginTop: -floatlayer.height() / 2, + top: '50%' + }); + } else { + $('.hot-week-list').html(template(data)); + } + + lazyLoad($('img.lazy')); + weekEnd = false; + } + } + }); + } + + //热卖中导航current类处理 + $('.hot-cate').find('li').eq(0).addClass('current'); + $('.floatlayer').find('li').eq(0).addClass('current'); +})($); + +}); +define("js/common/slider", ["jquery","lazyload"], function(require, exports, module){ +/** + * 首页banner轮播 + * @author: liuyue(yue.liu@yoho.cn) + * @date: 2015/12/04 + */ + +var $ = require("jquery"), + lazyLoad = require("lazyload"); + +(function($) { + var Slider = function(element, options) { + this.$element = $(element); + this.options = $.extend({}, $.fn.slider.defaults, options); + this.bigItem = this.$element.find('.slide-wrapper').find('li'); + this.smallItem = null; + this.len = this.bigItem.size(); + this.index = 0; + this.timer = null; + this.init(); + }; + + Slider.prototype = { + init: function() { + if (!this.$element) { + return; + } + + if (this.len <= 1) { + lazyLoad(this.$element.find('img.lazy')); + return; + } + if (!!this.options.pagination) { + this.smallItem = $(this.options.pagination).find('li'); + } else { + this._createPage(); + } + + if (this.options.orient) { + this._createOrient(); + } + this._slideShow(); + this._bindEvent(); + this._autoplay(); + }, + _createOrient: function() { + + var orientHtml = '<div class="slide-switch">' + + '<a class="prev" href="javascript:;"><span class="iconfont"></span></a>' + + '<a class="next" href="javascript:;"><span class="iconfont"></span></a>' + + '</div>'; + + if (this.$element.find('.slide-switch').length > 0) { + return; + } + + this.$element.append(orientHtml); + }, + _createPage: function() { + var pageHtml = '<div class="slide-pagination"><div class="slide-pagination-inner">' + + '<div class="slide-shade"></div><div class="slide-pagination-last">', + i = 0; + + if (this.len <= 1) { + return; + } + for (i = 0; i < this.len; i++) { + pageHtml += '<span></span>'; + } + pageHtml += '</div></div></div>'; + this.$element.append($(pageHtml)); + this.smallItem = this.$element.find('.slide-pagination-inner span'); + }, + _bindEvent: function() { + var that = this; + + this.$element.find('.slide-switch').on('click', '.next', function() { + that._nextSlide(); + clearInterval(that.timer); + that.timer = setInterval(function() { + that._nextSlide(); + }, that.options.time); + }).on('click', '.prev', function() { + that._prevSlide(); + clearInterval(that.timer); + that.timer = setInterval(function() { + that._nextSlide(); + }, that.options.time); + }); + + this.smallItem.on('mouseenter', function() { + that.index = $(this).index(); + clearInterval(that.timer); + that._slideShow(); + }).on('mouseleave', function() { + that._autoplay(); + }); + + this.$element.on('mouseenter', function() { + $(this).find('.slide-switch').addClass('show'); + }).on('mouseleave', function() { + $(this).find('.slide-switch').removeClass('show'); + }); + }, + _nextSlide: function() { + if (this.index === this.len - 1) { + this.index = 0; + } else { + this.index++; + } + this._slideShow(); + }, + _prevSlide: function() { + if (this.index === 0) { + this.index = this.len - 1; + } else { + this.index--; + } + this._slideShow(); + }, + _slideShow: function() { + var $img = this.bigItem.eq(this.index).find('img.lazy'); + + //未加载图片的及时显示 + if ($img.attr('src') !== $img.data('original')) { + lazyLoad($img, { + event: 'sporty' + }); + $img.trigger('sporty'); + } + + this.smallItem.eq(this.index).addClass('focus').siblings().removeClass('focus'); + this.bigItem.eq(this.index).show().stop().animate({ + opacity: 1 + }, function() { + + //修正IE下切换时文字会重叠的问题 + $(this).find('.slide-tips > p').removeClass('hide'); + }).siblings().stop().animate({ + opacity: 0 + }, function() { + $(this).hide().find('.slide-tips > p').addClass('hide'); + }); + }, + _autoplay: function() { + var that = this; + + clearInterval(this.timer); + this.timer = setInterval(function() { + that._nextSlide(); + }, this.options.time); + } + }; + $.fn.slider = function(option) { + return this.each(function() { + var $this = $(this), + data = $this.data('Slider'), + options = typeof option === 'object' && option; + + if (!data) { + $this.data('Slider', (data = new Slider(this, options))); + } + if (typeof option === 'string') { + data[option](); + } + }); + }; + $.fn.slider.Constructor = Slider; + $.fn.slider.defaults = { + time: 5000, + orient: true, //左右切换箭头的显示 + pagination: null + }; +})($); +}); +define("js/common/logo-brand", ["jquery","handlebars","source-map","lazyload"], function(require, exports, module){ +/** + * 首页优选品牌js + * @author: liuyue(yue.liu@yoho.cn) + * @date: 2015/12/08 + */ + +var $ = require("jquery"), + Handlebars = require("handlebars"), + lazyLoad = require("lazyload"); + +(function($) { + var LogoBrand = function(element, options) { + this.$element = $(element); + this.options = $.extend({}, $.fn.logoBrand.defaults, options); + + this.init(); + }; + + LogoBrand.prototype = { + init: function() { + this.$element.addClass('logos-' + this.options.showNum); + this._sendRequest(); + }, + _createHelper: function() { + var showNum = this.options.showNum; + + Handlebars.registerHelper('brandList', function(items, options) { + var out = '<ul>', + i = 0, + item = null, + fillNum = 0; + + //不是每页显示个数的倍数,填充数据 + if (items.length % showNum !== 0) { + fillNum = showNum - (items.length % showNum); + for (i = 0; i < fillNum; i++) { + items.push({ + href: 'javascript:;', + img: '' + }); + } + } + + for (i = 0; i < items.length; i++) { + item = options.fn(items[i]); + + if (i % showNum === 5 || i === 5) { + + //插入切换按钮的位置 + out = out + '<li class="logo-brand-switch" data-page="' + Math.floor(i / showNum) + '">' + + '<a class="prev iconfont" href="javascript:;"></a>' + + '<a class="next iconfont" href="javascript:;"></a></li>' + + '<li data-page="' + Math.floor(i / showNum) + '">' + item + '</li>'; + } else if (i !== 0 && i % showNum === 0) { + + //插入more的位置,more占的是下一页第一个brand的位置,所以page是i/17 + out = out + '<li class="brand-more" data-page="' + Math.floor(i / (showNum + 1)) + '">' + + '<a href="javascript:;" target="_blank">MORE ></a></li>' + + '<li data-page="' + Math.floor(i / showNum) + '">' + item + '</li>'; + } else { + out = out + '<li data-page="' + Math.floor(i / showNum) + '">' + item + '</li>'; + } + } + + //加上最后一个more, more占的是下一页第一个brand的位置,这里已经循环不到brand,所以加在末尾 + return out + '<li class="brand-more" data-page="' + Math.floor(i / (showNum + 1)) + '">' + + '<a href="javascript:;" target="_blank">MORE ></a></li></ul>'; + + }); + }, + _sendRequest: function() { + var that = this; + + $.ajax({ + type: 'GET', + url: that.options.url, + dataType: 'json', + success: function(data) { + var brandTpl, + brandHtml; + + if (!data || data.length === 0) { + return; + } + + that._createHelper(); + brandHtml = '\{{#brandList logoBrand}}' + + '<a href="\{{href}}" target="_blank"><img class="lazy" data-original="\{{img}}" alt=""></a>' + + '\{{/brandList}}'; + brandTpl = Handlebars.compile(brandHtml); + that.$element.html(brandTpl(data)); + that.$element.find('.brand-more a').attr('href', data.moreBrand); + lazyLoad(that.$element.find('img.lazy')); + that._bindEvent(); + } + }); + }, + _brandShow: function(hidePage, showPage) { + var that = this; + + lazyLoad($('li[data-page=' + showPage + ']').find('img.lazy').trigger('appear')); + that.$element.find('li[data-page=' + hidePage + ']').find('img').fadeOut('normal', function() { + that.$element.find('li').hide(); + that.$element.find('li[data-page=' + showPage + ']').show().find('img').fadeIn(); + }); + }, + _bindEvent: function() { + var that = this; + + that.$element.on('click', '.next', function() { + var page = $(this).parent().data('page'), + nextPage = 0, + totalPage = Math.ceil(that.$element.find('li').size() / (that.options.showNum + 2)) - 1; + + if (page === totalPage) { + nextPage = 0; + } else { + nextPage = page + 1; + } + that._brandShow(page, nextPage); + }); + + that.$element.on('click', '.prev', function() { + var page = $(this).parent().data('page'), + prevPage = 0, + totalPage = Math.ceil(that.$element.find('li').size() / (that.options.showNum + 2)) - 1; + + if (page === 0) { + prevPage = totalPage; + } else { + prevPage = page - 1; + } + that._brandShow(page, prevPage); + }); + } + }; + $.fn.logoBrand = function(option) { + return this.each(function() { + var $this = $(this), + data = $this.data('LogoBrand'), + options = typeof option === 'object' && option; + + if (!data) { + $this.data('LogoBrand', (data = new LogoBrand(this, options))); + } + if (typeof option === 'string') { + data[option](); + } + }); + }; + $.fn.logoBrand.Constructor = LogoBrand; + $.fn.logoBrand.defaults = { + showNum: 16, + url: '/boys/getBrand' + }; +})($); +}); +define("js/product/item", ["jquery","lazyload","handlebars","source-map","index"], function(require, exports, module){ +/** + * 商品详情页 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/23 + */ + +var $ = require("jquery"), + lazyLoad = require("lazyload"), + Handlebars = require("handlebars"), + JSON2 = require("index"); + +var $imgShow = $('#img-show'), + $thumbs = $('#thumbs > .thumb-wrap'); + +var $size = $('#sizes'), + $sizes = $size.children('.size'), + $sizeWarn = $size.find('.size-warn'), + $colorSizeTip = $size.children('.color-size-tip'); + +var $num = $('#num'), + $plusNum = $('#plus-num'), + $minusNum = $('#minus-num'); + +var $addToCart = $('#add-to-cart'), + $soldOut = $('#sold-out'); + +var $lcContainer = $('.lc-container'), + $itemBuy = $('.item-buy'); + +var $descColor = $('#desc-color'); + +var thumbsLoaded = {}; + +var $main = $('.main'), + id = $main.data('id'); + +var maxStock = -1; //记录当前选中的颜色-尺码的库存量,若为-1,代表未选择尺码 + +var SLIDETIME = 200; + +var colTxt = { + def: '收藏商品', + coled: '已收藏', + hover: '取消收藏' +}; + +var Alert = require("js/common/dialog").Alert; + +require("js/product/latest-walk"); + +require("js/common/share"); + +function imgShow(src) { + $imgShow.attr('src', src); +} + +/** + * 获取当前选择的商品数目 + * @return [Number] + */ +function getNum() { + return +$num.text(); +} + +//重置Num显示为1 +function resetNum() { + $num.text('1'); + + //+-按钮状态重置 + if (maxStock === 1 || maxStock === 0) { + + //数目为1/0时 + $plusNum.addClass('dis'); + $minusNum.addClass('dis'); + } else { + $plusNum.removeClass('dis'); + $minusNum.addClass('dis'); + } +} + +//加入购物车和已售罄状态控制 +function switchBtnStatus($color) { + if ($itemBuy.length === 0) { + + //全部售罄,按钮状态不变 + return; + } + + //选中的商品存量为0或者某个颜色的total为0 + if (maxStock === 0 || ($color && ~~$color.data('total') === 0)) { + $itemBuy.addClass('hide'); //隐藏加入购物车、即将开始、立即购买等相同位置的按钮 + $soldOut.removeClass('hide'); + } else { + + //包括默认的-1情况下 + $itemBuy.removeClass('hide'); + $soldOut.addClass('hide'); + } +} + +//size warn +function showSizeWarn() { + $sizes.not('.hide').children('.size-warn').removeClass('hide'); +} + +//size title +(function() { + var $sizeTitleJson = $('#size-title-json'), + jsonHtml = $sizeTitleJson.html(), + sizeTitle; + + if (jsonHtml === '') { + return; + } + + sizeTitle = JSON2.parse(jsonHtml); + + //数据获取后删除 + $sizeTitleJson.remove(); + + $sizes.children('li').each(function() { + var $this = $(this), + key = $this.data('name'); + + $this.data('title', sizeTitle[key]); + }); +}()); + +//初始化thumbsLoaded +thumbsLoaded[$('.colors .focus').index()] = true; + +//品牌收藏 +$('#brand-favour').click(function() { + var $this = $(this); + + $.ajax({ + type: 'POST', + url: '/product/index/favoriteBrand', + data: { + brandId: $this.data('id') + } + }).then(function(data) { + if (data.code === 200) { + $this.toggleClass('coled'); + } else if (data.code === 403) { + location.href = data.data.url; + } + }); +}); + +//颜色 +$('.colors').on('click', 'li', function() { + var $this = $(this), + index = $this.index(); + + var $imgs; + + //初始化color-size显示或隐藏 + $colorSizeTip.addClass('hide'); + + //隐藏尺码提示 + $sizeWarn.addClass('hide'); + + maxStock = -1; + + if ($this.hasClass('focus')) { + + //已获取焦点的颜色再次点击,清除尺码的选中 + $sizes.eq(index).children('li').removeClass('focus'); + } else { + + //未获取焦点,选择尺码 + $this.siblings('.focus').removeClass('focus'); + $this.addClass('focus'); + + //切换图片显示 + $thumbs.not('.hide').addClass('hide'); + $imgs = $thumbs.eq(index).removeClass('hide').find('img'); + + if (typeof thumbsLoaded[index] === 'undefined') { + + //trigger layLoad + lazyLoad($imgs, { + event: 'sporty' + }); + + $imgs.trigger('sporty'); + + thumbsLoaded[index] = true; + } + + imgShow($imgs.first().data('shower')); + + //切换详细信息的颜色显示 + $descColor.text($this.data('color')); + + //切换尺码显示 + $sizes.not('.hide').addClass('hide').children('li').removeClass('focus'); + $sizes.eq(index).removeClass('hide'); + } + + resetNum(); + switchBtnStatus($this); +}); + +//缩略图鼠标移入显示 +$('#thumbs').on('mouseenter', '.thumb', function() { + imgShow($(this).data('shower')); +}); + +//尺码 +$size.on('click', 'li', function() { + var $this = $(this); + + if ($this.hasClass('focus')) { + return; + } + + maxStock = +$this.data('num'); + + $this.siblings('.focus').removeClass('focus'); + $this.addClass('focus'); + + $colorSizeTip.html($this.data('title')).removeClass('hide'); + + $sizeWarn.addClass('hide'); + + switchBtnStatus(); + + resetNum(); +}).on('click', '.size-ruler', function() { + + //尺码帮助 + + $('body,html').animate({ + scrollTop: $('.size-info').offset().top + }, 300); +}); + +//数量 +$plusNum.click(function() { + var num = getNum(); + + if ($(this).hasClass('dis')) { + return; + } + + if (maxStock === -1) { + showSizeWarn();//显示选择尺码提示 + return; + } + + //已售罄 + if (maxStock === 0) { + return; + } + + if (num === maxStock - 1) { + + //+按钮不可点 + $(this).addClass('dis'); + } + + //数目为1时点+则移除-不可点状态 + if (num === 1) { + $minusNum.removeClass('dis'); + } + + $num.text(num + 1 > maxStock ? maxStock : num + 1); +}).on('selectstart', function() { + return false; +}); + +$minusNum.click(function() { + var num = getNum(); + + if ($(this).hasClass('dis')) { + return; + } + + if (num === 2) { + $(this).addClass('dis'); + } + + if (num === maxStock) { + + //恢复+可点 + $plusNum.removeClass('dis'); + } + + $num.text(num - 1 < 0 ? 0 : num - 1); +}).on('selectstart', function() { + return false; +}); + +//限购码 +$('.get-lc:not(.dis)').hover(function() { + $lcContainer.removeClass('hide'); +}, function() { + $lcContainer.addClass('hide'); +}); + +//加入购物车 +$addToCart.click(function() { + if (maxStock === -1) { + showSizeWarn(); + return; + } + + $.ajax({ + type: 'POST', + url: '/cart/index/add', + data: { + productSku: $('.size:not(.hide) li.focus').data('sku'), + buyNumber: getNum() + } + }).then(function(data) { + var code = data.code; + + if (code === 200) { + $('#type-chose').slideUp(SLIDETIME); + $('#balance').slideDown(SLIDETIME); + + $('#cart-num').text(data.data.goods_count); //更新数目 + } + }); +}); + +//收藏 +$('#collect-product').click(function() { + var $this = $(this), + cancel; + + if ($this.hasClass('coled')) { + cancel = true; + } + + $.ajax({ + type: 'POST', + url: '/product/item/togglecollect', + data: { + productId: id, + type: cancel ? 'cancel' : 'add' + } + }).then(function(data) { + var code = data.code; + + if (code === 200) { + + $this.toggleClass('coled'); + + if (cancel) { + $this.find('em').text(colTxt.def); + } else { + $this.find('em').text(colTxt.coled); + } + } else if (code === 403) { + location.href = data.data.url; + } + }); +}).hover(function() { + var $this = $(this); + + if ($this.hasClass('coled')) { + $this.find('em').text(colTxt.hover); + } +}, function() { + var $this = $(this); + + if ($this.hasClass('coled')) { + $this.find('em').text(colTxt.coled); + } +}); + +//继续购物 +$('#keep-shopping').click(function() { + $('#type-chose').slideDown(SLIDETIME); + $('#balance').slideUp(SLIDETIME); +}); + +//立即购买 +$('#buy-now').click(function() { + var sku, + base, + myAlert; + + if (maxStock === -1) { + showSizeWarn(); + return; + } + + if ($(this).hasClass('dis')) { + return; + } + + base = $(this).data('base'); + + //潮流尖货 + if (!base) { + myAlert = new Alert('打开APP可抢购该商品哦~~'); + myAlert.show(); + return; + } + + sku = $sizes.find('.focus').data('sku'); + + if (sku && base) { + location.href = base + '?product_sku=' + sku; + } +}); + +//按钮鼠标移入效果【dis状态的按钮状态不变】 +$('.buy-btn').mouseover(function() { + if ($(this).hasClass('dis')) { + return; + } + + $(this).addClass('hover'); +}).mouseleave(function() { + $(this).removeClass('hover'); +}); + +//商品详情/材质洗涤切换 +$('.description-material').on('click', '.title', function() { + var $this = $(this), + index = $this.index(); + + var $description = $('.description-content'), + $material = $('.material-content'); + + if ($this.hasClass('cur')) { + return; + } + + $this.addClass('cur'); + $this.siblings('.cur').removeClass('cur'); + + if (index === 0) { + + //商品信息 + $description.slideDown(SLIDETIME); + $material.slideUp(SLIDETIME); + } else { + $description.slideUp(SLIDETIME); + $material.slideDown(SLIDETIME); + } +}); + +//售后服务 +$('.after-service-switch').click(function() { + var $this = $(this), + $content = $this.next('.after-service-content'); + + var html = { + def: '', + spread: '' + }; + + if ($content.css('display') === 'none') { + $content.slideDown(SLIDETIME); + + $this.find('.triangle').html(html.spread); + } else { + $content.slideUp(SLIDETIME); + + $this.find('.triangle').html(html.def); + } +}); + + +//商品详情区的热点 +$.ajax({ + type: 'GET', + url: '/product/item/hotarea', + data: { + productId: id + } +}).then(function(html) { + $('#details-html').prepend(html); + + //修正热区尺寸使居中 + $('.hot-point-wrap > img').load(function() { + $(this).parent('.hot-point-wrap').width($(this).width()); + }); + + //Bind Hover event + $('.hot-point').hover(function() { + $(this).addClass('hover'); + }, function() { + $(this).removeClass('hover'); + }); +}); + +//商品详情懒加载 +lazyLoad($('#details-html img')); + +//只有一个尺码(多个或一个颜色)时默认选中第一个未售罄的颜色的第一个尺码 +(function() { + var hasOnlyOneSize = true, + i; + + for (i = 0; i < $sizes.length; i++) { + if ($sizes.eq(i).find('li').length !== 1) { + hasOnlyOneSize = false; + break; + } + } + + if (hasOnlyOneSize) { + $sizes.eq($('.colors .focus').index()).find('li').click(); + } +}()); + +//咨询和评价 +(function() { + var commentPage = 1, + consultPage = 1; + + var commentsTpl = Handlebars.compile($('#comments-tpl').html()), + consultsTpl = Handlebars.compile($('#consults-tpl').html()); + + var $commentsUl = $('#comments-ul'), + $consultsUl = $('#consults-ul'); + + var $commentNum = $('.comment-num'), + $consultNum = $('.consult-num'); + + var loadingComments, + loadingConsults; + + //购买评价 + function loadComments() { + if (loadingComments) { + return; + } + + loadingComments = true; + $.ajax({ + type: 'GET', + url: '/product/item/comments', + data: { + productId: id, + page: commentPage + } + }).then(function(data) { + var res; + + if (data.code === 200) { + res = data.data; + + if (res.length === 0) { + $commentsUl.next('.more-wrap').addClass('hide'); + return; + } + + //更新总数显示 + $commentNum.text(res[0].total); + + $commentsUl.append(commentsTpl({ + comments: res + })); + commentPage++; + } + }).always(function() { + loadingComments = false; + }); + } + + //顾客咨询 + function loadConsults() { + if (loadingConsults) { + return; + } + + loadingConsults = true; + + $.ajax({ + type: 'GET', + url: '/product/item/consults', + data: { + productId: id, + page: consultPage + } + }).then(function(data) { + var res; + + if (data.code === 200) { + res = data.data; + + if (res.length === 0) { + $consultsUl.next('.more-wrap').addClass('hide'); + return; + } + + //更新总数显示 + $consultNum.text(res[0].total); + + $consultsUl.append(consultsTpl({ + consults: res + })); + consultPage++; + } + }).always(function() { + loadingConsults = false; + }); + } + + //评价和咨询切换 + $('.consult-comment').on('click', '.title', function() { + var $this = $(this), + index = $this.index(); + + var $comments = $('.comments'), + $consults = $('.consults'); + + if ($this.hasClass('cur')) { + return; + } + + $this.addClass('cur'); + $this.siblings('.cur').removeClass('cur'); + + if (index === 0) { + + //咨询 + $consults.slideDown(SLIDETIME); + $comments.slideUp(SLIDETIME); + } else { + $consults.slideUp(SLIDETIME); + $comments.slideDown(SLIDETIME); + } + }).on('click', '.load-more', function() { + var $this = $(this); + + if ($this.hasClass('load-more-comments')) { + loadComments(); + } else { + loadConsults(); + } + }); + + //我要咨询 + $('#consults-btn').click(function() { + + //TODO:点击我要资讯的时候更新验证码显示 + $('.new-consult').removeClass('hide'); + $('.consult-success').addClass('hide'); + }); + + //提交咨询 + $('#submit-consult').click(function() { + var $this = $(this), + $parent = $this.closest('.new-consult'), + $textarea = $parent.find('.my-consult'), + content = $.trim($textarea.val()); + + var $consultWarn = $parent.find('.consult-warn'); + + var pass = true; + + if (content === '') { + $textarea.addClass('error'); + $consultWarn.removeClass('hide'); + + pass = false; + } else { + $textarea.removeClass('error'); + $consultWarn.addClass('hide'); + } + + if (pass === false) { + return; + } + + $.ajax({ + type: 'POST', + url: '/product/item/addconsult', + data: { + productId: id, + content: content + } + }).then(function(data) { + var code = data.code; + + if (code === 200) { + $parent.addClass('hide'); + + $parent.siblings('.consult-success').removeClass('hide'); + + //清空输入 + $textarea.val(''); + } else if (code === 403) { + + //跳转登录页 + location.href = data.data.url; + } + }); + }); + + loadComments(); + loadConsults(); +}()); +}); +define("js/common/dialog", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 弹框公共组件 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2016/2/24 + */ + +var $ = require("jquery"), + Handlebars = require("handlebars"); + +var defaultOptions = { + mask: true, + closeIcon: true, + refreshOnClose: false +}; + +var tpl = + '<div class="yoho-dialog {{className}} hide">' + + '{{#if closeIcon}}' + + '<span class="close">' + + '<i class="iconfont"></i>' + + '</span>' + + '{{/if}}' + + '<div class="content">' + + '{{{content}}}' + + '</div>' + + '<div class="btns">' + + '{{# btns}}' + + '<span {{#if id}}id="dialog-{{id}}"{{/if}} class="btn{{#each btnClass}} {{.}}{{/each}}">' + + '{{name}}' + + '</span>' + + '{{/ btns}}' + + '</div>' + + '</div>'; + +var tplFn = Handlebars.compile(tpl); + +//背景蒙版 +function createMask() { + if ($('.body-mask').length === 0) { + $('body').append('<div class="body-mask hide"></div>'); + } + + return $('.body-mask').css({ + height: $(document).height(), + width: $(document).width() + }); +} + +function createDialog(data) { + $('body').append(tplFn(data)); + + return $('.yoho-dialog'); +} + +function cerateSubContent(text) { + var $yohoDialog = $('.yoho-dialog'), + subContent = '<p class="sub-content">' + text + '</p>'; + + if ($yohoDialog && $yohoDialog.length > 0) { + $yohoDialog.find('.content').after(subContent); + } +} + +function Dialog(options) { + var opt = $.extend({}, defaultOptions, options); + var that = this, + i; + + //实现继承时,只返回实例,不生成html + if (opt.inherit) { + return this; + } + + if (opt.mask) { + that.$mask = createMask(); + } + + that.$el = createDialog(opt); + + + if (opt.subContent) { + cerateSubContent(opt.subContent); + } + + if (opt.subContents) { + for (i = opt.subContents.length - 1; i >= 0; i--) { + cerateSubContent(opt.subContents[i]); + } + } + + //绑定x关闭事件 + that.$el.find('.close').click(function() { + that.close(); + if (options.refreshOnClose) { + window.location.reload(); + } + }); + + //绑定btn关闭事件 + that.$el.find('.btn-close').click(function() { + that.close(); + }); + + function bindBtnEvt(index) { + that.$el.find('#dialog-' + opt.btns[index].id).on('click', function() { + opt.btns[index].cb && opt.btns[index].cb(); + }); + } + + //绑定按钮事件 + if (!!opt.btns) { + for (i = 0; i < opt.btns.length; i++) { + bindBtnEvt(i); + } + } +} + +Dialog.prototype.close = function() { + this.$mask && this.$mask.addClass('hide'); + this.$el.remove(); +}; + +Dialog.prototype.show = function() { + this.$mask && this.$mask.removeClass('hide'); + this.$el.removeClass('hide').css({ + 'margin-top': -this.$el.height() / 2, + 'margin-left': -this.$el.width() / 2 + }); +}; + +exports.Dialog = Dialog; + +//Alert +function Alert(content) { + var that = this; + var option = { + content: content, + className: 'alert-dialog', + btns: [ + { + id: 'alert-sure', + btnClass: ['alert-sure'], + name: '确定', + cb: function() { + that.close(); + } + } + ] + }; + + Dialog.call(this, option); +} + +Alert.prototype = new Dialog({ + inherit: true +}); +Alert.prototype.constructor = Alert; +exports.Alert = Alert; + +//Confirm +function Confirm(opt) { + var that = this; + + var option = { + content: opt.content, + className: 'confirm-dialog', + btns: [ + { + id: 'confirm-sure', + btnClass: ['confirm-sure'], + name: '确定', + cb: opt.cb + }, + { + id: 'confirm-cancel', + btnClass: ['confirm-cancel'], + name: '取消', + cb: function() { + that.close(); + } + } + ] + }; + + Dialog.call(this, option); +} + +Confirm.prototype = new Dialog({ + inherit: true +}); +Confirm.prototype.constructor = Confirm; +exports.Confirm = Confirm; + +}); +define("js/common/share", ["jquery"], function(require, exports, module){ +/** + * 分享 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2016/3/1 + */ + +var $ = require("jquery"); + +function shareBase(options) { + var openUrl = ''; + var defOption = { + title: '', + url: window.location.href, + weixinUrl: '', + image: '', + desc: '', + channel: '' + }; + var shareChannels = ['weibo', 'tweibo', 'qzone', 'renren', 'qq', 'douban','weixin']; + var sharebox; + var shareCon = '<em><i></i></em>'; + + defOption = $.extend(defOption, options); + + if (defOption.image && defOption.image.substr(0, 2) === '//') { + defOption.image = 'http:' + defOption.image; + } + + if (defOption.weixinUrl && defOption.weixinUrl.substr(0, 2) === '//') { + defOption.weixinUrl = 'http:' + defOption.weixinUrl; + } + + if (defOption.url && defOption.url.substr(0, 2) === '//') { + defOption.url = 'http:' + defOption.url; + } + + if ($.inArray(defOption.channel, shareChannels) === -1) { + alert('不存在的分享平台!'); + return false; + } + + switch (defOption.channel) { + case 'weibo': + openUrl = 'http://service.weibo.com/share/share.php?url=' + defOption.url + '&title=' + + defOption.title + '&appkey=3739328910&searchPic=true&pic=' + defOption.image; + break; + case 'tweibo': + openUrl = 'http://share.v.t.qq.com/index.php?c=share&a=index&url=' + defOption.url + '&title=' + + defOption.title + '&appkey=c0af9c29e0900813028c2ccb42021792&pic=' + defOption.image; + break; + case 'qzone': + openUrl = 'http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=' + defOption.url + '&title=' + + defOption.title + '&desc=&summary=' + defOption.desc + '&site=YOHO!BUY 有货&pics=' + defOption.image; + break; + case 'renren': + openUrl = 'http://widget.renren.com/dialog/share?resourceUrl=' + defOption.url + '&srcUrl=' + + defOption.url + '&desc=' + defOption.desc + '&title=' + defOption.title + '&description=' + + defOption.desc + '&pic=' + defOption.image; + break; + case 'qq': + openUrl = 'http://connect.qq.com/widget/shareqq/index.html?url=' + defOption.url + '&desc=' + + defOption.desc + '&title=' + defOption.title.replace('%', '') + '&desc=&summary=' + + defOption.desc + '&site=YOHO!BUY 有货&pics=' + defOption.image; + break; + case 'weixin': + openUrl = 'http://s.jiathis.com/qrcode.php?url=' + defOption.weixinUrl + '&desc=' + + defOption.desc + '&title=' + defOption.title + '&description=' + + defOption.desc + '&pic=' + defOption.image; + break; + case 'douban': + openUrl = '//www.douban.com/share/service?href=' + defOption.url + '&text=' + + defOption.desc + '&image=' + defOption.image + '&title=' + defOption.title + '&comment='; + break; + } + + if (defOption.channel === 'weixin') { + if (!defOption.self) { + return; + } + + sharebox = defOption.self.closest('.share-to').find('.weixin-share-box'); + + if (sharebox.length > 0) { + shareCon += '<div class="con"><h2>分享到微信朋友圈</h2><p class="pic">' + + '<img src="' + openUrl + '" /></p><p class="w">打开微信,点击底部得“发现”,使用<br/>“扫一扫“即可将网页分享到我的朋友圈。</p>' + + '<a href="javascript:void(0)" class="close">x</a></div>'; + sharebox.find('div').length > 0 ? sharebox.show() : sharebox.html(shareCon).show(); + + sharebox.find('.close').click(function() { + $(this).closest('.weixin-share-box').hide(); + }); + } + } else { + window.open(encodeURI(openUrl)); + } +} + +function share(channel, self) { + var title = document.title.replace(/(^\s*)|(\s*$)/g, ''); + var desc = $('#share-desc').val(); + var image = $('#share-img').val(); + var weixinUrl = $('#weixin-url').val(); + + + if (channel === 'weibo' || channel === 'tqq') { + shareBase({ + channel: channel, + title: title, + image: image + }); + } else { + shareBase({ + channel: channel, + title: title, + desc: desc, + image: image, + self: self, + weixinUrl: weixinUrl + }); + } +} + +$('.share-wrapper').on('click', 'i', function() { + var $el = $(this), + type = $el.data('type'), + $weixinShareBox = $('.weixin-share-box'); + + if (type === 'weixin') { + share(type, $el); + } else { + $weixinShareBox.hide(); + share(type); + } +}); + +}); +define("js/product/shop-index", ["jquery","lazyload","handlebars","source-map","jquery-pjax"], function(require, exports, module){ +/** + * 首页 + * @author: bikai<kai.bi@yoho.cn> + * @date: 2016/4/26 + */ + +var $ = require("jquery"), + lazyLoad = require("lazyload"), + product = require("js/product/product"); + +var $shopIntro = $('.shop-intro'), + $shopCollect = $('.shop-collect'), + $sliderLeft = $('.slider-left'), + $allGoods = $('.all-goods'), + $fixedArea = $allGoods.find('.fixed-area'), + fixedAreaTop = $fixedArea.offset() ? $fixedArea.offset().top : 0; + +// Pjax +require("jquery-pjax"); + +require("js/common/slider"); +require("js/product/list"); + +product.init(4); + +lazyLoad($('img.lazy')); + +if ($sliderLeft.length) { + $sliderLeft.slider(); +} + +$shopIntro.on('click', function() { + $('.pop-shop-intro').show(); + $('.mask').show(); +}); + +$('.close-btn, .mask').on('click', function() { + $('.pop-shop-intro').hide(); + $('.mask').hide(); +}); + + +// 收藏店铺 +function colloectAction() { + var $colloectIcon = $shopCollect.find('.shop-collect-ico'), + $colloectText = $shopCollect.find('.shop-collect-text'), + isFavorite = $colloectIcon.hasClass('on'), + needColloect = window.cookie('needColloect'); + + $.ajax({ + type: 'post', + url: '/shoplist/setFavorite', + data: { + isFavorite: isFavorite ? 0 : 1, + needColloect: needColloect, + shopId: $shopCollect.data('id') + }, + success: function(res) { + if (res.code === 200) { + if (isFavorite) { + $colloectIcon.removeClass('on'); + $colloectText.html('收藏'); + } else { + $colloectIcon.addClass('on'); + $colloectText.html('已收藏'); + } + + if (needColloect) { + $colloectIcon.addClass('on'); + $colloectText.html('已收藏'); + } + } else if (res.code === 401) { + window.setCookie('needColloect', '1', { + path: '/', + domain: '.yohobuy.com', + expires: 90 + }); + location.href = res.url; + } + } + }); +} + +$shopCollect.on('click', function() { + colloectAction(); +}); + +if (window.cookie('needColloect') * 1 === 1 && window.getUid()) { + colloectAction(); + window.setCookie('needColloect', '', { + path: '/', + domain: '.yohobuy.com', + expires: 1 + }); +} + +// 全部商品使用 pjax 翻页 +$allGoods.pjax('a.pjax', '.goods-wrap', { + timeout: 5000, + scrollTo: false // 默认滚动没有动画,禁止掉 +}).on('pjax:end', function() { + product.init(4); + lazyLoad($('img.lazy')); + + $fixedArea = $allGoods.find('.fixed-area'); // 翻页后 fixed-area 区域有变化,需要更新选择器 + + // 分页后移动到全部商品 + $('html, body').animate({ + scrollTop: $allGoods.offset().top - 30 + }); +}).on('click', '.menu-list li', function() { + var $this = $(this); + + $this.siblings().removeClass('on'); + $this.addClass('on'); +}); + +$(window).on('scroll', function() { + var scrollTop = $(this).scrollTop(); + + if (scrollTop > fixedAreaTop) { + $fixedArea.css({ + position: 'fixed', + top: 0 + }); + } else { + $fixedArea.css({ + position: 'static', + top: 0 + }); + } +}); + +}); +define("js/index/index", ["jquery","lazyload","handlebars","source-map"], function(require, exports, module){ +/** + * 首页 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/11/23 + */ + +var $ = require("jquery"), + lazyLoad = require("lazyload"), + homePage = $('.home-page').data('page'), + brandUrl = $('.logo-brand').data('url'); + + +require("js/common/slider"); +require("js/common/slider2"); +require("js/common/logo-brand"); + +require("js/common/accordion"); + +$(document).on('mouseenter', '.imgopacity a img', function() { + $(this).css('opacity', 0.8); +}); +$(document).on('mouseout', '.imgopacity a img', function() { + $(this).css('opacity', 1); +}); + + + +if ($.inArray(homePage, ['boys','girls','kids','lifestyle']) > -1) { + require("js/common/new-arrivls")({ + type: homePage, + url: '/common/getNewArrival', + count: (homePage === 'boys') || (homePage === 'lifestyle') ? 5 : 4, + rows: [5,3] + }); + window.setCookie('_Channel', homePage, { + domain: '.yohobuy.com', + path: '/', + expires: 365 + }); +} + + + +lazyLoad($('img.lazy')); +if (homePage === 'boys') { + $('.slide-container').slider({ + pagination: '.thumb-pagination' + }); +} else { + $('.center-col').slider(); + $('.slide-container').slider(); +} + +if (homePage === 'boys') { + $('.logo-brand').logoBrand({ + url: brandUrl + }); + $('.img-brand').slider2(); +} else { + $('.logo-brand').logoBrand({ + showNum: 10, + url: brandUrl + }); + $('.img-slider-wrapper').slider2(); +} + + + +}); +define("js/common/slider2", ["jquery"], function(require, exports, module){ +/** + * (品牌优选)图片幻灯片插件 + * @author: wangqing(robin.wang@yoho.cn) + * @date: 205/7/2 + */ +var $ = require("jquery"); + +(function($) { + $.fn.slider2 = function(options) { + function autoplay(index, limit, toright) { + if (toright === true) { + $('.next').trigger('click'); + if (index === (limit - 3)) { + autoplayrecycle(--index, limit, false); + } else { + autoplayrecycle(++index, limit, true); + } + } else { + $('.prev').trigger('click'); + if (index === 0) { + autoplayrecycle(++index, limit, true); + } else { + autoplayrecycle(--index, limit, false); + } + } + } + + function autoplayrecycle(index, limit, toright) { + window.setTimeout(autoplay, $.fn.slider2.defaults.delaytime, index, limit, toright); + } + + function changePic(index, width, callback) { + var offersetleft = -(index * width); + + $('.img-list') + .animate({ + 'margin-left': offersetleft + 'px' + }, 'slow', callback); + + } + $.fn.slider2.defaults = { + index: 0, + shownum: 3, + autoplay: false, + delaytime: 3000 + }; + return this.each(function() { + var opts = $.extend({}, $.fn.slider2.defaults, options); + var mr = parseInt($('.img-item').css('margin-right')); + var $banneritems = $('.img-item'); + var bannerarr = []; + var _width = $banneritems.outerWidth() + mr, + _size = $banneritems.length, + j = 0; + + if (_size <= 3) { + $(this).find('.img-brand-switch').hide(); + return; + } + for (j = 0; j < $banneritems.length; j++) { + bannerarr.push($banneritems[j]); + } + _size = bannerarr.length; + $(this).find('.img-list').css({ + width: (_width * _size) + }); + $(this).find('.next').on('click', function(e) { + var i = 0, + _obj = null; + + e.preventDefault(); + + changePic(3, _width, function() { + for (i = 0; i < 3; i++) { + _obj = bannerarr.shift(); + + $('.img-item').parent().append(_obj.outerHTML); + bannerarr.push(_obj); + } + $('.img-item').first().remove(); + $('.img-item').first().remove(); + $('.img-item').first().remove(); + $('.img-list').css({ + 'margin-left': '0' + }); + }); + }); + $(this).find('.prev').on('click', function(e) { + var i = 0, + _obj = null, + offersetleft = ''; + + e.preventDefault(); + for (i = 0; i < 3; i++) { + _obj = bannerarr.pop(); + + $('.img-item').parent().prepend(_obj.outerHTML); + bannerarr.unshift(_obj); + } + offersetleft = 3 * _width; + $('.img-item').last().remove(); + $('.img-item').last().remove(); + $('.img-item').last().remove(); + $('.img-list').css({ + 'margin-left': -offersetleft + 'px' + }); + changePic(0, _width); + }); + if (opts.autoplay === true) { + autoplayrecycle(opts.index, _size, true); + } + }); + + }; + +}($)); +}); +define("js/common/accordion", ["jquery"], function(require, exports, module){ +var Slide = require("js/common/yohoui/YH.slide"); +var $ = require("jquery"); + +var $contain = $('.slide-accordion'); +var $item = $contain.find('li'); + +var $width = $item.width(); +var $spn = parseInt($('.home-page').width()) === 1150 ? (120 + 5) : (102 + 5); +var slide; + +function switchfun(to) { + $item.each(function(index) { + $(this).css('zIndex', index); + if (index <= to) { + $(this).stop().animate({ + left: index * $spn + }, 400); + } else { + $(this).stop().animate({ + left: (to) * $spn + $width + $spn * (index - to - 1) + }, 400); + } + }); +} + +switchfun(0); + +slide = new Slide({ + length: 5, + loop: false, + auto: false, + timeout: 2, + index: 0 +}); + +slide.on('change', function(data) { + switchfun(data.to); +}); + +$item.mouseover(function() { + slide.go($(this).index()); +}); + +slide.init(); +}); +define("js/common/yohoui/YH.slide", [], function(require, exports, module){ +var me = require("js/common/yohoui/YH.base"); + +var slide = function(options) { + this.__lastTime = null; + this.__isStop = false; + options = me.extend(this.defaults, options); + slide.superclass.constructor.call(this, options); +}; + +me.inherit(slide, me.assembly); + +slide.prototype.oninit = function() { + var __self = this, + _o = __self.options; + + if (_o.auto) { + __self.play(); + } + __self.go(_o.index); + return this; +}; + +slide.prototype.go = function(_to, _from) { + var __self = this, + _o = __self.options; + var _direction,_loop,_current,_index,_originalto,o,key,_e; + + if (__self.__lastTime) { + clearTimeout(__self.__lastTime); + __self.__lastTime = null; + } + _from = 'undefined' === typeof _from ? _o.index : _from; + _direction = _to === _from ? 0 : _to > _from ? 1 : -1; + _loop = _o.loop, _index = _o.length - 1, _originalto = _to; + if (_loop) { + if (_to > _index) { + _to = _to - _index - 1; + } else { + if (0 > _to) { + _to = _to + _index + 1; + } else { + _to = _to; + } + } + } else { + if (_to > _index) { + _to = _index; + } else { + if (0 > _to) { + _to = 0; + } else { + _to = _to; + } + } + } + _current = _o.index = _to; + + o = { + from: _from, + to: _to, + originalto: _originalto, + direction: _direction + }; + + for (key in __self.registerEvent) { + if (__self.registerEvent[key].length > 0) { + for (_e in __self.registerEvent[key]) { + if (__self.registerEvent[key].hasOwnProperty(_e)) { + __self.registerEvent[key][_e](o); + } + } + } + } + + if (_current !== _index || _to) { + if (!__self.__isStop && _o.auto) { + __self.play(); + } + } else { + if (__self.__lastTime) { + clearTimeout(__self.__lastTime); + } + } +}; + +slide.prototype.play = function() { + var __self = this, + _o = __self.options; + + __self.__lastTime = setTimeout(function() { + __self.next(); + }, 1000 * _o.timeout); + return this; +}; + +slide.prototype.next = function() { + var __self = this, + _o = __self.options; + var _from = _o.index; + var _to = _from + _o.step; + + __self.go(_to, _from); +}; + +slide.prototype.prev = function() { + var __self = this, + _o = __self.options; + var _from = _o.index; + var _to = _from - _o.step; + + __self.go(_to, _from); +}; + +slide.prototype.pause = function() { + var __self = this; + + if (__self.__lastTime) { + clearTimeout(__self.__lastTime); + } + __self.__isStop = true; +}; + +slide.prototype.resume = function() { + var __self = this; + + __self.__isStop = false; + __self.play(); +}; + +slide.prototype.defaults = { + index: 0, + timeout: 5, + step: 1, + per: 1, + auto: false, + loop: false +}; + +module.exports = slide; +}); +define("js/common/yohoui/YH.base", [], function(require, exports, module){ +var assembly; +var classtype = { + '[object Array]': 'array', + '[object Boolean]': 'boolean', + '[object Date]': 'date', + '[object Function]': 'function', + '[object Number]': 'number', + '[object Object]': 'object', + '[object RegExp]': 'regexp', + '[object String]': 'string' + }; +var me = { + __Index: 0, + list: [], + get: function(id) { + return id === undefined ? this.list : this.list[id]; + }, + fn: function() { }, + inherit: function(childClass, parentClass) { + var Constructor = me.fn; + + Constructor.prototype = parentClass.prototype; + childClass.prototype = new Constructor(); + + childClass.prototype.constructor = childClass; + childClass.superclass = parentClass.prototype; + + if (childClass.prototype.constructor === Object.prototype.constructor) { + childClass.prototype.constructor = parentClass; + } + }, + extend: function(obj, newProperties) { + var key; + + for (key in newProperties) { + if (newProperties.hasOwnProperty(key)) { + obj[key] = newProperties[key]; + } + } + return obj; + }, + copy: function(TargetClass, obj, newProperties) { + var value,o,key; + + if (typeof obj !== 'object') { + return obj; + } + value = obj.valueOf(); + if (obj !== value) { + return new obj.constructor(value); + } + if (obj instanceof obj.constructor && obj.constructor !== Object) { + if (TargetClass) { + o = new TargetClass(); + } else { + o = me.clone(obj.constructor.prototype); + } + + for (key in obj) { + if (TargetClass || obj.hasOwnProperty(key)) { + o[key] = obj[key]; + } + } + } else { + o = {}; + for (key in obj) { + if (o.hasOwnProperty(key)) { + o[key] = obj[key]; + } + } + } + if (newProperties) { + for (key in newProperties) { + if (o.hasOwnProperty(key)) { + o[key] = newProperties[key]; + } + } + } + + return o; + }, + clone: function(obj) { + me.__cloneFunc.prototype = obj; + return new me.__cloneFunc(); + }, + __cloneFunc: function() { + }, + delegate: function(func, scope) { + var args; + + scope = scope || window; + + if (arguments.length > 2) { + args = Array.prototype.slice.call(arguments, 2); + + return function() { + return func.apply(scope, args); + }; + } else { + return function() { + return func.call(scope); + }; + } + }, + dom: function($select, classCss) { + var wrap = $select; + var name, DOM = { + wrap: wrap + }, + els = wrap[0].getElementsByTagName('*'), + elsLen = els.length; + var i; + + for (i = 0; i < elsLen; i++) { + name = els[i].className; + if (name.indexOf(classCss) > -1) { + name = name.split(classCss)[1]; + } + if (name) { + DOM[name] = wrap.find(els[i]); + } + } + return DOM; + }, + + //模板引擎 + template: function() { + var result, key, reg,i; + var args = arguments; + + if (args.length > 0) { + if (me.isString(args[0])) { + result = args[0]; + if (args.length === 2 && me.isObject(args[1])) { + for (key in args[1]) { + if (args[1][key] !== undefined) { + reg = new RegExp('({' + key + '})', 'g'); + + result = result.replace(reg, args[1][key]); + } + } + } else { + for (i = 1; i < args.length; i++) { + if (args[i] !== undefined) { + reg = new RegExp('({[' + (i - 1) + ']})', 'g'); + + result = result.replace(reg, args[i]); + } + } + } + } + } + return result; + }, + __type: function(obj) { + return obj == null ? String(obj) : classtype[Object.prototype.toString.call(obj)] || 'object'; + }, + isObject: function(obj) { + return this.isFunction(obj) || !!(obj && 'object' === typeof obj); + }, + isFunction: function(obj) { + return this.__type(obj) === 'function'; + }, + isArray: Array.isArray || function(obj) { + return this.__type(obj) === 'array'; + }, + isNum: function(obj) { + return !isNaN(parseFloat(obj)) && isFinite(obj); + }, + isString: function(obj) { + return this.__type(obj) === 'string'; + }, + each: function(data, callback, args) { + var i, len; + + if (me.isArray(data)) { + for (i = 0, len = data.length; i < len; i++) { + if (callback.call(data[i], i, data[i], args) === false) { + break; + } + } + } else { + + for (i in data) { + if (callback.call(data[i], i, data[i], args) === false) { + break; + } + } + } + }, + funManager: { + __loadList: {}, + __loadFun: function(item, callback, win) { + + if (item.methord && me.isFunction(item.methord())) { + win = win || window; + item.methord()(item, function() { + callback(); + }, win); + } + }, + load: function(fns, statechange, win, __index) { + __index = __index || 0; + + if (fns[__index]) { + me.funManager.__loadFun(fns[__index], function() { + me.funManager.load(fns, statechange, win, __index + 1); + }, win); + } + statechange(__index, win); + }, + get: function(id) { + return this.__loadList[id]; + } + }, + log: function(msg) { + var console = window.console || { + log: function() { } + }; + + console.log(msg); + }, + Event: { + mousewheel: function(e) { + var _eoe = e.originalEvent; + var _de = _eoe.detail ? _eoe.detail * -1 : _eoe.wheelDelta / 40; + var _direction = _de < 0 ? -1 : 1; + + return { + direction: _direction, + unit: _de + }; + }, + __: function(_e, el, event, handle) { + var key; + + for (key in _e) { + if (window[_e[key].validator]) { + el[_e[key].validator](_e[key].prefix + event, handle, false); + break; + } + } + }, + add: function(el, event, handle) { + var _e = [ + { + validator: 'addEventListener', + prefix: '' + }, + { + validator: 'attachEvent', + prefix: 'on' + } + ]; + + this.__(_e, el, event, handle); + }, + remove: function(el, event, handle) { + var _e = [ + { + validator: 'removeEventListener', + prefix: '' + }, + { + validator: 'detachEvent', + prefix: 'on' + } + ]; + + this.__(_e, el, event, handle); + } + }, + getUid: function(_name) { + return me.template('me-{0}{1}-{2}', _name, new Date().getTime(), me.__Index++); + }, + Browser: { + isTouch: function() { + var msGesture = window.navigator && window.navigator.msPointerEnabled && window.MSGesture; + + return (('ontouchstart' in window) || msGesture || window.DocumentTouch) ? true : false; + }, + Prefix: function() { + var i; + + var props = ['perspectiveProperty', 'WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective']; + var obj = document.createElement('div'); + + for (i in props) { + if (obj.style[props[i]] !== undefined) { + return me.template('-{0}-', props[i].replace('Perspective', '').toLowerCase()); + } + } + }, + parseURL: function(url) { + var a = document.createElement('a'); + var ret,seg,len,i,s; + + a.href = url; + return { + source: url, + protocol: a.protocol.replace(':', ''), + host: a.hostname, + port: a.port, + query: a.search, + params: (function() { + ret = {}, + seg = a.search.replace(/^\?/, '').split('&'), + len = seg.length, i = 0, s; + + for (; i < len; i++) { + if (!seg[i]) { + continue; + } + s = seg[i].split('='); + ret[s[0]] = s[1]; + } + return ret; + })(), + file: (a.pathname.match(/\/([^\/?#]+)$/i) || [null, ''])[1], + hash: a.hash.replace('#', ''), + path: a.pathname.replace(/^([^\/])/, '/$1'), + relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [null, ''])[1], + segments: a.pathname.replace(/^\//, '').split('/') + }; + } + }, + Array: { + indexOf: function(array, val) { + var i; + + for (i = 0; i < array.length; i++) { + if (this[i] === val) { + return i; + } + } + return -1; + }, + remove: function(array, val) { + var index = this.indexOf(array, val); + + if (index > -1) { + array.splice(index, 1); + } + return array; + } + } +}; + +assembly = function(options) { + this.initialized = false; + this.registerEvent = { + before: [], + change: [], + after: [] + }; + this.options = options; + + this.init(options); +}; + +assembly.output = function() { + me.log(me.list); +}; +assembly.prototype.oninit = me.fn; + +assembly.prototype.init = function(cfg) { + this.initialized = true; + + // function _getClassName(_constructor, _constr) { + // var _constr = _constr || ""; + // if (_constructor.superclass) { + // var args = /(\w+)\.superclass/.exec(_constructor.arguments.callee); + // if (args != null) { + // _constr += args[1] + "-"; + // // return _getClassName(_constructor.superclass.constructor, _constr); + // } + // } + // return _constr; + // } + this.__Uid = me.getUid('me'); + this.oninit(cfg); + me.list[this.__Uid] = this; +}; +assembly.prototype.destory = function() { + this.initialized = false; + delete me.list[this.__Uid]; +}; +assembly.prototype.getUid = function() { + return this.__Uid; +}; +assembly.prototype.getOptions = function() { + return this.options; +}; +assembly.prototype.config = function() { + if (arguments.length > 0) { + if (typeof (arguments[0]) === 'string') { + if (arguments.length > 1) { + this.options[arguments[0]] = arguments[1]; + } else { + return this.options[name]; + } + } + } else { + return this.options; + } +}; +assembly.prototype.on = function(name, callback) { + var __self = this; + var _e = __self.registerEvent[name]; + + if (_e) { + _e.push(callback); + } + return _e; +}; +assembly.prototype.off = function(name, callback) { + var __self = this; + var _e = __self.registerEvent[name]; + var e = []; + + me.each(_e, function(name, _callback) { + + if (_callback === callback) { + e.push(name); + } + }); + + me.each(e.reverse(), function(name, _callback) { + _e.splice(_callback, 1); + }); +}; +me.assembly = assembly; + +module.exports = me; +}); +define("js/common/new-arrivls", ["jquery","lazyload","handlebars","source-map"], function(require, exports, module){ +var $ = require("jquery"), + lazyload = require("lazyload"); +var Handlebars = require("handlebars"); + +function InfiniteLoad(options) { + var defaults = { + index: 0, + isload: true,//是否正在加载 + isrun: true,//判断是否执行 + offset: { + height: null, + width: null + } + }; + + this.registerEvent = { + before: [], + change: [], + after: [] + }; + + this.options = $.extend(true, {}, defaults, options); + + return this; +} + +InfiniteLoad.prototype.on = function(name, callback) { + var g = this; + var _e = g.registerEvent[name]; + + if (_e) { + _e.push(callback); + } + return _e; +}; + +InfiniteLoad.prototype.exect = function(key, params) { + var g = this; + var e; + + if (g.registerEvent[key] && g.registerEvent[key].length > 0) { + for (e in g.registerEvent[key]) { + if (g.registerEvent[key].hasOwnProperty(e)) { + g.registerEvent[key][e](params); + } + } + } +}; + +InfiniteLoad.prototype.init = function() { + var g = this; + var p = this.options; + + function __loadMore() { + + if (p.isrun && p.isload && g.__directionCalculation()) { + p.isload = false; + p.index++; + g.exect('after', p); + } + + g.exect('change', p); + } + + g.exect('before', p); + + $(window).scroll(__loadMore); +}; + +InfiniteLoad.prototype.emit = function() { + var p = this.options; + + p.isload = true; +}; + +InfiniteLoad.prototype.stop = function() { + var p = this.options; + + p.isrun = false; + p.isload = false; +}; + +InfiniteLoad.prototype.__directionCalculation = function() { + var p = this.options; + + if (p.offset.height && p.offset.height() > 0 && $(window).scrollTop() + $(window).height() >= p.offset.height()) { + return true; + } + return false; +}; + +module.exports = function(data) { + var $container = $('#newarrivals .goods-container'); + var $load = $('.loading a'); + var load = new InfiniteLoad({ + index: 1, + isload: false, + offset: { + height: function() { + return parseFloat($container.offset().top) + parseFloat($container.height()) - 200; + } + } + }); + var loadAjax; + var url = data.url, + count = data.count, + rows = data.rows; + + data.pageIndex = 0; + + delete data.url; + delete data.count; + delete data.rows; + + loadAjax = function(url, data, count) { + + var options = { + type: 'POST', + url: url, + success: function(result) { + var code = result.code; + var myTemplate,len,pos; + + if (code === 200) { + len = result.goods.length % count; + pos = result.goods.length - len - 1; + + result.goods.splice(pos, len); + + myTemplate = Handlebars.compile(load.tpl); + + $container.append(myTemplate(result.goods)); + data.pageIndex = data.pageIndex + result.goods.length; + + //懒加载插件貌似有点问题,图片先直接展示 + lazyload($container.find('img.lazy')); + + load.emit(); + } else { + + load.stop(); + $load.html('查看更多'); + } + }, + error: function() { + + load.stop(); + $load.html('网络断开连接了~'); + } + }; + + options.data = data; + $.ajax(options); + }; + + + load.on('after', function(p) { + + data.pageCount = count * rows[1]; + + loadAjax(url, data); + }); + + load.on('before', function(p) { + + + load.tpl = '{{#each this}}'; + load.tpl += '<div class="good-info imgopacity" data-skn="{{skn}}">'; + load.tpl += ' <div class="tag-container clearfix">'; + load.tpl += ' {{# tags}}'; + load.tpl += ' {{# isNew}}'; + load.tpl += ' <span class="good-tag new-tag">NEW</span>'; + load.tpl += ' {{/ isNew}}'; + load.tpl += ' {{# isReNew}}'; + load.tpl += ' <span class="good-tag renew-tag">再到着</span>'; + load.tpl += ' {{/ isReNew}}'; + load.tpl += ' {{# isSale}}'; + load.tpl += ' <span class="good-tag sale-tag">SALE</span>'; + load.tpl += ' {{/ isSale}}'; + load.tpl += ' {{# isNewFestival}}'; + load.tpl += ' <span class="good-tag new-festival-tag">新品节</span>'; + load.tpl += ' {{/ isNewFestival}}'; + load.tpl += ' {{# isLimit}}'; + load.tpl += ' <span class="good-tag limit-tag">限量商品</span>'; + load.tpl += ' {{/ isLimit}}'; + load.tpl += ' {{# isYearEndPromotion}}'; + load.tpl += ' <span class="good-tag yep-tag">年终大促</span>'; + load.tpl += ' {{/ isYearEndPromotion}}'; + load.tpl += ' {{# isYearMidPromotion}}'; + load.tpl += ' <span class="good-tag ymp-tag">年中热促</span>'; + load.tpl += ' {{/ isYearMidPromotion}}'; + load.tpl += ' {{/ tags}}'; + load.tpl += ' </div>'; + load.tpl += ' <div class="good-detail-img">'; + load.tpl += ' <a class="good-thumb" href="{{url}}" target= "_blank">'; + load.tpl += ' <img class="lazy" data-original="{{thumb}}">'; + load.tpl += ' </a>'; + load.tpl += ' {{# isFew}}'; + load.tpl += ' <p class="few-tag">即将售罄</p>'; + load.tpl += ' {{/ isFew}}'; + + load.tpl += ' {{#if showColBtn}}'; + load.tpl += ' <span class="col-btn iconfont{{#if coled}} coled{{/if}}"></span>'; + load.tpl += ' {{/if}}'; + load.tpl += ' </div>'; + load.tpl += ' <div class="good-detail-text">'; + load.tpl += ' <a href="{{url}}" target= "_blank">{{name}}</a>'; + load.tpl += ' <p class="price">'; + load.tpl += ' <span class="sale-price{{#unless marketPrice}}prime-cost{{/unless}}">'; + load.tpl += ' ¥{{salePrice}}'; + load.tpl += ' </span>'; + load.tpl += ' {{# marketPrice}}'; + load.tpl += ' <span class="market-price">¥{{.}}</span>'; + load.tpl += ' {{/ marketPrice}}'; + load.tpl += ' </p>'; + load.tpl += ' </div>'; + load.tpl += '</div>'; + load.tpl += '{{/each}}'; + + + data.pageCount = count * rows[0]; + + loadAjax(url, data, data.count); + + //load.emit(); + }); + + load.init(); + +}; +}); +define("js/brand/index", ["jquery","lazyload","handlebars","source-map","dot"], function(require, exports, module){ +/** + * 首页 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/11/23 + */ + +var $ = require("jquery"), + lazyLoad = require("lazyload"); + + +require("js/common/slider"); +require("js/brand/brands"); + +lazyLoad($('img.lazy')); +$('.slide-container').slider({ + orient: true +}); +}); +define("js/brand/brands", ["jquery","handlebars","source-map","dot"], function(require, exports, module){ +var $ = require("jquery"), + Handlebars = require("handlebars"), + dot = require("dot"); + +var $tabs = $('.brands-tabs'); +var $list = $('.brands-list'); +var $gory = $('.brands-category'); +var $news = $('.news-txt ul'); +var $clearfix = $list.find('dl.clearfix'); +var $brand = $list.find('li>a'); +var $category = $gory.find('a'); +var $tab = $tabs.find('li>a'); +var $arr = $tabs.find('.hoverarr'); +var $thisTab; + +var categoryHeight = $category.height(); +var categoryTop = $category.offset() ? $category.offset().top : 0; +var newsHeight = $news.height(); +var newsTop = $news.offset() ? $news.offset().top : 0; +var timeout, _id; + + +//用于临时存储数据 +var tempdata = {}; + +var templete = '<div class="brands-dialog">'; + +templete += ' <div class="brands-layer">'; +templete += ' <div class="layer-content">'; +templete += ' <div class="title">{{title}}</div>'; +templete += ' <div class="clearfix desc">'; +templete += ' <img src="{{icon}}">'; +templete += ' <p class="right">{{content}}</p>'; +templete += ' </div> '; +templete += ' <div class="featured">'; +templete += ' <p>{{subtitle}}</p> '; +templete += ' <div class="clearfix"> '; +templete += ' {{#each imgs}}'; +templete += ' <img src="{{src}}">'; +templete += ' {{/each}}'; +templete += ' </div>'; +templete += ' </div>'; +templete += ' </div>'; +templete += ' </div>'; +templete += '</div>'; + +dot($('.brand-desc')); + +$.easing.easeOutQuint = function(x, t, b, c, d) { + return c * ((t = t / d - 1) * t * t * t * t + 1) + b; +}; + +function getQueryString(name) { + var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)'); + var r = window.location.search.substr(1).match(reg); + + if (r != null) { + return window.unescape(r[2]); + } + return null; +} + +// 格式化资讯NEWS标题数量 +if ($news.length) { + $news.find('li').each(function() { + var $dom = $(this); + var domHeight = $dom.offset().top - newsTop + $dom.height(); + + if (domHeight > newsHeight) { + $dom.hide(); + } + }); +} + +//头部图片TAB切换展示 +$tab.eq(0).parent('li').find('.brands-content').css('z-index', '1'); + +_id = getQueryString('id') ? getQueryString('id') : 0; + +// 设置对应TAB选中 +$thisTab = $tab.eq(_id); +$thisTab.find('.g-mask').addClass('g-mask-on'); + +if (_id && $thisTab.length) { + $arr.css({ + left: parseFloat($thisTab.offset().left) - parseFloat($tabs.offset().left) + }); +} +$tab.hover(function() { + var $this = $(this); + + clearTimeout(timeout); + timeout = setTimeout(function() { + var targetLeft = parseFloat($this.offset().left) - parseFloat($tabs.offset().left); + + $arr.animate({ + left: targetLeft + }, 200, 'easeOutQuint'); + }, 50); + $tabs.find('.brands-content').removeAttr('style'); + $this.parent('li').find('.brands-content').css('z-index', '1'); + +}, function() { + clearTimeout(timeout); +}); + +//品牌类别滚动事件 +$(window).scroll(function() { + if ($(this).scrollTop() >= categoryTop) { + $gory.addClass('category-fix'); + } else { + $gory.removeClass('category-fix'); + } +}); + +//点击字母,页面滚动到相关区域 +$category.click(function() { + var name = $(this).attr('href').split('#')[1]; + var targetTop = $list.find('[name=' + name + ']').offset().top - categoryHeight; + + if (!$gory.hasClass('category-fix')) { + targetTop -= categoryHeight; + } + + $('html,body').animate({ + scrollTop: targetTop + }, 200); + return false; +}); + + +//浮层代码 +function bindTemplete($select, data, templete) { + var $this = $select; + var offset = { + width: $this.width(), + left: $this.offset().left, + right: parseFloat($(window).width()) - parseFloat($this.offset().left) - parseFloat($this.width()) + }; + + var $parent = $this.parent('li'); + var myTemplate; + + $list.find('.brands-dialog').remove(); + myTemplate = Handlebars.compile(templete); + $parent.append(myTemplate(data)); + dot($parent.find('.right')); + + if (offset.right - 350 < 0) { + $parent.find('.brands-layer') + .addClass('brands-layer-right').css('left', -330 - offset.width); + } +} + +//鼠标悬浮品牌,请求数据,并且展示 +function bindHoverEvent() { + $brand.unbind('mouseenter').unbind('mouseleave').hover(function() { + var $this = $(this); + var key = $this.attr('data-key'); + + var options = { + url: '/brands/brandinfo', + type: 'get', + data: { + brandId: key + }, + success: function(_data) { + + if (_data.code === 200 && _data.brand) { + if (!tempdata.hasOwnProperty(_data.brand.key)) { + tempdata[_data.brand.key] = _data.brand; + } + bindTemplete($this, tempdata[_data.brand.key], templete); + } + } + }; + + clearTimeout(timeout); + timeout = setTimeout(function() { + if (!tempdata.hasOwnProperty(key)) { + $.ajax(options); + } else { + bindTemplete($this, tempdata[key], templete); + } + }, 200); + }, function() { + clearTimeout(timeout); + $list.find('.brands-dialog').remove(); + }); +} + +if ($clearfix.length < 26) { + $.ajax({ + url: '/brands/brandList', + type: 'POST', + data: { + start: $clearfix.length ? ($clearfix.length + 1) : 1 + }, + success: function(_data) { + if (_data) { + $list.append(_data); + $brand = $list.find('li>a'); + bindHoverEvent(); + } + } + }); +} + +bindHoverEvent(); +}); +define("js/passport/entry", ["jquery","jquery.placeholder"], function(require, exports, module){ +/* + * 密码中心打包入口文件 + */ + +require("js/passport/reg"); +require("js/passport/back"); +require("js/passport/login"); +require("js/passport/reset"); +require("js/passport/vertification"); +require("js/passport/thirdlogin"); +require("js/passport/third-pwd"); +require("js/passport/relate"); +}); +define("js/passport/reg", ["jquery","jquery.placeholder"], function(require, exports, module){ +/* + * @description 注册页js + * @time 2015/12/14 + */ + +var $ = require("jquery"), + regValidate = require("js/passport/mail-phone-regx"), + computeComplex = require("js/passport/pwd-strength"); + +var $registerPage = $('.register-page'), + $pwdTips = $('#pwd-tips'), + $pwdTip1 = $pwdTips.find('#pwd-tip1'), + $errTip = $('#err-tip'), + $registerBtn = $('#register-btn'), + $countDown = $('#count-down'), + $successBtn = $('.success-btn'), + countDown = 5, + clearT; + +var $sendCaptcha = $('#send-captcha'), + caCount = 4, + validateResult = []; + +var $pn = $('#phone-num'), + $mc = $('#msg-captcha'), + $pwd = $('#pwd'), + $repwd = $('#repwd'), + $ca = $('#captcha'), + timeResidue = 0; + +// 密码强度验证 +var $pwdIntensity = $('.pwd-intensity'), + $pwdParent = $pwdIntensity.closest('.pwd-intensity-container'); + +//signup验证 +var $region = $('#country-code'), + $regionSelect = $('#region'), + isPwd = false, + pwdVal; + +var pwdReg = regValidate.pwdValidateRegx; + +var $curErrContainer; + +var oldPhone = ''; //如果手机号改变时刷新验证码 + +require("jquery.placeholder"); + +setTimeout(function() { + $pn.val(''); + $mc.val(''); + $pwd.val(''); + $repwd.val(''); + $ca.val(''); +}, 0); + +//验证码位数 +$ca.attr('maxlength', caCount); + +//密码规则提示 +$pwd.focus(function(event) { + $pwdTips.removeClass('hide'); + isPwd = true; + pwdVal = $(this).val(); +}).blur(function() { + $pwdTips.addClass('hide'); + isPwd = false; +}); + + +//IE8 placeholder +$('[placeholder]').placeholder(); + +// 存储校验信息 +validateResult = [ + { + id: 'phone-num', + message: '', //错误信息 + status: false //当前的状态 + }, + { + id: 'captcha', + message: '', + status: false + }, + { + id: 'msg-captcha', + message: '', + status: false + }, + { + id: 'pwd', + message: '', + status: false + }, + { + id: 'repwd', + message: '', + status: false + } +]; + +//刷新图形验证码 +function refreshPic() { + var time = new Date(), + $captchaImg = $('.captcha-img'), + captchaImgSrc = $captchaImg.attr('src').split('?')[0]; + + $captchaImg.attr('src', captchaImgSrc + '?t=' + time.getTime()); +} + +//手机号ajax校验 +function phoneAjaxFn(page, callback) { + var url, + data; + + if (page === 'reg') { + url = '/passport/register/checkmobile'; + data = { + mobile: $pn.val(), + area: $region.text().split('+')[1] + }; + } else if (page === 'third') { + url = '/passport/autouserinfo/bindCheck'; + data = { + mobile: $pn.val(), + area: $region.text().split('+')[1], + openId: $('#open-id').val(), + sourceType: $('#source-type').val() + }; + } + + validateResult[0].message = 'err'; + validateResult[0].status = false; + + $.ajax({ + url: url, + type: 'POST', + data: data + }).then(function(data) { + if (!data) { + return; + } + + switch (data.code) { + case 200: + + if ($pn.val() !== oldPhone && oldPhone !== '') { + + // 如果手机号发生改变则刷新验证码并且更新状态 + refreshPic(); + $sendCaptcha.addClass('disable').attr('disabled', 'disabled'); + validateResult[1].message = '图形验证码错误'; + validateResult[1].status = false; + } + + oldPhone = $pn.val(); + + validateResult[0].message = ''; + validateResult[0].status = true; + break; + case 400: + refreshPic(); + validateResult[0].message = data.message; + validateResult[0].status = false; + break; + } + + callback(); + }); +} + +//图形验证码ajax校验 +function picCaptchaAjaxFn(page, callback) { + var url; + + if (page === 'reg') { + url = '/passport/register/piccaptcha'; + } else if (page === 'third') { + url = '/passport/autouserinfo/checkPicCode'; + } + $.ajax({ + type: 'POST', + url: url, + data: { + verifyCode: $ca.val() + + //mobile: $pn.val(), + //area: $region.text().split('+')[1] + } + }).then(function(data) { + if (!data) { + return; + } + + switch (data.code) { + case 200: + validateResult[1].message = ''; + validateResult[1].status = true; + break; + case 400: + refreshPic(); + validateResult[1].message = '图形验证码错误'; + validateResult[1].status = false; + break; + } + callback(); + }); +} + +//短信验证码ajax校验 +function msgCaptchaAjaxFn(page, callback) { + var url; + + if (page === 'reg') { + url = '/passport/register/msgcaptcha'; + } else if (page === 'third') { + url = '/passport/autouserinfo/checkBindMsg'; + } + $.ajax({ + type: 'POST', + url: url, + data: { + code: $mc.val(), + mobile: $pn.val(), + area: $region.text().split('+')[1] + } + }).then(function(data) { + if (!data) { + return; + } + + switch (data.code) { + case 200: + validateResult[2].message = ''; + validateResult[2].status = true; + break; + case 400: + validateResult[2].message = '短信验证码错误'; + validateResult[2].status = false; + break; + } + + callback(); + }); +} + +// 验证 +function validateRule(page, $element, callback) { + + var val = $.trim($element.val()), + regionCode; + + + + // 根据需求//redmine.yoho.cn/issues/3117改成上边的正则 + // 对应的错误提示语也改了,感觉要不了多久就会改回来 + // pwdReg = /^([a-zA-Z0-9\-\+_!@\#$%\^&\*\(\)\:\;\.=\[\]\\\',\?]){6,20}$/gi; + + //手机号校验 + if ($element.hasClass('phone-num')) { + + regionCode = $region.text(); + + + if (val === '') { + validateResult[0].message = '请输入手机号码'; + validateResult[0].status = false; + callback(); + + } else { + if (!/^[0-9]+$/.test(val) || + (regionCode === '+86' && !regValidate.phoneRegx[regionCode].test(val))) { + validateResult[0].message = '手机号码格式不正确,请重新输入'; + validateResult[0].status = false; + callback(); + } else { + phoneAjaxFn(page, callback); + } + } + + //图形验证码校验 + } else if ($element.hasClass('captcha')) { + if (val === '') { + validateResult[1].message = '请输入图形验证码'; + validateResult[1].status = false; + callback(); + + } else if (val.length <= 3) { + validateResult[1].message = '图形验证码为4位'; + validateResult[1].status = false; + callback(); + + } else { + + // 并且手机号正确 + if (validateResult[0].status) { + picCaptchaAjaxFn(page, callback); + } else { + validateResult[1].message = '图形验证码错误'; + validateResult[1].status = false; + callback(); + } + + } + + //短信验证码校验 + } else if ($element.hasClass('msg-captcha')) { + + if (val === '') { + validateResult[2].message = '请输入短信验证码'; + validateResult[2].status = false; + callback(); + + } else if (val.length <= 3) { + validateResult[2].message = '短信验证码错误'; + validateResult[2].status = false; + callback(); + + } else { + + // 并且图形验证码正确 + if (validateResult[1].status) { + msgCaptchaAjaxFn(page, callback); + } else { + validateResult[2].message = '短信验证码错误'; + validateResult[2].status = false; + callback(); + } + } + + //密码校验 + } else if ($element.hasClass('pwd')) { + if (val === '') { + validateResult[3].message = '请输入密码'; + validateResult[3].status = false; + + } else if (val.length < 6 || val.length > 20) { + validateResult[3].message = '密码只支持6-20位字符'; + validateResult[3].status = false; + + } else if (!pwdReg.test($element.val())) { + validateResult[3].message = '密码须字母和数字组合'; + validateResult[3].status = false; + + } else { + validateResult[3].message = ''; + validateResult[3].status = true; + } + callback(); + + //二次密码校验 + } else if ($element.hasClass('repwd')) { + if (val === '') { + validateResult[4].message = '请输入密码确认'; + validateResult[4].status = false; + + } else if ($pwd.val() !== val) { + validateResult[4].message = '与密码不一致,请重新输入'; + validateResult[4].status = false; + + } else { + validateResult[4].message = ''; + validateResult[4].status = true; + + } + + callback(); + } +} + +function posErrTip() { + var tipPos = $curErrContainer.offset(); + + return $errTip.css({ + top: tipPos.top - 40, + left: tipPos.left + }); +} + +//显示提示信息 +function showErrTip() { + + var show = false, + i, + validateResultLen = validateResult.length; + + for (i = 0; i < validateResultLen; i++) { + if (!show) { + + //不可以通过status判断 + if (!!validateResult[i].message && validateResult[i].message !== 'err') { + + //显示错误提示 + $errTip.find('span').text(validateResult[i].message); + $curErrContainer = $('#' + validateResult[i].id); + posErrTip().removeClass('hide'); + + show = true; //停止判断 + } else { + $errTip.addClass('hide'); + } + } + } +} + +//显示红色边框 +function showBorder() { + + var $errInput, + i, + validateResultLen = validateResult.length; + + for (i = 0; i < validateResultLen; i++) { + if (!!validateResult[i].message) { + + //显示红色边框 + $errInput = $('#' + validateResult[i].id); + $errInput.addClass('error'); + + } else { + + //去掉红色边框 + $errInput = $('#' + validateResult[i].id); + $errInput.removeClass('error'); + } + } +} + +// 密码强度验证 +function pwdFn($obj) { + var pwd = $obj.val(), + pwdStrength = computeComplex(pwd), + level = 0; + + if (pwdStrength === 0) { + level = 0; + } else if (pwdStrength <= 10) { + level = 1; + } else if (pwdStrength <= 20) { + level = 2; + } else { + level = 3; + } + + switch (level) { + case 0: + $pwdParent.removeClass('red yellow green'); + $pwdIntensity.removeClass('color'); + break; + case 1: + $pwdParent.addClass('red').removeClass('yellow green'); + $pwdIntensity.filter('.low').addClass('color'); + $pwdIntensity.filter('.mid,.high').removeClass('color'); + break; + case 2: + $pwdParent.addClass('yellow').removeClass('red green'); + $pwdIntensity.filter('.low,.mid').addClass('color'); + $pwdIntensity.filter('.high').removeClass('color'); + break; + case 3: + $pwdParent.addClass('green').removeClass('yellow red'); + $pwdIntensity.addClass('color'); + break; + } + + //提示框 + if (pwd === '') { + $pwdTip1.removeClass('red yes no').addClass('default'); + } else if (pwd.length < 6 || pwd.length > 20) { + $pwdTip1.removeClass('default yes').addClass('no red'); + } else { + $pwdTip1.removeClass('default no red').addClass('yes'); + } +} + +//重新定位错误提示 +$(window).resize(function() { + if ($errTip.hasClass('hide')) { + return; + } + + posErrTip(); +}); + +// 失去焦点时开始校验 +// Tips: 不可以在获得焦点的时候验证,获得焦点和失去焦点的间隔太小,如果中间存在ajax校验的话会出现问题 +// ( ▼-▼ )注册页和信息完善页面接口不同 +exports.init = function(page) { + + $('#agree-terms').click(function() { + + var $this = $(this), + i, + passI = 0; + + if (!!$this.attr('notchecked')) { + + $this.removeAttr('notchecked'); + + //勾选 + for (i = 0; i < validateResult.length; i++) { + if (validateResult[i].status) { + passI++; + } + } + if (passI === 4) { + $registerBtn.removeClass('disable').removeAttr('disabled'); + } + } else { + + //取消勾选 + $registerBtn.addClass('disable').attr('disabled', 'disabled'); + $this.attr('notchecked', 'notchecked'); + } + }); + + // 按回车键提交 + $registerPage.on('keydown', function(e) { + var key = e.which; + + if (key === 13) { + $registerBtn.click(); + } + }); + + $registerPage.find('.va').keyup(function() { + + var j, + statusLen = 0, + vLen = validateResult.length, + $that = $(this); + + validateRule(page, $(this), function() { + showErrTip(); // 显示错误提示 + showBorder(); // 显示红色边框 + + // 如果validateResult中有4个status为true表示验证通过 + for (j = 0; j < vLen; j++) { + + if (validateResult[j].status) { + + statusLen++; + } + + } + + if (statusLen === 4 && !$('#agree-terms').attr('notchecked')) { + $registerBtn.removeClass('disable').removeAttr('disabled'); + } else { + $registerBtn.addClass('disable').attr('disabled', 'disabled'); + } + + // 图形验证通过时,发送短信按钮可点击 + if (validateResult[1].status && timeResidue <= 0) { + $sendCaptcha.removeClass('disable').removeAttr('disabled'); + } else { + $sendCaptcha.addClass('disable').attr('disabled', 'disabled'); + } + + //图形验证通过时,发送短信按钮可点击 end + + }); + + // 如果是密码则校验强度 + if (($that).hasClass('pwd')) { + pwdFn($that); + } + + }).blur(function() { + + /*validateRule($(this), function() { + showErrTip(); + showBorder(); // 显示红色边框 + });*/ + }); + + $regionSelect.change(function() { + + $region.text($('#region').val()); + + validateRule(page, $pn, showErrTip); //验证 + }); + + // 点击发送验证码 + $sendCaptcha.click(function() { + var t, + url; + + if ($(this).hasClass('disable')) { + return; + } + + timeResidue = 60; + + $('#msg-tip').removeClass('hide'); + + $sendCaptcha.addClass('disable').attr('disabled', 'disabled'); + $sendCaptcha.val('60秒可重新发送'); + + t = setInterval(function() { + if (timeResidue <= 0) { + $sendCaptcha.removeClass('disable').removeAttr('disabled').val('获取短信验证码'); + clearInterval(t); + return; + } + $sendCaptcha.val(timeResidue-- + '秒可重新发送'); + }, 1000); + + if (page === 'reg') { + url = '/passport/register/sendBindMsg'; + } else if (page === 'third') { + url = '/passport/autouserinfo/sendBindMsg'; + } + + //todo ajax 发送验证码 + $.ajax({ + type: 'POST', + url: url, + data: { + area: $region.text().split('+')[1], + mobile: $pn.val(), + verifyCode: $ca.val() + } + }); + }); + + // 防止粘贴密码 + if ($('.success-box').length <= 0) { + $pwd[0].onpaste = function() { + return false; + }; + } + + //ajax表单提交 + $registerBtn.click(function() { + var url; + + if (page === 'reg') { + url = '/passport/register/mobileregister'; + } else if (page === 'third') { + url = '/passport/autouserinfo/bindMobile'; + } + + if ($(this).hasClass('disable')) { + return; + } else { + + //ajax提交 + $.ajax({ + type: 'POST', + url: url, + data: { + area: $region.text().split('+')[1], + mobile: $pn.val(), + verifyCode: $ca.val(), + code: $mc.val(), + password: $pwd.val() + } + }).then(function(data) { + + var time = 0, + t, + refer; + + if (data.code === 200) { + + refer = data.data.href; + + t = setTimeout(function() { + time++; + }, 1000); + + $.ajax({ + type: 'GET', + url: data.data.session + }).then(function(data) { + + if (data.code === 200 && t < 3) { + clearInterval(t); + location.href = refer; + } + }); + + if (t >= 3) { + clearInterval(t); + location.href = refer; + } + } else { + + //todo + console.log('网络超时~'); + } + + }); + } + }); + + $('.change-captcha').click(function() { + refreshPic(); + }); + + //注册成功页面5秒后跳转 + if ($('.success-box').length > 0) { + clearT = setInterval(function() { + + if (countDown === 0) { + + window.location.href = $successBtn.attr('data-url'); + + clearInterval(clearT); + } + $countDown.text(countDown--); + }, 1000); + } +}; +}); +define("js/passport/mail-phone-regx", [], function(require, exports, module){ +/** + * 国家区号Map手机号码以及邮箱验证正则 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/11 + */ + +var countryPhoneRegx = { + '+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]{1}[0-9]{8}$/, + '+81': /^0[9|8|7][0-9]{9}$/, + '+61': /^[0-9]{11}$/ +}; + +var emailRegx = /^[.\-_a-zA-Z0-9]+@[\-_a-zA-Z0-9]+\.[a-zA-Z0-9]/; + +var pwdValidateRegx = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/; + +exports.phoneRegx = countryPhoneRegx; + +exports.emailRegx = emailRegx; + +exports.pwdValidateRegx = pwdValidateRegx; +}); +define("js/passport/pwd-strength", [], function(require, exports, module){ +/* + * 计算密码复杂度 + */ + +function gettype(str, i) { + if (str.charCodeAt(i) >= 48 && str.charCodeAt(i) <= 57) { + return 1; + } else if (str.charCodeAt(i) >= 97 && str.charCodeAt(i) <= 122) { + return 2; + } else if (str.charCodeAt(i) >= 65 && str.charCodeAt(i) <= 90) { + return 3; + } + + return 4; +} + +function isregular(cur, pre, type) { + var curCode = cur.charCodeAt(0); + var preCode = pre.charCodeAt(0); + + if (curCode - preCode === 0) { + return true; + } + + if (type !== 4 && (curCode - preCode === 1 || curCode - preCode === -1)) { + return true; + } + + return false; +} + +function getcomplex(curType, preType) { + if (preType === 0 || curType === preType) { + return 0; + } else if (curType === 4 || preType === 4) { + return 2; + } else { + return 1; + } +} + +function computeComplex(password) { + var complex = 0, + length = password.length, + pre = '', + preType = 0, + i = 0, + cur, + curType; + + + for (i = 0; i < length; i++) { + cur = password.charAt(i); + curType = gettype(password, i); + + if (preType !== curType || !isregular(cur, pre, curType)) { + complex += curType + getcomplex(curType, preType); + } + + pre = cur; + preType = curType; + } + + return complex; +} + +module.exports = computeComplex; +}); +define("js/passport/back", ["jquery","jquery.placeholder"], function(require, exports, module){ +/** + * 找回密码 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/14 + */ + +var $ = require("jquery"), + regx = require("js/passport/mail-phone-regx"), + emailReg = regx.emailRegx, + phoneRegx = regx.phoneRegx; + +var emailAc = require("js/passport/ac-email"); //邮箱自动完成 + +var $cr = $('#country-code-hide'), + $phoneNum = $('#phone-num'), + $ca = $('#captcha'), + $ccList = $('#country-code-list'), + $cc = $('#country-code'), + $btn = $('#find-btn'), + $accErr = $('#account-err'), + $caErr = $('#captcha-err'), + caCount = 4, //验证码位数 + hasPh = false, + hasCa = false; + + +require("jquery.placeholder"); + +function imgcode() { + var time = new Date(), + $captchaImg = $('#captcha-img'), + captchaImgSrc = $captchaImg.attr('src').split('?')[0]; + + $('#captcha-img').attr('src', captchaImgSrc + '?t=' + time.getTime()); +} + +function enableBtn() { + if (hasPh && hasCa) { + $btn.removeClass('disable').prop('disabled', false); + } else { + $btn.addClass('disable').prop('disabled', true); + } +} + +function authcode() { + if (!hasPh || !hasCa) { + enableBtn(); + return; + } + + $.ajax({ + type: 'POST', + url: '/passport/back/authcode', + data: { + verifyCode: $.trim($ca.val()), + phoneNum: $phoneNum.val(), + area: $cr.val() + } + + }).then(function(data) { + if (data.code === 200) { + hasCa = true; + } else if (data.code === 402) { + hasPh = false; + hasCa = true; + $accErr.removeClass('hide').find('em').text('该账号不存在'); + $phoneNum.addClass('error'); + } else if (data.code === 400) { + hasCa = false; + imgcode(); + } + enableBtn(); + }); +} + +function vaPn(v) { + var pass = true, + errTxt = ''; + + v = $.trim(v); + if (v !== '') { + if (/^[0-9]+$/.test(v)) { + if (phoneRegx[$cr.val()].test(v)) { + pass = true; + } else { + errTxt = '手机号码格式不正确, 请重新输入'; + pass = false; + } + } else { + if (emailReg.test(v)) { + pass = true; + } else { + errTxt = '邮箱格式不正确, 请重新输入'; + pass = false; + } + } + } else { + errTxt = '账户名不能为空'; + pass = false; + } + hasPh = pass; + authcode(); + + return { + pass: pass, + errTxt: errTxt + }; +} + +function vaCa() { + var v = $.trim($ca.val()); + + if (v === '' || v.length < caCount) { + hasCa = false; + enableBtn(); + return; + } + + hasCa = true; + + authcode(); +} + +emailAc($phoneNum, function() { + var pnVa = vaPn($phoneNum.val()); + + if (pnVa.pass) { + $accErr.addClass('hide'); + $phoneNum.removeClass('error'); + } else { + $accErr.removeClass('hide').find('em').text(pnVa.errTxt); + $phoneNum.addClass('error'); + } + } +); + +$ca.attr('maxlength', caCount); + +//IE8 placeholder +$('input').placeholder(); + +$('#change-captcha, #captcha-img').on('click', function() { + imgcode(); +}); + +$cc.on('click', function(e) { + e.stopPropagation(); + if ($ccList.css('style') === 'block') { + $ccList.slideUp('fast'); + } else { + $ccList.slideDown('fast'); + } +}); + +$ccList.delegate('li', 'click', function(e) { + var $cur = $(this), + code = $cur.data('cc'), + pnVa; + + e.stopPropagation(); + $cr.val(code); + $cc.find('em').html($cur.text()); + + //切换后验证手机号码 + if ($.trim($phoneNum.val()) !== '') { + pnVa = vaPn($phoneNum.val()); + enableBtn(); + if (hasPh) { + $accErr.addClass('hide'); + $phoneNum.removeClass('error'); + } else { + $accErr.removeClass('hide').text(pnVa.errTxt); + $phoneNum.addClass('error'); + } + } + $ccList.slideUp('fast'); +}); + +$(document).click(function() { + if ($ccList.css('display') === 'block') { + $ccList.slideUp(); + } +}); + +$phoneNum.keyup(function() { + vaPn($.trim($(this).val())); +}).focus(function() { + $(this).removeClass('error'); + + //focus隐藏错误提示 + $accErr.addClass('hide'); +}); + +//验证码在鼠标移开后验证, keyup时不再验证 +$ca.blur(function() { + var errTxt = $.trim($ca.val()) === '' ? '验证码不能为空' : '验证码不正确'; + + if (hasCa) { + $caErr.addClass('hide'); + $ca.removeClass('error'); + } else { + $caErr.removeClass('hide').find('em').text(errTxt); + $ca.addClass('error'); + + //验证码错误则刷新验证码 + if ($ca.val() < caCount) { + + //防止重复刷新验证码 + imgcode(); + } + } +}).focus(function() { + $(this).removeClass('error'); + + //focus隐藏错误提示 + $caErr.addClass('hide'); +}).keyup(function() { + vaCa(); +}); + +$('#find-btn').click(function(e) { + + if (/^[0-9]+$/.test($.trim($phoneNum.val()))) { + $('#find-form').attr('action', '/passport/back/mobile'); + } + if ($(this).hasClass('disable')) { + return; + } + if (!hasCa || !hasPh) { + e.preventDefault(); + return true; + } +}); +}); +define("js/passport/ac-email", ["jquery"], function(require, exports, module){ +/** + * 邮箱自动补全 + * @author:xuqi<qi.xu@yoho.cn> + * @date: 2016/2/22 + */ +var $ = require("jquery"); + +var mailPostfix = { + num: ['qq.com', '163.com', '126.com', 'sina.com', 'gmail.com', 'sohu.com', 'hotmail.com', '139.com', '189.com'], + other: ['gmail.com', 'qq.com', '163.com', '126.com', 'sina.com', 'sohu.com', 'hotmail.com', '139.com', '189.com'] +}; + +var emailAcTime; + +/** + * @param $input 需要自动完成的$对象 + * @param cb 鼠标移开/点击自动完成项后需要执行的操作(验证等) + */ +module.exports = function($input, cb) { + var ulHtml = '<ul id="email-autocomplete" class="email-autocomplete hide"></ul>'; + + var $emailAutoComplete; + + $input.parent().append(ulHtml); + + $emailAutoComplete = $('#email-autocomplete'); + + $input.on('keyup', function() { + var account = $.trim($(this).val()), + html = '', + accountMatch, + matchStr, + postfix, + i; + + //输入@时自动补全邮箱后缀 + //此处>0非错误,用于避免输入的第一个字符为@被识别为邮箱 + if (account.indexOf('@') > 0) { + accountMatch = account.match(/^[0-9]+@(.*)/); + if (accountMatch) { + + //数字邮箱补全 + postfix = mailPostfix.num; + matchStr = accountMatch[1]; + } else { + postfix = mailPostfix.other; + matchStr = account.match(/@(.*)/)[1]; + } + + for (i = 0; i < postfix.length; i++) { + if (postfix[i].indexOf(matchStr) > -1) { + html += '<li>' + account.slice(0, account.indexOf('@')) + '@' + postfix[i] + '</li>'; + } + } + + if (html !== '' && /.com$/.test(account) === false) { + $emailAutoComplete.html(html).removeClass('hide'); + } else { + + //隐藏autocomplete + $emailAutoComplete.html('').addClass('hide'); + } + } + }).on('blur', function() { + emailAcTime = setTimeout(function() { + + //未点击自动完成项 + $emailAutoComplete.addClass('hide'); + + cb && cb(); + }, 200); + }); + + //邮箱自动完成列表项点击 + $emailAutoComplete.on('click', 'li', function() { + clearTimeout(emailAcTime); //清空默认关闭 + + //点击自动完成项后进行验证 + $input.val($(this).text()).focus(); + + $emailAutoComplete.addClass('hide'); + + cb && cb(); + }); +}; +}); +define("js/passport/login", ["jquery","jquery.placeholder"], function(require, exports, module){ +/** + * 登录 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/11 + */ +var $ = require("jquery"); + +var $account = $('#account'), + $password = $('#password'), + $captcha = $('#captcha'); + +var $accountTip = $account.siblings('.err-tip'), + $passwordTip = $password.siblings('.err-tip'), + $captchaTip = $captcha.siblings('.err-tip'), + $capsLock = $('#caps-lock'); + +var $countryCodeHide = $('#country-code-hide'), + $countryCodeEm = $('#country-code > em'), + $countryList = $('#country-list'); + +var $emailAutoComplete = $('#email-autocomplete'); + +var mailPhoneRegx = require("js/passport/mail-phone-regx"); +var mailAc = require("js/passport/ac-email"); //邮箱自动完成 + +var $remember = $('.remember-me'); + +var captchaUrl = '/passport/images?t='; // /passport/images?t=1454464125 + +var $captchaWrap = $('.captcha-wrap'), + $captcha = $captchaWrap.find('#captcha'), + $captchaImg = $captchaWrap.find('#captcha-img'), + $captchaTip = $captchaWrap.find('.err-tip'); + +//checkbox status unicode +var checkbox = { + checked: '', + unchecked: '' +}; + +var authing = false; + +var emailAcTime; + +require("jquery.placeholder"); + +//验证账户名 +function validateAccount() { + var pass = false, + account = $.trim($account.val()), + countryCode = $countryCodeHide.val(), + err; + + if (account !== '') { + if (/^[0-9]+$/.test(account)) { + + //如果是纯数字,则作为手机号码处理 + if (countryCode !== '+86' || + mailPhoneRegx.phoneRegx[countryCode].test(account)) { + pass = true; + } else { + pass = false; + err = '手机号码不正确,请重新输入'; + } + } else { + if (mailPhoneRegx.emailRegx.test(account)) { + pass = true; + } else { + pass = false; + err = '邮箱格式不正确,请重新输入'; + } + } + } else { + err = '请输入账户名'; + } + + if (pass) { + $accountTip.addClass('hide'); + $account.removeClass('error'); + } else { + $accountTip.removeClass('hide').children('em').text(err); + $account.addClass('error'); + } + return pass; +} + +//验证密码 +function validatePassword() { + var pass = false, + password = $.trim($password.val()), + err; + + if (password !== '') { + if (password.length < 6) { + err = '请输入长度为6-20字符的密码'; + } else { + pass = true; + } + } else { + err = '请输入密码'; + } + + if (pass) { + $passwordTip.addClass('hide'); + $password.removeClass('error'); + } else { + $passwordTip.removeClass('hide').children('em').text(err); + $password.addClass('error'); + } + return pass; +} + +//验证验证码 +function validateCaptcha() { + var pass = false, + captcha = $.trim($captcha.val()), + err; + + // 验证码不可见的时候不验证 + if ($captchaWrap.is(':hidden')) { + return true; + } + + if (captcha !== '') { + if (captcha.length !== 4) { + err = '请输入长度为4字符的验证码'; + } else { + pass = true; + } + } else { + err = '请输入验证码'; + } + + if (pass) { + $captchaTip.addClass('hide'); + $captcha.removeClass('error'); + } else { + $captchaTip.removeClass('hide').children('em').text(err); + $captcha.addClass('error'); + } + return pass; +} + +//验证 +function validate() { + var pass = true, + account = $.trim($account.val()), + password = $.trim($password.val()); + + if (account !== '') { + pass = validateAccount() && validatePassword() && validateCaptcha(); + } else { + pass = false; + $account.addClass('error'); + + if (password === '') { + + //账户名和密码都为空的情况下点击登陆,只在账户输入框后显示错误提示 + $accountTip.addClass('both-error').removeClass('hide').children('em').text('请输入账户名和密码'); + $passwordTip.addClass('hide'); + $password.addClass('error'); + } else { + $accountTip.removeClass('hide').children('em').text('请输入账户名'); + } + } + + return pass; +} + +//密码错误次数,超过三次显示验证码 +function vaAccountErrTimes() { + $captchaImg.attr('src', captchaUrl + $.now()); + $captcha.val(''); + $captchaWrap.removeClass('hide'); +} + +//登录 +function login() { + var pass = validate(); + + if (pass && authing === false) { + authing = true; + + $.ajax({ + url: '/passport/login/auth', + type: 'POST', + data: { + areaCode: $countryCodeHide.val().replace('+', ''), + account: $.trim($account.val()), + password: $.trim($password.val()), + captcha: $.trim($captcha.val()), + isRemember: $remember.hasClass('checked') ? true : false + }, + success: function(res) { + if (res.code === 200) { + if (res.data) { + + //防止data.data为undefined时下行语句执行出错而导致脚本不能走到complete去处理authing + location.href = res.data.session; + } + } else { + if (res.data.errorType === 'captcha') { + $captchaTip.removeClass('hide').children('em').html(res.message); + $captcha.addClass('error').val(''); + } else { + $passwordTip.removeClass('hide').children('em').html(res.message); + $password.addClass('error').val(''); + } + + //验证错误次数 + if (res.data && res.data.needCaptcha) { + vaAccountErrTimes(); + } + } + }, + complete: function() { + authing = false; + } + }); + } +} + +mailAc($account, function() { + if (validateAccount()) { + $.ajax({ + url: '/passport/login/account', + type: 'GET', + data: { + account: $.trim($account.val()) + } + }).then(function(res) { + if (res.data && res.data.needCaptcha) { + vaAccountErrTimes(); + } + }); + } + } +); + +$('[placeholder]').placeholder(); + +//展开地区列表 +$('#country-code').on('click', function() { + if ($countryList.css('display') === 'none') { + $countryList.slideDown(); + } +}); + +//选中地区列表项 +$countryList.on('click', 'li', function() { + var $this = $(this), + cc = $this.data('cc'); + + $countryCodeEm.html($this.html()); + + $countryCodeHide.val(cc); + + $countryList.slideUp(); +}); + +//点击其他区域,收起区域列表 +$(document).on('click', function(e) { + if ($(e.target).closest('#country-code').length > 0) { + return; + } + + if ($countryList.css('display') === 'block') { + $countryList.slideUp(); + } +}); + +//密码 +$password.on('blur', function() { + validatePassword(); + + if ($capsLock.hasClass('hide')) { + return; + } + + $capsLock.addClass('hide'); +}).on('keypress', function(e) { + var code = e.which; + + //CapsLock检测 + if (code >= 65 && code <= 90) { + $capsLock.removeClass('hide'); + return; + } + $capsLock.addClass('hide'); +}); + +// 验证码 +$captcha.on('blur', function() { + validateCaptcha(); +}); + +//邮箱自动完成列表项点击 +$emailAutoComplete.on('click', 'li', function() { + clearTimeout(emailAcTime); //清空默认关闭 + + $account.val($(this).text()).focus(); + + $emailAutoComplete.addClass('hide'); +}); + +//记住登录状态 +$remember.on('click', function() { + var $this = $(this); + + $this.toggleClass('checked'); + + if ($this.hasClass('checked')) { + $this.children('i').html(checkbox.checked); + } else { + $this.children('i').html(checkbox.unchecked); + } +}); + +//focus到输入框则隐藏错误提示和样式 +$('.va').on('focus', function() { + var $this = $(this); + + $this.removeClass('error'); + + $this.siblings('.err-tip').addClass('hide'); +}); + +// 验证码刷新 +$captchaWrap.on('click', '.change-captcha, .captcha-img', function() { + $captchaImg.attr('src', captchaUrl + $.now()); +}); + +//登录 +$('#login-btn').on('click', login); + +//Enter登录 +$('input.va').on('keypress', function(e) { + if (e.which === 13) { + login(); + } +}); + +// 初始:只带账户名的页面,密码输入获得焦点 +if (($account.val() !== '' || $account.val() === $account.attr('placeholder')) && + $password.val() === '') { + $password.focus(); +} +}); +define("js/passport/reset", ["jquery","jquery.placeholder"], function(require, exports, module){ +/** + * 找回密码 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/14 + */ + +var $ = require("jquery"); + +var $pwd = $('#pwd'), + $repwd = $('#re-input'), + $next = $('#reset-pwd-btn'), + $pwdErr = $('#pwd-err'), + $repwdErr = $('#repwd-err'), + $pwdTips = $('#pwd-tips'); + +var hasNoErrPw = false; + +var $pwdIntensity = $('.pwd-intensity'), + $pwdParent = $pwdIntensity.closest('.pwd-intensity-container'), + $pwdTip1 = $('#pwd-tip1'); + +var pwdRegx = require("js/passport/mail-phone-regx").pwdValidateRegx; + +require("jquery.placeholder"); + + +/* + * 计算密码复杂度 + */ + +function gettype(str, i) { + if (str.charCodeAt(i) >= 48 && str.charCodeAt(i) <= 57) { + return 1; + } else if (str.charCodeAt(i) >= 97 && str.charCodeAt(i) <= 122) { + return 2; + } else if (str.charCodeAt(i) >= 65 && str.charCodeAt(i) <= 90) { + return 3; + } + + return 4; +} + +function isregular(cur, pre, type) { + var curCode = cur.charCodeAt(0); + var preCode = pre.charCodeAt(0); + + if (curCode - preCode === 0) { + return true; + } + + if (type !== 4 && (curCode - preCode === 1 || curCode - preCode === -1)) { + return true; + } + + return false; +} + +function getcomplex(curType, preType) { + if (preType === 0 || curType === preType) { + return 0; + } else if (curType === 4 || preType === 4) { + return 2; + } else { + return 1; + } +} + +function computeComplex(password) { + var complex = 0, + length = password.length, + pre = '', + preType = 0, + i = 0, + cur, + curType; + + + for (i = 0; i < length; i++) { + cur = password.charAt(i); + curType = gettype(password, i); + + if (preType !== curType || !isregular(cur, pre, curType)) { + complex += curType + getcomplex(curType, preType); + } + + pre = cur; + preType = curType; + } + + return complex; +} + +function pwdKeyupEvt() { + var pwd = $pwd.val(), + pwdStrength = computeComplex(pwd), + level = 0; + + //TODO:自定义密码强度规则,需要修正 + if (pwdStrength === 0) { + level = 0; + } else if (pwdStrength <= 10) { + level = 1; + } else if (pwdStrength <= 20) { + level = 2; + } else { + level = 3; + } + switch (level) { + case 0: + $pwdParent.removeClass('red yellow green'); + $pwdIntensity.removeClass('color'); + break; + case 1: + $pwdParent.addClass('red').removeClass('yellow green'); + $pwdIntensity.filter('.low').addClass('color'); + $pwdIntensity.filter('.mid,.high').removeClass('color'); + break; + case 2: + $pwdParent.addClass('yellow').removeClass('red green'); + $pwdIntensity.filter('.low,.mid').addClass('color'); + $pwdIntensity.filter('.high').removeClass('color'); + break; + case 3: + $pwdParent.addClass('green').removeClass('yellow red'); + $pwdIntensity.addClass('color'); + break; + } + + //提示框 + if (pwd === '') { + $pwdTip1.removeClass('red yes no').addClass('default'); + } else if (pwd.length < 6 || pwd.length > 20) { + $pwdTip1.removeClass('default yes').addClass('no red'); + } else { + $pwdTip1.removeClass('default no red').addClass('yes'); + } + + if (pwdRegx.test(pwd)) { + hasNoErrPw = true; + } else { + hasNoErrPw = false; + } +} + +//IE8 placeholder +$('input').placeholder(); + +$('.va').keyup(function() { + var pass = true; + + if ($(this).hasClass('pwd')) { + pwdKeyupEvt(); + } else { + if ($(this).val() === '') { + pass = false; + } + } + if (pass && hasNoErrPw && $pwd.val() === $repwd.val()) { + pass = true; + } else { + pass = false; + } + if (pass) { + $next.removeClass('disable').prop('disabled', false); + } else { + $next.addClass('disable').prop('disabled', true); + } +}).blur(function() { + var $this = $(this), + v = $this.val(); + + if ($this.hasClass('pwd')) { + if (v === '') { + $this.addClass('error'); + $pwdErr.removeClass('hide').find('em').text('请输入密码'); + } else if (v.length < 6 || v.length > 20) { + $this.addClass('error'); + $pwdErr.removeClass('hide').find('em').text('密码只支持6-20位'); + } else if (!pwdRegx.test(v)) { + $this.addClass('error'); + $pwdErr.removeClass('hide').find('em').text('密码须字母和数字组合'); + } else { + $pwdErr.addClass('hide'); + if ($repwd.val() !== '') { + if (v !== $repwd.val()) { + $repwd.addClass('error'); + $repwdErr.removeClass('hide').find('em').text('两次密码输入不一致,请重新输入'); + } else { + $repwd.removeClass('error'); + $repwdErr.addClass('hide'); + } + } + } + } else { + if (v === '') { + $this.addClass('error'); + $repwdErr.removeClass('hide').find('em').text('请输入密码确认'); + } else { + if ($pwd.val() !== '' && v !== $pwd.val()) { + $this.addClass('error'); + $repwdErr.removeClass('hide').find('em').text('两次密码输入不一致,请重新输入'); + } else { + $this.removeClass('error'); + $repwdErr.addClass('hide'); + } + } + } +}).focus(function() { + $(this).removeClass('error'); + + //focus后错误提示隐藏 + if ($(this).hasClass('pwd')) { + $pwdErr.addClass('hide'); + } else { + $repwdErr.addClass('hide'); + } +}); + +$pwd.focus(function() { + $pwdErr.addClass('hide'); + $pwdTips.removeClass('hide'); +}).blur(function() { + $pwdTips.addClass('hide'); +}); + +$('#pwd, #repwd').keydown(function(e) { + var code = e.keyCode || e.which; + + //空格输入过滤 + if (code === 32) { + e.preventDefault(); + return; + } +}); + +}); +define("js/passport/vertification", ["jquery"], function(require, exports, module){ +/** + * 验证手机 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/14 + */ + +var $ = require("jquery"); + +var $sc = $('#send-captcha'), + $msgTip = $('#captcha-tip'), + $errTip = $('#err-tip'), + $next = $('#next-step'), + seconds, + itime; + +$sc.click(function() { + $.post('/passport/back/sendbackmobile', { + mobile: $('#mobile').val(), + area: $('#area').val(), + verifyCode: $('#captchaPic').val() + }, function(jsonData) { + if (jsonData.code === 200) { + $errTip.hide(); + if ($(this).hasClass('disable')) { + return; + } + seconds = 60; + + //$sc.addClass('disable').prop('disabled', true); + $sc.addClass('disable').attr('disabled', true); + $msgTip.removeClass('hide'); + + $sc.val(seconds-- + '秒后可重新操作'); + itime = setInterval(function() { + if (seconds === 0) { + clearInterval(itime); + + //$sc.val('发送验证码').removeClass('disable').prop('disabled', false); + $sc.val('发送验证码').removeClass('disable').removeAttr('disabled'); + } else { + $sc.val(seconds-- + '秒后可重新操作'); + } + }, 1000); + } else { + $(this).addClass('error'); + $errTip.removeClass('hide').text('发送失败'); + } + }); +}); + +seconds = 60; + +//$sc.addClass('disable').prop('disabled', true); +$sc.addClass('disable').attr('disabled', true); +$msgTip.removeClass('hide'); + +$sc.val(seconds-- + '秒后可重新操作'); +itime = setInterval(function() { + if (seconds === 0) { + clearInterval(itime); + + //$sc.val('发送验证码').removeClass('disable').prop('disabled', false); + $sc.val('发送验证码').removeClass('disable').removeAttr('disabled'); + } else { + $sc.val(seconds-- + '秒后可重新操作'); + } +}, 1000); + + +$('#captcha').keyup(function() { + var v = $.trim($(this).val()), + that = this; + + if (v.length === 4) { + $.ajax({ + type: 'POST', + url: '/passport/back/backmobile', + dataType: 'json', + data: { + code: $('#captcha').val(), + verifyCode: $('#captchaPic').val(), + area: $('#area').val(), + mobile: $('#mobile').val() + }, + success: function(res) { + if (res.code === 200) { + + //添加验证码正确验证 + $next.removeClass('disable').attr('href', res.data); + $errTip.addClass('hide'); + $(that).removeClass('error'); + } else { + $next.addClass('disable'); + $errTip.removeClass('hide').find('em').text('验证码输入错误'); + $(that).addClass('error'); + } + } + }); + } else { + $next.addClass('disable').attr('href', 'javascript:;'); + } +}).blur(function() { + var v = $.trim($(this).val()); + + if (v === '') { + + //添加验证码正确验证 + $(this).addClass('error'); + $errTip.removeClass('hide').text('请输入验证码'); + } +}).focus(function() { + $(this).removeClass('error'); +}); +}); +define("js/passport/thirdlogin", ["jquery"], function(require, exports, module){ +/** + * 第三方登录首页 + * @author: wq + * @date: 2016/1/21 + */ +var $ = require("jquery"); +var phoneRegx = require("js/passport/mail-phone-regx").phoneRegx; + +var nopermissionoption = $('#nopermissionmessage').html(); //倒计时dom +var sendmessagehtml = $('.validatewrapper').html(); //发送短信dom +var second = +$('.second').text(); //倒计时秒数 +var dovalidate = false; //校验验证码标识 +var validatecode = false; //验证码是否通过 +var choosedpic = '//cdn.yoho.cn/yohobuy/assets/img/passport/choosed.png';//已选择图片 + +var $wrapper = $('.bindwrapper'), + $phoneTip = $wrapper.find('.phone-err-tip'), + $nextBtn = $wrapper.find('.yohobindbtn'); + +/** + * 选择协议 + * @return {[type]} [description] + */ +function chooseProtocol() { + $('.choosetag').on('change', function() { + var btnColor = '#f02200'; + + if ($(this).attr('checked') === 'checked') { + $('.choosewrapper').css({ + 'background-image': 'url("' + choosedpic + '")' + }); + } else { + $('.choosewrapper').css({ + 'background-image': 'none' + }); + btnColor = '#CCCCCC'; + } + $nextBtn.css({ + 'background-color': btnColor + }); + }); +} +/** + * 判断是否同意协议 + * @return {[type]} [description] + */ +function isagree() { + return $('.choosetag').attr('checked') === 'checked'; +} +/** + * 选择区域的开关 + * @return {[type]} [description] + */ +function chooseAreaToogle() { + $('.optionshow').on('click', function() { + $('.optionslist').toggleClass('hide'); + }); +} + +/** + * 验证码校验 + * @return {[type]} [description] + */ +function codeValidate() { + var validatenum = ''; + + $(document).on('keyup', '#validatenum', function() { + validatenum = $(this).val(); + if (validatenum.length === 4) { + if (!dovalidate) { + dovalidate = true; + $.ajax({ + type: 'POST', + url: '/passport/autouserinfo/checkBindMsg', + data: { + code: validatenum, + mobile: $('#mobile').val(), + area: $('#areacode').val() + } + }).then(function(data) { + dovalidate = false; + if (data.code === 200) { + validatecode = true; + } else { + alert(data.message); + } + }); + } + } + }); + + $('#validatenum').focus(function() { + $(this).removeAttr('placeholder'); + }).blur(function() { + $(this).attr('placeholder', '验证码'); + }); +} + +/** + * 选择区域 + * @return {[type]} [description] + */ +function chooseArea() { + $('.optionitem').on('click', function() { + var $option = $(this); + var areanum = $option.attr('areanum'); + var areaname = $option.text(); + + $('#areaname').text(areaname); + $('#areanum').text(areanum); + $('#areacode').val(areanum); + $('.optionslist').addClass('hide'); + }); +} +/** + * 取消选择区域 + * @return {[type]} [description] + */ +function cancelChooseArea() { + $(document).on('click', 'body', function(e) { + var $target = $(e.target); + + if ($target.hasClass('yohoselectarea') || + $target.hasClass('areaname') || + $target.hasClass('righttag') || + $target.hasClass('optionslist') || + $target.hasClass('optionitem')) { + return; + } else { + $('.optionslist').addClass('hide'); + } + }); +} +/** + * 去掉区域号的加号 + * @return {[type]} [description] + */ +function fixAreaNum() { + var $opitem = ''; + var itemarecode = ''; + + $('.optionitem').each(function() { + $opitem = $(this); + itemarecode = $opitem.attr('areanum').replace(/\+/g, ''); + $opitem.attr('areanum', itemarecode); + }); +} + +/** + * 关闭蒙层 + * @return {[type]} [description] + */ +function closeMask() { + var $target; + + $(document).on('click', '#alreayregist', function(e) { + $target = $(e.target); + if ($target.hasClass('mask') || $target.hasClass('backdrop')) { + $('#alreayregist').hide(); + $('.backdrop').hide(); + } + }); + $(document).on('click', '#bindconfirm', function(e) { + $target = $(e.target); + if ($target.hasClass('mask') || $target.hasClass('backdrop')) { + $('#bindconfirm').hide(); + $('.backdrop').hide(); + } + }); +} +/** + * 绑定其他手机号 + * @return {[type]} [description] + */ +function yohoBindBtn() { + $(document).on('click', '#yohobindbtn', function(e) { + $('.phonenum').val(''); + $('#bindconfirm').hide(); + $('.backdrop').hide(); + }); + $(document).on('click', '#yohobindbtn2', function(e) { + $('.phonenum').val(''); + $('#alreayregist').hide(); + $('.backdrop').hide(); + }); +} +/** + * 发送短信的时间变换动画 + * @return {[type]} [description] + */ +function changeSecond() { + second -= 1; + if (second < 0) { + second = 60; + $('.validatewrapper').html(sendmessagehtml); + return; + } else { + $('.second').text(second); + window.setTimeout(changeSecond, 1000); + } + +} +/** + * 时间循环 + * @param {[type]} phonenum [description] + * @return {[type]} [description] + */ +function circleTime(phonenum) { + $('.validatewrapper').html(nopermissionoption); + window.setTimeout(changeSecond, 1000); +} +/** + * 发送短信 + * @return {[type]} [description] + */ +function sendMessageValidate() { + $(document).on('click', '#sendmessage', function() { + if ($('#sendmessage').attr('disabled') === 'disabled') { + return; + } + circleTime($('#mobile').val()); + $.ajax({ + type: 'POST', + url: '/passport/autouserinfo/sendBindMsg', + data: { + mobile: $('#mobile').val(), + area: $('#areacode').val() + } + }).then(function(data) { + if (data.code !== 200) { + alert(data.message); + } + }); + + }); +} + +/** + * 最终提交表单 + */ +function actionSubmit() { + var mobile = ''; + var area = ''; + + area = $('#areacode').val(); + mobile = $('#mobile').val(); + $.ajax({ + type: 'POST', + url: '/passport/autouserinfo/bindMobile', + data: { + area: area, + openId: $('#openId').val(), + sourceType: $('#sourceType').val(), + mobile: mobile, + code: $('#validatenum').val() + } + }).then(function(data) { + if (data.code === 200) { + if (data.data && data.data.refer) { + window.location.href = data.data.refer; + } else { + window.location.href = '/passport/thirdlogin/bindsuccess'; + } + } else { + alert(data.message); + } + }); +} + +/** + * 确认去绑定 + * @return {[type]} [description] + */ +function goToBindPhone() { + $(document).on('click', '#gotobindphone', function() { + if (validatecode === true) { + $('#inarea').val($('#areacode').val()); + $('#inmobile').val($('#mobile').val()); + actionSubmit(); + } else { + alert('请输入正确验证码'); + } + }); +} +/** + * 点击下一步 + * @return {[type]} [description] + */ +function nextStep() { + var openId = ''; + var sourceType = ''; + var mobile = ''; + var areaCode = ''; + var username = ''; + var headImg = ''; + + $('#bindfirststep').on('click', function(e) { + var regx; + + e.preventDefault(); + mobile = $('.phonenum').val(); + areaCode = $('#areanum').text(); + regx = phoneRegx['+' + areaCode]; + + if (!isagree()) { + return; + } + if (mobile === '' || !regx || !regx.test(mobile)) { + $phoneTip.find('em').text('手机格式错误'); + $phoneTip.removeClass('hide'); + return; + } + openId = $('#openId').val() || '29803EC6D4AAC3AAB8ABDB6AE829D579'; + sourceType = $('#sourceType').val() || 'qq'; + $.ajax({ + type: 'post', + url: '/passport/autouserinfo/bindCheck', + data: { + mobile: mobile, + area: areaCode, + openId: openId, + sourceType: sourceType + }, + dataType: 'json', + success: function(data) { + var winHeight = $(window).height(); + + if (data.code === 200) { + $('#bindmobileform').attr('action', data.data.next); + $('#bindmobileform').submit(); + } else if (data.code === 201) { + + // 已注册 未绑定 + username = data.data.user.username; + headImg = data.data.user.headImg; + $('#registphone').text(mobile); + $('#username').text(username); + if (headImg === '') { + $('#userphoto').attr('src', '//img10.static.yhbimg.com/headimg/2013/11/28/09/' + + '01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100'); + } else { + $('#userphoto').attr('src', headImg); + } + $('#logindirectly2').attr('href', data.data.user.bindLogin); + $('.backdrop').show(); + $('#sendmessage').click(); + $('#alreayregist .mask').css({ + 'padding-top': winHeight > 440 ? winHeight / 2 : 217 + }); + $('#alreayregist').show(); + } else if (data.code === 203) { + + // 已注册 可关联 + $('#bindmobileform').attr('action', data.data.next); + $('#bindmobileform').submit(); + } else if (data.code === 205) { + + // 未注册 不可关联 + username = data.data.user.username; + headImg = data.data.user.headImg; + $('#registphonetwo').text(mobile); + $('#username1').text(username); + if (headImg === '') { + $('#userphoto1').attr('src', '//img10.static.yhbimg.com/headimg/2013/11/28/09/' + + '01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100'); + } else { + $('#userphoto1').attr('src', headImg); + } + $('#logindirectly').attr('href', data.data.user.bindLogin); + $('.backdrop').show(); + $('#bindconfirm .mask').css({ + 'padding-top': winHeight > 440 ? winHeight / 2 : 217 + }); + $('#bindconfirm').show(); + } else if (data.code === 402) { + $phoneTip.find('em').text('手机格式错误'); + $phoneTip.removeClass('hide'); + } else { + if (data && data.message) { + alert(data.message); + } + } + } + }); + }); +} + +$wrapper.on('keydown', '.phonenum', function(e) { + if (e.keyCode === 13) { + $nextBtn.trigger('click'); + return false; + } +}); + +function init() { + fixAreaNum(); //去掉所有区域的+ + sendMessageValidate(); //有交互的发送短信 + chooseProtocol(); //选择协议 + chooseArea(); //选择区域 + chooseAreaToogle(); //选择区域展示或关闭 + cancelChooseArea(); //取消选择区域 + nextStep(); //下一步 + closeMask(); //关闭蒙层 + yohoBindBtn(); //绑定其他手机号点击 + goToBindPhone(); //绑定手机 + codeValidate(); //验证码校验 +} +init(); +}); +define("js/passport/third-pwd", ["jquery"], function(require, exports, module){ +/** + * 第三方绑定完善个人信息 + * @author: wq + * @date: 2016/1/27 + */ +var $ = require("jquery"); +var dovalidate = false; //校验验证码的标识 +var isvalidatecode = false; //是否验证成功的标识 +var isvalidatepwd = false; //密码验证是否通过的标识 +var second = ''; //倒计时时间 +var nopermissionoption = ''; //倒计时的dom +var sendmessagehtml = ''; //发送短信的dom +var submitStatus = false; //信息提交状态 + +var $wrapper = $('.bindwrapper'), + $codeTip = $wrapper.find('.code-err-tip'), + $pwdTip = $wrapper.find('.pwd-err-tip'), + $pwdTip2 = $('#pwd-tip2'), + $sendMsgBtn = $('#sendmessage'); +var $pwd, + $pwdParent, + $pwdTip1, + $pwdIntensity; + +var pwdRegx = require("js/passport/mail-phone-regx").pwdValidateRegx; +var mobile = $('#mobile').val(), + area = $('#area').val(); + +nopermissionoption = $('#nopermissionmessage').html(); +sendmessagehtml = $('.validatewrapper').html(); +second = +$('.second').text(); + + +function gettype(str, i) { + if (str.charCodeAt(i) >= 48 && str.charCodeAt(i) <= 57) { + return 1; + } else if (str.charCodeAt(i) >= 97 && str.charCodeAt(i) <= 122) { + return 2; + } else if (str.charCodeAt(i) >= 65 && str.charCodeAt(i) <= 90) { + return 3; + } + + return 4; +} + +function isregular(cur, pre, type) { + var curCode = cur.charCodeAt(0); + var preCode = pre.charCodeAt(0); + + if (curCode - preCode === 0) { + return true; + } + + if (type !== 4 && (curCode - preCode === 1 || curCode - preCode === -1)) { + return true; + } + + return false; +} + + +function getcomplex(curType, preType) { + if (preType === 0 || curType === preType) { + return 0; + } else if (curType === 4 || preType === 4) { + return 2; + } else { + return 1; + } +} + + +/** + * @desc: 计算密码复杂度(from://www.oschina.net/code/snippet_127301_17269) + * @author: xuqi(qi.xu@yoho.cn) + * @date: 2015/5/6 + */ +function computeComplex(password) { + var complex = 0; + var length = password.length; + var pre = ''; + var preType = 0; + var i = 0; + var cur = ''; + var curType = ''; + + for (i; i < length; i++) { + cur = password.charAt(i); + curType = gettype(password, i); + if (preType !== curType || !isregular(cur, pre, curType)) { + complex += curType + getcomplex(curType, preType); + } + pre = cur; + preType = curType; + } + + return complex; +} + +function showErrTip($dom, info) { + $dom.find('em').text(info); + $dom.removeClass('hide'); +} + +function changeSecond() { + second -= 1; + if (second < 0) { + second = 60; + $('.validatewrapper').html(sendmessagehtml); + return; + } else { + $('.second').text(second); + window.setTimeout(changeSecond, 1000); + } + +} +/** + * 启动倒计时 + * @return {[type]} [description] + */ +function circleTime() { + $('.validatewrapper').html(nopermissionoption); + window.setTimeout(changeSecond, 1000); +} + +function sendMessageValidate() { + $(document).on('click', '#sendmessage', function() { + circleTime(); + $.ajax({ + type: 'POST', + url: '/passport/autouserinfo/sendBindMsg', + data: { + mobile: mobile, + area: area + } + }).then(function(data) { + if (data.code !== 200) { + alert(data.message); + } + }); + + }); +} + + + +function codeValidate() { + var validatenum = ''; + + $(document).on('keyup', '#validatenum', function() { + $('#err-info').hide(); + validatenum = $(this).val(); + if (validatenum.length === 4) { + if (!dovalidate) { + dovalidate = true; + $.ajax({ + type: 'POST', + url: '/passport/autouserinfo/checkBindMsg', + data: { + code: validatenum, + mobile: mobile, + area: area + } + }).then(function(data) { + dovalidate = false; + if (data.code !== 200) { + $('#err-info').show(); + } else { + isvalidatecode = true; + } + }); + } + } + }); +} + +function pwdKeyupEvt() { + var pwd = $pwd.val(), + pwdStrength = computeComplex(pwd), + level = 0; + + if (pwdStrength === 0) { + level = 0; + } else if (pwdStrength <= 10) { + level = 1; + } else if (pwdStrength <= 20) { + level = 2; + } else { + level = 3; + } + switch (level) { + case 0: + $pwdParent.removeClass('red yellow green'); + $pwdIntensity.removeClass('color'); + break; + case 1: + $pwdParent.addClass('red').removeClass('yellow green'); + $pwdIntensity.filter('.low').addClass('color'); + $pwdIntensity.filter('.mid,.high').removeClass('color'); + break; + case 2: + $pwdParent.addClass('yellow').removeClass('red green'); + $pwdIntensity.filter('.low,.mid').addClass('color'); + $pwdIntensity.filter('.high').removeClass('color'); + break; + case 3: + $pwdParent.addClass('green').removeClass('yellow red'); + $pwdIntensity.addClass('color'); + break; + } + if (pwd === '') { + isvalidatepwd = false; + $pwdTip1.removeClass('red yes no').addClass('default'); + } else { + if (pwd.length < 6 || pwd.length > 20) { + isvalidatepwd = false; + $pwdTip1.removeClass('default yes').addClass('no red'); + } else { + isvalidatepwd = true; + $pwdTip1.removeClass('default no red').addClass('yes'); + } + if (/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]*$/.test(pwd)) { + $pwdTip2.removeClass('default no red').addClass('yes'); + } else { + $pwdTip2.removeClass('default yes').addClass('no red'); + } + } +} + +function validatePwd() { + $(document).on('keyup', '.pwdcontent', function() { + pwdKeyupEvt($(this)); + }); + $(document).on('focus', '.pwdcontent', function() { + $('#pwd-tips').removeClass('hide'); + }); + $(document).on('blur', '.pwdcontent', function() { + $('#pwd-tips').addClass('hide'); + }); +} + +/** + * 最终提交表单 + */ +function actionSubmit() { + var pwd = ''; + var code = ''; + + // 查看提交状态,避免重复提交 + if (submitStatus) { + return; + } + submitStatus = true; + setTimeout(function() { + submitStatus = false; + }, 50000); + + pwd = $('#pwd').val(); + code = $('#validatenum').val(); + $.ajax({ + type: 'POST', + url: '/passport/autouserinfo/bindMobile', + data: { + area: area, + openId: $('#openId').val(), + sourceType: $('#sourceType').val(), + mobile: mobile, + password: pwd, + code: code + } + }).then(function(data) { + submitStatus = false; + if (data.code === 200) { + if (data.data && data.data.refer) { + window.location.href = data.data.refer; + } else { + window.location.href = '/passport/thirdlogin/bindsuccess'; + } + } else { + alert(data.message); + } + }); +} +/** + * 确定完善信息 + * @return {[type]} [description] + */ +function actionConfirm() { + var validatenum = ''; + var pwd = ''; + + $('#confirmsubmit').on('click', function() { + var isAssess = true; + + validatenum = $('#validatenum').val(); + pwd = $('#pwd').val(); + + if (validatenum === '') { + showErrTip($codeTip, '短信验证码不能为空'); + isAssess = false; + } else if (isvalidatecode === false) { + showErrTip($codeTip, '请输入正确的验证码'); + isAssess = false; + } + + if (pwd === '') { + showErrTip($pwdTip, '密码不能为空'); + isAssess = false; + } else if (pwd.length < 6 || pwd.length > 20) { + showErrTip($pwdTip, '密码只支持6-20位字符'); + isAssess = false; + } else if (!pwdRegx.test(pwd)) { + showErrTip($pwdTip, '密码须由字母和数字组合'); + isAssess = false; + } else if (isvalidatepwd === false) { + showErrTip($pwdTip, '请输入符合强度的密码'); + isAssess = false; + } + + if (!isAssess) { + return; + } + + actionSubmit(); + }); +} + + + +function init() { + $pwd = $('#pwd'); + $pwdParent = $('.safelevel'); + $pwdIntensity = $('.pwd-intensity'); + $pwdTip1 = $('#pwd-tip1'); + sendMessageValidate(); + codeValidate(); + validatePwd(); + actionConfirm(); + if (mobile && area) { + $sendMsgBtn.click(); + } +} + +init(); + +}); +define("js/passport/relate", ["jquery"], function(require, exports, module){ +/** + * 第三方关联 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/4/11 + */ +var $ = require("jquery"); + +var $relateMain = $('#relate-main'), + $codeValidate = $('#code-validate'), + $vaWrapper = $codeValidate.find('.validate-wrapper'), + $msgCode = $codeValidate.find('.msg-code'), + $second = $codeValidate.find('.count-down span'), + $errTip = $codeValidate.find('.code-error'), + $hideDom = $('#hide-info'); + +var relate = {}; + +var circleTime = {}; + +relate = $hideDom.data(); +$hideDom.remove(); + +// 倒计时 +circleTime = { + init: function() { + if (this.timer) { + window.clearTimeout(this.timer); + } + this.second = 60; + $vaWrapper.addClass('waiting'); + this.changeTime(); + }, + changeTime: function() { + var that = this; + + if (this.second && this.second > 0) { + $second.text(this.second); + this.second--; + this.timer = window.setTimeout(function() { + that.changeTime(); + }, 1000); + } else { + this.clearTime(); + } + }, + clearTime: function() { + if (this.timer) { + window.clearTimeout(this.timer); + } + $vaWrapper.removeClass('waiting'); + } +}; + +function sendVerifyMsg() { + circleTime.init(); + + $.ajax({ + type: 'POST', + url: '/passport/autouserinfo/sendBindMsg', + data: { + mobile: relate.mobile, + area: relate.area + } + }).then(function(jsonData) { + if (jsonData && jsonData.code !== 200) { + circleTime.clearTime(); + alert(jsonData.message); + } + }); +} + +function relateMobile() { + var code = $msgCode.val(); + + if (!code) { + return; + } + + $.ajax({ + type: 'POST', + url: '/passport/autouserinfo/relateMobile', + data: { + mobile: relate.mobile, + area: relate.area, + openId: relate.openid, + sourceType: relate.source, + code: code + } + }).then(function(jsonData) { + if (jsonData.code === 200) { + window.location.href = jsonData.data.refer; + } else if (jsonData.code === 402) { + $errTip.removeClass('hide'); + } else { + $errTip.addClass('hide'); + alert(jsonData.message); + } + }); +} + +$('#next-step-btn').click(function() { + sendVerifyMsg(); + $relateMain.addClass('hide'); + $errTip.addClass('hide'); + $codeValidate.removeClass('hide'); +}); + +$codeValidate.on('keydown', '.msg-code', function(e) { + if (e.keyCode === 13) { + relateMobile(); + return false; + } +}); + +$codeValidate.on('click', '.get-code', function() { + sendVerifyMsg(); +}); + +$codeValidate.on('click', '.perv-step', function() { + circleTime.clearTime(); + $relateMain.removeClass('hide'); + $codeValidate.addClass('hide'); + $msgCode.val(''); +}); + +$('#relate-btn').click(function() { + relateMobile(); +}); +}); +define("js/cart/cart", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * @description: 购物车 + * @author: chenglong.wang@yoho.cn + * @tips: 购物车的商品计价在服务端处理,客户端只要在每次操作后刷新页面重新渲染就可以了 + */ + +var $ = require("jquery"); +var Handlerbars = require("handlebars"); +var dialog = require("js/common/dialog"); + +var Confirm = dialog.Confirm; +var Alert = dialog.Alert; + +var $cartnewSum = $('.cartnew-sum'), + $cartnewTips = $('.cartnew-tips'), + $payWapper = $('.pay-wapper'), + $goodsDetail = $('.goods-detail'), + $histroy = $('.histroy'), + $together = $('.together'), + $shopCart = $('.shop-cart'), + togetherProductSource, + togetherProductTemplate, + togetherProductStr, + subjoinPage, + subjoinPageNum, + subjoinPageAll, + pageDom, + selected, + pageNum = 1, + delUrl, + count, + countJSON, + dataJSON, + pacList = 0, + shopNum = 1, + shopNumAll, + productSku, + promotionId, + promotionPrice, + yetCollect, + collect, + content, + productId, + shopName, + delNum, + understock, + selectArray = [], + PromotionArray = [], + perList = false, + commonList = false, + hasPromotion = false, + htmlInfo, + shopJson, + oldprice, + wapperPrice, + countBusy = false; + + +// 关闭温馨提示 +$cartnewTips.find('.btn_close').click(function() { + $cartnewTips.fadeOut(); +}); + +// checkbox提交ajax +function choiceOut(data) { + $.ajax({ + type: 'POST', + dataType: 'json', + url: '/cart/index/select', + data: data, + beforeSend: function() { + $('.loading').css({ + top: $(document).scrollTop() + 200 + }); + $('.loading').show(); + } + }).then(function(d) { + if (d.code === 200) { + window.history.go(0); + } + }); +} + +//单选提交 +$payWapper.one('click', '.common-sell-box input[type="checkbox"], .pre-sell-box input[type="checkbox"]', function() { + selected = $(this).attr('checked') ? 'Y' : 'N'; + selectArray = []; + selectArray.push({ + product_sku: $(this).parents('tr').data('id'), + selected: selected, + buy_number: $(this).parents('tr').data('productnum'), + goods_type: $(this).parents('tr').data('goodstype'), + promotion_id: $(this).parents('tr').data('promotionid') ? $(this).parents('tr').data('promotionid') : 0 + }); + if ($(this).parents('tr').promotion_id) { + hasPromotion = true; + } else { + hasPromotion = false; + } + dataJSON = { + skuList: JSON.stringify(selectArray), + hasPromotion: hasPromotion + }; + choiceOut(dataJSON); +}); + +//多选提交 +$cartnewSum.one('click', 'input[type="checkbox"]', function() { + selectArray = []; + shopJson = {}; + dataJSON = {}; + selected = $(this).attr('checked') ? 'Y' : 'N'; + $('.pay-wapper:first tr').each(function() { + if ($(this).data('promotionid')) { + hasPromotion = true; + } + if ($(this).data('id')) { + selectArray.push({ + product_sku: $(this).data('id'), + selected: selected, + buy_number: $(this).data('productnum'), + goods_type: $(this).data('goodstype'), + promotion_id: $(this).data('promotionid') ? $(this).data('promotionid') : 0 + }); + } + }); + dataJSON = { + skuList: JSON.stringify(selectArray), + hasPromotion: hasPromotion + }; + choiceOut(dataJSON); +}); + +function isCheck(obj, className) { + selectArray = []; + dataJSON = {}; + selected = obj.attr('checked') ? 'Y' : 'N'; + $('.' + className).each(function() { + if ($(this).data('promotionid')) { + hasPromotion = true; + } else { + hasPromotion = false; + } + if ($(this).data('id')) { + selectArray.push({ + product_sku: $(this).data('id'), + selected: selected, + buy_number: $(this).data('productnum'), + goods_type: $(this).data('goodstype'), + promotion_id: $(this).data('promotionid') ? $(this).data('promotionid') : 0 + }); + } + }); + dataJSON = { + skuList: JSON.stringify(selectArray), + hasPromotion: hasPromotion + }; + choiceOut(dataJSON); +} + +$('.per-list').on('click', 'input[type="checkbox"]', function() { + isCheck($(this), 'pre-sell-box'); +}); + +$('.common-list').on('click', 'input[type="checkbox"]', function() { + isCheck($(this), 'common-sell-box'); +}); + +// 凑单商品,最近浏览异步加载 +togetherProductSource = $('#togetherProduct').html(); +togetherProductTemplate = Handlerbars.compile(togetherProductSource); + +function getTogetherProduct($obj, url, page) { + $.ajax({ + type: 'GET', + dataType: 'json', + url: url, + data: page + }).then(function(d) { + if (d.code === 200) { + if (d.data.item) { + if (d.data.item.length > 0) { + $obj.html(' '); + togetherProductStr = togetherProductTemplate(d.data); + $obj.append($(togetherProductStr)); + $('#orderProduct li:last').addClass('end'); + $('.gift').removeClass('none'); + } + } + } + }); +} + +// 最近浏览 +getTogetherProduct($histroy, '/cart/index/getHistroyProduct'); + +// 凑单商品 +getTogetherProduct($together, '/cart/index/getTogetherProduct'); + +//凑单商品翻页 +$together.on('click', '.pagenext, .pageprev', function() { + getTogetherProduct($together, '/cart/index/getTogetherProduct', { + page: Math.ceil(Math.random() * 100) + 1 + }); + +}); + +//凑单商品,历史商品商品折叠 +$shopCart.on('click', '.icon-minus, .icon-add', function() { + if ($(this).hasClass('icon-minus')) { + $(this).parents('.title').next('.main').hide(); + $(this).parents('h2').next('.right').hide(); + } else { + $(this).parents('.title').next('.main').show(); + $(this).parents('h2').next('.right').show(); + } + $(this).siblings('i').toggleClass('none'); + $(this).toggleClass('none'); + +}); + +// 最近浏览翻页 +$histroy.on('click', '.pagenext, .pageprev', function() { + if ($(this).hasClass('pagenext')) { + pageNum++; + } else { + --pageNum > 0 || (pageNum = 1); + } + getTogetherProduct($histroy, '/cart/index/getHistroyProduct', { + page: pageNum + }); + +}); + + +//根据id获取商品信息 +function productInfo(data) { + $.ajax({ + type: 'GET', + dataType: 'html', + url: '/cart/index/getProductInfo', + data: data + }).then(function(d) { + pacList = 0; + $goodsDetail.html(' '); + $goodsDetail.append(d); + $goodsDetail.show(); + $('.detail-bigpic:not(.none) .con li:first').addClass('active'); + + if ($('.showSizeBox:not(.none) span').length < 2) { + $('.showSizeBox:not(.none) span:first').addClass('atcive'); + } + if (Number($('#addToCart').val()) !== 1) { + $('.showSizeBox span').data('num', 0); + } + $.each($('.showSizeBox span'), function() { + if ($(this).data('num') <= 0) { + $(this).addClass('null-atcivec'); + console.log($('.showSizeBox:not(.none) span:first')); + $('.showSizeBox:not(.none) span:first').removeClass('atcive'); + } + }); + + if (typeof promotionPrice !== 'undefined') { + oldprice = $('.detail-info .oldprice del').html() ? $('.detail-info .oldprice del').html() : wapperPrice; + htmlInfo = '<span class="oldprice">现价:<del>' + oldprice + '</del></span>' + + '<span class="newprice">活动价:<b class="promotion-price">' + promotionPrice + '</b></span>'; + $('.detail-info .price').html(htmlInfo); + } + + $('.detail-bigpic:not(.none) .bigpic:gt(0)').hide(); + + $('.showSizeBox:not(.none)').find('span').each(function() { + if ($(this).hasClass('null-atcivec')) { + $('.addcart').addClass('none'); + $('.btn_sellout').removeClass('none'); + } else { + $('.addcart').removeClass('none'); + $('.btn_sellout').addClass('none'); + return false; + } + }); + }); +} + +function removeInfo() { + $goodsDetail.html(' '); + $goodsDetail.css({ + top: $(document).scrollTop() + 30, + left: $(document).width() / 2 - $goodsDetail.width() / 2 + }); + +} + +//显示加价购商品信息 +$payWapper.on('click', '.cart-add-btn', function() { + productId = $(this).data('id'); + promotionId = $(this).parents('table').data('promotion'); + promotionPrice = $(this).parents('table').find('.subjoin-price').html(); + wapperPrice = $(this).parents('table').find('.wapper-price').html(); + removeInfo(); + productInfo({ + productId: productId + }); +}); + +//凑单商品,历史商品商品记录 +$('.clearfix').on('click', '.btn_view_s', function() { + productId = $(this).data('id'); + promotionId = $(this).parents('table').data('promotion'); + promotionPrice = $(this).parents('table').find('.subjoin-price').html(); + removeInfo(); + productInfo({ + productId: productId + }); +}); + +//关闭商品信息窗口 +$goodsDetail.on('click', '.colse', function() { + $goodsDetail.hide(); + $goodsDetail.html(' '); + shopNum = 1; +}); + +//展开加价购商品列表 +function fold(icon) { + icon.addClass('none').siblings('i').removeClass('none'); + icon.parents('.cart-product-num').siblings('div').toggleClass('fold'); + icon.siblings('.unfold-color').toggleClass('none'); + icon.siblings('.cart-page').toggleClass('none'); +} + +$payWapper.on('click', '.icon-minusCart, .icon-addCart', function() { + fold($(this)); +}); + + +$payWapper.on('click', '.unfold-color', function() { + fold($(this)); + $(this).siblings('.icon-minusCart').removeClass('none'); + $(this).siblings('.icon-addCart').addClass('none'); +}); + +//加价购商品分页 +$payWapper.on('click', '.cart-btn-next', function() { + subjoinPage = $(this).siblings('p').find('.f-red'); + subjoinPageAll = Number($(this).siblings('p').find('.subjoinPageNum').html()); + subjoinPageNum = Number(subjoinPage.html()); + subjoinPage.html(subjoinPageNum + 1); + if (subjoinPageNum >= subjoinPageAll - 1) { + $(this).hide(); + } else { + $(this).siblings('i').show(); + } + pageDom = $(this).parents('.cart-product-num').siblings('div').find('table'); + pageDom.addClass('none').eq(subjoinPageNum).removeClass('none'); +}); + +$payWapper.on('click', '.cart-btn-pre', function() { + subjoinPage = $(this).siblings('p').find('.f-red'); + subjoinPageAll = Number($(this).siblings('p').find('.subjoinPageNum').html()); + subjoinPageNum = Number(subjoinPage.html()); + subjoinPage.html(subjoinPageNum - 1); + if (subjoinPageNum <= 2) { + $(this).hide(); + } else { + $(this).siblings('i').show(); + } + pageDom = $(this).parents('.cart-product-num').siblings('div').find('table'); + pageDom.addClass('none').eq(subjoinPageNum - 2).removeClass('none'); +}); + +//删除购物车商品,把删除的商品移入cookie中 +function cartDel(data, delUrl, cookieList) { + $.ajax({ + type: 'POST', + dataType: 'json', + url: delUrl, + data: dataJSON, + beforeSend: function() { + $('.loading').css({ + top: $(document).scrollTop() + 200 + }); + $('.loading').show(); + } + }).then(function(d) { + if (d.code === 200) { + if (cookieList) { + window.setCookie('cart-del-list', JSON.stringify(cookieList), { + domain: '.yohobuy.com', + path: '/' + }); + } + window.history.go(0); + } else if (d.code === 300) { + $('.loading').hide(); + new Alert(d.message).show(); + } else if (d.code === 403) { + if (d.data.url) { + window.location = d.data.url; + } + } + }); +} + +//商品信息弹出框,加入收藏夹 +$goodsDetail.on('click', '.fav_count', function() { + $.ajax({ + type: 'POST', + dataType: 'json', + url: '/product/item/togglecollect', + data: { + productId: productId, + type: 'add' + } + }).then(function(d) { + if (d.code === 200) { + new Alert(d.message).show(); + } else if (d.code === 403) { + if (d.data.url) { + window.location = d.data.url; + } + } else { + new Alert(d.message).show(); + } + }); +}); + + +//删除商品 +$payWapper.on('click', '.cart-del-btn', function() { + dataJSON = {}; + selectArray = []; + promotionId = $(this).parents('tr').data('promotionid') ? $(this).parents('tr').data('promotionid') : 0; + selectArray.push({ + product_sku: $(this).parents('tr').data('id'), + buy_number: $(this).parents('tr').data('productnum'), + promotion_id: promotionId + }); + + if (promotionId) { + hasPromotion = true; + } else { + hasPromotion = false; + } + + dataJSON = { + skuList: JSON.stringify(selectArray), + hasPromotion: hasPromotion + }; + content = '<div><span></span>删除商品</div>' + + '<p>确定从购物车中删除此商品?</p>'; + if (!$(this).data('gift')) { + countJSON = { + productPrice: $(this).parents('tr').find('.productPrice').text(), + productTitle: $(this).parents('tr').find('.pay-pro-info a').text(), + link: $(this).parents('tr').find('.pay-pro-info a').attr('href'), + productNum: $(this).parents('tr').data('productnum'), + productSku: $(this).parents('tr').data('id'), + promotionId: $(this).parents('tr').data('promotionid') + }; + } + delUrl = '/cart/index/remove'; + new Confirm({ + content: content, + cb: function() { + cartDel(dataJSON, delUrl, countJSON); + } + }).show(); +}); + +//移入收藏夹 +$payWapper.on('click', '.cart-remove-btn', function() { + dataJSON = {}; + selectArray = []; + promotionId = $(this).parents('tr').data('promotionid') ? $(this).parents('tr').data('promotionid') : 0; + selectArray.push({ + product_sku: $(this).parents('tr').data('id'), + buy_number: $(this).parents('tr').data('productnum'), + promotion_id: promotionId + }); + + if (promotionId) { + hasPromotion = true; + } else { + hasPromotion = false; + } + + dataJSON = { + skuList: JSON.stringify(selectArray), + hasPromotion: hasPromotion + }; + + cartDel(dataJSON, '/cart/index/fav'); +}); + +//批量删除商品 +$cartnewSum.on('click', '.delAll', function() { + dataJSON = {}; + countJSON = {}; + selectArray = []; + PromotionArray = []; + $('.pay-wapper:first tr').each(function() { + if ($(this).find('input[type="checkbox"]').attr('checked')) { + promotionId = $(this).data('promotionid') ? $(this).data('promotionid') : 0; + if (promotionId) { + hasPromotion = true; + } + if ($(this).data('id')) { + if ($(this).find('input[type="checkbox"]').attr('checked')) { + selectArray.push({ + product_sku: $(this).data('id'), + buy_number: $(this).data('productnum'), + promotion_id: promotionId + }); + } + countJSON = { + productPrice: $(this).find('.productPrice').text(), + productTitle: $(this).find('.pay-pro-info a').text(), + link: $(this).find('.pay-pro-info a').attr('href'), + productNum: $(this).data('productnum'), + productSku: $(this).data('id'), + promotionId: $(this).data('promotionid') + }; + PromotionArray.push(countJSON); + } + } + }); + delUrl = '/cart/index/remove'; + content = '<div><span></span>删除商品</div>' + + '<p>确定从购物车中删除所有选中商品?</p>'; + dataJSON = { + skuList: JSON.stringify(selectArray), + hasPromotion: hasPromotion + }; + if (!$.isEmptyObject(selectArray)) { + new Confirm({ + content: content, + cb: function() { + cartDel(dataJSON, delUrl, PromotionArray); + } + }).show(); + } else { + new Alert('请至少选择一件商品').show(); + } +}); + +//批量移入收藏夹商品 +$cartnewSum.on('click', '.removeAll', function() { + dataJSON = {}; + countJSON = {}; + selectArray = []; + $('.pay-wapper:first tr').each(function() { + if ($(this).find('input[type="checkbox"]').attr('checked')) { + promotionId = $(this).data('promotionid') ? $(this).data('promotionid') : 0; + if (promotionId) { + hasPromotion = true; + } + + if ($(this).data('id')) { + if ($(this).find('input[type="checkbox"]').attr('checked')) { + selectArray.push({ + product_sku: $(this).data('id'), + buy_number: $(this).data('productnum'), + promotion_id: promotionId + }); + } + } + } + }); + dataJSON = { + skuList: JSON.stringify(selectArray), + hasPromotion: hasPromotion + }; + if (!$.isEmptyObject(selectArray)) { + cartDel(dataJSON, '/cart/index/fav'); + } else { + new Alert('请至少选择一件商品').show(); + } +}); + +//购物车商品增减 +function countAJAX(data) { + countBusy = true; + $.ajax({ + type: 'POST', + dataType: 'json', + url: '/cart/index/modify', + data: data + }).then(function(d) { + if (d.code === 200) { + window.history.go(0); + } + countBusy = false; + }); +} + +$payWapper.on('click', '.minus, .plus', function() { + countJSON = {}; + count = $(this).hasClass('minus') ? 'decreaseNum' : 'increaseNum'; + countJSON['' + count] = 1; + if (countBusy || ($(this).siblings('input').val() === '1' && $(this).hasClass('minus'))) { + return false; + } + + countAJAX($.extend(countJSON, + { + sku: $(this).parents('tr').data('id') + } + )); +}); + +$('.gift').on('click', '.up, .down', function() { + $(this).siblings('i').toggleClass('none'); + $(this).toggleClass('none'); +}); + +//加入购物车 + +function addcart(data, cookieList) { + $.ajax({ + type: 'POST', + url: '/cart/index/add', + data: data + }).then(function(d) { + if (d.code === 200) { + window.history.go(0); + if (cookieList) { + window.setCookie('cart-del-list', JSON.stringify(cookieList), { + domain: '.yohobuy.com', + path: '/' + }); + } + } else if (d.code === 500) { + new Alert(d.message).show(); + } + }); +} + +$goodsDetail.on('click', '.addcart', function() { + if ($('.showSizeBox:not(.none) .atcive').length !== 0) { + shopNumAll = $('.showSizeBox:not(.none) .atcive').data('num'); + productSku = $('.showSizeBox:not(.none) .atcive').data('sku'); + dataJSON = { + productSku: productSku, + buyNumber: $('#mnum').val(), + promotionId: promotionId + }; + } else { + new Alert('请选择尺码').show(); + return false; + } + + if ($('#mnum').val() > shopNumAll) { + new Alert('库存不足,目前还有' + shopNumAll + '个库存').show(); + } else { + if (Number($('#addToCart').val()) === 1) { + addcart(dataJSON); + } else { + new Alert('该商品无法加入购物车').show(); + } + } +}); + +$goodsDetail.on('click', '.cut, .add', function() { + count = $(this).hasClass('minus') ? 'decreaseNum' : 'increaseNum'; + if (promotionId) { + if ($(this).hasClass('cut')) { + new Alert('-_-,已经是最后一件,不能在减了!').show(); + } else { + new Alert('最多只能购买1,您好像购买的太多了!').show(); + } + } else { + if ($(this).hasClass('add')) { + shopNum++; + } else { + shopNum--; + } + if (shopNum < 1) { + new Alert('-_-,已经是最后一件,不能在减了!').show(); + shopNum = 1; + return false; + } + + $('#mnum').val(shopNum); + } + +}); + +$goodsDetail.on('click', '.color', function() { + pacList = 0; + $('.color').find('p').removeClass('atcive'); + $(this).find('p').addClass('atcive'); + $('.showSizeBox').addClass('none').eq($(this).index()).removeClass('none'); + if ($('.showSizeBox:not(.none) span').length < 2) { + $('.showSizeBox:not(.none) span:first').addClass('atcive'); + } + $('.detail-bigpic').addClass('none').eq($(this).index()).removeClass('none'); + $('.detail-bigpic').eq($(this).index()).find('.bigpic').hide(); + $('.detail-bigpic').eq($(this).index()).find('.bigpic:first').show(); + $('.detail-bigpic').eq($(this).index()).find('.con li').removeClass('active'); + $('.detail-bigpic').eq($(this).index()).find('.con li:first').addClass('active'); + $('.showSizeBox').eq($(this).index()).find('span').each(function() { + if ($(this).hasClass('null-atcivec')) { + $('.addcart').addClass('none'); + $('.btn_sellout').removeClass('none'); + } else { + $('.addcart').removeClass('none'); + $('.btn_sellout').addClass('none'); + return false; + } + }); +}); + +$goodsDetail.on('click', '.showSizeBox span', function() { + shopNumAll = $(this).data('num'); + if ($(this).data('num') > 0) { + $('.showSizeBox:not(.none) span').removeClass('atcivec atcive').eq($(this).index()).addClass('atcive'); + $('.addcart').removeClass('none'); + $('.btn_sellout').addClass('none'); + } else { + $('.showSizeBox:not(.none) span').removeClass('atcivec atcive').eq($(this).index()).addClass('atcivec'); + $('.addcart').addClass('none'); + $('.btn_sellout').removeClass('none'); + } +}); + +//撤销删除 +$('.goBack').on('click', function() { + dataJSON = {}; + delNum = $('.dev-revocation .goBack').index(this); + selectArray = []; + $('.dev-revocation tr').each(function(index) { + if (delNum !== index) { + countJSON = { + productPrice: $(this).find('.productPrice').text(), + productTitle: $(this).find('.title').text(), + link: $(this).find('.title').attr('href'), + productNum: $(this).data('productnum'), + productSku: $(this).data('productsku'), + promotionId: $(this).data('promotionid') + }; + selectArray.push(countJSON); + } + }); + dataJSON = { + productSku: $(this).parents('tr').data('productsku'), + promotionId: $(this).parents('tr').data('promotionid'), + buyNumber: $(this).parents('tr').data('productnum') + }; + addcart(dataJSON, selectArray); +}); + +$goodsDetail.on('click', '.piclist li', function() { + pacList = $(this).index(); + $('.detail-bigpic:not(.none) .piclist li').removeClass('active'); + $(this).addClass('active'); + $('.detail-bigpic:not(.none) .bigpic').hide().eq($(this).index()).show(); +}); + +function isSollect() { + $('.gift-wrapper .fold').show(); + if ($('.pre-sell-box input:checked').length === $('.pre-sell-box input[type="checkbox"]').length) { + $('.per-list input[type="checkbox"]').attr('checked', true); + } + if ($('.common-sell-box input:checked').length === $('.common-sell-box input[type="checkbox"]').length) { + $('.common-list input[type="checkbox"]').attr('checked', true); + } + if ($('.common-list input[type="checkbox"]').attr('checked')) { + commonList = true; + } + if ($('.per-list input[type="checkbox"]').attr('checked')) { + perList = true; + } + if ($('.per-list').length !== 0 && $('.common-list').length !== 0) { + if (commonList && perList) { + $('.batch_div input[type="checkbox"]').attr('checked', true); + } + } else { + if (commonList || perList) { + $('.batch_div input[type="checkbox"]').attr('checked', true); + } + } + + $('.cart-page').each(function() { + if ($(this).data('pageall') === 1) { + $('.cart-btn-pre', this).hide(); + $('.cart-btn-next', this).hide(); + } else { + $('.cart-btn-pre', this).hide(); + } + }); + + if ($('.pre-sell-box input:checked').length > 0 && $('.common-sell-box input:checked').length > 0) { + $('.go_cash_tips').show(); + $('.btn_account_disabled').show(); + $('.btn_account').hide(); + } else { + $('.go_cash_tips').hide(); + $('.btn_account').show(); + $('.btn_account_disabled').hide(); + } + + $('.pay-wapper tr').each(function() { + if ($(this).data('pid')) { + selectArray.push($(this).data('pid') + ''); + } + + }); + $.ajax({ + type: 'POST', + url: '/cart/index/checkFav', + data: { + pidList: JSON.stringify(selectArray) + } + }).then(function(d) { + yetCollect = '<span class="cart-yetremove-btn">已收藏</span>'; + collect = '<a href="javascript:void(0);" class="cart-remove-btn"><span>移入收藏</span></a>'; + $.each(d.data, function(key, val, index) { + $('.pay-wapper tr').each(function() { + if (Number($(this).data('pid')) === Number(key)) { + if (val) { + $(this).find('.cart-operation').append(yetCollect); + } else { + $(this).find('.cart-operation').append(collect); + } + } + }); + }); + }); +} + +isSollect(); + +$goodsDetail.on('click', '.pre, .next', function() { + if ($(this).hasClass('next')) { + if (pacList >= $(this).siblings('.con').find('li').length - 1) { + return false; + } + pacList++; + } else { + if (pacList < 1) { + return false; + } + pacList--; + } + $(this).siblings('.con').find('li').removeClass('active').eq(pacList).addClass('active'); + $('.detail-bigpic:not(.none) .bigpic').hide().eq(pacList).show(); +}); + +//结算 +$('.btn_account').on('click', function() { + understock = ''; + if ($('.pay-wapper input:checked').parents('tr').find('.tipNoStore').length > 0) { + shopName = $('.pay-wapper input:checked').parents('tr').find('.tipNoStore'); + $.each(shopName.parents('tr').find('.pay-pro-info a'), function() { + understock += $(this).html(); + }); + new Alert(understock + '库存不足').show(); + } else { + if ($('.zp').length > 0 && !$(this).attr('title')) { + $(this).attr('title', '1'); + new Alert('您有赠品没有选择,请选择完再结算!').show(); + } else { + if ($('input:checked').length > 0) { + if ($('.pre-sell-box input:checked').length > 0) { + window.location.href = '/cart/index/orderEnsure?type=2'; + } else { + window.location.href = '/cart/index/orderEnsure?type=1'; + } + } else { + new Alert('请至少选择一件商品').show(); + } + } + } +}); + +$payWapper.on('selectstart', function() { + return false; +}); +$goodsDetail.on('selectstart', function() { + return false; +}); +}); +define("js/guang/entry", ["jquery","lazyload","dot","jquery-pjax"], function(require, exports, module){ +/** + * 逛打包入口 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2016/3/29 + */ + +require("js/guang/list"); + +require("js/guang/detail"); + +require("js/guang/index"); + +}); +define("js/guang/list", ["jquery","lazyload","dot"], function(require, exports, module){ +/** + * 逛编辑页、列表页 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/15 + */ + +require("js/guang/msg"); +require("js/guang/img-blink"); +require("js/guang/right-side"); +}); +define("js/guang/msg", ["jquery","lazyload","dot"], function(require, exports, module){ +var $ = require("jquery"), + lazyLoad = require("lazyload"); + +var prising; + +require("dot"); + +//资讯文字截取和lazyload +function dotLazy() { + + //文字截取 + $('.msg-title, .msg-content .content').dotdotdot({ + wrap: 'letter' + }); + + //Lazyload + lazyLoad($('#msg-list img.lazy')); +} + +//资讯点赞 +$('.guang-page').on('click', '.like-icon', function() { + var $this = $(this), + msgId = $this.closest('.msg-content').data('id'), + url; + + //同一资讯多次点击归一处理 + if (prising === msgId) { + return; + } + + prising = msgId; + + $this.toggleClass('liked'); + + //点赞或取消点赞 + if ($this.hasClass('liked')) { + url = '/guang/info/praise'; + } else { + url = '/guang/info/cancelPraise'; + } + $.ajax({ + type: 'GET', + url: url, + data: { + id: msgId, + time: new Date().getTime() + } + }).then(function(data) { + if (data.code === 200) { + if (data.data * 1 === 0) { + $this.next('b').addClass('num-0').children('.num').html('0'); //隐藏数字显示 + } else { + $this.next('b').removeClass('num-0').children('.num').html(data.data); + } + } + prising = false; + }); +}).on('mouseenter mouseleave', '.like-icon', function() { + $(this).closest('.like').toggleClass('hover'); +}); + +dotLazy(); + +exports.dotLazy = dotLazy; + +}); +define("js/guang/img-blink", ["jquery"], function(require, exports, module){ +/** + * 图片移入闪动效果JS + * @auhor: xuqi<qi.xu@yoho.cn> + * @date: 2015/7/29 + */ + +var $ = require("jquery"); + +$('.guang-page').on('mouseover', 'a img, a .bg-img', function(e) { + var $el = $(e.target); + + //slider中的图片不做此效果 + if ($el.closest('.slider').length > 0) { + return; + } + + $el.addClass('blink'); + + setTimeout(function() { + $el.removeClass('blink'); + }, 100); +}); + +}); +define("js/guang/right-side", ["jquery","lazyload","dot"], function(require, exports, module){ +/** + * 右侧栏文字截取js + */ +var $ = require("jquery"), + lazyLoad = require("lazyload"); + +require("dot"); + +$('.ex-reco-context').dotdotdot({ + wrap: 'letter' +}); + +lazyLoad($('.ads img.lazy')); +}); +define("js/guang/detail", ["jquery","lazyload","dot","jquery-pjax"], function(require, exports, module){ +/** + * 逛详情页 + * @author: liuyue<yue.liu@yoho.cn> + * @date: 2015/12/16 + */ + +var $ = require("jquery"), + lazyLoad = require("lazyload"), + $commentArea = $('#comment-area'), + articleId = $('.detail-body').data('id'); + +var $commentList = $commentArea.find('.comments-wrap'), + $commentNum = $('#article-comment > .comment-num'), + commenting = false, //评论请求尚未返回变量 + locating = false, //评论页面正在跳转 + $commentBtn = $('#comment-btn'), + MAX_COMMENTS_WORDS = 100, + $wordCountTip = $('#word-count-tip'); + +require("js/guang/right-side"); +require("js/guang/img-blink"); + +require("js/common/share"); + +//Pjax +require("jquery-pjax"); + +lazyLoad({ + failure_limit: 50 +}); + +//点击评论滑到评论区 +// $('#article-comment').click(function() { +// $('html, body').animate({ +// scrollTop: $commentArea.offset().top - 20 +// }, 800); +// }); + +//文章点赞与取消点赞 +$('#prise-btn').click(function() { + var prising = false, + url, + $this = $(this); + + if (prising) { + return; + } + $this.toggleClass('liked'); + if ($this.hasClass('liked')) { + + //点赞 + url = '/guang/info/praise'; + } else { + + //取消点赞 + url = '/guang/info/cancelPraise'; + } + prising = true; + $.ajax({ + type: 'GET', + url: url, + data: { + id: articleId + } + }).then(function(data) { + if (data.code === 200) { + $this.find('.like-num').html(data.data); + } + prising = false; + }); +}).bind('mouseenter mouseleave', function() { + $(this).toggleClass('hover'); +}); + +//文章收藏与取消收藏 +$('#collect-btn').click(function() { + var collecting = false, + url, + col, + $this = $(this); + + if (collecting) { + return; + } + if ($this.hasClass('collected')) { + + //取消收藏 + url = '/guang/info/cancelcollect'; + col = 0; + } else { + + //收藏 + url = '/guang/info/collect'; + col = 1; + } + collecting = true; + $.ajax({ + type: 'GET', + url: url, + data: { + id: articleId + } + }).then(function(data) { + var hrefUrl; + + switch (data.code) { + case 401: + + //防止从已有col的页面再次进行跳转后出错的情况 + if (/\?col=(1|0)/.test(location.href)) { + hrefUrl = location.href.replace(/\?col=(1|0)/, '?col=' + col); + } else { + hrefUrl = location.href + '?col=' + col; + } + location.href = '//www.yohobuy.com/signin.html?refer=' + encodeURI(hrefUrl); + break; + case 400: + + // alert(data.message); + break; + case 200: + if (/\?col=(1|0)/.test(location.href)) { + + //如果页面url中含有col,为了防止页面刷新时收藏或者取消收藏会根据col来的问题,进行页面跳转拿掉参数 + location.href = location.href.replace(/\?col=(1|0)/, ''); + } else { + $this.toggleClass('collected'); + } + break; + } + collecting = false; + }); +}).bind('mouseenter mouseleave', function() { + $(this).toggleClass('hover'); +}); + +function showComment() { + var commonlist = $('.comments-list').find('li').length; + + if (commonlist === 0) { + $('.commnets-resultwrapper').hide(); + $('.comments-empty').show(); + } else { + $('.commnets-resultwrapper').show(); + $('.comments-empty').hide(); + } +} +showComment(); + +//评论 +function comment(id) { + var commentInfo = $('#comment-info').val(); + + if (commentInfo === '') { + alert('评论不能为空'); + return false; + } + commenting = true; + $.ajax({ + url: '/guang/info/comment', + data: { + id: id, + comment: commentInfo + }, + type: 'post', + success: function(data) { + switch (data.code) { + case 401: + locating = true; + location.href = '//www.yohobuy.com/signin.html?refer=' + + window.escape(location.href + '#comment-info'); + break; + case 400: + alert(data.message); + break; + case 200: + if (data.data) { + $commentList.html(data.data.content); + $commentNum.html(data.data.count); + showComment(); + + //clear comment-text + $('#comment-info').val('').keyup(); + } + break; + } + commenting = false; + } + }); +} + +$commentBtn.click(function(e) { + + //页面正在跳转或者正在AJAX请求时评论无效 + if (locating || commenting) { + return false; + } + + //字数不符合要求 + if ($('#comment-info').val().length - MAX_COMMENTS_WORDS > 0) { + return; + } + e.preventDefault(); + comment(articleId); +}); + + +//comment pager pjax +$(document).pjax('.comment-pager a', '#pjax-container', { + timeout: 5000 +}); + +//分页后移动到评论框的位置 +$(document).on('pjax:end', function() { + showComment(); + $('html,body').scrollTop($('#comment-info').offset().top); +}); + +$('#comment-info').keyup(function() { + var len = $(this).val().length, + showTxt; + + if (len === 0) { + $wordCountTip.html(''); + $commentBtn.addClass('disable'); + } else { + if (len - MAX_COMMENTS_WORDS <= 0) { + showTxt = '还可以输入' + (MAX_COMMENTS_WORDS - len) + '字'; + $commentBtn.removeClass('disable'); + } else { + showTxt = '已超过<span class="exceed-count">' + (len - MAX_COMMENTS_WORDS) + '</span>字'; + $commentBtn.addClass('disable'); + } + } + $wordCountTip.html(showTxt); +}); + +//init +$('#comment-info').trigger('keyup'); + +}); +define("js/guang/index", ["jquery","lazyload","dot","jquery-pjax"], function(require, exports, module){ +/** + * 逛首页 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2015/12/15 + */ + +var $ = require("jquery"); + +var msg = require("js/guang/msg"); + +require("jquery-pjax"); +require("js/common/slider"); + +require("js/guang/img-blink"); + +require("js/guang/right-side"); + +$('#slider').slider(); //初始化slider + +$(document).pjax('.pjax-link, .msg-pager a', '#pjax-container', { + timeout: 2000 +}); + +$(document).on('pjax:end', function() { + msg.dotLazy(); +}); +}); +define("js/home/entry", ["jquery","handlebars","source-map","dot"], function(require, exports, module){ +/** + * 个人中心页js打包入口文件 + * @author: zhaobiao<bill.zhao@yoho.cn> + * @date: 2016/02/17 + */ + +require("js/home/index"); +require("js/home/orders"); +require("js/home/favorite"); +require("js/home/currency"); + +require("js/home/returns"); +require("js/home/comment"); +require("js/home/complaints"); +require("js/home/message"); + +require("js/home/edit"); +require("js/home/gift"); +require("js/home/validate"); +require("js/home/address"); +require("js/home/common-address"); +}); +define("js/home/index", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 个人中心首页 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2016/2/17 + */ + +var $ = require("jquery"); + +require("js/home/order-block"); + +//关闭消息提示 +$('#close-message').click(function() { + $('.message-tip').slideUp(200); +}); + +//新品上架 +(function() { + var $naPager = $('.na-pager'), + $naUl = $('.new-arrival ul'), + naPage = Math.ceil($naUl.children('li').length / 5), + naItemWith = $naUl.children('li:last-child').outerWidth(), + naCurPage = 1; + + $naUl.width($naUl.width() * naPage); + + //最新上架翻页 + $naPager.click(function() { + var $this = $(this), + left; + + if ($this.hasClass('next')) { + + //后翻 + ++naCurPage; + + //第2页显示前翻按钮 + if (naCurPage === 2) { + $this.siblings().removeClass('no-visible'); + } + + //最后一页隐藏后翻按钮 + if (naCurPage === naPage) { + $this.addClass('no-visible'); + } + } else { + + //前翻 + --naCurPage; + + //倒数第2页显示后翻按钮 + if (naCurPage === naPage - 1) { + $this.siblings().removeClass('no-visible'); + } + + //第1页隐藏前翻按钮 + if (naCurPage === 1) { + $this.addClass('no-visible'); + } + } + + left = -5 * (naCurPage - 1) * naItemWith; + + $naUl.animate({ + marginLeft: left + }, 400); + }); +}()); +}); +define("js/home/order-block", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 订单 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2016/2/17 + */ + +var $ = require("jquery"); +var Handlebars = require("handlebars"); + +var dialog = require("js/common/dialog"); + +var Dialog = dialog.Dialog; +var Confirm = dialog.Confirm; + +var $tpl = $('#cancel-dialog-tpl'); +var deleteDialog = '<div class="order-delete-confirm">' + + '<div class="header">' + + '<p>删除订单</p>' + + '<a href="javascript:;" title="关闭"></a>' + + '</div>' + + '<div class="body">' + + '<p class="confirm-tip"><i class="icon-doubt"></i>{{deleteMessage}}</p>' + + '<p class="delete-tip">{{deleteTip}}</p>' + + '</div>' + + '</div>'; +var html = $tpl.html(); + +var active; +var dialogMessage = '<p class="message-title"><i class="order-icon {{messageIcon}}"></i>{{messageTitle}}</p><p class="message-summary">{{messageSummary}}</p>'; +var $dialogEdit = $('#edit-dialog-tpl'); +var $addressManage, $province, $city, $county, $selectList, $name, $phone, $address, $telCode, $tel, isProvinceChecked = false; + +function cancelFactory(id) { + var options = { + mask: false, + btns: [ + { + id: 'cancel-sure', + name: '确定并取消订单', + btnClass: ['cancel-sure'], + cb: function () { + var $checked = $('.cancel-dialog :checked'); + var $tip = $('.cancel-dialog .cancel-tip'); + + if ($checked.length === 0) { + $tip.html('请选择要取消订单的原因'); + return; + } + + $.ajax({ + type: 'POST', + url: '/home/orders/cancelorder', + data: { + orderCode: id, + reason: $checked.val() + } + }).then(function (data) { + if (data.code === 200) { + active.close(); + history.go(0); + } else { + $tip.html(data.message); + } + }); + } + }, + { + id: 'cancel-no', + name: '取消', + btnClass: ['cancel-no'], + cb: function () { + active.close(); + } + } + ], + content: html, + className: 'cancel-dialog' + }; + + return new Dialog(options); +} +function showMessgaeDialog(message_icon, message_title, message_summary, cb) { + var template = Handlebars.compile(dialogMessage); + var html = template({messageIcon: message_icon, messageTitle: message_title, messageSummary: message_summary}); + var options = { + mask: true, + btns: [ + { + id: 'message-sure', + name: '确定', + btnClass: ['message-sure'], + cb: function() { + active.close(); + cb && cb(); + } + } + ], + content: html, + className: 'message-dialog', + }; + + return new Dialog(options); + +} +// 编辑订单 +function editOrder(id) { + var options = { + mask: true, + btns: [ + { + id: 'edit-sure', + name: '确定', + btnClass: ['edit-sure'], + cb: function() { + saveAddress(id); + } + }, + { + id: 'edit-no', + name: '取消', + btnClass: ['edit-no'], + cb: function() { + active.close(); + } + } + ], + content: $dialogEdit.html(), + className: 'edit-order-dialog' + }; + + return new Dialog(options); +} + +$tpl.remove(); +$dialogEdit.remove(); + +//查看物流 +$('.check-logistics').click(function () { + $(this).siblings('.logistics').removeClass('hide'); +}); + +$('.close-logistics').click(function () { + $(this).closest('.logistics').addClass('hide'); +}); + + +//订单列表&订单详情【取消订单和确认收货】 +$('.me-orders, .order-detail').on('click', '.cancel-order', function (e) { + + //取消订单 + active = cancelFactory($(this).closest('.order, .order-detail').data('id')); + active.show(); +}).on('click', '.confirm-received', function (e) { + var id = $(this).closest('.order, .order-detail').data('id'); + + //确认收货 + active = new Confirm({ + cb: function () { + $.ajax({ + type: 'POST', + url: '/home/orders/confirmorder', + data: { + orderCode: id + } + }).then(function (data) { + if (data.code === 200) { + active.close(); + history.go(0); + } + }); + }, + content: '您确定要确认收货吗?' + }); + active.show(); +}).on('click', '.order-delete', function () { + var id = $(this).closest('.order, .order-detail').data('id'); + active = deleteOrder(id, this); + active.show(); +}).on('click', '.edit-order', function() { + $(this).addClass('edit-order-active'); + active = editOrder($(this).closest('.order, .order-detail').data('id')) + active.show(); + newAddress(0); +}); +function deleteOrder(id, obj) { + // 是否为彻底删除 + var isFullyDelete = true; + var $order = $(obj).parents(".order"); + var deleteMessage = isFullyDelete ? "您确定要永久删除订单吗?" : "您确定要删除订单吗?"; + var deleteTip = isFullyDelete ? "永久删除后,订单将无法恢复,您将无法对该订单的商品申请售后服务,请谨慎操作。" : "删除后,您可以在订单回收站找回该订单,也可以做永久删除。"; + var insert = Handlebars.compile(deleteDialog); + var html = insert({deleteMessage: deleteMessage, deleteTip: deleteTip}); + var options = { + mask: false, + btns: [ + { + id: 'delete-sure', + name: '确定', + btnClass: ['delete-sure'], + cb: function () { + $.ajax({ + type: 'POST', + url: '/home/orders/delOrder', + data: { + orderCode: id, + isFullyDelete: isFullyDelete, + } + }).then(function (data) { + if (data.code === 200) { + active.close(); + $order.remove(); + location.reload(); + }else{ + active.close(); + new dialog.Alert(data.message).show(); + } + }); + } + }, + { + id: 'delete-no', + name: '取消', + btnClass: ['delete-no'], + cb: function () { + active.close(); + } + } + ], + content: html, + className: 'delete-dialog', + }; + return new Dialog(options); +} +// 地址操作 +function newAddress(id) { + var code, codeId; + + var pId = id || 0; //如果没有传id则获取所有省列表 + + var addressCodeReg = /[0-9]{2}/gi; + + $addressManage = $('.edit-order-dialog'); + $province = $addressManage.find('select[name="province"]'); + $city = $addressManage.find('select[name="city"]'); + $county = $addressManage.find('select[name="county"]'); + $selectList = $addressManage.find('select[name="province"],select[name="city"]'); + $name = $addressManage.find('.inp[name="name"]'); + $phone = $addressManage.find('.inp[name="phone"]'); + $address = $addressManage.find('.inp[name="address"]'); + $telCode = $addressManage.find('.inp[name="tel-code"]'); + $tel = $addressManage.find('.inp[name="tel"]'); + + var validate = validateForm(); + + code = $province.data("areacode") + ''; + codeId = !!code && code.match(addressCodeReg); + + //获取省 + getAddress({ + id: pId, + type: 'getProvince', + selectId: codeId[0] + }, function() { + + var provinceId = $province.val(); + + if (provinceId !== '0') { + isProvinceChecked = true; + + //如果获取的省有默认选中项则获取市 + getAddress({ + id: provinceId, + type: 'getCity', + selectId: '' + codeId[0] + codeId[1] + }, function() { + + var cityId = $city.val(); + + //如果获取的市有默认选中项则获取县 + if (cityId !== '0') { + getAddress({ + id: cityId, + type: 'getCounty', + selectId: code + }); + } + }); + } else { + $addressManage.find('select[name="city"]').html('<option value="0">请选择城市</option>'); + $addressManage.find('select[name="county"]').html('<option value="0">请选择区县</option>'); + } + }); + + // 发生change事件时获取下一级地址 + $selectList.change(function() { + + var $this = $(this); + + if ($this.attr('name') === 'province') { + + if ($this.val() === '0') { + $addressManage.find('select[name="city"]').html('<option value="0">请选择城市</option>'); + $addressManage.find('select[name="county"]').html('<option value="0">请选择区县</option>'); + } else { + getAddress({ + id: $this.val(), + type: 'getCity' + }, function() { + isProvinceChecked = true; + }); + $addressManage.find('select[name="county"]').html('<option value="0">请选择区县</option>'); + } + } + + if ($this.attr('name') === 'city' && isProvinceChecked) { + + if ($this.val() === '0') { + $addressManage.find('select[name="county"]').html('<option value="0">请选择区县</option>'); + } else { + getAddress({ + id: $this.val(), + type: 'getCounty' + }); + } + } + }); + $name.on('blur', function() { + validate.name($.trim($name.val())); + }); + $address.on('blur', function() { + validate.address($.trim($address.val())); + }); + $phone.on('blur', function() { + validate.mobile($.trim($phone.val())); + }); + $tel.on('blur', function() { + validate.tel($.trim($telCode.val()), $.trim($tel.val())); + }) + $county.on('change', function() { + validate.city($province.val(), $city.val(),$county.val()); + }) +} +/** + * @description: 改函数会返回地址信息 + * d {Object} type: 'getProvince'获取省 type: 'getCity'获取城市 type: 'getCounty'获取县 + * id: 0 && type: 'getProvince' 获取所有省,默认没有选中项 + * id !== 0 && type: 'getProvince' 获取所有省,默认选中用户所在的省 + */ +function getAddress(d, callback) { + + var $obj; + var selectId = d.selectId; + + if (d.type === 'getProvince') { + + //url = 'getProvince'; + $obj = $province; + } else if (d.type === 'getCity') { + + //url = 'getCity'; + $obj = $city; + } else if (d.type === 'getCounty') { + + //url = 'getCounty'; + $obj = $county; + } + + $.ajax({ + type: 'GET', + url: '/cart/index/getAreaList', + dataType: 'json', + data: { + id: d.id * 1 + } + }).then(function(d) { + + structureOption($obj, d.data, selectId); + + if (typeof callback === 'function') { + callback(); + } + + }); +} + +// 构建select下拉选项 +function structureOption($obj, data, selectId) { + + var i, + optionHtml = '', + defaultOption, + isStar = ''; + + for (i = 0; i < data.length; i++) { + + if (data[i].is_support_express === 'Y') { + isStar = '*'; + } else { + isStar = ''; + } + + if (data[i].id === selectId) { + optionHtml += '<option selected value="' + data[i].id + '">' + isStar + data[i].caption + '</option>'; + } else { + optionHtml += '<option value="' + data[i].id + '">' + isStar + data[i].caption + '</option>'; + } + } + + + if ($obj.attr('name') === 'province') { + defaultOption = '<option value="0">请选择省份</option>'; + } else if ($obj.attr('name') === 'city') { + defaultOption = '<option value="0">请选择城市</option>'; + + } else if ($obj.attr('name') === 'county') { + defaultOption = '<option value="0">请选择区县</option>'; + } + + $obj.html(defaultOption + optionHtml); +} + +// 保存地址 +function saveAddress(id) { + var name = $name.val(), + province = $province.val(), + city = $city.val(), + county = $county.val(), + address = $address.val(), + phone = $phone.val(), + telCode = $telCode.val(), + tel = $tel.val(); + + // var $err_name = $name.siblings('.error'), + // $err_province = $province.siblings('.error'), + // $err_address = $address.siblings('.error'), + // $err_phone = $phone.siblings('.error'), + // $err_tel = $tel.siblings('.error'); + + var postData = { + orderCode: id, + userName: name, + areaCode: county, + address: address, + mobile: phone, + phoneCode: telCode, + phoneNum: tel + }; + var validate = validateForm(); + if (!validate.name(name) || !validate.city(province, city, county) || !validate.address(address) || !validate.mobile(phone) || !validate.tel(telCode, tel)) { + return; + } + + $.ajax({ + type: 'post', + url: '/home/orders/modifyAddress', + data: postData + }).then(function(d) { + if (d.code === 200) { + active.close(); + active = showMessgaeDialog('icon-waiting', '订单修改', '您的订单正在尝试修改,请耐心等待。稍后可在订单详情页查看修改情况!', function() { + location.reload(true); + }); + active.show(); + } else { + new dialog.Alert(d.message).show(); + } + }) +} +function validateForm() { + var $err_name = $name.siblings('.error'), + $err_province = $province.siblings('.error'), + $err_address = $address.siblings('.error'), + $err_phone = $phone.siblings('.error'), + $err_tel = $tel.siblings('.error'); + + var nameReg = /^[\u4e00-\u9fa5]{2,5}$/; + var addressReg = /^[a-zA-Z0-9-#()()\u4e00-\u9fa5]+$/; + var phoneReg = /^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/; + var telCodeReg = /^[0-9]{3,4}$/; + var telReg = /^[0-9]{8}$/; + var _right_html = '<i class="order-icon icon-right"></i>'; + var _error_html = '<i class="order-icon icon-error"></i><b></b>'; + + return { + name: function(name) { + if (!nameReg.test(name)) { + $err_name.html(_error_html); + $err_name.find('b').html('真实姓名至少2个中文,最多5个中文'); + $err_name.show(); + return false; + } else { + $err_name.html(_right_html).show(); + return true; + } + }, + city: function(province, city, county) { + if (province === '0' || city === '0' || county === '0') { + $err_province.html(_error_html); + $err_province.find('b').html('请填写完整的省市区信息'); + $err_province.show(); + return false; + } else { + $err_province.html(_right_html).show(); + return true; + } + }, + address: function(address) { + if (!addressReg.test(address)) { + var message = '详细地址不能为空'; + if ($.trim(address) !== '') { + message = '只能包含数字、字母、汉字、#、-、()及其组合'; + } + $err_address.html(_error_html); + $err_address.find('b').html(message); + $err_address.show(); + return false; + } else { + $err_address.html(_right_html).show(); + return true; + } + }, + mobile: function(phone) { + if (!phoneReg.test(phone)) { + var message = '手机号码不能为空'; + if ($.trim(phone) !== '') { + message = '你输入的联系电话格式不正确'; + } + $err_phone.html(_error_html); + $err_phone.find('b').html(message); + $err_phone.show(); + return false; + } else { + $err_phone.html(_right_html).show(); + return true; + } + }, + tel: function(telCode, tel) { + if(telCode === '' && tel === ''){ + _right_html = ''; + } + if ((!!telCode && !telCodeReg.test(telCode)) || (!!tel && !telReg.test(tel)) || + (telCodeReg.test(telCode) && !telReg.test(tel)) || + (!telCodeReg.test(telCode) && telReg.test(tel))) { + $err_tel.html(_error_html); + $err_tel.find('b').html('你输入的电话格式不正确'); + $err_tel.show(); + return false; + } else { + $err_tel.html(_right_html).show(); + return true; + } + } + } +} +}); +define("js/home/orders", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 我的订单 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2016/2/17 + */ +var $ = require("jquery"); + + +require("js/home/order-block"); + +//不同订单包裹提示 + +$('.why').click(function() { + $('#differentBag').show(); + return false; + +}); +$('#differentBag').click(function() { + return false; +}); +$(document).click(function() { + $('#differentBag').hide(); +}); + + +//订单包裹左右切换 +function lunBo($pre, $next, $ul, $iWidth) { + var i = 1, + j = 1; + + var iSpeed = 0, + isMoving = false; + + $pre.click(function() { + if (isMoving) { + return; + } + + if ($ul.css('left') === '0px') { + iSpeed = 0; + + } else { + iSpeed += j * $iWidth; + isMoving = true; + } + $ul.stop().animate({ + left: iSpeed + }, 300, function() { + isMoving = false; + }); + }); + $next.click(function() { + var $largeLeft = $ul.parent().width() - $ul.width() + 'px'; + + if (isMoving) { + return; + } + + if ($ul.css('left') === $largeLeft) { + $ul.css('left', $largeLeft); + } else { + iSpeed += -i * $iWidth; + isMoving = true; + } + + $ul.stop().animate({ + left: iSpeed + }, 300, function() { + isMoving = false; + }); + }); +} + +//订单分类 +$('.bag').find('ul').each(function() { + var $pre = $(this).parent().parent().find('.pre'); + var $next = $(this).parent().parent().find('.next'); + + var $iWidth = $(this).find('li').eq(0).width(); + var $length = $(this).find('li').size(); + var $ulWidth = $iWidth * $length; + + $(this).css('width', $ulWidth); + if ($length > 5) { + $pre.show(); + $next.show(); + lunBo($pre, $next, $(this), $iWidth); + } else { + $pre.hide(); + $next.hide(); + } + +}); + +}); +define("js/home/favorite", ["jquery","handlebars","source-map","dot"], function(require, exports, module){ +/** + * 我的收藏 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2016/2/23 + */ + +var $ = require("jquery"), + Handlebars = require("handlebars"); + +var phoneReg = require("js/passport/mail-phone-regx").phoneRegx['+86']; + +var clockTxt = { + on: '[ 降价通知 ]', + off: '[ 取消通知 ]' +}; + +var param = location.href.match(/type=(.*)[&]*/), + favType; + +var curSkn; + +var $curClock; + +require("dot"); + +//商品收藏 +(function() { + var $defaultSorts, + $allSorts; + + var $bodyMask, + $noticeNum, + $priceNotice, + $noticeContent, + $noticeSuccess, + $noticeErrorMsg, + $noticeSubOrCancel, + $phone; + + var reduction = {}, + noticeNum; + + // 同步订阅数量 + function syncSubscribeNum(num) { + noticeNum = num * 1; + $noticeNum.text(num); + $noticeSuccess.find('.notice-num').text(5 - num); + } + + //关闭价格订阅弹窗和蒙层 + function closeNoticeBox() { + $bodyMask.addClass('hide'); + $priceNotice.addClass('hide'); + + //重置头部文字 + $noticeSubOrCancel.text('订阅成功'); + } + + //显示价格订阅弹窗和蒙层 + function showNoticeBox() { + var top = $(document).scrollTop() + $(window).height() / 2; + + if (typeof $bodyMask === 'undefined') { + $('body').append('<div class="body-mask hide"></div>'); + $bodyMask = $('.body-mask'); + } + + $bodyMask.css({ + height: $(document).height(), + width: $(document).width() + }).removeClass('hide'); + + $priceNotice.removeClass('error'); + + if ($curClock.hasClass('noticed')) { + + //取消降价通知 + $.ajax({ + type: 'GET', + url: '/home/favorite/cancelnotice', + data: { + id: curSkn + } + }).then(function(data) { + if (data.code === 200) { + syncSubscribeNum(data.data.num); + $noticeContent.addClass('hide'); + $noticeSuccess.removeClass('hide'); + $noticeSubOrCancel.text('取消成功'); + $priceNotice.removeClass('hide').css({ + top: top + }); + + if ($curClock.closest('.reduction-products').length > 0) { + $curClock.closest('.fav-good').remove(); + } else { + $curClock.removeClass('noticed').text(clockTxt.on); + } + } else { + if (data.message) { + $noticeErrorMsg.text(data.message); + $priceNotice.removeClass('hide').addClass('error').css({ + top: top + }); + } + } + }); + } else { + if (noticeNum >= 5) { + $noticeErrorMsg.text('您的订阅数已经到达上限'); + $priceNotice.removeClass('hide').addClass('error').css({ + top: top + }); + } else { + $noticeContent.removeClass('hide'); + $noticeSuccess.addClass('hide'); + $priceNotice.removeClass('hide').css({ + top: top + }); + } + } + + } + + if ($('.fav-products').length === 0) { + return; + } + + $defaultSorts = $('.default-sorts'); + $allSorts = $('.all-sorts'); + + $noticeNum = $('.reduction-notice span'); + + $priceNotice = $('.price-notice'); + + $noticeContent = $('#price-notice .content'); + $noticeSuccess = $('#price-notice .success'); + $noticeErrorMsg = $('#price-notice .error-message'); + $noticeSubOrCancel = $noticeSuccess.find('.subscribe-or-cancel'); + $phone = $('#notice-phone-num'); + + reduction.phone = $phone.val(); + reduction.change = false; + + noticeNum = $noticeNum.text() * 1; + + //展开分类 + $('#spread-sort').click(function() { + $defaultSorts.slideUp(function() { + $allSorts.slideDown(); + }); + }); + + //收起分类 + $('#retract-sort').click(function() { + $allSorts.slideUp(function() { + $defaultSorts.slideDown(); + }); + }); + + //降价通知 + $('.price-down-clock').click(function() { + $curClock = $(this); + curSkn = $curClock.closest('.fav-good').data('id'); + showNoticeBox(); + }); + + //checkbox【手动触发checkbox点击后跳转链接的地址】 + $('.reduction-filter input[type="checkbox"]').change(function() { + location.href = $(this).parent().attr('href'); + }); + + //降价通知确定按钮 + $('#price-notice').on('click', '.close', function() { + closeNoticeBox(); + }).on('click', '.price-notice-sure', function() { + var phone, + errTxt; + + if (!$priceNotice.hasClass('error') && !$noticeContent.hasClass('hide')) { + + //订阅到手机号 + phone = $.trim($phone.val()); + + if (phone === '' || !phoneReg.test(phone)) { + errTxt = phone === '' ? '请输入手机号码' : '手机号码格式不正确'; + + $phone.addClass('error'); + $('#price-notice .err-text').removeClass('hide').find('em').html(errTxt); + return; + } else { + $phone.removeClass('error'); + $('#price-notice .err-text').addClass('hide'); + } + + if (reduction.phone !== '' && reduction.phone !== phone && !reduction.change) { + $('#price-notice .phone-diff').removeClass('hide'); + reduction.change = true; + return; + } + + $.ajax({ + type: 'GET', + url: '/home/favorite/notice', + data: { + mobile: phone, + id: curSkn + } + }).then(function(data) { + if (data.code === 200) { + syncSubscribeNum(data.data.num); + $noticeSuccess.removeClass('hide'); + $noticeContent.addClass('hide'); + + reduction.phone = phone; + reduction.change = false; + $('#price-notice .phone-diff').addClass('hide'); + + //切换商品通知文字 + $curClock.toggleClass('noticed').text(clockTxt.off); + } else { + if (data.message) { + $noticeErrorMsg.text(data.message); + $priceNotice.removeClass('hide').addClass('error'); + } + } + }); + } else { + + //关闭窗口 + closeNoticeBox(); + } + }); + + //商品可参加活动 + $('.has-activity').click(function() { + var $this = $(this), + $activites = $this.next('.activites'), + $li = $this.closest('li'); + + if ($activites.hasClass('hide')) { + + //显示 + $activites.removeClass('hide'); + $li.css('padding-bottom', $activites.outerHeight()); + } else { + + //隐藏 + $activites.addClass('hide'); + $li.css('padding-bottom', ''); + } + }); +}()); + + +//品牌收藏 +(function() { + var naTpl; + var naCache = {}; + + /** + * 翻页控制 + * @param $li 当前品牌容器 + * @param flag 翻页方向/-1-pre 1-next + */ + function pageControll($li, flag) { + var id = $li.data('id'), + $ul = $li.find('.na-goods-ul'), + theCache = naCache[id], + curPage = theCache.cur ? theCache.cur : 1, + page = Math.ceil(theCache.total / 5); + + var $pre = $li.find('.na-pre'); + var $next = $li.find('.na-next'); + + curPage += flag; + + //初始 + $pre.removeClass('hidden'); + $next.removeClass('hidden'); + + //第一页 + if (curPage === 1) { + $pre.addClass('hidden'); + } + + //最后一页 + if (curPage === page) { + $next.addClass('hidden'); + } + + $ul.animate({ + marginLeft: -(curPage - 1) * $ul.parent('.na-goods').width() + }, 200); + + theCache.cur = curPage; + } + + function setListPadding($li, $naList) { + $li.css('padding-bottom', $naList.outerHeight() + 10); + } + + if ($('.fav-brands').length === 0) { + return; + } + + naTpl = Handlebars.compile($('#na-tpl').html()); + + // 新品到着【重要信息:最多显示20个新品到着商品】 + $('.na-trigger').click(function() { + var $this = $(this), + $naList = $this.next('.na-list'), + $li = $this.closest('li'), + id; + + if (!$naList.hasClass('hide')) { + $naList.addClass('hide'); + $li.css('padding-bottom', ''); + return; + } + + id = $li.data('id'); + + if (naCache[id] && naCache[id].cache) { + $naList.removeClass('hide'); + setListPadding($li, $naList); + return; + } + + $.ajax({ + type: 'GET', + url: '/home/favorite/newproduct', + data: { + id: id + } + }).then(function(data) { + var html, + res, + tplData; + + if (data.code === 200) { + res = data.data; + tplData = res.length === 0 ? {} : { + naGoods: res + }; + html = naTpl(tplData); + + $naList.removeClass('hide').find('.na-content').html(html); + setListPadding($li, $naList); + + //初始,判断是否显示Next翻页 + if (res.length > 5) { + $li.find('.na-next').removeClass('hidden'); + } + + if (!naCache[id]) { + naCache[id] = {}; + } + + naCache[id].cache = true;//set cache + naCache[id].total = res.length; + } + }); + }); + + $('.na-content').on('click', '.na-pre, .na-next', function() { + var $this = $(this); + + var flag = $this.hasClass('na-pre') ? -1 : 1; + + pageControll($this.closest('.fav-brand'), flag); + }); +}()); + +//文章收藏 +(function() { + if ($('.fav-articles').length < 0) { + return; + } + + $('.fav-articles .desc').dotdotdot(); +}()); + +if (param && param.length) { + favType = param[1]; +} + +//全选【通用】 +$('#me-checkall').click(function() { + $('.checkbox input[type="checkbox"]').prop('checked', $(this).prop('checked')); +}); + +//删除收藏 +$('.del-favorite').click(function(e) { + var id = $(this).closest('.fav-row').data('id'), + shopid = $(this).closest('.fav-row').data('shopid'), + brandorshoptype = $(this).closest('.fav-row').data('brandorshoptype'); + + e.preventDefault(); + + $.ajax({ + type: 'GET', + url: '/home/favorite/cancel', + data: { + id: id, + shopid: shopid, + brandorshoptype: brandorshoptype, + type: favType + } + }).then(function(data) { + if (data.code === 200) { + history.go(0); + } + }); +}); + +//删除多个商品/品牌/文章【通用】 +$('#me-del-checked').click(function() { + var ids = [], + name = '商品'; + + if (favType === 'brand') { + name = '品牌'; + } else if (favType === 'article') { + name = '文章'; + } + + if (confirm('您确定要删除您收藏的' + name + '吗?')) { + $('.checkbox input[type="checkbox"]:checked').each(function() { + ids.push($(this).closest('.fav-row').data('id')); + }); + + if (ids.length === 0) { + alert('请选中您要移除的' + name); + return; + } + + $.ajax({ + type: 'GET', + url: '/home/favorite/cancel', + data: { + id: ids.join(','), + type: favType + } + }).then(function(data) { + history.go(0); + }); + } +}); + +if (location.href.match(/is_reduction=(.*)[&]*/)) { + $('.reductionChecked').attr('checked', true); +} +if (location.href.match(/is_promotion=(.*)[&]*/)) { + $('.activityChecked').attr('checked', true); +} +}); +define("js/home/currency", ["jquery"], function(require, exports, module){ +/** + * 我的YOHO币 + * @author: xuqi<qi.xu@yoho.cn> + * @date: 2016/3/22 + */ + +var $ = require("jquery"); + +$('.filter-select').change(function() { + location.href = $(this).val(); +}); +}); +define("js/home/returns", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 我的退/换货 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/2/26 + */ + +require("js/home/returns-detail"); +require("js/home/returns-apply"); +}); +define("js/home/returns-detail", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 退换货详情 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/2/26 + */ + +var $ = require("jquery"), + Handlebars = require("handlebars"), + dialog = require("js/common/dialog"); + +var $returnState = $('.visual-return-state li'), + $detail = $('.detail-container'), + $courierCode = $('.courier-code'), + $expressCompany = $('#express-company'), + $expressNumber = $('#express-number'), + $expressViewBox = $('.express-view-box > span'); + +var returnId = $('#return-id').val(), + expId = $('#express-old-id').val(), + expNumber = $expressNumber.val(), + expCompany = '', + expList = {}, + isChange = false; + +var Dialog = dialog.Dialog, + active, + cancelApplyDialog = '<p class="message-title"><i class="{{messageIcon}}"></i>{{messageTitle}}</p><p class="message-summary">{{messageSummary}}</p>';; + +function syncExpressInfo() { + expCompany = expList[expId] ? expList[expId] : ''; + $expressViewBox.html(expCompany + ' 快递单号:' + expNumber); + $expressCompany.val(expId); + $expressNumber.val(expNumber); +} + +function validateExpress() { + var send = {}; + + send.number = $expressNumber.val(); + send.id = $expressCompany.val() * 1; + + if (!send.id) { + alert('请选择快递公司'); + } else if (!send.number) { + alert('请填入快递单号'); + } else { + return send; + } + + return false; +} + +function sendExpressCode() { + var sendParm = validateExpress(); + + if (!sendParm) { + return; + } + + $.ajax({ + type: 'POST', + url: '/home/returns/setExpressNumber', + data: { + id: returnId, + isChange: isChange, + expressId: sendParm.id, + expressNumber: sendParm.number, + expressCompany: expList[sendParm.id] + } + }).then(function(jsonData) { + if (jsonData.code === 200) { + expId = sendParm.id; + expNumber = sendParm.number; + $returnState.eq(2).addClass('act'); + } else { + alert(jsonData.message); + } + syncExpressInfo(); + $courierCode.removeClass('in-edit'); + }); +} + +function cancelApply(id, url) { + var template = Handlebars.compile(cancelApplyDialog); + var html = template({messageIcon: 'icon-warn', messageTitle: '取消申请', messageSummary: '您确定要请取消申请吗?'}); + var options = { + mask: true, + btns: [ + { + id: 'cancel-sure', + name: '确定', + btnClass: ['cancel-sure'], + cb: function() { + $.ajax({ + type: 'POST', + url: url, + data: { + id: id + } + }).then(function(data) { + active.close(); + if (data.code === 200) { + location.reload(); + } else { + new dialog.Alert(data.message).show(); + } + }); + } + }, + { + id: 'cancel-no', + name: '取消', + btnClass: ['cancel-no'], + cb: function() { + active.close(); + } + } + ], + content: html, + className: 'cancel-dialog' + }; + return new Dialog(options); +} + + +if ($detail.parent().hasClass('exchange-detail')) { + isChange = true; +} + +$expressCompany.val(expId); + +$detail.find('.company-list').each(function() { + var data = $(this).data(); + + expList[data.id] = data.name; +}); + +$('#modify').click(function() { + $courierCode.addClass('in-edit'); +}); + +$('#submit-btn').click(function() { + sendExpressCode(); +}); + +$('.cancel-return').on('click', '.cancel-trigger', function() { + active = cancelApply($(this).data('id'), $(this).data('url')); + active.show(); +}) +}); +define("js/home/returns-apply", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 退换货申请 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/2/29 + */ +var $ = require("jquery"), + Addr = require("js/home/common-address"); + +var $goodsTable = $('#goods-table'), + $checkBox = $goodsTable.find('input[type="checkbox"]'), + $reasons = $goodsTable.find('.return-reason'), + $file = $goodsTable.find('input[type=file]'), + $refundType = $('input[name="refund-type"]'), + $province = $('#province'), + $city = $('#city'), + $areaCode = $('#area'); + +var $refundInfo = $('#refund-pay-info'), + $payYoho = $refundInfo.find('.type-yoho'), + $payBank = $refundInfo.find('.type-bank'), + $payAli = $refundInfo.find('.type-alipay'); + +var $exchange = $('.exchange-detail'), + $hidePhone = $exchange.find('input[name="hide-phone"]'), + $refundMode = $exchange.find('.refund-mode'); + +var $submitBox = $('.submit-box'), + $waitPoint = $submitBox.find('.wait-gif span'); + +var pageType = 0, // 0-换货 1-退货 + orderCode = $('#order-code').val(), + defaultArea = $exchange.find('input[name="hide-area"]').val(), + defaultPhone = $hidePhone.val(), + disPhone = '', + verifyTip = '', + colorSize = {}, + timer; + +require("plugin/jquery.qupload"); + +if (defaultPhone) { + $hidePhone.remove(); + disPhone = defaultPhone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2'); + $exchange.find('input[name="phone"]').val(disPhone); +} + +$goodsTable.on('mouseenter mouseleave', '.doubt', function(e) { + var $this = $(this); + var $tipwrapper = $this.parents('.special-tip'); + var $tipcontent = $tipwrapper.find('.special-content'); + var width = $tipwrapper.find('> span').width(); + if(e.type === 'mouseenter'){ + $tipcontent.css({left: width+10,zIndex:1}).show(); + }else if(e.type ==='mouseleave'){ + $tipcontent.css({zIndxex:0}).hide(); + } + +}); + +function syncRefundMode(code) { + $.ajax({ + type: 'POST', + url: '/home/returns/getDelivery', + data: { + areaCode: code + } + }).then(function(jsonData) { + var _html = ''; + + if (jsonData.code === 200) { + $.each(jsonData.data, function(k, v) { + var checked = ''; + + if (v.is_default === 'Y') { + checked = 'checked="checked"'; + } + _html += '<input type="radio" name="delivery-tpye" value="' + + v.id + '" ' + checked + '"">' + v.name; + }); + $refundMode.html(_html); + } + }); +} + +function setBackInput(type) { + $payYoho.hide(); + if (type === 2) { + $payBank.show(); + $payAli.hide(); + $payYoho.hide(); + } else if (type === 3) { + $payAli.show(); + $payBank.hide(); + $payYoho.hide(); + } else if (type === 4) { + $payYoho.show(); + $payBank.hide(); + $payAli.hide(); + } +} + +if ($refundInfo.length) { + pageType = 1; + + $refundType.each(function() { + if ($(this).prop('checked')) { + setBackInput($(this).val() * 1); + } + }); +} else if (defaultArea) { + syncRefundMode(defaultArea); +} + +defaultArea = defaultArea ? defaultArea : ''; +Addr.loadAllData(defaultArea, { + areaDomId: 'area' +}); + +// 页面获取size列表数据 +$goodsTable.find('.sizeinfo').each(function() { + var sizes = []; + + $(this).children().each(function() { + sizes.push($(this).data()); + }); + colorSize[$(this).data().id] = sizes; +}); + +$reasons.change(function() { + var $par = $(this).parent().parent(), + type = $(this).val() * 1; + + if (type === 4 || type === 6 || type === 8) { + $par.next().show(); + } else { + $par.next().hide(); + } +}); + +$checkBox.change(function() { + var $par = $(this).parent().parent(); + + if ($(this).prop('checked')) { + $par.find('select').prop('disabled', false); + } else { + $par.find('select').val(0).prop('disabled', true); + $par.next().hide(); + } +}); + +$goodsTable.on('change', '.exchange-color', function() { + var $warp = $(this).closest('.exchange-choose-wrap'), + _html = '<option value="0">请选择尺码</option>', + id = $(this).val(); + + if (colorSize[id]) { + $.each(colorSize[id], function(k, v) { + _html += '<option value="' + v.id + '">' + v.name + '</option>'; + }); + } + $warp.find('.exchange-size').html(_html).val(0); +}); + +$goodsTable.on('click', '.btn-del', function() { + $(this).parent().empty(); +}); + +$file.each(function(e) { + var $this = $('#upload-img-' + e), + $par = $this.closest('.problem-description'); + + $this.qupload({ + button_image_url: '', + upload_url: '//www.yohobuy.com/home/returns/imgUpload', + file_post_name: 'fileData', + button_text: '<span class="btn_upload_text">上传图片</span>', + button_text_style: '.btn_upload_text{color: #ffffff;}', + button_width: 116, + button_height: 33, + button_text_left_padding: 32, + button_text_top_padding: 8, + button_action: window.SWFUpload.BUTTON_ACTION.SELECT_FILE, + file_size_limit: '10240', + file_types: '*.jpg;*.jpeg;*.png;*.bmp', + uploadSuccessed: function(data) { + var $imgList = $par.find('li'), + isShow = false, + img, _html; + + img = JSON.parse(data).imgList[0]; + _html = '<span class="btn-del" title="删除"></span>' + + '<img src="' + img[0] + '" width="126" height="126">' + + '<input type="hidden" name="imgs" value="' + img.imgRelUrl + '">'; + $imgList.each(function() { + if (!isShow && !$(this).find('img').length) { + isShow = true; + $(this).html(_html); + } + }); + } + }); +}); + +$exchange.on('change', '#area', function() { + var code = $(this).val() * 1; + + if (code) { + syncRefundMode(code); + } +}); + +$refundType.change(function() { + var type = $(this).val() * 1; + + setBackInput(type); +}); + +// 打包退换货商品信息 +function packGoogsList() { + var goods = [], + type = '换货'; + + if (pageType) { + type = '退货'; + } + if (!$checkBox.length) { + verifyTip = '没有可以' + type + '的商品'; + } + + $checkBox.each(function() { + var $par = $(this).parent().parent(), + $next = $par.next(), + goodsInfo; + + if (verifyTip.length) { + return; + } + + if ($(this).prop('checked')) { + goodsInfo = { + product_skn: $par.find('input[name="skn"]').val(), + product_skc: $par.find('input[name="skc"]').val(), + product_sku: $par.find('input[name="sku"]').val(), + goods_type: $par.find('input[name="typeid"]').val(), + last_price: $par.find('input[name="price"]').val(), + reason: $par.find('.return-reason').val() * 1 + }; + + if (pageType) { + goodsInfo.returned_reason = goodsInfo.reason; + } else { + goodsInfo.exchange_reason = goodsInfo.reason; + goodsInfo.new_goods_id = $par.find('.exchange-color').val() * 1; + goodsInfo.new_product_sku = $par.find('.exchange-size').val() * 1; + + if (!verifyTip && !goodsInfo.new_goods_id) { + verifyTip = '请选择要换的颜色'; + } + + if (!verifyTip && !goodsInfo.new_product_sku) { + verifyTip = '请选择要换的尺码'; + } + } + if (!verifyTip && !goodsInfo.reason) { + verifyTip = '请选择' + type + '原因'; + } + + if (goodsInfo.reason === 4 || + goodsInfo.reason === 6 || + goodsInfo.reason === 8) { + goodsInfo.remark = $.trim($next.find('textarea').val()); + goodsInfo.evidence_images = []; + $next.find('input[name="imgs"]').each(function() { + goodsInfo.evidence_images.push($(this).val()); + }); + + if (!verifyTip && !goodsInfo.remark) { + verifyTip = '请填写' + type + '描述'; + } + + if (!verifyTip && !goodsInfo.evidence_images.length) { + verifyTip = '请上传图片'; + } + } + delete goodsInfo.reason; + + goods.push(goodsInfo); + } + }); + + if (!verifyTip && !goods.length) { + verifyTip = '请选择要' + type + '的商品'; + } + + return goods; +} + +// 打包退货信息 +function packRefundInfo() { + var res = {}; + + res.goods = packGoogsList(); + res.payment = {}; + + $refundType.each(function() { + if ($(this).prop('checked')) { + res.payment.return_amount_mode = $(this).val() * 1; + } + }); + + if (!verifyTip && !res.payment.return_amount_mode) { + verifyTip = '请选择退款方式'; + } + + if (res.payment.return_amount_mode === 2) { + res.payment.province = $province.val(); + res.payment.city = $city.val(); + res.payment.area_code = $areaCode.val(); + if (!verifyTip && !res.payment.area_code * 1) { + verifyTip = '请选择银行所在地'; + } + + res.payment.bank_name = $.trim($refundInfo.find('input[name="bank-name"]').val()); + if (!verifyTip && !res.payment.bank_name) { + verifyTip = '请填写银行名称'; + } + + res.payment.payee_name = $.trim($refundInfo.find('input[name="payee-name"]').val()); + if (!verifyTip && !res.payment.payee_name) { + verifyTip = '请填写收款人姓名'; + } + + res.payment.bank_card = $.trim($refundInfo.find('input[name="bank-card"]').val()); + if (!verifyTip && !res.payment.bank_card) { + verifyTip = '请填写收款账户'; + } + + } else if (res.payment.return_amount_mode === 3) { + res.payment.alipay_name = $.trim($refundInfo.find('input[name="alipay-name"]').val()); + if (!verifyTip && !res.payment.alipay_name) { + verifyTip = '请填写收款人姓名'; + } + + res.payment.alipay_account = $.trim($refundInfo.find('input[name="alipay-account"]').val()); + if (!verifyTip && !res.payment.alipay_account) { + verifyTip = '请填写收款账户'; + } + + } + return res; +} + +// 打包换货信息 +function packExchangeInfo() { + var res = {}; + + res.goods = packGoogsList(); + + res.consigneeName = $.trim($exchange.find('input[name="name"]').val()); + if (!verifyTip && !res.consigneeName) { + verifyTip = '请填写收货人姓名'; + } + + res.areaCode = $areaCode.val(); + if (!verifyTip && !res.areaCode * 1) { + verifyTip = '请选择地区'; + } + + res.address = $.trim($exchange.find('input[name="address"]').val()); + if (!verifyTip && !res.address) { + verifyTip = '请填写详细地址'; + } + + res.mobile = $.trim($exchange.find('input[name="phone"]').val()); + if (res.mobile === disPhone) { + res.mobile = defaultPhone; + } else { + if (!verifyTip && !res.mobile) { + verifyTip = '请填写手机号'; + } + } + + res.zipCode = $.trim($exchange.find('input[name="postcode"]').val()); + res.deliveryType = $exchange.find('input[name="delivery-tpye"]:checked').val(); + if (!verifyTip && !res.deliveryType) { + verifyTip = '请选择商品返回方式'; + } + + return res; +} + +function loadWaiting(status) { + var text = '○'; + + if (status) { + $submitBox.addClass('applying'); + timer = setInterval(function() { + $waitPoint.text(text); + if (text.length > 3) { + text = ''; + } + text += '○'; + }, 600); + } else { + $submitBox.removeClass('applying'); + clearInterval(timer); + } +} + +// 提交申请 +$('.save-btn').click(function() { + var url, data; + + verifyTip = ''; // 初始化提示语 + if (pageType) { + url = '/home/returns/saveRefund'; + data = packRefundInfo(); + } else { + url = '/home/returns/saveExchange'; + data = packExchangeInfo(); + } + data.orderCode = orderCode; + + if (verifyTip) { + alert(verifyTip); + return; + } + + loadWaiting(true); + $.ajax({ + type: 'POST', + url: url, + data: data + }).then(function(jsonData) { + if (jsonData.code === 200) { + if (jsonData.data && jsonData.data.refer) { + window.location.href = jsonData.data.refer; + } + } else { + alert(jsonData.message); + loadWaiting(false); + } + }); +}); +}); +define("js/home/common-address", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 个人中心页-地址管理 + * @author: wsl<shuiling.wang@yoho.cn> + * @date: 2016/02/24 + */ + +var $ = require("jquery"), + dialog = require("js/common/dialog"), + Alert = dialog.Alert; + +var address = { + + // 省的控件ID + provinceDomId: 'province', + + // 城市的控件ID + cityDomId: 'city', + + // 地区的控件ID + areaDomId: 'areaCode', + + initDomIds: function(domOptions) { + var the = this; + + if (domOptions.provinceDomId !== undefined) { + the.provinceDomId = domOptions.provinceDomId; + } + if (domOptions.cityDomId !== undefined) { + the.cityDomId = domOptions.cityDomId; + } + if (domOptions.areaDomId !== undefined) { + the.areaDomId = domOptions.areaDomId; + } + }, + + // 初始化地址数据 + loadAreaData: function(pCode, toDomId, defaultValue, allCode) { + var the = this, + $toDom = $('#' + toDomId), + i = 0, + point = ''; + + var active, + val, + nId, + selecter; + + $toDom.empty(); + + if (pCode < 91) { + $('#' + the.areaDomId).empty(); + $('#county').attr('disabled', 'disabled'); + } + + $.ajax({ + type: 'GET', + url: '/home/address/area', + data: 'id=' + pCode, + + success: function(jsonData) { + jsonData.code = 200; + + if (jsonData.code !== 200) { + active = new Alert('暂无数据'); + active.show(); + return false; + } + + $toDom.append('<option value="0">' + defaultValue + '</option>'); + for (i in jsonData.options) { + if (jsonData.options[i]) { + val = jsonData.options[i]; + point = (toDomId === the.areaDomId && val.is_support === 'Y') ? '*' : ''; + nId = val.value; + selecter = ''; + + if (typeof (allCode) !== 'undefined' && allCode !== 0 && + nId === allCode.substr(0, nId.length)) { + selecter = 'selected'; + } + $toDom.append('<option value="' + nId + '" ' + selecter + '>' + point + val.text + '</option>'); + } + } + } + }); + }, + bindAreaChange: function(domOptions) { + var the = this; + + if ($('#' + the.provinceDomId).data('events') !== undefined) { + return; + } + + // 初始化 + $('#' + the.provinceDomId).change(function() { + var pCode = $('#' + the.provinceDomId).val(); + + if (pCode === '0') { + return; + } + + the.loadAreaData(pCode, the.cityDomId, '请选择城市', pCode); + $('#' + the.areaDomId).hide(); + the.showAreaSel(domOptions.dispDomId); + }); + + $('#' + this.cityDomId).change(function() { + var pCode = $('#' + the.cityDomId).val(); + + if (pCode === '0') { + return; + } + + the.loadAreaData(pCode, the.areaDomId, '请选择区县', pCode); + $('#' + the.areaDomId).show(); + the.showAreaSel(domOptions.dispDomId); + }); + + $('#' + the.areaDomId).change(function() { + the.showAreaSel(domOptions.dispDomId); + }); + + the.showAreaSel(domOptions.dispDomId); + }, + + /** + * 显示地区选择 + */ + showAreaSel: function(dispDomId) { + var the = this, + strAddr = '', + strProvince = $('#' + the.provinceDomId).find('option:selected').text(), + strCity = $('#' + the.cityDomId).find('option:selected').text(), + strArea = $('#' + the.areaDomId).find('option:selected').text(); + + if (dispDomId !== undefined && dispDomId !== '') { + if (strProvince.indexOf('选择') < 0) { + strAddr = strProvince; + } + + if (strCity !== '' && strCity.indexOf('选择') < 0) { + strAddr += ',' + strCity; + } + + if (strArea !== '' && strArea.indexOf('选择') < 0) { + strAddr += ',' + strArea; + } + $('#' + dispDomId).html(strAddr); + } + }, + + loadAllData: function(areaCode, domOptions) { + var the = this; + + the.initDomIds(domOptions); + areaCode += ''; + + if (areaCode < 91) { + the.loadAreaData(0, the.provinceDomId, '请选择省份', ''); + $('#' + the.areaDomId).hide(); + $('#' + the.cityDomId).html('<option value="0">请选择市</option>'); + } else if (areaCode.length === 4) { + the.loadAreaData(0, the.provinceDomId, '请选择省份', areaCode); + the.loadAreaData(areaCode.substr(0, 2), the.cityDomId, '请选择城市', areaCode); + the.loadAreaData(areaCode, the.areaDomId, '请选择区县', areaCode); + $('#' + the.areaDomId).show(); + } else if (areaCode.length === 6) { + the.loadAreaData(0, the.provinceDomId, '请选择省份', areaCode); + the.loadAreaData(areaCode.substr(0, 2), the.cityDomId, '请选择城市', areaCode); + the.loadAreaData(areaCode.substr(0, 4), the.areaDomId, '请选择区县', areaCode); + $('#' + this.areaDomId).show(); + } + the.bindAreaChange(domOptions); + } +}; + +module.exports = address; + +}); +define("plugin/jquery.qupload", ["jquery"], function(require, exports, module){ +/** + * upload plugin + * + */ +var $ = require("jquery"); +var SWFUpload = require("plugin/swfupload.queue").SWFUpload; + +var file_upload_limit = 6; +$.fn.extend({ + qupload : function(options) { + writeProgressHtml(); + initSwfUpload($(this).attr('id'), options); + } +}); + +var hasProgreeHtml = 0; + +// 创建进度条的html +function writeProgressHtml() { + if (hasProgreeHtml == 0) // 一个页面只创建一次 + { + $('body') + .append( + '<div id="progressDialog" style="display: none;width:370px;height:80px !important;"><div style="padding:10px 20px;"><span id="curUploadStatus">图片上传中……请稍等</span><div id="progress"></div></div></div>'); + hasProgreeHtml = 1; + } +} + +function setUploadStatus(uploadNum, totalUploadNum) { + $('#uploadNum').html(uploadNum); + $('#totalUploadNum').html(totalUploadNum); +} + +// 初始化swf +function initSwfUpload(btnId, options) { + // 上传成功的回调函数 + var uploadSuccessCallBack = null; + if (options.uploadSuccessed != undefined) { + uploadSuccessCallBack = options.uploadSuccessed; + } + // 上传的key + var uploadKeyValue = ''; + if (options.uploadKey != undefined) { + uploadKeyValue = options.uploadKey; + } + + // 上传之前可以做的操作参数 + var preUploadCallBack = null; + if (options.preupload != undefined) { + preUploadCallBack = options.preupload; + } + + // 弹出层ID + var progressDivId = 'progressDialog'; + // 进度条ID + var progressTargetId = 'progress'; + + // 共有多少张需要上传 + var totalUploadNum = 0; + + // 当前已经上传的张数 + var curUploadedNum = 0; + + this.options = options; + + var numTest = 0; + + var errmsg_box = this.options.errmsg_box; + + // 设置默认值函数 + function setDefaultValue(optionName, optionValue) { + this.options[optionName] = options[optionName] == undefined ? optionValue + : options[optionName]; + } + + setDefaultValue('flash_url', + "http://static.yohobuy.com/admin/js/swfupload/swfupload.swf"); + setDefaultValue('upload_url', "http://upload.yohobuy.com"); + setDefaultValue('file_post_name', "Filedata"); + setDefaultValue('file_size_limit', "2 MB"); + setDefaultValue('file_types', "*.*"); + setDefaultValue('file_types_description', "All Files"); + setDefaultValue('file_upload_limit', file_upload_limit); + setDefaultValue('file_queue_limit', 0); + setDefaultValue('button_image_url', + "http://static.yohobuy.com/admin/images/btn_swfupload.png"); + setDefaultValue('button_width', "104"); + setDefaultValue('button_height', "20"); + setDefaultValue('button_text', '<span class="btn_upload_xzzp">选择本地照片</span>'); + setDefaultValue('button_text_style', '.btn_upload_xzzp{color:#ffffff}'); + setDefaultValue('button_text_left_padding', 24); + setDefaultValue('button_text_top_padding', 0); + setDefaultValue('button_window_mode', 'TRANSPARENT'); + setDefaultValue('button_cursor', '-2'); + + var settings = { + flash_url : this.options.flash_url, + upload_url : this.options.upload_url, + file_post_name : this.options.file_post_name, + // post_params: {"PHPSESSID" : "<?php echo session_id(); ?>"}, + file_size_limit : this.options.file_size_limit, + file_types : this.options.file_types, + file_types_description : this.options.file_types_description, + file_upload_limit : this.options.file_upload_limit, + file_queue_limit : this.options.file_queue_limit, + prevent_swf_caching : false, + preserve_relative_urls : false, + custom_settings : { + + }, + debug : false, + + // Button settings + button_image_url : this.options.button_image_url, + button_width : this.options.button_width, + button_height : this.options.button_height, + button_placeholder_id : btnId, + button_text : this.options.button_text, + button_text_style : this.options.button_text_style, + button_text_left_padding : this.options.button_text_left_padding, + button_text_top_padding : this.options.button_text_top_padding, + button_window_mode : this.options.button_window_mode, + button_cursor : this.options.button_cursor, + + // The event handler functions are defined in handlers.js + file_dialog_start_handler : fileDialogStart, + file_queued_handler : fileQueued, + file_queue_error_handler : fileQueueError, + file_dialog_complete_handler : fileDialogComplete, + upload_start_handler : uploadStart, + upload_progress_handler : uploadProgress, + upload_error_handler : uploadError, + upload_success_handler : uploadSuccess, + upload_complete_handler : uploadComplete, + queue_complete_handler : queueComplete, + button_action: this.options.button_action + }; + + var swfu = new SWFUpload(settings); + + function fileQueued(file) { + try { + + } catch (ex) { + this.debug(ex); + } + + } + + function fileQueueError(file, errorCode, message) { + var errmsg; + try { + if (errorCode === SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED) { + alert("您尝试上传太多文件.\n" + + (message === 0 ? "您已达到上传限制." : "您最多还可以 " + + (message > 1 ? "上传 " + message + "文件." + : "一个文件."))); + return; + } + + // var progress = new FileProgress(file, + // this.customSettings.progressTarget); + // progress.setError(); + // progress.toggleCancel(false); + switch (errorCode) { + + case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT: + // progress.setStatus("File is too big."); + + errmsg = '文件超过'+settings.file_size_limit/1024+'M'; + alert(errmsg); + this.debug("Error Code: File too big, File name: " + + file.name + ", File size: " + file.size + + ", Message: " + message); + break; + case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE: + // progress.setStatus("Cannot upload Zero Byte files."); + alert('请上传有内容的文件!'); + this.debug("Error Code: Zero byte file, File name: " + + file.name + ", File size: " + file.size + + ", Message: " + message); + break; + case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE: + alert('请上传指定类型的文件!'); + this.debug("Error Code: Invalid File Type, File name: " + + file.name + ", File size: " + file.size + + ", Message: " + message); + break; + default: + if (file !== null) { + // progress.setStatus("Unhandled Error"); + } + alert('上传文件失败,请稍后在试!'); + this.debug("Error Code: " + errorCode + ", File name: " + + file.name + ", File size: " + file.size + + ", Message: " + message); + break; + } + } catch (ex) { + this.debug(ex); + } + } + + function fileDialogStart() { + if (preUploadCallBack != null) { + preUploadCallBack(); + } + } + + // 选择文件完成 + function fileDialogComplete(numFilesSelected, numFilesQueued) { + try { + + if (numFilesSelected > 0) { + // document.getElementById(this.customSettings.cancelButtonId).disabled + // = false; + totalUploadNum = numFilesSelected; + curUploadedNum = 1; + setUploadStatus(curUploadedNum, totalUploadNum); + this.startUpload(); + } + + } catch (ex) { + this.debug(ex); + } + } + + // 开始上传 + function uploadStart(file) { + this.addPostParam('_key', uploadKeyValue); + //$('#' + progressDivId).dialog(); + } + + // 上传进度 + function uploadProgress(file, bytesLoaded, bytesTotal) { + // $('#uploadData').html(bytesLoaded + "/" + bytesTotal); + // $('#uploadData').html( $('#uploadData').html() + ' - ' + bytesLoaded + // + '+' + ',' + bytesTotal ); + var percent = Math.ceil((bytesLoaded / bytesTotal) * 100); + //$("#progress").progressbar({ + // value : percent + //}); + } + + // 上传成功 + function uploadSuccess(file, serverData) { + curUploadedNum++; + setUploadStatus(curUploadedNum, totalUploadNum); + if (uploadSuccessCallBack != null) { + uploadSuccessCallBack(serverData); + } + } + + // 上传出错 + function uploadError(file, errorCode, message) { + + try { + if (errorCode === SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED) { + alert("您尝试上传太多文件.\n" + + (message === 0 ? "您已达到上传限制." : "您最多还可以 " + + (message > 1 ? "上传 " + message + "文件." + : "一个文件."))); + return; + } + switch (errorCode) { + + case SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT: + alert("Error Code: 文件太大。 文件名为: " + file.name + ", 大小为: " + + file.size + ", Message: " + message); + break; + case SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE: + + alert("Error Code: 文件为0, 文件名为: " + file.name + ", 大小为: " + + file.size + ", Message: " + message); + break; + case SWFUpload.QUEUE_ERROR.INVALID_FILETYPE: + alert("Error Code: 文件类型不合要求, 文件名为: " + file.name + ", 大小为: " + + file.size + ", Message: " + message); + break; + default: + if (file !== null) { + + } + alert("上传出错" + "Error Code: " + errorCode + ", File name: " + + file.name + ", File size: " + file.size + + ", Message: " + message); + break; + } + } catch (ex) { + this.debug(ex); + } + } + + // 上传完成 + function uploadComplete(file) { + //$('#' + progressDivId).dialog('close'); + } + + // This event comes from the Queue Plugin + function queueComplete(numFilesUploaded) { + + } +} + +window.SWFUpload = SWFUpload; +}); +define("plugin/swfupload.queue", [], function(require, exports, module){ +/* + Queue Plug-in + + Features: + *Adds a cancelQueue() method for cancelling the entire queue. + *All queued files are uploaded when startUpload() is called. + *If false is returned from uploadComplete then the queue upload is stopped. + If false is not returned (strict comparison) then the queue upload is continued. + *Adds a QueueComplete event that is fired when all the queued files have finished uploading. + Set the event handler with the queue_complete_handler setting. + + */ +var SWFUpload = require("plugin/swfupload").SWFUpload; + +if (typeof(SWFUpload) === "function") { + SWFUpload.queue = {}; + + SWFUpload.prototype.initSettings = (function (oldInitSettings) { + return function () { + if (typeof(oldInitSettings) === "function") { + oldInitSettings.call(this); + } + + this.queueSettings = {}; + + this.queueSettings.queue_cancelled_flag = false; + this.queueSettings.queue_upload_count = 0; + + this.queueSettings.user_upload_complete_handler = this.settings.upload_complete_handler; + this.queueSettings.user_upload_start_handler = this.settings.upload_start_handler; + this.settings.upload_complete_handler = SWFUpload.queue.uploadCompleteHandler; + this.settings.upload_start_handler = SWFUpload.queue.uploadStartHandler; + + this.settings.queue_complete_handler = this.settings.queue_complete_handler || null; + }; + })(SWFUpload.prototype.initSettings); + + SWFUpload.prototype.startUpload = function (fileID) { + this.queueSettings.queue_cancelled_flag = false; + this.callFlash("StartUpload", [fileID]); + }; + + SWFUpload.prototype.cancelQueue = function () { + this.queueSettings.queue_cancelled_flag = true; + this.stopUpload(); + + var stats = this.getStats(); + while (stats.files_queued > 0) { + this.cancelUpload(); + stats = this.getStats(); + } + }; + + SWFUpload.queue.uploadStartHandler = function (file) { + var returnValue; + if (typeof(this.queueSettings.user_upload_start_handler) === "function") { + returnValue = this.queueSettings.user_upload_start_handler.call(this, file); + } + + // To prevent upload a real "FALSE" value must be returned, otherwise default to a real "TRUE" value. + returnValue = (returnValue === false) ? false : true; + + this.queueSettings.queue_cancelled_flag = !returnValue; + + return returnValue; + }; + + SWFUpload.queue.uploadCompleteHandler = function (file) { + var user_upload_complete_handler = this.queueSettings.user_upload_complete_handler; + var continueUpload; + + if (file.filestatus === SWFUpload.FILE_STATUS.COMPLETE) { + this.queueSettings.queue_upload_count++; + } + + if (typeof(user_upload_complete_handler) === "function") { + continueUpload = (user_upload_complete_handler.call(this, file) === false) ? false : true; + } else if (file.filestatus === SWFUpload.FILE_STATUS.QUEUED) { + // If the file was stopped and re-queued don't restart the upload + continueUpload = false; + } else { + continueUpload = true; + } + + if (continueUpload) { + var stats = this.getStats(); + if (stats.files_queued > 0 && this.queueSettings.queue_cancelled_flag === false) { + this.startUpload(); + } else if (this.queueSettings.queue_cancelled_flag === false) { + this.queueEvent("queue_complete_handler", [this.queueSettings.queue_upload_count]); + this.queueSettings.queue_upload_count = 0; + } else { + this.queueSettings.queue_cancelled_flag = false; + this.queueSettings.queue_upload_count = 0; + } + } + }; +} + +exports.SWFUpload = SWFUpload; +}); +define("plugin/swfupload", [], function(require, exports, module){ +/** + * SWFUpload: http://www.swfupload.org, http://swfupload.googlecode.com + * + * mmSWFUpload 1.0: Flash upload dialog - http://profandesign.se/swfupload/, http://www.vinterwebb.se/ + * + * SWFUpload is (c) 2006-2007 Lars Huring, Olov Nilz锟絥 and Mammon Media and is released under the MIT License: + * http://www.opensource.org/licenses/mit-license.php + * + * SWFUpload 2 is (c) 2007-2008 Jake Roberts and is released under the MIT License: + * http://www.opensource.org/licenses/mit-license.php + * + */ + + +/* ******************* */ +/* Constructor & Init */ +/* ******************* */ +var SWFUpload; + +if (SWFUpload == undefined) { + SWFUpload = function (settings) { + this.initSWFUpload(settings); + }; +} + +SWFUpload.prototype.initSWFUpload = function (settings) { + try { + this.customSettings = {}; // A container where developers can place their own settings associated with this instance. + this.settings = settings; + this.eventQueue = []; + this.movieName = "SWFUpload_" + SWFUpload.movieCount++; + this.movieElement = null; + + + // Setup global control tracking + SWFUpload.instances[this.movieName] = this; + + // Load the settings. Load the Flash movie. + this.initSettings(); + this.loadFlash(); + this.displayDebugInfo(); + } catch (ex) { + delete SWFUpload.instances[this.movieName]; + throw ex; + } +}; + +/* *************** */ +/* Static Members */ +/* *************** */ +SWFUpload.instances = {}; +SWFUpload.movieCount = 0; +SWFUpload.version = "2.2.0 2009-03-25"; +SWFUpload.QUEUE_ERROR = { + QUEUE_LIMIT_EXCEEDED : -100, + FILE_EXCEEDS_SIZE_LIMIT : -110, + ZERO_BYTE_FILE : -120, + INVALID_FILETYPE : -130 +}; +SWFUpload.UPLOAD_ERROR = { + HTTP_ERROR : -200, + MISSING_UPLOAD_URL : -210, + IO_ERROR : -220, + SECURITY_ERROR : -230, + UPLOAD_LIMIT_EXCEEDED : -240, + UPLOAD_FAILED : -250, + SPECIFIED_FILE_ID_NOT_FOUND : -260, + FILE_VALIDATION_FAILED : -270, + FILE_CANCELLED : -280, + UPLOAD_STOPPED : -290 +}; +SWFUpload.FILE_STATUS = { + QUEUED : -1, + IN_PROGRESS : -2, + ERROR : -3, + COMPLETE : -4, + CANCELLED : -5 +}; +SWFUpload.BUTTON_ACTION = { + SELECT_FILE : -100, + SELECT_FILES : -110, + START_UPLOAD : -120 +}; +SWFUpload.CURSOR = { + ARROW : -1, + HAND : -2 +}; +SWFUpload.WINDOW_MODE = { + WINDOW : "window", + TRANSPARENT : "transparent", + OPAQUE : "opaque" +}; + +// Private: takes a URL, determines if it is relative and converts to an absolute URL +// using the current site. Only processes the URL if it can, otherwise returns the URL untouched +SWFUpload.completeURL = function(url) { + if (typeof(url) !== "string" || url.match(/^https?:\/\//i) || url.match(/^\//)) { + return url; + } + + var currentURL = window.location.protocol + "//" + window.location.hostname + (window.location.port ? ":" + window.location.port : ""); + + var indexSlash = window.location.pathname.lastIndexOf("/"); + if (indexSlash <= 0) { + path = "/"; + } else { + path = window.location.pathname.substr(0, indexSlash) + "/"; + } + + return /*currentURL +*/ path + url; + +}; + + +/* ******************** */ +/* Instance Members */ +/* ******************** */ + +// Private: initSettings ensures that all the +// settings are set, getting a default value if one was not assigned. +SWFUpload.prototype.initSettings = function () { + this.ensureDefault = function (settingName, defaultValue) { + this.settings[settingName] = (this.settings[settingName] == undefined) ? defaultValue : this.settings[settingName]; + }; + + // Upload backend settings + this.ensureDefault("upload_url", ""); + this.ensureDefault("preserve_relative_urls", false); + this.ensureDefault("file_post_name", "Filedata"); + this.ensureDefault("post_params", {}); + this.ensureDefault("use_query_string", false); + this.ensureDefault("requeue_on_error", false); + this.ensureDefault("http_success", []); + this.ensureDefault("assume_success_timeout", 0); + + // File Settings + this.ensureDefault("file_types", "*.*"); + this.ensureDefault("file_types_description", "All Files"); + this.ensureDefault("file_size_limit", 0); // Default zero means "unlimited" + this.ensureDefault("file_upload_limit", 0); + this.ensureDefault("file_queue_limit", 0); + + // Flash Settings + this.ensureDefault("flash_url", "swfupload.swf"); + this.ensureDefault("prevent_swf_caching", true); + + // Button Settings + this.ensureDefault("button_image_url", ""); + this.ensureDefault("button_width", 1); + this.ensureDefault("button_height", 1); + this.ensureDefault("button_text", ""); + this.ensureDefault("button_text_style", "color: #000000; font-size: 16pt;"); + this.ensureDefault("button_text_top_padding", 0); + this.ensureDefault("button_text_left_padding", 0); + this.ensureDefault("button_action", SWFUpload.BUTTON_ACTION.SELECT_FILES); + this.ensureDefault("button_disabled", false); + this.ensureDefault("button_placeholder_id", ""); + this.ensureDefault("button_placeholder", null); + this.ensureDefault("button_cursor", SWFUpload.CURSOR.ARROW); + this.ensureDefault("button_window_mode", SWFUpload.WINDOW_MODE.WINDOW); + + // Debug Settings + this.ensureDefault("debug", false); + this.settings.debug_enabled = this.settings.debug; // Here to maintain v2 API + + // Event Handlers + this.settings.return_upload_start_handler = this.returnUploadStart; + this.ensureDefault("swfupload_loaded_handler", null); + this.ensureDefault("file_dialog_start_handler", null); + this.ensureDefault("file_queued_handler", null); + this.ensureDefault("file_queue_error_handler", null); + this.ensureDefault("file_dialog_complete_handler", null); + + this.ensureDefault("upload_start_handler", null); + this.ensureDefault("upload_progress_handler", null); + this.ensureDefault("upload_error_handler", null); + this.ensureDefault("upload_success_handler", null); + this.ensureDefault("upload_complete_handler", null); + + this.ensureDefault("debug_handler", this.debugMessage); + + this.ensureDefault("custom_settings", {}); + + // Other settings + this.customSettings = this.settings.custom_settings; + + // Update the flash url if needed + if (!!this.settings.prevent_swf_caching) { + this.settings.flash_url = this.settings.flash_url + (this.settings.flash_url.indexOf("?") < 0 ? "?" : "&") + "preventswfcaching=" + new Date().getTime(); + } + + if (!this.settings.preserve_relative_urls) { + //this.settings.flash_url = SWFUpload.completeURL(this.settings.flash_url); // Don't need to do this one since flash doesn't look at it + this.settings.upload_url = SWFUpload.completeURL(this.settings.upload_url); + if (this.settings.button_image_url) { + this.settings.button_image_url = SWFUpload.completeURL(this.settings.button_image_url); + } + } + + delete this.ensureDefault; +}; + +// Private: loadFlash replaces the button_placeholder element with the flash movie. +SWFUpload.prototype.loadFlash = function () { + var targetElement, tempParent; + + // Make sure an element with the ID we are going to use doesn't already exist + if (document.getElementById(this.movieName) !== null) { + throw "ID " + this.movieName + " is already in use. The Flash Object could not be added"; + } + + // Get the element where we will be placing the flash movie + targetElement = document.getElementById(this.settings.button_placeholder_id) || this.settings.button_placeholder; + + if (targetElement == undefined) { + throw "Could not find the placeholder element: " + this.settings.button_placeholder_id; + } + + // Append the container and load the flash + tempParent = document.createElement("div"); + tempParent.innerHTML = this.getFlashHTML(); // Using innerHTML is non-standard but the only sensible way to dynamically add Flash in IE (and maybe other browsers) + targetElement.parentNode.replaceChild(tempParent.firstChild, targetElement); + + // Fix IE Flash/Form bug + if (window[this.movieName] == undefined) { + window[this.movieName] = this.getMovieElement(); + } + +}; + +// Private: getFlashHTML generates the object tag needed to embed the flash in to the document +SWFUpload.prototype.getFlashHTML = function () { + // Flash Satay object syntax: http://www.alistapart.com/articles/flashsatay + return ['<object id="', this.movieName, '" type="application/x-shockwave-flash" data="', this.settings.flash_url, '" width="', this.settings.button_width, '" height="', this.settings.button_height, '" class="swfupload">', + '<param name="wmode" value="', this.settings.button_window_mode, '" />', + '<param name="movie" value="', this.settings.flash_url, '" />', + '<param name="quality" value="high" />', + '<param name="menu" value="false" />', + '<param name="allowScriptAccess" value="always" />', + '<param name="flashvars" value="' + this.getFlashVars() + '" />', + '</object>'].join(""); +}; + +// Private: getFlashVars builds the parameter string that will be passed +// to flash in the flashvars param. +SWFUpload.prototype.getFlashVars = function () { + // Build a string from the post param object + var paramString = this.buildParamString(); + var httpSuccessString = this.settings.http_success.join(","); + + // Build the parameter string + return ["movieName=", encodeURIComponent(this.movieName), + "&uploadURL=", encodeURIComponent(this.settings.upload_url), + "&useQueryString=", encodeURIComponent(this.settings.use_query_string), + "&requeueOnError=", encodeURIComponent(this.settings.requeue_on_error), + "&httpSuccess=", encodeURIComponent(httpSuccessString), + "&assumeSuccessTimeout=", encodeURIComponent(this.settings.assume_success_timeout), + "&params=", encodeURIComponent(paramString), + "&filePostName=", encodeURIComponent(this.settings.file_post_name), + "&fileTypes=", encodeURIComponent(this.settings.file_types), + "&fileTypesDescription=", encodeURIComponent(this.settings.file_types_description), + "&fileSizeLimit=", encodeURIComponent(this.settings.file_size_limit), + "&fileUploadLimit=", encodeURIComponent(this.settings.file_upload_limit), + "&fileQueueLimit=", encodeURIComponent(this.settings.file_queue_limit), + "&debugEnabled=", encodeURIComponent(this.settings.debug_enabled), + "&buttonImageURL=", encodeURIComponent(this.settings.button_image_url), + "&buttonWidth=", encodeURIComponent(this.settings.button_width), + "&buttonHeight=", encodeURIComponent(this.settings.button_height), + "&buttonText=", encodeURIComponent(this.settings.button_text), + "&buttonTextTopPadding=", encodeURIComponent(this.settings.button_text_top_padding), + "&buttonTextLeftPadding=", encodeURIComponent(this.settings.button_text_left_padding), + "&buttonTextStyle=", encodeURIComponent(this.settings.button_text_style), + "&buttonAction=", encodeURIComponent(this.settings.button_action), + "&buttonDisabled=", encodeURIComponent(this.settings.button_disabled), + "&buttonCursor=", encodeURIComponent(this.settings.button_cursor) + ].join(""); +}; + +// Public: getMovieElement retrieves the DOM reference to the Flash element added by SWFUpload +// The element is cached after the first lookup +SWFUpload.prototype.getMovieElement = function () { + if (this.movieElement == undefined) { + this.movieElement = document.getElementById(this.movieName); + } + + if (this.movieElement === null) { + throw "Could not find Flash element"; + } + + return this.movieElement; +}; + +// Private: buildParamString takes the name/value pairs in the post_params setting object +// and joins them up in to a string formatted "name=value&name=value" +SWFUpload.prototype.buildParamString = function () { + var postParams = this.settings.post_params; + var paramStringPairs = []; + + if (typeof(postParams) === "object") { + for (var name in postParams) { + if (postParams.hasOwnProperty(name)) { + paramStringPairs.push(encodeURIComponent(name.toString()) + "=" + encodeURIComponent(postParams[name].toString())); + } + } + } + + return paramStringPairs.join("&"); +}; + +// Public: Used to remove a SWFUpload instance from the page. This method strives to remove +// all references to the SWF, and other objects so memory is properly freed. +// Returns true if everything was destroyed. Returns a false if a failure occurs leaving SWFUpload in an inconsistant state. +// Credits: Major improvements provided by steffen +SWFUpload.prototype.destroy = function () { + try { + // Make sure Flash is done before we try to remove it + this.cancelUpload(null, false); + + + // Remove the SWFUpload DOM nodes + var movieElement = null; + movieElement = this.getMovieElement(); + + if (movieElement && typeof(movieElement.CallFunction) === "unknown") { // We only want to do this in IE + // Loop through all the movie's properties and remove all function references (DOM/JS IE 6/7 memory leak workaround) + for (var i in movieElement) { + try { + if (typeof(movieElement[i]) === "function") { + movieElement[i] = null; + } + } catch (ex1) {} + } + + // Remove the Movie Element from the page + try { + movieElement.parentNode.removeChild(movieElement); + } catch (ex) {} + } + + // Remove IE form fix reference + window[this.movieName] = null; + + // Destroy other references + SWFUpload.instances[this.movieName] = null; + delete SWFUpload.instances[this.movieName]; + + this.movieElement = null; + this.settings = null; + this.customSettings = null; + this.eventQueue = null; + this.movieName = null; + + + return true; + } catch (ex2) { + return false; + } +}; + + +// Public: displayDebugInfo prints out settings and configuration +// information about this SWFUpload instance. +// This function (and any references to it) can be deleted when placing +// SWFUpload in production. +SWFUpload.prototype.displayDebugInfo = function () { + this.debug( + [ + "---SWFUpload Instance Info---\n", + "Version: ", SWFUpload.version, "\n", + "Movie Name: ", this.movieName, "\n", + "Settings:\n", + "\t", "upload_url: ", this.settings.upload_url, "\n", + "\t", "flash_url: ", this.settings.flash_url, "\n", + "\t", "use_query_string: ", this.settings.use_query_string.toString(), "\n", + "\t", "requeue_on_error: ", this.settings.requeue_on_error.toString(), "\n", + "\t", "http_success: ", this.settings.http_success.join(", "), "\n", + "\t", "assume_success_timeout: ", this.settings.assume_success_timeout, "\n", + "\t", "file_post_name: ", this.settings.file_post_name, "\n", + "\t", "post_params: ", this.settings.post_params.toString(), "\n", + "\t", "file_types: ", this.settings.file_types, "\n", + "\t", "file_types_description: ", this.settings.file_types_description, "\n", + "\t", "file_size_limit: ", this.settings.file_size_limit, "\n", + "\t", "file_upload_limit: ", this.settings.file_upload_limit, "\n", + "\t", "file_queue_limit: ", this.settings.file_queue_limit, "\n", + "\t", "debug: ", this.settings.debug.toString(), "\n", + + "\t", "prevent_swf_caching: ", this.settings.prevent_swf_caching.toString(), "\n", + + "\t", "button_placeholder_id: ", this.settings.button_placeholder_id.toString(), "\n", + "\t", "button_placeholder: ", (this.settings.button_placeholder ? "Set" : "Not Set"), "\n", + "\t", "button_image_url: ", this.settings.button_image_url.toString(), "\n", + "\t", "button_width: ", this.settings.button_width.toString(), "\n", + "\t", "button_height: ", this.settings.button_height.toString(), "\n", + "\t", "button_text: ", this.settings.button_text.toString(), "\n", + "\t", "button_text_style: ", this.settings.button_text_style.toString(), "\n", + "\t", "button_text_top_padding: ", this.settings.button_text_top_padding.toString(), "\n", + "\t", "button_text_left_padding: ", this.settings.button_text_left_padding.toString(), "\n", + "\t", "button_action: ", this.settings.button_action.toString(), "\n", + "\t", "button_disabled: ", this.settings.button_disabled.toString(), "\n", + + "\t", "custom_settings: ", this.settings.custom_settings.toString(), "\n", + "Event Handlers:\n", + "\t", "swfupload_loaded_handler assigned: ", (typeof this.settings.swfupload_loaded_handler === "function").toString(), "\n", + "\t", "file_dialog_start_handler assigned: ", (typeof this.settings.file_dialog_start_handler === "function").toString(), "\n", + "\t", "file_queued_handler assigned: ", (typeof this.settings.file_queued_handler === "function").toString(), "\n", + "\t", "file_queue_error_handler assigned: ", (typeof this.settings.file_queue_error_handler === "function").toString(), "\n", + "\t", "upload_start_handler assigned: ", (typeof this.settings.upload_start_handler === "function").toString(), "\n", + "\t", "upload_progress_handler assigned: ", (typeof this.settings.upload_progress_handler === "function").toString(), "\n", + "\t", "upload_error_handler assigned: ", (typeof this.settings.upload_error_handler === "function").toString(), "\n", + "\t", "upload_success_handler assigned: ", (typeof this.settings.upload_success_handler === "function").toString(), "\n", + "\t", "upload_complete_handler assigned: ", (typeof this.settings.upload_complete_handler === "function").toString(), "\n", + "\t", "debug_handler assigned: ", (typeof this.settings.debug_handler === "function").toString(), "\n" + ].join("") + ); +}; + +/* Note: addSetting and getSetting are no longer used by SWFUpload but are included + the maintain v2 API compatibility +*/ +// Public: (Deprecated) addSetting adds a setting value. If the value given is undefined or null then the default_value is used. +SWFUpload.prototype.addSetting = function (name, value, default_value) { + if (value == undefined) { + return (this.settings[name] = default_value); + } else { + return (this.settings[name] = value); + } +}; + +// Public: (Deprecated) getSetting gets a setting. Returns an empty string if the setting was not found. +SWFUpload.prototype.getSetting = function (name) { + if (this.settings[name] != undefined) { + return this.settings[name]; + } + + return ""; +}; + + + +// Private: callFlash handles function calls made to the Flash element. +// Calls are made with a setTimeout for some functions to work around +// bugs in the ExternalInterface library. +SWFUpload.prototype.callFlash = function (functionName, argumentArray) { + argumentArray = argumentArray || []; + + var movieElement = this.getMovieElement(); + var returnValue, returnString; + + // Flash's method if calling ExternalInterface methods (code adapted from MooTools). + try { + returnString = movieElement.CallFunction('<invoke name="' + functionName + '" returntype="javascript">' + __flash__argumentsToXML(argumentArray, 0) + '</invoke>'); + returnValue = eval(returnString); + } catch (ex) { + throw "Call to " + functionName + " failed"; + } + + // Unescape file post param values + if (returnValue != undefined && typeof returnValue.post === "object") { + returnValue = this.unescapeFilePostParams(returnValue); + } + + return returnValue; +}; + +/* ***************************** + -- Flash control methods -- + Your UI should use these + to operate SWFUpload + ***************************** */ + +// WARNING: this function does not work in Flash Player 10 +// Public: selectFile causes a File Selection Dialog window to appear. This +// dialog only allows 1 file to be selected. +SWFUpload.prototype.selectFile = function () { + this.callFlash("SelectFile"); +}; + +// WARNING: this function does not work in Flash Player 10 +// Public: selectFiles causes a File Selection Dialog window to appear/ This +// dialog allows the user to select any number of files +// Flash Bug Warning: Flash limits the number of selectable files based on the combined length of the file names. +// If the selection name length is too long the dialog will fail in an unpredictable manner. There is no work-around +// for this bug. +SWFUpload.prototype.selectFiles = function () { + this.callFlash("SelectFiles"); +}; + + +// Public: startUpload starts uploading the first file in the queue unless +// the optional parameter 'fileID' specifies the ID +SWFUpload.prototype.startUpload = function (fileID) { + this.callFlash("StartUpload", [fileID]); +}; + +// Public: cancelUpload cancels any queued file. The fileID parameter may be the file ID or index. +// If you do not specify a fileID the current uploading file or first file in the queue is cancelled. +// If you do not want the uploadError event to trigger you can specify false for the triggerErrorEvent parameter. +SWFUpload.prototype.cancelUpload = function (fileID, triggerErrorEvent) { + if (triggerErrorEvent !== false) { + triggerErrorEvent = true; + } + this.callFlash("CancelUpload", [fileID, triggerErrorEvent]); +}; + +// Public: stopUpload stops the current upload and requeues the file at the beginning of the queue. +// If nothing is currently uploading then nothing happens. +SWFUpload.prototype.stopUpload = function () { + this.callFlash("StopUpload"); +}; + +/* ************************ + * Settings methods + * These methods change the SWFUpload settings. + * SWFUpload settings should not be changed directly on the settings object + * since many of the settings need to be passed to Flash in order to take + * effect. + * *********************** */ + +// Public: getStats gets the file statistics object. +SWFUpload.prototype.getStats = function () { + return this.callFlash("GetStats"); +}; + +// Public: setStats changes the SWFUpload statistics. You shouldn't need to +// change the statistics but you can. Changing the statistics does not +// affect SWFUpload accept for the successful_uploads count which is used +// by the upload_limit setting to determine how many files the user may upload. +SWFUpload.prototype.setStats = function (statsObject) { + this.callFlash("SetStats", [statsObject]); +}; + +// Public: getFile retrieves a File object by ID or Index. If the file is +// not found then 'null' is returned. +SWFUpload.prototype.getFile = function (fileID) { + if (typeof(fileID) === "number") { + return this.callFlash("GetFileByIndex", [fileID]); + } else { + return this.callFlash("GetFile", [fileID]); + } +}; + +// Public: addFileParam sets a name/value pair that will be posted with the +// file specified by the Files ID. If the name already exists then the +// exiting value will be overwritten. +SWFUpload.prototype.addFileParam = function (fileID, name, value) { + return this.callFlash("AddFileParam", [fileID, name, value]); +}; + +// Public: removeFileParam removes a previously set (by addFileParam) name/value +// pair from the specified file. +SWFUpload.prototype.removeFileParam = function (fileID, name) { + this.callFlash("RemoveFileParam", [fileID, name]); +}; + +// Public: setUploadUrl changes the upload_url setting. +SWFUpload.prototype.setUploadURL = function (url) { + this.settings.upload_url = url.toString(); + this.callFlash("SetUploadURL", [url]); +}; + +// Public: setPostParams changes the post_params setting +SWFUpload.prototype.setPostParams = function (paramsObject) { + this.settings.post_params = paramsObject; + this.callFlash("SetPostParams", [paramsObject]); +}; + +// Public: addPostParam adds post name/value pair. Each name can have only one value. +SWFUpload.prototype.addPostParam = function (name, value) { + this.settings.post_params[name] = value; + this.callFlash("SetPostParams", [this.settings.post_params]); +}; + +// Public: removePostParam deletes post name/value pair. +SWFUpload.prototype.removePostParam = function (name) { + delete this.settings.post_params[name]; + this.callFlash("SetPostParams", [this.settings.post_params]); +}; + +// Public: setFileTypes changes the file_types setting and the file_types_description setting +SWFUpload.prototype.setFileTypes = function (types, description) { + this.settings.file_types = types; + this.settings.file_types_description = description; + this.callFlash("SetFileTypes", [types, description]); +}; + +// Public: setFileSizeLimit changes the file_size_limit setting +SWFUpload.prototype.setFileSizeLimit = function (fileSizeLimit) { + this.settings.file_size_limit = fileSizeLimit; + this.callFlash("SetFileSizeLimit", [fileSizeLimit]); +}; + +// Public: setFileUploadLimit changes the file_upload_limit setting +SWFUpload.prototype.setFileUploadLimit = function (fileUploadLimit) { + this.settings.file_upload_limit = fileUploadLimit; + this.callFlash("SetFileUploadLimit", [fileUploadLimit]); +}; + +// Public: setFileQueueLimit changes the file_queue_limit setting +SWFUpload.prototype.setFileQueueLimit = function (fileQueueLimit) { + this.settings.file_queue_limit = fileQueueLimit; + this.callFlash("SetFileQueueLimit", [fileQueueLimit]); +}; + +// Public: setFilePostName changes the file_post_name setting +SWFUpload.prototype.setFilePostName = function (filePostName) { + this.settings.file_post_name = filePostName; + this.callFlash("SetFilePostName", [filePostName]); +}; + +// Public: setUseQueryString changes the use_query_string setting +SWFUpload.prototype.setUseQueryString = function (useQueryString) { + this.settings.use_query_string = useQueryString; + this.callFlash("SetUseQueryString", [useQueryString]); +}; + +// Public: setRequeueOnError changes the requeue_on_error setting +SWFUpload.prototype.setRequeueOnError = function (requeueOnError) { + this.settings.requeue_on_error = requeueOnError; + this.callFlash("SetRequeueOnError", [requeueOnError]); +}; + +// Public: setHTTPSuccess changes the http_success setting +SWFUpload.prototype.setHTTPSuccess = function (http_status_codes) { + if (typeof http_status_codes === "string") { + http_status_codes = http_status_codes.replace(" ", "").split(","); + } + + this.settings.http_success = http_status_codes; + this.callFlash("SetHTTPSuccess", [http_status_codes]); +}; + +// Public: setHTTPSuccess changes the http_success setting +SWFUpload.prototype.setAssumeSuccessTimeout = function (timeout_seconds) { + this.settings.assume_success_timeout = timeout_seconds; + this.callFlash("SetAssumeSuccessTimeout", [timeout_seconds]); +}; + +// Public: setDebugEnabled changes the debug_enabled setting +SWFUpload.prototype.setDebugEnabled = function (debugEnabled) { + this.settings.debug_enabled = debugEnabled; + this.callFlash("SetDebugEnabled", [debugEnabled]); +}; + +// Public: setButtonImageURL loads a button image sprite +SWFUpload.prototype.setButtonImageURL = function (buttonImageURL) { + if (buttonImageURL == undefined) { + buttonImageURL = ""; + } + + this.settings.button_image_url = buttonImageURL; + this.callFlash("SetButtonImageURL", [buttonImageURL]); +}; + +// Public: setButtonDimensions resizes the Flash Movie and button +SWFUpload.prototype.setButtonDimensions = function (width, height) { + this.settings.button_width = width; + this.settings.button_height = height; + + var movie = this.getMovieElement(); + if (movie != undefined) { + movie.style.width = width + "px"; + movie.style.height = height + "px"; + } + + this.callFlash("SetButtonDimensions", [width, height]); +}; +// Public: setButtonText Changes the text overlaid on the button +SWFUpload.prototype.setButtonText = function (html) { + this.settings.button_text = html; + this.callFlash("SetButtonText", [html]); +}; +// Public: setButtonTextPadding changes the top and left padding of the text overlay +SWFUpload.prototype.setButtonTextPadding = function (left, top) { + this.settings.button_text_top_padding = top; + this.settings.button_text_left_padding = left; + this.callFlash("SetButtonTextPadding", [left, top]); +}; + +// Public: setButtonTextStyle changes the CSS used to style the HTML/Text overlaid on the button +SWFUpload.prototype.setButtonTextStyle = function (css) { + this.settings.button_text_style = css; + this.callFlash("SetButtonTextStyle", [css]); +}; +// Public: setButtonDisabled disables/enables the button +SWFUpload.prototype.setButtonDisabled = function (isDisabled) { + this.settings.button_disabled = isDisabled; + this.callFlash("SetButtonDisabled", [isDisabled]); +}; +// Public: setButtonAction sets the action that occurs when the button is clicked +SWFUpload.prototype.setButtonAction = function (buttonAction) { + this.settings.button_action = buttonAction; + this.callFlash("SetButtonAction", [buttonAction]); +}; + +// Public: setButtonCursor changes the mouse cursor displayed when hovering over the button +SWFUpload.prototype.setButtonCursor = function (cursor) { + this.settings.button_cursor = cursor; + this.callFlash("SetButtonCursor", [cursor]); +}; + +/* ******************************* + Flash Event Interfaces + These functions are used by Flash to trigger the various + events. + + All these functions a Private. + + Because the ExternalInterface library is buggy the event calls + are added to a queue and the queue then executed by a setTimeout. + This ensures that events are executed in a determinate order and that + the ExternalInterface bugs are avoided. +******************************* */ + +SWFUpload.prototype.queueEvent = function (handlerName, argumentArray) { + // Warning: Don't call this.debug inside here or you'll create an infinite loop + + if (argumentArray == undefined) { + argumentArray = []; + } else if (!(argumentArray instanceof Array)) { + argumentArray = [argumentArray]; + } + + var self = this; + if (typeof this.settings[handlerName] === "function") { + // Queue the event + this.eventQueue.push(function () { + this.settings[handlerName].apply(this, argumentArray); + }); + + // Execute the next queued event + setTimeout(function () { + self.executeNextEvent(); + }, 0); + + } else if (this.settings[handlerName] !== null) { + throw "Event handler " + handlerName + " is unknown or is not a function"; + } +}; + +// Private: Causes the next event in the queue to be executed. Since events are queued using a setTimeout +// we must queue them in order to garentee that they are executed in order. +SWFUpload.prototype.executeNextEvent = function () { + // Warning: Don't call this.debug inside here or you'll create an infinite loop + + var f = this.eventQueue ? this.eventQueue.shift() : null; + if (typeof(f) === "function") { + f.apply(this); + } +}; + +// Private: unescapeFileParams is part of a workaround for a flash bug where objects passed through ExternalInterface cannot have +// properties that contain characters that are not valid for JavaScript identifiers. To work around this +// the Flash Component escapes the parameter names and we must unescape again before passing them along. +SWFUpload.prototype.unescapeFilePostParams = function (file) { + var reg = /[$]([0-9a-f]{4})/i; + var unescapedPost = {}; + var uk; + + if (file != undefined) { + for (var k in file.post) { + if (file.post.hasOwnProperty(k)) { + uk = k; + var match; + while ((match = reg.exec(uk)) !== null) { + uk = uk.replace(match[0], String.fromCharCode(parseInt("0x" + match[1], 16))); + } + unescapedPost[uk] = file.post[k]; + } + } + + file.post = unescapedPost; + } + + return file; +}; + +// Private: Called by Flash to see if JS can call in to Flash (test if External Interface is working) +SWFUpload.prototype.testExternalInterface = function () { + try { + return this.callFlash("TestExternalInterface"); + } catch (ex) { + return false; + } +}; + +// Private: This event is called by Flash when it has finished loading. Don't modify this. +// Use the swfupload_loaded_handler event setting to execute custom code when SWFUpload has loaded. +SWFUpload.prototype.flashReady = function () { + // Check that the movie element is loaded correctly with its ExternalInterface methods defined + var movieElement = this.getMovieElement(); + + if (!movieElement) { + this.debug("Flash called back ready but the flash movie can't be found."); + return; + } + + this.cleanUp(movieElement); + + this.queueEvent("swfupload_loaded_handler"); +}; + +// Private: removes Flash added fuctions to the DOM node to prevent memory leaks in IE. +// This function is called by Flash each time the ExternalInterface functions are created. +SWFUpload.prototype.cleanUp = function (movieElement) { + // Pro-actively unhook all the Flash functions + try { + if (this.movieElement && typeof(movieElement.CallFunction) === "unknown") { // We only want to do this in IE + this.debug("Removing Flash functions hooks (this should only run in IE and should prevent memory leaks)"); + for (var key in movieElement) { + try { + if (typeof(movieElement[key]) === "function") { + movieElement[key] = null; + } + } catch (ex) { + } + } + } + } catch (ex1) { + + } + + // Fix Flashes own cleanup code so if the SWFMovie was removed from the page + // it doesn't display errors. + window["__flash__removeCallback"] = function (instance, name) { + try { + if (instance) { + instance[name] = null; + } + } catch (flashEx) { + + } + }; + +}; + + +/* This is a chance to do something before the browse window opens */ +SWFUpload.prototype.fileDialogStart = function () { + this.queueEvent("file_dialog_start_handler"); +}; + + +/* Called when a file is successfully added to the queue. */ +SWFUpload.prototype.fileQueued = function (file) { + file = this.unescapeFilePostParams(file); + this.queueEvent("file_queued_handler", file); +}; + + +/* Handle errors that occur when an attempt to queue a file fails. */ +SWFUpload.prototype.fileQueueError = function (file, errorCode, message) { + file = this.unescapeFilePostParams(file); + this.queueEvent("file_queue_error_handler", [file, errorCode, message]); +}; + +/* Called after the file dialog has closed and the selected files have been queued. + You could call startUpload here if you want the queued files to begin uploading immediately. */ +SWFUpload.prototype.fileDialogComplete = function (numFilesSelected, numFilesQueued, numFilesInQueue) { + this.queueEvent("file_dialog_complete_handler", [numFilesSelected, numFilesQueued, numFilesInQueue]); +}; + +SWFUpload.prototype.uploadStart = function (file) { + file = this.unescapeFilePostParams(file); + this.queueEvent("return_upload_start_handler", file); +}; + +SWFUpload.prototype.returnUploadStart = function (file) { + var returnValue; + if (typeof this.settings.upload_start_handler === "function") { + file = this.unescapeFilePostParams(file); + returnValue = this.settings.upload_start_handler.call(this, file); + } else if (this.settings.upload_start_handler != undefined) { + throw "upload_start_handler must be a function"; + } + + // Convert undefined to true so if nothing is returned from the upload_start_handler it is + // interpretted as 'true'. + if (returnValue === undefined) { + returnValue = true; + } + + returnValue = !!returnValue; + + this.callFlash("ReturnUploadStart", [returnValue]); +}; + + + +SWFUpload.prototype.uploadProgress = function (file, bytesComplete, bytesTotal) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_progress_handler", [file, bytesComplete, bytesTotal]); +}; + +SWFUpload.prototype.uploadError = function (file, errorCode, message) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_error_handler", [file, errorCode, message]); +}; + +SWFUpload.prototype.uploadSuccess = function (file, serverData, responseReceived) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_success_handler", [file, serverData, responseReceived]); +}; + +SWFUpload.prototype.uploadComplete = function (file) { + file = this.unescapeFilePostParams(file); + this.queueEvent("upload_complete_handler", file); +}; + +/* Called by SWFUpload JavaScript and Flash functions when debug is enabled. By default it writes messages to the + internal debug console. You can override this event and have messages written where you want. */ +SWFUpload.prototype.debug = function (message) { + this.queueEvent("debug_handler", message); +}; + + +/* ********************************** + Debug Console + The debug console is a self contained, in page location + for debug message to be sent. The Debug Console adds + itself to the body if necessary. + + The console is automatically scrolled as messages appear. + + If you are using your own debug handler or when you deploy to production and + have debug disabled you can remove these functions to reduce the file size + and complexity. +********************************** */ + +// Private: debugMessage is the default debug_handler. If you want to print debug messages +// call the debug() function. When overriding the function your own function should +// check to see if the debug setting is true before outputting debug information. +SWFUpload.prototype.debugMessage = function (message) { + if (this.settings.debug) { + var exceptionMessage, exceptionValues = []; + + // Check for an exception object and print it nicely + if (typeof message === "object" && typeof message.name === "string" && typeof message.message === "string") { + for (var key in message) { + if (message.hasOwnProperty(key)) { + exceptionValues.push(key + ": " + message[key]); + } + } + exceptionMessage = exceptionValues.join("\n") || ""; + exceptionValues = exceptionMessage.split("\n"); + exceptionMessage = "EXCEPTION: " + exceptionValues.join("\nEXCEPTION: "); + SWFUpload.Console.writeLine(exceptionMessage); + } else { + SWFUpload.Console.writeLine(message); + } + } +}; + +SWFUpload.Console = {}; +SWFUpload.Console.writeLine = function (message) { + var console, documentForm; + + try { + console = document.getElementById("SWFUpload_Console"); + + if (!console) { + documentForm = document.createElement("form"); + document.getElementsByTagName("body")[0].appendChild(documentForm); + + console = document.createElement("textarea"); + console.id = "SWFUpload_Console"; + console.style.fontFamily = "monospace"; + console.setAttribute("wrap", "off"); + console.wrap = "off"; + console.style.overflow = "auto"; + console.style.width = "700px"; + console.style.height = "350px"; + console.style.margin = "5px"; + documentForm.appendChild(console); + } + + console.value += message + "\n"; + + console.scrollTop = console.scrollHeight - console.clientHeight; + } catch (ex) { + alert("Exception: " + ex.name + " Message: " + ex.message); + } +}; + +exports.SWFUpload = SWFUpload; +}); +define("js/home/comment", ["jquery"], function(require, exports, module){ +/** + * 我的评论 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/3/1 + */ +var $ = require("jquery"); + +var $comment = $('.comment-table'), + $remarkBtn = $comment.find('.remark-btn'); + +var $dialog = $('#comment-dialog-widget'), + $titleBar = $dialog.find('.dialog-titlebar'), + $commentArea = $dialog.find('textarea'); + +var pageW = $(document).width(), + pageH = $(document).height(), + winH = $(window).height(); + +var dialog = { + canmove: false, + offset: {}, + maxtop: 0, + maxleft: 0 + }, + orderInfo = {}, + $optDom; + +// 处理订单数据 +$remarkBtn.each(function() { + var $next = $(this).next(), + data = $next.data(), + key = data.orderid; + + orderInfo[key] = {}; + orderInfo[key].productSkn = data.productskn; + orderInfo[key].productId = data.productid; + orderInfo[key].goodsId = data.goodsid; + orderInfo[key].orderId = data.orderid; + orderInfo[key].erpSkuId = data.erpskuid; + + $next.remove(); + $(this).data('code', key); +}); + +$remarkBtn.click(function() { + var scrollTop = $(document).scrollTop(); + + $optDom = $(this); + $commentArea.val(''); + $dialog.removeClass('hide').css({ + top: scrollTop + (winH - $dialog.outerHeight()) / 2, + left: (pageW - $dialog.outerWidth()) / 2 + }); +}); + +// 评论弹窗 +$titleBar.bind('mousedown', function(e) { + if ($(e.target).hasClass('dialog-close-btn')) { + return; + } + + dialog.canmove = true; + dialog.offset = { + x: e.offsetX, + y: e.offsetY + }; + dialog.maxtop = pageH - $dialog.outerHeight(); + dialog.maxleft = pageW - $dialog.outerWidth(); +}); + +$(document).mousemove(function(e) { + var mtop, mleft; + + if (!dialog.canmove) { + return; + } + + mtop = e.pageY - dialog.offset.y; + mleft = e.pageX - dialog.offset.x; + mtop = mtop < dialog.maxtop ? mtop : dialog.maxtop; + mleft = mleft < dialog.maxleft ? mleft : dialog.maxleft; + $dialog.css({ + top: mtop > 0 ? mtop : 0, + left: mleft > 0 ? mleft : 0 + }); +}).mouseup(function(e) { + dialog.canmove = false; +}); + +$dialog.on('click', '.dialog-save-btn', function() { + var remark = $.trim($commentArea.val()), + param; + + if (remark === '') { + alert('请添加评论内容'); + return; + } + if ($optDom.length) { + param = orderInfo[$optDom.data().code]; + param.content = remark; + + $.ajax({ + type: 'POST', + url: '/home/comment/saveComment', + data: param + }).then(function(jsonData) { + var $par = $optDom.parent(); + + if (jsonData.code === 200) { + $par.prev().text(remark); + $par.html('<span class="remarked">已评论!</span>'); + $optDom.length = 0; + $dialog.addClass('hide'); + } else { + alert(jsonData.message); + } + }); + } +}); + +$dialog.on('click', '.dialog-close-btn', function() { + $optDom.length = 0; + $dialog.addClass('hide'); +}); +}); +define("js/home/complaints", ["jquery"], function(require, exports, module){ +/** + * 我的投诉 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/3/18 + */ + +var $ = require("jquery"); + +var $cancelBtn = $('.cancel-btn'), + $title = $('#title'), + $customer = $('#customer'), + $complaintsType = $('#complaintsType'), + $orderCode = $('#orderCode'), + $content = $('#content'); + +var ajaxing = false; +var rule = { + title: { + dom: $title, + min: 1, + max: 10, + onshow: '请输入您的投诉主题', + onfocus: '请输入主题', + onmin: '投诉主题不能为空', + onmax: '输入投诉主题不能超过10个字' + }, + customer: { + dom: $customer, + min: 1, + max: 10, + onshow: '请填写您要投诉的对象,比如:客服00*号、发货员...', + onfocus: '请填写您要投诉的对象', + onmin: '投诉对象不能为空', + onmax: '输入投诉对象不能超过10个字' + }, + orderCode: { + dom: $orderCode, + regexp: /^([0-9,]{9,})$/, //一个和多个订单 + onshow: '如果多个是多个订单号,请用英文逗号隔开,没有则不填', + onfocus: '请输入订单号', + onerror: '您输入的订单格式不对,如果多个是多个订单号,请用英文逗号隔开' + }, + content: { + dom: $content, + min: 1, + max: 130, + onshow: '输入您投诉的内容', + onfocus: '请输入您投诉的内容', + onmin: '投诉内容不能为空', + onmax: '输入的投诉内容不能超过130个字' + } + }; + +function preventResubmit() { + if (!ajaxing) { + ajaxing = true; + setTimeout(function() { + ajaxing = false; + }, 1000); + return false; + } + return true; +} + +function validate(info) { + var $tips = info.dom.siblings('.option-tip'), + val = $.trim(info.dom.val()), + len = val.length; + + if (info.min && len < info.min) { + $tips.text(info.onmin); + return false; + } else if (info.max && len > info.max) { + $tips.text(info.onmax); + return false; + } + + if (info.regexp && !info.regexp.test(val)) { + $tips.text(info.onerror); + return false; + } + + $tips.text('输入正确'); + return true; +} + +function validateForm() { + var res = {}, + focus; + + $.each(rule, function(key, info) { + if (validate(info)) { + res[key] = $.trim(info.dom.val()); + } else { + if (!focus) { + focus = key; + info.dom.focus(); + } + } + }); + res.complaintsType = $complaintsType.val(); + + if (focus) { + return false; + } + return res; +} + +function addComplaint() { + var sendParm = validateForm(); + + if (preventResubmit() || !sendParm) { + return; + } + + $.ajax({ + type: 'POST', + url: '/home/complaints/addcomplaints', + data: sendParm + }).then(function(jsonData) { + ajaxing = false; + if (jsonData.code === 200) { + window.location.reload(); + } else { + alert(jsonData.message); + } + }); +} + +function cancelComplaint(id, dom) { + var $dom = dom; + + if (preventResubmit()) { + return; + } + + $.ajax({ + type: 'POST', + url: '/home/complaints/cancelcomplaints', + data: { + id: id + } + }).then(function(jsonData) { + ajaxing = false; + if (jsonData.code === 200) { + $dom.prev().remove(); + $dom.text('问题已撤销'); + } else { + alert(jsonData.message); + } + }); +} + +$.each(rule, function(key, info) { + info.dom.focus(function() { + info.dom.siblings('.option-tip').text(info.onfocus); + }).blur(function() { + validate(info); + }); +}); + +$('#complaint-submit').click(function() { + addComplaint(); +}); + +$cancelBtn.click(function() { + var data = $(this).data(); + + if (data && data.id) { + cancelComplaint(data.id, $(this).parent()); + } +}); +}); +define("js/home/message", ["jquery"], function(require, exports, module){ +/** + * 我的信息 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/3/21 + */ +var $ = require("jquery"); + +var $container = $('#message-main-container'), + $msgCheck = $container.find('.msg-check'), + $readBtn = $container.find('.read-choose-btn'), + $checked; + +var operationId = []; + +require("js/home/message-content"); + +function hasNew() { + var newMsg = false; + + $checked = $container.find('.msg-check:checked'); + operationId = []; + + $checked.each(function() { + var $par = $(this).parent().parent(); + + operationId.push($(this).val()); + if ($par.hasClass('new-msg')) { + newMsg = true; + } + }); + + if (newMsg) { + $readBtn.addClass('has-new'); + } else { + $readBtn.removeClass('has-new'); + } +} + +function msgOperation(type, data) { + var url; + + switch (type) { + case 'del': + url = '/home/message/delMessage'; + break; + case 'read': + url = '/home/message/readMessage'; + break; + } + + $.ajax({ + type: 'GET', + url: url, + data: data + }).then(function(jsonData) { + if (!jsonData.code) { + if (type === 'del') { + $container.html(jsonData); + $msgCheck = $container.find('.msg-check'); + $readBtn = $container.find('.read-choose-btn'); + } + } else { + if (jsonData.code === 200) { + if (type === 'read') { + $checked.removeAttr('checked'); + $checked.parent().parent().removeClass('new-msg'); + hasNew(); + } + } else { + alert(jsonData.message); + } + } + }); +} + +$container.on('change', 'input[type="checkbox"]', function() { + var checked = $(this).attr('checked'); + + if ($(this).hasClass('choose-all')) { + if (checked === 'checked') { + $msgCheck.attr('checked', true); + } else { + $msgCheck.removeAttr('checked'); + } + } + hasNew(); +}); + +$container.on('click', '.del-btn', function() { + if (confirm('您确定要删除这条短消息?')) { + msgOperation('del', $(this).data()); + } +}); + +$container.on('click', '.del-choose-btn', function() { + if (!operationId.length) { + alert('请选中您要删除的消息'); + return; + } + + if (confirm('确定要删除您选中的消息')) { + msgOperation('del', { + id: operationId.join(',') + }); + } +}); + +$container.on('click', '.read-choose-btn', function() { + if ($(this).hasClass('has-new')) { + msgOperation('read', { + id: operationId.join(',') + }); + } +}); +}); +define("js/home/message-content", ["jquery"], function(require, exports, module){ +/** + * 我的信息 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/3/25 + */ +var $ = require("jquery"); + +var $pickBtn = $('.pick-coupon-btn'); + +var pickBusy = false; + +$pickBtn.click(function() { + var data = $(this).data(); + + if (pickBusy) { + return; + } + pickBusy = true; + $.ajax({ + type: 'GET', + url: '/home/message/pickCoupon', + data: data + }).then(function(jsonData) { + var msg = jsonData.message; + + if (jsonData.code === 200) { + msg = '领取成功'; + $(this).removeClass('pick-coupon-btn'); + } + + pickBusy = false; + + alert(msg); + }); +}); +}); +define("js/home/edit", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 个人中心页-个人资料编辑 + * @author: zhaobiao<bill.zhao@yoho.cn> + * @date: 2016/02/17 + */ +var $ = require("jquery"); + +var $allEditForms = $('.userinfo-edit form'); + +var address = require("js/home/common-address"); + +var date = { + init: function(year, month, day) { + var $year = $('#year'), + $month = $('#month'), + $day = $('#day'); + + var that = this; + + this.createDay($year.val(), $month.val(), $day.val()); + + $year.on('change', function() { + that.update(); + }); + + $month.on('change', function() { + that.update(); + }); + }, + update: function() { + this.createDay($('#year').val(), $('#month').val(), $('#day').val()); + }, + createDay: function(year, month, day) { + var html = '<select name="day" id="day">', + monthArray = new Array(4, 6, 9, 11), + dayNum = 31; + + var select, + i; + + year = parseInt(year); + month = parseInt(month); + + if (year === 0) { + year = 0; + } + + if (month === 0) { + month = 0; + } + + $('#year').val(year.toString()); + $('#month').val(month.toString()); + + html += '<option value="0">日</option>'; + + if (year > 0 && month > 0) { + if ($.inArray(month, monthArray) !== -1) { + dayNum = 30; + } else if (month === 2) { + dayNum = 28; + if (0 === year % 4 && (year % 100 !== 0 || year % 400 === 0)) { + dayNum = 29; + } + } + + for (i = 1; i <= dayNum; i++) { + select = ''; + + if (parseInt(day) === i) { + select = 'selected'; + } + html += '<option value="' + i + '" ' + select + '>' + i + '</option>'; + } + } + html += '</select>'; + + $('#day').replaceWith(html); + } +}; + + +$('.userinfo-edit h2').on('click', function() { + var $form = $(this).next(); + + $allEditForms.slideUp('fast'); + $form.css('display') === 'none' ? $form.slideDown('slow') : null; + +}); + +function checkBaseForm() { + var nicknameLength = $('#nickname').val().length, + usernameLength = $('#username').val().length, + $gender = $('input[name="gender"]'), + $year = $('#year'), + $month = $('#month'), + $day = $('#day'); + + if (nicknameLength === 0) { + alert('请输入昵称'); + return false; + } + + if (usernameLength === 0) { + alert('请输入用户名'); + return false; + } + + if (nicknameLength >= 20) { + alert('昵称最长为20个字符'); + return false; + } + + + if (!$gender.is(':checked')) { + alert('请选择性别'); + return false; + } + + if ($year.val() === '0' || $month.val() === '0' || $day.val() === '0') { + alert('请选择出生年月日'); + return false; + } + + return true; +} + +function checkContactForm() { + if ($('#province').val() === '0' || $('#city').val() === '0' || $('#areaCode').val() === '0') { + alert('请选择所在区域'); + return false; + } + + if ($('#province').val() === null || $('#city').val() === null || $('#areaCode').val() === null) { + alert('请选择所在区域'); + return false; + } + + if ($('#phone').val().length === 0 && $('#mobile').val().length === 0) { + alert('电话和手机号码不能同时为空,请填写!'); + return false; + } + + + if ($('#fullAddress').val().length === 0) { + alert('请填写地址'); + return false; + } + + if ($('#zipCode').val().length === 0 || $('#zipCode').val().length < 2) { + alert('请填写邮编'); + return false; + } + + return true; +} + +function checkHabbitForm() { + if (!$('.user-habbit-info input').is(':checked')) { + alert('请填写购物&着装习惯'); + return false; + } + + return true; +} + +function checkFavoriteForm() { + if ($('#likebrand').val() === '') { + alert('请选择品牌'); + return false; + } + + return true; +} + +function delBrand(brandId) { + var brand = $('#likebrand').val(); + + if (parseInt(brandId) === 0) { + return false; + } + + $('#likebrand').val(brand.replace(',' + brandId + ',', ',')); + $('#pp-' + brandId).attr('checked', false); + $('#brand-' + brandId).remove(); +} + + + +function addBrand(domObj, brandId, brandName) { + var html = '<li id="brand-' + brandId + '">' + + brandName + '<a href="javascript:void(0);" class="btn-del"></a></li>'; + + var brandInfo = $('#brand-' + brandId).html(), + brandStr = $('#likebrand').val(); + + var $brandBox = $('#brand-box'); + + if (parseInt(brandId) === 0) { + return false; + } + + if (typeof domObj !== 'undefined' && domObj !== '' && domObj.checked === false) { + delBrand(brandId); + return false; + } + if (brandInfo) { + alert('您已经选择了该品牌.'); + return false; + } + $brandBox.append(html); + + $brandBox.find('li>a').off('click').on('click', function() { + delBrand($(this).closest('li').attr('id').substr(6)); + }); + + brandStr += brandId + ','; + $('#likebrand').val(brandStr); +} + +function checkBrand() { + var postData = { + brandName: $('#keywords').val() + }; + + $.post('/home/user/isbrandname', postData, function(data) { + if (data.code === 200) { + if (data.data.id && data.data.brand_name) { + addBrand('', data.data.id, data.data.brand_name); + $('#keywords').val(''); + return true; + } else { + alert('网络异常,请重试'); + return false; + } + } + alert(data.message); + return false; + }, 'json'); +} + +function save(postUrl, btnId) { + var $form = $('#' + btnId).closest('form'); + + $.post(postUrl, $form.serialize(), function(data) { + if (data.code === 200) { + alert(data.message); + setTimeout(function() { + $form.closest('div').next().find('h2').click(); + }, 100); + return true; + } + alert(data.message); + return false; + }, 'json'); +} + + +$('#base-info').on('click', function() { + if (checkBaseForm()) { + save('/home/user/edituserinfo/', 'base-info'); + } +}); + +$('#contact-info').on('click', function() { + if (checkContactForm()) { + save('/home/user/editusercontactinfo/', 'contact-info'); + } +}); + +$('#shopping-info').on('click', function() { + if (checkHabbitForm()) { + save('/home/user/edituserhabitsinfo/', 'shopping-info'); + } +}); + +$('#favorite-brand').on('click', function() { + if (checkFavoriteForm()) { + $.ajax({ + url: '/home/user/edituserlikebrand/', + type: 'post', + datatype: 'json', + data: { + brand: $('#likebrand').val() + }, + success: function(data) { + if (data.code === 200) { + alert(data.message); + return true; + } + alert(data.message); + return false; + }, + error: function(err) { + alert('网络异常'); + } + }); + } +}); + +$('#add-brand-btn').on('click', function() { + checkBrand(); +}); + +$('.user-favorite-info input[type="checkbox"]').on('click', function() { + var $this = $(this); + + addBrand(this, $this.attr('id').substr(3), $this.parent().text()); +}); + +(function() { + var $brands = $('#brand-box li'); + + if ($brands.length > 0) { + $brands.find('a').on('click', function() { + delBrand($(this).closest('li').attr('id').substr(6)); + }); + } +})(); + +date.init(); + +(function() { + if (!$('#province').val()) { + address.loadAllData(0, { + provinceDomId: 'province', + cityDomId: 'city', + areaDomId: 'areaCode' + }); + } else { + address.bindAreaChange({ + provinceDomId: 'province', + cityDomId: 'city', + areaDomId: 'areaCode' + }); + } +})(); + +}); +define("js/home/gift", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 个人中心页-兑换礼品卡 + * @author: wsl<shuiling.wang@yoho.cn> + * @date: 2016/02/22 + */ +var $ = require("jquery"), + dialog = require("js/common/dialog"), + Alert = dialog.Alert; + +var $giftError = $('.giftCardCode').find('.gift-error'), + $codeError = $('.captchaCode').find('.gift-error'), + reg = '', + code = '', + i = 1; + +var active; + +var Gift = { + suc: [ + false, + false, + false, + false + ], + checkCard: function(num) { + reg = /^[0-9a-zA-Z]{4,4}$/; + + if (!reg.test($('#giftCardCode' + num).val())) { + $giftError.html('您输入的兑换码有误,兑换码必须为数字或字母,每个文本框里只能输入四个兑换码!'); + Gift.suc[num - 1] = false; + } else { + for (i = 1; i <= 3; i++) { + if (!reg.test($('#giftCardCode' + i).val())) { + $giftError.html('您输入的兑换码有误,兑换码必须为数字或字母,每个文本框里只能输入四个兑换码!'); + Gift.suc[i] = false; + } else { + $giftError.html(''); + Gift.suc[i] = true; + } + } + + if (num !== 3) { + $('#giftCardCode' + (num + 1)).focus(); + } + } + }, + bindGiftCardForm: function() { + $('#giftCardCode1').bind('blur keyup', function() { + Gift.checkCard(1); + }); + + $('#giftCardCode2').bind('blur keyup', function() { + Gift.checkCard(2); + }); + + $('#giftCardCode3').bind('blur keyup', function() { + Gift.checkCard(3); + }); + + $('#captchaCode').bind('blur keyup', function() { + code = $('#captchaCode').val(); + + if (code.length <= 0) { + $codeError.html('请输入验证码!'); + Gift.suc[3] = false; + } else { + $codeError.html(''); + Gift.suc[3] = true; + } + }); + }, + + checkForm: function() { + if (!reg.test($('#giftCardCode1').val()) || !reg.test($('#giftCardCode2').val()) || + !reg.test($('#giftCardCode3').val())) { + $giftError.html('您输入的兑换码有误,兑换码必须为数字或字母,每个文本框里只能输入四个兑换码!'); + return false; + } + + if ($.trim($('#captchaCode').val()) === '') { + $codeError.html('请输入验证码!'); + return false; + } + return true; + } +}; + +//更换验证码 +function refreshCaptcha() { + var dt = new Date(); + + $('#imgcode').attr('src', '/passport/images?t=' + dt.getTime()); + return false; +} + +$('#sub-gift').on('click', function() { + if (Gift.checkForm()) { + $.post('/home/gift/exchange', $('#giftCardForm').serialize(), function(data) { + if (data.code === 200) { + window.location.href = '/home/gift?type=1'; + } else if (data.code === 400) { + active = new Alert(data.message); + active.show(); + refreshCaptcha(); + } else { + window.location.href = '/home/gift?type=2'; + } + }, 'json'); + } else { + return false; + } +}); + +$(document).on('click', '#imgcode,.check-img', function() { + refreshCaptcha(); +}); + +$(function() { + refreshCaptcha(); + Gift.bindGiftCardForm(); +}); +}); +define("js/home/validate", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 个人中心页-账号安全验证 + * @author:wsl<shuiling.wang@yoho.cn> + * @date: 2016/02/23 + */ +var $ = require("jquery"), + dialog = require("js/common/dialog"), + phoneRegx = require("js/passport/mail-phone-regx"), + Alert = dialog.Alert; + +var $checkUser = $('.check-user'), + $checkInput = $checkUser.find('input').not('input[type=button],input[type=hidden],input[type=reset]'), + canSend = true, + canFlag = true, + stime = 60; + +var sInt, + active; + +$.ajaxSetup({ + async: false +}); + +if (!Array.prototype.indexOf) { + Array.prototype.indexOf = function(obj, start) { + var i, + j; + + for (i = (start || 0), j = this.length; i < j; i++) { + if (this[i] === obj) { + return i; + } + } + + return -1; + }; +} + +function errorInfoAction(opt, txt) { + opt.$checkInfo.html('<div class="form-error">' + txt + '</div>'); + if (opt.dom.attr('name') !== 'code' && opt.dom.attr('name') !== 'verifyCode') { + opt.dom.addClass('input-error'); + } + return false; +} + +function successInfoAction(opt) { + opt.$checkInfo.html('<div class="form-success"> </div>'); + + if (opt.dom.attr('name') !== 'code' && opt.dom.attr('name') !== 'verifyCode') { + opt.dom.removeClass('input-error'); + } + return true; +} + +function checkFormAjax(ajaxData) { + var res; + + $.post(ajaxData.url, ajaxData.data, function(data) { + if (typeof data.code !== 'undefined' && data.code === 200) { + res = successInfoAction(ajaxData.opt); + } else { + ajaxData.txt = ajaxData.txt !== '' && ajaxData.txt !== null ? ajaxData.txt : data.message; + res = errorInfoAction(ajaxData.opt, ajaxData.txt); + } + }); + + return res; +} + +// 身份校验 +function checkForm(dom) { + var val = dom.val(), + len = val.length, + $domParent = dom.parent(), + $checkInfo = $domParent.find('.check-info'), + inputName = dom.attr('name'), + regular = '', + text = '', + mobileValue = '', + opt = { + $checkInfo: $checkInfo, + dom: dom + }, + ajaxData = { + opt: opt + }; + + $checkInfo.html(''); + + if (inputName === 'password') { + if (len === 0) { + return errorInfoAction(opt, '密码不能为空!'); + } else { + $.extend(ajaxData, { + url: '/home/account/checkpassword', + data: { + password: val + }, + txt: '密码错误!' + }); + return checkFormAjax(ajaxData); + } + } else if (inputName === 'verifyCode') { + $.extend(ajaxData, { + url: '/home/account/checkverifycode', + data: { + verifyCode: val + }, + txt: '验证码错误!' + }); + return checkFormAjax(ajaxData); + } else if (inputName === 'email') { + regular = phoneRegx.emailRegx; + + if (val.match(regular) === null) { + return errorInfoAction(opt, '邮箱错误!'); + } else { + $.extend(ajaxData, { + url: '/home/account/checkemail', + data: { + email: val + }, + txt: '' + }); + return checkFormAjax(ajaxData); + } + } else if (inputName === 'mobile') { + regular = phoneRegx.phoneRegx; + text = val.split('-'); + + if (text.length === 1) { + regular = val.match('^1[35847]{1}[0-9]{9}'); + } else { + regular = regular['+' + text[0]].test(text[1]); + } + + if (len === 0) { + return errorInfoAction(opt, '手机号不能为空!'); + } else if (regular === null || !regular) { + return errorInfoAction(opt, '手机号错误!'); + } else { + $.extend(ajaxData, { + url: '/home/account/checkmobile', + data: { + mobile: val + }, + txt: '手机号已经存在!' + }); + return checkFormAjax(ajaxData); + } + } else if (inputName === 'newPwd') { + regular = phoneRegx.pwdValidateRegx; + + if (!regular.test(val)) { + return errorInfoAction(opt, '建议6~20个数字+字母组合!'); + } else { + return successInfoAction(opt); + } + } else if (inputName === 'confirm_password') { + if ($('#newPwd').val() !== val) { + return errorInfoAction(opt, '两次密码不一致!'); + } else { + return successInfoAction(opt); + } + + // else if ($('#newPwd').val() !== '') { + // $('#newPwd').next().html('<div class="form-success"> </div>'); + // return successInfoAction(opt); + // } + } else if (inputName === 'code') { + mobileValue = $('#realAccount').length > 0 ? $('#realAccount').val() : $('#mobilevalue').val(); + + if (val !== '') { + $.extend(ajaxData, { + url: '/home/account/checkmobilemsg', + data: { + mobile: mobileValue, + code: $('#inputcode').val() + }, + txt: '验证码错误!' + }); + return checkFormAjax(ajaxData); + } + } else { + return true; + } +} + +// 校验表单 +function checkAllForm() { + var arr = []; + + canFlag = false; + + $.each($checkInput, function(key, item) { + arr[key] = checkForm($(item)); + }); + + if (arr.indexOf(false) >= 0) { + canFlag = true; + return false; + } else { + return true; + } +} + +// 切换验证码 +function changeCode() { + var timestamp = (new Date()).getTime(); + + $('#the-code-img').attr('src', '/passport/images?len=6&time=' + timestamp); +} + +// 重新发送倒计时 +function code() { + var sstring = ''; + + if (stime > 0) { + sstring = '重新发送' + stime + '秒'; + $('#sendButton').text(sstring); + stime = stime - 1; + } else { + stime = 60; + $('#sendButton').text('发送验证码'); + clearInterval(sInt); + canSend = true; + } +} + +// 发送手机验证码ajax请求 +function sendMobileMsg(mobileV) { + var $code = $('#inputcode'), + $ccheckInfo = $code.parent().find('check-info'); + + $.post('/home/account/sendmobilemsg', { + mobile: mobileV + }, function(data) { + if (typeof data.code !== 'undefined' && data.code === 200) { + canSend = false; + sInt = setInterval(function() { + code(); + }, 1000); + $ccheckInfo.html(''); + } else { + $ccheckInfo.html('<div class="form-error">验证码发送失败</div>'); + } + }); +} + +// 发送手机验证码 +function sendcode() { + var $mobile = $('#mobilevalue'); + + var $mcheckInfo, + mobileV, + mobileObj; + + if ($mobile.length > 0) { + $mcheckInfo = $mobile.next(), + mobileV = $mobile.val(), + mobileObj = mobileV.split('-'); + + if (mobileObj.length === 1) { + mobileObj = mobileV.match('^1[35847]{1}[0-9]{9}'); + } else { + mobileObj = phoneRegx.phoneRegx['+' + mobileObj[0]].test(mobileObj[1]); + } + } else { + mobileV = $('#realAccount').val(); + } + + if (canSend) { + if ($mobile.length > 0) { + if (mobileObj === null || !mobileObj) { + $mcheckInfo.html('<div class="form-error">手机号错误!</div>'); + $mobile.addClass('input-error'); + return false; + } + + if ($mcheckInfo.find('.form-success').length > 0) { + sendMobileMsg(mobileV); + } + } + + if ($('#realAccount').length > 0) { + sendMobileMsg(mobileV); + } + } else { + return false; + } +} + +// 验证完成后倒计时跳转 +function toHome() { + window.location.href = '/home/account'; +} + +// ajax公共处理模块 +function ajaxAction(opt, flag) { + $.post(opt.url, opt.data, function(data) { + if (data.code === 200) { + if (flag) { + opt.hrefUrl += '&checkCode=' + data.data; + } + window.location.href = opt.hrefUrl; + } else { + canFlag = true; + active = new Alert(data.message); + active.show(); + return false; + } + }, 'json'); +} + +// 提交表单 +function submitForm() { + var step = $('.progress-bar .cur').index(), + verifyType = $('#verifyType').val(), + curType = '', + opt = {}; + + if ($('.email').length > 0) { + curType = 'email'; + } + + if ($('.mobile').length > 0) { + curType = 'mobile'; + } + + if ($('.userpwd').length > 0) { + curType = 'userpwd'; + } + + /* + * step 0: 验证身份 1:验证第二步骤 2:验证第三步骤 + * verifyType 验证身份的状态 1:登录密码验证 2:邮箱的身份验证 3:手机的身份验证 + */ + if (step === 0) { + if (verifyType === '1') { + opt = { + url: '/home/account/verifypassword', + data: $('#pwdform').serialize(), + hrefUrl: '/home/account/' + curType + '?step=2' + }; + + ajaxAction(opt, 'step1'); + + // if (!ajaxAction(opt)) { + // $("input[type=reset]").trigger("click"); + // } + } else if (verifyType === '2') { + opt = { + url: '/home/account/sendemail', + data: { + checkType: curType, + email: $('#realAccount').val() + }, + hrefUrl: '/home/account/sendemailsuccess?email=' + $('#realAccount').val() + + '&type=1&checkType=' + curType + }; + ajaxAction(opt); + } else { + opt = { + url: '/home/account/checkmobilemsg', + data: { + mobile: $('#realAccount').val(), + code: $('#inputcode').val() + }, + hrefUrl: '/home/account/' + curType + '?step=2' + }; + ajaxAction(opt, 'step1'); + } + } else if (step === 1) { + if (curType === 'userpwd') { + opt = { + url: '/home/account/modifypwd', + data: $('#pwdform').serialize(), + hrefUrl: '/home/account/userpwd?step=3&success=true' + }; + ajaxAction(opt); + } else if (curType === 'email') { + opt = { + url: '/home/account/modifyemail', + data: { + email: $('#email').val() + }, + hrefUrl: '/home/account/sendemailsuccess?email=' + $('#email').val() + + '&type=2&checkType=email' + }; + ajaxAction(opt); + } else { + opt = { + url: '/home/account/modifymobile', + data: { + mobile: $('#mobilevalue').val(), + code: $('#inputcode').val() + }, + hrefUrl: '/home/account/mobile?step=3&success=true' + }; + ajaxAction(opt); + } + } +} + +$(function() { + var t = null; + + if ($('.res-info').length > 0) { + t = setTimeout(function() { + toHome(); + }, 5000); + } + + changeCode(); + + $('#pwdform').submit(function() { + return false; + }); + + $checkInput.blur(function() { + checkForm($(this)); + }); + + $('.sub-btn').on('click', function() { + if (canFlag === false) { + return false; + } + + if (checkAllForm()) { + submitForm(); + } else { + return false; + } + }); + + $('input[name=verifyCode]').keydown(function(e) { + if (e.keyCode === 13) { + if (canFlag === false) { + return false; + } + + if (checkAllForm()) { + submitForm(); + } else { + return false; + } + } + }); + + $('.the-code').on('click', function() { + changeCode(); + }); + + $('#send-mobile-code').on('click', function() { + sendcode(); + }); + + if ($('#newPwd').length > 0) { + $('#newPwd').on('input', function(e) { + var $confirm = $('input[name=confirm_password]'), + confirmV = $confirm.val(), + newPwdV = $('#newPwd').val(), + opt = { + dom: $confirm, + $checkInfo: $confirm.next() + }; + + if (confirmV.length > 0 && newPwdV !== confirmV) { + errorInfoAction(opt, '两次密码不一致!'); + } + }); + } +}); +}); +define("js/home/address", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 个人中心页-地址管理 + * @author: wsl<shuiling.wang@yoho.cn> + * @date: 2016/02/24 + */ +var $ = require("jquery"), + regionCode = require("js/home/common-address"), + dialog = require("js/common/dialog"), + Alert = dialog.Alert; + +var active; + +var $del = $('.address-del'), + $edit = $('.address-modify'), + $input = $('.input-1'); + +var address = { + + evil: function(fn) { + var Fn = Function; + + return new Fn('return ' + fn)(); + }, + + clearAddrForm: function() { + $('#addressName').val(''); + $('#address').val(''); + $('#zipCode').val(''); + $('#phone').val(''); + $('#mobile').val(''); + $('#email').val(''); + $('#addrId').val(0); + $('#province').val(0); + $('#city').val(0); + $('#areaCode').val(0).hide(); + $('#btn-reset').hide(); + $('#form-status').html('添加新地址'); + }, + + editAddr: function(id) { + $.getJSON('/home/address/editAddress?id=' + id, function(jsonData) { + if (jsonData.code === 200) { + $('#form-status').html('修改地址'); + $('#addressName').val(jsonData.data.consignee); + + regionCode.loadAllData(jsonData.data.area_code, {}); + $('#address').val(jsonData.data.address); + $('#email').val(jsonData.data.email); + $('#phone').val(jsonData.data.phone); + $('#mobile').val(jsonData.data.mobile); + $('#zipCode').val(jsonData.data.zip_code); + $('#addrId').val(jsonData.data.address_id); + $('#btn-reset').show(); + } + }); + }, + + saveAddr: function(callbackFunc) { + $.post('/home/address/saveAddress', $('#address-form').serialize(), function(data) { + if (data.code === 200) { + location.reload(); + } else { + active = new Alert(data.message); + active.show(); + } + }, 'json'); + }, + + // 删除地址 + delAddr: function(addrId) { + $.getJSON('/home/address/delAddress?id=' + addrId, function(jsonData) { + if (jsonData.code === 200) { + $('.address-list').find('li[addressId=' + addrId + ']').remove(); + if (addrId === $('#addrId').val()) { + address.clearAddrForm(); + } + } else { + active = new Alert('删除失败'); + active.show(); + } + }); + }, + + setDefaultAddr: function(addrId) { + var oldBtn = $('.address-list').find('.default-btn'), + oldLi = $('.address-list').find('.default-btn').parents('li'), + curLi = $('.address-list').find('li[addressId=' + addrId + ']'), + curBtn = curLi.find('.set-default-btn'); + + $.getJSON('/home/address/defaultAddress?id=' + addrId, function(jsonData) { + if (jsonData.code === 200) { + oldBtn.attr('class', 'btn-c3 set-default-btn'); + oldLi.removeClass('preferred'); + oldBtn.html('<span>设为常用地址</span>'); + curBtn.attr('class', 'btn-c2 default-btn'); + oldBtn.html('<span>设为常用地址</span>'); + curLi.addClass('preferred'); + } else { + active = new Alert('设置失败'); + active.show(); + } + }); + } +}; + +if (!Array.prototype.indexOf) { + Array.prototype.indexOf = function(obj, start) { + var i, + j; + + for (i = (start || 0), j = this.length; i < j; i++) { + if (this[i] === obj) { + return i; + } + } + + return -1; + }; +} + +// 获取地址id +function getAddressId(dom) { + var li = dom.parents('.address-content'), + id = li.attr('addressId'); + + return id; +} + +//表单焦点显示 +function focusAction(opt) { + var msg = ''; + + if (opt.inputName === 'addressName') { + msg = '真实姓名在2到5个汉字之间'; + } + + if (opt.inputName === 'address') { + msg = '请填写详细地址'; + } + + if (opt.inputName === 'zipCode') { + msg = '请输入收货人所在地邮编号'; + } + + if (opt.inputName === 'phone') { + msg = '格式例如:0577-88888888'; + } + + if (opt.inputName === 'mobile') { + msg = '请输入手机号,如1360000000'; + } + + if (opt.inputName === 'email') { + msg = '用来接收订单提醒邮件,便于您及时了解订单状态'; + } + + opt.$checkInfo.removeClass('form-prompt').addClass('form-focus').html(msg); +} + +//表单失去焦点显示 +function blurAction(opt) { + var regular = '', + res = true, + msg = '输入正确', + domClass = 'form-info form-success', + value = opt.val; + + if (opt.inputName === 'addressName') { + regular = /^[\u4e00-\u9fa5]{2,5}$/; + + if (opt.len < 1 || opt.len > 12) { + msg = '真实姓名在2到5个汉字之间,请确认'; + res = false; + domClass = 'form-info form-error'; + } else if (regular.test(opt.val) === false) { + msg = '真实姓名至少2个中文,最多5个中文'; + res = false; + domClass = 'form-info form-error'; + } + } + + if (opt.inputName === 'address') { + if (opt.len < 2) { + msg = '请填写详细地址'; + res = false; + domClass = 'form-info form-error'; + } + } + + if (opt.inputName === 'zipCode') { + regular = /^[0-9]{6}$/; + + if (opt.len === 0) { + msg = '请输入收货人所在地邮编号'; + res = false; + domClass = 'form-info form-error'; + } else if (regular.test(opt.val) === false) { + msg = '你输入的邮编式不正确'; + res = false; + domClass = 'form-info form-error'; + } + } + + if (opt.inputName === 'phone') { + regular = /^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$/; + + if (opt.len === 0) { + msg = '你真的不想留联系电话了吗?'; + res = true; + domClass = 'form-info form-success'; + } else if (regular.test(opt.val) === false) { + msg = '你输入的联系电话格式不正确'; + res = false; + domClass = 'form-info form-error'; + } + } + + if (opt.inputName === 'mobile') { + regular = /^1[3|4|5|8|7][0-9]{9}$/; + + if (opt.len !== 11) { + msg = '手机号码必须是11位的,请确认'; + res = false; + domClass = 'form-info form-error'; + } else if (regular.test(opt.val) === false) { + msg = '您输入的手机号格式不正确'; + res = false; + domClass = 'form-info form-error'; + } + } + + if (opt.inputName === 'email') { + regular = '^[a-z0-9_\-]+(\.[_a-z0-9\-]+)*@([_a-z0-9\-]+\.)+([a-z]{2}|aero|arpa|biz|com|coop|' + + 'edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$'; + + if (value.match(regular) === null || opt.len === 0) { + msg = '你输入的邮件地址格式不正确'; + res = false; + domClass = 'form-info form-error'; + } + } + + opt.$checkInfo.removeClass().addClass(domClass).html(msg); + return res; +} + + +// 地址表单验证 +function checkAddressForm(dom, action) { + var val = dom.val(), + $domParent = dom.parent(), + opt = { + val: val, + len: val.length, + $domParent: dom.parent(), + $checkInfo: $domParent.find('span'), + inputName: dom.attr('name') + }; + + if (action === 'focus') { + focusAction(opt); + } + + if (action === 'blur') { + return blurAction(opt); + } +} + +function fullOneValidator() { + var phone = $('#phone').next(), + mobile = $('#mobile').next(); + + if (mobile.hasClass('form-success') && !phone.hasClass('form-error') && $('#phone').val().length === 0) { + phone.removeClass().addClass('form-prompt form-info').html('请输入你的联系电话,可以为空哦'); + return true; + } else if (phone.html() === '输入正确' && !mobile.hasClass('form-error') && $('#mobile').val().length === 0) { + mobile.removeClass().addClass('form-prompt form-info').html('填写手机号便于接收发货和收货通知'); + return true; + } else if (!mobile.hasClass('form-success') && phone.html() !== '输入正确') { + phone.removeClass().addClass('form-success form-info').html('你真的不想留联系电话了吗?'); + mobile.removeClass().addClass('form-prompt form-info').html('填写手机号便于接收发货和收货通知'); + $('#mobile').focus(); + return false; + } +} + +//校验所有内容 +function checkAllForm() { + var arr = []; + + $.each($input, function(key, item) { + arr.push(checkAddressForm($(item), 'blur')); + }); + + arr.push(fullOneValidator()); + + $.each($('.form-info'), function(key, item) { + if ($(item).hasClass('form-error')) { + $(item).prev().focus(); + return false; + } + }); + + + if (arr.indexOf(false) === -1) { + return true; + } else { + return false; + } +} + +$(document).on('click', '.set-default-btn', function() { + var id = getAddressId($(this)); + + address.setDefaultAddr(id); +}); + +$del.on('click', function() { + var id = getAddressId($(this)); + + address.delAddr(id); +}); + +$edit.on('click', function() { + var id = getAddressId($(this)); + + address.editAddr(id); + $('#btn-reset').show(); +}); + +$input.on('focus', function() { + checkAddressForm($(this), 'focus'); +}); + +$input.on('blur', function() { + checkAddressForm($(this), 'blur'); +}); + +$('#address-info').on('click', function() { + if (checkAllForm()) { + address.saveAddr(); + } +}); + +$(document).ready(function() { + regionCode.loadAllData( + 0, + { + provinceDomId: 'province', + cityDomId: 'city', + areaDomId: 'areaCode' + } + ); + + address.clearAddrForm(); + + $('#btn-reset').click(function() { + address.clearAddrForm(); + }); +}); +}); +define("js/help/entry", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 帮助中心页js打包入口文件 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/3/23 + */ + +require("js/help/search"); +}); +define("js/help/search", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * 我的信息 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/3/23 + */ +var $ = require("jquery"), + Handlebars = require("handlebars"); + +var $searchMain = $('.search-content'), + $dialog = $('#help-dialog-widget'), + $dialogBg = $('#help-dialog-bg'); + +var docW = $(document).width(), + winH = $(window).height(); + +var tpl = + '<div class="dialog-titlebar">' + + '<span class="dialog-close-btn"></span>' + + '</div>' + + '<div class="dialog-content">' + + '<p class="ask">问:<br>{{ask}}</p>' + + '<p class="answer">答:<br>{{answer}}</p>' + + '</div>'; + +var tplFn = Handlebars.compile(tpl); + +$searchMain.on('click', '.faqs', function() { + var data = $(this).data(), + top = $(document).scrollTop(); + + $dialog.html(tplFn(data)).removeClass('hide'); + $dialogBg.removeClass('hide'); + + $dialog.html(tplFn(data)).css({ + top: top + (winH - $dialog.outerHeight()) / 2, + left: (docW - $dialog.outerWidth()) / 2 + }); +}); + +$dialog.on('click', '.dialog-close-btn', function() { + $dialog.addClass('hide'); + $dialogBg.addClass('hide'); +}); +}); +define("js/order/ensure", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * @description: 订单保存 + * @time: 2015/12/21 + */ + +var $ = require("jquery"); + +var address = require("js/order/address"); + +var dialog = require("js/common/dialog"); + +var accMul = function(arg1, arg2) { + var m = 0, + s1 = arg1.toString(), + s2 = arg2.toString(); + + try { + m += s1.split('.')[1].length; + } catch (e) { + } + try { + m += s2.split('.')[1].length; + } catch (e) { + } + return Number(s1.replace('.', '')) * Number(s2.replace('.', '')) / Math.pow(10, m); +}; + +var Order = { + /*业务数据(人民币)*/ + Data: { + product: 0, //商品价格 + activity: 0, //活动 + carriage: 0, //邮费 + juan: 0, //优惠卷 + yohocoin: 0 //YOHO币 + }, + /*view 交互*/ + UI: { + e: { + $pan: $('.pan'), + $jc: $('#juancode'), + $bp: $('#biprice'), + $statistics: $('li', '.play-total'), + $tobi: $('p em', '.play-bi-pan .play-pan'), + $cancel: $('.cancel', '.btn-group'), + $total: $('em', '.to-play'), + $tbody: $('table tbody', '.pay-wapper'), + + //请填写并核对一下信息 + $orderSelectionSave: $('.address-list h2 span'), + $addAddress: $('.add-address'), + $addressManage: $('.address-manage'), + $spanPayTypeLegend: $('span.pay-type-legend'), + $supportType: $('.support-type'), + $existAddressListWrap: $('.exist-address-list'), + $existAddressList: $('.exist-address-list').find('li'), + $existAddress: $('.exist-address-list').find('input[name="exist-address"]'), + $payTimeModify: $('.pay-time-modify'), + $switchPayModify: $('.switch-pay-modify'), + $modityPayInfo: $('.modity-pay-info'), + $payTotal: $('.play-total'), + $toPay: $('.to-play em'), + $redEnvelopes: $('.red-envelopes'), + $useEnvelopes: $('.use-envelopes'), + $hasEnvelopes: $('.has-envelopes span'), + $useEnvelopesInput: $('.use-envelopes').find('input'), + $expressFee: $('.express-fee') + }, + init: function() { + var e = this.e, + d = Order.Data, + c = Order.Common; + + //初始化产品价格(表格中的价格) + e.$tbody.find('tr').each(function(index) { + + var td = $(this).find('td'); + var len = e.$tbody.find('tr').length; + var subtotal = parseFloat(td.eq(1).html()) * parseInt(td.eq(3).html()); + + td.eq(1).html('¥' + td.eq(1).html()); + + if (td.hasClass('xforone')) { + td.eq(4).find('del').html('¥' + c.strFixed(subtotal)); + subtotal = 0; + } else { + td.eq(4).html('¥' + c.strFixed(subtotal)); + } + d.product += subtotal; + if (!index) { + td.last().attr('rowspan', len); + } else { + td.last().remove(); + } + if (index === len - 1) { + e.$tbody.find('tr').eq(0).find('td').last().html('<strong>¥' + c.strFixed(d.product) + '</strong>'); + } + }); + + // 使用优惠券、使用yoho币点击展开 + e.$pan.find('dt').click(function() { + + var pan = $(this).parent('dl.pan'); + + if (pan.find('dd').is(':hidden')) { + c.winShow(pan); + + $(this).addClass('active'); + } else { + c.winHide(pan); + + $(this).removeClass('active'); + } + + }); + + //请填写并核对一下信息 + e.$orderSelectionSave.click(function() { + var i = 0, + $addressLi = $('.exist-address-list li'), + liLen = $addressLi.length, + notSelect = 0; + + if (!$(this).attr('expand')) { + + $(this).attr('expand', 'expand').text('[不保存并关闭]'); + + $('.exist-address-list li').removeClass('hide'); + + $('.save-btn').removeClass('hide'); + + e.$existAddressListWrap.addClass('address-expand'); + + if (liLen === 1) { + e.$addressManage.removeClass('hide'); + } + + } else { + + for (i = 0; i < liLen; i++) { + + if ($addressLi.eq(i).hasClass('address_select')) { + notSelect++; + } + + if (!$addressLi.eq(i).hasClass('address_select')) { + $addressLi.eq(i).addClass('hide'); + } + } + + if (notSelect === 0) { + $('.exist-address-list li:not(".use-new-address")').removeClass('hide'); + + $('.use-new-address input').removeAttr('checked'); + } + + $('.address-list-inner li.address_select input').attr('checked', 'checked'); + $('.address-list-inner li').removeClass('active'); + $('.address-list-inner li.address_select').addClass('active'); + + $(this).removeAttr('expand').text('[修改]'); + + $('.save-btn').addClass('hide'); + + e.$existAddressListWrap.removeClass('address-expand'); + + e.$addressManage.addClass('hide'); + } + + }); + + + //支付及送货时间 + e.$switchPayModify.click(function() { + + if (e.$payTimeModify.hasClass('hide')) { + e.$payTimeModify.removeClass('hide'); + e.$modityPayInfo.addClass('hide'); + $(this).text('[不保存并关闭]'); + } else { + e.$payTimeModify.addClass('hide'); + e.$modityPayInfo.removeClass('hide'); + $(this).text('[修改]'); + + e.$payTimeModify.find('input[name="pay-type"]').filter('.checked').attr('checked', 'checked'); + e.$payTimeModify.find('input[name="pay-time-radio"]').filter('.checked').attr('checked', 'checked'); + e.$payTimeModify.find('input[name="call-me"]').filter('.checked').attr('checked', 'checked'); + } + }); + + e.$spanPayTypeLegend.click(function() { + $(this).toggleClass('active'); + + e.$supportType.toggleClass('hide'); + }); + + $(document).on('click', '.exist-address-list li', function() { + + $('.exist-address-list li').removeClass('active'); + + $(this).addClass('active'); + + $(this).find('input').attr('checked', 'checked'); + + if ($(this).hasClass('use-new-address')) { + e.$addressManage.removeClass('hide'); + + $('.address-manage input').val(''); + + $('.save-btn').removeAttr('data-id'); + + // 0表示获取所有省的列表,'000000'表示无匹配的区域码 + address.newAddress(0, '000000'); + } + }); + }, + + //渲染价格明细 + render: function(data, tips) { + + // 下面这段是在服务端算价格 + var e = this.e, + i, + dArr = data.promotion_formula_list, + packageList = data.package_list, + str = '', + isExpress = ''; + + var tipsStr; + + var envelopesVal; + + if (!!tips) { + tipsStr = tips; + } else { + tipsStr = ''; + } + + for (i = 0; i < dArr.length; i++) { + + if (dArr[i].promotion === '优惠券:') { + dArr[i].promotion = (tipsStr ? tipsStr : '优惠券') + '<span class="juan-modify">[修改]</span>:'; + } + + if (dArr[i].promotion === 'YOHO币:') { + dArr[i].promotion = 'YOHO币<span class="bi-modify">[修改]</span>:'; + } + + if (dArr[i].isExpress) { + isExpress = 'total-express-w'; + } else { + isExpress = ''; + } + + str += '<li class="' + isExpress + '">' + + '<label>' + dArr[i].promotion + '</label>' + + '<em>' + dArr[i].promotion_amount + '</em>' + + '</li>'; + } + + e.$payTotal.html(str); + e.$toPay.html((data.last_order_amount).toFixed(2)); + + //有货币清零状态更新 + $('#biprice').val(accMul(100, data.use_yoho_coin)); + if (~~data.use_yoho_coin === 0) { + $('.errbitip').text(''); + } else { + $('.errbitip').text('抵扣' + data.use_yoho_coin.toFixed(2) + '元'); + } + + envelopesVal = e.$useEnvelopesInput.data('all') - data.use_red_envelopes; + + if (~~data.use_red_envelopes > 0) { + e.$useEnvelopes.find('span').html('-¥' + data.use_red_envelopes.toFixed(2)); + e.$useEnvelopes.find('input').attr('data-use', data.use_red_envelopes); + } else { + e.$useEnvelopes.find('span').html('-¥0.00'); + e.$hasEnvelopes.html('¥' + (e.$useEnvelopesInput.attr('data-all') * 1).toFixed(2)); + e.$redEnvelopes.removeClass('active'); + e.$useEnvelopesInput.prop('checked', false); + } + e.$hasEnvelopes.html('¥' + envelopesVal.toFixed(2)); + + if (packageList) { + e.$expressFee.each(function(index, expressCost) { + var orignCost = packageList[index].shopping_orig_cost, + disCount = packageList[index].shopping_cut_cost, + realCost = packageList[index].shopping_cost; + + var cost = parseInt(orignCost) === 0 ? + '运费:¥0.00元' : + '运费:¥' + realCost + '元(原价' + orignCost + '元,优惠' + disCount + ')元'; + + $(expressCost).text(cost); + }); + } + } + }, + /*公共方法*/ + Common: { + enterNUM: function(str1, str2) { + str1 = str1.replace(/[^\d]/g, ''); + if (str1 && str2) { + str1 = parseInt(str1); + str2 = parseInt(str2); + if (str1 > str2) { + str1 = str2; + } + } + return str1; + }, + calucate: function() { + var p = Order.Data; + + $.each(Order.Data, function(key, index) { + p[key] = parseFloat(Order.Data[key]); + }); + return p.product - p.activity + p.carriage - p.juan - p.yohocoin; + }, + winShow: function(pan) { + pan.find('dt').show(); + pan.find('dd').show(); + if (pan.attr('class').match(/(-bi-)|(-juan-)/g)) { + pan.find('dt').hide(); + } + }, + winHide: function(pan) { + pan.find('dt').show(); + pan.find('dd').hide(); + + /*if (pan.hasClass('play-juan-pan') && $('.juan-modify').length > 0) { + pan.find('dt').hide(); + } + + if (pan.hasClass('play-bi-pan') && $('.bi-modify').length > 0) { + pan.find('dt').hide(); + }*/ + }, + strFixed: function(str) { + return parseFloat(str).toFixed(2); + } + }, + /*业务逻辑*/ + Bll: { + e: { + $juanok: $('#juansubmit'), + $juantip: $('.errtip', '.play-juan-pan'), + $biok: $('#bisubmit'), + $carriageGroup: $('input[name="carriagegroup"]'), + $selectExpress: $('.express-list input'), + $bp: $('#biprice'), + $errorTip: $('.errbitip'), + $useEnvelopes: $('.use-envelopes'), + $hasEnvelopes: $('.has-envelopes span'), + $useEnvelopesInput: $('.use-envelopes').find('input'), + $redEnvelopes: $('.red-envelopes'), + $loading: $('.loading') + }, + init: function() { + var e = this.e, + u = Order.UI, + options, + c = Order.Common, + envelopesVal; + + function getSelectData(callback) { + + var $juangroupInput = $('.play-juan.is-select input[name="juangroup"]:checked'); + var expressVal = $('.express-list input[name="carriagegroup"]:checked').val(); + var biVal = $('#biprice.is-select').val(); + var codeVal = $juangroupInput.val(); + var cartType = $('.address-manage').attr('cart-type'); + var redEnvelopes = $('.use-envelopes input:checked').attr('data-use'); + var resultData; + + codeVal = codeVal ? codeVal : $juangroupInput.closest('li').find('#juancode').val(); + + resultData = { + cartType: cartType, + deliveryWay: expressVal, + couponCode: codeVal, + yohoCoin: biVal + + //redEnvelopes: e.$useEnvelopesInput.length > 0 ? ~~e.$hasEnvelopes.text().substring(1) : '0' + }; + + if (!!redEnvelopes) { + resultData.redEnvelopes = redEnvelopes; + } + + callback(resultData); + + } + + // 选择快递 + e.$selectExpress.click(function() { + + var expressId = $(this).val(); + + e.$loading.show(); + + getSelectData(function(d) { + + d.deliveryWay = expressId; + + options = { + type: 'POST', + url: '/cart/index/orderCompute', + data: d, + success: function(data) { + e.$loading.hide(); + + if (data.code === 200) { + u.render(data.data); + + if (expressId === '1') { + + $('.express-list.sf').addClass('hide'); + } else if (expressId === '2') { + $('.express-list.sf').removeClass('hide'); + } + } else { + new dialog.Alert(data.message).show(); + } + } + }; + + $.ajax(options); + }); + }); + + //点击 优惠卷支付 确认按钮 + e.$juanok.click(function() { + + var pan = $(this).parents('dl.pan'); + + var juanText = ''; + + $('.play-juan').addClass('is-select'); + + getSelectData(function(d) { + + var code = d.couponCode; + + if (!code) { + + e.$juantip.html('请选择或填写一个优惠券'); + $('.play-juan').removeClass('is-select'); + + } else { + + e.$loading.show(); + + options = { + type: 'POST', + url: '/cart/index/orderCompute', + data: d, + success: function(data) { + + e.$loading.hide(); + + if (data.code === 200) { + + juanText = $('.play-juan input[value="' + code + '"]').next().text(); + u.render(data.data, juanText); + + //$('#juancode').val(code); + + c.winHide(pan); + e.$juantip.html(''); + + //$('.play-juan-pan dt').hide(); + + } else { + e.$juantip.html(data.message); + $('.play-juan').removeClass('is-select'); + } + } + }; + + $.ajax(options); + } + }); + + }); + + // 优惠券修改 + $(document).on('click', '.juan-modify', function() { + + + var $pan = $('.play-juan-pan'); + + c.winShow($pan); + }); + + e.$biok.click(function() { + + var pan = $(this).parents('dl.pan'); + var juanText; + + $('#biprice').addClass('is-select'); + + getSelectData(function(d) { + + if (!!d.couponCode) { + juanText = $('.play-juan input[value="' + d.couponCode + '"]').next().text(); + } + + //if (d.yohoCoin * 1 === 0) { + if (!/^\d+$/.test(d.yohoCoin + '') || d.yohoCoin * 1 === 0) { + $('.errbitip').html('请输入一个正整数'); + $('#biprice').removeClass('is-select'); + + } else if (d.yohoCoin * 1 > $('.play-pan em').text() * 1) { + + $('.errbitip').html('您的YOHO币不足'); + $('#biprice').removeClass('is-select'); + + } else { + e.$loading.show(); + + options = { + type: 'POST', + url: '/cart/index/orderCompute', + data: d, + success: function(data) { + + e.$loading.hide(); + + if (data.code === 200) { + + u.render(data.data, juanText); + c.winHide(pan); + + //$('.play-bi-pan dt').hide(); + + } else { + $('.errbitip').html(data.message); + $('#biprice').removeClass('is-select'); + } + } + }; + + $.ajax(options); + } + + }); + }); + + // 修改yoho币 + $(document).on('click', '.bi-modify', function() { + + + var $pan = $('.play-bi-pan'); + + c.winShow($pan); + }); + + e.$bp.keyup(function() { + + var val = $(this).val(); + + //if (val * 1 < 0 || val.indexOf('.') > 0) { + if (!/^\d+$/.test(val + '')) { + e.$errorTip.html('请输入一个正整数'); + } else if (val * 1 > $(this).data('bi') * 1) { + e.$errorTip.html('您的YOHO币不足'); + } else { + e.$errorTip.html('抵扣' + (val / 100).toFixed(2) + '元'); + } + }); + + // 取消yoho 币 + $('.cancel-bi').click(function() { + + + var $pan = $('.play-bi-pan'); + var juanText; + + $('.errbitip').html(''); + + if ($('#biprice').hasClass('is-select')) { + + e.$loading.show(); + + getSelectData(function(d) { + + d.yohoCoin = 0; + + if (!!d.couponCode) { + juanText = $('.play-juan input[value="' + d.couponCode + '"]').next().text(); + } + + options = { + type: 'POST', + url: '/cart/index/orderCompute', + data: d, + success: function(data) { + + e.$loading.hide(); + + if (data.code === 200) { + u.render(data.data, juanText); + c.winHide($pan); + + $('#biprice').val('0'); + + //$('.play-bi-pan dt').hide(); + $('#biprice').removeClass('is-select'); + + $('.errbitip').html(''); + + // $('.use-envelopes input').attr('checked', 'checked'); + // $('.red-envelopes').addClass('active'); + + } else { + $('.errbitip').html(data.message); + } + } + }; + + $.ajax(options); + }); + + } else { + c.winHide($pan); + $('#biprice').val('0'); + } + + }); + + // 取消优惠券 + $('.cancel-code').click(function() { + + var $pan = $('.play-juan-pan'); + + if ($('.play-juan').hasClass('is-select')) { + + e.$loading.show(); + + getSelectData(function(d) { + + d.couponCode = ''; + + options = { + type: 'POST', + url: '/cart/index/orderCompute', + data: d, + success: function(data) { + + e.$loading.hide(); + + if (data.code === 200) { + u.render(data.data); + + c.winHide($pan); + $('.play-juan').removeClass('is-select'); + + $('#juancode').val('') + .siblings('input[name="juangroup"]').attr('checked', 'checked'); + + // $('.use-envelopes input').attr('checked', 'checked'); + // $('.red-envelopes').addClass('active'); + + } else { + e.$juantip.html(data.message); + } + } + }; + + $.ajax(options); + }); + } else { + c.winHide($pan); + } + }); + + + // 红包 + envelopesVal = e.$useEnvelopesInput.data('all') - e.$useEnvelopesInput.data('use'); // 剩余的红包 + e.$hasEnvelopes.text('¥' + envelopesVal.toFixed(2)); + e.$useEnvelopes.find('input').click(function() { + + var $this = $(this), + juanText; + + e.$loading.show(); + + $this.attr('disabled', 'disabled'); + + getSelectData(function(d) { + + if (!!$this.attr('checked')) { + + //d.redEnvelopes = $this.val(); + d.redEnvelopes = $this.data('use'); + + } else { + + d.redEnvelopes = 0; + } + + juanText = $('.play-juan input[value="' + d.couponCode + '"]').next().text(); + + options = { + type: 'POST', + url: '/cart/index/orderCompute', + data: d, + success: function(data) { + e.$loading.hide(); + + if (data.code === 200) { + u.render(data.data, juanText); + + $this.removeAttr('disabled'); + + if (!!$this.attr('checked')) { + e.$redEnvelopes.addClass('active'); + } else { + e.$useEnvelopes.find('span').html('-¥0.00'); + e.$hasEnvelopes.html('¥' + ($this.attr('data-all') * 1).toFixed(2)); + e.$redEnvelopes.removeClass('active'); + } + } else { + + new dialog.Alert(data.message).show(); + } + } + }; + + $.ajax(options); + }); + + }); + + + //发票抬头和备注字数限制 + function limitStrLen($obj, len) { + + var $this = $obj; + + $this.keyup(function() { + + if ($this.val().length > len) { + + $this.val($this.val().substr(0, len)); + } + }); + } + + limitStrLen($('#piaodesc'), 30); + limitStrLen($('#notedesc'), 100); + } + } +}; + +Order.Data.activity = 0; +Order.Data.carriage = 0; + +Order.UI.init(); +Order.Bll.init(); + + +address.getUserAddressList(); + +// 0表示获取所有省的列表,'000000'表示无匹配的区域码 +address.newAddress(0, '000000'); +address.modifyAddress(); +address.saveAddress(); + +//不同订单包裹提示 + +$('.why').click(function() { + $('#differentBag').show(); + return false; + +}); +$('#differentBag').click(function() { + return false; +}); +$(document).click(function() { + $('#differentBag').hide(); +}); + +//订单包裹左右切换 +function lunBo($pre, $next, $ul, $iWidth) { + var i = 1, + j = 1; + + var iSpeed = 0, + isMoving = false; + + $pre.click(function() { + if (isMoving) { + return; + } + + if ($ul.css('left') === '0px') { + iSpeed = 0; + + } else { + iSpeed += j * $iWidth; + isMoving = true; + } + $ul.stop().animate({ + left: iSpeed + }, 300, function() { + isMoving = false; + }); + }); + $next.click(function() { + var $largeLeft = $ul.parent().width() - $ul.width() + 'px'; + + if (isMoving) { + return; + } + + if ($ul.css('left') === $largeLeft) { + $ul.css('left', $largeLeft); + } else { + iSpeed += -i * $iWidth; + isMoving = true; + } + + $ul.stop().animate({ + left: iSpeed + }, 300, function() { + isMoving = false; + }); + }); +} + + + +//订单分类 +$('.bag').find('ul').each(function() { + var $pre = $(this).parent().parent().find('.pre'); + var $next = $(this).parent().parent().find('.next'); + + var $iWidth = $(this).find('li').eq(0).width(); + var $length = $(this).find('li').size(); + var $ulWidth = $iWidth * $length; + + $(this).css('width', $ulWidth); + if ($length > 5) { + $pre.show(); + $next.show(); + lunBo($pre, $next, $(this), $iWidth); + } else { + $pre.hide(); + $next.hide(); + } +}); + +}); +define("js/order/address", ["jquery","handlebars","source-map"], function(require, exports, module){ +/** + * @description: 地址管理 + * @author: chenglong.wang@yoho.cn + */ + +var $ = require("jquery"); +var dialog = require("js/common/dialog"); + + +var isProvinceChecked = false; + +var $addressManage = $('.address-manage'), + $province = $addressManage.find('.text-input[name="province"]'), + $city = $addressManage.find('.text-input[name="city"]'), + $county = $addressManage.find('.text-input[name="county"]'), + $selectList = $addressManage.find('.text-input[name="province"], .text-input[name="city"]'), + $addressList = $('.address-list'), + $name = $addressManage.find('.text-input[name="name"]'), + $phone = $addressManage.find('.text-input[name="phone"]'), + $mail = $addressManage.find('.text-input[name="mail"]'), + $address = $addressManage.find('.text-input[name="address"]'), + $code = $addressManage.find('.text-input[name="code"]'), + $saveBtn = $('.save-btn'), + $telCode = $addressManage.find('.text-input[name="tel-code"]'), + $tel = $addressManage.find('.text-input[name="tel"]'), + $useNewAddress = $('.use-new-address'), + $existAddressList = $('.exist-address-list'), + $loading = $('.loading'), + $orderEditMain = $('#order-edit-main'); + +var cartType = $addressManage.attr('cart-type'); + +$loading.show(); + +// 构建select下拉选项 +function structureOption($obj, data, selectId) { + + var i, + optionHtml = '', + defaultOption, + isStar = ''; + + for (i = 0; i < data.length; i++) { + + if (data[i].is_support_express === 'Y') { + isStar = '*'; + } else { + isStar = ''; + } + + if (data[i].id === selectId) { + optionHtml += '<option selected value="' + data[i].id + '">' + isStar + data[i].caption + '</option>'; + } else { + optionHtml += '<option value="' + data[i].id + '">' + isStar + data[i].caption + '</option>'; + } + } + + + if ($obj.attr('name') === 'province') { + defaultOption = '<option value="0">请选择省份</option>'; + } else if ($obj.attr('name') === 'city') { + defaultOption = '<option value="0">请选择城市</option>'; + + } else if ($obj.attr('name') === 'county') { + defaultOption = '<option value="0">请选择区县</option>'; + } + + $obj.html(defaultOption + optionHtml); +} +/** + * @description: 改函数会返回地址信息 + * d {Object} type: 'getProvince'获取省 type: 'getCity'获取城市 type: 'getCounty'获取县 + * id: 0 && type: 'getProvince' 获取所有省,默认没有选中项 + * id !== 0 && type: 'getProvince' 获取所有省,默认选中用户所在的省 + */ +function getAddress(d, callback) { + + var $obj; + var selectId = d.selectId; + + if (d.type === 'getProvince') { + + //url = 'getProvince'; + $obj = $province; + } else if (d.type === 'getCity') { + + //url = 'getCity'; + $obj = $city; + } else if (d.type === 'getCounty') { + + //url = 'getCounty'; + $obj = $county; + } + + $.ajax({ + type: 'GET', + url: '/cart/index/getAreaList', + dataType: 'json', + data: { + id: d.id * 1 + } + }).then(function(d) { + + structureOption($obj, d.data, selectId); + + if (typeof callback === 'function') { + callback(); + } + + }); +} + +//手机号码****处理 +function setPhoneStar(pn) { + return pn.replace(/^(\d{3}).*(\d{4})$/, '$1****$2'); +} + +// 修改地址时把用户信息带过来 +function getUserInfo($obj) { + + $name.val($obj.attr('data-name')); + $name.attr('data-id', $obj.attr('data-id')); + $address.val($obj.attr('data-addressDesc')); + $phone.val($obj.attr('data-mobile')); + $mail.val($obj.attr('data-email')); + $code.val($obj.attr('data-zipcode')); + $telCode.val($obj.attr('data-phoneCode')); + $tel.val($obj.attr('data-phoneNum')); +} + +// 更新地址列表状态 +function refreshAddressStatus() { + $useNewAddress.removeClass('active'); + $existAddressList.find('li:not(".active")').addClass('hide'); + $existAddressList.find('li.active').addClass('address_select'); + $addressManage.addClass('hide'); + $saveBtn.addClass('hide').removeAttr('data-id'); //清除data-id + $existAddressList.removeClass('address-expand'); + $('.address-list h2 span').text('[修改]'); +} + +//获取用户已经存在的地址列表 +exports.getUserAddressList = function() { + + var addressData, + i, + addressStr = '', + isChecked = '', + isHide = '', + addressText = '', + hasDefault = 0; + + $.ajax({ + type: 'GET', + url: '/cart/index/getAddress', + dataType: 'json' + }).then(function(d) { + + $loading.hide(); + + if (d.code === 200) { + + addressData = d.data.list; + + if (!addressData) { + + // 新用户引导 + if (!!$orderEditMain.attr('data-new')) { + + $saveBtn.addClass('new-user-btn').html('下一步:选择支付及送货时间'); + + $('.pay-btn').addClass('new-user-pay').html('下一步:发票和备注'); + + $('.switch-pay-modify').html(''); + + } + + $addressList.find('>h2').find('span').click(); + + $('.exist-address-list li').click(); + + $('.use-new-address').removeClass('active'); + + return; + + } + + for (i = 0; i < addressData.length; i++) { + + if (addressData[i].checked) { + + isChecked = 'checked'; + isHide = 'active address_select'; + hasDefault++; + addressText = '默认地址'; + + } else { + isChecked = ''; + isHide = 'hide'; + addressText = '设为默认地址'; + } + + addressStr += + '<li data-id="' + addressData[i].id + '" class="' + isHide + + '" data-express="' + addressData[i].isSupport + '">' + + '<input data-name="' + addressData[i].user + + '" data-areaCode="' + addressData[i].areaCode + + '" data-addressDesc="' + addressData[i].addressDesc + + '" data-mobile="' + addressData[i].mobile + + '" data-phoneNum="' + addressData[i].phoneNum + + '" data-phoneCode="' + addressData[i].phoneCode + + '" data-zipCode="' + addressData[i].zipCode + + '" data-email="' + addressData[i].email + + '" class="radio" type="radio" name="address" ' + isChecked + ' />' + + '<label for="">' + + '<strong>' + addressData[i].user + '</strong>' + addressData[i].address + + '<a href="javascript:void(0);" class="default-address">' + addressText + '</a>' + + '<div class="order-modify-btn">' + + '<span class="address-modify">[修改]</span>' + + '<span class="address-del">[删除]</span>' + + '</div>' + + '</label>' + + '</li>'; + } + + $('.use-new-address').before($(addressStr)); + + //说明用户的地址列表没有默认地址 + if (hasDefault === 0) { + + //没有默认地址则把所有地址都显示出来 + //$('.exist-address-list li:not(".use-new-address")').removeClass('hide'); + $('.address-list h2 span').click(); + } + + if ($('.active.address_select').attr('data-express') === 'N') { + $('.express-list input[name="carriagegroup"][value="2"]').attr('disabled', 'disabled'); + $('.express-list input[name="carriagegroup"][value="1"]').attr('checked', 'checked'); + $('.express-list.sf').addClass('hide'); + $('.is-sup').removeClass('hide'); + } else { + $('.express-list input[name="carriagegroup"][value="2"]').removeAttr('disabled'); + $('.express-list.sf').removeClass('hide'); + $('.is-sup').addClass('hide'); + } + + } + + }); +}; + +/* + * 添加地址&修改地址 + * id: 根据id获取省市区列表 + * code: 根据code确定是否选中省市区 + */ +exports.newAddress = function(id, code) { + + var pId = id || 0; //如果没有传id则获取所有省列表 + + var addressCodeReg = /[0-9]{2}/gi; + + var codeId = !!code && code.match(addressCodeReg); + + //获取省 + getAddress({ + id: pId, + type: 'getProvince', + selectId: codeId[0] + }, function() { + + var provinceId = $province.val(); + + if (provinceId !== '0') { + + //如果获取的省有默认选中项则获取市 + getAddress({ + id: provinceId, + type: 'getCity', + selectId: '' + codeId[0] + codeId[1] + }, function() { + + var cityId = $city.val(); + + //如果获取的市有默认选中项则获取县 + if (cityId !== '0') { + getAddress({ + id: cityId, + type: 'getCounty', + selectId: code + }); + } + }); + } else { + $addressManage.find('select[name="city"]').html('<option value="0">请选择城市</option>'); + $addressManage.find('select[name="county"]').html('<option value="0">请选择区县</option>'); + } + }); + + // 发生change事件时获取下一级地址 + $selectList.change(function() { + + var $this = $(this); + + if ($this.attr('name') === 'province') { + + if ($this.val() === '0') { + $addressManage.find('select[name="city"]').html('<option value="0">请选择城市</option>'); + $addressManage.find('select[name="county"]').html('<option value="0">请选择区县</option>'); + } else { + getAddress({ + id: $this.val(), + type: 'getCity' + }, function() { + isProvinceChecked = true; + }); + $addressManage.find('select[name="county"]').html('<option value="0">请选择区县</option>'); + } + } + + if ($this.attr('name') === 'city' && isProvinceChecked) { + + if ($this.val() === '0') { + $addressManage.find('select[name="county"]').html('<option value="0">请选择区县</option>'); + } else { + getAddress({ + id: $this.val(), + type: 'getCounty' + }); + } + } + }); +}; + +//修改地址 +exports.modifyAddress = function() { + + $addressList.click(function(event) { + + var $this = $(event.target), + id = $this.closest('li').attr('data-id'), + areaCode = $this.closest('li').find('.radio').attr('data-areaCode'); + + if ($this.hasClass('address-modify')) { + $addressManage.removeClass('hide'); + exports.newAddress(0, areaCode); + getUserInfo($this.closest('li').find('.radio')); + $('.address-list-inner .save-btn').removeClass('hide'); + $saveBtn.attr('data-id', id); + isProvinceChecked = true; + } else if ($this.hasClass('address-del')) { + + $loading.show(); + + $.ajax({ + type: 'POST', + url: '/cart/index/delAddress', + data: { + id: id + } + }).then(function(d) { + + $loading.hide(); + + if (d.code === 200) { + + $this.closest('li').remove(); + } else { + new dialog.Alert(d.message).show(); + } + }).fail(function() { + + //todo + }); + } else if ($this.hasClass('default-address') && !$this.parents('li').hasClass('address_select')) { + + $loading.show(); + + // 设为默认地址 + $.ajax({ + type: 'post', + url: '/cart/index/setDefaultAddress', + data: { + id: id + } + }).then(function(d) { + + $loading.hide(); + + if (d.code === 200) { + + $('.exist-address-list li').removeClass('address_select') + .find('.default-address').text('设为默认地址'); + $this.parents('li').addClass('address_select'); + $this.text('默认地址'); + + } else { + new dialog.Alert(d.message).show(); + } + }); + } + }); +}; + +// 保存地址并送到这个地址 +exports.saveAddress = function() { + $saveBtn.click(function() { + + var $this = $(this); + + var name = $name.val(), + province = $province.val(), + city = $city.val(), + county = $county.val(), + address = $address.val(), + phone = $phone.val(), + telCode = $telCode.val(), + tel = $tel.val(), + mail = $mail.val(), + code = $code.val(); + + var provinceText = $province.find('option[value="' + province + '"]').text().replace(/\*/, ''), + cityText = $city.find('option[value="' + city + '"]').text().replace(/\*/, ''), + countyText = $county.find('option[value="' + county + '"]').text().replace(/\*/, ''); + + + var postData = { + consignee: name, + areaCode: county, + address: address, + email: mail, + mobile: phone, + zipCode: code, + phoneCode: telCode, + phoneNum: tel + }; + + var addressStr; + var $modifyLi; + var hasCheckedAddress; + + var nameReg = /^[\u4e00-\u9fa5]{2,5}$/; + var addressReg = /^[\s\S]{2,100}$/; + var phoneReg = /^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/; + var codeReg = /^[0-9]{6}$/; + var emailReg = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; + var telCodeReg = /^[0-9]{3,5}$/; + var telReg = /^[0-9]{5,10}$/; + + + function hasText(val) { + + if (val === telCode) { + + if (!!val) { + return val + '-'; + } else { + return ' '; + } + + } else { + if (!!val) { + return val + ' '; + } else { + return ' '; + } + } + } + + hasCheckedAddress = $('.exist-address-list li:not(".use-new-address")') + .find('input[name="address"]:checked').length > 0; + + // 说明是送货到这个地址 + if (!$('.add-address').attr('checked') && hasCheckedAddress && !$('.save-btn').attr('data-id')) { + + $('.exist-address-list li').removeClass('address_select'); + $('.exist-address-list li.active').addClass('address_select') + .find('input[name="address"]').attr('checked', 'checked'); + + $('.address-list span').removeAttr('expand'); + + refreshAddressStatus(); + + } + + //if (!!$('.add-address').attr('checked')) { + if (!$('.address-manage').hasClass('hide')) { + + if (!nameReg.test(name)) { + new dialog.Alert('真实姓名至少2个中文,最多5个中文').show(); + return; + } + if (!addressReg.test(address)) { + new dialog.Alert('你输入的地址格式不正确').show(); + return; + } + if (!phoneReg.test(phone)) { + new dialog.Alert('你输入的联系电话格式不正确').show(); + return; + } + + if ((!!telCode && !telCodeReg.test(telCode)) || (!!tel && !telReg.test(tel)) || + (telCodeReg.test(telCode) && !telReg.test(tel)) || + (!telCodeReg.test(telCode) && telReg.test(tel))) { + new dialog.Alert('你输入的电话格式不正确').show(); + return; + } + + if (!!mail && !emailReg.test(mail)) { + new dialog.Alert('你输入的邮箱格式不正确').show(); + return; + } + + if (!!code && !codeReg.test(code)) { + new dialog.Alert('你输入的邮编格式不正确').show(); + return; + } + + // 如果存在data-id说明是修改,否则是新增 + if (!!$saveBtn.attr('data-id')) { + postData.id = $saveBtn.attr('data-id'); + } + + $.ajax({ + type: 'post', + url: '/cart/index/saveAddress', + data: postData + }).then(function(d) { + + var addressData; + + if (d.code === 200) { + + addressData = d.data; + + if (addressData.is_support === 'Y') { + $('.express-list input[name="carriagegroup"][value="2"]').removeAttr('disabled'); + $('.express-list.sf').removeClass('hide'); + $('.is-sup').addClass('hide'); + + } else { + + $('.express-list input[name="carriagegroup"][value="2"]').attr('disabled', 'disabled'); + $('.express-list input[name="carriagegroup"][value="1"]').attr('checked', 'checked'); + $('.express-list.sf').addClass('hide'); + $('.is-sup').removeClass('hide'); + } + + if (!!postData.id) { + + // 修改操作接口没有返回id + addressStr = '<li class="active" data-id="' + postData.id + + '" data-express="' + addressData.is_support + '">' + + '<input data-name="' + postData.consignee + + '" data-areaCode="' + postData.areaCode + + '" data-addressDesc="' + postData.address + + '" data-mobile="' + postData.mobile + + '" data-phoneNum="' + postData.phoneNum + + '" data-phoneCode="' + postData.phoneCode + + '" data-zipCode="' + postData.zipCode + + '" data-email="' + postData.email + + '" checked="checked" class="radio" type="radio" name="address" />' + + '<label>' + + '<strong>' + name + '</strong>' + + '<span>' + provinceText + ' ' + cityText + ' ' + countyText + ' ' + address + + ' ' + hasText(code) + setPhoneStar(phone) + hasText(telCode) + hasText(tel) + '</span>' + + '<a href="javascript:void(0);" class="default-address">设为默认地址</a>' + + '<div class="order-modify-btn">' + + '<span class="address-modify">[修改]</span>' + + '<span class="address-del">[删除]</span>' + + '</div>' + + '</label>' + + '</li>'; + } else { + + //添加操作接口有返回id + addressStr = '<li class="active" data-id="' + addressData.id + + '" data-express="' + addressData.is_support + '">' + + '<input data-name="' + addressData.consignee + + '" data-areaCode="' + addressData.area_code + + '" data-addressDesc="' + addressData.address + + '" data-mobile="' + addressData.mobile + + '" data-phoneNum="' + postData.phoneNum + + '" data-phoneCode="' + postData.phoneCode + + '" data-zipCode="' + addressData.zip_code + + '" data-email="' + addressData.email + + '" checked="checked" class="radio" type="radio" name="address" />' + + '<label>' + + '<strong>' + name + '</strong>' + + '<span>' + provinceText + ' ' + cityText + ' ' + countyText + ' ' + address + + ' ' + hasText(code) + setPhoneStar(phone) + hasText(telCode) + hasText(tel) + '</span>' + + '<a href="javascript:void(0);" class="default-address">设为默认地址</a>' + + '<div class="order-modify-btn">' + + '<span class="address-modify">[修改]</span>' + + '<span class="address-del">[删除]</span>' + + '</div>' + + '</label>' + + '</li>'; + } + + + + // 如果dataID存在说明是修改操作 + if (!!$this.attr('data-id')) { + + $modifyLi = $('.exist-address-list li[data-id="' + $this.attr('data-id') + '"]'); + + $modifyLi.after($(addressStr)).remove(); + } else { + $('.use-new-address').before($(addressStr)); + } + + $('.address-list span').removeAttr('expand'); + + refreshAddressStatus(); + } else { + new dialog.Alert(d.message).show(); + } + }); + } + + if ($('.exist-address-list li').find('input[name="address"]:checked').length === 0) { + new dialog.Alert('请选择一个地址').show(); + return; + } else { + + if ($('.exist-address-list li').find('input[name="address"]:checked') + .closest('li').attr('data-express') === 'N') { + $('.express-list input[name="carriagegroup"][value="2"]').attr('disabled', 'disabled'); + $('.express-list input[name="carriagegroup"][value="1"]').attr('checked', 'checked'); + $('.express-list.sf').addClass('hide'); + $('.is-sup').removeClass('hide'); + } else { + $('.express-list input[name="carriagegroup"][value="2"]').removeAttr('disabled'); + $('.express-list.sf').removeClass('hide'); + $('.is-sup').addClass('hide'); + } + } + + + // 说明需要新用户引导,展开支付及送货时间 + if ($this.hasClass('new-user-btn')) { + + $('.switch-pay-modify').click(); + } + + }); +}; + + + +// 支付及送货时间选择 +$('.pay-time-modify .pay-btn').click(function() { + + var $this = $(this); + + var $payInfoBox = $('.modity-pay-info'), + $payTime = $('.pay-time-modify'), + payTypeVal = $payTime.find('input[name="pay-type"]:checked').val(), + payTypeText = $payTime.find('input[name="pay-type"]:checked').next('label').text(), + payTimeText = $payTime.find('input[name="pay-time-radio"]:checked').next('label').text(), + payTimeVal = $payTime.find('input[name="pay-time-radio"]:checked').val(), + isCall = $payTime.find('input[name="call-me"]:checked').next('label').text(), + callMeVal = $payTime.find('input[name="call-me"]:checked').val(); + + + $loading.show(); + + $.ajax({ + type: 'POST', + url: '/cart/index/orderCompute', + dataType: 'json', + data: { + cartType: cartType, + paymentType: payTypeVal + } + }).then(function(d) { + + $loading.hide(); + + if (d.code === 200) { + + $payInfoBox.find('li').eq(0).find('span').text(payTypeText); + $payInfoBox.find('li').eq(1).find('span').text(payTimeText); + $payInfoBox.find('li').eq(2).find('span').text(isCall); + + $('.pay-time-modify').addClass('hide') + .find('input[name="pay-type"][value=' + payTypeVal + ']').addClass('checked') + .end().find('input[name="pay-time-radio"][value=' + payTimeVal + ']').addClass('checked') + .end().find('input[name="call-me"][value=' + callMeVal + ']').addClass('checked'); + + $('.modity-pay-info').removeClass('hide'); + + $('.switch-pay-modify').text('[修改]'); + + if ($this.hasClass('new-user-pay')) { + + $('.play-piao-pan dd').css({ + + display: 'block' + }); + $('.play-piao-pan dt').addClass('active'); + } + + } else { + new dialog.Alert(d.message).show(); + } + }); +}); + +function getYohoBiList() { + + var $juanUl = $('.play-juan ul'), + juanStr = '', + dLen, + data, + i; + + $.ajax({ + type: 'GET', + dataType: 'json', + url: '/cart/index/getCouponList' + }).then(function(d) { + + if (d.code === 200) { + data = d.data; + dLen = data.length; + + for (i = 0; i < dLen; i++) { + juanStr += '<li>' + + '<input name="juangroup" type="radio" value="' + + data[i].code + '" ' + (data[i].valid ? '' : 'disabled="disabled"') + '>' + + '<label>' + data[i].desc + '</label>' + + '</li>'; + } + + $juanUl.prepend($(juanStr)); + + } + }); +} +getYohoBiList(); + +// 把Y、N转换成bool + +function ytoTrue(val) { + + if (val === 'N') { + return false; + } else { + return true; + } +} + + +// 去支付 +$('.to-play input.submit').click(function() { + + var $this = $(this); + + var addressId = $('.exist-address-list input[name="address"]:checked').closest('li').attr('data-id'), + deliveryTimeId = $('.pay-time-modify input[name="pay-time-radio"]:checked').val(), + deliveryWayId = $('.select-express input[name="carriagegroup"]:checked').val(), + invoiceTitle = $('#piaodesc').val(), + invoiceId = $('#piaotype').val(), + paymentType = $('.pay-time-modify input[name="pay-type"]:checked').val(), + paymentId = $('.pay-time-modify input[name="pay-type"]:checked').data('pay'), + remark = $('#notedesc').val(), + yohoCoin = $('#biprice').val(), + isPreContact = $('.pay-time-modify input[name="call-me"]:checked').val(), + isPrintPrice = $('.play-pan input[name="isPP"]:checked').val(), + redEnvelopes = $('.use-envelopes input:checked').attr('data-use'), + $juangroupInput = $('.play-juan.is-select input[name="juangroup"]:checked'), + codeVal = $juangroupInput.val(), + juanCode = !!codeVal ? codeVal : $juangroupInput.closest('li').find('#juancode').val(); + + $loading.show(); + + if (!!$this.attr('disabled')) { + return; + } + + $this.attr('disabled', 'disabled'); + + $.ajax({ + type: 'POST', + dataType: 'json', + url: '/cart/index/orderSub', + data: { + addressId: addressId, + cartType: cartType, + deliveryTimeId: deliveryTimeId, + deliveryWayId: deliveryWayId, + invoiceTitle: invoiceTitle, + invoiceId: invoiceId, + paymentId: paymentId, + paymentType: paymentType, + remark: remark, + couponCode: juanCode, + yohoCoin: yohoCoin, + isPreContact: ytoTrue(isPreContact), + isPrintPrice: ytoTrue(isPrintPrice), + redEnvelopes: redEnvelopes + } + }).then(function(d) { + + $loading.hide(); + + if (d.code === 200) { + window.location.href = d.data.payUrl; + } else { + new dialog.Alert(d.message).show(); + } + }).always(function() { + $this.removeAttr('disabled'); + }); +}); + +}); +define("js/shopping/pay", ["jquery"], function(require, exports, module){ +/** + * 支付页面 + */ + +//切换选项卡 +var $ = require("jquery"), + $choseTag = $('.mode div'), + $mode = $('.mode'), + $showPayImg = $('#show-pay-img'), + $btnty = $('#btnby'), + $lightBox = $('.light-box'), + $choosePay = $('#choosePay').val(), + $chooseMoid = $('.mode div[id="' + $choosePay + '"]').parent().data('value'), + $showValue = $choosePay ? $chooseMoid : $('.mode').eq(0).data('value'), + $payUrl = $('#payUrl').val(), + $modeData, + activeTab, + imgAlt, + imgSrc, + orderCode, + payment; + +$.jqtab = function(tabtit, tabcon) { + + $(tabtit + ' li').click(function() { + activeTab = $(this).find('a').attr('tab'); + + $(tabtit + ' li').removeClass('thistab'); + $(this).addClass('thistab'); + $(tabcon).hide(); + $('#' + activeTab).fadeIn(); + return false; + }); +}; + + +$.jqtab('#tabs', '.tab-con'); + +//选项卡点击 +function choosed() { + if ($choosePay) { + $('.mode div[id="' + $choosePay + '"]').addClass('choosed-tag').parent().addClass('choose-type'); + } else { + $mode.eq(0).addClass('choose-type').show(); + $mode.eq(0).find('div').addClass('choosed-tag'); + } + $btnty.attr('value', '前往' + $('#' + $chooseMoid).attr('alt')); + $showPayImg.attr('src', $('#' + $chooseMoid).attr('src')); +} + +choosed(); + +$mode.click(function() { + $modeData = $(this).data(); + $showValue = $modeData.value; + imgAlt = $('#' + $showValue).attr('alt'); + imgSrc = $('#' + $showValue).attr('src'); + + $mode.removeClass('choose-type'); + $(this).addClass('choose-type'); + $choseTag.removeClass('choosed-tag'); + $(this).find('.borer-tag').addClass('choosed-tag'); + $btnty.attr('value', '前往' + imgAlt); + $showPayImg.attr('src', imgSrc); + return false; +}); + + +$('.close').click(function() { + $lightBox.hide(); +}); + +$('.change').click(function() { + $lightBox.hide(); +}); + +//支付方式选择按钮 +function getData(payment, orderCode) { + $.ajax({ + type: 'get', + url: '/common/addpaymentinterval', + dataType: 'json', + data: { + orderCode: orderCode, + payment: payment + } + }); +} + +$('#btnby').click(function() { + payment = $('.choose-type').attr('data-id'); + orderCode = $('.order-num').text(); + getData(payment, orderCode); + window.open($payUrl + '?order_code=' + orderCode + '&payment_type=' + $showValue); + $lightBox.show(); +}); + +//发送支付确认 +$('.pay-over').unbind('click').bind('click', function() { + var _this = this; + + $.post('/shopping/pay/sendPay', + { + orderCode: orderCode, + paymentId: payment + }, + function() { + window.location.href = $(_this).data('url'); + } + ); +}); +}); +define("js/pay/wechatqrcode", ["jquery"], function(require, exports, module){ +/** + * 微信支付页面 + */ + +var $ = require("jquery"), + $wOdetail = $('.w-odetail'), + $payHost = $('#payHost').val(), + $paySuccessUrl = $('#paySuccessUrl').val(), + $wPerm = $('.w-p-erm'); + +require("plugin/jquery.qrcode"); + +$wOdetail.click(function() { + $('.w-addrinfo').slideToggle('slow'); + + if ($wOdetail.find('i').hasClass('up')) { + $wOdetail.html('收起详情<i class="down"></i>'); + } else { + $wOdetail.html('订单详情<i class="up"></i>'); + } +}); + +$wPerm.qrcode({ + render: 'table', + text: $wPerm.data('url') +}); + +function checkPayStatus() { + $.ajax({ + url: $payHost, + dataType: 'jsonp', + success: function(data) { + if (data.message === 'success') { + window.location.href = $paySuccessUrl; + } + } + }); +} + + +setInterval(checkPayStatus, 3000); +}); +define("plugin/jquery.qrcode", ["jquery"], function(require, exports, module){ +/* jscs: disable */ +/* jshint ignore:start */ +var jQuery = require("jquery"); + +(function(r) { + r.fn.qrcode = function(h) { + var s; + + function u(a) { + this.mode = s; + this.data = a + } + + function o(a, c) { + this.typeNumber = a; + this.errorCorrectLevel = c; + this.modules = null; + this.moduleCount = 0; + this.dataCache = null; + this.dataList = [] + } + + function q(a, c) { + if (void 0 == a.length) throw Error(a.length + "/" + c); + for (var d = 0; d < a.length && 0 == a[d];) d++; + this.num = Array(a.length - d + c); + for (var b = 0; b < a.length - d; b++) this.num[b] = a[b + d] + } + + function p(a, c) { + this.totalCount = a; + this.dataCount = c + } + + function t() { + this.buffer = []; + this.length = 0 + } + u.prototype = { + getLength: function() { + return this.data.length + }, + write: function(a) { + for (var c = 0; c < this.data.length; c++) a.put(this.data.charCodeAt(c), 8) + } + }; + o.prototype = { + addData: function(a) { + this.dataList.push(new u(a)); + this.dataCache = null + }, + isDark: function(a, c) { + if (0 > a || this.moduleCount <= a || 0 > c || this.moduleCount <= c) throw Error(a + "," + c); + return this.modules[a][c] + }, + getModuleCount: function() { + return this.moduleCount + }, + make: function() { + if (1 > this.typeNumber) { + for (var a = 1, a = 1; 40 > a; a++) { + for (var c = p.getRSBlocks(a, this.errorCorrectLevel), d = new t, b = 0, e = 0; e < c.length; e++) b += c[e].dataCount; + for (e = 0; e < this.dataList.length; e++) c = this.dataList[e], d.put(c.mode, 4), d.put(c.getLength(), j.getLengthInBits(c.mode, a)), c.write(d); + if (d.getLengthInBits() <= 8 * b) break + } + this.typeNumber = a + } + this.makeImpl(!1, this.getBestMaskPattern()) + }, + makeImpl: function(a, c) { + this.moduleCount = 4 * this.typeNumber + 17; + this.modules = Array(this.moduleCount); + for (var d = 0; d < this.moduleCount; d++) { + this.modules[d] = Array(this.moduleCount); + for (var b = 0; b < this.moduleCount; b++) this.modules[d][b] = null + } + this.setupPositionProbePattern(0, 0); + this.setupPositionProbePattern(this.moduleCount - + 7, 0); + this.setupPositionProbePattern(0, this.moduleCount - 7); + this.setupPositionAdjustPattern(); + this.setupTimingPattern(); + this.setupTypeInfo(a, c); + 7 <= this.typeNumber && this.setupTypeNumber(a); + null == this.dataCache && (this.dataCache = o.createData(this.typeNumber, this.errorCorrectLevel, this.dataList)); + this.mapData(this.dataCache, c) + }, + setupPositionProbePattern: function(a, c) { + for (var d = -1; 7 >= d; d++) + if (!(-1 >= a + d || this.moduleCount <= a + d)) + for (var b = -1; 7 >= b; b++) - 1 >= c + b || this.moduleCount <= c + b || (this.modules[a + d][c + b] = + 0 <= d && 6 >= d && (0 == b || 6 == b) || 0 <= b && 6 >= b && (0 == d || 6 == d) || 2 <= d && 4 >= d && 2 <= b && 4 >= b ? !0 : !1) + }, + getBestMaskPattern: function() { + for (var a = 0, c = 0, d = 0; 8 > d; d++) { + this.makeImpl(!0, d); + var b = j.getLostPoint(this); + if (0 == d || a > b) a = b, c = d + } + return c + }, + createMovieClip: function(a, c, d) { + a = a.createEmptyMovieClip(c, d); + this.make(); + for (c = 0; c < this.modules.length; c++) + for (var d = 1 * c, b = 0; b < this.modules[c].length; b++) { + var e = 1 * b; + this.modules[c][b] && (a.beginFill(0, 100), a.moveTo(e, d), a.lineTo(e + 1, d), a.lineTo(e + 1, d + 1), a.lineTo(e, d + 1), a.endFill()) + } + return a + }, + setupTimingPattern: function() { + for (var a = 8; a < this.moduleCount - 8; a++) null == this.modules[a][6] && (this.modules[a][6] = 0 == a % 2); + for (a = 8; a < this.moduleCount - 8; a++) null == this.modules[6][a] && (this.modules[6][a] = 0 == a % 2) + }, + setupPositionAdjustPattern: function() { + for (var a = j.getPatternPosition(this.typeNumber), c = 0; c < a.length; c++) + for (var d = 0; d < a.length; d++) { + var b = a[c], + e = a[d]; + if (null == this.modules[b][e]) + for (var f = -2; 2 >= f; f++) + for (var i = -2; 2 >= i; i++) this.modules[b + f][e + i] = -2 == f || 2 == f || -2 == i || 2 == i || 0 == f && 0 == i ? !0 : !1 + } + }, + setupTypeNumber: function(a) { + for (var c = + j.getBCHTypeNumber(this.typeNumber), d = 0; 18 > d; d++) { + var b = !a && 1 == (c >> d & 1); + this.modules[Math.floor(d / 3)][d % 3 + this.moduleCount - 8 - 3] = b + } + for (d = 0; 18 > d; d++) b = !a && 1 == (c >> d & 1), this.modules[d % 3 + this.moduleCount - 8 - 3][Math.floor(d / 3)] = b + }, + setupTypeInfo: function(a, c) { + for (var d = j.getBCHTypeInfo(this.errorCorrectLevel << 3 | c), b = 0; 15 > b; b++) { + var e = !a && 1 == (d >> b & 1); + 6 > b ? this.modules[b][8] = e : 8 > b ? this.modules[b + 1][8] = e : this.modules[this.moduleCount - 15 + b][8] = e + } + for (b = 0; 15 > b; b++) e = !a && 1 == (d >> b & 1), 8 > b ? this.modules[8][this.moduleCount - + b - 1 + ] = e : 9 > b ? this.modules[8][15 - b - 1 + 1] = e : this.modules[8][15 - b - 1] = e; + this.modules[this.moduleCount - 8][8] = !a + }, + mapData: function(a, c) { + for (var d = -1, b = this.moduleCount - 1, e = 7, f = 0, i = this.moduleCount - 1; 0 < i; i -= 2) + for (6 == i && i--;;) { + for (var g = 0; 2 > g; g++) + if (null == this.modules[b][i - g]) { + var n = !1; + f < a.length && (n = 1 == (a[f] >>> e & 1)); + j.getMask(c, b, i - g) && (n = !n); + this.modules[b][i - g] = n; + e--; - 1 == e && (f++, e = 7) + } + b += d; + if (0 > b || this.moduleCount <= b) { + b -= d; + d = -d; + break + } + } + } + }; + o.PAD0 = 236; + o.PAD1 = 17; + o.createData = function(a, c, d) { + for (var c = p.getRSBlocks(a, + c), b = new t, e = 0; e < d.length; e++) { + var f = d[e]; + b.put(f.mode, 4); + b.put(f.getLength(), j.getLengthInBits(f.mode, a)); + f.write(b) + } + for (e = a = 0; e < c.length; e++) a += c[e].dataCount; + if (b.getLengthInBits() > 8 * a) throw Error("code length overflow. (" + b.getLengthInBits() + ">" + 8 * a + ")"); + for (b.getLengthInBits() + 4 <= 8 * a && b.put(0, 4); 0 != b.getLengthInBits() % 8;) b.putBit(!1); + for (; !(b.getLengthInBits() >= 8 * a);) { + b.put(o.PAD0, 8); + if (b.getLengthInBits() >= 8 * a) break; + b.put(o.PAD1, 8) + } + return o.createBytes(b, c) + }; + o.createBytes = function(a, c) { + for (var d = + 0, b = 0, e = 0, f = Array(c.length), i = Array(c.length), g = 0; g < c.length; g++) { + var n = c[g].dataCount, + h = c[g].totalCount - n, + b = Math.max(b, n), + e = Math.max(e, h); + f[g] = Array(n); + for (var k = 0; k < f[g].length; k++) f[g][k] = 255 & a.buffer[k + d]; + d += n; + k = j.getErrorCorrectPolynomial(h); + n = (new q(f[g], k.getLength() - 1)).mod(k); + i[g] = Array(k.getLength() - 1); + for (k = 0; k < i[g].length; k++) h = k + n.getLength() - i[g].length, i[g][k] = 0 <= h ? n.get(h) : 0 + } + for (k = g = 0; k < c.length; k++) g += c[k].totalCount; + d = Array(g); + for (k = n = 0; k < b; k++) + for (g = 0; g < c.length; g++) k < f[g].length && + (d[n++] = f[g][k]); + for (k = 0; k < e; k++) + for (g = 0; g < c.length; g++) k < i[g].length && (d[n++] = i[g][k]); + return d + }; + s = 4; + for (var j = { + PATTERN_POSITION_TABLE: [ + [], + [6, 18], + [6, 22], + [6, 26], + [6, 30], + [6, 34], + [6, 22, 38], + [6, 24, 42], + [6, 26, 46], + [6, 28, 50], + [6, 30, 54], + [6, 32, 58], + [6, 34, 62], + [6, 26, 46, 66], + [6, 26, 48, 70], + [6, 26, 50, 74], + [6, 30, 54, 78], + [6, 30, 56, 82], + [6, 30, 58, 86], + [6, 34, 62, 90], + [6, 28, 50, 72, 94], + [6, 26, 50, 74, 98], + [6, 30, 54, 78, 102], + [6, 28, 54, 80, 106], + [6, 32, 58, 84, 110], + [6, 30, 58, 86, 114], + [6, 34, 62, 90, 118], + [6, 26, 50, 74, 98, 122], + [6, 30, 54, 78, 102, 126], + [6, 26, 52, + 78, 104, 130 + ], + [6, 30, 56, 82, 108, 134], + [6, 34, 60, 86, 112, 138], + [6, 30, 58, 86, 114, 142], + [6, 34, 62, 90, 118, 146], + [6, 30, 54, 78, 102, 126, 150], + [6, 24, 50, 76, 102, 128, 154], + [6, 28, 54, 80, 106, 132, 158], + [6, 32, 58, 84, 110, 136, 162], + [6, 26, 54, 82, 110, 138, 166], + [6, 30, 58, 86, 114, 142, 170] + ], + G15: 1335, + G18: 7973, + G15_MASK: 21522, + getBCHTypeInfo: function(a) { + for (var c = a << 10; 0 <= j.getBCHDigit(c) - j.getBCHDigit(j.G15);) c ^= j.G15 << j.getBCHDigit(c) - j.getBCHDigit(j.G15); + return (a << 10 | c) ^ j.G15_MASK + }, + getBCHTypeNumber: function(a) { + for (var c = a << 12; 0 <= j.getBCHDigit(c) - + j.getBCHDigit(j.G18);) c ^= j.G18 << j.getBCHDigit(c) - j.getBCHDigit(j.G18); + return a << 12 | c + }, + getBCHDigit: function(a) { + for (var c = 0; 0 != a;) c++, a >>>= 1; + return c + }, + getPatternPosition: function(a) { + return j.PATTERN_POSITION_TABLE[a - 1] + }, + getMask: function(a, c, d) { + switch (a) { + case 0: + return 0 == (c + d) % 2; + case 1: + return 0 == c % 2; + case 2: + return 0 == d % 3; + case 3: + return 0 == (c + d) % 3; + case 4: + return 0 == (Math.floor(c / 2) + Math.floor(d / 3)) % 2; + case 5: + return 0 == c * d % 2 + c * d % 3; + case 6: + return 0 == (c * d % 2 + c * d % 3) % 2; + case 7: + return 0 == (c * d % 3 + (c + d) % 2) % 2; + default: + throw Error("bad maskPattern:" + + a); + } + }, + getErrorCorrectPolynomial: function(a) { + for (var c = new q([1], 0), d = 0; d < a; d++) c = c.multiply(new q([1, l.gexp(d)], 0)); + return c + }, + getLengthInBits: function(a, c) { + if (1 <= c && 10 > c) switch (a) { + case 1: + return 10; + case 2: + return 9; + case s: + return 8; + case 8: + return 8; + default: + throw Error("mode:" + a); + } else if (27 > c) switch (a) { + case 1: + return 12; + case 2: + return 11; + case s: + return 16; + case 8: + return 10; + default: + throw Error("mode:" + a); + } else if (41 > c) switch (a) { + case 1: + return 14; + case 2: + return 13; + case s: + return 16; + case 8: + return 12; + default: + throw Error("mode:" + + a); + } else throw Error("type:" + c); + }, + getLostPoint: function(a) { + for (var c = a.getModuleCount(), d = 0, b = 0; b < c; b++) + for (var e = 0; e < c; e++) { + for (var f = 0, i = a.isDark(b, e), g = -1; 1 >= g; g++) + if (!(0 > b + g || c <= b + g)) + for (var h = -1; 1 >= h; h++) 0 > e + h || c <= e + h || 0 == g && 0 == h || i == a.isDark(b + g, e + h) && f++; + 5 < f && (d += 3 + f - 5) + } + for (b = 0; b < c - 1; b++) + for (e = 0; e < c - 1; e++) + if (f = 0, a.isDark(b, e) && f++, a.isDark(b + 1, e) && f++, a.isDark(b, e + 1) && f++, a.isDark(b + 1, e + 1) && f++, 0 == f || 4 == f) d += 3; + for (b = 0; b < c; b++) + for (e = 0; e < c - 6; e++) a.isDark(b, e) && !a.isDark(b, e + 1) && a.isDark(b, e + + 2) && a.isDark(b, e + 3) && a.isDark(b, e + 4) && !a.isDark(b, e + 5) && a.isDark(b, e + 6) && (d += 40); + for (e = 0; e < c; e++) + for (b = 0; b < c - 6; b++) a.isDark(b, e) && !a.isDark(b + 1, e) && a.isDark(b + 2, e) && a.isDark(b + 3, e) && a.isDark(b + 4, e) && !a.isDark(b + 5, e) && a.isDark(b + 6, e) && (d += 40); + for (e = f = 0; e < c; e++) + for (b = 0; b < c; b++) a.isDark(b, e) && f++; + a = Math.abs(100 * f / c / c - 50) / 5; + return d + 10 * a + } + }, l = { + glog: function(a) { + if (1 > a) throw Error("glog(" + a + ")"); + return l.LOG_TABLE[a] + }, + gexp: function(a) { + for (; 0 > a;) a += 255; + for (; 256 <= a;) a -= 255; + return l.EXP_TABLE[a] + }, + EXP_TABLE: Array(256), + LOG_TABLE: Array(256) + }, m = 0; 8 > m; m++) l.EXP_TABLE[m] = 1 << m; + for (m = 8; 256 > m; m++) l.EXP_TABLE[m] = l.EXP_TABLE[m - 4] ^ l.EXP_TABLE[m - 5] ^ l.EXP_TABLE[m - 6] ^ l.EXP_TABLE[m - 8]; + for (m = 0; 255 > m; m++) l.LOG_TABLE[l.EXP_TABLE[m]] = m; + q.prototype = { + get: function(a) { + return this.num[a] + }, + getLength: function() { + return this.num.length + }, + multiply: function(a) { + for (var c = Array(this.getLength() + a.getLength() - 1), d = 0; d < this.getLength(); d++) + for (var b = 0; b < a.getLength(); b++) c[d + b] ^= l.gexp(l.glog(this.get(d)) + l.glog(a.get(b))); + return new q(c, 0) + }, + mod: function(a) { + if (0 > + this.getLength() - a.getLength()) return this; + for (var c = l.glog(this.get(0)) - l.glog(a.get(0)), d = Array(this.getLength()), b = 0; b < this.getLength(); b++) d[b] = this.get(b); + for (b = 0; b < a.getLength(); b++) d[b] ^= l.gexp(l.glog(a.get(b)) + c); + return (new q(d, 0)).mod(a) + } + }; + p.RS_BLOCK_TABLE = [ + [1, 26, 19], + [1, 26, 16], + [1, 26, 13], + [1, 26, 9], + [1, 44, 34], + [1, 44, 28], + [1, 44, 22], + [1, 44, 16], + [1, 70, 55], + [1, 70, 44], + [2, 35, 17], + [2, 35, 13], + [1, 100, 80], + [2, 50, 32], + [2, 50, 24], + [4, 25, 9], + [1, 134, 108], + [2, 67, 43], + [2, 33, 15, 2, 34, 16], + [2, 33, 11, 2, 34, 12], + [2, 86, 68], + [4, 43, 27], + [4, 43, 19], + [4, 43, 15], + [2, 98, 78], + [4, 49, 31], + [2, 32, 14, 4, 33, 15], + [4, 39, 13, 1, 40, 14], + [2, 121, 97], + [2, 60, 38, 2, 61, 39], + [4, 40, 18, 2, 41, 19], + [4, 40, 14, 2, 41, 15], + [2, 146, 116], + [3, 58, 36, 2, 59, 37], + [4, 36, 16, 4, 37, 17], + [4, 36, 12, 4, 37, 13], + [2, 86, 68, 2, 87, 69], + [4, 69, 43, 1, 70, 44], + [6, 43, 19, 2, 44, 20], + [6, 43, 15, 2, 44, 16], + [4, 101, 81], + [1, 80, 50, 4, 81, 51], + [4, 50, 22, 4, 51, 23], + [3, 36, 12, 8, 37, 13], + [2, 116, 92, 2, 117, 93], + [6, 58, 36, 2, 59, 37], + [4, 46, 20, 6, 47, 21], + [7, 42, 14, 4, 43, 15], + [4, 133, 107], + [8, 59, 37, 1, 60, 38], + [8, 44, 20, 4, 45, 21], + [12, 33, 11, 4, 34, 12], + [3, 145, 115, 1, 146, + 116 + ], + [4, 64, 40, 5, 65, 41], + [11, 36, 16, 5, 37, 17], + [11, 36, 12, 5, 37, 13], + [5, 109, 87, 1, 110, 88], + [5, 65, 41, 5, 66, 42], + [5, 54, 24, 7, 55, 25], + [11, 36, 12], + [5, 122, 98, 1, 123, 99], + [7, 73, 45, 3, 74, 46], + [15, 43, 19, 2, 44, 20], + [3, 45, 15, 13, 46, 16], + [1, 135, 107, 5, 136, 108], + [10, 74, 46, 1, 75, 47], + [1, 50, 22, 15, 51, 23], + [2, 42, 14, 17, 43, 15], + [5, 150, 120, 1, 151, 121], + [9, 69, 43, 4, 70, 44], + [17, 50, 22, 1, 51, 23], + [2, 42, 14, 19, 43, 15], + [3, 141, 113, 4, 142, 114], + [3, 70, 44, 11, 71, 45], + [17, 47, 21, 4, 48, 22], + [9, 39, 13, 16, 40, 14], + [3, 135, 107, 5, 136, 108], + [3, 67, 41, 13, 68, 42], + [15, 54, 24, 5, 55, 25], + [15, + 43, 15, 10, 44, 16 + ], + [4, 144, 116, 4, 145, 117], + [17, 68, 42], + [17, 50, 22, 6, 51, 23], + [19, 46, 16, 6, 47, 17], + [2, 139, 111, 7, 140, 112], + [17, 74, 46], + [7, 54, 24, 16, 55, 25], + [34, 37, 13], + [4, 151, 121, 5, 152, 122], + [4, 75, 47, 14, 76, 48], + [11, 54, 24, 14, 55, 25], + [16, 45, 15, 14, 46, 16], + [6, 147, 117, 4, 148, 118], + [6, 73, 45, 14, 74, 46], + [11, 54, 24, 16, 55, 25], + [30, 46, 16, 2, 47, 17], + [8, 132, 106, 4, 133, 107], + [8, 75, 47, 13, 76, 48], + [7, 54, 24, 22, 55, 25], + [22, 45, 15, 13, 46, 16], + [10, 142, 114, 2, 143, 115], + [19, 74, 46, 4, 75, 47], + [28, 50, 22, 6, 51, 23], + [33, 46, 16, 4, 47, 17], + [8, 152, 122, 4, 153, 123], + [22, 73, 45, + 3, 74, 46 + ], + [8, 53, 23, 26, 54, 24], + [12, 45, 15, 28, 46, 16], + [3, 147, 117, 10, 148, 118], + [3, 73, 45, 23, 74, 46], + [4, 54, 24, 31, 55, 25], + [11, 45, 15, 31, 46, 16], + [7, 146, 116, 7, 147, 117], + [21, 73, 45, 7, 74, 46], + [1, 53, 23, 37, 54, 24], + [19, 45, 15, 26, 46, 16], + [5, 145, 115, 10, 146, 116], + [19, 75, 47, 10, 76, 48], + [15, 54, 24, 25, 55, 25], + [23, 45, 15, 25, 46, 16], + [13, 145, 115, 3, 146, 116], + [2, 74, 46, 29, 75, 47], + [42, 54, 24, 1, 55, 25], + [23, 45, 15, 28, 46, 16], + [17, 145, 115], + [10, 74, 46, 23, 75, 47], + [10, 54, 24, 35, 55, 25], + [19, 45, 15, 35, 46, 16], + [17, 145, 115, 1, 146, 116], + [14, 74, 46, 21, 75, 47], + [29, 54, 24, 19, + 55, 25 + ], + [11, 45, 15, 46, 46, 16], + [13, 145, 115, 6, 146, 116], + [14, 74, 46, 23, 75, 47], + [44, 54, 24, 7, 55, 25], + [59, 46, 16, 1, 47, 17], + [12, 151, 121, 7, 152, 122], + [12, 75, 47, 26, 76, 48], + [39, 54, 24, 14, 55, 25], + [22, 45, 15, 41, 46, 16], + [6, 151, 121, 14, 152, 122], + [6, 75, 47, 34, 76, 48], + [46, 54, 24, 10, 55, 25], + [2, 45, 15, 64, 46, 16], + [17, 152, 122, 4, 153, 123], + [29, 74, 46, 14, 75, 47], + [49, 54, 24, 10, 55, 25], + [24, 45, 15, 46, 46, 16], + [4, 152, 122, 18, 153, 123], + [13, 74, 46, 32, 75, 47], + [48, 54, 24, 14, 55, 25], + [42, 45, 15, 32, 46, 16], + [20, 147, 117, 4, 148, 118], + [40, 75, 47, 7, 76, 48], + [43, 54, 24, 22, 55, 25], + [10, + 45, 15, 67, 46, 16 + ], + [19, 148, 118, 6, 149, 119], + [18, 75, 47, 31, 76, 48], + [34, 54, 24, 34, 55, 25], + [20, 45, 15, 61, 46, 16] + ]; + p.getRSBlocks = function(a, c) { + var d = p.getRsBlockTable(a, c); + if (void 0 == d) throw Error("bad rs block @ typeNumber:" + a + "/errorCorrectLevel:" + c); + for (var b = d.length / 3, e = [], f = 0; f < b; f++) + for (var h = d[3 * f + 0], g = d[3 * f + 1], j = d[3 * f + 2], l = 0; l < h; l++) e.push(new p(g, j)); + return e + }; + p.getRsBlockTable = function(a, c) { + switch (c) { + case 1: + return p.RS_BLOCK_TABLE[4 * (a - 1) + 0]; + case 0: + return p.RS_BLOCK_TABLE[4 * (a - 1) + 1]; + case 3: + return p.RS_BLOCK_TABLE[4 * + (a - 1) + 2]; + case 2: + return p.RS_BLOCK_TABLE[4 * (a - 1) + 3] + } + }; + t.prototype = { + get: function(a) { + return 1 == (this.buffer[Math.floor(a / 8)] >>> 7 - a % 8 & 1) + }, + put: function(a, c) { + for (var d = 0; d < c; d++) this.putBit(1 == (a >>> c - d - 1 & 1)) + }, + getLengthInBits: function() { + return this.length + }, + putBit: function(a) { + var c = Math.floor(this.length / 8); + this.buffer.length <= c && this.buffer.push(0); + a && (this.buffer[c] |= 128 >>> this.length % 8); + this.length++ + } + }; + "string" === typeof h && (h = { + text: h + }); + h = r.extend({}, { + render: "canvas", + width: 256, + height: 256, + typeNumber: -1, + correctLevel: 2, + background: "#ffffff", + foreground: "#000000" + }, h); + return this.each(function() { + var a; + if ("canvas" == h.render) { + a = new o(h.typeNumber, h.correctLevel); + a.addData(h.text); + a.make(); + var c = document.createElement("canvas"); + c.width = h.width; + c.height = h.height; + for (var d = c.getContext("2d"), b = h.width / a.getModuleCount(), e = h.height / a.getModuleCount(), f = 0; f < a.getModuleCount(); f++) + for (var i = 0; i < a.getModuleCount(); i++) { + d.fillStyle = a.isDark(f, i) ? h.foreground : h.background; + var g = Math.ceil((i + 1) * b) - Math.floor(i * b), + j = Math.ceil((f + 1) * b) - Math.floor(f * b); + d.fillRect(Math.round(i * b), Math.round(f * e), g, j) + } + } else { + a = new o(h.typeNumber, h.correctLevel); + a.addData(h.text); + a.make(); + c = r("<table></table>").css("width", h.width + "px").css("height", h.height + "px").css("border", "0px").css("border-collapse", "collapse").css("background-color", h.background); + d = h.width / a.getModuleCount(); + b = h.height / a.getModuleCount(); + for (e = 0; e < a.getModuleCount(); e++) { + f = r("<tr></tr>").css("height", b + "px").appendTo(c); + for (i = 0; i < a.getModuleCount(); i++) r("<td></td>").css("width", + d + "px").css("background-color", a.isDark(e, i) ? h.foreground : h.background).appendTo(f) + } + } + a = c; + jQuery(a).appendTo(this) + }) + } +})(jQuery); +/* jscs: enable */ +/* jshint ignore:end */ +}); +define("js/about/entry", ["jquery","jquery.placeholder","handlebars","source-map"], function(require, exports, module){ +/** + * 逛打包入口 + * @author: yyqing<yanqing.yang@yoho.cn> + * @date: 2016/4/14 + */ + +require("js/about/settled"); + +}); +define("js/about/settled", ["jquery","jquery.placeholder","handlebars","source-map"], function(require, exports, module){ +/** + * 商家入驻 + * @author: xuqi<qi.xu@yoho> + * @date: 2016/3/24 + */ + +var $ = require("jquery"); + +var reg = require("js/passport/mail-phone-regx"); + +require("jquery.placeholder"); +require("plugin/jquery.qupload"); + +//入口页 +(function() { + var $mask, + $dialog; + + if ($('.settled-page').length === 0) { + return; + } + + $mask = $('#mask'); + $dialog = $('#notice-container'); + + function showNotice() { + var wh = $(window).height(); + + $mask.removeClass('hide'); + $dialog.css({ + 'max-height': wh - 60 + }).removeClass('hide'); + } + + function hideNotice() { + $mask.addClass('hide'); + $dialog.addClass('hide'); + } + + $('#fake-link').click(showNotice); + + $('#fake-close').click(hideNotice); + $('#mask').click(hideNotice); +}()); + +//申请页 +(function() { + var $otherBr, + $otherNp, + $otherRp, + $categoryUl, + $shopListTr, + $shops, + $panel; + + var $postcode, + $email, + $phoneNum, + $upKey, + $styleCount; + + var categoryHtml = $('#category-tpl').html(); + + var Dialog = require("js/common/dialog").Dialog; + var successDialog, + SWFUpload = window.SWFUpload, + upKey; + + if ($('.settled-apply-page').length < 0) { + return; + } + + $('[placeholder]').placeholder(); + + $otherBr = $('#other-brand-relation'); + $otherNp = $('#other-new-period'); + $otherRp = $('#other-replenishment-period'); + $categoryUl = $('#category-list'); + $shopListTr = $('#shop-list'); + $shops = $('#shops'); + $panel = $('#mask, #submit-success'); + + $postcode = $('#postcode'); + $email = $('#email'); + $phoneNum = $('#phone-number'); + $upKey = $('#upload-key'); + $styleCount = $('#style-count'); + upKey = $upKey.val(); + $upKey.remove(); + + function initUpload(arr) { + $.each(arr, function(k, v) { + $('#' + v.dom).qupload({ + uploadKey: upKey, + button_image_url: '', + button_text: '<span class="btn_upload_text">上传</span>', + button_text_style: + '.btn_upload_text{color:#000;margin-left:30px;' + + 'line-height: 2em;font-size:14px;}', + button_text_left_padding: 32, + button_text_top_padding: 8, + button_width: 160, + button_height: 35, + button_action: SWFUpload.BUTTON_ACTION.SELECT_FILE,//单选 + file_size_limit: '10240', + file_types: v.type, + uploadSuccessed: function(serverData) { + var data = JSON.parse(serverData); + + if (data.code !== 12) { + alert(data.message); + return false; + } + v.callback(data.data.hit.Filedata.return_file_path); + } + }); + }); + } + + function validate() { + var pass = true, + postcodeReg = /[0-9]\d{5}(?!\d)/, + emailReg = reg.emailRegx, + phoneReg = reg.phoneRegx['+86'], + styleCountReg = /^(0|[1-9][0-9]*)$/; + + $('.va, .category-item select, .for-other, .category-item').removeClass('error'); + + $('.va-null').each(function() { + if ($(this).val() === '') { + $(this).addClass('error'); + pass = false; + } + }); + + if ($postcode.val() === '' || !postcodeReg.test($postcode.val())) { + $postcode.addClass('error'); + pass = false; + } + + if ($email.val() === '' || !emailReg.test($email.val())) { + $email.addClass('error'); + pass = false; + } + + if ($phoneNum.val() === '' || !(phoneReg.test($phoneNum.val()))) { + $phoneNum.addClass('error'); + pass = false; + } + + if ($styleCount.val() === '' || !(styleCountReg.test($styleCount.val()))) { + $styleCount.addClass('error'); + pass = false; + } + + $('.category-item').each(function() { + if ($(this).get(0).selectedIndex === 0) { + $(this).addClass('error'); + pass = false; + } + }); + + if ($('input[name="seller-role"]:checked').index() === 3 && + $otherBr.val() === '') { + pass = false; + $otherBr.addClass('error'); + } + + if ($('input[name="new_cycle"]:checked').index() === 5 && + $otherNp.val() === '') { + pass = false; + $otherNp.addClass('error'); + } + + if ($('input[name="supply_cycle"]:checked').index() === 5 && + $otherRp.val() === '') { + pass = false; + $otherRp.addClass('error'); + } + + return pass; + } + + function addCategoryUI() { + $categoryUl.closest('tr').removeClass('hide'); + $categoryUl.append('<li>' + categoryHtml + '</li>'); + } + + //获取二级分类的方法 + function getCategoryTwo() { + var id = $(this).val(); + var $categoryTwo = $(this).parent().find('.category-two'); + var html = '<option>选择二级分类</option>'; + + if (id === '') { + $categoryTwo.html(html); + return; + } + + $.ajax({ + url: '/shop/settled/getTwoCategory', + type: 'GET', + data: { + id: id + } + }).then(function(data) { + var res = []; + var key; + + if (data.code === 200) { + res = data.data; + for (key = 0; key < res.length; key++) { + html += '<option value="' + res[key].id + '" >' + res[key].name + '</option>'; + } + } + $categoryTwo.html(html); + }); + } + + // 初始化上传插件 + initUpload([ + { + dom: 'upload-brand-material', + type: '*.ppt;*.pdf;*.zip;*.rar', + callback: function(data) { + $('#brand-material').val(data); + $('.brand-tip').html('上传成功'); + alert('上传成功!'); + } + }, + { + dom: 'upload-goods-material', + type: '*.xls;*.xlsx;*.zip;*.rar', + callback: function(data) { + $('#goods-material').val(data); + $('.goods-tip').html('上传成功'); + alert('上传成功!'); + } + } + ]); + + // 提交成功 + if (location.search.indexOf('state=1') > -1) { + successDialog = new Dialog({ + className: 'settled-success', + closeIcon: false, + content: '<h1 class="main-title">恭喜您已提交成功</h1><h2 class="sub-title">我们将尽快与您联系</h2>', + btns: [ + { + id: 'apply-success-ok', + btnClass: ['apply-success-ok'], + name: '确认', + cb: function() { + location.href = '/shop/settled/index'; + } + } + ] + }); + successDialog.show(); + return; + } + + $('input[name="seller_role"]').change(function() { + if ($(this).index() === 3) { + $otherBr.removeClass('hide'); + } else { + $otherBr.addClass('hide'); + } + }); + + $('input[name="new-cycle"]').change(function() { + if ($(this).index() === 5) { + $otherNp.removeClass('hide'); + } else { + $otherNp.addClass('hide'); + } + }); + + $('input[name="supply-cycle"]').change(function() { + if ($(this).index() === 5) { + $otherRp.removeClass('hide'); + } else { + $otherRp.addClass('hide'); + } + }); + + $('input[name="have-store"]').change(function() { + if ($(this).index() === 1) { + $shopListTr.addClass('hide'); + } else { + $shopListTr.removeClass('hide'); + } + }); + + $('.form-container').on('change', '.category-one', getCategoryTwo); + + $('#category-add').click(addCategoryUI); + + $shops.delegate('.shop-add', 'click', function() { + $shops.append( + '<li>' + + '<input class="shop-addres" name="store-address[]" type="text" placeholder="输入店铺地址">' + + '<span>月均销售:</span>' + + '<input class="shop-sales-volume" type="text" name="store-sales-volume[]" placeholder="输入价格">' + + '<span>元</span>' + + '</li>' + ); + }); + + $('#apply-post').click(function() { + var scrollTo; + + if (validate()) { + $panel.removeClass('hide'); + $('form').submit(); + } else { + $('.error').first().focus(); + scrollTo = $('.error').first().offset().top; + $(window).scrollTop(scrollTo - 10); + } + }); + + if (navigator.userAgent.indexOf('MSIE') >= 0) { + $('[placeholder]').focus(function() { + var $input = $(this); + + $input.removeClass('placeholder'); + }).blur(function() { + var $input = $(this); + + if ($input.val() === '') { + $input.addClass('placeholder'); + } + }); + } +}()); +}); +define("js/coupon/entry", ["jquery","lazyload","handlebars","source-map"], function(require, exports, module){ +/** + * 领券频道打包入口 + * @author: zhaobiao<biao.zhao@yoho.cn> + * @date: 2016/4/12 + */ + +require("js/coupon/coupon"); + +}); +define("js/coupon/coupon", ["jquery","lazyload","handlebars","source-map"], function(require, exports, module){ +/** + * 领券频道 + * @author: 赵彪<bill.zhao@yoho.cn> + * @date: 2016/04/14 + */ +var $ = require("jquery"), + lazyLoad = require("lazyload"), + Dialog = require("js/common/dialog").Dialog; + + +var alertConfig, + makeAlert; + +// j面跳转对象 +var redirect = { + + // 去逛逛跳转链接 + gunangSrc: null, + + // 查看优惠券跳转链接 + checkCouponSrc: null, + goToGuang: function() { + window.location.href = this.gunangSrc; + }, + goToCheck: function() { + window.location.href = this.checkCouponSrc; + }, + + // 处理网络返回 + 403: function(url) { + window.location.href = url; + }, + 200: function(url) { + this.checkCouponSrc = url; + } +}; + +//加载底部图片 +lazyLoad($('img.lazy')); + +require("js/common/slider"); + + +$('.slide-container').slider(); + +// 根据配置执行展示弹窗 +function couponAlert(opt) { + var newAlert = new Dialog(opt); + + newAlert.show(); +} + +// 配置弹窗 +alertConfig = { + success: { + content: '恭喜您,成功领取优惠券', + subContents: ['特殊情况下到账有延时', '请耐心等待'], + className: 'subcontent-dialog', + refreshOnClose: true, + btns: [ + { + id: 1, + name: '去购物啦', + btnClass: ['black', 'btn-close'], + cb: function() { + redirect.goToGuang(); + } + }, + { + id: 2, + name: '查看优惠券', + btnClass: ['btn-close'], + cb: function() { + redirect.goToCheck(); + } + } + ] + }, + alreadyGot: { + content: '您已领取过优惠券', + subContent: '快去选购心仪的潮品吧', + className: 'subcontent-dialog', + btns: [ + { + id: 1, + name: '去使用', + btnClass: ['btn-close'], + cb: function() { + redirect.goToGuang(); + } + } + ] + }, + expired: { + content: '优惠券已过期', + subContent: '去领最新的优惠券吧', + className: 'subcontent-dialog', + btns: [ + { + id: 1, + name: '关闭', + btnClass: ['btn-close'] + } + ] + }, + failed: { + content: '领取失败', + subContents: ['请刷新重试,', '多次无效请联系客服'], + className: 'subcontent-dialog', + btns: [ + { + id: 1, + name: '刷新', + btnClass: ['btn-close'], + cb: function() { + window.location.reload(); + } + } + ] + } +}; + +// 对应不同的网络返回码展示不同的弹窗 +makeAlert = { + 200: function() { + couponAlert(alertConfig.success); + }, + 401: function() { + couponAlert(alertConfig.alreadyGot); + }, + 315: function() { + couponAlert(alertConfig.expired); + }, + 400: function() { + couponAlert(alertConfig.failed); + }, + 403: function() { + + // do not make alert when user are not login in + } +}; + +function requestCoupon(id) { + $.ajax({ + type: 'GET', + url: '/coupon/sendcoupon', + data: { + id: id + }, + success: function(res) { + var code = res.code; + + // 如果返回的数据里有url,则执行redirect里的方法 + res.url && res.url.length > 0 && redirect[code] && redirect[code](res.url + '?'+ location.href.split('?')[1]); + + // 如果能找到对应code则执行相应方法,如果没有的对应code则执行error提示 + makeAlert[code] ? makeAlert[code]() : makeAlert['400'](); + + }, + error: function(err) { + var Alert = require("js/common/dialog").Alert; + + new Alert('网络异常').show(); + } + }); +} + +$('.enable .info').on('click', function(e) { + e.preventDefault(); + requestCoupon($(this).closest('a').data('id')); + redirect.gunangSrc = $(this).closest('a').get(0).href; +}); + +}); diff --git a/web-static/dist/yohobuy/4.7.2/index.css b/web-static/dist/yohobuy/4.7.2/index.css new file mode 100644 index 0000000..abbbdb6 --- /dev/null +++ b/web-static/dist/yohobuy/4.7.2/index.css @@ -0,0 +1 @@ +@charset "utf-8";a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:baseline}html{line-height:1}ol,ul{list-style:none}table{border-collapse:collapse;border-spacing:0}caption,td,th{text-align:left;font-weight:400;vertical-align:middle}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:"";content:none}a img{border:none}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}.clearfix:after{content:'';display:table;clear:both}body{font-family:arial,Microsoft YaHei}@font-face{font-family:iconfont;src:url(../assets/font/iconfont.eot?v155c47be998);src:url(../assets/font/iconfont.eot?v155c47be998#iefix) format('embedded-opentype'),url(../assets/font/iconfont.woff?v155c47bf550) format('woff'),url(../assets/font/iconfont.ttf?v155c47be998) format('truetype'),url(../assets/font/iconfont.svg?v155c47be998#iconfont) format('svg')}.iconfont{font-family:iconfont!important;font-size:16px;font-style:normal;text-decoration:none;-webkit-font-smoothing:antialiased;-webkit-text-stroke-width:.2px;-moz-osx-font-smoothing:grayscale}.center-content{width:1150px;margin-left:auto;margin-right:auto}.min-screen .center-content{width:990px}.left,.pull-left{float:left}.pull-right,.right{float:right}.center{text-align:center}.hide{display:none!important}a:focus,input,textarea{outline:none}a{text-decoration:none;color:#000}.body-mask{position:absolute;z-index:9;background:#000;opacity:.2;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=20)";top:0;left:0}.yoho-notice{width:100%;height:100px;font-size:12px;background-color:#555;font-family:微软雅黑}.yoho-notice .notice-title{height:100px;line-height:100px;font-size:27px;font-weight:700;color:#fff;width:245px;position:absolute}.yoho-notice .notice-content{padding:16px 0 0 300px;color:#e8e8e8}.yoho-notice .notice-content .tips{margin-bottom:10px}.yoho-notice .notice-content .detail{line-height:16px}.yoho-header .header-topwrapper{width:100%;background-color:#f4f4f4;min-width:1150px}.yoho-header .header-top{width:1150px;height:32px;line-height:32px;margin:0 auto;position:relative}.yoho-header #loginBox{display:none}.yoho-header .leftpart{position:relative;padding-left:5px;padding-right:5px}.yoho-header .leftpart:hover{background-color:#dcdcdc}.yoho-header .leftpart:hover .yohoproducts-list{display:block!important}.yoho-header .leftpart .acttags{background-color:#dcdcdc}.yoho-header .yohoproducts-list{position:absolute;display:none;width:170px;left:0;top:32px;background-color:#f4f4f4;padding-top:30px;padding-bottom:10px;padding-left:20px;z-index:19}.yoho-header .yohoproducts-item{height:14px;line-height:14px;margin-bottom:20px}.yoho-header .yohoproducts-item a{color:#9196a0;font-size:14px}.yoho-header .yohoproducts-item:hover a{color:#000}.yoho-header .rightpart{position:absolute;right:0;top:0}.yoho-header .rightpart .acttags{background-color:#dcdcdc}.yoho-header .rightpart .tag-seprate{border-color:#dcdcdc}.yoho-header .hi,.yoho-header .loginbar,.yoho-header .registbar{display:inline-block;float:left}.yoho-header .hi{color:#8e8e8e;font-size:12px}.yoho-header #loginBox a,.yoho-header #loginBox span,.yoho-header .header-yoho,.yoho-header .login-out,.yoho-header .loginbar,.yoho-header .registbar{color:#000;font-size:12px}.yoho-header .registbar{margin-left:7px}.yoho-header .tag-list-wrapper{margin-left:13px;float:left}.yoho-header .tag-list{margin-left:13px;height:34px}.yoho-header .tag-seprate{margin-top:11px;width:0;height:14px;display:inline-block;float:left;border-left:1px solid #dcdcdc}.yoho-header .tag-item{display:inline-block;float:left;line-height:32px;box-sizing:border-box;margin-left:-1px}.yoho-header .tag-item a{color:#8e8e8e;font-size:12px;display:inline-block}.yoho-header .tag-item span{display:inline-block}.yoho-header .myyoho{padding-right:10px;position:relative}.yoho-header .myyoho .tag-seprate{margin-right:12px}.yoho-header .myyoho-info{position:absolute;display:none;top:32px;left:-110px;width:300px;background-color:#f8f8f8;z-index:18}.yoho-header .myyoho-photo{overflow:hidden}.yoho-header .myyoho-photo img{display:block;margin:0 auto;width:63px;height:63px;border-radius:50%}.yoho-header .myyoho-info-header{margin:17px auto 0;width:257px;border-bottom:1px solid #dcdcdc;text-align:center;padding-bottom:15px}.yoho-header .user-email{margin-top:14px;color:#000;height:25px;line-height:20px;font-size:18px}.yoho-header .user-level{color:#000;height:20px;line-height:20px;font-size:18px}.yoho-header .user-level .leveldetail{color:#8cc4f9}.yoho-header .levelinfo{width:100%;padding-top:10px;clear:both;height:15px}.yoho-header .levelwrapper{width:150px;height:14px;background-color:#e2e2e2;margin-left:40px;position:relative}.yoho-header .levelspan{position:absolute;left:2px;height:14px;top:0;line-height:16px}.yoho-header .levelwrapper .integrate{height:14px;line-height:15px;background-color:#ceae64;text-align:left;padding-left:5px}.yoho-header .cardcate{font-size:14px;line-height:14px;margin-left:5px}.yoho-header .myyoho-info-content{margin:20px auto 0;padding-left:35px;padding-right:29px;border-bottom:1px solid #dcdcdc}.yoho-header .myyoho-info-content .item{height:12px;line-height:12px;margin-bottom:16px}.yoho-header .myyoho-info-content .item a{font-size:14px;color:#000}.yoho-header .myyoho-info-footer{height:51px;line-height:51px;text-align:center}.yoho-header .myyoho-info-footer a{color:#000;font-size:14px}.yoho-header .myorder{padding-right:10px}.yoho-header .myorder .tag-seprate{margin-right:11px}.yoho-header .mycollect{padding-right:11px}.yoho-header .mycollect .tag-seprate{margin-right:11px}.yoho-header .message{padding-right:10px}.yoho-header .message .tag-seprate{margin-right:11px}.yoho-header .phone{padding-right:8px;position:relative}.yoho-header .phone .tag-seprate{margin-right:10px}.yoho-header .qr{position:absolute;display:none;top:32px;left:-100px;width:231px;height:290px;background-color:#f8f8f8;z-index:19}.yoho-header .qr-img{position:relative;background-image:url(../assets/img/header/qr.png?v155c47c0108);background-repeat:no-repeat;background-size:100% 100%;margin:32px auto 15px;width:143px;height:147px}.yoho-header .qr-words{height:25px;line-height:25px;font-size:16px;text-align:center}.yoho-header .qr-more{margin-top:6px;line-height:25px;font-size:14px;text-align:center}.yoho-header .onlineserver .tag-seprate{margin-right:10px}.yoho-header .header-navwrapper{width:100%;height:130px;position:relative;min-width:1150px}.yoho-header .header-navcontent{width:1150px;height:130px;margin:0 auto}.yoho-header .first-nav-list{margin-top:45px}.yoho-header .first-nav-item{float:left;padding:8px 23px 0}.yoho-header .first-nav-item .menu-ico{width:84px;height:32px;display:block}.yoho-header .all a,.yoho-header .all span,.yoho-header .boys a,.yoho-header .boys span,.yoho-header .girls a,.yoho-header .girls span,.yoho-header .kids a,.yoho-header .kids span,.yoho-header .lifestyle a,.yoho-header .lifestyle span{color:#fff!important}.yoho-header .all{background-color:#5e4b3c}.yoho-header .all .sub-nav-wrapper{background-color:#000;display:block!important}.yoho-header .all .third-nav-wrapper{border-top:2px solid #000}.yoho-header .searchcateboys .searchinput{border:1px solid #3a3a3a}.yoho-header .searchcateboys .icon-search{background-color:#3a3a3a!important}.yoho-header .searchcategirls .searchinput{border:1px solid #ff88ae}.yoho-header .searchcategirls .icon-search{background-color:#ff88ae!important}.yoho-header .searchcatewoman .searchinput{border:1px solid #ff88ae}.yoho-header .searchcatewoman .icon-search{background-color:#ff88ae!important}.yoho-header .searchcatekids .searchinput{border:1px solid #7bd3f9!important}.yoho-header .searchcatekids .icon-search{background-color:#7bd3f9!important}.yoho-header .gobuyboys{background-position:0 0}.yoho-header .gobuyboys,.yoho-header .gobuygirls{background-image:url(../assets/img/sprite.header.png?v155c47c08d8)}.yoho-header .gobuygirls{background-position:-56px 0}.yoho-header .gobuykids{background-position:-28px 0}.yoho-header .gobuykids,.yoho-header .gobuylifestyle{background-image:url(../assets/img/sprite.header.png?v155c47c08d8)}.yoho-header .gobuylifestyle{background-position:0 -28px}.yoho-header .gobuyoutlets{background-image:url(../assets/img/sprite.header.png?v155c47c08d8);background-position:-28px -28px}.yoho-header .searchcatelifestyle .searchinput{border:1px solid #5e4b3c!important}.yoho-header .searchcatelifestyle .icon-search{background-color:#5e4b3c!important}.yoho-header .boys{background-color:#3a3a3a}.yoho-header .boys .sub-nav-wrapper{background-color:#3a3a3a;display:block!important}.yoho-header .boys .third-nav-wrapper{border-top:2px solid #3a3a3a}.yoho-header .girls{background-color:#ff88ae}.yoho-header .girls .sub-nav-wrapper{background-color:#ff88ae;display:block!important}.yoho-header .girls .third-nav-wrapper{border-top:2px solid #ff88ae}.yoho-header .kids{background-color:#7bd3f9}.yoho-header .kids .sub-nav-wrapper{background-color:#7bd3f9;display:block!important}.yoho-header .kids .third-nav-wrapper{border-top:2px solid #7bd3f9}.yoho-header .lifestyle{background-color:#5e4b3c}.yoho-header .lifestyle .sub-nav-wrapper{background-color:#5e4b3c;display:block!important}.yoho-header .lifestyle .third-nav-wrapper{border-top:2px solid #5e4b3c}.yoho-header .outlets>.sub-nav-wrapper{display:block!important}.yoho-header .name-cn{text-align:center;line-height:16px!important}.yoho-header .name-cn a{color:#000;font-size:16px!important}.yoho-header .name-en{text-align:center;line-height:14px!important;margin-bottom:6px}.yoho-header .name-en a{color:#8e8e8e;font-size:12px;line-height:14px!important;font-family:arial!important}.yoho-header .sub-nav-wrapper{display:none;height:40px;left:0;width:100%;position:absolute;z-index:11}.yoho-header .sub-nav-list{width:1150px;height:40px;margin:0 auto;overflow:hidden}.yoho-header .sub-nav-item{float:left;padding:12px 46px 12px 0;box-sizing:border-box;margin-right:38px}.yoho-header .sub-nav-item a{position:relative;color:#fff;font-size:14px;line-height:14px;display:inline-block}.yoho-header .sub-nav-item:last-child{margin-right:0!important}.yoho-header .newlogo{display:block;width:26px;height:12px;background-image:url(../assets/img/header/new.png?v155c47c0108);background-repeat:no-repeat;position:absolute;right:-29px;top:-6px}.yoho-header .actsecondnav,.yoho-header .sub-nav-item:hover>a{padding-bottom:3px;border-bottom:2px solid #fff}.yoho-header .sub-nav-item:hover .third-nav-wrapper{display:block}.yoho-header .third-nav-wrapper{box-sizing:border-box;height:410px;position:absolute;left:0;top:38px;width:100%;min-width:1150px;display:none;z-index:17;padding-top:30px;padding-bottom:30px;background-color:#f8f8f8}.yoho-header .third-nav{width:1150px;height:100%;margin:0 auto}.yoho-header .category{width:880px;float:left;overflow:hidden}.yoho-header .category .thirdnavlist{box-sizing:border-box;width:220px;height:240px;float:left;padding-left:20px;border-right:1px solid #dcdcdc;padding-right:20px}.yoho-header .category-title{color:#000;font-size:16px;width:178px;padding-bottom:12px;border-bottom:1px solid #000;line-height:16px;margin-bottom:20px}.yoho-header .category-title a{color:#000!important}.yoho-header .category-list{margin-top:16px;margin-bottom:30px}.yoho-header .category-item{line-height:28px}.yoho-header .category-list a{color:#a1a1a1!important;font-size:14px}.yoho-header .category-list .category-item .hot{color:#e01!important;font-size:14px}.yoho-header .category-item-act a{color:#000!important}.yoho-header .showdetail{box-sizing:border-box;padding-left:19px;padding-right:19px;width:337px;height:250px;float:right}.yoho-header [class*=" icon-"],.yoho-header [class^=icon-]{display:inline-block;vertical-align:middle;background-repeat:none}.yoho-header .icon-hamburger{background-position:-56px -40px;width:13px;height:11px}.yoho-header .icon-hamburger,.yoho-header .icon-headphones{background-image:url(../assets/img/sprite.header.png?v155c47c08d8)}.yoho-header .icon-headphones{background-position:-84px 0;width:15px;height:10px;margin-top:2px}.yoho-header .icon-heart{background-position:-41px -56px;width:12px;height:11px}.yoho-header .icon-heart,.yoho-header .icon-mail{background-image:url(../assets/img/sprite.header.png?v155c47c08d8);margin-top:-2px}.yoho-header .icon-mail{background-position:-56px -28px;width:16px;height:10px}.yoho-header .icon-iphone{background-position:-84px 0;width:8px}.yoho-header .icon-iphone,.yoho-header .icon-papers{background-image:url(../assets/img/sprite.header.png?v155c47c08d8);height:14px;margin-top:-2px}.yoho-header .icon-papers{background-position:-29px -56px;width:10px}.yoho-header .icon-bottomarrow{background-image:url(../assets/img/sprite.header.png?v155c47c08d8);background-position:-71px -40px;width:10px;height:5px;margin-top:-2px}.yoho-header .outlets-logo{background:url(../assets/img/header/outlets.png?v155c47c0108) no-repeat 50%;width:200px;height:34px;left:42%;margin-top:28px;position:absolute;display:none}.yoho-header .icon-logo{background:url(../assets/img/header/logo.png?v155c47c0108) no-repeat 50%;width:182px;height:53px;top:22px;left:44.2%;position:absolute}.yoho-header .icon-logo .main-link{display:block;width:100%;height:100%}.yoho-header .search{position:relative}.yoho-header .searchspan{margin-top:45px;float:left;display:inline-block;overflow:hidden}.yoho-header .searchinput{float:left;width:240px;height:28px;border:1px solid #000;box-sizing:border-box;padding:6px 0 5px 10px;border-right:none}.yoho-header .icon-search{background:url(../assets/img/header/search.png?v155c47c0108) no-repeat 50%;width:80px;height:28px;float:left;border:none;margin-top:45px;background-color:#3a3a3a}.yoho-header .search-list{position:absolute;top:73px;left:0;z-index:11;box-sizing:border-box;display:none;background-color:#fff;padding-top:20px;width:100%;max-height:500px;border-left:1px solid #000;border-right:1px solid #000;border-bottom:1px solid #000}.yoho-header .search-item{position:relative;padding:5px;height:25px;line-height:25px;font:12px}.yoho-header .search-item:hover{background-color:#f4f4f4}.yoho-header .searchvalue{position:absolute;left:10px;max-width:192px;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yoho-header .valuenum{position:absolute;right:10px;font-size:12px}.yoho-header .header-tool{padding-right:23px}.yoho-header .gobuy{margin-top:47px;margin-left:23px;width:26px;height:26px;position:relative;cursor:pointer}.yoho-header .gobuy-wrapper{position:absolute;display:none;top:24px;right:-14px;width:378px;padding-top:6px;z-index:19}.yoho-header .gobuy-empty{position:absolute;width:100%;height:507px;z-index:1;background:#f8f8f8 url(../assets/img/header/empty_car.png?v155c47c0108) no-repeat 106px 132px}.yoho-header .gobuy-empty .information{margin-top:300px;width:100%;height:18px;line-height:18px;font-size:18px;text-align:center}.yoho-header .gobuy-loading{position:absolute;width:100%;height:407px;z-index:1;background:#f8f8f8 url(../assets/img/header/loading.gif?v155c47c0108) no-repeat center 150px}.yoho-header .gobuy-loading .information{margin-top:180px;width:100%;height:12px;line-height:12px;font-size:12px;text-align:center}.yoho-header .gobuy-notempty{position:absolute;width:100%;z-index:1;background-color:#f8f8f8;overflow:hidden}.yoho-header .goods-list-wrapper{width:100%;max-height:444px;margin-bottom:19px;overflow-y:auto;overflow-x:hidden}.yoho-header .goods-list{margin-top:40px}.yoho-header .goods-item{height:64px;margin-bottom:18px;padding-left:18px}.yoho-header .goods-img{display:inline-block;float:left;width:46px;height:62px;margin-right:13px}.yoho-header .goods-detail{margin-right:16px}.yoho-header .goods-detail .content{width:170px;height:14px;line-height:14px;font-size:14px;margin-bottom:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yoho-header .goods-detail .content a{color:#666;outline:none;text-decoration:none}.yoho-header .goods-detail .style{height:14px;line-height:14px;font-size:14px;color:#b0b0b0}.yoho-header .goods-price .priceandnum{height:14px;line-height:14px;font-size:14px;margin-bottom:13px;min-width:75px;text-align:right}.yoho-header .goods-price .delete{display:inline-block;float:right;font-size:14px;color:#000}.yoho-header .activity-item{margin-bottom:8px;padding-left:18px}.yoho-header .activity-name{display:inline-block;box-sizing:border-box;border:none;width:60px;height:18px;line-height:18px;background-color:#3a3a3a;color:#fff;font-size:14px;text-align:center;margin-right:13px;vertical-align:top}.yoho-header .activity-content{display:inline-block;line-height:14px;width:250px;color:#3a3a3a;font-size:12px;word-break:break-all}.yoho-header .gobuy-notempty-footer{width:100%;height:61px;text-align:center}.yoho-header .gobuy-notempty-footer h3{box-sizing:border-box;width:349px;margin:0 auto;height:61px;line-height:61px;border-top:1px solid #dcdcdc}.yoho-header .gobuy-notempty-footer a{font-size:18px;color:#444}.yoho-header .ic-infomation{position:absolute;background-image:url(../assets/img/sprite.header.png?v155c47c08d8);background-position:0 -56px;width:27px;height:20px;top:-10px;right:-15px;color:#fff;text-align:center;line-height:20px;font-size:12px}.yoho-header .float-left{float:left}.yoho-header .float-right{float:right}.yoho-header .showdetail img{display:block;box-sizing:border-box;width:337px;height:250px}.yoho-header .showdetail .title{display:block;margin-top:40px;width:100%;height:15px;text-align:center;line-height:15px;font-size:14px;color:#000!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.yoho-header .cate_row{float:left;height:352px;box-sizing:border-box}.yoho-header .cate_row li{box-sizing:border-box}.yoho-header .cate_row1{width:253px}.yoho-header .cate_row2{width:278px;border-left:1px solid #ccc;padding-left:50px}.yoho-header .cate_row3{width:270px;border-left:1px solid #ccc;padding-left:50px}.yoho-header .third-nav .cattitle{width:180px;padding-bottom:10px;border-bottom:1px solid #000;line-height:18px;margin-bottom:20px}.yoho-header .third-nav .cattitle h3 a{color:#000!important;font-size:14px}.yoho-header .third-nav .catdetail{line-height:14px;height:14px;margin-bottom:24px;min-width:200px}.yoho-header .third-nav .catdetail a{color:#a1a1a1!important;font-size:14px}.yoho-header .third-nav .catdetail .hot{color:#e01!important}.yoho-header .thirdcatelink:hover{text-decoration:underline!important}.yoho-header .hovercontent{display:none}.yoho-header.outlets .header-navwrapper{background-color:#3a3a3a}.yoho-header.outlets .header-navwrapper .sub-nav-wrapper{background-color:#e6e6e6;margin-top:37px}.yoho-header.outlets .header-navwrapper .third-nav-wrapper{border-top:0}.yoho-header.outlets .outlets-logo{display:block}.yoho-header.outlets .icon-logo{display:none}.yoho-header.outlets .first-nav-item.cure{background:none}.yoho-header.outlets .first-nav-item>h3,.yoho-header.outlets .header-tool>.search{display:none}.yoho-header.outlets .sub-nav-list{padding-left:15%}.yoho-header.outlets .sub-nav-list .sub-nav-item{width:14%;text-align:center}.yoho-header.outlets .sub-nav-list .sub-nav-item>a{color:#222!important}.yoho-header.outlets .sub-nav-list .sub-nav-item:hover a{border-color:#555}.yoho-header.outlets .sub-nav-list .third-nav{text-align:left}.simple-header{height:66px;margin:0 0 20px;border-bottom:2px solid #222}.simple-header .header-inner{width:990px;height:100%;margin:0 auto}.simple-header .logo{float:left;line-height:66px;font-size:0}.simple-header .logo img{vertical-align:middle}.simple-header .header-tool{float:right;line-height:66px;font-size:0}.simple-header .header-tool li{display:inline-block;padding:0 10px;line-height:28px}.simple-header .header-tool li,.simple-header .header-tool li a,.simple-header .header-tool li span{font-size:12px;vertical-align:middle}.simple-header .header-tool li .tell-icon{font-size:12px}.simple-header .header-tool li .tell-icon~span{font-weight:700}.simple-header .header-tool .login-box a{color:#666}.simple-header .header-tool .tool-options{position:relative;font-size:0;cursor:pointer}.simple-header .header-tool .tool-options .iconfont,.simple-header .header-tool .tool-options span{display:inline-block;font-size:12px;height:28px;line-height:28px;vertical-align:top}.simple-header .header-tool .tool-options .iconfont.up,.simple-header .header-tool .tool-options span.up{display:none}.simple-header .header-tool .tool-options .tool-select{display:none;position:absolute;width:74px;left:0;background:#eaeceb;z-index:6}.simple-header .header-tool .tool-options .tool-select a{display:block;padding:0 0 0 10px;border-top:1px solid #ddd}.simple-header .header-tool .tool-options:hover{background-color:#eaeceb}.simple-header .header-tool .tool-options:hover .iconfont.up{display:inline-block}.simple-header .header-tool .tool-options:hover .iconfont.down{display:none}.min-screen .yoho-header .header-topwrapper{min-width:990px}.min-screen .yoho-header .header-top{width:990px}.min-screen .yoho-header .header-navwrapper{min-width:990px}.min-screen .yoho-header .header-navcontent,.min-screen .yoho-header .header-wrapper{width:990px}.min-screen .yoho-header .icon-logo{left:39.2%}.min-screen .yoho-header .icon-logo .main-link{display:block;width:100%;height:100%}.min-screen .yoho-header .sub-nav-list{width:990px;min-width:990px}.min-screen .yoho-header .sub-nav-item{margin-right:15px}.min-screen .yoho-header .first-nav-item{float:left;padding:10px 14px 0;margin-right:3px}.min-screen .yoho-header .third-nav{width:990px}.min-screen .yoho-header .third-nav-wrapper{min-width:990px}.min-screen .yoho-header .category{width:800px}.min-screen .yoho-header .cate_row1{width:204px}.min-screen .yoho-header .cate_row2{width:244px;border-left:1px solid #ccc;padding-left:39px}.min-screen .yoho-header .cate_row3{width:163px;border-left:1px solid #ccc;padding-left:28px}.min-screen .yoho-header .category .thirdnavlist{width:200px}.min-screen .yoho-header .category-title{width:152px}.min-screen .yoho-header .showdetail{width:190px;padding-right:0}.min-screen .yoho-header .showdetail img{width:174px;height:155px}#cover{position:fixed;z-index:12}#cover,#cover .con{left:0;top:0;width:100%;height:100%}#cover .con{background:rgba(0,0,0,.6)!important;position:absolute;z-index:13;opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"}#cover .tag_img_warpper{margin:0 auto;width:180px;height:168px}#cover .tag_img_warpper img{width:100%;height:100%}#cover .guide-box{background:#fff;margin:0 auto;height:400px;position:relative;z-index:14}#cover .guide-box .close{top:-15px;text-align:center;right:-15px;color:#fff;line-height:22px;font-size:24px;position:absolute;background:#000;border-radius:50px;border:currentColor;border-image:none;width:28px;height:28px;line-height:25px;display:block}#cover .guide-box li{padding:10px;width:200px;height:400px;float:left;box-sizing:border-box}#cover .guide-box li .go{margin:26px auto 0;width:100%;height:18px;text-align:center;color:#b0b0b0;line-height:18px;font-size:18px;font-style:italic;font-weight:lighter;display:block}#cover .guide-box li.girls{border-left-color:#eee;border-left-width:1px;border-left-style:solid}#cover .guide-box li.girls .goods-num{text-align:center;color:#bbb;line-height:12px;font-size:12px;margin-top:16px}#cover .guide-box li.lifestyle{border-left-color:#eee;border-left-width:1px;border-left-style:solid}#cover .guide-box li.lifestyle .goods-num{text-align:center;color:#bbb;line-height:12px;font-size:12px;margin-top:16px}#cover .guide-box li.kids{border-left-color:#eee;border-left-width:1px;border-left-style:solid}#cover .guide-box li.boys .goods-num,#cover .guide-box li.kids .goods-num{text-align:center;color:#bbb;line-height:12px;font-size:12px;margin-top:16px}#cover .boys .block_cn,#cover .girls .block_cn,#cover .kids .block_cn,#cover .lifestyle .block_cn{text-align:center;line-height:26px;font-size:26px;font-weight:700;margin-top:30px}#cover .boys .block_en,#cover .girls .block_en,#cover .kids .block_en,#cover .lifestyle .block_en{text-align:center;line-height:26px;font-size:26px;font-weight:700;margin-top:19px}#cover .boys .block_cn,#cover .boys .block_en{color:#000}#cover .girls .block_cn,#cover .girls .block_en{color:#ff88ae}#cover .kids .block_cn,#cover .kids .block_en{color:#7ad9f8}#cover .lifestyle .block_cn,#cover .lifestyle .block_en{color:#4f4037!important}#cover .boys .block_line,#cover .girls .block_line,#cover .kids .block_line,#cover .lifestyle .block_line{margin:20px auto 0;width:50px;height:0;border-bottom-color:#ccc;border-bottom-width:1px;border-bottom-style:solid}.yoho-footer{font-size:12px}.yoho-footer *{box-sizing:border-box}.yoho-footer .red{color:#e01}.yoho-footer .rgb6{color:#666}.yoho-footer .rgb9{color:#999}.yoho-footer .rgbf{color:#fff}.yoho-footer .index-foot{background:#eee;padding:20px 0}.yoho-footer .index-foot dd{float:left;width:370px;margin-right:20px;overflow:hidden}.yoho-footer .index-foot dd ul{margin-top:18px;padding-top:18px}.yoho-footer .index-foot dd.last{margin-right:0}.yoho-footer .foot-panel{background:#fff;padding:20px}.yoho-footer .title{position:relative;text-align:center}.yoho-footer .title-line{border-bottom:1px solid #ddd;position:absolute;top:9px;width:100%;left:0}.yoho-footer .text{position:absolute;width:100%;text-align:center;left:0;top:0}.yoho-footer .text span{background:#fff;font-size:18px;line-height:18px;padding:0 10px}.yoho-footer .item-nav{padding-top:20px}.yoho-footer .item-nav span{color:#fff;padding:0 3px;cursor:pointer;font-size:20px}.yoho-footer .item-nav .cur{color:#999}.yoho-footer .vote{line-height:24px}.yoho-footer .vote input{margin:0 5px 0 1px}.yoho-footer .vote .button{height:24px;line-height:24px;width:55px;font-size:12px;margin-top:11px;margin-right:10px;background:#222;color:#fff;display:inline-block;text-align:center;cursor:pointer}.yoho-footer .vote p{height:24px;overflow:hidden}.yoho-footer .vote textarea{width:98%;height:68px;vertical-align:middle;margin:5px 0 0;resize:none}.yoho-footer .vote-item p{float:left;width:50%}.yoho-footer .mobile{margin-right:-10px}.yoho-footer .mobile li{margin-right:10px;float:left}.yoho-footer .mobile img{display:block;width:103px;height:131px}.yoho-footer .index-banner{width:100%;margin-top:20px}.yoho-footer .two-dim{margin-right:-10px;overflow:hidden}.yoho-footer .two-dim li{border:1px solid #ddd;margin-right:10px}.yoho-footer .two-dim li a{display:block}.yoho-footer .two-dim li p{text-align:center;margin-top:13px;margin-bottom:10px;line-height:12px}.yoho-footer .dim-img{display:block;width:87px;height:87px;margin:7px}.yoho-footer .dim-hover{position:absolute}.yoho-footer .dim-hover img{width:38px;height:38px}.yoho-footer .dim-active .dim-img{opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}.yoho-footer .dim-active .dim-hover{display:none}.yoho-footer .footerbottom{width:100%}.yoho-footer .promise{padding:20px 0 10px;background:#000}.yoho-footer .promise .left{margin-right:60px;line-height:30px;font-size:12px;font-weight:700}.yoho-footer .promise .left .iconfont{display:inline-block;font-weight:400;font-size:22px;vertical-align:middle;margin-right:5px}.yoho-footer .promise .left:first-child .iconfont{font-size:27px}.yoho-footer .subscribe{border:1px solid #262626;width:240px}.yoho-footer .subscribe input{width:180px;height:32px;padding:0 10px;line-height:32px;border:none;margin:0;background:#000}.yoho-footer .subscribe a{display:block;float:right;margin-right:20px;font-size:20px;line-height:28px;opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"}.yoho-footer .footer-help{background:#000;font-size:12px;overflow:hidden}.yoho-footer .footer-help>div{padding:15px 0;border-top:1px solid #262626}.yoho-footer .footer-help ul{width:110%}.yoho-footer .footer-help p{line-height:24px}.yoho-footer .footer-help p span{color:#fff}.yoho-footer .footer-help p a{color:#666}.yoho-footer .footer-help p a:hover{text-decoration:underline}.yoho-footer .footer-help li{width:180px}.yoho-footer .footer-help .screen{border-top:1px solid #262626;padding:15px 0}.yoho-footer .footer-link{background:#000;padding:10px 0 30px;font-size:12px}.yoho-footer .footer-link .right-flag{margin-top:3px}.yoho-footer .footer-link .right-flag a{margin-right:5px}.yoho-footer .footer-link .about-us{line-height:20px;color:#666;margin-left:10px}.yoho-footer .footer-link .about-us a{color:#666}.yoho-footer .footer-link .about-us span{padding:0 10px}.yoho-footer .return-top{position:fixed;width:60px;height:60px;left:50%;margin-left:595px;text-align:center;line-height:50px;color:#fff;background:#000;opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";bottom:20px;cursor:pointer;z-index:4}.yoho-footer .return-top .iconfont{font-size:34px}.yoho-footer .return-top:hover{opacity:.9;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=90)"}.yoho-footer .return-top.min{left:100%;right:20px;margin-left:auto}.min-screen .yoho-footer .index-foot dd{width:316px}.min-screen .yoho-footer .two-dim{margin-top:26px;margin-bottom:10px;overflow:hidden}.min-screen .yoho-footer .dim-img{width:69px;height:69px}.min-screen .yoho-footer .mobile{margin-top:26px;padding-bottom:15px}.min-screen .yoho-footer .mobile img{width:85px;height:108px}.min-screen .yoho-footer .promise .left{margin-right:45px}.min-screen .yoho-footer .subscribe{width:200px}.min-screen .yoho-footer .subscribe input{width:140px}.min-screen .yoho-footer .footer-help li{width:150px}.path-nav{font-size:12px;padding:15px 0;height:18px;line-height:18px}.path-nav,.path-nav a{color:#666}.path-nav .iconfont{font-size:12px}.path-nav .last{font-weight:700}.slider{position:relative;height:327px;width:100%;overflow:hidden}.slider img{max-width:100%;max-height:100%}.slide-pagination{position:absolute;left:0;right:0;bottom:12px;text-align:center}.slide-pagination-inner{display:inline-block;position:relative;padding:7px;vertical-align:middle}.slide-shade{position:absolute;left:0;right:0;top:0;bottom:0;background:#000;opacity:.3;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";border-radius:13px}.slide-pagination-last span{display:block;float:left;position:relative;margin:0 7px;width:12px;height:12px;background:#fff;cursor:pointer;opacity:.6;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";border-radius:6px;z-index:2}.slide-pagination-last span.focus{opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}.slide-switch{display:none}.slide-switch a{display:block;position:absolute;top:50%;margin:-30px 0 0;width:60px;height:60px;line-height:56px;text-align:center;z-index:2;background:#fff;opacity:.55;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=55)"}.slide-switch a .iconfont{font-size:32px;color:#59585a}.slide-switch a:hover{opacity:.9;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=90)"}.slide-switch .prev{left:0}.slide-switch .next{right:0}.slide-switch.show{display:block}.yoho-dialog{position:fixed;padding:20px;top:50%;left:50%;min-height:130px;min-width:350px;background:#f8f8f8;z-index:12;border:5px solid rgba(0,0,0,.38)}.yoho-dialog .close{position:absolute;top:5px;right:5px;cursor:pointer}.yoho-dialog .btns,.yoho-dialog .content{text-align:center}.yoho-dialog .alert-sure,.yoho-dialog .confirm-sure{background:#000;color:#fff}.yoho-dialog .btn{display:inline-block;width:56px;height:26px;line-height:26px;text-align:center;border:1px solid #000;cursor:pointer;margin-left:10px}.yoho-dialog .btn:first-child{margin-left:0}.yoho-dialog.alert-dialog .content,.yoho-dialog.confirm-dialog .content{width:350px;height:auto;min-height:90px;overflow:hidden;line-height:20px;position:relative;padding-top:40px;padding-bottom:20px}.yoho-dialog.alert-dialog .content p,.yoho-dialog.confirm-dialog .content p{position:absolute;left:0;bottom:25px;width:100%;color:#444;line-height:25px}.yoho-dialog.alert-dialog .content div,.yoho-dialog.confirm-dialog .content div{position:absolute;top:0;left:100px;padding-top:30px;font-size:22px;font-weight:700;width:150px;height:30px;line-height:30px;margin:0 auto}.yoho-dialog.alert-dialog .content div span,.yoho-dialog.confirm-dialog .content div span{background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:0 -272px;float:left;width:27px;height:30px}.yoho-dialog.subcontent-dialog{padding:30px 0}.yoho-dialog.subcontent-dialog .content{font-weight:700;margin:0 auto 30px}.yoho-dialog.subcontent-dialog .sub-content{text-align:center;font-size:12px;color:#555;margin-left:5px;margin-bottom:5px}.yoho-dialog.subcontent-dialog .btn{margin-top:25px;width:100px;font-size:13px;margin-left:0;margin-right:0}.yoho-dialog.subcontent-dialog .btn.black{background-color:#000;color:#fff}.pager{font-size:12px}.pager a{height:24px;padding:0 9px;line-height:24px;display:inline-block;text-align:center;margin-right:8px;color:#222}.pager a.cur{color:#fff;background-color:#222}.pager a:first-child .iconfont{right:auto;left:-5px}.pager .iconfont{position:relative;vertical-align:middle;bottom:1px;right:-5px;font-size:14px}.err-page{width:650px;height:200px;overflow:hidden;margin:100px auto}.err-page .tips-404{float:left;height:200px;padding-left:20px}.err-page .tips-404 .tip{font-size:24px;color:#000;margin-top:55px}.err-page .tips-404 .links{font-size:12px;color:#666;margin-top:15px}.err-page:before{content:'';display:block;width:200px;height:200px;background:url(../assets/img/404.png?v155c47be998) 50% no-repeat;float:left}.share-wrapper{position:relative}.share-wrapper i{display:block;float:left;width:16px;height:16px;margin-left:5px;cursor:pointer}.share-wrapper .weibo{background-position:0 0}.share-wrapper .tweibo,.share-wrapper .weibo{background-image:url(../assets/img/sprite.share.png?v155c47c08d8)}.share-wrapper .tweibo{background-position:-18px 0}.share-wrapper .renren{background-position:0 -18px}.share-wrapper .qzone,.share-wrapper .renren{background-image:url(../assets/img/sprite.share.png?v155c47c08d8)}.share-wrapper .qzone{background-position:-18px -18px}.share-wrapper .qq{background-position:-36px 0}.share-wrapper .douban,.share-wrapper .qq{background-image:url(../assets/img/sprite.share.png?v155c47c08d8)}.share-wrapper .douban{background-position:-36px -18px}.share-wrapper .weixin{background-image:url(../assets/img/sprite.share.png?v155c47c08d8);background-position:0 -36px}.share-wrapper .weixin-share-box{display:none;position:absolute;width:282px;height:302px;padding-top:9px;text-align:center;font-family:Microsoft Yahei,Arial,Verdana;top:22px;right:-26px;z-index:2}.share-wrapper .weixin-share-box em,.share-wrapper .weixin-share-box em i{position:absolute;width:0;height:0;font-size:0;border-width:0 10px 9px;border-style:dashed dashed solid}.share-wrapper .weixin-share-box em{border-color:transparent transparent #d6d6d6;top:0;left:50%;margin-left:-10px}.share-wrapper .weixin-share-box em i{border-color:transparent transparent #e8e8e8;overflow:hidden;top:1px;left:-15px}.share-wrapper .weixin-share-box .con{position:relative;width:280px;height:300px;overflow:hidden;background-color:#fff;border:1px solid #d6d6d6;box-shadow:0 2px 4px #d1d1d1}.share-wrapper .weixin-share-box h2{display:block;height:46px;line-height:46px;background-color:#e8e8e8;color:#000;font-size:18px}.share-wrapper .weixin-share-box .pic,.share-wrapper .weixin-share-box .pic img{width:168px;height:168px}.share-wrapper .weixin-share-box .pic{overflow:hidden;margin:16px auto}.share-wrapper .weixin-share-box .w{font-size:13px;color:#9f9f9f;line-height:20px}.share-wrapper .weixin-share-box .close{position:absolute;width:45px;height:45px;line-height:45px;overflow:hidden;top:0;right:0;font-size:16px;color:#999}.product-search-page .goods-container{height:auto;padding:25px 0 0;position:relative;width:1160px}.product-search-page .goods-container .good-info{width:222px}.product-search-page .path-nav .last{font-weight:400}.product-search-page .path-nav .last span{font-weight:700}.min-screen .product-search-page .goods-container{height:auto;padding-top:25px;position:relative;width:1000px}.min-screen .product-search-page .goods-container .good-info{width:190px}.min-screen .product-search-page .goods-container .good-info .good-detail-img{height:255px}.min-screen .product-search-page .goods-container .block-next-page{width:190px;height:255px}.min-screen .product-search-page .filter-box .brand .attr-content{max-width:750px}.product-list-page .list-left{width:160px}.product-list-page .list-right{width:970px}.product-list-page .brand-banner{position:relative;height:150px;overflow:hidden}.product-list-page .brand-banner .opt-wrap{position:absolute;width:100%;height:32px;top:50%;margin-top:-16px;text-align:right}.product-list-page .brand-banner a,.product-list-page .brand-banner span{display:inline-block;height:20px;margin-right:5px;line-height:20px;border:1px solid #fff;padding:5px 10px;color:#fff;font-size:12px}.product-list-page .brand-banner .iconfont{font-size:13px}.product-list-page .brand-banner .brand-favor{margin-right:0;cursor:pointer}.product-list-page .brand-banner .coled{color:red}.product-list-page .brand-about{font-size:12px;line-height:150%}.product-list-page .sort-intro{margin-bottom:20px}.product-list-page .sort-intro .texts{width:386px;height:298px;padding:0 50px;border:1px solid #eaeceb;text-align:center;overflow:hidden}.product-list-page .sort-intro .name{font-size:30px;font-weight:700;margin-top:60px}.product-list-page .sort-intro .en-name{font-size:14px;font-weight:700}.product-list-page .sort-intro .desc{color:#666;margin-top:15px;font-size:12px;line-height:150%}.product-list-page .sort-intro .img{width:480px;height:300px}.product-list-page .sort-intro .key-entry{width:330px;margin:30px auto 0}.product-list-page .sort-intro .key-entry a{float:left;display:block;width:110px;line-height:20px;font-size:12px;color:#069;text-decoration:underline}.product-list-page .sell-signboard .left-list li{padding-left:0;height:auto;margin-bottom:10px;line-height:inherit}.product-list-page .sell-signboard .left-list li img{width:100%}.product-list-page.search-page .path-nav .last{font-weight:400}.product-list-page.search-page .path-nav .last span{font-weight:700}.min-screen .product-list-page .sort-intro .texts{width:346px;height:248px;padding:0 30px}.min-screen .product-list-page .sort-intro .name{margin-top:30px}.min-screen .product-list-page .sort-intro .img{width:400px;height:250px}.new-sale-page .sale-list-banner{width:100%;position:relative}.new-sale-page .sale-list-banner ul{overflow:hidden;width:100%;position:relative;z-index:1}.new-sale-page .sale-list-banner ul li{width:100%;height:100%;display:block;float:left;position:absolute;top:0;left:0}.new-sale-page .sale-list-pagation{z-index:2;position:absolute;left:0;bottom:50px;width:100%;height:20px;text-align:center}.new-sale-page .sale-list-pagation div{display:inline-block}.new-sale-page .sale-list-pagation span{display:block;width:20px;height:20px;background:url(../assets/img/product/default-normal.png?v155c47c0108);float:left;margin:0 10px;cursor:pointer}.new-sale-page .sale-list-pagation span.active{background:url(../assets/img/product/default-active.png?v155c47c0108)}.new-sale-page .header-title{position:relative;width:100%;height:42px;margin:20px 0;text-align:center;font-size:20px}.new-sale-page .header-title .count-wrap{position:relative}.new-sale-page .header-title .count{background:#fff;padding:0 5px;color:#999;font-size:12px;margin-top:6px}.new-sale-page .header-title .line-through{position:absolute;bottom:9px;left:0;right:0;height:1px;border-top:1px dotted #999}.new-sale-page .new-banner img{display:block;width:100%}.new-sale-page .new-brands{position:relative;width:100%;margin-top:25px}.new-sale-page .new-brands>*{float:left}.new-sale-page .new-brands .next,.new-sale-page .new-brands .pre{position:absolute;display:block;width:40px;height:40px;line-height:40px;color:#fff;background:#e0e0e0;text-align:center;top:50%;margin-top:-20px;cursor:pointer;opacity:.8;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"}.new-sale-page .new-brands .next:hover,.new-sale-page .new-brands .pre:hover{opacity:.9;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=90)"}.new-sale-page .new-brands .pre{left:0}.new-sale-page .new-brands .next{right:0}.new-sale-page .new-brands .brands-wrap{position:relative;overflow:hidden;width:890px;height:76px;margin-left:40px}.new-sale-page .new-brands .brands{position:absolute;width:auto;height:76px}.new-sale-page .new-brands .brands li{float:left;margin-left:14px}.new-sale-page .new-brands .brands li a{display:block;width:164px;height:76px;line-height:76px;vertical-align:middle;text-align:center}.new-sale-page .new-brands .brands li img{vertical-align:middle;max-width:100%;max-height:100%;border:none}.new-sale-page .new-floor-title{position:relative;margin:35px auto;width:300px;height:31px;line-height:31px;font-size:18px;border:1px solid #000}.new-sale-page .new-floor-title .date{position:absolute;left:-1px;top:-1px;width:155px;height:33px;color:#fff;text-align:center;background:url(../assets/img/product/floor-title.png?v155c47c0108)}.new-sale-page .new-floor-title .title{float:right;margin-right:40px}.min-screen .new-sale-page .new-brands .brands-wrap{width:730px}.filter-box{border:1px solid #dfdfdf}.filter-box .section{padding:10px 15px;font-size:12px;border-top:1px solid #dfdfdf}.filter-box .section:first-child{border-top:none;padding:5px 15px}.filter-box .title{float:left;width:75px;line-height:30px;font-weight:700}.filter-box .attr-content{margin-left:75px}.filter-box .multi-select{display:inline-block;width:60px;height:18px;line-height:18px;border:1px solid #555;color:#555;text-align:center;cursor:pointer}.filter-box .attr{display:block;float:left;padding:0 10px;margin-right:30px;line-height:30px;cursor:pointer;color:#666;-moz-user-select:none}.filter-box .attr a{color:#666}.filter-box .attr:first-child{margin-left:0}.filter-box .attr.checked,.filter-box .attr.checked a{color:#e01}.filter-box .attr:hover{text-decoration:underline}.filter-box .color .attr{margin-right:0}.filter-box .checked .color-block{width:16px;height:16px;border:2px solid #222;padding:2px;background-size:100%!important}.filter-box .checked .color-block .sub-color-block{display:block;width:16px;height:16px;background-position:50%!important}.filter-box .checked-conditions{line-height:30px;background:#eaeceb}.filter-box .checked-conditions .title{margin-top:5px}.filter-box .checked-conditions .tag{display:block;float:left;padding:0 10px;margin:5px 30px 5px 0;background:#000;color:#fff;cursor:pointer}.filter-box .checked-conditions .color-block{height:14px;width:14px;border:1px solid #fff;margin-bottom:-3px;background-size:100%!important;background-position:50%!important}.filter-box .checked-conditions .clear-checked{margin-top:5px;color:#999;float:right}.filter-box .checked-conditions .clear-checked:hover{color:#468fa2}.filter-box .checked-conditions .close{font-size:14px}.filter-box .sort-pre .active .attr{border:1px solid #000}.filter-box .sort-pre .attr{position:relative}.filter-box .active .sort-up-icon{visibility:visible}.filter-box .sort-up-icon{position:absolute;width:15px;height:9px;left:50%;margin-left:-7px;bottom:-17px;z-index:3;visibility:hidden;background:url(../assets/img/product/senior-up.png?v155c47c0108) no-repeat;background-position:50% 0}.filter-box .sort-sub-wrap{width:100%}.filter-box .sort-sub-wrap .sort-sub{border-top:1px solid #eaeceb;margin-top:15px;padding:0 0 15px}.filter-box .sort-sub-wrap .sort-sub .attr{padding-top:15px}.filter-box .brand{position:relative}.filter-box .brand .attr{box-sizing:border-box;width:20%;height:30px;margin:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.filter-box .brand .attr-content{max-width:900px}.filter-box .brand .brand-opt{position:absolute;right:20px;top:15px;color:#555}.filter-box .brand .multi .attr.checked,.filter-box .brand .multi .attr.checked a{color:#000}.filter-box .brand .brand-more{margin-right:10px;cursor:pointer}.filter-box .brand .brands-index{float:left;line-height:30px;margin-right:5px;cursor:pointer}.filter-box .brand .brands-index span{margin:0 3px;-moz-user-select:none}.filter-box .brand .brands-index span:first-child{margin-left:10px}.filter-box .brand .brands-index span.hover{color:red}.filter-box .brand .brand-search{float:left;height:18px;line-height:18px;border:1px solid #b0b0b0;margin-top:5px;margin-left:10px}.filter-box .brand .brand-search input{float:left;border:none;width:100px;height:18px;padding:0}.filter-box .brand .brand-search .btn{position:relative;display:inline-block;top:-1px;width:55px;height:20px;line-height:20px;background:#3a3a3a;color:#fff;text-align:center;cursor:default}.filter-box .brand .panel-body{padding:15px 20px;background:#f4f7f6;margin-top:5px;margin-left:10px}.filter-box .brand .panel-body .ul-scroll{overflow:auto;min-height:30px;max-height:150px}.filter-box .btns{display:none;margin-top:10px;text-align:center}.filter-box .multi .btns{display:block}.filter-box .multi-select-cancel,.filter-box .multi-select-ok{width:55px;height:24px;border:none;background:#000;color:#fff;font-size:14px;margin-right:20px;cursor:pointer;outline:none;font-family:Microsoft YaHei}.filter-box .multi-select-cancel.dis,.filter-box .multi-select-ok.dis{background:#ccc}.filter-box .ud-price-range{margin-top:2px}.filter-box .limit{height:22px;width:42px;border:1px solid #ccc;padding:0}.filter-box .price-sep{margin:0 5px}.filter-box .price-sure{height:24px;width:44px;background:#333;color:#fff;margin-left:10px;outline:none;border:none;font-size:12px;cursor:pointer}.filter-box .color-block{display:inline-block;height:22px;width:22px;border:1px solid #ccc;margin-bottom:-6px;margin-right:5px;background-size:100%!important;background-repeat:no-repeat!important;background-position:50%!important}.filter-box .senior{padding-bottom:6px}.filter-box .senior .attr-content{position:relative}.filter-box .senior .senior-attr-wrap>.attr:hover{text-decoration:none}.filter-box .senior-attr-wrap{position:relative}.filter-box .senior-attr-wrap>.attr.hover,.filter-box .senior-attr-wrap>.attr:hover{font-weight:700}.filter-box .senior-attr-wrap>.attr.hover>.iconfont,.filter-box .senior-attr-wrap>.attr:hover>.iconfont{visibility:hidden}.filter-box .senior-attr-wrap>.attr.hover .senior-up-icon,.filter-box .senior-attr-wrap>.attr:hover .senior-up-icon{visibility:visible}.filter-box .senior-sub{box-sizing:border-box;position:absolute;padding:0 15px 15px 91px;left:-91px;right:-16px;top:39px;background:#fff;border:1px solid #dfdfdf;border-top:0;z-index:2}.filter-box .senior-sub ul{max-width:950px}.filter-box .senior-sub .multi-select{position:absolute;top:20px;right:15px}.filter-box .senior-sub .attr{height:30px}.filter-box .senior-sub.multi .multi-select{display:none}.filter-box .senior-baffle{height:18px;margin-top:-18px;background:none}.filter-box .senior-content{padding-top:15px;border-top:1px solid #eaeceb}.filter-box .senior-up-icon{position:relative;width:100%;height:9px;z-index:3;margin-left:-11px;visibility:hidden;background:url(../assets/img/product/senior-up.png?v155c47c0108) no-repeat;background-position:50% 0;top:-1px;top:1px\9}.filter-box .checkbox{display:none;float:left}.filter-box .multi .checkbox{display:block;color:#ccc;font-size:12px;margin-right:3px}.filter-box .multi .checkbox.checked{color:#000}.filter-box .multi .checkbox.checked+span{color:#000;font-weight:700}.min-screen .filter-box .brand .attr{width:25%}:root .senior-up-icon,_:-ms-fullscreen{top:1px}.sort-pager{height:48px;background:#f5f7f6;line-height:48px;margin:10px 0}.sort-pager .checks,.sort-pager .sort-type{color:#999;font-size:12px;padding:0 10px}.sort-pager .checks .iconfont,.sort-pager .sort-type .iconfont{font-size:12px}.sort-pager .checks.active,.sort-pager .checks.checked,.sort-pager .sort-type.active,.sort-pager .sort-type.checked{color:#000;font-weight:700}.sort-pager .checks.active .iconfont,.sort-pager .checks.checked .iconfont,.sort-pager .sort-type.active .iconfont,.sort-pager .sort-type.checked .iconfont{font-weight:100}.sort-pager .checks .iconfont{background:#fff}.sort-pager .sort-type:first-child .iconfont{display:none}.sort-pager .pager-wrap{float:right;padding:15px 0}.sort-pager .page-count{position:relative;height:18px;float:left;font-size:12px;line-height:18px}.sort-pager .page-count>span{float:left;display:block;width:42px;height:10px;line-height:10px;padding:3px;border:1px solid #ccc;color:#222;cursor:pointer;margin-right:10px;background:#fff}.sort-pager .page-count .iconfont{font-size:14px;color:#ccc;float:right}.sort-pager .page-count>ul{position:absolute;display:none;width:48px;border-left:1px solid #ccc;border-right:1px solid #ccc;background:#fff;z-index:1}.sort-pager .page-count li{padding:0 3px;border-bottom:1px solid #ccc}.sort-pager .page-count li:hover{background:#376cf7;color:#fff}.sort-pager .page-count a{display:block;width:100%}.sort-pager .page-orient{float:left;font-size:14px;line-height:15px;margin:0 20px}.sort-pager .page-orient .dis-icon{color:#e6e6e6}.sort-pager .page-orient i{color:red}.good-info{margin-bottom:35px;width:222px;margin-right:10px;float:left}.good-info .good-detail-img{width:100%;height:300px;position:relative}.good-info .good-detail-img .good-thumb,.good-info .good-detail-img img.lazy{display:block;overflow:hidden;width:100%;height:100%}.good-info .good-detail-img .few-tag{width:100%;position:absolute;left:0;height:16px;line-height:16px;background:#ffac5b;color:#fff;font-size:12px;text-align:center;bottom:0}.good-info .good-detail-text{color:#222;font-size:12px;text-align:left;overflow:hidden}.good-info .good-detail-text>a{margin-top:16px;line-height:1.5;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.good-info .good-detail-text>.price{margin-top:5px}.good-info .good-detail-text .brand a{color:#666;line-height:1.5}.good-info .good-detail-text .market-price{text-decoration:line-through;color:#999}.good-info .col-btn{position:absolute;top:15px;right:15px;color:#ccc;font-size:12px}.good-info .col-btn.coled{color:#f95b4f}.good-info .tag-container{font-size:12px;height:22px;line-height:22px}.good-info .tag-container .good-tag{float:left;box-sizing:border-box;display:block;height:22px;padding:0 7px;margin-right:3px;color:#fff}.good-info .tag-container .good-tag:nth-last-of-type(1){margin-right:0}.good-info .tag-container .new-tag{background:#78dc7d}.good-info .tag-container .renew-tag{background:#78dc7e}.good-info .tag-container .running-man-tag{background-color:#017df9;color:#f7ed02}.good-info .tag-container .sale-tag,.good-info .tag-container .yep-tag,.good-info .tag-container .ymp-tag{background:#ff565b}.good-info .tag-container .limit-tag{color:#4e4e4e;border:1px solid #4e4e4e}@keyframes a{0%{max-width:0}to{max-width:150px}}.good-item-wrapper{border:1px solid #ddd;padding-left:20px;padding-top:18px;padding-right:20px;position:absolute;background:#fff;display:none}.good-item-wrapper .good-info-main{float:left}.good-item-wrapper .col-btn{display:block}.good-item-wrapper .col-btn:hover{cursor:pointer}.good-item-wrapper .good-select-color{float:left;margin-top:22px;overflow:hidden;animation:a .6s 1}.good-item-wrapper .good-select-color ul{display:block;float:left;margin-left:15px}.good-item-wrapper .good-select-color li{width:50px;margin-bottom:15px}.good-item-wrapper .good-select-color li a,.good-item-wrapper .good-select-color li img{display:block;overflow:hidden;width:100%}.block-next-page,.good-item-wrapper .good-info{margin-right:10px}.block-next-page{width:222px;height:297px;padding-top:22px;margin-bottom:35px;float:left;cursor:pointer}.block-next-page a{display:block}.block-next-page a img{width:100%;height:100%;display:block;overflow:hidden}.latest-walk{overflow:hidden;border-top:2px solid #eaeceb;font-size:12px}.latest-walk h2{padding-top:15px;font-size:14px}.latest-walk .goods{min-width:984px;height:241px;margin:30px 0;overflow:hidden}.latest-walk .good{float:left;margin-right:14px;width:150px}.latest-walk img{display:block;width:150px;height:201px}.latest-walk .name{display:block;height:18px;line-height:18px;max-width:150px;margin:5px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.latest-walk .market-price{color:#999;margin-right:5px;text-decoration:line-through}.latest-walk .sale-price{color:#000;font-weight:700}.min-screen .latest-walk .goods{width:820px;min-width:820px;height:301px}.min-screen .latest-walk .good{margin-right:10px;width:195px}.min-screen .latest-walk img{width:195px;height:261px}.product-page .sort-container{width:100%;font-size:12px;border-bottom:1px solid #ebebeb;padding-bottom:10px;margin-bottom:10px}.product-page .sort-container h2{height:28px;line-height:28px;color:#222;font-weight:700;position:relative}.product-page .sort-container h2 span{color:#bbb;padding-left:5px}.product-page .product-list-nav h3{height:28px;line-height:28px;color:#222;font-weight:700;position:relative;text-indent:10px;cursor:pointer}.product-page .product-list-nav h3 span{color:#bbb;padding-left:5px}.product-page .product-list-nav h3 span.icon-triangle{display:inline-block;padding-left:0;width:0;height:0;border-top:6px solid #fff;border-left:6px solid #000;border-bottom:6px solid #fff;position:absolute;top:50%;margin-top:-6px;left:0;transition:transform .3s}.product-page .product-list-nav.active .icon-triangle{transform:rotate(90deg)}.product-page .product-list-nav.active .sort-child-list{display:block}.product-page .sort-child-list{display:none}.product-page .sort-child-list li{color:#bbb}.product-page .sort-child-list li span{padding-left:5px;color:#bbb}.product-page .sort-child-list li.active{background:#333;color:#fff}.product-page .sort-child-list li.active a{color:#fff}.product-page .sort-child-list a{display:block;color:#666;padding-left:10px;height:22px;line-height:22px}.product-page .sort-child-list.new-sale{display:block}.product-page .nav-pic-title{height:35px;line-height:35px;color:#000;font-weight:700;border-bottom:1px solid #ebebeb;font-size:12px}.product-page .pic-nav{display:block}.product-page .pic-nav li{margin-bottom:10px}.product-page .pic-nav img,.product-page .pic-nav li{display:block;width:100%;overflow:hidden}.product-page .brand-ad img,.product-page .brand-card img{max-width:100%}.product-page .no-result{border:1px solid #eaeceb;padding:60px 0;text-align:center;margin-bottom:20px}.product-page .no-result .no-title{font-size:16px}.product-page .no-result .keyword{color:#e01}.product-page .no-result .search-again{width:490px;margin:15px auto}.product-page .no-result .search-again input{float:left;width:380px;height:18px;padding:15px 5px;border:10px solid #343434;color:#333;outline:none;box-sizing:content-box}.product-page .no-result .search-again .search-again-btn{float:left;width:80px;height:68px;line-height:68px;background:#343434;vertical-align:middle;color:#fff;cursor:pointer;outline:none;border:none}.product-page .no-result .search-again .iconfont{font-size:30px}.product-page .no-result .no-tip{font-size:12px;color:#999}.hotrank-page .popular-list{width:1160px}.hotrank-page .popular-list li{position:relative;float:left;width:378px;height:596px;overflow:hidden;list-style:none;margin:0 8px 0 0}.hotrank-page .popular-list li .item-img{width:100%;height:506px;line-height:506px;text-align:center;overflow:hidden}.hotrank-page .popular-list li img{display:block;width:100%;height:100%}.hotrank-page .popular-list .polular-icon{position:absolute;top:0;right:0;width:50px;height:50px;line-height:60px;background:#ffc513 url(../assets/img/product/hotrank/popular-icon.png?v155c47c0108) no-repeat 50%;text-align:center;color:#ffc513;font-weight:700}.hotrank-page .popular-list .item-content{width:100%;padding:14px 0 0;height:77px;overflow:hidden;text-align:center;color:#222;line-height:18px}.hotrank-page .popular-list .item-content h2{max-height:36px;font-size:12px;color:#000;line-height:18px;text-align:center;overflow:hidden}.hotrank-page .popular-list .item-content p{display:inline-block;margin:3px 0 0;font-size:12px;text-align:center;line-height:20px;color:#000}.hotrank-page .popular-list .item-content p span{text-decoration:line-through;margin:0 10px 0 0;color:#999}.hotrank-page .popular-list .popular-item6,.hotrank-page .popular-list .popular-item7,.hotrank-page .popular-list .popular-item8,.hotrank-page .popular-list .popular-item9{width:280px;height:464px;margin:0 10px 0 0;overflow:hidden}.hotrank-page .popular-list .popular-item6 .item-img,.hotrank-page .popular-list .popular-item7 .item-img,.hotrank-page .popular-list .popular-item8 .item-img,.hotrank-page .popular-list .popular-item9 .item-img{height:374px;line-height:374px}.hotrank-page .hot-week{position:relative;padding:0 0 40px}.hotrank-page .hot-cate{height:45px;background:#f5f7f6;overflow:hidden}.hotrank-page .hot-cate li{float:left;height:45px;line-height:45px;display:table-cell}.hotrank-page .hot-cate li a{vertical-align:middle;padding:0 26px;font-size:14px;color:#777;border-left:1px solid #999}.hotrank-page .hot-cate li:first-child a{border:none}.hotrank-page .hot-cate li.current a{font-size:16px;color:#000}.hotrank-page .hot-week-list{width:1160px}.hotrank-page .hot-week-list .good-info{width:280px;height:464px;margin:10px 10px 0 0}.hotrank-page .hot-week-list .good-info .tag-container{display:none}.hotrank-page .hot-week-list .good-info .good-detail-img{height:374px;line-height:374px;text-align:center;font-size:0}.hotrank-page .hot-week-list .good-info .good-detail-img img{vertical-align:middle}.hotrank-page .hot-week-list .good-info .good-detail-text{height:77px;overflow:hidden;text-align:center;color:#222;line-height:18px}.hotrank-page .hot-week-list .good-info .good-detail-text a{max-height:36px;font-size:12px;color:#000;line-height:18px;text-align:center;overflow:hidden}.hotrank-page .hot-week-list .good-info .good-detail-text p{display:inline-block;margin:3px 0 0;font-size:12px;text-align:center;line-height:20px;color:#000}.hotrank-page .hot-week-list .good-info .good-detail-text p .sale-price{margin:0 10px 0 0}.hotrank-page .floatlayer{display:none;position:fixed;top:50%;left:50%;margin:0 0 0 575px;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"}.hotrank-page .floatlayer li{width:42px;height:42px;border:2px solid #555;border-top:none;border-bottom-width:1px;text-align:center}.hotrank-page .floatlayer li a{position:relative;display:table-cell;width:42px;height:42px;vertical-align:middle;color:#555;font-size:12px}.hotrank-page .floatlayer li a span{display:inline-block;vertical-align:middle;width:28px;word-wrap:break-word}.hotrank-page .floatlayer li:first-child{border-top:1px solid #555}.hotrank-page .floatlayer li.current,.hotrank-page .floatlayer li:hover{background:#555}.hotrank-page .floatlayer li.current a,.hotrank-page .floatlayer li:hover a{color:#fff}.min-screen .hotrank-page{width:990px}.min-screen .hotrank-page .popular-list li{width:324px;height:521px}.min-screen .hotrank-page .popular-list li .item-img{height:434px;line-height:434px}.min-screen .hotrank-page .popular-list .popular-item6,.min-screen .hotrank-page .popular-list .popular-item7,.min-screen .hotrank-page .popular-list .popular-item8,.min-screen .hotrank-page .popular-list .popular-item9{width:240px;height:408px}.min-screen .hotrank-page .popular-list .popular-item6 .item-img,.min-screen .hotrank-page .popular-list .popular-item7 .item-img,.min-screen .hotrank-page .popular-list .popular-item8 .item-img,.min-screen .hotrank-page .popular-list .popular-item9 .item-img{height:320px;line-height:320px}.min-screen .hotrank-page .hot-week-list .good-info{width:240px;height:408px}.min-screen .hotrank-page .hot-week-list .good-info .good-detail-img{height:320px;line-height:320px}.shop-entry-area{width:100%;height:auto;overflow:hidden;display:none}.shop-entry-area .shop-entry:first-child{margin-left:0}.shop-entry{position:relative;background:#f5f7f6;border:1px solid #eaeceb;padding:12px 15px;width:49%;box-sizing:border-box;float:left;margin:0 0 10px 2%}.shop-entry .logo{width:80px;height:50px}.shop-entry .name{margin-left:10px;width:70%}.shop-entry .shop-name{font-size:16px;color:#222;line-height:26px;height:26px}.shop-entry .shop-name,.shop-entry .sorts{width:100%;display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.shop-entry .sorts{color:#999;font-size:12px;line-height:18px;height:18px}.shop-entry .sorts a{color:#999}.shop-entry .entry-btn{position:absolute;right:15px;top:50%;width:110px;height:32px;line-height:32px;margin-top:-16px;background:#222;text-align:center;color:#fff;font-size:12px}.shop-entry .entry-btn .iconfont{font-size:12px}.goods-container{height:auto;padding:25px 0 0;position:relative;width:980px}.goods-container .good-info{width:235px}.product-detail-page .brand-banner{height:45px;width:100%}.product-detail-page .brand-banner img{display:block;height:45px}.product-detail-page .brand-banner .opt{margin-top:5px}.product-detail-page .brand-banner .brand-fav,.product-detail-page .brand-banner .home{display:inline-block;width:32px;height:32px;line-height:32px;border:1px solid #fff;text-align:center;color:#fff;cursor:pointer}.product-detail-page .brand-banner .home{margin-right:5px}.product-detail-page .brand-banner .home .iconfont{font-size:14px}.product-detail-page .brand-banner .brand-fav .iconfont{font-size:13px}.product-detail-page .brand-banner .coled{color:#ee0014}.product-detail-page .path-nav{border:none;margin-bottom:0}.product-detail-page .main{width:990px;margin:0 auto}.product-detail-page .main .infos{width:465px}.product-detail-page .main .img{position:relative;width:420px;height:560px}.product-detail-page .main .img-show{display:block;width:100%;height:100%}.product-detail-page .main .tags{position:absolute;top:0;left:0}.product-detail-page .main .good-tag{float:left;box-sizing:border-box;height:22px;line-height:22px;color:#fff;padding:0 7px;margin-right:5px;font-size:12px}.product-detail-page .main .new-tag{background:#78dc7d}.product-detail-page .main .renew-tag{background:#78dc7e}.product-detail-page .main .running-man-tag{background-color:#017df9;color:#f7ed02}.product-detail-page .main .sale-tag,.product-detail-page .main .yep-tag,.product-detail-page .main .ymp-tag{background:#ff565b}.product-detail-page .main .few-tag{background:#ffac5b}.product-detail-page .main .limit-tag{border:1px solid #4e4e4e;color:#4e4e4e;background:#fff}.product-detail-page .main .thumbs{width:75px;height:510px;margin-left:2px;overflow:hidden}.product-detail-page .main .thumb{display:block;width:75px;cursor:pointer;margin-bottom:2px}.product-detail-page .main .name{font-size:18px;font-weight:700;line-height:24px}.product-detail-page .main .sale-tip{color:#ee0014;padding-left:3px}.product-detail-page .main .brand-name{color:#666;font-size:12px}.product-detail-page .main .title{color:#999;font-size:12px}.product-detail-page .main .market-price{margin-top:8px}.product-detail-page .main .price{color:#000;font-size:22px;line-height:24px;font-weight:700}.product-detail-page .main .has-other-price{color:#999;text-decoration:line-through;font-size:12px}.product-detail-page .main .arrival-date{color:#ee0014;font-size:14px;font-weight:700;margin-left:24px}.product-detail-page .main .vip-price{line-height:14px;color:#222;margin-top:5px;background:url(../assets/img/product/vip-price-icon.png?v155c47c0108) no-repeat;padding-left:48px;font-size:12px}.product-detail-page .main .vip-price .cur,.product-detail-page .main .vip-price .login-url{color:#f02200}.product-detail-page .main .vip-price .vip-price-item{margin-left:5px}.product-detail-page .main .vip-price .vip-schedual{color:#999;text-decoration:underline;margin-left:5px}.product-detail-page .main .activity{margin-top:12px}.product-detail-page .main .activity li{line-height:20px}.product-detail-page .main .ac-type{display:inline-block;min-width:50px;max-width:100px;height:16px;line-height:16px;margin-right:5px;padding:0 5px;text-align:center;background:#999;color:#fff;font-size:12px;overflow:hidden;vertical-align:middle}.product-detail-page .main .ac-des{font-size:12px}.product-detail-page .main .row{margin-top:10px}.product-detail-page .main .trade-content{padding-top:20px;margin-top:20px;border-top:1px solid #eaeceb}.product-detail-page .main .chose-color{font-size:12px}.product-detail-page .main .chose-color .title{margin-top:14px}.product-detail-page .main .chose-color img{display:block;height:36px;width:36px;border:2px solid #fff}.product-detail-page .main .chose-color .focus img{border-color:#222}.product-detail-page .main .chose-color li{margin-right:5px;margin-bottom:5px;cursor:pointer}.product-detail-page .main .chose-size{font-size:12px}.product-detail-page .main .chose-size .title{margin-top:6px}.product-detail-page .main .chose-size li{float:left;display:block;height:22px;line-height:22px;margin-right:5px;margin-bottom:5px;padding:0 5px;border:1px solid #eaeceb;text-align:center;cursor:pointer;min-width:28px}.product-detail-page .main .chose-size li.disable{opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"}.product-detail-page .main .chose-size li.focus{color:#fff;background:#222}.product-detail-page .main .size-wrapper{width:415px}.product-detail-page .main .size{float:left;color:#666}.product-detail-page .main .size-ruler{float:left;display:block;width:57px;height:24px;background:url(../assets/img/product/size-ruler.jpg?v155c47c0108);margin-bottom:5px;cursor:pointer}.product-detail-page .main .num-warn,.product-detail-page .main .size-warn{float:left;height:24px;line-height:24px}.product-detail-page .main .color-size-tip{color:#999;clear:both;line-height:18px}.product-detail-page .main .chose-count .title{margin-top:6px}.product-detail-page .main .num{display:block;width:38px;height:23px;line-height:23px;text-align:center;border:1px solid #eaeceb;color:#333;font-size:12px;background:#ebebe4}.product-detail-page .main .minus-plus{display:block;width:14px;height:23px;border:1px solid #eaeceb;border-left:none;text-align:center;cursor:pointer}.product-detail-page .main .minus-plus i{display:block;width:13px;height:11px;line-height:8px;font-size:12px;-moz-user-select:none}.product-detail-page .main .minus-plus .dis{color:#999}.product-detail-page .main .minus{border-top:1px solid #eaeceb;font-size:13px}.product-detail-page .main .lc-btn{float:left;display:block;width:80px;height:25px;line-height:25px;color:#fff;background:#222;margin-left:10px;font-size:12px;text-align:center;cursor:default}.product-detail-page .main .lc-btn.dis,.product-detail-page .main .lc-btn.had-lc,.product-detail-page .main .lc-btn.lc-sold-out{background:#ccc}.product-detail-page .main .num-wraper{position:relative}.product-detail-page .main .lc-container{position:absolute;top:-39px;right:-233px;z-index:1}.product-detail-page .main .lc-arrow{position:absolute;top:40px;left:-12px;width:13px;height:20px;background:url(../assets/img/product/arrow.png?v155c47c0108)}.product-detail-page .main .lc-content{box-sizing:border-box;width:220px;height:285px;text-align:center;background:#f8f8f8;border:1px solid #cecece;padding:40px 25px 0}.product-detail-page .main .lc-content .qr-code{width:137px;height:137px;background:url(../assets/img/product/top-good-qr.png?v155c47c0108);margin:0 auto}.product-detail-page .main .lc-content .title{font-size:18px;color:#000;margin:12px 0;line-height:24px}.product-detail-page .main .lc-content .sub-title{font-size:14px;color:#939290}.product-detail-page .main .buy-btn{display:inline-block;margin-right:10px;height:48px;line-height:48px;width:197px;text-align:center;color:#fff;background:#e92601;font-size:14px;cursor:pointer}.product-detail-page .main .buy-btn.hover{background:#eb3b19;background:rgba(233,38,1,.8)}.product-detail-page .main .buy-btn.dis{background:#ccc}.product-detail-page .main .collect-product,.product-detail-page .main .keep-shopping{display:inline-block;width:127px;height:48px;text-align:center;line-height:48px;background:#fff;color:#222;border:1px solid #ccc;font-weight:700;font-size:12px;cursor:pointer}.product-detail-page .main .collect-product .iconfont,.product-detail-page .main .keep-shopping .iconfont{color:#ccc;font-size:14px}.product-detail-page .main .collect-product.coled .iconfont,.product-detail-page .main .keep-shopping.coled .iconfont{color:#fa5252}.product-detail-page .main .share-row{margin-top:20px}.product-detail-page .main .share-row .title{margin-top:2px}.product-detail-page .main .balance{display:none}.product-detail-page .main .balance .success-tip{color:#222;font-size:18px;margin-bottom:10px}.product-detail-page .main .balance .cart-total{color:#999;font-size:12px}.product-detail-page .main .balance .balance-btns{margin-top:20px}.product-detail-page .other-infos{padding-bottom:30px}.product-detail-page .info-block{margin-top:30px;color:#999;border-top:2px solid #eaeceb;font-size:12px}.product-detail-page .info-block .basic{width:640px;margin:0 auto}.product-detail-page .info-block .basic li{float:left;width:25%;line-height:20px}.product-detail-page .info-block .comfort{width:470px;border:1px solid #eaeceb;margin:17px auto 0;padding-bottom:15px}.product-detail-page .info-block .comfort li{margin:12px 20px 0}.product-detail-page .info-block .comfort-block{display:inline-block;width:14px;height:10px;border:1px solid #eaeceb;margin-right:2px}.product-detail-page .info-block .comfort-block.cur{background:#999;border:1px solid #999}.product-detail-page .block-title{margin-bottom:25px;text-align:center}.product-detail-page .block-title .title{display:inline-block;padding-top:15px;font-weight:700;cursor:pointer}.product-detail-page .block-title .title.cur{color:#222;border-top:2px solid #222;margin-top:-2px}.product-detail-page .block-title .sep{display:inline-block;margin:0 30px;color:#eaeceb;font-size:14px;cursor:default;font-weight:700}.product-detail-page .description-content{overflow:hidden}.product-detail-page .material-content{display:none;overflow:hidden}.product-detail-page .material-detail li{width:860px;padding-bottom:20px;border-bottom:1px dotted #eaeceb;margin:0 auto 20px}.product-detail-page .material-detail li img{float:left;width:125px;height:50px}.product-detail-page .material-detail li .name{float:left;width:100px;line-height:25px;border-right:1px dotted #eaeceb;color:#666;font-weight:700;text-align:center;font-size:14px}.product-detail-page .material-detail li .text{float:left;width:614px;padding-left:20px;line-height:18px}.product-detail-page .wash{text-align:center}.product-detail-page .wash li{display:inline-block;padding:0 20px;color:#666;border-right:1px solid #eaeceb}.product-detail-page .size-info{text-align:center}.product-detail-page .fitting-report-table,.product-detail-page .reference-table,.product-detail-page .size-table{text-align:center;margin:0 auto}.product-detail-page .fitting-report-table th,.product-detail-page .reference-table th,.product-detail-page .size-table th{width:110px;text-align:center}.product-detail-page .fitting-report-table tr,.product-detail-page .reference-table tr,.product-detail-page .size-table tr{height:30px}.product-detail-page .fitting-report-table td,.product-detail-page .fitting-report-table tr,.product-detail-page .reference-table td,.product-detail-page .reference-table tr,.product-detail-page .size-table td,.product-detail-page .size-table tr{text-align:center}.product-detail-page .fitting-report-table thead,.product-detail-page .reference-table thead,.product-detail-page .size-table thead{background:#f5f7f6;color:#999}.product-detail-page .fitting-report-table tbody,.product-detail-page .reference-table tbody,.product-detail-page .size-table tbody{color:#222}.product-detail-page .fitting-report-table .avatar,.product-detail-page .reference-table .avatar,.product-detail-page .size-table .avatar{width:26px;height:26px;border-radius:50px}.product-detail-page .fitting-report-table .avatar-col,.product-detail-page .reference-table .avatar-col,.product-detail-page .size-table .avatar-col{width:26px;padding-left:20px;padding-right:20px}.product-detail-page .fitting-report-table .model-col,.product-detail-page .reference-table .model-col,.product-detail-page .size-table .model-col{width:90px}.product-detail-page .fitting-report-table .remark-col,.product-detail-page .reference-table .remark-col,.product-detail-page .size-table .remark-col{width:200px}.product-detail-page .fr-img-wrap{width:100%;text-align:center}.product-detail-page .fr-img-wrap img{max-width:100%}.product-detail-page .ref-model{padding-top:10px}.product-detail-page .ref-model .model{width:444px;height:35px;padding-top:47px;padding-left:316px;color:#666;overflow:hidden;margin:10px auto 0}.product-detail-page .ref-model .model em{margin-left:5px}.product-detail-page .size-tip{color:#999;margin-top:15px;text-align:center}.product-detail-page .details{text-align:center;font-size:12px;color:#999;line-height:18px}.product-detail-page .details-html{width:750px;text-align:center;margin:0 auto}.product-detail-page .details-html b{font-weight:700}.product-detail-page .details-html i{font-style:italic}.product-detail-page .consults{display:none}.product-detail-page .consult-comment .title,.product-detail-page .consult-comment .title.cur{color:#666}.product-detail-page .cc-content{background:#f5f7f6;padding:20px 20px 0;font-size:12px}.product-detail-page .cc-content h2{font-weight:700;font-size:14px;margin-bottom:10px;color:#000}.product-detail-page .cc-content li{border-top:1px solid #eaeceb;padding:20px 0}.product-detail-page .cc-content .user-info{color:#999;line-height:16px}.product-detail-page .cc-content .user-info>*{float:left}.product-detail-page .cc-content .user-info .name{color:#666}.product-detail-page .cc-content .user-info .date{color:#bbb}.product-detail-page .cc-content .user-info .question{color:#222}.product-detail-page .cc-content .user-avatar{width:30px;height:30px;margin-right:5px}.product-detail-page .cc-content .more-wrap{text-align:center;border-top:1px solid #eaeceb;padding:20px 0;font-size:14px;font-weight:700;color:#666}.product-detail-page .cc-content .btn-wrap{padding:20px 0;border-top:1px solid #eaeceb}.product-detail-page .cc-content .load-more{cursor:pointer}.product-detail-page .cc-content .btn{display:block;width:140px;height:32px;line-height:32px;color:#fff;background:#222;text-align:center;font-size:12px;margin:0 auto;cursor:pointer}.product-detail-page .cc-content .btn .iconfont{font-size:14px}.product-detail-page .cc-content .comment,.product-detail-page .cc-content .consult{margin-top:10px}.product-detail-page .cc-content .consults{display:none}.product-detail-page .new-consult{padding:20px 0;border-top:1px solid #eaeceb}.product-detail-page .new-consult textarea{width:590px;height:80px;padding:5px;outline:none;resize:none}.product-detail-page .new-consult .submit-consult{display:block;width:140px;height:32px;line-height:32px;margin:8px 0 0}.product-detail-page .new-consult .error{border-color:#e01}.product-detail-page .consult-success{border-top:1px solid #eaeceb;margin-top:30px;text-align:center;padding:20px 0}.product-detail-page .consult-success p{width:295px;height:55px;line-height:55px;margin:0 auto;border:2px solid #222;display:block;color:#222;font-weight:700}.product-detail-page .after-service{text-align:center;margin-top:30px}.product-detail-page .after-service .after-service-content{display:none}.product-detail-page .after-service .after-service-switch{height:44px;line-height:44px;background:#eaeceb;text-align:center;font-size:12px;cursor:pointer}.product-detail-page .after-service .after-service-switch .iconfont{font-size:12px}.product-detail-page .after-service .text{padding:20px 15px;background:#f5f7f6;text-align:left;color:#666;line-height:18px}.product-detail-page .after-service .orange{color:#f9761a}.product-detail-page .after-service h4{font-weight:700;font-size:14px;line-height:24px;color:#222;margin-top:10px}.product-detail-page .after-service h4:first-child{margin-top:0}.product-detail-page .after-service .img-1{width:715px;height:259px;margin:0 auto;background:url(../assets/img/product/after-service-1.png?v155c47c0108)}.product-detail-page .after-service .img-2{width:715px;height:230px;margin:0 auto;background:url(../assets/img/product/after-service-2.png?v155c47c0108)}.product-detail-page .after-service a{color:#666}.product-detail-page .service{width:403px;height:19px;margin:45px auto;background:url(../assets/img/product/service.png?v155c47c0108)}.product-detail-page .latest-walk{overflow:inherit}.product-detail-page .latest-walk .goods{width:1010px;margin:0 auto;height:auto}.product-detail-page .latest-walk .goods>div{float:left;width:180px;margin-right:22px}.product-detail-page .latest-walk img{height:240px;width:180px;display:block}.product-detail-page .latest-walk .name{display:block;margin-top:5px;color:#222;line-height:16px}.product-detail-page .latest-walk .price{color:#222;font-weight:700;margin-top:5px}.product-detail-page .latest-walk .market-price{margin-right:5px}.product-detail-page .latest-walk .has-sale{text-decoration:line-through;color:#999}.product-detail-page .warn-tip{display:inline-block;color:#e01;margin-left:7px;font-size:12px}.product-detail-page .warn-tip i{font-size:14px}.product-detail-page .hot-point-wrap{position:relative;margin:0 auto}.product-detail-page .hot-point-wrap .hot-point{position:absolute;background:#fff\9;filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=0)}.product-detail-page .hot-point-wrap .hot-point.hover .pointer{background-position:0 -25px}.product-detail-page .hot-point-wrap .hot-point.hover .hp-good{display:block}.product-detail-page .hot-point-wrap .pointer{position:absolute;display:block;background:url(../assets/img/product/hp-num.png?v155c47c0108) no-repeat 0 0;color:#fff;cursor:pointer;width:25px;height:25px;line-height:25px;text-align:center;left:0;top:0;font-size:18px}.product-detail-page .hot-point-wrap .hp-good{display:none;position:absolute;left:30px;top:0;width:210px;background:#000;height:60px;padding:10px}.product-detail-page .hot-point-wrap .hp-good .pic{display:block;float:left;width:60px;height:60px;margin-right:10px}.product-detail-page .hot-point-wrap .hp-good .info{position:relative;float:left;color:#fff;font-size:12px;width:140px;height:60px;line-height:20px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:left}.product-detail-page .hot-point-wrap .hp-good .check-btn{display:block;position:absolute;height:18px;width:40px;text-decoration:none;right:0;bottom:0;text-align:center;background:#e8e8e8;border-radius:2px}.shop-index-page{margin:10px auto 30px;width:1150px}.shop-index-page .shop-banner{position:relative}.shop-index-page .shop-banner .shop-name{position:absolute;left:260px;bottom:20px;font-size:36px;color:#fff}.shop-index-page .shop-banner .banner-img{width:100%;height:150px}.shop-index-page .shop-banner .opt-wrap{position:absolute;top:65%;right:0;padding:0 10px}.shop-index-page .shop-banner .shop-collect,.shop-index-page .shop-banner .shop-intro{display:inline-block;width:110px;height:30px;margin-right:10px;font-size:16px;line-height:30px;text-align:center;color:#fff;border:1px solid #fff;cursor:pointer}.shop-index-page .shop-banner .shop-collect i,.shop-index-page .shop-banner .shop-intro i{background-repeat:no-repeat;float:left;position:relative;left:11px;top:5px}.shop-index-page .shop-banner .shop-collect .shop-intro-ico,.shop-index-page .shop-banner .shop-intro .shop-intro-ico{width:16px;height:20px;background-image:url(../assets/img/product/shop-instro.png?v155c47c0108);margin-right:12px}.shop-index-page .shop-banner .shop-collect .shop-collect-ico,.shop-index-page .shop-banner .shop-intro .shop-collect-ico{width:20px;height:19px;background-image:url(../assets/img/product/shop-collection.png?v155c47c0108);top:6px;margin-right:12px}.shop-index-page .shop-banner .shop-collect .shop-collect-ico.on,.shop-index-page .shop-banner .shop-intro .shop-collect-ico.on{background-image:url(../assets/img/product/shop-collection-on.png?v155c47c0108)}.shop-index-page .shop-nav{box-sizing:border-box;margin-bottom:30px;padding:0 20px;width:100%;height:40px;color:#fff;background:#000;font-size:16px}.shop-index-page .shop-nav a{position:relative;top:8px;display:inline-block;line-height:26px;color:#fff}.shop-index-page .shop-nav .nav-item{position:relative;float:left;width:160px;text-align:center}.shop-index-page .shop-nav .nav-item.first{width:100px;text-align:left}.shop-index-page .shop-nav .current a{border-bottom:2px solid #fff}.shop-index-page .coupon{margin-top:20px;width:100%;height:80px}.shop-index-page .coupon .coupon-title{width:162px;height:100%;background-image:url(../assets/img/sprite.product.png?v155c47c08d8);background-position:0 0}.shop-index-page .slider-wrap{height:360px}.shop-index-page .slider-wrap .slide-wrapper img{width:auto;height:auto}.shop-index-page .slider-left{float:left;margin-right:10px;width:660px;height:100%;overflow:hidden;position:relative}.shop-index-page .slider-left .slide-wrapper{height:358px}.shop-index-page .slider-left .slide-switch a.prev{margin-left:-330px}.shop-index-page .slider-left .slide-switch a.next{margin-right:-330px}.shop-index-page .slider-left img{width:100%;height:100%}.shop-index-page .slider-left .slide-pagination{display:none}.shop-index-page .slider-right{float:left;width:300px;height:100%}.shop-index-page .slider-right .slider-item{display:block;margin-bottom:10px;width:100%;height:175px}.shop-index-page .floor-header{margin-top:50px}.shop-index-page .hot-single,.shop-index-page .new-arrivel{width:980px}.shop-index-page .hot-single .item,.shop-index-page .new-arrivel .item{float:left;position:relative;margin-right:10px;margin-bottom:20px;width:235px;height:315px;font-size:14px;text-align:center;line-height:1.5;background:#f5f5f5;font-weight:700}.shop-index-page .hot-single .item img,.shop-index-page .new-arrivel .item img{width:235px;height:250px}.shop-index-page .hot-single .item .title,.shop-index-page .new-arrivel .item .title{width:220px;padding:0 5px;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.shop-index-page .hot-single .hat,.shop-index-page .new-arrivel .hat{position:absolute;top:0;right:0;width:50px;height:50px;color:#ffc513;text-align:center;line-height:57px;background-image:url(../assets/img/sprite.product.png?v155c47c08d8);background-position:0 -82px}.shop-index-page .mask{background-color:#000;opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";position:fixed;top:0;left:0;right:0;bottom:0;z-index:12;display:none;cursor:pointer}.shop-index-page .pop-shop-intro{display:none}.shop-index-page .shop-intro-bg{width:908px;height:604px;background-color:#000;opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";position:fixed;left:50%;top:50%;z-index:13;margin:-302px 0 0 -454px}.shop-index-page .shop-intro-area{width:898px;height:594px;padding:60px 10px 35px 40px;background-color:#fff;position:fixed;left:50%;top:50%;margin:-297px 0 0 -449px;z-index:14;box-sizing:border-box}.shop-index-page .shop-intro-area .close-btn{width:18px;height:18px;background-image:url(../assets/img/product/shop-instro-close.png?v155c47c0108);position:absolute;right:20px;top:20px;cursor:pointer}.shop-index-page .shop-intro-area .brand-cont{overflow:auto;width:100%;height:499px;padding-right:30px;box-sizing:border-box}.shop-index-page .shop-intro-area .intro-title{float:left}.shop-index-page .shop-intro-area .intro-title h2{width:100%;float:left;text-align:left;font-size:26px;font-weight:700;color:#000;font-style:italic}.shop-index-page .shop-intro-area .intro-title p{font-family:黑体;font-size:20px;text-align:left;padding:10px 0;float:left}.shop-index-page .shop-intro-area .intro-cont{width:100%;float:left;margin-top:55px;font-size:14px;line-height:20px}.shop-index-page .shop-intro-area .intro-cont p{text-indent:2em}.shop-index-page .shop-intro-area .intro-cont img{width:100%;margin-top:10px}.shop-index-page .fixed-area{background:#fff;z-index:1;width:970px}.shop-index-page .all-goods-menu{width:100%;height:40px;line-height:40px}.shop-index-page .all-goods-menu .menu-tag{color:#d0021b;font-size:18px;font-weight:700;text-align:left;padding:0 20px 0 10px;border-right:1px solid #000;float:left}.shop-index-page .all-goods-menu .menu-list{width:810px;height:40px;overflow:hidden;float:left;font-size:14px}.shop-index-page .all-goods-menu .menu-list li{display:inline-block;padding:0 15px}.shop-index-page .all-goods-menu .menu-list .on{background:#000;height:28px;line-height:28px}.shop-index-page .all-goods-menu .menu-list .on a{color:#fff}.shop-index-page .all-goods-menu .more{font-size:14px;float:right}.shop-index-page .sort-pager .sort-type:first-child .iconfont{display:inline-block}.shop-index-page .loading{position:relative;width:100%;text-align:center}.shop-index-page .loading a{display:block;height:35px;width:120px;margin:0 auto;background-color:#000;color:#fff;font-size:14px;line-height:35px;text-align:center}.shop-index-page .trend-info,.shop-index-page .trend-info .trend-list{width:100%}.shop-index-page .trend-info .trend-list li{float:left;width:316px;margin-left:10px;text-align:center}.shop-index-page .trend-info .trend-list li:first-child{margin-left:0}.shop-index-page .trend-info .trend-list img{width:100%;height:181px}.shop-index-page .trend-info .trend-list .main-title,.shop-index-page .trend-info .trend-list .sub-title{box-sizing:border-box;font-size:16px;margin-top:15px;padding:0 10px;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:24px}.shop-index-page .trend-info .trend-list .sub-title{margin-top:0;font-size:14px}.shop-index-page .goods-wrap .goods-container .good-info{width:235px;height:auto;margin-bottom:35px}.shop-index-page .goods-wrap .goods-container .good-detail-text{text-align:left}.shop-index-page .left-modular{width:160px;font-size:14px;margin-top:20px;float:left}.shop-index-page .left-modular .title{width:100%;height:25px;line-height:25px;background:#000;color:#fff;font-family:黑体;padding-left:14px;box-sizing:border-box}.shop-index-page .left-modular .left-list{width:100%;margin-top:5px}.shop-index-page .left-modular .left-list li{width:100%;height:42px;line-height:42px;background:#f5f5f5;float:left;box-sizing:border-box;margin-top:5px;padding-left:14px}.shop-index-page .left-modular .left-list li a{color:#000}.shop-index-page .left-modular .left-list li.on{border:1px solid #000}.shop-index-page .classic-recommend .left-list li{height:50px;line-height:50px}.shop-index-page .classic-recommend .classic-name{width:96px;display:inline-block;line-height:14px;vertical-align:middle;font-weight:700}.shop-index-page .classic-recommend .classic-name .name{font-size:14px}.shop-index-page .classic-recommend .classic-name .en-name{font-size:12px}.shop-index-page .classic-recommend img{width:40px;max-height:40px;margin-right:5px;vertical-align:middle}.shop-index-page .sell-recommend .left-list li{padding-left:0;height:auto;margin-bottom:25px;line-height:inherit}.shop-index-page .sell-recommend .left-list li img{width:100%}.shop-index-page ::-webkit-scrollbar{width:16px;height:16px}.shop-index-page ::-webkit-scrollbar-thumb,.shop-index-page ::-webkit-scrollbar-track{border-radius:999px;border:5px solid transparent}.shop-index-page ::-webkit-scrollbar-track{box-shadow:inset 0 0 6px transparent}.shop-index-page ::-webkit-scrollbar-thumb{min-height:20px;background-clip:content-box;box-shadow:inset 0 0 0 6px rgba(0,0,0,.3)}.shop-index-page ::-webkit-scrollbar-corner{background:transparent}.shop-index-page .page-nav{padding:7px 0;float:right;font-size:14px}.shop-index-page .page-nav .page-prev{width:33px;height:33px;background:#ccc;text-align:center;float:left}.shop-index-page .page-nav .arrow-left{width:10px;height:10px;display:inline-block;position:relative;top:-7px;background:url(../assets/img/product/arrow-left.png?v155c47c0108) no-repeat}.shop-index-page .page-nav a .page-next,.shop-index-page .page-nav a .page-prev{background:#000;color:#fff}.shop-index-page .page-nav .page-next{min-width:110px;height:33px;background:#a9a9a9;float:left;margin-left:1px;line-height:33px;padding-left:10px;box-sizing:border-box;padding-right:10px}.shop-index-page .page-nav .arrow-right{width:10px;height:10px;display:inline-block;vertical-align:middle;background:url(../assets/img/product/arrow-right.png?v155c47c0108) no-repeat}.shop-index-page .page-nav .pages{margin-left:10px}.product-page .product-pager{padding:20px 0;font-size:12px;color:#6a6a6a;border-top:2px solid #eaeceb}.product-page .product-pager .pager{float:right}.product-page .list-left{width:160px}.product-page .list-right{width:970px}.new-sale-page .goods-container,.product-list-page .goods-container{height:auto;padding-top:25px;position:relative;width:980px}.new-sale-page .goods-container .good-info,.product-list-page .goods-container .good-info{width:235px}.new-sale-page .goods-container .good-info .good-detail-img,.product-list-page .goods-container .good-info .good-detail-img{height:315px}.new-sale-page .goods-container .block-next-page,.product-list-page .goods-container .block-next-page{width:235px;height:315px}.new-sale-page .filter-box .brand .attr-content,.product-list-page .filter-box .brand .attr-content{max-width:730px}.min-screen .new-sale-page .list-right,.min-screen .product-list-page .list-right{width:810px}.min-screen .new-sale-page .goods-container,.min-screen .product-list-page .goods-container{height:auto;padding-top:25px;position:relative;width:820px}.min-screen .new-sale-page .goods-container .good-info,.min-screen .product-list-page .goods-container .good-info{width:195px}.min-screen .new-sale-page .goods-container .good-info .good-detail-img,.min-screen .product-list-page .goods-container .good-info .good-detail-img{height:261px}.min-screen .new-sale-page .goods-container .block-next-page,.min-screen .product-list-page .goods-container .block-next-page{width:195px;height:261px}.min-screen .new-sale-page .filter-box .brand .attr-content,.min-screen .product-list-page .filter-box .brand .attr-content{max-width:570px}.passport-page{width:1150px;margin-left:auto;margin-right:auto}.passport-page .content{float:left;margin-top:107px;padding-left:85px}.passport-page .input{height:43px;font-size:16px;line-height:1.2;line-height:43px\9;width:268px;border:1px solid #dbdbdb;text-indent:10px;color:#9a9a9a;color:rgba(0,0,0,.5)}.passport-page .error{border-color:red!important}.passport-page .btn{display:block;height:46px;line-height:46px;width:100%;text-align:center;color:#fff;background-color:#ff1901;letter-spacing:10px;font-size:20px;cursor:pointer}.passport-page .btn.disable{background-color:#555;cursor:default}.passport-page .pwd-intensity-container{width:270px;text-align:right;padding-top:5px}.passport-page .pwd-intensity-container .pwd-intensity{height:15px;font-size:12px;background-color:#e8e8e8;padding:0 10px;text-align:center;color:#b9b9b9}.passport-page .pwd-intensity-container.red .pwd-intensity{color:#e01}.passport-page .pwd-intensity-container.red .color{background:#e01;color:#fff}.passport-page .pwd-intensity-container.yellow .pwd-intensity{color:#f6da1e}.passport-page .pwd-intensity-container.yellow .color{background:#f6da1e;color:#fff}.passport-page .pwd-intensity-container.green .pwd-intensity{color:#3ee392}.passport-page .pwd-intensity-container.green .color{background:#3ee392;color:#fff}.passport-page .pwd-tips{position:absolute;top:-10px;left:285px;width:160px!important;height:72px;padding-top:7px;font-size:12px;background-image:url(../assets/img/sprite.passport.png?v155c47c08d8);background-position:0 0}.passport-page .pwd-tips>div{position:relative;height:22px;line-height:22px;margin-left:15px;padding-left:15px;font-size:12px;color:#b9b9b9}.passport-page .pwd-tips>div i{position:absolute;width:14px;height:14px;left:-2px;top:50%;margin:-7px 0 0;background-image:url(../assets/img/sprite.passport.png?v155c47c08d8);background-position:-63px -113px}.passport-page .pwd-tips>div.no{color:red}.passport-page .pwd-tips>div.no i{background-image:url(../assets/img/sprite.passport.png?v155c47c08d8);background-position:-95px -113px}.passport-page .pwd-tips>div.yes i{background-image:url(../assets/img/sprite.passport.png?v155c47c08d8);background-position:-79px -113px}.passport-page .email-autocomplete{position:absolute;width:248px;padding:0 10px;z-index:1;margin-top:5px;border-radius:5px;cursor:pointer;border:1px solid #fefefe;background-color:#161616;color:#fff;font-size:16px}.passport-page .email-autocomplete li{height:24px;line-height:24px}.passport-page .err-tip{position:absolute;font-size:14px;white-space:nowrap;top:8px;left:285px;padding:6px 0;color:red}.passport-page .err-tip i{display:block;float:left;height:14px;width:14px;background-image:url(../assets/img/sprite.passport.png?v155c47c08d8);background-position:-95px -113px;margin-right:5px}.passport-page .err-tip a{text-decoration:underline;color:red}.passport-page .page-tip{display:block;width:100%;height:30px;line-height:30px;text-align:center;font-size:20px;font-weight:700;color:#ccc;clear:both;margin-bottom:15px}.passport-cover{float:left;margin:107px 0;width:575px}.passport-cover .cover-content{width:100%;height:318px;padding:50px 0;border-right:1px solid #dfdfdf}.passport-cover .cover-img{display:block;width:252px;height:190px;margin:0 auto;margin-top:50px}.login-page .relative{position:relative}.login-page .right{float:right}.login-page .login-ul>li{margin-bottom:25px}.login-page .title{float:left;font-size:20px}.login-page .country-code{cursor:pointer;color:#b9b9b9}.login-page .country-list{display:none;position:absolute;padding:0 10px;background:#fff;border:1px solid #000;top:20px;right:0;z-index:1;border-radius:5px}.login-page .country-list li{height:20px;line-height:20px;color:#000}.login-page .captcha-wrap{position:relative}.login-page .captcha-wrap .err-tip{left:335px}.login-page .captcha{width:160px;float:left}.login-page .captcha-img{height:37px;width:90px;border:0;vertical-align:middle;outline:none;margin-left:10px;margin-top:4px;float:left}.login-page .change-captcha{position:absolute;top:0;right:-50px;cursor:pointer;float:left;height:43px;font-size:14px;line-height:43px;color:#ff1901}.login-page .remember-me{cursor:pointer}.login-page .other-opts{color:#b9b9b9;font-size:14px}.login-page .other-opts .iconfont{font-size:14px}.login-page .other-opts .fast-reg{color:#ff1901}.login-page .forget-password{color:#b9b9b9}.login-page .third-party-login{display:table}.login-page .third-party-login a{display:table-cell;width:45px;background-size:100% 100%}.login-page .third-party-login .icon{display:block;width:30px;height:30px;margin:0 auto}.login-page .third-party-login .weixin{background-image:url(../assets/img/sprite.passport.png?v155c47c08d8);background-position:-96px -81px}.login-page .third-party-login .qq{background-image:url(../assets/img/sprite.passport.png?v155c47c08d8);background-position:-128px -81px}.login-page .third-party-login .weibo{background-image:url(../assets/img/sprite.passport.png?v155c47c08d8);background-position:0 -81px}.login-page .third-party-login .alipay{background-image:url(../assets/img/sprite.passport.png?v155c47c08d8);background-position:0 -113px}.login-page .third-party-login .douban{background-image:url(../assets/img/sprite.passport.png?v155c47c08d8);background-position:-64px -81px}.login-page .third-party-login .renren{background-image:url(../assets/img/sprite.passport.png?v155c47c08d8);background-position:-32px -81px}.login-page .caps-lock{position:absolute;color:#666;border:#ffe57d;background:#fff6d2;white-space:nowrap;top:8px;left:278px;padding:0 20px;height:27px;line-height:30px}.register-page{font-size:14px;color:#b9b9b9}.register-page li{margin-bottom:25px;width:270px;position:relative}.register-page li input,.register-page li select{outline:none}.register-page li .input{height:43px;line-height:43px;font-size:16px;width:268px;border:1px solid #dbdbdb;text-indent:10px;color:#9a9a9a;padding:0}.register-page li .input.error{border:1px solid red}.register-page li .input.phone-num{width:209px;display:block;float:left;position:absolute;top:0;right:0}.register-page li .input.captcha,.register-page li .input.msg-captcha{width:160px;float:left}.register-page li .input.agree-terms{vertical-align:middle}.register-page li .send-captcha{top:0;background:#ff1901;position:absolute;width:100px;right:0;font-size:12px;text-indent:0;letter-spacing:0}.register-page li .send-captcha.disable{background:#555}.register-page li .link{text-decoration:underline;color:#ff1901}.register-page li .btn{height:45px;line-height:45px;color:#fff;border:none;padding:0;font-family:黑体,Regular;text-align:center}.register-page li .region{height:30px;padding:4px 0;width:132px;border-color:#c1c1c1;color:#9a9a9a;font-size:16px;font-family:黑体,Regular}.register-page li .country-code{width:58px;height:43px;line-height:43px;text-align:center;white-space:nowrap;border:1px solid #dbdbdb;border-right:0;font-size:16px;display:block;float:left}.register-page li .captcha-img{height:37px;width:90px;border:0;vertical-align:middle;outline:none;margin-left:10px;margin-top:4px;float:left}.register-page li .change-captcha{margin-left:10px;cursor:pointer;float:left;height:43px;line-height:43px}.register-page li .pwd-intensity-container{width:270px;text-align:right;margin-top:5px;height:auto;overflow:hidden}.register-page li .pwd-intensity-container .pwd-intensity{height:15px;font-size:12px;background-color:#e8e8e8;padding:1px 10px;text-align:center}.register-page li .pwd-intensity-container.red{color:red}.register-page li .pwd-intensity-container.red .color{background:red;color:#fff}.register-page li .pwd-intensity-container.yellow .color{background:#ff0;color:#fff}.register-page li .pwd-intensity-container.green .color{background:#3ee392;color:#fff}.register-page li .register-btn{width:270px;font-size:20px;font-weight:700;background:#ff1901}.register-page li .register-btn.disable{background:#555}.register-page li.w330{width:330px}.register-page li.items-container,.register-page li.quick-login-container{font-size:13px;text-align:right;white-space:nowrap}.register-page li.quick-login-container{width:270px}.register-page li.skip-user-info{font-size:18px;text-align:center}.register-page li.skip-user-info a{color:#ff1901;text-decoration:underline}.register-page .msg-tip{position:absolute;top:17px;left:285px;white-space:nowrap}.register-page .msg-tip:before{content:'';display:inline-block;width:12px;height:12px;margin-right:5px;background-image:url(../assets/img/sprite.passport.png?v155c47c08d8);background-position:-63px -129px}.register-page .err-tip{z-index:11;position:absolute;height:30px;line-height:30px;color:red;background-color:#ffebeb;border:1px solid #ffbdbe;padding:0 10px}.register-page .err-tip b{display:block;position:absolute;top:30px;left:20px;background-image:url(../assets/img/sprite.passport.png?v155c47c08d8);background-position:-111px -113px;width:17px;height:9px}.register-page .success-box{font-size:14px;color:#b9b9b9;margin-top:130px}.register-page .success-box .success-text{line-height:29px;padding-left:46px;font-size:16px;color:#000}.register-page .success-box .success-text span{font-size:22px}.register-page .success-box .success-text #count-down{color:#ff1901}.register-page .success-box .success-text:before{content:'';display:inline-block;background-image:url(../assets/img/sprite.passport.png?v155c47c08d8);background-position:-32px -113px;width:29px;height:29px;margin-right:5px;position:relative;top:6px}.register-page .success-box .success-btn{display:block;margin:46px auto 0;width:270px;height:45px;line-height:45px;background:#ff1901;text-align:center;color:#fff;letter-spacing:2px}.back-page{font-size:14px}.back-page .content{margin:175px 0 0!important}.back-page .back-header{position:relative;width:268px;line-height:40px;margin-bottom:5px}.back-page .back-header .country-code{float:right;cursor:pointer;color:#b9b9b9}.back-page .back-header .country-code .iconfont{font-size:14px;vertical-align:middle}.back-page .title{float:left;margin:0}.back-page .title,.back-page .title2{font-size:22px;line-height:40px;color:#000;font-weight:400}.back-page .title2{margin:0 0 5px}.back-page .err-tip.captcha-err{top:10px;left:326px}.back-page .country-code-list{display:none;position:absolute;padding:0 10px;color:#000;background-color:#fff;border:1px solid #000;margin-top:5px;cursor:pointer;z-index:9;top:30px;right:0;border-radius:5px}.back-page .country-code-list li{height:20px;line-height:20px}.back-page .input-container-li{position:relative;margin-bottom:22px}.back-page .input-container-li .btn{width:270px;height:45px;line-height:45px;cursor:pointer;font-size:20px;border:none;letter-spacing:0}.back-page .input-container-li .captcha{width:160px}.back-page .input-container-li .captcha-img{height:37px;width:90px;border:0;margin-left:10px;vertical-align:middle;outline:none;cursor:pointer}.back-page .input-container-li .change-captcha{color:#ff1901;font-size:12px;text-decoration:underline;margin-left:10px;cursor:pointer}.send-email-page{font-size:14px}.send-email-page .content{margin:216px 0 0!important}.send-email-page .send-tips{line-height:28px;color:#4c4c4c;text-align:center;font-size:15px}.send-email-page .send-tips .iconfont{margin:0 8px 0 0}.send-email-page .no-find{margin:10px 0 0;line-height:20px;color:#a5a4a4;text-align:center}.send-email-page .to-my-email a{display:block;margin:53px auto 0;width:270px;height:45px;line-height:45px;background:#ff1901;text-align:center;color:#fff;letter-spacing:2px}.verification-page .content li{position:relative;margin-bottom:43px}.verification-page .content .btn{display:inline-block;border:none}.verification-page .content .head-title{font-size:24px;color:#000}.verification-page .content .pn-label{color:#828282;font-size:16px}.verification-page .content .country-code{margin:0 10px}.verification-page .content .country-code,.verification-page .content .phone-num{color:#000;font-size:16px}.verification-page .content .captcha{width:160px!important}.verification-page .content .send-captcha{width:133px;font-size:12px;position:relative;top:-1px;letter-spacing:0}.verification-page .content .err-tip{left:310px}.verification-page .content .captcha-tips{position:absolute;top:50px;color:#a5a4a4}.verification-page .content .captcha-tips .iconfont{color:#0f9acd;font-size:14px;margin:0 8px 0 0;vertical-align:12%}.reset-success-page .content{margin:255px 0 0!important}.reset-success-page .success-text{line-height:35px}.reset-success-page .success-text .iconfont{font-size:30px;color:#ee3f14}.reset-success-page .success-text span{font-size:24px;margin:0 18px}.reset-success-page .success-text #count-down{color:#ee3f14}.reset-success-page .success-btn{display:block;margin:43px auto 0;width:269px;line-height:269px;height:45px;line-height:45px;font-size:14px;color:#fff;text-align:center;background-color:#ff1901}.welcome-page{text-align:center;color:#7f7f7f}.welcome-page .content{padding-top:82px}.welcome-page .wel-title{font-size:30px;margin-bottom:30px}.welcome-page .wel-title em{font-style:normal;color:#ff1901}.welcome-page .wel-sub-title{font-size:16px;margin-bottom:60px}.welcome-page .link{display:block}.welcome-page .link span{color:#7f7f7f}.welcome-page .link-img{height:91px;width:91px;background-size:100% 100%;margin-bottom:10px}.welcome-page .go-shopping{float:left;padding-left:100px}.welcome-page .go-shopping div{background-image:url(../assets/img/passport/go-shopping.png?v155c47c0108)}.welcome-page .complete-info{float:right;padding-right:100px}.welcome-page .complete-info div{background-image:url(../assets/img/passport/edit-info.png?v155c47c0108)}.yohobindbtn{display:block;width:210px;height:45px;line-height:45px;background-color:#f02200;color:#fff;font-size:16px;text-align:center}.hide{display:none}.novisiable{visibility:hidden}.actlevel{background-color:#f02200!important;color:#fff!important}.mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:15;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.bindwrapper{margin:0 auto;width:980px;min-height:450px;padding-top:122px}.welcomeword{width:100%;text-align:center;font-size:22px;line-height:22px;color:#545454;margin-bottom:15px}.welcomeword .yoho{color:#e12000}.safeword{width:100%;text-align:center;font-size:16px;line-height:16px;color:#545454;margin-bottom:63px}.yohobindrow{width:485px;margin:0 auto 22px;height:40px}.yohobindrow .name{float:left;text-align:right;margin-right:14px;width:96px}.yohobindrow .areatag{height:30px;line-height:30px}.yohobindrow .phonetag,.yohobindrow .setpwdtag{height:47px;line-height:47px}.yohobindrow .content{float:left;text-align:left;margin-top:0;padding-left:0}.yohobindrow .errinfo{color:#f02200;line-height:49px;margin-left:5px}.yohobindrow:after{display:block;content:'';clear:both}.sendnotify{width:260px;text-align:left;margin:0 auto 18px}.validaterow{margin:0 auto 22px;padding-left:248px}.validaterow .name{float:left;text-align:right;margin-right:14px;width:96px}.validaterow .areatag{height:30px;line-height:30px}.validaterow .phonetag{height:47px;line-height:47px}.validaterow .content{float:left;text-align:left}.validaterow .content .err-tip{left:430px}.validaterow .validatewrapper{float:left;height:45px;width:133px;text-align:center;line-height:45px;background-color:#d8d8d8;color:#000;font-size:13px;margin-left:18px}.validaterow .validatewrapper .yohobindbtn{width:133px;font-size:13px}.validaterow:after{display:block;content:'';clear:both}.validatepicrow{overflow:hidden;margin:0 auto 22px;padding-left:250px}.validatepicrow .name{float:left;text-align:right;margin-right:14px;width:96px}.validatepicrow .areatag{height:30px;line-height:30px}.validatepicrow .phonetag{height:47px;line-height:47px}.validatepicrow .content{float:left;text-align:left}.validatepicrow .validatewrapper{float:left;height:45px;text-align:center;line-height:45px;color:#000;font-size:13px;margin-left:18px}.validatepicrow .validatewrapper .yohobindbtn{width:133px;font-size:13px}.validatepicrow .change-captcha{cursor:pointer;color:#f02200;text-decoration:underline}.validatepicrow:after{display:block;content:'';clear:both}.setpwdwrapper{margin-bottom:10px;height:45px}.safelevel{width:291px;margin:0 auto;text-align:right}.safelevel,.safelevel span{height:15px;font-size:10px;color:#000}.safelevel span{width:28px;line-height:15px;background-color:#e5e5e5;margin-right:4px;padding:1px 8px}.green .color{background-color:#0f0;color:#fff}.yellow .color{background-color:#ff0;color:#fff}.red .color{background-color:red;color:#fff}.yohoselectarea{position:relative;box-sizing:border-box;width:131px;height:33px}.yohoselectarea .optionshow{width:100%;height:100%;padding-left:16px;border:1px solid #d9d9d9}.yohoselectarea .optionshow .areaname{display:block;float:left;width:110px;height:100%;line-height:33px;font-size:13px;color:#000}.yohoselectarea .optionshow .righttag{display:block;float:left;width:21px;height:100%;line-height:33px;background-color:#d8d8d8;background-image:url(../assets/img/passport/arrowbottom.png?v155c47c0108);background-repeat:no-repeat;background-position:50%}.yohoselectarea .optionslist{background-color:#fff;position:absolute;top:35px;left:0;width:149px;z-index:2}.yohoselectarea .optionslist .optionitem{height:33px;line-height:33px;padding-left:16px;font-size:13px}.yohoselectarea .optionslist .optionitem:hover{background-color:#dfdfdf}.yohophonewrapper{width:271px;height:47px;border:1px solid #d9d9d9;position:relative}.yohophonewrapper .areanum{float:left;height:100%;width:63px;line-height:47px;text-align:center;color:#000;background-color:#d8d8d8}.yohophonewrapper .phonenum{outline:none;box-sizing:border-box;float:left;height:45px;width:205px;line-height:38px;padding-left:8px;border:none;color:#000}.yohophonewrapper .pwdcontent,.yohophonewrapper .validatenum{width:100%}.protoctolwrapper{width:350px;margin:38px auto 0;padding-left:85px;overflow:hidden}.protoctolwrapper .choosewrapper{float:left;width:13px;height:13px;background-color:#4c4c4c;background-image:url(../assets/img/passport/choosed.png?v155c47c0108);background-position:50%;background-repeat:no-repeat;margin-right:14px}.protoctolwrapper .choosetag{width:110%;height:110%;display:block;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";margin:0}.protoctolwrapper span{float:left;color:#666;font-size:13px;line-height:14px}.protoctolwrapper .protoctol{color:#f02200;text-decoration:underline}.protoctolwrapper:after{display:block;content:'';clear:both}.confirmwrapper{overflow:hidden;margin-top:47px!important}.btnwrapper{width:350px;margin:20px auto 0;padding-left:85px}.thirdloginwrapper{margin:0 auto;width:1150px;min-height:450px;padding-top:160px}.thirdloginwrapper .safeword{margin-bottom:30px}.thirdloginwrapper .left{box-sizing:border-box;float:left;width:450px;height:318px;border-right:1px solid #e5e5e5}.thirdloginwrapper .right{box-sizing:border-box;float:right;width:696px;padding-top:64px;height:318px}.thirdloginwrapper .completeprofile,.thirdloginwrapper .gobuy{float:left;display:inline-block;width:94px;height:94px;line-height:94px;text-align:center;border-radius:50%;background-color:#f02200;color:#fff}.thirdloginwrapper .gobuy{margin-left:228px;margin-right:80px}.bindsuccesswrapper{margin:0 auto;width:1150px;min-height:450px;padding-top:160px}.bindsuccesswrapper .successwrapper{width:320px;height:29px;margin:0 auto 16px}.bindsuccesswrapper .successwrapper .successtag{display:inline-block;margin-right:28px;float:left;width:29px;height:29px;background-image:url(../assets/img/passport/bindsuccess.png?v155c47c0108);background-repeat:no-repeat}.bindsuccesswrapper .successwrapper .congratulation{display:inline-block;height:29px;line-height:29px;font-size:22px}.bindsuccesswrapper .info{text-align:center;font-size:16px;margin-bottom:48px}.bindsuccesswrapper .gobuynow{margin:0 auto}.bindconfrimwrapper{width:900px;height:439px;margin:-217px auto;background-color:#fff;box-sizing:border-box;padding-top:37px}.bindconfrimwrapper .topwrapper{width:281px;height:90px;margin:0 auto 32px}.bindconfrimwrapper .topwrapper .userphoto{width:90px;height:90px;vertical-align:middle;border-radius:50%;margin-right:22px}.bindconfrimwrapper .topwrapper .username{vertical-align:middle;display:inline-block;width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700;color:#545454}.bindconfrimwrapper .usertaginfo{text-align:center;font-size:18px;font-weight:700;color:#545454;margin-bottom:15px}.bindconfrimwrapper .usertagremind{text-align:center;font-size:16px;color:#888;margin-bottom:47px}.bindconfrimwrapper .otherphone{margin:0 auto 64px}.bindconfrimwrapper .logindirectly{display:block;text-align:center;text-decoration:underline;color:#f02200}.yohobindbtn[disabled]{background-color:#e5e5e5;cursor:not-allowed}.gobindwrapper{width:100%;height:45px;margin-bottom:70px}.gobindwrapper .myphone{float:left;margin-left:20px;width:193px}.gobindwrapper .logindirectly{display:inline-block}.gobindwrapper .validaterow{overflow:hidden;margin:0 auto 22px;padding-left:222px;float:left}.gobindwrapper .validaterow .name{float:left;text-align:right;margin-right:14px;width:96px}.gobindwrapper .validaterow .areatag{height:30px;line-height:30px}.gobindwrapper .validaterow .phonetag{height:47px;line-height:47px}.gobindwrapper .validaterow .content{float:left;text-align:left}.gobindwrapper .validaterow .content .validatacode{outline:none;box-sizing:border-box;float:left;height:45px;width:113px;line-height:38px;padding-left:8px;border:1px solid #d9d9d9;color:#000}.gobindwrapper .validaterow .validatewrapper{float:left;height:45px;width:133px;text-align:center;line-height:45px;background-color:#d8d8d8;color:#000;font-size:13px;margin-left:18px}.gobindwrapper .validaterow .validatewrapper .yohobindbtn{width:133px;font-size:13px}.gobindwrapper:after{display:block;content:'';clear:both}.gobindbottomwrapper{width:100%;padding-left:341px}.gobindbottomwrapper .logindirectly{display:inline-block;float:left;margin-right:36px;text-decoration:underline;color:#f02200}.pwd-tips{position:absolute;z-index:11;top:-10px;left:285px;width:160px!important;height:72px;padding-top:7px;font-size:12px;background-image:url(../assets/img/sprite.passport.png?v155c47c08d8);background-position:0 0;background-color:#fff}.pwd-tips>div{position:relative;height:22px;line-height:22px;margin-left:15px;padding-left:15px;font-size:12px;color:#b9b9b9}.pwd-tips>div i{position:absolute;width:14px;height:14px;left:-2px;top:50%;margin:-7px 0 0;background-image:url(../assets/img/sprite.passport.png?v155c47c08d8);background-position:-63px -113px}.pwd-tips>div.no{color:red}.pwd-tips>div.no i{background-position:-95px -113px}.pwd-tips>div.no i,.pwd-tips>div.yes i{background-image:url(../assets/img/sprite.passport.png?v155c47c08d8)}.pwd-tips>div.yes i{background-position:-79px -113px}.tip-panel{position:absolute;display:none;width:248px;padding:0 10px;z-index:9;background-color:#161616;border:1px solid hsla(0,0%,100%,.7);margin-top:5px;cursor:pointer;border-radius:5px}.tip-panel li{height:20px;line-height:20px;color:#b9b9b9}.err-tip{position:absolute;font-size:14px;white-space:nowrap;top:8px;left:285px;padding:6px 0;color:red}.err-tip i{display:block;float:left;height:14px;width:14px;background-image:url(../assets/img/sprite.passport.png?v155c47c08d8);background-position:-95px -113px;margin-right:5px}.err-tip a{text-decoration:underline;color:red}.backdrop{position:fixed;background:#000;width:100%;height:100%;left:0;top:0;bottom:0;right:0;opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"}.err-info{display:none;z-index:11;position:absolute;top:-41px;left:0;height:30px;line-height:30px;color:red;background-color:#ffebeb;border:1px solid #ffbdbe;padding:0 10px}.err-info b{background:url(../assets/img/passport/angle.png?v155c47c0108);position:absolute;height:9px;width:17px;top:30px;left:10px}.third-relate-page{min-height:600px}.third-relate-page .relate-main{padding-top:100px}.third-relate-page .user-wrapper{width:280px;margin:0 auto}.third-relate-page .user-wrapper .user-thumb{width:94px;height:94px;border-radius:50%;display:inline-block;overflow:hidden}.third-relate-page .user-wrapper .user-thumb img{width:100%;height:100%}.third-relate-page .user-wrapper label{width:190px;line-height:94px;margin-left:20px;font-size:18px;font-weight:700;color:#545454;word-break:keep-all;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:absolute}.third-relate-page .remind-info{width:490px;min-height:54px;padding-left:50px;margin:35px auto;background:url(../assets/img/passport/warn.png?v155c47c0108) no-repeat;text-align:center}.third-relate-page .remind-info h3{font-size:18px;font-weight:700;color:#545454;margin-bottom:12px}.third-relate-page .remind-info a{color:#f22c26;text-decoration:underline;cursor:pointer}.third-relate-page .remind-info p{font-size:16px;color:#888}.third-relate-page .option-btn{text-align:center}.third-relate-page .option-btn a{width:192px;height:46px;color:#fff;font-size:18px;line-height:46px;display:inline-block;background-color:#f12200;cursor:pointer}.third-relate-page .option-btn a:first-child{margin-right:14px}.third-relate-page .remind-tips{width:390px;margin:0 auto;font-size:14px;color:#888;text-align:center;margin-top:30px;text-decoration:underline;display:block}.third-relate-page .remind-tips a{color:#f12200;cursor:pointer}.third-relate-page .remind-tips>*{text-decoration:underline}.third-relate-page .code-validate{padding-top:140px}.third-relate-page .action-link{width:440px;margin:0 auto;padding-left:180px;color:#545454;line-height:46px}.third-relate-page .action-link .code-name{margin-left:-100px;position:absolute}.third-relate-page .action-link input{width:260px;height:40px;padding-left:10px;font-size:16px;margin-right:14px}.third-relate-page .action-link label{width:140px;height:46px;font-size:14px;color:#fff;background-color:#f12200;display:inline-block;text-align:center;cursor:pointer}.third-relate-page .action-link .count-down{color:#979797;background-color:#d8d8d8;display:none}.third-relate-page .action-link .code-error{position:absolute;width:200px;display:inline-block;color:red;padding-left:10px}.third-relate-page .action-link .code-error i{display:inline-block;height:14px;width:14px;background-image:url(../assets/img/sprite.passport.png?v155c47c08d8);background-position:-95px -113px;vertical-align:middle;margin-right:5px;margin-top:-2px}.third-relate-page .waiting .get-code{display:none}.third-relate-page .waiting .count-down{display:inline-block}.third-relate-page .relate-btn{width:212px;height:46px;font-family:arial,Microsoft YaHei;color:#fff;font-size:18px;background-color:#f12200;border:0;outline:none;margin:20px 0}.guang-page{width:1150px;margin:0 auto}.guang-page .left-side{float:left;width:830px}.guang-page .right-side{float:left;width:290px;margin-left:30px}.guang-page .bg-img.blink,.guang-page img.blink{opacity:.8;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"}.guang-page .ex-reco-title{color:#333;line-height:24px;padding-bottom:10px;border-bottom:1px solid #ccc;font-size:20px;font-weight:700}.guang-page .ex-reco-list{margin-top:14px}.guang-page .ex-reco-item{box-sizing:border-box;height:60px;margin-bottom:14px}.guang-page .ex-reco-item:last-child{margin-bottom:0}.guang-page .ex-reco-img{display:block;float:left;width:90px;height:60px;margin-right:5px}.guang-page .ex-reco-img span{display:block;height:100%;width:100%;background-size:cover;background-position:50%}.guang-page .ex-reco-img span img{width:100%;height:100%}.guang-page .ex-reco-context{float:left;max-width:195px;height:40px;line-height:20px;font-size:13px;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.guang-page .ex-reco-context:hover{color:#c30}.guang-page .hot{margin-top:40px}.guang-page .hot .hot-title{color:#333;line-height:24px;padding-bottom:10px;border-bottom:1px solid #ccc;font-weight:700;font-size:20px}.guang-page .hot .hot-tag-list{margin-top:14px;max-height:150px;overflow:hidden}.guang-page .hot .hot-tag{display:inline-block;float:left;padding:5px;font-size:12px;background-color:#ccc;border:none;margin-right:10px;margin-bottom:10px;color:#fff;font-weight:700}.guang-page .hot .hot-tag:hover{background-color:#333}.guang-page .ads{margin-top:30px}.guang-page .ads .ad{display:block;box-sizing:border-box;margin-bottom:24px;width:290px}.guang-page .ads .ad img{display:block;width:100%}.guang-page .msg-content{padding:24px 0;border-bottom:1px solid #ccc;position:relative}.guang-page .msg-content .content{height:80px;line-height:24px}.guang-page .msg-content .iconfont{color:#ccc}.guang-page .msg-content .msg-img{position:relative;float:left;margin-right:26px}.guang-page .msg-content .msg-img img{display:block;width:360px;height:240px}.guang-page .msg-content .msg-img img.square{height:360px}.guang-page .msg-content .classification{position:absolute;background-color:#000;color:#fff;text-align:center;width:80px;height:32px;line-height:32px;font-size:13px;opacity:.9;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=90)";z-index:8}.guang-page .msg-content .reco{position:absolute;top:0;left:66px;height:32px;width:32px;background:url(../assets/img/guang/msg-reco.png?v155c47c0108);background-size:100% 100%;z-index:9}.guang-page .msg-content .msg-info{float:left;width:440px}.guang-page .msg-content .msg-title{display:block;font-size:22px;color:#333;line-height:30px;max-height:64px}.guang-page .msg-content .msg-title:hover{color:#c30}.guang-page .msg-content .content{font-size:14px;color:#666}.guang-page .msg-content .msg-app{line-height:34px;color:#999;font-size:13px}.guang-page .msg-content .author{display:block;float:left;color:#333;margin-right:22px;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.guang-page .msg-content .author:hover{color:#c30}.guang-page .msg-content .page-view,.guang-page .msg-content .publish-time{color:#999}.guang-page .msg-content .publish-time{margin-right:30px}.guang-page .msg-content .like-comment,.guang-page .msg-content .tags{position:absolute;bottom:24px;font-size:12px}.guang-page .msg-content .like-comment .like,.guang-page .msg-content .tags .like{margin-right:10px}.guang-page .msg-content .like-comment .like:hover *,.guang-page .msg-content .tags .like:hover *{color:#000}.guang-page .msg-content .like-comment .like-icon,.guang-page .msg-content .tags .like-icon{cursor:pointer}.guang-page .msg-content .like-comment .like-icon.liked,.guang-page .msg-content .tags .like-icon.liked{color:#000}.guang-page .msg-content .like-comment.tags,.guang-page .msg-content .tags.tags{left:386px;max-width:350px;height:20px;overflow:hidden}.guang-page .msg-content .like-comment.like-comment,.guang-page .msg-content .tags.like-comment{right:0;color:#999}.guang-page .msg-content .msg-tag{display:inline-block;text-align:center;height:20px;line-height:20px;padding:0 10px;margin-right:10px;background-color:#ccc;color:#fff}.guang-page .msg-content .msg-tag:last-child{margin-right:0}.guang-page .msg-content .msg-tag:hover{background-color:#333}.guang-page .pager{font-size:12px}.guang-page .pager a{height:24px;padding:0 9px;line-height:24px;display:inline-block;text-align:center;margin-right:8px;color:#222}.guang-page .pager a.cur{background-color:#222;color:#fff}.guang-index-page .msg-nav{border-bottom:1px solid #000;margin-top:24px;height:30px}.guang-index-page .msg-nav li{float:left;height:30px;line-height:30px;text-align:center;font-size:18px;padding:0 28px}.guang-index-page .msg-nav li a{display:block;height:100%;width:100%;color:#333}.guang-index-page .msg-nav li.actived{background-color:#111}.guang-index-page .msg-nav li.actived a{color:#fff}.guang-index-page .msg-pager{float:right;margin:20px 0}.guang-detail-page{width:1150px;margin:0 auto 95px}.guang-detail-page b{font-weight:700}.guang-detail-page i{font-style:italic}.guang-detail-page .block{margin:15px 0}.guang-detail-page .excellent-recommendation-title{margin-top:4px}.guang-detail-page .block-header{position:relative;border-bottom:1px solid #c1c1c1;font-size:18px;height:38px;line-height:38px;text-align:center;margin-bottom:24px;color:#333}.guang-detail-page .block-header .more-reco{position:absolute;right:0;color:#000;font-size:14px;text-decoration:none}.guang-detail-page .related-brand .brands{width:852px}.guang-detail-page .related-reco .recos{width:850px}.guang-detail-page .detail-title{font-size:28px;line-height:64px;border-bottom:1px dotted #c1c1c1;word-wrap:break-word}.guang-detail-page .article-author{float:left;line-height:64px}.guang-detail-page .article-author .author-avatar{clear:both;width:38px;height:64px}.guang-detail-page .article-author .author-avatar img{width:38px;height:38px;border-radius:50%;vertical-align:middle}.guang-detail-page .author-info{float:left;margin-left:10px;font-size:14px;max-width:447px}.guang-detail-page .author-info .author-name{display:block;height:64px;line-height:64px;cursor:pointer;color:#000}.guang-detail-page .author-info .author-name:hover{color:#c30}.guang-detail-page .author-info .author-introduce{color:#999}.guang-detail-page .article-status{float:right;height:64px;line-height:64px;color:#999;font-size:13px}.guang-detail-page .article-status .article-click{margin:0 25px}.guang-detail-page .article-status .article-comment{color:#c30;cursor:pointer}.guang-detail-page .article-main img{display:block;max-width:100%;margin:0 auto}.guang-detail-page .article-main .article-text{margin:2px 0 20px;line-height:28px;font-size:14px}.guang-detail-page .article-main .article-small-pic{text-align:center;font-size:0}.guang-detail-page .article-main .article-small-pic img{display:inline-block;max-width:412px}.guang-detail-page .article-main .article-small-pic img:first-child{margin:0 6px 0 0}.guang-detail-page .article-main .block:first-child{margin-top:10px}.guang-detail-page .user-handle{margin:30px 0 0;text-align:center}.guang-detail-page .user-handle ul{display:inline-block}.guang-detail-page .user-handle ul li{float:left;margin:0 15px;cursor:pointer}.guang-detail-page .user-handle ul li a{position:relative;display:block;padding:0 10px;height:36px;line-height:36px;color:#535353;font-size:0;background:#efefef;text-align:left}.guang-detail-page .user-handle ul li a i,.guang-detail-page .user-handle ul li a span{display:inline-block;font-style:normal;font-size:14px}.guang-detail-page .user-handle ul li a i{margin:0 5px 0 0;font-size:18px;opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"}.guang-detail-page .user-handle ul li a .cancel-collect{display:none}.guang-detail-page .user-handle ul .like-status.hover i,.guang-detail-page .user-handle ul .like-status.liked i{opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}.guang-detail-page .user-handle ul .like-statis.hover .like-num{color:#000}.guang-detail-page .user-handle ul .sort-collect a i{width:21px}.guang-detail-page .user-handle ul .sort-collect.collected a i{opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}.guang-detail-page .user-handle ul .sort-collect.collected a span{display:none}.guang-detail-page .user-handle ul .sort-collect.collected a .cancel-collect{display:inline}.guang-detail-page .user-handle ul .sort-collect.hover i{opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}.guang-detail-page .user-handle ul .sort-collect.hover span{color:#000}.guang-detail-page .article-bottom-info{margin:44px 0 0;padding:0 0 10px;border-bottom:1px dotted #c1c1c1}.guang-detail-page .article-tag{float:left;width:588px}.guang-detail-page .article-tag .tag-icon{float:left;margin:0 12px 0 0;font-size:20px;font-style:normal}.guang-detail-page .article-tag ul{float:left;max-width:555px}.guang-detail-page .article-tag ul li{float:left;margin:0 10px 10px 0}.guang-detail-page .article-tag ul li a{display:block;padding:0 15px;height:20px;line-height:20px;font-size:12px;color:#fff;font-weight:700;background:#c1c1c1}.guang-detail-page .article-tag ul li:hover a{background:#333}.guang-detail-page .article-tag ul li:first-child{margin-left:0}.guang-detail-page .article-share{float:right}.guang-detail-page .article-share .title{font-size:12px}.guang-detail-page .detail-related-posts{margin:14px 0 0}.guang-detail-page .detail-related-posts li{float:left;width:264px;margin-left:19px}.guang-detail-page .detail-related-posts li a{display:block}.guang-detail-page .detail-related-posts li .bg-img{display:block;width:100%;height:173px;line-height:173px;text-align:center;font-size:0}.guang-detail-page .detail-related-posts li .bg-img img{max-width:100%;max-height:100%;vertical-align:middle}.guang-detail-page .detail-related-posts li .post-title{margin:8px 0 0}.guang-detail-page .detail-related-posts li .post-title h2{line-height:16px;font-size:14px;color:#000;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.guang-detail-page .detail-related-posts li .post-title:hover h2{color:#c30!important}.guang-detail-page .detail-related-posts li:first-child{margin-left:0}.guang-detail-page .comment-area{margin:58px 0 0}.guang-detail-page .comment-area .comment-publish{height:48px}.guang-detail-page .comment-textarea textarea{display:block;width:812px;height:86px;padding:12px;resize:none;outline:none;font-size:14px;line-height:18px;color:#535353;font-family:arial,helvetica,微软雅黑;border:1px solid #e7e7e7}.guang-detail-page .word-count-tip{display:inline-block;height:48px;line-height:48px;font-size:12px;color:#c8c8c8}.guang-detail-page .word-count-tip .exceed-count{color:red}.guang-detail-page .publish-btn{margin:10px 0 0;float:right;width:90px;height:33px;line-height:33px;text-align:center;color:#fff;font-size:14px;background:#cb3a3e;cursor:pointer}.guang-detail-page .publish-btn:hover{background:#c03234}.guang-detail-page .publish-btn.disable{background-color:#e79c9e}.guang-detail-page .comments-wrap h4{position:relative;line-height:32px;border-bottom:1px solid #e7e7e7}.guang-detail-page .comments-wrap h4 .comment-num{margin-right:5px;color:#c11e00}.guang-detail-page .comments-wrap h4 i{position:absolute;width:13px;height:7px;left:30px;bottom:-7px;background:url(../assets/img/guang/comment-icon.png?v155c47c0108) no-repeat}.guang-detail-page .comments-wrap .comment-pager{float:right;margin:20px 0}.guang-detail-page .comments-empty{display:none;color:#ccc;margin:20px 0;font-size:12px;line-height:12px;text-align:center}.guang-detail-page .commnets-resultwrapper{display:none}.guang-detail-page .comments-list li{margin:14px 0 0;padding:0 0 15px;border-bottom:1px dotted #e7e7e7}.guang-detail-page .comments-list li .avatar{float:left;width:40px;height:40px;overflow:hidden}.guang-detail-page .comments-list li .avatar img{display:block;width:100%;height:100%;border-radius:50%}.guang-detail-page .comments-list li .comment-info{float:left;width:774px;margin:0 0 0 16px}.guang-detail-page .comments-list li .comment-info .comment-user-name{color:#c11e00;font-size:15px;line-height:15px}.guang-detail-page .comments-list li .comment-info .comment-content{margin-top:10px;line-height:16px;font-size:12px;word-wrap:break-word}.guang-detail-page .comments-list li .comment-info .comment-time{margin:10px 0 0;color:#c8c8c8;font-size:12px;line-height:12px;clear:both}.guang-detail-page .brand{margin-right:22px;margin-bottom:20px;float:left}.guang-detail-page .brand .thumb{display:table-cell;border:1px solid #f5f5f5;height:120px;width:120px;box-sizing:border-box;text-align:center;vertical-align:middle}.guang-detail-page .brand .thumb img{display:block;max-width:120px;max-height:120px;margin:0 auto}.guang-detail-page .brand .brand-name{width:120px;font-size:13px;line-height:20px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:center;color:#333}.guang-detail-page .few-tag,.guang-detail-page .tag-container{display:none}.guang-detail-page .good-info{width:192px;margin-right:20px;margin-bottom:12px}.guang-detail-page .good-info .good-detail-img{height:auto}.guang-detail-page .good-info .good-detail-img .good-thumb,.guang-detail-page .good-info .good-detail-img img.lazy{height:257px}.guang-detail-page .good-info .good-detail-text>a{margin-top:0;line-height:36px}.guang-detail-page .good-info .good-detail-text>.price{margin-top:0}.guang-editor-page .tag-header,.guang-list-page .tag-header{height:45px;line-height:45px;color:#333;font-size:14px;font-weight:700;border-bottom:1px solid #ccc}.guang-editor-page .tag-header>span,.guang-list-page .tag-header>span{font-size:20px}.guang-editor-page .msg-pager,.guang-list-page .msg-pager{float:right;margin:20px 0}.guang-editor-page .right-side{margin-top:20px}.guang-list-page .right-side{margin-top:11px}.guang-editor-page .editor-info{padding:10px;background:#fafafa}.guang-editor-page .editor-info .author-avatar{float:left;width:80px;height:100%}.guang-editor-page .editor-info .author-avatar img{width:80px;height:80px;vertical-align:middle;border-radius:50%}.guang-editor-page .editor-info .author-info{float:left;margin:0 0 0 10px;max-width:1060px}.guang-editor-page .editor-info .author-name{margin-top:11px;font-size:20px;height:30px!important;line-height:30px!important}.guang-editor-page .editor-info .author-introduce{line-height:24px;font-size:14px;color:#999}.guang-editor-page .editor-info .intro-content{margin:15px 0 0;line-height:18px;font-size:14px;color:#999}.home-page{width:1150px;margin:10px auto 0}.home-page .slide-container{position:absolute;left:0;right:0;height:450px}.home-page .slide-thumb-container{height:510px}.home-page .slide-wrapper{position:relative;height:450px;overflow:hidden}.home-page .slide-wrapper ul{position:relative;height:100%}.home-page .slide-wrapper li{display:none;position:absolute;top:0;right:0;width:100%;height:100%}.home-page .slide-wrapper li a{display:block;height:100%;width:1150px;margin:0 auto}.home-page .slide-wrapper li img{width:100%;height:100%}.home-page .slide-wrapper:hover .slide-switch.show,.home-page .slide-wrapper li:first-child{display:block}.home-page .slide-container-placeholder{height:450px;width:100%}.home-page .slide-thumb-container-placeholder{height:510px}.home-page .slide-switch{display:block}.home-page .slide-switch a{position:absolute;top:50%;margin:-30px 0 0;width:60px;height:60px;line-height:56px;text-align:center;z-index:2;background:#fff;opacity:.55;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=55)"}.home-page .slide-switch a .iconfont{font-size:32px;color:#59585a}.home-page .slide-switch a.prev{left:50%;margin-left:-575px}.home-page .slide-switch a.next{right:50%;margin-right:-575px}.home-page .slide-switch a:hover{opacity:.9;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=90)"}.home-page .thumb-pagination{width:1148px;margin:6px auto 0;padding-left:2px}.home-page .thumb-pagination li{position:relative;float:left;margin-left:6px;width:138px;height:54px}.home-page .thumb-pagination li a{position:absolute;left:0;right:0;bottom:0;top:0;background:#000;opacity:.3;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"}.home-page .thumb-pagination li img{width:100%;height:100%}.home-page .thumb-pagination li:first-child{margin:0}.home-page .thumb-pagination li.focus a{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"}.home-page .slide-pagination{font-size:0}.home-page .slide-pagination .slide-shade{position:absolute;left:0;right:0;top:0;bottom:0;background:#000;opacity:.3;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";border-radius:13px}.home-page .slide-pagination span{position:relative;display:inline-block;margin:0 7px;width:12px;height:12px;background:#fff;cursor:pointer;opacity:.6;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";border-radius:6px;z-index:2}.home-page .slide-pagination span.focus{opacity:1;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"}.home-page .debris-slider{height:510px;width:100%}.home-page .debris-slider .col{float:left}.home-page .debris-slider .col a{display:block}.home-page .debris-slider .left-col a,.home-page .debris-slider .right-col a{margin-bottom:10px}.home-page .debris-slider .left-col a:last-child,.home-page .debris-slider .right-col a:last-child{margin-bottom:0}.home-page .debris-slider .left-col img,.home-page .debris-slider .right-col img{height:100%;width:100%}.home-page .debris-slider .left-col{margin-right:10px}.home-page .debris-slider .left-col a{width:280px;height:120px}.home-page .debris-slider .left-col a:first-child{height:250px}.home-page .debris-slider .center-col{position:relative;width:570px;height:100%;margin-right:10px;font-size:0}.home-page .debris-slider .center-col .slide-wrapper{height:100%}.home-page .debris-slider .center-col .slide-wrapper li a{width:100%}.home-page .debris-slider .center-col .slide-switch a.prev{left:0;margin-left:0}.home-page .debris-slider .center-col .slide-switch a.next{right:0;margin-right:0}.home-page .debris-slider .center-col img{max-width:100%;max-height:100%}.home-page .debris-slider .center-col:hover .slide-switch.show{display:block}.home-page .debris-slider .right-col a{width:280px;height:120px}.home-page .debris-slider .right-col a:first-child{height:380px;margin-bottom:11px}.home-page .new-report img{display:block;width:100%;height:100%}.home-page .new-report .report-list{float:left;width:868px}.home-page .new-report .report-list li{float:left;margin:0 8px 8px 0;width:185px;height:248px;overflow:hidden}.home-page .new-report .report-list li:first-child{margin-right:7px;width:282px;height:504px}.home-page .new-report .last-item{float:left;width:282px;height:504px;overflow:hidden}.home-page .preference-brand{overflow:hidden}.home-page .preference-brand-list{margin-top:8px;width:1158px}.home-page .preference-brand-item{float:left;margin-right:8px;margin-bottom:8px}.home-page .preference-brand-item a{display:table-cell;width:185px;height:86px;text-align:center;vertical-align:middle}.home-page .preference-brand-item img{display:block;max-width:100%;max-height:100%;margin:0 auto}.home-page .preference-more{float:left;width:185px;height:86px;line-height:100px;text-align:center;color:#000;font-size:16px}.home-page .img-slider-wrapper{position:relative;width:100%;height:558px;background:#8ae6e0;overflow:hidden}.home-page .img-slider-wrapper .img-brand-switch{display:block}.home-page .img-slider-wrapper .img-brand-switch a{position:absolute;top:50%;font-size:36px;color:#fff}.home-page .img-slider-wrapper .img-brand-switch a.next{right:30px}.home-page .img-slider-wrapper .img-brand-switch a.prev{left:30px}.home-page .img-container-landscape{box-sizing:border-box;margin:86px auto 0;width:982px;height:433px;overflow:hidden}.home-page .img-container-landscape .img-list{width:1000px;height:100%}.home-page .img-container-landscape .img-item{float:left;box-sizing:border-box;width:320px;height:100%;margin-right:10px}.home-page .img-container-landscape .img-item img{width:100%;height:100%}.home-page .img-brand{position:relative;width:100%;height:175px;overflow:hidden}.home-page .img-brand ul{width:1158px}.home-page .img-brand li{float:left;margin:0 8px 0 0;width:378px;height:175px;line-height:175px;overflow:hidden;font-size:0;text-align:center}.home-page .img-brand li img{max-width:100%;max-height:100%;vertical-align:middle}.home-page .img-brand .img-brand-switch{display:none}.home-page .img-brand .img-brand-switch a{position:absolute;top:50%;margin:-20px 0 0;width:40px;height:40px;line-height:40px;text-align:center;z-index:2;background:#fff;opacity:.55;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=55)"}.home-page .img-brand .img-brand-switch a.prev{left:0}.home-page .img-brand .img-brand-switch a.next{right:0}.home-page .img-brand .img-brand-switch a:hover{opacity:.9;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=90)"}.home-page .img-brand:hover .img-brand-switch{display:block}.home-page .logo-brand{width:100%;height:282px;overflow:hidden}.home-page .logo-brand ul{width:1158px}.home-page .logo-brand li{float:left;margin:8px 8px 0 0;width:185px;height:86px;line-height:86px;font-size:0;text-align:center}.home-page .logo-brand li img{max-width:100%;max-height:100%;vertical-align:middle}.home-page .logo-brand .logo-brand-switch{position:relative;background:url(../assets/img/index/logo-brand-line.png?v155c47c0108) no-repeat 50%;line-height:normal}.home-page .logo-brand .logo-brand-switch .iconfont{position:absolute;left:50%;font-size:32px}.home-page .logo-brand .logo-brand-switch .iconfont.prev{top:10px;margin-left:-48px}.home-page .logo-brand .logo-brand-switch .iconfont.next{bottom:12px;margin-left:20px}.home-page .logo-brand .brand-more{font-size:16px}.home-page .logo-brand .brand-more:hover{text-decoration:underline}.home-page .logo-brand.logos-10{height:188px}.home-page .categorys-list ul{width:1158px}.home-page .categorys-list li{float:left;margin:0 8px 8px 0;width:185px;height:248px}.home-page .categorys-list li img{display:block;width:100%;height:100%}.home-page .categorys-list li.cate-item0{width:185px;height:504px}.home-page .categorys-list li.cate-item1{width:377px;height:504px}.home-page .floor-header{position:relative;margin:80px 0 40px}.home-page .floor-header .floor-title{margin:0 auto;width:298px;height:31px;line-height:31px;border:1px solid #000;font-size:16px;text-align:center}.home-page .floor-header .header-navs{position:absolute;padding:10px 0;top:0;right:0;font-size:14px}.home-page .floor-header .header-navs li{float:left;padding:1px 15px;border-left:1px solid #ccc}.home-page .floor-header .header-navs li a{color:#333}.home-page .floor-header .header-navs li:first-child{border-left:none}.home-page .floor-header .header-navs li:hover{text-decoration:underline}.g-list li{float:left}.g-list li a{position:relative;display:block;overflow:hidden}.g-list li a img,.g-mask{width:100%;height:100%}.g-mask{display:block;position:absolute;z-index:1;background:#000;opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";overflow:hidden;transition:opacity .6s}.g-title{display:block;text-align:center;font-weight:700;line-height:1.5;width:100%;margin-top:14px}.home-page .tpl-recommend{width:100%;position:relative}.home-page .tpl-recommend a{display:block}.home-page .tpl-recommend a img{display:block;width:100%;height:100%}.home-page .tpl-recommend .tpl-body{margin-bottom:8px}.home-page .tpl-recommend .tpl-nav{float:left;overflow:hidden}.home-page .tpl-recommend .tpl-nav .tpl-keywords{margin-bottom:8px}.home-page .tpl-recommend .tpl-nav .tpl-category{padding:10px 0;background-color:#f8f8f8;overflow:hidden}.home-page .tpl-recommend .tpl-nav .tpl-category a{float:left;width:50%;text-align:center;color:#000;overflow:hidden}.home-page .tpl-recommend .tpl-brands{float:left;overflow:hidden;margin-left:8px}.home-page .tpl-recommend .tpl-brands li{margin-top:8px}.home-page .tpl-recommend .tpl-types{float:left;overflow:hidden;margin-top:-8px;width:579px}.home-page .tpl-recommend .tpl-types li{float:left;margin-left:8px;margin-top:8px}.home-page .tpl-recommend .tpl-types li a{width:185px;height:248px}.home-page .tpl-recommend .tpl-products{overflow:hidden;margin-left:-10px}.home-page .tpl-recommend .tpl-products li{float:left;margin-left:10px}.home-page .tpl-recommend .tpl-products li a{width:222px;height:298px}.home-page .tpl-recommend .tpl-nav{width:185px}.home-page .tpl-recommend .tpl-nav .keywords0,.home-page .tpl-recommend .tpl-nav .keywords1,.home-page .tpl-recommend .tpl-nav .keywords2{margin-bottom:10px;height:76px}.home-page .tpl-recommend .tpl-nav .keywords2{margin-bottom:0}.home-page .tpl-recommend .tpl-nav .tpl-category{height:228px}.home-page .tpl-recommend .tpl-nav .tpl-category a{height:38px;line-height:38px;font-size:14px}.home-page .tpl-recommend .tpl-brands{width:378px;height:512px}.home-page .tpl-recommend .tpl-brands li a{height:248px}.min-screen .home-page .tpl-recommend .tpl-nav{width:158px}.min-screen .home-page .tpl-recommend .tpl-nav .keywords0,.min-screen .home-page .tpl-recommend .tpl-nav .keywords1,.min-screen .home-page .tpl-recommend .tpl-nav .keywords2{margin-bottom:8px;height:65px}.min-screen .home-page .tpl-recommend .tpl-nav .keywords2{margin-bottom:0}.min-screen .home-page .tpl-recommend .tpl-nav .tpl-category{height:192px}.min-screen .home-page .tpl-recommend .tpl-nav .tpl-category a{height:32px;line-height:32px;font-size:12px}.min-screen .home-page .tpl-recommend .tpl-nav .tpl-category a:hover{text-decoration:underline}.min-screen .home-page .tpl-recommend .tpl-brands{width:324px;height:432px}.min-screen .home-page .tpl-recommend .tpl-brands li a{height:212px}.min-screen .home-page .tpl-recommend .tpl-types{width:498px}.min-screen .home-page .tpl-recommend .tpl-types li a{width:158px;height:212px}.min-screen .home-page .tpl-recommend .tpl-products li a{width:190px;height:254px}.home-page .singlehot{overflow:hidden;margin-left:-8px}.home-page .singlehot li{margin-left:8px;margin-bottom:8px}.home-page .singlehot li a{width:185px;height:248px}.home-page .singlehot .impo1,.home-page .singlehot .impo9{width:378px}.home-page .floor-ad a{display:block;height:129px}.home-page .floor-ad a img{display:block;width:100%;height:100%}.home-page .goods-container{margin-right:-10px;width:inherit;padding-top:0}.home-page .goods-container .good-info{margin-bottom:0;width:280px;height:485px}.home-page .goods-container .good-detail-img{height:374px}.home-page .goods-container .good-detail-text{text-align:center}.home-page .adbanner{margin-top:12px}.home-page .adbanner a{height:150px}.min-screen .home-page .singlehot li a{width:158px;height:212px}.min-screen .home-page .singlehot .impo1,.min-screen .home-page .singlehot .impo9{width:323px}.min-screen .home-page .goods-container .good-info{width:240px;height:412px}.min-screen .home-page .goods-container .good-info .good-detail-img{height:320px}.home-page .commodity .commodity-list{margin-left:-10px}.home-page .commodity .commodity-list a{height:465px;width:280px}.home-page .commodity .commodity-list li{margin-left:10px}.home-page .commodity .commodity-list i{position:absolute;bottom:0;width:100%;height:20px;background:#ffac5b;color:#fff;line-height:20px;text-align:center;font-size:12px}.home-page .commodity .commodity-list i.top{position:absolute;top:10px;right:10px;background-color:#ff575c;color:#fff;border-radius:30px;z-index:2;height:60px;width:60px;line-height:60px;font-size:20px}.home-page .commodity .commodity-list .commodity-img{position:relative;height:374px}.home-page .commodity .commodity-list p.commodity-name{font-size:12px;color:#000;text-align:center;margin-top:14px;line-height:18px}.home-page .commodity .commodity-list p.commodity-price{position:relative;margin:3px 0 0;text-align:center;line-height:20px;color:#000}.home-page .commodity .commodity-list p.commodity-price span{display:inline-block;font-size:12px}.home-page .commodity .commodity-brands{margin-left:-8px}.home-page .commodity .commodity-brands a{float:left;margin-left:8px;display:block;width:185px;height:86px}.home-page .commodity .commodity-brands a img{width:100%;height:100%}.home-page .commodity .loading{position:relative;width:100%;text-align:center;padding-top:40px}.home-page .commodity .loading a{display:block;height:35px;width:120px;margin:0 auto 40px;background-color:#000;color:#fff;font-size:14px;line-height:35px;text-align:center}.min-screen .home-page .commodity .commodity-list a{height:400px;width:240px}.min-screen .home-page .commodity .commodity-list .commodity-img{height:320px}.min-screen .home-page .commodity .commodity-list i.top{height:52px;width:52px;line-height:52px;font-size:14px}.min-screen .home-page .commodity .commodity-brands a{width:158px;height:74px}.home-page .slide-accordion{overflow:hidden;position:relative;height:400px}.home-page .slide-accordion a{position:relative;display:block}.home-page .slide-accordion a img{display:block;width:100%;height:100%}.home-page .slide-accordion ul{position:absolute;left:-5px}.home-page .slide-accordion li{position:absolute;border-left:5px solid #fff}.home-page .slide-accordion li a{width:650px;height:400px}.home-page .slide-accordion .g-mask{opacity:.2;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=20)"}.home-page .slide-accordion .g-mask:hover{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"}.min-screen .home-page .slide-accordion{height:342px}.min-screen .home-page .slide-accordion li a{width:558px;height:342px}.boys .tpl-nav .keywords0{margin-bottom:10px!important;height:152px!important}.boys .tpl-nav .keywords1{height:86px!important}.boys .tpl-nav .tpl-category a{height:38px!important;line-height:38px!important;font-size:14px!important}.boys .tpl-brands{margin-top:-8px!important}.boys .goods-container .good-info,.lifestyle .goods-container .good-info{width:222px!important;height:408px!important}.boys .goods-container .good-info .good-detail-img,.lifestyle .goods-container .good-info .good-detail-img{height:298px!important}.min-screen .boys .tpl-nav .keywords0{margin-bottom:8px!important;height:130px!important}.min-screen .boys .tpl-nav .keywords1{margin-bottom:0!important;height:74px!important}.min-screen .boys .tpl-brands{margin-top:-8px!important}.min-screen .boys .goods-container .good-info,.min-screen .lifestyle .goods-container .good-info{width:188px;height:360px}.min-screen .boys .goods-container .good-info .good-detail-img,.min-screen .lifestyle .goods-container .good-info .good-detail-img{height:255px}.min-screen .home-page{width:990px}.min-screen .home-page .slide-container{height:387px}.min-screen .home-page .slide-container img{display:block}.min-screen .home-page .slide-thumb-container{height:440px}.min-screen .home-page .slide-container-placeholder{height:387px}.min-screen .home-page .slide-thumb-container-placeholder{height:440px}.min-screen .home-page .slide-wrapper{height:387px}.min-screen .home-page .slide-wrapper li a{width:990px}.min-screen .home-page .slide-switch{display:block}.min-screen .home-page .slide-switch a.prev{margin-left:-495px}.min-screen .home-page .slide-switch a.next{margin-right:-495px}.min-screen .home-page .slide-switch a:hover{opacity:.9;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=90)"}.min-screen .home-page .thumb-pagination{width:990px;margin:7px auto 0;padding:0}.min-screen .home-page .thumb-pagination li{width:118px;height:46px}.min-screen .home-page .debris-slider{height:440px}.min-screen .home-page .debris-slider .left-col{margin-right:9px}.min-screen .home-page .debris-slider .left-col a{width:240px;height:103px}.min-screen .home-page .debris-slider .left-col a:first-child{height:214px}.min-screen .home-page .debris-slider .center-col{width:492px;margin-right:9px}.min-screen .home-page .debris-slider .right-col a{width:240px;height:103px}.min-screen .home-page .debris-slider .right-col a:first-child{height:326px;margin-bottom:10px}.min-screen .home-page .new-report .report-list{width:748px}.min-screen .home-page .new-report .report-list li{width:158px;height:212px}.min-screen .home-page .new-report .last-item,.min-screen .home-page .new-report .report-list li:first-child{width:242px;height:432px}.min-screen .home-page .preference-brand-list{width:998px}.min-screen .home-page .preference-brand-item{margin-right:7px}.min-screen .home-page .preference-brand-item a{width:159px;height:74px}.min-screen .home-page .preference-more{width:159px;height:74px;line-height:90px}.min-screen .home-page .img-slider-wrapper{height:480px}.min-screen .home-page .img-container-landscape{margin:73px auto 0;width:844px;height:370px}.min-screen .home-page .img-container-landscape .img-item{width:275px;height:100%;margin-right:9px}.min-screen .home-page .img-brand{height:150px}.min-screen .home-page .img-brand ul{width:998px}.min-screen .home-page .img-brand li{width:325px;height:150px;line-height:150px}.min-screen .home-page .logo-brand{height:246px}.min-screen .home-page .logo-brand ul{width:998px}.min-screen .home-page .logo-brand li{margin:8px 8px 0 0;width:158px;height:74px;line-height:74px}.min-screen .home-page .logo-brand .logo-brand-switch .iconfont{font-size:24px}.min-screen .home-page .logo-brand .logo-brand-switch .iconfont.prev{top:-12px}.min-screen .home-page .logo-brand .logo-brand-switch .iconfont.next{bottom:-12px}.min-screen .home-page .logo-brand.logos-10{height:164px}.min-screen .home-page .categorys-list ul{width:1004px}.min-screen .home-page .categorys-list li{margin:0 7px 7px 0;width:161px;height:214px}.min-screen .home-page .categorys-list li.cate-item0{width:160px;height:435px}.min-screen .home-page .categorys-list li.cate-item1{width:326px;height:435px}.min-screen .home-page .floor-header{margin:50px 0 30px}.min-screen .home-page .floor-header .header-navs li{padding:1px 10px}.brands .path-nav{border-bottom:none;margin-bottom:0;padding-top:10px;padding-bottom:20px}.brands .brands-tabs{position:relative}.brands .brands-tabs a{display:block}.brands .brands-tabs a img{width:100%;height:100%;display:block}.brands .brands-tabs li{float:left}.brands .brands-tabs li p{display:block;font-size:30px;text-align:center;color:#dedede;position:absolute;top:50%;width:100%;margin-top:-15px;z-index:3}.brands .brands-tabs li .g-mask{opacity:.4;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=40)"}.brands .brands-tabs li .g-mask-on,.brands .brands-tabs li:hover .g-mask{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"}.brands .brands-tabs .hover-contain{position:relative;border-bottom:1px solid #dfdfdf}.brands .brands-tabs .hover-contain .hoverarr{background-color:#3d3d3d;position:absolute;bottom:0;z-index:7}.brands .brands-tabs .hover-contain .hoverarr i{width:0;height:0;position:absolute;left:50%;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #3d3d3d;top:-6px;margin-left:-3px}.brands .header-navs{margin-right:-15px}.brands .category-nav{border:2px solid #222;padding-left:16px;height:44px;line-height:44px;font-size:12px;font-weight:700;position:relative;z-index:9;background-color:#fff}.brands .category-nav span{display:inline-block;margin-right:15px}.brands .category-nav a{display:inline-block;padding:0 7px;text-align:center;color:#222;cursor:pointer}.brands .category-fix{position:fixed;top:0;z-index:9;margin-top:0!important}.brands .brands-list dl{position:relative;border-top:1px dotted #999;padding:20px 0}.brands .brands-list dt{position:absolute;width:130px;font-weight:700;font-size:16px;text-align:center;top:50%;margin-top:-9px}.brands .brands-list dd{margin-left:130px}.brands .brands-list dd li{float:left;display:block;width:170px;height:18px}.brands .brands-list dd a{color:#666;line-height:18px;font-size:12px;position:relative}.brands .brands-list dd a span{max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}.brands .brands-list dd a span:hover{text-decoration:underline}.brands .brands-list dd .brands-dialog{display:inline;position:relative}.brands .brands-list dd .hot{font-weight:700;color:#222}.brands .brands-list dd i{position:relative;top:-4px;color:#e01;font-size:14px}.brands .brands-category{width:1150px}.brands .brands-tabs{width:100%}.brands .brands-tabs li{margin-left:10px}.brands .brands-tabs li a{position:relative;width:222px;height:180px}.brands .brands-tabs li:first-child{margin-left:0}.brands .brands-tabs .hover-contain{height:30px}.brands .brands-tabs .hover-contain .hoverarr{height:5px;width:222px}.brands .brands-ad,.brands .brands-logo{margin:20px 0}.brands .brands-ad li{float:left;margin-left:10px}.brands .brands-ad li img{display:block;width:280px;height:280px}.brands .brands-ad li:first-child{margin-left:0}.brands .brands-ad li:first-child img{width:570px}.brands .brands-logo a{float:left;margin-left:26px}.brands .brands-logo a img{display:block;width:91px;height:38px}.brands .brands-logo a:first-child{margin-left:0}.brands .list-floor{width:1160px}.brands .brandfloor .g-list{margin-top:-32px}.brands .brandfloor li{margin-right:8px;margin-top:32px}.brands .brandfloor li a{width:378px;height:250px}.brands .singlegoods .g-list{margin-top:-10px}.brands .singlegoods li{margin-right:10px;margin-top:10px}.brands .singlegoods li a{width:280px;height:374px}.brands .singlegoods .singlegoods-title{position:absolute;left:0;bottom:0;height:50px;width:100%}.brands .singlegoods .singlegoods-title p{position:absolute;z-index:2;top:0;left:0;display:block;width:100%;height:100%;line-height:50px;font-size:18px;text-align:center;color:#fff}.brands .video .g-list{margin-top:-10px}.brands .video li{margin-right:8px;margin-top:10px}.brands .video li a{width:378px;height:242px}.brands .video .video-play{display:block;position:absolute;left:50%;top:50%;margin-left:-30px;margin-top:-28px;width:60px;height:56px;background-image:url(../assets/img/index/play.png?v155c47c0108)}.brands .video .video-title{position:absolute;left:0;bottom:0;height:32px;width:100%}.brands .video .video-title p{position:absolute;z-index:2;top:0;left:0;display:block;width:100%;height:100%;font-size:14px;line-height:32px;text-align:center;color:#fff}.brands .news{margin-bottom:40px}.brands .news .news-pic{position:relative;float:left;width:764px;height:436px}.brands .news .news-pic .slide-container{height:100%}.brands .news .news-pic .slide-container li a{height:100%;width:764px}.brands .news .news-pic .slide-container .slide-wrapper{height:100%}.brands .news .news-pic .slide-container .slide-switch{display:none}.brands .news .news-pic .slide-container .slide-switch .prev{left:0;margin-left:0}.brands .news .news-pic .slide-container .slide-switch .next{right:0;margin-right:0}.brands .news .news-pic .slide-container .slide-switch.show{display:block}.brands .news .news-pic .slide-tips{position:absolute;left:0;bottom:0;height:30px;width:100%;background:#000;opacity:.8;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"}.brands .news .news-pic .slide-tips p{position:absolute;left:18px;z-index:2;height:30px;font-size:14px;line-height:30px;color:#fff}.brands .news .news-pic .slide-pagination{right:0;left:auto;bottom:0}.brands .news .news-pic .slide-pagination .slide-shade{opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";background:none}.brands .news .news-pic .slide-pagination span{margin-top:3px}.brands .news .news-txt{padding:20px 16px;float:right;border:1px solid #000;overflow:hidden}.brands .news .news-txt ul{height:100%}.brands .news .news-txt li{position:relative;display:block;margin-bottom:10px;margin-left:20px}.brands .news .news-txt a{font-size:14px;line-height:27px;cursor:pointer;color:#010101;display:block}.brands .news .news-txt a:hover{color:#fff;background:#000;padding-left:12px;transition:padding .4s}.brands .news .news-txt i{position:absolute;top:0;left:-26px;font-size:22px}.brands .news .news-txt{width:342px;height:394px}.brands .ads{margin:40px 0}.brands .ads li{margin-right:10px;margin-bottom:10px}.brands .ads li a{width:280px}.brands .ads li a img{height:160px}.brands .ads li .name{font-size:14px}.brands .ads li .des{font-size:12px}.brands .brands-items{margin:25px auto}.brands .brands-items .brands-item{float:left;padding:15px 0;width:50%}.brands .brands-items a.brands-pic{float:left;width:280px;height:136px;display:block}.brands .brands-items a.brands-pic img{width:100%;height:100%}.brands .brands-items .brand-info{float:right;padding:0 20px;width:255px;color:#000}.brands .brands-items .brand-info h3{width:100%;font-size:20px;line-height:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brands .brands-items .brand-info .brand-desc{padding:12px 0;height:92px;font-size:14px;line-height:22px;overflow:hidden}.brands .pagination{margin:40px 0 80px;text-align:center}.brands .pagination a{height:24px;padding:0 9px;line-height:24px;display:inline-block;text-align:center;margin-right:8px;color:#222;font-size:12px}.brands .pagination a i{position:relative;top:-1px;font-size:10px;transform:scale(.8)}.brands .pagination a.cur{background:#222;color:#fff}.min-screen .brands .header-navs{margin-right:-10px}.min-screen .brands .sit-nav{padding-top:10px;font-size:12px}.min-screen .brands .sit-nav .sep{margin:0 6px}.min-screen .brands .brands-category{width:990px}.min-screen .brands .brands-tabs li a{width:190px;height:154px}.min-screen .brands .brands-tabs .hover-contain{height:25px}.min-screen .brands .brands-tabs .hover-contain .hoverarr{height:4px;width:190px}.min-screen .brands .brands-ad li img{width:240px;height:240px}.min-screen .brands .brands-ad li:first-child img{width:490px}.min-screen .brands .brands-logo a{margin-left:10px}.min-screen .brands .brands-logo a img{width:90px;height:37px}.min-screen .brands .brands-logo a:first-child{margin-left:0}.min-screen .brands .list-floor{width:1000px}.min-screen .brands .brandfloor .g-list{margin-top:-26px}.min-screen .brands .brandfloor li{margin-right:9px;margin-top:26px}.min-screen .brands .brandfloor li a{width:324px;height:214px}.min-screen .brands .singlegoods .g-list{margin-top:-10px}.min-screen .brands .singlegoods li{margin-right:10px;margin-top:10px}.min-screen .brands .singlegoods li a{width:240px;height:324px}.min-screen .brands .singlegoods .singlegoods-title{position:absolute;left:0;bottom:0;height:50px;width:100%}.min-screen .brands .singlegoods .singlegoods-title p{position:absolute;z-index:2;top:0;left:0;display:block;width:100%;height:100%;line-height:50px;font-size:18px;text-align:center;color:#fff}.min-screen .brands .video .g-list{margin-top:-10px}.min-screen .brands .video li{margin-right:9px;margin-top:10px}.min-screen .brands .video li a{width:324px;height:206px}.min-screen .brands .video .video-play{display:block;position:absolute;left:50%;top:50%;margin-left:-30px;margin-top:-28px;width:60px;height:56px;background-image:url(../assets/img/index/play.png?v155c47c0108)}.min-screen .brands .video .video-title{position:absolute;left:0;bottom:0;height:30px;width:100%}.min-screen .brands .video .video-title p{position:absolute;z-index:2;top:0;left:0;display:block;width:100%;height:100%;font-size:14px;line-height:30px;text-align:center;color:#fff}.min-screen .brands .news .news-pic{width:660px;height:376px}.min-screen .brands .news .news-pic .slide-container,.min-screen .brands .news .news-pic .slide-container img{height:376px}.min-screen .brands .news .news-txt{width:284px;height:334px}.min-screen .brands .news .news-txt li{margin-bottom:13px}.min-screen .brands .ads{margin-bottom:30px}.min-screen .brands .ads li{margin-right:10px;margin-bottom:10px}.min-screen .brands .ads li a{width:240px}.min-screen .brands .ads li a img{height:138px}.min-screen .brands .ads li .name{font-size:14px}.min-screen .brands .ads li .des{font-size:12px}.min-screen .brands .brands-items a.brands-pic{width:240px;height:116px}.min-screen .brands .brands-items .brand-info{width:212px}.min-screen .brands .brands-items .brand-info .brand-desc{height:72px}.brands-layer{position:absolute;z-index:9;top:-83px;left:15px;width:325px;height:287px;background:url(../assets/img/index/brands-layer.png?v155c47c0108) no-repeat;font-weight:400}.brands-layer .layer-content{padding:20px 20px 20px 35px}.brands-layer .layer-content .title{font-size:24px;line-height:24px;border-bottom:1px solid #ccc;padding-bottom:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brands-layer .layer-content .desc{margin:5px 0;height:72px;overflow:hidden}.brands-layer .layer-content .desc img{width:80px;height:50px;margin:3px 5px 0 0;float:left}.brands-layer .layer-content .desc .right{width:180px;float:right;font-size:12px;line-height:150%;max-height:80px}.brands-layer .layer-content .featured{font-size:16px;margin-right:-15px}.brands-layer .layer-content .featured img{height:100px;width:80px;float:left;margin:15px 15px 0 0}.brands-layer-right{background:url(../assets/img/index/brands-layer.png?v155c47c0108) no-repeat 0 -287px;left:-325px;top:-83px}.brands-layer-right .layer-content{padding:20px 35px 20px 20px}.coupon-page{width:1150px;margin:10px auto 0}.coupon-page .slide-container{position:relative}.coupon-page .slide-wrapper{position:relative;height:450px;overflow:hidden}.coupon-page .slide-wrapper ul{position:relative;height:100%}.coupon-page .slide-wrapper li{display:none;position:absolute;top:0;right:0;width:100%;height:100%}.coupon-page .slide-wrapper li a{display:block;height:100%;width:1150px;margin:0 auto}.coupon-page .slide-wrapper li img{width:100%;height:100%}.coupon-page .slide-switch,.coupon-page .slide-wrapper:hover .slide-switch.show,.coupon-page .slide-wrapper li:first-child{display:block}.coupon-page .slide-switch a{position:absolute;top:50%;margin:-30px 0 0;width:60px;height:60px;line-height:56px;text-align:center;z-index:2;background:#fff;opacity:.55;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=55)"}.coupon-page .slide-switch a .iconfont{font-size:32px;color:#59585a}.coupon-page .slide-switch a.prev{left:50%;margin-left:-575px}.coupon-page .slide-switch a.next{right:50%;margin-right:-575px}.coupon-page .slide-switch a:hover{opacity:.9;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=90)"}.coupon-page .title{width:300px;margin:80px auto 40px;text-align:center;border:1px solid #000;height:31px;line-height:31px;position:relative}.coupon-page .title span{margin:5px}.coupon-page .coupon{display:inline-block;position:relative;width:282px;height:258px;margin-right:2px}.coupon-page .coupon img{width:100%;height:100%}.coupon-page .coupon .coupon-mask{width:100%;height:259px;background-color:rgba(0,0,0,.6);position:absolute;top:0;left:0;right:0;z-index:8}.coupon-page .coupon .info{width:78px;height:78px;position:absolute;right:2px;bottom:-1px}.coupon-page .coupon .info>div{width:100%;height:38px;font-size:16px;color:#fff;text-align:center;position:absolute;top:50%;margin-top:-19px}.coupon-page .coupon .info p{margin-bottom:5px}.coupon-page .coupon .info .guang{width:50px;height:18px;line-height:18px;font-size:12px;background-color:#fff;color:#d0021b;margin:0 auto}.me-page{width:990px;margin:0 auto 20px}.me-page .home-path{height:40px;line-height:40px;color:#ccc;font-size:12px}.me-page .home-path .path-icon{float:left;display:block;background-image:url(../assets/img/sprite.home.png?v155c47c08d8);background-position:-22px -24px;width:15px;height:15px;margin-right:10px;margin-top:11px}.me-page .home-path a,.me-page .home-path span{color:#666}.me-page .home-path span{font-weight:700}.me-page .block{border:1px solid #dedede;border-radius:2px}.me-page .me-main .block{margin-bottom:10px}.me-page .title{height:40px;line-height:40px;padding:0 8px;background-color:#e3e3e3;background-position:10px 12px;background-repeat:no-repeat}.me-page .user-thumb{text-align:center;padding:20px 0;background:#f8f8f8}.me-page .user-thumb .thumb-bg{width:100px;height:100px;padding:5px 7px 7px 5px;margin:0 auto;background:url(../assets/img/home/thumb-bg.png?v155c47c0108)}.me-page .user-thumb .default-user-thumb,.me-page .user-thumb img{width:100px;height:100px}.me-page .user-thumb .default-user-thumb{background:url(../assets/img/home/default-thumb.png?v155c47c0108) no-repeat;background-size:100%}.me-page .home-navigation{float:left;width:180px;margin-right:8px}.me-page .home-navigation .ucenter{background-image:url(../assets/img/home/ucenter.png?v155c47c0108)}.me-page .nav-group .row{height:38px;line-height:38px;border-top:1px solid #e2e2e2;padding-left:35px;color:#666;background:#f8f8f8;font-size:12px}.me-page .nav-group .row a{display:inline-block;color:#666}.me-page .nav-group .row span{color:#e0012b;font-weight:700}.me-page .nav-group .row.active{background:#636363}.me-page .nav-group .row.active a{color:#fff}.me-page .nav-group .row.first{border-top:none}.me-page .nav-group li:hover{background:#fff;color:#000}.me-page .nav-group .nav-title{font-size:14px;border-top:1px solid #ccc;border-bottom:1px solid #ccc;color:#333;background:#e6e6e6;padding-left:0}.me-page .nav-group .nav-title .title-icon{float:left;display:block;width:15px;height:15px;background-image:url(../assets/img/sprite.home.png?v155c47c08d8);background-position:-48px 0;margin:10px 10px 0}.me-page .me-main{float:left;width:800px}.me-page .me-pager{width:778px;height:22px;line-height:22px;background:#f3f3f3;border-top:1px solid #e3e3e3;padding:10px;font-size:12px;color:#666}.me-page .me-pager .check-all{margin:0;vertical-align:text-top;margin-right:5px}.me-page .me-pager .del-checked{cursor:pointer;margin-left:5px}.me-page .me-pager .del-checked:hover{color:#468fa2;text-decoration:underline}.me-page .me-pager a{border:1px solid #cecece;padding:0 6px;height:18px;line-height:18px;border-radius:2px;margin-right:4px;background-color:#fff}.me-page .me-pager a.cur,.me-page .me-pager a:hover{background-color:#222;color:#fff}.me-page .me-pager .pager-html{display:inline}.me-page .help-us{height:20px;line-height:20px;font-size:12px}.me-page .help-us a{color:#468fa2}.me-page .help-us .help-us-icon{display:inline-block;width:12px;height:12px;margin-right:8px;margin-top:-3px;vertical-align:middle;background-image:url(../assets/img/sprite.home.png?v155c47c08d8);background-position:-48px -17px}.me-page .empty-tip{padding:200px 0;text-align:center;overflow:hidden}.me-page .tabs{height:25px;margin:10px;background:url(../assets/img/home/tab.png?v155c47c0108) repeat-x 0 -25px;font-size:12px;line-height:25px;padding-left:10px}.me-page .tabs li{display:block;float:left;width:88px;height:25px;text-align:center;background:url(../assets/img/home/tab.png?v155c47c0108) no-repeat -92px 0;margin-right:3px;color:#333}.me-page .tabs li.active{background-position:0 0;font-weight:700}.me-page .tabs a{display:block;width:100%;height:100%}.me-page .table-header{height:30px;line-height:30px;background:#efefef;border:1px solid #e6e6e6;padding:0 10px}.me-page .table-header>span{display:block;float:left;text-align:center}.me-page .advance-buy-tag,.me-page .freebie-tag,.me-page .presall-tag,.me-page .virtual-good-tag{display:block;position:absolute;bottom:0;left:0;right:0;height:15px;line-height:16px;text-align:center;color:#fff}.me-page .freebie-tag{background:#88be51}.me-page .advance-buy-tag{background:#fc1264}.me-page .presall-tag,.me-page .virtual-good-tag{background:#333}.default-me-page .message-tip{box-sizing:border-box;width:800px;height:40px;line-height:40px;padding:0 10px;margin-bottom:10px;background:#faf6d9;border:1px solid #f5e8c5;border-radius:2px;font-weight:700;font-size:12px}.default-me-page .message-tip a{color:#468fa2;font-weight:400}.default-me-page .message-tip b{color:#e8044f;margin-right:5px}.default-me-page .message-tip .close{float:right;cursor:pointer;font-weight:400}.default-me-page .more{display:block;float:right;height:21px;line-height:22px;width:63px;margin-top:8px;padding-right:8px;font-size:12px;color:#fdfdfd;text-align:center;border-radius:2px;background:url(../assets/img/home/btn-more.png?v155c47c0108) no-repeat}.default-me-page .brands ul{padding:10px 0 10px 10px}.default-me-page .brands ul li{float:left;width:122px;height:103px;border:1px solid #f6f6f6;margin-right:7px;overflow:hidden}.default-me-page .brands ul img{width:80px;height:50px;display:block;vertical-align:middle;margin:15px auto}.default-me-page .brands ul .brand-name{display:block;width:114px;height:18px;line-height:18px;color:#333;background:#f4f4f4;font-size:12px;text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin:0 auto}.default-me-page .new-arrival{overflow:hidden}.default-me-page .new-arrival .na-pager-wrap{float:right}.default-me-page .new-arrival .na-pager-wrap .next,.default-me-page .new-arrival .na-pager-wrap .pre{display:inline-block;height:22px;line-height:22px;margin-top:8px;padding:0 6px;font-size:12px;color:#fff;background:#646464;text-align:center;border-radius:2px;cursor:pointer}.default-me-page .new-arrival .na-pager-wrap .next .iconfont,.default-me-page .new-arrival .na-pager-wrap .pre .iconfont{font-size:12px}.default-me-page .new-arrival .na-pager-wrap .no-visible{visibility:hidden}.default-me-page .new-arrival ul{width:800px;height:218px;overflow:hidden}.default-me-page .new-arrival li{float:left;width:101px;height:160px;padding:29px;border-right:1px solid #e3e3e3;text-align:center;font-size:12px;overflow:hidden}.default-me-page .new-arrival li .thumb{width:100px;height:100px}.default-me-page .new-arrival li .name{margin:10px 0;text-decoration:underline;color:#666;line-height:14px}.default-me-page .new-arrival li .price{color:#000}.default-me-page .banner{display:block;width:800px;border:none}.default-me-page .latest-orders .title{background-image:url(../assets/img/home/latest-orders.png?v155c47c0108)}.default-me-page .brands .title{background-image:url(../assets/img/home/brands.png?v155c47c0108)}.default-me-page .new-arrival .title{background-image:url(../assets/img/home/new-arrival.png?v155c47c0108)}.me-orders{font-size:12px}.me-orders .right{float:right}.me-orders .order-table-header .info{width:330px;text-align:left;padding-left:10px}.me-orders .order-table-header .price{width:75px}.me-orders .order-table-header .count{width:60px}.me-orders .order-table-header .operation,.me-orders .order-table-header .order-status,.me-orders .order-table-header .pay{width:100px}.me-orders .order-title{height:28px;line-height:28px;background:#efefef;padding:0 5px;border-bottom:1px solid #e6e6e6}.me-orders .order-title .order-time{margin-left:25px}.me-orders .order-title .order-delete{margin-right:15px;color:#999}.me-orders .order-title .order-delete:hover{text-decoration:underline}.me-orders .order{margin:10px;border:1px solid #e6e6e6;border-radius:2px}.me-orders .order .order-wrap{position:relative;display:table;text-align:center}.me-orders .order .order-wrap>*{display:table-cell;vertical-align:middle}.me-orders .order li{display:table;border-top:1px solid #e6e6e6}.me-orders .order li>div{display:table-cell;color:#666;text-align:center;vertical-align:middle}.me-orders .order li:first-child{border-top:none}.me-orders .order .thumb-wrap{position:relative}.me-orders .order .thumb{width:60px;height:60px}.me-orders .order .info{position:relative;width:320px;text-align:left;padding:10px 0 10px 10px}.me-orders .order .info>*{float:left}.me-orders .order .info .color-size{color:#999}.me-orders .order .info .arrival-date{color:#e8044f;margin-left:2px}.me-orders .order .text-info{position:absolute;padding:5px;bottom:10px;left:72px}.me-orders .order .text-info>*{display:block;line-height:18px}.me-orders .order .name{color:#468fa2;max-width:245px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.me-orders .order .had-refund{color:#e8044f}.me-orders .order .price{width:80px;padding:5px;font-weight:700}.me-orders .order .price .free-icon{display:block;width:37px;height:18px;line-height:18px;font-size:12px;text-align:center;color:#80bb45;background:#e7fbc0;margin:5px auto;border:1px solid #80bb45;border-radius:3px}.me-orders .order .price.free-price em{text-decoration:line-through}.me-orders .order .count{width:50px}.me-orders .order .operation,.me-orders .order .order-status,.me-orders .order .pay{width:90px;border-left:1px solid #e6e6e6;padding:5px}.me-orders .order .pay{font-weight:700}.me-orders .order .pay-tip{font-weight:400;display:block;line-height:18px;color:#999}.me-orders .order .return-order{display:inline-block;padding:3px 10px;background:#ff7c48;border-radius:9px;color:#fff;text-align:center}.me-orders .order .op-item{display:block;color:#468fa2;line-height:18px}.me-orders .order .op-item.op-dis{color:#999}.me-orders .order .no-pay,.me-orders .order .paid{color:#e8044f}.me-orders .order .order-status span{line-height:18px;color:#999}.me-orders .order .order-status .cancel{color:#e8044f}.me-orders .order .check-logistics{display:block;cursor:pointer;color:#468fa2}.me-orders .order .cancel{color:#e8044f}.me-orders .order .logistics{position:absolute;padding:20px 12px;color:#ff8341;border:1px solid #c9c9c9;background:#fff;right:185px;margin-top:-40px;z-index:11}.me-orders .order .logistics li{line-height:18px;white-space:nowrap}.me-orders .order .logistics .close-logistics{position:absolute;top:0;right:0;color:#c9c9c9;cursor:pointer}.me-orders .order .logistics .right-triangle{position:absolute;width:0;height:0;right:-6px;top:24px}.me-orders .order .logistics .right-triangle.top{margin-top:1px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:6px solid #fff}.me-orders .order .logistics .right-triangle.bottom{margin-right:-1px;border-top:6px solid transparent;border-bottom:6px solid transparent;border-left:7px solid #c9c9c9}.me-orders .order .operation>*{cursor:pointer}.me-orders .order .operation .pay-now{display:block;color:#fff;background:#de034a;height:20px;line-height:20px;text-align:center;margin:0 auto;border-radius:4px;width:68px}.me-history-orders .order-table-header .info,.me-history-orders .order .info{width:520px}.me-history-orders .order .info{text-align:center}.me-history-orders .order-table-header .order-sum,.me-history-orders .order .order-sum{width:90px;text-align:left}.me-history-orders .order li{border:none}.cancel-dialog{width:600px;background:#fff;padding:20px 30px 35px}.cancel-dialog header{font-size:18px;padding-bottom:20px;border-bottom:1px solid #e8e8e8;color:#000;text-align:left}.cancel-dialog .close{top:15px;right:30px}.cancel-dialog .cancel-reason{text-align:left}.cancel-dialog .cancel-reason li{float:left;width:50%;height:28px;line-height:28px;font-size:14px;white-space:nowrap}.cancel-dialog .cancel-reason label{padding-left:3px}.cancel-dialog .cancel-reason input[type=text]{margin-left:10px;height:24px;text-indent:5px}.cancel-dialog .cancel-tip{margin-top:20px;color:#d60248;font-size:14px;padding-left:17px;text-align:left}.cancel-dialog .tip{margin:20px 0;font-size:12px;text-align:left;color:#db3d50}.cancel-dialog .reminder{margin:20px 0 10px}.cancel-dialog .info-prompt ul{margin-top:-10px}.cancel-dialog .info-prompt li{margin:10px 0;font-size:14px;line-height:16px;text-align:left}.cancel-dialog .info-prompt i{color:#d70400;font-family:SimSun;font-size:16px;margin-right:13px;vertical-align:middle;margin-left:5px}.delete-dialog{padding:0 0 20px;border:1px solid #000;background:#fff}.delete-dialog .header{padding:0 10px;height:32px;background:#444;line-height:32px;color:#fff;text-align:left}.delete-dialog .close{color:#fff}.delete-dialog .close .iconfont{font-size:20px;font-weight:700}.delete-dialog .order-delete-confirm{width:400px;line-height:1.5}.delete-dialog .body{padding:20px;margin-top:30px}.delete-dialog .confirm-tip{font-size:18px;word-wrap:break-word}.delete-dialog .confirm-tip i{display:inline-block;width:30px;height:30px;margin-right:12px;background:url(../assets/img/home/doubt.png?v155c47c0108) no-repeat;vertical-align:middle}.delete-dialog .delete-tip{padding-left:20px;margin:15px 0;font-size:13px;word-wrap:break-word}.delete-dialog .delete-sure{background:#efefef}.delete-dialog .delete-no{margin-left:60px;border-color:#cdcdcd}.message-dialog{width:350px;background:#fff;padding:20px 30px 35px}.message-dialog .message-title{margin-top:40px;margin-bottom:27px;font-size:24px;font-weight:700}.message-dialog .message-summary{width:250px;margin:0 auto 22px;font-size:14px;word-wrap:break-word;line-height:20px}.message-dialog .btns{padding:15px 30px 0;text-align:center}.message-dialog .btns .btn{height:35px;font-size:15px;line-height:35px}.message-dialog .btns .message-sure{width:130px;color:#fff;background:#000;border:none}.message-dialog .close{top:15px;right:15px}.message-dialog .close .iconfont{font-size:30px}.edit-order-dialog{width:600px;background:#fff;padding:20px 30px 35px}.edit-order-dialog header{font-size:18px;padding-bottom:20px;border-bottom:1px solid #e8e8e8;color:#000;text-align:left}.edit-order-dialog .close{top:15px;right:30px}.edit-order-dialog .close .iconfont{font-size:30px}.edit-order-dialog .edit-order-info{text-align:left}.edit-order-dialog .edit-order-info li{height:26px;margin:20px 0;line-height:26px;font-size:14px}.edit-order-dialog .edit-order-info .form-required{color:#d70400;font-family:SimSun;font-size:16px;margin-right:10px;vertical-align:middle}.edit-order-dialog .edit-order-info label{display:inline-block;width:90px;text-align:right}.edit-order-dialog .edit-order-info .inp{width:188px;height:18px;line-height:18px;padding:3px 0;border:1px solid #e8e8e8;margin-left:10px;text-indent:5px;box-sizing:content-box}.edit-order-dialog .edit-order-info .w271{width:271px}.edit-order-dialog .edit-order-info .w40{width:40px}.edit-order-dialog .edit-order-info .inp[name=tel]{margin-left:0}.edit-order-dialog .ml10{margin-left:10px}.edit-order-dialog select{height:25px;line-height:25px;width:100px;padding:0;border:1px solid #ccc}.edit-order-dialog .error{display:none;margin-left:20px;color:#db3d50;font-size:12px}.edit-order-dialog .error .icon-error{margin-right:8px;vertical-align:text-bottom}.edit-order-dialog .btns{padding:15px 30px 0;text-align:center}.edit-order-dialog .btns .btn{height:35px;font-size:15px;line-height:35px}.edit-order-dialog .btns .edit-sure{width:130px;color:#fff;background:#000;border:none}.edit-order-dialog .btns .edit-no{margin-left:30px;background:#fff;color:#000;border-color:#000;width:126px}.edit-order-dialog .tip{margin:20px 0;font-size:12px;text-align:left;color:#db3d50}.order-icon{display:inline-block;vertical-align:middle;margin-right:10px;background:url(../assets/img/home/order-sprite.png?v155c47c0108)}.icon-success{background-position:0 0}.icon-success,.icon-waiting{width:30px;height:30px;vertical-align:-6px}.icon-waiting{background-position:-32px 0}.icon-arrow{width:11px;height:7px;background-position:-36px -33px}.icon-error{width:15px;height:15px;background-position:0 -33px}.icon-recycle{width:15px;height:17px;background-position:-18px -33px}.orders-me-page .orders .title{padding-left:130px;line-height:40px;background-image:url(../assets/img/home/orders.png?v155c47c0108);font-size:12px;font-weight:700}.orders-me-page .order-table-header{padding:0;margin:0 10px;border:1px solid #e6e6e6}.order-detail-page{font-size:12px}.order-detail-page .order-detail>.title{background-image:url(../assets/img/home/order-detail.png?v155c47c0108)}.order-detail-page .status{margin:10px 0;padding:10px;background:#efefef;border-bottom:1px solid #e6e6e6}.order-detail-page .status p{margin:5px 0;line-height:18px}.order-detail-page .status .cur-status{color:#e8044f}.order-detail-page .status .complete-tip{color:#999}.order-detail-page .status .cancel-order{margin-right:20px}.order-detail-page .status .cancel-order,.order-detail-page .status .edit-order{float:right;background:#ebebeb;border:1px solid #c1c1c1;color:#000}.order-detail-page .status .edit-order-active{background:#444;border:1px solid #444;color:#fff}.order-detail-page .status .go-pay{margin-left:60px}.order-detail-page .detail-info{padding:10px}.order-detail-page .sub-title{height:21px;line-height:21px;border:1px solid #e6e6e6;color:#333;background:#efefef}.order-detail-page .sub-title .icon{display:inline-block;height:11px;width:11px;background-image:url(../assets/img/home/complaint-icon.png?v155c47c0108);margin:5px 5px 0}.order-detail-page .content{padding:10px 20px 20px}.order-detail-page .content p{line-height:18px}.order-detail-page .order-progress{padding-top:20px}.order-detail-page .order-progress li{position:absolute;width:150px;line-height:15px;top:20px}.order-detail-page .order-progress .cur{color:#e9034e;font-weight:700}.order-detail-page .order-progress .date{display:block;color:#999;padding-left:12px}.order-detail-page .progress-box{position:relative;width:552px;height:70px;margin:0 auto}.order-detail-page .progress-box .pg-0{left:-20px}.order-detail-page .progress-box .pg-1{left:145px}.order-detail-page .progress-box .pg-2{left:330px}.order-detail-page .progress-box .pg-3{left:515px}.order-detail-page .virtual-detail .pg-1{left:245px}.order-detail-page .virtual-detail .pg-2{left:515px}.order-detail-page .virtual-detail .outter-progress{background:url(../assets/img/home/virtual-order-progress.png?v155c47c0108) no-repeat 0 0}.order-detail-page .virtual-detail .inner-progress{background:url(../assets/img/home/virtual-order-progress.png?v155c47c0108) no-repeat 0 -12px}.order-detail-page .outter-progress{width:552px;height:12px;background:url(../assets/img/home/order-progress.png?v155c47c0108) no-repeat 0 0}.order-detail-page .inner-progress{height:12px;background:url(../assets/img/home/order-progress.png?v155c47c0108) no-repeat 0 -12px}.order-detail-page .handle-time{width:300px}.order-detail-page .recive-place{width:200px}.order-detail-page .logistics-info{width:800px}.order-detail-page .trace-order td,.order-detail-page .trace-order th{line-height:18px}.order-detail-page .differentOrder{position:relative;width:100%;margin-top:10px}.order-detail-page .differentOrder .warn{text-align:center;background:#fefbd5;font:initial;height:40px;line-height:40px;font-size:16px}.order-detail-page .differentOrder .warn .red{color:red}.order-detail-page .differentOrder .warn .why{background-image:url(../assets/img/sprite.order.png?v155c47c08d8);background-position:-247px -46px;width:26px;height:20px;display:inline-block;vertical-align:middle}.order-detail-page .differentOrder .warn .why:hover{cursor:pointer}.order-detail-page .differentOrder .differentBag:before{content:"";position:absolute;width:0;height:0;border-bottom:10px solid #000;border-left:10px solid transparent;border-right:10px solid transparent;top:-10px;right:113px}.order-detail-page .differentOrder .differentBag{display:none;position:absolute;right:-10px;top:40px;width:510px;padding:0 50px;background:#fff;z-index:1;border:1px solid #000;font-size:14px}.order-detail-page .differentOrder .bag{position:relative;border-bottom:1px solid #e0e0e0;margin-top:10px;padding:20px 0}.order-detail-page .differentOrder .bag h3{height:30px;line-height:30px;font-weight:700;margin-left:15px}.order-detail-page .differentOrder .bag .pre{background-position:0 -142px;left:-30px}.order-detail-page .differentOrder .bag .next,.order-detail-page .differentOrder .bag .pre{position:absolute;background-image:url(../assets/img/sprite.order.png?v155c47c08d8);width:30px;height:50px;top:70px;display:none;cursor:pointer}.order-detail-page .differentOrder .bag .next{background-position:-32px -142px;right:-30px}.order-detail-page .differentOrder .bag p{color:#767676;margin-left:15px}.order-detail-page .differentOrder .bagDetil{position:relative;height:90px;width:510px;overflow:hidden;margin-bottom:20px}.order-detail-page .differentOrder .bagDetil ul{list-style:none;position:absolute;left:0;clear:both;height:90px}.order-detail-page .differentOrder .bagDetil ul li{float:left;width:102px;height:90px;line-height:90px;text-align:center;position:relative}.order-detail-page .differentOrder .bagDetil ul li img{width:90px;height:90px}.order-detail-page .differentOrder .bagDetil ul li p{position:absolute;bottom:0;background:#9c3;width:90px;height:1rem;line-height:1rem;color:#fff;margin-left:7px}.order-detail-page .differentOrder .bagDetil ul li a,.order-detail-page .differentOrder .bagDetil ul li a:hover{cursor:default}.order-detail-page .good-list table{border-collapse:collapse}.order-detail-page .good-list thead{height:25px;line-height:25px;background:#000;padding:2px 5px;color:#fff}.order-detail-page .good-list td,.order-detail-page .good-list th{padding:5px;text-align:center;border-right:1px solid #e6e6e6;border-bottom:1px solid #e6e6e6}.order-detail-page .good-list th{border-color:#000}.order-detail-page .good-list tr td:last-child,.order-detail-page .good-list tr th:last-child{border-right:none}.order-detail-page .good-list .product-info{width:314px}.order-detail-page .good-list .good-price,.order-detail-page .good-list .num,.order-detail-page .good-list .sum{width:91px}.order-detail-page .good-list .yoho-coin{width:100px}.order-detail-page .good-list .yoho-coin a{display:inline-block;width:12px;height:12px;background-image:url(../assets/img/sprite.home.png?v155c47c08d8);background-position:0 -44px;vertical-align:text-top}.order-detail-page .good-list .thumb-link{float:left;position:relative;margin-left:5px;margin-right:10px}.order-detail-page .good-list .thumb{display:block;width:60px;height:60px}.order-detail-page .good-list .name-color-size{float:left;color:#999;padding-top:12px;text-align:left}.order-detail-page .good-list .name{display:block;color:#468fa2;line-height:18px;text-align:left;max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.order-detail-page .order-balance{text-align:right;border-bottom:1px solid #e6e6e6;padding:10px 0}.order-detail-page .order-balance .back-coin{height:30px}.order-detail-page .order-balance .yoho-coin{width:14px;height:14px;display:inline-block;background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:-321px -225px;vertical-align:middle;margin-top:-2px;margin-right:4px}.order-detail-page .order-balance em{font-weight:700}.order-detail-page .order-balance .payment{color:#e8044f}.order-detail-page .oo-btn{display:inline-block;height:30px;width:92px;line-height:30px;text-align:center;border-radius:3px;color:#fff;cursor:pointer}.order-detail-page .go-pay{background:#d9044a;border:1px solid #c54b73}.order-detail-page .order-operation{text-align:right;padding:20px 10px}.order-detail-page .order-operation .oo-icon{display:inline-block;height:22px;width:22px;vertical-align:text-bottom}.order-detail-page .order-operation .success-icon{background-image:url(../assets/img/sprite.home.png?v155c47c08d8);background-position:0 0}.order-detail-page .order-operation .cancel-icon{background-image:url(../assets/img/sprite.home.png?v155c47c08d8);background-position:-24px 0}.order-detail-page .order-operation .confirm-received{display:block;float:right;margin-top:5px;background:#d9044a;border:1px solid #c54b73}.order-detail-page .order-operation .cancel-order{background:#ebebeb;border:1px solid #c1c1c1;color:#000}.order-detail-page .freebie-tag{background:#9c3}.order-detail-page .advance-buy-tag{background:#fc1264}.order-detail-page .virtual-good-tag{background:red}.order-detail-page .presall-tag{background:blue}.order-ticket-page{font-size:12px}.order-ticket-page .order-ticket .title{background-image:url(../assets/img/home/orders.png?v155c47c0108)}.order-ticket-page .ticket-info{padding:20px 10px}.order-ticket-page .ticket-info .ticket-tag{display:inline-block;width:72px;height:19px;line-height:19px;text-align:center;font-size:12px;color:#fff;background:#000;border-radius:3px;margin-right:5px}.order-ticket-page .ticket-info .order-num{margin-left:10px}.order-ticket-page .ticket-info .return-to-orders{float:right;color:#468fa2}.order-ticket-page .qr-codes{width:768px;padding:10px 0 10px 10px;border:1px solid #e7e7e7;background:#fff;margin:0 auto}.order-ticket-page .qr-codes li{float:left;width:232px;height:260px;margin:10px;border:1px solid #e7e7e7;word-break:break-all;overflow:hidden;text-align:center}.order-ticket-page .qr-codes .qr{width:230px;height:230px}.order-ticket-page .tickets-tip{width:758px;padding:10px;border:1px solid #e7e7e7;background:#fff;margin:20px auto}.order-ticket-page .tickets-tip p{padding-left:20px;padding-bottom:10px;line-height:20px;background:url(../assets/img/home/qr-tip.png?v155c47c0108) no-repeat -27px 5px}.order-ticket-page .tickets-tip .warn{background-position:0 -23px}.red-envelopes-page{font-size:12px}.red-envelopes-page .red-envelopes>.title{font-size:14px;font-weight:700}.red-envelopes-page .re-header{height:25px;line-height:25px;width:100%;text-align:center;border-bottom:1px solid #e6e6e6;background:#efefef}.red-envelopes-page .re-header span{display:inline-block;width:33%}.red-envelopes-page .money{color:#d52c29;font-family:微软雅黑;font-size:20px;font-weight:700}.red-envelopes-page .re-icon{display:inline-block;width:20px;height:18px;background-image:url(../assets/img/sprite.home.png?v155c47c08d8);background-position:0 -24px}.red-envelopes-page .red-envelopes-list{display:table;width:100%}.red-envelopes-page .red-envelopes-list li{display:table-row;color:#666;border-top:1px solid #e6e6e6}.red-envelopes-page .red-envelopes-list li>*{display:table-cell;width:33%;padding:10px;text-align:center;vertical-align:middle;border-left:1px solid #e6e6e6}.red-envelopes-page .red-envelopes-list li>:first-child{border-left:none}.red-envelopes-page .red-envelopes-list .use-remark{text-align:left;line-height:18px}.me-coupons-page{font-size:12px}.me-coupons-page .coupons>.title{font-size:14px;font-weight:700}.me-coupons-page .coupons-header{width:776px;height:25px;line-height:25px;text-align:center;border:1px solid #e6e6e6;background:#efefef;margin:0 auto}.me-coupons-page .coupons-header span{display:block;float:left}.me-coupons-page .coupon{display:table;border:1px solid #e6e6e6;width:778px;margin:10px auto;text-align:center;color:#666}.me-coupons-page .coupon>*{display:table-cell;vertical-align:middle;border-left:1px solid #e6e6e6;padding:5px;line-height:18px}.me-coupons-page .coupon .coupons-img{border-left:none}.me-coupons-page .coupon .end-soon{color:#e8044f}.me-coupons-page .un-use-coupons .coupons-img{width:20%}.me-coupons-page .un-use-coupons .value{width:18%}.me-coupons-page .un-use-coupons .term-of-validity{width:22%}.me-coupons-page .un-use-coupons .term-of-validity span{display:none}.me-coupons-page .un-use-coupons .use-remark{width:24%}.me-coupons-page .un-use-coupons .status{width:16%}.me-coupons-page .un-use-coupons .end-soon span{display:inline;padding:3px 10px;color:#fff;background:#e8044f}.me-coupons-page .used-coupons .coupon>*,.me-coupons-page .used-coupons .coupons-header>span{width:16.66%}.me-coupons-page .no-valid-coupons .coupon>*,.me-coupons-page .no-valid-coupons .coupons-header>span{width:25%}.me-currency-page{font-size:12px}.me-currency-page .currencies>.title{background-image:url(../assets/img/home/currency.png?v155c47c0108)}.me-currency-page .my-currency{height:58px;line-height:58px;font-weight:700;border-bottom:1px solid #e8e8e8;font-size:18px;color:#333;margin:0 10px}.me-currency-page .my-currency em{color:#ff2400;font-weight:400}.me-currency-page .my-currency.has-tip{border-bottom:none}.me-currency-page .currency-tip{height:40px;line-height:24px;font-size:18px;color:#333;font-weight:700;margin:-16px 10px 0;border-bottom:1px solid #e8e8e8}.me-currency-page .currency-tip em{color:#ff2400;font-weight:400}.me-currency-page .currency,.me-currency-page .tab-wrap{margin:0 10px}.me-currency-page .tab-wrap{position:relative}.me-currency-page .tab-wrap .options-helper{position:absolute;right:10px;top:0}.me-currency-page .tab-wrap .coin-helper{margin-left:10px;color:#468fa2}.me-currency-page .tabs{margin-left:0;margin-right:0}.me-currency-page .currency-header{height:25px;line-height:25px;text-align:center;border:1px solid #e6e6e6;background:#efefef;margin:0 10px}.me-currency-page .currency-header span{display:block;float:left;font-size:14px;font-weight:700}.me-currency-page .currency-header .date{width:159px}.me-currency-page .currency-header .income-expenditure{width:317px}.me-currency-page .currency-header .remark{width:300px}.me-currency-page .currency{display:table;border:1px solid #e6e6e6;margin-bottom:20px;border-bottom:none}.me-currency-page .currency li{display:table-row;text-align:center;font-size:14px;height:50px;line-height:50px}.me-currency-page .currency li>*{display:table-cell;border-left:1px solid #e6e6e6;border-bottom:1px solid #e6e6e6;vertical-align:middle;color:#666;padding:5px;line-height:18px}.me-currency-page .currency li>:first-child{border-left:none}.me-currency-page .currency .date{width:155px}.me-currency-page .currency .remark{width:300px}.me-currency-page .currency .remark>a{color:#468fa2;margin-left:10px;text-decoration:underline}.me-currency-page .currency .income-expenditure{width:320px;color:#73a7b5}.me-currency-page .currency .income{color:#e10049}.me-favorite-page .favorite .title{background-image:url(../assets/img/home/favorite.png?v155c47c0108)}.me-favorite-page .favorite-table-header{font-size:12px;padding:0}.me-favorite-page .favorite-table-header .options{width:136px}.me-favorite-page .fav-row{display:table;padding:10px 0;border-bottom:1px solid #e6e6e6}.me-favorite-page .fav-row>*{display:table-cell;vertical-align:middle}.me-favorite-page .fav-row .checkbox{width:40px;padding-left:10px}.me-favorite-page .del-favorite{color:#666;visibility:hidden;cursor:pointer}.me-favorite-page .fav-row:hover .del-favorite{visibility:visible}.me-favorite-page .empty-reduction,.me-favorite-page .favorite-articles,.me-favorite-page .favorite-brands,.me-favorite-page .favorite-products,.me-favorite-page .reduction-notice-tip{margin:0 10px;font-size:12px}.me-favorite-page .price-notice{position:absolute;width:320px;height:194px;z-index:12;top:50%;left:50%;margin-left:-160px;margin-top:-130px;background:#fff;border:1px solid #999;padding:20px;font-size:14px}.me-favorite-page .price-notice .close{position:absolute;display:block;top:5px;right:5px;width:46px;height:16px;cursor:pointer;background:#cdcdcd;color:#fff;border-radius:2px;font-size:12px}.me-favorite-page .price-notice .close:hover{background:#414141}.me-favorite-page .price-notice .price-notice-sure{display:block;width:82px;height:34px;line-height:34px;text-align:center;color:#fff;background:#e90024;font-weight:700;cursor:pointer;margin:20px auto 0}.me-favorite-page .price-notice .tip{line-height:20px;margin:20px 0}.me-favorite-page .price-notice label{margin-right:10px}.me-favorite-page .price-notice input{width:180px;height:30px;line-height:30px;color:#333;padding:0 5px;font-size:14px;border:1px solid #bebebe}.me-favorite-page .price-notice input.error{border-color:red}.me-favorite-page .price-notice .err-text{padding-left:70px;line-height:24px;color:red}.me-favorite-page .price-notice .err-text i{display:block;float:left;height:14px;width:14px;background-image:url(../assets/img/sprite.passport.png?v155c47c08d8);background-position:-95px -113px;margin-right:5px;margin-top:5px}.me-favorite-page .price-notice .phone-diff{color:red;line-height:18px}.me-favorite-page .price-notice .success{text-align:center}.me-favorite-page .price-notice .success p{font-size:14px;line-height:22px;margin-top:20px}.me-favorite-page .price-notice .success .iconfont{color:#51c516;font-size:24px}.me-favorite-page .price-notice .success .notice-num{color:#e20d29}.me-favorite-page .price-notice .cue{text-align:center;padding:70px 0 50px;display:none}.me-favorite-page .price-notice .cue span{color:#e90024}.me-favorite-page .price-notice .cue p{font-size:14px;line-height:22px}.me-favorite-page .error .content,.me-favorite-page .error .success{display:none}.me-favorite-page .error .cue{display:block}.me-favorite-page .reduction-notice-tip{border:1px solid #e7e7e7;padding:20px;margin-bottom:10px}.me-favorite-page .reduction-notice-tip .notice-text{width:245px;float:left}.me-favorite-page .reduction-notice-tip h2{color:#000;font-size:14px;line-height:1.5}.me-favorite-page .reduction-notice-tip p{padding:10px 0;color:#999;font-size:12px;line-height:1.5}.me-favorite-page .reduction-notice-tip .notice-img{float:right;width:458px;height:197px;background:url(../assets/img/home/reduction-notice.jpg?v155c47c0108)}.me-favorite-page .empty-reduction{text-align:center;font-size:14px;border:1px solid #e7e7e7;padding:40px;margin-bottom:20px}.me-favorite-page .empty-reduction a{display:inline-block;width:92px;height:30px;line-height:30px;color:#666;text-align:center;cursor:pointer;background:#ededed;border:1px solid #dbdbdb;border-radius:3px}.me-favorite-page .reduction-products{margin-bottom:20px}.fav-products .favorite-products>ul{padding-bottom:20px}.fav-products .sorts{position:relative;padding:10px 35px 10px 10px;min-height:20px;line-height:20px;margin:0 10px 10px;background:#f3f3f3;border:1px solid #e6e6e6;color:#ccc}.fav-products .sorts .sort{height:20px;line-height:20px;color:#666;font-size:12px;display:inline-block}.fav-products .sorts .sort.focus{background:url(../assets/img/home/sort-select.png?v155c47c0108) no-repeat 0;padding-left:18px;color:#fff}.fav-products .sorts .sort.focus a{display:inline-block;background:url(../assets/img/home/sort-select.png?v155c47c0108) no-repeat 100%;font-weight:700;color:#fff}.fav-products .sorts .sep{margin:0 10px}.fav-products .sorts .has-more{margin-left:10px}.fav-products .all-sorts{display:none}.fav-products .sort-btn{position:absolute;display:block;width:19px;height:19px;line-height:19px;right:10px;top:10px;text-align:center;border:1px solid #ececec;background:#fff;cursor:pointer}.fav-products .sort-btn .iconfont{color:#000;font-size:12px}.fav-products .reduction-filter{height:30px;line-height:30px;text-align:right;font-size:12px;margin:0 10px}.fav-products .reduction-notice{float:left;color:#666}.fav-products .favorite-goods{margin:0 10px;font-size:12px}.fav-products .favorite-goods>ul{padding-bottom:20px}.fav-products .favorite-table-header .info{width:390px;padding-left:50px;text-align:left}.fav-products .favorite-table-header .price{width:200px;text-align:left}.fav-products .fav-good{position:relative}.fav-products .fav-good .thumb{width:110px;text-align:center}.fav-products .fav-good .thumb img{width:100px}.fav-products .fav-good .text-info{width:270px;line-height:16px}.fav-products .fav-good .name{color:#468fa2;display:block}.fav-products .fav-good .name:hover{text-decoration:underline}.fav-products .fav-good .has-bought{display:inline-block;width:37px;height:15px;line-height:15px;text-align:center;color:#fff;background:#418fa3;border-radius:2px}.fav-products .fav-good .has-activity{color:#666;cursor:pointer}.fav-products .fav-good .price{width:200px;padding-left:10px}.fav-products .fav-good .price>em{font-weight:700;color:#e8044f;font-size:14px}.fav-products .fav-good .price .price-down{display:block;margin-top:5px}.fav-products .fav-good .price .price-down>em{color:#e8044f}.fav-products .fav-good .price .price-down .iconfont{font-size:12px}.fav-products .fav-good .options{width:136px;text-align:center}.fav-products .fav-good .options>*{display:block}.fav-products .fav-good .options .buy-again,.fav-products .fav-good .options .buy-now{width:92px;height:30px;line-height:30px;font-size:14px;text-align:center;border-radius:4px;margin:0 auto}.fav-products .fav-good .options .buy-now{color:#fff;background:#da044a}.fav-products .fav-good .options .buy-again{color:#666;background:#ececec;border:1px solid #cecece}.fav-products .fav-good .options .price-down-clock{line-height:20px;color:#666;cursor:pointer}.fav-products .fav-good .options .sold-out{color:#666}.fav-products .fav-good .options .buy-again,.fav-products .fav-good .options .buy-now,.fav-products .fav-good .options .sold-out{margin-top:12px}.fav-products .fav-good .activites{position:absolute;left:160px;right:0;top:120px;padding:10px 0;border-top:1px dashed #ccc}.fav-products .fav-good .activites li{line-height:18px}.fav-products .fav-good .activites .type{display:inline-block;width:54px;height:14px;line-height:14px;margin-right:5px;overflow:hidden;background:#6c6c6c;border-radius:2px;color:#fff;text-align:center;vertical-align:middle}.fav-products .fav-good .activites .arrow{position:absolute;width:13px;left:20px;top:-7px;height:7px;background-image:url(../assets/img/sprite.home.png?v155c47c08d8);background-position:-48px -31px}.fav-products .fav-good:hover{background:#f3f3f3}.fav-brands .favorite-brands>ul{padding-bottom:20px}.fav-brands .favorite-table-header .name{width:190px;padding-left:50px;text-align:left}.fav-brands .favorite-table-header .col-count,.fav-brands .favorite-table-header .new-arrival{width:200px}.fav-brands .fav-brand{position:relative;font-size:12px}.fav-brands .fav-brand .thumb{width:190px}.fav-brands .fav-brand .thumb a{display:block;width:115px;padding:5px;text-align:center;border:1px solid #f4f4f4}.fav-brands .fav-brand .thumb .name{display:block;background:#f4f4f4;color:#666;line-height:18px}.fav-brands .fav-brand .thumb img{width:100px;height:100px}.fav-brands .fav-brand .col-count,.fav-brands .fav-brand .new-arrival{width:200px;text-align:center}.fav-brands .fav-brand .new-arrival{cursor:pointer}.fav-brands .fav-brand .options{width:136px;text-align:center}.fav-brands .fav-brand .brand-shop{display:block;width:92px;height:30px;line-height:30px;border:1px solid #c2c2c2;background:#ececec;text-align:center;cursor:pointer;margin:14px auto 10px;border-radius:2px;color:#666;font-size:14px}.fav-brands .fav-brand .na-list{position:absolute;left:50px;right:0;top:152px;padding:10px 0;border-top:1px dashed #ccc}.fav-brands .fav-brand .na-list .arrow{position:absolute;width:13px;left:265px;top:-7px;height:7px;background-image:url(../assets/img/sprite.home.png?v155c47c08d8);background-position:-48px -31px}.fav-brands .fav-brand .na-good{width:102px;height:165px;padding:0 15px;text-align:left}.fav-brands .fav-brand .na-good-thumb{border:1px solid #ccc;width:100px;height:100px;vertical-align:middle}.fav-brands .fav-brand .na-good-name{color:#666;line-height:14px;margin:5px 0;max-height:28px;overflow:hidden}.fav-brands .fav-brand .na-content>*{float:left}.fav-brands .fav-brand .has-no-na{text-align:center;float:none;padding:20px 183px 20px 0}.fav-brands .fav-brand .has-sale{text-decoration:line-through}.fav-brands .fav-brand .na-next,.fav-brands .fav-brand .na-pre{display:block;width:31px;height:31px;line-height:33px;text-align:center;background:#f4f4f4;border:1px solid #eee;margin-top:66px}.fav-brands .fav-brand .na-next.hidden,.fav-brands .fav-brand .na-pre.hidden{visibility:hidden}.fav-brands .fav-brand .na-goods{width:660px;height:165px;padding-top:20px;overflow:hidden}.fav-brands .fav-brand .na-goods-ul{width:2640px}.fav-brands .fav-brand .na-goods-ul>li{float:left}.fav-articles .favorite-articles>ul{padding-bottom:20px}.fav-articles .fav-article:first-child{padding-top:8px}.fav-articles .bg-img{display:block;width:146px;height:96px;backgound-size:cover;background-position:50%}.fav-articles .text-info{width:559px;padding-left:20px}.fav-articles .name{display:block;font-weight:700;font-size:14px;line-height:30px;color:#000;width:550px;word-break:keep-all;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fav-articles .name:hover{text-decoration:underline}.fav-articles .desc{color:#333;font-size:12px;line-height:24px;height:48px}.fav-articles .del-favorite{float:right;font-size:12px;cursor:pointer}.user-me-page{font-size:12px;line-height:150%}.user-me-page form{display:inline}.user-me-page strong{font-weight:700}.user-me-page .clear{zoom:1}.user-me-page .clear:after{content:".";display:block;height:0;visibility:hidden;overflow:hidden;clear:both}.user-me-page .userinfo-edit form{display:none}.user-me-page .userinfo-edit h2.title{background-image:url(../assets/img/home/edit/title-informations.png?v155c47c0108)}.user-me-page .account,.user-me-page .email,.user-me-page .gift,.user-me-page .mobile,.user-me-page .userpwd{font-size:12px;line-height:150%}.user-me-page .account .title,.user-me-page .email .title,.user-me-page .gift .title,.user-me-page .mobile .title,.user-me-page .userpwd .title{position:relative}.user-me-page .account .title h2,.user-me-page .email .title h2,.user-me-page .gift .title h2,.user-me-page .mobile .title h2,.user-me-page .userpwd .title h2{height:16px;font-size:14px;font-weight:700;line-height:16px;position:absolute;top:50%;margin-top:-8px}.user-me-page .account .title h2 span,.user-me-page .email .title h2 span,.user-me-page .gift .title h2 span,.user-me-page .mobile .title h2 span,.user-me-page .userpwd .title h2 span{font-size:10px;-webkit-transform:scale(.85);display:inline-block;line-height:15px;font-weight:400;padding-left:0}.user-me-page .address{font-family:arial,Microsoft YaHei}.user-me-page .address a{color:#468fa2;text-decoration:none}.user-me-page .address .a-underline{text-decoration:underline}.user-me-page .address input[type=button]{margin-top:0}.user-me-page .address input#address{width:340px}.user-me-page .address .title{position:relative}.user-me-page .address .title h2{width:66px;height:16px;background:url(../assets/img/home/edit/title-address.png?v155c47c0108) no-repeat;text-indent:-999em;float:left;position:absolute;top:50%;margin-top:-8px}.user-me-page .address .main{width:798px;padding:10px 1px 1px;float:left;border:1px solid #dedede;border-radius:2px}.user-me-page .address .address-list{width:776px;margin:0 10px;display:inline;border:1px solid #e6e6e6;border-bottom:0;float:left}.user-me-page .address .address-content{width:756px;padding:10px;border-bottom:1px solid #e6e6e6;float:left}.user-me-page .address .address-content.preferred{background:#fdfcdd;color:#333}.user-me-page .address .address-detail{width:596px;float:left}.user-me-page .address .address-edit{width:150px;padding:10px 0 10px 10px;text-align:center;float:left}.user-me-page .address.block{border:none}.user-me-page .btn-c3{height:22px;background:url(../assets/img/home/edit/btn_hs.png?v155c47c0108) no-repeat left -66px;padding-left:8px;display:inline-block}.user-me-page .btn-c3 span{height:22px;line-height:21px;background:url(../assets/img/home/edit/btn_hs.png?v155c47c0108) no-repeat right -66px;padding-right:10px;display:inline-block;cursor:pointer;color:#fff}.user-me-page .btn-c2{height:22px;background:url(../assets/img/home/edit/btn_hs.png?v155c47c0108) no-repeat left -44px;padding-left:8px;display:inline-block}.user-me-page .btn-c2 span{height:22px;line-height:21px;background:url(../assets/img/home/edit/btn_hs.png?v155c47c0108) no-repeat right -44px;padding-right:10px;display:inline-block;cursor:pointer;color:#b3b3b3}.user-me-page .main-info{border-top:1px solid #ddd;padding:20px 10px 10px}.user-me-page .main-info .p1{padding-bottom:10px;font-weight:700}.user-me-page .main-info .blue2{color:#468fa2}.user-me-page .block{min-height:375px;height:auto}.user-me-page .block form#giftCardForm,.user-me-page .block form#pwdform,.user-me-page .block form.first{display:block}.user-me-page .edit-box{padding:10px 11px 11px}.user-me-page .form-group{height:30px;border:1px solid #fff;margin-bottom:2px;line-height:22px;font-size:12px;font-family:Arial,helvetica,sans-serif}.user-me-page .form-group label{width:80px;text-align:right;color:#333;float:left}.user-me-page .plain{color:#666;font-weight:700}.user-me-page .width-300{width:300px}.user-me-page .width-150{width:150px}.user-me-page .input-1{height:20px;line-height:20px;color:#333;border:1px solid #c9c9c9;background:url(../assets/img/home/edit/input_1.png?v155c47c0108) repeat-x #fff;vertical-align:top}.user-me-page .btn-b1{width:118px;height:34px;border:0;background:url(../assets/img/home/edit/btn_b1.png?v155c47c0108) no-repeat;color:#fff;font-size:14px;font-weight:700;padding-right:10px;cursor:pointer;display:inline-block;margin-top:12px;margin-left:80px}.user-me-page #btn-reset{margin-left:0}.user-me-page .tips-p{margin-left:10px;color:#999;display:inline-block}.user-me-page .box{width:778px;clear:both;padding-top:10px;margin-bottom:10px;float:left}.user-me-page .sub-title{clear:both;height:21px;line-height:21px;padding-left:23px;background:url(../assets/img/home/edit/ico_arrow2.png?v155c47c0108) no-repeat 5px 5px #efefef;border:1px solid #e6e6e6;font-size:12px;color:#333;font-weight:400;cursor:pointer;margin-bottom:2px}.user-me-page .sub-title .more{padding:2px 10px 0 0;float:right}.user-me-page .sub-title .btn-edit{width:37px;height:17px;background:url(../assets/img/home/edit/btn_edit.png?v155c47c0108) no-repeat;display:inline-block;overflow:hidden;border:0}.user-me-page .user-personal-info .user-info{width:552px;padding-right:38px;float:left}.user-me-page .user-personal-info .user-profile{width:148px;padding:18px;text-align:center;float:right;border-left:1px solid #e0e0e0}.user-me-page .user-personal-info .user-profile img{width:100px;height:100px;margin-bottom:10px}.user-me-page .user-favorite-info ul{clear:both;width:750px;padding:0 20px 0 0;float:left}.user-me-page .user-favorite-info ul li{height:22px;padding-left:20px;float:left;font-size:12px}.user-me-page .user-favorite-info .brand-box{width:725px;margin:0 0 10px 20px;display:inline;padding:5px 10px 5px 0;border:1px solid #ccc;background:#f8f8f8;color:#000}.user-me-page .user-favorite-info .brand-box li{height:22px;line-height:22px;padding:0 0 0 10px;float:left;display:inline-block;white-space:nowrap}.user-me-page .user-favorite-info .btn-del{height:20px;line-height:20px;border:0;padding-left:18px;background:url(../assets/img/home/edit/ico_del.png?v155c47c0108) no-repeat 0 2px;color:#468fa2;display:inline-block;overflow:hidden;text-decoration:none;vertical-align:middle}.user-me-page .user-favorite-info .btn-submit-sm{width:56px;height:20px;border:0;font-size:12px;color:#fff;line-height:20px;padding:0;margin:0;background:url(../assets/img/home/edit/btn_s1_z2.png?v155c47c0108) repeat-x;text-align:center;display:inline-block;cursor:pointer}.user-me-page .user-favorite-info span{color:#999;line-height:25px;display:inline-block}.user-me-page .user-favorite-info .form-group{clear:both;width:730px;padding:0 20px 5px;float:left}.user-me-page .account-row{padding:30px 0;border-bottom:1px solid #ddd}.user-me-page .account-row .content{height:32px;line-height:32px;position:relative}.user-me-page .account-row .content div{float:left;display:inline-block}.user-me-page .account-row .content .left-content{width:200px}.user-me-page .account-row .content .middle-content{width:500px}.user-me-page .account-row .content .middle-content .tip{color:#666}.user-me-page .account-row .content .middle-content .tip.red{color:#e01}.user-me-page .account-row .content .right-content{width:75px;height:20px;line-height:20px;position:absolute;top:50%;margin-top:-10px;text-align:center}.user-me-page .account-row .center{text-align:center}.user-me-page .account-row a{text-decoration:none;color:#666;outline:none}.user-me-page .account-row [class*=" icon-"],.user-me-page .account-row [class^=icon-]{height:32px;line-height:32px;vertical-align:middle;display:inline-block;padding-left:42px;margin-left:20px}.user-me-page .account-row .icon-ok{background:url(../assets/img/home/edit/icon-32.png?v155c47c0108) no-repeat 0 0}.user-me-page .account-row .icon-warning{background:url(../assets/img/home/edit/icon-32.png?v155c47c0108) no-repeat 0 -32px}.user-me-page .account-row .account-type{font-size:18px;line-height:32px;display:inline-block;padding-left:20px}.user-me-page .button-icon20{padding-left:5px;background:url(../assets/img/home/edit/btn_bg_20.png?v155c47c0108) no-repeat left 0;display:inline-block;cursor:pointer}.user-me-page .button-icon20 i{font-style:normal;background:url(../assets/img/home/edit/btn_bg_20.png?v155c47c0108) repeat-x left -20px;display:inline-block;height:20px;line-height:20px;text-align:center}.user-me-page .button-sliver20 i{background-position:left -80px;width:52px}.user-me-page .button-icon20 span{background:url(../assets/img/home/edit/btn_bg_20.png?v155c47c0108) no-repeat right -40px;display:inline-block;padding-right:5px}.user-me-page .button-sliver20 span{background-position:right -100px}.user-me-page .button-sliver20{background-position:left -60px}.user-me-page .gift-box{padding:10px 11px 11px}.user-me-page .gift-box h2{height:16px;font-size:14px;font-weight:700;line-height:16px}.user-me-page .gift-box li{font-size:12px;font-family:arial,Microsoft YaHei;margin-bottom:25px}.user-me-page .gift-box .gift-input{width:60px;height:20px;line-height:20px;color:#333;border:1px solid #c9c9c9;background:url(../assets/img/home/edit/input_1.png?v155c47c0108) repeat-x #fff}.user-me-page .gift-box .gift-error{color:red;margin-left:10px}.user-me-page .gift-box #imgcode{border:0;vertical-align:middle;outline:none;cursor:pointer}.user-me-page .gift-box .check-img{color:#468fa2;text-decoration:underline}.user-me-page .gift-box .btn-b1{margin:0}.user-me-page .form-error{background:url(../assets/img/home/onError.png?v155c47c0108) no-repeat 5px 9px #fff2e8;color:#e8044f}.user-me-page .form-error,.user-me-page .form-success{padding-left:25px;padding-right:5px;font-size:12px;line-height:30px;height:30px;display:inline-block;margin-left:5px}.user-me-page .form-success{background:url(../assets/img/home/onCorrect.png?v155c47c0108) no-repeat 5px 9px #e9ffeb;color:green}.user-me-page .form-focus,.user-me-page .form-prompt{background:url(../assets/img/home/onShow.png?v155c47c0108) no-repeat 5px 9px;padding-left:25px;font-size:12px;line-height:30px;height:30px;display:inline-block;color:#999}.user-me-page .form-focus{background:url(../assets/img/home/onShow.png?v155c47c0108) no-repeat 5px 9px #e9f0ff;color:#666}.user-me-page .add-address{width:778px;padding:10px 0;float:left}.user-me-page .add-address h2{clear:both;height:21px;line-height:21px;padding-left:23px;margin-left:10px;background:url(../assets/img/home/edit/ico_arrow2.png?v155c47c0108) no-repeat 5px 5px #efefef;border:1px solid #e6e6e6;font-size:12px;color:#333;font-weight:400}.user-me-page .add-address .form-group{width:130%}.user-me-page .add-address .add-address-detail{padding:10px 0}.user-me-page .add-address .add-address-detail .form-info{vertical-align:middle;line-height:22px;height:22px;background-position:5px 5px}.user-me-page .add-address #btnReset{margin-left:0}.user-me-page .gift-fail,.user-me-page .gift-ok{padding:50px 260px;height:310px;display:block}.user-me-page .gift-fail h3,.user-me-page .gift-ok h3{font-size:18px;height:22px;line-height:25px;padding-left:25px;color:#000;background:url(../assets/img/home/edit/ico_i_sf.png?v155c47c0108) no-repeat}.user-me-page .gift-fail .fail,.user-me-page .gift-ok .fail{background-position:0 -22px}.user-me-page .gift-fail .input-again,.user-me-page .gift-ok .input-again{text-decoration:underline;color:#c4153a}.user-me-page .gift-fail .input-again:active,.user-me-page .gift-fail .input-again:hover,.user-me-page .gift-ok .input-again:active,.user-me-page .gift-ok .input-again:hover{color:#c4153a}.user-me-page .gift-fail .success,.user-me-page .gift-ok .success{background-position:0 0}.user-me-page .gift-fail .currency-info,.user-me-page .gift-ok .currency-info{margin-top:20px;padding-left:25px}.user-me-page .gift-fail .gift-red,.user-me-page .gift-ok .gift-red{color:#bc0029;font-size:16px;font-weight:700;margin-left:5px}.user-me-page .gift-fail .yoho-currency,.user-me-page .gift-ok .yoho-currency{font-size:16px;font-weight:700;color:#3e3e3e}.user-me-page .check-safe{padding:10px 11px 11px;height:auto;overflow:hidden}.user-me-page .check-safe .form-success{background:url(../assets/img/home/onCorrect.png?v155c47c0108) no-repeat 5px 9px}.user-me-page .check-safe .progress-bar{width:780px;height:24px}.user-me-page .check-safe .progress-bar li{float:left;width:260px;color:#666;text-align:center;height:24px;line-height:24px}.user-me-page .check-safe .progress-bar li.cur{color:#fff}.user-me-page .check-safe .progress1{background:url(../assets/img/home/edit/icon-bar.png?v155c47c0108) no-repeat}.user-me-page .check-safe .progress2{background:url(../assets/img/home/edit/icon-bar.png?v155c47c0108) no-repeat 0 -24px}.user-me-page .check-safe .progress3{background:url(../assets/img/home/edit/icon-bar.png?v155c47c0108) no-repeat 0 -48px}.user-me-page .check-safe input[type=password],.user-me-page .check-safe input[type=text]{height:28px;border:1px solid #bebebe;line-height:28px;padding:0 5px}.user-me-page .check-safe .form-nav{padding:30px 0}.user-me-page .check-safe .form-nav ul{width:690px;margin:0 auto}.user-me-page .check-safe .form-nav li{padding:10px 0;float:left}.user-me-page .check-safe .form-nav .safe-form-l{float:left;width:220px;line-height:30px;padding:0 5px;text-align:right}.user-me-page .check-safe .form-nav .safe-form-r{width:422px;line-height:30px;float:left}.user-me-page .check-safe .form-nav .input-text{width:208px}.user-me-page .check-safe .form-nav .input-code{width:54px;margin-right:5px}.user-me-page .check-safe .form-nav #the-code-img{border:0;vertical-align:middle;outline:none;height:30px;cursor:pointer}.user-me-page .check-safe .form-nav .change-code{height:30px;padding:0 0 0 5px;line-height:15px;display:inline-block;vertical-align:middle;color:#666}.user-me-page .check-safe .form-nav .the-code{color:#468fa2}.user-me-page .check-safe .form-nav .btn-b1{margin:0}.user-me-page .check-safe .form-nav .check-info{display:inline-block;vertical-align:top}.user-me-page .check-safe .form-nav .input-error{border:2px solid #e8044f;height:26px;padding:0 4px}.user-me-page .feedback dt{height:20px;line-height:20px;background:url(../assets/img/home/suggest-icon.png?v155c47c0108) no-repeat 2px 3px;padding:0 0 0 20px;float:left;font-family:arial,Microsoft YaHei;font-size:12px}.user-me-page .feedback dt a{color:#468fa2}.user-me-page .feedback dd{float:right}.user-me-page .button-top{width:66px;height:22px;padding-left:10px;line-height:21px;border:0;text-align:center;background:url(../assets/img/home/btn_top.png?v155c47c0108) no-repeat;color:#666;font-size:12px;cursor:pointer;display:inline-block}.user-me-page .rgb6{color:#666}.user-me-page .font14{font-size:14px}.user-me-page .button-icon{padding-left:5px;background:url(../assets/img/home/button-icon.png?v155c47c0108) no-repeat left 0;display:inline-block;cursor:pointer}.user-me-page .button-icon i{font-style:normal;background:url(../assets/img/home/button-icon.png?v155c47c0108) repeat-x left -33px;display:inline-block;height:33px;line-height:33px;text-align:center}.user-me-page .button-icon span{background:url(../assets/img/home/button-icon.png?v155c47c0108) no-repeat right -66px;display:inline-block;padding-right:5px}.user-me-page .button-red{background-position:left -99px;color:#fff}.user-me-page .button-red i{background-position:left -134px;width:120px}.user-me-page .button-red i .btn-jt{background:url(../assets/img/home/btn-jt.png?v155c47c0108) no-repeat;width:5px;height:8px;display:inline-block;margin-left:10px}.user-me-page .button-red span{background-position:right -169px}.user-me-page .button-sliver i{width:100px;color:#666}.user-me-page .result-email,.user-me-page .result-info{padding:30px 0;min-height:360px;width:616px;margin:0 auto;text-align:center}.user-me-page .result-email p,.user-me-page .result-info p{line-height:24px}.user-me-page .result-email .info-detail,.user-me-page .result-info .info-detail{margin-top:20px;text-align:left}.user-me-page .result-email .button-icon,.user-me-page .result-info .button-icon{margin-top:20px}.user-me-page .result-email{text-align:left;width:400px}.user-me-page .res-info{height:24px;line-height:51px;padding-left:28px;font-size:20px;color:#000;line-height:24px;display:inline-block}.user-me-page .res-success{background:url(../assets/img/home/icon-24.png?v155c47c0108) no-repeat}.user-me-page .res-error{background:url(../assets/img/home/icon-24.png?v155c47c0108) no-repeat 0 -24px;color:red}.returns-me-page .returns .title{background-image:url(../assets/img/home/returns.png?v155c47c0108)}.returns-me-page .operation,.returns-me-page .return-status,.returns-me-page .time{width:100px;border-left:1px solid #e6e6e6}.returns-me-page .return-type{width:80px;border-left:1px solid #e6e6e6}.returns-me-page .order-table-header{padding:0;margin:10px;border:1px solid #e6e6e6}.returns-me-page .order-table-header>span{text-align:center;border-left:none}.returns-me-page .order-table-header .info{width:384px;padding-left:10px;text-align:left}.returns-me-page .order-wrap li{border-top:none}.returns-me-page .order-wrap li .info{width:384px;padding:5px 0 5px 10px}.returns-me-page .order-wrap li .text-info{width:300px;right:0;bottom:15px}.returns-me-page .order-wrap li .text-info .name{max-width:300px}.returns-me-page .order-wrap li .text-info .name:hover{text-decoration:underline}.cancel-dialog{width:350px;background:#fff;padding:20px 30px 35px}.cancel-dialog .message-title{margin-top:40px;margin-bottom:27px;font-size:24px;font-weight:700}.cancel-dialog .message-summary{width:250px;margin:0 auto 22px;font-size:14px;word-wrap:break-word;line-height:20px;color:#444}.cancel-dialog .btns{padding:15px 30px 0;text-align:center}.cancel-dialog .btns .btn{height:35px;font-size:15px;line-height:35px}.cancel-dialog .btns .cancel-sure{width:130px;color:#fff;background:#000;border:none}.cancel-dialog .btns .cancel-no{margin-left:30px;background:#fff;color:#000;border-color:#000;width:126px}.cancel-dialog .close{top:15px;right:15px}.cancel-dialog .close .iconfont{font-size:30px}.cancel-dialog .icon-warn{display:inline-block;margin-right:10px;background:url(../assets/img/home/icon-warn.png?v155c47c0108) no-repeat;width:30px;height:30px;vertical-align:-6px}.detail-me-page{font-size:12px}.detail-me-page .returns-detail .title{background-image:url(../assets/img/home/returns.png?v155c47c0108)}.detail-me-page .order-info{background:#efefef;padding:10px}.detail-me-page .order-info span{color:#468fa2;margin:0 8px}.detail-me-page .visual-return-state{margin:40px auto;height:40px;width:560px;background:url(../assets/img/home/exchange-bg.png?v155c47c0108) no-repeat top}.detail-me-page .visual-return-state li{width:112px;padding:20px 0 0;text-align:center;float:left}.detail-me-page .visual-return-state .act{background:url(../assets/img/home/detail-act.png?v155c47c0108) no-repeat top}.detail-me-page .cancel-return{height:26px;margin:0 10px;padding-top:10px;padding-left:10px;line-height:26px;border-top:1px solid #e0e0e0}.detail-me-page .cancel-return a{display:inline-block;padding:0 10px;margin-left:2px;color:#fff;background:#3a3a3a;text-align:center}.detail-me-page .detail-container{padding:10px}.detail-me-page .detail-container h2{height:21px;line-height:21px;padding-left:23px;background:url(../../../img/home/complaint-icon.png?v155a528e668) no-repeat 5px 5px #efefef;border:1px solid #e6e6e6;font-size:12px;color:#333;font-weight:400;margin-bottom:10px}.detail-me-page .detail-container .courier-code{margin:60px auto;text-align:center}.detail-me-page .detail-container .courier-code .express-edit-box{display:none}.detail-me-page .detail-container .courier-code button{padding:5px 15px}.detail-me-page .detail-container .in-edit .express-view-box{display:none}.detail-me-page .detail-container .in-edit .express-edit-box{display:block}.detail-me-page .detail-container .main-detail table{width:100%}.detail-me-page .detail-container .main-detail table tr{border:1px solid #e6e6e6}.detail-me-page .detail-container .main-detail table td{text-align:left;padding:8px 10px;border:none;color:#333}.detail-me-page .detail-container .word-h{display:none}.detail-me-page .detail-container .refund-tips{color:#999;margin-top:10px;margin-bottom:40px}.detail-me-page .exchange-detail .word-t{display:none}.detail-me-page .exchange-detail .word-h{display:inline-block}.detail-me-page .exchange-detail .refund-tips span{display:none}.apply-returns-page{font-size:12px}.apply-returns-page .title{background-image:url(../assets/img/home/refund-apply.png?v155c47c0108)}.apply-returns-page .exchange .title{background-image:url(../assets/img/home/exchange-apply.png?v155c47c0108)}.apply-returns-page select{width:85px;font-size:12px;outline:none}.apply-returns-page .apply-container{padding:10px}.apply-returns-page .apply-container .return-prompt{padding:20px;border:1px solid #e6e6e6;margin-bottom:10px;line-height:21px;color:#333}.apply-returns-page .apply-container .return-prompt span{color:red}.apply-returns-page .apply-container .return-prompt .footwear-tip{height:142px;line-height:18px;margin-top:20px;padding-left:536px;background:url(../assets/img/home/footwear-tips.jpg?v155c47c0108) no-repeat}.apply-returns-page .apply-container .return-prompt .footwear-tip span{color:#666}.apply-returns-page .apply-container .return-prompt .footwear-tip span:first-child{display:block;margin-bottom:15px}.apply-returns-page .apply-container .return-prompt .icon-onlineservice{display:inline-block;width:16px;height:16px;margin-left:10px;background:url(../assets/img/home/onlineservice.png?v155c47c0108) no-repeat;vertical-align:text-bottom}.apply-returns-page .apply-container h2{height:21px;line-height:21px;padding-left:23px;background:url(../assets/img/home/complaint-icon.png?v155c47c0108) no-repeat 5px 5px #efefef;border:1px solid #e6e6e6;font-size:12px;color:#333;font-weight:400}.apply-returns-page .apply-container .goods-list-table{width:100%;margin-bottom:10px}.apply-returns-page .apply-container .goods-list-table tr{border:1px solid #e6e6e6;height:18px;line-height:18px}.apply-returns-page .apply-container .goods-list-table tr th{text-align:center;background:#efefef;padding:5px;color:#333}.apply-returns-page .apply-container .goods-list-table tr th:first-child{text-align:left}.apply-returns-page .apply-container .goods-list-table tr td{color:#666;padding:5px}.apply-returns-page .apply-container .goods-list-table .return-goods-info>*{display:block}.apply-returns-page .apply-container .goods-list-table .return-goods-info a{color:#468fa2;text-decoration:none;max-width:250px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.apply-returns-page .apply-container .goods-list-table .return-goods-info span{color:#999}.apply-returns-page .apply-container .goods-list-table .special-tip{position:relative}.apply-returns-page .apply-container .goods-list-table .special-tip span{color:#3a3a3a}.apply-returns-page .apply-container .goods-list-table .special-tip .doubt{display:inline-block;margin-left:5px;width:14px;height:14px;background:url(../assets/img/home/return-doubt.png?v155c47c0108) no-repeat;vertical-align:text-bottom}.apply-returns-page .apply-container .goods-list-table .special-tip .special-content{display:none;position:absolute;top:0;width:280px;padding:10px 15px;border:1px solid #3a3a3a;background:#fff;color:#3a3a3a;word-break:break-word}.apply-returns-page .apply-container .goods-list-table .special-tip .special-content i.arrow{position:absolute;top:5px;left:-7px;width:7px;height:12px;background:url(../assets/img/home/return-arrow.png?v155c47c0108) no-repeat}.apply-returns-page .apply-container .goods-list-table .exchange-choose-wrap{width:185px;border:1px solid #e6e6e6;text-align:center}.apply-returns-page .apply-container .goods-list-table .exchange-choose-wrap p{line-height:29px}.apply-returns-page .apply-container .goods-list-table .exchange-choose-wrap select{width:85px}.apply-returns-page .apply-container .goods-list-table .refund-price{width:185px;color:#666;font-weight:700;text-align:center}.apply-returns-page .apply-container .goods-list-table .return-reason-wrap{width:200px;text-align:center}.apply-returns-page .apply-container .goods-list-table .return-reason-wrap select{width:190px}.apply-returns-page .apply-container .goods-list-table .return-reason-wrap label{color:#999;padding:4px 20px;background:#f5f5f5;border:1px solid #dadada}.apply-returns-page .apply-container .goods-list-table .border-style{border:1px solid #e6e6e6}.apply-returns-page .apply-container .goods-list-table .ex-tips,.apply-returns-page .apply-container .goods-list-table .re-tips{text-align:left;padding-left:10px;color:#666}.apply-returns-page .apply-container .goods-list-table .problem-description{display:none}.apply-returns-page .apply-container .goods-list-table .problem-description .left-title{width:160px;text-align:right;padding-right:15px}.apply-returns-page .apply-container .goods-list-table .problem-description .left-title .red-icon{color:red}.apply-returns-page .apply-container .goods-list-table .problem-description textarea{width:545px;height:75px;max-width:545px;max-height:300px;padding:5px;border:1px solid #ccc}.apply-returns-page .apply-container .goods-list-table .problem-description .up-image-tips{width:545px;background:#f5f5f5;border:1px solid #ccc;margin-bottom:15px;padding:3px 5px}.apply-returns-page .apply-container .goods-list-table .problem-description .up-image-list li{float:left;width:126px;height:126px;border:1px solid #ccc;padding:2px;display:inline-block;vertical-align:bottom;margin:0 0 10px 10px;background:url(../assets/img/home/up-pic-back.png?v155c47c0108) no-repeat;position:relative}.apply-returns-page .apply-container .goods-list-table .problem-description .up-image-list li:first-child{margin-left:0}.apply-returns-page .apply-container .goods-list-table .problem-description .up-image-list .btn-del{padding:8px;background:url(../assets/img/home/del-icon.png?v155c47c0108) no-repeat;color:#468fa2;display:inline-block;position:absolute;right:-1px;z-index:5;cursor:pointer}.apply-returns-page .apply-container .goods-list-table .problem-description .swfupload{background:#000}.apply-returns-page .apply-container .goods-list-table .problem-description .btn_upload_text{font-family:SimHei;font-size:16px;font-weight:700}.apply-returns-page .apply-container .refund-detail{padding-top:20px;text-align:center}.apply-returns-page .apply-container .refund-detail p{margin-bottom:25px}.apply-returns-page .apply-container .refund-detail p input[type=radio]{vertical-align:middle;margin:0 5px 0 40px}.apply-returns-page .apply-container .refund-detail .refund-pay-info p{height:23px;line-height:22px;padding-top:11px;color:#666;background:url(../assets/img/home/refund_tips.png?v155c47c0108) no-repeat;display:none}.apply-returns-page .apply-container .refund-detail .refund-pay-info tr{display:none}.apply-returns-page .apply-container .refund-detail .refund-pay-info .type-yoho-tips{width:515px;margin-left:160px}.apply-returns-page .apply-container .refund-detail .refund-pay-info .type-bank-tips{width:290px;margin-left:260px;background-position:0 -35px}.apply-returns-page .apply-container .refund-detail .refund-pay-info .type-alipay-tips{width:290px;margin-left:260px;background-position:0 -70px}.apply-returns-page .apply-container .refund-detail .refund-pay-table{width:100%;margin-bottom:25px}.apply-returns-page .apply-container .refund-detail .refund-pay-table td{padding:5px 0 5px 5px}.apply-returns-page .apply-container .refund-detail .refund-pay-table tr td:first-child{width:310px;text-align:right}.apply-returns-page .apply-container .exchange-detail{padding:30px}.apply-returns-page .apply-container .exchange-detail dt{font-weight:700;font-size:14px;color:#333;margin:10px 0}.apply-returns-page .apply-container .exchange-detail dd{padding:10px 5px}.apply-returns-page .apply-container .exchange-detail dd input[type=radio]{margin-left:50px;margin-top:0;vertical-align:middle}.apply-returns-page .apply-container .exchange-detail dd input[type=radio]:first-child{margin-left:0}.apply-returns-page .apply-container .exchange-detail dd>label{line-height:20px;width:100px;float:left;display:block}.apply-returns-page .apply-container .exchange-detail dd>label span{color:red}.apply-returns-page .apply-container .submit-box{text-align:center;margin-bottom:30px}.apply-returns-page .apply-container .submit-box .save-btn{width:138px;height:34px;border:0;background:url(../assets/img/home/submit-btn.png?v155c47c0108) no-repeat;color:#fff;font-size:14px;font-weight:700;padding-right:20px;cursor:pointer;display:inline-block;outline:none}.apply-returns-page .apply-container .submit-box .wait-gif{width:138px;height:34px;line-height:34px;font-size:14px;color:#8c8686;background:url(../assets/img/home/return-waiting.png?v155c47c0108) no-repeat top;vertical-align:top;display:none}.apply-returns-page .apply-container .submit-box .wait-gif span{display:inline-block;width:32px;text-align:left;padding-left:4px}.apply-returns-page .apply-container .applying .save-btn{display:none}.apply-returns-page .apply-container .applying .wait-gif{display:inline-block}.save-returns-page .title{background-image:url(../assets/img/home/refund-apply.png?v155c47c0108)}.save-returns-page .exchange .title{background-image:url(../assets/img/home/exchange-apply.png?v155c47c0108)}.save-returns-page .save-container{padding:10px}.save-returns-page .save-container h2{height:21px;line-height:21px;padding-left:23px;background:url(../assets/img/home/complaint-icon.png?v155c47c0108) no-repeat 5px 5px #efefef;border:1px solid #e6e6e6;font-size:12px;color:#333;font-weight:400}.save-returns-page .save-container .save-prompt{width:527px;margin:0 auto;padding:100px 0}.save-returns-page .save-container .save-prompt h1{font-size:30px;color:#9c0;margin-bottom:20px;font-weight:700;background:url(../assets/img/home/return-success-icon.png?v155c47c0108) no-repeat;cursor:pointer;display:inline-block;height:31px;line-height:31px;padding-left:45px}.save-returns-page .save-container .save-prompt p{font-size:12px;color:#999;line-height:23px}.save-returns-page .save-container .save-prompt p span{color:#9c0}.save-returns-page .save-container .save-prompt .retund-address{font-size:15px;font-weight:700;color:#333;margin-bottom:15px}.save-returns-page .save-container .save-prompt .backto-center{margin-top:30px}.save-returns-page .save-container .save-prompt .backto-center label{width:174px;height:35px;line-height:33px;font-size:14px;font-weight:700;color:#fff;text-align:center;display:inline-block;background:url(../assets/img/home/back-returns-btn.png?v155c47c0108) no-repeat;cursor:pointer}.save-returns-page .save-container .save-prompt .backto-center a:first-child{margin-right:15px}.save-returns-page .save-container .save-prompt .backto-center a:first-child label{background:url(../assets/img/home/back-orders-btn.png?v155c47c0108) no-repeat}.consult-me-page{font-size:12px}.consult-me-page .consult .title{background-image:url(../assets/img/home/consult.png?v155c47c0108)}.consult-me-page .consults{margin:10px}.consult-me-page .consults-table{width:100%;border:1px solid #e6e6e6}.consult-me-page .consults-table th{height:28px;line-height:28px;background:#efefef;padding:0 5px}.consult-me-page .consults-table td{color:#666;border-top:1px solid #e6e6e6;padding:5px;line-height:18px}.consult-me-page .consults-table td .thumb{width:60px;height:60px}.consult-me-page .consults-table td a{color:#468fa2;text-decoration:none}.consult-me-page .consults-table td a:hover{text-decoration:underline}.consult-me-page .consults-table td p{padding-left:20px;margin-top:5px;color:#999;word-break:break-all;overflow:hidden}.consult-me-page .consults-table td .question{color:#e9034e;background:url(../assets/img/home/consult-wd.png?v155c47c0108) no-repeat -13px 2px}.consult-me-page .consults-table td .reply{color:#390;background:url(../assets/img/home/consult-wd.png?v155c47c0108) no-repeat 0 -25px}.comment-me-page .comment .title{background-image:url(../assets/img/home/comment.png?v155c47c0108)}.comment-me-page .me-comment{padding:10px;font-size:12px;line-height:18px}.comment-me-page .main-tip span{color:#e8044f}.comment-me-page .comment-table-header{padding:0;margin-top:10px}.comment-me-page .comment-table-header .info{width:260px}.comment-me-page .comment-table-header .time{width:415px;border-left:1px solid #e6e6e6;border-right:1px solid #e6e6e6}.comment-me-page .comment-table-header .type{width:98px}.comment-me-page .comment-table{width:100%;margin-top:10px}.comment-me-page .comment-table tr{border:1px solid #e6e6e6}.comment-me-page .comment-table tr th{background:#efefef;padding:5px}.comment-me-page .comment-table tr td{color:#666;padding:5px;text-align:center}.comment-me-page .comment-table tr a{color:#468fa2;text-decoration:none}.comment-me-page .comment-table tr .remarked{color:#e8044f}.comment-me-page .comment-table tr .remark-btn{width:69px;height:22px;line-height:21px;border:0;background:url(../assets/img/home/remark-btn.png?v155c47c0108) no-repeat;cursor:pointer;color:#fff;outline:none}.comment-me-page .comment-table .remark-content{width:405px;border:1px solid #e6e6e6;word-break:break-all}.comment-me-page #comment-dialog-widget{position:absolute;padding:5px;border:1px solid #999;background:#fff;border-radius:4px;z-index:15}.comment-me-page #comment-dialog-widget .dialog-titlebar{height:16px;cursor:move}.comment-me-page #comment-dialog-widget .dialog-titlebar .dialog-close-btn{float:right;width:46px;height:16px;background:url(../assets/img/home/openbox_close.png?v155c47c0108) no-repeat 0 0;cursor:pointer}.comment-me-page #comment-dialog-widget .dialog-titlebar .dialog-close-btn:hover{background-position:0 -16px}.comment-me-page #comment-dialog-widget .dialog-content{padding:3px 30px}.comment-me-page #comment-dialog-widget .dialog-content dl{display:table-row}.comment-me-page #comment-dialog-widget .dialog-content dd{display:table-cell;vertical-align:top;font-size:13px;line-height:15px}.comment-me-page #comment-dialog-widget .dialog-content textarea{width:390px;height:80px;max-width:390px;max-height:240px;background:url(../assets/img/home/input-back.png?v155c47c0108) repeat-x;font-family:Trebuchet MS,Tahoma,Verdana,Arial,sans-serif}.comment-me-page #comment-dialog-widget .dialog-buttons{padding-right:30px}.comment-me-page #comment-dialog-widget .dialog-buttons button{color:#666;float:right;padding:8px 15px;margin-left:5px;border:1px solid #aaa;border-radius:3px;background-color:#f2f2f2;outline:none}.comment-me-page #comment-dialog-widget .dialog-buttons .dialog-save-btn{color:#fff;font-weight:700;border-color:#b5023d;background-color:#da0249}.complaint-me-page{font-size:12px}.complaint-me-page .complaint .title{background-image:url(../assets/img/home/complaints.png?v155c47c0108)}.complaint-me-page .me-complaints{padding:10px 10px 0}.complaint-me-page .me-complaints .empty-tip{padding:100px 0}.complaint-me-page .me-complaints .complaints-table-header{margin-bottom:10px}.complaint-me-page .me-complaints .complaint-item{padding:10px;border:1px solid #e6e6e6;margin-bottom:5px;color:#999;line-height:18px}.complaint-me-page .me-complaints .complaint-item .question{color:#e9034e;background:url(../assets/img/home/complaints-sd.png?v155c47c0108) no-repeat -13px 2px}.complaint-me-page .me-complaints .complaint-item .reply{color:#390;background:url(../assets/img/home/complaints-sd.png?v155c47c0108) no-repeat 0 -25px}.complaint-me-page .me-complaints .complaint-item .cancel-btn{width:68px;line-height:23px;text-align:center;color:#fff;background:url(../assets/img/home/remark-btn.png?v155c47c0108) no-repeat;display:inline-block;cursor:pointer}.complaint-me-page .me-complaints .complaint-item>div{display:inline-block;vertical-align:top}.complaint-me-page .me-complaints .info{width:280px;color:#000;text-align:left}.complaint-me-page .me-complaints .content{width:340px;text-align:left}.complaint-me-page .me-complaints .content p{padding-left:20px;margin-top:5px}.complaint-me-page .complaint-form{padding:10px}.complaint-me-page .complaint-form h2{clear:both;height:21px;line-height:21px;padding-left:23px;background:url(../assets/img/home/complaint-icon.png?v155c47c0108) no-repeat 5px 5px #efefef;border:1px solid #e6e6e6;font-size:12px;color:#333;font-weight:400}.complaint-me-page .complaint-form .form-content{font-size:12px;padding:7px 0}.complaint-me-page .complaint-form .form-content dl{padding:7px 5px;line-height:22px}.complaint-me-page .complaint-form .form-content dt{width:75px;color:#333;text-align:right;float:left}.complaint-me-page .complaint-form .form-content dd>input{width:150px;height:18px;line-height:18px}.complaint-me-page .complaint-form .form-content dd>input,.complaint-me-page .complaint-form .form-content dd>textarea{color:#333;border:1px solid #c9c9c9;background:url(../assets/img/home/input-back.png?v155c47c0108) repeat-x;vertical-align:top}.complaint-me-page .complaint-form .form-content dd>textarea{width:400px;height:80px;max-width:500px;max-height:320px;overflow:auto}.complaint-me-page .complaint-form .form-submit>input{width:138px;height:34px;margin-left:80px;border:0;background:url(../assets/img/home/submit-btn.png?v155c47c0108) no-repeat;color:#fff;font-size:14px;font-weight:700;text-align:center;padding-right:20px;cursor:pointer;display:inline-block}.message-me-page .message .title{background-image:url(../assets/img/home/message.png?v155c47c0108)}.message-me-page .message-table-header{font-size:12px}.message-me-page .message-table-header .sender{width:118px;padding-left:38px;text-align:left}.message-me-page .message-table-header .heading{width:408px;text-align:left}.message-me-page .message-table-header .time{width:130px}.message-me-page .message-table-header .action{padding-left:10px;width:66px}.message-me-page .message-list{padding:10px;font-size:12px}.message-me-page .message-list table{width:100%;line-height:38px}.message-me-page .message-list table tr{color:#999;border:1px solid #e6e6e6}.message-me-page .message-list table tr td{text-align:center}.message-me-page .message-list table tr input{vertical-align:middle;margin:0}.message-me-page .message-list table tr .del-btn{color:#468fa2;text-decoration:none;cursor:pointer}.message-me-page .message-list table .list-foot{background:#f8f8f8}.message-me-page .message-list table .list-foot button{float:left;line-height:18px;padding:2px 10px;border:1px solid #ccc;border-radius:2px;cursor:pointer;outline:none}.message-me-page .message-list table .list-foot .del-choose-btn{background:#da044a;border-color:#cc0345;margin-right:10px;color:#fff}.message-me-page .message-list table .list-foot .read-choose-btn{background:#ddd;color:#b3b3b3}.message-me-page .message-list table .list-foot .has-new{background:#3797af;border-color:#147e98;color:#fff}.message-me-page .message-list table .td-sender{width:110px;color:#666;text-align:left;white-space:nowrap;overflow:hidden}.message-me-page .message-list table .td-title{width:410px;padding-left:10px;color:#666;text-align:left;white-space:nowrap;overflow:hidden}.message-me-page .message-list table .new-msg{background:#f0f5f8;border-bottom:1px solid #becfd3}.message-me-page .message-list table .new-msg .td-sender a,.message-me-page .message-list table .new-msg .td-title a{font-weight:700;color:#468fa2}.content-message-page .title{background-image:url(../assets/img/home/message.png?v155c47c0108)}.content-message-page .title .back-list{font-size:12px;float:right;width:67px;height:22px;line-height:22px;margin-top:9px;padding-right:4px;text-align:center;color:#fdfdfd;display:inline-block;background:url(../assets/img/home/btn-more.png?v155c47c0108) no-repeat;cursor:pointer}.content-message-page .text-container{font-size:12px;line-height:18px;padding:20px}.content-message-page .text-container .text-title{margin-bottom:10px;padding-bottom:10px;border-bottom:1px dashed #999}.content-message-page .text-container .text-title span{color:#999}.content-message-page .text-container .coupon-item{display:table-row}.content-message-page .text-container .coupon-item>div{padding:10px 0;display:table-cell;vertical-align:middle}.content-message-page .text-container .coupon-item img{vertical-align:middle}.content-message-page .text-container .coupon-item a{width:90px;height:30px;line-height:30px;text-align:center;color:#b3b3b3;font-size:14px;background-color:#ddd;border:1px solid #ccc;border-radius:4px;display:inline-block;cursor:pointer}.content-message-page .text-container .coupon-item .coupon-img{width:160px;text-align:center}.content-message-page .text-container .coupon-item .coupon-info{width:470px;line-height:20px}.content-message-page .text-container .coupon-item .pick-coupon-btn,.content-message-page .text-container .coupon-item .view-coupon-btn{color:#fff;background:#da044a;border-color:#cc0345;display:inline-block}.content-message-page .text-container .sale-img{margin-bottom:15px;overflow:hidden}.content-message-page .text-container .sale-img img{vertical-align:top}.content-message-page .text-container .sale-btn{color:#fff;padding:0 10px;background:#e1044b;margin-top:15px;border:1px solid #c10241;border-radius:2px;display:inline-block;cursor:pointer}.vip-me-page .title{background-image:url(../assets/img/home/vip-img/vip-title.png?v155c47c0108)}.vip-me-page .vip-level{clear:both;overflow:hidden}.vip-me-page .level{margin:20px 15px 0 40px;line-height:31px;float:left;clear:both;font-size:14px;color:#000}.vip-me-page .vipimg1{background-image:url(../assets/img/home/vip-img/silver-vip.png?v155c47c0108)}.vip-me-page .vipimg1,.vip-me-page .vipimg2{margin-top:20px;width:138px;height:31px;float:left}.vip-me-page .vipimg2{background-image:url(../assets/img/home/vip-img/gold-vip.png?v155c47c0108)}.vip-me-page .vipimg3{margin-top:20px;width:138px;height:31px;float:left;background-image:url(../assets/img/home/vip-img/platinum-vip.png?v155c47c0108)}.vip-me-page .favimg{float:left;width:645px;margin-top:20px;overflow:hidden}.vip-me-page .list{width:145px;float:left;margin:0 10px 8px 0}.vip-me-page .imgsrc{width:25px;float:left;margin-top:5px}.vip-me-page .fav-font{line-height:31px;font-size:12px;margin-left:30px;color:#000}.vip-me-page .year-amount{float:left;width:600px;margin-top:20px}.vip-me-page .amount{float:left}.vip-me-page .amount,.vip-me-page .ps{font-size:14px;font-weight:700;line-height:31px}.vip-me-page .ps{margin-left:30px}.vip-me-page .plalevel{margin-top:7px;width:160px;height:21px;background-image:url(../assets/img/home/vip-img/platinum.png?v155c47c0108)}.vip-me-page .amount-length{width:400px;height:15px;margin-bottom:5px}.vip-me-page .img-length{width:293px;height:12px;background-color:#e0e0e0}.vip-me-page .amount-left{width:298px;height:12px;overflow:hidden;float:left}.vip-me-page .img-left{height:12px;background-color:#cda16c;z-index:7;float:left}.vip-me-page .img-right{width:5px;height:12px;float:left;z-index:7;background-image:url(../assets/img/sprite.home.png?v155c47c08d8);background-position:-39px -24px;margin-left:-5px}.vip-me-page .letter{width:100px;font-size:12px;margin-left:303px;line-height:10px;margin-bottom:2px}.vip-me-page .change-img0{width:293px;height:18px;background-image:url(../assets/img/home/vip-img/vip-change1.png?v155c47c0108)}.vip-me-page .change-img1{width:293px;height:18px;background-image:url(../assets/img/home/vip-img/vip-change2.png?v155c47c0108)}.vip-me-page .change-img2{width:293px;height:18px;background-image:url(../assets/img/home/vip-img/vip-change3.png?v155c47c0108)}.vip-me-page .balance{margin-top:7px;font-size:13px;font-weight:700;margin-bottom:10px}.vip-me-page .balance p{float:left}.vip-me-page .balance a{color:red;margin-left:10px;float:left}.vip-me-page .history{margin-top:10px;clear:both;overflow:hidden}.vip-me-page .hisamout{margin-left:10px}.vip-me-page .line{clear:both;width:703px;height:1px;margin-bottom:5px;margin-left:40px;margin-top:25px;background-color:#e8e8e8;overflow:hidden}.vip-me-page .valid{overflow:hidden}.vip-me-page .valid-time{clear:both;width:720px;height:175px;margin-left:40px;position:relative;font-size:14px}.vip-me-page .time1{float:left;width:135px;height:135px;border-right:2px dashed #000}.vip-me-page .time1-img{margin-top:95px;width:130px;height:33px;background-image:url(../assets/img/home/vip-img/time1.png?v155c47c0108)}.vip-me-page .time2{width:129px}.vip-me-page .time2,.vip-me-page .time3{float:left;height:175px;border-right:2px dashed #000}.vip-me-page .time3{width:354px}.vip-me-page .time4{float:left;width:90px;height:155px}.vip-me-page .time-top{display:block;font-size:13px;margin-top:10px;margin-left:10px;line-height:18px}.vip-me-page .time-top span{font-weight:700}.vip-me-page .time-top a{color:red}.vip-me-page .time2-img{margin-top:47px;width:131px;height:33px;background-color:#ecdbca}.vip-me-page .time-left{float:left;display:block;font-size:13px;margin-top:10px;margin-left:10px;line-height:18px}.vip-me-page .time-left span{font-weight:700}.vip-me-page .time-right{float:right;display:block;font-size:13px;margin-top:10px;margin-right:10px;line-height:18px}.vip-me-page .time-right span{font-weight:700}.vip-me-page .time3-img{color:#fff;line-height:33px;margin-top:93px;width:356px;height:33px;background-color:#cda16d;text-align:center}.vip-me-page .time4-img{margin-top:65px;width:62px;height:33px;border-color:#ecdbca #fff transparent transparent;border-style:solid solid dashed dashed;border-width:33px 20px 0 0}.vip-me-page .doubt{margin-left:40px;margin-bottom:25px;margin-top:20px;font-size:14px}.vip-me-page .doubt a{float:right;margin-right:55px}.vip-me-page .tell{color:red}.vip-me-page .time-line{position:absolute;width:703px;height:2px;background-color:#e8e8e8;margin-top:65px}.help-page{width:990px;font-size:12px;margin:0 auto 20px}.help-page .path-nav{padding:11px 0;border-bottom:0;padding-left:25px;background:url(../assets/img/help/home-icon.png?v155c47c0108) no-repeat 0 12px}.help-page .left-container{float:left;width:180px;margin-right:8px}.help-page .block{border:1px solid #dedede;border-radius:2px}.help-page .title{height:40px;line-height:40px;padding:0 8px;background-color:#e3e3e3;background-position:10px 12px;background-repeat:no-repeat}.help-page .help-navigation{background:#f8f8f8;margin-bottom:10px}.help-page .help-navigation .help-center{background-image:url(../assets/img/help/help-center.png?v155c47c0108)}.help-page .help-navigation dl{width:100%;height:40px;background:#efefef;border-top:1px solid #e6e6e6;border-bottom:1px solid #e6e6e6}.help-page .help-navigation dl dt{width:132px;height:22px;margin:10px 0 10px 7px;overflow:hidden;background:url(../assets/img/help/help-search.png?v155c47c0108) no-repeat;float:left}.help-page .help-navigation dl dt input{width:110px;border:0;background:none;margin:3px 10px}.help-page .help-navigation dl dd{width:31px;float:left;margin:10px 0}.help-page .help-navigation dl dd .search-btn{width:31px;height:22px;border:0;background:url(../assets/img/help/help-search.png?v155c47c0108) no-repeat -134px 0;cursor:pointer;text-indent:-999em}.help-page .help-navigation ul{width:154px;padding:8px 12px}.help-page .help-navigation ul li{line-height:20px;font-family:Arial,helvetica,sans-serif;margin:5px 0;padding-left:20px;color:#333;background:url(../assets/img/help/help-nav-li.png?v155c47c0108) no-repeat}.help-page .help-navigation ul .active{background-position:0 -20px}.help-page .help-navigation ul .active a{color:#fff}.help-page .help-service{background:#f8f8f8;line-height:15px}.help-page .help-service .service-center{background-image:url(../assets/img/help/yoho-service.png?v155c47c0108);background-position:10px 9px}.help-page .help-service .service-main{padding:12px}.help-page .help-service .service-main strong{color:#000;font-size:18px;font-weight:700;font-family:Arial,helvetica,sans-serif}.help-page .help-service .service-main p:first-child{margin-bottom:10px}.help-page .help-main{width:800px;float:left;line-height:18px}.help-page .help-main strong{font-weight:700}.help-page .help-main .help-content{padding:15px}.help-page .help-main .help-content a{color:#468fa2;text-decoration:underline}.search-help-page .search-content{padding:15px}.search-help-page .search-content h2{border-bottom:2px solid #eee;font-size:14px;color:#333;height:20px;line-height:20px;padding-top:10px}.search-help-page .search-content ul{margin:10px 0;display:block;min-height:20px}.search-help-page .search-content ul li{width:345px;height:20px;line-height:20px;padding:0 0 0 20px;margin:0 15px 5px 0;display:inline-block;overflow:hidden;background:url(../assets/img/help/ask-icon.png?v155c47c0108) no-repeat 2px 3px;font-family:Arial,helvetica,sans-serif}.search-help-page .search-content ul .faqs{color:#666;cursor:pointer}.search-help-page .search-content .full-search{line-height:22px;padding:10px 8px;background-color:#e3e3e3;font-size:14px;font-weight:700}.search-help-page .search-content .full-search label{padding:12px}.search-help-page .search-content .full-search .full-search-name{width:185px;height:22px;padding:0 10px;border:0;background:url(../assets/img/help/help-search.png?v155c47c0108) no-repeat 0 -22px}.search-help-page .search-content .full-search .search-btn{width:31px;height:22px;border:0;background:url(../assets/img/help/help-search.png?v155c47c0108) no-repeat -134px 0;cursor:pointer;text-indent:-999em}.search-help-page .search-content .full-search .yoho-im-btn{width:120px;height:20px;background:url(../assets/img/help/yoho-im.png?v155c47c0108);display:inline-block;vertical-align:middle;margin-left:10px;border:0;cursor:pointer}.search-help-page .search-content .empty-tip{padding:200px 0;text-align:center}.search-help-page .search-content .empty-tip span{color:#e8044f;font-weight:700}.search-help-page .search-content .all-ask-list{line-height:18px;padding-top:10px}.search-help-page .search-content .all-ask-list .ask-item{padding:10px}.search-help-page .search-content .all-ask-list .ask-item.even{border:1px solid #fbf0d5;background:#fefaf0}.search-help-page .search-content .all-ask-list .ask{min-height:10px;padding-left:20px;margin-bottom:10px;background:url(../assets/img/help/ask-icon.png?v155c47c0108) no-repeat 2px 2px}.search-help-page .search-content .all-ask-list .answer{padding-left:20px;color:#f07100;background:url(../assets/img/help/answer-icon.png?v155c47c0108) no-repeat 2px 2px}.search-help-page .search-content .search-pager{height:20px;padding:10px}.search-help-page .search-content .search-pager .pager-html{display:inline}.search-help-page .search-content .search-pager a{border:1px solid #cecece;padding:0 6px;height:18px;line-height:18px;border-radius:2px;margin-right:4px;background-color:#fff}.search-help-page .search-content .search-pager a.cur{background-color:#222;color:#fff}.search-help-page .dialog-widget{position:absolute;width:450px;padding:5px;border:1px solid #999;background:#fff;border-radius:4px;z-index:16}.search-help-page .dialog-widget .dialog-titlebar{height:16px;cursor:move}.search-help-page .dialog-widget .dialog-titlebar .dialog-close-btn{float:right;width:46px;height:16px;background:url(../assets/img/home/openbox_close.png?v155c47c0108) no-repeat 0 0;cursor:pointer}.search-help-page .dialog-widget .dialog-titlebar .dialog-close-btn:hover{background-position:0 -16px}.search-help-page .dialog-widget .dialog-content{padding:20px 30px}.search-help-page .dialog-widget .dialog-content p{line-height:20px;padding-left:20px;padding-bottom:10px;font-size:12px;background:url(../assets/img/help/ask-icon.png?v155c47c0108) no-repeat 2px 3px}.search-help-page .dialog-widget .dialog-content .answer{color:#f07100;background:url(../assets/img/help/answer-icon.png?v155c47c0108) no-repeat 2px 2px}.search-help-page .dialog-bg{position:fixed;top:0;left:0;width:100%;height:100%;background:#000;opacity:.2;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=20)";z-index:15}.order-ensure-page{width:990px;margin:40px auto}.order-ensure-page .order-edit{width:100%;position:relative;margin-bottom:35px}.order-ensure-page .order-edit .order-title{position:relative;margin-bottom:15px}.order-ensure-page .order-edit .order-title ul{display:block;background-image:url(../assets/img/sprite.order.png?v155c47c08d8);background-position:-247px 0;width:364px;height:12px;position:absolute;right:0;top:0}.order-ensure-page .order-edit .order-title ul li{display:block;width:33.33333333%;float:left;font-size:12px;color:#999;height:50px;line-height:50px;text-align:center;position:relative}.order-ensure-page .order-edit .order-title ul li.active{color:#333}.order-ensure-page .order-edit .order-title ul li.active:after{display:block;content:'';background-image:url(../assets/img/sprite.order.png?v155c47c08d8);background-position:-273px -46px;width:12px;height:12px;position:absolute;left:50%;margin-left:-6px;top:0}.order-ensure-page .order-edit .order-title ul li.first{text-align:left}.order-ensure-page .order-edit .order-title ul li.first.active:after{left:0;margin-left:0}.order-ensure-page .order-edit .order-title ul li.end{text-align:right}.order-ensure-page .order-edit .order-title ul li.end.active:after{right:0;margin-left:0}.order-ensure-page .order-edit .order-title:before{content:'';display:block;background-image:url(../assets/img/sprite.order.png?v155c47c08d8);background-position:0 -72px;width:117px;height:33px}.order-ensure-page .order-edit .order-title.cart-page-title:before{content:'';display:block;background-image:url(../assets/img/sprite.order.png?v155c47c08d8);background-position:-119px -72px;width:117px;height:33px}.order-ensure-page .order-edit .order-edit-main{border:1px solid #ccc;margin-top:20px}.order-ensure-page .order-edit .order-edit-main h2.title{height:30px;line-height:30px;background:#000;color:#fff;font-size:12px;text-indent:15px;overflow:hidden}.order-ensure-page .order-edit .order-edit-main h2.title a{display:block;width:90px;height:22px;background-image:url(../assets/img/sprite.order.png?v155c47c08d8);background-position:-521px -14px;float:right;margin-top:4px;margin-right:10px;cursor:pointer}.order-ensure-page .order-edit .order-edit-main .order-content{padding:5px 30px;font-size:12px;color:#333}.order-ensure-page .order-edit .order-edit-main .order-content .order-selection{border-bottom:1px dashed #ccc;padding:15px 0 0}.order-ensure-page .order-edit .order-edit-main .order-content .order-selection h2{font-size:14px;color:#000}.order-ensure-page .order-edit .order-edit-main .order-content .order-selection h2 span{color:#e8044f;text-decoration:underline;cursor:pointer}.order-ensure-page .order-edit .order-edit-main .order-content .address-list h2{margin-bottom:15px}.order-ensure-page .order-edit .order-edit-main .order-content .address-list ul li{padding:10px 0}.order-ensure-page .order-edit .order-edit-main .order-content .address-list ul li strong{font-weight:700;margin-right:15px}.order-ensure-page .order-edit .order-edit-main .order-content .address-list ul li input.radio{margin:0;vertical-align:middle}.order-ensure-page .order-edit .order-edit-main .order-content .address-list ul .order-modify-btn{display:inline-block;float:right;color:#e8044f;width:80px;padding-right:20px;height:auto;overflow:hidden}.order-ensure-page .order-edit .order-edit-main .order-content .address-list ul .order-modify-btn span{text-decoration:underline;cursor:pointer;float:right}.order-ensure-page .order-edit .order-edit-main .order-content .address-list ul .order-modify-btn span.address-modify{float:left}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list{min-height:35px}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list li{border:1px solid #fff;padding-left:15px}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list li strong{color:#e8044f}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list li .default-address,.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list li .order-modify-btn{display:none}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list li .default-address{margin-left:15px;color:#468fa2;text-decoration:underline}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list li .radio{display:none}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list li.has-exist-address .default-address{color:#468fa2;text-decoration:underline;cursor:pointer}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list.address-expand li .default-address,.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list.address-expand li .order-modify-btn,.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list.address-expand li .radio{display:inline-block}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list.address-expand li.active{background:#dbedf7;border:1px solid #8fb8e0}.order-ensure-page .order-edit .order-edit-main .order-content .address-list .exist-address-list.address-expand li.address_select .default-address{color:#999;text-decoration:none}.order-ensure-page .order-edit .order-edit-main .order-content .address-manage{margin-top:20px;border-top:1px dashed #ccc}.order-ensure-page .order-edit .order-edit-main .order-content .address-manage li{height:25px;line-height:25px}.order-ensure-page .order-edit .order-edit-main .order-content .address-manage li .address-legend{width:80px;text-align:right;display:inline-block;color:#333}.order-ensure-page .order-edit .order-edit-main .order-content .address-manage li .address-legend i{color:#e8044f}.order-ensure-page .order-edit .order-edit-main .order-content .address-manage li .text-input{height:25px;line-height:25px;width:180px;padding:0;border:1px solid #ccc}.order-ensure-page .order-edit .order-edit-main .order-content .address-manage li select.text-input{width:100px}.order-ensure-page .order-edit .order-edit-main .order-content .address-manage li .address-tel-input{width:180px;text-align:center;display:inline-block;height:25px;line-height:25px}.order-ensure-page .order-edit .order-edit-main .order-content .address-manage li .address-tel-input input{text-align:left;float:right;width:120px}.order-ensure-page .order-edit .order-edit-main .order-content .address-manage li .address-tel-input input.tel-lengend{float:left;width:40px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-btn,.order-ensure-page .order-edit .order-edit-main .order-content .save-btn{display:block;font-size:14px;color:#fff;font-weight:700;text-indent:25px;cursor:pointer;margin-bottom:15px}.order-ensure-page .order-edit .order-edit-main .order-content .save-btn{background-image:url(../assets/img/sprite.order.png?v155c47c08d8);background-position:0 -36px;width:200px;height:34px;line-height:34px}.order-ensure-page .order-edit .order-edit-main .order-content .save-btn.new-user-btn{width:245px;background-image:url(../assets/img/sprite.order.png?v155c47c08d8);background-position:0 0}.order-ensure-page .order-edit .order-edit-main .order-content .pay-btn{background-image:url(../assets/img/sprite.order.png?v155c47c08d8);background-position:0 -107px;width:90px;height:34px;line-height:34px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-btn.new-user-pay{background-image:url(../assets/img/sprite.order.png?v155c47c08d8);background-position:0 -36px;width:200px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time ul{padding:15px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time ul li{margin:10px 0}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time ul li input.radio{margin:0;vertical-align:middle}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time ul .prev-sell-item{color:#e8044f}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .pay-time-title{margin-top:20px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify h3{height:25px;line-height:25px;border:1px solid #e6e6e6;background:#efefef;text-indent:25px;position:relative}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify h3:after{content:'';display:block;width:11px;height:11px;background:url(../assets/img/order/roundgreybtn.gif?v155c47c0108);position:absolute;top:7px;left:8px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .pay-dashed-hr{border-bottom:1px dashed #ccc;padding-bottom:10px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .pay-type-tips{color:#999;padding-left:15px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify div.pay-type-legend{width:130px;display:inline-block;padding:0;text-indent:0}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify span.pay-type-legend{margin:0;color:#468fa2;cursor:pointer}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify span.pay-type-legend:after{content:'';width:12px;height:12px;background:url(../assets/img/order/icon-arrow.png?v155c47c0108);display:inline-block;transition:transform .3}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify span.pay-type-legend.active:after{transform:rotate(180deg)}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .support-type{display:block;margin-left:130px;border-left:1px dashed #ccc;font-size:12px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .support-type h4{padding:10px 0 10px 15px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .support-type ul{height:auto;overflow:hidden;margin:0;padding:0}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .support-type ul li{display:block;float:left;width:105px;height:30px;border:1px solid #ccc;margin:0 0 10px 15px}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .support-type ul li img{display:block;width:100%;height:100%;overflow:hidden}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .pay-recommend{font-size:0}.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .pay-recommend .pay-type-legend,.order-ensure-page .order-edit .order-edit-main .order-content .pay-time .pay-time-modify .pay-recommend .support-type{font-size:12px}.order-ensure-page .order-edit .order-edit-main .order-content .select-express{border-bottom:none}.order-ensure-page .order-edit .order-edit-main .order-content .select-express .sf{color:red;text-decoration:underline}.order-ensure-page .order-edit .order-edit-main .order-content .select-express .express-list{padding-left:15px;margin:10px 0}.order-ensure-page .order-edit .order-edit-main .order-content .select-express .express-list input.radio{margin:0;vertical-align:middle}.order-ensure-page .order-edit .order-edit-main .order-content .select-express .express-tips{color:#999}.order-ensure-page .order-pay{width:100%}.order-ensure-page .differentOrder{position:relative;width:100%}.order-ensure-page .differentOrder .warn{text-align:center;background:#fefbd5;font:initial;height:40px;line-height:40px;font-size:16px}.order-ensure-page .differentOrder .warn .red{color:red}.order-ensure-page .differentOrder .warn .why{background-image:url(../assets/img/sprite.order.png?v155c47c08d8);background-position:-247px -46px;width:26px;height:20px;display:inline-block;vertical-align:middle}.order-ensure-page .differentOrder .warn .why:hover{cursor:pointer}.order-ensure-page .differentOrder .differentBag:before{content:"";position:absolute;width:0;height:0;border-bottom:10px solid #000;border-left:10px solid transparent;border-right:10px solid transparent;top:-10px;right:219px}.order-ensure-page .differentOrder .differentBag{display:none;position:absolute;right:-10px;top:40px;width:510px;padding:0 50px;background:#fff;z-index:1;border:1px solid #000;font-size:14px}.order-ensure-page .differentOrder .bag{position:relative;border-bottom:1px solid #e0e0e0;margin-top:10px;padding:20px 0}.order-ensure-page .differentOrder .bag h3{height:30px;line-height:30px;font-weight:700;margin-left:15px}.order-ensure-page .differentOrder .bag .pre{background-position:0 -142px;left:-30px}.order-ensure-page .differentOrder .bag .next,.order-ensure-page .differentOrder .bag .pre{position:absolute;background-image:url(../assets/img/sprite.order.png?v155c47c08d8);width:30px;height:50px;top:70px;display:none}.order-ensure-page .differentOrder .bag .next{background-position:-32px -142px;right:-30px}.order-ensure-page .differentOrder .bag p{color:#767676;margin-left:15px}.order-ensure-page .differentOrder .bagDetil{position:relative;height:90px;width:510px;overflow:hidden;margin-bottom:20px}.order-ensure-page .differentOrder .bagDetil ul{list-style:none;position:absolute;left:0;clear:both;height:90px}.order-ensure-page .differentOrder .bagDetil ul li{float:left;width:102px;height:90px;line-height:90px;text-align:center;position:relative}.order-ensure-page .differentOrder .bagDetil ul li img{width:90px;height:90px}.order-ensure-page .differentOrder .bagDetil ul li p{position:absolute;bottom:0;background:#9c3;width:90px;height:1rem;line-height:1rem;color:#fff;margin-left:7px}.freebie-tag{background:#9c3}.advance-buy-tag{background:#fc1264}.virtual-good-tag{background:red}.presall-tag{background:blue}.order-pay{font-size:12px;line-height:150%}.order-pay .pay-wapper{border:1px solid #ccc;border-top:none}.order-pay .pay-wapper .cart-sub-total{font-weight:700}.order-pay .pay-wapper .cart-sub-total-all{font-weight:700;font-size:18px}.order-pay table{width:100%}.order-pay table td{border:1px solid #ccc;border-left:0 none;padding:10px;text-align:center}.order-pay thead{background:#000}.order-pay thead th{height:32px;line-height:32px;color:#fff;vertical-align:middle;text-align:center;font-weight:700}.order-pay thead .clo1{width:10%}.order-pay thead .clo2{width:20%}.order-pay thead .clo4{width:40%}.order-pay .pay-pro-icon{float:left;width:60px;height:60px;display:block;position:relative}.order-pay .pay-pro-icon span{width:100%;height:16px;line-height:16px;position:absolute;left:0;bottom:0;text-align:center;color:#fff;display:block;cursor:pointer}.order-pay .pay-pro-icon .incentive{background:#f74a87}.order-pay .pay-pro-icon .gift{background:#9c3}.order-pay .pay-pro-info{color:#999;margin-left:70px;text-align:left}.order-pay .pay-pro-info a{color:#468fa2;text-decoration:none;display:block}.order-pay .pay-pro-info a:hover{text-decoration:underline}.order-pay .play-content{padding:10px}.order-pay .play-content .red{color:#e8044f!important}.order-pay .play-content .orange{color:#f60!important}.order-pay .play-content .strong{font-weight:700;color:#000}.order-pay .play-content .pan dt{width:105px;height:30px;padding:0 0 0 30px;line-height:30px;text-align:left;border:0;color:#fff;display:inline-block;cursor:pointer;background:url(../assets/img/order/btn-openclose.png?v155c47c0108) no-repeat 0 -60px;margin-bottom:5px}.order-pay .play-content .pan dd{display:none;border:1px solid #ccc;padding:10px 15px;margin-bottom:10px}.order-pay .play-content .dropdown,.order-pay .play-content .textbox{height:20px;line-height:20px;color:#333;border:1px solid #c9c9c9;vertical-align:top}.order-pay .play-content .btn-group{text-align:right}.order-pay .play-content .btn-group input{display:inline-block;background:none;border:1px solid #ccc;border-radius:2px;height:20px}.order-pay .play-content .btn-group .ok{background-color:#000;color:#fff;cursor:pointer}.order-pay .play-content .btn-group .cancel{cursor:pointer}.order-pay .play-content .play-left{float:left;width:405px}.order-pay .play-content .play-left .pan{text-align:left}.order-pay .play-content .play-left .pan dt{color:#000;background-image:url(../assets/img/sprite.order.png?v155c47c08d8);background-position:-384px -14px}.order-pay .play-content .play-left .pan dt.active{background-image:url(../assets/img/sprite.order.png?v155c47c08d8);background-position:-247px -14px}.order-pay .play-content .play-piao-pan li{height:25px;padding:10px 0;line-height:22px}.order-pay .play-content .play-piao-pan li label{width:65px;display:inline-block}.order-pay .play-content .play-piao-pan li .textbox{width:200px}.order-pay .play-content .play-remark-pan .textbox{width:369px;height:70px}.order-pay .play-content .play-remark-pan .note{padding:5px 0;color:#999}.order-pay .play-content .play-right{float:right;width:50%;width:405px}.order-pay .play-content .play-right .pan{text-align:right}.order-pay .play-content .play-right .red-envelopes{width:200px;height:60px;border:1px dashed #000;margin-top:10px;float:right;padding:15px;font-size:12px;color:#000}.order-pay .play-content .play-right .red-envelopes.active{background:#fefccb}.order-pay .play-content .play-right .use-envelopes{font-weight:700}.order-pay .play-content .play-right .has-envelopes{margin-top:5px}.order-pay .play-content .play-right .has-envelopes span{font-weight:700}.order-pay .play-content .back-coin{text-align:right;height:30px;line-height:30px;padding-right:18px}.order-pay .play-content .back-coin .yoho-coin{width:14px;height:14px;display:inline-block;background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:-321px -225px;vertical-align:middle;margin-top:-2px;margin-right:4px}.order-pay .play-content .play-total{text-align:right;padding-bottom:20px}.order-pay .play-content .play-total .bi-modify,.order-pay .play-content .play-total .juan-modify{color:#468fa2;text-decoration:underline;cursor:pointer}.order-pay .play-content .play-total label{padding-right:10px}.order-pay .play-content .play-total em{width:80px;text-align:left;display:inline-block}.order-pay .play-content .play-total a{color:#468fa2;text-decoration:underline}.order-pay .play-content .play-total .total-express-w{color:#e80480}.order-pay .play-content .play-juan-pan dd{text-align:left}.order-pay .play-content .play-juan{padding:10px 0}.order-pay .play-content .play-juan .textbox{width:70px}.order-pay .play-content .play-juan [disabled=disabled]+label{color:#999}.order-pay .play-content .play-bi-pan dd{text-align:right}.order-pay .play-content .play-bi-pan .textbox{width:70px}.order-pay .play-content .play-bi-pan p{padding:10px 0}.order-pay .play-content .play-bi-pan p.errbitip{padding-top:0}.order-pay .to-play p{padding:10px 0;font-size:14px;text-align:right;color:#000}.order-pay .to-play p em{color:#e8044f;font-size:24px}.order-pay .to-play .btn-group{padding:10px 0 40px}.order-pay .to-play .btn-group .submit{float:right;width:133px;height:33px;padding:0;text-align:center;border:0;line-height:33px;font-size:14px;color:#fff;font-weight:700;background:url(../assets/img/order/btns.png?v155c47c0108) no-repeat 0 -33px;display:inline-block;cursor:pointer}.order-ensure-page .none{display:none}.order-ensure-page .gift{position:relative;width:988px;height:50px;background:url(../assets/img/cart/cart_gift.png?v155c47c0108) 0 0 repeat;border:1px solid #ccc;text-align:center}.order-ensure-page .gift p{background:url(../assets/img/cart/cart_gift_banner.jpg?v155c47c0108) 0 0 no-repeat;display:inline-block;width:450px;height:50px;overflow:hidden}.order-ensure-page .gift i{width:30px;height:30px;overflow:hidden;position:absolute;top:10px;right:5px;cursor:pointer}.order-ensure-page .gift .up{background-position:-329px -141px}.order-ensure-page .gift .down,.order-ensure-page .gift .up{background-image:url(../assets/img/sprite.cart.png?v155c47c08d8)}.order-ensure-page .gift .down{background-position:-332px -178px}.order-ensure-page .loading{width:120px;height:28px;overflow:hidden;position:absolute;left:50%;top:50%;display:none;line-height:30px;border:1px solid #ccc;font-size:12px;text-indent:10px;background:#fff}.order-ensure-page .loading span{width:20px;height:20px;float:left;margin:4px 4px 4px 13px;background:url(../assets/img/cart/loading_s.gif?v155c47c0108) 2px 2px no-repeat}.order-ensure-page .dev-revocation{border:1px solid #fcd081;background:#fff8d9;margin-bottom:15px}.order-ensure-page .dev-revocation td{border:none}.order-ensure-page .dev-revocation td a{color:#468fa2;margin-left:12px}.order-ensure-page .dev-revocation td a:hover{text-decoration:underline}.order-ensure-page .order-title{margin-top:30px;height:auto;overflow:hidden}.order-ensure-page .salesPromotion{width:990px;height:36px;border-bottom:1px solid #ccc;font-size:12px}.order-ensure-page .salesPromotion p{width:800px;height:36px;line-height:36px;float:left;padding:0 10px}.order-ensure-page .salesPromotion p b{margin-right:5px;background:#6c6c6c;border-radius:4px;padding:1px 5px;color:#fff}.order-ensure-page .salesPromotion span{width:150px;height:36px;padding:0 10px;line-height:36px;float:right;text-align:right;position:relative}.order-ensure-page .salesPromotion span i{position:absolute;top:11px;left:108px;float:left;width:13px;height:13px;background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:-357px -71px}.order-ensure-page .cartnew-tips{height:auto;overflow:hidden;font-size:12px;margin-bottom:5px}.order-ensure-page .cartnew-tips .tipsbox{width:648px;height:23px;line-height:18px;padding:4px 5px 4px 10px;color:#666;background:url(../assets/img/cart/cartnew_tipsbox.png?v155c47c0108) no-repeat;position:relative;float:left}.order-ensure-page .cartnew-tips .tipsbox .btn_close{width:17px;height:17px;padding:0;background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:-270px -225px;float:right;cursor:pointer}.order-ensure-page .cartnew-tips .tipsbox strong{color:#000;font-weight:700}.order-ensure-page .cartnew-tips .tipsbox a{color:#468fa2}.order-ensure-page .pay-wapper{position:relative}.order-ensure-page .pay-wapper .pre-sell .pre-sell-title{background:#fff9d9}.order-ensure-page .pay-wapper .pre-sell .pre-sell-title span{margin-right:10px}.order-ensure-page .pay-wapper .free{display:inline-block;width:39px;height:20px;background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:-150px -225px}.order-ensure-page .pay-wapper .fold,.order-ensure-page .pay-wapper .none{display:none}.order-ensure-page .pay-wapper .vipPrice{color:#e8044f;display:block}.order-ensure-page .pay-wapper .presell{color:#c21250;display:block}.order-ensure-page .pay-wapper .giftInfo{margin-left:30px}.order-ensure-page .pay-wapper .pay-pro-info{padding-left:15px;padding-top:10px;margin-left:0;float:left}.order-ensure-page .pay-wapper .pay-pro-info a{width:200px}.order-ensure-page .pay-wapper .pre-sell-box .cart-empty{border:none;padding:100px 0 100px 260px;background:url(../assets/img/cart/cart_empty.gif?v155c47c0108) 200px 56px no-repeat}.order-ensure-page .pay-wapper .pre-sell-box .cart-empty a{display:inline-block;width:90px;height:35px;background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:-237px -141px;overflow:hidden;color:#666;line-height:32px}.order-ensure-page .pay-wapper .pre-sell-box .incentive{background:#000100;color:#fff}.order-ensure-page .pay-wapper .tip-message{background:#e8044f;color:#fff;font-size:12px;margin-top:5px}.order-ensure-page .pay-wapper .cart-product-num{font-size:12px;text-align:left;height:33px;line-height:33px;background:#f8f8f8;padding:0 10px;position:relative}.order-ensure-page .pay-wapper .cart-product-num strong{padding-left:20px;font-weight:700}.order-ensure-page .pay-wapper .cart-product-num .icon-minusCart{background-position:-289px -225px}.order-ensure-page .pay-wapper .cart-product-num .icon-addCart,.order-ensure-page .pay-wapper .cart-product-num .icon-minusCart{position:absolute;top:9px;left:15px;float:left;width:15px;height:15px;cursor:pointer;background-image:url(../assets/img/sprite.cart.png?v155c47c08d8)}.order-ensure-page .pay-wapper .cart-product-num .icon-addCart{background-position:-305px -225px}.order-ensure-page .pay-wapper .cart-product-num .icon-zp{position:absolute;top:8px;left:10px;float:left;width:18px;height:19px;background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:-251px -225px}.order-ensure-page .pay-wapper .cart-product-num .cart-unfold{position:absolute;top:0;right:10px}.order-ensure-page .pay-wapper .cart-product-num .cart-unfold i{width:28px;height:20px;overflow:hidden;display:inline-block;margin-top:5px;cursor:pointer}.order-ensure-page .pay-wapper .cart-product-num .cart-btn-pre{background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:-191px -225px}.order-ensure-page .pay-wapper .cart-product-num .cart-btn-next{background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:-221px -225px}.order-ensure-page .pay-wapper .cart-product-num .unfold-color{color:#666;cursor:pointer}.order-ensure-page .pay-wapper .cart-product-num .cart-page p{float:left;padding-right:5px}.order-ensure-page .pay-wapper .cart-product-num .cart-page .f-red{color:red}.order-ensure-page .pay-wapper .cart-product-num input{position:relative;top:2px}.order-ensure-page .pay-wapper input.cart-item-check{float:left;margin-top:25px;margin-left:15px}.order-ensure-page .pay-wapper .adjust-cart-num input{width:30px;margin:0 5px;text-align:center}.order-ensure-page .pay-wapper .adjust-cart-num span{display:inline-block;width:11px;height:11px;cursor:pointer;font-size:10px}.order-ensure-page .pay-wapper .adjust-cart-num .minus{background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:-357px -119px}.order-ensure-page .pay-wapper .adjust-cart-num .plus{background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:-357px -106px}.order-ensure-page .pay-wapper .cart-add-btn{width:118px;height:32px;display:inline-block;overflow:hidden;border:0;cursor:pointer;line-height:32px}.order-ensure-page .pay-wapper .zp{background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:-237px -71px}.order-ensure-page .pay-wapper .order{background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:-237px -106px}.order-ensure-page .pay-wapper .cart-yetremove-btn{height:20px;line-height:21px;padding:0 10px;display:inline-block;color:#b3b3b3;position:relative;border:1px solid #dcdcdc;background:#ebebeb;border-radius:3px}.order-ensure-page .pay-wapper .cart-del-btn,.order-ensure-page .pay-wapper .cart-remove-btn{height:22px;line-height:21px;padding:0 10px;display:inline-block;cursor:pointer;color:#666;position:relative}.order-ensure-page .pay-wapper .cart-del-btn span,.order-ensure-page .pay-wapper .cart-remove-btn span{position:relative;z-index:9}.order-ensure-page .pay-wapper .cart-del-btn:after,.order-ensure-page .pay-wapper .cart-remove-btn:after{content:'';display:block;width:16px;height:100%;background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:-102px -248px;position:absolute;right:0;top:0;z-index:7}.order-ensure-page .pay-wapper .cart-del-btn:before,.order-ensure-page .pay-wapper .cart-remove-btn:before{content:'';display:block;width:100%;height:100%;background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:0 -225px;position:absolute;left:0;top:0}.order-ensure-page .cartnew-sum{background:#efefef;border:1px solid #ccc;padding:10px;margin-bottom:10px;zoom:1;margin-top:20px;height:auto;overflow:hidden;font-size:12px}.order-ensure-page .cartnew-sum .left{float:left}.order-ensure-page .cartnew-sum .left a{color:#333;margin-left:20px}.order-ensure-page .cartnew-sum .left input{position:relative;top:2px}.order-ensure-page .cartnew-sum .right{float:right;text-align:right}.order-ensure-page .cartnew-sum .right strong{color:#e8044f;font-size:18px}.order-ensure-page .cartnew-sum .sum{color:#333;font-weight:700;padding-bottom:5px}.order-ensure-page .cartnew-sum .yoho-coin{width:14px;height:14px;display:inline-block;background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:-321px -225px;vertical-align:middle;margin-top:-2px;margin-right:4px}.order-ensure-page .cartnew-submit{padding:10px 0 40px;text-align:right;position:relative}.order-ensure-page .cartnew-submit .btn_continue{width:60px;padding:0 0 0 33px;text-align:left;color:#333;background-position:-237px -178px;float:left}.order-ensure-page .cartnew-submit .btn_account,.order-ensure-page .cartnew-submit .btn_continue{height:33px;border:0;line-height:33px;font-size:14px;font-weight:700;background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);display:inline-block;cursor:pointer}.order-ensure-page .cartnew-submit .btn_account{width:133px;padding:0;text-align:center;color:#fff;background-position:-237px 0;float:right}.order-ensure-page .cartnew-submit .go_cash_tips{font-size:12px;width:200px;padding:5px 7px 0 28px;height:45px;position:absolute;right:135px;top:10px;text-align:left;color:#e8044f;background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:0 0;display:block}.order-ensure-page .cartnew-submit .btn_account_disabled{width:133px;height:33px;padding:0;text-align:center;border:0;line-height:33px;font-size:14px;color:#ccc;font-weight:700;background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:-237px -36px;display:inline-block;cursor:pointer}.order-ensure-page .cartnew-goodslist{margin-bottom:10px;font-size:12px;border:1px solid #ccc}.order-ensure-page .cartnew-goodslist .title{height:20px;padding:8px 10px;background:#efefef}.order-ensure-page .cartnew-goodslist .title h2{height:20px;line-height:24px;overflow:hidden;font-size:12px;float:left;cursor:pointer}.order-ensure-page .cartnew-goodslist .title h2 i{width:15px;height:15px;float:left;position:relative;top:4px;margin-right:5px}.order-ensure-page .cartnew-goodslist .title h2 .icon-minus{background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:-289px -225px}.order-ensure-page .cartnew-goodslist .title h2 .icon-add{background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:-305px -225px}.order-ensure-page .cartnew-goodslist .right{float:right}.order-ensure-page .cartnew-goodslist .right span{width:28px;height:22px;display:inline-block}.order-ensure-page .cartnew-goodslist .right .pageprev{background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:-191px -225px}.order-ensure-page .cartnew-goodslist .right .pagenext{background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:-221px -225px}.order-ensure-page .cartnew-goodslist .main{height:230px;border-top:1px solid #e3e3e3;display:block}.order-ensure-page .cartnew-goodslist .main ul{height:auto;width:100%;overflow:hidden}.order-ensure-page .cartnew-goodslist .main li{width:16.6667%;box-sizing:border-box;height:230px;border-right:1px solid #e3e3e3;float:left}.order-ensure-page .cartnew-goodslist .main li.end{border:none}.order-ensure-page .cartnew-goodslist .main .list{width:102px;padding:10px 0 0;margin:0 auto}.order-ensure-page .cartnew-goodslist .main .thumb{height:110px}.order-ensure-page .cartnew-goodslist .main .thumb img{display:block;margin:0 auto}.order-ensure-page .cartnew-goodslist .main .name{height:35px;overflow:hidden;font-size:12px}.order-ensure-page .cartnew-goodslist .main .name h3{height:30px;line-height:15px;font-size:12px;font-weight:400;color:#333;cursor:pointer;overflow:hidden}.order-ensure-page .cartnew-goodslist .main .name a{color:#333;text-decoration:underline}.order-ensure-page .cartnew-goodslist .main .price{color:#333;height:25px;line-height:25px;font-weight:700;white-space:nowrap;overflow:hidden;text-align:center;font-size:12px}.order-ensure-page .cartnew-goodslist .main .price del{color:#999}.order-ensure-page .cartnew-goodslist .main .op{text-align:center;padding:0 0 5px}.order-ensure-page .cartnew-goodslist .main .btn_view_s{width:100px;height:22px;background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:0 -248px;display:inline-block;border:0}.shop-cart .goods-detail{position:absolute;top:10%;left:0;z-index:10;width:650px;height:auto;overflow:hidden;border:1px solid #ccc;border-radius:5px;background:#fff;display:none}.shop-cart .goods-detail .magnify{position:absolute;width:12px;height:12px;background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:-357px -85px;bottom:2px;right:2px}.shop-cart .goods-detail .detail-header{display:block;font-size:12px;line-height:16px;text-align:center;color:#fff;margin-top:5px;box-sizing:border-box;padding-right:5px;height:16px;cursor:move}.shop-cart .goods-detail .detail-header .colse{float:right;width:46px;height:16px;background:#ccc;border-radius:2px;cursor:pointer}.shop-cart .goods-detail .detail-header .colse:hover{background:#414141}.shop-cart .goods-detail .detail-body{width:610px;padding:15px;margin:0 auto}.shop-cart .goods-detail .detail-body .none{display:none}.shop-cart .goods-detail .detail-body .detail-bigpic{width:290px;padding-bottom:15px;float:left}.shop-cart .goods-detail .detail-body .detail-bigpic .bigpic{width:210px;height:280px;display:block;margin:0 auto 10px}.shop-cart .goods-detail .detail-body .detail-bigpic .bigpic img{width:100%;height:auto}.shop-cart .goods-detail .detail-body .detail-bigpic .piclist{height:65px;cursor:pointer}.shop-cart .goods-detail .detail-body .detail-bigpic .piclist span{width:10px;height:60px}.shop-cart .goods-detail .detail-body .detail-bigpic .piclist .pre{background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:0 -304px;float:left}.shop-cart .goods-detail .detail-body .detail-bigpic .piclist .con{width:260px;height:65px;overflow:hidden;float:left;margin-left:5px}.shop-cart .goods-detail .detail-body .detail-bigpic .piclist .con li{float:left;width:58px;height:58px;border:1px solid #ccc;margin:1px;vertical-align:top;overflow:hidden;text-align:center}.shop-cart .goods-detail .detail-body .detail-bigpic .piclist .con li img{width:auto;height:100%;display:inline-block}.shop-cart .goods-detail .detail-body .detail-bigpic .piclist .con .active{width:56px;height:56px;border:2px solid #333}.shop-cart .goods-detail .detail-body .detail-bigpic .piclist .next{background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:-12px -304px;float:right}.shop-cart .goods-detail .detail-body .detail-info{width:300px;float:right;padding-bottom:15px}.shop-cart .goods-detail .detail-body .detail-info .title{padding:5px 0}.shop-cart .goods-detail .detail-body .detail-info .title h2{width:300px;color:#000;font-size:12px;font-weight:400;white-space:nowrap;overflow:hidden}.shop-cart .goods-detail .detail-body .detail-info .arrivalDate{color:red}.shop-cart .goods-detail .detail-body .detail-info .type{padding-bottom:10px}.shop-cart .goods-detail .detail-body .detail-info .type .type-s{background:#ccc;padding:0 5px;color:#fff;font-size:12px;height:15px;line-height:15px;display:inline-block}.shop-cart .goods-detail .detail-body .detail-info .price{padding:0 0 10px;margin-bottom:10px;border-bottom:1px solid #000}.shop-cart .goods-detail .detail-body .detail-info .price .oldprice{color:#999;font-size:14px;font-weight:700;display:block;padding-bottom:5px}.shop-cart .goods-detail .detail-body .detail-info .price .newprice{color:#000;font-size:14px;font-weight:700;height:30px;line-height:30px;padding:0 0 5px}.shop-cart .goods-detail .detail-body .detail-info .price .newprice b{font-size:22px;font-family:arial}.shop-cart .goods-detail .detail-body .detail-info .order{color:#000;font-size:12px}.shop-cart .goods-detail .detail-body .detail-info .order dd{width:55px;float:left;padding-bottom:8px}.shop-cart .goods-detail .detail-body .detail-info .order dt{width:245px;float:left;padding-bottom:8px}.shop-cart .goods-detail .detail-body .detail-info .order dd.colorBox{line-height:44px}.shop-cart .goods-detail .detail-body .detail-info .order .colorBox{height:75px}.shop-cart .goods-detail .detail-body .detail-info .order .colorBox li{width:44px;height:65px;overflow:hidden;text-align:center;margin-right:4px;display:inline;float:left;cursor:pointer}.shop-cart .goods-detail .detail-body .detail-info .order .colorBox li .atcive{width:40px;height:40px;border:2px solid #e8044f}.shop-cart .goods-detail .detail-body .detail-info .order .colorBox li .atcive span{position:absolute;bottom:0;right:0;width:11px;height:11px;overflow:hidden;background:url(../assets/img/cart/ico_r_act.png?v155c47c0108) 0 0 no-repeat}.shop-cart .goods-detail .detail-body .detail-info .order .colorBox li p{width:42px;height:42px;margin:0;display:inline-block;border:1px solid #ccc;position:relative}.shop-cart .goods-detail .detail-body .detail-info .order .colorBox li p img{width:100%;height:auto}.shop-cart .goods-detail .detail-body .detail-info .order .colorBox li span{line-height:20px}.shop-cart .goods-detail .detail-body .detail-info .order .showSizeBox{height:25px;line-height:18px}.shop-cart .goods-detail .detail-body .detail-info .order .showSizeBox span{cursor:pointer;height:18px;padding:0 10px;border:1px solid #ccc;margin:1px 5px 5px 1px;display:inline;float:left;overflow:hidden}.shop-cart .goods-detail .detail-body .detail-info .order .showSizeBox .atcive{height:16px;border:2px solid red;background:url(../assets/img/cart/ico_r_act.png?v155c47c0108) 100% 100% no-repeat}.shop-cart .goods-detail .detail-body .detail-info .order .showSizeBox .null-atcivec{height:18px;border:1px solid #ccc;color:#ccc}.shop-cart .goods-detail .detail-body .detail-info .order .showSizeBox .atcivec{height:16px;border:2px solid #ccc;background:url(../assets/img/cart/ico_r_act_h.png?v155c47c0108) 100% 100% no-repeat;color:#ccc}.shop-cart .goods-detail .detail-body .detail-info .order .amount_wrapper{width:100px;height:20px;display:inline-block}.shop-cart .goods-detail .detail-body .detail-info .order .amount_wrapper .amount{width:12px;height:12px;display:inline;cursor:pointer;border:0;float:left;font-size:10px;color:#c4c4c4}.shop-cart .goods-detail .detail-body .detail-info .order .amount_wrapper .cut{background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:-357px -119px;margin:5px 5px 0 0}.shop-cart .goods-detail .detail-body .detail-info .order .amount_wrapper .add{background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:-357px -106px;margin:5px 0 0 5px}.shop-cart .goods-detail .detail-body .detail-info .order .amount_wrapper .mnum{width:33px;height:18px;line-height:16px;border:1px solid #c4c4c4;text-align:center;overflow:hidden;float:left;font-size:12px}.shop-cart .goods-detail .detail-body .detail-info .submit{padding-top:10px;float:left}.shop-cart .goods-detail .detail-body .detail-info .submit input{width:225px;height:45px;overflow:hidden;border:0;cursor:pointer;float:left}.shop-cart .goods-detail .detail-body .detail-info .submit .addcart{background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:0 -146px}.shop-cart .goods-detail .detail-body .detail-info .submit .btn_pre_sale{background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:0 -52px}.shop-cart .goods-detail .detail-body .detail-info .submit .btn_sellout{background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:0 -99px}.shop-cart .goods-detail .detail-body .detail-info .submit .fav_count{background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:0 -193px;height:30px}.shop-cart .goods-detail .detail-body .detail-size{float:left;border-top:1px dashed #ccc;width:100%;height:auto;padding-bottom:15px}.shop-cart .goods-detail .detail-body .detail-size h3{height:35px;line-height:35px;font-size:14px}.shop-cart .goods-detail .detail-body .detail-size h3 span{font-size:12px}.shop-cart .goods-detail .detail-body .detail-size table{width:100%;height:auto;border:1px solid #ccc;margin-bottom:5px;font-size:12px}.shop-cart .goods-detail .detail-body .detail-size table td{border:1px solid #fff;padding:3px;font-weight:400;background:#fbfbfb;text-align:center;padding:8px 3px}.shop-cart .goods-detail .detail-body .detail-size table tr:nth-of-type(even) td{background:#f4f4f4}.shop-cart .goods-detail .detail-body .detail-size .size-info{font-size:12px;color:#999}.shopping-pay-page{margin:25px auto}.shopping-pay-page .pay-page{width:100%;position:relative}.shopping-pay-page .not-pay{width:680px;height:400px;margin:0 auto;overflow:hidden;padding-top:100px;padding-left:200px}.shopping-pay-page .not-pay p{padding-left:30px;line-height:32px}.shopping-pay-page .not-pay .success{background:url(../assets/img/pay/success.png?v155c47c0108) no-repeat 0}.shopping-pay-page .not-pay a{margin-top:40px;margin-left:140px;float:left;color:#c5c5c5}.shopping-pay-page .pay-title{width:980px;height:52px;overflow:hidden;padding:20px 0 0;margin:0 auto;border-bottom:2px solid #000}.shopping-pay-page .pay-title ul{width:446px;height:12px;float:right;list-style:none;padding:0;margin:0;background:url(../assets/img/pay/pay-list.png?v155c47c0108) no-repeat 100% 0}.shopping-pay-page .pay-title li{width:176px;height:12px;text-align:center;color:#999;float:left}.shopping-pay-page .pay-title li span{display:block;height:15px;padding:15px 0 0;line-height:15px;font-size:12px}.shopping-pay-page .pay-title .end{width:93px;height:18px;color:#000}.shopping-pay-page .pay-title .end span{text-align:right}.shopping-pay-page .step4{height:24px;width:99px;overflow:hidden;background-image:url(../assets/img/pay/pay-title.png?v155c47c0108);float:left}.shopping-pay-page .step5{height:31px;width:117px;overflow:hidden;background-image:url(../assets/img/pay/bc.png?v155c47c0108);float:left}.shopping-pay-page .cart-pay{width:980px;margin:25px auto}.shopping-pay-page .cart-pay h2{width:950px;height:40px;padding:0 0 0 30px;line-height:40px;color:#000;font-size:20px;font-family:Arial,helvetica,sans-serif;background:url(../assets/img/pay/cat-pay.png?v155c47c0108) no-repeat 0 11px;font-weight:400}.shopping-pay-page .cart-pay h3{height:40px;line-height:40px;font-weight:400;color:#666;font-size:12px;margin:0}.shopping-pay-page .cart-pay h3 strong{color:#e8044f;font-size:14px;font-weight:700}.shopping-pay-page .cart-pay h4{height:30px;line-height:30px;color:#000;font-size:14px;display:block;margin:0}.shopping-pay-page .wrapper{width:980px;margin:25px auto;overflow:hidden;border-top:2px solid #d9d9d9;padding-top:19px}.shopping-pay-page .pay-way{width:980px;height:32px;margin-bottom:27px;overflow:hidden;margin:30 auto}.shopping-pay-page .word{display:block;float:left;line-height:32px;font-size:16px;margin-right:10px}.shopping-pay-page .pay-type-img{height:30px;float:left;vertical-align:middle}.shopping-pay-page #tab-box{width:980px;margin-top:30px}.shopping-pay-page .tab-conbox,.shopping-pay-page .tabs{border-bottom:1px solid #d9d9d9}.shopping-pay-page .tabs{height:40px;padding-left:20px;background:#fff}.shopping-pay-page .tabs li{height:40px;width:85px;line-height:40px;float:left;margin-bottom:-1px;background:#ededed;overflow:hidden;position:relative;margin-left:20px;font-size:12px}.shopping-pay-page .tabs li a{display:block;outline:none;font-size:12px;text-align:center}.shopping-pay-page .tabs li.thistab{background:#fff;border-bottom:1px solid #fff;border:1px solid #d9d9d9;border-bottom:none}.shopping-pay-page .tab-con{padding-top:30px;font-size:14px;line-height:175%;overflow:hidden}.shopping-pay-page .none{display:none}.shopping-pay-page .count{width:1020px;height:170px}.shopping-pay-page .mode{width:210px;height:50px;border:1px solid #d9d9d9;margin-right:45px;margin-bottom:30px;float:left;box-sizing:border-box;text-align:center;vertical-align:middle;display:block;position:relative;line-height:44px}.shopping-pay-page .mode img{vertical-align:middle;outline:none}.shopping-pay-page .mode:hover{border:1px solid red}.shopping-pay-page .choosed-tag{background-image:url(../assets/img/pay/mode-top.png?v155c47c0108);height:22px;width:23px;position:absolute;top:0;right:0}.shopping-pay-page .choose-type,.shopping-pay-page .choose-type:hover{border:2px solid red}.shopping-pay-page .btn-wrapper{width:100%;padding-top:21px;margin-top:10px;margin-bottom:55px}.shopping-pay-page .btnby{outline:none;background:url(../assets/img/pay/pay-btn.png?v155c47c0108) no-repeat 100% 0;background-repeat:no-repeat;background-position:191px;float:right;width:230px;height:40px;line-height:40px;background-color:#da0040;color:#fff;font-size:16px;border:none;font-weight:700;font-family:arial,Microsoft YaHei!important}.shopping-pay-page .light-box{display:block;position:fixed;width:100%;height:100%;z-index:17;top:0;left:0;font-family:Microsoft Yahei;display:none}.shopping-pay-page .opacity{width:100%;height:1000px;background:#000;filter:Alpha(Opacity=50);opacity:.5;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";overflow:hidden;position:absolute;top:0;left:0}.shopping-pay-page .content{margin-left:-203px;margin-top:-124px;padding:50px 40px;background-color:#fff;position:absolute;top:50%;left:50%;box-shadow:0 0 8px #e8e8e8}.shopping-pay-page .notice{padding:26px 14px;line-height:20px;font-size:13px;color:#9f9f9f}.shopping-pay-page .btns a{width:134px;height:38px;line-height:38px;color:#fff;font-size:14px;margin:0 14px;display:inline-block;text-align:center;text-decoration:none}.shopping-pay-page .change{background:#bdbdbd}.shopping-pay-page .over{background:#da0040}.shopping-pay-page .close a{text-decoration:none;color:#666;outline:none}.shopping-pay-page .close,.shopping-pay-page .close a{width:30px;height:30px;line-height:30px;position:absolute;top:0;right:0;font-size:16px;font-family:arial;text-align:center}.shopping-cashondelivery-page{width:860px;margin:0 auto;font-family:arial,Microsoft YaHei;font-size:12px;text-align:left;line-height:150%}.shopping-cashondelivery-page .cart-order{width:860px;margin-top:70px}.shopping-cashondelivery-page .cart-order h1{height:70px;line-height:40px;color:#333;text-align:center;font-size:20px;font-family:Arial,helvetica,sans-serif}.shopping-cashondelivery-page .ok-br{width:30px;height:30px;background:url(../assets/img/pay/ok.png?v155c47c0108) no-repeat;display:inline-block;vertical-align:middle}.shopping-cashondelivery-page .list-box{border:1px solid #dadada;border-top:10px solid #000;border-bottom:0;margin-bottom:20px;font-size:14px}.shopping-cashondelivery-page .list-t{height:36px;line-height:36px;background:#f3f3f3;text-align:center;color:#333;border-bottom:1px solid #dadada}.shopping-cashondelivery-page .list-t .yoho-coin{width:14px;height:14px;display:inline-block;background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:-321px -225px;vertical-align:middle;margin-top:-2px;margin-right:4px}.shopping-cashondelivery-page .li-1{width:170px;height:36px;border-right:1px solid #dadada;font-weight:700;float:left}.shopping-cashondelivery-page .li-1 a{text-decoration:none;color:#468fa2;outline:none}.shopping-cashondelivery-page .li-2,.shopping-cashondelivery-page .li-3,.shopping-cashondelivery-page .li-4{width:170px;height:36px;border-right:1px solid #dadada;float:left}.shopping-cashondelivery-page .li-5{width:170px;height:36px;float:left}.shopping-cashondelivery-page .list{height:36px;line-height:36px;background:#fff;text-align:center;border-bottom:1px solid #dadada;font-size:14px}.shopping-cashondelivery-page .f-rz{font-weight:700;font-size:14px;color:#e8044f}.shopping-cashondelivery-page .f-e{color:#468fa2}.shopping-cashondelivery-page .f-a{color:#e8044f}.shopping-cashondelivery-page .list-b{border:1px solid #fdcf74;background:#fcfbdd;color:#976637;padding:20px;line-height:1.8;margin-bottom:20px;font-family:Arial,helvetica,sans-serif}.shopping-cashondelivery-page .list-b a{text-decoration:none;color:#468fa2;outline:none}.shopping-cashondelivery-page .list-b b{color:#c00}.shopping-cashondelivery-page .pay-mode{color:#666}.shopping-cashondelivery-page .btns{text-align:center;padding:20px 0;margin-bottom:150px}.shopping-cashondelivery-page .btns a{display:inline-block;height:33px;line-height:33px;text-align:center;font-size:14px;font-weight:700;cursor:pointer;border-radius:4px}.shopping-cashondelivery-page .btns .check-order{background:#da034a;color:#fff;border:1px solid #9d0134;width:134px;margin-right:15px}.shopping-cashondelivery-page .btns .return-home{background:#eee;color:#000;border:1px solid #b0b0b0;width:97px}.pay-notice-page{width:860px;margin:70px auto;font-size:12px}.pay-notice-page .font-red{color:#e8044f}.pay-notice-page h1{height:70px;line-height:40px;color:#333;text-align:center;font-size:20px;font-family:Arial,helvetica,sans-serif}.pay-notice-page .ok-icon{display:inline-block;width:30px;height:30px;background:url(../assets/img/pay/ok.png?v155c47c0108) no-repeat;vertical-align:text-top}.pay-notice-page .order-info{border-right:1px solid #dadada;border-top:10px solid #000;margin-bottom:20px}.pay-notice-page .table-row{height:36px;line-height:36px;text-align:center;color:#333;border-bottom:1px solid #dadada}.pay-notice-page .table-row .order-num,.pay-notice-page .table-row .pay,.pay-notice-page .table-row em{font-weight:700}.pay-notice-page .table-row .pay-mode{color:#666}.pay-notice-page .table-row li{float:left;width:170px;border-left:1px solid #dadada;font-size:14px}.pay-notice-page .order-table-header{background:#f3f3f3}.pay-notice-page .order-table-header .yoho-coin{width:14px;height:14px;display:inline-block;background-image:url(../assets/img/sprite.cart.png?v155c47c08d8);background-position:-321px -225px;vertical-align:middle;margin-top:-2px;margin-right:4px}.pay-notice-page .notice-link{color:#468fa2}.pay-notice-page .notice-tip{border:1px solid #fdcf74;background:#fcfbdd;color:#976637;line-height:1.8;margin-bottom:20px;padding:20px;font-family:Arial,helvetica,sans-serif}.pay-notice-page .btns{text-align:center;padding:20px 0}.pay-notice-page .btns a{display:inline-block;height:33px;line-height:33px;text-align:center;font-size:14px;font-weight:700;cursor:pointer;border-radius:4px}.pay-notice-page .btns .check-order{background:#da034a;color:#fff;border:1px solid #9d0134;width:134px;margin-right:15px}.pay-notice-page .btns .return-home{background:#eee;color:#000;border:1px solid #b0b0b0;width:97px}.pay-notice-page .notice-img{width:100%}.pay-wechatqrcode-page{width:990px;margin:0 auto;font-size:12px;font-family:arial,Microsoft YaHei}.pay-wechatqrcode-page .pay-title{height:52px;overflow:hidden;padding:20px 0 0;margin:0 auto;border-bottom:2px solid #000}.pay-wechatqrcode-page .pay-title ul{width:446px;height:12px;float:right;list-style:none;padding:0;margin:0;background:url(../assets/img/pay/pay-list.png?v155c47c0108) no-repeat 100% 0}.pay-wechatqrcode-page .pay-title li{width:176px;height:12px;text-align:center;color:#999;float:left}.pay-wechatqrcode-page .pay-title li span{display:block;height:15px;padding:15px 0 0;line-height:15px}.pay-wechatqrcode-page .pay-title .end{width:93px;height:18px;color:#000}.pay-wechatqrcode-page .pay-title .end span{text-align:right}.pay-wechatqrcode-page .step4{height:24px;width:99px;overflow:hidden;background-image:url(../assets/img/pay/pay-title.png?v155c47c0108);float:left}.pay-wechatqrcode-page .w-title{padding:25px 0 12px;overflow:hidden}.pay-wechatqrcode-page .w-left{width:670px;float:left}.pay-wechatqrcode-page .w-left h3{line-height:26px;height:26px;margin-bottom:4px;overflow:hidden;font-size:14px;font-weight:400}.pay-wechatqrcode-page .w-left p{height:22px;line-height:22px;color:#9b9b9b}.pay-wechatqrcode-page .w-left p span{color:red}.pay-wechatqrcode-page .w-right{margin-left:670px;overflow:hidden;text-align:right}.pay-wechatqrcode-page .w-right p{line-height:26px;height:26px;margin-bottom:4px;overflow:hidden;font-size:14px}.pay-wechatqrcode-page .w-right p strong{color:#ff5d5b;font-size:18px;margin:0 3px;font-weight:700}.pay-wechatqrcode-page .w-right a{color:#2ea7e7;padding-right:14px;position:relative;display:inline-block;height:22px;line-height:22px}.pay-wechatqrcode-page .w-right a i{width:0;height:0;font-size:0;position:absolute;top:9px;right:4px;z-index:1;cursor:pointer}.pay-wechatqrcode-page .up{float:right;border-width:4px 3px 0;border-style:solid dashed dashed;border-color:#2ea7e7 transparent transparent}.pay-wechatqrcode-page .down{float:right;border-width:0 3px 4px;border-style:dashed dashed solid;border-color:transparent transparent #2ea7e7}.pay-wechatqrcode-page .w-addrinfo{padding:12px 0;color:#9b9b9b;line-height:22px;border-top:1px solid #e4e5eb;display:none}.pay-wechatqrcode-page .w-addrinfo span{padding:0 20px}.pay-wechatqrcode-page .w-payment{border:1px solid #e5e5e5;border-top:3px solid #4b5b78;background-color:#fff;padding:26px 30px 30px;margin-top:6px;margin-bottom:50px}.pay-wechatqrcode-page .w-payment h2{font-size:18px;font-weight:400;display:block}.pay-wechatqrcode-page .w-p-weixin{width:300px;height:380px;padding:20px 370px 30px 0;margin:0 auto;overflow:hidden;background:url(../assets/img/pay/w-p-phone.png?v155c47c0108) no-repeat 100% 0}.pay-wechatqrcode-page .w-p-erm{width:250px;height:250px;padding:24px;margin-bottom:20px;border:1px solid #ddd;overflow:hidden}.pay-wechatqrcode-page .w-p-word{height:44px;padding:8px 0 8px 125px;background:url(../assets/img/pay/w-p-word.png?v155c47c0108) no-repeat 50px 8px #090909}.pay-wechatqrcode-page .w-p-word p{margin:0;font-size:14px;line-height:22px;color:#fff;font-weight:700}.pay-wechatqrcode-page .w-pay-change{display:block;height:30px;line-height:30px;margin-top:50px;color:#0aaefa;cursor:14px}.pay-wechatqrcode-page .w-pay-change i{float:left;margin-right:14px;font-family:arial;font-style:normal;font-size:16px}.wechatqrcodereturn{width:990px;margin:0 auto;font-size:12px;font-family:Arial,helvetica,sans-serif}.wechatqrcodereturn .pay-title{height:65px;overflow:hidden;padding:20px 0 0;margin:0 auto;border-bottom:2px solid #000}.wechatqrcodereturn .pay-title ul{width:446px;height:12px;float:right;list-style:none;padding:0;margin:0;background:url(../assets/img/pay/pay-list.png?v155c47c0108) no-repeat 100% 0}.wechatqrcodereturn .pay-title li{width:176px;height:12px;text-align:center;color:#999;float:left}.wechatqrcodereturn .pay-title li span{display:block;height:15px;padding:15px 0 0;line-height:15px}.wechatqrcodereturn .pay-title .end{width:93px;height:18px;color:#000}.wechatqrcodereturn .pay-title .end span{text-align:right}.wechatqrcodereturn .step5{height:33px;width:97px;overflow:hidden;background-image:url(../assets/img/pay/finsh.png?v155c47c0108);float:left}.wechatqrcodereturn .pay-wechat-return{overflow:hidden;padding-top:10px}.wechatqrcodereturn .payerror{margin:50px 0 0 300px;font-size:14px;font-weight:700;color:#000;padding-left:25px;line-height:21px;background:url(../assets/img/pay/pay-fail.png?v155c47c0108) no-repeat}.wechatqrcodereturn .arrival-time{margin:10px 0 0 325px;color:#666}.wechatqrcodereturn .tell-phone{color:#e8044f;font-weight:700;font-size:16px}.wechatqrcodereturn .cart-bigbtns span{margin-right:5px}.wechatqrcodereturn .btn-type{display:inline-block;height:35px;padding:0 0 0 2px;overflow:hidden;font-size:14px;margin:40px 0 0 320px}.wechatqrcodereturn .btn-type a{display:inline-block;height:35px;line-height:32px;padding:0 20px;background:url(../assets/img/pay/btnby.png?v155c47c0108) no-repeat;border:none;overflow:visible;cursor:pointer;margin:0;color:#666}.wechatqrcodereturn .we-font{margin:20px 0 0 320px;height:36px;line-height:36px;padding-left:16px;color:#999;display:block;background:url(../assets/img/pay/pay-plaint.png?v155c47c0108) no-repeat 1px}.about-page{width:990px;padding:10px 0 20px}.about-page .about-nav{width:210px;padding:10px 20px;background-color:#ebe9ea;border:1px solid #d7d7d7;border-radius:5px}.about-page .about-nav li{line-height:30px;font-size:12px;text-align:center;border-bottom:1px solid #ddd;border-top:1px solid #fff}.about-page .about-nav li a{color:#333;font-weight:700}.about-page .about-nav li a:hover{color:#f60}.about-page .about-nav li:first-child{border-top:0}.about-page .about-nav .act a{color:#ed004c;cursor:pointer}.about-page .about-nav .act a:hover{color:#ed004c}.yohobuy-about-page .main-container{width:720px;border:1px solid #d7d7d7;border-radius:5px;overflow:hidden}.yohobuy-about-page .main-container .text-title{border-bottom:4px solid red;font-family:微软雅黑;height:100px;line-height:100px;font-weight:700;font-size:36px;color:#333;text-align:center}.yohobuy-about-page .main-container .text-info{padding:20px;color:#333;overflow:hidden;font-size:12px;font-weight:400;line-height:24px}.newpower-about-page .main-container{width:720px;border:1px solid #d7d7d7;border-radius:5px;overflow:hidden}.newpower-about-page .main-container .text-info{line-height:30px;font-size:14px;font-weight:700;text-align:center;color:#333;padding:20px;overflow:hidden}.contact-about-page .main-container{width:720px;border:1px solid #d7d7d7;border-radius:5px;overflow:hidden}.contact-about-page .main-container .text-title{border-bottom:4px solid red;font-family:微软雅黑;height:100px;line-height:100px;font-weight:700;font-size:36px;color:#333;text-align:center}.contact-about-page .main-container .text-info{padding:20px;color:#333;overflow:hidden;font-size:12px;font-weight:400;line-height:24px}.contact-about-page .main-container strong{font-weight:700}.link-about-page .main-container{width:720px;border:1px solid #d7d7d7;border-radius:5px;overflow:hidden}.link-about-page .main-container .text-title{border-bottom:4px solid red;font-family:微软雅黑;height:100px;line-height:100px;font-weight:700;font-size:36px;color:#333;text-align:center}.link-about-page .main-container .text-info{padding:20px;color:#333;overflow:hidden;font-size:12px;font-weight:400;line-height:24px}.link-about-page .main-container h2{font-size:14px;line-height:30px;border-bottom:1px dashed #ccc}.link-about-page .main-container ul{padding:10px 0;list-style:none}.link-about-page .main-container strong{font-weight:700}.privacy-about-page .main-container{width:720px;border:1px solid #d7d7d7;border-radius:5px;overflow:hidden}.privacy-about-page .main-container .text-title{border-bottom:4px solid red;font-family:微软雅黑;height:100px;line-height:100px;font-weight:700;font-size:36px;color:#333;text-align:center}.privacy-about-page .main-container .text-info{padding:20px;color:#333;overflow:hidden;font-size:12px;font-weight:400;line-height:24px}.privacy-about-page .main-container strong{font-weight:700}.settled-apply-page .mask,.settled-page .mask{position:fixed;top:0;right:0;bottom:0;left:0;background:#ccc;opacity:.3;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";z-index:20}.settled-page{margin-top:10px;margin-bottom:30px}.settled-page .banner{margin-bottom:45px}.settled-page .flow-container{position:relative;width:1033px;margin:0 auto}.settled-page .fake-link{position:absolute;bottom:-4px;left:221px;width:150px;height:32px;background:#fff;opacity:0;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";cursor:pointer}.settled-page .notice-container{position:fixed;width:960px;left:50%;top:30px;margin-left:-480px;z-index:2;overflow-y:auto;overflow-x:hidden;border-radius:10px;z-index:21}.settled-page .fake-close{position:fixed;width:30px;height:30px;top:44px;margin-left:914px;cursor:pointer;background:url(../assets/img/about/close.png?v155c47c0108) no-repeat 50%}.min-screen .settled-page .banner{width:990px}.min-screen .settled-page .flow-container,.min-screen .settled-page .flow-path{width:890px}.min-screen .settled-page .fake-link{bottom:-6px;left:190px;width:130px}.settled-apply-page{font-size:14px}.settled-apply-page .error{border-color:red!important}.settled-apply-page .required-mark{color:red}.settled-apply-page .banner{display:block;margin-top:10px;margin-bottom:30px}.settled-apply-page .title{margin-bottom:10px;padding-left:215px}.settled-apply-page .title span{font-size:18px;line-height:20px;color:#000;font-weight:700;vertical-align:top}.settled-apply-page .title .edit-img{width:24px;height:22px}.settled-apply-page .form-container{width:100%;padding:30px 0;border:1px solid #f4f5f5;border-left:none;border-right:none}.settled-apply-page .signup-form{width:790px;margin:0 auto}.settled-apply-page .signup-form .long-input{width:400px}.settled-apply-page .signup-form .short-input{width:150px}.settled-apply-page .signup-form td{border:10px solid transparent;height:41px}.settled-apply-page .signup-form tr.has-sub td{border-bottom:0}.settled-apply-page .signup-form tr.sub td{border-top:2px}.settled-apply-page .signup-form tr td:first-child{text-align:right}.settled-apply-page .signup-form .sub .tip-td{vertical-align:top}.settled-apply-page .signup-form .button,.settled-apply-page .signup-form input,.settled-apply-page .signup-form select{height:36px;line-height:36px;border-radius:3px;border:1px solid #979797}.settled-apply-page .signup-form select{line-height:18px;padding:9px 0}.settled-apply-page .signup-form input[type=radio]{border:none;vertical-align:text-bottom;margin-bottom:-10px}.settled-apply-page .signup-form .button{width:156px;background-color:#fff;border-radius:6px}.settled-apply-page .signup-form input[type=text]{text-indent:5px}.settled-apply-page .signup-form .swfupload{border:1px solid #ccc;border-radius:6px;height:35px;width:160px;background-color:#fff;cursor:pointer}.settled-apply-page .signup-form .placeholder{color:#979797}.settled-apply-page .signup-form ul{list-style:none;padding-left:0}.settled-apply-page .signup-form .for-other{width:120px;padding:0}.settled-apply-page .signup-form .upload-btn{font-size:13px;border-radius:3px;border:1px solid #979797}.settled-apply-page .signup-form .upload-btn input{cursor:pointer}.settled-apply-page .signup-form .uploadifive-queue{display:none}.settled-apply-page .shop-addres{width:300px}.settled-apply-page .shop-sales-volume{width:80px}.settled-apply-page .shop-list li{margin-bottom:5px}.settled-apply-page .shop-list li>span{margin:0 4px}.settled-apply-page .shop-list li:last-child{margin-bottom:0}.settled-apply-page .tip{font-size:12px;color:#c7c7c7;margin:2px 0}.settled-apply-page .submit-btn{background-color:#000;color:#fff;height:37px;width:157px;border-radius:6px;border:none;margin-top:30px;margin-left:377px;cursor:pointer;margin-bottom:30px}.settled-apply-page .add-btn{width:22px;height:22px;vertical-align:middle;margin-left:20px;cursor:pointer}.settled-apply-page .submit-success{position:fixed;width:500px;height:180px;top:50%;left:50%;margin-top:-170px;margin-left:-280px;z-index:8;padding:30px 50px;background-color:#fff;border-radius:10px;text-align:center}.settled-apply-page .submit-success .content{border-bottom:1px solid #ccc;margin-bottom:20px}.settled-apply-page .submit-success .content h1,.settled-apply-page .submit-success .content h2{margin-bottom:30px}.settled-apply-page .submit-success .sure{font-size:24px;color:red;text-align:center;text-decoration:none;font-weight:700}.settled-apply-page .category-list{margin-top:-12px}.settled-apply-page .category-list li{margin-bottom:5px}.settled-apply-page .category-list li:last-child{margin-bottom:0}.settled-apply-page .has-radio td{line-height:41px}.settled-apply-page .tip-sub td{height:14px}.settled-apply-page input[type=radio]{margin-left:10px}.settled-apply-page .brand-tip,.settled-apply-page .goods-tip{color:#000;margin-top:10px}.settled-success{border:none;border-radius:10px;background:#fff}.settled-success .content{border-bottom:1px solid #ccc}.settled-success .main-title{font-size:28px}.settled-success .sub-title{font-size:16px;margin:20px 0}.settled-success .apply-success-ok{border:none;color:red;font-weight:700;font-size:18px;line-height:60px}.app-download-page .top-wrapper{height:550px;background:url(../assets/img/download/main-top.png?random=1466056691&v155c47c0108) no-repeat top}.app-download-page .top-wrapper .top-down{width:444px;margin:0 auto;padding-top:305px}.app-download-page .top-wrapper .down-btns{width:216px;height:65px;display:block;margin-left:200px;float:right}.app-download-page .top-wrapper .down-btns:first-child{margin-bottom:10px}.app-download-page .main-wrapper .intro{width:990px;height:437px;margin:114px auto 0}.app-download-page .main-wrapper .intro-6{height:350px}.app-download-page .main-wrapper .bottom-down{width:350px;margin:0 auto;overflow:hidden;padding-top:34px}.app-download-page .main-wrapper .bottom-down .qr-code{width:130px;height:130px;background-image:url(../assets/img/sprite.download.png?v155c47c08d8);background-position:0 0}.app-download-page .main-wrapper .bottom-down .down-btns{width:200px;height:60px;display:block}.app-download-page .main-wrapper .bottom-down .down-app-btn{margin-bottom:8px;background-image:url(../assets/img/sprite.download.png?v155c47c08d8);background-position:-132px 0}.app-download-page .main-wrapper .bottom-down .down-apk-btn{background-image:url(../assets/img/sprite.download.png?v155c47c08d8);background-position:-132px -62px}.app-download-page .foot-wrapper{height:100px;text-align:center} \ No newline at end of file diff --git a/web-static/dist/yohobuy/4.7.2/index.js b/web-static/dist/yohobuy/4.7.2/index.js new file mode 100644 index 0000000..afc2f90 --- /dev/null +++ b/web-static/dist/yohobuy/4.7.2/index.js @@ -0,0 +1,8 @@ +define("index",["jquery","handlebars","source-map","index","lazyload","jquery-pjax","dot","jquery.placeholder"],function(e,t,n){var a;e("js/common"),e("js/header"),e("js/simple-header"),e("js/product/entry"),e("js/index/index"),e("js/brand/index"),e("js/passport/entry"),e("js/cart/cart"),e("js/guang/entry"),e("js/home/entry"),e("js/help/entry"),e("js/order/ensure"),e("js/shopping/pay"),e("js/pay/wechatqrcode"),e("js/about/entry"),e("js/coupon/entry"),n.exports=a}),define("js/common",["jquery"],function(e,t,n){function a(e){var t=new RegExp(e+"=([^;$]*)","i"),n="$1";return t.test(decodeURIComponent(document.cookie))?RegExp[n]:""}function i(e,t,n){var a,i,o,s,r="";"undefined"!=typeof t&&(n=n||{},null===t&&(t="",n.expires=-1),n.expires&&("number"==typeof n.expires||n.expires.toUTCString)&&("number"==typeof n.expires?(s=new Date,s.setTime(s.getTime()+24*n.expires*60*60*1e3)):s=n.expires,r="; expires="+s.toUTCString()),a=n.path?"; path="+n.path:"",i=n.domain?"; domain="+n.domain:"",o=n.secure?"; secure":"",document.cookie=[e,"=",encodeURIComponent(t),r,a,i,o].join(""))}function o(){var e,t=a("_UID");return"undefined"==typeof t?0:(e=t.split("::"),"undefined"==typeof e||e.length<4?0:e)}function s(){var e=o();return 0===e?0:e[1]}function r(){var e=a("_g");return"undefined"==typeof e?"":JSON.parse(e).k}function d(){var e,t,n={},a=window.location.search,i=a?decodeURIComponent(a).slice(1).split("&"):[];for(t=0;t<i.length;t++)e=i[t].split("="),n[e[0]]=e[1];return n}var l=e("jquery"),c=l("body");e("js/footer"),function(e,t,n,a,i){var o=t.createElement(n),s=t.getElementsByTagName(n)[0];e.YohoAcquisitionObject=i,e[i]=function(){e[i].p=arguments},o.async=1,o.src=a,s.parentNode.insertBefore(o,s)}(window,document,"script",("https:"==document.location.protocol?"https":"http")+"://cdn.yoho.cn/yas-jssdk/1.0.17/yas.js","_yas"),function(){var e=s();e=0===e?"":e,window._ozuid=e,window._yas&&window._yas(1*new Date,"1.0.17","yohobuy_web",e,"","")}(),l(window).on("resize",function(){var e=l(this).width();e<1360?l(".return-top").addClass("min"):l(".return-top").removeClass("min"),e<1180?c.addClass("min-screen"):c.removeClass("min-screen")}).trigger("resize"),l.extend({queryString:function(){var e,t,n=[],a=window.location.search.slice(1).split("&");for(t=0;t<a.length;t++)e=a[t].split("="),n.push(e[0]),n[e[0]]=e[1];return n}}),function(){l(window).load(function(){var e,t=document.getElementById("user-thumb");t&&(e=new Image,e.src=t.src,e.onerror=function(){l(t).parent().append('<div class="default-user-thumb"></div>').end().remove()})})}(),window.cookie=a,window.setCookie=i,window.getUser=o,window.getUid=s,window.getShoppingKey=r,window.queryString=d}),define("js/footer",["jquery"],function(e,t,n){function a(){var e=s("#subscriber-box"),t=s("#subscriber-btn"),n=/^[.\-_a-zA-Z0-9]+@[\-_a-zA-Z0-9]+\.[a-zA-Z0-9]/,a={mail:"",tick:""};e.focus(function(){s(this).val("").css("color",""),t.removeClass("done").html(a.mail)}),t.click(function(){var i=s.trim(e.val());if(""!==i&&n.test(i))try{s.ajax({url:"//www.yohobuy.com/common/emailSubscriber",dataType:"jsonp",data:{email:i,tmp:Math.random(),uid:window.getUid()},success:function(n){1===n.data.result?(e.val("已订阅到:"+i),t.addClass("done").html(a.tick)):e.css("color","red")}})}catch(o){console.log(o.message)}else e.css("color","red")})}function i(){var e=s(".vote"),t=s("#feed-back-page"),n=e.children("li").length;t.on("click","span",function(){var t=s(this);t.hasClass("cur")||(t.siblings(".cur").removeClass("cur"),t.addClass("cur"),e.children().not(".hide").addClass("hide").end().eq(t.index()).removeClass("hide"))}),e.on("click",".feed-back-btn",function(){var a=s(this),i=a.closest("li"),o=i.index(),r=[],d=i.find(".feedback-answer").val(),l=i.find(".feedback-id").val(),c=i.find(".question-id").val();i.find(":checked").each(function(){r.push(s(this).val())}),s.ajax({url:"//www.yohobuy.com/common/suggestFeedback",dataType:"jsonp",data:{feedback_id:l||0,question_id:c||0,answer:d||"",solution:r.join(",")},success:function(a){var s=o+1;if(1===~~a.data.result){if(o===n-1)return void alert("感谢您的参与!");i.addClass("hide"),e.children(":eq("+(o+1)+")").removeClass("hide"),t.children(".cur").removeClass("cur"),t.children(":eq("+s+")").addClass("cur")}}})})}function o(){s(window).height()>s(document).height()&&r.addClass("hide")}var s=e("jquery"),r=s(".return-top");r.click(function(){s("html,body").animate({scrollTop:0},500)}),s(window).scroll(function(){0===s(window).scrollTop()?r.addClass("hide"):r.removeClass("hide")}),r.hasClass("hide")&&s("img").load(o),a(),i(),window.rePosReturnTop=o}),define("js/header",["jquery","handlebars","source-map","index"],function(e,t,n){function a(e,t,n){try{ee.push({louceng:e,weizhi:t,event:n})}catch(a){}}function i(){var e=H("#nav_keyword").text(),t="vans",n=H("#query_key");""!==e?(n.css({color:"#000"}),n.val(e)):(n.css({color:"#e0e0e0"}),n.val(t),n.on("focus",function(e){n.css({color:"#000"}),n.val("")}))}function o(){var e={cookie:"_g",cartNum:""},t="",n="",a=0,i=0,o=0,s=0,r="";H.fn.miniCart=function(a){if(t=H.extend(e,a),"undefined"==typeof window.cookie(t.cookie))n=null;else if(t.cookie)try{n=Y.parse(window.cookie(t.cookie))}catch(i){}null!==n&&""!==n&&(s=parseInt(n._nac)+parseInt(n._ac),0===s?H("#icart-num").attr("class","icart-num icart-none"):H("#icart-num").attr("class","icart-num"),H(t.cartNum).html(s))},H.fn.search=function(e){function t(t){var n=H.trim(H(t).val());return n=n.replace(new RegExp("'","gm"),""),""===n?(H(".search-list").hide(),!1):(n=encodeURI(n),void H.get(e+"?query="+n,function(e){H(".search-list").html(e.data),a=H(".search-list").children("li").length,i=-1,a>0?H(".search-list").show():H(".search-list").hide(),H(".search-list").find("a").hover(function(){H(this).css("background-color","#eee")},function(){H(this).css("background-color","#fff")})},"jsonp"))}function n(e){H(".search-list li:eq("+o+")").children("a").css("background-color","#fff"),H(".search-list li:eq("+i+")").children("a").css("background-color","#eee"),r=H(".search-list li:eq("+i+")").children("a").attr("title"),H("#query_key").val(r)}return this.each(function(){H(this).keyup(function(e){if(38===e.which){if(0===a)return!1;i===-1&&(i=0),o=i,i=(i-1+a)%a,n(this)}else if(40===e.which){if(0===a)return!1;o=i,i=(i+1)%a,n(this)}else 13===e.which?window.submitSearch():t(this)})})},H.extend({getData:function(e,t,n){var a={page:1,method:"",v:1,return_type:"jsonp",open_key:"12345",tmp:Math.random()},i="";if(void 0===typeof e||""===e)return!1;i=H.extend(a,t),i.page=i.page||1;try{H.getJSON(e+"/?callback=?",i,function(e){if(""!==n)return"undefined"!=typeof n(e.data)&&Y.parse(n(e.data)),!1})}catch(o){console.log(o.message)}},getShoppingKey:function(){var e,t=window.cookie("_g"),n=Y.parse(t);return"undefined"==typeof t||null===t?(e=window.cookie("_SPK"),e?e:""):n._k}})}function s(e){var t;200===+e.code&&"object"==typeof e.data&&(t=""!==e.data.url?'<a target="_blank" href="'+e.data.url+'" class="page-top-banner"style="height:36px;border:none;background-image:url('+window.unescape(e.data.src)+');background-position: center;display:block;"> </a>':'<div class="yoho-notice"><div class="notice-container center-content"><h1 class="notice-title">关于系统升级的公告</h1><div class="notice-content"><p class="tips">尊敬的顾客:</p><p class="detail">您好!为了向您提供更优质的服务,目前系统正在升级,请耐心等待。</p><p class="detail">系统升级期间,部分地区用户体验会有暂时中断,如遇紧急事宜,欢迎垂询客服热线:400-889-9646 09:00-22:30(周一至周日)。稍后系统将恢复正常使用,欢迎您继续光顾YOHO!BUY有货!带来不便之处深表歉意,请您谅解!</p></div></div></div>',H("body").prepend(t))}function r(e){var t=document.createElement("script");t.src=le+e+"&client_type=web&callback=JsonPCallBack",document.getElementsByTagName("head")[0].appendChild(t)}function d(e,t){var n,a;H(e).hover(function(e){e.preventDefault(),n=H(this),a=H(t)[0],""===a.style.display?(n.addClass("acttags"),a.style.display="block"):(n.removeClass("acttags"),a.style.display="")})}function l(){var e,t,n=[{sourceClass:".myyoho",targetClass:".myyoho-info"},{sourceClass:".phone",targetClass:".qr"}];for(t=0;t<n.length;t++)e=n[t],d(e.sourceClass,e.targetClass)}function c(){var e;H(".yohogroup").mouseenter(function(){e=H(this),e.text(e.attr("cn"))}),H(".yohogroup").mouseleave(function(){e=H(this),e.text(e.attr("en"))})}function u(){var e,t,n=["webkit","moz","ms"];for(t=0;t<n.length;t++)return e=n[t]+"RequestAnimationFrame",!!window[e]}function h(){var e=["webkit","moz","ms"],t=e[0]+"RequestAnimationFrame",n=e[1]+"RequestAnimationFrame",a=e[2]+"RequestAnimationFrame";return window[t]?function(e){requestAnimationFrame(e)}:window[n]?function(e){window[n](e)}:window[a]?function(e){window[a](e)}:function(e){window.setTimeout(e,67)}}function p(){ne+=10,ae.css({transform:"rotateX("+ne+"deg)","-webkit-transform":"rotateX("+ne+"deg)","-moz-transform":"rotateX("+ne+"deg)"}),ne/90%2===1&&(ie?(ae.css("background-image","url(//static.yohobuy.com/newheader/img/logo1.png)"),ie=!1):(ae.css("background-image","url(//static.yohobuy.com/newheader/img/logo_e.png)"),ie=!0)),ne/90%2===0&&ne%360!==0?window.setTimeout(p,3e3):ne%360===0?window.setTimeout(p,6e4):te(function(){p()})}function f(){M&&window.clearTimeout(M),ae.fadeOut(oe,function(){ie=!1,ae.css("background-image","url(//static.yohobuy.com/newheader/img/logo.png)"),ae.fadeIn(oe,function(){W=window.setTimeout(function(){ae.fadeOut(oe,function(){window.clearTimeout(W),ie=!0,ae.css("background-image","url(//static.yohobuy.com/newheader/img/logo_e.png)"),ae.fadeIn(oe,function(){M=window.setTimeout(f,6e4)})})},3e3)})})}function m(){u()?(te=h(),window.setTimeout(p,3e3)):window.setTimeout(f,3e3)}function g(e){var t=H(e);t.find(".thirdnavbar").each(function(){var e=H(this),t=e.find("a"),n=t.attr("href"),a="hot"===t.attr("hot"),i={};i=e.hasClass("category-title")?{type:"title",height:49,content:e.text(),index:window.valueIndex,href:n,hot:!1}:{type:"catlist",height:36,content:t.text(),index:window.valueIndex,href:n,hot:a},window.valueIndex++,window.newArr.push(i)})}function v(){var e=window.newArr.length,t=0,n=[],a=[],i=[],o=[],s="",r="",d="",l=0,c=0,u=0;for(t;t<e;t++){if(n=window.newArr[t],0===window.gindex&&(window.oh1=window.oh1+n.height,window.oh1>=340&&t!==e-1&&(window.targetArr1=window.newArr.slice(0,n.index+1),window.nowIndex=n.index+1,window.gindex++),t===e-1)){window.targetArr1=window.newArr.slice(0,e+1);break}if(1===window.gindex&&(window.oh2=window.oh2+n.height,window.oh2>=340&&t!==e-1&&(window.targetArr2=window.newArr.slice(window.nowIndex,n.index+1),window.nowIndex=n.index+1,window.gindex++),t===e-1)){window.targetArr2=window.newArr.slice(window.nowIndex,e+1);break}if(2===window.gindex){if(window.oh3=window.oh3+n.height,window.oh3>=340&&t!==e-1){window.targetArr3=window.newArr.slice(window.nowIndex,n.index+1),window.nowIndex=n.index+1,window.gindex++;break}if(t===e-1){window.targetArr3=window.newArr.slice(window.nowIndex,e+1);break}}}for(l;l<window.targetArr1.length;l++)a=window.targetArr1[l]||{},"title"===a.type?window.inner1=window.inner1+'<li class="cattitle"><h3><a href="'+a.href+'">'+a.content+"</a></h3></li>":a.hot===!0?window.inner1=window.inner1+'<li class="catdetail"><a class="thirdcatelink hot" href="'+a.href+'">'+a.content+"</a></li>":window.inner1=window.inner1+'<li class="catdetail"><a class="thirdcatelink" href="'+a.href+'">'+a.content+"</a></li>";for(c;c<window.targetArr2.length;c++)i=window.targetArr2[c]||{},"title"===i.type?window.inner2=window.inner2+'<li class="cattitle"><h3><a href="'+i.href+'">'+i.content+"</a></h3></li>":i.hot===!0?window.inner2=window.inner2+'<li class="catdetail"><a class="thirdcatelink hot" href="'+i.href+'">'+i.content+"</a></li>":window.inner2=window.inner2+'<li class="catdetail"><a class="thirdcatelink" href="'+i.href+'">'+i.content+"</a></li>";for(u;u<window.targetArr3.length;u++)o=window.targetArr3[u]||{},"title"===o.type?window.inner3=window.inner3+'<li class="cattitle"><h3><a href="'+o.href+'">'+o.content+"</a></h3></li>":o.hot===!0?window.inner3=window.inner3+'<li class="catdetail"><a class="thirdcatelink hot" href="'+o.href+'">'+o.content+"</a></li>":window.inner3=window.inner3+'<li class="catdetail"><a class="thirdcatelink" href="'+o.href+'">'+o.content+"</a></li>";""!==window.inner1&&(s='<ul class="cate_row1 cate_row">'+window.inner1+"</ul>"),""!==window.inner2&&(r='<ul class="cate_row2 cate_row">'+window.inner2+"</ul>"),""!==window.inner3&&(d='<ul class="cate_row3 cate_row">'+window.inner3+"</ul>"),window.finalresult=s+r+d,H("#"+window.wrapperindex).empty().append(window.finalresult)}function y(){H(".categorywrapper").each(function(e){window.wrapperindex=H(this).attr("id"),window.newArr=[],window.gindex=0,window.targetArr1=[],window.targetArr2=[],window.targetArr3=[],window.oh1=0,window.oh2=0,window.oh3=0,window.valueIndex=0,window.nowIndex=0,window.inner1="",window.inner2="",window.inner3="",g(H(this).find(".category")),v()})}function b(){var e={},t="",n="",a="",i="",o="";H(document).on("mouseenter",".sub-nav-item",function(){t=H(this).find(".showdetail").attr("data-code"),t&&(e[t]||(e[t]=t,n=H(this).find(".showdetail").find("img"),a=H(this).find(".showdetail").find(".title"),i=H(this).find(".showdetail").find("a"),H.get(le+t+"&width=337&height=250&client_type=web",function(e){n.attr("src",e.data.src),i.attr("href",e.data.url),a.text(e.data.title)},"jsonp")))}),o=H(".cure").find(".name-cn").find("a").attr("href"),H(".main-link").attr("href",o)}function w(){var e=H("#cover");e.remove()}function C(){var e,t=window.cookie("_Gender"),n="",i="",o="",s="";"www.yohobuy.com"!==window.location.host||"undefined"!=typeof t&&""!==t&&null!==t||H.get("//www.yohobuy.com/index/guide",function(t){n=document.createElement("div"),n.id="cover",n.innerHTML=t,document.body.appendChild(n),i=H(window).height(),o=H(".guide-box").height(),e=i/2-o/2,s=H(".guide-box .clear").find("li").length,H(".guide-box").css({width:200*s+"px",top:e+"px"}),H("#cover").bind("click",function(e){window.setCookie("_Gender","1,3",{path:"/",domain:".yohobuy.com",expires:90}),window.setCookie("_Channel","boys",{path:"/",domain:".yohobuy.com",expires:7}),w()}),H("#cover .guide-box .close").bind("click",function(e){a("弹窗","CLOSE","homepage_man"),window.setCookie("_Gender","1,3",{path:"/",domain:".yohobuy.com",expires:90}),window.setCookie("_Channel","boys",{path:"/",domain:".yohobuy.com",expires:7}),w()}),H(".boys img , .boys .go").bind("click",function(e){a("弹窗","BOYS","homepage_man"),window.setCookie("_Gender","1,3",{path:"/",domain:".yohobuy.com",expires:90}),window.setCookie("_Channel","boys",{path:"/",domain:".yohobuy.com",expires:7}),w()}),H(".girls img, .girls .go").bind("click",function(e){a("弹窗","GIRLS","homepage_woman"),window.setCookie("_Gender","2,3",{path:"/",domain:".yohobuy.com",expires:90}),window.setCookie("_Channel","girls",{path:"/",domain:".yohobuy.com",expires:7})}),H(".lifestyle img, .lifestyle .go").bind("click",function(e){window.setCookie("_Channel","lifestyle",{path:"/",domain:".yohobuy.com",expires:7}),a("弹窗","LIEFSTYLE","homepage_lifestyle")}),H("#cover .guide-box").bind("click",function(e){e.stopPropagation()})})}function i(){var e=H("#nav_keyword").text(),t=H("#defaultsearch").val(),n=H("#query_key");""!==e?(n.css({color:"#000"}),n.val(e)):(n.css({color:"#e0e0e0"}),n.val(t),n.on("focus",function(e){n.css({color:"#000"}),n.val("")})),H(document).click(function(e){H(e.target).closest(".searchspan, .search-list").length||H(".search-list").hide()})}function _(){var e=window.cookie("_Gender"),t=H(".cure");"undefined"!=typeof e&&""!==e&&window.setCookie("_Gender",1,{path:"/",domain:".yohobuy.com",expires:7}),"男生"===t.find(".name-cn a").text()&&(window.setCookie("_Gender","1,3",{path:"/",domain:".yohobuy.com",expires:7}),window.setCookie("_Channel","boys",{path:"/",domain:".yohobuy.com",expires:7})),"女生"===t.find(".name-cn a").text()&&window.setCookie("_Gender","2,3",{path:"/",domain:".yohobuy.com",expires:7}),"创意生活"===t.find(".name-cn a").text()&&window.setCookie("_Channel","lifestyle",{path:"/",domain:".yohobuy.com",expires:7}),"潮童"===t.find(".name-cn a").text()&&window.setCookie("_Channel","kids",{path:"/",domain:".yohobuy.com",expires:7})}function x(){H(".first-nav-item").click(function(){var e=window.cookie("_Gender");"undefined"!=typeof e&&""!==e&&window.setCookie("_Gender",1,{path:"/",domain:".yohobuy.com",expires:7}),"男生"===H(this).find(".name-cn a").text()&&(window.setCookie("_Gender","1,3",{path:"/",domain:".yohobuy.com",expires:7}),window.setCookie("_Channel","boys",{path:"/",domain:".yohobuy.com",expires:7})),"女生"===H(this).find(".name-cn a").text()&&(window.setCookie("_Gender","2,3",{path:"/",domain:".yohobuy.com",expires:7}),window.setCookie("_Channel","girls",{path:"/",domain:".yohobuy.com",expires:7})),"创意生活"===H(this).find(".name-cn a").text()&&window.setCookie("_Channel","lifestyle",{path:"/",domain:".yohobuy.com",expires:7}),"潮童"===H(this).find(".name-cn a").text()&&window.setCookie("_Channel","kids",{path:"/",domain:".yohobuy.com",expires:7})})}function k(){var e,t,n,a=document.cookie,i=a.split(";");for(e=0;e<i.length;e++)t=i[e].split("="),"undefined"!=typeof t[0]&&(n=t[0].replace(/\s/g,""),de[n]=t[1])}function j(){H("#miniCartBox").miniCart({cartNum:".ic-infomation"})}function S(){var e,t,n;H.getData("//www.yohobuy.com/common/shoppingCart","",function(a){""===V&&(V=G.compile(H("#mini-cart-tpl").html())),H("#miniCartBox").children(".gobuy-wrapper").html(V({carData:a})),0===parseInt(H(".ic-infomation").html())&&H("#miniCartBox .gobuy-wrapper").html('<div class="gobuy-empty"><h3 class="information">您的购物车暂无商品</h3></div>'),H("#miniCartBox .goods-list li").length<1&&(e=window.cookie("_g"),t=Y.parse(e),null!==t&&(n='{"_k":"'+t._k+'","_nac":0,"_ac":0,"_r":0}',window.setCookie("_g",n,{path:"/",domain:".yohobuy.com"})),H(".ic-infomation").html(0),H("#miniCartBox .gobuy-wrapper").html('<div class="gobuy-empty"><h3 class="information">您的购物车暂无商品</h3></div>'))})}function T(e,t,n){H.getData("//www.yohobuy.com/common/delCartGoods",{product_sku:e,promotion_id:t,product_num:n},function(e){var t=window.cookie("_g"),n=Y.parse(t),a='{"_k":"'+n._k+'","_nac":'+e.total_goods_num+',"_ac":0,"_r":0}';window.setCookie("_g",a,{path:"/",domain:".yohobuy.com"}),S(),j()})}function q(){var e,t,n,a;H(document).on("click",".goodscardelete",function(i){e=H(this),t=e.attr("product_sku"),n=e.attr("promotion_id"),a=e.prev("h3").find(".num").html(),T(t,n,a)})}function I(){var e;H(document).on("click",".mycart_i_down",function(t){e=H(this),e.toggleClass("mycart_i_up"),H("#mycartmore").slideToggle(300)})}function E(){var e,t="//www.yohobuy.com/shopping/cart";H("#miniCartBox").on("click",function(n){e=H(n.target),e.hasClass("gobuy")&&(window.location.href=t)})}function A(e){1===e?(H("#miniCartBox").addClass("list-cur"),H(".gobuy-wrapper").show(),0!==parseInt(H(".ic-infomation").html())?(H("#miniCartBox .gobuy-wrapper").html('<div class="gobuy-loading"><h3 class="information">加载中,请稍后</h3></div>'),S()):H("#miniCartBox .gobuy-wrapper").html('<div class="gobuy-empty"><h3 class="information">您的购物车暂无商品</h3></div>')):(H("#miniCartBox").removeClass("list-cur"),H(".gobuy-wrapper").hide())}function F(){var e;H("#miniCartBox").mouseenter(function(t){e=H(t.target),"miniCartBox"!==e.attr("id")&&"ic-infomation"!==e.attr("class")||A(1)}),H("#miniCartBox").mouseleave(function(e){A(0)})}function U(){var e,t="indexkids",n="indexlifestyle",a="indexboys",i="indexgirls",o="uniquebrand",s=window.location.href,d=window.location.host,l="";s.indexOf("search")!==-1&&(l=re["search"+de._Channel]),s.indexOf("list")!==-1&&(l=re["list"+de._Channel]),s.indexOf("brands")!==-1&&(l=re["brands"+de._Channel]),s.indexOf("new")!==-1&&(l=re["new"+de._Channel]),s.indexOf("sale")!==-1&&(l=re["sale"+de._Channel]),s.indexOf("home")!==-1&&(l=re["home"+de._Channel]),s.indexOf("kids")!==-1&&(l=re[t]),s.indexOf("woman")===-1&&s.indexOf("girls")===-1||(l=re[i]),s.indexOf("lifestyle")!==-1&&(l=re[n]),s.indexOf("www.yohobuy.com")!==-1&&"/"===window.location.pathname&&(l=re[a]),e=d.split(".")[0],"list"!==e&&"search"!==e&&"www"!==e&&"new"!==e&&"item"!==e&&"guang"!==e&&(l=re[o+de._Channel]),r(l)}function D(e){H(".hot-brands").find("ul").stop().animate({opacity:0,"z-index":1},200).eq(e).animate({opacity:1,"z-index":2},200)}function P(){var e,t=0;H(".hot-brands").size()>0&&(e=H(".hot-brands").find("ul").size(),H(".hot-brands").find("ul").eq(0).css({opacity:1,"z-index":2}),H(".brands-control").on("click",".next",function(){t===e-1?t=0:t++,D(t)}),H(".brands-control").on("click",".prev",function(){0===t?t=e-1:t--,D(t)}))}function O(){setInterval(j,2e3)}function L(){var e=H("#goodcartempwarpper"),t="";e&&e.html()&&(t=H("#goodcartempwarpper").html().replace(/\\/g,""),H("#goodcartempwarpper").html(t),Q=G.compile(H("#tmpl-my-login-new").html()))}function N(){var e="//search.yohobuy.com/api/suggest";H("#query_key").search(e)}function $(e){var t=(new Date).getTime(),n='<span>Hi~</span>[<a href="//www.yohobuy.com/signin.html" class="list-a login-out ">请登录</a>] [<a href="//www.yohobuy.com/reg.html" class="list-a login-out" onclick="">免费注册</a>]',a='<span>Hi~<a href="//www.yohobuy.com/home?t='+t+'">{{user_name}}</a></span> {{#if islogin}}[<a href="{{logout}}" class="list-a login-out">退出</a>]{{/if}}{{#unless islogin}}[<a href="//www.yohobuy.com/signin.html" class="list-a login-out">请登录</a>] [<a href="//www.yohobuy.com/reg.html" onclick="" class="list-a login-out">免费注册</a>]{{/unless}}',i=H("#loginBox"),o=window.cookie("_UID"),s=e.data.profile_name,r=0,d=0,l="",c=o.split("::"),u=c[0]||" ",h="//www.yohobuy.com/logout.html",p="1",f=0,m={user_name:s,logout:h,random:Math.random()};if(i.html("").show(),X=G.compile(a),"undefined"==typeof o||null===o)return i.html(n),!1;if("undefined"==typeof c||c.length<4)return i.html(n),!1;for(d;d<u.length;d++)l=u.substr(d,1),r+=/.*[\u4e00-\u9fa5]+.*$/.test(l)?2:1;if(r<=10)s=u;else{for(f=0,d;d<u.length;d++)f<10&&(l=u.substr(d,1),"*"!==l&&(f+=/.*[\u4e00-\u9fa5]+.*$/.test(l)?2:1),s+=l);s.length<u.length&&(s+="...")}h=/http:\/\//.test(c[3])?c[3].replace("www.yohobuy.com","www.yohobuy.com"):"//www.yohobuy.com/logout.html",e.result===-1&&(p="-1"),m.islogin=p,i.html(X(m))}function z(e){var t=e.data,n="";if(1===e.result){if(void 0===typeof t||t.length<1)return!1;"3"===t.vip.curVipInfo.curLevel&&(t.vip3=!0),H("#myYohoBox").mouseenter(function(){return H(this).addClass("acttags"),H("#myYohoBox .myyoho-info").show().html(Q(t)),n=H(".myyoho-photo img").attr("data-url"),1===H._checkUrlState?void H(".myyoho-photo").show().find("img").attr("src",n):void(""!==n&&""===H._checkUrl&&H.ajax({url:n,type:"GET",complete:function(e){200!==e.status&&0!==e.status||(H(".myyoho-photo").show().find("img").attr("src",n),H._checkUrlState=1),H._checkUrl=n}}))}),H("#myYohoBox").mouseleave(function(){H(this).removeClass("acttags"),H("#myYohoBox .myyoho-info").hide()})}}function B(){H.getData("//www.yohobuy.com/common/passport","",function(e){e&&e.result!==-1?($(e),z(e)):(window.setCookie("_UID","",{path:"/",domain:".yohobuy.com",expires:-1}),se.show())})}function R(){y(),b(),L(),C(),_(),x(),k(),o(),c(),l(),m(),U(),P(),F(),j(),O(),N(),E(),q(),I(),B(),i()}var M,W,H=e("jquery"),G=e("handlebars"),Y=e("index"),Q=null,X=null,V="",Z=/^[\^\!\+\-\(\)\:\[\]\\\{\}\~\*\?\|\&\;\/]{0,}$/g,J="",K="",ee=[],te=null,ne=0,ae=H(".icon-logo"),ie=!0,oe=500,se=H("#loginBox"),re={listboys:"4f78b0f418fc42314d8b6e791cfb7fa8",listgirls:"00c1f025a51b6b597dc37925951ea27d",listkids:"b02df11184727701ade1b6de9737d08c",listlifestyle:"fd35c52dced0c880976ba858346d1fc5",searchboys:"9fb8986ea700cc27a8057361c3924394",searchgirls:"e3e207a1443ca60c8037fe52a5560c18",searchkids:"620fc77f479da8feaeb06f2324e5d0bb",searchlifestyle:"a3c93301c6ffaf3ed0f36a4a451be36d",uniquebrandboys:"2ebb0810c0d1a67e5229149c9c3aba7d",uniquebrandgirls:"99e23385f4ba4b65f406b7e2968ac821",uniquebrandkids:"a74ebc9b17840c91b9ea46568111fe6b",uniquebrandlifestyle:"0e8c81ead53f56302baa4d0ad967f527",brandsboys:"77b352db07129c76a9d532acad149f9f",brandsgirls:"bf047f16e52ebc38be5ce9c7623831e6",brandskids:"e3ae1ce9b5e13c6d271ef3eccb831652",brandslifestyle:"e4ac8029c30f65d7f1af030980d140fe",newboys:"869d3c5f3b450fb52101d00a61ce87cb",newgirls:"d953b6dfdac02483d1dcce8d96055954",newkids:"0874cb6d75df8e0e78f2d475e53ecc08",newlifestyle:"43e8fc8e178115c262bbce2bd0012db7",saleboys:"c846e3165c994769b4201d8c32f3ae9b",salegirls:"52b1d389edcbc62d65de71b80c4d6ad0",salekids:"ad8b1703c761ba00973868ab5199cc27",salelifestyle:"7acc64905c70ac91846f43fb2cec4bbd",homeboys:"b0856a771ef1b59ab1234c74688fa42d",homegirls:"2bd61fa12e4933211518f70fe5ce3c48",homekids:"895c59e8c64b40399c9533509507320c",homelifestyle:"2e037d4e25d2767352ca3e0a4627f7bd",indexboys:"0c911d3000f52e8ca7cffb74f5864c29",indexgirls:"b645b8980c423ab30485e0a9d08c2ef7",indexkids:"17f6d5d5d454d2c507bc5fcbc90f7756",indexlifestyle:"735cd393e841762af8793c346abbbc36"},de={},le="//new.yohobuy.com/common/getbanner?content_code=";H("#api-domain").remove(),window.submitSearch=function(){var e,t,n=H("#query_key").val(),i=H("#defaultsearch").val(),o="Search",s="Head Search",r="Search";if(e=H.trim(J.toLowerCase()),t=H.trim(n.toLowerCase()),a(o,s,r),""!==K&&""!==J&&e===t)location.href=K.replace("'","");else{if(!Z.test(n)||""===n)return""===n&&H("#query_key").val(i),H("#searchForm").submit(),!1;location.href="//search.yohobuy.com/error?query="+n+"&result=error"}},G.registerHelper("timestamp",function(){return(new Date).getTime()}),G.registerHelper("headerimg",function(e){return""===e?"//img10.static.yhbimg.com/headimg/2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100":e}),G.registerHelper("equallevelthree",function(e,t){return"3"===e?t.fn(this):t.inverse(this)}),G.registerHelper("notzero",function(e,t){return"0"!==e?t.fn(this):t.inverse(this)}),window.JsonPCallBack=s,window.newArr=[],window.wrapperindex=0,window.gindex=0,window.targetArr1=[],window.targetArr2=[],window.targetArr3=[],window.oh1=0,window.oh2=0,window.oh3=0,window.valueIndex=0,window.nowIndex=0,window.inner1="",window.inner2="",window.inner3="",window.finalresult="",R()}),define("js/simple-header",["jquery"],function(e,t,n){function a(e){var t,n,a,i=0,o=0;for(a=0;a<e.length;a++)n=e.substr(a,1),o+=/.*[\u4e00-\u9fa5]+.*$/.test(n)?2:1;if(o<=10)t=e;else{for(i=0,t="",a=0;a<e.length;a++)i<10&&(n=e.substr(a,1),"*"!==n&&(i+=/.*[\u4e00-\u9fa5]+.*$/.test(n)?2:1),t+=n);t.length<e.length&&(t+="...")}return t}function i(e){var t,n,i=e.data;e.result!==-1?(n=a(i.profile_name),t='<span>Hi~</span><a href="//www.yohobuy.com/home?t='+i.random+'">'+n+'</a> <a href="//www.yohobuy.com/logout.html">[退出]</a>'):t='<span>Hi~</span> <a href="//www.yohobuy.com/signin.html">[请登录]</a> <a href="//www.yohobuy.com/reg.html">[免费注册]</a>',s(".header-tool li").eq(0).html(t)}function o(){var e={return_type:"jsonp"};s.getJSON("//www.yohobuy.com/common/passport/?callback=?",e,function(e){e&&e.data&&i(e.data)})}var s=e("jquery"),r=s("#api-domain");r.val();r.remove(),s(".simple-header").size()>0&&s(".tool-options").on("mouseenter",function(){s(this).find(".tool-select").fadeIn()}).on("mouseleave",function(){s(this).find(".tool-select").fadeOut()}),o()}),define("js/product/entry",["jquery","handlebars","source-map","lazyload","index","jquery-pjax"],function(e,t,n){e("js/product/list"),e("js/product/brand"),e("js/product/hotrank"),e("js/product/item"),e("js/product/shop-index")}),define("js/product/list",["jquery","handlebars","source-map","lazyload"],function(e,t,n){var a=e("jquery");e("js/product/filter"),e("js/product/sort-pager"),e("js/product/latest-walk"),e("js/product/product"),function(){var e,t=a(".banner-img");0!==t.length&&(e=new Image,e.onload=function(){e.height&&t.height(e.height),e=null},e.src=t.css("background-image").replace(/"/g,"").slice(4,-1))}()}),define("js/product/filter",["jquery","handlebars","source-map"],function(e,t,n){function a(e,t){e.each(function(){g(this).closest(".attr").hasClass("checked")||g(this).removeClass("checked").html(y.unchecked)}),t.find(".checkbox").addClass("checked").html(y.checked)}function i(){w.addClass("hide"),_.removeClass("hide")}function o(){_.addClass("hide"),w.removeClass("hide"),S.children("span").removeClass("hover")}function s(e,t){var n,a=window.queryString();a[e]=t,delete a.page,n="?"+decodeURIComponent(g.param(a)),window.location.href=n}function r(e){E.children(".senior-sub:eq("+m+")").addClass("hide"),A.children(".attr:eq("+m+")").removeClass("hover"),m=-1}var d,l,c,u,h,p,f,m,g=e("jquery"),v=e("handlebars"),y={unchecked:"",checked:""},b={up:"",down:""},w=g(".brand .default"),C=g("#brand-search-input"),_=g(".brand .brand-panel"),x=_.find(".attr"),k=g("#brand-more"),j=g("#brand-multi"),S=g(".brands-index"),T=g(".ud-price-range"),q=/^\d+$/,I=g(".sort-sub-wrap"),E=g(".senior-sub-wrap"),A=g(".senior-attr-wrap"),F='{{# size}}<a class="attr {{#if checked}}checked{{/if}}" href="{{href}}">{{name}}</a>{{/ size}}',U={},D=g(".filter-box .size");F=v.compile(F),g(".filter-box").on("selectstart",".attr, .brands-index span",function(){return!1}),g(".sort-pre").on("click","li",function(){var e=g(this),t=e.index(),n=e.data("id");return e.hasClass("active")?(e.removeClass("active"),I.children(":eq("+t+")").addClass("hide"),void D.addClass("hide")):(e.siblings(".active").removeClass("active"),e.addClass("active"),I.children(":not(.hide)").addClass("hide"),I.children(":eq("+t+")").removeClass("hide"),void(D.data("load")||(U[n]?(D.find(".attr-content").html(U[n]),D.removeClass("hide")):g.ajax({url:"/product/search/sortSize",data:{msort:n}}).then(function(e){"array"===g.type(e)&&e.length?(U[n]=F({size:e}),D.find(".attr-content").html(U[n]),D.removeClass("hide")):D.addClass("hide")}))))}),k.length>0&&(d=k.children("em"),l=k.children(".iconfont")),j.click(function(){"none"===_.css("display")&&k.trigger("click"),i(),_.removeClass("hide").addClass("multi"),g(this).addClass("hide"),k.addClass("hide")}),k.click(function(){var e=g(this);e.hasClass("more")?(o(),d.text("更多"),l.html(b.down),C.val("").trigger("keyup")):(i(),d.text("收起"),l.html(b.up)),g(this).toggleClass("more")}),S.on("mouseenter","span",function(){var e=g(this),t=e.data("index");e.hasClass("hover")||setTimeout(function(){e.siblings("span.hover").removeClass("hover"),e.addClass("hover"),0===e.index()?x.removeClass("hide"):x.addClass("hide").filter("[data-index="+t+"]").removeClass("hide")},120)}),C.keyup(function(){var e=g(this).val().toLowerCase();""===e?x.removeClass("hide"):x.addClass("hide").filter('[data-key*="'+e+'"]').removeClass("hide")}),g("#brand-multi-ok").click(function(){var e=[];g(this).hasClass("dis")||(_.find("span.checked").each(function(){e.push(g(this).data("id"))}),s("brand",e.join(",")))}),g(".multi-select-cancel").click(function(){var e=g(this).closest(".multi");e.hasClass("brand-panel")&&(j.removeClass("hide"),k.trigger("click"),k.removeClass("hide"),C.val("").trigger("keyup"),o()),e.addClass("hide").removeClass("multi"),a(e.find(".checkbox.checked"),e.find(".attr.checked")),g(this).siblings(".multi-select-ok").addClass("dis")}),g(".check-container").on("click",".attr",function(){var e=g(this),t=e.find(".checkbox"),n=e.closest(".brand-panel, .senior-sub").find(".multi-select-ok");t.toggleClass("checked"),t.hasClass("checked")?t.html(y.checked):t.html(y.unchecked),t.hasClass("checked")||e.siblings(".attr").find(".checked").length>0?n.removeClass("dis"):n.addClass("dis")}),g(".brand, .senior").on("click",".attr > a",function(e){g(this).closest(".multi").length>0&&e.preventDefault()}),g(".filter-box").on("click","li.checked, a.checked",function(e){e.preventDefault()}),T.length>0&&(c=T.find(".limit"),u=c.filter(".min"),h=c.filter(".max"),p=T.find(".price-sure"),c.keyup(function(){var e,t,n,a=g.trim(g(this).val()),i=q.test(a);i||(e=parseInt(a,10),g(this).val(isNaN(e)?"":e)),t=g.trim(u.val()),n=g.trim(h.val()),""!==t||""!==n?p.removeClass("hide"):p.addClass("hide")}),p.click(function(){var e,t=g.trim(u.val()),n=g.trim(h.val());""!==t&&""!==n&&+t>+n&&(e=n,n=t,t=e),s("price",t+","+n)})),A.on("mouseenter",".attr",function(){var e=g(this),t=e.index();e.hasClass("no-sub")||(e.addClass("hover").siblings().removeClass("hover"), +E.children(".senior-sub:eq("+t+")").removeClass("hide").siblings().addClass("hide"))}).on("mouseleave",".attr",function(){var e=g(this),t=e.index();e.hasClass("no-sub")||(m=t,f=setTimeout(function(){r()},100))}),g(".senior-sub").on("click",".multi-select",function(){g(this).closest(".senior-sub").addClass("multi")}).on("click",".multi-select-ok",function(){var e=g(this),t=e.closest(".senior-sub"),n=[];e.hasClass("dis")||(t.find("span.checked").each(function(){n.push(g(this).data("id"))}),s(t.data("attr"),n.join(",")))}).on("mouseenter",function(){clearTimeout(f)}).on("mouseleave",function(){r()})}),define("js/product/sort-pager",["jquery"],function(e,t,n){var a=e("jquery"),i=a("#count-per-page"),o=i.next("ul"),s=200;a(document).click(function(e){a(e.target).closest(".page-count").length>0||o&&o.slideUp(s)}),i.click(function(){"none"===o.css("display")?o.slideDown(s):o.slideUp(s)})}),define("js/product/latest-walk",["jquery","handlebars","source-map","lazyload"],function(e,t,n){var a=e("jquery"),i=e("handlebars"),o=e("lazyload"),s=a("#latest-walk-count");!function(){var e;0!==s.length&&(e=i.compile(a("#latest-walk-tpl").html()),a.ajax({url:"//www.yohobuy.com/common/recentReview",dataType:"jsonp",data:{limit:s.val()},success:function(t){var n,i,s,r=[];if(200===t.code){if(n=t.data,0===n.length)return void a(".latest-walk").addClass("hide");for(i=0;i<n.length;i++)s=n[i],r.push({href:s.url,img:s.pic_url,name:s.product_name,salePrice:s.price,marketPrice:s.market_price});r.length>0&&(a("#latest-walk-goods").html(e({latestWalk:r})),o(a("#latest-walk-goods .lazy")))}}}))}()}),define("js/product/product",["jquery","lazyload","handlebars","source-map"],function(e,t,n){var a,i=e("jquery"),o=e("lazyload"),s=e("handlebars"),r=e("js/common/product-event"),d=i(".goods-container"),l=d.find(".good-info"),c=d.find(".good-item-wrapper"),u=d.find(".good-info-main"),h=d.find(".good-select-color"),p=i(".product-list-nav");o(i("img.lazy")),t.init=function(e){function t(e,t){var n,a,i,o="",s=e.length,r=4,d=Math.ceil(s/r),l=0;for(n=0;n<d;n++)for(o+="<ul>",a=0;a<r&&(i=n*r+a,i!==s);a++)o+='<li><a target="_blank" href="'+e[n*r+a].url+t+'"><img src="'+e[n*r+a].src+'" data-cover="'+e[n*r+a].coverImg+'" /></a></li>',a===r-1&&(o+="</ul>",l++);return l<d&&(o+="</ul>"),{colorListStr:o,ulNum:d}}function n(){u.html(""),h.html(""),c.css({display:"none"})}var o=i(".shop-entry"),s=i(".shop-entry-area"),p=o.length;p>1?(3===p?o.css({width:"32%"}):p%2&&i(".shop-entry:gt("+(p-4)+")").css({width:"32%"}),i(".shop-entry:nth-child(2n+1)").css({marginLeft:0}),o.last().css({marginLeft:"2%"}),p%2===0?o.find(".name").css({width:"50%"}):p%3===0&&o.find(".name").css({width:"26%"})):o.css({width:"100%"}),s.slideDown(),a=null,l.unbind(),a=r(l,e),a.addHandler("MouseEnter",function(e){var a,o,s,r,l,p,f,m,g=10,v=35,y="",b=e.target.attr("data-from")||"";i.ajax({type:"POST",url:"/product/list/getProductPic",dataType:"jsonp",jsonp:"callback",data:{skn:e.target.attr("data-skn"),skc:e.target.attr("data-skc")}}).then(function(w){var C=w.data,_=t(C.pics,b);n(),y=_.colorListStr,a=_.ulNum,u.append(e.targetDuplicate),h.append(i(y)),p=c.css("paddingLeft"),f=c.css("paddingTop"),m=d.css("paddingTop"),o=10+65*a+e.targetWidth,r=(e.targetX-1)*(e.targetWidth+g)-(parseInt(p)+1),l=(e.targetY-1)*(e.targetHeight+v)+parseInt(m)-(parseInt(f)+1),s=e.offsetR-(65*a+25),s<=0&&(r=r+s-25),c.css({width:o,left:r,top:l,display:"inline-block"}),C.pics[0]&&C.pics[0].src&&u.find(".good-thumb img").attr("src",C.pics[0].src)})}),a.addHandler("MouseLeave",function(){n()}),c.mouseleave(function(){n()})},i(document).on("hover",".good-select-color li",function(){var e=i(this).find("img").attr("data-cover"),t=i(this).closest(".good-item-wrapper").find(".good-detail-img").find("img");t.attr("src",e)}),p.find("h3").click(function(e){var t=i(this).closest(".product-list-nav");t.hasClass("active")?t.find(".sort-child-list").stop(!0,!0).slideUp():t.find(".sort-child-list").stop(!0,!0).slideDown(),t.toggleClass("active")}),function(){var e,t=i("#brand-card"),n=i("#brand-favor");t.length&&i.ajax({type:"POST",url:"/product/index/getNodeContent",data:{node:t.data("node")}}).then(function(e){t.html(e)}),n.length&&(e=i("#pic-link-tpl").html(),i.ajax({type:"POST",url:"/product/index/getAdnav",data:{brandId:n.data("id")}}).then(function(t){t&&i("#brand-ad").html(s.compile(e)({picLink:t}))}))}()}),define("js/common/product-event",["jquery"],function(e,t,n){function a(){this.handlers={}}var i=e("jquery");a.prototype={constructor:a,addHandler:function(e,t){"undefined"==typeof this.handlers[e]&&(this.handlers[e]=[]),this.handlers[e].push(t)},fire:function(e){var t,n;if(e.target||(e.target=this),this.handlers[e.type]instanceof Array)for(t=this.handlers[e.type],n=0;n<t.length;n++)t[n](e)},removeHandler:function(e,t){var n,a;if(this.handlers[e]instanceof Array){for(n=this.handlers[e],a=0;a<n.length&&n[a]!==t;a++);n.splice(a,1)}}},n.exports=function(e,t){function n(e){var n,a=0,u=0,h=t,p=0,f="",m=0,g=0;switch(e.type){case"mouseenter":n=i(this),o=setTimeout(function(){s=!0,f=n.clone(),p=n.index()+1,a=p%h===0?h:p%h,u=Math.ceil(p/h),m=n.offset().left,g=c-(m+d),r.fire({type:"MouseEnter",target:n,targetWidth:d,targetHeight:l,targetX:a,targetY:u,rowWidth:h,activeIndex:p,targetDuplicate:f,offsetL:m,offsetR:g})},150);break;case"mouseleave":s||(o&&clearTimeout(o),r.fire({type:"MouseLeave"})),s=!1}}var o,s,r=new a,d=e.eq(0).width(),l=e.eq(0).height(),c=i(window).width();return e.bind({mouseenter:n,mouseleave:n}),r}}),define("js/product/brand",["jquery"],function(e,t,n){var a=e("jquery"),i=a("#brand-favor"),o=i.data("id");i.on("click",function(){a.ajax({type:"post",url:"/product/index/favoriteBrand",data:{brandId:o}}).then(function(e){200===e.code?i.find("i").toggleClass("coled"):403===e.code&&(location.href="//www.yohobuy.com/signin.html?refer="+encodeURIComponent(location.href))})}),a.ajax({type:"POST",url:"/product/index/isFavoriteBrand",data:{brandId:o}}).then(function(e){200===e.code?i.find("i").addClass("coled"):404===e.code&&i.find("i").removeClass("coled")})}),define("js/product/hotrank",["jquery","handlebars","source-map","lazyload"],function(e,t,n){var a=e("jquery"),i=e("handlebars"),o=e("lazyload");e("js/common/slider"),e("js/common/logo-brand"),o(a("img.lazy")),a(".slide-container").slider(),a(".logo-brand").logoBrand({showNum:10,url:a(".logo-brand").data("url")}),function(e){function t(t,n){var d={};d=n?{sid:t,page:n}:{sid:t},e.ajax({type:"GET",dataType:"json",url:"/product/index/getdata",data:d,success:function(t){var d;200===t.code&&(d={list:t.data},s=i.compile(a),n?(e(".hot-week-list").append(s(d)),r.css({position:"fixed",marginTop:-r.height()/2,top:"50%"})):e(".hot-week-list").html(s(d)),o(e("img.lazy")),c=!1)}})}var n,a,s,r=e(".hot-week").find(".floatlayer"),d=(e(".hot-cate").find("li").eq(0).data("sid"),1),l=0,c=!1;a='{{# list}}<div class="good-info"><div class="item-img"><a class="good-thumb" target="_blank" href="{{url}}"><img class="lazy" data-original="{{thumb}}"></a></div><div class="good-detail-text"><a target="_blank" href="{{url}}">{{name}}</a><p class="price">{{# marketPrice}}<span class="market-price">¥{{.}}</span>{{/ marketPrice}} <span class="sale-price{{#unless marketPrice}}prime-cost{{/unless}}">¥{{salePrice}}</span></p></div></div>{{/ list}}',e(window).on("scroll",function(){var a,i=n+e(".hot-week").outerHeight();n=e(".hot-week").offset().top,e(this).scrollTop()>=n-e(window).height()/2?r.offset().top+r.outerHeight()>=i?r.css({position:"absolute",marginTop:0,top:e(".hot-week").outerHeight()-r.outerHeight()}):r.css({marginTop:-r.height()/2}).stop().animate({opacity:1},200,function(){r.show()}):r.stop().animate({opacity:0},200,function(){r.hide()}),r.offset().top>=e(this).scrollTop()+(e(window).height()-r.outerHeight())/2&&r.css({position:"fixed",marginTop:-r.height()/2,top:"50%"}),e(this).scrollTop()>=n+e(".hot-week").height()-e(window).height()&&(c||(a=e(".hot-cate").find("li.current").data("sid"),d++,c=!0,t(a,d)))}),e(".hot-cate").find("li").each(function(t){var n=e(".hot-cate").width();l<=n&&(l+=e(this).width(),l>=n&&e(".floatlayer").find("li").eq(t).hide().nextAll().hide())}),e(".hot-cate").on("click","li",function(){var a=e(this).index(),i=e(this).data("sid");e(this).hasClass("current")||(e(this).addClass("current").siblings().removeClass("current"),e(".floatlayer").find("li").removeClass("current").eq(a).addClass("current"),e("body,html").stop().animate({scrollTop:n-110},500),t(i),d=1)}),e(".floatlayer").on("click","li",function(){var t=e(this).index();e(this).hasClass("current")||(e(".hot-cate").find("li").eq(t).trigger("click"),e(this).addClass("current").siblings().removeClass("current"),e(".hot-cate").find("li").removeClass("current").eq(t).addClass("current"))}),e(".hot-cate").find("li").eq(0).addClass("current"),e(".floatlayer").find("li").eq(0).addClass("current")}(a)}),define("js/common/slider",["jquery","lazyload"],function(e,t,n){var a=e("jquery"),i=e("lazyload");!function(e){var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.slider.defaults,n),this.bigItem=this.$element.find(".slide-wrapper").find("li"),this.smallItem=null,this.len=this.bigItem.size(),this.index=0,this.timer=null,this.init()};t.prototype={init:function(){if(this.$element){if(this.len<=1)return void i(this.$element.find("img.lazy"));this.options.pagination?this.smallItem=e(this.options.pagination).find("li"):this._createPage(),this.options.orient&&this._createOrient(),this._slideShow(),this._bindEvent(),this._autoplay()}},_createOrient:function(){var e='<div class="slide-switch"><a class="prev" href="javascript:;"><span class="iconfont"></span></a><a class="next" href="javascript:;"><span class="iconfont"></span></a></div>';this.$element.find(".slide-switch").length>0||this.$element.append(e)},_createPage:function(){var t='<div class="slide-pagination"><div class="slide-pagination-inner"><div class="slide-shade"></div><div class="slide-pagination-last">',n=0;if(!(this.len<=1)){for(n=0;n<this.len;n++)t+="<span></span>";t+="</div></div></div>",this.$element.append(e(t)),this.smallItem=this.$element.find(".slide-pagination-inner span")}},_bindEvent:function(){var t=this;this.$element.find(".slide-switch").on("click",".next",function(){t._nextSlide(),clearInterval(t.timer),t.timer=setInterval(function(){t._nextSlide()},t.options.time)}).on("click",".prev",function(){t._prevSlide(),clearInterval(t.timer),t.timer=setInterval(function(){t._nextSlide()},t.options.time)}),this.smallItem.on("mouseenter",function(){t.index=e(this).index(),clearInterval(t.timer),t._slideShow()}).on("mouseleave",function(){t._autoplay()}),this.$element.on("mouseenter",function(){e(this).find(".slide-switch").addClass("show")}).on("mouseleave",function(){e(this).find(".slide-switch").removeClass("show")})},_nextSlide:function(){this.index===this.len-1?this.index=0:this.index++,this._slideShow()},_prevSlide:function(){0===this.index?this.index=this.len-1:this.index--,this._slideShow()},_slideShow:function(){var t=this.bigItem.eq(this.index).find("img.lazy");t.attr("src")!==t.data("original")&&(i(t,{event:"sporty"}),t.trigger("sporty")),this.smallItem.eq(this.index).addClass("focus").siblings().removeClass("focus"),this.bigItem.eq(this.index).show().stop().animate({opacity:1},function(){e(this).find(".slide-tips > p").removeClass("hide")}).siblings().stop().animate({opacity:0},function(){e(this).hide().find(".slide-tips > p").addClass("hide")})},_autoplay:function(){var e=this;clearInterval(this.timer),this.timer=setInterval(function(){e._nextSlide()},this.options.time)}},e.fn.slider=function(n){return this.each(function(){var a=e(this),i=a.data("Slider"),o="object"==typeof n&&n;i||a.data("Slider",i=new t(this,o)),"string"==typeof n&&i[n]()})},e.fn.slider.Constructor=t,e.fn.slider.defaults={time:5e3,orient:!0,pagination:null}}(a)}),define("js/common/logo-brand",["jquery","handlebars","source-map","lazyload"],function(e,t,n){var a=e("jquery"),i=e("handlebars"),o=e("lazyload");!function(e){var t=function(t,n){this.$element=e(t),this.options=e.extend({},e.fn.logoBrand.defaults,n),this.init()};t.prototype={init:function(){this.$element.addClass("logos-"+this.options.showNum),this._sendRequest()},_createHelper:function(){var e=this.options.showNum;i.registerHelper("brandList",function(t,n){var a="<ul>",i=0,o=null,s=0;if(t.length%e!==0)for(s=e-t.length%e,i=0;i<s;i++)t.push({href:"javascript:;",img:""});for(i=0;i<t.length;i++)o=n.fn(t[i]),a=i%e===5||5===i?a+'<li class="logo-brand-switch" data-page="'+Math.floor(i/e)+'"><a class="prev iconfont" href="javascript:;"></a><a class="next iconfont" href="javascript:;"></a></li><li data-page="'+Math.floor(i/e)+'">'+o+"</li>":0!==i&&i%e===0?a+'<li class="brand-more" data-page="'+Math.floor(i/(e+1))+'"><a href="javascript:;" target="_blank">MORE ></a></li><li data-page="'+Math.floor(i/e)+'">'+o+"</li>":a+'<li data-page="'+Math.floor(i/e)+'">'+o+"</li>";return a+'<li class="brand-more" data-page="'+Math.floor(i/(e+1))+'"><a href="javascript:;" target="_blank">MORE ></a></li></ul>'})},_sendRequest:function(){var t=this;e.ajax({type:"GET",url:t.options.url,dataType:"json",success:function(e){var n,a;e&&0!==e.length&&(t._createHelper(),a='{{#brandList logoBrand}}<a href="{{href}}" target="_blank"><img class="lazy" data-original="{{img}}" alt=""></a>{{/brandList}}',n=i.compile(a),t.$element.html(n(e)),t.$element.find(".brand-more a").attr("href",e.moreBrand),o(t.$element.find("img.lazy")),t._bindEvent())}})},_brandShow:function(t,n){var a=this;o(e("li[data-page="+n+"]").find("img.lazy").trigger("appear")),a.$element.find("li[data-page="+t+"]").find("img").fadeOut("normal",function(){a.$element.find("li").hide(),a.$element.find("li[data-page="+n+"]").show().find("img").fadeIn()})},_bindEvent:function(){var t=this;t.$element.on("click",".next",function(){var n=e(this).parent().data("page"),a=0,i=Math.ceil(t.$element.find("li").size()/(t.options.showNum+2))-1;a=n===i?0:n+1,t._brandShow(n,a)}),t.$element.on("click",".prev",function(){var n=e(this).parent().data("page"),a=0,i=Math.ceil(t.$element.find("li").size()/(t.options.showNum+2))-1;a=0===n?i:n-1,t._brandShow(n,a)})}},e.fn.logoBrand=function(n){return this.each(function(){var a=e(this),i=a.data("LogoBrand"),o="object"==typeof n&&n;i||a.data("LogoBrand",i=new t(this,o)),"string"==typeof n&&i[n]()})},e.fn.logoBrand.Constructor=t,e.fn.logoBrand.defaults={showNum:16,url:"/boys/getBrand"}}(a)}),define("js/product/item",["jquery","lazyload","handlebars","source-map","index"],function(e,t,n){function a(e){h.attr("src",e)}function i(){return+y.text()}function o(){y.text("1"),1===I||0===I?(b.addClass("dis"),w.addClass("dis")):(b.removeClass("dis"),w.addClass("dis"))}function s(e){0!==k.length&&(0===I||e&&0===~~e.data("total")?(k.addClass("hide"),_.removeClass("hide")):(k.removeClass("hide"),_.addClass("hide")))}function r(){m.not(".hide").children(".size-warn").removeClass("hide")}var d=e("jquery"),l=e("lazyload"),c=e("handlebars"),u=e("index"),h=d("#img-show"),p=d("#thumbs > .thumb-wrap"),f=d("#sizes"),m=f.children(".size"),g=f.find(".size-warn"),v=f.children(".color-size-tip"),y=d("#num"),b=d("#plus-num"),w=d("#minus-num"),C=d("#add-to-cart"),_=d("#sold-out"),x=d(".lc-container"),k=d(".item-buy"),j=d("#desc-color"),S={},T=d(".main"),q=T.data("id"),I=-1,E=200,A={def:"收藏商品",coled:"已收藏",hover:"取消收藏"},F=e("js/common/dialog").Alert;e("js/product/latest-walk"),e("js/common/share"),function(){var e,t=d("#size-title-json"),n=t.html();""!==n&&(e=u.parse(n),t.remove(),m.children("li").each(function(){var t=d(this),n=t.data("name");t.data("title",e[n])}))}(),S[d(".colors .focus").index()]=!0,d("#brand-favour").click(function(){var e=d(this);d.ajax({type:"POST",url:"/product/index/favoriteBrand",data:{brandId:e.data("id")}}).then(function(t){200===t.code?e.toggleClass("coled"):403===t.code&&(location.href=t.data.url)})}),d(".colors").on("click","li",function(){var e,t=d(this),n=t.index();v.addClass("hide"),g.addClass("hide"),I=-1,t.hasClass("focus")?m.eq(n).children("li").removeClass("focus"):(t.siblings(".focus").removeClass("focus"),t.addClass("focus"),p.not(".hide").addClass("hide"),e=p.eq(n).removeClass("hide").find("img"),"undefined"==typeof S[n]&&(l(e,{event:"sporty"}),e.trigger("sporty"),S[n]=!0),a(e.first().data("shower")),j.text(t.data("color")),m.not(".hide").addClass("hide").children("li").removeClass("focus"),m.eq(n).removeClass("hide")),o(),s(t)}),d("#thumbs").on("mouseenter",".thumb",function(){a(d(this).data("shower"))}),f.on("click","li",function(){var e=d(this);e.hasClass("focus")||(I=+e.data("num"),e.siblings(".focus").removeClass("focus"),e.addClass("focus"),v.html(e.data("title")).removeClass("hide"),g.addClass("hide"),s(),o())}).on("click",".size-ruler",function(){d("body,html").animate({scrollTop:d(".size-info").offset().top},300)}),b.click(function(){var e=i();if(!d(this).hasClass("dis"))return I===-1?void r():void(0!==I&&(e===I-1&&d(this).addClass("dis"),1===e&&w.removeClass("dis"),y.text(e+1>I?I:e+1)))}).on("selectstart",function(){return!1}),w.click(function(){var e=i();d(this).hasClass("dis")||(2===e&&d(this).addClass("dis"),e===I&&b.removeClass("dis"),y.text(e-1<0?0:e-1))}).on("selectstart",function(){return!1}),d(".get-lc:not(.dis)").hover(function(){x.removeClass("hide")},function(){x.addClass("hide")}),C.click(function(){return I===-1?void r():void d.ajax({type:"POST",url:"/cart/index/add",data:{productSku:d(".size:not(.hide) li.focus").data("sku"),buyNumber:i()}}).then(function(e){var t=e.code;200===t&&(d("#type-chose").slideUp(E),d("#balance").slideDown(E),d("#cart-num").text(e.data.goods_count))})}),d("#collect-product").click(function(){var e,t=d(this);t.hasClass("coled")&&(e=!0),d.ajax({type:"POST",url:"/product/item/togglecollect",data:{productId:q,type:e?"cancel":"add"}}).then(function(n){var a=n.code;200===a?(t.toggleClass("coled"),e?t.find("em").text(A.def):t.find("em").text(A.coled)):403===a&&(location.href=n.data.url)})}).hover(function(){var e=d(this);e.hasClass("coled")&&e.find("em").text(A.hover)},function(){var e=d(this);e.hasClass("coled")&&e.find("em").text(A.coled)}),d("#keep-shopping").click(function(){d("#type-chose").slideDown(E),d("#balance").slideUp(E)}),d("#buy-now").click(function(){var e,t,n;if(I===-1)return void r();if(!d(this).hasClass("dis")){if(t=d(this).data("base"),!t)return n=new F("打开APP可抢购该商品哦~~"),void n.show();e=m.find(".focus").data("sku"),e&&t&&(location.href=t+"?product_sku="+e)}}),d(".buy-btn").mouseover(function(){d(this).hasClass("dis")||d(this).addClass("hover")}).mouseleave(function(){d(this).removeClass("hover")}),d(".description-material").on("click",".title",function(){var e=d(this),t=e.index(),n=d(".description-content"),a=d(".material-content");e.hasClass("cur")||(e.addClass("cur"),e.siblings(".cur").removeClass("cur"),0===t?(n.slideDown(E),a.slideUp(E)):(n.slideUp(E),a.slideDown(E)))}),d(".after-service-switch").click(function(){var e=d(this),t=e.next(".after-service-content"),n={def:"",spread:""};"none"===t.css("display")?(t.slideDown(E),e.find(".triangle").html(n.spread)):(t.slideUp(E),e.find(".triangle").html(n.def))}),d.ajax({type:"GET",url:"/product/item/hotarea",data:{productId:q}}).then(function(e){d("#details-html").prepend(e),d(".hot-point-wrap > img").load(function(){d(this).parent(".hot-point-wrap").width(d(this).width())}),d(".hot-point").hover(function(){d(this).addClass("hover")},function(){d(this).removeClass("hover")})}),l(d("#details-html img")),function(){var e,t=!0;for(e=0;e<m.length;e++)if(1!==m.eq(e).find("li").length){t=!1;break}t&&m.eq(d(".colors .focus").index()).find("li").click()}(),function(){function e(){n||(n=!0,d.ajax({type:"GET",url:"/product/item/comments",data:{productId:q,page:i}}).then(function(e){var t;if(200===e.code){if(t=e.data,0===t.length)return void l.next(".more-wrap").addClass("hide");h.text(t[0].total),l.append(s({comments:t})),i++}}).always(function(){n=!1}))}function t(){a||(a=!0,d.ajax({type:"GET",url:"/product/item/consults",data:{productId:q,page:o}}).then(function(e){var t;if(200===e.code){if(t=e.data,0===t.length)return void u.next(".more-wrap").addClass("hide");p.text(t[0].total),u.append(r({consults:t})),o++}}).always(function(){a=!1}))}var n,a,i=1,o=1,s=c.compile(d("#comments-tpl").html()),r=c.compile(d("#consults-tpl").html()),l=d("#comments-ul"),u=d("#consults-ul"),h=d(".comment-num"),p=d(".consult-num");d(".consult-comment").on("click",".title",function(){var e=d(this),t=e.index(),n=d(".comments"),a=d(".consults");e.hasClass("cur")||(e.addClass("cur"),e.siblings(".cur").removeClass("cur"),0===t?(a.slideDown(E),n.slideUp(E)):(a.slideUp(E),n.slideDown(E)))}).on("click",".load-more",function(){var n=d(this);n.hasClass("load-more-comments")?e():t()}),d("#consults-btn").click(function(){d(".new-consult").removeClass("hide"),d(".consult-success").addClass("hide")}),d("#submit-consult").click(function(){var e=d(this),t=e.closest(".new-consult"),n=t.find(".my-consult"),a=d.trim(n.val()),i=t.find(".consult-warn"),o=!0;""===a?(n.addClass("error"),i.removeClass("hide"),o=!1):(n.removeClass("error"),i.addClass("hide")),o!==!1&&d.ajax({type:"POST",url:"/product/item/addconsult",data:{productId:q,content:a}}).then(function(e){var a=e.code;200===a?(t.addClass("hide"),t.siblings(".consult-success").removeClass("hide"),n.val("")):403===a&&(location.href=e.data.url)})}),e(),t()}()}),define("js/common/dialog",["jquery","handlebars","source-map"],function(e,t,n){function a(){return 0===l(".body-mask").length&&l("body").append('<div class="body-mask hide"></div>'),l(".body-mask").css({height:l(document).height(),width:l(document).width()})}function i(e){return l("body").append(p(e)),l(".yoho-dialog")}function o(e){var t=l(".yoho-dialog"),n='<p class="sub-content">'+e+"</p>";t&&t.length>0&&t.find(".content").after(n)}function s(e){function t(e){r.$el.find("#dialog-"+s.btns[e].id).on("click",function(){s.btns[e].cb&&s.btns[e].cb()})}var n,s=l.extend({},u,e),r=this;if(s.inherit)return this;if(s.mask&&(r.$mask=a()),r.$el=i(s),s.subContent&&o(s.subContent),s.subContents)for(n=s.subContents.length-1;n>=0;n--)o(s.subContents[n]);if(r.$el.find(".close").click(function(){r.close(),e.refreshOnClose&&window.location.reload()}),r.$el.find(".btn-close").click(function(){r.close()}),s.btns)for(n=0;n<s.btns.length;n++)t(n)}function r(e){var t=this,n={content:e,className:"alert-dialog",btns:[{id:"alert-sure",btnClass:["alert-sure"],name:"确定",cb:function(){t.close()}}]};s.call(this,n)}function d(e){var t=this,n={content:e.content,className:"confirm-dialog",btns:[{id:"confirm-sure",btnClass:["confirm-sure"],name:"确定",cb:e.cb},{id:"confirm-cancel",btnClass:["confirm-cancel"],name:"取消",cb:function(){t.close()}}]};s.call(this,n)}var l=e("jquery"),c=e("handlebars"),u={mask:!0,closeIcon:!0,refreshOnClose:!1},h='<div class="yoho-dialog {{className}} hide">{{#if closeIcon}}<span class="close"><i class="iconfont"></i></span>{{/if}}<div class="content">{{{content}}}</div><div class="btns">{{# btns}}<span {{#if id}}id="dialog-{{id}}"{{/if}} class="btn{{#each btnClass}} {{.}}{{/each}}">{{name}}</span>{{/ btns}}</div></div>',p=c.compile(h);s.prototype.close=function(){this.$mask&&this.$mask.addClass("hide"),this.$el.remove()},s.prototype.show=function(){this.$mask&&this.$mask.removeClass("hide"),this.$el.removeClass("hide").css({"margin-top":-this.$el.height()/2,"margin-left":-this.$el.width()/2})},t.Dialog=s,r.prototype=new s({inherit:!0}),r.prototype.constructor=r,t.Alert=r,d.prototype=new s({inherit:!0}),d.prototype.constructor=d,t.Confirm=d}),define("js/common/share",["jquery"],function(e,t,n){function a(e){var t,n="",a={title:"",url:window.location.href,weixinUrl:"",image:"",desc:"",channel:""},i=["weibo","tweibo","qzone","renren","qq","douban","weixin"],s="<em><i></i></em>";if(a=o.extend(a,e),a.image&&"//"===a.image.substr(0,2)&&(a.image="http:"+a.image),a.weixinUrl&&"//"===a.weixinUrl.substr(0,2)&&(a.weixinUrl="http:"+a.weixinUrl),a.url&&"//"===a.url.substr(0,2)&&(a.url="http:"+a.url),o.inArray(a.channel,i)===-1)return alert("不存在的分享平台!"),!1;switch(a.channel){case"weibo":n="http://service.weibo.com/share/share.php?url="+a.url+"&title="+a.title+"&appkey=3739328910&searchPic=true&pic="+a.image;break;case"tweibo":n="http://share.v.t.qq.com/index.php?c=share&a=index&url="+a.url+"&title="+a.title+"&appkey=c0af9c29e0900813028c2ccb42021792&pic="+a.image;break;case"qzone":n="http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url="+a.url+"&title="+a.title+"&desc=&summary="+a.desc+"&site=YOHO!BUY 有货&pics="+a.image;break;case"renren":n="http://widget.renren.com/dialog/share?resourceUrl="+a.url+"&srcUrl="+a.url+"&desc="+a.desc+"&title="+a.title+"&description="+a.desc+"&pic="+a.image;break;case"qq":n="http://connect.qq.com/widget/shareqq/index.html?url="+a.url+"&desc="+a.desc+"&title="+a.title.replace("%","")+"&desc=&summary="+a.desc+"&site=YOHO!BUY 有货&pics="+a.image;break;case"weixin":n="http://s.jiathis.com/qrcode.php?url="+a.weixinUrl+"&desc="+a.desc+"&title="+a.title+"&description="+a.desc+"&pic="+a.image;break;case"douban":n="//www.douban.com/share/service?href="+a.url+"&text="+a.desc+"&image="+a.image+"&title="+a.title+"&comment="}if("weixin"===a.channel){if(!a.self)return;t=a.self.closest(".share-to").find(".weixin-share-box"),t.length>0&&(s+='<div class="con"><h2>分享到微信朋友圈</h2><p class="pic"><img src="'+n+'" /></p><p class="w">打开微信,点击底部得“发现”,使用<br/>“扫一扫“即可将网页分享到我的朋友圈。</p><a href="javascript:void(0)" class="close">x</a></div>',t.find("div").length>0?t.show():t.html(s).show(),t.find(".close").click(function(){o(this).closest(".weixin-share-box").hide()}))}else window.open(encodeURI(n))}function i(e,t){var n=document.title.replace(/(^\s*)|(\s*$)/g,""),i=o("#share-desc").val(),s=o("#share-img").val(),r=o("#weixin-url").val();a("weibo"===e||"tqq"===e?{channel:e,title:n,image:s}:{channel:e,title:n,desc:i,image:s,self:t,weixinUrl:r})}var o=e("jquery");o(".share-wrapper").on("click","i",function(){var e=o(this),t=e.data("type"),n=o(".weixin-share-box");"weixin"===t?i(t,e):(n.hide(),i(t))})}),define("js/product/shop-index",["jquery","lazyload","handlebars","source-map","jquery-pjax"],function(e,t,n){function a(){var e=d.find(".shop-collect-ico"),t=d.find(".shop-collect-text"),n=e.hasClass("on"),a=window.cookie("needColloect");i.ajax({type:"post",url:"/shoplist/setFavorite",data:{isFavorite:n?0:1,needColloect:a,shopId:d.data("id")},success:function(i){200===i.code?(n?(e.removeClass("on"),t.html("收藏")):(e.addClass("on"),t.html("已收藏")),a&&(e.addClass("on"),t.html("已收藏"))):401===i.code&&(window.setCookie("needColloect","1",{path:"/",domain:".yohobuy.com",expires:90}),location.href=i.url)}})}var i=e("jquery"),o=e("lazyload"),s=e("js/product/product"),r=i(".shop-intro"),d=i(".shop-collect"),l=i(".slider-left"),c=i(".all-goods"),u=c.find(".fixed-area"),h=u.offset()?u.offset().top:0;e("jquery-pjax"),e("js/common/slider"),e("js/product/list"),s.init(4),o(i("img.lazy")),l.length&&l.slider(),r.on("click",function(){i(".pop-shop-intro").show(),i(".mask").show()}),i(".close-btn, .mask").on("click",function(){i(".pop-shop-intro").hide(),i(".mask").hide()}),d.on("click",function(){a()}),1*window.cookie("needColloect")===1&&window.getUid()&&(a(),window.setCookie("needColloect","",{path:"/",domain:".yohobuy.com",expires:1})),c.pjax("a.pjax",".goods-wrap",{timeout:5e3,scrollTo:!1}).on("pjax:end",function(){s.init(4),o(i("img.lazy")),u=c.find(".fixed-area"),i("html, body").animate({scrollTop:c.offset().top-30})}).on("click",".menu-list li",function(){var e=i(this);e.siblings().removeClass("on"),e.addClass("on")}),i(window).on("scroll",function(){var e=i(this).scrollTop();e>h?u.css({position:"fixed",top:0}):u.css({position:"static",top:0})})}),define("js/index/index",["jquery","lazyload","handlebars","source-map"],function(e,t,n){var a=e("jquery"),i=e("lazyload"),o=a(".home-page").data("page"),s=a(".logo-brand").data("url");e("js/common/slider"),e("js/common/slider2"),e("js/common/logo-brand"),e("js/common/accordion"),a(document).on("mouseenter",".imgopacity a img",function(){a(this).css("opacity",.8)}),a(document).on("mouseout",".imgopacity a img",function(){a(this).css("opacity",1)}),a.inArray(o,["boys","girls","kids","lifestyle"])>-1&&(e("js/common/new-arrivls")({type:o,url:"/common/getNewArrival",count:"boys"===o||"lifestyle"===o?5:4,rows:[5,3]}),window.setCookie("_Channel",o,{domain:".yohobuy.com",path:"/",expires:365})),i(a("img.lazy")),"boys"===o?a(".slide-container").slider({pagination:".thumb-pagination"}):(a(".center-col").slider(),a(".slide-container").slider()),"boys"===o?(a(".logo-brand").logoBrand({url:s}),a(".img-brand").slider2()):(a(".logo-brand").logoBrand({showNum:10,url:s}),a(".img-slider-wrapper").slider2())}),define("js/common/slider2",["jquery"],function(e,t,n){var a=e("jquery");!function(e){e.fn.slider2=function(t){function n(t,n,i){i===!0?(e(".next").trigger("click"),t===n-3?a(--t,n,!1):a(++t,n,!0)):(e(".prev").trigger("click"),0===t?a(++t,n,!0):a(--t,n,!1))}function a(t,a,i){window.setTimeout(n,e.fn.slider2.defaults.delaytime,t,a,i)}function i(t,n,a){var i=-(t*n);e(".img-list").animate({"margin-left":i+"px"},"slow",a)}return e.fn.slider2.defaults={index:0,shownum:3,autoplay:!1,delaytime:3e3},this.each(function(){var n=e.extend({},e.fn.slider2.defaults,t),o=parseInt(e(".img-item").css("margin-right")),s=e(".img-item"),r=[],d=s.outerWidth()+o,l=s.length,c=0;if(l<=3)return void e(this).find(".img-brand-switch").hide();for(c=0;c<s.length;c++)r.push(s[c]);l=r.length,e(this).find(".img-list").css({width:d*l}),e(this).find(".next").on("click",function(t){var n=0,a=null;t.preventDefault(),i(3,d,function(){for(n=0;n<3;n++)a=r.shift(),e(".img-item").parent().append(a.outerHTML),r.push(a);e(".img-item").first().remove(),e(".img-item").first().remove(),e(".img-item").first().remove(),e(".img-list").css({"margin-left":"0"})})}),e(this).find(".prev").on("click",function(t){var n=0,a=null,o="";for(t.preventDefault(),n=0;n<3;n++)a=r.pop(),e(".img-item").parent().prepend(a.outerHTML),r.unshift(a);o=3*d,e(".img-item").last().remove(),e(".img-item").last().remove(),e(".img-item").last().remove(),e(".img-list").css({"margin-left":-o+"px"}),i(0,d)}),n.autoplay===!0&&a(n.index,l,!0)})}}(a)}),define("js/common/accordion",["jquery"],function(e,t,n){function a(e){d.each(function(t){s(this).css("zIndex",t),t<=e?s(this).stop().animate({left:t*c},400):s(this).stop().animate({left:e*c+l+c*(t-e-1)},400)})}var i,o=e("js/common/yohoui/YH.slide"),s=e("jquery"),r=s(".slide-accordion"),d=r.find("li"),l=d.width(),c=1150===parseInt(s(".home-page").width())?125:107;a(0),i=new o({length:5,loop:!1,auto:!1,timeout:2,index:0}),i.on("change",function(e){a(e.to)}),d.mouseover(function(){i.go(s(this).index())}),i.init()}),define("js/common/yohoui/YH.slide",[],function(e,t,n){var a=e("js/common/yohoui/YH.base"),i=function(e){this.__lastTime=null,this.__isStop=!1,e=a.extend(this.defaults,e),i.superclass.constructor.call(this,e)};a.inherit(i,a.assembly),i.prototype.oninit=function(){var e=this,t=e.options;return t.auto&&e.play(),e.go(t.index),this},i.prototype.go=function(e,t){var n,a,i,o,s,r,d,l,c=this,u=c.options;c.__lastTime&&(clearTimeout(c.__lastTime),c.__lastTime=null),t="undefined"==typeof t?u.index:t,n=e===t?0:e>t?1:-1,a=u.loop,o=u.length-1,s=e,e=a?e>o?e-o-1:0>e?e+o+1:e:e>o?o:0>e?0:e,i=u.index=e,r={from:t,to:e,originalto:s,direction:n};for(d in c.registerEvent)if(c.registerEvent[d].length>0)for(l in c.registerEvent[d])c.registerEvent[d].hasOwnProperty(l)&&c.registerEvent[d][l](r);i!==o||e?!c.__isStop&&u.auto&&c.play():c.__lastTime&&clearTimeout(c.__lastTime)},i.prototype.play=function(){var e=this,t=e.options;return e.__lastTime=setTimeout(function(){e.next()},1e3*t.timeout),this},i.prototype.next=function(){var e=this,t=e.options,n=t.index,a=n+t.step;e.go(a,n)},i.prototype.prev=function(){var e=this,t=e.options,n=t.index,a=n-t.step;e.go(a,n)},i.prototype.pause=function(){var e=this;e.__lastTime&&clearTimeout(e.__lastTime),e.__isStop=!0},i.prototype.resume=function(){ +var e=this;e.__isStop=!1,e.play()},i.prototype.defaults={index:0,timeout:5,step:1,per:1,auto:!1,loop:!1},n.exports=i}),define("js/common/yohoui/YH.base",[],function(e,t,n){var a,i={"[object Array]":"array","[object Boolean]":"boolean","[object Date]":"date","[object Function]":"function","[object Number]":"number","[object Object]":"object","[object RegExp]":"regexp","[object String]":"string"},o={__Index:0,list:[],get:function(e){return void 0===e?this.list:this.list[e]},fn:function(){},inherit:function(e,t){var n=o.fn;n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e,e.superclass=t.prototype,e.prototype.constructor===Object.prototype.constructor&&(e.prototype.constructor=t)},extend:function(e,t){var n;for(n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e},copy:function(e,t,n){var a,i,s;if("object"!=typeof t)return t;if(a=t.valueOf(),t!==a)return new t.constructor(a);if(t instanceof t.constructor&&t.constructor!==Object){i=e?new e:o.clone(t.constructor.prototype);for(s in t)(e||t.hasOwnProperty(s))&&(i[s]=t[s])}else{i={};for(s in t)i.hasOwnProperty(s)&&(i[s]=t[s])}if(n)for(s in n)i.hasOwnProperty(s)&&(i[s]=n[s]);return i},clone:function(e){return o.__cloneFunc.prototype=e,new o.__cloneFunc},__cloneFunc:function(){},delegate:function(e,t){var n;return t=t||window,arguments.length>2?(n=Array.prototype.slice.call(arguments,2),function(){return e.apply(t,n)}):function(){return e.call(t)}},dom:function(e,t){var n,a,i=e,o={wrap:i},s=i[0].getElementsByTagName("*"),r=s.length;for(a=0;a<r;a++)n=s[a].className,n.indexOf(t)>-1&&(n=n.split(t)[1]),n&&(o[n]=i.find(s[a]));return o},template:function(){var e,t,n,a,i=arguments;if(i.length>0&&o.isString(i[0]))if(e=i[0],2===i.length&&o.isObject(i[1]))for(t in i[1])void 0!==i[1][t]&&(n=new RegExp("({"+t+"})","g"),e=e.replace(n,i[1][t]));else for(a=1;a<i.length;a++)void 0!==i[a]&&(n=new RegExp("({["+(a-1)+"]})","g"),e=e.replace(n,i[a]));return e},__type:function(e){return null==e?String(e):i[Object.prototype.toString.call(e)]||"object"},isObject:function(e){return this.isFunction(e)||!(!e||"object"!=typeof e)},isFunction:function(e){return"function"===this.__type(e)},isArray:Array.isArray||function(e){return"array"===this.__type(e)},isNum:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},isString:function(e){return"string"===this.__type(e)},each:function(e,t,n){var a,i;if(o.isArray(e))for(a=0,i=e.length;a<i&&t.call(e[a],a,e[a],n)!==!1;a++);else for(a in e)if(t.call(e[a],a,e[a],n)===!1)break},funManager:{__loadList:{},__loadFun:function(e,t,n){e.methord&&o.isFunction(e.methord())&&(n=n||window,e.methord()(e,function(){t()},n))},load:function(e,t,n,a){a=a||0,e[a]&&o.funManager.__loadFun(e[a],function(){o.funManager.load(e,t,n,a+1)},n),t(a,n)},get:function(e){return this.__loadList[e]}},log:function(e){var t=window.console||{log:function(){}};t.log(e)},Event:{mousewheel:function(e){var t=e.originalEvent,n=t.detail?t.detail*-1:t.wheelDelta/40,a=n<0?-1:1;return{direction:a,unit:n}},__:function(e,t,n,a){var i;for(i in e)if(window[e[i].validator]){t[e[i].validator](e[i].prefix+n,a,!1);break}},add:function(e,t,n){var a=[{validator:"addEventListener",prefix:""},{validator:"attachEvent",prefix:"on"}];this.__(a,e,t,n)},remove:function(e,t,n){var a=[{validator:"removeEventListener",prefix:""},{validator:"detachEvent",prefix:"on"}];this.__(a,e,t,n)}},getUid:function(e){return o.template("me-{0}{1}-{2}",e,(new Date).getTime(),o.__Index++)},Browser:{isTouch:function(){var e=window.navigator&&window.navigator.msPointerEnabled&&window.MSGesture;return!!("ontouchstart"in window||e||window.DocumentTouch)},Prefix:function(){var e,t=["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"],n=document.createElement("div");for(e in t)if(void 0!==n.style[t[e]])return o.template("-{0}-",t[e].replace("Perspective","").toLowerCase())},parseURL:function(e){var t,n,a,i,o,s=document.createElement("a");return s.href=e,{source:e,protocol:s.protocol.replace(":",""),host:s.hostname,port:s.port,query:s.search,params:function(){for(t={},n=s.search.replace(/^\?/,"").split("&"),a=n.length,i=0,o;i<a;i++)n[i]&&(o=n[i].split("="),t[o[0]]=o[1]);return t}(),file:(s.pathname.match(/\/([^\/?#]+)$/i)||[null,""])[1],hash:s.hash.replace("#",""),path:s.pathname.replace(/^([^\/])/,"/$1"),relative:(s.href.match(/tps?:\/\/[^\/]+(.+)/)||[null,""])[1],segments:s.pathname.replace(/^\//,"").split("/")}}},Array:{indexOf:function(e,t){var n;for(n=0;n<e.length;n++)if(this[n]===t)return n;return-1},remove:function(e,t){var n=this.indexOf(e,t);return n>-1&&e.splice(n,1),e}}};a=function(e){this.initialized=!1,this.registerEvent={before:[],change:[],after:[]},this.options=e,this.init(e)},a.output=function(){o.log(o.list)},a.prototype.oninit=o.fn,a.prototype.init=function(e){this.initialized=!0,this.__Uid=o.getUid("me"),this.oninit(e),o.list[this.__Uid]=this},a.prototype.destory=function(){this.initialized=!1,delete o.list[this.__Uid]},a.prototype.getUid=function(){return this.__Uid},a.prototype.getOptions=function(){return this.options},a.prototype.config=function(){if(!(arguments.length>0))return this.options;if("string"==typeof arguments[0]){if(!(arguments.length>1))return this.options[name];this.options[arguments[0]]=arguments[1]}},a.prototype.on=function(e,t){var n=this,a=n.registerEvent[e];return a&&a.push(t),a},a.prototype.off=function(e,t){var n=this,a=n.registerEvent[e],i=[];o.each(a,function(e,n){n===t&&i.push(e)}),o.each(i.reverse(),function(e,t){a.splice(t,1)})},o.assembly=a,n.exports=o}),define("js/common/new-arrivls",["jquery","lazyload","handlebars","source-map"],function(e,t,n){function a(e){var t={index:0,isload:!0,isrun:!0,offset:{height:null,width:null}};return this.registerEvent={before:[],change:[],after:[]},this.options=i.extend(!0,{},t,e),this}var i=e("jquery"),o=e("lazyload"),s=e("handlebars");a.prototype.on=function(e,t){var n=this,a=n.registerEvent[e];return a&&a.push(t),a},a.prototype.exect=function(e,t){var n,a=this;if(a.registerEvent[e]&&a.registerEvent[e].length>0)for(n in a.registerEvent[e])a.registerEvent[e].hasOwnProperty(n)&&a.registerEvent[e][n](t)},a.prototype.init=function(){function e(){n.isrun&&n.isload&&t.__directionCalculation()&&(n.isload=!1,n.index++,t.exect("after",n)),t.exect("change",n)}var t=this,n=this.options;t.exect("before",n),i(window).scroll(e)},a.prototype.emit=function(){var e=this.options;e.isload=!0},a.prototype.stop=function(){var e=this.options;e.isrun=!1,e.isload=!1},a.prototype.__directionCalculation=function(){var e=this.options;return!!(e.offset.height&&e.offset.height()>0&&i(window).scrollTop()+i(window).height()>=e.offset.height())},n.exports=function(e){var t,n=i("#newarrivals .goods-container"),r=i(".loading a"),d=new a({index:1,isload:!1,offset:{height:function(){return parseFloat(n.offset().top)+parseFloat(n.height())-200}}}),l=e.url,c=e.count,u=e.rows;e.pageIndex=0,delete e.url,delete e.count,delete e.rows,t=function(e,t,a){var l={type:"POST",url:e,success:function(e){var i,l,c,u=e.code;200===u?(l=e.goods.length%a,c=e.goods.length-l-1,e.goods.splice(c,l),i=s.compile(d.tpl),n.append(i(e.goods)),t.pageIndex=t.pageIndex+e.goods.length,o(n.find("img.lazy")),d.emit()):(d.stop(),r.html("查看更多"))},error:function(){d.stop(),r.html("网络断开连接了~")}};l.data=t,i.ajax(l)},d.on("after",function(n){e.pageCount=c*u[1],t(l,e)}),d.on("before",function(n){d.tpl="{{#each this}}",d.tpl+='<div class="good-info imgopacity" data-skn="{{skn}}">',d.tpl+=' <div class="tag-container clearfix">',d.tpl+=" {{# tags}}",d.tpl+=" {{# isNew}}",d.tpl+=' <span class="good-tag new-tag">NEW</span>',d.tpl+=" {{/ isNew}}",d.tpl+=" {{# isReNew}}",d.tpl+=' <span class="good-tag renew-tag">再到着</span>',d.tpl+=" {{/ isReNew}}",d.tpl+=" {{# isSale}}",d.tpl+=' <span class="good-tag sale-tag">SALE</span>',d.tpl+=" {{/ isSale}}",d.tpl+=" {{# isNewFestival}}",d.tpl+=' <span class="good-tag new-festival-tag">新品节</span>',d.tpl+=" {{/ isNewFestival}}",d.tpl+=" {{# isLimit}}",d.tpl+=' <span class="good-tag limit-tag">限量商品</span>',d.tpl+=" {{/ isLimit}}",d.tpl+=" {{# isYearEndPromotion}}",d.tpl+=' <span class="good-tag yep-tag">年终大促</span>',d.tpl+=" {{/ isYearEndPromotion}}",d.tpl+=" {{# isYearMidPromotion}}",d.tpl+=' <span class="good-tag ymp-tag">年中热促</span>',d.tpl+=" {{/ isYearMidPromotion}}",d.tpl+=" {{/ tags}}",d.tpl+=" </div>",d.tpl+=' <div class="good-detail-img">',d.tpl+=' <a class="good-thumb" href="{{url}}" target= "_blank">',d.tpl+=' <img class="lazy" data-original="{{thumb}}">',d.tpl+=" </a>",d.tpl+=" {{# isFew}}",d.tpl+=' <p class="few-tag">即将售罄</p>',d.tpl+=" {{/ isFew}}",d.tpl+=" {{#if showColBtn}}",d.tpl+=' <span class="col-btn iconfont{{#if coled}} coled{{/if}}"></span>',d.tpl+=" {{/if}}",d.tpl+=" </div>",d.tpl+=' <div class="good-detail-text">',d.tpl+=' <a href="{{url}}" target= "_blank">{{name}}</a>',d.tpl+=' <p class="price">',d.tpl+=' <span class="sale-price{{#unless marketPrice}}prime-cost{{/unless}}">',d.tpl+=" ¥{{salePrice}}",d.tpl+=" </span>",d.tpl+=" {{# marketPrice}}",d.tpl+=' <span class="market-price">¥{{.}}</span>',d.tpl+=" {{/ marketPrice}}",d.tpl+=" </p>",d.tpl+=" </div>",d.tpl+="</div>",d.tpl+="{{/each}}",e.pageCount=c*u[0],t(l,e,e.count)}),d.init()}}),define("js/brand/index",["jquery","lazyload","handlebars","source-map","dot"],function(e,t,n){var a=e("jquery"),i=e("lazyload");e("js/common/slider"),e("js/brand/brands"),i(a("img.lazy")),a(".slide-container").slider({orient:!0})}),define("js/brand/brands",["jquery","handlebars","source-map","dot"],function(e,t,n){function a(e){var t=new RegExp("(^|&)"+e+"=([^&]*)(&|$)"),n=window.location.search.substr(1).match(t);return null!=n?window.unescape(n[2]):null}function i(e,t,n){var a,i=e,o={width:i.width(),left:i.offset().left,right:parseFloat(l(window).width())-parseFloat(i.offset().left)-parseFloat(i.width())},s=i.parent("li");p.find(".brands-dialog").remove(),a=c.compile(n),s.append(a(t)),u(s.find(".right")),o.right-350<0&&s.find(".brands-layer").addClass("brands-layer-right").css("left",-330-o.width)}function o(){v.unbind("mouseenter").unbind("mouseleave").hover(function(){var e=l(this),t=e.attr("data-key"),n={url:"/brands/brandinfo",type:"get",data:{brandId:t},success:function(t){200===t.code&&t.brand&&(j.hasOwnProperty(t.brand.key)||(j[t.brand.key]=t.brand),i(e,j[t.brand.key],S))}};clearTimeout(r),r=setTimeout(function(){j.hasOwnProperty(t)?i(e,j[t],S):l.ajax(n)},200)},function(){clearTimeout(r),p.find(".brands-dialog").remove()})}var s,r,d,l=e("jquery"),c=e("handlebars"),u=e("dot"),h=l(".brands-tabs"),p=l(".brands-list"),f=l(".brands-category"),m=l(".news-txt ul"),g=p.find("dl.clearfix"),v=p.find("li>a"),y=f.find("a"),b=h.find("li>a"),w=h.find(".hoverarr"),C=y.height(),_=y.offset()?y.offset().top:0,x=m.height(),k=m.offset()?m.offset().top:0,j={},S='<div class="brands-dialog">';S+=' <div class="brands-layer">',S+=' <div class="layer-content">',S+=' <div class="title">{{title}}</div>',S+=' <div class="clearfix desc">',S+=' <img src="{{icon}}">',S+=' <p class="right">{{content}}</p>',S+=" </div> ",S+=' <div class="featured">',S+=" <p>{{subtitle}}</p> ",S+=' <div class="clearfix"> ',S+=" {{#each imgs}}",S+=' <img src="{{src}}">',S+=" {{/each}}",S+=" </div>",S+=" </div>",S+=" </div>",S+=" </div>",S+="</div>",u(l(".brand-desc")),l.easing.easeOutQuint=function(e,t,n,a,i){return a*((t=t/i-1)*t*t*t*t+1)+n},m.length&&m.find("li").each(function(){var e=l(this),t=e.offset().top-k+e.height();t>x&&e.hide()}),b.eq(0).parent("li").find(".brands-content").css("z-index","1"),d=a("id")?a("id"):0,s=b.eq(d),s.find(".g-mask").addClass("g-mask-on"),d&&s.length&&w.css({left:parseFloat(s.offset().left)-parseFloat(h.offset().left)}),b.hover(function(){var e=l(this);clearTimeout(r),r=setTimeout(function(){var t=parseFloat(e.offset().left)-parseFloat(h.offset().left);w.animate({left:t},200,"easeOutQuint")},50),h.find(".brands-content").removeAttr("style"),e.parent("li").find(".brands-content").css("z-index","1")},function(){clearTimeout(r)}),l(window).scroll(function(){l(this).scrollTop()>=_?f.addClass("category-fix"):f.removeClass("category-fix")}),y.click(function(){var e=l(this).attr("href").split("#")[1],t=p.find("[name="+e+"]").offset().top-C;return f.hasClass("category-fix")||(t-=C),l("html,body").animate({scrollTop:t},200),!1}),g.length<26&&l.ajax({url:"/brands/brandList",type:"POST",data:{start:g.length?g.length+1:1},success:function(e){e&&(p.append(e),v=p.find("li>a"),o())}}),o()}),define("js/passport/entry",["jquery","jquery.placeholder"],function(e,t,n){e("js/passport/reg"),e("js/passport/back"),e("js/passport/login"),e("js/passport/reset"),e("js/passport/vertification"),e("js/passport/thirdlogin"),e("js/passport/third-pwd"),e("js/passport/relate")}),define("js/passport/reg",["jquery","jquery.placeholder"],function(e,t,n){function a(){var e=new Date,t=m(".captcha-img"),n=t.attr("src").split("?")[0];t.attr("src",n+"?t="+e.getTime())}function i(e,t){var n,i;"reg"===e?(n="/passport/register/checkmobile",i={mobile:I.val(),area:L.text().split("+")[1]}):"third"===e&&(n="/passport/autouserinfo/bindCheck",i={mobile:I.val(),area:L.text().split("+")[1],openId:m("#open-id").val(),sourceType:m("#source-type").val()}),q[0].message="err",q[0].status=!1,m.ajax({url:n,type:"POST",data:i}).then(function(e){if(e){switch(e.code){case 200:I.val()!==B&&""!==B&&(a(),S.addClass("disable").attr("disabled","disabled"),q[1].message="图形验证码错误",q[1].status=!1),B=I.val(),q[0].message="",q[0].status=!0;break;case 400:a(),q[0].message=e.message,q[0].status=!1}t()}})}function o(e,t){var n;"reg"===e?n="/passport/register/piccaptcha":"third"===e&&(n="/passport/autouserinfo/checkPicCode"),m.ajax({type:"POST",url:n,data:{verifyCode:U.val()}}).then(function(e){if(e){switch(e.code){case 200:q[1].message="",q[1].status=!0;break;case 400:a(),q[1].message="图形验证码错误",q[1].status=!1}t()}})}function s(e,t){var n;"reg"===e?n="/passport/register/msgcaptcha":"third"===e&&(n="/passport/autouserinfo/checkBindMsg"),m.ajax({type:"POST",url:n,data:{code:E.val(),mobile:I.val(),area:L.text().split("+")[1]}}).then(function(e){if(e){switch(e.code){case 200:q[2].message="",q[2].status=!0;break;case 400:q[2].message="短信验证码错误",q[2].status=!1}t()}})}function r(e,t,n){var a,r=m.trim(t.val());t.hasClass("phone-num")?(a=L.text(),""===r?(q[0].message="请输入手机号码",q[0].status=!1,n()):!/^[0-9]+$/.test(r)||"+86"===a&&!g.phoneRegx[a].test(r)?(q[0].message="手机号码格式不正确,请重新输入",q[0].status=!1,n()):i(e,n)):t.hasClass("captcha")?""===r?(q[1].message="请输入图形验证码",q[1].status=!1,n()):r.length<=3?(q[1].message="图形验证码为4位",q[1].status=!1,n()):q[0].status?o(e,n):(q[1].message="图形验证码错误",q[1].status=!1,n()):t.hasClass("msg-captcha")?""===r?(q[2].message="请输入短信验证码",q[2].status=!1,n()):r.length<=3?(q[2].message="短信验证码错误",q[2].status=!1,n()):q[1].status?s(e,n):(q[2].message="短信验证码错误",q[2].status=!1,n()):t.hasClass("pwd")?(""===r?(q[3].message="请输入密码",q[3].status=!1):r.length<6||r.length>20?(q[3].message="密码只支持6-20位字符",q[3].status=!1):z.test(t.val())?(q[3].message="",q[3].status=!0):(q[3].message="密码须字母和数字组合",q[3].status=!1),n()):t.hasClass("repwd")&&(""===r?(q[4].message="请输入密码确认",q[4].status=!1):A.val()!==r?(q[4].message="与密码不一致,请重新输入",q[4].status=!1):(q[4].message="",q[4].status=!0),n())}function d(){var e=f.offset();return C.css({top:e.top-40,left:e.left})}function l(){var e,t=!1,n=q.length;for(e=0;e<n;e++)t||(q[e].message&&"err"!==q[e].message?(C.find("span").text(q[e].message),f=m("#"+q[e].id),d().removeClass("hide"),t=!0):C.addClass("hide"))}function c(){var e,t,n=q.length;for(t=0;t<n;t++)q[t].message?(e=m("#"+q[t].id),e.addClass("error")):(e=m("#"+q[t].id),e.removeClass("error"))}function u(e){var t=e.val(),n=v(t),a=0;switch(a=0===n?0:n<=10?1:n<=20?2:3){case 0:O.removeClass("red yellow green"),P.removeClass("color");break;case 1:O.addClass("red").removeClass("yellow green"),P.filter(".low").addClass("color"),P.filter(".mid,.high").removeClass("color");break;case 2:O.addClass("yellow").removeClass("red green"),P.filter(".low,.mid").addClass("color"),P.filter(".high").removeClass("color");break;case 3:O.addClass("green").removeClass("yellow red"),P.addClass("color")}""===t?w.removeClass("red yes no").addClass("default"):t.length<6||t.length>20?w.removeClass("default yes").addClass("no red"):w.removeClass("default no red").addClass("yes")}var h,p,f,m=e("jquery"),g=e("js/passport/mail-phone-regx"),v=e("js/passport/pwd-strength"),y=m(".register-page"),b=m("#pwd-tips"),w=b.find("#pwd-tip1"),C=m("#err-tip"),_=m("#register-btn"),x=m("#count-down"),k=m(".success-btn"),j=5,S=m("#send-captcha"),T=4,q=[],I=m("#phone-num"),E=m("#msg-captcha"),A=m("#pwd"),F=m("#repwd"),U=m("#captcha"),D=0,P=m(".pwd-intensity"),O=P.closest(".pwd-intensity-container"),L=m("#country-code"),N=m("#region"),$=!1,z=g.pwdValidateRegx,B="";e("jquery.placeholder"),setTimeout(function(){I.val(""),E.val(""),A.val(""),F.val(""),U.val("")},0),U.attr("maxlength",T),A.focus(function(e){b.removeClass("hide"),$=!0,p=m(this).val()}).blur(function(){b.addClass("hide"),$=!1}),m("[placeholder]").placeholder(),q=[{id:"phone-num",message:"",status:!1},{id:"captcha",message:"",status:!1},{id:"msg-captcha",message:"",status:!1},{id:"pwd",message:"",status:!1},{id:"repwd",message:"",status:!1}],m(window).resize(function(){C.hasClass("hide")||d()}),t.init=function(e){m("#agree-terms").click(function(){var e,t=m(this),n=0;if(t.attr("notchecked")){for(t.removeAttr("notchecked"),e=0;e<q.length;e++)q[e].status&&n++;4===n&&_.removeClass("disable").removeAttr("disabled")}else _.addClass("disable").attr("disabled","disabled"),t.attr("notchecked","notchecked")}),y.on("keydown",function(e){var t=e.which;13===t&&_.click()}),y.find(".va").keyup(function(){var t,n=0,a=q.length,i=m(this);r(e,m(this),function(){for(l(),c(),t=0;t<a;t++)q[t].status&&n++;4!==n||m("#agree-terms").attr("notchecked")?_.addClass("disable").attr("disabled","disabled"):_.removeClass("disable").removeAttr("disabled"),q[1].status&&D<=0?S.removeClass("disable").removeAttr("disabled"):S.addClass("disable").attr("disabled","disabled")}),i.hasClass("pwd")&&u(i)}).blur(function(){}),N.change(function(){L.text(m("#region").val()),r(e,I,l)}),S.click(function(){var t,n;m(this).hasClass("disable")||(D=60,m("#msg-tip").removeClass("hide"),S.addClass("disable").attr("disabled","disabled"),S.val("60秒可重新发送"),t=setInterval(function(){return D<=0?(S.removeClass("disable").removeAttr("disabled").val("获取短信验证码"),void clearInterval(t)):void S.val(D--+"秒可重新发送")},1e3),"reg"===e?n="/passport/register/sendBindMsg":"third"===e&&(n="/passport/autouserinfo/sendBindMsg"),m.ajax({type:"POST",url:n,data:{area:L.text().split("+")[1],mobile:I.val(),verifyCode:U.val()}}))}),m(".success-box").length<=0&&(A[0].onpaste=function(){return!1}),_.click(function(){var t;"reg"===e?t="/passport/register/mobileregister":"third"===e&&(t="/passport/autouserinfo/bindMobile"),m(this).hasClass("disable")||m.ajax({type:"POST",url:t,data:{area:L.text().split("+")[1],mobile:I.val(),verifyCode:U.val(),code:E.val(),password:A.val()}}).then(function(e){var t,n,a=0;200===e.code?(n=e.data.href,t=setTimeout(function(){a++},1e3),m.ajax({type:"GET",url:e.data.session}).then(function(e){200===e.code&&t<3&&(clearInterval(t),location.href=n)}),t>=3&&(clearInterval(t),location.href=n)):console.log("网络超时~")})}),m(".change-captcha").click(function(){a()}),m(".success-box").length>0&&(h=setInterval(function(){0===j&&(window.location.href=k.attr("data-url"),clearInterval(h)),x.text(j--)},1e3))}}),define("js/passport/mail-phone-regx",[],function(e,t,n){var a={"+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]{1}[0-9]{8}$/,"+81":/^0[9|8|7][0-9]{9}$/,"+61":/^[0-9]{11}$/},i=/^[.\-_a-zA-Z0-9]+@[\-_a-zA-Z0-9]+\.[a-zA-Z0-9]/,o=/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/;t.phoneRegx=a,t.emailRegx=i,t.pwdValidateRegx=o}),define("js/passport/pwd-strength",[],function(e,t,n){function a(e,t){return e.charCodeAt(t)>=48&&e.charCodeAt(t)<=57?1:e.charCodeAt(t)>=97&&e.charCodeAt(t)<=122?2:e.charCodeAt(t)>=65&&e.charCodeAt(t)<=90?3:4}function i(e,t,n){var a=e.charCodeAt(0),i=t.charCodeAt(0);return a-i===0||4!==n&&(a-i===1||a-i===-1)}function o(e,t){return 0===t||e===t?0:4===e||4===t?2:1}function s(e){var t,n,s=0,r=e.length,d="",l=0,c=0;for(c=0;c<r;c++)t=e.charAt(c),n=a(e,c),l===n&&i(t,d,n)||(s+=n+o(n,l)),d=t,l=n;return s}n.exports=s}),define("js/passport/back",["jquery","jquery.placeholder"],function(e,t,n){function a(){var e=new Date,t=d("#captcha-img"),n=t.attr("src").split("?")[0];d("#captcha-img").attr("src",n+"?t="+e.getTime())}function i(){_&&x?y.removeClass("disable").prop("disabled",!1):y.addClass("disable").prop("disabled",!0)}function o(){return _&&x?void d.ajax({type:"POST",url:"/passport/back/authcode",data:{verifyCode:d.trim(m.val()),phoneNum:f.val(),area:p.val()}}).then(function(e){200===e.code?x=!0:402===e.code?(_=!1,x=!0,b.removeClass("hide").find("em").text("该账号不存在"),f.addClass("error")):400===e.code&&(x=!1,a()),i()}):void i()}function s(e){var t=!0,n="";return e=d.trim(e),""!==e?/^[0-9]+$/.test(e)?u[p.val()].test(e)?t=!0:(n="手机号码格式不正确, 请重新输入",t=!1):c.test(e)?t=!0:(n="邮箱格式不正确, 请重新输入",t=!1):(n="账户名不能为空",t=!1),_=t,o(),{pass:t,errTxt:n}}function r(){var e=d.trim(m.val());return""===e||e.length<C?(x=!1,void i()):(x=!0,void o())}var d=e("jquery"),l=e("js/passport/mail-phone-regx"),c=l.emailRegx,u=l.phoneRegx,h=e("js/passport/ac-email"),p=d("#country-code-hide"),f=d("#phone-num"),m=d("#captcha"),g=d("#country-code-list"),v=d("#country-code"),y=d("#find-btn"),b=d("#account-err"),w=d("#captcha-err"),C=4,_=!1,x=!1;e("jquery.placeholder"),h(f,function(){var e=s(f.val());e.pass?(b.addClass("hide"),f.removeClass("error")):(b.removeClass("hide").find("em").text(e.errTxt),f.addClass("error"))}),m.attr("maxlength",C),d("input").placeholder(),d("#change-captcha, #captcha-img").on("click",function(){a()}),v.on("click",function(e){e.stopPropagation(),"block"===g.css("style")?g.slideUp("fast"):g.slideDown("fast")}),g.delegate("li","click",function(e){var t,n=d(this),a=n.data("cc");e.stopPropagation(),p.val(a),v.find("em").html(n.text()),""!==d.trim(f.val())&&(t=s(f.val()),i(),_?(b.addClass("hide"),f.removeClass("error")):(b.removeClass("hide").text(t.errTxt),f.addClass("error"))),g.slideUp("fast")}),d(document).click(function(){"block"===g.css("display")&&g.slideUp()}),f.keyup(function(){s(d.trim(d(this).val()))}).focus(function(){d(this).removeClass("error"),b.addClass("hide")}),m.blur(function(){var e=""===d.trim(m.val())?"验证码不能为空":"验证码不正确";x?(w.addClass("hide"),m.removeClass("error")):(w.removeClass("hide").find("em").text(e),m.addClass("error"),m.val()<C&&a())}).focus(function(){d(this).removeClass("error"),w.addClass("hide")}).keyup(function(){r()}),d("#find-btn").click(function(e){if(/^[0-9]+$/.test(d.trim(f.val()))&&d("#find-form").attr("action","/passport/back/mobile"),!d(this).hasClass("disable"))return x&&_?void 0:(e.preventDefault(),!0)})}),define("js/passport/ac-email",["jquery"],function(e,t,n){var a,i=e("jquery"),o={num:["qq.com","163.com","126.com","sina.com","gmail.com","sohu.com","hotmail.com","139.com","189.com"],other:["gmail.com","qq.com","163.com","126.com","sina.com","sohu.com","hotmail.com","139.com","189.com"]};n.exports=function(e,t){var n,s='<ul id="email-autocomplete" class="email-autocomplete hide"></ul>';e.parent().append(s),n=i("#email-autocomplete"),e.on("keyup",function(){var e,t,a,s,r=i.trim(i(this).val()),d="";if(r.indexOf("@")>0){for(e=r.match(/^[0-9]+@(.*)/),e?(a=o.num,t=e[1]):(a=o.other,t=r.match(/@(.*)/)[1]),s=0;s<a.length;s++)a[s].indexOf(t)>-1&&(d+="<li>"+r.slice(0,r.indexOf("@"))+"@"+a[s]+"</li>");""!==d&&/.com$/.test(r)===!1?n.html(d).removeClass("hide"):n.html("").addClass("hide")}}).on("blur",function(){a=setTimeout(function(){n.addClass("hide"),t&&t()},200)}),n.on("click","li",function(){clearTimeout(a),e.val(i(this).text()).focus(),n.addClass("hide"),t&&t()})}}),define("js/passport/login",["jquery","jquery.placeholder"],function(e,t,n){function a(){var e,t=!1,n=c.trim(u.val()),a=y.val();return""!==n?/^[0-9]+$/.test(n)?"+86"!==a||_.phoneRegx[a].test(n)?t=!0:(t=!1,e="手机号码不正确,请重新输入"):_.emailRegx.test(n)?t=!0:(t=!1,e="邮箱格式不正确,请重新输入"):e="请输入账户名",t?(f.addClass("hide"),u.removeClass("error")):(f.removeClass("hide").children("em").text(e),u.addClass("error")),t}function i(){var e,t=!1,n=c.trim(h.val());return""!==n?n.length<6?e="请输入长度为6-20字符的密码":t=!0:e="请输入密码",t?(m.addClass("hide"),h.removeClass("error")):(m.removeClass("hide").children("em").text(e),h.addClass("error")),t}function o(){var e,t=!1,n=c.trim(p.val());return!!S.is(":hidden")||(""!==n?4!==n.length?e="请输入长度为4字符的验证码":t=!0:e="请输入验证码",t?(g.addClass("hide"),p.removeClass("error")):(g.removeClass("hide").children("em").text(e),p.addClass("error")),t)}function s(){var e=!0,t=c.trim(u.val()),n=c.trim(h.val());return""!==t?e=a()&&i()&&o():(e=!1,u.addClass("error"),""===n?(f.addClass("both-error").removeClass("hide").children("em").text("请输入账户名和密码"),m.addClass("hide"),h.addClass("error")):f.removeClass("hide").children("em").text("请输入账户名")),e}function r(){T.attr("src",j+c.now()),p.val(""),S.removeClass("hide")}function d(){var e=s();e&&I===!1&&(I=!0,c.ajax({url:"/passport/login/auth",type:"POST",data:{areaCode:y.val().replace("+",""),account:c.trim(u.val()),password:c.trim(h.val()),captcha:c.trim(p.val()),isRemember:!!k.hasClass("checked")},success:function(e){200===e.code?e.data&&(location.href=e.data.session):("captcha"===e.data.errorType?(g.removeClass("hide").children("em").html(e.message),p.addClass("error").val("")):(m.removeClass("hide").children("em").html(e.message),h.addClass("error").val("")),e.data&&e.data.needCaptcha&&r())},complete:function(){I=!1}}))}var l,c=e("jquery"),u=c("#account"),h=c("#password"),p=c("#captcha"),f=u.siblings(".err-tip"),m=h.siblings(".err-tip"),g=p.siblings(".err-tip"),v=c("#caps-lock"),y=c("#country-code-hide"),b=c("#country-code > em"),w=c("#country-list"),C=c("#email-autocomplete"),_=e("js/passport/mail-phone-regx"),x=e("js/passport/ac-email"),k=c(".remember-me"),j="/passport/images?t=",S=c(".captcha-wrap"),p=S.find("#captcha"),T=S.find("#captcha-img"),g=S.find(".err-tip"),q={checked:"",unchecked:""},I=!1;e("jquery.placeholder"),x(u,function(){a()&&c.ajax({url:"/passport/login/account",type:"GET",data:{account:c.trim(u.val())}}).then(function(e){e.data&&e.data.needCaptcha&&r()})}),c("[placeholder]").placeholder(),c("#country-code").on("click",function(){"none"===w.css("display")&&w.slideDown()}),w.on("click","li",function(){var e=c(this),t=e.data("cc");b.html(e.html()),y.val(t),w.slideUp()}),c(document).on("click",function(e){c(e.target).closest("#country-code").length>0||"block"===w.css("display")&&w.slideUp()}),h.on("blur",function(){i(),v.hasClass("hide")||v.addClass("hide")}).on("keypress",function(e){var t=e.which;return t>=65&&t<=90?void v.removeClass("hide"):void v.addClass("hide")}),p.on("blur",function(){o()}),C.on("click","li",function(){clearTimeout(l),u.val(c(this).text()).focus(),C.addClass("hide")}),k.on("click",function(){var e=c(this);e.toggleClass("checked"),e.hasClass("checked")?e.children("i").html(q.checked):e.children("i").html(q.unchecked)}),c(".va").on("focus",function(){var e=c(this);e.removeClass("error"),e.siblings(".err-tip").addClass("hide")}),S.on("click",".change-captcha, .captcha-img",function(){T.attr("src",j+c.now())}),c("#login-btn").on("click",d),c("input.va").on("keypress",function(e){13===e.which&&d()}),""===u.val()&&u.val()!==u.attr("placeholder")||""!==h.val()||h.focus()}),define("js/passport/reset",["jquery","jquery.placeholder"],function(e,t,n){function a(e,t){return e.charCodeAt(t)>=48&&e.charCodeAt(t)<=57?1:e.charCodeAt(t)>=97&&e.charCodeAt(t)<=122?2:e.charCodeAt(t)>=65&&e.charCodeAt(t)<=90?3:4}function i(e,t,n){var a=e.charCodeAt(0),i=t.charCodeAt(0);return a-i===0||4!==n&&(a-i===1||a-i===-1)}function o(e,t){return 0===t||e===t?0:4===e||4===t?2:1}function s(e){var t,n,s=0,r=e.length,d="",l=0,c=0;for(c=0;c<r;c++)t=e.charAt(c),n=a(e,c),l===n&&i(t,d,n)||(s+=n+o(n,l)),d=t,l=n;return s}function r(){var e=l.val(),t=s(e),n=0;switch(n=0===t?0:t<=10?1:t<=20?2:3){case 0:v.removeClass("red yellow green"),g.removeClass("color");break;case 1:v.addClass("red").removeClass("yellow green"),g.filter(".low").addClass("color"),g.filter(".mid,.high").removeClass("color");break;case 2:v.addClass("yellow").removeClass("red green"),g.filter(".low,.mid").addClass("color"),g.filter(".high").removeClass("color");break;case 3:v.addClass("green").removeClass("yellow red"),g.addClass("color")}""===e?y.removeClass("red yes no").addClass("default"):e.length<6||e.length>20?y.removeClass("default yes").addClass("no red"):y.removeClass("default no red").addClass("yes"),m=!!b.test(e)}var d=e("jquery"),l=d("#pwd"),c=d("#re-input"),u=d("#reset-pwd-btn"),h=d("#pwd-err"),p=d("#repwd-err"),f=d("#pwd-tips"),m=!1,g=d(".pwd-intensity"),v=g.closest(".pwd-intensity-container"),y=d("#pwd-tip1"),b=e("js/passport/mail-phone-regx").pwdValidateRegx;e("jquery.placeholder"),d("input").placeholder(),d(".va").keyup(function(){var e=!0;d(this).hasClass("pwd")?r():""===d(this).val()&&(e=!1),e=!(!e||!m||l.val()!==c.val()),e?u.removeClass("disable").prop("disabled",!1):u.addClass("disable").prop("disabled",!0)}).blur(function(){var e=d(this),t=e.val();e.hasClass("pwd")?""===t?(e.addClass("error"),h.removeClass("hide").find("em").text("请输入密码")):t.length<6||t.length>20?(e.addClass("error"),h.removeClass("hide").find("em").text("密码只支持6-20位")):b.test(t)?(h.addClass("hide"),""!==c.val()&&(t!==c.val()?(c.addClass("error"),p.removeClass("hide").find("em").text("两次密码输入不一致,请重新输入")):(c.removeClass("error"),p.addClass("hide")))):(e.addClass("error"),h.removeClass("hide").find("em").text("密码须字母和数字组合")):""===t?(e.addClass("error"),p.removeClass("hide").find("em").text("请输入密码确认")):""!==l.val()&&t!==l.val()?(e.addClass("error"),p.removeClass("hide").find("em").text("两次密码输入不一致,请重新输入")):(e.removeClass("error"),p.addClass("hide"))}).focus(function(){d(this).removeClass("error"),d(this).hasClass("pwd")?h.addClass("hide"):p.addClass("hide")}),l.focus(function(){h.addClass("hide"),f.removeClass("hide")}).blur(function(){f.addClass("hide")}),d("#pwd, #repwd").keydown(function(e){var t=e.keyCode||e.which;if(32===t)return void e.preventDefault()})}),define("js/passport/vertification",["jquery"],function(e,t,n){var a,i,o=e("jquery"),s=o("#send-captcha"),r=o("#captcha-tip"),d=o("#err-tip"),l=o("#next-step");s.click(function(){o.post("/passport/back/sendbackmobile",{mobile:o("#mobile").val(),area:o("#area").val(),verifyCode:o("#captchaPic").val()},function(e){if(200===e.code){if(d.hide(),o(this).hasClass("disable"))return;a=60,s.addClass("disable").attr("disabled",!0),r.removeClass("hide"),s.val(a--+"秒后可重新操作"),i=setInterval(function(){0===a?(clearInterval(i),s.val("发送验证码").removeClass("disable").removeAttr("disabled")):s.val(a--+"秒后可重新操作")},1e3)}else o(this).addClass("error"),d.removeClass("hide").text("发送失败")})}),a=60,s.addClass("disable").attr("disabled",!0),r.removeClass("hide"),s.val(a--+"秒后可重新操作"),i=setInterval(function(){0===a?(clearInterval(i),s.val("发送验证码").removeClass("disable").removeAttr("disabled")):s.val(a--+"秒后可重新操作")},1e3),o("#captcha").keyup(function(){var e=o.trim(o(this).val()),t=this;4===e.length?o.ajax({ +type:"POST",url:"/passport/back/backmobile",dataType:"json",data:{code:o("#captcha").val(),verifyCode:o("#captchaPic").val(),area:o("#area").val(),mobile:o("#mobile").val()},success:function(e){200===e.code?(l.removeClass("disable").attr("href",e.data),d.addClass("hide"),o(t).removeClass("error")):(l.addClass("disable"),d.removeClass("hide").find("em").text("验证码输入错误"),o(t).addClass("error"))}}):l.addClass("disable").attr("href","javascript:;")}).blur(function(){var e=o.trim(o(this).val());""===e&&(o(this).addClass("error"),d.removeClass("hide").text("请输入验证码"))}).focus(function(){o(this).removeClass("error")})}),define("js/passport/thirdlogin",["jquery"],function(e,t,n){function a(){b(".choosetag").on("change",function(){var e="#f02200";"checked"===b(this).attr("checked")?b(".choosewrapper").css({"background-image":'url("'+S+'")'}):(b(".choosewrapper").css({"background-image":"none"}),e="#CCCCCC"),I.css({"background-color":e})})}function i(){return"checked"===b(".choosetag").attr("checked")}function o(){b(".optionshow").on("click",function(){b(".optionslist").toggleClass("hide")})}function s(){var e="";b(document).on("keyup","#validatenum",function(){e=b(this).val(),4===e.length&&(k||(k=!0,b.ajax({type:"POST",url:"/passport/autouserinfo/checkBindMsg",data:{code:e,mobile:b("#mobile").val(),area:b("#areacode").val()}}).then(function(e){k=!1,200===e.code?j=!0:alert(e.message)})))}),b("#validatenum").focus(function(){b(this).removeAttr("placeholder")}).blur(function(){b(this).attr("placeholder","验证码")})}function r(){b(".optionitem").on("click",function(){var e=b(this),t=e.attr("areanum"),n=e.text();b("#areaname").text(n),b("#areanum").text(t),b("#areacode").val(t),b(".optionslist").addClass("hide")})}function d(){b(document).on("click","body",function(e){var t=b(e.target);t.hasClass("yohoselectarea")||t.hasClass("areaname")||t.hasClass("righttag")||t.hasClass("optionslist")||t.hasClass("optionitem")||b(".optionslist").addClass("hide")})}function l(){var e="",t="";b(".optionitem").each(function(){e=b(this),t=e.attr("areanum").replace(/\+/g,""),e.attr("areanum",t)})}function c(){var e;b(document).on("click","#alreayregist",function(t){e=b(t.target),(e.hasClass("mask")||e.hasClass("backdrop"))&&(b("#alreayregist").hide(),b(".backdrop").hide())}),b(document).on("click","#bindconfirm",function(t){e=b(t.target),(e.hasClass("mask")||e.hasClass("backdrop"))&&(b("#bindconfirm").hide(),b(".backdrop").hide())})}function u(){b(document).on("click","#yohobindbtn",function(e){b(".phonenum").val(""),b("#bindconfirm").hide(),b(".backdrop").hide()}),b(document).on("click","#yohobindbtn2",function(e){b(".phonenum").val(""),b("#alreayregist").hide(),b(".backdrop").hide()})}function h(){return x-=1,x<0?(x=60,void b(".validatewrapper").html(_)):(b(".second").text(x),void window.setTimeout(h,1e3))}function p(e){b(".validatewrapper").html(C),window.setTimeout(h,1e3)}function f(){b(document).on("click","#sendmessage",function(){"disabled"!==b("#sendmessage").attr("disabled")&&(p(b("#mobile").val()),b.ajax({type:"POST",url:"/passport/autouserinfo/sendBindMsg",data:{mobile:b("#mobile").val(),area:b("#areacode").val()}}).then(function(e){200!==e.code&&alert(e.message)}))})}function m(){var e="",t="";t=b("#areacode").val(),e=b("#mobile").val(),b.ajax({type:"POST",url:"/passport/autouserinfo/bindMobile",data:{area:t,openId:b("#openId").val(),sourceType:b("#sourceType").val(),mobile:e,code:b("#validatenum").val()}}).then(function(e){200===e.code?e.data&&e.data.refer?window.location.href=e.data.refer:window.location.href="/passport/thirdlogin/bindsuccess":alert(e.message)})}function g(){b(document).on("click","#gotobindphone",function(){j===!0?(b("#inarea").val(b("#areacode").val()),b("#inmobile").val(b("#mobile").val()),m()):alert("请输入正确验证码")})}function v(){var e="",t="",n="",a="",o="",s="";b("#bindfirststep").on("click",function(r){var d;if(r.preventDefault(),n=b(".phonenum").val(),a=b("#areanum").text(),d=w["+"+a],i()){if(""===n||!d||!d.test(n))return q.find("em").text("手机格式错误"),void q.removeClass("hide");e=b("#openId").val()||"29803EC6D4AAC3AAB8ABDB6AE829D579",t=b("#sourceType").val()||"qq",b.ajax({type:"post",url:"/passport/autouserinfo/bindCheck",data:{mobile:n,area:a,openId:e,sourceType:t},dataType:"json",success:function(e){var t=b(window).height();200===e.code?(b("#bindmobileform").attr("action",e.data.next),b("#bindmobileform").submit()):201===e.code?(o=e.data.user.username,s=e.data.user.headImg,b("#registphone").text(n),b("#username").text(o),""===s?b("#userphoto").attr("src","//img10.static.yhbimg.com/headimg/2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100"):b("#userphoto").attr("src",s),b("#logindirectly2").attr("href",e.data.user.bindLogin),b(".backdrop").show(),b("#sendmessage").click(),b("#alreayregist .mask").css({"padding-top":t>440?t/2:217}),b("#alreayregist").show()):203===e.code?(b("#bindmobileform").attr("action",e.data.next),b("#bindmobileform").submit()):205===e.code?(o=e.data.user.username,s=e.data.user.headImg,b("#registphonetwo").text(n),b("#username1").text(o),""===s?b("#userphoto1").attr("src","//img10.static.yhbimg.com/headimg/2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100"):b("#userphoto1").attr("src",s),b("#logindirectly").attr("href",e.data.user.bindLogin),b(".backdrop").show(),b("#bindconfirm .mask").css({"padding-top":t>440?t/2:217}),b("#bindconfirm").show()):402===e.code?(q.find("em").text("手机格式错误"),q.removeClass("hide")):e&&e.message&&alert(e.message)}})}})}function y(){l(),f(),a(),r(),o(),d(),v(),c(),u(),g(),s()}var b=e("jquery"),w=e("js/passport/mail-phone-regx").phoneRegx,C=b("#nopermissionmessage").html(),_=b(".validatewrapper").html(),x=+b(".second").text(),k=!1,j=!1,S="//cdn.yoho.cn/yohobuy/assets/img/passport/choosed.png",T=b(".bindwrapper"),q=T.find(".phone-err-tip"),I=T.find(".yohobindbtn");T.on("keydown",".phonenum",function(e){if(13===e.keyCode)return I.trigger("click"),!1}),y()}),define("js/passport/third-pwd",["jquery"],function(e,t,n){function a(e,t){return e.charCodeAt(t)>=48&&e.charCodeAt(t)<=57?1:e.charCodeAt(t)>=97&&e.charCodeAt(t)<=122?2:e.charCodeAt(t)>=65&&e.charCodeAt(t)<=90?3:4}function i(e,t,n){var a=e.charCodeAt(0),i=t.charCodeAt(0);return a-i===0||4!==n&&(a-i===1||a-i===-1)}function o(e,t){return 0===t||e===t?0:4===e||4===t?2:1}function s(e){var t=0,n=e.length,s="",r=0,d=0,l="",c="";for(d;d<n;d++)l=e.charAt(d),c=a(e,d),r===c&&i(l,s,c)||(t+=c+o(c,r)),s=l,r=c;return t}function r(e,t){e.find("em").text(t),e.removeClass("hide")}function d(){return j-=1,j<0?(j=60,void C(".validatewrapper").html(T)):(C(".second").text(j),void window.setTimeout(d,1e3))}function l(){C(".validatewrapper").html(S),window.setTimeout(d,1e3)}function c(){C(document).on("click","#sendmessage",function(){l(),C.ajax({type:"POST",url:"/passport/autouserinfo/sendBindMsg",data:{mobile:P,area:O}}).then(function(e){200!==e.code&&alert(e.message)})})}function u(){var e="";C(document).on("keyup","#validatenum",function(){C("#err-info").hide(),e=C(this).val(),4===e.length&&(_||(_=!0,C.ajax({type:"POST",url:"/passport/autouserinfo/checkBindMsg",data:{code:e,mobile:P,area:O}}).then(function(e){_=!1,200!==e.code?C("#err-info").show():x=!0})))})}function h(){var e=v.val(),t=s(e),n=0;switch(n=0===t?0:t<=10?1:t<=20?2:3){case 0:y.removeClass("red yellow green"),w.removeClass("color");break;case 1:y.addClass("red").removeClass("yellow green"),w.filter(".low").addClass("color"),w.filter(".mid,.high").removeClass("color");break;case 2:y.addClass("yellow").removeClass("red green"),w.filter(".low,.mid").addClass("color"),w.filter(".high").removeClass("color");break;case 3:y.addClass("green").removeClass("yellow red"),w.addClass("color")}""===e?(k=!1,b.removeClass("red yes no").addClass("default")):(e.length<6||e.length>20?(k=!1,b.removeClass("default yes").addClass("no red")):(k=!0,b.removeClass("default no red").addClass("yes")),/^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]*$/.test(e)?F.removeClass("default no red").addClass("yes"):F.removeClass("default yes").addClass("no red"))}function p(){C(document).on("keyup",".pwdcontent",function(){h(C(this))}),C(document).on("focus",".pwdcontent",function(){C("#pwd-tips").removeClass("hide")}),C(document).on("blur",".pwdcontent",function(){C("#pwd-tips").addClass("hide")})}function f(){var e="",t="";q||(q=!0,setTimeout(function(){q=!1},5e4),e=C("#pwd").val(),t=C("#validatenum").val(),C.ajax({type:"POST",url:"/passport/autouserinfo/bindMobile",data:{area:O,openId:C("#openId").val(),sourceType:C("#sourceType").val(),mobile:P,password:e,code:t}}).then(function(e){q=!1,200===e.code?e.data&&e.data.refer?window.location.href=e.data.refer:window.location.href="/passport/thirdlogin/bindsuccess":alert(e.message)}))}function m(){var e="",t="";C("#confirmsubmit").on("click",function(){var n=!0;e=C("#validatenum").val(),t=C("#pwd").val(),""===e?(r(E,"短信验证码不能为空"),n=!1):x===!1&&(r(E,"请输入正确的验证码"),n=!1),""===t?(r(A,"密码不能为空"),n=!1):t.length<6||t.length>20?(r(A,"密码只支持6-20位字符"),n=!1):D.test(t)?k===!1&&(r(A,"请输入符合强度的密码"),n=!1):(r(A,"密码须由字母和数字组合"),n=!1),n&&f()})}function g(){v=C("#pwd"),y=C(".safelevel"),w=C(".pwd-intensity"),b=C("#pwd-tip1"),c(),u(),p(),m(),P&&O&&U.click()}var v,y,b,w,C=e("jquery"),_=!1,x=!1,k=!1,j="",S="",T="",q=!1,I=C(".bindwrapper"),E=I.find(".code-err-tip"),A=I.find(".pwd-err-tip"),F=C("#pwd-tip2"),U=C("#sendmessage"),D=e("js/passport/mail-phone-regx").pwdValidateRegx,P=C("#mobile").val(),O=C("#area").val();S=C("#nopermissionmessage").html(),T=C(".validatewrapper").html(),j=+C(".second").text(),g()}),define("js/passport/relate",["jquery"],function(e,t,n){function a(){f.init(),o.ajax({type:"POST",url:"/passport/autouserinfo/sendBindMsg",data:{mobile:p.mobile,area:p.area}}).then(function(e){e&&200!==e.code&&(f.clearTime(),alert(e.message))})}function i(){var e=l.val();e&&o.ajax({type:"POST",url:"/passport/autouserinfo/relateMobile",data:{mobile:p.mobile,area:p.area,openId:p.openid,sourceType:p.source,code:e}}).then(function(e){200===e.code?window.location.href=e.data.refer:402===e.code?u.removeClass("hide"):(u.addClass("hide"),alert(e.message))})}var o=e("jquery"),s=o("#relate-main"),r=o("#code-validate"),d=r.find(".validate-wrapper"),l=r.find(".msg-code"),c=r.find(".count-down span"),u=r.find(".code-error"),h=o("#hide-info"),p={},f={};p=h.data(),h.remove(),f={init:function(){this.timer&&window.clearTimeout(this.timer),this.second=60,d.addClass("waiting"),this.changeTime()},changeTime:function(){var e=this;this.second&&this.second>0?(c.text(this.second),this.second--,this.timer=window.setTimeout(function(){e.changeTime()},1e3)):this.clearTime()},clearTime:function(){this.timer&&window.clearTimeout(this.timer),d.removeClass("waiting")}},o("#next-step-btn").click(function(){a(),s.addClass("hide"),u.addClass("hide"),r.removeClass("hide")}),r.on("keydown",".msg-code",function(e){if(13===e.keyCode)return i(),!1}),r.on("click",".get-code",function(){a()}),r.on("click",".perv-step",function(){f.clearTime(),s.removeClass("hide"),r.addClass("hide"),l.val("")}),o("#relate-btn").click(function(){i()})}),define("js/cart/cart",["jquery","handlebars","source-map"],function(e,t,n){function a(e){z.ajax({type:"POST",dataType:"json",url:"/cart/index/select",data:e,beforeSend:function(){z(".loading").css({top:z(document).scrollTop()+200}),z(".loading").show()}}).then(function(e){200===e.code&&window.history.go(0)})}function i(e,t){te=[],k={},w=e.attr("checked")?"Y":"N",z("."+t).each(function(){oe=!!z(this).data("promotionid"),z(this).data("id")&&te.push({product_sku:z(this).data("id"),selected:w,buy_number:z(this).data("productnum"),goods_type:z(this).data("goodstype"),promotion_id:z(this).data("promotionid")?z(this).data("promotionid"):0})}),k={skuList:JSON.stringify(te),hasPromotion:oe},a(k)}function o(e,t,n){z.ajax({type:"GET",dataType:"json",url:t,data:n}).then(function(t){200===t.code&&t.data.item&&t.data.item.length>0&&(e.html(" "),m=f(t.data),e.append(z(m)),z("#orderProduct li:last").addClass("end"),z(".gift").removeClass("none"))})}function s(e){z.ajax({type:"GET",dataType:"html",url:"/cart/index/getProductInfo",data:e}).then(function(e){K=0,Q.html(" "),Q.append(e),Q.show(),z(".detail-bigpic:not(.none) .con li:first").addClass("active"),z(".showSizeBox:not(.none) span").length<2&&z(".showSizeBox:not(.none) span:first").addClass("atcive"),1!==Number(z("#addToCart").val())&&z(".showSizeBox span").data("num",0),z.each(z(".showSizeBox span"),function(){z(this).data("num")<=0&&(z(this).addClass("null-atcivec"),console.log(z(".showSizeBox:not(.none) span:first")),z(".showSizeBox:not(.none) span:first").removeClass("atcive"))}),"undefined"!=typeof q&&(N=z(".detail-info .oldprice del").html()?z(".detail-info .oldprice del").html():$,O='<span class="oldprice">现价:<del>'+N+'</del></span><span class="newprice">活动价:<b class="promotion-price">'+q+"</b></span>",z(".detail-info .price").html(O)),z(".detail-bigpic:not(.none) .bigpic:gt(0)").hide(),z(".showSizeBox:not(.none)").find("span").each(function(){return z(this).hasClass("null-atcivec")?(z(".addcart").addClass("none"),void z(".btn_sellout").removeClass("none")):(z(".addcart").removeClass("none"),z(".btn_sellout").addClass("none"),!1)})})}function r(){Q.html(" "),Q.css({top:z(document).scrollTop()+30,left:z(document).width()/2-Q.width()/2})}function d(e){e.addClass("none").siblings("i").removeClass("none"),e.parents(".cart-product-num").siblings("div").toggleClass("fold"),e.siblings(".unfold-color").toggleClass("none"),e.siblings(".cart-page").toggleClass("none")}function l(e,t,n){z.ajax({type:"POST",dataType:"json",url:t,data:k,beforeSend:function(){z(".loading").css({top:z(document).scrollTop()+200}),z(".loading").show()}}).then(function(e){200===e.code?(n&&window.setCookie("cart-del-list",JSON.stringify(n),{domain:".yohobuy.com",path:"/"}),window.history.go(0)):300===e.code?(z(".loading").hide(),new W(e.message).show()):403===e.code&&e.data.url&&(window.location=e.data.url)})}function c(e){se=!0,z.ajax({type:"POST",dataType:"json",url:"/cart/index/modify",data:e}).then(function(e){200===e.code&&window.history.go(0),se=!1})}function u(e,t){z.ajax({type:"POST",url:"/cart/index/add",data:e}).then(function(e){200===e.code?(window.history.go(0),t&&window.setCookie("cart-del-list",JSON.stringify(t),{domain:".yohobuy.com",path:"/"})):500===e.code&&new W(e.message).show()})}function h(){z(".gift-wrapper .fold").show(),z(".pre-sell-box input:checked").length===z('.pre-sell-box input[type="checkbox"]').length&&z('.per-list input[type="checkbox"]').attr("checked",!0),z(".common-sell-box input:checked").length===z('.common-sell-box input[type="checkbox"]').length&&z('.common-list input[type="checkbox"]').attr("checked",!0),z('.common-list input[type="checkbox"]').attr("checked")&&(ie=!0),z('.per-list input[type="checkbox"]').attr("checked")&&(ae=!0),0!==z(".per-list").length&&0!==z(".common-list").length?ie&&ae&&z('.batch_div input[type="checkbox"]').attr("checked",!0):(ie||ae)&&z('.batch_div input[type="checkbox"]').attr("checked",!0),z(".cart-page").each(function(){1===z(this).data("pageall")?(z(".cart-btn-pre",this).hide(),z(".cart-btn-next",this).hide()):z(".cart-btn-pre",this).hide()}),z(".pre-sell-box input:checked").length>0&&z(".common-sell-box input:checked").length>0?(z(".go_cash_tips").show(),z(".btn_account_disabled").show(),z(".btn_account").hide()):(z(".go_cash_tips").hide(),z(".btn_account").show(),z(".btn_account_disabled").hide()),z(".pay-wapper tr").each(function(){z(this).data("pid")&&te.push(z(this).data("pid")+"")}),z.ajax({type:"POST",url:"/cart/index/checkFav",data:{pidList:JSON.stringify(te)}}).then(function(e){I='<span class="cart-yetremove-btn">已收藏</span>',E='<a href="javascript:void(0);" class="cart-remove-btn"><span>移入收藏</span></a>',z.each(e.data,function(e,t,n){z(".pay-wapper tr").each(function(){Number(z(this).data("pid"))===Number(e)&&(t?z(this).find(".cart-operation").append(I):z(this).find(".cart-operation").append(E))})})})}var p,f,m,g,v,y,b,w,C,_,x,k,j,S,T,q,I,E,A,F,U,D,P,O,L,N,$,z=e("jquery"),B=e("handlebars"),R=e("js/common/dialog"),M=R.Confirm,W=R.Alert,H=z(".cartnew-sum"),G=z(".cartnew-tips"),Y=z(".pay-wapper"),Q=z(".goods-detail"),X=z(".histroy"),V=z(".together"),Z=z(".shop-cart"),J=1,K=0,ee=1,te=[],ne=[],ae=!1,ie=!1,oe=!1,se=!1;G.find(".btn_close").click(function(){G.fadeOut()}),Y.one("click",'.common-sell-box input[type="checkbox"], .pre-sell-box input[type="checkbox"]',function(){w=z(this).attr("checked")?"Y":"N",te=[],te.push({product_sku:z(this).parents("tr").data("id"),selected:w,buy_number:z(this).parents("tr").data("productnum"),goods_type:z(this).parents("tr").data("goodstype"),promotion_id:z(this).parents("tr").data("promotionid")?z(this).parents("tr").data("promotionid"):0}),oe=!!z(this).parents("tr").promotion_id,k={skuList:JSON.stringify(te),hasPromotion:oe},a(k)}),H.one("click",'input[type="checkbox"]',function(){te=[],L={},k={},w=z(this).attr("checked")?"Y":"N",z(".pay-wapper:first tr").each(function(){z(this).data("promotionid")&&(oe=!0),z(this).data("id")&&te.push({product_sku:z(this).data("id"),selected:w,buy_number:z(this).data("productnum"),goods_type:z(this).data("goodstype"),promotion_id:z(this).data("promotionid")?z(this).data("promotionid"):0})}),k={skuList:JSON.stringify(te),hasPromotion:oe},a(k)}),z(".per-list").on("click",'input[type="checkbox"]',function(){i(z(this),"pre-sell-box")}),z(".common-list").on("click",'input[type="checkbox"]',function(){i(z(this),"common-sell-box")}),p=z("#togetherProduct").html(),f=B.compile(p),o(X,"/cart/index/getHistroyProduct"),o(V,"/cart/index/getTogetherProduct"),V.on("click",".pagenext, .pageprev",function(){o(V,"/cart/index/getTogetherProduct",{page:Math.ceil(100*Math.random())+1})}),Z.on("click",".icon-minus, .icon-add",function(){z(this).hasClass("icon-minus")?(z(this).parents(".title").next(".main").hide(),z(this).parents("h2").next(".right").hide()):(z(this).parents(".title").next(".main").show(),z(this).parents("h2").next(".right").show()),z(this).siblings("i").toggleClass("none"),z(this).toggleClass("none")}),X.on("click",".pagenext, .pageprev",function(){z(this).hasClass("pagenext")?J++:--J>0||(J=1),o(X,"/cart/index/getHistroyProduct",{page:J})}),Y.on("click",".cart-add-btn",function(){F=z(this).data("id"),T=z(this).parents("table").data("promotion"),q=z(this).parents("table").find(".subjoin-price").html(),$=z(this).parents("table").find(".wapper-price").html(),r(),s({productId:F})}),z(".clearfix").on("click",".btn_view_s",function(){F=z(this).data("id"),T=z(this).parents("table").data("promotion"),q=z(this).parents("table").find(".subjoin-price").html(),r(),s({productId:F})}),Q.on("click",".colse",function(){Q.hide(),Q.html(" "),ee=1}),Y.on("click",".icon-minusCart, .icon-addCart",function(){d(z(this))}),Y.on("click",".unfold-color",function(){d(z(this)),z(this).siblings(".icon-minusCart").removeClass("none"),z(this).siblings(".icon-addCart").addClass("none")}),Y.on("click",".cart-btn-next",function(){g=z(this).siblings("p").find(".f-red"),y=Number(z(this).siblings("p").find(".subjoinPageNum").html()),v=Number(g.html()),g.html(v+1),v>=y-1?z(this).hide():z(this).siblings("i").show(),b=z(this).parents(".cart-product-num").siblings("div").find("table"),b.addClass("none").eq(v).removeClass("none")}),Y.on("click",".cart-btn-pre",function(){g=z(this).siblings("p").find(".f-red"),y=Number(z(this).siblings("p").find(".subjoinPageNum").html()),v=Number(g.html()),g.html(v-1),v<=2?z(this).hide():z(this).siblings("i").show(),b=z(this).parents(".cart-product-num").siblings("div").find("table"),b.addClass("none").eq(v-2).removeClass("none")}),Q.on("click",".fav_count",function(){z.ajax({type:"POST",dataType:"json",url:"/product/item/togglecollect",data:{productId:F,type:"add"}}).then(function(e){200===e.code?new W(e.message).show():403===e.code?e.data.url&&(window.location=e.data.url):new W(e.message).show()})}),Y.on("click",".cart-del-btn",function(){k={},te=[],T=z(this).parents("tr").data("promotionid")?z(this).parents("tr").data("promotionid"):0,te.push({product_sku:z(this).parents("tr").data("id"),buy_number:z(this).parents("tr").data("productnum"),promotion_id:T}),oe=!!T,k={skuList:JSON.stringify(te),hasPromotion:oe},A="<div><span></span>删除商品</div><p>确定从购物车中删除此商品?</p>",z(this).data("gift")||(x={productPrice:z(this).parents("tr").find(".productPrice").text(),productTitle:z(this).parents("tr").find(".pay-pro-info a").text(),link:z(this).parents("tr").find(".pay-pro-info a").attr("href"),productNum:z(this).parents("tr").data("productnum"),productSku:z(this).parents("tr").data("id"),promotionId:z(this).parents("tr").data("promotionid")}),C="/cart/index/remove",new M({content:A,cb:function(){l(k,C,x)}}).show()}),Y.on("click",".cart-remove-btn",function(){k={},te=[],T=z(this).parents("tr").data("promotionid")?z(this).parents("tr").data("promotionid"):0,te.push({product_sku:z(this).parents("tr").data("id"),buy_number:z(this).parents("tr").data("productnum"),promotion_id:T}),oe=!!T,k={skuList:JSON.stringify(te),hasPromotion:oe},l(k,"/cart/index/fav")}),H.on("click",".delAll",function(){k={},x={},te=[],ne=[],z(".pay-wapper:first tr").each(function(){z(this).find('input[type="checkbox"]').attr("checked")&&(T=z(this).data("promotionid")?z(this).data("promotionid"):0,T&&(oe=!0),z(this).data("id")&&(z(this).find('input[type="checkbox"]').attr("checked")&&te.push({product_sku:z(this).data("id"),buy_number:z(this).data("productnum"),promotion_id:T}),x={productPrice:z(this).find(".productPrice").text(),productTitle:z(this).find(".pay-pro-info a").text(),link:z(this).find(".pay-pro-info a").attr("href"),productNum:z(this).data("productnum"),productSku:z(this).data("id"),promotionId:z(this).data("promotionid")},ne.push(x)))}),C="/cart/index/remove",A="<div><span></span>删除商品</div><p>确定从购物车中删除所有选中商品?</p>",k={skuList:JSON.stringify(te),hasPromotion:oe},z.isEmptyObject(te)?new W("请至少选择一件商品").show():new M({content:A,cb:function(){l(k,C,ne)}}).show()}),H.on("click",".removeAll",function(){k={},x={},te=[],z(".pay-wapper:first tr").each(function(){z(this).find('input[type="checkbox"]').attr("checked")&&(T=z(this).data("promotionid")?z(this).data("promotionid"):0,T&&(oe=!0),z(this).data("id")&&z(this).find('input[type="checkbox"]').attr("checked")&&te.push({product_sku:z(this).data("id"),buy_number:z(this).data("productnum"),promotion_id:T}))}),k={skuList:JSON.stringify(te),hasPromotion:oe},z.isEmptyObject(te)?new W("请至少选择一件商品").show():l(k,"/cart/index/fav")}),Y.on("click",".minus, .plus",function(){return x={},_=z(this).hasClass("minus")?"decreaseNum":"increaseNum",x[""+_]=1,!(se||"1"===z(this).siblings("input").val()&&z(this).hasClass("minus"))&&void c(z.extend(x,{sku:z(this).parents("tr").data("id")}))}),z(".gift").on("click",".up, .down",function(){z(this).siblings("i").toggleClass("none"),z(this).toggleClass("none")}),Q.on("click",".addcart",function(){return 0===z(".showSizeBox:not(.none) .atcive").length?(new W("请选择尺码").show(),!1):(j=z(".showSizeBox:not(.none) .atcive").data("num"),S=z(".showSizeBox:not(.none) .atcive").data("sku"),k={productSku:S,buyNumber:z("#mnum").val(),promotionId:T},void(z("#mnum").val()>j?new W("库存不足,目前还有"+j+"个库存").show():1===Number(z("#addToCart").val())?u(k):new W("该商品无法加入购物车").show()))}),Q.on("click",".cut, .add",function(){if(_=z(this).hasClass("minus")?"decreaseNum":"increaseNum",T)z(this).hasClass("cut")?new W("-_-,已经是最后一件,不能在减了!").show():new W("最多只能购买1,您好像购买的太多了!").show();else{if(z(this).hasClass("add")?ee++:ee--,ee<1)return new W("-_-,已经是最后一件,不能在减了!").show(),ee=1,!1;z("#mnum").val(ee)}}),Q.on("click",".color",function(){K=0,z(".color").find("p").removeClass("atcive"),z(this).find("p").addClass("atcive"),z(".showSizeBox").addClass("none").eq(z(this).index()).removeClass("none"),z(".showSizeBox:not(.none) span").length<2&&z(".showSizeBox:not(.none) span:first").addClass("atcive"),z(".detail-bigpic").addClass("none").eq(z(this).index()).removeClass("none"),z(".detail-bigpic").eq(z(this).index()).find(".bigpic").hide(),z(".detail-bigpic").eq(z(this).index()).find(".bigpic:first").show(),z(".detail-bigpic").eq(z(this).index()).find(".con li").removeClass("active"),z(".detail-bigpic").eq(z(this).index()).find(".con li:first").addClass("active"),z(".showSizeBox").eq(z(this).index()).find("span").each(function(){return z(this).hasClass("null-atcivec")?(z(".addcart").addClass("none"),void z(".btn_sellout").removeClass("none")):(z(".addcart").removeClass("none"),z(".btn_sellout").addClass("none"),!1)})}),Q.on("click",".showSizeBox span",function(){j=z(this).data("num"),z(this).data("num")>0?(z(".showSizeBox:not(.none) span").removeClass("atcivec atcive").eq(z(this).index()).addClass("atcive"),z(".addcart").removeClass("none"),z(".btn_sellout").addClass("none")):(z(".showSizeBox:not(.none) span").removeClass("atcivec atcive").eq(z(this).index()).addClass("atcivec"),z(".addcart").addClass("none"),z(".btn_sellout").removeClass("none"))}),z(".goBack").on("click",function(){k={},D=z(".dev-revocation .goBack").index(this),te=[],z(".dev-revocation tr").each(function(e){D!==e&&(x={productPrice:z(this).find(".productPrice").text(),productTitle:z(this).find(".title").text(),link:z(this).find(".title").attr("href"),productNum:z(this).data("productnum"),productSku:z(this).data("productsku"),promotionId:z(this).data("promotionid")},te.push(x))}),k={productSku:z(this).parents("tr").data("productsku"),promotionId:z(this).parents("tr").data("promotionid"),buyNumber:z(this).parents("tr").data("productnum")},u(k,te)}),Q.on("click",".piclist li",function(){K=z(this).index(),z(".detail-bigpic:not(.none) .piclist li").removeClass("active"),z(this).addClass("active"),z(".detail-bigpic:not(.none) .bigpic").hide().eq(z(this).index()).show()}),h(),Q.on("click",".pre, .next",function(){if(z(this).hasClass("next")){if(K>=z(this).siblings(".con").find("li").length-1)return!1;K++}else{if(K<1)return!1;K--}z(this).siblings(".con").find("li").removeClass("active").eq(K).addClass("active"),z(".detail-bigpic:not(.none) .bigpic").hide().eq(K).show()}),z(".btn_account").on("click",function(){P="",z(".pay-wapper input:checked").parents("tr").find(".tipNoStore").length>0?(U=z(".pay-wapper input:checked").parents("tr").find(".tipNoStore"),z.each(U.parents("tr").find(".pay-pro-info a"),function(){P+=z(this).html()}),new W(P+"库存不足").show()):z(".zp").length>0&&!z(this).attr("title")?(z(this).attr("title","1"),new W("您有赠品没有选择,请选择完再结算!").show()):z("input:checked").length>0?z(".pre-sell-box input:checked").length>0?window.location.href="/cart/index/orderEnsure?type=2":window.location.href="/cart/index/orderEnsure?type=1":new W("请至少选择一件商品").show()}),Y.on("selectstart",function(){return!1}),Q.on("selectstart",function(){return!1})}),define("js/guang/entry",["jquery","lazyload","dot","jquery-pjax"],function(e,t,n){e("js/guang/list"),e("js/guang/detail"),e("js/guang/index")}),define("js/guang/list",["jquery","lazyload","dot"],function(e,t,n){e("js/guang/msg"),e("js/guang/img-blink"),e("js/guang/right-side")}),define("js/guang/msg",["jquery","lazyload","dot"],function(e,t,n){function a(){o(".msg-title, .msg-content .content").dotdotdot({wrap:"letter"}),s(o("#msg-list img.lazy"))}var i,o=e("jquery"),s=e("lazyload");e("dot"),o(".guang-page").on("click",".like-icon",function(){var e,t=o(this),n=t.closest(".msg-content").data("id");i!==n&&(i=n,t.toggleClass("liked"),e=t.hasClass("liked")?"/guang/info/praise":"/guang/info/cancelPraise",o.ajax({type:"GET",url:e,data:{id:n,time:(new Date).getTime()}}).then(function(e){200===e.code&&(1*e.data===0?t.next("b").addClass("num-0").children(".num").html("0"):t.next("b").removeClass("num-0").children(".num").html(e.data)),i=!1}))}).on("mouseenter mouseleave",".like-icon",function(){o(this).closest(".like").toggleClass("hover")}),a(),t.dotLazy=a}),define("js/guang/img-blink",["jquery"],function(e,t,n){var a=e("jquery");a(".guang-page").on("mouseover","a img, a .bg-img",function(e){var t=a(e.target);t.closest(".slider").length>0||(t.addClass("blink"),setTimeout(function(){t.removeClass("blink")},100))})}),define("js/guang/right-side",["jquery","lazyload","dot"],function(e,t,n){var a=e("jquery"),i=e("lazyload");e("dot"),a(".ex-reco-context").dotdotdot({wrap:"letter"}),i(a(".ads img.lazy"))}),define("js/guang/detail",["jquery","lazyload","dot","jquery-pjax"],function(e,t,n){function a(){var e=o(".comments-list").find("li").length;0===e?(o(".commnets-resultwrapper").hide(),o(".comments-empty").show()):(o(".commnets-resultwrapper").show(),o(".comments-empty").hide())}function i(e){var t=o("#comment-info").val();return""===t?(alert("评论不能为空"),!1):(u=!0,void o.ajax({url:"/guang/info/comment",data:{id:e,comment:t},type:"post",success:function(e){switch(e.code){case 401:h=!0,location.href="//www.yohobuy.com/signin.html?refer="+window.escape(location.href+"#comment-info");break;case 400:alert(e.message);break;case 200:e.data&&(l.html(e.data.content),c.html(e.data.count),a(),o("#comment-info").val("").keyup())}u=!1}}))}var o=e("jquery"),s=e("lazyload"),r=o("#comment-area"),d=o(".detail-body").data("id"),l=r.find(".comments-wrap"),c=o("#article-comment > .comment-num"),u=!1,h=!1,p=o("#comment-btn"),f=100,m=o("#word-count-tip");e("js/guang/right-side"),e("js/guang/img-blink"),e("js/common/share"),e("jquery-pjax"),s({failure_limit:50}),o("#prise-btn").click(function(){var e,t=!1,n=o(this);t||(n.toggleClass("liked"),e=n.hasClass("liked")?"/guang/info/praise":"/guang/info/cancelPraise",t=!0,o.ajax({type:"GET",url:e,data:{id:d}}).then(function(e){200===e.code&&n.find(".like-num").html(e.data),t=!1}))}).bind("mouseenter mouseleave",function(){o(this).toggleClass("hover")}),o("#collect-btn").click(function(){var e,t,n=!1,a=o(this);n||(a.hasClass("collected")?(e="/guang/info/cancelcollect",t=0):(e="/guang/info/collect",t=1),n=!0,o.ajax({type:"GET",url:e,data:{id:d}}).then(function(e){var i;switch(e.code){case 401:i=/\?col=(1|0)/.test(location.href)?location.href.replace(/\?col=(1|0)/,"?col="+t):location.href+"?col="+t,location.href="//www.yohobuy.com/signin.html?refer="+encodeURI(i);break;case 400:break;case 200:/\?col=(1|0)/.test(location.href)?location.href=location.href.replace(/\?col=(1|0)/,""):a.toggleClass("collected")}n=!1}))}).bind("mouseenter mouseleave",function(){o(this).toggleClass("hover")}),a(),p.click(function(e){return!h&&!u&&void(o("#comment-info").val().length-f>0||(e.preventDefault(),i(d)))}),o(document).pjax(".comment-pager a","#pjax-container",{timeout:5e3}),o(document).on("pjax:end",function(){a(),o("html,body").scrollTop(o("#comment-info").offset().top)}),o("#comment-info").keyup(function(){var e,t=o(this).val().length;0===t?(m.html(""),p.addClass("disable")):t-f<=0?(e="还可以输入"+(f-t)+"字",p.removeClass("disable")):(e='已超过<span class="exceed-count">'+(t-f)+"</span>字",p.addClass("disable")),m.html(e)}),o("#comment-info").trigger("keyup")}),define("js/guang/index",["jquery","lazyload","dot","jquery-pjax"],function(e,t,n){var a=e("jquery"),i=e("js/guang/msg");e("jquery-pjax"),e("js/common/slider"),e("js/guang/img-blink"),e("js/guang/right-side"),a("#slider").slider(),a(document).pjax(".pjax-link, .msg-pager a","#pjax-container",{timeout:2e3}),a(document).on("pjax:end",function(){i.dotLazy()})}),define("js/home/entry",["jquery","handlebars","source-map","dot"],function(e,t,n){e("js/home/index"),e("js/home/orders"),e("js/home/favorite"),e("js/home/currency"),e("js/home/returns"),e("js/home/comment"),e("js/home/complaints"),e("js/home/message"),e("js/home/edit"),e("js/home/gift"),e("js/home/validate"),e("js/home/address"),e("js/home/common-address")}),define("js/home/index",["jquery","handlebars","source-map"],function(e,t,n){var a=e("jquery");e("js/home/order-block"),a("#close-message").click(function(){a(".message-tip").slideUp(200)}),function(){var e=a(".na-pager"),t=a(".new-arrival ul"),n=Math.ceil(t.children("li").length/5),i=t.children("li:last-child").outerWidth(),o=1;t.width(t.width()*n),e.click(function(){var e,s=a(this);s.hasClass("next")?(++o,2===o&&s.siblings().removeClass("no-visible"),o===n&&s.addClass("no-visible")):(--o, +o===n-1&&s.siblings().removeClass("no-visible"),1===o&&s.addClass("no-visible")),e=-5*(o-1)*i,t.animate({marginLeft:e},400)})}()}),define("js/home/order-block",["jquery","handlebars","source-map"],function(e,t,n){function a(e){var t={mask:!1,btns:[{id:"cancel-sure",name:"确定并取消订单",btnClass:["cancel-sure"],cb:function(){var t=x(".cancel-dialog :checked"),n=x(".cancel-dialog .cancel-tip");return 0===t.length?void n.html("请选择要取消订单的原因"):void x.ajax({type:"POST",url:"/home/orders/cancelorder",data:{orderCode:e,reason:t.val()}}).then(function(e){200===e.code?(h.close(),history.go(0)):n.html(e.message)})}},{id:"cancel-no",name:"取消",btnClass:["cancel-no"],cb:function(){h.close()}}],content:E,className:"cancel-dialog"};return new S(t)}function i(e,t,n,a){var i=k.compile(A),o=i({messageIcon:e,messageTitle:t,messageSummary:n}),s={mask:!0,btns:[{id:"message-sure",name:"确定",btnClass:["message-sure"],cb:function(){h.close(),a&&a()}}],content:o,className:"message-dialog"};return new S(s)}function o(e){var t={mask:!0,btns:[{id:"edit-sure",name:"确定",btnClass:["edit-sure"],cb:function(){c(e)}},{id:"edit-no",name:"取消",btnClass:["edit-no"],cb:function(){h.close()}}],content:F.html(),className:"edit-order-dialog"};return new S(t)}function s(e,t){var n=!0,a=x(t).parents(".order"),i=n?"您确定要永久删除订单吗?":"您确定要删除订单吗?",o=n?"永久删除后,订单将无法恢复,您将无法对该订单的商品申请售后服务,请谨慎操作。":"删除后,您可以在订单回收站找回该订单,也可以做永久删除。",s=k.compile(I),r=s({deleteMessage:i,deleteTip:o}),d={mask:!1,btns:[{id:"delete-sure",name:"确定",btnClass:["delete-sure"],cb:function(){x.ajax({type:"POST",url:"/home/orders/delOrder",data:{orderCode:e,isFullyDelete:n}}).then(function(e){200===e.code?(h.close(),a.remove(),location.reload()):(h.close(),new j.Alert(e.message).show())})}},{id:"delete-no",name:"取消",btnClass:["delete-no"],cb:function(){h.close()}}],content:r,className:"delete-dialog"};return new S(d)}function r(e){var t,n,a=e||0,i=/[0-9]{2}/gi;p=x(".edit-order-dialog"),f=p.find('select[name="province"]'),m=p.find('select[name="city"]'),g=p.find('select[name="county"]'),v=p.find('select[name="province"],select[name="city"]'),y=p.find('.inp[name="name"]'),b=p.find('.inp[name="phone"]'),w=p.find('.inp[name="address"]'),C=p.find('.inp[name="tel-code"]'),_=p.find('.inp[name="tel"]');var o=u();t=f.data("areacode")+"",n=!!t&&t.match(i),d({id:a,type:"getProvince",selectId:n[0]},function(){var e=f.val();"0"!==e?(U=!0,d({id:e,type:"getCity",selectId:""+n[0]+n[1]},function(){var e=m.val();"0"!==e&&d({id:e,type:"getCounty",selectId:t})})):(p.find('select[name="city"]').html('<option value="0">请选择城市</option>'),p.find('select[name="county"]').html('<option value="0">请选择区县</option>'))}),v.change(function(){var e=x(this);"province"===e.attr("name")&&("0"===e.val()?(p.find('select[name="city"]').html('<option value="0">请选择城市</option>'),p.find('select[name="county"]').html('<option value="0">请选择区县</option>')):(d({id:e.val(),type:"getCity"},function(){U=!0}),p.find('select[name="county"]').html('<option value="0">请选择区县</option>'))),"city"===e.attr("name")&&U&&("0"===e.val()?p.find('select[name="county"]').html('<option value="0">请选择区县</option>'):d({id:e.val(),type:"getCounty"}))}),y.on("blur",function(){o.name(x.trim(y.val()))}),w.on("blur",function(){o.address(x.trim(w.val()))}),b.on("blur",function(){o.mobile(x.trim(b.val()))}),_.on("blur",function(){o.tel(x.trim(C.val()),x.trim(_.val()))}),g.on("change",function(){o.city(f.val(),m.val(),g.val())})}function d(e,t){var n,a=e.selectId;"getProvince"===e.type?n=f:"getCity"===e.type?n=m:"getCounty"===e.type&&(n=g),x.ajax({type:"GET",url:"/cart/index/getAreaList",dataType:"json",data:{id:1*e.id}}).then(function(e){l(n,e.data,a),"function"==typeof t&&t()})}function l(e,t,n){var a,i,o="",s="";for(a=0;a<t.length;a++)s="Y"===t[a].is_support_express?"*":"",o+=t[a].id===n?'<option selected value="'+t[a].id+'">'+s+t[a].caption+"</option>":'<option value="'+t[a].id+'">'+s+t[a].caption+"</option>";"province"===e.attr("name")?i='<option value="0">请选择省份</option>':"city"===e.attr("name")?i='<option value="0">请选择城市</option>':"county"===e.attr("name")&&(i='<option value="0">请选择区县</option>'),e.html(i+o)}function c(e){var t=y.val(),n=f.val(),a=m.val(),o=g.val(),s=w.val(),r=b.val(),d=C.val(),l=_.val(),c={orderCode:e,userName:t,areaCode:o,address:s,mobile:r,phoneCode:d,phoneNum:l},p=u();p.name(t)&&p.city(n,a,o)&&p.address(s)&&p.mobile(r)&&p.tel(d,l)&&x.ajax({type:"post",url:"/home/orders/modifyAddress",data:c}).then(function(e){200===e.code?(h.close(),h=i("icon-waiting","订单修改","您的订单正在尝试修改,请耐心等待。稍后可在订单详情页查看修改情况!",function(){location.reload(!0)}),h.show()):new j.Alert(e.message).show()})}function u(){var e=y.siblings(".error"),t=f.siblings(".error"),n=w.siblings(".error"),a=b.siblings(".error"),i=_.siblings(".error"),o=/^[\u4e00-\u9fa5]{2,5}$/,s=/^[a-zA-Z0-9-#()()\u4e00-\u9fa5]+$/,r=/^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/,d=/^[0-9]{3,4}$/,l=/^[0-9]{8}$/,c='<i class="order-icon icon-right"></i>',u='<i class="order-icon icon-error"></i><b></b>';return{name:function(t){return o.test(t)?(e.html(c).show(),!0):(e.html(u),e.find("b").html("真实姓名至少2个中文,最多5个中文"),e.show(),!1)},city:function(e,n,a){return"0"===e||"0"===n||"0"===a?(t.html(u),t.find("b").html("请填写完整的省市区信息"),t.show(),!1):(t.html(c).show(),!0)},address:function(e){if(s.test(e))return n.html(c).show(),!0;var t="详细地址不能为空";return""!==x.trim(e)&&(t="只能包含数字、字母、汉字、#、-、()及其组合"),n.html(u),n.find("b").html(t),n.show(),!1},mobile:function(e){if(r.test(e))return a.html(c).show(),!0;var t="手机号码不能为空";return""!==x.trim(e)&&(t="你输入的联系电话格式不正确"),a.html(u),a.find("b").html(t),a.show(),!1},tel:function(e,t){return""===e&&""===t&&(c=""),e&&!d.test(e)||t&&!l.test(t)||d.test(e)&&!l.test(t)||!d.test(e)&&l.test(t)?(i.html(u),i.find("b").html("你输入的电话格式不正确"),i.show(),!1):(i.html(c).show(),!0)}}}var h,p,f,m,g,v,y,b,w,C,_,x=e("jquery"),k=e("handlebars"),j=e("js/common/dialog"),S=j.Dialog,T=j.Confirm,q=x("#cancel-dialog-tpl"),I='<div class="order-delete-confirm"><div class="header"><p>删除订单</p><a href="javascript:;" title="关闭"></a></div><div class="body"><p class="confirm-tip"><i class="icon-doubt"></i>{{deleteMessage}}</p><p class="delete-tip">{{deleteTip}}</p></div></div>',E=q.html(),A='<p class="message-title"><i class="order-icon {{messageIcon}}"></i>{{messageTitle}}</p><p class="message-summary">{{messageSummary}}</p>',F=x("#edit-dialog-tpl"),U=!1;q.remove(),F.remove(),x(".check-logistics").click(function(){x(this).siblings(".logistics").removeClass("hide")}),x(".close-logistics").click(function(){x(this).closest(".logistics").addClass("hide")}),x(".me-orders, .order-detail").on("click",".cancel-order",function(e){h=a(x(this).closest(".order, .order-detail").data("id")),h.show()}).on("click",".confirm-received",function(e){var t=x(this).closest(".order, .order-detail").data("id");h=new T({cb:function(){x.ajax({type:"POST",url:"/home/orders/confirmorder",data:{orderCode:t}}).then(function(e){200===e.code&&(h.close(),history.go(0))})},content:"您确定要确认收货吗?"}),h.show()}).on("click",".order-delete",function(){var e=x(this).closest(".order, .order-detail").data("id");h=s(e,this),h.show()}).on("click",".edit-order",function(){x(this).addClass("edit-order-active"),h=o(x(this).closest(".order, .order-detail").data("id")),h.show(),r(0)})}),define("js/home/orders",["jquery","handlebars","source-map"],function(e,t,n){function a(e,t,n,a){var i=1,o=1,s=0,r=!1;e.click(function(){r||("0px"===n.css("left")?s=0:(s+=o*a,r=!0),n.stop().animate({left:s},300,function(){r=!1}))}),t.click(function(){var e=n.parent().width()-n.width()+"px";r||(n.css("left")===e?n.css("left",e):(s+=-i*a,r=!0),n.stop().animate({left:s},300,function(){r=!1}))})}var i=e("jquery");e("js/home/order-block"),i(".why").click(function(){return i("#differentBag").show(),!1}),i("#differentBag").click(function(){return!1}),i(document).click(function(){i("#differentBag").hide()}),i(".bag").find("ul").each(function(){var e=i(this).parent().parent().find(".pre"),t=i(this).parent().parent().find(".next"),n=i(this).find("li").eq(0).width(),o=i(this).find("li").size(),s=n*o;i(this).css("width",s),o>5?(e.show(),t.show(),a(e,t,i(this),n)):(e.hide(),t.hide())})}),define("js/home/favorite",["jquery","handlebars","source-map","dot"],function(e,t,n){var a,i,o,s=e("jquery"),r=e("handlebars"),d=e("js/passport/mail-phone-regx").phoneRegx["+86"],l={on:"[ 降价通知 ]",off:"[ 取消通知 ]"},c=location.href.match(/type=(.*)[&]*/);e("dot"),function(){function e(e){y=1*e,u.text(e),f.find(".notice-num").text(5-e)}function t(){c.addClass("hide"),h.addClass("hide"),g.text("订阅成功")}function n(){var t=s(document).scrollTop()+s(window).height()/2;"undefined"==typeof c&&(s("body").append('<div class="body-mask hide"></div>'),c=s(".body-mask")),c.css({height:s(document).height(),width:s(document).width()}).removeClass("hide"),h.removeClass("error"),o.hasClass("noticed")?s.ajax({type:"GET",url:"/home/favorite/cancelnotice",data:{id:i}}).then(function(n){200===n.code?(e(n.data.num),p.addClass("hide"),f.removeClass("hide"),g.text("取消成功"),h.removeClass("hide").css({top:t}),o.closest(".reduction-products").length>0?o.closest(".fav-good").remove():o.removeClass("noticed").text(l.on)):n.message&&(m.text(n.message),h.removeClass("hide").addClass("error").css({top:t}))}):y>=5?(m.text("您的订阅数已经到达上限"),h.removeClass("hide").addClass("error").css({top:t})):(p.removeClass("hide"),f.addClass("hide"),h.removeClass("hide").css({top:t}))}var a,r,c,u,h,p,f,m,g,v,y,b={};0!==s(".fav-products").length&&(a=s(".default-sorts"),r=s(".all-sorts"),u=s(".reduction-notice span"),h=s(".price-notice"),p=s("#price-notice .content"),f=s("#price-notice .success"),m=s("#price-notice .error-message"),g=f.find(".subscribe-or-cancel"),v=s("#notice-phone-num"),b.phone=v.val(),b.change=!1,y=1*u.text(),s("#spread-sort").click(function(){a.slideUp(function(){r.slideDown()})}),s("#retract-sort").click(function(){r.slideUp(function(){a.slideDown()})}),s(".price-down-clock").click(function(){o=s(this),i=o.closest(".fav-good").data("id"),n()}),s('.reduction-filter input[type="checkbox"]').change(function(){location.href=s(this).parent().attr("href")}),s("#price-notice").on("click",".close",function(){t()}).on("click",".price-notice-sure",function(){var n,a;if(h.hasClass("error")||p.hasClass("hide"))t();else{if(n=s.trim(v.val()),""===n||!d.test(n))return a=""===n?"请输入手机号码":"手机号码格式不正确",v.addClass("error"),void s("#price-notice .err-text").removeClass("hide").find("em").html(a);if(v.removeClass("error"),s("#price-notice .err-text").addClass("hide"),""!==b.phone&&b.phone!==n&&!b.change)return s("#price-notice .phone-diff").removeClass("hide"),void(b.change=!0);s.ajax({type:"GET",url:"/home/favorite/notice",data:{mobile:n,id:i}}).then(function(t){200===t.code?(e(t.data.num),f.removeClass("hide"),p.addClass("hide"),b.phone=n,b.change=!1,s("#price-notice .phone-diff").addClass("hide"),o.toggleClass("noticed").text(l.off)):t.message&&(m.text(t.message),h.removeClass("hide").addClass("error"))})}}),s(".has-activity").click(function(){var e=s(this),t=e.next(".activites"),n=e.closest("li");t.hasClass("hide")?(t.removeClass("hide"),n.css("padding-bottom",t.outerHeight())):(t.addClass("hide"),n.css("padding-bottom",""))}))}(),function(){function e(e,t){var n=e.data("id"),i=e.find(".na-goods-ul"),o=a[n],s=o.cur?o.cur:1,r=Math.ceil(o.total/5),d=e.find(".na-pre"),l=e.find(".na-next");s+=t,d.removeClass("hidden"),l.removeClass("hidden"),1===s&&d.addClass("hidden"),s===r&&l.addClass("hidden"),i.animate({marginLeft:-(s-1)*i.parent(".na-goods").width()},200),o.cur=s}function t(e,t){e.css("padding-bottom",t.outerHeight()+10)}var n,a={};0!==s(".fav-brands").length&&(n=r.compile(s("#na-tpl").html()),s(".na-trigger").click(function(){var e,i=s(this),o=i.next(".na-list"),r=i.closest("li");return o.hasClass("hide")?(e=r.data("id"),a[e]&&a[e].cache?(o.removeClass("hide"),void t(r,o)):void s.ajax({type:"GET",url:"/home/favorite/newproduct",data:{id:e}}).then(function(i){var s,d,l;200===i.code&&(d=i.data,l=0===d.length?{}:{naGoods:d},s=n(l),o.removeClass("hide").find(".na-content").html(s),t(r,o),d.length>5&&r.find(".na-next").removeClass("hidden"),a[e]||(a[e]={}),a[e].cache=!0,a[e].total=d.length)})):(o.addClass("hide"),void r.css("padding-bottom",""))}),s(".na-content").on("click",".na-pre, .na-next",function(){var t=s(this),n=t.hasClass("na-pre")?-1:1;e(t.closest(".fav-brand"),n)}))}(),function(){s(".fav-articles").length<0||s(".fav-articles .desc").dotdotdot()}(),c&&c.length&&(a=c[1]),s("#me-checkall").click(function(){s('.checkbox input[type="checkbox"]').prop("checked",s(this).prop("checked"))}),s(".del-favorite").click(function(e){var t=s(this).closest(".fav-row").data("id"),n=s(this).closest(".fav-row").data("shopid"),i=s(this).closest(".fav-row").data("brandorshoptype");e.preventDefault(),s.ajax({type:"GET",url:"/home/favorite/cancel",data:{id:t,shopid:n,brandorshoptype:i,type:a}}).then(function(e){200===e.code&&history.go(0)})}),s("#me-del-checked").click(function(){var e=[],t="商品";if("brand"===a?t="品牌":"article"===a&&(t="文章"),confirm("您确定要删除您收藏的"+t+"吗?")){if(s('.checkbox input[type="checkbox"]:checked').each(function(){e.push(s(this).closest(".fav-row").data("id"))}),0===e.length)return void alert("请选中您要移除的"+t);s.ajax({type:"GET",url:"/home/favorite/cancel",data:{id:e.join(","),type:a}}).then(function(e){history.go(0)})}}),location.href.match(/is_reduction=(.*)[&]*/)&&s(".reductionChecked").attr("checked",!0),location.href.match(/is_promotion=(.*)[&]*/)&&s(".activityChecked").attr("checked",!0)}),define("js/home/currency",["jquery"],function(e,t,n){var a=e("jquery");a(".filter-select").change(function(){location.href=a(this).val()})}),define("js/home/returns",["jquery","handlebars","source-map"],function(e,t,n){e("js/home/returns-detail"),e("js/home/returns-apply")}),define("js/home/returns-detail",["jquery","handlebars","source-map"],function(e,t,n){function a(){w=C[y]?C[y]:"",g.html(w+" 快递单号:"+b),f.val(y),m.val(b)}function i(){var e={};if(e.number=m.val(),e.id=1*f.val(),e.id){if(e.number)return e;alert("请填入快递单号")}else alert("请选择快递公司");return!1}function o(){var e=i();e&&d.ajax({type:"POST",url:"/home/returns/setExpressNumber",data:{id:v,isChange:_,expressId:e.id,expressNumber:e.number,expressCompany:C[e.id]}}).then(function(t){200===t.code?(y=e.id,b=e.number,u.eq(2).addClass("act")):alert(t.message),a(),p.removeClass("in-edit")})}function s(e,t){var n=l.compile(k),a=n({messageIcon:"icon-warn",messageTitle:"取消申请",messageSummary:"您确定要请取消申请吗?"}),i={mask:!0,btns:[{id:"cancel-sure",name:"确定",btnClass:["cancel-sure"],cb:function(){d.ajax({type:"POST",url:t,data:{id:e}}).then(function(e){r.close(),200===e.code?location.reload():new c.Alert(e.message).show()})}},{id:"cancel-no",name:"取消",btnClass:["cancel-no"],cb:function(){r.close()}}],content:a,className:"cancel-dialog"};return new x(i)}var r,d=e("jquery"),l=e("handlebars"),c=e("js/common/dialog"),u=d(".visual-return-state li"),h=d(".detail-container"),p=d(".courier-code"),f=d("#express-company"),m=d("#express-number"),g=d(".express-view-box > span"),v=d("#return-id").val(),y=d("#express-old-id").val(),b=m.val(),w="",C={},_=!1,x=c.Dialog,k='<p class="message-title"><i class="{{messageIcon}}"></i>{{messageTitle}}</p><p class="message-summary">{{messageSummary}}</p>';h.parent().hasClass("exchange-detail")&&(_=!0),f.val(y),h.find(".company-list").each(function(){var e=d(this).data();C[e.id]=e.name}),d("#modify").click(function(){p.addClass("in-edit")}),d("#submit-btn").click(function(){o()}),d(".cancel-return").on("click",".cancel-trigger",function(){r=s(d(this).data("id"),d(this).data("url")),r.show()})}),define("js/home/returns-apply",["jquery","handlebars","source-map"],function(e,t,n){function a(e){c.ajax({type:"POST",url:"/home/returns/getDelivery",data:{areaCode:e}}).then(function(e){var t="";200===e.code&&(c.each(e.data,function(e,n){var a="";"Y"===n.is_default&&(a='checked="checked"'),t+='<input type="radio" name="delivery-tpye" value="'+n.id+'" '+a+'"">'+n.name}),S.html(t))})}function i(e){C.hide(),2===e?(_.show(),x.hide(),C.hide()):3===e?(x.show(),_.hide(),C.hide()):4===e&&(C.show(),_.hide(),x.hide())}function o(){var e=[],t="换货";return I&&(t="退货"),p.length||(D="没有可以"+t+"的商品"),p.each(function(){var n,a=c(this).parent().parent(),i=a.next();D.length||c(this).prop("checked")&&(n={product_skn:a.find('input[name="skn"]').val(),product_skc:a.find('input[name="skc"]').val(),product_sku:a.find('input[name="sku"]').val(),goods_type:a.find('input[name="typeid"]').val(),last_price:a.find('input[name="price"]').val(),reason:1*a.find(".return-reason").val()},I?n.returned_reason=n.reason:(n.exchange_reason=n.reason,n.new_goods_id=1*a.find(".exchange-color").val(),n.new_product_sku=1*a.find(".exchange-size").val(),D||n.new_goods_id||(D="请选择要换的颜色"),D||n.new_product_sku||(D="请选择要换的尺码")),D||n.reason||(D="请选择"+t+"原因"),4!==n.reason&&6!==n.reason&&8!==n.reason||(n.remark=c.trim(i.find("textarea").val()),n.evidence_images=[],i.find('input[name="imgs"]').each(function(){n.evidence_images.push(c(this).val())}),D||n.remark||(D="请填写"+t+"描述"),D||n.evidence_images.length||(D="请上传图片")),delete n.reason,e.push(n))}),D||e.length||(D="请选择要"+t+"的商品"),e}function s(){var e={};return e.goods=o(),e.payment={},g.each(function(){c(this).prop("checked")&&(e.payment.return_amount_mode=1*c(this).val())}),D||e.payment.return_amount_mode||(D="请选择退款方式"),2===e.payment.return_amount_mode?(e.payment.province=v.val(),e.payment.city=y.val(),e.payment.area_code=b.val(),!D&&1*!e.payment.area_code&&(D="请选择银行所在地"),e.payment.bank_name=c.trim(w.find('input[name="bank-name"]').val()),D||e.payment.bank_name||(D="请填写银行名称"),e.payment.payee_name=c.trim(w.find('input[name="payee-name"]').val()),D||e.payment.payee_name||(D="请填写收款人姓名"),e.payment.bank_card=c.trim(w.find('input[name="bank-card"]').val()),D||e.payment.bank_card||(D="请填写收款账户")):3===e.payment.return_amount_mode&&(e.payment.alipay_name=c.trim(w.find('input[name="alipay-name"]').val()),D||e.payment.alipay_name||(D="请填写收款人姓名"),e.payment.alipay_account=c.trim(w.find('input[name="alipay-account"]').val()),D||e.payment.alipay_account||(D="请填写收款账户")),e}function r(){var e={};return e.goods=o(),e.consigneeName=c.trim(k.find('input[name="name"]').val()),D||e.consigneeName||(D="请填写收货人姓名"),e.areaCode=b.val(),!D&&1*!e.areaCode&&(D="请选择地区"),e.address=c.trim(k.find('input[name="address"]').val()),D||e.address||(D="请填写详细地址"),e.mobile=c.trim(k.find('input[name="phone"]').val()),e.mobile===U?e.mobile=F:D||e.mobile||(D="请填写手机号"),e.zipCode=c.trim(k.find('input[name="postcode"]').val()),e.deliveryType=k.find('input[name="delivery-tpye"]:checked').val(),D||e.deliveryType||(D="请选择商品返回方式"),e}function d(e){var t="○";e?(T.addClass("applying"),l=setInterval(function(){q.text(t),t.length>3&&(t=""),t+="○"},600)):(T.removeClass("applying"),clearInterval(l))}var l,c=e("jquery"),u=e("js/home/common-address"),h=c("#goods-table"),p=h.find('input[type="checkbox"]'),f=h.find(".return-reason"),m=h.find("input[type=file]"),g=c('input[name="refund-type"]'),v=c("#province"),y=c("#city"),b=c("#area"),w=c("#refund-pay-info"),C=w.find(".type-yoho"),_=w.find(".type-bank"),x=w.find(".type-alipay"),k=c(".exchange-detail"),j=k.find('input[name="hide-phone"]'),S=k.find(".refund-mode"),T=c(".submit-box"),q=T.find(".wait-gif span"),I=0,E=c("#order-code").val(),A=k.find('input[name="hide-area"]').val(),F=j.val(),U="",D="",P={};e("plugin/jquery.qupload"),F&&(j.remove(),U=F.replace(/(\d{3})\d{4}(\d{4})/,"$1****$2"),k.find('input[name="phone"]').val(U)),h.on("mouseenter mouseleave",".doubt",function(e){var t=c(this),n=t.parents(".special-tip"),a=n.find(".special-content"),i=n.find("> span").width();"mouseenter"===e.type?a.css({left:i+10,zIndex:1}).show():"mouseleave"===e.type&&a.css({zIndxex:0}).hide()}),w.length?(I=1,g.each(function(){c(this).prop("checked")&&i(1*c(this).val())})):A&&a(A),A=A?A:"",u.loadAllData(A,{areaDomId:"area"}),h.find(".sizeinfo").each(function(){var e=[];c(this).children().each(function(){e.push(c(this).data())}),P[c(this).data().id]=e}),f.change(function(){var e=c(this).parent().parent(),t=1*c(this).val();4===t||6===t||8===t?e.next().show():e.next().hide()}),p.change(function(){var e=c(this).parent().parent();c(this).prop("checked")?e.find("select").prop("disabled",!1):(e.find("select").val(0).prop("disabled",!0),e.next().hide())}),h.on("change",".exchange-color",function(){var e=c(this).closest(".exchange-choose-wrap"),t='<option value="0">请选择尺码</option>',n=c(this).val();P[n]&&c.each(P[n],function(e,n){t+='<option value="'+n.id+'">'+n.name+"</option>"}),e.find(".exchange-size").html(t).val(0)}),h.on("click",".btn-del",function(){c(this).parent().empty()}),m.each(function(e){var t=c("#upload-img-"+e),n=t.closest(".problem-description");t.qupload({button_image_url:"",upload_url:"//www.yohobuy.com/home/returns/imgUpload",file_post_name:"fileData",button_text:'<span class="btn_upload_text">上传图片</span>',button_text_style:".btn_upload_text{color: #ffffff;}",button_width:116,button_height:33,button_text_left_padding:32,button_text_top_padding:8,button_action:window.SWFUpload.BUTTON_ACTION.SELECT_FILE,file_size_limit:"10240",file_types:"*.jpg;*.jpeg;*.png;*.bmp",uploadSuccessed:function(e){var t,a,i=n.find("li"),o=!1;t=JSON.parse(e).imgList[0],a='<span class="btn-del" title="删除"></span><img src="'+t[0]+'" width="126" height="126"><input type="hidden" name="imgs" value="'+t.imgRelUrl+'">',i.each(function(){o||c(this).find("img").length||(o=!0,c(this).html(a))})}})}),k.on("change","#area",function(){var e=1*c(this).val();e&&a(e)}),g.change(function(){var e=1*c(this).val();i(e)}),c(".save-btn").click(function(){var e,t;return D="",I?(e="/home/returns/saveRefund",t=s()):(e="/home/returns/saveExchange",t=r()),t.orderCode=E,D?void alert(D):(d(!0),void c.ajax({type:"POST",url:e,data:t}).then(function(e){200===e.code?e.data&&e.data.refer&&(window.location.href=e.data.refer):(alert(e.message),d(!1))}))})}),define("js/home/common-address",["jquery","handlebars","source-map"],function(e,t,n){var a=e("jquery"),i=e("js/common/dialog"),o=i.Alert,s={provinceDomId:"province",cityDomId:"city",areaDomId:"areaCode",initDomIds:function(e){var t=this;void 0!==e.provinceDomId&&(t.provinceDomId=e.provinceDomId),void 0!==e.cityDomId&&(t.cityDomId=e.cityDomId),void 0!==e.areaDomId&&(t.areaDomId=e.areaDomId)},loadAreaData:function(e,t,n,i){var s,r,d,l,c=this,u=a("#"+t),h=0,p="";u.empty(),e<91&&(a("#"+c.areaDomId).empty(),a("#county").attr("disabled","disabled")),a.ajax({type:"GET",url:"/home/address/area",data:"id="+e,success:function(e){if(e.code=200,200!==e.code)return s=new o("暂无数据"),s.show(),!1;u.append('<option value="0">'+n+"</option>");for(h in e.options)e.options[h]&&(r=e.options[h],p=t===c.areaDomId&&"Y"===r.is_support?"*":"",d=r.value,l="","undefined"!=typeof i&&0!==i&&d===i.substr(0,d.length)&&(l="selected"),u.append('<option value="'+d+'" '+l+">"+p+r.text+"</option>"))}})},bindAreaChange:function(e){var t=this;void 0===a("#"+t.provinceDomId).data("events")&&(a("#"+t.provinceDomId).change(function(){var n=a("#"+t.provinceDomId).val();"0"!==n&&(t.loadAreaData(n,t.cityDomId,"请选择城市",n),a("#"+t.areaDomId).hide(),t.showAreaSel(e.dispDomId))}),a("#"+this.cityDomId).change(function(){var n=a("#"+t.cityDomId).val();"0"!==n&&(t.loadAreaData(n,t.areaDomId,"请选择区县",n),a("#"+t.areaDomId).show(),t.showAreaSel(e.dispDomId))}),a("#"+t.areaDomId).change(function(){t.showAreaSel(e.dispDomId)}),t.showAreaSel(e.dispDomId))},showAreaSel:function(e){var t=this,n="",i=a("#"+t.provinceDomId).find("option:selected").text(),o=a("#"+t.cityDomId).find("option:selected").text(),s=a("#"+t.areaDomId).find("option:selected").text();void 0!==e&&""!==e&&(i.indexOf("选择")<0&&(n=i),""!==o&&o.indexOf("选择")<0&&(n+=","+o),""!==s&&s.indexOf("选择")<0&&(n+=","+s),a("#"+e).html(n))},loadAllData:function(e,t){var n=this;n.initDomIds(t),e+="",e<91?(n.loadAreaData(0,n.provinceDomId,"请选择省份",""),a("#"+n.areaDomId).hide(),a("#"+n.cityDomId).html('<option value="0">请选择市</option>')):4===e.length?(n.loadAreaData(0,n.provinceDomId,"请选择省份",e),n.loadAreaData(e.substr(0,2),n.cityDomId,"请选择城市",e),n.loadAreaData(e,n.areaDomId,"请选择区县",e),a("#"+n.areaDomId).show()):6===e.length&&(n.loadAreaData(0,n.provinceDomId,"请选择省份",e),n.loadAreaData(e.substr(0,2),n.cityDomId,"请选择城市",e),n.loadAreaData(e.substr(0,4),n.areaDomId,"请选择区县",e),a("#"+this.areaDomId).show()),n.bindAreaChange(t)}};n.exports=s}),define("plugin/jquery.qupload",["jquery"],function(e,t,n){function a(){0==l&&(s("body").append('<div id="progressDialog" style="display: none;width:370px;height:80px !important;"><div style="padding:10px 20px;"><span id="curUploadStatus">图片上传中……请稍等</span><div id="progress"></div></div></div>'),l=1)}function i(e,t){s("#uploadNum").html(e),s("#totalUploadNum").html(t)}function o(e,t){function n(e,n){this.options[e]=void 0==t[e]?n:t[e]}function a(e){try{}catch(t){this.debug(t)}}function o(e,t,n){var a;try{if(t===r.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED)return void alert("您尝试上传太多文件.\n"+(0===n?"您已达到上传限制.":"您最多还可以 "+(n>1?"上传 "+n+"文件.":"一个文件.")));switch(t){case r.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:a="文件超过"+C.file_size_limit/1024+"M",alert(a),this.debug("Error Code: File too big, File name: "+e.name+", File size: "+e.size+", Message: "+n);break;case r.QUEUE_ERROR.ZERO_BYTE_FILE:alert("请上传有内容的文件!"),this.debug("Error Code: Zero byte file, File name: "+e.name+", File size: "+e.size+", Message: "+n);break;case r.QUEUE_ERROR.INVALID_FILETYPE:alert("请上传指定类型的文件!"),this.debug("Error Code: Invalid File Type, File name: "+e.name+", File size: "+e.size+", Message: "+n);break;default:alert("上传文件失败,请稍后在试!"),this.debug("Error Code: "+t+", File name: "+e.name+", File size: "+e.size+", Message: "+n)}}catch(i){this.debug(i)}}function s(){null!=y&&y()}function l(e,t){try{e>0&&(b=e,w=1,i(w,b),this.startUpload())}catch(n){this.debug(n)}}function c(e){this.addPostParam("_key",v)}function u(e,t,n){Math.ceil(t/n*100)}function h(e,t){w++,i(w,b),null!=g&&g(t)}function p(e,t,n){try{if(t===r.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED)return void alert("您尝试上传太多文件.\n"+(0===n?"您已达到上传限制.":"您最多还可以 "+(n>1?"上传 "+n+"文件.":"一个文件.")));switch(t){case r.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT:alert("Error Code: 文件太大。 文件名为: "+e.name+", 大小为: "+e.size+", Message: "+n);break;case r.QUEUE_ERROR.ZERO_BYTE_FILE:alert("Error Code: 文件为0, 文件名为: "+e.name+", 大小为: "+e.size+", Message: "+n);break;case r.QUEUE_ERROR.INVALID_FILETYPE:alert("Error Code: 文件类型不合要求, 文件名为: "+e.name+", 大小为: "+e.size+", Message: "+n);break;default:alert("上传出错Error Code: "+t+", File name: "+e.name+", File size: "+e.size+", Message: "+n)}}catch(a){this.debug(a)}}function f(e){}function m(e){}var g=null;void 0!=t.uploadSuccessed&&(g=t.uploadSuccessed);var v="";void 0!=t.uploadKey&&(v=t.uploadKey);var y=null;void 0!=t.preupload&&(y=t.preupload);var b=0,w=0;this.options=t;this.options.errmsg_box;n("flash_url","http://static.yohobuy.com/admin/js/swfupload/swfupload.swf"),n("upload_url","http://upload.yohobuy.com"),n("file_post_name","Filedata"),n("file_size_limit","2 MB"),n("file_types","*.*"),n("file_types_description","All Files"),n("file_upload_limit",d),n("file_queue_limit",0),n("button_image_url","http://static.yohobuy.com/admin/images/btn_swfupload.png"),n("button_width","104"),n("button_height","20"),n("button_text",'<span class="btn_upload_xzzp">选择本地照片</span>'),n("button_text_style",".btn_upload_xzzp{color:#ffffff}"),n("button_text_left_padding",24),n("button_text_top_padding",0),n("button_window_mode","TRANSPARENT"),n("button_cursor","-2");var C={flash_url:this.options.flash_url,upload_url:this.options.upload_url,file_post_name:this.options.file_post_name,file_size_limit:this.options.file_size_limit,file_types:this.options.file_types,file_types_description:this.options.file_types_description,file_upload_limit:this.options.file_upload_limit,file_queue_limit:this.options.file_queue_limit,prevent_swf_caching:!1,preserve_relative_urls:!1,custom_settings:{},debug:!1,button_image_url:this.options.button_image_url,button_width:this.options.button_width,button_height:this.options.button_height,button_placeholder_id:e,button_text:this.options.button_text,button_text_style:this.options.button_text_style,button_text_left_padding:this.options.button_text_left_padding,button_text_top_padding:this.options.button_text_top_padding,button_window_mode:this.options.button_window_mode,button_cursor:this.options.button_cursor,file_dialog_start_handler:s,file_queued_handler:a,file_queue_error_handler:o,file_dialog_complete_handler:l,upload_start_handler:c,upload_progress_handler:u,upload_error_handler:p,upload_success_handler:h,upload_complete_handler:f,queue_complete_handler:m,button_action:this.options.button_action};new r(C)}var s=e("jquery"),r=e("plugin/swfupload.queue").SWFUpload,d=6;s.fn.extend({qupload:function(e){a(),o(s(this).attr("id"),e)}});var l=0;window.SWFUpload=r}),define("plugin/swfupload.queue",[],function(e,t,n){var a=e("plugin/swfupload").SWFUpload;"function"==typeof a&&(a.queue={},a.prototype.initSettings=function(e){return function(){"function"==typeof e&&e.call(this),this.queueSettings={},this.queueSettings.queue_cancelled_flag=!1,this.queueSettings.queue_upload_count=0,this.queueSettings.user_upload_complete_handler=this.settings.upload_complete_handler,this.queueSettings.user_upload_start_handler=this.settings.upload_start_handler,this.settings.upload_complete_handler=a.queue.uploadCompleteHandler,this.settings.upload_start_handler=a.queue.uploadStartHandler,this.settings.queue_complete_handler=this.settings.queue_complete_handler||null}}(a.prototype.initSettings),a.prototype.startUpload=function(e){this.queueSettings.queue_cancelled_flag=!1,this.callFlash("StartUpload",[e])},a.prototype.cancelQueue=function(){this.queueSettings.queue_cancelled_flag=!0,this.stopUpload();for(var e=this.getStats();e.files_queued>0;)this.cancelUpload(),e=this.getStats()},a.queue.uploadStartHandler=function(e){var t;return"function"==typeof this.queueSettings.user_upload_start_handler&&(t=this.queueSettings.user_upload_start_handler.call(this,e)),t=t!==!1,this.queueSettings.queue_cancelled_flag=!t,t},a.queue.uploadCompleteHandler=function(e){var t,n=this.queueSettings.user_upload_complete_handler;if(e.filestatus===a.FILE_STATUS.COMPLETE&&this.queueSettings.queue_upload_count++,t="function"==typeof n?n.call(this,e)!==!1:e.filestatus!==a.FILE_STATUS.QUEUED){var i=this.getStats();i.files_queued>0&&this.queueSettings.queue_cancelled_flag===!1?this.startUpload():this.queueSettings.queue_cancelled_flag===!1?(this.queueEvent("queue_complete_handler",[this.queueSettings.queue_upload_count]),this.queueSettings.queue_upload_count=0):(this.queueSettings.queue_cancelled_flag=!1,this.queueSettings.queue_upload_count=0)}}),t.SWFUpload=a}),define("plugin/swfupload",[],function(require,exports,module){var SWFUpload;void 0==SWFUpload&&(SWFUpload=function(e){this.initSWFUpload(e)}),SWFUpload.prototype.initSWFUpload=function(e){try{this.customSettings={},this.settings=e,this.eventQueue=[],this.movieName="SWFUpload_"+SWFUpload.movieCount++,this.movieElement=null,SWFUpload.instances[this.movieName]=this,this.initSettings(),this.loadFlash(),this.displayDebugInfo()}catch(t){throw delete SWFUpload.instances[this.movieName],t}},SWFUpload.instances={},SWFUpload.movieCount=0,SWFUpload.version="2.2.0 2009-03-25",SWFUpload.QUEUE_ERROR={QUEUE_LIMIT_EXCEEDED:-100,FILE_EXCEEDS_SIZE_LIMIT:-110,ZERO_BYTE_FILE:-120,INVALID_FILETYPE:-130},SWFUpload.UPLOAD_ERROR={HTTP_ERROR:-200,MISSING_UPLOAD_URL:-210,IO_ERROR:-220,SECURITY_ERROR:-230,UPLOAD_LIMIT_EXCEEDED:-240,UPLOAD_FAILED:-250,SPECIFIED_FILE_ID_NOT_FOUND:-260,FILE_VALIDATION_FAILED:-270,FILE_CANCELLED:-280,UPLOAD_STOPPED:-290},SWFUpload.FILE_STATUS={QUEUED:-1,IN_PROGRESS:-2,ERROR:-3,COMPLETE:-4,CANCELLED:-5},SWFUpload.BUTTON_ACTION={SELECT_FILE:-100,SELECT_FILES:-110,START_UPLOAD:-120},SWFUpload.CURSOR={ARROW:-1,HAND:-2},SWFUpload.WINDOW_MODE={WINDOW:"window",TRANSPARENT:"transparent",OPAQUE:"opaque"},SWFUpload.completeURL=function(e){if("string"!=typeof e||e.match(/^https?:\/\//i)||e.match(/^\//))return e;var t=(window.location.protocol+"//"+window.location.hostname+(window.location.port?":"+window.location.port:""), +window.location.pathname.lastIndexOf("/"));return t<=0?path="/":path=window.location.pathname.substr(0,t)+"/",path+e},SWFUpload.prototype.initSettings=function(){this.ensureDefault=function(e,t){this.settings[e]=void 0==this.settings[e]?t:this.settings[e]},this.ensureDefault("upload_url",""),this.ensureDefault("preserve_relative_urls",!1),this.ensureDefault("file_post_name","Filedata"),this.ensureDefault("post_params",{}),this.ensureDefault("use_query_string",!1),this.ensureDefault("requeue_on_error",!1),this.ensureDefault("http_success",[]),this.ensureDefault("assume_success_timeout",0),this.ensureDefault("file_types","*.*"),this.ensureDefault("file_types_description","All Files"),this.ensureDefault("file_size_limit",0),this.ensureDefault("file_upload_limit",0),this.ensureDefault("file_queue_limit",0),this.ensureDefault("flash_url","swfupload.swf"),this.ensureDefault("prevent_swf_caching",!0),this.ensureDefault("button_image_url",""),this.ensureDefault("button_width",1),this.ensureDefault("button_height",1),this.ensureDefault("button_text",""),this.ensureDefault("button_text_style","color: #000000; font-size: 16pt;"),this.ensureDefault("button_text_top_padding",0),this.ensureDefault("button_text_left_padding",0),this.ensureDefault("button_action",SWFUpload.BUTTON_ACTION.SELECT_FILES),this.ensureDefault("button_disabled",!1),this.ensureDefault("button_placeholder_id",""),this.ensureDefault("button_placeholder",null),this.ensureDefault("button_cursor",SWFUpload.CURSOR.ARROW),this.ensureDefault("button_window_mode",SWFUpload.WINDOW_MODE.WINDOW),this.ensureDefault("debug",!1),this.settings.debug_enabled=this.settings.debug,this.settings.return_upload_start_handler=this.returnUploadStart,this.ensureDefault("swfupload_loaded_handler",null),this.ensureDefault("file_dialog_start_handler",null),this.ensureDefault("file_queued_handler",null),this.ensureDefault("file_queue_error_handler",null),this.ensureDefault("file_dialog_complete_handler",null),this.ensureDefault("upload_start_handler",null),this.ensureDefault("upload_progress_handler",null),this.ensureDefault("upload_error_handler",null),this.ensureDefault("upload_success_handler",null),this.ensureDefault("upload_complete_handler",null),this.ensureDefault("debug_handler",this.debugMessage),this.ensureDefault("custom_settings",{}),this.customSettings=this.settings.custom_settings,this.settings.prevent_swf_caching&&(this.settings.flash_url=this.settings.flash_url+(this.settings.flash_url.indexOf("?")<0?"?":"&")+"preventswfcaching="+(new Date).getTime()),this.settings.preserve_relative_urls||(this.settings.upload_url=SWFUpload.completeURL(this.settings.upload_url),this.settings.button_image_url&&(this.settings.button_image_url=SWFUpload.completeURL(this.settings.button_image_url))),delete this.ensureDefault},SWFUpload.prototype.loadFlash=function(){var e,t;if(null!==document.getElementById(this.movieName))throw"ID "+this.movieName+" is already in use. The Flash Object could not be added";if(e=document.getElementById(this.settings.button_placeholder_id)||this.settings.button_placeholder,void 0==e)throw"Could not find the placeholder element: "+this.settings.button_placeholder_id;t=document.createElement("div"),t.innerHTML=this.getFlashHTML(),e.parentNode.replaceChild(t.firstChild,e),void 0==window[this.movieName]&&(window[this.movieName]=this.getMovieElement())},SWFUpload.prototype.getFlashHTML=function(){return['<object id="',this.movieName,'" type="application/x-shockwave-flash" data="',this.settings.flash_url,'" width="',this.settings.button_width,'" height="',this.settings.button_height,'" class="swfupload">','<param name="wmode" value="',this.settings.button_window_mode,'" />','<param name="movie" value="',this.settings.flash_url,'" />','<param name="quality" value="high" />','<param name="menu" value="false" />','<param name="allowScriptAccess" value="always" />','<param name="flashvars" value="'+this.getFlashVars()+'" />',"</object>"].join("")},SWFUpload.prototype.getFlashVars=function(){var e=this.buildParamString(),t=this.settings.http_success.join(",");return["movieName=",encodeURIComponent(this.movieName),"&uploadURL=",encodeURIComponent(this.settings.upload_url),"&useQueryString=",encodeURIComponent(this.settings.use_query_string),"&requeueOnError=",encodeURIComponent(this.settings.requeue_on_error),"&httpSuccess=",encodeURIComponent(t),"&assumeSuccessTimeout=",encodeURIComponent(this.settings.assume_success_timeout),"&params=",encodeURIComponent(e),"&filePostName=",encodeURIComponent(this.settings.file_post_name),"&fileTypes=",encodeURIComponent(this.settings.file_types),"&fileTypesDescription=",encodeURIComponent(this.settings.file_types_description),"&fileSizeLimit=",encodeURIComponent(this.settings.file_size_limit),"&fileUploadLimit=",encodeURIComponent(this.settings.file_upload_limit),"&fileQueueLimit=",encodeURIComponent(this.settings.file_queue_limit),"&debugEnabled=",encodeURIComponent(this.settings.debug_enabled),"&buttonImageURL=",encodeURIComponent(this.settings.button_image_url),"&buttonWidth=",encodeURIComponent(this.settings.button_width),"&buttonHeight=",encodeURIComponent(this.settings.button_height),"&buttonText=",encodeURIComponent(this.settings.button_text),"&buttonTextTopPadding=",encodeURIComponent(this.settings.button_text_top_padding),"&buttonTextLeftPadding=",encodeURIComponent(this.settings.button_text_left_padding),"&buttonTextStyle=",encodeURIComponent(this.settings.button_text_style),"&buttonAction=",encodeURIComponent(this.settings.button_action),"&buttonDisabled=",encodeURIComponent(this.settings.button_disabled),"&buttonCursor=",encodeURIComponent(this.settings.button_cursor)].join("")},SWFUpload.prototype.getMovieElement=function(){if(void 0==this.movieElement&&(this.movieElement=document.getElementById(this.movieName)),null===this.movieElement)throw"Could not find Flash element";return this.movieElement},SWFUpload.prototype.buildParamString=function(){var e=this.settings.post_params,t=[];if("object"==typeof e)for(var n in e)e.hasOwnProperty(n)&&t.push(encodeURIComponent(n.toString())+"="+encodeURIComponent(e[n].toString()));return t.join("&")},SWFUpload.prototype.destroy=function(){try{this.cancelUpload(null,!1);var e=null;if(e=this.getMovieElement(),e&&"unknown"==typeof e.CallFunction){for(var t in e)try{"function"==typeof e[t]&&(e[t]=null)}catch(n){}try{e.parentNode.removeChild(e)}catch(a){}}return window[this.movieName]=null,SWFUpload.instances[this.movieName]=null,delete SWFUpload.instances[this.movieName],this.movieElement=null,this.settings=null,this.customSettings=null,this.eventQueue=null,this.movieName=null,!0}catch(i){return!1}},SWFUpload.prototype.displayDebugInfo=function(){this.debug(["---SWFUpload Instance Info---\n","Version: ",SWFUpload.version,"\n","Movie Name: ",this.movieName,"\n","Settings:\n","\t","upload_url: ",this.settings.upload_url,"\n","\t","flash_url: ",this.settings.flash_url,"\n","\t","use_query_string: ",this.settings.use_query_string.toString(),"\n","\t","requeue_on_error: ",this.settings.requeue_on_error.toString(),"\n","\t","http_success: ",this.settings.http_success.join(", "),"\n","\t","assume_success_timeout: ",this.settings.assume_success_timeout,"\n","\t","file_post_name: ",this.settings.file_post_name,"\n","\t","post_params: ",this.settings.post_params.toString(),"\n","\t","file_types: ",this.settings.file_types,"\n","\t","file_types_description: ",this.settings.file_types_description,"\n","\t","file_size_limit: ",this.settings.file_size_limit,"\n","\t","file_upload_limit: ",this.settings.file_upload_limit,"\n","\t","file_queue_limit: ",this.settings.file_queue_limit,"\n","\t","debug: ",this.settings.debug.toString(),"\n","\t","prevent_swf_caching: ",this.settings.prevent_swf_caching.toString(),"\n","\t","button_placeholder_id: ",this.settings.button_placeholder_id.toString(),"\n","\t","button_placeholder: ",this.settings.button_placeholder?"Set":"Not Set","\n","\t","button_image_url: ",this.settings.button_image_url.toString(),"\n","\t","button_width: ",this.settings.button_width.toString(),"\n","\t","button_height: ",this.settings.button_height.toString(),"\n","\t","button_text: ",this.settings.button_text.toString(),"\n","\t","button_text_style: ",this.settings.button_text_style.toString(),"\n","\t","button_text_top_padding: ",this.settings.button_text_top_padding.toString(),"\n","\t","button_text_left_padding: ",this.settings.button_text_left_padding.toString(),"\n","\t","button_action: ",this.settings.button_action.toString(),"\n","\t","button_disabled: ",this.settings.button_disabled.toString(),"\n","\t","custom_settings: ",this.settings.custom_settings.toString(),"\n","Event Handlers:\n","\t","swfupload_loaded_handler assigned: ",("function"==typeof this.settings.swfupload_loaded_handler).toString(),"\n","\t","file_dialog_start_handler assigned: ",("function"==typeof this.settings.file_dialog_start_handler).toString(),"\n","\t","file_queued_handler assigned: ",("function"==typeof this.settings.file_queued_handler).toString(),"\n","\t","file_queue_error_handler assigned: ",("function"==typeof this.settings.file_queue_error_handler).toString(),"\n","\t","upload_start_handler assigned: ",("function"==typeof this.settings.upload_start_handler).toString(),"\n","\t","upload_progress_handler assigned: ",("function"==typeof this.settings.upload_progress_handler).toString(),"\n","\t","upload_error_handler assigned: ",("function"==typeof this.settings.upload_error_handler).toString(),"\n","\t","upload_success_handler assigned: ",("function"==typeof this.settings.upload_success_handler).toString(),"\n","\t","upload_complete_handler assigned: ",("function"==typeof this.settings.upload_complete_handler).toString(),"\n","\t","debug_handler assigned: ",("function"==typeof this.settings.debug_handler).toString(),"\n"].join(""))},SWFUpload.prototype.addSetting=function(e,t,n){return void 0==t?this.settings[e]=n:this.settings[e]=t},SWFUpload.prototype.getSetting=function(e){return void 0!=this.settings[e]?this.settings[e]:""},SWFUpload.prototype.callFlash=function(functionName,argumentArray){argumentArray=argumentArray||[];var movieElement=this.getMovieElement(),returnValue,returnString;try{returnString=movieElement.CallFunction('<invoke name="'+functionName+'" returntype="javascript">'+__flash__argumentsToXML(argumentArray,0)+"</invoke>"),returnValue=eval(returnString)}catch(ex){throw"Call to "+functionName+" failed"}return void 0!=returnValue&&"object"==typeof returnValue.post&&(returnValue=this.unescapeFilePostParams(returnValue)),returnValue},SWFUpload.prototype.selectFile=function(){this.callFlash("SelectFile")},SWFUpload.prototype.selectFiles=function(){this.callFlash("SelectFiles")},SWFUpload.prototype.startUpload=function(e){this.callFlash("StartUpload",[e])},SWFUpload.prototype.cancelUpload=function(e,t){t!==!1&&(t=!0),this.callFlash("CancelUpload",[e,t])},SWFUpload.prototype.stopUpload=function(){this.callFlash("StopUpload")},SWFUpload.prototype.getStats=function(){return this.callFlash("GetStats")},SWFUpload.prototype.setStats=function(e){this.callFlash("SetStats",[e])},SWFUpload.prototype.getFile=function(e){return"number"==typeof e?this.callFlash("GetFileByIndex",[e]):this.callFlash("GetFile",[e])},SWFUpload.prototype.addFileParam=function(e,t,n){return this.callFlash("AddFileParam",[e,t,n])},SWFUpload.prototype.removeFileParam=function(e,t){this.callFlash("RemoveFileParam",[e,t])},SWFUpload.prototype.setUploadURL=function(e){this.settings.upload_url=e.toString(),this.callFlash("SetUploadURL",[e])},SWFUpload.prototype.setPostParams=function(e){this.settings.post_params=e,this.callFlash("SetPostParams",[e])},SWFUpload.prototype.addPostParam=function(e,t){this.settings.post_params[e]=t,this.callFlash("SetPostParams",[this.settings.post_params])},SWFUpload.prototype.removePostParam=function(e){delete this.settings.post_params[e],this.callFlash("SetPostParams",[this.settings.post_params])},SWFUpload.prototype.setFileTypes=function(e,t){this.settings.file_types=e,this.settings.file_types_description=t,this.callFlash("SetFileTypes",[e,t])},SWFUpload.prototype.setFileSizeLimit=function(e){this.settings.file_size_limit=e,this.callFlash("SetFileSizeLimit",[e])},SWFUpload.prototype.setFileUploadLimit=function(e){this.settings.file_upload_limit=e,this.callFlash("SetFileUploadLimit",[e])},SWFUpload.prototype.setFileQueueLimit=function(e){this.settings.file_queue_limit=e,this.callFlash("SetFileQueueLimit",[e])},SWFUpload.prototype.setFilePostName=function(e){this.settings.file_post_name=e,this.callFlash("SetFilePostName",[e])},SWFUpload.prototype.setUseQueryString=function(e){this.settings.use_query_string=e,this.callFlash("SetUseQueryString",[e])},SWFUpload.prototype.setRequeueOnError=function(e){this.settings.requeue_on_error=e,this.callFlash("SetRequeueOnError",[e])},SWFUpload.prototype.setHTTPSuccess=function(e){"string"==typeof e&&(e=e.replace(" ","").split(",")),this.settings.http_success=e,this.callFlash("SetHTTPSuccess",[e])},SWFUpload.prototype.setAssumeSuccessTimeout=function(e){this.settings.assume_success_timeout=e,this.callFlash("SetAssumeSuccessTimeout",[e])},SWFUpload.prototype.setDebugEnabled=function(e){this.settings.debug_enabled=e,this.callFlash("SetDebugEnabled",[e])},SWFUpload.prototype.setButtonImageURL=function(e){void 0==e&&(e=""),this.settings.button_image_url=e,this.callFlash("SetButtonImageURL",[e])},SWFUpload.prototype.setButtonDimensions=function(e,t){this.settings.button_width=e,this.settings.button_height=t;var n=this.getMovieElement();void 0!=n&&(n.style.width=e+"px",n.style.height=t+"px"),this.callFlash("SetButtonDimensions",[e,t])},SWFUpload.prototype.setButtonText=function(e){this.settings.button_text=e,this.callFlash("SetButtonText",[e])},SWFUpload.prototype.setButtonTextPadding=function(e,t){this.settings.button_text_top_padding=t,this.settings.button_text_left_padding=e,this.callFlash("SetButtonTextPadding",[e,t])},SWFUpload.prototype.setButtonTextStyle=function(e){this.settings.button_text_style=e,this.callFlash("SetButtonTextStyle",[e])},SWFUpload.prototype.setButtonDisabled=function(e){this.settings.button_disabled=e,this.callFlash("SetButtonDisabled",[e])},SWFUpload.prototype.setButtonAction=function(e){this.settings.button_action=e,this.callFlash("SetButtonAction",[e])},SWFUpload.prototype.setButtonCursor=function(e){this.settings.button_cursor=e,this.callFlash("SetButtonCursor",[e])},SWFUpload.prototype.queueEvent=function(e,t){void 0==t?t=[]:t instanceof Array||(t=[t]);var n=this;if("function"==typeof this.settings[e])this.eventQueue.push(function(){this.settings[e].apply(this,t)}),setTimeout(function(){n.executeNextEvent()},0);else if(null!==this.settings[e])throw"Event handler "+e+" is unknown or is not a function"},SWFUpload.prototype.executeNextEvent=function(){var e=this.eventQueue?this.eventQueue.shift():null;"function"==typeof e&&e.apply(this)},SWFUpload.prototype.unescapeFilePostParams=function(e){var t,n=/[$]([0-9a-f]{4})/i,a={};if(void 0!=e){for(var i in e.post)if(e.post.hasOwnProperty(i)){t=i;for(var o;null!==(o=n.exec(t));)t=t.replace(o[0],String.fromCharCode(parseInt("0x"+o[1],16)));a[t]=e.post[i]}e.post=a}return e},SWFUpload.prototype.testExternalInterface=function(){try{return this.callFlash("TestExternalInterface")}catch(e){return!1}},SWFUpload.prototype.flashReady=function(){var e=this.getMovieElement();return e?(this.cleanUp(e),void this.queueEvent("swfupload_loaded_handler")):void this.debug("Flash called back ready but the flash movie can't be found.")},SWFUpload.prototype.cleanUp=function(e){try{if(this.movieElement&&"unknown"==typeof e.CallFunction){this.debug("Removing Flash functions hooks (this should only run in IE and should prevent memory leaks)");for(var t in e)try{"function"==typeof e[t]&&(e[t]=null)}catch(n){}}}catch(a){}window.__flash__removeCallback=function(e,t){try{e&&(e[t]=null)}catch(n){}}},SWFUpload.prototype.fileDialogStart=function(){this.queueEvent("file_dialog_start_handler")},SWFUpload.prototype.fileQueued=function(e){e=this.unescapeFilePostParams(e),this.queueEvent("file_queued_handler",e)},SWFUpload.prototype.fileQueueError=function(e,t,n){e=this.unescapeFilePostParams(e),this.queueEvent("file_queue_error_handler",[e,t,n])},SWFUpload.prototype.fileDialogComplete=function(e,t,n){this.queueEvent("file_dialog_complete_handler",[e,t,n])},SWFUpload.prototype.uploadStart=function(e){e=this.unescapeFilePostParams(e),this.queueEvent("return_upload_start_handler",e)},SWFUpload.prototype.returnUploadStart=function(e){var t;if("function"==typeof this.settings.upload_start_handler)e=this.unescapeFilePostParams(e),t=this.settings.upload_start_handler.call(this,e);else if(void 0!=this.settings.upload_start_handler)throw"upload_start_handler must be a function";void 0===t&&(t=!0),t=!!t,this.callFlash("ReturnUploadStart",[t])},SWFUpload.prototype.uploadProgress=function(e,t,n){e=this.unescapeFilePostParams(e),this.queueEvent("upload_progress_handler",[e,t,n])},SWFUpload.prototype.uploadError=function(e,t,n){e=this.unescapeFilePostParams(e),this.queueEvent("upload_error_handler",[e,t,n])},SWFUpload.prototype.uploadSuccess=function(e,t,n){e=this.unescapeFilePostParams(e),this.queueEvent("upload_success_handler",[e,t,n])},SWFUpload.prototype.uploadComplete=function(e){e=this.unescapeFilePostParams(e),this.queueEvent("upload_complete_handler",e)},SWFUpload.prototype.debug=function(e){this.queueEvent("debug_handler",e)},SWFUpload.prototype.debugMessage=function(e){if(this.settings.debug){var t,n=[];if("object"==typeof e&&"string"==typeof e.name&&"string"==typeof e.message){for(var a in e)e.hasOwnProperty(a)&&n.push(a+": "+e[a]);t=n.join("\n")||"",n=t.split("\n"),t="EXCEPTION: "+n.join("\nEXCEPTION: "),SWFUpload.Console.writeLine(t)}else SWFUpload.Console.writeLine(e)}},SWFUpload.Console={},SWFUpload.Console.writeLine=function(e){var t,n;try{t=document.getElementById("SWFUpload_Console"),t||(n=document.createElement("form"),document.getElementsByTagName("body")[0].appendChild(n),t=document.createElement("textarea"),t.id="SWFUpload_Console",t.style.fontFamily="monospace",t.setAttribute("wrap","off"),t.wrap="off",t.style.overflow="auto",t.style.width="700px",t.style.height="350px",t.style.margin="5px",n.appendChild(t)),t.value+=e+"\n",t.scrollTop=t.scrollHeight-t.clientHeight}catch(a){alert("Exception: "+a.name+" Message: "+a.message)}},exports.SWFUpload=SWFUpload}),define("js/home/comment",["jquery"],function(e,t,n){var a,i=e("jquery"),o=i(".comment-table"),s=o.find(".remark-btn"),r=i("#comment-dialog-widget"),d=r.find(".dialog-titlebar"),l=r.find("textarea"),c=i(document).width(),u=i(document).height(),h=i(window).height(),p={canmove:!1,offset:{},maxtop:0,maxleft:0},f={};s.each(function(){var e=i(this).next(),t=e.data(),n=t.orderid;f[n]={},f[n].productSkn=t.productskn,f[n].productId=t.productid,f[n].goodsId=t.goodsid,f[n].orderId=t.orderid,f[n].erpSkuId=t.erpskuid,e.remove(),i(this).data("code",n)}),s.click(function(){var e=i(document).scrollTop();a=i(this),l.val(""),r.removeClass("hide").css({top:e+(h-r.outerHeight())/2,left:(c-r.outerWidth())/2})}),d.bind("mousedown",function(e){i(e.target).hasClass("dialog-close-btn")||(p.canmove=!0,p.offset={x:e.offsetX,y:e.offsetY},p.maxtop=u-r.outerHeight(),p.maxleft=c-r.outerWidth())}),i(document).mousemove(function(e){var t,n;p.canmove&&(t=e.pageY-p.offset.y,n=e.pageX-p.offset.x,t=t<p.maxtop?t:p.maxtop,n=n<p.maxleft?n:p.maxleft,r.css({top:t>0?t:0,left:n>0?n:0}))}).mouseup(function(e){p.canmove=!1}),r.on("click",".dialog-save-btn",function(){var e,t=i.trim(l.val());return""===t?void alert("请添加评论内容"):void(a.length&&(e=f[a.data().code],e.content=t,i.ajax({type:"POST",url:"/home/comment/saveComment",data:e}).then(function(e){var n=a.parent();200===e.code?(n.prev().text(t),n.html('<span class="remarked">已评论!</span>'),a.length=0,r.addClass("hide")):alert(e.message)})))}),r.on("click",".dialog-close-btn",function(){a.length=0,r.addClass("hide")})}),define("js/home/complaints",["jquery"],function(e,t,n){function a(){return!!m||(m=!0,setTimeout(function(){m=!1},1e3),!1)}function i(e){var t=e.dom.siblings(".option-tip"),n=d.trim(e.dom.val()),a=n.length;return e.min&&a<e.min?(t.text(e.onmin),!1):e.max&&a>e.max?(t.text(e.onmax),!1):e.regexp&&!e.regexp.test(n)?(t.text(e.onerror),!1):(t.text("输入正确"),!0)}function o(){var e,t={};return d.each(g,function(n,a){i(a)?t[n]=d.trim(a.dom.val()):e||(e=n,a.dom.focus())}),t.complaintsType=h.val(),!e&&t}function s(){var e=o();!a()&&e&&d.ajax({type:"POST",url:"/home/complaints/addcomplaints",data:e}).then(function(e){m=!1,200===e.code?window.location.reload():alert(e.message)})}function r(e,t){var n=t;a()||d.ajax({type:"POST",url:"/home/complaints/cancelcomplaints",data:{id:e}}).then(function(e){m=!1,200===e.code?(n.prev().remove(),n.text("问题已撤销")):alert(e.message)})}var d=e("jquery"),l=d(".cancel-btn"),c=d("#title"),u=d("#customer"),h=d("#complaintsType"),p=d("#orderCode"),f=d("#content"),m=!1,g={title:{dom:c,min:1,max:10,onshow:"请输入您的投诉主题",onfocus:"请输入主题",onmin:"投诉主题不能为空",onmax:"输入投诉主题不能超过10个字"},customer:{dom:u,min:1,max:10,onshow:"请填写您要投诉的对象,比如:客服00*号、发货员...",onfocus:"请填写您要投诉的对象",onmin:"投诉对象不能为空",onmax:"输入投诉对象不能超过10个字"},orderCode:{dom:p,regexp:/^([0-9,]{9,})$/,onshow:"如果多个是多个订单号,请用英文逗号隔开,没有则不填",onfocus:"请输入订单号",onerror:"您输入的订单格式不对,如果多个是多个订单号,请用英文逗号隔开"},content:{dom:f,min:1,max:130,onshow:"输入您投诉的内容",onfocus:"请输入您投诉的内容",onmin:"投诉内容不能为空",onmax:"输入的投诉内容不能超过130个字"}};d.each(g,function(e,t){t.dom.focus(function(){t.dom.siblings(".option-tip").text(t.onfocus)}).blur(function(){i(t)})}),d("#complaint-submit").click(function(){s()}),l.click(function(){var e=d(this).data();e&&e.id&&r(e.id,d(this).parent())})}),define("js/home/message",["jquery"],function(e,t,n){function a(){var e=!1;o=r.find(".msg-check:checked"),c=[],o.each(function(){var t=s(this).parent().parent();c.push(s(this).val()),t.hasClass("new-msg")&&(e=!0)}),e?l.addClass("has-new"):l.removeClass("has-new")}function i(e,t){var n;switch(e){case"del":n="/home/message/delMessage";break;case"read":n="/home/message/readMessage"}s.ajax({type:"GET",url:n,data:t}).then(function(t){t.code?200===t.code?"read"===e&&(o.removeAttr("checked"),o.parent().parent().removeClass("new-msg"),a()):alert(t.message):"del"===e&&(r.html(t),d=r.find(".msg-check"),l=r.find(".read-choose-btn"))})}var o,s=e("jquery"),r=s("#message-main-container"),d=r.find(".msg-check"),l=r.find(".read-choose-btn"),c=[];e("js/home/message-content"),r.on("change",'input[type="checkbox"]',function(){var e=s(this).attr("checked");s(this).hasClass("choose-all")&&("checked"===e?d.attr("checked",!0):d.removeAttr("checked")),a()}),r.on("click",".del-btn",function(){confirm("您确定要删除这条短消息?")&&i("del",s(this).data())}),r.on("click",".del-choose-btn",function(){return c.length?void(confirm("确定要删除您选中的消息")&&i("del",{id:c.join(",")})):void alert("请选中您要删除的消息")}),r.on("click",".read-choose-btn",function(){s(this).hasClass("has-new")&&i("read",{id:c.join(",")})})}),define("js/home/message-content",["jquery"],function(e,t,n){var a=e("jquery"),i=a(".pick-coupon-btn"),o=!1;i.click(function(){var e=a(this).data();o||(o=!0,a.ajax({type:"GET",url:"/home/message/pickCoupon",data:e}).then(function(e){var t=e.message;200===e.code&&(t="领取成功",a(this).removeClass("pick-coupon-btn")),o=!1,alert(t)}))})}),define("js/home/edit",["jquery","handlebars","source-map"],function(e,t,n){function a(){var e=u("#nickname").val().length,t=u("#username").val().length,n=u('input[name="gender"]'),a=u("#year"),i=u("#month"),o=u("#day");return 0===e?(alert("请输入昵称"),!1):0===t?(alert("请输入用户名"),!1):e>=20?(alert("昵称最长为20个字符"),!1):n.is(":checked")?"0"!==a.val()&&"0"!==i.val()&&"0"!==o.val()||(alert("请选择出生年月日"),!1):(alert("请选择性别"),!1)}function i(){return"0"===u("#province").val()||"0"===u("#city").val()||"0"===u("#areaCode").val()?(alert("请选择所在区域"),!1):null===u("#province").val()||null===u("#city").val()||null===u("#areaCode").val()?(alert("请选择所在区域"),!1):0===u("#phone").val().length&&0===u("#mobile").val().length?(alert("电话和手机号码不能同时为空,请填写!"),!1):0===u("#fullAddress").val().length?(alert("请填写地址"),!1):!(0===u("#zipCode").val().length||u("#zipCode").val().length<2)||(alert("请填写邮编"),!1)}function o(){return!!u(".user-habbit-info input").is(":checked")||(alert("请填写购物&着装习惯"),!1)}function s(){return""!==u("#likebrand").val()||(alert("请选择品牌"),!1)}function r(e){var t=u("#likebrand").val();return 0!==parseInt(e)&&(u("#likebrand").val(t.replace(","+e+",",",")),u("#pp-"+e).attr("checked",!1),void u("#brand-"+e).remove())}function d(e,t,n){var a='<li id="brand-'+t+'">'+n+'<a href="javascript:void(0);" class="btn-del"></a></li>',i=u("#brand-"+t).html(),o=u("#likebrand").val(),s=u("#brand-box");return 0!==parseInt(t)&&("undefined"!=typeof e&&""!==e&&e.checked===!1?(r(t),!1):i?(alert("您已经选择了该品牌."),!1):(s.append(a),s.find("li>a").off("click").on("click",function(){r(u(this).closest("li").attr("id").substr(6))}),o+=t+",",void u("#likebrand").val(o)))}function l(){var e={brandName:u("#keywords").val()};u.post("/home/user/isbrandname",e,function(e){return 200===e.code?e.data.id&&e.data.brand_name?(d("",e.data.id,e.data.brand_name),u("#keywords").val(""),!0):(alert("网络异常,请重试"),!1):(alert(e.message),!1)},"json")}function c(e,t){var n=u("#"+t).closest("form");u.post(e,n.serialize(),function(e){return 200===e.code?(alert(e.message),setTimeout(function(){n.closest("div").next().find("h2").click()},100),!0):(alert(e.message),!1)},"json")}var u=e("jquery"),h=u(".userinfo-edit form"),p=e("js/home/common-address"),f={init:function(e,t,n){var a=u("#year"),i=u("#month"),o=u("#day"),s=this;this.createDay(a.val(),i.val(),o.val()),a.on("change",function(){s.update()}),i.on("change",function(){s.update()})},update:function(){this.createDay(u("#year").val(),u("#month").val(),u("#day").val())},createDay:function(e,t,n){var a,i,o='<select name="day" id="day">',s=new Array(4,6,9,11),r=31;if(e=parseInt(e),t=parseInt(t),0===e&&(e=0),0===t&&(t=0),u("#year").val(e.toString()),u("#month").val(t.toString()),o+='<option value="0">日</option>',e>0&&t>0)for(u.inArray(t,s)!==-1?r=30:2===t&&(r=28,0!==e%4||e%100===0&&e%400!==0||(r=29)),i=1;i<=r;i++)a="",parseInt(n)===i&&(a="selected"),o+='<option value="'+i+'" '+a+">"+i+"</option>";o+="</select>",u("#day").replaceWith(o)}};u(".userinfo-edit h2").on("click",function(){var e=u(this).next();h.slideUp("fast"),"none"===e.css("display")?e.slideDown("slow"):null}),u("#base-info").on("click",function(){a()&&c("/home/user/edituserinfo/","base-info")}),u("#contact-info").on("click",function(){i()&&c("/home/user/editusercontactinfo/","contact-info")}),u("#shopping-info").on("click",function(){o()&&c("/home/user/edituserhabitsinfo/","shopping-info")}),u("#favorite-brand").on("click",function(){s()&&u.ajax({url:"/home/user/edituserlikebrand/",type:"post",datatype:"json",data:{brand:u("#likebrand").val()},success:function(e){return 200===e.code?(alert(e.message),!0):(alert(e.message),!1)},error:function(e){alert("网络异常")}})}),u("#add-brand-btn").on("click",function(){l()}),u('.user-favorite-info input[type="checkbox"]').on("click",function(){var e=u(this);d(this,e.attr("id").substr(3),e.parent().text())}),function(){var e=u("#brand-box li");e.length>0&&e.find("a").on("click",function(){r(u(this).closest("li").attr("id").substr(6))})}(),f.init(),function(){u("#province").val()?p.bindAreaChange({provinceDomId:"province",cityDomId:"city",areaDomId:"areaCode"}):p.loadAllData(0,{provinceDomId:"province",cityDomId:"city",areaDomId:"areaCode"})}()}),define("js/home/gift",["jquery","handlebars","source-map"],function(e,t,n){function a(){var e=new Date;return o("#imgcode").attr("src","/passport/images?t="+e.getTime()),!1}var i,o=e("jquery"),s=e("js/common/dialog"),r=s.Alert,d=o(".giftCardCode").find(".gift-error"),l=o(".captchaCode").find(".gift-error"),c="",u="",h=1,p={suc:[!1,!1,!1,!1],checkCard:function(e){if(c=/^[0-9a-zA-Z]{4,4}$/,c.test(o("#giftCardCode"+e).val())){for(h=1;h<=3;h++)c.test(o("#giftCardCode"+h).val())?(d.html(""),p.suc[h]=!0):(d.html("您输入的兑换码有误,兑换码必须为数字或字母,每个文本框里只能输入四个兑换码!"),p.suc[h]=!1);3!==e&&o("#giftCardCode"+(e+1)).focus()}else d.html("您输入的兑换码有误,兑换码必须为数字或字母,每个文本框里只能输入四个兑换码!"),p.suc[e-1]=!1},bindGiftCardForm:function(){o("#giftCardCode1").bind("blur keyup",function(){p.checkCard(1)}),o("#giftCardCode2").bind("blur keyup",function(){p.checkCard(2)}),o("#giftCardCode3").bind("blur keyup",function(){p.checkCard(3)}),o("#captchaCode").bind("blur keyup",function(){u=o("#captchaCode").val(),u.length<=0?(l.html("请输入验证码!"),p.suc[3]=!1):(l.html(""),p.suc[3]=!0)})},checkForm:function(){return c.test(o("#giftCardCode1").val())&&c.test(o("#giftCardCode2").val())&&c.test(o("#giftCardCode3").val())?""!==o.trim(o("#captchaCode").val())||(l.html("请输入验证码!"),!1):(d.html("您输入的兑换码有误,兑换码必须为数字或字母,每个文本框里只能输入四个兑换码!"),!1)}};o("#sub-gift").on("click",function(){return!!p.checkForm()&&void o.post("/home/gift/exchange",o("#giftCardForm").serialize(),function(e){200===e.code?window.location.href="/home/gift?type=1":400===e.code?(i=new r(e.message),i.show(),a()):window.location.href="/home/gift?type=2"},"json")}),o(document).on("click","#imgcode,.check-img",function(){a()}),o(function(){a(),p.bindGiftCardForm()})}),define("js/home/validate",["jquery","handlebars","source-map"],function(e,t,n){function a(e,t){return e.$checkInfo.html('<div class="form-error">'+t+"</div>"),"code"!==e.dom.attr("name")&&"verifyCode"!==e.dom.attr("name")&&e.dom.addClass("input-error"),!1}function i(e){return e.$checkInfo.html('<div class="form-success"> </div>'),"code"!==e.dom.attr("name")&&"verifyCode"!==e.dom.attr("name")&&e.dom.removeClass("input-error"),!0}function o(e){var t;return v.post(e.url,e.data,function(n){"undefined"!=typeof n.code&&200===n.code?t=i(e.opt):(e.txt=""!==e.txt&&null!==e.txt?e.txt:n.message,t=a(e.opt,e.txt))}),t}function s(e){var t=e.val(),n=t.length,s=e.parent(),r=s.find(".check-info"),d=e.attr("name"),l="",c="",u="",h={$checkInfo:r,dom:e},p={opt:h};return r.html(""),"password"===d?0===n?a(h,"密码不能为空!"):(v.extend(p,{url:"/home/account/checkpassword",data:{password:t},txt:"密码错误!"}),o(p)):"verifyCode"===d?(v.extend(p,{url:"/home/account/checkverifycode",data:{verifyCode:t},txt:"验证码错误!"}),o(p)):"email"===d?(l=b.emailRegx,null===t.match(l)?a(h,"邮箱错误!"):(v.extend(p,{url:"/home/account/checkemail",data:{email:t},txt:""}),o(p))):"mobile"===d?(l=b.phoneRegx,c=t.split("-"),l=1===c.length?t.match("^1[35847]{1}[0-9]{9}"):l["+"+c[0]].test(c[1]),0===n?a(h,"手机号不能为空!"):null!==l&&l?(v.extend(p,{url:"/home/account/checkmobile",data:{mobile:t},txt:"手机号已经存在!"}),o(p)):a(h,"手机号错误!")):"newPwd"===d?(l=b.pwdValidateRegx,l.test(t)?i(h):a(h,"建议6~20个数字+字母组合!")):"confirm_password"===d?v("#newPwd").val()!==t?a(h,"两次密码不一致!"):i(h):"code"!==d||(u=v("#realAccount").length>0?v("#realAccount").val():v("#mobilevalue").val(),""!==t?(v.extend(p,{url:"/home/account/checkmobilemsg",data:{mobile:u,code:v("#inputcode").val()},txt:"验证码错误!"}),o(p)):void 0)}function r(){var e=[];return k=!1,v.each(_,function(t,n){e[t]=s(v(n))}),!(e.indexOf(!1)>=0)||(k=!0,!1)}function d(){var e=(new Date).getTime();v("#the-code-img").attr("src","/passport/images?len=6&time="+e)}function l(){var e="";j>0?(e="重新发送"+j+"秒",v("#sendButton").text(e),j-=1):(j=60,v("#sendButton").text("发送验证码"),clearInterval(m),x=!0)}function c(e){var t=v("#inputcode"),n=t.parent().find("check-info");v.post("/home/account/sendmobilemsg",{mobile:e},function(e){"undefined"!=typeof e.code&&200===e.code?(x=!1,m=setInterval(function(){l()},1e3),n.html("")):n.html('<div class="form-error">验证码发送失败</div>')})}function u(){var e,t,n,a=v("#mobilevalue");if(a.length>0?(e=a.next(),t=a.val(),n=t.split("-"),n=1===n.length?t.match("^1[35847]{1}[0-9]{9}"):b.phoneRegx["+"+n[0]].test(n[1])):t=v("#realAccount").val(), +!x)return!1;if(a.length>0){if(null===n||!n)return e.html('<div class="form-error">手机号错误!</div>'),a.addClass("input-error"),!1;e.find(".form-success").length>0&&c(t)}v("#realAccount").length>0&&c(t)}function h(){window.location.href="/home/account"}function p(e,t){v.post(e.url,e.data,function(n){return 200!==n.code?(k=!0,g=new w(n.message),g.show(),!1):(t&&(e.hrefUrl+="&checkCode="+n.data),void(window.location.href=e.hrefUrl))},"json")}function f(){var e=v(".progress-bar .cur").index(),t=v("#verifyType").val(),n="",a={};v(".email").length>0&&(n="email"),v(".mobile").length>0&&(n="mobile"),v(".userpwd").length>0&&(n="userpwd"),0===e?"1"===t?(a={url:"/home/account/verifypassword",data:v("#pwdform").serialize(),hrefUrl:"/home/account/"+n+"?step=2"},p(a,"step1")):"2"===t?(a={url:"/home/account/sendemail",data:{checkType:n,email:v("#realAccount").val()},hrefUrl:"/home/account/sendemailsuccess?email="+v("#realAccount").val()+"&type=1&checkType="+n},p(a)):(a={url:"/home/account/checkmobilemsg",data:{mobile:v("#realAccount").val(),code:v("#inputcode").val()},hrefUrl:"/home/account/"+n+"?step=2"},p(a,"step1")):1===e&&("userpwd"===n?(a={url:"/home/account/modifypwd",data:v("#pwdform").serialize(),hrefUrl:"/home/account/userpwd?step=3&success=true"},p(a)):"email"===n?(a={url:"/home/account/modifyemail",data:{email:v("#email").val()},hrefUrl:"/home/account/sendemailsuccess?email="+v("#email").val()+"&type=2&checkType=email"},p(a)):(a={url:"/home/account/modifymobile",data:{mobile:v("#mobilevalue").val(),code:v("#inputcode").val()},hrefUrl:"/home/account/mobile?step=3&success=true"},p(a)))}var m,g,v=e("jquery"),y=e("js/common/dialog"),b=e("js/passport/mail-phone-regx"),w=y.Alert,C=v(".check-user"),_=C.find("input").not("input[type=button],input[type=hidden],input[type=reset]"),x=!0,k=!0,j=60;v.ajaxSetup({async:!1}),Array.prototype.indexOf||(Array.prototype.indexOf=function(e,t){var n,a;for(n=t||0,a=this.length;n<a;n++)if(this[n]===e)return n;return-1}),v(function(){var e=null;v(".res-info").length>0&&(e=setTimeout(function(){h()},5e3)),d(),v("#pwdform").submit(function(){return!1}),_.blur(function(){s(v(this))}),v(".sub-btn").on("click",function(){return k!==!1&&(!!r()&&void f())}),v("input[name=verifyCode]").keydown(function(e){if(13===e.keyCode){if(k===!1)return!1;if(!r())return!1;f()}}),v(".the-code").on("click",function(){d()}),v("#send-mobile-code").on("click",function(){u()}),v("#newPwd").length>0&&v("#newPwd").on("input",function(e){var t=v("input[name=confirm_password]"),n=t.val(),i=v("#newPwd").val(),o={dom:t,$checkInfo:t.next()};n.length>0&&i!==n&&a(o,"两次密码不一致!")})})}),define("js/home/address",["jquery","handlebars","source-map"],function(e,t,n){function a(e){var t=e.parents(".address-content"),n=t.attr("addressId");return n}function i(e){var t="";"addressName"===e.inputName&&(t="真实姓名在2到5个汉字之间"),"address"===e.inputName&&(t="请填写详细地址"),"zipCode"===e.inputName&&(t="请输入收货人所在地邮编号"),"phone"===e.inputName&&(t="格式例如:0577-88888888"),"mobile"===e.inputName&&(t="请输入手机号,如1360000000"),"email"===e.inputName&&(t="用来接收订单提醒邮件,便于您及时了解订单状态"),e.$checkInfo.removeClass("form-prompt").addClass("form-focus").html(t)}function o(e){var t="",n=!0,a="输入正确",i="form-info form-success",o=e.val;return"addressName"===e.inputName&&(t=/^[\u4e00-\u9fa5]{2,5}$/,e.len<1||e.len>12?(a="真实姓名在2到5个汉字之间,请确认",n=!1,i="form-info form-error"):t.test(e.val)===!1&&(a="真实姓名至少2个中文,最多5个中文",n=!1,i="form-info form-error")),"address"===e.inputName&&e.len<2&&(a="请填写详细地址",n=!1,i="form-info form-error"),"zipCode"===e.inputName&&(t=/^[0-9]{6}$/,0===e.len?(a="请输入收货人所在地邮编号",n=!1,i="form-info form-error"):t.test(e.val)===!1&&(a="你输入的邮编式不正确",n=!1,i="form-info form-error")),"phone"===e.inputName&&(t=/^(0[0-9]{2,3}\-)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$/,0===e.len?(a="你真的不想留联系电话了吗?",n=!0,i="form-info form-success"):t.test(e.val)===!1&&(a="你输入的联系电话格式不正确",n=!1,i="form-info form-error")),"mobile"===e.inputName&&(t=/^1[3|4|5|8|7][0-9]{9}$/,11!==e.len?(a="手机号码必须是11位的,请确认",n=!1,i="form-info form-error"):t.test(e.val)===!1&&(a="您输入的手机号格式不正确",n=!1,i="form-info form-error")),"email"===e.inputName&&(t="^[a-z0-9_-]+(.[_a-z0-9-]+)*@([_a-z0-9-]+.)+([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|jobs|mil|museum|name|nato|net|org|pro|travel)$",null!==o.match(t)&&0!==e.len||(a="你输入的邮件地址格式不正确",n=!1,i="form-info form-error")),e.$checkInfo.removeClass().addClass(i).html(a),n}function s(e,t){var n=e.val(),a=e.parent(),s={val:n,len:n.length,$domParent:e.parent(),$checkInfo:a.find("span"),inputName:e.attr("name")};if("focus"===t&&i(s),"blur"===t)return o(s)}function r(){var e=c("#phone").next(),t=c("#mobile").next();return t.hasClass("form-success")&&!e.hasClass("form-error")&&0===c("#phone").val().length?(e.removeClass().addClass("form-prompt form-info").html("请输入你的联系电话,可以为空哦"),!0):"输入正确"!==e.html()||t.hasClass("form-error")||0!==c("#mobile").val().length?t.hasClass("form-success")||"输入正确"===e.html()?void 0:(e.removeClass().addClass("form-success form-info").html("你真的不想留联系电话了吗?"),t.removeClass().addClass("form-prompt form-info").html("填写手机号便于接收发货和收货通知"),c("#mobile").focus(),!1):(t.removeClass().addClass("form-prompt form-info").html("填写手机号便于接收发货和收货通知"),!0)}function d(){var e=[];return c.each(g,function(t,n){e.push(s(c(n),"blur"))}),e.push(r()),c.each(c(".form-info"),function(e,t){if(c(t).hasClass("form-error"))return c(t).prev().focus(),!1}),e.indexOf(!1)===-1}var l,c=e("jquery"),u=e("js/home/common-address"),h=e("js/common/dialog"),p=h.Alert,f=c(".address-del"),m=c(".address-modify"),g=c(".input-1"),v={evil:function(e){var t=Function;return new t("return "+e)()},clearAddrForm:function(){c("#addressName").val(""),c("#address").val(""),c("#zipCode").val(""),c("#phone").val(""),c("#mobile").val(""),c("#email").val(""),c("#addrId").val(0),c("#province").val(0),c("#city").val(0),c("#areaCode").val(0).hide(),c("#btn-reset").hide(),c("#form-status").html("添加新地址")},editAddr:function(e){c.getJSON("/home/address/editAddress?id="+e,function(e){200===e.code&&(c("#form-status").html("修改地址"),c("#addressName").val(e.data.consignee),u.loadAllData(e.data.area_code,{}),c("#address").val(e.data.address),c("#email").val(e.data.email),c("#phone").val(e.data.phone),c("#mobile").val(e.data.mobile),c("#zipCode").val(e.data.zip_code),c("#addrId").val(e.data.address_id),c("#btn-reset").show())})},saveAddr:function(e){c.post("/home/address/saveAddress",c("#address-form").serialize(),function(e){200===e.code?location.reload():(l=new p(e.message),l.show())},"json")},delAddr:function(e){c.getJSON("/home/address/delAddress?id="+e,function(t){200===t.code?(c(".address-list").find("li[addressId="+e+"]").remove(),e===c("#addrId").val()&&v.clearAddrForm()):(l=new p("删除失败"),l.show())})},setDefaultAddr:function(e){var t=c(".address-list").find(".default-btn"),n=c(".address-list").find(".default-btn").parents("li"),a=c(".address-list").find("li[addressId="+e+"]"),i=a.find(".set-default-btn");c.getJSON("/home/address/defaultAddress?id="+e,function(e){200===e.code?(t.attr("class","btn-c3 set-default-btn"),n.removeClass("preferred"),t.html("<span>设为常用地址</span>"),i.attr("class","btn-c2 default-btn"),t.html("<span>设为常用地址</span>"),a.addClass("preferred")):(l=new p("设置失败"),l.show())})}};Array.prototype.indexOf||(Array.prototype.indexOf=function(e,t){var n,a;for(n=t||0,a=this.length;n<a;n++)if(this[n]===e)return n;return-1}),c(document).on("click",".set-default-btn",function(){var e=a(c(this));v.setDefaultAddr(e)}),f.on("click",function(){var e=a(c(this));v.delAddr(e)}),m.on("click",function(){var e=a(c(this));v.editAddr(e),c("#btn-reset").show()}),g.on("focus",function(){s(c(this),"focus")}),g.on("blur",function(){s(c(this),"blur")}),c("#address-info").on("click",function(){d()&&v.saveAddr()}),c(document).ready(function(){u.loadAllData(0,{provinceDomId:"province",cityDomId:"city",areaDomId:"areaCode"}),v.clearAddrForm(),c("#btn-reset").click(function(){v.clearAddrForm()})})}),define("js/help/entry",["jquery","handlebars","source-map"],function(e,t,n){e("js/help/search")}),define("js/help/search",["jquery","handlebars","source-map"],function(e,t,n){var a=e("jquery"),i=e("handlebars"),o=a(".search-content"),s=a("#help-dialog-widget"),r=a("#help-dialog-bg"),d=a(document).width(),l=a(window).height(),c='<div class="dialog-titlebar"><span class="dialog-close-btn"></span></div><div class="dialog-content"><p class="ask">问:<br>{{ask}}</p><p class="answer">答:<br>{{answer}}</p></div>',u=i.compile(c);o.on("click",".faqs",function(){var e=a(this).data(),t=a(document).scrollTop();s.html(u(e)).removeClass("hide"),r.removeClass("hide"),s.html(u(e)).css({top:t+(l-s.outerHeight())/2,left:(d-s.outerWidth())/2})}),s.on("click",".dialog-close-btn",function(){s.addClass("hide"),r.addClass("hide")})}),define("js/order/ensure",["jquery","handlebars","source-map"],function(e,t,n){function a(e,t,n,a){var i=1,o=1,s=0,r=!1;e.click(function(){r||("0px"===n.css("left")?s=0:(s+=o*a,r=!0),n.stop().animate({left:s},300,function(){r=!1}))}),t.click(function(){var e=n.parent().width()-n.width()+"px";r||(n.css("left")===e?n.css("left",e):(s+=-i*a,r=!0),n.stop().animate({left:s},300,function(){r=!1}))})}var i=e("jquery"),o=e("js/order/address"),s=e("js/common/dialog"),r=function(e,t){var n=0,a=e.toString(),i=t.toString();try{n+=a.split(".")[1].length}catch(o){}try{n+=i.split(".")[1].length}catch(o){}return Number(a.replace(".",""))*Number(i.replace(".",""))/Math.pow(10,n)},d={Data:{product:0,activity:0,carriage:0,juan:0,yohocoin:0},UI:{e:{$pan:i(".pan"),$jc:i("#juancode"),$bp:i("#biprice"),$statistics:i("li",".play-total"),$tobi:i("p em",".play-bi-pan .play-pan"),$cancel:i(".cancel",".btn-group"),$total:i("em",".to-play"),$tbody:i("table tbody",".pay-wapper"),$orderSelectionSave:i(".address-list h2 span"),$addAddress:i(".add-address"),$addressManage:i(".address-manage"),$spanPayTypeLegend:i("span.pay-type-legend"),$supportType:i(".support-type"),$existAddressListWrap:i(".exist-address-list"),$existAddressList:i(".exist-address-list").find("li"),$existAddress:i(".exist-address-list").find('input[name="exist-address"]'),$payTimeModify:i(".pay-time-modify"),$switchPayModify:i(".switch-pay-modify"),$modityPayInfo:i(".modity-pay-info"),$payTotal:i(".play-total"),$toPay:i(".to-play em"),$redEnvelopes:i(".red-envelopes"),$useEnvelopes:i(".use-envelopes"),$hasEnvelopes:i(".has-envelopes span"),$useEnvelopesInput:i(".use-envelopes").find("input"),$expressFee:i(".express-fee")},init:function(){var e=this.e,t=d.Data,n=d.Common;e.$tbody.find("tr").each(function(a){var o=i(this).find("td"),s=e.$tbody.find("tr").length,r=parseFloat(o.eq(1).html())*parseInt(o.eq(3).html());o.eq(1).html("¥"+o.eq(1).html()),o.hasClass("xforone")?(o.eq(4).find("del").html("¥"+n.strFixed(r)),r=0):o.eq(4).html("¥"+n.strFixed(r)),t.product+=r,a?o.last().remove():o.last().attr("rowspan",s),a===s-1&&e.$tbody.find("tr").eq(0).find("td").last().html("<strong>¥"+n.strFixed(t.product)+"</strong>")}),e.$pan.find("dt").click(function(){var e=i(this).parent("dl.pan");e.find("dd").is(":hidden")?(n.winShow(e),i(this).addClass("active")):(n.winHide(e),i(this).removeClass("active"))}),e.$orderSelectionSave.click(function(){var t=0,n=i(".exist-address-list li"),a=n.length,o=0;if(i(this).attr("expand")){for(t=0;t<a;t++)n.eq(t).hasClass("address_select")&&o++,n.eq(t).hasClass("address_select")||n.eq(t).addClass("hide");0===o&&(i('.exist-address-list li:not(".use-new-address")').removeClass("hide"),i(".use-new-address input").removeAttr("checked")),i(".address-list-inner li.address_select input").attr("checked","checked"),i(".address-list-inner li").removeClass("active"),i(".address-list-inner li.address_select").addClass("active"),i(this).removeAttr("expand").text("[修改]"),i(".save-btn").addClass("hide"),e.$existAddressListWrap.removeClass("address-expand"),e.$addressManage.addClass("hide")}else i(this).attr("expand","expand").text("[不保存并关闭]"),i(".exist-address-list li").removeClass("hide"),i(".save-btn").removeClass("hide"),e.$existAddressListWrap.addClass("address-expand"),1===a&&e.$addressManage.removeClass("hide")}),e.$switchPayModify.click(function(){e.$payTimeModify.hasClass("hide")?(e.$payTimeModify.removeClass("hide"),e.$modityPayInfo.addClass("hide"),i(this).text("[不保存并关闭]")):(e.$payTimeModify.addClass("hide"),e.$modityPayInfo.removeClass("hide"),i(this).text("[修改]"),e.$payTimeModify.find('input[name="pay-type"]').filter(".checked").attr("checked","checked"),e.$payTimeModify.find('input[name="pay-time-radio"]').filter(".checked").attr("checked","checked"),e.$payTimeModify.find('input[name="call-me"]').filter(".checked").attr("checked","checked"))}),e.$spanPayTypeLegend.click(function(){i(this).toggleClass("active"),e.$supportType.toggleClass("hide")}),i(document).on("click",".exist-address-list li",function(){i(".exist-address-list li").removeClass("active"),i(this).addClass("active"),i(this).find("input").attr("checked","checked"),i(this).hasClass("use-new-address")&&(e.$addressManage.removeClass("hide"),i(".address-manage input").val(""),i(".save-btn").removeAttr("data-id"),o.newAddress(0,"000000"))})},render:function(e,t){var n,a,o,s=this.e,d=e.promotion_formula_list,l=e.package_list,c="",u="";for(a=t?t:"",n=0;n<d.length;n++)"优惠券:"===d[n].promotion&&(d[n].promotion=(a?a:"优惠券")+'<span class="juan-modify">[修改]</span>:'),"YOHO币:"===d[n].promotion&&(d[n].promotion='YOHO币<span class="bi-modify">[修改]</span>:'),u=d[n].isExpress?"total-express-w":"",c+='<li class="'+u+'"><label>'+d[n].promotion+"</label><em>"+d[n].promotion_amount+"</em></li>";s.$payTotal.html(c),s.$toPay.html(e.last_order_amount.toFixed(2)),i("#biprice").val(r(100,e.use_yoho_coin)),0===~~e.use_yoho_coin?i(".errbitip").text(""):i(".errbitip").text("抵扣"+e.use_yoho_coin.toFixed(2)+"元"),o=s.$useEnvelopesInput.data("all")-e.use_red_envelopes,~~e.use_red_envelopes>0?(s.$useEnvelopes.find("span").html("-¥"+e.use_red_envelopes.toFixed(2)),s.$useEnvelopes.find("input").attr("data-use",e.use_red_envelopes)):(s.$useEnvelopes.find("span").html("-¥0.00"),s.$hasEnvelopes.html("¥"+(1*s.$useEnvelopesInput.attr("data-all")).toFixed(2)),s.$redEnvelopes.removeClass("active"),s.$useEnvelopesInput.prop("checked",!1)),s.$hasEnvelopes.html("¥"+o.toFixed(2)),l&&s.$expressFee.each(function(e,t){var n=l[e].shopping_orig_cost,a=l[e].shopping_cut_cost,o=l[e].shopping_cost,s=0===parseInt(n)?"运费:¥0.00元":"运费:¥"+o+"元(原价"+n+"元,优惠"+a+")元";i(t).text(s)})}},Common:{enterNUM:function(e,t){return e=e.replace(/[^\d]/g,""),e&&t&&(e=parseInt(e),t=parseInt(t),e>t&&(e=t)),e},calucate:function(){var e=d.Data;return i.each(d.Data,function(t,n){e[t]=parseFloat(d.Data[t])}),e.product-e.activity+e.carriage-e.juan-e.yohocoin},winShow:function(e){e.find("dt").show(),e.find("dd").show(),e.attr("class").match(/(-bi-)|(-juan-)/g)&&e.find("dt").hide()},winHide:function(e){e.find("dt").show(),e.find("dd").hide()},strFixed:function(e){return parseFloat(e).toFixed(2)}},Bll:{e:{$juanok:i("#juansubmit"),$juantip:i(".errtip",".play-juan-pan"),$biok:i("#bisubmit"),$carriageGroup:i('input[name="carriagegroup"]'),$selectExpress:i(".express-list input"),$bp:i("#biprice"),$errorTip:i(".errbitip"),$useEnvelopes:i(".use-envelopes"),$hasEnvelopes:i(".has-envelopes span"),$useEnvelopesInput:i(".use-envelopes").find("input"),$redEnvelopes:i(".red-envelopes"),$loading:i(".loading")},init:function(){function e(e){var t,n=i('.play-juan.is-select input[name="juangroup"]:checked'),a=i('.express-list input[name="carriagegroup"]:checked').val(),o=i("#biprice.is-select").val(),s=n.val(),r=i(".address-manage").attr("cart-type"),d=i(".use-envelopes input:checked").attr("data-use");s=s?s:n.closest("li").find("#juancode").val(),t={cartType:r,deliveryWay:a,couponCode:s,yohoCoin:o},d&&(t.redEnvelopes=d),e(t)}function t(e,t){var n=e;n.keyup(function(){n.val().length>t&&n.val(n.val().substr(0,t))})}var n,a,o=this.e,r=d.UI,l=d.Common;o.$selectExpress.click(function(){var t=i(this).val();o.$loading.show(),e(function(e){e.deliveryWay=t,n={type:"POST",url:"/cart/index/orderCompute",data:e,success:function(e){o.$loading.hide(),200===e.code?(r.render(e.data),"1"===t?i(".express-list.sf").addClass("hide"):"2"===t&&i(".express-list.sf").removeClass("hide")):new s.Alert(e.message).show()}},i.ajax(n)})}),o.$juanok.click(function(){var t=i(this).parents("dl.pan"),a="";i(".play-juan").addClass("is-select"),e(function(e){var s=e.couponCode;s?(o.$loading.show(),n={type:"POST",url:"/cart/index/orderCompute",data:e,success:function(e){o.$loading.hide(),200===e.code?(a=i('.play-juan input[value="'+s+'"]').next().text(),r.render(e.data,a),l.winHide(t),o.$juantip.html("")):(o.$juantip.html(e.message),i(".play-juan").removeClass("is-select"))}},i.ajax(n)):(o.$juantip.html("请选择或填写一个优惠券"),i(".play-juan").removeClass("is-select"))})}),i(document).on("click",".juan-modify",function(){var e=i(".play-juan-pan");l.winShow(e)}),o.$biok.click(function(){var t,a=i(this).parents("dl.pan");i("#biprice").addClass("is-select"),e(function(e){e.couponCode&&(t=i('.play-juan input[value="'+e.couponCode+'"]').next().text()),/^\d+$/.test(e.yohoCoin+"")&&1*e.yohoCoin!==0?1*e.yohoCoin>1*i(".play-pan em").text()?(i(".errbitip").html("您的YOHO币不足"),i("#biprice").removeClass("is-select")):(o.$loading.show(),n={type:"POST",url:"/cart/index/orderCompute",data:e,success:function(e){o.$loading.hide(),200===e.code?(r.render(e.data,t),l.winHide(a)):(i(".errbitip").html(e.message),i("#biprice").removeClass("is-select"))}},i.ajax(n)):(i(".errbitip").html("请输入一个正整数"),i("#biprice").removeClass("is-select"))})}),i(document).on("click",".bi-modify",function(){var e=i(".play-bi-pan");l.winShow(e)}),o.$bp.keyup(function(){var e=i(this).val();/^\d+$/.test(e+"")?1*e>1*i(this).data("bi")?o.$errorTip.html("您的YOHO币不足"):o.$errorTip.html("抵扣"+(e/100).toFixed(2)+"元"):o.$errorTip.html("请输入一个正整数")}),i(".cancel-bi").click(function(){var t,a=i(".play-bi-pan");i(".errbitip").html(""),i("#biprice").hasClass("is-select")?(o.$loading.show(),e(function(e){e.yohoCoin=0,e.couponCode&&(t=i('.play-juan input[value="'+e.couponCode+'"]').next().text()),n={type:"POST",url:"/cart/index/orderCompute",data:e,success:function(e){o.$loading.hide(),200===e.code?(r.render(e.data,t),l.winHide(a),i("#biprice").val("0"),i("#biprice").removeClass("is-select"),i(".errbitip").html("")):i(".errbitip").html(e.message)}},i.ajax(n)})):(l.winHide(a),i("#biprice").val("0"))}),i(".cancel-code").click(function(){var t=i(".play-juan-pan");i(".play-juan").hasClass("is-select")?(o.$loading.show(),e(function(e){e.couponCode="",n={type:"POST",url:"/cart/index/orderCompute",data:e,success:function(e){o.$loading.hide(),200===e.code?(r.render(e.data),l.winHide(t),i(".play-juan").removeClass("is-select"),i("#juancode").val("").siblings('input[name="juangroup"]').attr("checked","checked")):o.$juantip.html(e.message)}},i.ajax(n)})):l.winHide(t)}),a=o.$useEnvelopesInput.data("all")-o.$useEnvelopesInput.data("use"),o.$hasEnvelopes.text("¥"+a.toFixed(2)),o.$useEnvelopes.find("input").click(function(){var t,a=i(this);o.$loading.show(),a.attr("disabled","disabled"),e(function(e){a.attr("checked")?e.redEnvelopes=a.data("use"):e.redEnvelopes=0,t=i('.play-juan input[value="'+e.couponCode+'"]').next().text(),n={type:"POST",url:"/cart/index/orderCompute",data:e,success:function(e){o.$loading.hide(),200===e.code?(r.render(e.data,t),a.removeAttr("disabled"),a.attr("checked")?o.$redEnvelopes.addClass("active"):(o.$useEnvelopes.find("span").html("-¥0.00"),o.$hasEnvelopes.html("¥"+(1*a.attr("data-all")).toFixed(2)),o.$redEnvelopes.removeClass("active"))):new s.Alert(e.message).show()}},i.ajax(n)})}),t(i("#piaodesc"),30),t(i("#notedesc"),100)}}};d.Data.activity=0,d.Data.carriage=0,d.UI.init(),d.Bll.init(),o.getUserAddressList(),o.newAddress(0,"000000"),o.modifyAddress(),o.saveAddress(),i(".why").click(function(){return i("#differentBag").show(),!1}),i("#differentBag").click(function(){return!1}),i(document).click(function(){i("#differentBag").hide()}),i(".bag").find("ul").each(function(){var e=i(this).parent().parent().find(".pre"),t=i(this).parent().parent().find(".next"),n=i(this).find("li").eq(0).width(),o=i(this).find("li").size(),s=n*o;i(this).css("width",s),o>5?(e.show(),t.show(),a(e,t,i(this),n)):(e.hide(),t.hide())})}),define("js/order/address",["jquery","handlebars","source-map"],function(e,t,n){function a(e,t,n){var a,i,o="",s="";for(a=0;a<t.length;a++)s="Y"===t[a].is_support_express?"*":"",o+=t[a].id===n?'<option selected value="'+t[a].id+'">'+s+t[a].caption+"</option>":'<option value="'+t[a].id+'">'+s+t[a].caption+"</option>";"province"===e.attr("name")?i='<option value="0">请选择省份</option>':"city"===e.attr("name")?i='<option value="0">请选择城市</option>':"county"===e.attr("name")&&(i='<option value="0">请选择区县</option>'),e.html(i+o)}function i(e,t){var n,i=e.selectId;"getProvince"===e.type?n=f:"getCity"===e.type?n=m:"getCounty"===e.type&&(n=g),c.ajax({type:"GET",url:"/cart/index/getAreaList",dataType:"json",data:{id:1*e.id}}).then(function(e){a(n,e.data,i),"function"==typeof t&&t()})}function o(e){return e.replace(/^(\d{3}).*(\d{4})$/,"$1****$2")}function s(e){b.val(e.attr("data-name")),b.attr("data-id",e.attr("data-id")),_.val(e.attr("data-addressDesc")),w.val(e.attr("data-mobile")),C.val(e.attr("data-email")),x.val(e.attr("data-zipcode")),j.val(e.attr("data-phoneCode")),S.val(e.attr("data-phoneNum"))}function r(){T.removeClass("active"),q.find('li:not(".active")').addClass("hide"),q.find("li.active").addClass("address_select"),p.addClass("hide"),k.addClass("hide").removeAttr("data-id"),q.removeClass("address-expand"),c(".address-list h2 span").text("[修改]")}function d(){var e,t,n,a=c(".play-juan ul"),i="";c.ajax({type:"GET",dataType:"json",url:"/cart/index/getCouponList"}).then(function(o){if(200===o.code){for(t=o.data,e=t.length,n=0;n<e;n++)i+='<li><input name="juangroup" type="radio" value="'+t[n].code+'" '+(t[n].valid?"":'disabled="disabled"')+"><label>"+t[n].desc+"</label></li>";a.prepend(c(i))}})}function l(e){return"N"!==e}var c=e("jquery"),u=e("js/common/dialog"),h=!1,p=c(".address-manage"),f=p.find('.text-input[name="province"]'),m=p.find('.text-input[name="city"]'),g=p.find('.text-input[name="county"]'),v=p.find('.text-input[name="province"], .text-input[name="city"]'),y=c(".address-list"),b=p.find('.text-input[name="name"]'),w=p.find('.text-input[name="phone"]'),C=p.find('.text-input[name="mail"]'),_=p.find('.text-input[name="address"]'),x=p.find('.text-input[name="code"]'),k=c(".save-btn"),j=p.find('.text-input[name="tel-code"]'),S=p.find('.text-input[name="tel"]'),T=c(".use-new-address"),q=c(".exist-address-list"),I=c(".loading"),E=c("#order-edit-main"),A=p.attr("cart-type");I.show(),t.getUserAddressList=function(){var e,t,n="",a="",i="",o="",s=0;c.ajax({type:"GET",url:"/cart/index/getAddress",dataType:"json"}).then(function(r){if(I.hide(),200===r.code){if(e=r.data.list,!e)return E.attr("data-new")&&(k.addClass("new-user-btn").html("下一步:选择支付及送货时间"),c(".pay-btn").addClass("new-user-pay").html("下一步:发票和备注"),c(".switch-pay-modify").html("")),y.find(">h2").find("span").click(),c(".exist-address-list li").click(),void c(".use-new-address").removeClass("active");for(t=0;t<e.length;t++)e[t].checked?(a="checked",i="active address_select",s++,o="默认地址"):(a="",i="hide",o="设为默认地址"),n+='<li data-id="'+e[t].id+'" class="'+i+'" data-express="'+e[t].isSupport+'"><input data-name="'+e[t].user+'" data-areaCode="'+e[t].areaCode+'" data-addressDesc="'+e[t].addressDesc+'" data-mobile="'+e[t].mobile+'" data-phoneNum="'+e[t].phoneNum+'" data-phoneCode="'+e[t].phoneCode+'" data-zipCode="'+e[t].zipCode+'" data-email="'+e[t].email+'" class="radio" type="radio" name="address" '+a+' /><label for=""><strong>'+e[t].user+"</strong>"+e[t].address+'<a href="javascript:void(0);" class="default-address">'+o+'</a><div class="order-modify-btn"><span class="address-modify">[修改]</span><span class="address-del">[删除]</span></div></label></li>';c(".use-new-address").before(c(n)),0===s&&c(".address-list h2 span").click(),"N"===c(".active.address_select").attr("data-express")?(c('.express-list input[name="carriagegroup"][value="2"]').attr("disabled","disabled"),c('.express-list input[name="carriagegroup"][value="1"]').attr("checked","checked"),c(".express-list.sf").addClass("hide"),c(".is-sup").removeClass("hide")):(c('.express-list input[name="carriagegroup"][value="2"]').removeAttr("disabled"),c(".express-list.sf").removeClass("hide"),c(".is-sup").addClass("hide"))}})},t.newAddress=function(e,t){var n=e||0,a=/[0-9]{2}/gi,o=!!t&&t.match(a);i({id:n,type:"getProvince",selectId:o[0]},function(){var e=f.val();"0"!==e?i({id:e,type:"getCity",selectId:""+o[0]+o[1]},function(){var e=m.val();"0"!==e&&i({id:e,type:"getCounty",selectId:t})}):(p.find('select[name="city"]').html('<option value="0">请选择城市</option>'),p.find('select[name="county"]').html('<option value="0">请选择区县</option>'))}),v.change(function(){var e=c(this);"province"===e.attr("name")&&("0"===e.val()?(p.find('select[name="city"]').html('<option value="0">请选择城市</option>'),p.find('select[name="county"]').html('<option value="0">请选择区县</option>')):(i({id:e.val(),type:"getCity"},function(){h=!0}),p.find('select[name="county"]').html('<option value="0">请选择区县</option>'))),"city"===e.attr("name")&&h&&("0"===e.val()?p.find('select[name="county"]').html('<option value="0">请选择区县</option>'):i({id:e.val(),type:"getCounty"}))})},t.modifyAddress=function(){y.click(function(e){var n=c(e.target),a=n.closest("li").attr("data-id"),i=n.closest("li").find(".radio").attr("data-areaCode");n.hasClass("address-modify")?(p.removeClass("hide"),t.newAddress(0,i),s(n.closest("li").find(".radio")),c(".address-list-inner .save-btn").removeClass("hide"),k.attr("data-id",a),h=!0):n.hasClass("address-del")?(I.show(),c.ajax({type:"POST",url:"/cart/index/delAddress",data:{id:a}}).then(function(e){I.hide(),200===e.code?n.closest("li").remove():new u.Alert(e.message).show()}).fail(function(){})):n.hasClass("default-address")&&!n.parents("li").hasClass("address_select")&&(I.show(),c.ajax({type:"post",url:"/cart/index/setDefaultAddress",data:{id:a}}).then(function(e){I.hide(),200===e.code?(c(".exist-address-list li").removeClass("address_select").find(".default-address").text("设为默认地址"),n.parents("li").addClass("address_select"),n.text("默认地址")):new u.Alert(e.message).show()}))})},t.saveAddress=function(){k.click(function(){function e(e){return e===y?e?e+"-":" ":e?e+" ":" "}var t,n,a,i=c(this),s=b.val(),d=f.val(),l=m.val(),h=g.val(),p=_.val(),v=w.val(),y=j.val(),T=S.val(),q=C.val(),I=x.val(),E=f.find('option[value="'+d+'"]').text().replace(/\*/,""),A=m.find('option[value="'+l+'"]').text().replace(/\*/,""),F=g.find('option[value="'+h+'"]').text().replace(/\*/,""),U={consignee:s,areaCode:h,address:p,email:q,mobile:v,zipCode:I,phoneCode:y,phoneNum:T},D=/^[\u4e00-\u9fa5]{2,5}$/,P=/^[\s\S]{2,100}$/,O=/^(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/,L=/^[0-9]{6}$/,N=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/,$=/^[0-9]{3,5}$/,z=/^[0-9]{5,10}$/;if(a=c('.exist-address-list li:not(".use-new-address")').find('input[name="address"]:checked').length>0,c(".add-address").attr("checked")||!a||c(".save-btn").attr("data-id")||(c(".exist-address-list li").removeClass("address_select"),c(".exist-address-list li.active").addClass("address_select").find('input[name="address"]').attr("checked","checked"),c(".address-list span").removeAttr("expand"),r()),!c(".address-manage").hasClass("hide")){if(!D.test(s))return void new u.Alert("真实姓名至少2个中文,最多5个中文").show();if(!P.test(p))return void new u.Alert("你输入的地址格式不正确").show();if(!O.test(v))return void new u.Alert("你输入的联系电话格式不正确").show();if(y&&!$.test(y)||T&&!z.test(T)||$.test(y)&&!z.test(T)||!$.test(y)&&z.test(T))return void new u.Alert("你输入的电话格式不正确").show();if(q&&!N.test(q))return void new u.Alert("你输入的邮箱格式不正确").show();if(I&&!L.test(I))return void new u.Alert("你输入的邮编格式不正确").show();k.attr("data-id")&&(U.id=k.attr("data-id")),c.ajax({type:"post",url:"/cart/index/saveAddress",data:U}).then(function(a){var d;200===a.code?(d=a.data,"Y"===d.is_support?(c('.express-list input[name="carriagegroup"][value="2"]').removeAttr("disabled"),c(".express-list.sf").removeClass("hide"),c(".is-sup").addClass("hide")):(c('.express-list input[name="carriagegroup"][value="2"]').attr("disabled","disabled"),c('.express-list input[name="carriagegroup"][value="1"]').attr("checked","checked"),c(".express-list.sf").addClass("hide"),c(".is-sup").removeClass("hide")),t=U.id?'<li class="active" data-id="'+U.id+'" data-express="'+d.is_support+'"><input data-name="'+U.consignee+'" data-areaCode="'+U.areaCode+'" data-addressDesc="'+U.address+'" data-mobile="'+U.mobile+'" data-phoneNum="'+U.phoneNum+'" data-phoneCode="'+U.phoneCode+'" data-zipCode="'+U.zipCode+'" data-email="'+U.email+'" checked="checked" class="radio" type="radio" name="address" /><label><strong>'+s+"</strong><span>"+E+" "+A+" "+F+" "+p+" "+e(I)+o(v)+e(y)+e(T)+'</span><a href="javascript:void(0);" class="default-address">设为默认地址</a><div class="order-modify-btn"><span class="address-modify">[修改]</span><span class="address-del">[删除]</span></div></label></li>':'<li class="active" data-id="'+d.id+'" data-express="'+d.is_support+'"><input data-name="'+d.consignee+'" data-areaCode="'+d.area_code+'" data-addressDesc="'+d.address+'" data-mobile="'+d.mobile+'" data-phoneNum="'+U.phoneNum+'" data-phoneCode="'+U.phoneCode+'" data-zipCode="'+d.zip_code+'" data-email="'+d.email+'" checked="checked" class="radio" type="radio" name="address" /><label><strong>'+s+"</strong><span>"+E+" "+A+" "+F+" "+p+" "+e(I)+o(v)+e(y)+e(T)+'</span><a href="javascript:void(0);" class="default-address">设为默认地址</a><div class="order-modify-btn"><span class="address-modify">[修改]</span><span class="address-del">[删除]</span></div></label></li>',i.attr("data-id")?(n=c('.exist-address-list li[data-id="'+i.attr("data-id")+'"]'),n.after(c(t)).remove()):c(".use-new-address").before(c(t)),c(".address-list span").removeAttr("expand"),r()):new u.Alert(a.message).show()})}return 0===c(".exist-address-list li").find('input[name="address"]:checked').length?void new u.Alert("请选择一个地址").show():("N"===c(".exist-address-list li").find('input[name="address"]:checked').closest("li").attr("data-express")?(c('.express-list input[name="carriagegroup"][value="2"]').attr("disabled","disabled"),c('.express-list input[name="carriagegroup"][value="1"]').attr("checked","checked"),c(".express-list.sf").addClass("hide"),c(".is-sup").removeClass("hide")):(c('.express-list input[name="carriagegroup"][value="2"]').removeAttr("disabled"),c(".express-list.sf").removeClass("hide"),c(".is-sup").addClass("hide")),void(i.hasClass("new-user-btn")&&c(".switch-pay-modify").click()))})},c(".pay-time-modify .pay-btn").click(function(){var e=c(this),t=c(".modity-pay-info"),n=c(".pay-time-modify"),a=n.find('input[name="pay-type"]:checked').val(),i=n.find('input[name="pay-type"]:checked').next("label").text(),o=n.find('input[name="pay-time-radio"]:checked').next("label").text(),s=n.find('input[name="pay-time-radio"]:checked').val(),r=n.find('input[name="call-me"]:checked').next("label").text(),d=n.find('input[name="call-me"]:checked').val();I.show(),c.ajax({type:"POST",url:"/cart/index/orderCompute",dataType:"json",data:{cartType:A,paymentType:a}}).then(function(n){I.hide(),200===n.code?(t.find("li").eq(0).find("span").text(i),t.find("li").eq(1).find("span").text(o),t.find("li").eq(2).find("span").text(r),c(".pay-time-modify").addClass("hide").find('input[name="pay-type"][value='+a+"]").addClass("checked").end().find('input[name="pay-time-radio"][value='+s+"]").addClass("checked").end().find('input[name="call-me"][value='+d+"]").addClass("checked"),c(".modity-pay-info").removeClass("hide"),c(".switch-pay-modify").text("[修改]"),e.hasClass("new-user-pay")&&(c(".play-piao-pan dd").css({display:"block"}),c(".play-piao-pan dt").addClass("active"))):new u.Alert(n.message).show()})}),d(),c(".to-play input.submit").click(function(){var e=c(this),t=c('.exist-address-list input[name="address"]:checked').closest("li").attr("data-id"),n=c('.pay-time-modify input[name="pay-time-radio"]:checked').val(),a=c('.select-express input[name="carriagegroup"]:checked').val(),i=c("#piaodesc").val(),o=c("#piaotype").val(),s=c('.pay-time-modify input[name="pay-type"]:checked').val(),r=c('.pay-time-modify input[name="pay-type"]:checked').data("pay"),d=c("#notedesc").val(),h=c("#biprice").val(),p=c('.pay-time-modify input[name="call-me"]:checked').val(),f=c('.play-pan input[name="isPP"]:checked').val(),m=c(".use-envelopes input:checked").attr("data-use"),g=c('.play-juan.is-select input[name="juangroup"]:checked'),v=g.val(),y=v?v:g.closest("li").find("#juancode").val(); +I.show(),e.attr("disabled")||(e.attr("disabled","disabled"),c.ajax({type:"POST",dataType:"json",url:"/cart/index/orderSub",data:{addressId:t,cartType:A,deliveryTimeId:n,deliveryWayId:a,invoiceTitle:i,invoiceId:o,paymentId:r,paymentType:s,remark:d,couponCode:y,yohoCoin:h,isPreContact:l(p),isPrintPrice:l(f),redEnvelopes:m}}).then(function(e){I.hide(),200===e.code?window.location.href=e.data.payUrl:new u.Alert(e.message).show()}).always(function(){e.removeAttr("disabled")}))})}),define("js/shopping/pay",["jquery"],function(e,t,n){function a(){v?u('.mode div[id="'+v+'"]').addClass("choosed-tag").parent().addClass("choose-type"):(p.eq(0).addClass("choose-type").show(),p.eq(0).find("div").addClass("choosed-tag")),m.attr("value","前往"+u("#"+y).attr("alt")),f.attr("src",u("#"+y).attr("src"))}function i(e,t){u.ajax({type:"get",url:"/common/addpaymentinterval",dataType:"json",data:{orderCode:t,payment:e}})}var o,s,r,d,l,c,u=e("jquery"),h=u(".mode div"),p=u(".mode"),f=u("#show-pay-img"),m=u("#btnby"),g=u(".light-box"),v=u("#choosePay").val(),y=u('.mode div[id="'+v+'"]').parent().data("value"),b=v?y:u(".mode").eq(0).data("value"),w=u("#payUrl").val();u.jqtab=function(e,t){u(e+" li").click(function(){return s=u(this).find("a").attr("tab"),u(e+" li").removeClass("thistab"),u(this).addClass("thistab"),u(t).hide(),u("#"+s).fadeIn(),!1})},u.jqtab("#tabs",".tab-con"),a(),p.click(function(){return o=u(this).data(),b=o.value,r=u("#"+b).attr("alt"),d=u("#"+b).attr("src"),p.removeClass("choose-type"),u(this).addClass("choose-type"),h.removeClass("choosed-tag"),u(this).find(".borer-tag").addClass("choosed-tag"),m.attr("value","前往"+r),f.attr("src",d),!1}),u(".close").click(function(){g.hide()}),u(".change").click(function(){g.hide()}),u("#btnby").click(function(){c=u(".choose-type").attr("data-id"),l=u(".order-num").text(),i(c,l),window.open(w+"?order_code="+l+"&payment_type="+b),g.show()}),u(".pay-over").unbind("click").bind("click",function(){var e=this;u.post("/shopping/pay/sendPay",{orderCode:l,paymentId:c},function(){window.location.href=u(e).data("url")})})}),define("js/pay/wechatqrcode",["jquery"],function(e,t,n){function a(){i.ajax({url:s,dataType:"jsonp",success:function(e){"success"===e.message&&(window.location.href=r)}})}var i=e("jquery"),o=i(".w-odetail"),s=i("#payHost").val(),r=i("#paySuccessUrl").val(),d=i(".w-p-erm");e("plugin/jquery.qrcode"),o.click(function(){i(".w-addrinfo").slideToggle("slow"),o.find("i").hasClass("up")?o.html('收起详情<i class="down"></i>'):o.html('订单详情<i class="up"></i>')}),d.qrcode({render:"table",text:d.data("url")}),setInterval(a,3e3)}),define("plugin/jquery.qrcode",["jquery"],function(e,t,n){var a=e("jquery");!function(e){e.fn.qrcode=function(t){function n(e){this.mode=d,this.data=e}function i(e,t){this.typeNumber=e,this.errorCorrectLevel=t,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]}function o(e,t){if(void 0==e.length)throw Error(e.length+"/"+t);for(var n=0;n<e.length&&0==e[n];)n++;this.num=Array(e.length-n+t);for(var a=0;a<e.length-n;a++)this.num[a]=e[a+n]}function s(e,t){this.totalCount=e,this.dataCount=t}function r(){this.buffer=[],this.length=0}var d;n.prototype={getLength:function(){return this.data.length},write:function(e){for(var t=0;t<this.data.length;t++)e.put(this.data.charCodeAt(t),8)}},i.prototype={addData:function(e){this.dataList.push(new n(e)),this.dataCache=null},isDark:function(e,t){if(0>e||this.moduleCount<=e||0>t||this.moduleCount<=t)throw Error(e+","+t);return this.modules[e][t]},getModuleCount:function(){return this.moduleCount},make:function(){if(1>this.typeNumber){for(var e=1,e=1;40>e;e++){for(var t=s.getRSBlocks(e,this.errorCorrectLevel),n=new r,a=0,i=0;i<t.length;i++)a+=t[i].dataCount;for(i=0;i<this.dataList.length;i++)t=this.dataList[i],n.put(t.mode,4),n.put(t.getLength(),l.getLengthInBits(t.mode,e)),t.write(n);if(n.getLengthInBits()<=8*a)break}this.typeNumber=e}this.makeImpl(!1,this.getBestMaskPattern())},makeImpl:function(e,t){this.moduleCount=4*this.typeNumber+17,this.modules=Array(this.moduleCount);for(var n=0;n<this.moduleCount;n++){this.modules[n]=Array(this.moduleCount);for(var a=0;a<this.moduleCount;a++)this.modules[n][a]=null}this.setupPositionProbePattern(0,0),this.setupPositionProbePattern(this.moduleCount-7,0),this.setupPositionProbePattern(0,this.moduleCount-7),this.setupPositionAdjustPattern(),this.setupTimingPattern(),this.setupTypeInfo(e,t),7<=this.typeNumber&&this.setupTypeNumber(e),null==this.dataCache&&(this.dataCache=i.createData(this.typeNumber,this.errorCorrectLevel,this.dataList)),this.mapData(this.dataCache,t)},setupPositionProbePattern:function(e,t){for(var n=-1;7>=n;n++)if(!(-1>=e+n||this.moduleCount<=e+n))for(var a=-1;7>=a;a++)-1>=t+a||this.moduleCount<=t+a||(this.modules[e+n][t+a]=0<=n&&6>=n&&(0==a||6==a)||0<=a&&6>=a&&(0==n||6==n)||2<=n&&4>=n&&2<=a&&4>=a)},getBestMaskPattern:function(){for(var e=0,t=0,n=0;8>n;n++){this.makeImpl(!0,n);var a=l.getLostPoint(this);(0==n||e>a)&&(e=a,t=n)}return t},createMovieClip:function(e,t,n){for(e=e.createEmptyMovieClip(t,n),this.make(),t=0;t<this.modules.length;t++)for(var n=1*t,a=0;a<this.modules[t].length;a++){var i=1*a;this.modules[t][a]&&(e.beginFill(0,100),e.moveTo(i,n),e.lineTo(i+1,n),e.lineTo(i+1,n+1),e.lineTo(i,n+1),e.endFill())}return e},setupTimingPattern:function(){for(var e=8;e<this.moduleCount-8;e++)null==this.modules[e][6]&&(this.modules[e][6]=0==e%2);for(e=8;e<this.moduleCount-8;e++)null==this.modules[6][e]&&(this.modules[6][e]=0==e%2)},setupPositionAdjustPattern:function(){for(var e=l.getPatternPosition(this.typeNumber),t=0;t<e.length;t++)for(var n=0;n<e.length;n++){var a=e[t],i=e[n];if(null==this.modules[a][i])for(var o=-2;2>=o;o++)for(var s=-2;2>=s;s++)this.modules[a+o][i+s]=-2==o||2==o||-2==s||2==s||0==o&&0==s}},setupTypeNumber:function(e){for(var t=l.getBCHTypeNumber(this.typeNumber),n=0;18>n;n++){var a=!e&&1==(t>>n&1);this.modules[Math.floor(n/3)][n%3+this.moduleCount-8-3]=a}for(n=0;18>n;n++)a=!e&&1==(t>>n&1),this.modules[n%3+this.moduleCount-8-3][Math.floor(n/3)]=a},setupTypeInfo:function(e,t){for(var n=l.getBCHTypeInfo(this.errorCorrectLevel<<3|t),a=0;15>a;a++){var i=!e&&1==(n>>a&1);6>a?this.modules[a][8]=i:8>a?this.modules[a+1][8]=i:this.modules[this.moduleCount-15+a][8]=i}for(a=0;15>a;a++)i=!e&&1==(n>>a&1),8>a?this.modules[8][this.moduleCount-a-1]=i:9>a?this.modules[8][15-a-1+1]=i:this.modules[8][15-a-1]=i;this.modules[this.moduleCount-8][8]=!e},mapData:function(e,t){for(var n=-1,a=this.moduleCount-1,i=7,o=0,s=this.moduleCount-1;0<s;s-=2)for(6==s&&s--;;){for(var r=0;2>r;r++)if(null==this.modules[a][s-r]){var d=!1;o<e.length&&(d=1==(e[o]>>>i&1)),l.getMask(t,a,s-r)&&(d=!d),this.modules[a][s-r]=d,i--,-1==i&&(o++,i=7)}if(a+=n,0>a||this.moduleCount<=a){a-=n,n=-n;break}}}},i.PAD0=236,i.PAD1=17,i.createData=function(e,t,n){for(var t=s.getRSBlocks(e,t),a=new r,o=0;o<n.length;o++){var d=n[o];a.put(d.mode,4),a.put(d.getLength(),l.getLengthInBits(d.mode,e)),d.write(a)}for(o=e=0;o<t.length;o++)e+=t[o].dataCount;if(a.getLengthInBits()>8*e)throw Error("code length overflow. ("+a.getLengthInBits()+">"+8*e+")");for(a.getLengthInBits()+4<=8*e&&a.put(0,4);0!=a.getLengthInBits()%8;)a.putBit(!1);for(;!(a.getLengthInBits()>=8*e)&&(a.put(i.PAD0,8),!(a.getLengthInBits()>=8*e));)a.put(i.PAD1,8);return i.createBytes(a,t)},i.createBytes=function(e,t){for(var n=0,a=0,i=0,s=Array(t.length),r=Array(t.length),d=0;d<t.length;d++){var c=t[d].dataCount,u=t[d].totalCount-c,a=Math.max(a,c),i=Math.max(i,u);s[d]=Array(c);for(var h=0;h<s[d].length;h++)s[d][h]=255&e.buffer[h+n];for(n+=c,h=l.getErrorCorrectPolynomial(u),c=new o(s[d],h.getLength()-1).mod(h),r[d]=Array(h.getLength()-1),h=0;h<r[d].length;h++)u=h+c.getLength()-r[d].length,r[d][h]=0<=u?c.get(u):0}for(h=d=0;h<t.length;h++)d+=t[h].totalCount;for(n=Array(d),h=c=0;h<a;h++)for(d=0;d<t.length;d++)h<s[d].length&&(n[c++]=s[d][h]);for(h=0;h<i;h++)for(d=0;d<t.length;d++)h<r[d].length&&(n[c++]=r[d][h]);return n},d=4;for(var l={PATTERN_POSITION_TABLE:[[],[6,18],[6,22],[6,26],[6,30],[6,34],[6,22,38],[6,24,42],[6,26,46],[6,28,50],[6,30,54],[6,32,58],[6,34,62],[6,26,46,66],[6,26,48,70],[6,26,50,74],[6,30,54,78],[6,30,56,82],[6,30,58,86],[6,34,62,90],[6,28,50,72,94],[6,26,50,74,98],[6,30,54,78,102],[6,28,54,80,106],[6,32,58,84,110],[6,30,58,86,114],[6,34,62,90,118],[6,26,50,74,98,122],[6,30,54,78,102,126],[6,26,52,78,104,130],[6,30,56,82,108,134],[6,34,60,86,112,138],[6,30,58,86,114,142],[6,34,62,90,118,146],[6,30,54,78,102,126,150],[6,24,50,76,102,128,154],[6,28,54,80,106,132,158],[6,32,58,84,110,136,162],[6,26,54,82,110,138,166],[6,30,58,86,114,142,170]],G15:1335,G18:7973,G15_MASK:21522,getBCHTypeInfo:function(e){for(var t=e<<10;0<=l.getBCHDigit(t)-l.getBCHDigit(l.G15);)t^=l.G15<<l.getBCHDigit(t)-l.getBCHDigit(l.G15);return(e<<10|t)^l.G15_MASK},getBCHTypeNumber:function(e){for(var t=e<<12;0<=l.getBCHDigit(t)-l.getBCHDigit(l.G18);)t^=l.G18<<l.getBCHDigit(t)-l.getBCHDigit(l.G18);return e<<12|t},getBCHDigit:function(e){for(var t=0;0!=e;)t++,e>>>=1;return t},getPatternPosition:function(e){return l.PATTERN_POSITION_TABLE[e-1]},getMask:function(e,t,n){switch(e){case 0:return 0==(t+n)%2;case 1:return 0==t%2;case 2:return 0==n%3;case 3:return 0==(t+n)%3;case 4:return 0==(Math.floor(t/2)+Math.floor(n/3))%2;case 5:return 0==t*n%2+t*n%3;case 6:return 0==(t*n%2+t*n%3)%2;case 7:return 0==(t*n%3+(t+n)%2)%2;default:throw Error("bad maskPattern:"+e)}},getErrorCorrectPolynomial:function(e){for(var t=new o([1],0),n=0;n<e;n++)t=t.multiply(new o([1,c.gexp(n)],0));return t},getLengthInBits:function(e,t){if(1<=t&&10>t)switch(e){case 1:return 10;case 2:return 9;case d:return 8;case 8:return 8;default:throw Error("mode:"+e)}else if(27>t)switch(e){case 1:return 12;case 2:return 11;case d:return 16;case 8:return 10;default:throw Error("mode:"+e)}else{if(!(41>t))throw Error("type:"+t);switch(e){case 1:return 14;case 2:return 13;case d:return 16;case 8:return 12;default:throw Error("mode:"+e)}}},getLostPoint:function(e){for(var t=e.getModuleCount(),n=0,a=0;a<t;a++)for(var i=0;i<t;i++){for(var o=0,s=e.isDark(a,i),r=-1;1>=r;r++)if(!(0>a+r||t<=a+r))for(var d=-1;1>=d;d++)0>i+d||t<=i+d||0==r&&0==d||s==e.isDark(a+r,i+d)&&o++;5<o&&(n+=3+o-5)}for(a=0;a<t-1;a++)for(i=0;i<t-1;i++)o=0,e.isDark(a,i)&&o++,e.isDark(a+1,i)&&o++,e.isDark(a,i+1)&&o++,e.isDark(a+1,i+1)&&o++,(0==o||4==o)&&(n+=3);for(a=0;a<t;a++)for(i=0;i<t-6;i++)e.isDark(a,i)&&!e.isDark(a,i+1)&&e.isDark(a,i+2)&&e.isDark(a,i+3)&&e.isDark(a,i+4)&&!e.isDark(a,i+5)&&e.isDark(a,i+6)&&(n+=40);for(i=0;i<t;i++)for(a=0;a<t-6;a++)e.isDark(a,i)&&!e.isDark(a+1,i)&&e.isDark(a+2,i)&&e.isDark(a+3,i)&&e.isDark(a+4,i)&&!e.isDark(a+5,i)&&e.isDark(a+6,i)&&(n+=40);for(i=o=0;i<t;i++)for(a=0;a<t;a++)e.isDark(a,i)&&o++;return e=Math.abs(100*o/t/t-50)/5,n+10*e}},c={glog:function(e){if(1>e)throw Error("glog("+e+")");return c.LOG_TABLE[e]},gexp:function(e){for(;0>e;)e+=255;for(;256<=e;)e-=255;return c.EXP_TABLE[e]},EXP_TABLE:Array(256),LOG_TABLE:Array(256)},u=0;8>u;u++)c.EXP_TABLE[u]=1<<u;for(u=8;256>u;u++)c.EXP_TABLE[u]=c.EXP_TABLE[u-4]^c.EXP_TABLE[u-5]^c.EXP_TABLE[u-6]^c.EXP_TABLE[u-8];for(u=0;255>u;u++)c.LOG_TABLE[c.EXP_TABLE[u]]=u;return o.prototype={get:function(e){return this.num[e]},getLength:function(){return this.num.length},multiply:function(e){for(var t=Array(this.getLength()+e.getLength()-1),n=0;n<this.getLength();n++)for(var a=0;a<e.getLength();a++)t[n+a]^=c.gexp(c.glog(this.get(n))+c.glog(e.get(a)));return new o(t,0)},mod:function(e){if(0>this.getLength()-e.getLength())return this;for(var t=c.glog(this.get(0))-c.glog(e.get(0)),n=Array(this.getLength()),a=0;a<this.getLength();a++)n[a]=this.get(a);for(a=0;a<e.getLength();a++)n[a]^=c.gexp(c.glog(e.get(a))+t);return new o(n,0).mod(e)}},s.RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]],s.getRSBlocks=function(e,t){var n=s.getRsBlockTable(e,t);if(void 0==n)throw Error("bad rs block @ typeNumber:"+e+"/errorCorrectLevel:"+t);for(var a=n.length/3,i=[],o=0;o<a;o++)for(var r=n[3*o+0],d=n[3*o+1],l=n[3*o+2],c=0;c<r;c++)i.push(new s(d,l));return i},s.getRsBlockTable=function(e,t){switch(t){case 1:return s.RS_BLOCK_TABLE[4*(e-1)+0];case 0:return s.RS_BLOCK_TABLE[4*(e-1)+1];case 3:return s.RS_BLOCK_TABLE[4*(e-1)+2];case 2:return s.RS_BLOCK_TABLE[4*(e-1)+3]}},r.prototype={get:function(e){return 1==(this.buffer[Math.floor(e/8)]>>>7-e%8&1)},put:function(e,t){for(var n=0;n<t;n++)this.putBit(1==(e>>>t-n-1&1))},getLengthInBits:function(){return this.length},putBit:function(e){var t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},"string"==typeof t&&(t={text:t}),t=e.extend({},{render:"canvas",width:256,height:256,typeNumber:-1,correctLevel:2,background:"#ffffff",foreground:"#000000"},t),this.each(function(){var n;if("canvas"==t.render){n=new i(t.typeNumber,t.correctLevel),n.addData(t.text),n.make();var o=document.createElement("canvas");o.width=t.width,o.height=t.height;for(var s=o.getContext("2d"),r=t.width/n.getModuleCount(),d=t.height/n.getModuleCount(),l=0;l<n.getModuleCount();l++)for(var c=0;c<n.getModuleCount();c++){s.fillStyle=n.isDark(l,c)?t.foreground:t.background;var u=Math.ceil((c+1)*r)-Math.floor(c*r),h=Math.ceil((l+1)*r)-Math.floor(l*r);s.fillRect(Math.round(c*r),Math.round(l*d),u,h)}}else for(n=new i(t.typeNumber,t.correctLevel),n.addData(t.text),n.make(),o=e("<table></table>").css("width",t.width+"px").css("height",t.height+"px").css("border","0px").css("border-collapse","collapse").css("background-color",t.background),s=t.width/n.getModuleCount(),r=t.height/n.getModuleCount(),d=0;d<n.getModuleCount();d++)for(l=e("<tr></tr>").css("height",r+"px").appendTo(o),c=0;c<n.getModuleCount();c++)e("<td></td>").css("width",s+"px").css("background-color",n.isDark(d,c)?t.foreground:t.background).appendTo(l);n=o,a(n).appendTo(this)})}}(a)}),define("js/about/entry",["jquery","jquery.placeholder","handlebars","source-map"],function(e,t,n){e("js/about/settled")}),define("js/about/settled",["jquery","jquery.placeholder","handlebars","source-map"],function(e,t,n){var a=e("jquery"),i=e("js/passport/mail-phone-regx");e("jquery.placeholder"),e("plugin/jquery.qupload"),function(){function e(){var e=a(window).height();n.removeClass("hide"),i.css({"max-height":e-60}).removeClass("hide")}function t(){n.addClass("hide"),i.addClass("hide")}var n,i;0!==a(".settled-page").length&&(n=a("#mask"),i=a("#notice-container"),a("#fake-link").click(e),a("#fake-close").click(t),a("#mask").click(t))}(),function(){function t(e){a.each(e,function(e,t){a("#"+t.dom).qupload({uploadKey:w,button_image_url:"",button_text:'<span class="btn_upload_text">上传</span>',button_text_style:".btn_upload_text{color:#000;margin-left:30px;line-height: 2em;font-size:14px;}",button_text_left_padding:32,button_text_top_padding:8,button_width:160,button_height:35,button_action:x.BUTTON_ACTION.SELECT_FILE,file_size_limit:"10240",file_types:t.type,uploadSuccessed:function(e){var n=JSON.parse(e);return 12!==n.code?(alert(n.message),!1):void t.callback(n.data.hit.Filedata.return_file_path)}})})}function n(){var e=!0,t=/[0-9]\d{5}(?!\d)/,n=i.emailRegx,o=i.phoneRegx["+86"],s=/^(0|[1-9][0-9]*)$/;return a(".va, .category-item select, .for-other, .category-item").removeClass("error"),a(".va-null").each(function(){""===a(this).val()&&(a(this).addClass("error"),e=!1)}),""!==f.val()&&t.test(f.val())||(f.addClass("error"),e=!1),""!==m.val()&&n.test(m.val())||(m.addClass("error"),e=!1),""!==g.val()&&o.test(g.val())||(g.addClass("error"),e=!1),""!==y.val()&&s.test(y.val())||(y.addClass("error"),e=!1),a(".category-item").each(function(){0===a(this).get(0).selectedIndex&&(a(this).addClass("error"),e=!1)}),3===a('input[name="seller-role"]:checked').index()&&""===r.val()&&(e=!1,r.addClass("error")),5===a('input[name="new_cycle"]:checked').index()&&""===d.val()&&(e=!1,d.addClass("error")),5===a('input[name="supply_cycle"]:checked').index()&&""===l.val()&&(e=!1,l.addClass("error")),e}function o(){c.closest("tr").removeClass("hide"),c.append("<li>"+C+"</li>")}function s(){var e=a(this).val(),t=a(this).parent().find(".category-two"),n="<option>选择二级分类</option>";return""===e?void t.html(n):void a.ajax({url:"/shop/settled/getTwoCategory",type:"GET",data:{id:e}}).then(function(e){var a,i=[];if(200===e.code)for(i=e.data,a=0;a<i.length;a++)n+='<option value="'+i[a].id+'" >'+i[a].name+"</option>";t.html(n)})}var r,d,l,c,u,h,p,f,m,g,v,y,b,w,C=a("#category-tpl").html(),_=e("js/common/dialog").Dialog,x=window.SWFUpload;if(!(a(".settled-apply-page").length<0)){if(a("[placeholder]").placeholder(),r=a("#other-brand-relation"),d=a("#other-new-period"),l=a("#other-replenishment-period"),c=a("#category-list"),u=a("#shop-list"),h=a("#shops"),p=a("#mask, #submit-success"),f=a("#postcode"),m=a("#email"),g=a("#phone-number"),v=a("#upload-key"),y=a("#style-count"),w=v.val(),v.remove(),t([{dom:"upload-brand-material",type:"*.ppt;*.pdf;*.zip;*.rar",callback:function(e){a("#brand-material").val(e),a(".brand-tip").html("上传成功"),alert("上传成功!")}},{dom:"upload-goods-material",type:"*.xls;*.xlsx;*.zip;*.rar",callback:function(e){a("#goods-material").val(e),a(".goods-tip").html("上传成功"),alert("上传成功!")}}]),location.search.indexOf("state=1")>-1)return b=new _({className:"settled-success",closeIcon:!1,content:'<h1 class="main-title">恭喜您已提交成功</h1><h2 class="sub-title">我们将尽快与您联系</h2>',btns:[{id:"apply-success-ok",btnClass:["apply-success-ok"],name:"确认",cb:function(){location.href="/shop/settled/index"}}]}),void b.show();a('input[name="seller_role"]').change(function(){3===a(this).index()?r.removeClass("hide"):r.addClass("hide")}),a('input[name="new-cycle"]').change(function(){5===a(this).index()?d.removeClass("hide"):d.addClass("hide")}),a('input[name="supply-cycle"]').change(function(){5===a(this).index()?l.removeClass("hide"):l.addClass("hide")}),a('input[name="have-store"]').change(function(){1===a(this).index()?u.addClass("hide"):u.removeClass("hide")}),a(".form-container").on("change",".category-one",s),a("#category-add").click(o),h.delegate(".shop-add","click",function(){h.append('<li><input class="shop-addres" name="store-address[]" type="text" placeholder="输入店铺地址"><span>月均销售:</span><input class="shop-sales-volume" type="text" name="store-sales-volume[]" placeholder="输入价格"><span>元</span></li>')}),a("#apply-post").click(function(){var e;n()?(p.removeClass("hide"),a("form").submit()):(a(".error").first().focus(),e=a(".error").first().offset().top,a(window).scrollTop(e-10))}),navigator.userAgent.indexOf("MSIE")>=0&&a("[placeholder]").focus(function(){var e=a(this);e.removeClass("placeholder")}).blur(function(){var e=a(this);""===e.val()&&e.addClass("placeholder")})}}()}),define("js/coupon/entry",["jquery","lazyload","handlebars","source-map"],function(e,t,n){e("js/coupon/coupon")}),define("js/coupon/coupon",["jquery","lazyload","handlebars","source-map"],function(e,t,n){function a(e){var t=new l(e);t.show()}function i(t){r.ajax({type:"GET",url:"/coupon/sendcoupon",data:{id:t},success:function(e){var t=e.code;e.url&&e.url.length>0&&c[t]&&c[t](e.url+"?"+location.href.split("?")[1]),s[t]?s[t]():s[400]()},error:function(t){var n=e("js/common/dialog").Alert;new n("网络异常").show()}})}var o,s,r=e("jquery"),d=e("lazyload"),l=e("js/common/dialog").Dialog,c={gunangSrc:null,checkCouponSrc:null,goToGuang:function(){window.location.href=this.gunangSrc},goToCheck:function(){window.location.href=this.checkCouponSrc},403:function(e){window.location.href=e},200:function(e){this.checkCouponSrc=e}};d(r("img.lazy")),e("js/common/slider"),r(".slide-container").slider(),o={success:{content:"恭喜您,成功领取优惠券",subContents:["特殊情况下到账有延时","请耐心等待"],className:"subcontent-dialog",refreshOnClose:!0,btns:[{id:1,name:"去购物啦",btnClass:["black","btn-close"],cb:function(){c.goToGuang()}},{id:2,name:"查看优惠券",btnClass:["btn-close"],cb:function(){c.goToCheck()}}]},alreadyGot:{content:"您已领取过优惠券",subContent:"快去选购心仪的潮品吧",className:"subcontent-dialog",btns:[{id:1,name:"去使用",btnClass:["btn-close"],cb:function(){c.goToGuang()}}]},expired:{content:"优惠券已过期",subContent:"去领最新的优惠券吧",className:"subcontent-dialog",btns:[{id:1,name:"关闭",btnClass:["btn-close"]}]},failed:{content:"领取失败",subContents:["请刷新重试,","多次无效请联系客服"],className:"subcontent-dialog",btns:[{id:1,name:"刷新",btnClass:["btn-close"],cb:function(){window.location.reload()}}]}},s={200:function(){a(o.success)},401:function(){a(o.alreadyGot)},315:function(){a(o.expired)},400:function(){a(o.failed)},403:function(){}},r(".enable .info").on("click",function(e){e.preventDefault(),i(r(this).closest("a").data("id")),c.gunangSrc=r(this).closest("a").get(0).href})}); \ No newline at end of file diff --git a/web-static/dist/yohobuy/4.7.2/lib.js b/web-static/dist/yohobuy/4.7.2/lib.js new file mode 100644 index 0000000..59a7c0d --- /dev/null +++ b/web-static/dist/yohobuy/4.7.2/lib.js @@ -0,0 +1,7 @@ +!function(e,t){function n(e){return function(t){return{}.toString.call(t)=="[object "+e+"]"}}function r(){return E++}function i(e){return e.match(T)[0]}function o(e){for(e=e.replace(P,"/");e.match(L);)e=e.replace(L,"/");return e=e.replace(j,"$1/")}function a(e){var t=e.length-1,n=e.charAt(t);return"#"===n?e.substring(0,t):".js"===e.substring(t-2)||e.indexOf("?")>0||".css"===e.substring(t-3)||"/"===n?e:e+".js"}function s(e){var t=w.alias;return t&&k(t[e])?t[e]:e}function l(e){var t,n=w.paths;return n&&(t=e.match(O))&&k(n[t[1]])&&(e=n[t[1]]+t[2]),e}function u(e){var t=w.vars;return t&&e.indexOf("{")>-1&&(e=e.replace(M,function(e,n){return k(t[n])?t[n]:e})),e}function c(e){var t=w.map,n=e;if(t)for(var r=0,i=t.length;i>r;r++){var o=t[r];if(n=_(o)?o(e)||e:e.replace(o[0],o[1]),n!==e)break}return n}function p(e,t){var n,r=e.charAt(0);if(D.test(e))n=e;else if("."===r)n=o((t?i(t):w.cwd)+e);else if("/"===r){var a=w.cwd.match(H);n=a?a[0]+e.substring(1):e}else n=w.base+e;return 0===n.indexOf("//")&&(n=location.protocol+n),n}function h(e,t){if(!e)return"";e=s(e),e=l(e),e=u(e),e=a(e);var n=p(e,t);return n=c(n)}function f(e){return e.hasAttribute?e.src:e.getAttribute("src",4)}function d(e,t,n){var r=V.test(e),i=I.createElement(r?"link":"script");if(n){var o=_(n)?n(e):n;o&&(i.charset=o)}g(i,t,r,e),r?(i.rel="stylesheet",i.href=e):(i.async=!0,i.src=e),q=i,z?U.insertBefore(i,z):U.appendChild(i),q=null}function g(e,n,r,i){function o(){e.onload=e.onerror=e.onreadystatechange=null,r||w.debug||U.removeChild(e),e=null,n()}var a="onload"in e;return!r||!G&&a?(a?(e.onload=o,e.onerror=function(){N("error",{uri:i,node:e}),o()}):e.onreadystatechange=function(){/loaded|complete/.test(e.readyState)&&o()},t):(setTimeout(function(){m(e,n)},1),t)}function m(e,t){var n,r=e.sheet;if(G)r&&(n=!0);else if(r)try{r.cssRules&&(n=!0)}catch(i){"NS_ERROR_DOM_SECURITY_ERR"===i.name&&(n=!0)}setTimeout(function(){n?t():m(e,t)},20)}function v(){if(q)return q;if(W&&"interactive"===W.readyState)return W;for(var e=U.getElementsByTagName("script"),t=e.length-1;t>=0;t--){var n=e[t];if("interactive"===n.readyState)return W=n}}function y(e){var t=[];return e.replace(K,"").replace(J,function(e,n,r){r&&t.push(r)}),t}function b(e,t){this.uri=e,this.dependencies=t||[],this.exports=null,this.status=0,this._waitings={},this._remain=0}if(!e.seajs){var x=e.seajs={version:"2.2.0"},w=x.data={},S=n("Object"),k=n("String"),C=Array.isArray||n("Array"),_=n("Function"),E=0,A=w.events={};x.on=function(e,t){var n=A[e]||(A[e]=[]);return n.push(t),x},x.off=function(e,t){if(!e&&!t)return A=w.events={},x;var n=A[e];if(n)if(t)for(var r=n.length-1;r>=0;r--)n[r]===t&&n.splice(r,1);else delete A[e];return x};var N=x.emit=function(e,t){var n,r=A[e];if(r)for(r=r.slice();n=r.shift();)n(t);return x},T=/[^?#]*\//,P=/\/\.\//g,L=/\/[^\/]+\/\.\.\//,j=/([^:\/])\/\//g,O=/^([^\/:]+)(\/.+)$/,M=/{([^{]+)}/g,D=/^\/\/.|:\//,H=/^.*?\/\/.*?\//,I=document,R=i(I.URL),B=I.scripts,$=I.getElementById("seajsnode")||B[B.length-1],F=i(f($)||R);x.resolve=h;var q,W,U=I.head||I.getElementsByTagName("head")[0]||I.documentElement,z=U.getElementsByTagName("base")[0],V=/\.css(?:\?|$)/i,G=+navigator.userAgent.replace(/.*AppleWebKit\/(\d+)\..*/,"$1")<536;x.request=d;var X,J=/"(?:\\"|[^"])*"|'(?:\\'|[^'])*'|\/\*[\S\s]*?\*\/|\/(?:\\\/|[^\/\r\n])+\/(?=[^\/])|\/\/.*|\.\s*require|(?:^|[^$])\brequire\s*\(\s*(["'])(.+?)\1\s*\)/g,K=/\\\\/g,Y=x.cache={},Q={},Z={},ee={},te=b.STATUS={FETCHING:1,SAVED:2,LOADING:3,LOADED:4,EXECUTING:5,EXECUTED:6};b.prototype.resolve=function(){for(var e=this,t=e.dependencies,n=[],r=0,i=t.length;i>r;r++)n[r]=b.resolve(t[r],e.uri);return n},b.prototype.load=function(){var e=this;if(!(e.status>=te.LOADING)){e.status=te.LOADING;var n=e.resolve();N("load",n);for(var r,i=e._remain=n.length,o=0;i>o;o++)r=b.get(n[o]),r.status<te.LOADED?r._waitings[e.uri]=(r._waitings[e.uri]||0)+1:e._remain--;if(0===e._remain)return e.onload(),t;var a={};for(o=0;i>o;o++)r=Y[n[o]],r.status<te.FETCHING?r.fetch(a):r.status===te.SAVED&&r.load();for(var s in a)a.hasOwnProperty(s)&&a[s]()}},b.prototype.onload=function(){var e=this;e.status=te.LOADED,e.callback&&e.callback();var t,n,r=e._waitings;for(t in r)r.hasOwnProperty(t)&&(n=Y[t],n._remain-=r[t],0===n._remain&&n.onload());delete e._waitings,delete e._remain},b.prototype.fetch=function(e){function n(){x.request(a.requestUri,a.onRequest,a.charset)}function r(){delete Q[s],Z[s]=!0,X&&(b.save(o,X),X=null);var e,t=ee[s];for(delete ee[s];e=t.shift();)e.load()}var i=this,o=i.uri;i.status=te.FETCHING;var a={uri:o};N("fetch",a);var s=a.requestUri||o;return!s||Z[s]?(i.load(),t):Q[s]?(ee[s].push(i),t):(Q[s]=!0,ee[s]=[i],N("request",a={uri:o,requestUri:s,onRequest:r,charset:w.charset}),a.requested||(e?e[a.requestUri]=n:n()),t)},b.prototype.exec=function(){function e(t){return b.get(e.resolve(t)).exec()}var n=this;if(n.status>=te.EXECUTING)return n.exports;n.status=te.EXECUTING;var i=n.uri;e.resolve=function(e){return b.resolve(e,i)},e.async=function(t,n){return b.use(t,n,i+"_async_"+r()),e};var o=n.factory,a=_(o)?o(e,n.exports={},n):o;return a===t&&(a=n.exports),delete n.factory,n.exports=a,n.status=te.EXECUTED,N("exec",n),a},b.resolve=function(e,t){var n={id:e,refUri:t};return N("resolve",n),n.uri||x.resolve(n.id,t)},b.define=function(e,n,r){var i=arguments.length;1===i?(r=e,e=t):2===i&&(r=n,C(e)?(n=e,e=t):n=t),!C(n)&&_(r)&&(n=y(""+r));var o={id:e,uri:b.resolve(e),deps:n,factory:r};if(!o.uri&&I.attachEvent){var a=v();a&&(o.uri=a.src)}N("define",o),o.uri?b.save(o.uri,o):X=o},b.save=function(e,t){var n=b.get(e);n.status<te.SAVED&&(n.id=t.id||e,n.dependencies=t.deps||[],n.factory=t.factory,n.status=te.SAVED)},b.get=function(e,t){return Y[e]||(Y[e]=new b(e,t))},b.use=function(t,n,r){var i=b.get(r,C(t)?t:[t]);i.callback=function(){for(var t=[],r=i.resolve(),o=0,a=r.length;a>o;o++)t[o]=Y[r[o]].exec();n&&n.apply(e,t),delete i.callback},i.load()},b.preload=function(e){var t=w.preload,n=t.length;n?b.use(t,function(){t.splice(0,n),b.preload(e)},w.cwd+"_preload_"+r()):e()},x.use=function(e,t){return b.preload(function(){b.use(e,t,w.cwd+"_use_"+r())}),x},b.define.cmd={},e.define=b.define,x.Module=b,w.fetchedList=Z,w.cid=r,x.require=function(e){var t=b.get(b.resolve(e));return t.status<te.EXECUTING&&(t.onload(),t.exec()),t.exports};var ne=/^(.+?\/)(\?\?)?(seajs\/)+/;w.base=(F.match(ne)||["",F])[1],w.dir=F,w.cwd=R,w.charset="utf-8",w.preload=function(){var e=[],t=location.search.replace(/(seajs-\w+)(&|$)/g,"$1=1$2");return t+=" "+I.cookie,t.replace(/(seajs-\w+)=1/g,function(t,n){e.push(n)}),e}(),x.config=function(e){for(var t in e){var n=e[t],r=w[t];if(r&&S(r))for(var i in n)r[i]=n[i];else C(r)?n=r.concat(n):"base"===t&&("/"!==n.slice(-1)&&(n+="/"),n=p(n)),w[t]=n}return N("config",e),x}}}(this),define("lazyload",[],function(e,t,n){var r=e("jquery");e("lib/jquery.lazyload"),n.exports=function(e,t){var n,i={effect:"fadeIn",effect_speed:10,placeholder:"data:image/gif;base64,R0lGODlhAQABAJEAAAAAAP///93d3f///yH5BAEAAAMALAAAAAABAAEAAAICVAEAOw==",skip_invisible:!1},o=arguments.length;!function(){switch(o){case 0:n=r("img.lazy");break;case 1:e instanceof r?n=e:(n=r("img.lazy"),r.extend(i,e));break;case 2:n=e,i=r.extend(i,t)}}(),n.lazyload(i)}}),define("jquery",[],function(e,t,n){!function(e,t){function r(e){var t=ge[e]={};return Z.each(e.split(ne),function(e,n){t[n]=!0}),t}function i(e,n,r){if(r===t&&1===e.nodeType){var i="data-"+n.replace(ve,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof r){try{r="true"===r||"false"!==r&&("null"===r?null:+r+""===r?+r:me.test(r)?Z.parseJSON(r):r)}catch(o){}Z.data(e,n,r)}else r=t}return r}function o(e){var t;for(t in e)if(("data"!==t||!Z.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}function a(){return!1}function s(){return!0}function l(e){return!e||!e.parentNode||11===e.parentNode.nodeType}function u(e,t){do e=e[t];while(e&&1!==e.nodeType);return e}function c(e,t,n){if(t=t||0,Z.isFunction(t))return Z.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return Z.grep(e,function(e,r){return e===t===n});if("string"==typeof t){var r=Z.grep(e,function(e){return 1===e.nodeType});if(Ie.test(t))return Z.filter(t,r,!n);t=Z.filter(t,r)}return Z.grep(e,function(e,r){return Z.inArray(e,t)>=0===n})}function p(e){var t=$e.split("|"),n=e.createDocumentFragment();if(n.createElement)for(;t.length;)n.createElement(t.pop());return n}function h(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function f(e,t){if(1===t.nodeType&&Z.hasData(e)){var n,r,i,o=Z._data(e),a=Z._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in s)for(r=0,i=s[n].length;r<i;r++)Z.event.add(t,n,s[n][r])}a.data&&(a.data=Z.extend({},a.data))}}function d(e,t){var n;1===t.nodeType&&(t.clearAttributes&&t.clearAttributes(),t.mergeAttributes&&t.mergeAttributes(e),n=t.nodeName.toLowerCase(),"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),Z.support.html5Clone&&e.innerHTML&&!Z.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ke.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.selected=e.defaultSelected:"input"===n||"textarea"===n?t.defaultValue=e.defaultValue:"script"===n&&t.text!==e.text&&(t.text=e.text),t.removeAttribute(Z.expando))}function g(e){return"undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName("*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll("*"):[]}function m(e){Ke.test(e.type)&&(e.defaultChecked=e.checked)}function v(e,t){if(t in e)return t;for(var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=yt.length;i--;)if(t=yt[i]+n,t in e)return t;return r}function y(e,t){return e=t||e,"none"===Z.css(e,"display")||!Z.contains(e.ownerDocument,e)}function b(e,t){for(var n,r,i=[],o=0,a=e.length;o<a;o++)n=e[o],n.style&&(i[o]=Z._data(n,"olddisplay"),t?(i[o]||"none"!==n.style.display||(n.style.display=""),""===n.style.display&&y(n)&&(i[o]=Z._data(n,"olddisplay",k(n.nodeName)))):(r=rt(n,"display"),i[o]||"none"===r||Z._data(n,"olddisplay",r)));for(o=0;o<a;o++)n=e[o],n.style&&(t&&"none"!==n.style.display&&""!==n.style.display||(n.style.display=t?i[o]||"":"none"));return e}function x(e,t,n){var r=pt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function w(e,t,n,r){for(var i=n===(r?"border":"content")?4:"width"===t?1:0,o=0;i<4;i+=2)"margin"===n&&(o+=Z.css(e,n+vt[i],!0)),r?("content"===n&&(o-=parseFloat(rt(e,"padding"+vt[i]))||0),"margin"!==n&&(o-=parseFloat(rt(e,"border"+vt[i]+"Width"))||0)):(o+=parseFloat(rt(e,"padding"+vt[i]))||0,"padding"!==n&&(o+=parseFloat(rt(e,"border"+vt[i]+"Width"))||0));return o}function S(e,t,n){var r="width"===t?e.offsetWidth:e.offsetHeight,i=!0,o=Z.support.boxSizing&&"border-box"===Z.css(e,"boxSizing");if(r<=0||null==r){if(r=rt(e,t),(r<0||null==r)&&(r=e.style[t]),ht.test(r))return r;i=o&&(Z.support.boxSizingReliable||r===e.style[t]),r=parseFloat(r)||0}return r+w(e,t,n||(o?"border":"content"),i)+"px"}function k(e){if(dt[e])return dt[e];var t=Z("<"+e+">").appendTo(q.body),n=t.css("display");return t.remove(),"none"!==n&&""!==n||(it=q.body.appendChild(it||Z.extend(q.createElement("iframe"),{frameBorder:0,width:0,height:0})),ot&&it.createElement||(ot=(it.contentWindow||it.contentDocument).document,ot.write("<!doctype html><html><body>"),ot.close()),t=ot.body.appendChild(ot.createElement(e)),n=rt(t,"display"),q.body.removeChild(it)),dt[e]=n,n}function C(e,t,n,r){var i;if(Z.isArray(t))Z.each(t,function(t,i){n||wt.test(e)?r(e,i):C(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==Z.type(t))r(e,t);else for(i in t)C(e+"["+i+"]",t[i],n,r)}function _(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i,o,a=t.toLowerCase().split(ne),s=0,l=a.length;if(Z.isFunction(n))for(;s<l;s++)r=a[s],o=/^\+/.test(r),o&&(r=r.substr(1)||"*"),i=e[r]=e[r]||[],i[o?"unshift":"push"](n)}}function E(e,n,r,i,o,a){o=o||n.dataTypes[0],a=a||{},a[o]=!0;for(var s,l=e[o],u=0,c=l?l.length:0,p=e===It;u<c&&(p||!s);u++)s=l[u](n,r,i),"string"==typeof s&&(!p||a[s]?s=t:(n.dataTypes.unshift(s),s=E(e,n,r,i,s,a)));return!p&&s||a["*"]||(s=E(e,n,r,i,"*",a)),s}function A(e,n){var r,i,o=Z.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&&((o[r]?e:i||(i={}))[r]=n[r]);i&&Z.extend(!0,e,i)}function N(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes,c=e.responseFields;for(o in c)o in r&&(n[c[o]]=r[o]);for(;"*"===u[0];)u.shift(),i===t&&(i=e.mimeType||n.getResponseHeader("content-type"));if(i)for(o in l)if(l[o]&&l[o].test(i)){u.unshift(o);break}if(u[0]in r)a=u[0];else{for(o in r){if(!u[0]||e.converters[o+" "+u[0]]){a=o;break}s||(s=o)}a=a||s}if(a)return a!==u[0]&&u.unshift(a),r[a]}function T(e,t){var n,r,i,o,a=e.dataTypes.slice(),s=a[0],l={},u=0;if(e.dataFilter&&(t=e.dataFilter(t,e.dataType)),a[1])for(n in e.converters)l[n.toLowerCase()]=e.converters[n];for(;i=a[++u];)if("*"!==i){if("*"!==s&&s!==i){if(n=l[s+" "+i]||l["* "+i],!n)for(r in l)if(o=r.split(" "),o[1]===i&&(n=l[s+" "+o[0]]||l["* "+o[0]])){n===!0?n=l[r]:l[r]!==!0&&(i=o[0],a.splice(u--,0,i));break}if(n!==!0)if(n&&e["throws"])t=n(t);else try{t=n(t)}catch(c){return{state:"parsererror",error:n?c:"No conversion from "+s+" to "+i}}}s=i}return{state:"success",data:t}}function P(){try{return new e.XMLHttpRequest}catch(t){}}function L(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function j(){return setTimeout(function(){Xt=t},0),Xt=Z.now()}function O(e,t){Z.each(t,function(t,n){for(var r=(en[t]||[]).concat(en["*"]),i=0,o=r.length;i<o;i++)if(r[i].call(e,t,n))return})}function M(e,t,n){var r,i=0,o=Zt.length,a=Z.Deferred().always(function(){delete s.elem}),s=function(){for(var t=Xt||j(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,i=1-r,o=0,s=l.tweens.length;o<s;o++)l.tweens[o].run(i);return a.notifyWith(e,[l,i,n]),i<1&&s?n:(a.resolveWith(e,[l]),!1)},l=a.promise({elem:e,props:Z.extend({},t),opts:Z.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xt||j(),duration:n.duration,tweens:[],createTween:function(t,n,r){var i=Z.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(i),i},stop:function(t){for(var n=0,r=t?l.tweens.length:0;n<r;n++)l.tweens[n].run(1);return t?a.resolveWith(e,[l,t]):a.rejectWith(e,[l,t]),this}}),u=l.props;for(D(u,l.opts.specialEasing);i<o;i++)if(r=Zt[i].call(l,e,u,l.opts))return r;return O(l,u),Z.isFunction(l.opts.start)&&l.opts.start.call(e,l),Z.fx.timer(Z.extend(s,{anim:l,queue:l.opts.queue,elem:e})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function D(e,t){var n,r,i,o,a;for(n in e)if(r=Z.camelCase(n),i=t[r],o=e[n],Z.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),a=Z.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function H(e,t,n){var r,i,o,a,s,l,u,c,p,h=this,f=e.style,d={},g=[],m=e.nodeType&&y(e);n.queue||(c=Z._queueHooks(e,"fx"),null==c.unqueued&&(c.unqueued=0,p=c.empty.fire,c.empty.fire=function(){c.unqueued||p()}),c.unqueued++,h.always(function(){h.always(function(){c.unqueued--,Z.queue(e,"fx").length||c.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[f.overflow,f.overflowX,f.overflowY],"inline"===Z.css(e,"display")&&"none"===Z.css(e,"float")&&(Z.support.inlineBlockNeedsLayout&&"inline"!==k(e.nodeName)?f.zoom=1:f.display="inline-block")),n.overflow&&(f.overflow="hidden",Z.support.shrinkWrapBlocks||h.done(function(){f.overflow=n.overflow[0],f.overflowX=n.overflow[1],f.overflowY=n.overflow[2]}));for(r in t)if(o=t[r],Kt.exec(o)){if(delete t[r],l=l||"toggle"===o,o===(m?"hide":"show"))continue;g.push(r)}if(a=g.length){s=Z._data(e,"fxshow")||Z._data(e,"fxshow",{}),"hidden"in s&&(m=s.hidden),l&&(s.hidden=!m),m?Z(e).show():h.done(function(){Z(e).hide()}),h.done(function(){var t;Z.removeData(e,"fxshow",!0);for(t in d)Z.style(e,t,d[t])});for(r=0;r<a;r++)i=g[r],u=h.createTween(i,m?s[i]:0),d[i]=s[i]||Z.style(e,i),i in s||(s[i]=u.start,m&&(u.end=u.start,u.start="width"===i||"height"===i?1:0))}}function I(e,t,n,r,i){return new I.prototype.init(e,t,n,r,i)}function R(e,t){var n,r={height:e},i=0;for(t=t?1:0;i<4;i+=2-t)n=vt[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function B(e){return Z.isWindow(e)?e:9===e.nodeType&&(e.defaultView||e.parentWindow)}var $,F,q=e.document,W=e.location,U=e.navigator,z=e.jQuery,V=e.$,G=Array.prototype.push,X=Array.prototype.slice,J=Array.prototype.indexOf,K=Object.prototype.toString,Y=Object.prototype.hasOwnProperty,Q=String.prototype.trim,Z=function(e,t){return new Z.fn.init(e,t,$)},ee=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,te=/\S/,ne=/\s+/,re=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,ie=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,oe=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,ae=/^[\],:{}\s]*$/,se=/(?:^|:|,)(?:\s*\[)+/g,le=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,ue=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,ce=/^-ms-/,pe=/-([\da-z])/gi,he=function(e,t){return(t+"").toUpperCase()},fe=function(){q.addEventListener?(q.removeEventListener("DOMContentLoaded",fe,!1),Z.ready()):"complete"===q.readyState&&(q.detachEvent("onreadystatechange",fe),Z.ready())},de={};Z.fn=Z.prototype={constructor:Z,init:function(e,n,r){var i,o,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if("string"==typeof e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:ie.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1])return n=n instanceof Z?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:q,e=Z.parseHTML(i[1],a,!0),oe.test(i[1])&&Z.isPlainObject(n)&&this.attr.call(e,n,!0),Z.merge(this,e);if(o=q.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return r.find(e);this.length=1,this[0]=o}return this.context=q,this.selector=e,this}return Z.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),Z.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return X.call(this)},get:function(e){return null==e?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=Z.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,"find"===t?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return Z.each(this,e,t)},ready:function(e){return Z.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(X.apply(this,arguments),"slice",X.call(arguments).join(","))},map:function(e){return this.pushStack(Z.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:G,sort:[].sort,splice:[].splice},Z.fn.init.prototype=Z.fn,Z.extend=Z.fn.extend=function(){var e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof s||Z.isFunction(s)||(s={}),u===l&&(s=this,--l);l<u;l++)if(null!=(e=arguments[l]))for(n in e)r=s[n],i=e[n],s!==i&&(c&&i&&(Z.isPlainObject(i)||(o=Z.isArray(i)))?(o?(o=!1,a=r&&Z.isArray(r)?r:[]):a=r&&Z.isPlainObject(r)?r:{},s[n]=Z.extend(c,a,i)):i!==t&&(s[n]=i));return s},Z.extend({noConflict:function(t){return e.$===Z&&(e.$=V),t&&e.jQuery===Z&&(e.jQuery=z),Z},isReady:!1,readyWait:1,holdReady:function(e){e?Z.readyWait++:Z.ready(!0)},ready:function(e){if(e===!0?!--Z.readyWait:!Z.isReady){if(!q.body)return setTimeout(Z.ready,1);Z.isReady=!0,e!==!0&&--Z.readyWait>0||(F.resolveWith(q,[Z]),Z.fn.trigger&&Z(q).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===Z.type(e)},isArray:Array.isArray||function(e){return"array"===Z.type(e)},isWindow:function(e){return null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?String(e):de[K.call(e)]||"object"},isPlainObject:function(e){if(!e||"object"!==Z.type(e)||e.nodeType||Z.isWindow(e))return!1;try{if(e.constructor&&!Y.call(e,"constructor")&&!Y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||Y.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return e&&"string"==typeof e?("boolean"==typeof t&&(n=t,t=0),t=t||q,(r=oe.exec(e))?[t.createElement(r[1])]:(r=Z.buildFragment([e],t,n?null:[]),Z.merge([],(r.cacheable?Z.clone(r.fragment):r.fragment).childNodes))):null},parseJSON:function(t){return t&&"string"==typeof t?(t=Z.trim(t),e.JSON&&e.JSON.parse?e.JSON.parse(t):ae.test(t.replace(le,"@").replace(ue,"]").replace(se,""))?new Function("return "+t)():void Z.error("Invalid JSON: "+t)):null},parseXML:function(n){var r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||Z.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&te.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(ce,"ms-").replace(pe,he)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,o=0,a=e.length,s=a===t||Z.isFunction(e);if(r)if(s){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;o<a&&n.apply(e[o++],r)!==!1;);else if(s){for(i in e)if(n.call(e[i],i,e[i])===!1)break}else for(;o<a&&n.call(e[o],o,e[o++])!==!1;);return e},trim:Q&&!Q.call("\ufeff ")?function(e){return null==e?"":Q.call(e)}:function(e){return null==e?"":(e+"").replace(re,"")},makeArray:function(e,t){var n,r=t||[];return null!=e&&(n=Z.type(e),null==e.length||"string"===n||"function"===n||"regexp"===n||Z.isWindow(e)?G.call(r,e):Z.merge(r,e)),r},inArray:function(e,t,n){var r;if(t){if(J)return J.call(t,e,n);for(r=t.length,n=n?n<0?Math.max(0,r+n):n:0;n<r;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,o=0;if("number"==typeof r)for(;o<r;o++)e[i++]=n[o];else for(;n[o]!==t;)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var r,i=[],o=0,a=e.length;for(n=!!n;o<a;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,n,r){var i,o,a=[],s=0,l=e.length,u=e instanceof Z||l!==t&&"number"==typeof l&&(l>0&&e[0]&&e[l-1]||0===l||Z.isArray(e));if(u)for(;s<l;s++)i=n(e[s],s,r),null!=i&&(a[a.length]=i);else for(o in e)i=n(e[o],o,r),null!=i&&(a[a.length]=i);return a.concat.apply([],a)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof n&&(r=e[n],n=e,e=r),Z.isFunction(e)?(i=X.call(arguments,2),o=function(){return e.apply(n,i.concat(X.call(arguments)))},o.guid=e.guid=e.guid||Z.guid++,o):t},access:function(e,n,r,i,o,a,s){var l,u=null==r,c=0,p=e.length;if(r&&"object"==typeof r){for(c in r)Z.access(e,n,c,r[c],1,a,i);o=1}else if(i!==t){if(l=s===t&&Z.isFunction(i),u&&(l?(l=n,n=function(e,t,n){return l.call(Z(e),n)}):(n.call(e,i),n=null)),n)for(;c<p;c++)n(e[c],r,l?i.call(e[c],c,n(e[c],r)):i,s);o=1}return o?e:u?n.call(e):p?n(e[0],r):a},now:function(){return(new Date).getTime()}}),Z.ready.promise=function(t){if(!F)if(F=Z.Deferred(),"complete"===q.readyState)setTimeout(Z.ready,1);else if(q.addEventListener)q.addEventListener("DOMContentLoaded",fe,!1),e.addEventListener("load",Z.ready,!1);else{q.attachEvent("onreadystatechange",fe),e.attachEvent("onload",Z.ready);var n=!1;try{n=null==e.frameElement&&q.documentElement}catch(r){}n&&n.doScroll&&!function i(){if(!Z.isReady){try{n.doScroll("left")}catch(e){return setTimeout(i,50)}Z.ready()}}()}return F.promise(t)},Z.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(e,t){de["[object "+t+"]"]=t.toLowerCase()}),$=Z(q);var ge={};Z.Callbacks=function(e){e="string"==typeof e?ge[e]||r(e):Z.extend({},e);var n,i,o,a,s,l,u=[],c=!e.once&&[],p=function(t){for(n=e.memory&&t,i=!0,l=a||0,a=0,s=u.length,o=!0;u&&l<s;l++)if(u[l].apply(t[0],t[1])===!1&&e.stopOnFalse){n=!1;break}o=!1,u&&(c?c.length&&p(c.shift()):n?u=[]:h.disable())},h={add:function(){if(u){var t=u.length;!function r(t){Z.each(t,function(t,n){var i=Z.type(n);"function"===i?e.unique&&h.has(n)||u.push(n):n&&n.length&&"string"!==i&&r(n)})}(arguments),o?s=u.length:n&&(a=t,p(n))}return this},remove:function(){return u&&Z.each(arguments,function(e,t){for(var n;(n=Z.inArray(t,u,n))>-1;)u.splice(n,1),o&&(n<=s&&s--,n<=l&&l--)}),this},has:function(e){return Z.inArray(e,u)>-1},empty:function(){return u=[],this},disable:function(){return u=c=n=t,this},disabled:function(){return!u},lock:function(){return c=t,n||h.disable(),this},locked:function(){return!c},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!u||i&&!c||(o?c.push(t):p(t)),this},fire:function(){return h.fireWith(this,arguments),this},fired:function(){return!!i}};return h},Z.extend({Deferred:function(e){var t=[["resolve","done",Z.Callbacks("once memory"),"resolved"],["reject","fail",Z.Callbacks("once memory"),"rejected"],["notify","progress",Z.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return Z.Deferred(function(n){Z.each(t,function(t,r){var o=r[0],a=e[t];i[r[1]](Z.isFunction(a)?function(){var e=a.apply(this,arguments);e&&Z.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[o+"With"](this===i?n:this,[e])}:n[o])}),e=null}).promise()},promise:function(e){return null!=e?Z.extend(e,r):r}},i={};return r.pipe=r.then,Z.each(t,function(e,o){var a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=a.fire,i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,o=X.call(arguments),a=o.length,s=1!==a||e&&Z.isFunction(e.promise)?a:0,l=1===s?e:Z.Deferred(),u=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?X.call(arguments):i,r===t?l.notifyWith(n,r):--s||l.resolveWith(n,r)}};if(a>1)for(t=new Array(a),n=new Array(a),r=new Array(a);i<a;i++)o[i]&&Z.isFunction(o[i].promise)?o[i].promise().done(u(i,r,o)).fail(l.reject).progress(u(i,n,t)):--s;return s||l.resolveWith(r,o),l.promise()}}),Z.support=function(){var t,n,r,i,o,a,s,l,u,c,p,h=q.createElement("div");if(h.setAttribute("className","t"),h.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=h.getElementsByTagName("*"),r=h.getElementsByTagName("a")[0],!n||!r||!n.length)return{};i=q.createElement("select"),o=i.appendChild(q.createElement("option")),a=h.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:3===h.firstChild.nodeType,tbody:!h.getElementsByTagName("tbody").length,htmlSerialize:!!h.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:"/a"===r.getAttribute("href"),opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:"on"===a.value,optSelected:o.selected,getSetAttribute:"t"!==h.className,enctype:!!q.createElement("form").enctype,html5Clone:"<:nav></:nav>"!==q.createElement("nav").cloneNode(!0).outerHTML,boxModel:"CSS1Compat"===q.compatMode,submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},a.checked=!0,t.noCloneChecked=a.cloneNode(!0).checked,i.disabled=!0,t.optDisabled=!o.disabled;try{delete h.test}catch(f){t.deleteExpando=!1}if(!h.addEventListener&&h.attachEvent&&h.fireEvent&&(h.attachEvent("onclick",p=function(){t.noCloneEvent=!1}),h.cloneNode(!0).fireEvent("onclick"),h.detachEvent("onclick",p)),a=q.createElement("input"),a.value="t",a.setAttribute("type","radio"),t.radioValue="t"===a.value,a.setAttribute("checked","checked"),a.setAttribute("name","t"),h.appendChild(a),s=q.createDocumentFragment(),s.appendChild(h.lastChild),t.checkClone=s.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=a.checked,s.removeChild(a),s.appendChild(h),h.attachEvent)for(u in{submit:!0,change:!0,focusin:!0})l="on"+u,c=l in h,c||(h.setAttribute(l,"return;"),c="function"==typeof h[l]),t[u+"Bubbles"]=c;return Z(function(){var n,r,i,o,a="padding:0;margin:0;border:0;display:block;overflow:hidden;",s=q.getElementsByTagName("body")[0];s&&(n=q.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",s.insertBefore(n,s.firstChild),r=q.createElement("div"),n.appendChild(r),r.innerHTML="<table><tr><td></td><td>t</td></tr></table>",i=r.getElementsByTagName("td"),i[0].style.cssText="padding:0;margin:0;border:0;display:none",c=0===i[0].offsetHeight,i[0].style.display="",i[1].style.display="none",t.reliableHiddenOffsets=c&&0===i[0].offsetHeight,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=4===r.offsetWidth,t.doesNotIncludeMarginInBodyOffset=1!==s.offsetTop,e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(r,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(r,null)||{width:"4px"}).width,o=q.createElement("div"),o.style.cssText=r.style.cssText=a,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),"undefined"!=typeof r.style.zoom&&(r.innerHTML="",r.style.cssText=a+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===r.offsetWidth,r.style.display="block",r.style.overflow="visible",r.innerHTML="<div></div>",r.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==r.offsetWidth,n.style.zoom=1),s.removeChild(n),n=r=i=o=null)}),s.removeChild(h),n=r=i=o=a=s=h=null,t}();var me=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,ve=/([A-Z])/g;Z.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(Z.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?Z.cache[e[Z.expando]]:e[Z.expando],!!e&&!o(e)},data:function(e,n,r,i){if(Z.acceptData(e)){var o,a,s=Z.expando,l="string"==typeof n,u=e.nodeType,c=u?Z.cache:e,p=u?e[s]:e[s]&&s;if(p&&c[p]&&(i||c[p].data)||!l||r!==t)return p||(u?e[s]=p=Z.deletedIds.pop()||Z.guid++:p=s),c[p]||(c[p]={},u||(c[p].toJSON=Z.noop)),"object"!=typeof n&&"function"!=typeof n||(i?c[p]=Z.extend(c[p],n):c[p].data=Z.extend(c[p].data,n)),o=c[p],i||(o.data||(o.data={}),o=o.data),r!==t&&(o[Z.camelCase(n)]=r),l?(a=o[n],null==a&&(a=o[Z.camelCase(n)])):a=o,a}},removeData:function(e,t,n){if(Z.acceptData(e)){var r,i,a,s=e.nodeType,l=s?Z.cache:e,u=s?e[Z.expando]:Z.expando;if(l[u]){if(t&&(r=n?l[u]:l[u].data)){Z.isArray(t)||(t in r?t=[t]:(t=Z.camelCase(t),t=t in r?[t]:t.split(" ")));for(i=0,a=t.length;i<a;i++)delete r[t[i]];if(!(n?o:Z.isEmptyObject)(r))return}(n||(delete l[u].data,o(l[u])))&&(s?Z.cleanData([e],!0):Z.support.deleteExpando||l!=l.window?delete l[u]:l[u]=null)}}},_data:function(e,t,n){return Z.data(e,t,n,!0)},acceptData:function(e){var t=e.nodeName&&Z.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),Z.fn.extend({data:function(e,n){var r,o,a,s,l,u=this[0],c=0,p=null;if(e===t){if(this.length&&(p=Z.data(u),1===u.nodeType&&!Z._data(u,"parsedAttrs"))){for(a=u.attributes,l=a.length;c<l;c++)s=a[c].name,s.indexOf("data-")||(s=Z.camelCase(s.substring(5)),i(u,s,p[s]));Z._data(u,"parsedAttrs",!0)}return p}return"object"==typeof e?this.each(function(){Z.data(this,e)}):(r=e.split(".",2),r[1]=r[1]?"."+r[1]:"",o=r[1]+"!",Z.access(this,function(n){return n===t?(p=this.triggerHandler("getData"+o,[r[0]]),p===t&&u&&(p=Z.data(u,e),p=i(u,e,p)),p===t&&r[1]?this.data(r[0]):p):(r[1]=n,void this.each(function(){var t=Z(this);t.triggerHandler("setData"+o,r),Z.data(this,e,n),t.triggerHandler("changeData"+o,r); +}))},null,n,arguments.length>1,null,!1))},removeData:function(e){return this.each(function(){Z.removeData(this,e)})}}),Z.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=Z._data(e,t),n&&(!r||Z.isArray(n)?r=Z._data(e,t,Z.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=Z.queue(e,t),r=n.length,i=n.shift(),o=Z._queueHooks(e,t),a=function(){Z.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return Z._data(e,n)||Z._data(e,n,{empty:Z.Callbacks("once memory").add(function(){Z.removeData(e,t+"queue",!0),Z.removeData(e,n,!0)})})}}),Z.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof e&&(n=e,e="fx",r--),arguments.length<r?Z.queue(this[0],e):n===t?this:this.each(function(){var t=Z.queue(this,e,n);Z._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&Z.dequeue(this,e)})},dequeue:function(e){return this.each(function(){Z.dequeue(this,e)})},delay:function(e,t){return e=Z.fx?Z.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,o=Z.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};for("string"!=typeof e&&(n=e,e=t),e=e||"fx";s--;)r=Z._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return l(),o.promise(n)}});var ye,be,xe,we=/[\t\r\n]/g,Se=/\r/g,ke=/^(?:button|input)$/i,Ce=/^(?:button|input|object|select|textarea)$/i,_e=/^a(?:rea|)$/i,Ee=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,Ae=Z.support.getSetAttribute;Z.fn.extend({attr:function(e,t){return Z.access(this,Z.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){Z.removeAttr(this,e)})},prop:function(e,t){return Z.access(this,Z.prop,e,t,arguments.length>1)},removeProp:function(e){return e=Z.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,o,a,s;if(Z.isFunction(e))return this.each(function(t){Z(this).addClass(e.call(this,t,this.className))});if(e&&"string"==typeof e)for(t=e.split(ne),n=0,r=this.length;n<r;n++)if(i=this[n],1===i.nodeType)if(i.className||1!==t.length){for(o=" "+i.className+" ",a=0,s=t.length;a<s;a++)o.indexOf(" "+t[a]+" ")<0&&(o+=t[a]+" ");i.className=Z.trim(o)}else i.className=e;return this},removeClass:function(e){var n,r,i,o,a,s,l;if(Z.isFunction(e))return this.each(function(t){Z(this).removeClass(e.call(this,t,this.className))});if(e&&"string"==typeof e||e===t)for(n=(e||"").split(ne),s=0,l=this.length;s<l;s++)if(i=this[s],1===i.nodeType&&i.className){for(r=(" "+i.className+" ").replace(we," "),o=0,a=n.length;o<a;o++)for(;r.indexOf(" "+n[o]+" ")>=0;)r=r.replace(" "+n[o]+" "," ");i.className=e?Z.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,r="boolean"==typeof t;return Z.isFunction(e)?this.each(function(n){Z(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n)for(var i,o=0,a=Z(this),s=t,l=e.split(ne);i=l[o++];)s=r?s:!a.hasClass(i),a[s?"addClass":"removeClass"](i);else"undefined"!==n&&"boolean"!==n||(this.className&&Z._data(this,"__className__",this.className),this.className=this.className||e===!1?"":Z._data(this,"__className__")||"")})},hasClass:function(e){for(var t=" "+e+" ",n=0,r=this.length;n<r;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(we," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,o=this[0];{if(arguments.length)return i=Z.isFunction(e),this.each(function(r){var o,a=Z(this);1===this.nodeType&&(o=i?e.call(this,r,a.val()):e,null==o?o="":"number"==typeof o?o+="":Z.isArray(o)&&(o=Z.map(o,function(e){return null==e?"":e+""})),n=Z.valHooks[this.type]||Z.valHooks[this.nodeName.toLowerCase()],n&&"set"in n&&n.set(this,o,"value")!==t||(this.value=o))});if(o)return n=Z.valHooks[o.type]||Z.valHooks[o.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(o,"value"))!==t?r:(r=o.value,"string"==typeof r?r.replace(Se,""):null==r?"":r)}}}),Z.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){for(var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||i<0,a=o?null:[],s=o?i+1:r.length,l=i<0?s:o?i:0;l<s;l++)if(n=r[l],(n.selected||l===i)&&(Z.support.optDisabled?!n.disabled:null===n.getAttribute("disabled"))&&(!n.parentNode.disabled||!Z.nodeName(n.parentNode,"optgroup"))){if(t=Z(n).val(),o)return t;a.push(t)}return a},set:function(e,t){var n=Z.makeArray(t);return Z(e).find("option").each(function(){this.selected=Z.inArray(Z(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var o,a,s,l=e.nodeType;if(e&&3!==l&&8!==l&&2!==l)return i&&Z.isFunction(Z.fn[n])?Z(e)[n](r):"undefined"==typeof e.getAttribute?Z.prop(e,n,r):(s=1!==l||!Z.isXMLDoc(e),s&&(n=n.toLowerCase(),a=Z.attrHooks[n]||(Ee.test(n)?be:ye)),r!==t?null===r?void Z.removeAttr(e,n):a&&"set"in a&&s&&(o=a.set(e,r,n))!==t?o:(e.setAttribute(n,r+""),r):a&&"get"in a&&s&&null!==(o=a.get(e,n))?o:(o=e.getAttribute(n),null===o?t:o))},removeAttr:function(e,t){var n,r,i,o,a=0;if(t&&1===e.nodeType)for(r=t.split(ne);a<r.length;a++)i=r[a],i&&(n=Z.propFix[i]||i,o=Ee.test(i),o||Z.attr(e,i,""),e.removeAttribute(Ae?i:n),o&&n in e&&(e[n]=!1))},attrHooks:{type:{set:function(e,t){if(ke.test(e.nodeName)&&e.parentNode)Z.error("type property can't be changed");else if(!Z.support.radioValue&&"radio"===t&&Z.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}},value:{get:function(e,t){return ye&&Z.nodeName(e,"button")?ye.get(e,t):t in e?e.value:null},set:function(e,t,n){return ye&&Z.nodeName(e,"button")?ye.set(e,t,n):void(e.value=t)}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return a=1!==s||!Z.isXMLDoc(e),a&&(n=Z.propFix[n]||n,o=Z.propHooks[n]),r!==t?o&&"set"in o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):Ce.test(e.nodeName)||_e.test(e.nodeName)&&e.href?0:t}}}}),be={get:function(e,n){var r,i=Z.prop(e,n);return i===!0||"boolean"!=typeof i&&(r=e.getAttributeNode(n))&&r.nodeValue!==!1?n.toLowerCase():t},set:function(e,t,n){var r;return t===!1?Z.removeAttr(e,n):(r=Z.propFix[n]||n,r in e&&(e[r]=!0),e.setAttribute(n,n.toLowerCase())),n}},Ae||(xe={name:!0,id:!0,coords:!0},ye=Z.valHooks.button={get:function(e,n){var r;return r=e.getAttributeNode(n),r&&(xe[n]?""!==r.value:r.specified)?r.value:t},set:function(e,t,n){var r=e.getAttributeNode(n);return r||(r=q.createAttribute(n),e.setAttributeNode(r)),r.value=t+""}},Z.each(["width","height"],function(e,t){Z.attrHooks[t]=Z.extend(Z.attrHooks[t],{set:function(e,n){if(""===n)return e.setAttribute(t,"auto"),n}})}),Z.attrHooks.contenteditable={get:ye.get,set:function(e,t,n){""===t&&(t="false"),ye.set(e,t,n)}}),Z.support.hrefNormalized||Z.each(["href","src","width","height"],function(e,n){Z.attrHooks[n]=Z.extend(Z.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return null===r?t:r}})}),Z.support.style||(Z.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||t},set:function(e,t){return e.style.cssText=t+""}}),Z.support.optSelected||(Z.propHooks.selected=Z.extend(Z.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),Z.support.enctype||(Z.propFix.enctype="encoding"),Z.support.checkOn||Z.each(["radio","checkbox"],function(){Z.valHooks[this]={get:function(e){return null===e.getAttribute("value")?"on":e.value}}}),Z.each(["radio","checkbox"],function(){Z.valHooks[this]=Z.extend(Z.valHooks[this],{set:function(e,t){if(Z.isArray(t))return e.checked=Z.inArray(Z(e).val(),t)>=0}})});var Ne=/^(?:textarea|input|select)$/i,Te=/^([^\.]*|)(?:\.(.+)|)$/,Pe=/(?:^|\s)hover(\.\S+|)\b/,Le=/^key/,je=/^(?:mouse|contextmenu)|click/,Oe=/^(?:focusinfocus|focusoutblur)$/,Me=function(e){return Z.event.special.hover?e:e.replace(Pe,"mouseenter$1 mouseleave$1")};Z.event={add:function(e,n,r,i,o){var a,s,l,u,c,p,h,f,d,g,m;if(3!==e.nodeType&&8!==e.nodeType&&n&&r&&(a=Z._data(e))){for(r.handler&&(d=r,r=d.handler,o=d.selector),r.guid||(r.guid=Z.guid++),l=a.events,l||(a.events=l={}),s=a.handle,s||(a.handle=s=function(e){return"undefined"==typeof Z||e&&Z.event.triggered===e.type?t:Z.event.dispatch.apply(s.elem,arguments)},s.elem=e),n=Z.trim(Me(n)).split(" "),u=0;u<n.length;u++)c=Te.exec(n[u])||[],p=c[1],h=(c[2]||"").split(".").sort(),m=Z.event.special[p]||{},p=(o?m.delegateType:m.bindType)||p,m=Z.event.special[p]||{},f=Z.extend({type:p,origType:c[1],data:i,handler:r,guid:r.guid,selector:o,needsContext:o&&Z.expr.match.needsContext.test(o),namespace:h.join(".")},d),g=l[p],g||(g=l[p]=[],g.delegateCount=0,m.setup&&m.setup.call(e,i,h,s)!==!1||(e.addEventListener?e.addEventListener(p,s,!1):e.attachEvent&&e.attachEvent("on"+p,s))),m.add&&(m.add.call(e,f),f.handler.guid||(f.handler.guid=r.guid)),o?g.splice(g.delegateCount++,0,f):g.push(f),Z.event.global[p]=!0;e=null}},global:{},remove:function(e,t,n,r,i){var o,a,s,l,u,c,p,h,f,d,g,m=Z.hasData(e)&&Z._data(e);if(m&&(h=m.events)){for(t=Z.trim(Me(t||"")).split(" "),o=0;o<t.length;o++)if(a=Te.exec(t[o])||[],s=l=a[1],u=a[2],s){for(f=Z.event.special[s]||{},s=(r?f.delegateType:f.bindType)||s,d=h[s]||[],c=d.length,u=u?new RegExp("(^|\\.)"+u.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null,p=0;p<d.length;p++)g=d[p],!i&&l!==g.origType||n&&n.guid!==g.guid||u&&!u.test(g.namespace)||r&&r!==g.selector&&("**"!==r||!g.selector)||(d.splice(p--,1),g.selector&&d.delegateCount--,f.remove&&f.remove.call(e,g));0===d.length&&c!==d.length&&(f.teardown&&f.teardown.call(e,u,m.handle)!==!1||Z.removeEvent(e,s,m.handle),delete h[s])}else for(s in h)Z.event.remove(e,s+t[o],n,r,!0);Z.isEmptyObject(h)&&(delete m.handle,Z.removeData(e,"events",!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(n,r,i,o){if(!i||3!==i.nodeType&&8!==i.nodeType){var a,s,l,u,c,p,h,f,d,g,m=n.type||n,v=[];if(!Oe.test(m+Z.event.triggered)&&(m.indexOf("!")>=0&&(m=m.slice(0,-1),s=!0),m.indexOf(".")>=0&&(v=m.split("."),m=v.shift(),v.sort()),i&&!Z.event.customEvent[m]||Z.event.global[m]))if(n="object"==typeof n?n[Z.expando]?n:new Z.Event(m,n):new Z.Event(m),n.type=m,n.isTrigger=!0,n.exclusive=s,n.namespace=v.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+v.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,p=m.indexOf(":")<0?"on"+m:"",i){if(n.result=t,n.target||(n.target=i),r=null!=r?Z.makeArray(r):[],r.unshift(n),h=Z.event.special[m]||{},!h.trigger||h.trigger.apply(i,r)!==!1){if(d=[[i,h.bindType||m]],!o&&!h.noBubble&&!Z.isWindow(i)){for(g=h.delegateType||m,u=Oe.test(g+m)?i:i.parentNode,c=i;u;u=u.parentNode)d.push([u,g]),c=u;c===(i.ownerDocument||q)&&d.push([c.defaultView||c.parentWindow||e,g])}for(l=0;l<d.length&&!n.isPropagationStopped();l++)u=d[l][0],n.type=d[l][1],f=(Z._data(u,"events")||{})[n.type]&&Z._data(u,"handle"),f&&f.apply(u,r),f=p&&u[p],f&&Z.acceptData(u)&&f.apply&&f.apply(u,r)===!1&&n.preventDefault();return n.type=m,o||n.isDefaultPrevented()||h._default&&h._default.apply(i.ownerDocument,r)!==!1||"click"===m&&Z.nodeName(i,"a")||!Z.acceptData(i)||p&&i[m]&&("focus"!==m&&"blur"!==m||0!==n.target.offsetWidth)&&!Z.isWindow(i)&&(c=i[p],c&&(i[p]=null),Z.event.triggered=m,i[m](),Z.event.triggered=t,c&&(i[p]=c)),n.result}}else{a=Z.cache;for(l in a)a[l].events&&a[l].events[m]&&Z.event.trigger(n,r,a[l].handle.elem,!0)}}},dispatch:function(n){n=Z.event.fix(n||e.event);var r,i,o,a,s,l,u,c,p,h=(Z._data(this,"events")||{})[n.type]||[],f=h.delegateCount,d=X.call(arguments),g=!n.exclusive&&!n.namespace,m=Z.event.special[n.type]||{},v=[];if(d[0]=n,n.delegateTarget=this,!m.preDispatch||m.preDispatch.call(this,n)!==!1){if(f&&(!n.button||"click"!==n.type))for(o=n.target;o!=this;o=o.parentNode||this)if(o.disabled!==!0||"click"!==n.type){for(s={},u=[],r=0;r<f;r++)c=h[r],p=c.selector,s[p]===t&&(s[p]=c.needsContext?Z(p,this).index(o)>=0:Z.find(p,this,null,[o]).length),s[p]&&u.push(c);u.length&&v.push({elem:o,matches:u})}for(h.length>f&&v.push({elem:this,matches:h.slice(f)}),r=0;r<v.length&&!n.isPropagationStopped();r++)for(l=v[r],n.currentTarget=l.elem,i=0;i<l.matches.length&&!n.isImmediatePropagationStopped();i++)c=l.matches[i],(g||!n.namespace&&!c.namespace||n.namespace_re&&n.namespace_re.test(c.namespace))&&(n.data=c.data,n.handleObj=c,a=((Z.event.special[c.origType]||{}).handle||c.handler).apply(l.elem,d),a!==t&&(n.result=a,a===!1&&(n.preventDefault(),n.stopPropagation())));return m.postDispatch&&m.postDispatch.call(this,n),n.result}},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,i,o,a=n.button,s=n.fromElement;return null==e.pageX&&null!=n.clientX&&(r=e.target.ownerDocument||q,i=r.documentElement,o=r.body,e.pageX=n.clientX+(i&&i.scrollLeft||o&&o.scrollLeft||0)-(i&&i.clientLeft||o&&o.clientLeft||0),e.pageY=n.clientY+(i&&i.scrollTop||o&&o.scrollTop||0)-(i&&i.clientTop||o&&o.clientTop||0)),!e.relatedTarget&&s&&(e.relatedTarget=s===e.target?n.toElement:s),e.which||a===t||(e.which=1&a?1:2&a?3:4&a?2:0),e}},fix:function(e){if(e[Z.expando])return e;var t,n,r=e,i=Z.event.fixHooks[e.type]||{},o=i.props?this.props.concat(i.props):this.props;for(e=Z.Event(r),t=o.length;t;)n=o[--t],e[n]=r[n];return e.target||(e.target=r.srcElement||q),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,i.filter?i.filter(e,r):e},special:{load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(e,t,n){Z.isWindow(this)&&(this.onbeforeunload=n)},teardown:function(e,t){this.onbeforeunload===t&&(this.onbeforeunload=null)}}},simulate:function(e,t,n,r){var i=Z.extend(new Z.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?Z.event.trigger(i,null,t):Z.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},Z.event.handle=Z.event.dispatch,Z.removeEvent=q.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&("undefined"==typeof e[r]&&(e[r]=null),e.detachEvent(r,n))},Z.Event=function(e,t){return this instanceof Z.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?s:a):this.type=e,t&&Z.extend(this,t),this.timeStamp=e&&e.timeStamp||Z.now(),void(this[Z.expando]=!0)):new Z.Event(e,t)},Z.Event.prototype={preventDefault:function(){this.isDefaultPrevented=s;var e=this.originalEvent;e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=s;var e=this.originalEvent;e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=s,this.stopPropagation()},isDefaultPrevented:a,isPropagationStopped:a,isImmediatePropagationStopped:a},Z.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){Z.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;o.selector;return i&&(i===r||Z.contains(r,i))||(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),Z.support.submitBubbles||(Z.event.special.submit={setup:function(){return!Z.nodeName(this,"form")&&void Z.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=Z.nodeName(n,"input")||Z.nodeName(n,"button")?n.form:t;r&&!Z._data(r,"_submit_attached")&&(Z.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),Z._data(r,"_submit_attached",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&Z.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return!Z.nodeName(this,"form")&&void Z.event.remove(this,"._submit")}}),Z.support.changeBubbles||(Z.event.special.change={setup:function(){return Ne.test(this.nodeName)?("checkbox"!==this.type&&"radio"!==this.type||(Z.event.add(this,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),Z.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),Z.event.simulate("change",this,e,!0)})),!1):void Z.event.add(this,"beforeactivate._change",function(e){var t=e.target;Ne.test(t.nodeName)&&!Z._data(t,"_change_attached")&&(Z.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||Z.event.simulate("change",this.parentNode,e,!0)}),Z._data(t,"_change_attached",!0))})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||"radio"!==t.type&&"checkbox"!==t.type)return e.handleObj.handler.apply(this,arguments)},teardown:function(){return Z.event.remove(this,"._change"),!Ne.test(this.nodeName)}}),Z.support.focusinBubbles||Z.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){Z.event.simulate(t,e.target,Z.event.fix(e),!0)};Z.event.special[t]={setup:function(){0===n++&&q.addEventListener(e,r,!0)},teardown:function(){0===--n&&q.removeEventListener(e,r,!0)}}}),Z.fn.extend({on:function(e,n,r,i,o){var s,l;if("object"==typeof e){"string"!=typeof n&&(r=r||n,n=t);for(l in e)this.on(l,n,r,e[l],o);return this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=a;else if(!i)return this;return 1===o&&(s=i,i=function(e){return Z().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=Z.guid++)),this.each(function(){Z.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,o;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,Z(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof e){for(o in e)this.off(o,n,e[o]);return this}return n!==!1&&"function"!=typeof n||(r=n,n=t),r===!1&&(r=a),this.each(function(){Z.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},live:function(e,t,n){return Z(this.context).on(e,this.selector,t,n),this},die:function(e,t){return Z(this.context).off(e,this.selector||"**",t),this},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){Z.event.trigger(e,t,this)})},triggerHandler:function(e,t){if(this[0])return Z.event.trigger(e,t,this[0],!0)},toggle:function(e){var t=arguments,n=e.guid||Z.guid++,r=0,i=function(n){var i=(Z._data(this,"lastToggle"+e.guid)||0)%r;return Z._data(this,"lastToggle"+e.guid,i+1),n.preventDefault(),t[i].apply(this,arguments)||!1};for(i.guid=n;r<t.length;)t[r++].guid=n;return this.click(i)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),Z.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){Z.fn[t]=function(e,n){return null==n&&(n=e,e=null),arguments.length>0?this.on(t,null,e,n):this.trigger(t)},Le.test(t)&&(Z.event.fixHooks[t]=Z.event.keyHooks),je.test(t)&&(Z.event.fixHooks[t]=Z.event.mouseHooks)}),function(e,t){function n(e,t,n,r){n=n||[],t=t||L;var i,o,a,s,l=t.nodeType;if(!e||"string"!=typeof e)return n;if(1!==l&&9!==l)return[];if(a=w(t),!a&&!r&&(i=ne.exec(e)))if(s=i[1]){if(9===l){if(o=t.getElementById(s),!o||!o.parentNode)return n;if(o.id===s)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(s))&&S(t,o)&&o.id===s)return n.push(o),n}else{if(i[2])return H.apply(n,I.call(t.getElementsByTagName(e),0)),n;if((s=i[3])&&he&&t.getElementsByClassName)return H.apply(n,I.call(t.getElementsByClassName(s),0)),n}return g(e.replace(Y,"$1"),t,n,r,a)}function r(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function i(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function o(e){return B(function(t){return t=+t,B(function(n,r){for(var i,o=e([],n.length,t),a=o.length;a--;)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function a(e,t,n){if(e===t)return n;for(var r=e.nextSibling;r;){if(r===t)return-1;r=r.nextSibling}return 1}function s(e,t){var r,i,o,a,s,l,u,c=q[T][e+" "];if(c)return t?0:c.slice(0);for(s=e,l=[],u=b.preFilter;s;){r&&!(i=Q.exec(s))||(i&&(s=s.slice(i[0].length)||s),l.push(o=[])),r=!1,(i=ee.exec(s))&&(o.push(r=new P(i.shift())),s=s.slice(r.length),r.type=i[0].replace(Y," "));for(a in b.filter)!(i=se[a].exec(s))||u[a]&&!(i=u[a](i))||(o.push(r=new P(i.shift())),s=s.slice(r.length),r.type=a,r.matches=i);if(!r)break}return t?s.length:s?n.error(e):q(e,l).slice(0)}function l(e,t,n){var r=t.dir,i=n&&"parentNode"===t.dir,o=M++;return t.first?function(t,n,o){for(;t=t[r];)if(i||1===t.nodeType)return e(t,n,o)}:function(t,n,a){if(a){for(;t=t[r];)if((i||1===t.nodeType)&&e(t,n,a))return t}else for(var s,l=O+" "+o+" ",u=l+v;t=t[r];)if(i||1===t.nodeType){if((s=t[T])===u)return t.sizset;if("string"==typeof s&&0===s.indexOf(l)){if(t.sizset)return t}else{if(t[T]=u,e(t,n,a))return t.sizset=!0,t;t.sizset=!1}}}}function u(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function c(e,t,n,r,i){for(var o,a=[],s=0,l=e.length,u=null!=t;s<l;s++)(o=e[s])&&(n&&!n(o,r,i)||(a.push(o),u&&t.push(s)));return a}function p(e,t,n,r,i,o){return r&&!r[T]&&(r=p(r)),i&&!i[T]&&(i=p(i,o)),B(function(o,a,s,l){var u,p,h,f=[],g=[],m=a.length,v=o||d(t||"*",s.nodeType?[s]:s,[]),y=!e||!o&&t?v:c(v,f,e,s,l),b=n?i||(o?e:m||r)?[]:a:y;if(n&&n(y,b,s,l),r)for(u=c(b,g),r(u,[],s,l),p=u.length;p--;)(h=u[p])&&(b[g[p]]=!(y[g[p]]=h));if(o){if(i||e){if(i){for(u=[],p=b.length;p--;)(h=b[p])&&u.push(y[p]=h);i(null,b=[],u,l)}for(p=b.length;p--;)(h=b[p])&&(u=i?R.call(o,h):f[p])>-1&&(o[u]=!(a[u]=h))}}else b=c(b===a?b.splice(m,b.length):b),i?i(null,a,b,l):H.apply(a,b)})}function h(e){for(var t,n,r,i=e.length,o=b.relative[e[0].type],a=o||b.relative[" "],s=o?1:0,c=l(function(e){return e===t},a,!0),f=l(function(e){return R.call(t,e)>-1},a,!0),d=[function(e,n,r){return!o&&(r||n!==E)||((t=n).nodeType?c(e,n,r):f(e,n,r))}];s<i;s++)if(n=b.relative[e[s].type])d=[l(u(d),n)];else{if(n=b.filter[e[s].type].apply(null,e[s].matches),n[T]){for(r=++s;r<i&&!b.relative[e[r].type];r++);return p(s>1&&u(d),s>1&&e.slice(0,s-1).join("").replace(Y,"$1"),n,s<r&&h(e.slice(s,r)),r<i&&h(e=e.slice(r)),r<i&&e.join(""))}d.push(n)}return u(d)}function f(e,t){var r=t.length>0,i=e.length>0,o=function(a,s,l,u,p){var h,f,d,g=[],m=0,y="0",x=a&&[],w=null!=p,S=E,k=a||i&&b.find.TAG("*",p&&s.parentNode||s),C=O+=null==S?1:Math.E;for(w&&(E=s!==L&&s,v=o.el);null!=(h=k[y]);y++){if(i&&h){for(f=0;d=e[f];f++)if(d(h,s,l)){u.push(h);break}w&&(O=C,v=++o.el)}r&&((h=!d&&h)&&m--,a&&x.push(h))}if(m+=y,r&&y!==m){for(f=0;d=t[f];f++)d(x,g,s,l);if(a){if(m>0)for(;y--;)x[y]||g[y]||(g[y]=D.call(u));g=c(g)}H.apply(u,g),w&&!a&&g.length>0&&m+t.length>1&&n.uniqueSort(u)}return w&&(O=C,E=S),x};return o.el=0,r?B(o):o}function d(e,t,r){for(var i=0,o=t.length;i<o;i++)n(e,t[i],r);return r}function g(e,t,n,r,i){var o,a,l,u,c,p=s(e);p.length;if(!r&&1===p.length){if(a=p[0]=p[0].slice(0),a.length>2&&"ID"===(l=a[0]).type&&9===t.nodeType&&!i&&b.relative[a[1].type]){if(t=b.find.ID(l.matches[0].replace(ae,""),t,i)[0],!t)return n;e=e.slice(a.shift().length)}for(o=se.POS.test(e)?-1:a.length-1;o>=0&&(l=a[o],!b.relative[u=l.type]);o--)if((c=b.find[u])&&(r=c(l.matches[0].replace(ae,""),re.test(a[0].type)&&t.parentNode||t,i))){if(a.splice(o,1),e=r.length&&a.join(""),!e)return H.apply(n,I.call(r,0)),n;break}}return k(e,p)(r,t,i,n,re.test(e)),n}function m(){}var v,y,b,x,w,S,k,C,_,E,A=!0,N="undefined",T=("sizcache"+Math.random()).replace(".",""),P=String,L=e.document,j=L.documentElement,O=0,M=0,D=[].pop,H=[].push,I=[].slice,R=[].indexOf||function(e){for(var t=0,n=this.length;t<n;t++)if(this[t]===e)return t;return-1},B=function(e,t){return e[T]=null==t||t,e},$=function(){var e={},t=[];return B(function(n,r){return t.push(n)>b.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},F=$(),q=$(),W=$(),U="[\\x20\\t\\r\\n\\f]",z="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",V=z.replace("w","w#"),G="([*^$|!~]?=)",X="\\["+U+"*("+z+")"+U+"*(?:"+G+U+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+V+")|)|)"+U+"*\\]",J=":("+z+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+X+")|[^:]|\\\\.)*|.*))\\)|)",K=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+U+"*((?:-\\d)?\\d*)"+U+"*\\)|)(?=[^-]|$)",Y=new RegExp("^"+U+"+|((?:^|[^\\\\])(?:\\\\.)*)"+U+"+$","g"),Q=new RegExp("^"+U+"*,"+U+"*"),ee=new RegExp("^"+U+"*([\\x20\\t\\r\\n\\f>+~])"+U+"*"),te=new RegExp(J),ne=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,re=/[\x20\t\r\n\f]*[+~]/,ie=/h\d/i,oe=/input|select|textarea|button/i,ae=/\\(?!\\)/g,se={ID:new RegExp("^#("+z+")"),CLASS:new RegExp("^\\.("+z+")"),NAME:new RegExp("^\\[name=['\"]?("+z+")['\"]?\\]"),TAG:new RegExp("^("+z.replace("w","w*")+")"),ATTR:new RegExp("^"+X),PSEUDO:new RegExp("^"+J),POS:new RegExp(K,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+U+"*(even|odd|(([+-]|)(\\d*)n|)"+U+"*(?:([+-]|)"+U+"*(\\d+)|))"+U+"*\\)|)","i"),needsContext:new RegExp("^"+U+"*[>+~]|"+K,"i")},le=function(e){var t=L.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},ue=le(function(e){return e.appendChild(L.createComment("")),!e.getElementsByTagName("*").length}),ce=le(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==N&&"#"===e.firstChild.getAttribute("href")}),pe=le(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return"boolean"!==t&&"string"!==t}),he=le(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",!(!e.getElementsByClassName||!e.getElementsByClassName("e").length)&&(e.lastChild.className="e",2===e.getElementsByClassName("e").length)}),fe=le(function(e){e.id=T+0,e.innerHTML="<a name='"+T+"'></a><div name='"+T+"'></div>",j.insertBefore(e,j.firstChild);var t=L.getElementsByName&&L.getElementsByName(T).length===2+L.getElementsByName(T+0).length;return y=!L.getElementById(T),j.removeChild(e),t});try{I.call(j.childNodes,0)[0].nodeType}catch(de){I=function(e){for(var t,n=[];t=this[e];e++)n.push(t);return n}}n.matches=function(e,t){return n(e,null,null,t)},n.matchesSelector=function(e,t){return n(t,null,null,[e]).length>0},x=n.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=x(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=x(t);return n},w=n.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},S=n.contains=j.contains?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&1===r.nodeType&&n.contains&&n.contains(r))}:j.compareDocumentPosition?function(e,t){return t&&!!(16&e.compareDocumentPosition(t))}:function(e,t){for(;t=t.parentNode;)if(t===e)return!0;return!1},n.attr=function(e,t){var n,r=w(e);return r||(t=t.toLowerCase()),(n=b.attrHandle[t])?n(e):r||pe?e.getAttribute(t):(n=e.getAttributeNode(t),n?"boolean"==typeof e[t]?e[t]?t:null:n.specified?n.value:null:null)},b=n.selectors={cacheLength:50,createPseudo:B,match:se,attrHandle:ce?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:y?function(e,t,n){if(typeof t.getElementById!==N&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==N&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==N&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:ue?function(e,t){if(typeof t.getElementsByTagName!==N)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if("*"===e){for(var r,i=[],o=0;r=n[o];o++)1===r.nodeType&&i.push(r);return i}return n},NAME:fe&&function(e,t){if(typeof t.getElementsByName!==N)return t.getElementsByName(name)},CLASS:he&&function(e,t,n){if(typeof t.getElementsByClassName!==N&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(ae,""),e[3]=(e[4]||e[5]||"").replace(ae,""),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1]?(e[2]||n.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*("even"===e[2]||"odd"===e[2])),e[4]=+(e[6]+e[7]||"odd"===e[2])):e[2]&&n.error(e[0]),e},PSEUDO:function(e){var t,n;return se.CHILD.test(e[0])?null:(e[3]?e[2]=e[3]:(t=e[4])&&(te.test(t)&&(n=s(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t),e.slice(0,3))}},filter:{ID:y?function(e){return e=e.replace(ae,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace(ae,""),function(t){var n=typeof t.getAttributeNode!==N&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return"*"===e?function(){return!0}:(e=e.replace(ae,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=F[T][e+" "];return t||(t=new RegExp("(^|"+U+")"+e+"("+U+"|$)"))&&F(e,function(e){return t.test(e.className||typeof e.getAttribute!==N&&e.getAttribute("class")||"")})},ATTR:function(e,t,r){return function(i,o){var a=n.attr(i,e);return null==a?"!="===t:!t||(a+="","="===t?a===r:"!="===t?a!==r:"^="===t?r&&0===a.indexOf(r):"*="===t?r&&a.indexOf(r)>-1:"$="===t?r&&a.substr(a.length-r.length)===r:"~="===t?(" "+a+" ").indexOf(r)>-1:"|="===t&&(a===r||a.substr(0,r.length+1)===r+"-"))}},CHILD:function(e,t,n,r){return"nth"===e?function(e){var t,i,o=e.parentNode;if(1===n&&0===r)return!0;if(o)for(i=0,t=o.firstChild;t&&(1!==t.nodeType||(i++,e!==t));t=t.nextSibling);return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":for(;n=n.previousSibling;)if(1===n.nodeType)return!1;if("first"===e)return!0;n=t;case"last":for(;n=n.nextSibling;)if(1===n.nodeType)return!1;return!0}}},PSEUDO:function(e,t){var r,i=b.pseudos[e]||b.setFilters[e.toLowerCase()]||n.error("unsupported pseudo: "+e);return i[T]?i(t):i.length>1?(r=[e,e,"",t],b.setFilters.hasOwnProperty(e.toLowerCase())?B(function(e,n){for(var r,o=i(e,t),a=o.length;a--;)r=R.call(e,o[a]),e[r]=!(n[r]=o[a])}):function(e){return i(e,0,r)}):i}},pseudos:{not:B(function(e){var t=[],n=[],r=k(e.replace(Y,"$1"));return r[T]?B(function(e,t,n,i){for(var o,a=r(e,null,i,[]),s=e.length;s--;)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:B(function(e){return function(t){return n(e,t).length>0}}),contains:B(function(e){return function(t){return(t.textContent||t.innerText||x(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){ +return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!b.pseudos.empty(e)},empty:function(e){var t;for(e=e.firstChild;e;){if(e.nodeName>"@"||3===(t=e.nodeType)||4===t)return!1;e=e.nextSibling}return!0},header:function(e){return ie.test(e.nodeName)},text:function(e){var t,n;return"input"===e.nodeName.toLowerCase()&&"text"===(t=e.type)&&(null==(n=e.getAttribute("type"))||n.toLowerCase()===t)},radio:r("radio"),checkbox:r("checkbox"),file:r("file"),password:r("password"),image:r("image"),submit:i("submit"),reset:i("reset"),button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},input:function(e){return oe.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:o(function(){return[0]}),last:o(function(e,t){return[t-1]}),eq:o(function(e,t,n){return[n<0?n+t:n]}),even:o(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:o(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:o(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:o(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}},C=j.compareDocumentPosition?function(e,t){return e===t?(_=!0,0):(e.compareDocumentPosition&&t.compareDocumentPosition?4&e.compareDocumentPosition(t):e.compareDocumentPosition)?-1:1}:function(e,t){if(e===t)return _=!0,0;if(e.sourceIndex&&t.sourceIndex)return e.sourceIndex-t.sourceIndex;var n,r,i=[],o=[],s=e.parentNode,l=t.parentNode,u=s;if(s===l)return a(e,t);if(!s)return-1;if(!l)return 1;for(;u;)i.unshift(u),u=u.parentNode;for(u=l;u;)o.unshift(u),u=u.parentNode;n=i.length,r=o.length;for(var c=0;c<n&&c<r;c++)if(i[c]!==o[c])return a(i[c],o[c]);return c===n?a(e,o[c],-1):a(i[c],t,1)},[0,0].sort(C),A=!_,n.uniqueSort=function(e){var t,n=[],r=1,i=0;if(_=A,e.sort(C),_){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));for(;i--;)e.splice(n[i],1)}return e},n.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},k=n.compile=function(e,t){var n,r=[],i=[],o=W[T][e+" "];if(!o){for(t||(t=s(e)),n=t.length;n--;)o=h(t[n]),o[T]?r.push(o):i.push(o);o=W(e,f(i,r))}return o},L.querySelectorAll&&!function(){var e,t=g,r=/'|\\/g,i=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,o=[":focus"],a=[":active"],l=j.matchesSelector||j.mozMatchesSelector||j.webkitMatchesSelector||j.oMatchesSelector||j.msMatchesSelector;le(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||o.push("\\["+U+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||o.push(":checked")}),le(function(e){e.innerHTML="<p test=''></p>",e.querySelectorAll("[test^='']").length&&o.push("[*^$]="+U+"*(?:\"\"|'')"),e.innerHTML="<input type='hidden'/>",e.querySelectorAll(":enabled").length||o.push(":enabled",":disabled")}),o=new RegExp(o.join("|")),g=function(e,n,i,a,l){if(!a&&!l&&!o.test(e)){var u,c,p=!0,h=T,f=n,d=9===n.nodeType&&e;if(1===n.nodeType&&"object"!==n.nodeName.toLowerCase()){for(u=s(e),(p=n.getAttribute("id"))?h=p.replace(r,"\\$&"):n.setAttribute("id",h),h="[id='"+h+"'] ",c=u.length;c--;)u[c]=h+u[c].join("");f=re.test(e)&&n.parentNode||n,d=u.join(",")}if(d)try{return H.apply(i,I.call(f.querySelectorAll(d),0)),i}catch(g){}finally{p||n.removeAttribute("id")}}return t(e,n,i,a,l)},l&&(le(function(t){e=l.call(t,"div");try{l.call(t,"[test!='']:sizzle"),a.push("!=",J)}catch(n){}}),a=new RegExp(a.join("|")),n.matchesSelector=function(t,r){if(r=r.replace(i,"='$1']"),!w(t)&&!a.test(r)&&!o.test(r))try{var s=l.call(t,r);if(s||e||t.document&&11!==t.document.nodeType)return s}catch(u){}return n(r,null,null,[t]).length>0})}(),b.pseudos.nth=b.pseudos.eq,b.filters=m.prototype=b.pseudos,b.setFilters=new m,n.attr=Z.attr,Z.find=n,Z.expr=n.selectors,Z.expr[":"]=Z.expr.pseudos,Z.unique=n.uniqueSort,Z.text=n.getText,Z.isXMLDoc=n.isXML,Z.contains=n.contains}(e);var De=/Until$/,He=/^(?:parents|prev(?:Until|All))/,Ie=/^.[^:#\[\.,]*$/,Re=Z.expr.match.needsContext,Be={children:!0,contents:!0,next:!0,prev:!0};Z.fn.extend({find:function(e){var t,n,r,i,o,a,s=this;if("string"!=typeof e)return Z(e).filter(function(){for(t=0,n=s.length;t<n;t++)if(Z.contains(s[t],this))return!0});for(a=this.pushStack("","find",e),t=0,n=this.length;t<n;t++)if(r=a.length,Z.find(e,this[t],a),t>0)for(i=r;i<a.length;i++)for(o=0;o<r;o++)if(a[o]===a[i]){a.splice(i--,1);break}return a},has:function(e){var t,n=Z(e,this),r=n.length;return this.filter(function(){for(t=0;t<r;t++)if(Z.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(c(this,e,!1),"not",e)},filter:function(e){return this.pushStack(c(this,e,!0),"filter",e)},is:function(e){return!!e&&("string"==typeof e?Re.test(e)?Z(e,this.context).index(this[0])>=0:Z.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){for(var n,r=0,i=this.length,o=[],a=Re.test(e)||"string"!=typeof e?Z(e,t||this.context):0;r<i;r++)for(n=this[r];n&&n.ownerDocument&&n!==t&&11!==n.nodeType;){if(a?a.index(n)>-1:Z.find.matchesSelector(n,e)){o.push(n);break}n=n.parentNode}return o=o.length>1?Z.unique(o):o,this.pushStack(o,"closest",e)},index:function(e){return e?"string"==typeof e?Z.inArray(this[0],Z(e)):Z.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n="string"==typeof e?Z(e,t):Z.makeArray(e&&e.nodeType?[e]:e),r=Z.merge(this.get(),n);return this.pushStack(l(n[0])||l(r[0])?r:Z.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),Z.fn.andSelf=Z.fn.addBack,Z.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return Z.dir(e,"parentNode")},parentsUntil:function(e,t,n){return Z.dir(e,"parentNode",n)},next:function(e){return u(e,"nextSibling")},prev:function(e){return u(e,"previousSibling")},nextAll:function(e){return Z.dir(e,"nextSibling")},prevAll:function(e){return Z.dir(e,"previousSibling")},nextUntil:function(e,t,n){return Z.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return Z.dir(e,"previousSibling",n)},siblings:function(e){return Z.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return Z.sibling(e.firstChild)},contents:function(e){return Z.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:Z.merge([],e.childNodes)}},function(e,t){Z.fn[e]=function(n,r){var i=Z.map(this,t,n);return De.test(e)||(r=n),r&&"string"==typeof r&&(i=Z.filter(r,i)),i=this.length>1&&!Be[e]?Z.unique(i):i,this.length>1&&He.test(e)&&(i=i.reverse()),this.pushStack(i,e,X.call(arguments).join(","))}}),Z.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),1===t.length?Z.find.matchesSelector(t[0],e)?[t[0]]:[]:Z.find.matches(e,t)},dir:function(e,n,r){for(var i=[],o=e[n];o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!Z(o).is(r));)1===o.nodeType&&i.push(o),o=o[n];return i},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});var $e="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",Fe=/ jQuery\d+="(?:null|\d+)"/g,qe=/^\s+/,We=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,Ue=/<([\w:]+)/,ze=/<tbody/i,Ve=/<|&#?\w+;/,Ge=/<(?:script|style|link)/i,Xe=/<(?:script|object|embed|option|style)/i,Je=new RegExp("<(?:"+$e+")[\\s/>]","i"),Ke=/^(?:checkbox|radio)$/,Ye=/checked\s*(?:[^=]|=\s*.checked.)/i,Qe=/\/(java|ecma)script/i,Ze=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,et={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},tt=p(q),nt=tt.appendChild(q.createElement("div"));et.optgroup=et.option,et.tbody=et.tfoot=et.colgroup=et.caption=et.thead,et.th=et.td,Z.support.htmlSerialize||(et._default=[1,"X<div>","</div>"]),Z.fn.extend({text:function(e){return Z.access(this,function(e){return e===t?Z.text(this):this.empty().append((this[0]&&this[0].ownerDocument||q).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(Z.isFunction(e))return this.each(function(t){Z(this).wrapAll(e.call(this,t))});if(this[0]){var t=Z(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){for(var e=this;e.firstChild&&1===e.firstChild.nodeType;)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return Z.isFunction(e)?this.each(function(t){Z(this).wrapInner(e.call(this,t))}):this.each(function(){var t=Z(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=Z.isFunction(e);return this.each(function(n){Z(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){Z.nodeName(this,"body")||Z(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){1!==this.nodeType&&11!==this.nodeType||this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){1!==this.nodeType&&11!==this.nodeType||this.insertBefore(e,this.firstChild)})},before:function(){if(!l(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=Z.clean(arguments);return this.pushStack(Z.merge(e,this),"before",this.selector)}},after:function(){if(!l(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=Z.clean(arguments);return this.pushStack(Z.merge(this,e),"after",this.selector)}},remove:function(e,t){for(var n,r=0;null!=(n=this[r]);r++)e&&!Z.filter(e,[n]).length||(t||1!==n.nodeType||(Z.cleanData(n.getElementsByTagName("*")),Z.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n));return this},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)for(1===e.nodeType&&Z.cleanData(e.getElementsByTagName("*"));e.firstChild;)e.removeChild(e.firstChild);return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return Z.clone(this,e,t)})},html:function(e){return Z.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return 1===n.nodeType?n.innerHTML.replace(Fe,""):t;if("string"==typeof e&&!Ge.test(e)&&(Z.support.htmlSerialize||!Je.test(e))&&(Z.support.leadingWhitespace||!qe.test(e))&&!et[(Ue.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(We,"<$1></$2>");try{for(;r<i;r++)n=this[r]||{},1===n.nodeType&&(Z.cleanData(n.getElementsByTagName("*")),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){return l(this[0])?this.length?this.pushStack(Z(Z.isFunction(e)?e():e),"replaceWith",e):this:Z.isFunction(e)?this.each(function(t){var n=Z(this),r=n.html();n.replaceWith(e.call(this,t,r))}):("string"!=typeof e&&(e=Z(e).detach()),this.each(function(){var t=this.nextSibling,n=this.parentNode;Z(this).remove(),t?Z(t).before(e):Z(n).append(e)}))},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=[].concat.apply([],e);var i,o,a,s,l=0,u=e[0],c=[],p=this.length;if(!Z.support.checkClone&&p>1&&"string"==typeof u&&Ye.test(u))return this.each(function(){Z(this).domManip(e,n,r)});if(Z.isFunction(u))return this.each(function(i){var o=Z(this);e[0]=u.call(this,i,n?o.html():t),o.domManip(e,n,r)});if(this[0]){if(i=Z.buildFragment(e,this,c),a=i.fragment,o=a.firstChild,1===a.childNodes.length&&(a=o),o)for(n=n&&Z.nodeName(o,"tr"),s=i.cacheable||p-1;l<p;l++)r.call(n&&Z.nodeName(this[l],"table")?h(this[l],"tbody"):this[l],l===s?a:Z.clone(a,!0,!0));a=o=null,c.length&&Z.each(c,function(e,t){t.src?Z.ajax?Z.ajax({url:t.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):Z.error("no ajax"):Z.globalEval((t.text||t.textContent||t.innerHTML||"").replace(Ze,"")),t.parentNode&&t.parentNode.removeChild(t)})}return this}}),Z.buildFragment=function(e,n,r){var i,o,a,s=e[0];return n=n||q,n=!n.nodeType&&n[0]||n,n=n.ownerDocument||n,!(1===e.length&&"string"==typeof s&&s.length<512&&n===q&&"<"===s.charAt(0))||Xe.test(s)||!Z.support.checkClone&&Ye.test(s)||!Z.support.html5Clone&&Je.test(s)||(o=!0,i=Z.fragments[s],a=i!==t),i||(i=n.createDocumentFragment(),Z.clean(e,n,i,r),o&&(Z.fragments[s]=a&&i)),{fragment:i,cacheable:o}},Z.fragments={},Z.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){Z.fn[e]=function(n){var r,i=0,o=[],a=Z(n),s=a.length,l=1===this.length&&this[0].parentNode;if((null==l||l&&11===l.nodeType&&1===l.childNodes.length)&&1===s)return a[t](this[0]),this;for(;i<s;i++)r=(i>0?this.clone(!0):this).get(),Z(a[i])[t](r),o=o.concat(r);return this.pushStack(o,e,a.selector)}}),Z.extend({clone:function(e,t,n){var r,i,o,a;if(Z.support.html5Clone||Z.isXMLDoc(e)||!Je.test("<"+e.nodeName+">")?a=e.cloneNode(!0):(nt.innerHTML=e.outerHTML,nt.removeChild(a=nt.firstChild)),!(Z.support.noCloneEvent&&Z.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||Z.isXMLDoc(e)))for(d(e,a),r=g(e),i=g(a),o=0;r[o];++o)i[o]&&d(r[o],i[o]);if(t&&(f(e,a),n))for(r=g(e),i=g(a),o=0;r[o];++o)f(r[o],i[o]);return r=i=null,a},clean:function(e,t,n,r){var i,o,a,s,l,u,c,h,f,d,g,v=t===q&&tt,y=[];for(t&&"undefined"!=typeof t.createDocumentFragment||(t=q),i=0;null!=(a=e[i]);i++)if("number"==typeof a&&(a+=""),a){if("string"==typeof a)if(Ve.test(a)){for(v=v||p(t),c=t.createElement("div"),v.appendChild(c),a=a.replace(We,"<$1></$2>"),s=(Ue.exec(a)||["",""])[1].toLowerCase(),l=et[s]||et._default,u=l[0],c.innerHTML=l[1]+a+l[2];u--;)c=c.lastChild;if(!Z.support.tbody)for(h=ze.test(a),f="table"!==s||h?"<table>"!==l[1]||h?[]:c.childNodes:c.firstChild&&c.firstChild.childNodes,o=f.length-1;o>=0;--o)Z.nodeName(f[o],"tbody")&&!f[o].childNodes.length&&f[o].parentNode.removeChild(f[o]);!Z.support.leadingWhitespace&&qe.test(a)&&c.insertBefore(t.createTextNode(qe.exec(a)[0]),c.firstChild),a=c.childNodes,c.parentNode.removeChild(c)}else a=t.createTextNode(a);a.nodeType?y.push(a):Z.merge(y,a)}if(c&&(a=c=v=null),!Z.support.appendChecked)for(i=0;null!=(a=y[i]);i++)Z.nodeName(a,"input")?m(a):"undefined"!=typeof a.getElementsByTagName&&Z.grep(a.getElementsByTagName("input"),m);if(n)for(d=function(e){if(!e.type||Qe.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)},i=0;null!=(a=y[i]);i++)Z.nodeName(a,"script")&&d(a)||(n.appendChild(a),"undefined"!=typeof a.getElementsByTagName&&(g=Z.grep(Z.merge([],a.getElementsByTagName("script")),d),y.splice.apply(y,[i+1,0].concat(g)),i+=g.length));return y},cleanData:function(e,t){for(var n,r,i,o,a=0,s=Z.expando,l=Z.cache,u=Z.support.deleteExpando,c=Z.event.special;null!=(i=e[a]);a++)if((t||Z.acceptData(i))&&(r=i[s],n=r&&l[r])){if(n.events)for(o in n.events)c[o]?Z.event.remove(i,o):Z.removeEvent(i,o,n.handle);l[r]&&(delete l[r],u?delete i[s]:i.removeAttribute?i.removeAttribute(s):i[s]=null,Z.deletedIds.push(r))}}}),function(){var e,t;Z.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=Z.uaMatch(U.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),Z.browser=t,Z.sub=function(){function e(t,n){return new e.fn.init(t,n)}Z.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(n,r){return r&&r instanceof Z&&!(r instanceof e)&&(r=e(r)),Z.fn.init.call(this,n,r,t)},e.fn.init.prototype=e.fn;var t=e(q);return e}}();var rt,it,ot,at=/alpha\([^)]*\)/i,st=/opacity=([^)]*)/,lt=/^(top|right|bottom|left)$/,ut=/^(none|table(?!-c[ea]).+)/,ct=/^margin/,pt=new RegExp("^("+ee+")(.*)$","i"),ht=new RegExp("^("+ee+")(?!px)[a-z%]+$","i"),ft=new RegExp("^([-+])=("+ee+")","i"),dt={BODY:"block"},gt={position:"absolute",visibility:"hidden",display:"block"},mt={letterSpacing:0,fontWeight:400},vt=["Top","Right","Bottom","Left"],yt=["Webkit","O","Moz","ms"],bt=Z.fn.toggle;Z.fn.extend({css:function(e,n){return Z.access(this,function(e,n,r){return r!==t?Z.style(e,n,r):Z.css(e,n)},e,n,arguments.length>1)},show:function(){return b(this,!0)},hide:function(){return b(this)},toggle:function(e,t){var n="boolean"==typeof e;return Z.isFunction(e)&&Z.isFunction(t)?bt.apply(this,arguments):this.each(function(){(n?e:y(this))?Z(this).show():Z(this).hide()})}}),Z.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=rt(e,"opacity");return""===n?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":Z.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var o,a,s,l=Z.camelCase(n),u=e.style;if(n=Z.cssProps[l]||(Z.cssProps[l]=v(u,l)),s=Z.cssHooks[n]||Z.cssHooks[l],r===t)return s&&"get"in s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof r,"string"===a&&(o=ft.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(Z.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||Z.cssNumber[l]||(r+="px"),s&&"set"in s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var o,a,s,l=Z.camelCase(n);return n=Z.cssProps[l]||(Z.cssProps[l]=v(e.style,l)),s=Z.cssHooks[n]||Z.cssHooks[l],s&&"get"in s&&(o=s.get(e,!0,i)),o===t&&(o=rt(e,n)),"normal"===o&&n in mt&&(o=mt[n]),r||i!==t?(a=parseFloat(o),r||Z.isNumeric(a)?a||0:o):o},swap:function(e,t,n){var r,i,o={};for(i in t)o[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=o[i];return r}}),e.getComputedStyle?rt=function(t,n){var r,i,o,a,s=e.getComputedStyle(t,null),l=t.style;return s&&(r=s.getPropertyValue(n)||s[n],""!==r||Z.contains(t.ownerDocument,t)||(r=Z.style(t,n)),ht.test(r)&&ct.test(n)&&(i=l.width,o=l.minWidth,a=l.maxWidth,l.minWidth=l.maxWidth=l.width=r,r=s.width,l.width=i,l.minWidth=o,l.maxWidth=a)),r}:q.documentElement.currentStyle&&(rt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],o=e.style;return null==i&&o&&o[t]&&(i=o[t]),ht.test(i)&&!lt.test(t)&&(n=o.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),o.left="fontSize"===t?"1em":i,i=o.pixelLeft+"px",o.left=n,r&&(e.runtimeStyle.left=r)),""===i?"auto":i}),Z.each(["height","width"],function(e,t){Z.cssHooks[t]={get:function(e,n,r){if(n)return 0===e.offsetWidth&&ut.test(rt(e,"display"))?Z.swap(e,gt,function(){return S(e,t,r)}):S(e,t,r)},set:function(e,n,r){return x(e,n,r?w(e,t,r,Z.support.boxSizing&&"border-box"===Z.css(e,"boxSizing")):0)}}}),Z.support.opacity||(Z.cssHooks.opacity={get:function(e,t){return st.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=Z.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,t>=1&&""===Z.trim(o.replace(at,""))&&n.removeAttribute&&(n.removeAttribute("filter"),r&&!r.filter)||(n.filter=at.test(o)?o.replace(at,i):o+" "+i)}}),Z(function(){Z.support.reliableMarginRight||(Z.cssHooks.marginRight={get:function(e,t){return Z.swap(e,{display:"inline-block"},function(){if(t)return rt(e,"marginRight")})}}),!Z.support.pixelPosition&&Z.fn.position&&Z.each(["top","left"],function(e,t){Z.cssHooks[t]={get:function(e,n){if(n){var r=rt(e,t);return ht.test(r)?Z(e).position()[t]+"px":r}}}})}),Z.expr&&Z.expr.filters&&(Z.expr.filters.hidden=function(e){return 0===e.offsetWidth&&0===e.offsetHeight||!Z.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||rt(e,"display"))},Z.expr.filters.visible=function(e){return!Z.expr.filters.hidden(e)}),Z.each({margin:"",padding:"",border:"Width"},function(e,t){Z.cssHooks[e+t]={expand:function(n){var r,i="string"==typeof n?n.split(" "):[n],o={};for(r=0;r<4;r++)o[e+vt[r]+t]=i[r]||i[r-2]||i[0];return o}},ct.test(e)||(Z.cssHooks[e+t].set=x)});var xt=/%20/g,wt=/\[\]$/,St=/\r?\n/g,kt=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,Ct=/^(?:select|textarea)/i;Z.fn.extend({serialize:function(){return Z.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?Z.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||Ct.test(this.nodeName)||kt.test(this.type))}).map(function(e,t){var n=Z(this).val();return null==n?null:Z.isArray(n)?Z.map(n,function(e,n){return{name:t.name,value:e.replace(St,"\r\n")}}):{name:t.name,value:n.replace(St,"\r\n")}}).get()}}),Z.param=function(e,n){var r,i=[],o=function(e,t){t=Z.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=Z.ajaxSettings&&Z.ajaxSettings.traditional),Z.isArray(e)||e.jquery&&!Z.isPlainObject(e))Z.each(e,function(){o(this.name,this.value)});else for(r in e)C(r,e[r],n,o);return i.join("&").replace(xt,"+")};var _t,Et,At=/#.*$/,Nt=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Tt=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,Pt=/^(?:GET|HEAD)$/,Lt=/^\/\//,jt=/\?/,Ot=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,Mt=/([?&])_=[^&]*/,Dt=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Ht=Z.fn.load,It={},Rt={},Bt=["*/"]+["*"];try{Et=W.href}catch($t){Et=q.createElement("a"),Et.href="",Et=Et.href}_t=Dt.exec(Et.toLowerCase())||[],Z.fn.load=function(e,n,r){if("string"!=typeof e&&Ht)return Ht.apply(this,arguments);if(!this.length)return this;var i,o,a,s=this,l=e.indexOf(" ");return l>=0&&(i=e.slice(l,e.length),e=e.slice(0,l)),Z.isFunction(n)?(r=n,n=t):n&&"object"==typeof n&&(o="POST"),Z.ajax({url:e,type:o,dataType:"html",data:n,complete:function(e,t){r&&s.each(r,a||[e.responseText,t,e])}}).done(function(e){a=arguments,s.html(i?Z("<div>").append(e.replace(Ot,"")).find(i):e)}),this},Z.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){Z.fn[t]=function(e){return this.on(t,e)}}),Z.each(["get","post"],function(e,n){Z[n]=function(e,r,i,o){return Z.isFunction(r)&&(o=o||i,i=r,r=t),Z.ajax({type:n,url:e,data:r,success:i,dataType:o})}}),Z.extend({getScript:function(e,n){return Z.get(e,t,n,"script")},getJSON:function(e,t,n){return Z.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?A(e,Z.ajaxSettings):(t=e,e=Z.ajaxSettings),A(e,t),e},ajaxSettings:{url:Et,isLocal:Tt.test(_t[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Bt},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":Z.parseJSON,"text xml":Z.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:_(It),ajaxTransport:_(Rt),ajax:function(e,n){function r(e,n,r,a){var u,p,y,b,w,k=n;2!==x&&(x=2,l&&clearTimeout(l),s=t,o=a||"",S.readyState=e>0?4:0,r&&(b=N(h,S,r)),e>=200&&e<300||304===e?(h.ifModified&&(w=S.getResponseHeader("Last-Modified"),w&&(Z.lastModified[i]=w),w=S.getResponseHeader("Etag"),w&&(Z.etag[i]=w)),304===e?(k="notmodified",u=!0):(u=T(h,b),k=u.state,p=u.data,y=u.error,u=!y)):(y=k,k&&!e||(k="error",e<0&&(e=0))),S.status=e,S.statusText=(n||k)+"",u?g.resolveWith(f,[p,k,S]):g.rejectWith(f,[S,k,y]),S.statusCode(v),v=t,c&&d.trigger("ajax"+(u?"Success":"Error"),[S,h,u?p:y]),m.fireWith(f,[S,k]),c&&(d.trigger("ajaxComplete",[S,h]),--Z.active||Z.event.trigger("ajaxStop")))}"object"==typeof e&&(n=e,e=t),n=n||{};var i,o,a,s,l,u,c,p,h=Z.ajaxSetup({},n),f=h.context||h,d=f!==h&&(f.nodeType||f instanceof Z)?Z(f):Z.event,g=Z.Deferred(),m=Z.Callbacks("once memory"),v=h.statusCode||{},y={},b={},x=0,w="canceled",S={readyState:0,setRequestHeader:function(e,t){if(!x){var n=e.toLowerCase();e=b[n]=b[n]||e,y[e]=t}return this},getAllResponseHeaders:function(){return 2===x?o:null},getResponseHeader:function(e){var n;if(2===x){if(!a)for(a={};n=Nt.exec(o);)a[n[1].toLowerCase()]=n[2];n=a[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return x||(h.mimeType=e),this},abort:function(e){return e=e||w,s&&s.abort(e),r(0,e),this}};if(g.promise(S),S.success=S.done,S.error=S.fail,S.complete=m.add,S.statusCode=function(e){if(e){var t;if(x<2)for(t in e)v[t]=[v[t],e[t]];else t=e[S.status],S.always(t)}return this},h.url=((e||h.url)+"").replace(At,"").replace(Lt,_t[1]+"//"),h.dataTypes=Z.trim(h.dataType||"*").toLowerCase().split(ne),null==h.crossDomain&&(u=Dt.exec(h.url.toLowerCase()),h.crossDomain=!(!u||u[1]===_t[1]&&u[2]===_t[2]&&(u[3]||("http:"===u[1]?80:443))==(_t[3]||("http:"===_t[1]?80:443)))),h.data&&h.processData&&"string"!=typeof h.data&&(h.data=Z.param(h.data,h.traditional)),E(It,h,n,S),2===x)return S;if(c=h.global,h.type=h.type.toUpperCase(),h.hasContent=!Pt.test(h.type),c&&0===Z.active++&&Z.event.trigger("ajaxStart"),!h.hasContent&&(h.data&&(h.url+=(jt.test(h.url)?"&":"?")+h.data,delete h.data),i=h.url,h.cache===!1)){var k=Z.now(),C=h.url.replace(Mt,"$1_="+k);h.url=C+(C===h.url?(jt.test(h.url)?"&":"?")+"_="+k:"")}(h.data&&h.hasContent&&h.contentType!==!1||n.contentType)&&S.setRequestHeader("Content-Type",h.contentType),h.ifModified&&(i=i||h.url,Z.lastModified[i]&&S.setRequestHeader("If-Modified-Since",Z.lastModified[i]),Z.etag[i]&&S.setRequestHeader("If-None-Match",Z.etag[i])),S.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+Bt+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)S.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(h.beforeSend.call(f,S,h)===!1||2===x))return S.abort();w="abort";for(p in{success:1,error:1,complete:1})S[p](h[p]);if(s=E(Rt,h,n,S)){S.readyState=1,c&&d.trigger("ajaxSend",[S,h]),h.async&&h.timeout>0&&(l=setTimeout(function(){S.abort("timeout")},h.timeout));try{x=1,s.send(y,r)}catch(_){if(!(x<2))throw _;r(-1,_)}}else r(-1,"No Transport");return S},active:0,lastModified:{},etag:{}});var Ft=[],qt=/\?/,Wt=/(=)\?(?=&|$)|\?\?/,Ut=Z.now();Z.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Ft.pop()||Z.expando+"_"+Ut++;return this[e]=!0,e}}),Z.ajaxPrefilter("json jsonp",function(n,r,i){var o,a,s,l=n.data,u=n.url,c=n.jsonp!==!1,p=c&&Wt.test(u),h=c&&!p&&"string"==typeof l&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Wt.test(l);if("jsonp"===n.dataTypes[0]||p||h)return o=n.jsonpCallback=Z.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,a=e[o],p?n.url=u.replace(Wt,"$1"+o):h?n.data=l.replace(Wt,"$1"+o):c&&(n.url+=(qt.test(u)?"&":"?")+n.jsonp+"="+o),n.converters["script json"]=function(){return s||Z.error(o+" was not called"),s[0]},n.dataTypes[0]="json",e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Ft.push(o)),s&&Z.isFunction(a)&&a(s[0]),s=a=t}),"script"}),Z.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return Z.globalEval(e),e}}}),Z.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),Z.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=q.head||q.getElementsByTagName("head")[0]||q.documentElement;return{send:function(i,o){n=q.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){(i||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var zt,Vt=!!e.ActiveXObject&&function(){for(var e in zt)zt[e](0,1)},Gt=0;Z.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&P()||L()}:P,function(e){Z.extend(Z.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(Z.ajaxSettings.xhr()),Z.support.ajax&&Z.ajaxTransport(function(n){if(!n.crossDomain||Z.support.cors){var r;return{send:function(i,o){var a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s in n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s in i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var s,u,c,p,h;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=Z.noop,Vt&&delete zt[a]),i)4!==l.readyState&&l.abort();else{s=l.status,c=l.getAllResponseHeaders(),p={},h=l.responseXML,h&&h.documentElement&&(p.xml=h);try{p.text=l.responseText}catch(f){}try{u=l.statusText}catch(f){u=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,u,p,c)},n.async?4===l.readyState?setTimeout(r,0):(a=++Gt,Vt&&(zt||(zt={},Z(e).unload(Vt)),zt[a]=r),l.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var Xt,Jt,Kt=/^(?:toggle|show|hide)$/,Yt=new RegExp("^(?:([-+])=|)("+ee+")([a-z%]*)$","i"),Qt=/queueHooks$/,Zt=[H],en={"*":[function(e,t){var n,r,i=this.createTween(e,t),o=Yt.exec(t),a=i.cur(),s=+a||0,l=1,u=20;if(o){if(n=+o[2],r=o[3]||(Z.cssNumber[e]?"":"px"),"px"!==r&&s){s=Z.css(i.elem,e,!0)||n||1;do l=l||".5",s/=l,Z.style(i.elem,e,s+r);while(l!==(l=i.cur()/a)&&1!==l&&--u)}i.unit=r,i.start=s,i.end=o[1]?s+(o[1]+1)*n:n}return i}]};Z.Animation=Z.extend(M,{tweener:function(e,t){Z.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");for(var n,r=0,i=e.length;r<i;r++)n=e[r],en[n]=en[n]||[],en[n].unshift(t)},prefilter:function(e,t){t?Zt.unshift(e):Zt.push(e)}}),Z.Tween=I,I.prototype={constructor:I,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(Z.cssNumber[n]?"":"px")},cur:function(){var e=I.propHooks[this.prop];return e&&e.get?e.get(this):I.propHooks._default.get(this)},run:function(e){var t,n=I.propHooks[this.prop];return this.options.duration?this.pos=t=Z.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):I.propHooks._default.set(this),this}},I.prototype.init.prototype=I.prototype,I.propHooks={_default:{get:function(e){var t;return null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=Z.css(e.elem,e.prop,!1,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){Z.fx.step[e.prop]?Z.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[Z.cssProps[e.prop]]||Z.cssHooks[e.prop])?Z.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},I.propHooks.scrollTop=I.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},Z.each(["toggle","show","hide"],function(e,t){var n=Z.fn[t];Z.fn[t]=function(r,i,o){return null==r||"boolean"==typeof r||!e&&Z.isFunction(r)&&Z.isFunction(i)?n.apply(this,arguments):this.animate(R(t,!0),r,i,o)}}),Z.fn.extend({fadeTo:function(e,t,n,r){return this.filter(y).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=Z.isEmptyObject(e),o=Z.speed(t,n,r),a=function(){var t=M(this,Z.extend({},e),o);i&&t.stop(!0)};return i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=null!=e&&e+"queueHooks",o=Z.timers,a=Z._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else for(n in a)a[n]&&a[n].stop&&Qt.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r), +t=!1,o.splice(n,1));!t&&r||Z.dequeue(this,e)})}}),Z.each({slideDown:R("show"),slideUp:R("hide"),slideToggle:R("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){Z.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),Z.speed=function(e,t,n){var r=e&&"object"==typeof e?Z.extend({},e):{complete:n||!n&&t||Z.isFunction(e)&&e,duration:e,easing:n&&t||t&&!Z.isFunction(t)&&t};return r.duration=Z.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in Z.fx.speeds?Z.fx.speeds[r.duration]:Z.fx.speeds._default,null!=r.queue&&r.queue!==!0||(r.queue="fx"),r.old=r.complete,r.complete=function(){Z.isFunction(r.old)&&r.old.call(this),r.queue&&Z.dequeue(this,r.queue)},r},Z.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},Z.timers=[],Z.fx=I.prototype.init,Z.fx.tick=function(){var e,n=Z.timers,r=0;for(Xt=Z.now();r<n.length;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||Z.fx.stop(),Xt=t},Z.fx.timer=function(e){e()&&Z.timers.push(e)&&!Jt&&(Jt=setInterval(Z.fx.tick,Z.fx.interval))},Z.fx.interval=13,Z.fx.stop=function(){clearInterval(Jt),Jt=null},Z.fx.speeds={slow:600,fast:200,_default:400},Z.fx.step={},Z.expr&&Z.expr.filters&&(Z.expr.filters.animated=function(e){return Z.grep(Z.timers,function(t){return e===t.elem}).length});var tn=/^(?:body|html)$/i;Z.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){Z.offset.setOffset(this,e,t)});var n,r,i,o,a,s,l,u={top:0,left:0},c=this[0],p=c&&c.ownerDocument;if(p)return(r=p.body)===c?Z.offset.bodyOffset(c):(n=p.documentElement,Z.contains(n,c)?("undefined"!=typeof c.getBoundingClientRect&&(u=c.getBoundingClientRect()),i=B(p),o=n.clientTop||r.clientTop||0,a=n.clientLeft||r.clientLeft||0,s=i.pageYOffset||n.scrollTop,l=i.pageXOffset||n.scrollLeft,{top:u.top+s-o,left:u.left+l-a}):u)},Z.offset={bodyOffset:function(e){var t=e.offsetTop,n=e.offsetLeft;return Z.support.doesNotIncludeMarginInBodyOffset&&(t+=parseFloat(Z.css(e,"marginTop"))||0,n+=parseFloat(Z.css(e,"marginLeft"))||0),{top:t,left:n}},setOffset:function(e,t,n){var r=Z.css(e,"position");"static"===r&&(e.style.position="relative");var i,o,a=Z(e),s=a.offset(),l=Z.css(e,"top"),u=Z.css(e,"left"),c=("absolute"===r||"fixed"===r)&&Z.inArray("auto",[l,u])>-1,p={},h={};c?(h=a.position(),i=h.top,o=h.left):(i=parseFloat(l)||0,o=parseFloat(u)||0),Z.isFunction(t)&&(t=t.call(e,n,s)),null!=t.top&&(p.top=t.top-s.top+i),null!=t.left&&(p.left=t.left-s.left+o),"using"in t?t.using.call(e,p):a.css(p)}},Z.fn.extend({position:function(){if(this[0]){var e=this[0],t=this.offsetParent(),n=this.offset(),r=tn.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(Z.css(e,"marginTop"))||0,n.left-=parseFloat(Z.css(e,"marginLeft"))||0,r.top+=parseFloat(Z.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(Z.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent||q.body;e&&!tn.test(e.nodeName)&&"static"===Z.css(e,"position");)e=e.offsetParent;return e||q.body})}}),Z.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);Z.fn[e]=function(i){return Z.access(this,function(e,i,o){var a=B(e);return o===t?a?n in a?a[n]:a.document.documentElement[i]:e[i]:void(a?a.scrollTo(r?Z(a).scrollLeft():o,r?o:Z(a).scrollTop()):e[i]=o)},e,i,arguments.length,null)}}),Z.each({Height:"height",Width:"width"},function(e,n){Z.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){Z.fn[i]=function(i,o){var a=arguments.length&&(r||"boolean"!=typeof i),s=r||(i===!0||o===!0?"margin":"border");return Z.access(this,function(n,r,i){var o;return Z.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?Z.css(n,r,i,s):Z.style(n,r,i,s)},n,a?i:t,a,null)}})}),"object"==typeof n&&n&&"object"==typeof n.exports?n.exports=Z:(e.jQuery=e.$=Z,"function"==typeof define&&define.amd&&define("jquery",[],function(){return Z}))}(window)}),define("lib/jquery.lazyload",[],function(e,t,n){var r=e("jquery");!function(e,t,n,r){var i=e(t);e.fn.lazyload=function(o){function a(){var t=0;l.each(function(){var n=e(this);if(!u.skip_invisible||n.is(":visible"))if(e.abovethetop(this,u)||e.leftofbegin(this,u));else if(e.belowthefold(this,u)||e.rightoffold(this,u)){if(++t>u.failure_limit)return!1}else n.trigger("appear"),t=0})}var s,l=this,u={threshold:0,failure_limit:0,event:"scroll",effect:"show",container:t,data_attribute:"original",skip_invisible:!0,appear:null,load:null,placeholder:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC"};return o&&(r!==o.failurelimit&&(o.failure_limit=o.failurelimit,delete o.failurelimit),r!==o.effectspeed&&(o.effect_speed=o.effectspeed,delete o.effectspeed),e.extend(u,o)),s=u.container===r||u.container===t?i:e(u.container),0===u.event.indexOf("scroll")&&s.bind(u.event,function(){return a()}),this.each(function(){var t=this,n=e(t);t.loaded=!1,n.attr("src")!==r&&n.attr("src")!==!1||n.is("img")&&n.attr("src",u.placeholder),n.one("appear",function(){if(!this.loaded){if(u.appear){var r=l.length;u.appear.call(t,r,u)}e("<img />").bind("load",function(){var r=n.attr("data-"+u.data_attribute);n.hide(),n.is("img")?n.attr("src",r):n.css("background-image","url('"+r+"')"),n[u.effect](u.effect_speed),t.loaded=!0;var i=e.grep(l,function(e){return!e.loaded});if(l=e(i),u.load){var o=l.length;u.load.call(t,o,u)}}).attr("src",n.attr("data-"+u.data_attribute))}}),0!==u.event.indexOf("scroll")&&n.bind(u.event,function(){t.loaded||n.trigger("appear")})}),i.bind("resize",function(){a()}),/(?:iphone|ipod|ipad).*os 5/gi.test(navigator.appVersion)&&i.bind("pageshow",function(t){t.originalEvent&&t.originalEvent.persisted&&l.each(function(){e(this).trigger("appear")})}),e(n).ready(function(){a()}),this},e.belowthefold=function(n,o){var a;return a=o.container===r||o.container===t?(t.innerHeight?t.innerHeight:i.height())+i.scrollTop():e(o.container).offset().top+e(o.container).height(),a<=e(n).offset().top-o.threshold},e.rightoffold=function(n,o){var a;return a=o.container===r||o.container===t?i.width()+i.scrollLeft():e(o.container).offset().left+e(o.container).width(),a<=e(n).offset().left-o.threshold},e.abovethetop=function(n,o){var a;return a=o.container===r||o.container===t?i.scrollTop():e(o.container).offset().top,a>=e(n).offset().top+o.threshold+e(n).height()},e.leftofbegin=function(n,o){var a;return a=o.container===r||o.container===t?i.scrollLeft():e(o.container).offset().left,a>=e(n).offset().left+o.threshold+e(n).width()},e.inviewport=function(t,n){return!(e.rightoffold(t,n)||e.leftofbegin(t,n)||e.belowthefold(t,n)||e.abovethetop(t,n))},e.extend(e.expr[":"],{"below-the-fold":function(t){return e.belowthefold(t,{threshold:0})},"above-the-top":function(t){return!e.belowthefold(t,{threshold:0})},"right-of-screen":function(t){return e.rightoffold(t,{threshold:0})},"left-of-screen":function(t){return!e.rightoffold(t,{threshold:0})},"in-viewport":function(t){return e.inviewport(t,{threshold:0})},"above-the-fold":function(t){return!e.belowthefold(t,{threshold:0})},"right-of-fold":function(t){return e.rightoffold(t,{threshold:0})},"left-of-fold":function(t){return!e.rightoffold(t,{threshold:0})}})}(r,window,document)}),define("handlebars",[],function(e,t,n){!function(e,r){"object"==typeof t&&"object"==typeof n?n.exports=r():"function"==typeof define&&define.amd?define(r):"object"==typeof t?t.Handlebars=r():e.Handlebars=r()}(this,function(){return function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(){var e=v();return e.compile=function(t,n){return c.compile(t,n,e)},e.precompile=function(t,n){return c.precompile(t,n,e)},e.AST=l["default"],e.Compiler=c.Compiler,e.JavaScriptCompiler=h["default"],e.Parser=u.parser,e.parse=u.parse,e}var i=n(8)["default"];t.__esModule=!0;var o=n(1),a=i(o),s=n(2),l=i(s),u=n(3),c=n(4),p=n(5),h=i(p),f=n(6),d=i(f),g=n(7),m=i(g),v=a["default"].create,y=r();y.create=r,m["default"](y),y.Visitor=d["default"],y["default"]=y,t["default"]=y,e.exports=t["default"]},function(e,t,n){"use strict";function r(){var e=new s.HandlebarsEnvironment;return f.extend(e,s),e.SafeString=u["default"],e.Exception=p["default"],e.Utils=f,e.escapeExpression=f.escapeExpression,e.VM=g,e.template=function(t){return g.template(t,e)},e}var i=n(9)["default"],o=n(8)["default"];t.__esModule=!0;var a=n(10),s=i(a),l=n(11),u=o(l),c=n(12),p=o(c),h=n(13),f=i(h),d=n(14),g=i(d),m=n(7),v=o(m),y=r();y.create=r,v["default"](y),y["default"]=y,t["default"]=y,e.exports=t["default"]},function(e,t,n){"use strict";t.__esModule=!0;var r={Program:function(e,t,n,r){this.loc=r,this.type="Program",this.body=e,this.blockParams=t,this.strip=n},MustacheStatement:function(e,t,n,r,i,o){this.loc=o,this.type="MustacheStatement",this.path=e,this.params=t||[],this.hash=n,this.escaped=r,this.strip=i},BlockStatement:function(e,t,n,r,i,o,a,s,l){this.loc=l,this.type="BlockStatement",this.path=e,this.params=t||[],this.hash=n,this.program=r,this.inverse=i,this.openStrip=o,this.inverseStrip=a,this.closeStrip=s},PartialStatement:function(e,t,n,r,i){this.loc=i,this.type="PartialStatement",this.name=e,this.params=t||[],this.hash=n,this.indent="",this.strip=r},ContentStatement:function(e,t){this.loc=t,this.type="ContentStatement",this.original=this.value=e},CommentStatement:function(e,t,n){this.loc=n,this.type="CommentStatement",this.value=e,this.strip=t},SubExpression:function(e,t,n,r){this.loc=r,this.type="SubExpression",this.path=e,this.params=t||[],this.hash=n},PathExpression:function(e,t,n,r,i){this.loc=i,this.type="PathExpression",this.data=e,this.original=r,this.parts=n,this.depth=t},StringLiteral:function(e,t){this.loc=t,this.type="StringLiteral",this.original=this.value=e},NumberLiteral:function(e,t){this.loc=t,this.type="NumberLiteral",this.original=this.value=Number(e)},BooleanLiteral:function(e,t){this.loc=t,this.type="BooleanLiteral",this.original=this.value="true"===e},UndefinedLiteral:function(e){this.loc=e,this.type="UndefinedLiteral",this.original=this.value=void 0},NullLiteral:function(e){this.loc=e,this.type="NullLiteral",this.original=this.value=null},Hash:function(e,t){this.loc=t,this.type="Hash",this.pairs=e},HashPair:function(e,t,n){this.loc=n,this.type="HashPair",this.key=e,this.value=t},helpers:{helperExpression:function(e){return!("SubExpression"!==e.type&&!e.params.length&&!e.hash)},scopedId:function(e){return/^\.|this\b/.test(e.original)},simpleId:function(e){return 1===e.parts.length&&!r.helpers.scopedId(e)&&!e.depth}}};t["default"]=r,e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t){if("Program"===e.type)return e;s["default"].yy=g,g.locInfo=function(e){return new g.SourceLocation(t&&t.srcName,e)};var n=new p["default"];return n.accept(s["default"].parse(e))}var i=n(8)["default"],o=n(9)["default"];t.__esModule=!0,t.parse=r;var a=n(15),s=i(a),l=n(2),u=i(l),c=n(16),p=i(c),h=n(17),f=o(h),d=n(13);t.parser=s["default"];var g={};d.extend(g,f,u["default"])},function(e,t,n){"use strict";function r(){}function i(e,t,n){if(null==e||"string"!=typeof e&&"Program"!==e.type)throw new c["default"]("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+e);t=t||{},"data"in t||(t.data=!0),t.compat&&(t.useDepths=!0);var r=n.parse(e,t),i=(new n.Compiler).compile(r,t);return(new n.JavaScriptCompiler).compile(i,t)}function o(e,t,n){function r(){var t=n.parse(e,o),r=(new n.Compiler).compile(t,o),i=(new n.JavaScriptCompiler).compile(r,o,void 0,!0);return n.template(i)}function i(e,t){return a||(a=r()),a.call(this,e,t)}var o=void 0===arguments[1]?{}:arguments[1];if(null==e||"string"!=typeof e&&"Program"!==e.type)throw new c["default"]("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+e);"data"in o||(o.data=!0),o.compat&&(o.useDepths=!0);var a=void 0;return i._setup=function(e){return a||(a=r()),a._setup(e)},i._child=function(e,t,n,i){return a||(a=r()),a._child(e,t,n,i)},i}function a(e,t){if(e===t)return!0;if(p.isArray(e)&&p.isArray(t)&&e.length===t.length){for(var n=0;n<e.length;n++)if(!a(e[n],t[n]))return!1;return!0}}function s(e){if(!e.path.parts){var t=e.path;e.path=new f["default"].PathExpression((!1),0,[t.original+""],t.original+"",t.loc)}}var l=n(8)["default"];t.__esModule=!0,t.Compiler=r,t.precompile=i,t.compile=o;var u=n(12),c=l(u),p=n(13),h=n(2),f=l(h),d=[].slice;r.prototype={compiler:r,equals:function(e){var t=this.opcodes.length;if(e.opcodes.length!==t)return!1;for(var n=0;n<t;n++){var r=this.opcodes[n],i=e.opcodes[n];if(r.opcode!==i.opcode||!a(r.args,i.args))return!1}t=this.children.length;for(var n=0;n<t;n++)if(!this.children[n].equals(e.children[n]))return!1;return!0},guid:0,compile:function(e,t){this.sourceNode=[],this.opcodes=[],this.children=[],this.options=t,this.stringParams=t.stringParams,this.trackIds=t.trackIds,t.blockParams=t.blockParams||[];var n=t.knownHelpers;if(t.knownHelpers={helperMissing:!0,blockHelperMissing:!0,each:!0,"if":!0,unless:!0,"with":!0,log:!0,lookup:!0},n)for(var r in n)r in n&&(t.knownHelpers[r]=n[r]);return this.accept(e)},compileProgram:function(e){var t=new this.compiler,n=t.compile(e,this.options),r=this.guid++;return this.usePartial=this.usePartial||n.usePartial,this.children[r]=n,this.useDepths=this.useDepths||n.useDepths,r},accept:function(e){this.sourceNode.unshift(e);var t=this[e.type](e);return this.sourceNode.shift(),t},Program:function(e){this.options.blockParams.unshift(e.blockParams);for(var t=e.body,n=t.length,r=0;r<n;r++)this.accept(t[r]);return this.options.blockParams.shift(),this.isSimple=1===n,this.blockParams=e.blockParams?e.blockParams.length:0,this},BlockStatement:function(e){s(e);var t=e.program,n=e.inverse;t=t&&this.compileProgram(t),n=n&&this.compileProgram(n);var r=this.classifySexpr(e);"helper"===r?this.helperSexpr(e,t,n):"simple"===r?(this.simpleSexpr(e),this.opcode("pushProgram",t),this.opcode("pushProgram",n),this.opcode("emptyHash"),this.opcode("blockValue",e.path.original)):(this.ambiguousSexpr(e,t,n),this.opcode("pushProgram",t),this.opcode("pushProgram",n),this.opcode("emptyHash"),this.opcode("ambiguousBlockValue")),this.opcode("append")},PartialStatement:function(e){this.usePartial=!0;var t=e.params;if(t.length>1)throw new c["default"]("Unsupported number of partial arguments: "+t.length,e);t.length||t.push({type:"PathExpression",parts:[],depth:0});var n=e.name.original,r="SubExpression"===e.name.type;r&&this.accept(e.name),this.setupFullMustacheParams(e,void 0,void 0,!0);var i=e.indent||"";this.options.preventIndent&&i&&(this.opcode("appendContent",i),i=""),this.opcode("invokePartial",r,n,i),this.opcode("append")},MustacheStatement:function(e){this.SubExpression(e),e.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},ContentStatement:function(e){e.value&&this.opcode("appendContent",e.value)},CommentStatement:function(){},SubExpression:function(e){s(e);var t=this.classifySexpr(e);"simple"===t?this.simpleSexpr(e):"helper"===t?this.helperSexpr(e):this.ambiguousSexpr(e)},ambiguousSexpr:function(e,t,n){var r=e.path,i=r.parts[0],o=null!=t||null!=n;this.opcode("getContext",r.depth),this.opcode("pushProgram",t),this.opcode("pushProgram",n),this.accept(r),this.opcode("invokeAmbiguous",i,o)},simpleSexpr:function(e){this.accept(e.path),this.opcode("resolvePossibleLambda")},helperSexpr:function(e,t,n){var r=this.setupFullMustacheParams(e,t,n),i=e.path,o=i.parts[0];if(this.options.knownHelpers[o])this.opcode("invokeKnownHelper",r.length,o);else{if(this.options.knownHelpersOnly)throw new c["default"]("You specified knownHelpersOnly, but used the unknown helper "+o,e);i.falsy=!0,this.accept(i),this.opcode("invokeHelper",r.length,i.original,f["default"].helpers.simpleId(i))}},PathExpression:function(e){this.addDepth(e.depth),this.opcode("getContext",e.depth);var t=e.parts[0],n=f["default"].helpers.scopedId(e),r=!e.depth&&!n&&this.blockParamIndex(t);r?this.opcode("lookupBlockParam",r,e.parts):t?e.data?(this.options.data=!0,this.opcode("lookupData",e.depth,e.parts)):this.opcode("lookupOnContext",e.parts,e.falsy,n):this.opcode("pushContext")},StringLiteral:function(e){this.opcode("pushString",e.value)},NumberLiteral:function(e){this.opcode("pushLiteral",e.value)},BooleanLiteral:function(e){this.opcode("pushLiteral",e.value)},UndefinedLiteral:function(){this.opcode("pushLiteral","undefined")},NullLiteral:function(){this.opcode("pushLiteral","null")},Hash:function(e){var t=e.pairs,n=0,r=t.length;for(this.opcode("pushHash");n<r;n++)this.pushParam(t[n].value);for(;n--;)this.opcode("assignToHash",t[n].key);this.opcode("popHash")},opcode:function(e){this.opcodes.push({opcode:e,args:d.call(arguments,1),loc:this.sourceNode[0].loc})},addDepth:function(e){e&&(this.useDepths=!0)},classifySexpr:function(e){var t=f["default"].helpers.simpleId(e.path),n=t&&!!this.blockParamIndex(e.path.parts[0]),r=!n&&f["default"].helpers.helperExpression(e),i=!n&&(r||t);if(i&&!r){var o=e.path.parts[0],a=this.options;a.knownHelpers[o]?r=!0:a.knownHelpersOnly&&(i=!1)}return r?"helper":i?"ambiguous":"simple"},pushParams:function(e){for(var t=0,n=e.length;t<n;t++)this.pushParam(e[t])},pushParam:function(e){var t=null!=e.value?e.value:e.original||"";if(this.stringParams)t.replace&&(t=t.replace(/^(\.?\.\/)*/g,"").replace(/\//g,".")),e.depth&&this.addDepth(e.depth),this.opcode("getContext",e.depth||0),this.opcode("pushStringParam",t,e.type),"SubExpression"===e.type&&this.accept(e);else{if(this.trackIds){var n=void 0;if(!e.parts||f["default"].helpers.scopedId(e)||e.depth||(n=this.blockParamIndex(e.parts[0])),n){var r=e.parts.slice(1).join(".");this.opcode("pushId","BlockParam",n,r)}else t=e.original||t,t.replace&&(t=t.replace(/^\.\//g,"").replace(/^\.$/g,"")),this.opcode("pushId",e.type,t)}this.accept(e)}},setupFullMustacheParams:function(e,t,n,r){var i=e.params;return this.pushParams(i),this.opcode("pushProgram",t),this.opcode("pushProgram",n),e.hash?this.accept(e.hash):this.opcode("emptyHash",r),i},blockParamIndex:function(e){for(var t=0,n=this.options.blockParams.length;t<n;t++){var r=this.options.blockParams[t],i=r&&p.indexOf(r,e);if(r&&i>=0)return[t,i]}}}},function(e,t,n){"use strict";function r(e){this.value=e}function i(){}function o(e,t,n,r){var i=t.popStack(),o=0,a=n.length;for(e&&a--;o<a;o++)i=t.nameLookup(i,n[o],r);return e?[t.aliasable("this.strict"),"(",i,", ",t.quotedString(n[o]),")"]:i}var a=n(8)["default"];t.__esModule=!0;var s=n(10),l=n(12),u=a(l),c=n(13),p=n(18),h=a(p);i.prototype={nameLookup:function(e,t){return i.isValidJavaScriptVariableName(t)?[e,".",t]:[e,"['",t,"']"]},depthedLookup:function(e){return[this.aliasable("this.lookup"),'(depths, "',e,'")']},compilerInfo:function(){var e=s.COMPILER_REVISION,t=s.REVISION_CHANGES[e];return[e,t]},appendToBuffer:function(e,t,n){return c.isArray(e)||(e=[e]),e=this.source.wrap(e,t),this.environment.isSimple?["return ",e,";"]:n?["buffer += ",e,";"]:(e.appendToBuffer=!0,e)},initializeBuffer:function(){return this.quotedString("")},compile:function(e,t,n,r){this.environment=e,this.options=t,this.stringParams=this.options.stringParams,this.trackIds=this.options.trackIds,this.precompile=!r,this.name=this.environment.name,this.isChild=!!n,this.context=n||{programs:[],environments:[]},this.preamble(),this.stackSlot=0,this.stackVars=[],this.aliases={},this.registers={list:[]},this.hashes=[],this.compileStack=[],this.inlineStack=[],this.blockParams=[],this.compileChildren(e,t),this.useDepths=this.useDepths||e.useDepths||this.options.compat,this.useBlockParams=this.useBlockParams||e.useBlockParams;var i=e.opcodes,o=void 0,a=void 0,s=void 0,l=void 0;for(s=0,l=i.length;s<l;s++)o=i[s],this.source.currentLocation=o.loc,a=a||o.loc,this[o.opcode].apply(this,o.args);if(this.source.currentLocation=a,this.pushSource(""),this.stackSlot||this.inlineStack.length||this.compileStack.length)throw new u["default"]("Compile completed with content left on stack");var c=this.createFunctionContext(r);if(this.isChild)return c;var p={compiler:this.compilerInfo(),main:c},h=this.context.programs;for(s=0,l=h.length;s<l;s++)h[s]&&(p[s]=h[s]);return this.environment.usePartial&&(p.usePartial=!0),this.options.data&&(p.useData=!0),this.useDepths&&(p.useDepths=!0),this.useBlockParams&&(p.useBlockParams=!0),this.options.compat&&(p.compat=!0),r?p.compilerOptions=this.options:(p.compiler=JSON.stringify(p.compiler),this.source.currentLocation={start:{line:1,column:0}},p=this.objectLiteral(p),t.srcName?(p=p.toStringWithSourceMap({file:t.destName}),p.map=p.map&&p.map.toString()):p=p.toString()),p},preamble:function(){this.lastContext=0,this.source=new h["default"](this.options.srcName)},createFunctionContext:function(e){var t="",n=this.stackVars.concat(this.registers.list);n.length>0&&(t+=", "+n.join(", "));var r=0;for(var i in this.aliases){var o=this.aliases[i];this.aliases.hasOwnProperty(i)&&o.children&&o.referenceCount>1&&(t+=", alias"+ ++r+"="+i,o.children[0]="alias"+r)}var a=["depth0","helpers","partials","data"];(this.useBlockParams||this.useDepths)&&a.push("blockParams"),this.useDepths&&a.push("depths");var s=this.mergeSource(t);return e?(a.push(s),Function.apply(this,a)):this.source.wrap(["function(",a.join(","),") {\n ",s,"}"])},mergeSource:function(e){var t=this.environment.isSimple,n=!this.forceBuffer,r=void 0,i=void 0,o=void 0,a=void 0;return this.source.each(function(e){e.appendToBuffer?(o?e.prepend(" + "):o=e,a=e):(o&&(i?o.prepend("buffer += "):r=!0,a.add(";"),o=a=void 0),i=!0,t||(n=!1))}),n?o?(o.prepend("return "),a.add(";")):i||this.source.push('return "";'):(e+=", buffer = "+(r?"":this.initializeBuffer()),o?(o.prepend("return buffer + "),a.add(";")):this.source.push("return buffer;")),e&&this.source.prepend("var "+e.substring(2)+(r?"":";\n")),this.source.merge()},blockValue:function(e){var t=this.aliasable("helpers.blockHelperMissing"),n=[this.contextName(0)];this.setupHelperArgs(e,0,n);var r=this.popStack();n.splice(1,0,r),this.push(this.source.functionCall(t,"call",n))},ambiguousBlockValue:function(){var e=this.aliasable("helpers.blockHelperMissing"),t=[this.contextName(0)];this.setupHelperArgs("",0,t,!0),this.flushInline();var n=this.topStack();t.splice(1,0,n),this.pushSource(["if (!",this.lastHelper,") { ",n," = ",this.source.functionCall(e,"call",t),"}"])},appendContent:function(e){this.pendingContent?e=this.pendingContent+e:this.pendingLocation=this.source.currentLocation,this.pendingContent=e},append:function(){if(this.isInline())this.replaceStack(function(e){return[" != null ? ",e,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var e=this.popStack();this.pushSource(["if (",e," != null) { ",this.appendToBuffer(e,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("this.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(e){this.lastContext=e},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(e,t,n){var r=0;n||!this.options.compat||this.lastContext?this.pushContext():this.push(this.depthedLookup(e[r++])),this.resolvePath("context",e,r,t)},lookupBlockParam:function(e,t){this.useBlockParams=!0,this.push(["blockParams[",e[0],"][",e[1],"]"]),this.resolvePath("context",t,1)},lookupData:function(e,t){e?this.pushStackLiteral("this.data(data, "+e+")"):this.pushStackLiteral("data"),this.resolvePath("data",t,0,!0)},resolvePath:function(e,t,n,r){var i=this;if(this.options.strict||this.options.assumeObjects)return void this.push(o(this.options.strict,this,t,e));for(var a=t.length;n<a;n++)this.replaceStack(function(o){var a=i.nameLookup(o,t[n],e);return r?[" && ",a]:[" != null ? ",a," : ",o]})},resolvePossibleLambda:function(){this.push([this.aliasable("this.lambda"),"(",this.popStack(),", ",this.contextName(0),")"])},pushStringParam:function(e,t){this.pushContext(),this.pushString(t),"SubExpression"!==t&&("string"==typeof e?this.pushString(e):this.pushStackLiteral(e))},emptyHash:function(e){this.trackIds&&this.push("{}"),this.stringParams&&(this.push("{}"),this.push("{}")),this.pushStackLiteral(e?"undefined":"{}")},pushHash:function(){this.hash&&this.hashes.push(this.hash),this.hash={values:[],types:[],contexts:[],ids:[]}},popHash:function(){var e=this.hash;this.hash=this.hashes.pop(),this.trackIds&&this.push(this.objectLiteral(e.ids)),this.stringParams&&(this.push(this.objectLiteral(e.contexts)),this.push(this.objectLiteral(e.types))),this.push(this.objectLiteral(e.values))},pushString:function(e){this.pushStackLiteral(this.quotedString(e))},pushLiteral:function(e){this.pushStackLiteral(e)},pushProgram:function(e){null!=e?this.pushStackLiteral(this.programExpression(e)):this.pushStackLiteral(null)},invokeHelper:function(e,t,n){var r=this.popStack(),i=this.setupHelper(e,t),o=n?[i.name," || "]:"",a=["("].concat(o,r);this.options.strict||a.push(" || ",this.aliasable("helpers.helperMissing")),a.push(")"),this.push(this.source.functionCall(a,"call",i.callParams))},invokeKnownHelper:function(e,t){var n=this.setupHelper(e,t);this.push(this.source.functionCall(n.name,"call",n.callParams))},invokeAmbiguous:function(e,t){this.useRegister("helper");var n=this.popStack();this.emptyHash();var r=this.setupHelper(0,e,t),i=this.lastHelper=this.nameLookup("helpers",e,"helper"),o=["(","(helper = ",i," || ",n,")"];this.options.strict||(o[0]="(helper = ",o.push(" != null ? helper : ",this.aliasable("helpers.helperMissing"))),this.push(["(",o,r.paramsInit?["),(",r.paramsInit]:[],"),","(typeof helper === ",this.aliasable('"function"')," ? ",this.source.functionCall("helper","call",r.callParams)," : helper))"])},invokePartial:function(e,t,n){var r=[],i=this.setupParams(t,1,r,!1);e&&(t=this.popStack(),delete i.name),n&&(i.indent=JSON.stringify(n)),i.helpers="helpers",i.partials="partials",e?r.unshift(t):r.unshift(this.nameLookup("partials",t,"partial")),this.options.compat&&(i.depths="depths"),i=this.objectLiteral(i),r.push(i),this.push(this.source.functionCall("this.invokePartial","",r))},assignToHash:function(e){var t=this.popStack(),n=void 0,r=void 0,i=void 0;this.trackIds&&(i=this.popStack()),this.stringParams&&(r=this.popStack(),n=this.popStack());var o=this.hash;n&&(o.contexts[e]=n),r&&(o.types[e]=r),i&&(o.ids[e]=i),o.values[e]=t},pushId:function(e,t,n){"BlockParam"===e?this.pushStackLiteral("blockParams["+t[0]+"].path["+t[1]+"]"+(n?" + "+JSON.stringify("."+n):"")):"PathExpression"===e?this.pushString(t):"SubExpression"===e?this.pushStackLiteral("true"):this.pushStackLiteral("null")},compiler:i,compileChildren:function(e,t){for(var n=e.children,r=void 0,i=void 0,o=0,a=n.length;o<a;o++){r=n[o],i=new this.compiler;var s=this.matchExistingProgram(r);null==s?(this.context.programs.push(""),s=this.context.programs.length,r.index=s,r.name="program"+s,this.context.programs[s]=i.compile(r,t,this.context,!this.precompile),this.context.environments[s]=r,this.useDepths=this.useDepths||i.useDepths,this.useBlockParams=this.useBlockParams||i.useBlockParams):(r.index=s,r.name="program"+s,this.useDepths=this.useDepths||r.useDepths,this.useBlockParams=this.useBlockParams||r.useBlockParams)}},matchExistingProgram:function(e){for(var t=0,n=this.context.environments.length;t<n;t++){var r=this.context.environments[t];if(r&&r.equals(e))return t}},programExpression:function(e){var t=this.environment.children[e],n=[t.index,"data",t.blockParams];return(this.useBlockParams||this.useDepths)&&n.push("blockParams"),this.useDepths&&n.push("depths"),"this.program("+n.join(", ")+")"},useRegister:function(e){this.registers[e]||(this.registers[e]=!0,this.registers.list.push(e))},push:function(e){return e instanceof r||(e=this.source.wrap(e)),this.inlineStack.push(e),e},pushStackLiteral:function(e){this.push(new r(e))},pushSource:function(e){this.pendingContent&&(this.source.push(this.appendToBuffer(this.source.quotedString(this.pendingContent),this.pendingLocation)),this.pendingContent=void 0),e&&this.source.push(e)},replaceStack:function(e){var t=["("],n=void 0,i=void 0,o=void 0;if(!this.isInline())throw new u["default"]("replaceStack on non-inline");var a=this.popStack(!0);if(a instanceof r)n=[a.value],t=["(",n],o=!0;else{i=!0;var s=this.incrStack();t=["((",this.push(s)," = ",a,")"],n=this.topStack()}var l=e.call(this,n);o||this.popStack(),i&&this.stackSlot--,this.push(t.concat(l,")"))},incrStack:function(){return this.stackSlot++,this.stackSlot>this.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var e=this.inlineStack;this.inlineStack=[];for(var t=0,n=e.length;t<n;t++){var i=e[t];if(i instanceof r)this.compileStack.push(i);else{var o=this.incrStack();this.pushSource([o," = ",i,";"]),this.compileStack.push(o)}}},isInline:function(){return this.inlineStack.length},popStack:function(e){var t=this.isInline(),n=(t?this.inlineStack:this.compileStack).pop();if(!e&&n instanceof r)return n.value;if(!t){if(!this.stackSlot)throw new u["default"]("Invalid stack pop");this.stackSlot--}return n},topStack:function(){var e=this.isInline()?this.inlineStack:this.compileStack,t=e[e.length-1];return t instanceof r?t.value:t},contextName:function(e){return this.useDepths&&e?"depths["+e+"]":"depth"+e},quotedString:function(e){return this.source.quotedString(e)},objectLiteral:function(e){return this.source.objectLiteral(e)},aliasable:function(e){var t=this.aliases[e];return t?(t.referenceCount++,t):(t=this.aliases[e]=this.source.wrap(e),t.aliasable=!0,t.referenceCount=1,t)},setupHelper:function(e,t,n){var r=[],i=this.setupHelperArgs(t,e,r,n),o=this.nameLookup("helpers",t,"helper");return{params:r,paramsInit:i,name:o,callParams:[this.contextName(0)].concat(r)}},setupParams:function(e,t,n){var r={},i=[],o=[],a=[],s=void 0;r.name=this.quotedString(e),r.hash=this.popStack(),this.trackIds&&(r.hashIds=this.popStack()),this.stringParams&&(r.hashTypes=this.popStack(),r.hashContexts=this.popStack());var l=this.popStack(),u=this.popStack();(u||l)&&(r.fn=u||"this.noop",r.inverse=l||"this.noop");for(var c=t;c--;)s=this.popStack(),n[c]=s,this.trackIds&&(a[c]=this.popStack()),this.stringParams&&(o[c]=this.popStack(),i[c]=this.popStack());return this.trackIds&&(r.ids=this.source.generateArray(a)),this.stringParams&&(r.types=this.source.generateArray(o),r.contexts=this.source.generateArray(i)),this.options.data&&(r.data="data"),this.useBlockParams&&(r.blockParams="blockParams"),r},setupHelperArgs:function(e,t,n,r){var i=this.setupParams(e,t,n,!0);return i=this.objectLiteral(i),r?(this.useRegister("options"),n.push("options"),["options=",i]):(n.push(i),"")}},function(){for(var e="break else new var case finally return void catch for switch while continue function this with default if throw delete in try do instanceof typeof abstract enum int short boolean export interface static byte extends long super char final native synchronized class float package throws const goto private transient debugger implements protected volatile double import public let yield await null true false".split(" "),t=i.RESERVED_WORDS={},n=0,r=e.length;n<r;n++)t[e[n]]=!0}(),i.isValidJavaScriptVariableName=function(e){return!i.RESERVED_WORDS[e]&&/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(e)},t["default"]=i,e.exports=t["default"]},function(e,t,n){"use strict";function r(){this.parents=[]}var i=n(8)["default"];t.__esModule=!0;var o=n(12),a=i(o),s=n(2),l=i(s);r.prototype={constructor:r,mutating:!1,acceptKey:function(e,t){var n=this.accept(e[t]);if(this.mutating){if(n&&(!n.type||!l["default"][n.type]))throw new a["default"]('Unexpected node type "'+n.type+'" found when accepting '+t+" on "+e.type); +e[t]=n}},acceptRequired:function(e,t){if(this.acceptKey(e,t),!e[t])throw new a["default"](e.type+" requires "+t)},acceptArray:function(e){for(var t=0,n=e.length;t<n;t++)this.acceptKey(e,t),e[t]||(e.splice(t,1),t--,n--)},accept:function(e){if(e){this.current&&this.parents.unshift(this.current),this.current=e;var t=this[e.type](e);return this.current=this.parents.shift(),!this.mutating||t?t:t!==!1?e:void 0}},Program:function(e){this.acceptArray(e.body)},MustacheStatement:function(e){this.acceptRequired(e,"path"),this.acceptArray(e.params),this.acceptKey(e,"hash")},BlockStatement:function(e){this.acceptRequired(e,"path"),this.acceptArray(e.params),this.acceptKey(e,"hash"),this.acceptKey(e,"program"),this.acceptKey(e,"inverse")},PartialStatement:function(e){this.acceptRequired(e,"name"),this.acceptArray(e.params),this.acceptKey(e,"hash")},ContentStatement:function(){},CommentStatement:function(){},SubExpression:function(e){this.acceptRequired(e,"path"),this.acceptArray(e.params),this.acceptKey(e,"hash")},PathExpression:function(){},StringLiteral:function(){},NumberLiteral:function(){},BooleanLiteral:function(){},UndefinedLiteral:function(){},NullLiteral:function(){},Hash:function(e){this.acceptArray(e.pairs)},HashPair:function(e){this.acceptRequired(e,"value")}},t["default"]=r,e.exports=t["default"]},function(e,t,n){(function(n){"use strict";t.__esModule=!0,t["default"]=function(e){var t="undefined"!=typeof n?n:window,r=t.Handlebars;e.noConflict=function(){t.Handlebars===e&&(t.Handlebars=r)}},e.exports=t["default"]}).call(t,function(){return this}())},function(e,t,n){"use strict";t["default"]=function(e){return e&&e.__esModule?e:{"default":e}},t.__esModule=!0},function(e,t,n){"use strict";t["default"]=function(e){if(e&&e.__esModule)return e;var t={};if("object"==typeof e&&null!==e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t},t.__esModule=!0},function(e,t,n){"use strict";function r(e,t){this.helpers=e||{},this.partials=t||{},i(this)}function i(e){e.registerHelper("helperMissing",function(){if(1!==arguments.length)throw new p["default"]('Missing helper: "'+arguments[arguments.length-1].name+'"')}),e.registerHelper("blockHelperMissing",function(t,n){var r=n.inverse,i=n.fn;if(t===!0)return i(this);if(t===!1||null==t)return r(this);if(g(t))return t.length>0?(n.ids&&(n.ids=[n.name]),e.helpers.each(t,n)):r(this);if(n.data&&n.ids){var a=o(n.data);a.contextPath=u.appendContextPath(n.data.contextPath,n.name),n={data:a}}return i(t,n)}),e.registerHelper("each",function(e,t){function n(t,n,i){l&&(l.key=t,l.index=n,l.first=0===n,l.last=!!i,c&&(l.contextPath=c+t)),s+=r(e[t],{data:l,blockParams:u.blockParams([e[t],t],[c+t,null])})}if(!t)throw new p["default"]("Must pass iterator to #each");var r=t.fn,i=t.inverse,a=0,s="",l=void 0,c=void 0;if(t.data&&t.ids&&(c=u.appendContextPath(t.data.contextPath,t.ids[0])+"."),m(e)&&(e=e.call(this)),t.data&&(l=o(t.data)),e&&"object"==typeof e)if(g(e))for(var h=e.length;a<h;a++)n(a,a,a===e.length-1);else{var f=void 0;for(var d in e)e.hasOwnProperty(d)&&(f&&n(f,a-1),f=d,a++);f&&n(f,a-1,!0)}return 0===a&&(s=i(this)),s}),e.registerHelper("if",function(e,t){return m(e)&&(e=e.call(this)),!t.hash.includeZero&&!e||u.isEmpty(e)?t.inverse(this):t.fn(this)}),e.registerHelper("unless",function(t,n){return e.helpers["if"].call(this,t,{fn:n.inverse,inverse:n.fn,hash:n.hash})}),e.registerHelper("with",function(e,t){m(e)&&(e=e.call(this));var n=t.fn;if(u.isEmpty(e))return t.inverse(this);if(t.data&&t.ids){var r=o(t.data);r.contextPath=u.appendContextPath(t.data.contextPath,t.ids[0]),t={data:r}}return n(e,t)}),e.registerHelper("log",function(t,n){var r=n.data&&null!=n.data.level?parseInt(n.data.level,10):1;e.log(r,t)}),e.registerHelper("lookup",function(e,t){return e&&e[t]})}function o(e){var t=u.extend({},e);return t._parent=e,t}var a=n(9)["default"],s=n(8)["default"];t.__esModule=!0,t.HandlebarsEnvironment=r,t.createFrame=o;var l=n(13),u=a(l),c=n(12),p=s(c),h="3.0.1";t.VERSION=h;var f=6;t.COMPILER_REVISION=f;var d={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1"};t.REVISION_CHANGES=d;var g=u.isArray,m=u.isFunction,v=u.toString,y="[object Object]";r.prototype={constructor:r,logger:b,log:x,registerHelper:function(e,t){if(v.call(e)===y){if(t)throw new p["default"]("Arg not supported with multiple helpers");u.extend(this.helpers,e)}else this.helpers[e]=t},unregisterHelper:function(e){delete this.helpers[e]},registerPartial:function(e,t){if(v.call(e)===y)u.extend(this.partials,e);else{if("undefined"==typeof t)throw new p["default"]("Attempting to register a partial as undefined");this.partials[e]=t}},unregisterPartial:function(e){delete this.partials[e]}};var b={methodMap:{0:"debug",1:"info",2:"warn",3:"error"},DEBUG:0,INFO:1,WARN:2,ERROR:3,level:1,log:function(e,t){if("undefined"!=typeof console&&b.level<=e){var n=b.methodMap[e];(console[n]||console.log).call(console,t)}}};t.logger=b;var x=b.log;t.log=x},function(e,t,n){"use strict";function r(e){this.string=e}t.__esModule=!0,r.prototype.toString=r.prototype.toHTML=function(){return""+this.string},t["default"]=r,e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t){var n=t&&t.loc,o=void 0,a=void 0;n&&(o=n.start.line,a=n.start.column,e+=" - "+o+":"+a);for(var s=Error.prototype.constructor.call(this,e),l=0;l<i.length;l++)this[i[l]]=s[i[l]];Error.captureStackTrace&&Error.captureStackTrace(this,r),n&&(this.lineNumber=o,this.column=a)}t.__esModule=!0;var i=["description","fileName","lineNumber","message","name","number","stack"];r.prototype=new Error,t["default"]=r,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return c[e]}function i(e){for(var t=1;t<arguments.length;t++)for(var n in arguments[t])Object.prototype.hasOwnProperty.call(arguments[t],n)&&(e[n]=arguments[t][n]);return e}function o(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}function a(e){if("string"!=typeof e){if(e&&e.toHTML)return e.toHTML();if(null==e)return"";if(!e)return e+"";e=""+e}return h.test(e)?e.replace(p,r):e}function s(e){return!e&&0!==e||!(!g(e)||0!==e.length)}function l(e,t){return e.path=t,e}function u(e,t){return(e?e+".":"")+t}t.__esModule=!0,t.extend=i,t.indexOf=o,t.escapeExpression=a,t.isEmpty=s,t.blockParams=l,t.appendContextPath=u;var c={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},p=/[&<>"'`]/g,h=/[&<>"'`]/,f=Object.prototype.toString;t.toString=f;var d=function(e){return"function"==typeof e};d(/x/)&&(t.isFunction=d=function(e){return"function"==typeof e&&"[object Function]"===f.call(e)});var d;t.isFunction=d;var g=Array.isArray||function(e){return!(!e||"object"!=typeof e)&&"[object Array]"===f.call(e)};t.isArray=g},function(e,t,n){"use strict";function r(e){var t=e&&e[0]||1,n=m.COMPILER_REVISION;if(t!==n){if(t<n){var r=m.REVISION_CHANGES[n],i=m.REVISION_CHANGES[t];throw new g["default"]("Template was precompiled with an older version of Handlebars than the current runtime. Please update your precompiler to a newer version ("+r+") or downgrade your runtime to an older version ("+i+").")}throw new g["default"]("Template was precompiled with a newer version of Handlebars than the current runtime. Please update your runtime to a newer version ("+e[1]+").")}}function i(e,t){function n(n,r,i){i.hash&&(r=f.extend({},r,i.hash)),n=t.VM.resolvePartial.call(this,n,r,i);var o=t.VM.invokePartial.call(this,n,r,i);if(null==o&&t.compile&&(i.partials[i.name]=t.compile(n,e.compilerOptions,t),o=i.partials[i.name](r,i)),null!=o){if(i.indent){for(var a=o.split("\n"),s=0,l=a.length;s<l&&(a[s]||s+1!==l);s++)a[s]=i.indent+a[s];o=a.join("\n")}return o}throw new g["default"]("The partial "+i.name+" could not be compiled when running in runtime-only mode")}function r(t){var n=void 0===arguments[1]?{}:arguments[1],o=n.data;r._setup(n),!n.partial&&e.useData&&(o=u(t,o));var a=void 0,s=e.useBlockParams?[]:void 0;return e.useDepths&&(a=n.depths?[t].concat(n.depths):[t]),e.main.call(i,t,i.helpers,i.partials,o,s,a)}if(!t)throw new g["default"]("No environment passed to template");if(!e||!e.main)throw new g["default"]("Unknown template object: "+typeof e);t.VM.checkRevision(e.compiler);var i={strict:function(e,t){if(!(t in e))throw new g["default"]('"'+t+'" not defined in '+e);return e[t]},lookup:function(e,t){for(var n=e.length,r=0;r<n;r++)if(e[r]&&null!=e[r][t])return e[r][t]},lambda:function(e,t){return"function"==typeof e?e.call(t):e},escapeExpression:f.escapeExpression,invokePartial:n,fn:function(t){return e[t]},programs:[],program:function(e,t,n,r,i){var a=this.programs[e],s=this.fn(e);return t||i||r||n?a=o(this,e,s,t,n,r,i):a||(a=this.programs[e]=o(this,e,s)),a},data:function(e,t){for(;e&&t--;)e=e._parent;return e},merge:function(e,t){var n=e||t;return e&&t&&e!==t&&(n=f.extend({},t,e)),n},noop:t.VM.noop,compilerInfo:e.compiler};return r.isTop=!0,r._setup=function(n){n.partial?(i.helpers=n.helpers,i.partials=n.partials):(i.helpers=i.merge(n.helpers,t.helpers),e.usePartial&&(i.partials=i.merge(n.partials,t.partials)))},r._child=function(t,n,r,a){if(e.useBlockParams&&!r)throw new g["default"]("must pass block params");if(e.useDepths&&!a)throw new g["default"]("must pass parent depths");return o(i,t,e[t],n,0,r,a)},r}function o(e,t,n,r,i,o,a){function s(t){var i=void 0===arguments[1]?{}:arguments[1];return n.call(e,t,e.helpers,e.partials,i.data||r,o&&[i.blockParams].concat(o),a&&[t].concat(a))}return s.program=t,s.depth=a?a.length:0,s.blockParams=i||0,s}function a(e,t,n){return e?e.call||n.name||(n.name=e,e=n.partials[e]):e=n.partials[n.name],e}function s(e,t,n){if(n.partial=!0,void 0===e)throw new g["default"]("The partial "+n.name+" could not be found");if(e instanceof Function)return e(t,n)}function l(){return""}function u(e,t){return t&&"root"in t||(t=t?m.createFrame(t):{},t.root=e),t}var c=n(9)["default"],p=n(8)["default"];t.__esModule=!0,t.checkRevision=r,t.template=i,t.wrapProgram=o,t.resolvePartial=a,t.invokePartial=s,t.noop=l;var h=n(13),f=c(h),d=n(12),g=p(d),m=n(10)},function(e,t,n){"use strict";t.__esModule=!0;var r=function(){function e(){this.yy={}}var t={trace:function(){},yy:{},symbols_:{error:2,root:3,program:4,EOF:5,program_repetition0:6,statement:7,mustache:8,block:9,rawBlock:10,partial:11,content:12,COMMENT:13,CONTENT:14,openRawBlock:15,END_RAW_BLOCK:16,OPEN_RAW_BLOCK:17,helperName:18,openRawBlock_repetition0:19,openRawBlock_option0:20,CLOSE_RAW_BLOCK:21,openBlock:22,block_option0:23,closeBlock:24,openInverse:25,block_option1:26,OPEN_BLOCK:27,openBlock_repetition0:28,openBlock_option0:29,openBlock_option1:30,CLOSE:31,OPEN_INVERSE:32,openInverse_repetition0:33,openInverse_option0:34,openInverse_option1:35,openInverseChain:36,OPEN_INVERSE_CHAIN:37,openInverseChain_repetition0:38,openInverseChain_option0:39,openInverseChain_option1:40,inverseAndProgram:41,INVERSE:42,inverseChain:43,inverseChain_option0:44,OPEN_ENDBLOCK:45,OPEN:46,mustache_repetition0:47,mustache_option0:48,OPEN_UNESCAPED:49,mustache_repetition1:50,mustache_option1:51,CLOSE_UNESCAPED:52,OPEN_PARTIAL:53,partialName:54,partial_repetition0:55,partial_option0:56,param:57,sexpr:58,OPEN_SEXPR:59,sexpr_repetition0:60,sexpr_option0:61,CLOSE_SEXPR:62,hash:63,hash_repetition_plus0:64,hashSegment:65,ID:66,EQUALS:67,blockParams:68,OPEN_BLOCK_PARAMS:69,blockParams_repetition_plus0:70,CLOSE_BLOCK_PARAMS:71,path:72,dataName:73,STRING:74,NUMBER:75,BOOLEAN:76,UNDEFINED:77,NULL:78,DATA:79,pathSegments:80,SEP:81,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",13:"COMMENT",14:"CONTENT",16:"END_RAW_BLOCK",17:"OPEN_RAW_BLOCK",21:"CLOSE_RAW_BLOCK",27:"OPEN_BLOCK",31:"CLOSE",32:"OPEN_INVERSE",37:"OPEN_INVERSE_CHAIN",42:"INVERSE",45:"OPEN_ENDBLOCK",46:"OPEN",49:"OPEN_UNESCAPED",52:"CLOSE_UNESCAPED",53:"OPEN_PARTIAL",59:"OPEN_SEXPR",62:"CLOSE_SEXPR",66:"ID",67:"EQUALS",69:"OPEN_BLOCK_PARAMS",71:"CLOSE_BLOCK_PARAMS",74:"STRING",75:"NUMBER",76:"BOOLEAN",77:"UNDEFINED",78:"NULL",79:"DATA",81:"SEP"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[12,1],[10,3],[15,5],[9,4],[9,4],[22,6],[25,6],[36,6],[41,2],[43,3],[43,1],[24,3],[8,5],[8,5],[11,5],[57,1],[57,1],[58,5],[63,1],[65,3],[68,3],[18,1],[18,1],[18,1],[18,1],[18,1],[18,1],[18,1],[54,1],[54,1],[73,2],[72,1],[80,3],[80,1],[6,0],[6,2],[19,0],[19,2],[20,0],[20,1],[23,0],[23,1],[26,0],[26,1],[28,0],[28,2],[29,0],[29,1],[30,0],[30,1],[33,0],[33,2],[34,0],[34,1],[35,0],[35,1],[38,0],[38,2],[39,0],[39,1],[40,0],[40,1],[44,0],[44,1],[47,0],[47,2],[48,0],[48,1],[50,0],[50,2],[51,0],[51,1],[55,0],[55,2],[56,0],[56,1],[60,0],[60,2],[61,0],[61,1],[64,1],[64,2],[70,1],[70,2]],performAction:function(e,t,n,r,i,o,a){var s=o.length-1;switch(i){case 1:return o[s-1];case 2:this.$=new r.Program(o[s],null,{},r.locInfo(this._$));break;case 3:this.$=o[s];break;case 4:this.$=o[s];break;case 5:this.$=o[s];break;case 6:this.$=o[s];break;case 7:this.$=o[s];break;case 8:this.$=new r.CommentStatement(r.stripComment(o[s]),r.stripFlags(o[s],o[s]),r.locInfo(this._$));break;case 9:this.$=new r.ContentStatement(o[s],r.locInfo(this._$));break;case 10:this.$=r.prepareRawBlock(o[s-2],o[s-1],o[s],this._$);break;case 11:this.$={path:o[s-3],params:o[s-2],hash:o[s-1]};break;case 12:this.$=r.prepareBlock(o[s-3],o[s-2],o[s-1],o[s],!1,this._$);break;case 13:this.$=r.prepareBlock(o[s-3],o[s-2],o[s-1],o[s],!0,this._$);break;case 14:this.$={path:o[s-4],params:o[s-3],hash:o[s-2],blockParams:o[s-1],strip:r.stripFlags(o[s-5],o[s])};break;case 15:this.$={path:o[s-4],params:o[s-3],hash:o[s-2],blockParams:o[s-1],strip:r.stripFlags(o[s-5],o[s])};break;case 16:this.$={path:o[s-4],params:o[s-3],hash:o[s-2],blockParams:o[s-1],strip:r.stripFlags(o[s-5],o[s])};break;case 17:this.$={strip:r.stripFlags(o[s-1],o[s-1]),program:o[s]};break;case 18:var l=r.prepareBlock(o[s-2],o[s-1],o[s],o[s],!1,this._$),u=new r.Program([l],null,{},r.locInfo(this._$));u.chained=!0,this.$={strip:o[s-2].strip,program:u,chain:!0};break;case 19:this.$=o[s];break;case 20:this.$={path:o[s-1],strip:r.stripFlags(o[s-2],o[s])};break;case 21:this.$=r.prepareMustache(o[s-3],o[s-2],o[s-1],o[s-4],r.stripFlags(o[s-4],o[s]),this._$);break;case 22:this.$=r.prepareMustache(o[s-3],o[s-2],o[s-1],o[s-4],r.stripFlags(o[s-4],o[s]),this._$);break;case 23:this.$=new r.PartialStatement(o[s-3],o[s-2],o[s-1],r.stripFlags(o[s-4],o[s]),r.locInfo(this._$));break;case 24:this.$=o[s];break;case 25:this.$=o[s];break;case 26:this.$=new r.SubExpression(o[s-3],o[s-2],o[s-1],r.locInfo(this._$));break;case 27:this.$=new r.Hash(o[s],r.locInfo(this._$));break;case 28:this.$=new r.HashPair(r.id(o[s-2]),o[s],r.locInfo(this._$));break;case 29:this.$=r.id(o[s-1]);break;case 30:this.$=o[s];break;case 31:this.$=o[s];break;case 32:this.$=new r.StringLiteral(o[s],r.locInfo(this._$));break;case 33:this.$=new r.NumberLiteral(o[s],r.locInfo(this._$));break;case 34:this.$=new r.BooleanLiteral(o[s],r.locInfo(this._$));break;case 35:this.$=new r.UndefinedLiteral(r.locInfo(this._$));break;case 36:this.$=new r.NullLiteral(r.locInfo(this._$));break;case 37:this.$=o[s];break;case 38:this.$=o[s];break;case 39:this.$=r.preparePath(!0,o[s],this._$);break;case 40:this.$=r.preparePath(!1,o[s],this._$);break;case 41:o[s-2].push({part:r.id(o[s]),original:o[s],separator:o[s-1]}),this.$=o[s-2];break;case 42:this.$=[{part:r.id(o[s]),original:o[s]}];break;case 43:this.$=[];break;case 44:o[s-1].push(o[s]);break;case 45:this.$=[];break;case 46:o[s-1].push(o[s]);break;case 53:this.$=[];break;case 54:o[s-1].push(o[s]);break;case 59:this.$=[];break;case 60:o[s-1].push(o[s]);break;case 65:this.$=[];break;case 66:o[s-1].push(o[s]);break;case 73:this.$=[];break;case 74:o[s-1].push(o[s]);break;case 77:this.$=[];break;case 78:o[s-1].push(o[s]);break;case 81:this.$=[];break;case 82:o[s-1].push(o[s]);break;case 85:this.$=[];break;case 86:o[s-1].push(o[s]);break;case 89:this.$=[o[s]];break;case 90:o[s-1].push(o[s]);break;case 91:this.$=[o[s]];break;case 92:o[s-1].push(o[s])}},table:[{3:1,4:2,5:[2,43],6:3,13:[2,43],14:[2,43],17:[2,43],27:[2,43],32:[2,43],46:[2,43],49:[2,43],53:[2,43]},{1:[3]},{5:[1,4]},{5:[2,2],7:5,8:6,9:7,10:8,11:9,12:10,13:[1,11],14:[1,18],15:16,17:[1,21],22:14,25:15,27:[1,19],32:[1,20],37:[2,2],42:[2,2],45:[2,2],46:[1,12],49:[1,13],53:[1,17]},{1:[2,1]},{5:[2,44],13:[2,44],14:[2,44],17:[2,44],27:[2,44],32:[2,44],37:[2,44],42:[2,44],45:[2,44],46:[2,44],49:[2,44],53:[2,44]},{5:[2,3],13:[2,3],14:[2,3],17:[2,3],27:[2,3],32:[2,3],37:[2,3],42:[2,3],45:[2,3],46:[2,3],49:[2,3],53:[2,3]},{5:[2,4],13:[2,4],14:[2,4],17:[2,4],27:[2,4],32:[2,4],37:[2,4],42:[2,4],45:[2,4],46:[2,4],49:[2,4],53:[2,4]},{5:[2,5],13:[2,5],14:[2,5],17:[2,5],27:[2,5],32:[2,5],37:[2,5],42:[2,5],45:[2,5],46:[2,5],49:[2,5],53:[2,5]},{5:[2,6],13:[2,6],14:[2,6],17:[2,6],27:[2,6],32:[2,6],37:[2,6],42:[2,6],45:[2,6],46:[2,6],49:[2,6],53:[2,6]},{5:[2,7],13:[2,7],14:[2,7],17:[2,7],27:[2,7],32:[2,7],37:[2,7],42:[2,7],45:[2,7],46:[2,7],49:[2,7],53:[2,7]},{5:[2,8],13:[2,8],14:[2,8],17:[2,8],27:[2,8],32:[2,8],37:[2,8],42:[2,8],45:[2,8],46:[2,8],49:[2,8],53:[2,8]},{18:22,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{18:33,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{4:34,6:3,13:[2,43],14:[2,43],17:[2,43],27:[2,43],32:[2,43],37:[2,43],42:[2,43],45:[2,43],46:[2,43],49:[2,43],53:[2,43]},{4:35,6:3,13:[2,43],14:[2,43],17:[2,43],27:[2,43],32:[2,43],42:[2,43],45:[2,43],46:[2,43],49:[2,43],53:[2,43]},{12:36,14:[1,18]},{18:38,54:37,58:39,59:[1,40],66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{5:[2,9],13:[2,9],14:[2,9],16:[2,9],17:[2,9],27:[2,9],32:[2,9],37:[2,9],42:[2,9],45:[2,9],46:[2,9],49:[2,9],53:[2,9]},{18:41,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{18:42,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{18:43,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{31:[2,73],47:44,59:[2,73],66:[2,73],74:[2,73],75:[2,73],76:[2,73],77:[2,73],78:[2,73],79:[2,73]},{21:[2,30],31:[2,30],52:[2,30],59:[2,30],62:[2,30],66:[2,30],69:[2,30],74:[2,30],75:[2,30],76:[2,30],77:[2,30],78:[2,30],79:[2,30]},{21:[2,31],31:[2,31],52:[2,31],59:[2,31],62:[2,31],66:[2,31],69:[2,31],74:[2,31],75:[2,31],76:[2,31],77:[2,31],78:[2,31],79:[2,31]},{21:[2,32],31:[2,32],52:[2,32],59:[2,32],62:[2,32],66:[2,32],69:[2,32],74:[2,32],75:[2,32],76:[2,32],77:[2,32],78:[2,32],79:[2,32]},{21:[2,33],31:[2,33],52:[2,33],59:[2,33],62:[2,33],66:[2,33],69:[2,33],74:[2,33],75:[2,33],76:[2,33],77:[2,33],78:[2,33],79:[2,33]},{21:[2,34],31:[2,34],52:[2,34],59:[2,34],62:[2,34],66:[2,34],69:[2,34],74:[2,34],75:[2,34],76:[2,34],77:[2,34],78:[2,34],79:[2,34]},{21:[2,35],31:[2,35],52:[2,35],59:[2,35],62:[2,35],66:[2,35],69:[2,35],74:[2,35],75:[2,35],76:[2,35],77:[2,35],78:[2,35],79:[2,35]},{21:[2,36],31:[2,36],52:[2,36],59:[2,36],62:[2,36],66:[2,36],69:[2,36],74:[2,36],75:[2,36],76:[2,36],77:[2,36],78:[2,36],79:[2,36]},{21:[2,40],31:[2,40],52:[2,40],59:[2,40],62:[2,40],66:[2,40],69:[2,40],74:[2,40],75:[2,40],76:[2,40],77:[2,40],78:[2,40],79:[2,40],81:[1,45]},{66:[1,32],80:46},{21:[2,42],31:[2,42],52:[2,42],59:[2,42],62:[2,42],66:[2,42],69:[2,42],74:[2,42],75:[2,42],76:[2,42],77:[2,42],78:[2,42],79:[2,42],81:[2,42]},{50:47,52:[2,77],59:[2,77],66:[2,77],74:[2,77],75:[2,77],76:[2,77],77:[2,77],78:[2,77],79:[2,77]},{23:48,36:50,37:[1,52],41:51,42:[1,53],43:49,45:[2,49]},{26:54,41:55,42:[1,53],45:[2,51]},{16:[1,56]},{31:[2,81],55:57,59:[2,81],66:[2,81],74:[2,81],75:[2,81],76:[2,81],77:[2,81],78:[2,81],79:[2,81]},{31:[2,37],59:[2,37],66:[2,37],74:[2,37],75:[2,37],76:[2,37],77:[2,37],78:[2,37],79:[2,37]},{31:[2,38],59:[2,38],66:[2,38],74:[2,38],75:[2,38],76:[2,38],77:[2,38],78:[2,38],79:[2,38]},{18:58,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{28:59,31:[2,53],59:[2,53],66:[2,53],69:[2,53],74:[2,53],75:[2,53],76:[2,53],77:[2,53],78:[2,53],79:[2,53]},{31:[2,59],33:60,59:[2,59],66:[2,59],69:[2,59],74:[2,59],75:[2,59],76:[2,59],77:[2,59],78:[2,59],79:[2,59]},{19:61,21:[2,45],59:[2,45],66:[2,45],74:[2,45],75:[2,45],76:[2,45],77:[2,45],78:[2,45],79:[2,45]},{18:65,31:[2,75],48:62,57:63,58:66,59:[1,40],63:64,64:67,65:68,66:[1,69],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{66:[1,70]},{21:[2,39],31:[2,39],52:[2,39],59:[2,39],62:[2,39],66:[2,39],69:[2,39],74:[2,39],75:[2,39],76:[2,39],77:[2,39],78:[2,39],79:[2,39],81:[1,45]},{18:65,51:71,52:[2,79],57:72,58:66,59:[1,40],63:73,64:67,65:68,66:[1,69],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{24:74,45:[1,75]},{45:[2,50]},{4:76,6:3,13:[2,43],14:[2,43],17:[2,43],27:[2,43],32:[2,43],37:[2,43],42:[2,43],45:[2,43],46:[2,43],49:[2,43],53:[2,43]},{45:[2,19]},{18:77,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{4:78,6:3,13:[2,43],14:[2,43],17:[2,43],27:[2,43],32:[2,43],45:[2,43],46:[2,43],49:[2,43],53:[2,43]},{24:79,45:[1,75]},{45:[2,52]},{5:[2,10],13:[2,10],14:[2,10],17:[2,10],27:[2,10],32:[2,10],37:[2,10],42:[2,10],45:[2,10],46:[2,10],49:[2,10],53:[2,10]},{18:65,31:[2,83],56:80,57:81,58:66,59:[1,40],63:82,64:67,65:68,66:[1,69],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{59:[2,85],60:83,62:[2,85],66:[2,85],74:[2,85],75:[2,85],76:[2,85],77:[2,85],78:[2,85],79:[2,85]},{18:65,29:84,31:[2,55],57:85,58:66,59:[1,40],63:86,64:67,65:68,66:[1,69],69:[2,55],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{18:65,31:[2,61],34:87,57:88,58:66,59:[1,40],63:89,64:67,65:68,66:[1,69],69:[2,61],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{18:65,20:90,21:[2,47],57:91,58:66,59:[1,40],63:92,64:67,65:68,66:[1,69],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{31:[1,93]},{31:[2,74],59:[2,74],66:[2,74],74:[2,74],75:[2,74],76:[2,74],77:[2,74],78:[2,74],79:[2,74]},{31:[2,76]},{21:[2,24],31:[2,24],52:[2,24],59:[2,24],62:[2,24],66:[2,24],69:[2,24],74:[2,24],75:[2,24],76:[2,24],77:[2,24],78:[2,24],79:[2,24]},{21:[2,25],31:[2,25],52:[2,25],59:[2,25],62:[2,25],66:[2,25],69:[2,25],74:[2,25],75:[2,25],76:[2,25],77:[2,25],78:[2,25],79:[2,25]},{21:[2,27],31:[2,27],52:[2,27],62:[2,27],65:94,66:[1,95],69:[2,27]},{21:[2,89],31:[2,89],52:[2,89],62:[2,89],66:[2,89],69:[2,89]},{21:[2,42],31:[2,42],52:[2,42],59:[2,42],62:[2,42],66:[2,42],67:[1,96],69:[2,42],74:[2,42],75:[2,42],76:[2,42],77:[2,42],78:[2,42],79:[2,42],81:[2,42]},{21:[2,41],31:[2,41],52:[2,41],59:[2,41],62:[2,41],66:[2,41],69:[2,41],74:[2,41],75:[2,41],76:[2,41],77:[2,41],78:[2,41],79:[2,41],81:[2,41]},{52:[1,97]},{52:[2,78],59:[2,78],66:[2,78],74:[2,78],75:[2,78],76:[2,78],77:[2,78],78:[2,78],79:[2,78]},{52:[2,80]},{5:[2,12],13:[2,12],14:[2,12],17:[2,12],27:[2,12],32:[2,12],37:[2,12],42:[2,12],45:[2,12],46:[2,12],49:[2,12],53:[2,12]},{18:98,66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{36:50,37:[1,52],41:51,42:[1,53],43:100,44:99,45:[2,71]},{31:[2,65],38:101,59:[2,65],66:[2,65],69:[2,65],74:[2,65],75:[2,65],76:[2,65],77:[2,65],78:[2,65],79:[2,65]},{45:[2,17]},{5:[2,13],13:[2,13],14:[2,13],17:[2,13],27:[2,13],32:[2,13],37:[2,13],42:[2,13],45:[2,13],46:[2,13],49:[2,13],53:[2,13]},{31:[1,102]},{31:[2,82],59:[2,82],66:[2,82],74:[2,82],75:[2,82],76:[2,82],77:[2,82],78:[2,82],79:[2,82]},{31:[2,84]},{18:65,57:104,58:66,59:[1,40],61:103,62:[2,87],63:105,64:67,65:68,66:[1,69],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{30:106,31:[2,57],68:107,69:[1,108]},{31:[2,54],59:[2,54],66:[2,54],69:[2,54],74:[2,54],75:[2,54],76:[2,54],77:[2,54],78:[2,54],79:[2,54]},{31:[2,56],69:[2,56]},{31:[2,63],35:109,68:110,69:[1,108]},{31:[2,60],59:[2,60],66:[2,60],69:[2,60],74:[2,60],75:[2,60],76:[2,60],77:[2,60],78:[2,60],79:[2,60]},{31:[2,62],69:[2,62]},{21:[1,111]},{21:[2,46],59:[2,46],66:[2,46],74:[2,46],75:[2,46],76:[2,46],77:[2,46],78:[2,46],79:[2,46]},{21:[2,48]},{5:[2,21],13:[2,21],14:[2,21],17:[2,21],27:[2,21],32:[2,21],37:[2,21],42:[2,21],45:[2,21],46:[2,21],49:[2,21],53:[2,21]},{21:[2,90],31:[2,90],52:[2,90],62:[2,90],66:[2,90],69:[2,90]},{67:[1,96]},{18:65,57:112,58:66,59:[1,40],66:[1,32],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{5:[2,22],13:[2,22],14:[2,22],17:[2,22],27:[2,22],32:[2,22],37:[2,22],42:[2,22],45:[2,22],46:[2,22],49:[2,22],53:[2,22]},{31:[1,113]},{45:[2,18]},{45:[2,72]},{18:65,31:[2,67],39:114,57:115,58:66,59:[1,40],63:116,64:67,65:68,66:[1,69],69:[2,67],72:23,73:24,74:[1,25],75:[1,26],76:[1,27],77:[1,28],78:[1,29],79:[1,31],80:30},{5:[2,23],13:[2,23],14:[2,23],17:[2,23],27:[2,23],32:[2,23],37:[2,23],42:[2,23],45:[2,23],46:[2,23],49:[2,23],53:[2,23]},{62:[1,117]},{59:[2,86],62:[2,86],66:[2,86],74:[2,86],75:[2,86],76:[2,86],77:[2,86],78:[2,86],79:[2,86]},{62:[2,88]},{31:[1,118]},{31:[2,58]},{66:[1,120],70:119},{31:[1,121]},{31:[2,64]},{14:[2,11]},{21:[2,28],31:[2,28],52:[2,28],62:[2,28],66:[2,28],69:[2,28]},{5:[2,20],13:[2,20],14:[2,20],17:[2,20],27:[2,20],32:[2,20],37:[2,20],42:[2,20],45:[2,20],46:[2,20],49:[2,20],53:[2,20]},{31:[2,69],40:122,68:123,69:[1,108]},{31:[2,66],59:[2,66],66:[2,66],69:[2,66],74:[2,66],75:[2,66],76:[2,66],77:[2,66],78:[2,66],79:[2,66]},{31:[2,68],69:[2,68]},{21:[2,26],31:[2,26],52:[2,26],59:[2,26],62:[2,26],66:[2,26],69:[2,26],74:[2,26],75:[2,26],76:[2,26],77:[2,26],78:[2,26],79:[2,26]},{13:[2,14],14:[2,14],17:[2,14],27:[2,14],32:[2,14],37:[2,14],42:[2,14],45:[2,14],46:[2,14],49:[2,14],53:[2,14]},{66:[1,125],71:[1,124]},{66:[2,91],71:[2,91]},{13:[2,15],14:[2,15],17:[2,15],27:[2,15],32:[2,15],42:[2,15],45:[2,15],46:[2,15],49:[2,15],53:[2,15]},{31:[1,126]},{31:[2,70]},{31:[2,29]},{66:[2,92],71:[2,92]},{13:[2,16],14:[2,16],17:[2,16],27:[2,16],32:[2,16],37:[2,16],42:[2,16],45:[2,16],46:[2,16],49:[2,16],53:[2,16]}],defaultActions:{4:[2,1],49:[2,50],51:[2,19],55:[2,52],64:[2,76],73:[2,80],78:[2,17],82:[2,84],92:[2,48],99:[2,18],100:[2,72],105:[2,88],107:[2,58],110:[2,64],111:[2,11],123:[2,70],124:[2,29]},parseError:function(e,t){throw new Error(e)},parse:function(e){function t(){var e;return e=n.lexer.lex()||1,"number"!=typeof e&&(e=n.symbols_[e]||e),e}var n=this,r=[0],i=[null],o=[],a=this.table,s="",l=0,u=0,c=0;this.lexer.setInput(e),this.lexer.yy=this.yy,this.yy.lexer=this.lexer,this.yy.parser=this,"undefined"==typeof this.lexer.yylloc&&(this.lexer.yylloc={});var p=this.lexer.yylloc;o.push(p);var h=this.lexer.options&&this.lexer.options.ranges;"function"==typeof this.yy.parseError&&(this.parseError=this.yy.parseError);for(var f,d,g,m,v,y,b,x,w,S={};;){if(g=r[r.length-1],this.defaultActions[g]?m=this.defaultActions[g]:(null!==f&&"undefined"!=typeof f||(f=t()),m=a[g]&&a[g][f]),"undefined"==typeof m||!m.length||!m[0]){var k="";if(!c){w=[];for(y in a[g])this.terminals_[y]&&y>2&&w.push("'"+this.terminals_[y]+"'");k=this.lexer.showPosition?"Parse error on line "+(l+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+w.join(", ")+", got '"+(this.terminals_[f]||f)+"'":"Parse error on line "+(l+1)+": Unexpected "+(1==f?"end of input":"'"+(this.terminals_[f]||f)+"'"),this.parseError(k,{text:this.lexer.match,token:this.terminals_[f]||f,line:this.lexer.yylineno,loc:p,expected:w})}}if(m[0]instanceof Array&&m.length>1)throw new Error("Parse Error: multiple actions possible at state: "+g+", token: "+f);switch(m[0]){case 1:r.push(f),i.push(this.lexer.yytext),o.push(this.lexer.yylloc),r.push(m[1]),f=null,d?(f=d,d=null):(u=this.lexer.yyleng,s=this.lexer.yytext,l=this.lexer.yylineno,p=this.lexer.yylloc,c>0&&c--);break;case 2:if(b=this.productions_[m[1]][1],S.$=i[i.length-b],S._$={first_line:o[o.length-(b||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(b||1)].first_column,last_column:o[o.length-1].last_column},h&&(S._$.range=[o[o.length-(b||1)].range[0],o[o.length-1].range[1]]),v=this.performAction.call(S,s,u,l,this.yy,m[1],i,o),"undefined"!=typeof v)return v;b&&(r=r.slice(0,-1*b*2),i=i.slice(0,-1*b),o=o.slice(0,-1*b)),r.push(this.productions_[m[1]][0]),i.push(S.$),o.push(S._$),x=a[r[r.length-2]][r[r.length-1]],r.push(x);break;case 3:return!0}}return!0}},n=function(){var e={EOF:1,parseError:function(e,t){if(!this.yy.parser)throw new Error(e);this.yy.parser.parseError(e,t)},setInput:function(e){return this._input=e,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e;var t=e.match(/(?:\r\n?|\n).*/g);return t?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t-1),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-t]),this},more:function(){return this._more=!0,this},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var e=this.pastInput(),t=new Array(e.length+1).join("-");return e+this.upcomingInput()+"\n"+t+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,r,i;this._more||(this.yytext="",this.match="");for(var o=this._currentRules(),a=0;a<o.length&&(n=this._input.match(this.rules[o[a]]),!n||t&&!(n[0].length>t[0].length)||(t=n,r=a,this.options.flex));a++);return t?(i=t[0].match(/(?:\r\n?|\n).*/g),i&&(this.yylineno+=i.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:i?i[i.length-1].length-i[i.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+t[0].length},this.yytext+=t[0],this.match+=t[0],this.matches=t,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(t[0].length),this.matched+=t[0],e=this.performAction.call(this,this.yy,this,o[r],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),e?e:void 0):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var e=this.next();return"undefined"!=typeof e?e:this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(e){this.begin(e)}};return e.options={},e.performAction=function(e,t,n,r){function i(e,n){return t.yytext=t.yytext.substr(e,t.yyleng-n)}switch(n){case 0:if("\\\\"===t.yytext.slice(-2)?(i(0,1),this.begin("mu")):"\\"===t.yytext.slice(-1)?(i(0,1),this.begin("emu")):this.begin("mu"),t.yytext)return 14;break;case 1:return 14;case 2:return this.popState(), +14;case 3:return t.yytext=t.yytext.substr(5,t.yyleng-9),this.popState(),16;case 4:return 14;case 5:return this.popState(),13;case 6:return 59;case 7:return 62;case 8:return 17;case 9:return this.popState(),this.begin("raw"),21;case 10:return 53;case 11:return 27;case 12:return 45;case 13:return this.popState(),42;case 14:return this.popState(),42;case 15:return 32;case 16:return 37;case 17:return 49;case 18:return 46;case 19:this.unput(t.yytext),this.popState(),this.begin("com");break;case 20:return this.popState(),13;case 21:return 46;case 22:return 67;case 23:return 66;case 24:return 66;case 25:return 81;case 26:break;case 27:return this.popState(),52;case 28:return this.popState(),31;case 29:return t.yytext=i(1,2).replace(/\\"/g,'"'),74;case 30:return t.yytext=i(1,2).replace(/\\'/g,"'"),74;case 31:return 79;case 32:return 76;case 33:return 76;case 34:return 77;case 35:return 78;case 36:return 75;case 37:return 69;case 38:return 71;case 39:return 66;case 40:return 66;case 41:return"INVALID";case 42:return 5}},e.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]*?(?=(\{\{\{\{\/)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[[^\]]*\])/,/^(?:.)/,/^(?:$)/],e.conditions={mu:{rules:[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[5],inclusive:!1},raw:{rules:[3,4],inclusive:!1},INITIAL:{rules:[0,1,42],inclusive:!0}},e}();return t.lexer=n,e.prototype=t,t.Parser=e,new e}();t["default"]=r,e.exports=t["default"]},function(e,t,n){"use strict";function r(){}function i(e,t,n){void 0===t&&(t=e.length);var r=e[t-1],i=e[t-2];return r?"ContentStatement"===r.type?(i||!n?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test(r.original):void 0:n}function o(e,t,n){void 0===t&&(t=-1);var r=e[t+1],i=e[t+2];return r?"ContentStatement"===r.type?(i||!n?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test(r.original):void 0:n}function a(e,t,n){var r=e[null==t?0:t+1];if(r&&"ContentStatement"===r.type&&(n||!r.rightStripped)){var i=r.value;r.value=r.value.replace(n?/^\s+/:/^[ \t]*\r?\n?/,""),r.rightStripped=r.value!==i}}function s(e,t,n){var r=e[null==t?e.length-1:t-1];if(r&&"ContentStatement"===r.type&&(n||!r.leftStripped)){var i=r.value;return r.value=r.value.replace(n?/\s+$/:/[ \t]+$/,""),r.leftStripped=r.value!==i,r.leftStripped}}var l=n(8)["default"];t.__esModule=!0;var u=n(6),c=l(u);r.prototype=new c["default"],r.prototype.Program=function(e){var t=!this.isRootSeen;this.isRootSeen=!0;for(var n=e.body,r=0,l=n.length;r<l;r++){var u=n[r],c=this.accept(u);if(c){var p=i(n,r,t),h=o(n,r,t),f=c.openStandalone&&p,d=c.closeStandalone&&h,g=c.inlineStandalone&&p&&h;c.close&&a(n,r,!0),c.open&&s(n,r,!0),g&&(a(n,r),s(n,r)&&"PartialStatement"===u.type&&(u.indent=/([ \t]+$)/.exec(n[r-1].original)[1])),f&&(a((u.program||u.inverse).body),s(n,r)),d&&(a(n,r),s((u.inverse||u.program).body))}}return e},r.prototype.BlockStatement=function(e){this.accept(e.program),this.accept(e.inverse);var t=e.program||e.inverse,n=e.program&&e.inverse,r=n,l=n;if(n&&n.chained)for(r=n.body[0].program;l.chained;)l=l.body[l.body.length-1].program;var u={open:e.openStrip.open,close:e.closeStrip.close,openStandalone:o(t.body),closeStandalone:i((r||t).body)};if(e.openStrip.close&&a(t.body,null,!0),n){var c=e.inverseStrip;c.open&&s(t.body,null,!0),c.close&&a(r.body,null,!0),e.closeStrip.open&&s(l.body,null,!0),i(t.body)&&o(r.body)&&(s(t.body),a(r.body))}else e.closeStrip.open&&s(t.body,null,!0);return u},r.prototype.MustacheStatement=function(e){return e.strip},r.prototype.PartialStatement=r.prototype.CommentStatement=function(e){var t=e.strip||{};return{inlineStandalone:!0,open:t.open,close:t.close}},t["default"]=r,e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t){this.source=e,this.start={line:t.first_line,column:t.first_column},this.end={line:t.last_line,column:t.last_column}}function i(e){return/^\[.*\]$/.test(e)?e.substr(1,e.length-2):e}function o(e,t){return{open:"~"===e.charAt(2),close:"~"===t.charAt(t.length-3)}}function a(e){return e.replace(/^\{\{~?\!-?-?/,"").replace(/-?-?~?\}\}$/,"")}function s(e,t,n){n=this.locInfo(n);for(var r=e?"@":"",i=[],o=0,a="",s=0,l=t.length;s<l;s++){var u=t[s].part,c=t[s].original!==u;if(r+=(t[s].separator||"")+u,c||".."!==u&&"."!==u&&"this"!==u)i.push(u);else{if(i.length>0)throw new f["default"]("Invalid path: "+r,{loc:n});".."===u&&(o++,a+="../")}}return new this.PathExpression(e,o,i,r,n)}function l(e,t,n,r,i,o){var a=r.charAt(3)||r.charAt(2),s="{"!==a&&"&"!==a;return new this.MustacheStatement(e,t,n,s,i,this.locInfo(o))}function u(e,t,n,r){if(e.path.original!==n){var i={loc:e.path.loc};throw new f["default"](e.path.original+" doesn't match "+n,i)}r=this.locInfo(r);var o=new this.Program([t],null,{},r);return new this.BlockStatement(e.path,e.params,e.hash,o,(void 0),{},{},{},r)}function c(e,t,n,r,i,o){if(r&&r.path&&e.path.original!==r.path.original){var a={loc:e.path.loc};throw new f["default"](e.path.original+" doesn't match "+r.path.original,a)}t.blockParams=e.blockParams;var s=void 0,l=void 0;return n&&(n.chain&&(n.program.body[0].closeStrip=r.strip),l=n.strip,s=n.program),i&&(i=s,s=t,t=i),new this.BlockStatement(e.path,e.params,e.hash,t,s,e.strip,l,r&&r.strip,this.locInfo(o))}var p=n(8)["default"];t.__esModule=!0,t.SourceLocation=r,t.id=i,t.stripFlags=o,t.stripComment=a,t.preparePath=s,t.prepareMustache=l,t.prepareRawBlock=u,t.prepareBlock=c;var h=n(12),f=p(h)},function(e,t,n){"use strict";function r(e,t,n){if(o.isArray(e)){for(var r=[],i=0,a=e.length;i<a;i++)r.push(t.wrap(e[i],n));return r}return"boolean"==typeof e||"number"==typeof e?e+"":e}function i(e){this.srcFile=e,this.source=[]}t.__esModule=!0;var o=n(13),a=void 0;try{}catch(s){}a||(a=function(e,t,n,r){this.src="",r&&this.add(r)},a.prototype={add:function(e){o.isArray(e)&&(e=e.join("")),this.src+=e},prepend:function(e){o.isArray(e)&&(e=e.join("")),this.src=e+this.src},toStringWithSourceMap:function(){return{code:this.toString()}},toString:function(){return this.src}}),i.prototype={prepend:function(e,t){this.source.unshift(this.wrap(e,t))},push:function(e,t){this.source.push(this.wrap(e,t))},merge:function(){var e=this.empty();return this.each(function(t){e.add([" ",t,"\n"])}),e},each:function(e){for(var t=0,n=this.source.length;t<n;t++)e(this.source[t])},empty:function(){var e=void 0===arguments[0]?this.currentLocation||{start:{}}:arguments[0];return new a(e.start.line,e.start.column,this.srcFile)},wrap:function(e){var t=void 0===arguments[1]?this.currentLocation||{start:{}}:arguments[1];return e instanceof a?e:(e=r(e,this,t),new a(t.start.line,t.start.column,this.srcFile,e))},functionCall:function(e,t,n){return n=this.generateList(n),this.wrap([e,t?"."+t+"(":"(",n,")"])},quotedString:function(e){return'"'+(e+"").replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")+'"'},objectLiteral:function(e){var t=[];for(var n in e)if(e.hasOwnProperty(n)){var i=r(e[n],this);"undefined"!==i&&t.push([this.quotedString(n),":",i])}var o=this.generateList(t);return o.prepend("{"),o.add("}"),o},generateList:function(e,t){for(var n=this.empty(t),i=0,o=e.length;i<o;i++)i&&n.add(","),n.add(r(e[i],this,t));return n},generateArray:function(e,t){var n=this.generateList(e,t);return n.prepend("["),n.add("]"),n}},t["default"]=i,e.exports=t["default"]}])})}),define("source-map",[],function(e,t,n){t.SourceMapGenerator=e("source-map/source-map-generator").SourceMapGenerator,t.SourceMapConsumer=e("source-map/source-map-consumer").SourceMapConsumer,t.SourceNode=e("source-map/source-node").SourceNode}),define("source-map/source-map-generator",[],function(e,t,n){define(function(e,t,n){function r(e){e||(e={}),this._file=o.getArg(e,"file",null),this._sourceRoot=o.getArg(e,"sourceRoot",null),this._sources=new a,this._names=new a,this._mappings=[],this._sourcesContents=null}var i=e("source-map/base64-vlq"),o=e("source-map/util"),a=e("source-map/array-set").ArraySet;r.prototype._version=3,r.fromSourceMap=function(e){var t=e.sourceRoot,n=new r({file:e.file,sourceRoot:t});return e.eachMapping(function(e){var r={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(r.source=e.source,null!=t&&(r.source=o.relative(t,r.source)),r.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(r.name=e.name)),n.addMapping(r)}),e.sources.forEach(function(t){var r=e.sourceContentFor(t);null!=r&&n.setSourceContent(t,r)}),n},r.prototype.addMapping=function(e){var t=o.getArg(e,"generated"),n=o.getArg(e,"original",null),r=o.getArg(e,"source",null),i=o.getArg(e,"name",null);this._validateMapping(t,n,r,i),null==r||this._sources.has(r)||this._sources.add(r),null==i||this._names.has(i)||this._names.add(i),this._mappings.push({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=n&&n.line,originalColumn:null!=n&&n.column,source:r,name:i})},r.prototype.setSourceContent=function(e,t){var n=e;null!=this._sourceRoot&&(n=o.relative(this._sourceRoot,n)),null!=t?(this._sourcesContents||(this._sourcesContents={}),this._sourcesContents[o.toSetString(n)]=t):this._sourcesContents&&(delete this._sourcesContents[o.toSetString(n)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},r.prototype.applySourceMap=function(e,t,n){var r=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');r=e.file}var i=this._sourceRoot;null!=i&&(r=o.relative(i,r));var s=new a,l=new a;this._mappings.forEach(function(t){if(t.source===r&&null!=t.originalLine){var a=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=a.source&&(t.source=a.source,null!=n&&(t.source=o.join(n,t.source)),null!=i&&(t.source=o.relative(i,t.source)),t.originalLine=a.line,t.originalColumn=a.column,null!=a.name&&(t.name=a.name))}var u=t.source;null==u||s.has(u)||s.add(u);var c=t.name;null==c||l.has(c)||l.add(c)},this),this._sources=s,this._names=l,e.sources.forEach(function(t){var r=e.sourceContentFor(t);null!=r&&(null!=n&&(t=o.join(n,t)),null!=i&&(t=o.relative(i,t)),this.setSourceContent(t,r))},this)},r.prototype._validateMapping=function(e,t,n,r){if((!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0)||t||n||r)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&n))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:n,original:t,name:r}))},r.prototype._serializeMappings=function(){var e,t=0,n=1,r=0,a=0,s=0,l=0,u="";this._mappings.sort(o.compareByGeneratedPositions);for(var c=0,p=this._mappings.length;c<p;c++){if(e=this._mappings[c],e.generatedLine!==n)for(t=0;e.generatedLine!==n;)u+=";",n++;else if(c>0){if(!o.compareByGeneratedPositions(e,this._mappings[c-1]))continue;u+=","}u+=i.encode(e.generatedColumn-t),t=e.generatedColumn,null!=e.source&&(u+=i.encode(this._sources.indexOf(e.source)-l),l=this._sources.indexOf(e.source),u+=i.encode(e.originalLine-1-a),a=e.originalLine-1,u+=i.encode(e.originalColumn-r),r=e.originalColumn,null!=e.name&&(u+=i.encode(this._names.indexOf(e.name)-s),s=this._names.indexOf(e.name)))}return u},r.prototype._generateSourcesContent=function(e,t){return e.map(function(e){if(!this._sourcesContents)return null;null!=t&&(e=o.relative(t,e));var n=o.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,n)?this._sourcesContents[n]:null},this)},r.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},r.prototype.toString=function(){return JSON.stringify(this)},t.SourceMapGenerator=r})}),define("source-map/base64-vlq",[],function(e,t,n){define(function(e,t,n){function r(e){return e<0?(-e<<1)+1:(e<<1)+0}function i(e){var t=1===(1&e),n=e>>1;return t?-n:n}var o=e("source-map/base64"),a=5,s=1<<a,l=s-1,u=s;t.encode=function(e){var t,n="",i=r(e);do t=i&l,i>>>=a,i>0&&(t|=u),n+=o.encode(t);while(i>0);return n},t.decode=function(e,t){var n,r,s=0,c=e.length,p=0,h=0;do{if(s>=c)throw new Error("Expected more digits in base 64 VLQ value.");r=o.decode(e.charAt(s++)),n=!!(r&u),r&=l,p+=r<<h,h+=a}while(n);t.value=i(p),t.rest=e.slice(s)}})}),define("source-map/base64",[],function(e,t,n){define(function(e,t,n){var r={},i={};"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("").forEach(function(e,t){r[e]=t,i[t]=e}),t.encode=function(e){if(e in i)return i[e];throw new TypeError("Must be between 0 and 63: "+e)},t.decode=function(e){if(e in r)return r[e];throw new TypeError("Not a valid base 64 digit: "+e)}})}),define("source-map/util",[],function(e,t,n){define(function(e,t,n){function r(e,t,n){if(t in e)return e[t];if(3===arguments.length)return n;throw new Error('"'+t+'" is a required argument.')}function i(e){var t=e.match(d);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function o(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}function a(e){var t=e,n=i(e);if(n){if(!n.path)return e;t=n.path}for(var r,a="/"===t.charAt(0),s=t.split(/\/+/),l=0,u=s.length-1;u>=0;u--)r=s[u],"."===r?s.splice(u,1):".."===r?l++:l>0&&(""===r?(s.splice(u+1,l),l=0):(s.splice(u,2),l--));return t=s.join("/"),""===t&&(t=a?"/":"."),n?(n.path=t,o(n)):t}function s(e,t){""===e&&(e="."),""===t&&(t=".");var n=i(t),r=i(e);if(r&&(e=r.path||"/"),n&&!n.scheme)return r&&(n.scheme=r.scheme),o(n);if(n||t.match(g))return t;if(r&&!r.host&&!r.path)return r.host=t,o(r);var s="/"===t.charAt(0)?t:a(e.replace(/\/+$/,"")+"/"+t);return r?(r.path=s,o(r)):s}function l(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");var n=i(e);return"/"==t.charAt(0)&&n&&"/"==n.path?t.slice(1):0===t.indexOf(e+"/")?t.substr(e.length+1):t}function u(e){return"$"+e}function c(e){return e.substr(1)}function p(e,t){var n=e||"",r=t||"";return(n>r)-(n<r)}function h(e,t,n){var r;return(r=p(e.source,t.source))?r:(r=e.originalLine-t.originalLine)?r:(r=e.originalColumn-t.originalColumn,r||n?r:(r=p(e.name,t.name))?r:(r=e.generatedLine-t.generatedLine,r?r:e.generatedColumn-t.generatedColumn))}function f(e,t,n){var r;return(r=e.generatedLine-t.generatedLine)?r:(r=e.generatedColumn-t.generatedColumn,r||n?r:(r=p(e.source,t.source))?r:(r=e.originalLine-t.originalLine)?r:(r=e.originalColumn-t.originalColumn,r?r:p(e.name,t.name)))}t.getArg=r;var d=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.]*)(?::(\d+))?(\S*)$/,g=/^data:.+\,.+$/;t.urlParse=i,t.urlGenerate=o,t.normalize=a,t.join=s,t.relative=l,t.toSetString=u,t.fromSetString=c,t.compareByOriginalPositions=h,t.compareByGeneratedPositions=f})}),define("source-map/array-set",[],function(e,t,n){define(function(e,t,n){function r(){this._array=[],this._set={}}var i=e("source-map/util");r.fromArray=function(e,t){for(var n=new r,i=0,o=e.length;i<o;i++)n.add(e[i],t);return n},r.prototype.add=function(e,t){var n=this.has(e),r=this._array.length;n&&!t||this._array.push(e),n||(this._set[i.toSetString(e)]=r)},r.prototype.has=function(e){return Object.prototype.hasOwnProperty.call(this._set,i.toSetString(e))},r.prototype.indexOf=function(e){if(this.has(e))return this._set[i.toSetString(e)];throw new Error('"'+e+'" is not in the set.')},r.prototype.at=function(e){if(e>=0&&e<this._array.length)return this._array[e];throw new Error("No element indexed by "+e)},r.prototype.toArray=function(){return this._array.slice()},t.ArraySet=r})}),define("source-map/source-map-consumer",[],function(e,t,n){define(function(e,t,n){function r(e){var t=e;"string"==typeof e&&(t=JSON.parse(e.replace(/^\)\]\}'/,"")));var n=i.getArg(t,"version"),r=i.getArg(t,"sources"),o=i.getArg(t,"names",[]),s=i.getArg(t,"sourceRoot",null),l=i.getArg(t,"sourcesContent",null),u=i.getArg(t,"mappings"),c=i.getArg(t,"file",null);if(n!=this._version)throw new Error("Unsupported version: "+n);r=r.map(i.normalize),this._names=a.fromArray(o,!0),this._sources=a.fromArray(r,!0),this.sourceRoot=s,this.sourcesContent=l,this._mappings=u,this.file=c}var i=e("source-map/util"),o=e("source-map/binary-search"),a=e("source-map/array-set").ArraySet,s=e("source-map/base64-vlq");r.fromSourceMap=function(e){var t=Object.create(r.prototype);return t._names=a.fromArray(e._names.toArray(),!0),t._sources=a.fromArray(e._sources.toArray(),!0),t.sourceRoot=e._sourceRoot,t.sourcesContent=e._generateSourcesContent(t._sources.toArray(),t.sourceRoot),t.file=e._file,t.__generatedMappings=e._mappings.slice().sort(i.compareByGeneratedPositions),t.__originalMappings=e._mappings.slice().sort(i.compareByOriginalPositions),t},r.prototype._version=3,Object.defineProperty(r.prototype,"sources",{get:function(){return this._sources.toArray().map(function(e){return null!=this.sourceRoot?i.join(this.sourceRoot,e):e},this)}}),r.prototype.__generatedMappings=null,Object.defineProperty(r.prototype,"_generatedMappings",{get:function(){return this.__generatedMappings||(this.__generatedMappings=[],this.__originalMappings=[],this._parseMappings(this._mappings,this.sourceRoot)),this.__generatedMappings}}),r.prototype.__originalMappings=null,Object.defineProperty(r.prototype,"_originalMappings",{get:function(){return this.__originalMappings||(this.__generatedMappings=[],this.__originalMappings=[],this._parseMappings(this._mappings,this.sourceRoot)),this.__originalMappings}}),r.prototype._nextCharIsMappingSeparator=function(e){var t=e.charAt(0);return";"===t||","===t},r.prototype._parseMappings=function(e,t){for(var n,r=1,o=0,a=0,l=0,u=0,c=0,p=e,h={};p.length>0;)if(";"===p.charAt(0))r++,p=p.slice(1),o=0;else if(","===p.charAt(0))p=p.slice(1);else{if(n={},n.generatedLine=r,s.decode(p,h),n.generatedColumn=o+h.value,o=n.generatedColumn,p=h.rest,p.length>0&&!this._nextCharIsMappingSeparator(p)){if(s.decode(p,h),n.source=this._sources.at(u+h.value),u+=h.value,p=h.rest,0===p.length||this._nextCharIsMappingSeparator(p))throw new Error("Found a source, but no line and column");if(s.decode(p,h),n.originalLine=a+h.value,a=n.originalLine,n.originalLine+=1,p=h.rest,0===p.length||this._nextCharIsMappingSeparator(p))throw new Error("Found a source and line, but no column");s.decode(p,h),n.originalColumn=l+h.value,l=n.originalColumn,p=h.rest,p.length>0&&!this._nextCharIsMappingSeparator(p)&&(s.decode(p,h),n.name=this._names.at(c+h.value),c+=h.value,p=h.rest)}this.__generatedMappings.push(n),"number"==typeof n.originalLine&&this.__originalMappings.push(n)}this.__generatedMappings.sort(i.compareByGeneratedPositions),this.__originalMappings.sort(i.compareByOriginalPositions)},r.prototype._findMapping=function(e,t,n,r,i){if(e[n]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[n]);if(e[r]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[r]);return o.search(e,t,i)},r.prototype.computeColumnSpans=function(){for(var e=0;e<this._generatedMappings.length;++e){var t=this._generatedMappings[e];if(e+1<this._generatedMappings.length){var n=this._generatedMappings[e+1];if(t.generatedLine===n.generatedLine){t.lastGeneratedColumn=n.generatedColumn-1;continue}}t.lastGeneratedColumn=1/0}},r.prototype.originalPositionFor=function(e){var t={generatedLine:i.getArg(e,"line"),generatedColumn:i.getArg(e,"column")},n=this._findMapping(t,this._generatedMappings,"generatedLine","generatedColumn",i.compareByGeneratedPositions);if(n>=0){var r=this._generatedMappings[n];if(r.generatedLine===t.generatedLine){var o=i.getArg(r,"source",null);return null!=o&&null!=this.sourceRoot&&(o=i.join(this.sourceRoot,o)),{source:o,line:i.getArg(r,"originalLine",null),column:i.getArg(r,"originalColumn",null),name:i.getArg(r,"name",null)}}}return{source:null,line:null,column:null,name:null}},r.prototype.sourceContentFor=function(e){if(!this.sourcesContent)return null;if(null!=this.sourceRoot&&(e=i.relative(this.sourceRoot,e)),this._sources.has(e))return this.sourcesContent[this._sources.indexOf(e)];var t;if(null!=this.sourceRoot&&(t=i.urlParse(this.sourceRoot))){var n=e.replace(/^file:\/\//,"");if("file"==t.scheme&&this._sources.has(n))return this.sourcesContent[this._sources.indexOf(n)];if((!t.path||"/"==t.path)&&this._sources.has("/"+e))return this.sourcesContent[this._sources.indexOf("/"+e)]}throw new Error('"'+e+'" is not in the SourceMap.')},r.prototype.generatedPositionFor=function(e){var t={source:i.getArg(e,"source"),originalLine:i.getArg(e,"line"),originalColumn:i.getArg(e,"column")};null!=this.sourceRoot&&(t.source=i.relative(this.sourceRoot,t.source));var n=this._findMapping(t,this._originalMappings,"originalLine","originalColumn",i.compareByOriginalPositions);if(n>=0){var r=this._originalMappings[n];return{line:i.getArg(r,"generatedLine",null),column:i.getArg(r,"generatedColumn",null),lastColumn:i.getArg(r,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},r.prototype.allGeneratedPositionsFor=function(e){var t={source:i.getArg(e,"source"),originalLine:i.getArg(e,"line"),originalColumn:1/0};null!=this.sourceRoot&&(t.source=i.relative(this.sourceRoot,t.source));var n=[],r=this._findMapping(t,this._originalMappings,"originalLine","originalColumn",i.compareByOriginalPositions);if(r>=0)for(var o=this._originalMappings[r];o&&o.originalLine===t.originalLine;)n.push({line:i.getArg(o,"generatedLine",null),column:i.getArg(o,"generatedColumn",null),lastColumn:i.getArg(o,"lastGeneratedColumn",null)}),o=this._originalMappings[--r];return n.reverse()},r.GENERATED_ORDER=1,r.ORIGINAL_ORDER=2,r.prototype.eachMapping=function(e,t,n){var o,a=t||null,s=n||r.GENERATED_ORDER;switch(s){case r.GENERATED_ORDER:o=this._generatedMappings;break;case r.ORIGINAL_ORDER:o=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var l=this.sourceRoot;o.map(function(e){var t=e.source;return null!=t&&null!=l&&(t=i.join(l,t)),{source:t,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:e.name}}).forEach(e,a)},t.SourceMapConsumer=r})}),define("source-map/binary-search",[],function(e,t,n){define(function(e,t,n){function r(e,t,n,i,o){var a=Math.floor((t-e)/2)+e,s=o(n,i[a],!0);return 0===s?a:s>0?t-a>1?r(a,t,n,i,o):a:a-e>1?r(e,a,n,i,o):e<0?-1:e}t.search=function(e,t,n){return 0===t.length?-1:r(-1,t.length,e,t,n)}})}),define("source-map/source-node",[],function(e,t,n){define(function(e,t,n){function r(e,t,n,r,i){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==t?null:t,this.source=null==n?null:n,this.name=null==i?null:i,this[l]=!0,null!=r&&this.add(r)}var i=e("source-map/source-map-generator").SourceMapGenerator,o=e("source-map/util"),a=/(\r?\n)/,s=/\r\n|[\s\S]/g,l="$$$isSourceNode$$$";r.fromStringWithSourceMap=function(e,t,n){function i(e,t){if(null===e||void 0===e.source)s.add(t);else{var i=n?o.join(n,e.source):e.source;s.add(new r(e.originalLine,e.originalColumn,i,t,e.name))}}var s=new r,l=e.split(a),u=function(){var e=l.shift(),t=l.shift()||"";return e+t},c=1,p=0,h=null;return t.eachMapping(function(e){if(null!==h){if(!(c<e.generatedLine)){var t=l[0],n=t.substr(0,e.generatedColumn-p);return l[0]=t.substr(e.generatedColumn-p),p=e.generatedColumn,i(h,n),void(h=e)}var n="";i(h,u()),c++,p=0}for(;c<e.generatedLine;)s.add(u()),c++;if(p<e.generatedColumn){var t=l[0];s.add(t.substr(0,e.generatedColumn)),l[0]=t.substr(e.generatedColumn),p=e.generatedColumn}h=e},this),l.length>0&&(h&&i(h,u()),s.add(l.join(""))),t.sources.forEach(function(e){var r=t.sourceContentFor(e);null!=r&&(null!=n&&(e=o.join(n,e)),s.setSourceContent(e,r))}),s},r.prototype.add=function(e){if(Array.isArray(e))e.forEach(function(e){this.add(e)},this);else{if(!e[l]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);e&&this.children.push(e)}return this},r.prototype.prepend=function(e){if(Array.isArray(e))for(var t=e.length-1;t>=0;t--)this.prepend(e[t]);else{if(!e[l]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},r.prototype.walk=function(e){for(var t,n=0,r=this.children.length;n<r;n++)t=this.children[n],t[l]?t.walk(e):""!==t&&e(t,{source:this.source,line:this.line,column:this.column,name:this.name})},r.prototype.join=function(e){var t,n,r=this.children.length;if(r>0){for(t=[],n=0;n<r-1;n++)t.push(this.children[n]),t.push(e);t.push(this.children[n]),this.children=t}return this},r.prototype.replaceRight=function(e,t){var n=this.children[this.children.length-1];return n[l]?n.replaceRight(e,t):"string"==typeof n?this.children[this.children.length-1]=n.replace(e,t):this.children.push("".replace(e,t)),this},r.prototype.setSourceContent=function(e,t){this.sourceContents[o.toSetString(e)]=t},r.prototype.walkSourceContents=function(e){for(var t=0,n=this.children.length;t<n;t++)this.children[t][l]&&this.children[t].walkSourceContents(e);for(var r=Object.keys(this.sourceContents),t=0,n=r.length;t<n;t++)e(o.fromSetString(r[t]),this.sourceContents[r[t]])},r.prototype.toString=function(){var e="";return this.walk(function(t){e+=t}),e},r.prototype.toStringWithSourceMap=function(e){var t={code:"",line:1,column:0},n=new i(e),r=!1,o=null,l=null,u=null,c=null;return this.walk(function(e,i){t.code+=e,null!==i.source&&null!==i.line&&null!==i.column?(o===i.source&&l===i.line&&u===i.column&&c===i.name||n.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name}),o=i.source,l=i.line,u=i.column,c=i.name,r=!0):r&&(n.addMapping({generated:{line:t.line,column:t.column}}),o=null,r=!1),e.match(s).forEach(function(e,s,l){a.test(e)?(t.line++,t.column=0,s+1===l.length?(o=null,r=!1):r&&n.addMapping({source:i.source,original:{line:i.line,column:i.column},generated:{line:t.line,column:t.column},name:i.name})):t.column+=e.length})}),this.walkSourceContents(function(e,t){n.setSourceContent(e,t)}),{code:t.code,map:n}},t.SourceNode=r})}),define("index",[],function(require,exports,module){"object"!=typeof JSON&&(JSON={}),function(){"use strict";function f(e){return e<10?"0"+e:e}function quote(e){return escapable.lastIndex=0,escapable.test(e)?'"'+e.replace(escapable,function(e){var t=meta[e];return"string"==typeof t?t:"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+e+'"'}function str(e,t){var n,r,i,o,a,s=gap,l=t[e];switch(l&&"object"==typeof l&&"function"==typeof l.toJSON&&(l=l.toJSON(e)),"function"==typeof rep&&(l=rep.call(t,e,l)),typeof l){case"string":return quote(l);case"number":return isFinite(l)?String(l):"null";case"boolean":case"null":return String(l);case"object":if(!l)return"null";if(gap+=indent,a=[],"[object Array]"===Object.prototype.toString.apply(l)){for(o=l.length,n=0;n<o;n+=1)a[n]=str(n,l)||"null";return i=0===a.length?"[]":gap?"[\n"+gap+a.join(",\n"+gap)+"\n"+s+"]":"["+a.join(",")+"]",gap=s,i}if(rep&&"object"==typeof rep)for(o=rep.length,n=0;n<o;n+=1)"string"==typeof rep[n]&&(r=rep[n],i=str(r,l),i&&a.push(quote(r)+(gap?": ":":")+i));else for(r in l)Object.prototype.hasOwnProperty.call(l,r)&&(i=str(r,l),i&&a.push(quote(r)+(gap?": ":":")+i));return i=0===a.length?"{}":gap?"{\n"+gap+a.join(",\n"+gap)+"\n"+s+"}":"{"+a.join(",")+"}",gap=s,i}}"function"!=typeof Date.prototype.toJSON&&(Date.prototype.toJSON=function(){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null},String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(){return this.valueOf()});var cx,escapable,gap,indent,meta,rep;"function"!=typeof JSON.stringify&&(escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,meta={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},JSON.stringify=function(e,t,n){var r;if(gap="",indent="","number"==typeof n)for(r=0;r<n;r+=1)indent+=" ";else"string"==typeof n&&(indent=n);if(rep=t,t&&"function"!=typeof t&&("object"!=typeof t||"number"!=typeof t.length))throw new Error("JSON.stringify");return str("",{"":e})}),"function"!=typeof JSON.parse&&(cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,JSON.parse=function(text,reviver){function walk(e,t){var n,r,i=e[t];if(i&&"object"==typeof i)for(n in i)Object.prototype.hasOwnProperty.call(i,n)&&(r=walk(i,n),void 0!==r?i[n]=r:delete i[n]);return reviver.call(e,t,i)}var j;if(text=String(text),cx.lastIndex=0,cx.test(text)&&(text=text.replace(cx,function(e){return"\\u"+("0000"+e.charCodeAt(0).toString(16)).slice(-4)})),/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return j=eval("("+text+")"),"function"==typeof reviver?walk({"":j},""):j;throw new SyntaxError("JSON.parse")})}(),module.exports=JSON}),define("jquery-pjax",[],function(e,t,n){var r=e("jquery");!function(e){function t(t,r,i){var o=this;return this.on("click.pjax",t,function(t){var a=e.extend({},v(r,i));a.container||(a.container=e(this).attr("data-pjax")||o),n(t,a)})}function n(t,n,r){r=v(n,r);var i=t.currentTarget;if("A"!==i.tagName.toUpperCase())throw"$.fn.pjax or $.pjax.click requires an anchor element";if(!(t.which>1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||location.protocol!==i.protocol||location.hostname!==i.hostname||i.href.indexOf("#")>-1&&m(i)==m(location)||t.isDefaultPrevented())){var a={url:i.href,container:e(i).attr("data-pjax"),target:i},s=e.extend({},a,r),l=e.Event("pjax:click");e(i).trigger(l,[s]),l.isDefaultPrevented()||(o(s),t.preventDefault(),e(i).trigger("pjax:clicked",[s]))}}function i(t,n,r){r=v(n,r);var i=t.currentTarget;if("FORM"!==i.tagName.toUpperCase())throw"$.pjax.submit requires a form element";var a={type:i.method.toUpperCase(),url:i.action,container:e(i).attr("data-pjax"),target:i};if("GET"!==a.type&&void 0!==window.FormData)a.data=new FormData(i),a.processData=!1,a.contentType=!1;else{if(e(i).find(":file").length)return;a.data=e(i).serializeArray()}o(e.extend({},a,r)),t.preventDefault()}function o(t){function n(t,n,i){i||(i={}),i.relatedTarget=r;var o=e.Event(t,i);return a.trigger(o,n),!o.isDefaultPrevented()}t=e.extend(!0,{},e.ajaxSettings,o.defaults,t),e.isFunction(t.url)&&(t.url=t.url());var r=t.target,i=g(t.url).hash,a=t.context=y(t.container);t.data||(t.data={}),e.isArray(t.data)?t.data.push({name:"_pjax",value:a.selector}):t.data._pjax=a.selector;var l;t.beforeSend=function(e,r){if("GET"!==r.type&&(r.timeout=0),e.setRequestHeader("X-PJAX","true"),e.setRequestHeader("X-PJAX-Container",a.selector),!n("pjax:beforeSend",[e,r]))return!1;r.timeout>0&&(l=setTimeout(function(){n("pjax:timeout",[e,t])&&e.abort("timeout")},r.timeout),r.timeout=0);var o=g(r.url);o.hash=i,t.requestUrl=d(o.href); +},t.complete=function(e,r){l&&clearTimeout(l),n("pjax:complete",[e,r,t]),n("pjax:end",[e,t])},t.error=function(e,r,i){var o=w("",e,t),a=n("pjax:error",[e,r,i,t]);"GET"==t.type&&"abort"!==r&&a&&s(o.url)},t.success=function(r,l,u){var c=o.state,h="function"==typeof e.pjax.defaults.version?e.pjax.defaults.version():e.pjax.defaults.version,f=u.getResponseHeader("X-PJAX-Version"),d=w(r,u,t),m=g(d.url);if(i&&(m.hash=i,d.url=m.href),h&&f&&h!==f)return void s(d.url);if(!d.contents)return void s(d.url);o.state={id:t.id||p(),url:d.url,title:d.title,container:a.selector,fragment:t.fragment,timeout:t.timeout},(t.push||t.replace)&&window.history.replaceState(o.state,d.title,d.url);try{document.activeElement.blur()}catch(v){}d.title&&(document.title=d.title),n("pjax:beforeReplace",[d.contents,t],{state:o.state,previousState:c}),a.html(d.contents);var y=a.find("input[autofocus], textarea[autofocus]").last()[0];y&&document.activeElement!==y&&y.focus(),S(d.scripts);var b=t.scrollTo;if(i){var x=decodeURIComponent(i.slice(1)),k=document.getElementById(x)||document.getElementsByName(x)[0];k&&(b=e(k).offset().top)}"number"==typeof b&&e(window).scrollTop(b),n("pjax:success",[r,l,u,t])},o.state||(o.state={id:p(),url:window.location.href,title:document.title,container:a.selector,fragment:t.fragment,timeout:t.timeout},window.history.replaceState(o.state,document.title)),c(o.xhr),o.options=t;var u=o.xhr=e.ajax(t);return u.readyState>0&&(t.push&&!t.replace&&(k(o.state.id,h(a)),window.history.pushState(null,"",t.requestUrl)),n("pjax:start",[u,t]),n("pjax:send",[u,t])),o.xhr}function a(t,n){var r={url:window.location.href,push:!1,replace:!0,scrollTo:!1};return o(e.extend(r,v(t,n)))}function s(e){window.history.replaceState(null,"",o.state.url),window.location.replace(e)}function l(t){T||c(o.xhr);var n=o.state,r=t.state;if(r&&r.container){if(T&&P==r.url)return;var i,a=r.container;if(n){if(n.id===r.id)return;i=n.id<r.id?"forward":"back","back"==i&&(a=n.container)}var l=e(a);if(l.length){var u=j[r.id];n&&C(i,n.id,h(l));var p=e.Event("pjax:popstate",{state:r,direction:i});l.trigger(p);var f={id:r.id,url:r.url,container:l,push:!1,fragment:r.fragment,timeout:r.timeout,scrollTo:!1};if(u){l.trigger("pjax:start",[null,f]),o.state=r,r.title&&(document.title=r.title);var d=e.Event("pjax:beforeReplace",{state:r,previousState:n});l.trigger(d,[u,f]),l.html(u),l.trigger("pjax:end",[null,f])}else o(f);l[0].offsetHeight}else s(location.href)}T=!1}function u(t){var n=e.isFunction(t.url)?t.url():t.url,r=t.type?t.type.toUpperCase():"GET",i=e("<form>",{method:"GET"===r?"GET":"POST",action:n,style:"display:none"});"GET"!==r&&"POST"!==r&&i.append(e("<input>",{type:"hidden",name:"_method",value:r.toLowerCase()}));var o=t.data;if("string"==typeof o)e.each(o.split("&"),function(t,n){var r=n.split("=");i.append(e("<input>",{type:"hidden",name:r[0],value:r[1]}))});else if(e.isArray(o))e.each(o,function(t,n){i.append(e("<input>",{type:"hidden",name:n.name,value:n.value}))});else if("object"==typeof o){var a;for(a in o)i.append(e("<input>",{type:"hidden",name:a,value:o[a]}))}e(document.body).append(i),i.submit()}function c(t){t&&t.readyState<4&&(t.onreadystatechange=e.noop,t.abort())}function p(){return(new Date).getTime()}function h(e){var t=e.clone();return t.find("script").each(function(){this.src||r._data(this,"globalEval",!1)}),t.contents()}function f(e,t){return e.replace(new RegExp("[?&]"+t+"=[^&#]*"),"").replace(/[?&]($|#)/,"").replace(/[?&]/,"?")}function d(e){return e=f(e,"_pjax"),e=f(e,"_")}function g(e){var t=document.createElement("a");return t.href=e,t}function m(e){return e.href.replace(/#.*/,"")}function v(t,n){return t&&n?n.container=t:n=e.isPlainObject(t)?t:{container:t},n.container&&(n.container=y(n.container)),n}function y(t){if(t=e(t),t.length){if(""!==t.selector&&t.context===document)return t;if(t.attr("id"))return e("#"+t.attr("id"));throw"cant get selector for pjax container!"}throw"no pjax container for "+t.selector}function b(e,t){return e.filter(t).add(e.find(t))}function x(t){return e.parseHTML(t,document,!0)}function w(t,n,r){var i={},o=/<html/i.test(t),a=n.getResponseHeader("X-PJAX-URL");if(i.url=a?d(a):r.requestUrl,o)var s=e(x(t.match(/<head[^>]*>([\s\S.]*)<\/head>/i)[0])),l=e(x(t.match(/<body[^>]*>([\s\S.]*)<\/body>/i)[0]));else var s=l=e(x(t));if(0===l.length)return i;if(i.title=b(s,"title").last().text(),r.fragment){if("body"===r.fragment)var u=l;else var u=b(l,r.fragment).first();u.length&&(i.contents="body"===r.fragment?u:u.contents(),i.title||(i.title=u.attr("title")||u.data("title")))}else o||(i.contents=l);return i.contents&&(i.contents=i.contents.not(function(){return e(this).is("title")}),i.contents.find("title").remove(),i.scripts=b(i.contents,"script[src]").remove(),i.contents=i.contents.not(i.scripts)),i.title&&(i.title=e.trim(i.title)),i}function S(t){if(t){var n=e("script[src]");t.each(function(){var t=this.src,r=n.filter(function(){return this.src===t});if(!r.length){var i=document.createElement("script"),o=e(this).attr("type");o&&(i.type=o),i.src=e(this).attr("src"),document.head.appendChild(i)}})}}function k(e,t){j[e]=t,M.push(e),_(O,0),_(M,o.defaults.maxCacheLength)}function C(e,t,n){var r,i;j[t]=n,"forward"===e?(r=M,i=O):(r=O,i=M),r.push(t),(t=i.pop())&&delete j[t],_(r,o.defaults.maxCacheLength)}function _(e,t){for(;e.length>t;)delete j[e.shift()]}function E(){return e("meta").filter(function(){var t=e(this).attr("http-equiv");return t&&"X-PJAX-VERSION"===t.toUpperCase()}).attr("content")}function A(){e.fn.pjax=t,e.pjax=o,e.pjax.enable=e.noop,e.pjax.disable=N,e.pjax.click=n,e.pjax.submit=i,e.pjax.reload=a,e.pjax.defaults={timeout:650,push:!0,replace:!1,type:"GET",dataType:"html",scrollTo:0,maxCacheLength:20,version:E},e(window).on("popstate.pjax",l)}function N(){e.fn.pjax=function(){return this},e.pjax=u,e.pjax.enable=A,e.pjax.disable=e.noop,e.pjax.click=e.noop,e.pjax.submit=e.noop,e.pjax.reload=function(){window.location.reload()},e(window).off("popstate.pjax",l)}var T=!0,P=window.location.href,L=window.history.state;L&&L.container&&(o.state=L),"state"in window.history&&(T=!1);var j={},O=[],M=[];e.inArray("state",e.event.props)<0&&e.event.props.push("state"),e.support.pjax=window.history&&window.history.pushState&&window.history.replaceState&&!navigator.userAgent.match(/((iPod|iPhone|iPad).+\bOS\s+[1-4]\D|WebApps\/.+CFNetwork)/),e.support.pjax?A():N()}(r)}),define("dot",[],function(e,t,n){e("lib/jquery.dotdotdot"),n.exports=function(e){e.dotdotdot({wrap:"letter"})}}),define("lib/jquery.dotdotdot",[],function(e,t,n){var r=e("jquery");!function(e,t){function n(e,t,n){var r=e.children(),i=!1;e.empty();for(var a=0,s=r.length;a<s;a++){var l=r.eq(a);if(e.append(l),n&&e.append(n),o(e,t)){l.remove(),i=!0;break}n&&n.detach()}return i}function r(t,n,a,s,l){var u=!1,c="a, table, thead, tbody, tfoot, tr, col, colgroup, object, embed, param, ol, ul, dl, blockquote, select, optgroup, option, textarea, script, style",p="script, .dotdotdot-keep";return t.contents().detach().each(function(){var h=this,f=e(h);if("undefined"==typeof h)return!0;if(f.is(p))t.append(f);else{if(u)return!0;t.append(f),!l||f.is(s.after)||f.find(s.after).length||t[t.is(c)?"after":"append"](l),o(a,s)&&(u=3==h.nodeType?i(f,n,a,s,l):r(f,n,a,s,l),u||(f.detach(),u=!0)),u||l&&l.detach()}}),n.addClass("is-truncated"),u}function i(t,n,r,i,s){var c=t[0];if(!c)return!1;var h=u(c),f=h.indexOf(" ")!==-1?" ":" ",d="letter"==i.wrap?"":f,g=h.split(d),m=-1,v=-1,y=0,b=g.length-1;for(i.fallbackToLetter&&0==y&&0==b&&(d="",g=h.split(d),b=g.length-1);y<=b&&(0!=y||0!=b);){var x=Math.floor((y+b)/2);if(x==v)break;v=x,l(c,g.slice(0,v+1).join(d)+i.ellipsis),o(r,i)?(b=v,i.fallbackToLetter&&0==y&&0==b&&(d="",g=g[0].split(d),m=-1,v=-1,y=0,b=g.length-1)):(m=v,y=v)}if(m==-1||1==g.length&&0==g[0].length){var w=t.parent();t.detach();var S=s&&s.closest(w).length?s.length:0;w.contents().length>S?c=p(w.contents().eq(-1-S),n):(c=p(w,n,!0),S||w.detach()),c&&(h=a(u(c),i),l(c,h),S&&s&&e(c).parent().append(s))}else h=a(g.slice(0,m+1).join(d),i),l(c,h);return!0}function o(e,t){return e.innerHeight()>t.maxHeight}function a(t,n){for(;e.inArray(t.slice(-1),n.lastCharacter.remove)>-1;)t=t.slice(0,-1);return e.inArray(t.slice(-1),n.lastCharacter.noEllipsis)<0&&(t+=n.ellipsis),t}function s(e){return{width:e.innerWidth(),height:e.innerHeight()}}function l(e,t){e.innerText?e.innerText=t:e.nodeValue?e.nodeValue=t:e.textContent&&(e.textContent=t)}function u(e){return e.innerText?e.innerText:e.nodeValue?e.nodeValue:e.textContent?e.textContent:""}function c(e){do e=e.previousSibling;while(e&&1!==e.nodeType&&3!==e.nodeType);return e}function p(t,n,r){var i,o=t&&t[0];if(o){if(!r){if(3===o.nodeType)return o;if(e.trim(t.text()))return p(t.contents().last(),n)}for(i=c(o);!i;){if(t=t.parent(),t.is(n)||!t.length)return!1;i=c(t[0])}if(i)return p(e(i),n)}return!1}function h(t,n){return!!t&&("string"==typeof t?(t=e(t,n),!!t.length&&t):!!t.jquery&&t)}function f(e){for(var t=e.innerHeight(),n=["paddingTop","paddingBottom"],r=0,i=n.length;r<i;r++){var o=parseInt(e.css(n[r]),10);isNaN(o)&&(o=0),t-=o}return t}if(!e.fn.dotdotdot){e.fn.dotdotdot=function(t){if(0==this.length)return e.fn.dotdotdot.debug('No element found for "'+this.selector+'".'),this;if(this.length>1)return this.each(function(){e(this).dotdotdot(t)});var i=this;i.data("dotdotdot")&&i.trigger("destroy.dot"),i.data("dotdotdot-style",i.attr("style")||""),i.css("word-wrap","break-word"),"nowrap"===i.css("white-space")&&i.css("white-space","normal"),i.bind_events=function(){return i.bind("update.dot",function(t,s){i.removeClass("is-truncated"),t.preventDefault(),t.stopPropagation(),l.maxHeight="number"==typeof l.height?l.height:f(i),l.maxHeight+=l.tolerance,"undefined"!=typeof s&&(("string"==typeof s||"nodeType"in s&&1===s.nodeType)&&(s=e("<div />").append(s).contents()),s instanceof e&&(a=s)),g=i.wrapInner('<div class="dotdotdot" />').children(),g.contents().detach().end().append(a.clone(!0)).find("br").replaceWith(" <br /> ").end().css({height:"auto",width:"auto",border:"none",padding:0,margin:0});var c=!1,p=!1;return u.afterElement&&(c=u.afterElement.clone(!0),c.show(),u.afterElement.detach()),o(g,l)&&(p="children"==l.wrap?n(g,l,c):r(g,i,g,l,c)),g.replaceWith(g.contents()),g=null,e.isFunction(l.callback)&&l.callback.call(i[0],p,a),u.isTruncated=p,p}).bind("isTruncated.dot",function(e,t){return e.preventDefault(),e.stopPropagation(),"function"==typeof t&&t.call(i[0],u.isTruncated),u.isTruncated}).bind("originalContent.dot",function(e,t){return e.preventDefault(),e.stopPropagation(),"function"==typeof t&&t.call(i[0],a),a}).bind("destroy.dot",function(e){e.preventDefault(),e.stopPropagation(),i.unwatch().unbind_events().contents().detach().end().append(a).attr("style",i.data("dotdotdot-style")||"").data("dotdotdot",!1)}),i},i.unbind_events=function(){return i.unbind(".dot"),i},i.watch=function(){if(i.unwatch(),"window"==l.watch){var t=e(window),n=t.width(),r=t.height();t.bind("resize.dot"+u.dotId,function(){n==t.width()&&r==t.height()&&l.windowResizeFix||(n=t.width(),r=t.height(),p&&clearInterval(p),p=setTimeout(function(){i.trigger("update.dot")},100))})}else c=s(i),p=setInterval(function(){if(i.is(":visible")){var e=s(i);c.width==e.width&&c.height==e.height||(i.trigger("update.dot"),c=e)}},500);return i},i.unwatch=function(){return e(window).unbind("resize.dot"+u.dotId),p&&clearInterval(p),i};var a=i.contents(),l=e.extend(!0,{},e.fn.dotdotdot.defaults,t),u={},c={},p=null,g=null;return l.lastCharacter.remove instanceof Array||(l.lastCharacter.remove=e.fn.dotdotdot.defaultArrays.lastCharacter.remove),l.lastCharacter.noEllipsis instanceof Array||(l.lastCharacter.noEllipsis=e.fn.dotdotdot.defaultArrays.lastCharacter.noEllipsis),u.afterElement=h(l.after,i),u.isTruncated=!1,u.dotId=d++,i.data("dotdotdot",!0).bind_events().trigger("update.dot"),l.watch&&i.watch(),i},e.fn.dotdotdot.defaults={ellipsis:"... ",wrap:"word",fallbackToLetter:!0,lastCharacter:{},tolerance:0,callback:null,after:null,height:null,watch:!1,windowResizeFix:!0},e.fn.dotdotdot.defaultArrays={lastCharacter:{remove:[" "," ",",",";",".","!","?"],noEllipsis:[]}},e.fn.dotdotdot.debug=function(e){};var d=1,g=e.fn.html;e.fn.html=function(n){return n!=t&&!e.isFunction(n)&&this.data("dotdotdot")?this.trigger("update",[n]):g.apply(this,arguments)};var m=e.fn.text;e.fn.text=function(n){return n!=t&&!e.isFunction(n)&&this.data("dotdotdot")?(n=e("<div />").text(n).html(),this.trigger("update",[n])):m.apply(this,arguments)}}}(r)}),define("jquery.placeholder",[],function(e,t,n){var r=e("jquery");!function(e){function t(t){var n={},r=/^jQuery\d+$/;return e.each(t.attributes,function(e,t){t.specified&&!r.test(t.name)&&(n[t.name]=t.value)}),n}function n(t,n){var r=this,o=e(this);if(r.value===o.attr(s?"placeholder-x":"placeholder")&&o.hasClass(f.customClass))if(r.value="",o.removeClass(f.customClass),o.data("placeholder-password")){if(o=o.hide().nextAll('input[type="password"]:first').show().attr("id",o.removeAttr("id").data("placeholder-id")),t===!0)return o[0].value=n,n;o.focus()}else r==i()&&r.select()}function r(r){var i,o=this,a=e(this),l=o.id;if(!r||"blur"!==r.type||!a.hasClass(f.customClass))if(""===o.value){if("password"===o.type){if(!a.data("placeholder-textinput")){try{i=a.clone().prop({type:"text"})}catch(u){i=e("<input>").attr(e.extend(t(this),{type:"text"}))}i.removeAttr("name").data({"placeholder-enabled":!0,"placeholder-password":a,"placeholder-id":l}).bind("focus.placeholder",n),a.data({"placeholder-textinput":i,"placeholder-id":l}).before(i)}o.value="",a=a.removeAttr("id").hide().prevAll('input[type="text"]:first').attr("id",a.data("placeholder-id")).show()}else{var c=a.data("placeholder-password");c&&(c[0].value="",a.attr("id",a.data("placeholder-id")).show().nextAll('input[type="password"]:last').hide().removeAttr("id"))}a.addClass(f.customClass),a[0].value=a.attr(s?"placeholder-x":"placeholder")}else a.removeClass(f.customClass)}function i(){try{return document.activeElement}catch(e){}}var o,a,s=!1,l="[object OperaMini]"===Object.prototype.toString.call(window.operamini),u="placeholder"in document.createElement("input")&&!l&&!s,c="placeholder"in document.createElement("textarea")&&!l&&!s,p=e.valHooks,h=e.propHooks,f={};u&&c?(a=e.fn.placeholder=function(){return this},a.input=!0,a.textarea=!0):(a=e.fn.placeholder=function(t){var i={customClass:"placeholder"};return f=e.extend({},i,t),this.filter((u?"textarea":":input")+"["+(s?"placeholder-x":"placeholder")+"]").not("."+f.customClass).not(":radio, :checkbox, :hidden").bind({"focus.placeholder":n,"blur.placeholder":r}).data("placeholder-enabled",!0).trigger("blur.placeholder")},a.input=u,a.textarea=c,o={get:function(t){var n=e(t),r=n.data("placeholder-password");return r?r[0].value:n.data("placeholder-enabled")&&n.hasClass(f.customClass)?"":t.value},set:function(t,o){var a,s,l=e(t);return""!==o&&(a=l.data("placeholder-textinput"),s=l.data("placeholder-password"),a?(n.call(a[0],!0,o)||(t.value=o),a[0].value=o):s&&(n.call(t,!0,o)||(s[0].value=o),t.value=o)),l.data("placeholder-enabled")?(""===o?(t.value=o,t!=i()&&r.call(t)):(l.hasClass(f.customClass)&&n.call(t),t.value=o),l):(t.value=o,l)}},u||(p.input=o,h.value=o),c||(p.textarea=o,h.value=o),e(function(){e(document).delegate("form","submit.placeholder",function(){var t=e("."+f.customClass,this).each(function(){n.call(this,!0,"")});setTimeout(function(){t.each(r)},10)})}),e(window).bind("beforeunload.placeholder",function(){var t=!0;try{"javascript:void(0)"===document.activeElement.toString()&&(t=!1)}catch(n){}t&&e("."+f.customClass).each(function(){this.value=""})}))}(r)}); \ No newline at end of file diff --git a/web-static/dist/yohobuy/assets/img/home/close.png b/web-static/dist/yohobuy/assets/img/home/close.png new file mode 100755 index 0000000..d99c357 Binary files /dev/null and b/web-static/dist/yohobuy/assets/img/home/close.png differ diff --git a/web-static/dist/yohobuy/assets/img/home/doubt.png b/web-static/dist/yohobuy/assets/img/home/doubt.png new file mode 100755 index 0000000..e2ba44f Binary files /dev/null and b/web-static/dist/yohobuy/assets/img/home/doubt.png differ diff --git a/web-static/dist/yohobuy/assets/img/home/icon-warn.png b/web-static/dist/yohobuy/assets/img/home/icon-warn.png new file mode 100644 index 0000000..029f7a9 Binary files /dev/null and b/web-static/dist/yohobuy/assets/img/home/icon-warn.png differ diff --git a/web-static/dist/yohobuy/assets/img/home/onlineservice.png b/web-static/dist/yohobuy/assets/img/home/onlineservice.png new file mode 100644 index 0000000..94ab817 Binary files /dev/null and b/web-static/dist/yohobuy/assets/img/home/onlineservice.png differ diff --git a/web-static/dist/yohobuy/assets/img/home/recyclebin.png b/web-static/dist/yohobuy/assets/img/home/recyclebin.png new file mode 100755 index 0000000..b448813 Binary files /dev/null and b/web-static/dist/yohobuy/assets/img/home/recyclebin.png differ diff --git a/web-static/dist/yohobuy/assets/img/home/return-arrow.png b/web-static/dist/yohobuy/assets/img/home/return-arrow.png new file mode 100644 index 0000000..b84c736 Binary files /dev/null and b/web-static/dist/yohobuy/assets/img/home/return-arrow.png differ diff --git a/web-static/dist/yohobuy/assets/img/home/return-doubt.png b/web-static/dist/yohobuy/assets/img/home/return-doubt.png new file mode 100644 index 0000000..0a0d7ea Binary files /dev/null and b/web-static/dist/yohobuy/assets/img/home/return-doubt.png differ diff --git a/web-static/dist/yohobuy/assets/img/order/invoice-star.png b/web-static/dist/yohobuy/assets/img/order/invoice-star.png new file mode 100644 index 0000000..03301a9 Binary files /dev/null and b/web-static/dist/yohobuy/assets/img/order/invoice-star.png differ diff --git a/web-static/img/.DS_Store b/web-static/img/.DS_Store new file mode 100644 index 0000000..d77b702 Binary files /dev/null and b/web-static/img/.DS_Store differ diff --git a/web-static/img/home/close.png b/web-static/img/home/close.png new file mode 100755 index 0000000..d99c357 Binary files /dev/null and b/web-static/img/home/close.png differ diff --git a/web-static/img/home/doubt.png b/web-static/img/home/doubt.png new file mode 100755 index 0000000..e2ba44f Binary files /dev/null and b/web-static/img/home/doubt.png differ diff --git a/web-static/img/home/icon-warn.png b/web-static/img/home/icon-warn.png new file mode 100644 index 0000000..029f7a9 Binary files /dev/null and b/web-static/img/home/icon-warn.png differ diff --git a/web-static/img/home/onlineservice.png b/web-static/img/home/onlineservice.png new file mode 100644 index 0000000..94ab817 Binary files /dev/null and b/web-static/img/home/onlineservice.png differ diff --git a/web-static/img/home/recyclebin.png b/web-static/img/home/recyclebin.png new file mode 100755 index 0000000..b448813 Binary files /dev/null and b/web-static/img/home/recyclebin.png differ diff --git a/web-static/img/home/return-arrow.png b/web-static/img/home/return-arrow.png new file mode 100644 index 0000000..b84c736 Binary files /dev/null and b/web-static/img/home/return-arrow.png differ diff --git a/web-static/img/home/return-doubt.png b/web-static/img/home/return-doubt.png new file mode 100644 index 0000000..0a0d7ea Binary files /dev/null and b/web-static/img/home/return-doubt.png differ diff --git a/web-static/img/order/invoice-star.png b/web-static/img/order/invoice-star.png new file mode 100644 index 0000000..03301a9 Binary files /dev/null and b/web-static/img/order/invoice-star.png differ diff --git a/web-static/img/product/.DS_Store b/web-static/img/product/.DS_Store new file mode 100644 index 0000000..62b1c5c Binary files /dev/null and b/web-static/img/product/.DS_Store differ diff --git a/web-static/img/product/hotrank/.DS_Store b/web-static/img/product/hotrank/.DS_Store new file mode 100644 index 0000000..d839e52 Binary files /dev/null and b/web-static/img/product/hotrank/.DS_Store differ diff --git a/web-static/js/common.js b/web-static/js/common.js index e34d477..5de9a8d 100644 --- a/web-static/js/common.js +++ b/web-static/js/common.js @@ -99,7 +99,7 @@ function getShoppingKey() { a.async = 1; a.src = j; m.parentNode.insertBefore(a, m); -})(window, document, 'script', 'http://cdn.yoho.cn/yas-jssdk/1.0.14/yas.js', '_yas'); +})(window, document, 'script', ('https:' == document.location.protocol ? 'https' : 'http') + '://' + 'cdn.yoho.cn/yas-jssdk/1.0.17/yas.js', '_yas'); (function() { var uid = getUid(); @@ -109,7 +109,7 @@ function getShoppingKey() { window._ozuid = uid; //暴露ozuid if (window._yas) { - window._yas(1 * new Date(), '1.0.14', 'yohobuy_web', uid, '', ''); + window._yas(1 * new Date(), '1.0.17', 'yohobuy_web', uid, '', ''); } }()); diff --git a/web-static/js/common/share.js b/web-static/js/common/share.js index b58a6a9..572ce80 100644 --- a/web-static/js/common/share.js +++ b/web-static/js/common/share.js @@ -22,6 +22,18 @@ function shareBase(options) { defOption = $.extend(defOption, options); + if (defOption.image && defOption.image.substr(0, 2) === '//') { + defOption.image = 'http:' + defOption.image; + } + + if (defOption.weixinUrl && defOption.weixinUrl.substr(0, 2) === '//') { + defOption.weixinUrl = 'http:' + defOption.weixinUrl; + } + + if (defOption.url && defOption.url.substr(0, 2) === '//') { + defOption.url = 'http:' + defOption.url; + } + if ($.inArray(defOption.channel, shareChannels) === -1) { alert('不存在的分享平台!'); return false; @@ -56,7 +68,7 @@ function shareBase(options) { defOption.desc + '&pic=' + defOption.image; break; case 'douban': - openUrl = 'http://www.douban.com/share/service?href=' + defOption.url + '&text=' + + openUrl = '//www.douban.com/share/service?href=' + defOption.url + '&text=' + defOption.desc + '&image=' + defOption.image + '&title=' + defOption.title + '&comment='; break; } diff --git a/web-static/js/footer.js b/web-static/js/footer.js index 4e56ca9..5d56a49 100644 --- a/web-static/js/footer.js +++ b/web-static/js/footer.js @@ -33,7 +33,7 @@ function actionSubscription() { if (email !== '' && emailReg.test(email)) { try { $.ajax({ - url: 'http://www.yohobuy.com/common/emailSubscriber', + url: '//www.yohobuy.com/common/emailSubscriber', dataType: 'jsonp', data: { email: email, @@ -94,7 +94,7 @@ function actionhomeFootChange() { }); $.ajax({ - url: 'http://www.yohobuy.com/common/suggestFeedback', + url: '//www.yohobuy.com/common/suggestFeedback', dataType: 'jsonp', data: { feedback_id: _feedback || 0, diff --git a/web-static/js/guang/detail.js b/web-static/js/guang/detail.js index c11ee03..467b118 100644 --- a/web-static/js/guang/detail.js +++ b/web-static/js/guang/detail.js @@ -112,7 +112,7 @@ $('#collect-btn').click(function() { } else { hrefUrl = location.href + '?col=' + col; } - location.href = 'http://www.yohobuy.com/signin.html?refer=' + encodeURI(hrefUrl); + location.href = '//www.yohobuy.com/signin.html?refer=' + encodeURI(hrefUrl); break; case 400: @@ -167,7 +167,7 @@ function comment(id) { switch (data.code) { case 401: locating = true; - location.href = 'http://www.yohobuy.com/signin.html?refer=' + + location.href = '//www.yohobuy.com/signin.html?refer=' + window.escape(location.href + '#comment-info'); break; case 400: diff --git a/web-static/js/header.js b/web-static/js/header.js index d931eb7..749daf3 100644 --- a/web-static/js/header.js +++ b/web-static/js/header.js @@ -66,7 +66,7 @@ var bannerMap = { }; var cookieMap = {}; -var bannerApi = 'http://new.yohobuy.com/common/getbanner?content_code='; +var bannerApi = '//new.yohobuy.com/common/getbanner?content_code='; $('#api-domain').remove(); //删除信息表单 @@ -97,7 +97,7 @@ window.submitSearch = function() { location.href = link.replace('\'', ''); } else { if (reg.test($keywordinput) && $keywordinput !== '') { - location.href = 'http://search.yohobuy.com/error?query=' + $keywordinput + '&result=error'; + location.href = '//search.yohobuy.com/error?query=' + $keywordinput + '&result=error'; } else { if ($keywordinput === '') { $('#query_key').val($defaultsearch); @@ -304,7 +304,7 @@ handlebars.registerHelper('timestamp', function() { handlebars.registerHelper('headerimg', function(headerimg) { if (headerimg === '') { - return 'http://img10.static.yhbimg.com/headimg/2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif' + + return '//img10.static.yhbimg.com/headimg/2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif' + '?imageView/2/w/100/h/100'; } else { return headerimg; @@ -515,10 +515,10 @@ function tsAnimate() { }); if (logoanimationstart / 90 % 2 === 1) { if (isen) { - $logotrans.css('background-image', 'url(http://static.yohobuy.com/newheader/img/logo1.png)'); + $logotrans.css('background-image', 'url(//static.yohobuy.com/newheader/img/logo1.png)'); isen = false; } else { - $logotrans.css('background-image', 'url(http://static.yohobuy.com/newheader/img/logo_e.png)'); + $logotrans.css('background-image', 'url(//static.yohobuy.com/newheader/img/logo_e.png)'); isen = true; } } @@ -546,14 +546,14 @@ function fadeAnimate() { $logotrans.fadeOut(loopdurationtime, function() { isen = false; - $logotrans.css('background-image', 'url(http://static.yohobuy.com/newheader/img/logo.png)'); + $logotrans.css('background-image', 'url(//static.yohobuy.com/newheader/img/logo.png)'); $logotrans.fadeIn(loopdurationtime, function() { onetimeoout = window.setTimeout(function() { $logotrans.fadeOut(loopdurationtime, function() { window.clearTimeout(onetimeoout); isen = true; $logotrans.css('background-image', - 'url(http://static.yohobuy.com/newheader/img/logo_e.png)'); + 'url(//static.yohobuy.com/newheader/img/logo_e.png)'); $logotrans.fadeIn(loopdurationtime, function() { globaltimeout = window.setTimeout(fadeAnimate, 1 * 60 * 1000); }); @@ -843,9 +843,9 @@ function actionCover() { var containertop; var length = ''; - if (window.location.href === 'http://www.yohobuy.com/' && + if (window.location.host === 'www.yohobuy.com' && (typeof gender === 'undefined' || gender === '' || gender === null)) { - $.get('http://www.yohobuy.com/index/guide', function(data) { + $.get('//www.yohobuy.com/index/guide', function(data) { newMask = document.createElement('div'); newMask.id = 'cover'; newMask.innerHTML = data; @@ -1109,7 +1109,7 @@ function loadCartData() { shoppingData, strK; - $.getData('http://www.yohobuy.com/common/shoppingCart', '', function(jsonData) { + $.getData('//www.yohobuy.com/common/shoppingCart', '', function(jsonData) { if (cartTpl === '') { cartTpl = handlebars.compile($('#mini-cart-tpl').html()); } @@ -1144,7 +1144,7 @@ function loadCartData() { */ function delCartGoods(productSku, promotionId, productNum) { - $.getData('http://www.yohobuy.com/common/delCartGoods', { + $.getData('//www.yohobuy.com/common/delCartGoods', { // shopping_key: $.getShoppingKey(), product_sku: productSku, @@ -1199,7 +1199,7 @@ function actionListenCartMore() { */ function actionClickMiniCartBox() { var $target; - var shopcarurl = 'http://www.yohobuy.com/shopping/cart'; + var shopcarurl = '//www.yohobuy.com/shopping/cart'; $('#miniCartBox').on('click', function(e) { $target = $(e.target); @@ -1376,7 +1376,7 @@ function actionExeTemplate() { * @return {[type]} [description] */ function actionSearch() { - var searchDomain = 'http://search.yohobuy.com/api/suggest'; + var searchDomain = '//search.yohobuy.com/api/suggest'; $('#query_key').search(searchDomain); } @@ -1386,16 +1386,16 @@ function actionSearch() { */ function actionLoginState(_data) { var timestamp = new Date().getTime(); - var noLoginHtml = '<span>Hi~</span>[<a href="http://www.yohobuy.com/signin.html" class="list-a login-out ">' + + var noLoginHtml = '<span>Hi~</span>[<a href="//www.yohobuy.com/signin.html" class="list-a login-out ">' + '请登录</a>] ' + - '[<a href="http://www.yohobuy.com/reg.html" class="list-a login-out" onclick="">免费注册</a>]'; - var loginHtml = '<span>Hi~<a href="http://www.yohobuy.com/home?t=' + timestamp + + '[<a href="//www.yohobuy.com/reg.html" class="list-a login-out" onclick="">免费注册</a>]'; + var loginHtml = '<span>Hi~<a href="//www.yohobuy.com/home?t=' + timestamp + '">{{user_name}}</a></span> ' + '{{#if islogin}}' + '[<a href="{{logout}}" class="list-a login-out">退出</a>]' + '{{/if}}{{#unless islogin}}' + - '[<a href="http://www.yohobuy.com/signin.html" class="list-a login-out">请登录</a>] ' + - '[<a href="http://www.yohobuy.com/reg.html" onclick="" class="list-a login-out">免费注册</a>]' + + '[<a href="//www.yohobuy.com/signin.html" class="list-a login-out">请登录</a>] ' + + '[<a href="//www.yohobuy.com/reg.html" onclick="" class="list-a login-out">免费注册</a>]' + '{{/unless}}'; var $boxObj = $('#loginBox'); var info = window.cookie('_UID'); @@ -1405,7 +1405,7 @@ function actionLoginState(_data) { var char = ''; var user = info.split('::'); var userName = user[0] || ' '; - var _logout = 'http://www.yohobuy.com/logout.html'; + var _logout = '//www.yohobuy.com/logout.html'; var islogin = '1'; var _num = 0; var data = { @@ -1461,7 +1461,7 @@ function actionLoginState(_data) { if (/http:\/\//.test(user[3])) { _logout = user[3].replace('www.yohobuy.com', 'www.yohobuy.com'); } else { - _logout = 'http://www.yohobuy.com/logout.html'; + _logout = '//www.yohobuy.com/logout.html'; } if (_data.result === -1) { islogin = '-1'; @@ -1519,7 +1519,7 @@ function actionVipInfo(_data) { * @return {[type]} [description] */ function actionLoginInfo() { - $.getData('http://www.yohobuy.com/common/passport', '', function(_data) { + $.getData('//www.yohobuy.com/common/passport', '', function(_data) { if (_data && _data.result !== -1) { actionLoginState(_data); // 更改登录状态 actionVipInfo(_data); //获得vip; diff --git a/web-static/js/home/favorite.js b/web-static/js/home/favorite.js index ab1bebe..c7997bd 100644 --- a/web-static/js/home/favorite.js +++ b/web-static/js/home/favorite.js @@ -443,9 +443,7 @@ $('#me-del-checked').click(function() { type: favType } }).then(function(data) { - if (data.code === 200) { - history.go(0); - } + history.go(0); }); } }); diff --git a/web-static/js/home/order-block.js b/web-static/js/home/order-block.js old mode 100644 new mode 100755 index 57318da..f34c08e --- a/web-static/js/home/order-block.js +++ b/web-static/js/home/order-block.js @@ -13,52 +13,51 @@ var Dialog = dialog.Dialog; var Confirm = dialog.Confirm; var $tpl = $('#cancel-dialog-tpl'); - +var deleteDialog = '<div class="order-delete-confirm">' + + '<div class="header">' + + '<p>删除订单</p>' + + '<a href="javascript:;" title="关闭"></a>' + + '</div>' + + '<div class="body">' + + '<p class="confirm-tip"><i class="icon-doubt"></i>{{deleteMessage}}</p>' + + '<p class="delete-tip">{{deleteTip}}</p>' + + '</div>' + + '</div>'; var html = $tpl.html(); var active; - var dialogMessage = '<p class="message-title"><i class="order-icon {{messageIcon}}"></i>{{messageTitle}}</p><p class="message-summary">{{messageSummary}}</p>'; var $dialogEdit = $('#edit-dialog-tpl'); var $addressManage, $province, $city, $county, $selectList, $name, $phone, $address, $telCode, $tel, isProvinceChecked = false; -; function cancelFactory(id) { var options = { - mask: true, + mask: false, btns: [ { id: 'cancel-sure', name: '确定并取消订单', btnClass: ['cancel-sure'], - cb: function() { + cb: function () { var $checked = $('.cancel-dialog :checked'); var $tip = $('.cancel-dialog .cancel-tip'); - var text = ''; - if ($checked.val() === '10') { - text = $checked.parent().find('#reason_other').val(); - } else { - text = $checked.siblings('label').text(); - } + if ($checked.length === 0) { $tip.html('请选择要取消订单的原因'); return; } + $.ajax({ type: 'POST', url: '/home/orders/cancelorder', data: { orderCode: id, - reasonId: $checked.val(), - reason: text + reason: $checked.val() } - }).then(function(data) { + }).then(function (data) { if (data.code === 200) { active.close(); - active = showMessgaeDialog('icon-success', '订单修改', '您已成功取消了该订单', function() { - location.reload(true); - }); - active.show(); + history.go(0); } else { $tip.html(data.message); } @@ -67,9 +66,9 @@ function cancelFactory(id) { }, { id: 'cancel-no', - name: '暂不取消', + name: '取消', btnClass: ['cancel-no'], - cb: function() { + cb: function () { active.close(); } } @@ -80,7 +79,6 @@ function cancelFactory(id) { return new Dialog(options); } - function showMessgaeDialog(message_icon, message_title, message_summary, cb) { var template = Handlebars.compile(dialogMessage); var html = template({messageIcon: message_icon, messageTitle: message_title, messageSummary: message_summary}); @@ -104,7 +102,6 @@ function showMessgaeDialog(message_icon, message_title, message_summary, cb) { return new Dialog(options); } - // 编辑订单 function editOrder(id) { var options = { @@ -138,34 +135,34 @@ $tpl.remove(); $dialogEdit.remove(); //查看物流 -$('.check-logistics').click(function() { +$('.check-logistics').click(function () { $(this).siblings('.logistics').removeClass('hide'); }); -$('.close-logistics').click(function() { +$('.close-logistics').click(function () { $(this).closest('.logistics').addClass('hide'); }); //订单列表&订单详情【取消订单和确认收货】 -$('.me-orders, .order-detail').on('click', '.cancel-order', function(e) { +$('.me-orders, .order-detail').on('click', '.cancel-order', function (e) { //取消订单 active = cancelFactory($(this).closest('.order, .order-detail').data('id')); active.show(); -}).on('click', '.confirm-received', function(e) { +}).on('click', '.confirm-received', function (e) { var id = $(this).closest('.order, .order-detail').data('id'); //确认收货 active = new Confirm({ - cb: function() { + cb: function () { $.ajax({ type: 'POST', url: '/home/orders/confirmorder', data: { orderCode: id } - }).then(function(data) { + }).then(function (data) { if (data.code === 200) { active.close(); history.go(0); @@ -175,6 +172,10 @@ $('.me-orders, .order-detail').on('click', '.cancel-order', function(e) { content: '您确定要确认收货吗?' }); active.show(); +}).on('click', '.order-delete', function () { + var id = $(this).closest('.order, .order-detail').data('id'); + active = deleteOrder(id, this); + active.show(); }).on('click', '.edit-order', function() { $(this).addClass('edit-order-active'); active = editOrder($(this).closest('.order, .order-detail').data('id')) @@ -198,6 +199,55 @@ function buyAgain(id){ } }) } +function deleteOrder(id, obj) { + // 是否为彻底删除 + var isFullyDelete = true; + var $order = $(obj).parents(".order"); + var deleteMessage = isFullyDelete ? "您确定要永久删除订单吗?" : "您确定要删除订单吗?"; + var deleteTip = isFullyDelete ? "永久删除后,订单将无法恢复,您将无法对该订单的商品申请售后服务,请谨慎操作。" : "删除后,您可以在订单回收站找回该订单,也可以做永久删除。"; + var insert = Handlebars.compile(deleteDialog); + var html = insert({deleteMessage: deleteMessage, deleteTip: deleteTip}); + var options = { + mask: false, + btns: [ + { + id: 'delete-sure', + name: '确定', + btnClass: ['delete-sure'], + cb: function () { + $.ajax({ + type: 'POST', + url: '/home/orders/delOrder', + data: { + orderCode: id, + isFullyDelete: isFullyDelete, + } + }).then(function (data) { + if (data.code === 200) { + active.close(); + $order.remove(); + location.reload(); + }else{ + active.close(); + new dialog.Alert(data.message).show(); + } + }); + } + }, + { + id: 'delete-no', + name: '取消', + btnClass: ['delete-no'], + cb: function () { + active.close(); + } + } + ], + content: html, + className: 'delete-dialog', + }; + return new Dialog(options); +} // 地址操作 function newAddress(id) { var code, codeId; @@ -419,7 +469,7 @@ function saveAddress(id) { $.ajax({ type: 'post', - url: '/home/orders/modifyAddress', + url: '/home/orders/modifyAddress', data: postData }).then(function(d) { if (d.code === 200) { diff --git a/web-static/js/home/returns-apply.js b/web-static/js/home/returns-apply.js old mode 100644 new mode 100755 index 5cb556b..f5038fe --- a/web-static/js/home/returns-apply.js +++ b/web-static/js/home/returns-apply.js @@ -44,6 +44,19 @@ if (defaultPhone) { $exchange.find('input[name="phone"]').val(disPhone); } +$goodsTable.on('mouseenter mouseleave', '.doubt', function(e) { + var $this = $(this); + var $tipwrapper = $this.parents('.special-tip'); + var $tipcontent = $tipwrapper.find('.special-content'); + var width = $tipwrapper.find('> span').width(); + if(e.type === 'mouseenter'){ + $tipcontent.css({left: width+10,zIndex:1}).show(); + }else if(e.type ==='mouseleave'){ + $tipcontent.css({zIndxex:0}).hide(); + } + +}); + function syncRefundMode(code) { $.ajax({ type: 'POST', @@ -158,7 +171,7 @@ $file.each(function(e) { $this.qupload({ button_image_url: '', - upload_url: window.location.origin + '/home/returns/imgUpload', + upload_url: '//www.yohobuy.com/home/returns/imgUpload', file_post_name: 'fileData', button_text: '<span class="btn_upload_text">上传图片</span>', button_text_style: '.btn_upload_text{color: #ffffff;}', @@ -176,7 +189,7 @@ $file.each(function(e) { img = JSON.parse(data).imgList[0]; _html = '<span class="btn-del" title="删除"></span>' + - '<img src="' + img.imgUrl + '" width="126" height="126">' + + '<img src="' + img[0] + '" width="126" height="126">' + '<input type="hidden" name="imgs" value="' + img.imgRelUrl + '">'; $imgList.each(function() { if (!isShow && !$(this).find('img').length) { diff --git a/web-static/js/home/returns-detail.js b/web-static/js/home/returns-detail.js old mode 100644 new mode 100755 index fb1c18f..ba06e4e --- a/web-static/js/home/returns-detail.js +++ b/web-static/js/home/returns-detail.js @@ -4,7 +4,9 @@ * @date: 2016/2/26 */ -var $ = require('yoho.jquery'); +var $ = require('yoho.jquery'), + Handlebars = require('yoho.handlebars'), + dialog = require('../common/dialog'); var $returnState = $('.visual-return-state li'), $detail = $('.detail-container'), @@ -20,6 +22,10 @@ var returnId = $('#return-id').val(), expList = {}, isChange = false; +var Dialog = dialog.Dialog, + active, + cancelApplyDialog = '<p class="message-title"><i class="{{messageIcon}}"></i>{{messageTitle}}</p><p class="message-summary">{{messageSummary}}</p>';; + function syncExpressInfo() { expCompany = expList[expId] ? expList[expId] : ''; $expressViewBox.html(expCompany + ' 快递单号:' + expNumber); @@ -74,6 +80,49 @@ function sendExpressCode() { }); } +function cancelApply(id, url) { + var template = Handlebars.compile(cancelApplyDialog); + var html = template({messageIcon: 'icon-warn', messageTitle: '取消申请', messageSummary: '您确定要请取消申请吗?'}); + var options = { + mask: true, + btns: [ + { + id: 'cancel-sure', + name: '确定', + btnClass: ['cancel-sure'], + cb: function() { + $.ajax({ + type: 'POST', + url: url, + data: { + id: id + } + }).then(function(data) { + active.close(); + if (data.code === 200) { + location.reload(); + } else { + new dialog.Alert(data.message).show(); + } + }); + } + }, + { + id: 'cancel-no', + name: '取消', + btnClass: ['cancel-no'], + cb: function() { + active.close(); + } + } + ], + content: html, + className: 'cancel-dialog' + }; + return new Dialog(options); +} + + if ($detail.parent().hasClass('exchange-detail')) { isChange = true; } @@ -92,4 +141,9 @@ $('#modify').click(function() { $('#submit-btn').click(function() { sendExpressCode(); -}); \ No newline at end of file +}); + +$('.cancel-return').on('click', '.cancel-trigger', function() { + active = cancelApply($(this).data('id'), $(this).data('url')); + active.show(); +}) \ No newline at end of file diff --git a/web-static/js/home/validate.js b/web-static/js/home/validate.js index 0069a65..5206c13 100644 --- a/web-static/js/home/validate.js +++ b/web-static/js/home/validate.js @@ -198,6 +198,7 @@ function checkAllForm() { }); if (arr.indexOf(false) >= 0) { + canFlag = true; return false; } else { return true; diff --git a/web-static/js/order/ensure.js b/web-static/js/order/ensure.js old mode 100644 new mode 100755 index d646305..4f70b18 --- a/web-static/js/order/ensure.js +++ b/web-static/js/order/ensure.js @@ -21,8 +21,8 @@ var dialog = require('../common/dialog'); var accMul = function(arg1, arg2) { var m = 0, - s1 = arg1.toString(), - s2 = arg2.toString(); + s1 = arg1.toString(), + s2 = arg2.toString(); try { m += s1.split('.')[1].length; diff --git a/web-static/js/passport/enablePerfectInformation.js b/web-static/js/passport/enablePerfectInformation.js index deb3cc6..0e442f6 100644 --- a/web-static/js/passport/enablePerfectInformation.js +++ b/web-static/js/passport/enablePerfectInformation.js @@ -60,7 +60,7 @@ function getcomplex(curType, preType) { /** - * @desc: 计算密码复杂度(from:http://www.oschina.net/code/snippet_127301_17269) + * @desc: 计算密码复杂度(from://www.oschina.net/code/snippet_127301_17269) * @author: xuqi(qi.xu@yoho.cn) * @date: 2015/5/6 */ diff --git a/web-static/js/passport/reg.js b/web-static/js/passport/reg.js index 19381a5..85d9ea6 100644 --- a/web-static/js/passport/reg.js +++ b/web-static/js/passport/reg.js @@ -253,7 +253,7 @@ function validateRule(page, $element, callback) { - // 根据需求http://redmine.yoho.cn/issues/3117改成上边的正则 + // 根据需求//redmine.yoho.cn/issues/3117改成上边的正则 // 对应的错误提示语也改了,感觉要不了多久就会改回来 // pwdReg = /^([a-zA-Z0-9\-\+_!@\#$%\^&\*\(\)\:\;\.=\[\]\\\',\?]){6,20}$/gi; diff --git a/web-static/js/passport/third-pwd.js b/web-static/js/passport/third-pwd.js index 8249837..585b1da 100644 --- a/web-static/js/passport/third-pwd.js +++ b/web-static/js/passport/third-pwd.js @@ -71,7 +71,7 @@ function getcomplex(curType, preType) { /** - * @desc: 计算密码复杂度(from:http://www.oschina.net/code/snippet_127301_17269) + * @desc: 计算密码复杂度(from://www.oschina.net/code/snippet_127301_17269) * @author: xuqi(qi.xu@yoho.cn) * @date: 2015/5/6 */ diff --git a/web-static/js/passport/thirdlogin.js b/web-static/js/passport/thirdlogin.js index 1c95f1e..80cd6d9 100644 --- a/web-static/js/passport/thirdlogin.js +++ b/web-static/js/passport/thirdlogin.js @@ -11,7 +11,7 @@ var sendmessagehtml = $('.validatewrapper').html(); //发送短信dom var second = +$('.second').text(); //倒计时秒数 var dovalidate = false; //校验验证码标识 var validatecode = false; //验证码是否通过 -var choosedpic = 'http://cdn.yoho.cn/yohobuy/assets/img/passport/choosed.png';//已选择图片 +var choosedpic = '//cdn.yoho.cn/yohobuy/assets/img/passport/choosed.png';//已选择图片 var $wrapper = $('.bindwrapper'), $phoneTip = $wrapper.find('.phone-err-tip'), @@ -336,7 +336,7 @@ function nextStep() { $('#registphone').text(mobile); $('#username').text(username); if (headImg === '') { - $('#userphoto').attr('src', 'http://img10.static.yhbimg.com/headimg/2013/11/28/09/' + + $('#userphoto').attr('src', '//img10.static.yhbimg.com/headimg/2013/11/28/09/' + '01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100'); } else { $('#userphoto').attr('src', headImg); @@ -361,7 +361,7 @@ function nextStep() { $('#registphonetwo').text(mobile); $('#username1').text(username); if (headImg === '') { - $('#userphoto1').attr('src', 'http://img10.static.yhbimg.com/headimg/2013/11/28/09/' + + $('#userphoto1').attr('src', '//img10.static.yhbimg.com/headimg/2013/11/28/09/' + '01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100'); } else { $('#userphoto1').attr('src', headImg); diff --git a/web-static/js/product/latest-walk.js b/web-static/js/product/latest-walk.js index d972753..cf853c3 100644 --- a/web-static/js/product/latest-walk.js +++ b/web-static/js/product/latest-walk.js @@ -20,7 +20,7 @@ var $latestWalkCount = $('#latest-walk-count'); tpl = Handlebars.compile($('#latest-walk-tpl').html()); $.ajax({ - url: 'http://www.yohobuy.com/common/recentReview', + url: '//www.yohobuy.com/common/recentReview', dataType: 'jsonp', data: { limit: $latestWalkCount.val() diff --git a/web-static/js/simple-header.js b/web-static/js/simple-header.js index f01773c..cfe0ef2 100644 --- a/web-static/js/simple-header.js +++ b/web-static/js/simple-header.js @@ -70,12 +70,12 @@ function setLoginStatus(data) { if (data.result !== -1) { name = formatUsernName(info.profile_name); loginHtml = '<span>Hi~</span>' + - '<a href="http://www.yohobuy.com/home?t=' + info.random + '">' + name + '</a> ' + - '<a href="http://www.yohobuy.com/logout.html">[退出]</a>'; + '<a href="//www.yohobuy.com/home?t=' + info.random + '">' + name + '</a> ' + + '<a href="//www.yohobuy.com/logout.html">[退出]</a>'; } else { loginHtml = '<span>Hi~</span> ' + - '<a href="http://www.yohobuy.com/signin.html">[请登录]</a> ' + - '<a href="http://www.yohobuy.com/reg.html">[免费注册]</a>'; + '<a href="//www.yohobuy.com/signin.html">[请登录]</a> ' + + '<a href="//www.yohobuy.com/reg.html">[免费注册]</a>'; } $('.header-tool li').eq(0).html(loginHtml); } @@ -89,7 +89,7 @@ function actionLoginInfo() { return_type: 'jsonp' }; - $.getJSON('http://www.yohobuy.com/common/passport' + '/?callback=?', param, function(_data) { + $.getJSON('//www.yohobuy.com/common/passport' + '/?callback=?', param, function(_data) { if (_data && _data.data) { setLoginStatus(_data.data); } diff --git a/web-static/package.json b/web-static/package.json index c6cd49f..1b880bb 100644 --- a/web-static/package.json +++ b/web-static/package.json @@ -1,6 +1,6 @@ { "name": "web-yohobuy", - "version": "4.6.2", + "version": "4.7.3", "description": "web yohobuy static", "keywords": [], "homepage": "", diff --git a/web-static/sass/home/_order-block.css b/web-static/sass/home/_order-block.css old mode 100644 new mode 100755 index d42e71e..0278228 --- a/web-static/sass/home/_order-block.css +++ b/web-static/sass/home/_order-block.css @@ -32,6 +32,16 @@ background: #efefef; padding: 0 5px; border-bottom: 1px solid #e6e6e6; + .order-time{ + margin-left: 25px; + } + .order-delete{ + margin-right:15px; + color: #999; + &:hover{ + text-decoration:underline; + } + } } .order { @@ -162,6 +172,14 @@ line-height: 18px; color: #999; } + .return-order{ + display: inline-block; + padding: 3px 10px; + background: #FF7C48; + border-radius: 9px; + color: #fff; + text-align: center; + } .op-item { display: block; @@ -318,10 +336,11 @@ height: 28px; line-height: 28px; font-size: 14px; + white-space: nowrap; } label { - padding-left: 10px; + padding-left: 3px; } input[type="text"] { @@ -387,10 +406,66 @@ color: #d70400; font-family: SimSun; font-size: 16px; - margin-right: 10px; - vertical-align: -6px; + margin-right: 13px; + vertical-align: middle; + margin-left: 5px; + } + } +} + +/* 删除订单对话框 */ +.delete-dialog{ + padding: 0 0 20px 0; + border:1px solid #000; + background:#fff; + .header{ + padding:0 10px; + height:32px; + background: #444; + line-height:32px; + color:#fff; + text-align: left; + } + .close{ + color:#fff; + .iconfont{ + font-size: 20px; + font-weight:700; + } + } + .order-delete-confirm{ + width:400px; + line-height:1.5; + } + .body{ + padding:20px; + margin-top: 30px; + } + .confirm-tip{ + font-size:18px; + word-wrap:break-word; + i{ + display:inline-block; + width: 30px; + height:30px; + margin-right: 12px; + background: resolve(/home/doubt.png) no-repeat; + vertical-align:middle; } } + .delete-tip{ + padding-left:20px; + margin:15px 0; + font-size:13px; + word-wrap:break-word; + } + .delete-sure{ + background:#efefef; + } + .delete-no{ + margin-left:60px; + border-color: #cdcdcd; + } } .message-dialog{ width: 350px; @@ -460,14 +535,13 @@ margin:20px 0; line-height: 26px; font-size: 14px; - white-space: nowrap; } .form-required{ color: #d70400; font-family: SimSun; font-size: 16px; margin-right: 10px; - vertical-align: -6px; + vertical-align: middle; } label { display:inline-block; @@ -507,7 +581,7 @@ } .error{ display: none; - margin-left:10px; + margin-left:20px; color:#db3d50; font-size:12px; .icon-error{ @@ -575,13 +649,8 @@ height: 15px; background-position:0 -33px; } -.icon-right{ - width:15px; - height:15px; - background-position: -50px -33px; -} .icon-recycle{ width: 15px; height: 17px; background-position: -18px -33px; -} \ No newline at end of file +} diff --git a/web-static/sass/home/_returns-apply.css b/web-static/sass/home/_returns-apply.css index 2eb1b99..1669c39 100644 --- a/web-static/sass/home/_returns-apply.css +++ b/web-static/sass/home/_returns-apply.css @@ -40,6 +40,14 @@ margin-bottom: 15px; } } + .icon-onlineservice{ + display: inline-block; + width: 16px; + height: 16px; + margin-left: 10px; + background: resolve(home/onlineservice.png) no-repeat; + vertical-align: text-bottom; + } } h2 { height: 21px; @@ -91,6 +99,39 @@ color: #999; } } + .special-tip{ + position:relative; + span { + color: #3a3a3a; + } + .doubt{ + display: inline-block; + margin-left: 5px; + width: 14px; + height: 14px; + background:resolve(home/return-doubt.png) no-repeat; + vertical-align: text-bottom; + } + .special-content{ + display:none; + position: absolute; + top:0; + width: 280px; + padding: 10px 15px; + border: 1px solid #3a3a3a; + background: #fff; + color: #3a3a3a; + word-break: break-word; + i.arrow{ + position: absolute; + top: 5px; + left: -7px; + width: 7px; + height: 12px; + background: resolve(home/return-arrow.png) no-repeat; + } + } + } .exchange-choose-wrap { width: 185px; border: 1px solid #e6e6e6; diff --git a/web-static/sass/home/_returns-detail.css b/web-static/sass/home/_returns-detail.css index 7746992..916583b 100644 --- a/web-static/sass/home/_returns-detail.css +++ b/web-static/sass/home/_returns-detail.css @@ -30,6 +30,22 @@ background: resolve(/home/detail-act.png) no-repeat top center } } + .cancel-return{ + height: 26px; + margin: 0 10px; + padding-top: 10px; + padding-left: 10px; + line-height: 26px; + border-top: 1px solid #e0e0e0; + a{ + display: inline-block; + padding: 0 10px; + margin-left: 2px; + color: #fff; + background: #3a3a3a; + text-align: center; + } + } .detail-container { padding: 10px; diff --git a/web-static/sass/home/_returns.css b/web-static/sass/home/_returns.css index b24de4a..463c184 100644 --- a/web-static/sass/home/_returns.css +++ b/web-static/sass/home/_returns.css @@ -60,4 +60,64 @@ } } -} \ No newline at end of file +} +.cancel-dialog{ + width: 350px; + background: #fff; + padding: 20px 30px 35px 30px; + .message-title{ + margin-top: 40px; + margin-bottom: 27px; + font-size: 24px; + font-weight: 700; + } + .message-summary{ + width: 250px; + margin: 0 auto 22px; + font-size: 14px; + word-wrap: break-word; + line-height: 20px; + color: #444; + } + .btns { + padding: 15px 30px 0; + text-align: center; + + .btn { + height: 35px; + font-size: 15px; + line-height: 35px; + } + + .cancel-sure { + width: 130px; + color: #fff; + background: #000; + border: none; + } + + .cancel-no { + margin-left: 30px; + background: #fff; + color: #000; + border-color: #000; + width: 126px; + } + } + .close{ + top: 15px; + right: 15px; + .iconfont{ + font-size: 30px; + } + } + .icon-warn{ + display: inline-block; + margin-right: 10px; + background: resolve(/home/icon-warn.png) no-repeat; + width: 30px; + height: 30px; + vertical-align: -6px; + } +} + diff --git a/yohobuy/www.yohobuy.com/application/Bootstrap.php b/yohobuy/www.yohobuy.com/application/Bootstrap.php index f2bf1e3..a7d492f 100644 --- a/yohobuy/www.yohobuy.com/application/Bootstrap.php +++ b/yohobuy/www.yohobuy.com/application/Bootstrap.php @@ -5,7 +5,7 @@ * @name Bootstrap * @author fei.hong * @desc 所有在Bootstrap类中, 以_init开头的方法, 都会被Yaf调用, - * @see http://www.php.net/manual/en/class.yaf-bootstrap-abstract.php + * @see //www.php.net/manual/en/class.yaf-bootstrap-abstract.php * 这些方法, 都接受一个参数:Yaf_Dispatcher $dispatcher * 调用的次序, 和申明的次序相同 */ diff --git a/yohobuy/www.yohobuy.com/application/controllers/Brands.php b/yohobuy/www.yohobuy.com/application/controllers/Brands.php index 086d7d3..9a69d98 100644 --- a/yohobuy/www.yohobuy.com/application/controllers/Brands.php +++ b/yohobuy/www.yohobuy.com/application/controllers/Brands.php @@ -167,7 +167,7 @@ class BrandsController extends WebAction foreach ($brandIds as $brandId) { if (isset($brandsInfo[$brandId])) { $list[$brandId]['desc'] = $brandsInfo[$brandId]['desc']; - $list[$brandId]['url'] = $brandsInfo[$brandId]['url'] . '?gender=' . $gender; + $list[$brandId]['url'] = Helpers::getUrlSafe($brandsInfo[$brandId]['url'] . '?gender=' . $gender); } $brands[] = $list[$brandId]; } diff --git a/yohobuy/www.yohobuy.com/application/controllers/Common.php b/yohobuy/www.yohobuy.com/application/controllers/Common.php index dfffc31..1fd36a2 100644 --- a/yohobuy/www.yohobuy.com/application/controllers/Common.php +++ b/yohobuy/www.yohobuy.com/application/controllers/Common.php @@ -128,7 +128,7 @@ class CommonController extends WebAction $height = 60; } $banner['src'] = Images::getImageUrl($banner['src'], $width, $height, 2); - //str_replace('?imageView/{mode}/w/{width}/h/{height}', '', $banner['src']); + $banner['url'] = Helpers::getUrlSafe($banner['url']); } } return $this->helpJsonCallbackResult($callback, $data['code'], $data['message'], $banner); @@ -220,7 +220,7 @@ class CommonController extends WebAction 'user' => $username, 'href' => $tool, 'logo' => array( - 'img' => 'http://static.yohobuy.com/newheader/img/logo_e.png', + 'img' => '//static.yohobuy.com/newheader/img/logo_e.png', 'url' => SITE_MAIN ), ); diff --git a/yohobuy/www.yohobuy.com/application/controllers/Coupon.php b/yohobuy/www.yohobuy.com/application/controllers/Coupon.php index ce6b359..88de0d7 100644 --- a/yohobuy/www.yohobuy.com/application/controllers/Coupon.php +++ b/yohobuy/www.yohobuy.com/application/controllers/Coupon.php @@ -2,6 +2,7 @@ use Action\WebAction; use WebPlugin\Helpers; +use WebPlugin\Encryption; use Index\HomeModel; use Index\CouponModel; use LibModels\Web\Home\CouponData; @@ -29,7 +30,7 @@ class CouponController extends WebAction * 领券页面控制器 */ public function indexAction() - { + { $channel = Helpers::getChannelNameByCookie(); //领券频道头部 $this->setWebNavHeader($channel); @@ -52,6 +53,11 @@ class CouponController extends WebAction break; } $couponId = $this->get('id', ''); + if (empty($couponId)) { + break; + } + //解密 + $couponId = Encryption::decrypt($couponId); $uid = $this->getUid(); if (!$uid) { $playUrl = Helpers::url('/coupon/index'); diff --git a/yohobuy/www.yohobuy.com/application/controllers/Error.php b/yohobuy/www.yohobuy.com/application/controllers/Error.php index 837e6ac..80306eb 100644 --- a/yohobuy/www.yohobuy.com/application/controllers/Error.php +++ b/yohobuy/www.yohobuy.com/application/controllers/Error.php @@ -5,7 +5,7 @@ * * @name ErrorController * @desc 错误控制器, 在发生未捕获的异常时刻被调用 - * @see http://www.php.net/manual/en/yaf-dispatcher.catchexception.php + * @see //www.php.net/manual/en/yaf-dispatcher.catchexception.php */ use Action\WebAction; use WebPlugin\Helpers; diff --git a/yohobuy/www.yohobuy.com/application/controllers/Help.php b/yohobuy/www.yohobuy.com/application/controllers/Help.php index d00f215..d434add 100644 --- a/yohobuy/www.yohobuy.com/application/controllers/Help.php +++ b/yohobuy/www.yohobuy.com/application/controllers/Help.php @@ -2,7 +2,6 @@ use Action\WebAction; use Index\HelpModel; -//use LibModels\Web\Home\HelpData; use WebPlugin\Helpers; use WebPlugin\Paging; diff --git a/yohobuy/www.yohobuy.com/application/controllers/Tools.php b/yohobuy/www.yohobuy.com/application/controllers/Tools.php index 37eae2d..1e00d8a 100644 --- a/yohobuy/www.yohobuy.com/application/controllers/Tools.php +++ b/yohobuy/www.yohobuy.com/application/controllers/Tools.php @@ -42,12 +42,12 @@ class ToolsController extends WebAction */ public function indexAction() { - $html = '<link href="http://cdn.bootcss.com/bootstrap/2.3.2/css/bootstrap.min.css" rel="stylesheet"><div style="margin-left:100px;"><br/><h2>工具首页</h2>'; + $html = '<link href="//cdn.bootcss.com/bootstrap/2.3.2/css/bootstrap.min.css" rel="stylesheet"><div style="margin-left:100px;"><br/><h2>工具首页</h2>'; $channels = array( 'JAVA API' => '/tools/javaapi', '缓存页面' => '/tools/cache', '服务器配置' =>'/tools/serverinfo', - '服务器'=>'/tools/server', + '服务器'=>'/tools/server', ); $html.='<ol>'; foreach ($channels as $name => $url) { @@ -62,7 +62,7 @@ class ToolsController extends WebAction */ public function javaapiAction() { - $html = '<script src="http://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script><link href="http://cdn.bootcss.com/bootstrap/2.3.2/css/bootstrap.min.css" rel="stylesheet"> + $html = '<script src="//cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script><link href="//cdn.bootcss.com/bootstrap/2.3.2/css/bootstrap.min.css" rel="stylesheet"> <div style="margin-left:100px;"><h3 style="color:blue;">java api测试</h3>'; $channels = array('获取资源位' => $this->getResourceUrl(), '获取最新上架' => ''); foreach ($channels as $name => $url) { @@ -115,7 +115,7 @@ class ToolsController extends WebAction $params = array_merge($params, Yohobuy::param()); unset($params['client_secret']); $client_type = 'web'; - $url = Yohobuy::API_URL; + $url = API_URL; if(isset($params['client_type'])) { $client_type = $params['client_type']; } @@ -145,7 +145,7 @@ class ToolsController extends WebAction $params['client_type'] = $client_type; $params['private_key'] = Yohobuy::$privateKeyList[$client_type]; $params['client_secret'] = Sign::getSign($params); - return Yohobuy::httpBuildQuery(Yohobuy::SERVICE_URL . IndexData::URL_OPERATIONS_RESOURCE_GET, $params); + return Yohobuy::httpBuildQuery(SERVICE_URL . IndexData::URL_OPERATIONS_RESOURCE_GET, $params); } /** @@ -167,7 +167,7 @@ class ToolsController extends WebAction '品牌一览-潮童' => WebCacheConfig::KEY_WEB_BRAND_INDEX_VIEW_TOP_DATA . '_' . BrandsModel::KIDS, '品牌一览-创意生活' => WebCacheConfig::KEY_WEB_BRAND_INDEX_VIEW_TOP_DATA . '_' . BrandsModel::LIFESTYLE, ); - $html = '<link href="http://cdn.bootcss.com/bootstrap/2.3.2/css/bootstrap.min.css" rel="stylesheet"><br/> + $html = '<link href="//cdn.bootcss.com/bootstrap/2.3.2/css/bootstrap.min.css" rel="stylesheet"><br/> <div style="margin-left:100px;"><h3 style="color:red;">缓存页面</h3>'; $html.='<ul>'; foreach ($channels as $key => $val) { diff --git a/yohobuy/www.yohobuy.com/application/models/Guang/Index.php b/yohobuy/www.yohobuy.com/application/models/Guang/Index.php index 9d42aa3..b4a9cba 100644 --- a/yohobuy/www.yohobuy.com/application/models/Guang/Index.php +++ b/yohobuy/www.yohobuy.com/application/models/Guang/Index.php @@ -50,7 +50,7 @@ class IndexModel $list = current($resource['data']); foreach($list['data'] as $val) { $data [] = array( 'img' => Images::getImageUrl($val['src'], 830, 327, 1), - 'url' => $val['url']); + 'url' => Helpers::getUrlSafe($val['url'])); } //格式化数据 Cache::set($key, $data, 3600); @@ -190,7 +190,7 @@ class IndexModel $list = current($resource['data']); foreach($list['data'] as $val) { $data [] = array( 'img' => Images::getImageUrl($val['src'], 640,640, 1), - 'url' => $val['url']); + 'url' => Helpers::getUrlSafe($val['url'])); } //最多取5个 $data = array_slice($data, 0, 5); diff --git a/yohobuy/www.yohobuy.com/application/models/Guang/Info.php b/yohobuy/www.yohobuy.com/application/models/Guang/Info.php index 280a7c5..2a5960d 100644 --- a/yohobuy/www.yohobuy.com/application/models/Guang/Info.php +++ b/yohobuy/www.yohobuy.com/application/models/Guang/Info.php @@ -74,14 +74,14 @@ class InfoModel $result['pathNav'] = self::getCenterCrumb($article['article_title'], $channel); //文章头部信息 $result['header']['title'] = $article['article_title']; - $result['header']['avatar'] = isset($data['author']['avatar']) && !empty($data['author']['avatar']) ? $data['author']['avatar'] : ''; + $result['header']['avatar'] = isset($data['author']['avatar']) && !empty($data['author']['avatar']) ? Helpers::getUrlSafe($data['author']['avatar']) : ''; $result['header']['name'] = isset($data['author']['name']) && !empty($data['author']['name']) ? $data['author']['name'] : ''; $result['header']['authorUrl'] = isset($data['author']['name']) && !empty($data['author']['name']) ? Helpers::url('/Index/editor', array('author_id'=>$article['author_id']), 'guang') : ''; $result['header']['intro'] = isset($data['author']['author_desc']) && !empty($data['author']['author_desc']) ? $data['author']['author_desc'] : ''; $result['header']['time'] = date('Y年m月d日 H:i', $article['publish_time']); $result['header']['click'] = $article['pageViews']; $result['header']['commentNum'] = $data['comments']['total']; - $result['header']['shareImg'] = Images::getImageUrl($article['cover_image'], 600, 600); + $result['header']['shareImg'] = 'http:' . Images::getImageUrl($article['cover_image'], 600, 600); $result['header']['desc'] = $article['article_summary']; $result['header']['weixinUrl'] = $article['url']; //文章详细 @@ -91,7 +91,9 @@ class InfoModel if ($type === 'goods') { $goods = array_merge_recursive($goods, self::goods($con['data'])); } elseif ($type === 'goodsGroup') { - $goodsGroup = array_merge_recursive($goodsGroup, self::goodsGroup($con['data'])); + foreach (self::goodsGroup($con['data']) as $key => $val) { + $goodsGroup = array_merge_recursive($goodsGroup, $val['recos']); + } } else { $other = is_callable("self::$type") ? self::$type($con['data']) : ''; array_push($result['content'], $other); @@ -103,7 +105,7 @@ class InfoModel $result['content'][]['relatedReco'] = array('recos'=>$goods); } if (!empty($goodsGroup)) { - $result['content'][]['relatedReco'] = $goodsGroup; + $result['content'][]['relatedReco'] = array('recos'=>$goodsGroup); } //赞、收藏 if (isset($data['baseInfo']) && !empty($data['baseInfo'])) { @@ -119,8 +121,13 @@ class InfoModel } } //相关品牌 + $result['brands'] = array(); if (isset($data['brands']) && !empty($data['brands'])) { - $result['brands'] = $data['brands']; + $result['brands'] = array_map(function($val) { + $val['thumb'] = Helpers::getUrlSafe($val['thumb']); + $val['url'] = Helpers::getUrlSafe($val['url']); + return $val; + }, $data['brands']); } //相关文章 if (isset($data['relate']) && !empty($data['relate'])) { diff --git a/yohobuy/www.yohobuy.com/application/models/Home/Comment.php b/yohobuy/www.yohobuy.com/application/models/Home/Comment.php index 7db4e4d..fb6bed5 100644 --- a/yohobuy/www.yohobuy.com/application/models/Home/Comment.php +++ b/yohobuy/www.yohobuy.com/application/models/Home/Comment.php @@ -133,7 +133,7 @@ class CommentModel $result['count'] = $total; $result['curPage'] = $page; $result['totalPages'] = $totalPage; - $result['pagerHtml'] = HelperSearch::pager($total, $limit);; + $result['pagerHtml'] = HelperSearch::pager($total, $limit); } return $result; } diff --git a/yohobuy/www.yohobuy.com/application/models/Home/Coupons.php b/yohobuy/www.yohobuy.com/application/models/Home/Coupons.php index 37c81cc..cebf62f 100644 --- a/yohobuy/www.yohobuy.com/application/models/Home/Coupons.php +++ b/yohobuy/www.yohobuy.com/application/models/Home/Coupons.php @@ -38,7 +38,7 @@ class CouponsModel $result[$k]['beginTime'] = date('Y-m-d', date_timestamp_get(date_create_from_format('Y.m.d', $dates[0]))); $result[$k]['endTime'] = date('Y-m-d', date_timestamp_get(date_create_from_format('Y.m.d', $dates[1]))); if (empty($v['couponImageUrl'])) { - $result[$k]['img'] = 'http://static.yohobuy.com/images/v2/activity/default_coupon.jpg'; + $result[$k]['img'] = '//static.yohobuy.com/images/v2/activity/default_coupon.jpg'; } else { $result[$k]['img'] = $v['couponImageUrl']; } diff --git a/yohobuy/www.yohobuy.com/application/models/Home/Currency.php b/yohobuy/www.yohobuy.com/application/models/Home/Currency.php index 374b1d4..d0e2fd8 100644 --- a/yohobuy/www.yohobuy.com/application/models/Home/Currency.php +++ b/yohobuy/www.yohobuy.com/application/models/Home/Currency.php @@ -28,7 +28,7 @@ class CurrencyModel $currency = self::currencyList($uid, $condition); $result['currency'] = $currency['list']; $result['pager'] = $currency['pager']; - $result['coinHelperUrl'] = 'http://www.yohobuy.com/help/?category_id=87';//yoho币帮助 + $result['coinHelperUrl'] = '//www.yohobuy.com/help/?category_id=87';//yoho币帮助 $result['tabs'] = self::currencyTabs($condition['queryType']); $result['options'] = self::currencyOptions($condition); return $result; diff --git a/yohobuy/www.yohobuy.com/application/models/Home/Index.php b/yohobuy/www.yohobuy.com/application/models/Home/Index.php index 898e3fc..d5ceb77 100644 --- a/yohobuy/www.yohobuy.com/application/models/Home/Index.php +++ b/yohobuy/www.yohobuy.com/application/models/Home/Index.php @@ -104,7 +104,7 @@ class IndexModel $banner = BrandData::getByNodeContent($code); if (isset($banner['code']) && !empty($banner['data'])) { - return $banner['data']; + return strtr($banner['data'], array('http://' => '//')); } } } diff --git a/yohobuy/www.yohobuy.com/application/models/Home/Order.php b/yohobuy/www.yohobuy.com/application/models/Home/Order.php old mode 100644 new mode 100755 index f478600..c133ad5 --- a/yohobuy/www.yohobuy.com/application/models/Home/Order.php +++ b/yohobuy/www.yohobuy.com/application/models/Home/Order.php @@ -32,6 +32,11 @@ class OrderModel foreach ($orderInfo['data']['order_list'] as $orderK => $orderV) { $orders[$orderK]['orderNum'] = $orderV['order_code']; //订单标识 $orders[$orderK]['orderTime'] = date("Y-m-d H:i:s", $orderV['create_time']); //下单时间 +// $orders[$orderK]['hasDelete'] = true; //彻底删除 + //删除订单 + if($orderV['is_cancel'] == 'Y' || $orderV['status'] === 6) { + $orders[$orderK]['canDelete'] = true; //删除订单 + } $statusInfo = self::getOrderStatus($orderV['is_cancel'], $orderV['status'], $orderV['payment_type'], $orderV['payment_status']); //订单状态 if ($statusInfo['cancel']) { @@ -64,6 +69,7 @@ class OrderModel $goods[$gokey]['count'] = $buyNum; $refundStatus = ($refundNum > 0) ? true : false; //只要发生一件退换,退换过的标记 $goods[$gokey]['refundStatus'] = $refundStatus; + $goods[$gokey]['goRefundUrl'] = Helpers::url('/home/returns'); $refundFlag[] = (($buyNum == $refundNum) && $refundNum > 0) ? 'finished' : 'unfinished'; //某一件商品全部退换结束 $goods[$gokey]['arrivalDate'] = $goval['expect_arrival_time']; $goodsTagName = self::getGoodsTag($orderV['attribute'], $goval['goods_type']); @@ -80,6 +86,11 @@ class OrderModel } //操作 $orders[$orderK]['operation'] = self::getOperateInfo($orderV['attribute'], $orderV['is_cancel'], $orderV['status'], $orderV['payment_status'], $orderV['update_time'], $orderV['order_type'], $orderV['refund_status'], $orderV['payment_type'], $orderV['order_code'], $opRefundStatus); + + // tar add 160701 换货订单标记 + if ($orderV['order_type'] === 7) { + $orders[$orderK]['isExchanged'] = true; + } } if ($isPage) { $orders['pager']['total'] = $orderInfo['data']['total']; @@ -345,7 +356,7 @@ class OrderModel if (isset($orderCode) && is_numeric($uid)) { $logistics = OrderData::getLogisticsData($orderCode, $uid); if (isset($logistics['data']) && $logistics['data']) { - $result['logisticsUrl'] = isset($logistics['data']['url']) ? $logistics['data']['url'] : ''; + $result['logisticsUrl'] = isset($logistics['data']['url']) ? Helpers::getUrlSafe($logistics['data']['url']) : ''; $result['logisticsImg'] = isset($logistics['data']['logo']) ? $logistics['data']['logo'] : ''; $result['logisticsCompany'] = isset($logistics['data']['caption']) ? $logistics['data']['caption'] : ''; $result['courierNumbe'] = isset($logistics['data']['express_number']) ? $logistics['data']['express_number'] : ''; @@ -614,6 +625,7 @@ class OrderModel if ($status >= 6 && $time < 86400 * $orderRefundLimitTime && $attribute != 3 && $isCancel == 'N') { $operation[] = array('href' => $refundUrl, 'name' => '申请退货', 'optDis' => $opRefundStatus); } + return $operation; } diff --git a/yohobuy/www.yohobuy.com/application/models/Home/Returns.php b/yohobuy/www.yohobuy.com/application/models/Home/Returns.php old mode 100644 new mode 100755 index b773509..48ca168 --- a/yohobuy/www.yohobuy.com/application/models/Home/Returns.php +++ b/yohobuy/www.yohobuy.com/application/models/Home/Returns.php @@ -34,25 +34,32 @@ class ReturnsModel if (isset($returnsData['code']) && $returnsData['code'] == 200 && !empty($returnsData['data']['list'])) { //设置分页 $pager = self::setPager($returnsData['data']['page'], $returnsData['data']['total'], $returnsData['data']['total_page'], $limit); - foreach($returnsData['data']['list'] as $key => $value){ + foreach ($returnsData['data']['list'] as $key => $value) { + $param = array( + 'id' => $value['id'] + ); + $list[$key]['returnId'] = $value['id']; $list[$key]['orderNum'] = $value['order_code']; - $list[$key]['orderTime'] = str_replace('-','/',$value['order_create_time']); + $list[$key]['orderTime'] = str_replace('-', '/', $value['order_create_time']); $list[$key]['returnTime'] = $value['create_time']; - if ($value['refund_type'] == 1) { + if ($value['refund_type'] == 1) { // tar note 160624 终止退货 $list[$key]['isChange'] = false; $uri = '/home/returns/refundDetail'; - }elseif ($value['refund_type'] == 2) { + if ($value['canCancel'] === 'Y') { + $list[$key]['canCancelUrl'] = Helpers::url('/home/returns/cancelRefund'); + } + } elseif ($value['refund_type'] == 2) { // tar note 160624 终止换货 $list[$key]['isChange'] = true; $uri = '/home/returns/exchangeDetail'; + if ($value['canCancel'] === 'Y') { + $list[$key]['canCancelUrl'] = Helpers::url('/home/returns/cancelChange'); + } } $list[$key]['returnStatus'] = $value['status_name']; - $param = array( - 'id' => $value['id'] - ); - $list[$key]['moreHref'] = helpers::url($uri,$param); + $list[$key]['moreHref'] = helpers::url($uri, $param); $list[$key]['goods'] = self::getGoodsData($value['goods']); } - }else{ + } else { $list = array( 'empty' => '您没有退/换货订单' ); @@ -62,8 +69,8 @@ class ReturnsModel $path = UserModel::getCenterCrumb('退货/换货'); $leftNav = UserModel::getCenterLeftNav('我的退/换货', $uid); $data = array( - 'path'=>$path, - 'homeNav'=>$leftNav, + 'path' => $path, + 'homeNav' => $leftNav, 'orders' => $list, 'userThumb' => UserModel::getUserHeadImg($uid), 'pager' => $pager @@ -97,13 +104,17 @@ class ReturnsModel $detail['express']['number'] = isset($res['notice']['express_number']) ? $res['notice']['express_number'] : ''; $detail['express']['id'] = isset($res['notice']['express_id']) ? $res['notice']['express_id'] : ''; } - foreach($res['statusList'] as $key=>$value){ - $detail['statusList'][$key]['act'] = ($value['act' ] == 'Y') ? true : false; + foreach ($res['statusList'] as $key => $value) { + $detail['statusList'][$key]['act'] = ($value['act'] == 'Y') ? true : false; $detail['statusList'][$key]['name'] = $value['name']; } $detail['goods'] = self::getDetailGoods($res['goods_list']); $detail['expressList'] = self::getExpressCompany(); - }else{ + + if ($res['canCancel'] === 'Y') { + $detail['canCancelUrl'] = Helpers::url('/home/returns/cancelChange'); + } + } else { return false; } @@ -111,10 +122,10 @@ class ReturnsModel $path = UserModel::getCenterCrumb('退货/换货'); $leftNav = UserModel::getCenterLeftNav('我的退/换货', $uid); $data = array( - 'path'=>$path, - 'homeNav'=>$leftNav, + 'path' => $path, + 'homeNav' => $leftNav, 'userThumb' => UserModel::getUserHeadImg($uid), - 'detail'=>$detail + 'detail' => $detail ); return $data; @@ -145,7 +156,7 @@ class ReturnsModel $detail['express']['company'] = isset($res['notice']['express_company']) ? $res['notice']['express_company'] : ''; $detail['express']['number'] = isset($res['notice']['express_number']) ? $res['notice']['express_number'] : ''; } - foreach($res['statusList'] as $key=>$value){ + foreach ($res['statusList'] as $key => $value) { $detail['statusList'][$key]['act'] = ($value['act'] == 'Y') ? true : false; $detail['statusList'][$key]['name'] = $value['name']; } @@ -153,17 +164,21 @@ class ReturnsModel $detail['backMode'] = isset($res['return_amount_mode_name']) ? $res['return_amount_mode_name'] : ''; $detail['goods'] = self::getDetailGoods($res['goods_list']); $detail['expressList'] = self::getExpressCompany(); - }else{ + + if ($res['canCancel'] === 'Y') { + $detail['canCancelUrl'] = Helpers::url('/home/returns/cancelRefund'); + } + } else { return false; } //面包屑-左侧导航 $path = UserModel::getCenterCrumb('退货/换货'); $leftNav = UserModel::getCenterLeftNav('我的退/换货', $uid); $data = array( - 'path'=>$path, - 'homeNav'=>$leftNav, + 'path' => $path, + 'homeNav' => $leftNav, 'userThumb' => UserModel::getUserHeadImg($uid), - 'detail'=>$detail + 'detail' => $detail ); return $data; @@ -184,7 +199,7 @@ class ReturnsModel $cnAlphabet = $value['cn_alphabet']; } $result[$key]['href'] = Helpers::getUrlBySkc($value['product_id'], $value['goods_id'], $cnAlphabet); - $result[$key]['thumb'] = Helpers::getImageUrl($value['goods_image'],60,60); + $result[$key]['thumb'] = Helpers::getImageUrl($value['goods_image'], 60, 60); $result[$key]['name'] = $value['product_name']; $result[$key]['color'] = $value['color_name']; $result[$key]['size'] = $value['size_name']; @@ -241,7 +256,7 @@ class ReturnsModel $expressList = ReturnsData::getExpressCompany(); if (isset($expressList['code']) && $expressList['code'] == 200) { $result = array_values($expressList['data']); - foreach($result as $key=>$value){ + foreach ($result as $key => $value) { $res = array_merge_recursive($res, $value); } } @@ -260,9 +275,9 @@ class ReturnsModel * @param $isChange * @return mixed */ - public static function setExpressNumber($id, $expressId, $expressNumber,$uid, $expressCompany, $isChange) + public static function setExpressNumber($id, $expressId, $expressNumber, $uid, $expressCompany, $isChange) { - $data = ReturnsData::setExpressNumber($id, $expressId, $expressNumber,$uid, $expressCompany, $isChange); + $data = ReturnsData::setExpressNumber($id, $expressId, $expressNumber, $uid, $expressCompany, $isChange); return $data; } @@ -282,13 +297,13 @@ class ReturnsModel //调用接口成功,封装数据 if (isset($data['code']) && $data['code'] == 200 && isset($data['data']['goods_list']) && !empty($data['data']['goods_list'])) { $amount = ''; - foreach($data['data']['goods_list'] as $key=>$value){ + foreach ($data['data']['goods_list'] as $key => $value) { $cnAlphabet = ''; if (!empty($value['cn_alphabet'])) { $cnAlphabet = $value['cn_alphabet']; } $result['goods'][$key]['href'] = Helpers::getUrlBySkc($value['product_id'], $value['goods_id'], $cnAlphabet); - $result['goods'][$key]['thumb'] = Helpers::getImageUrl($value['goods_image'],60,60); + $result['goods'][$key]['thumb'] = Helpers::getImageUrl($value['goods_image'], 60, 60); $result['goods'][$key]['name'] = $value['product_name']; $result['goods'][$key]['color'] = $value['color_name']; $result['goods'][$key]['size'] = $value['size_name']; @@ -299,19 +314,42 @@ class ReturnsModel $result['goods'][$key]['goods_type_id'] = $value['goods_type_id']; $result['goods'][$key]['goods_type'] = $value['goods_type']; $amount += $value['last_price'];//所以商品价格加起来,等于订单总价 + + $result['goods'][$key]['reason'] = $data['data']['return_reason']; + + // tar note 为每个特殊商品都添加标识 + if ($value['is_limit_skn'] === 'Y') { + $remarks = explode(' ', $data['data']['special_notice']['remark'], 2); // 使用3个空格拆分 + $result['goods'][$key]['specialNoticeBo']['title'] = $data['data']['special_notice']['title']; + $result['goods'][$key]['specialNoticeBo']['remark1'] = $remarks[0]; + $result['goods'][$key]['specialNoticeBo']['remark2'] = $remarks[1]; + + // tar note 对数组做处理,为不显示的添加 inactive + if (isset($data['data']['special_return_reason'])) { + foreach ($result['goods'][$key]['reason'] as $subKey => $item) { + if (!in_array($item, $data['data']['special_return_reason'])) { + $result['goods'][$key]['reason'][$subKey]['inactive'] = true; + } + } + } + } + + // 对原因排序 + asort($result['goods'][$key]['reason']); + //商品中有鞋类,传给前端标识 if ($value['hasShoes']) { $result['tips']['footwear'] = true; } } $result['orderCode'] = $orderCode; - $result['reason'] = $data['data']['return_reason']; + //计算相关支付细节 $result['amount'] = $amount - $data['data']['yoho_coin_num'] - $data['data']['coupon_amount']; $result['yohoCoin'] = $data['data']['yoho_coin_num']; $result['coupon'] = $data['data']['coupon_amount']; $result['cash'] = $amount; - foreach($data['data']['return_amount_mode'] as &$value){ + foreach ($data['data']['return_amount_mode'] as &$value) { if ($value['is_default'] == 'Y') { $value['default'] = true; } @@ -324,8 +362,8 @@ class ReturnsModel $leftNav = UserModel::getCenterLeftNav('我的退/换货', $uid); $pager = array(); $data = array( - 'path'=>$path, - 'homeNav'=>$leftNav, + 'path' => $path, + 'homeNav' => $leftNav, 'refund' => $result, 'pager' => $pager ); @@ -346,16 +384,18 @@ class ReturnsModel //调用接口,根据订单号获取订单可换货商品信息 $data = ReturnsData::getChangeGoodsData($orderCode, $uid); + $isLimited = false; + $productSkn = array(); //数据获取成功,封装数据 if (isset($data['code']) && $data['code'] == 200 && isset($data['data']) && !empty($data['data'])) { - foreach ($data['data']['goods_list'] as $key=>$value) { + foreach ($data['data']['goods_list'] as $key => $value) { $cnAlphabet = ''; if (!empty($value['cn_alphabet'])) { $cnAlphabet = $value['cn_alphabet']; } $result['goods'][$key]['href'] = Helpers::getUrlBySkc($value['product_id'], $value['goods_id'], $cnAlphabet); - $result['goods'][$key]['thumb'] = Helpers::getImageUrl($value['goods_image'],60,60); + $result['goods'][$key]['thumb'] = Helpers::getImageUrl($value['goods_image'], 60, 60); $result['goods'][$key]['name'] = $value['product_name']; $result['goods'][$key]['color'] = $value['color_name']; $result['goods'][$key]['size'] = $value['size_name']; @@ -364,13 +404,36 @@ class ReturnsModel $result['goods'][$key]['skc'] = $value['product_skc']; $result['goods'][$key]['sku'] = $value['product_sku']; $result['goods'][$key]['goods_type_id'] = $value['goods_type_id']; + + $result['goods'][$key]['reason'] = $data['data']['exchange_reason']; + + // tar note 为每个特殊商品都添加标识 + if ($value['is_limit_skn'] === 'Y') { + $remarks = explode(' ', $data['data']['specialNoticeBo']['remark'], 2); // 使用3个空格拆分 + $result['goods'][$key]['specialNoticeBo']['title'] = $data['data']['specialNoticeBo']['title']; + $result['goods'][$key]['specialNoticeBo']['remark1'] = $remarks[0]; + $result['goods'][$key]['specialNoticeBo']['remark2'] = $remarks[1]; + + // tar note 对数组做处理,为不显示的添加 inactive + if (isset($data['data']['special_exchange_reason'])) { + foreach ($result['goods'][$key]['reason'] as $subKey => $item) { + if (!in_array($item, $data['data']['special_exchange_reason'])) { + $result['goods'][$key]['reason'][$subKey]['inactive'] = true; + } + } + } + } + + // 对原因排序 + asort($result['goods'][$key]['reason']); + //给前端标识出鞋类 if ($value['hasShoes']) { $result['tips']['footwear'] = true; } $productSkn[] += $value['product_skn']; } - $result['reason'] = $data['data']['exchange_reason']; + $result['orderCode'] = $orderCode; //换货地址相关数据(邮编为可空参数) @@ -393,8 +456,8 @@ class ReturnsModel foreach ($product as $key => $value) {//遍历得到每件商品 $num = '0';//初始化每件商品的库存为0 - foreach ($value['goods_list'] as $k=>$v) {//遍历商品得到每个颜色 - foreach ($v['size_list'] as $k1=>$v1) {//遍历颜色得到每个尺码 + foreach ($value['goods_list'] as $k => $v) {//遍历商品得到每个颜色 + foreach ($v['size_list'] as $k1 => $v1) {//遍历颜色得到每个尺码 $num += $v1['storage_number'];//将商品颜色对应尺码下的每个商品的库存相加 if ($v1['storage_number'] > 0) {//当某个尺码下有库存时,将该颜色及其对应的尺码加入该商品选项下 $result['goods'][$key]['colorSize'][$k]['color'] = $v['color_name']; @@ -412,14 +475,14 @@ class ReturnsModel $result['goods'][$key]['banMsg'] = '库存不足不能换货'; } } - + //面包屑-左侧导航 $path = UserModel::getCenterCrumb('退货/换货'); $leftNav = UserModel::getCenterLeftNav('我的退/换货', $uid); $pager = array(); $data = array( - 'path'=>$path, - 'homeNav'=>$leftNav, + 'path' => $path, + 'homeNav' => $leftNav, 'exchange' => $result, 'pager' => $pager ); @@ -435,7 +498,7 @@ class ReturnsModel */ public static function getSizeList($sizeList) { - foreach ($sizeList as $key=>$value) { + foreach ($sizeList as $key => $value) { if ($value['storage_number'] <= 0) { unset($sizeList[$key]); } @@ -498,7 +561,7 @@ class ReturnsModel //调取接口查询订单详情 $order = OrderData::viewOrderData($orderCode, $uid, ''); if (empty($order)) { - return array('code'=>403,'message'=>'没有找到该订单'); + return array('code' => 403, 'message' => '没有找到该订单'); } // //订单7天后不能退款 // if (isset($order['code']) && $order['code'] == 200) { @@ -538,7 +601,7 @@ class ReturnsModel //调取接口查询订单详情 $order = OrderData::viewOrderData($orderCode, $uid, ''); if (empty($order)) { - return array('code'=>403,'message'=>'没有找到该订单'); + return array('code' => 403, 'message' => '没有找到该订单'); } // //订单15天后不能换货 // if (isset($order['code']) && $order['code'] == 200) { @@ -573,15 +636,15 @@ class ReturnsModel $path = UserModel::getCenterCrumb('退货/换货'); $leftNav = UserModel::getCenterLeftNav('我的退/换货', $uid); $data = array( - 'path'=>$path, - 'homeNav'=>$leftNav, + 'path' => $path, + 'homeNav' => $leftNav, 'save' => array( 'type' => '退货', 'ordersHref' => Helpers::url('/home/orders'), 'returnsHref' => Helpers::url('/home/returns'), 'refund' => array( // 退货时传退货收件地址 - 'address' => '南京市江宁区江宁经济技术开发区苏源大道87号YOHO!BUY 有货物流中心东一楼', - 'name' => 'YOHO!BUY 有货', + 'address' => '南京市江宁区江宁经济技术开发区苏源大道87号YOHO!有货物流中心东一楼', + 'name' => 'YOHO!有货', 'phone' => '400-889-9646', 'postcode' => '211106' ) @@ -603,8 +666,8 @@ class ReturnsModel $path = UserModel::getCenterCrumb('退货/换货'); $leftNav = UserModel::getCenterLeftNav('我的退/换货', $uid); $data = array( - 'path'=>$path, - 'homeNav'=>$leftNav, + 'path' => $path, + 'homeNav' => $leftNav, 'save' => array( 'type' => '换货', 'ordersHref' => Helpers::url('/home/orders'), diff --git a/yohobuy/www.yohobuy.com/application/models/Home/VIP.php b/yohobuy/www.yohobuy.com/application/models/Home/VIP.php index 2abfe4f..98aa32b 100644 --- a/yohobuy/www.yohobuy.com/application/models/Home/VIP.php +++ b/yohobuy/www.yohobuy.com/application/models/Home/VIP.php @@ -9,7 +9,7 @@ namespace Home; use LibModels\Web\Home\UserData; - +use \WebPlugin\Helpers; class VIPModel { /** @@ -44,7 +44,7 @@ class VIPModel foreach ($enjoyPreferences as $k => $v) { $preferences[$k]['id'] = $v['id']; $preferences[$k]['favTxt'] = $v['title']; - $preferences[$k]['imgType'] = $v['pic']; + $preferences[$k]['imgType'] = Helpers::getUrlSafe($v['pic']); $preferences[$k]['description'] = $v['description']; } } diff --git a/yohobuy/www.yohobuy.com/application/models/Index/Brands.php b/yohobuy/www.yohobuy.com/application/models/Index/Brands.php index d47eb30..09ae668 100644 --- a/yohobuy/www.yohobuy.com/application/models/Index/Brands.php +++ b/yohobuy/www.yohobuy.com/application/models/Index/Brands.php @@ -65,7 +65,7 @@ class BrandsModel $brandAds[$tbk] = array( 'name' => $tbv['name'], 'src' => Helpers::getImageUrl($tbv['src'], 80, 50, 3), - 'url' => $tbv['url'], + 'url' => Helpers::getUrlSafe($tbv['url']), ); } } @@ -82,7 +82,7 @@ class BrandsModel $brandLogos[$tk] = array( 'name' => $tv['title'], 'src' => $srcUrl, - 'url' => $tv['url'] + 'url' => Helpers::getUrlSafe($tv['url']) ); } } @@ -351,7 +351,7 @@ class BrandsModel $val['url'] = Helpers::url('/brands/plusstar?id=' . $id); } if (isset($resource[0]['data'][$pos])) { - $val['url'] = $resource[0]['data'][$pos]['url']; + $val['url'] = Helpers::getUrlSafe($resource[0]['data'][$pos]['url']); $val['src'] = Images::getImageUrl($resource[0]['data'][$pos]['src'], 222, 180, 1); $val['name'] = $resource[0]['data'][$pos]['title']; } @@ -476,7 +476,7 @@ class BrandsModel if (isset($news[$id])) { $val['img'] = Images::getImageUrl($news[$id]['src'], 764, 436, 1); $val['tips'] = $news[$id]['title']; - $val['href'] = $news[$id]['url']; + $val['href'] = Helpers::getUrlSafe($news[$id]['url']); } else { unset($newsList['pics']['list'][$key]); @@ -492,7 +492,7 @@ class BrandsModel if (isset($news[$id])) { $val['img'] = Images::getImageUrl($news[$id]['src'], 280, 160, 1); $val['name'] = $news[$id]['title']; - $val['href'] = $news[$id]['url']; + $val['href'] = Helpers::getUrlSafe($news[$id]['url']); // $val['des'] = $news[$id]['summary']; } else { diff --git a/yohobuy/www.yohobuy.com/application/models/Index/Coupon.php b/yohobuy/www.yohobuy.com/application/models/Index/Coupon.php index cc284e9..74cb43d 100644 --- a/yohobuy/www.yohobuy.com/application/models/Index/Coupon.php +++ b/yohobuy/www.yohobuy.com/application/models/Index/Coupon.php @@ -4,6 +4,7 @@ namespace Index; use WebPlugin\Helpers; use WebPlugin\Images; +use WebPlugin\Encryption; use Index\HomeModel; use LibModels\Web\Home\CouponData; @@ -44,7 +45,7 @@ class CouponModel if (isset($couponlistval['templateName']) && $couponlistval['templateName'] == 'focus') { foreach ($couponlistval['data'] as $focus) { $result['slide']['list'][] = array( - 'href' => $focus['url'], //banner跳转链接 + 'href' => Helpers::getUrlSafe($focus['url']), //banner跳转链接 'img' => Images::getForceSourceUrl($focus['src'])//banner图片 ); } @@ -60,9 +61,9 @@ class CouponModel ); foreach ($couponlistval['data'] as $couponskey => $couponsval) { $result['categories'][$i]['coupons'][$couponskey] = array( - 'id' => $couponsval['couponID'], //优惠券号 + 'id' => Encryption::encrypt($couponsval['couponID']), //加密优惠券号 'img' => Images::getForceSourceUrl($couponsval['image']['src']), //优惠券图片 - 'url' => $couponsval['image']['url'] //去逛逛链接 + 'url' => Helpers::getUrlSafe($couponsval['image']['url']) //去逛逛链接 ); //领取状态判断 diff --git a/yohobuy/www.yohobuy.com/application/models/Index/Home.php b/yohobuy/www.yohobuy.com/application/models/Index/Home.php index de3e8fe..ded1a4f 100644 --- a/yohobuy/www.yohobuy.com/application/models/Index/Home.php +++ b/yohobuy/www.yohobuy.com/application/models/Index/Home.php @@ -82,8 +82,8 @@ class HomeModel $item = array( 'name_cn' => $val['sort_name'], // 父级 'name_en' => $val['sort_name_en'], - 'link' => $val['sort_url'], - 'icon' => $val['sort_ico'], + 'link' => Helpers::getUrlSafe($val['sort_url']), + 'icon' => Helpers::getUrlSafe($val['sort_ico']), 'classname' => str_replace(' ', '', strtolower($val['sort_name_en'])) == $channel ? $channel .' cure' : '', 'index_main' => $indexMain ++, 'content_code' => $val['content_code'], @@ -100,11 +100,14 @@ class HomeModel }; $indexSub = 0; + + //判断sub变量是否存在 + $val['sub'] = empty($val['sub']) ? array() : $val['sub']; foreach ($val['sub'] as $sub) { // 二级 $subnav = array( 'name' => $sub['sort_name'], 'name_en' => $sub['sort_name_en'], - 'link' => $sub['sort_url'], + 'link' => Helpers::getUrlSafe($sub['sort_url']), 'is_hot' => $sub['is_hot'] == 'Y' ? true : false, 'is_new' => $sub['is_new'] == 'Y' ? true : false, 'content_code' => $sub['content_code'], @@ -117,7 +120,7 @@ class HomeModel $thirdnav = array( 'title' => $thirdsub['sort_name'], 'name_en' => $thirdsub['sort_name_en'], - 'link' => $thirdsub['sort_url'], + 'link' => Helpers::getUrlSafe($thirdsub['sort_url']), 'content_code' => $thirdsub['content_code'], // 'branditems' => array() ); @@ -125,7 +128,7 @@ class HomeModel foreach ($thirdsub['sub'] as $fourthnav) { // 四级 $thirdnav['branditems'][] = array( 'brandname' => $fourthnav['sort_name'], - 'link' => $fourthnav['sort_url'], + 'link' => Helpers::getUrlSafe($fourthnav['sort_url']), 'hot' => $fourthnav['is_hot'] == 'Y' ? 'hot' : '' ); } @@ -375,7 +378,7 @@ class HomeModel $channel = str_replace(' ', '', strtolower($nav['sort_name_en'])); $list[] = array( 'channel' => $channel, - 'url' => $nav['sort_url'], + 'url' => Helpers::getUrlSafe($nav['sort_url']), 'sort_name' => $nav['sort_name'], 'sort_name_en' => $nav['sort_name_en'], 'content_code' => $nav['content_code'], diff --git a/yohobuy/www.yohobuy.com/application/models/Passport/Passport.php b/yohobuy/www.yohobuy.com/application/models/Passport/Passport.php index 6f27dc2..1db7349 100644 --- a/yohobuy/www.yohobuy.com/application/models/Passport/Passport.php +++ b/yohobuy/www.yohobuy.com/application/models/Passport/Passport.php @@ -50,7 +50,7 @@ class PassportModel if (!isset($resource['data'][0])) { $ret = Cache::get($key, 'slave'); if (empty($ret)) { - $ret = array('img' => 'http://img12.static.yhbimg.com/yhb-img01/2015/12/01/07/020a0b6e7ff908d0c2bc4045b4fef42b9f.png?imageView/2/w/252/h/190', 'url' => ''); + $ret = array('img' => '//img12.static.yhbimg.com/yhb-img01/2015/12/01/07/020a0b6e7ff908d0c2bc4045b4fef42b9f.png?imageView/2/w/252/h/190', 'url' => ''); } break; } @@ -62,7 +62,7 @@ class PassportModel $val = $resource['data'][0]['data']; } $ret['img'] = Images::getImageUrl($val['src'], 252, 190); - $ret['url'] = $val['url']; + $ret['url'] = Helpers::getUrlSafe($val['url']); // 设置缓存 Cache::set($key, $ret); diff --git a/yohobuy/www.yohobuy.com/application/models/Product/Brands.php b/yohobuy/www.yohobuy.com/application/models/Product/Brands.php index 3d6a2c4..66552f5 100644 --- a/yohobuy/www.yohobuy.com/application/models/Product/Brands.php +++ b/yohobuy/www.yohobuy.com/application/models/Product/Brands.php @@ -163,7 +163,7 @@ class BrandsModel if (!empty($brandInfo['data']) && $brandInfo['code'] == 200) { $result['brandId'] = isset($brandInfo['data']['id']) ? $brandInfo['data']['id'] : ''; $result['node'] = isset($brandInfo['data']['static_content_code']) ? $brandInfo['data']['static_content_code'] : false; - $result['brandBanner'] = isset($brandInfo['data']['brand_banner']) ? $brandInfo['data']['brand_banner'] : ''; + $result['brandBanner'] = isset($brandInfo['data']['brand_banner']) ? Helpers::getUrlSafe($brandInfo['data']['brand_banner']) : ''; $result['brandNameEn'] = isset($brandInfo['data']['brand_name_en']) ? $brandInfo['data']['brand_name_en'] : ''; $result['brandNameCn'] = isset($brandInfo['data']['brand_name_cn']) ? $brandInfo['data']['brand_name_cn'] : ''; $result['brandAbout'] = isset($brandInfo['data']['brand_intro']) ? $brandInfo['data']['brand_intro'] : ''; @@ -197,7 +197,7 @@ class BrandsModel if (isset($series['data']) && $series['code'] === 200) { foreach ($series['data'] as $value) { $result['list'][$index]['href'] = '?series=' . $value['id']; - $result['list'][$index]['src'] = $value['series_banner']; + $result['list'][$index]['src'] = Helpers::getUrlSafe($value['series_banner']); ++ $index; } //title设置为经典系列 @@ -207,7 +207,7 @@ class BrandsModel if (isset($advNav['data']) && $advNav['code'] === 200) { foreach ($advNav['data'] as $value) { $result['list'][$index]['href'] = '?folder_id=' . $value['id']; - $result['list'][$index]['src'] = $value['brand_sort_ico']; + $result['list'][$index]['src'] = Helpers::getUrlSafe($value['brand_sort_ico']); ++ $index; } //title设置为经典系列 diff --git a/yohobuy/www.yohobuy.com/application/models/Product/Index.php b/yohobuy/www.yohobuy.com/application/models/Product/Index.php index 98b11df..4fee1dc 100644 --- a/yohobuy/www.yohobuy.com/application/models/Product/Index.php +++ b/yohobuy/www.yohobuy.com/application/models/Product/Index.php @@ -71,8 +71,8 @@ class IndexModel if (isset($ads['code']) && $ads['code'] == 200 && !empty($ads['data'])) { $res = array(); foreach($ads['data'] as $key=>$value) { - $res['picLink']['list'][$key]['href'] = isset($value['ads_url']) ? $value['ads_url'] : ''; - $res['picLink']['list'][$key]['src'] = isset($value['ads_image']) ? $value['ads_image'] : ''; + $res['picLink']['list'][$key]['href'] = isset($value['ads_url']) ? Helpers::getUrlSafe($value['ads_url']) : ''; + $res['picLink']['list'][$key]['src'] = isset($value['ads_image']) ? Helpers::getUrlSafe($value['ads_image']) : ''; } $result['leftContent'][] = $res; } @@ -95,7 +95,7 @@ class IndexModel $banner['img'] = $bannerData['logo']; foreach($bannerData['keyword'] as $key => $vo){ $banner['keyEntry'][$key]['name'] = $vo['word']; - $banner['keyEntry'][$key]['url'] = $vo['url']; + $banner['keyEntry'][$key]['url'] = Helpers::getUrlSafe($vo['url']); } return $banner; diff --git a/yohobuy/www.yohobuy.com/application/models/Product/Item.php b/yohobuy/www.yohobuy.com/application/models/Product/Item.php old mode 100644 new mode 100755 index 1841636..8caf4de --- a/yohobuy/www.yohobuy.com/application/models/Product/Item.php +++ b/yohobuy/www.yohobuy.com/application/models/Product/Item.php @@ -1,16 +1,17 @@ <?php namespace Product; -use LibModels\Web\Product\ItemData; -use WebPlugin\Helpers; -use WebPlugin\Images; -use LibModels\Web\Product\SearchData; -use LibModels\Web\Product\FavoriteData; + use Api\Yohobuy; -use WebPlugin\Cache; -use Configs\WebCacheConfig; use Configs\ChannelConfig; +use Configs\WebCacheConfig; use LibModels\Web\Product\BrandData; -use Product\BrandsModel; +use LibModels\Web\Product\FavoriteData; +use LibModels\Web\Product\ItemData; +use LibModels\Web\Product\SearchData; +use WebPlugin\Cache; +use WebPlugin\Helpers; +use WebPlugin\Images; + class ItemModel { /** @@ -35,7 +36,7 @@ class ItemModel $statGoodsInfo = array(); $banner = array(); $baseInfo = ItemData::baseInfo($productId, $uid, $productSkn); - if(empty($baseInfo['productName']) && empty($baseInfo['erpProductId']) && empty($baseInfo['productPriceBo'])) { + if (empty($baseInfo['productName']) && empty($baseInfo['erpProductId']) && empty($baseInfo['productPriceBo'])) { return array(); } $baseInfo['uid'] = $uid; @@ -50,7 +51,7 @@ class ItemModel $brandId = 0; //设置并发请求数据 self::setMultiResourceByProductBaseInfo($baseInfo); - if(isset($baseInfo['brand']['id'])) { + if (isset($baseInfo['brand']['id'])) { $brandId = $baseInfo['brand']['id']; } //收藏喜欢 @@ -69,12 +70,13 @@ class ItemModel $goodsInfo['isOutlets'] = $baseInfo['isOutlets'] == 'Y' ? 'outlets' : ''; } + // 商品价格 if (isset($baseInfo['productPriceBo'])) { $goodsInfo['marketPrice'] = $baseInfo['productPriceBo']['formatMarketPrice']; $goodsInfo['hasOtherPrice'] = true;//非市场价格 $goodsInfo['salePrice'] = $baseInfo['productPriceBo']['formatSalesPrice']; - if($goodsInfo['marketPrice'] == $goodsInfo['salePrice']) {//价格相同,只显示市场价格 + if ($goodsInfo['marketPrice'] == $goodsInfo['salePrice']) {//价格相同,只显示市场价格 unset($goodsInfo['salePrice']); $goodsInfo['hasOtherPrice'] = false; } @@ -82,15 +84,32 @@ class ItemModel //VIP数据 $goodsInfo['vipPrice'] = self::getVipDataByProductBaseInfo($baseInfo, $vipLevel, $uid); - //促销活动banner - $goodsInfo['activity'] = self::getActivityDataByProductBaseInfo($baseInfo); + + // 促销信息声明 + $goodsInfo['activity'] = array(); + + // 促销 banner + $promotionBanner = self::getProductActivityBanner($baseInfo['id']); + if (!empty($promotionBanner)) { + $goodsInfo['activity'][] = $promotionBanner; + } + + // 促销活动,另外调用接口获取 + $activityOrigin = ItemData::promotion($baseInfo['productPriceBo']['productSkn']); + + if ($activityOrigin['code'] === 200) { + $activityList = self::getActivityDataByProductBaseInfo($activityOrigin['data']); + + if (!empty($activityList)) { + $goodsInfo['activity'] = array_merge($goodsInfo['activity'], $activityList); + } + } if (isset($baseInfo['productPriceBo']['yohoCoinNum']) && $baseInfo['productPriceBo']['yohoCoinNum'] !== 0) { array_push($goodsInfo['activity'], array('type' => '返YOHO币', 'des' => '每件返 ' . $baseInfo['productPriceBo']['yohoCoinNum'] . '个 YOHO币') ); } - // 上市期 if (isset($baseInfo['expectArrivalTime']) && !empty($baseInfo['expectArrivalTime'])) { $goodsInfo['arrivalDate'] = $baseInfo['expectArrivalTime'] . '月'; @@ -103,11 +122,11 @@ class ItemModel $consultComment = self::getConsultCommentDataByProductInfo($baseInfo); // 品牌信息 if (!empty($baseInfo['brand'])) { - $goodsInfo['brandImg'] = Helpers::getImageUrl($baseInfo['brand']['brandIco'], 47, 47); + $goodsInfo['brandImg'] = Helpers::getImageUrl($baseInfo['brand']['brandIco'], 47, 47); $goodsInfo['brandName'] = $baseInfo['brand']['brandName']; $goodsInfo['brandUrl'] = Helpers::url('', array(), $baseInfo['brand']['brandDomain']); $banner = self::getBrandDataByProductBaseInfo($baseInfo); - if(isset($banner['isCollect']) && isset($favoriteData['brand'])) { + if (isset($banner['isCollect']) && isset($favoriteData['brand'])) { $banner['isCollect'] = $favoriteData['brand']; } } @@ -133,12 +152,12 @@ class ItemModel $fashTopGoods = self::getFashionTopGoodsStatus($uid, $showStatus, $isBeginSale); //潮流尖货状态 $goodsInfo['fashionTopGoods'] = array( - 'getLimitedCode' => $fashTopGoods['getLimitedCode'],//限购码状态 - 'hasLimitedCode' => $fashTopGoods['hasLimitedCode'],//是否已经获取限购码 - 'limitedCodeSoldOut'=> $fashTopGoods['limitedCodeSoldOut'],//限购码是否已经抢光 - 'getLimitedCodeDis' => $fashTopGoods['getLimitedCodeDis'],//限购码是否失效 - ); - if($fashTopGoods['soldOut']) { + 'getLimitedCode' => $fashTopGoods['getLimitedCode'],//限购码状态 + 'hasLimitedCode' => $fashTopGoods['hasLimitedCode'],//是否已经获取限购码 + 'limitedCodeSoldOut' => $fashTopGoods['limitedCodeSoldOut'],//限购码是否已经抢光 + 'getLimitedCodeDis' => $fashTopGoods['getLimitedCodeDis'],//限购码是否失效 + ); + if ($fashTopGoods['soldOut']) { $goodsInfo['soldOut'] = $fashTopGoods['soldOut']; $totalStorageNum = 0;//改总数为已售磬 } else { @@ -152,39 +171,40 @@ class ItemModel $notForSale = $baseInfo['attribute'] == 2;//非卖品 $virtualGoods = $baseInfo['attribute'] == 3;//虚拟商品 if (!$soldOut && !$notForSale && !$virtualGoods) { - $goodsInfo['addToCart'] = true; - //立即购买或者即将开售存在 - if((isset($goodsInfo['buyNow']) && $goodsInfo['buyNow']) || - (isset($goodsInfo['openSoon']) && $goodsInfo['openSoon'])) { + $goodsInfo['addToCart'] = true; + //立即购买或者即将开售存在 + if ((isset($goodsInfo['buyNow']) && $goodsInfo['buyNow']) || + (isset($goodsInfo['openSoon']) && $goodsInfo['openSoon']) + ) { unset($goodsInfo['addToCart']); } - }// 非卖品 + } + // 非卖品 elseif ($notForSale) { $goodsInfo['notForSale'] = true; - } + } // 已售磬 elseif ($soldOut) { $goodsInfo['soldOut'] = true; unset($goodsInfo['fashionTopGoods']); - } - //虚拟商品 - else if($virtualGoods) { + } //虚拟商品 + else if ($virtualGoods) { $goodsInfo['buyNow'] = true;//是否立即购买 $goodsInfo['buyNowBase'] = Helpers::url('/ticket', array(), 'shopping'); $goodsInfo['virtualGoods'] = $virtualGoods; - if(isset($goodsInfo['salePrice'])) { + if (isset($goodsInfo['salePrice'])) { $goodsInfo['advancePrice'] = $goodsInfo['salePrice'];//先行价格 unset($goodsInfo['salePrice']); } } //去掉即将售罄 - if(empty($totalStorageNum) || $soldOut) { - if(isset($goodsInfo['tags']['isFew'])) { + if (empty($totalStorageNum) || $soldOut) { + if (isset($goodsInfo['tags']['isFew'])) { unset($goodsInfo['tags']['isFew']);//去掉即将售罄 } } //分享相关 - $goodsInfo['weixinUrl'] = Helpers::url($_SERVER['REQUEST_URI'], array(),'item'); + $goodsInfo['weixinUrl'] = Helpers::url($_SERVER['REQUEST_URI'], array(), 'item'); $goodsInfo['sharedTitle'] = $goodsInfo['name']; $goodsInfo['shareImg'] = $goodsInfo['img']; $goodsInfo['shareDesc'] = $baseInfo['phrase']; @@ -193,10 +213,10 @@ class ItemModel $statGoodsInfo['uid'] = $uid; $statGoodsInfo['skn'] = $baseInfo['erpProductId']; $statGoodsInfo['productId'] = $productId; - $statGoodsInfo['productName'] = str_replace("'", "’",$goodsInfo['name']); - $statGoodsInfo['brandName'] = empty($goodsInfo['brandName'])? '' : str_replace("'", "’", $goodsInfo['brandName']); + $statGoodsInfo['productName'] = str_replace("'", "’", $goodsInfo['name']); + $statGoodsInfo['brandName'] = empty($goodsInfo['brandName']) ? '' : str_replace("'", "’", $goodsInfo['brandName']); $statGoodsInfo['marketPrice'] = str_replace('¥', '', $goodsInfo['marketPrice']); - if(isset($goodsInfo['salePrice'])) { + if (isset($goodsInfo['salePrice'])) { $statGoodsInfo['salePrice'] = str_replace('¥', '', $goodsInfo['salePrice']); } else { $statGoodsInfo['salePrice'] = str_replace('¥', '', $goodsInfo['marketPrice']); @@ -227,7 +247,7 @@ class ItemModel $statGoodsInfo['productUrl'] = $goodsInfo['weixinUrl']; $statGoodsInfo['smallSortId'] = $goodsInfo['smallSortId']; $statGoodsInfo['soldOut'] = intval($soldOut); - return array('goodsInfo'=> $goodsInfo,'consultComment' => $consultComment, 'banner'=> $banner,'statGoodsInfo' => $statGoodsInfo); + return array('goodsInfo' => $goodsInfo, 'consultComment' => $consultComment, 'banner' => $banner, 'statGoodsInfo' => $statGoodsInfo); } /** @@ -242,11 +262,11 @@ class ItemModel if (is_numeric($productSkn)) { //并发资源中是否存在数据 $sizeInfo = self::getMultiDataByResourceName('ItemData::sizeInfo'); - if(empty($sizeInfo)) { + if (empty($sizeInfo)) { //获取尺码 $sizeInfo = ItemData::sizeInfo($productSkn); } - if(empty($sizeInfo)) { + if (empty($sizeInfo)) { return array(); } $productId = $sizeInfo['productBo']['id']; @@ -266,15 +286,14 @@ class ItemModel $fittingReport = self::getProductModelTry($productSkn); //获取尺寸说明 $sizeAttr = array(); - if(!empty($sizeInfo['sizeInfoBo'])) { + if (!empty($sizeInfo['sizeInfoBo'])) { //根据最大分类ID获取尺寸属性 $sizeAttr = self::getSizeAttrByMaxSortId($maxSortId, $sizeInfo['sizeInfoBo']); } - return array('material'=> $material, 'size'=> $size, 'reference'=> $reference, - 'modelCards'=> $modelCards,'details'=> $details,'fittingReport' =>$fittingReport, - 'description'=> $description,'sizeTitleJson' => json_encode($sizeAttr)); - } - else { + return array('material' => $material, 'size' => $size, 'reference' => $reference, + 'modelCards' => $modelCards, 'details' => $details, 'fittingReport' => $fittingReport, + 'description' => $description, 'sizeTitleJson' => json_encode($sizeAttr)); + } else { return array(); } @@ -293,8 +312,8 @@ class ItemModel $goodsInfo = array(); $size = array(); $baseInfo = ItemData::baseInfo($productId, $uid); - if(!empty($baseInfo)) { - if(empty($baseInfo['productName']) && empty($baseInfo['erpProductId']) && empty($baseInfo['productPriceBo'])) { + if (!empty($baseInfo)) { + if (empty($baseInfo['productName']) && empty($baseInfo['erpProductId']) && empty($baseInfo['productPriceBo'])) { return array(); } $goodsInfo['name'] = $baseInfo['productName']; @@ -310,7 +329,7 @@ class ItemModel $goodsInfo['marketPrice'] = Helpers::transPrice($baseInfo['productPriceBo']['marketPrice']); $goodsInfo['salePrice'] = Helpers::transPrice($baseInfo['productPriceBo']['salesPrice']); $goodsInfo['hasOtherPrice'] = true;//非市场价格 - if($goodsInfo['marketPrice'] == $goodsInfo['salePrice']) {//价格相同,只显示市场价格 + if ($goodsInfo['marketPrice'] == $goodsInfo['salePrice']) {//价格相同,只显示市场价格 unset($goodsInfo['salePrice']); $goodsInfo['hasOtherPrice'] = false; } @@ -333,9 +352,9 @@ class ItemModel $goodsInfo['img'] = $skuData['defaultImage']; $goodsInfo['colors'] = $skuData['skuGoods']; $favoriteData = FavoriteData::getUidProductFav($uid, $productId); - $goodsInfo['isCollect'] = $favoriteData['code'] == 200 && $favoriteData['data'] ? true:false; + $goodsInfo['isCollect'] = $favoriteData['code'] == 200 && $favoriteData['data'] ? true : false; $sizeInfo = ItemData::sizeInfo($baseInfo['erpProductId']); - if(!empty($sizeInfo)) { + if (!empty($sizeInfo)) { $size = self::getSizeDataBySizeInfo($sizeInfo); $goodsInfo['size'] = $size; } @@ -355,10 +374,10 @@ class ItemModel $goodsInfo['fashionTopGoods'] = array( 'getLimitedCode' => $fashTopGoods['getLimitedCode'],//限购码状态 'hasLimitedCode' => $fashTopGoods['hasLimitedCode'],//是否已经获取限购码 - 'limitedCodeSoldOut'=> $fashTopGoods['limitedCodeSoldOut'],//限购码是否已经抢光 + 'limitedCodeSoldOut' => $fashTopGoods['limitedCodeSoldOut'],//限购码是否已经抢光 'getLimitedCodeDis' => $fashTopGoods['getLimitedCodeDis'],//限购码是否失效 ); - if($fashTopGoods['soldOut']) { + if ($fashTopGoods['soldOut']) { $goodsInfo['soldOut'] = $fashTopGoods['soldOut']; $totalStorageNum = 0;//改总数为已售磬 } else { @@ -375,24 +394,23 @@ class ItemModel if (!$soldOut && !$notForSale && !$virtualGoods) { $goodsInfo['addToCart'] = true; //立即购买或者即将开售存在 - if((isset($goodsInfo['buyNow']) && $goodsInfo['buyNow']) || - (isset($goodsInfo['openSoon']) && $goodsInfo['openSoon'])) { - unset($goodsInfo['addToCart']); - } + if ((isset($goodsInfo['buyNow']) && $goodsInfo['buyNow']) || + (isset($goodsInfo['openSoon']) && $goodsInfo['openSoon']) + ) { + unset($goodsInfo['addToCart']); + } }// 非卖品 elseif ($notForSale) { //$goodsInfo['notForSale'] = true; $goodsInfo['addToCart'] = true;//赠品 - } - // 已售磬 + } // 已售磬 elseif ($soldOut) { $goodsInfo['soldOut'] = true; - } - else if($virtualGoods) { + } else if ($virtualGoods) { $goodsInfo['buyNow'] = true;//是否立即购买 $goodsInfo['buyNowBase'] = Helpers::url('/ticket', array(), 'shopping'); $goodsInfo['virtualGoods'] = $virtualGoods; - if(isset($goodsInfo['salePrice'])) { + if (isset($goodsInfo['salePrice'])) { $goodsInfo['advancePrice'] = $goodsInfo['salePrice'];//先行价格 unset($goodsInfo['salePrice']); } @@ -410,19 +428,19 @@ class ItemModel */ public static function getSortNav($smallSortId) { - $key = WebCacheConfig::KEY_WEB_ITEM_SORT_DATA.'_'.$smallSortId; + $key = WebCacheConfig::KEY_WEB_ITEM_SORT_DATA . '_' . $smallSortId; $navs = Cache::get($key); - if(empty($navs)) { - $data = SearchData::getSortByCondition(array('sort'=> $smallSortId)); - if(!empty($data['data'])) { + if (empty($navs)) { + $data = SearchData::getSortByCondition(array('sort' => $smallSortId)); + if (!empty($data['data'])) { $sort = current($data['data']['sort']); //一级分类 - $navs[] = array('href' => Helpers::url('', array('msort'=> $sort['sort_id'], - 'gender' => Helpers::getGenderByCookie()),'list'), 'name' => $sort['sort_name'],'pathTitle' => $sort['sort_name']); - if(!empty($sort['sub'])) {//二级分类 + $navs[] = array('href' => Helpers::url('', array('msort' => $sort['sort_id'], + 'gender' => Helpers::getGenderByCookie()), 'list'), 'name' => $sort['sort_name'], 'pathTitle' => $sort['sort_name']); + if (!empty($sort['sub'])) {//二级分类 $subSort = current($sort['sub']); - $navs[] = array('href' => Helpers::url('', array('msort'=> $sort['sort_id'],'misort'=>$subSort['sort_id'], - 'gender' => Helpers::getGenderByCookie()),'list'), 'name' => $subSort['sort_name'], 'pathTitle' => $subSort['sort_name']); + $navs[] = array('href' => Helpers::url('', array('msort' => $sort['sort_id'], 'misort' => $subSort['sort_id'], + 'gender' => Helpers::getGenderByCookie()), 'list'), 'name' => $subSort['sort_name'], 'pathTitle' => $subSort['sort_name']); } Cache::set($key, $navs); } @@ -459,7 +477,7 @@ class ItemModel $build['like'] = intval($value['like']); $build['isUseful'] = $value['is_useful'] === 'Y'; $build['useful'] = intval($value['useful']); - $build['total']= $value['total']; + $build['total'] = $value['total']; $result[] = $build; } } @@ -484,8 +502,8 @@ class ItemModel $build = array(); foreach ($commentList['data'] as $value) { $headIco = ChannelConfig::$itemHeadDefaultImgIco; - if(!empty($value['head_ico'])) { - if(preg_match('@http://@', $value['head_ico'])) { + if (!empty($value['head_ico'])) { + if (preg_match('@http://@', $value['head_ico'])) { $headIco = preg_replace('@http:\/\/img(.+)\.static\.yhbimg\.com\/headimg@', 'http://head.static.yhbimg.com/yhb-head/', $value['head_ico']); $headIco = Images::getImageUrl($headIco, 30, 30); } @@ -501,7 +519,7 @@ class ItemModel } } } - return $result; + return $result; } /** @@ -514,13 +532,12 @@ class ItemModel { $result = array(); $data = self::getMultiDataByResourceName('ItemData::getProductBanner'); - if(empty($data)) { + if (empty($data)) { $data = ItemData::getProductBanner($productId); } - if(isset($data['code']) && $data['code'] == 200 && !empty($data['data'])) - { + if (isset($data['code']) && $data['code'] == 200 && !empty($data['data'])) { $result['activityImg'] = Images::getImageUrl($data['data']['bannerImg'], 260, 64); - $result['url'] = $data['data']['promotionUrl']; + $result['url'] = Helpers::getUrlSafe($data['data']['promotionUrl']); } return $result; } @@ -535,20 +552,20 @@ class ItemModel { $result = array(); $data = ItemData::getProductHotArea($productId); - if(isset($data['code']) && $data['code'] == 200) { - if(!empty($data['data'])) { + if (isset($data['code']) && $data['code'] == 200) { + if (!empty($data['data'])) { foreach ($data['data'] as $area) { $temp = array(); $pos = 1; - if(isset($area['imageUrl'])) { + if (isset($area['imageUrl'])) { $temp['img'] = Images::getForceSourceUrl($area['imageUrl']); } - foreach($area['infos'] as $val) { - if(isset($val['product'])) { - $point = array('label' => $pos++,'height' => $val['height'], - 'left' => $val['left'],'top' => $val['top'], - 'width'=> $val['width'],'product' => array()); - if(!empty($val['product']['goodsList'])) { + foreach ($area['infos'] as $val) { + if (isset($val['product'])) { + $point = array('label' => $pos++, 'height' => $val['height'], + 'left' => $val['left'], 'top' => $val['top'], + 'width' => $val['width'], 'product' => array()); + if (!empty($val['product']['goodsList'])) { $goods = current($val['product']['goodsList']); //封面图 $point['img'] = Images::getImageUrl($goods['colorImage'], 60, 60); @@ -563,11 +580,11 @@ class ItemModel $point['href'] = $point['product']['href']; } } - if(!empty($point)) { + if (!empty($point)) { $temp['list'][] = $point; } } - if(!empty($temp)) { + if (!empty($temp)) { $result[] = $temp; } } @@ -586,13 +603,13 @@ class ItemModel { $result = array(); $data = self::getMultiDataByResourceName('ItemData::getProductModelCard'); - if(empty($data)) { + if (empty($data)) { $data = ItemData::getProductModelCard($productId); } - if(isset($data['code']) && $data['code'] == 200) { - foreach($data['data'] as $val) { + if (isset($data['code']) && $data['code'] == 200) { + foreach ($data['data'] as $val) { $result[] = array( - 'url' => Images::getForceSourceUrl($val['modelImg']), + 'url' => Helpers::getUrlSafe(Images::getForceSourceUrl($val['modelImg'])), 'size' => $val['size'], 'name' => $val['modelName'] ); @@ -624,15 +641,15 @@ class ItemModel { $result = array(); $comfort = self::getMultiDataByResourceName('ItemData::getProductComfort'); - if(empty($comfort)) { + if (empty($comfort)) { $comfort = ItemData::getProductComfort($productId); } - if(!empty($comfort['data'])) { - foreach($comfort['data'] as $val) { + if (!empty($comfort['data'])) { + foreach ($comfort['data'] as $val) { $blocks = array(); $flag = false; - for($i =1;$i<=5; $i++) { - if($i == $val['wearSense']['value']) { + for ($i = 1; $i <= 5; $i++) { + if ($i == $val['wearSense']['value']) { $flag = true; $blocks[] = array('cur' => true); } else { @@ -640,12 +657,12 @@ class ItemModel } } //存在,添加 - if($flag) { + if ($flag) { $result[] = array( 'name' => $val['caption']['caption'], - 'minDes'=> $val['caption']['low'], - 'blocks'=> $blocks, - 'maxDes'=>$val['caption']['high'] + 'minDes' => $val['caption']['low'], + 'blocks' => $blocks, + 'maxDes' => $val['caption']['high'] ); } } @@ -663,15 +680,15 @@ class ItemModel public static function getProductFavoriteData($uid, $productId, $brandId) { $result = array('product' => false, 'brand' => false); - if(!empty($uid)) { - if(!empty($productId)) { + if (!empty($uid)) { + if (!empty($productId)) { $productData = self::getMultiDataByResourceName('FavoriteData::getUidProductFav'); - if(empty($productData)) { + if (empty($productData)) { $productData = FavoriteData::getUidProductFav($uid, $productId); } $result['product'] = $productData['code'] == 200 && $productData['data'] ? true : false; } - if(!empty($brandId)) { + if (!empty($brandId)) { $brandData = FavoriteData::isFavoriteBrand($uid, $brandId); $result['brand'] = isset($brandData['code']) && $brandData['code'] == 200 ? true : false; } @@ -699,7 +716,7 @@ class ItemModel $multiResourcesUrl['ItemData::getProductModelCard'] = ItemData::getProductModelCard($productId, $isOnlyUrl); $multiResourcesUrl['ItemData::getProductModelTry'] = ItemData::getProductModelTry($skn, $isOnlyUrl); $multiResourcesUrl['BrandData::getBannerInfo'] = BrandData::getBannerInfo($brandId, $isOnlyUrl); - if(!empty($uid)) { + if (!empty($uid)) { $multiResourcesUrl['FavoriteData::getUidProductFav'] = FavoriteData::getUidProductFav($uid, $productId, $isOnlyUrl); } self::$multiResources = Yohobuy::getMulti($multiResourcesUrl, array(), false, 5, true); @@ -713,7 +730,7 @@ class ItemModel */ private static function getMultiDataByResourceName($resourceName) { - if(isset(self::$multiResources[$resourceName])) { + if (isset(self::$multiResources[$resourceName])) { return self::$multiResources[$resourceName]; } else { return false; @@ -744,21 +761,21 @@ class ItemModel $sizeInfos = array(); $attributeNames = array(); //获取属性名称 - foreach($sizeList['sizeAttributeBos'] as $size) { + foreach ($sizeList['sizeAttributeBos'] as $size) { $attributeNames[$size['id']] = $size['attributeName']; } - foreach($sizeList['sizeBoList'] as $size) { + foreach ($sizeList['sizeBoList'] as $size) { $sizeValues = array(); - foreach($size['sortAttributes'] as $sort) { - if(in_array($sort['id'], $attributeIds)) { - if(!empty($sort['sizeValue'])) { - $sizeValues[] = $attributeNames[$sort['id']].' '.$sort['sizeValue'].'cm'; + foreach ($size['sortAttributes'] as $sort) { + if (in_array($sort['id'], $attributeIds)) { + if (!empty($sort['sizeValue'])) { + $sizeValues[] = $attributeNames[$sort['id']] . ' ' . $sort['sizeValue'] . 'cm'; } } } //获取尺寸属性 - if(!empty($sizeValues)) { + if (!empty($sizeValues)) { $sizeInfos[$size['sizeName']] = implode(' / ', $sizeValues); } } @@ -791,14 +808,14 @@ class ItemModel } // 判断是否显示参考尺码 $showReference = ($boyReference && !empty($sizeInfo['sizeInfoBo']['sizeBoList'][0]['boyReferSize'])) || - ($girlReference && !empty($sizeInfo['sizeInfoBo']['sizeBoList'][0]['girlReferSize']) ); + ($girlReference && !empty($sizeInfo['sizeInfoBo']['sizeBoList'][0]['girlReferSize'])); if (!empty($sizeInfo['sizeInfoBo']['sizeAttributeBos'])) { //尺码信息头部 $size['thead'] = array(0 => array('name' => '吊牌尺码', 'id' => '')); //显示参考尺码 if ($showReference) { - $size['thead'][1] = array('name' => $referenceName,'id' => ''); + $size['thead'][1] = array('name' => $referenceName, 'id' => ''); } foreach ($sizeInfo['sizeInfoBo']['sizeAttributeBos'] as $attr) { $size['thead'][] = array('name' => empty($attr['attributeName']) ? ' ' : $attr['attributeName'], 'id' => $attr['id']); @@ -809,11 +826,11 @@ class ItemModel $sizes = array($value['sizeName']); //判断是否显示参考尺码 if ($boyReference && ($gender == 1 || $gender == 3) && $showReference) { - $sizes[] = empty($value['boyReferSize']['referenceName']) ? ' ' : $value['boyReferSize']['referenceName']; - } else if ($girlReference && ($gender == 2 || $gender == 3) && $showReference) { + $sizes[] = empty($value['boyReferSize']['referenceName']) ? ' ' : $value['boyReferSize']['referenceName']; + } else if ($girlReference && ($gender == 2 || $gender == 3) && $showReference) { $sizes[] = empty($value['girlReferSize']['referenceName']) ? ' ' : $value['girlReferSize']['referenceName']; } else { - if(isset($size['thead'][1]) && $showReference) { + if (isset($size['thead'][1]) && $showReference) { $size['thead'][1] = array(); } } @@ -825,7 +842,7 @@ class ItemModel $size['tbody'][] = $sizes; } //参考尺码为空 - if(isset($size['thead'][1]) && empty($size['thead'][1]) && $showReference) { + if (isset($size['thead'][1]) && empty($size['thead'][1]) && $showReference) { unset($size['thead'][1]); $size['thead'] = array_values($size['thead']); } @@ -834,7 +851,7 @@ class ItemModel // 测量方式 if (!empty($sizeInfo['sizeImage'])) { - $size['sizeImg'] = $sizeInfo['sizeImage']; + $size['sizeImg'] = Helpers::getUrlSafe($sizeInfo['sizeImage']); } return $size; } @@ -883,21 +900,21 @@ class ItemModel //模特信息 $reference['tbody'] = array(); $reference['thead'] = array( - array('name' => ''), array('name' => '模特', 'modelCol'=> true), - array('name' => '身高'),array('name' => '体重'), - array('name' => '三围'),array('name' => '吊牌尺码'), + array('name' => ''), array('name' => '模特', 'modelCol' => true), + array('name' => '身高'), array('name' => '体重'), + array('name' => '三围'), array('name' => '吊牌尺码'), array('name' => '试穿描述'), ); //模特数据 - foreach($sizeInfo['modelBos'] as $value) { + foreach ($sizeInfo['modelBos'] as $value) { $modelValue = array(Images::getForceSourceUrl($value['avatar']), - $value['modelName'],$value['height'],$value['weight'],$value['vitalStatistics'], - $value['fitModelBo']['fit_size'],$value['fitModelBo']['feel'] + $value['modelName'], $value['height'], $value['weight'], $value['vitalStatistics'], + $value['fitModelBo']['fit_size'], $value['fitModelBo']['feel'] ); //是否有备注 if (!empty($value['fitModelBo']['fit_remark'])) { $modelValue[] = $value['fitModelBo']['fit_remark']; - $reference['thead'][7] = array('name' => '备注','remarkCol' => true); + $reference['thead'][7] = array('name' => '备注', 'remarkCol' => true); } $reference['tbody'][] = $modelValue; } @@ -918,7 +935,8 @@ class ItemModel if (!empty($sizeInfo['washTipsBoList'])) { $material['wash'] = array(); foreach ($sizeInfo['washTipsBoList'] as $value) { - $material['wash'][] = array('name' => $value['caption'],'img' => $value['img']); + //$material['wash'][] = array('name' => $value['caption'], 'img' => $value['img']); + $material['wash'][] = array('name' => $value['caption'],'img' => Helpers::getUrlSafe($value['img'])); } } @@ -927,7 +945,7 @@ class ItemModel $material['materialDetail'] = array(); foreach ($sizeInfo['productMaterialList'] as $value) { $material['materialDetail'][] = array( - 'img' => $value['imageUrl'], + 'img' => Helpers::getUrlSafe($value['imageUrl']), 'name' => $value['caption'], 'enName' => $value['encaption'], 'text' => $value['remark'] @@ -957,12 +975,12 @@ class ItemModel $sex = '女款'; break; } - $description['basic'][] = array('key' =>'编号','value' => $sizeInfo['productDescBo']['erpProductId']); - $description['basic'][] = array('key' =>'颜色','value' => $sizeInfo['productDescBo']['colorName'], 'dColor' => true); - $description['basic'][] = array('key' =>'性别','value' => $sex); + $description['basic'][] = array('key' => '编号', 'value' => $sizeInfo['productDescBo']['erpProductId']); + $description['basic'][] = array('key' => '颜色', 'value' => $sizeInfo['productDescBo']['colorName'], 'dColor' => true); + $description['basic'][] = array('key' => '性别', 'value' => $sex); if (!empty($sizeInfo['productDescBo']['standardBos'])) { foreach ($sizeInfo['productDescBo']['standardBos'] as $value) { - $description['basic'][] = array('key' => $value['standardName'], 'value'=> $value['standardVal']); + $description['basic'][] = array('key' => $value['standardName'], 'value' => $value['standardVal']); } } $description['comfort'] = self::getProductComfort($sizeInfo['productBo']['id']); @@ -989,6 +1007,7 @@ class ItemModel $details .= strtr($sizeInfo['productIntroBo']['productIntro'], array( '<img src=' => "<img class=\"lazy\" src=\"data:image/gif;base64,R0lGODlhAQABAJEAAAAAAP///93d3f///yH5BAEAAAMALAAAAAABAAEAAAICVAEAOw==\" data-original=", '<img border="0" src=' => "<img border=\"0\" class=\"lazy\" src=\"data:image/gif;base64,R0lGODlhAQABAJEAAAAAAP///93d3f///yH5BAEAAAMALAAAAAABAAEAAAICVAEAOw==\" data-original=", + 'http://' => '//' )); } return $details; @@ -1010,8 +1029,8 @@ class ItemModel $goodsGroup = array(); foreach ($baseInfo['goodsList'] as $pos => $value) { - // 如果status为0,即skc下架时就跳过该商品$value['status'] === 0 - if (empty($value['colorImage']) ) { + // 如果status为0,即skc下架时就跳过该商品$value['status'] === 0 + if (empty($value['colorImage'])) { continue; } if (isset($value['goodsImagesList'])) { @@ -1019,52 +1038,52 @@ class ItemModel $goodsGroup = array( 'productSkc' => $value['productSkc'], 'src' => Images::getImageUrl($value['colorImage'], 40, 40), - 'title' => trim($baseInfo['productName']).' '.$value['colorName'], + 'title' => trim($baseInfo['productName']) . ' ' . $value['colorName'], 'name' => $value['colorName'], - 'focus'=> false, + 'focus' => false, 'total' => 0, 'thumbs' => array(), 'size' => array(), ); foreach ($value['goodsImagesList'] as $goods) { - if(!empty($goods['imageUrl'])) { + if (!empty($goods['imageUrl'])) { $goodsGroup['thumbs'][] = array( - 'url' => '','shower' => Images::getImageUrl($goods['imageUrl'], 420, 560), + 'url' => '', 'shower' => Images::getImageUrl($goods['imageUrl'], 420, 560), 'img' => Images::getImageUrl($goods['imageUrl'], 75, 100), ); } } //缩略图空,不显示 - if(empty($goodsGroup['thumbs'])) { + if (empty($goodsGroup['thumbs'])) { continue; } //默认第一张图片 - if($pos == 0) { + if ($pos == 0) { $defaultImage = Images::getImageUrl($value['colorImage'], 420, 560); } //商品的尺码列表 foreach ($value['goodsSizeBoList'] as $size) { - if($baseInfo['attribute'] == 3 ) { //虚拟商品,增加为一件 - $size['goodsSizeStorageNum'] = $size['goodsSizeStorageNum'] > 1 ? 1: 0; + if ($baseInfo['attribute'] == 3) { //虚拟商品,增加为一件 + $size['goodsSizeStorageNum'] = $size['goodsSizeStorageNum'] > 1 ? 1 : 0; } //如果status为0,即skc下架时就跳过该商品 if ($value['status'] === 0) { - $size['goodsSizeStorageNum'] = 0; + $size['goodsSizeStorageNum'] = 0; } $goodsGroup['size'][] = array( 'name' => $size['sizeName'], 'sku' => $size['goodsSizeSkuId'], 'num' => intval($size['goodsSizeStorageNum']), - 'goodsId'=> $size['goodsId'] + 'goodsId' => $size['goodsId'] ); //单个sku商品的总数 $goodsGroup['total'] += intval($size['goodsSizeStorageNum']); - if($goodsGroup['total']> 0 && !$chooseSkuFlag) { //默认选中该sku商品 + if ($goodsGroup['total'] > 0 && !$chooseSkuFlag) { //默认选中该sku商品 $goodsGroup['focus'] = true; $chooseSkuFlag = true;//选中sku商品 } @@ -1073,11 +1092,11 @@ class ItemModel } $skuGoods[] = $goodsGroup; } - if(!empty($skuGoods) && !$chooseSkuFlag) {//没有选中一个sku商品,默认选中第一个sku商品 + if (!empty($skuGoods) && !$chooseSkuFlag) {//没有选中一个sku商品,默认选中第一个sku商品 $skuGoods[0]['focus'] = true; } } - return array('skuGoods' => $skuGoods,'totalStorageNum' => $totalStorageNum, + return array('skuGoods' => $skuGoods, 'totalStorageNum' => $totalStorageNum, 'defaultImage' => $defaultImage); } @@ -1089,7 +1108,7 @@ class ItemModel */ private static function getBrandDataByProductBaseInfo(array &$baseInfo) { - if(empty($baseInfo['brand'])) { + if (empty($baseInfo['brand'])) { return array(); } $brandId = $baseInfo['brand']['id']; @@ -1097,38 +1116,37 @@ class ItemModel $logo = ''; $bannerInfo = array(); $result = self::getMultiDataByResourceName('BrandData::getBannerInfo'); - if(empty($result)) { + if (empty($result)) { $result = BrandData::getBannerInfo($brandId);//品牌banner } - if(!empty($baseInfo['brand']['brandIco'])) { + if (!empty($baseInfo['brand']['brandIco'])) { $logo = Images::getForceSourceUrl($baseInfo['brand']['brandIco']); } - if(isset($result['code']) && $result['code'] == 200 && !empty($result['data'])) { + if (isset($result['code']) && $result['code'] == 200 && !empty($result['data'])) { $bannerInfo = $result['data']; - if(!empty($bannerInfo['bannerUrl'])) { + if (!empty($bannerInfo['bannerUrl'])) { $bgImg = Images::getForceSourceUrl($bannerInfo['bannerUrl']); } } //banner的logo - if(!empty($bannerInfo['logo'])) - { + if (!empty($bannerInfo['logo'])) { $logo = Images::getForceSourceUrl($bannerInfo['logo']); } $homeUrl = 'javascript:void(0)'; - if(!empty($baseInfo['brand']['brandDomain'])){ + if (!empty($baseInfo['brand']['brandDomain'])) { $homeUrl = Helpers::url('', array(), $baseInfo['brand']['brandDomain']); } //导航的品牌banner return array( 'brandId' => $baseInfo['brand']['id'], - 'bgColor' => !empty($bannerInfo['colorValue']) ? $bannerInfo['colorValue']: '#000000', - 'bgImg'=> $bgImg, - 'logo'=> $logo, + 'bgColor' => !empty($bannerInfo['colorValue']) ? $bannerInfo['colorValue'] : '#000000', + 'bgImg' => $bgImg, + 'logo' => $logo, 'alt' => $baseInfo['brand']['brandName'], 'brandName' => $baseInfo['brand']['brandName'], 'brandDomain' => $baseInfo['brand']['brandDomain'], - 'homeUrl'=> $homeUrl, - 'isCollect'=> false + 'homeUrl' => $homeUrl, + 'isCollect' => false ); } @@ -1146,7 +1164,7 @@ class ItemModel if (!empty($baseInfo['productPriceBo']['vipPrices'])) { $build = array(); //不是普通会员 - if($vipLevel > 0) { + if ($vipLevel > 0) { foreach ($baseInfo['productPriceBo']['vipPrices'] as $value) { $build['level'] = $value['vipLevel']; $build['price'] = $value['vipPrice']; @@ -1157,10 +1175,10 @@ class ItemModel } $vipData['unLogin'] = false; //登录状态 - if(empty($uid)) { + if (empty($uid)) { $vipData['unLogin'] = Helpers::url('/signin.html', array()); } - if(empty($vipLevel) && !empty($uid)) { + if (empty($vipLevel) && !empty($uid)) { $vipData['normalUser'] = true; } //查看vip进度 @@ -1175,23 +1193,14 @@ class ItemModel * @param array $baseInfo * @return array */ - private static function getActivityDataByProductBaseInfo(array &$baseInfo) + private static function getActivityDataByProductBaseInfo(array &$activityData) { $activity = array(); - //促销活动banner - $activityBanner = self::getProductActivityBanner($baseInfo['id']); - - if(!empty($activityBanner)) { - $activity[] = $activityBanner; - } - // 促销信息活动 - if (isset($baseInfo['promotionBoList'])) { - $build = array(); - foreach ($baseInfo['promotionBoList'] as $value) { - $build['type'] = $value['promotionType']; - $build['des'] = $value['promotionTitle']; - $activity[] = $build; - } + $build = array(); + foreach ($activityData as $value) { + $build['type'] = $value['promotionType']; + $build['des'] = $value['promotionTitle']; + $activity[] = $build; } return $activity; } @@ -1248,23 +1257,24 @@ class ItemModel { $modelTry = array(); $result = self::getMultiDataByResourceName('ItemData::getProductModelTry'); - if(empty($result)) { + if (empty($result)) { $result = ItemData::getProductModelTry($productSkn); } - if(isset($result['code']) && $result['code'] == 200 && !empty($result['data'])) { + if (isset($result['code']) && $result['code'] == 200 && !empty($result['data'])) { //先显示模特信息 - if(isset($result['data']['modelTryBoList']) && !empty($result['data']['modelTryBoList'])) { - $modelTry['thead'] = array('模特','身高','体重','三围','试穿尺码','试穿描述'); + if (isset($result['data']['modelTryBoList']) && !empty($result['data']['modelTryBoList'])) { + $modelTry['thead'] = array('模特', '身高', '体重', '三围', '试穿尺码', '试穿描述'); $modelTry['tbody'] = array(); - foreach($result['data']['modelTryBoList'] as $val) { - if(isset($val['modelBo']) && isset($val['sizeBo']) && - isset($val['modelBo']['modelName']) && isset($val['sizeBo']['sizeName'])) { + foreach ($result['data']['modelTryBoList'] as $val) { + if (isset($val['modelBo']) && isset($val['sizeBo']) && + isset($val['modelBo']['modelName']) && isset($val['sizeBo']['sizeName']) + ) { $modelTry['tbody'][] = array($val['modelBo']['modelName'], - $val['modelBo']['height'],$val['modelBo']['weight'],$val['modelBo']['vitalStatistics'], + $val['modelBo']['height'], $val['modelBo']['weight'], $val['modelBo']['vitalStatistics'], $val['sizeBo']['sizeName'], $val['tryDesc']); } } - } else if(isset($result['data']['modelTryImgBoList']) && !empty($result['data']['modelTryImgBoList'])) {//后显示模特图 + } else if (isset($result['data']['modelTryImgBoList']) && !empty($result['data']['modelTryImgBoList'])) {//后显示模特图 $tryImg = current($result['data']['modelTryImgBoList']); $modelTry['frImg'] = Images::getForceSourceUrl($tryImg['tryImg']); } @@ -1290,10 +1300,10 @@ class ItemModel //buyNow //是否立即购买 $result = array('getLimitedCode' => false, 'hasLimitedCode' => false, 'limitedCodeSoldOut' => false, 'openSoon' => false, 'dis' => false, - 'buyNow' => false, 'soldOut'=> false, 'getLimitedCodeDis'=> false); + 'buyNow' => false, 'soldOut' => false, 'getLimitedCodeDis' => false); // 显示获取限购码按钮 $result['getLimitedCode'] = true; - switch($showStatus) { + switch ($showStatus) { case 1: // 开售前/后,立即分享获得限购码(用户未领取限购码) if ($isBeginSale) { // 开售后 $result['buyNow'] = true; @@ -1318,7 +1328,7 @@ class ItemModel $result['buyNow'] = true; $result['dis'] = false; $result['hasLimitedCode'] = true; - if(!empty($uid)) {//限购码失效 + if (!empty($uid)) {//限购码失效 $result['getLimitedCodeDis'] = true; } break; @@ -1332,7 +1342,7 @@ class ItemModel case 6: // 开售前,即将开售(用户已领取限购码) $result['openSoon'] = true; $result['hasLimitedCode'] = true; - if(!empty($uid)) {//限购码失效 + if (!empty($uid)) {//限购码失效 $result['getLimitedCodeDis'] = true; } break; @@ -1340,7 +1350,7 @@ class ItemModel $result['buyNow'] = true; $result['dis'] = true; $result['hasLimitedCode'] = true; - if(!empty($uid)) {//限购码失效 + if (!empty($uid)) {//限购码失效 $result['getLimitedCodeDis'] = true; } default: @@ -1375,4 +1385,4 @@ class ItemModel return $consultComment; } -} +} \ No newline at end of file diff --git a/yohobuy/www.yohobuy.com/application/models/Product/Search.php b/yohobuy/www.yohobuy.com/application/models/Product/Search.php index 4598f8c..681b275 100644 --- a/yohobuy/www.yohobuy.com/application/models/Product/Search.php +++ b/yohobuy/www.yohobuy.com/application/models/Product/Search.php @@ -367,7 +367,7 @@ class SearchModel 'searchListPage' => true, 'search' => array( 'keyWord' => $keyword, - 'searchActionUrl' => 'http://search.yohobuy.com', + 'searchActionUrl' => '//search.yohobuy.com', 'latestWalk' => 7, 'pathNav' => Array( '0'=>array( diff --git a/yohobuy/www.yohobuy.com/application/models/Product/Shop.php b/yohobuy/www.yohobuy.com/application/models/Product/Shop.php index c48f880..926cd6f 100644 --- a/yohobuy/www.yohobuy.com/application/models/Product/Shop.php +++ b/yohobuy/www.yohobuy.com/application/models/Product/Shop.php @@ -342,7 +342,7 @@ class ShopModel $temp = array( 'img' => self::imageView2($val['src'], 300, 175), - 'url' => $val['url'], + 'url' => Helpers::getUrlSafe($val['url']), ); if ($key === 0) { @@ -374,7 +374,7 @@ class ShopModel foreach ($resource['data'] as $val) { $result[] = array( 'img' => self::imageView2($val['src'], 660, 360), - 'url' => $val['url'], + 'url' => Helpers::getUrlSafe($val['url']), ); } } @@ -397,9 +397,15 @@ class ShopModel Helpers::substrEllipsis($resource['enName'], 5) : Helpers::substrEllipsis($resource['enName'], 10), 'name' => Helpers::isChinese($resource['name']) ? Helpers::substrEllipsis($resource['name'], 5) : Helpers::substrEllipsis($resource['name'], 6), +<<<<<<< HEAD 'img' => self::imageView2($resource['src'], 50, 50), 'title' => $resource['title'], 'url' => $resource['url'], +======= + 'img'=> self::imageView2($resource['src'], 50, 50), + 'title'=> $resource['title'], + 'url'=> Helpers::getUrlSafe($resource['url']), +>>>>>>> master ); } if (empty($result)) { @@ -423,9 +429,9 @@ class ShopModel foreach ($data['resource_data'] as $resource) { $result[] = array( - 'img' => self::imageView2($resource['src'], 160, 240), - 'title' => $resource['title'], - 'url' => $resource['url'], + 'img'=> self::imageView2($resource['src'], 160, 240), + 'title'=> $resource['title'], + 'url'=> Helpers::getUrlSafe($resource['url']), ); } if (empty($result)) { @@ -453,8 +459,13 @@ class ShopModel foreach ($resource['data'] as $val) { $result[] = array( +<<<<<<< HEAD 'img' => self::imageView2($val['src'], 160, 240), 'url' => $val['url'], +======= + 'img'=> self::imageView2($val['src'], 160, 240), + 'url'=> Helpers::getUrlSafe($val['url']), +>>>>>>> master ); } } @@ -523,7 +534,7 @@ class ShopModel } $result['hot'][] = array( 'name' => $val['name'], - 'href' => 'http://' . trim($val['url'], 'http://'), + 'href' => Helpers::getUrlSafe($val['url']), ); } } @@ -535,7 +546,7 @@ class ShopModel } $result['new'][] = array( 'name' => $val['name'], - 'href' => 'http://' . trim($val['url'], 'http://'), + 'href' => Helpers::getUrlSafe($val['url']), ); } } @@ -678,7 +689,7 @@ class ShopModel { $src .= strstr($src, '?') ? '&' : '?'; - return "{$src}imageView2/1/w/{$width}/h/{$heigh}"; + return Helpers::getUrlSafe("{$src}imageView2/1/w/{$width}/h/{$heigh}"); } /** diff --git a/yohobuy/www.yohobuy.com/application/models/Shopping/Cart.php b/yohobuy/www.yohobuy.com/application/models/Shopping/Cart.php index 39417c4..5369450 100644 --- a/yohobuy/www.yohobuy.com/application/models/Shopping/Cart.php +++ b/yohobuy/www.yohobuy.com/application/models/Shopping/Cart.php @@ -12,6 +12,7 @@ use WebPlugin\Images; use Configs\WebCacheConfig; use Hood\Core\Security\AuthCode; use WebPlugin\UdpLog; +use WebPlugin\Encryption; use Configs\ChannelConfig; /** @@ -221,11 +222,17 @@ class CartModel { $result = array('code' => 400, 'message' => self::ERROR_400_MESSAGE); + if (empty($productSku)) { + return $result; + } + $addCart = CartData::addToCart($productSku, $buyNumber, $goodsType, $isEdit, $promotionId, $uid, $shoppingKey); if ($addCart && isset($addCart['code'])) { $result = $addCart; - } else { - UdpLog::info('【购物车】校验参数传递auth', 'productSku:' . $productSku . 'buyNumber:' . $buyNumber . 'goodsType:' . $goodsType, 'isEdit:' . $isEdit . 'promotionId:' . $promotionId . 'uid:' . $uid . 'shoppingKey:' . $shoppingKey); + } + + if (empty($addCart) || (isset($addCart['code']) && $addCart['code'] !== 200) ) { + UdpLog::info('【购物车】校验参数传递auth','productSku:'.$productSku.'buyNumber:'.$buyNumber.'goodsType:'.$goodsType,'isEdit:'.$isEdit.'promotionId:'.$promotionId.'uid:'.$uid.'shoppingKey:'.$shoppingKey); } return $result; @@ -394,7 +401,7 @@ class CartModel $build = array(); $build['id'] = $value['id']; $build['skn'] = $value['product_skn']; - $build['href'] = $value['url']; + $build['href'] = Helpers::getUrlSafe($value['url']); $build['title'] = $value['product_name']; $build['img'] = Helpers::getImageUrl($value['default_pic'], 100, 100); $build['alt'] = $value['product_name']; @@ -760,36 +767,36 @@ class CartModel // 支付支持的平台 $result['supportLine'] = array( - array('src' => 'http://static.yohobuy.com/images/pay/icon/zhifubao.png'), - array('src' => 'http://static.yohobuy.com/images/pay/icon/zaixianzhifu.png'), - array('src' => 'http://static.yohobuy.com/images/pay/icon/weixinzhifu.png'), - array('src' => 'http://static.yohobuy.com/images/pay/icon/wangyinzaixian.png'), - array('src' => 'http://static.yohobuy.com/images/pay/icon/caifutong.png'), - array('src' => 'http://static.yohobuy.com/images/pay/icon/shengfutong.png'), - array('src' => 'http://static.yohobuy.com/images/pay/icon/tonglianzhifu.png'), + array('src' => '//static.yohobuy.com/images/pay/icon/zhifubao.png'), + array('src' => '//static.yohobuy.com/images/pay/icon/zaixianzhifu.png'), + array('src' => '//static.yohobuy.com/images/pay/icon/weixinzhifu.png'), + array('src' => '//static.yohobuy.com/images/pay/icon/wangyinzaixian.png'), + array('src' => '//static.yohobuy.com/images/pay/icon/caifutong.png'), + array('src' => '//static.yohobuy.com/images/pay/icon/shengfutong.png'), + array('src' => '//static.yohobuy.com/images/pay/icon/tonglianzhifu.png'), ); // 支付支持的银行 $result['supportBank'] = array( - array('src' => 'http://static.yohobuy.com/images/bankico/BOC.gif'), - array('src' => 'http://static.yohobuy.com/images/bankico/ICBC.gif'), - array('src' => 'http://static.yohobuy.com/images/bankico/CMB.gif'), - array('src' => 'http://static.yohobuy.com/images/bankico/CCB.gif'), - array('src' => 'http://static.yohobuy.com/images/bankico/ABC.gif'), - array('src' => 'http://static.yohobuy.com/images/bankico/SPDB.gif'), - array('src' => 'http://static.yohobuy.com/images/bankico/CIB.gif'), - array('src' => 'http://static.yohobuy.com/images/bankico/GDB.gif'), - array('src' => 'http://static.yohobuy.com/images/bankico/SDB.gif'), - array('src' => 'http://static.yohobuy.com/images/bankico/CMBC.gif'), - array('src' => 'http://static.yohobuy.com/images/bankico/COMM.gif'), - array('src' => 'http://static.yohobuy.com/images/bankico/CITIC.gif'), - array('src' => 'http://static.yohobuy.com/images/bankico/HZCBB2C.gif'), - array('src' => 'http://static.yohobuy.com/images/bankico/CEB.gif'), - array('src' => 'http://static.yohobuy.com/images/bankico/SHBANK.gif'), - array('src' => 'http://static.yohobuy.com/images/bankico/NBBANK.gif'), - array('src' => 'http://static.yohobuy.com/images/bankico/SZPAB.gif'), - array('src' => 'http://static.yohobuy.com/images/bankico/BJRCB.gif'), - array('src' => 'http://static.yohobuy.com/images/bankico/FDB.gif'), - array('src' => 'http://static.yohobuy.com/images/bankico/PSBC.gif'), + array('src' => '//static.yohobuy.com/images/bankico/BOC.gif'), + array('src' => '//static.yohobuy.com/images/bankico/ICBC.gif'), + array('src' => '//static.yohobuy.com/images/bankico/CMB.gif'), + array('src' => '//static.yohobuy.com/images/bankico/CCB.gif'), + array('src' => '//static.yohobuy.com/images/bankico/ABC.gif'), + array('src' => '//static.yohobuy.com/images/bankico/SPDB.gif'), + array('src' => '//static.yohobuy.com/images/bankico/CIB.gif'), + array('src' => '//static.yohobuy.com/images/bankico/GDB.gif'), + array('src' => '//static.yohobuy.com/images/bankico/SDB.gif'), + array('src' => '//static.yohobuy.com/images/bankico/CMBC.gif'), + array('src' => '//static.yohobuy.com/images/bankico/COMM.gif'), + array('src' => '//static.yohobuy.com/images/bankico/CITIC.gif'), + array('src' => '//static.yohobuy.com/images/bankico/HZCBB2C.gif'), + array('src' => '//static.yohobuy.com/images/bankico/CEB.gif'), + array('src' => '//static.yohobuy.com/images/bankico/SHBANK.gif'), + array('src' => '//static.yohobuy.com/images/bankico/NBBANK.gif'), + array('src' => '//static.yohobuy.com/images/bankico/SZPAB.gif'), + array('src' => '//static.yohobuy.com/images/bankico/BJRCB.gif'), + array('src' => '//static.yohobuy.com/images/bankico/FDB.gif'), + array('src' => '//static.yohobuy.com/images/bankico/PSBC.gif'), ); /* 快递方式 */ @@ -1088,7 +1095,7 @@ class CartModel $mobile = substr($mobile, 0, 3) . '****' . substr($mobile, 7); $build = array(); - $build['id'] = $value['address_id']; + $build['id'] = Encryption::encrypt($value['address_id']); $build['user'] = $value['consignee']; $build['address'] = $value['area'] . $value['address'] . ' ' . $value['zip_code'] . ' ' . $mobile . ' ' . $value['phone']; $build['checked'] = $value['is_default'] === 'Y'; @@ -1204,6 +1211,10 @@ class CartModel // 处理返回结果 if (isset($address['code']) && $address['code'] == 200) { $result = $address; + if ($result['data']['address_id']) { + $result['data']['address_id'] = Encryption::encrypt($result['data']['address_id']); + $result['data']['id'] = Encryption::encrypt($result['data']['id']); + } } } @@ -1429,45 +1440,78 @@ class CartModel $cartType = array('advance_cart_data', 'ordinary_cart_data'); $cartData = CartData::cartData($uid, $shoppingKey); foreach ($cartType as $dataKey) { - if (!isset($cartData['data'][$dataKey]['goods_list']) || empty($cartData['data'][$dataKey]['goods_list'])) { - continue; - } //购物车商品 - foreach ($cartData['data'][$dataKey]['goods_list'] as $val) { - $goods['product_url'] = Helpers::getUrlBySkc($val['product_id'], $val['goods_id'], $val['cn_alphabet']); - $goods['is_advance'] = $val['is_advance']; - $goods['default_img'] = Helpers::getImageUrl($val['goods_images'], 46, 62); - $goods['product_name'] = $val['product_name']; - $goods['color_name'] = $val['color_name']; - $goods['size_name'] = $val['size_name']; - $goods['show_price'] = $val['real_price']; - $goods['buy_number'] = $val['buy_number']; - $goods['goods_incart_id'] = $val['shopping_cart_id']; - $goods['product_sku'] = $val['product_sku']; - $goods['promotion_id'] = $val['promotion_id']; - $result['main_goods'][] = $goods; - } - if (empty($cartData['data'][$dataKey]['promotion_info'])) { - continue; + if (isset($cartData['data'][$dataKey]['goods_list']) && !empty($cartData['data'][$dataKey]['goods_list'])) { + foreach ($cartData['data'][$dataKey]['goods_list'] as $val) { + $goods['product_url'] = Helpers::getUrlBySkc($val['product_id'], $val['goods_id'], $val['cn_alphabet']); + $goods['is_advance'] = $val['is_advance']; + $goods['default_img'] = Helpers::getImageUrl($val['goods_images'], 46, 62); + $goods['product_name'] = $val['product_name']; + $goods['color_name'] = $val['color_name']; + $goods['size_name'] = $val['size_name']; + $goods['show_price'] = $val['real_price']; + $goods['buy_number'] = $val['buy_number']; + $goods['goods_incart_id'] = $val['shopping_cart_id']; + $goods['product_sku'] = $val['product_sku']; + $goods['promotion_id'] = $val['promotion_id']; + $result['main_goods'][] = $goods; + } } - //活动 - foreach ($cartData['data'][$dataKey]['promotion_info'] as $key => $val) { - //包邮 - if ($val['promotion_type'] == 'FreeShippingCost') { - preg_match('/\d+/', $val['promotion_title'], $arr); - $result['fit_free_shipping'] = $arr[0]; - continue; + //下架购物车商品 + if (isset($cartData['data'][$dataKey]['off_shelves_goods_list']) && !empty($cartData['data'][$dataKey]['off_shelves_goods_list'])) { + foreach ($cartData['data'][$dataKey]['off_shelves_goods_list'] as $val) { + $goods['product_url'] = Helpers::getUrlBySkc($val['product_id'], $val['goods_id'], $val['cn_alphabet']); + $goods['is_advance'] = $val['is_advance']; + $goods['default_img'] = Helpers::getImageUrl($val['goods_images'], 46, 62); + $goods['product_name'] = $val['product_name']; + $goods['color_name'] = $val['color_name']; + $goods['size_name'] = $val['size_name']; + $goods['show_price'] = $val['real_price']; + $goods['buy_number'] = $val['buy_number']; + $goods['goods_incart_id'] = $val['shopping_cart_id']; + $goods['product_sku'] = $val['product_sku']; + $goods['promotion_id'] = $val['promotion_id']; + $result['main_goods'][] = $goods; + } + } + //售罄购物车商品 + if (isset($cartData['data'][$dataKey]['sold_out_goods_list']) && !empty($cartData['data'][$dataKey]['sold_out_goods_list'])) { + foreach ($cartData['data'][$dataKey]['sold_out_goods_list'] as $val) { + $goods['product_url'] = Helpers::getUrlBySkc($val['product_id'], $val['goods_id'], $val['cn_alphabet']); + $goods['is_advance'] = $val['is_advance']; + $goods['default_img'] = Helpers::getImageUrl($val['goods_images'], 46, 62); + $goods['product_name'] = $val['product_name']; + $goods['color_name'] = $val['color_name']; + $goods['size_name'] = $val['size_name']; + $goods['show_price'] = $val['real_price']; + $goods['buy_number'] = $val['buy_number']; + $goods['goods_incart_id'] = $val['shopping_cart_id']; + $goods['product_sku'] = $val['product_sku']; + $goods['promotion_id'] = $val['promotion_id']; + $result['main_goods'][] = $goods; } - //打折 - if (!isset($result['first_promotions'])) { - $result['has_promotion'] = true; - $result['has_first_promotion'] = true; - $result['first_promotions']['promotion_id'] = $val['promotion_id']; - $result['first_promotions']['promotion_title'] = $val['promotion_title']; - } else { - $result['has_other_promotion'] = true; - $result['other_promotions'][$key]['promotion_id'] = $val['promotion_id']; - $result['other_promotions'][$key]['promotion_title'] = $val['promotion_title']; + } + + //活动 + if (isset($cartData['data'][$dataKey]['promotion_info']) && !empty($cartData['data'][$dataKey]['promotion_info'])) { + foreach ($cartData['data'][$dataKey]['promotion_info'] as $key => $val) { + //包邮 + if ($val['promotion_type'] == 'FreeShippingCost') { + preg_match('/\d+/', $val['promotion_title'], $arr); + $result['fit_free_shipping'] = $arr[0]; + continue; + } + //打折 + if (!isset($result['first_promotions'])) { + $result['has_promotion'] = true; + $result['has_first_promotion'] = true; + $result['first_promotions']['promotion_id'] = $val['promotion_id']; + $result['first_promotions']['promotion_title'] = $val['promotion_title']; + } else { + $result['has_other_promotion'] = true; + $result['other_promotions'][$key]['promotion_id'] = $val['promotion_id']; + $result['other_promotions'][$key]['promotion_title'] = $val['promotion_title']; + } } } } diff --git a/yohobuy/www.yohobuy.com/application/models/Shopping/Pay.php b/yohobuy/www.yohobuy.com/application/models/Shopping/Pay.php index 0f85fca..056393e 100644 --- a/yohobuy/www.yohobuy.com/application/models/Shopping/Pay.php +++ b/yohobuy/www.yohobuy.com/application/models/Shopping/Pay.php @@ -411,7 +411,7 @@ class PayModel 'tellphoneNum' => $orderData['mobile'], 'tradeName' => $firstGoods['product_name'], 'choosePayUrl' => Helpers::url('/shopping/pay', array('order_code' => $orderData['order_code'])), - 'qrcodeUrl' => $payResult['code_url'] // 'http://paysdk.weixin.qq.com/example/qrcode.php?data=' . $result['code_url'] + 'qrcodeUrl' => $payResult['code_url'] // '//paysdk.weixin.qq.com/example/qrcode.php?data=' . $result['code_url'] ); } while (false); diff --git a/yohobuy/www.yohobuy.com/application/models/Shopping/Payment.php b/yohobuy/www.yohobuy.com/application/models/Shopping/Payment.php index 70713bb..cffc6c4 100644 --- a/yohobuy/www.yohobuy.com/application/models/Shopping/Payment.php +++ b/yohobuy/www.yohobuy.com/application/models/Shopping/Payment.php @@ -364,7 +364,7 @@ class PaymentModel 'tellphoneNum' => $orderData['mobile'], 'tradeName' => $firstGoods['product_name'], 'choosePayUrl' => Helpers::url('/shopping/pay', array('order_code' => $orderData['order_code'])), - 'qrcodeUrl' => isset($payResult['code_url']) ? $payResult['code_url'] : '' // 'http://paysdk.weixin.qq.com/example/qrcode.php?data=' . $result['code_url'] + 'qrcodeUrl' => isset($payResult['code_url']) ? $payResult['code_url'] : '' // '//paysdk.weixin.qq.com/example/qrcode.php?data=' . $result['code_url'] ); } while (false); diff --git a/yohobuy/www.yohobuy.com/application/modules/Cart/controllers/Index.php b/yohobuy/www.yohobuy.com/application/modules/Cart/controllers/Index.php index 484cebf..e80f807 100644 --- a/yohobuy/www.yohobuy.com/application/modules/Cart/controllers/Index.php +++ b/yohobuy/www.yohobuy.com/application/modules/Cart/controllers/Index.php @@ -4,6 +4,7 @@ use Action\WebAction; use WebPlugin\Helpers; use Shopping\CartModel; use WebPlugin\UdpLog; +use WebPlugin\Encryption; /** * 购物车相关的控制器 @@ -292,6 +293,8 @@ class IndexController extends WebAction if ($this->isAjax()) { $uid = $this->getUid(false); $addressId = $this->post('id'); + //解密 + $addressId = intval(Encryption::decrypt($addressId)); $result = CartModel::setDefaultAddress($uid, $addressId); } @@ -318,7 +321,11 @@ class IndexController extends WebAction if ($this->isAjax()) { $uid = $this->getUid(false); - $id = $this->post('id', null); + $id = $this->post('id', null); //TODO + if ($id) { + //解密 + $id = intval(Encryption::decrypt($id)); + } $address = $this->post('address', ''); $areaCode = $this->post('areaCode', ''); $consignee = $this->post('consignee', ''); @@ -350,7 +357,8 @@ class IndexController extends WebAction if ($this->isAjax()) { $uid = $this->getUid(false); - $addressId = $this->post('id'); + $addressId = $this->post('id');// TODO + $addressId = intval(Encryption::decrypt($addressId)); $result = CartModel::delAddress($uid, $addressId); } @@ -458,7 +466,9 @@ class IndexController extends WebAction break; } - $addressId = $this->post('addressId', null); + $addressId = $this->post('addressId', null);//TODO + //解密 + $addressId = intval(Encryption::decrypt($addressId)); $cartType = $this->post('cartType', 'ordinary'); // 默认普通购物车 $deliveryTimeId = $this->post('deliveryTimeId', 1); // 默认只工作日配送 $deliveryWayId = $this->post('deliveryWayId', 1); // 默认普通快递 diff --git a/yohobuy/www.yohobuy.com/application/modules/Home/controllers/Email.php b/yohobuy/www.yohobuy.com/application/modules/Home/controllers/Email.php index f2fc157..c7eb795 100644 --- a/yohobuy/www.yohobuy.com/application/modules/Home/controllers/Email.php +++ b/yohobuy/www.yohobuy.com/application/modules/Home/controllers/Email.php @@ -56,7 +56,7 @@ class EmailController extends WebAction 'returnInfo' => false, 'sendEmail' => array( 'emailInfo' => '92****65@qq.com', - 'emailUrl' => 'http://mail.qq.com' + 'emailUrl' => '//mail.qq.com' ), 'formInfo' => array( 'ischeckEmail' => $checkStatus['ischeckEmail'], @@ -224,7 +224,7 @@ class EmailController extends WebAction 'returnInfo' => true, 'sendEmail' => array( 'emailInfo' => '92****65@qq.com', - 'emailUrl' => 'http://mail.qq.com' + 'emailUrl' => '//mail.qq.com' ) ); @@ -273,7 +273,7 @@ class EmailController extends WebAction 'returnInfo' => true, 'sendEmail' => array( 'emailInfo' => '92****65@qq.com', - 'emailUrl' => 'http://mail.qq.com' + 'emailUrl' => '//mail.qq.com' ) ); diff --git a/yohobuy/www.yohobuy.com/application/modules/Home/controllers/Exchange.php b/yohobuy/www.yohobuy.com/application/modules/Home/controllers/Exchange.php index 0bdbfcf..bb43435 100644 --- a/yohobuy/www.yohobuy.com/application/modules/Home/controllers/Exchange.php +++ b/yohobuy/www.yohobuy.com/application/modules/Home/controllers/Exchange.php @@ -19,14 +19,14 @@ class exchangeController extends WebAction{ 'name' => 'YOHO!BUY 有货首页' ), array( - 'href' => 'www.yohobuy.com/home', + 'href' => '//www.yohobuy.com/home', 'name' => '个人中心' ), array( 'name' => '订单中心' ) ), - 'userThumb' => 'http://img10.static.yhbimg.com/headimg/2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100', + 'userThumb' => '//img10.static.yhbimg.com/headimg/2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100', 'homeNav' => array( array( 'title' => '服务中心', diff --git a/yohobuy/www.yohobuy.com/application/modules/Home/controllers/Orders.php b/yohobuy/www.yohobuy.com/application/modules/Home/controllers/Orders.php index bcfa89d..e3c22c2 100644 --- a/yohobuy/www.yohobuy.com/application/modules/Home/controllers/Orders.php +++ b/yohobuy/www.yohobuy.com/application/modules/Home/controllers/Orders.php @@ -94,7 +94,6 @@ class OrdersController extends WebAction $orderCode = $this->get('order_code', ''); } $detail = OrderModel::getOrderDetail($uid, $orderCode); -// print_r($detail); //取消订单原因列表 $resons = OrderData::closeReasons(); $cancelReason = isset($resons['data']) ? $resons['data'] : ''; @@ -309,4 +308,64 @@ class OrdersController extends WebAction $this->echoJson($result); } + /** + * 还原订单 + */ + public function restoreOrderAction() + { + $data = array('code' => 400, 'message' => '', 'data' => ''); + + do { + /* 判断是不是AJAX请求 */ + if (!$this->isAjax()) { + break; + } + $uid = $this->auditJumpLogin(); + $orderCode = trim($this->post('orderCode', '')); +// $data = OrderData::confirmUserOrder($uid, $orderCode); + $data = array('code' => 400, 'message' => '订单还原成功', 'data' => ''); + if (!isset($data['code'])) { + break; + } + } + while (false); + + $this->echoJson($data); + } + + /* + * 我的订单-删除订单 + */ + + public function delOrderAction() + { + + $result = array('code' => 400, 'message' => '删除失败', 'data' => ''); + + do { + /* 判断是不是AJAX请求 */ + if (!$this->isAjax()) { + break; + } + + //传入orderCode删除订单 + $orderCode = $this->post('orderCode',''); + $gender = Helpers::getGenderByCookie(); + $channel = Helpers::getChannelByCookie(); + $uid = $this->getUid(true); + if (!$orderCode || !$uid) { + $result = array('code' => 400, 'message' => '缺失必填项', 'data' => ''); + break; + } + //调用接口删除订单,并返回订单删除状态 + $result = OrderData::deleteOrderData($orderCode, $uid, $gender, $channel); + if (!isset($result['code'])) { + break; + } + } + while (false); + + $this->echoJson($result); + } + } diff --git a/yohobuy/www.yohobuy.com/application/modules/Home/controllers/Refund.php b/yohobuy/www.yohobuy.com/application/modules/Home/controllers/Refund.php index 2234072..45f9baf 100644 --- a/yohobuy/www.yohobuy.com/application/modules/Home/controllers/Refund.php +++ b/yohobuy/www.yohobuy.com/application/modules/Home/controllers/Refund.php @@ -23,18 +23,18 @@ class RefundController extends WebAction $data = array( 'path' => array( array( - 'href' => 'www.yohobuy.com', + 'href' => '//www.yohobuy.com', 'name' => 'YOHO!BUY 有货首页' ), array( - 'href' => 'www.yohobuy.com/home', + 'href' => '//www.yohobuy.com/home', 'name' => '个人中心' ), array( 'name' => '订单中心' ) ), - 'userThumb' => 'http://img10.static.yhbimg.com/headimg/2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100', + 'userThumb' => '//img10.static.yhbimg.com/headimg/2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100', 'homeNav' => array( array( 'title' => '服务中心', @@ -83,18 +83,18 @@ class RefundController extends WebAction $data = array( 'path' => array( array( - 'href' => 'www.yohobuy.com', + 'href' => '//www.yohobuy.com', 'name' => 'YOHO!BUY 有货首页' ), array( - 'href' => 'www.yohobuy.com/home', + 'href' => '//www.yohobuy.com/home', 'name' => '个人中心' ), array( 'name' => '订单中心' ) ), - 'userThumb' => 'http://img10.static.yhbimg.com/headimg/2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100', + 'userThumb' => '//img10.static.yhbimg.com/headimg/2013/11/28/09/01cae078abe5fe320c88cdf4c220212688.gif?imageView/2/w/100/h/100', 'homeNav' => array( array( 'title' => '交易管理', diff --git a/yohobuy/www.yohobuy.com/application/modules/Home/controllers/Returns.php b/yohobuy/www.yohobuy.com/application/modules/Home/controllers/Returns.php old mode 100644 new mode 100755 index ee07d58..6926dc5 --- a/yohobuy/www.yohobuy.com/application/modules/Home/controllers/Returns.php +++ b/yohobuy/www.yohobuy.com/application/modules/Home/controllers/Returns.php @@ -2,6 +2,7 @@ use Action\WebAction; use Home\ReturnsModel; use WebPlugin\Helpers; +use LibModels\Web\Home\ReturnsData; class ReturnsController extends WebAction { @@ -53,7 +54,7 @@ class ReturnsController extends WebAction { /* 判断是不是AJAX请求 */ if (!$this->isAjax()) { - return; + return; } $areaCode = $this->post('areaCode'); //获取必要参数 @@ -82,14 +83,14 @@ class ReturnsController extends WebAction $uid = $this->getUid(); $goods = $this->post('goods'); $payment = $this->post('payment'); - if (empty($orderCode) || $orderCode<1 || empty($goods) || empty($payment)) { - $this->echoJson(array('code'=>203,'message'=>'非法提交')); + if (empty($orderCode) || $orderCode < 1 || empty($goods) || empty($payment)) { + $this->echoJson(array('code' => 203, 'message' => '非法提交')); } //调用模型提交退货申请 $res = ReturnsModel::saveRefund($orderCode, $uid, $goods, $payment); //退货申请成功,返回前端相应格式,并返回退货成功页跳转地址 if (isset($res['code']) && $res['code'] == 200) { - $successUrl = Helpers::url('/home/returns/refundSuccess', array('orderCode'=>$orderCode)); + $successUrl = Helpers::url('/home/returns/refundSuccess', array('orderCode' => $orderCode)); $res['data']['refer'] = $successUrl; } $this->echoJson($res); @@ -117,8 +118,8 @@ class ReturnsController extends WebAction $deliveryType = $this->post('deliveryType'); //判断参数合法性 - if (empty($orderCode) || $orderCode<1 || empty($goods) || empty($deliveryType) || empty($consigneeName) || empty($areaCode) || empty($address) || empty($mobile)) { - $this->echoJson(array('code'=>203,'message'=>'非法提交')); + if (empty($orderCode) || $orderCode < 1 || empty($goods) || empty($deliveryType) || empty($consigneeName) || empty($areaCode) || empty($address) || empty($mobile)) { + $this->echoJson(array('code' => 203, 'message' => '非法提交')); return; } //调用模型提交换货申请 @@ -126,7 +127,7 @@ class ReturnsController extends WebAction //换货成功,返回前端相应格式,并返回换货成功页跳转链接 if (isset($res['code']) && $res['code'] == '200') { - $successUrl = Helpers::url('/home/returns/exchangeSuccess', array('orderCode'=>$orderCode)); + $successUrl = Helpers::url('/home/returns/exchangeSuccess', array('orderCode' => $orderCode)); $res['data']['refer'] = $successUrl; } @@ -204,6 +205,7 @@ class ReturnsController extends WebAction //头部导航 $channel = Helpers::getChannelNameByCookie(); $this->setWebNavHeader($channel); + $this->_view->display('returns-detail', array('meReturnsPage' => true, 'returns' => $data)); } @@ -224,6 +226,7 @@ class ReturnsController extends WebAction //头部导航 $channel = Helpers::getChannelNameByCookie(); $this->setWebNavHeader($channel); + $this->_view->display('returns-detail', array('meReturnsPage' => true, 'returns' => $data)); } @@ -246,11 +249,11 @@ class ReturnsController extends WebAction $expressNumber = $this->post('expressNumber'); $uid = $this->getUid(); $expressCompany = $this->post('expressCompany'); - $res = array('code'=>201,'message'=>'请求失败'); + $res = array('code' => 201, 'message' => '请求失败'); if (!isset($id) || !isset($expressId) || !isset($expressNumber) || !isset($uid) || !isset($expressCompany) || !isset($isChange)) { return $res; } - $res = ReturnsModel::setExpressNumber($id, $expressId, $expressNumber,$uid, $expressCompany, $isChange); + $res = ReturnsModel::setExpressNumber($id, $expressId, $expressNumber, $uid, $expressCompany, $isChange); $this->echoJson($res); } @@ -263,7 +266,7 @@ class ReturnsController extends WebAction { //判断是否登录,未登录则退出 if (!$this->getUid()) { - $this->echoJson(array('code'=>'400','message'=>'请登录')); + $this->echoJson(array('code' => '400', 'message' => '请登录')); exit; } $result = ReturnsModel::saveRefundImg('fileData'); @@ -271,7 +274,35 @@ class ReturnsController extends WebAction $this->echoJson($result); } + /** + * 取消退货申请 + */ + public function cancelRefundAction() + { + if (!$this->isAjax()) { + return; + } + $orderId = $this->post('id'); + $uid = $this->getUid(); + $result = ReturnsData::cancelRefund($orderId, $uid); + $this->echoJson($result); + } + + /** + * 取消换货申请 + */ + public function cancelChangeAction() + { + if (!$this->isAjax()) { + return; + } + $orderId = $this->post('id'); + $uid = $this->getUid(); + $result = ReturnsData::cancelChange($orderId, $uid); + + $this->echoJson($result); + } /** * 个人中心-根据商品skn,颜色,尺码返回商品的sku,goodsId(待用) diff --git a/yohobuy/www.yohobuy.com/application/modules/Order/controllers/Ensure.php b/yohobuy/www.yohobuy.com/application/modules/Order/controllers/Ensure.php index 46fa0f2..28bd682 100644 --- a/yohobuy/www.yohobuy.com/application/modules/Order/controllers/Ensure.php +++ b/yohobuy/www.yohobuy.com/application/modules/Order/controllers/Ensure.php @@ -9,7 +9,7 @@ class EnsureController extends AbstractAction */ public function indexAction() { - $src="http://img04.static.yohobuy.com/thumb/2015/08/25/08/012622ad14f32470d56a0b1da5d533a7e2-0060x0060-2-goodsimg.jpg"; + $src="//img04.static.yohobuy.com/thumb/2015/08/25/08/012622ad14f32470d56a0b1da5d533a7e2-0060x0060-2-goodsimg.jpg"; $data = array( 'orderEnsurePage' => true, 'orderEnsure'=>array( @@ -23,36 +23,36 @@ class EnsureController extends AbstractAction ), 'supportLine' => array( array( - 'src' => 'http://static.yohobuy.com/images/pay/icon/zhifubao.png' + 'src' => '//static.yohobuy.com/images/pay/icon/zhifubao.png' ), array( - 'src' => 'http://static.yohobuy.com/images/pay/icon/zhifubao.png' + 'src' => '//static.yohobuy.com/images/pay/icon/zhifubao.png' ), array( - 'src' => 'http://static.yohobuy.com/images/pay/icon/zhifubao.png' + 'src' => '//static.yohobuy.com/images/pay/icon/zhifubao.png' ), array( - 'src' => 'http://static.yohobuy.com/images/pay/icon/zhifubao.png' + 'src' => '//static.yohobuy.com/images/pay/icon/zhifubao.png' ), array( - 'src' => 'http://static.yohobuy.com/images/pay/icon/zhifubao.png' + 'src' => '//static.yohobuy.com/images/pay/icon/zhifubao.png' ), array( - 'src' => 'http://static.yohobuy.com/images/pay/icon/zhifubao.png' + 'src' => '//static.yohobuy.com/images/pay/icon/zhifubao.png' ), array( - 'src' => 'http://static.yohobuy.com/images/pay/icon/zhifubao.png' + 'src' => '//static.yohobuy.com/images/pay/icon/zhifubao.png' ), array( - 'src' => 'http://static.yohobuy.com/images/pay/icon/zhifubao.png' + 'src' => '//static.yohobuy.com/images/pay/icon/zhifubao.png' ) ), 'supportBank' => array( array( - 'src' => 'http://static.yohobuy.com/images/bankico/BOC.gif' + 'src' => '//static.yohobuy.com/images/bankico/BOC.gif' ), array( - 'src' => 'http://static.yohobuy.com/images/bankico/BOC.gif' + 'src' => '//static.yohobuy.com/images/bankico/BOC.gif' ) ), 'carriagelist'=>array( diff --git a/yohobuy/www.yohobuy.com/application/modules/Order/controllers/Save.php b/yohobuy/www.yohobuy.com/application/modules/Order/controllers/Save.php index 842a2b3..734f947 100644 --- a/yohobuy/www.yohobuy.com/application/modules/Order/controllers/Save.php +++ b/yohobuy/www.yohobuy.com/application/modules/Order/controllers/Save.php @@ -9,7 +9,7 @@ class SaveController extends AbstractAction */ public function indexAction() { - $src="http://img04.static.yohobuy.com/thumb/2015/08/25/08/012622ad14f32470d56a0b1da5d533a7e2-0060x0060-2-goodsimg.jpg"; + $src="//img04.static.yohobuy.com/thumb/2015/08/25/08/012622ad14f32470d56a0b1da5d533a7e2-0060x0060-2-goodsimg.jpg"; $data = array( 'orderSavePage' => true, 'orderSave'=>array( @@ -23,36 +23,36 @@ class SaveController extends AbstractAction ), 'supportLine' => array( array( - 'src' => 'http://static.yohobuy.com/images/pay/icon/zhifubao.png' + 'src' => '//static.yohobuy.com/images/pay/icon/zhifubao.png' ), array( - 'src' => 'http://static.yohobuy.com/images/pay/icon/zhifubao.png' + 'src' => '//static.yohobuy.com/images/pay/icon/zhifubao.png' ), array( - 'src' => 'http://static.yohobuy.com/images/pay/icon/zhifubao.png' + 'src' => '//static.yohobuy.com/images/pay/icon/zhifubao.png' ), array( - 'src' => 'http://static.yohobuy.com/images/pay/icon/zhifubao.png' + 'src' => '//static.yohobuy.com/images/pay/icon/zhifubao.png' ), array( - 'src' => 'http://static.yohobuy.com/images/pay/icon/zhifubao.png' + 'src' => '//static.yohobuy.com/images/pay/icon/zhifubao.png' ), array( - 'src' => 'http://static.yohobuy.com/images/pay/icon/zhifubao.png' + 'src' => '//static.yohobuy.com/images/pay/icon/zhifubao.png' ), array( - 'src' => 'http://static.yohobuy.com/images/pay/icon/zhifubao.png' + 'src' => '//static.yohobuy.com/images/pay/icon/zhifubao.png' ), array( - 'src' => 'http://static.yohobuy.com/images/pay/icon/zhifubao.png' + 'src' => '//static.yohobuy.com/images/pay/icon/zhifubao.png' ) ), 'supportBank' => array( array( - 'src' => 'http://static.yohobuy.com/images/bankico/BOC.gif' + 'src' => '//static.yohobuy.com/images/bankico/BOC.gif' ), array( - 'src' => 'http://static.yohobuy.com/images/bankico/BOC.gif' + 'src' => '//static.yohobuy.com/images/bankico/BOC.gif' ) ), 'carriagelist'=>array( diff --git a/yohobuy/www.yohobuy.com/application/modules/Passport/controllers/Autouserinfo.php b/yohobuy/www.yohobuy.com/application/modules/Passport/controllers/Autouserinfo.php index d1c71a5..d1a2463 100644 --- a/yohobuy/www.yohobuy.com/application/modules/Passport/controllers/Autouserinfo.php +++ b/yohobuy/www.yohobuy.com/application/modules/Passport/controllers/Autouserinfo.php @@ -43,7 +43,7 @@ class AutouserinfoController extends WebAction 'referUrl' => $refer, 'skipUrl' => SITE_MAIN, 'coverHref' => $cover['url'], - 'coverImg' => !empty($cover['img']) ? $cover['img'] : 'http://img12.static.yhbimg.com/yhb-img01/2015/12/01/07/020a0b6e7ff908d0c2bc4045b4fef42b9f.png?imageView/2/w/252/h/190', + 'coverImg' => !empty($cover['img']) ? $cover['img'] : '//img12.static.yhbimg.com/yhb-img01/2015/12/01/07/020a0b6e7ff908d0c2bc4045b4fef42b9f.png?imageView/2/w/252/h/190', 'regBtnText' => '完善信息', 'openId' => $openId, 'sourceType' => $sourceType @@ -63,7 +63,7 @@ class AutouserinfoController extends WebAction $data = array( 'passport' => array( 'coverHref' => $cover['url'], - 'coverImg' => !empty($cover['img']) ? $cover['img'] : 'http://img12.static.yhbimg.com/yhb-img01/2015/12/01/07/020a0b6e7ff908d0c2bc4045b4fef42b9f.png?imageView/2/w/252/h/190', + 'coverImg' => !empty($cover['img']) ? $cover['img'] : '//img12.static.yhbimg.com/yhb-img01/2015/12/01/07/020a0b6e7ff908d0c2bc4045b4fef42b9f.png?imageView/2/w/252/h/190', 'goShoppingUrl' => SITE_MAIN, 'completeInfoUrl' => Helpers::url('/passport/emailbind/index'), ), diff --git a/yohobuy/www.yohobuy.com/application/modules/Passport/controllers/Back.php b/yohobuy/www.yohobuy.com/application/modules/Passport/controllers/Back.php index f0b4e43..4798bf6 100644 --- a/yohobuy/www.yohobuy.com/application/modules/Passport/controllers/Back.php +++ b/yohobuy/www.yohobuy.com/application/modules/Passport/controllers/Back.php @@ -25,8 +25,8 @@ class BackController extends WebAction $data = array( 'backPage' => true, 'back' => array( - 'coverHref' => $banner ['url'], - 'coverImg' => $banner ['img'], + 'coverHref' => Helpers::getUrlSafe($banner ['url']), + 'coverImg' => Helpers::getUrlSafe($banner ['img']), 'countryCode' => '86', 'countryName' => '中国', 'captchaUrl' => Helpers::url('/passport/images', array('t' => time())), @@ -159,8 +159,8 @@ class BackController extends WebAction $this->setSimpleHeader(); $data = array( 'sendEmail' => array( - 'coverHref' => $banner ['url'], - 'coverImg' => $banner ['img'], + 'coverHref' => $banner['url'], + 'coverImg' => $banner['img'], 'countrys' => array(), 'email' => $emailUrl ) @@ -267,8 +267,8 @@ class BackController extends WebAction $banner = PassportModel::getLeftBanner(PassportModel::BACK_LFFT_BANNER_CODE); $data = array( 'resetSuccess' => array( - 'coverHref' => $banner ['url'], - 'coverImg' => $banner ['img'], + 'coverHref' => Helpers::getUrlSafe($banner ['url']), + 'coverImg' => Helpers::getUrlSafe($banner ['img']), 'countrys' => array() ) ); @@ -295,8 +295,8 @@ class BackController extends WebAction $data = array( 'vertificationPage' => true, 'verification' => array( - 'coverHref' => $banner ['url'], - 'coverImg' => $banner ['img'], + 'coverHref' => Helpers::getUrlSafe($banner ['url']), + 'coverImg' => Helpers::getUrlSafe($banner ['img']), 'mobile' => $mobile, 'area' => $area, 'verifyCode' => $verifyCode, diff --git a/yohobuy/www.yohobuy.com/application/modules/Passport/controllers/Login.php b/yohobuy/www.yohobuy.com/application/modules/Passport/controllers/Login.php index b1db42d..6553fe2 100644 --- a/yohobuy/www.yohobuy.com/application/modules/Passport/controllers/Login.php +++ b/yohobuy/www.yohobuy.com/application/modules/Passport/controllers/Login.php @@ -41,7 +41,7 @@ class LoginController extends WebAction //登录后跳转页面 $refer = $this->get('refer', $this->server('HTTP_REFERER', '')); //检查refer是否为绝对路径,补www.yohobuy.com - if (!strstr($refer, 'http')) { + if (substr($refer, 0, 2) !== '//' && !strstr($refer, 'http')) { $refer = SITE_MAIN . $refer; } if (!empty($refer)) { @@ -69,8 +69,8 @@ class LoginController extends WebAction $data = array( 'loginPage' => true, 'passport' => array( - 'coverHref' => $cover['url'], - 'coverImg' => empty($cover['img']) ? ChannelConfig::$leftDefaultImg : $cover['img'], + 'coverHref' => Helpers::getUrlSafe($cover['url']), + 'coverImg' => empty($cover['img']) ? ChannelConfig::$leftDefaultImg : Helpers::getUrlSafe($cover['img']), 'countryCode' => $bindArea ? $bindArea : '+86', 'countryName' => $areaName ? $areaName : '中国', 'countryList' => $areaArr, @@ -155,10 +155,10 @@ class LoginController extends WebAction $errLoginTimes = intval(Cache::get($errorLoginKey)); $accountTimes = intval(Cache::get($accountKey)); $ipTimes = intval(Cache::get($ipKey)); - if ($ipTimes >= 100) { - $data = array('code' => 400, 'message' => '您尝试的次数过多,账号已被暂时锁定,请稍后再试', 'data' => ''); - break; - } +// if ($ipTimes >= 100) { +// $data = array('code' => 400, 'message' => '您尝试的次数过多,账号已被暂时锁定,请稍后再试', 'data' => ''); +// break; +// } if ($accountTimes >= 10) { $data = array('code' => 400, 'message' => '您的账号已被暂时锁定,请稍后再试', 'data' => ''); break; @@ -183,10 +183,10 @@ class LoginController extends WebAction Cache::set($accountKey, $accountTimes, 1800); Cache::set($ipKey, $ipTimes, 3600); //再次校验 - if ($ipTimes >= 100) { - $data = array('code' => 400, 'message' => '您尝试的次数过多,账号已被暂时锁定,请稍后再试', 'data' => ''); - break; - } +// if ($ipTimes >= 100) { +// $data = array('code' => 400, 'message' => '您尝试的次数过多,账号已被暂时锁定,请稍后再试', 'data' => ''); +// break; +// } if ($accountTimes >= 10) { $data = array('code' => 400, 'message' => '您的账号已被暂时锁定,请稍后再试', 'data' => ''); break; diff --git a/yohobuy/www.yohobuy.com/application/modules/Passport/controllers/Register.php b/yohobuy/www.yohobuy.com/application/modules/Passport/controllers/Register.php index 1c003da..c4e47cd 100644 --- a/yohobuy/www.yohobuy.com/application/modules/Passport/controllers/Register.php +++ b/yohobuy/www.yohobuy.com/application/modules/Passport/controllers/Register.php @@ -37,10 +37,10 @@ class RegisterController extends WebAction 'location' => '+86', 'captchaUrl' => Helpers::url('/passport/images', array('t' => time())), 'itemUrl' => Helpers::url('/help/', array('category_id' => 9)), - 'referUrl' => $refer, + 'referUrl' => Helpers::getUrlSafe($refer), 'loginUrl' => Helpers::url('/signin.html', array('refer' => rawurlencode($refer))), - 'coverHref' => $cover['url'], - 'coverImg' => $cover['img'], + 'coverHref' => Helpers::getUrlSafe($cover['url']), + 'coverImg' => Helpers::getUrlSafe($cover['img']), 'regBtnText' => '立即注册' ) ); diff --git a/yohobuy/www.yohobuy.com/configs/application.developer.ini b/yohobuy/www.yohobuy.com/configs/application.developer.ini index d869c2e..2ec3248 100644 --- a/yohobuy/www.yohobuy.com/configs/application.developer.ini +++ b/yohobuy/www.yohobuy.com/configs/application.developer.ini @@ -50,7 +50,7 @@ application.template.ext = ".phtml" application.assets.path = ROOT_PATH "/assets/web" ; 应用的版本号 -application.version = "4.6.2" +application.version = "4.7.3" ; 网站SEO信息 application.seo.title = "YOHO!BUY 有货 | 年轻人潮流购物中心,中国潮流购物风向标,官方授权正品保证" diff --git a/yohobuy/www.yohobuy.com/configs/application.preview.ini b/yohobuy/www.yohobuy.com/configs/application.preview.ini index e80ec2a..cee7dc5 100644 --- a/yohobuy/www.yohobuy.com/configs/application.preview.ini +++ b/yohobuy/www.yohobuy.com/configs/application.preview.ini @@ -50,7 +50,7 @@ application.template.ext = ".phtml" application.assets.path = ROOT_PATH "/assets/web" ; 应用的版本号 -application.version = "4.6.2" +application.version = "4.7.3" ; 网站SEO信息 application.seo.title = "YOHO!BUY 有货 | 年轻人潮流购物中心,中国潮流购物风向标,官方授权正品保证" diff --git a/yohobuy/www.yohobuy.com/configs/application.production.ini b/yohobuy/www.yohobuy.com/configs/application.production.ini index 98d383c..c73a271 100644 --- a/yohobuy/www.yohobuy.com/configs/application.production.ini +++ b/yohobuy/www.yohobuy.com/configs/application.production.ini @@ -50,7 +50,7 @@ application.template.ext = ".phtml" application.assets.path = ROOT_PATH "/assets/web" ; 应用的版本号 -application.version = "4.6.2" +application.version = "4.7.3" ; 网站SEO信息 application.seo.title = "YOHO!BUY 有货 | 年轻人潮流购物中心,中国潮流购物风向标,官方授权正品保证" diff --git a/yohobuy/www.yohobuy.com/configs/application.testing.ini b/yohobuy/www.yohobuy.com/configs/application.testing.ini index b11415f..3c4f331 100644 --- a/yohobuy/www.yohobuy.com/configs/application.testing.ini +++ b/yohobuy/www.yohobuy.com/configs/application.testing.ini @@ -50,7 +50,7 @@ application.template.ext = ".phtml" application.assets.path = ROOT_PATH "/assets/web" ; 应用的版本号 -application.version = "4.6.2" +application.version = "4.7.3" ; 网站SEO信息 application.seo.title = "YOHO!BUY 有货 | 年轻人潮流购物中心,中国潮流购物风向标,官方授权正品保证" diff --git a/yohobuy/www.yohobuy.com/public/index-dev.php b/yohobuy/www.yohobuy.com/public/index-dev.php index 79e5493..be67efd 100644 --- a/yohobuy/www.yohobuy.com/public/index-dev.php +++ b/yohobuy/www.yohobuy.com/public/index-dev.php @@ -1,7 +1,7 @@ <?php use Yaf\Application; -define('SITE_MAIN', 'http://web.dev.yohobuy.com'); // 网站主域名 -define('OLD_MAIN', 'http://www.yohobuy.com'); // 网站旧域名 +define('SITE_MAIN', '//web.dev.yohobuy.com'); // 网站主域名 +define('OLD_MAIN', '//www.yohobuy.com'); // 网站旧域名 define('COOKIE_DOMAIN', '.yohobuy.com'); // COOKIE作用域 define('SUB_DOMAIN', '.yohobuy.com'); // 子域名后缀 define('USE_CACHE', false); // 缓存的开关 @@ -9,5 +9,11 @@ define('APPLICATION_PATH', dirname(__DIR__)); // 应用目录 define('ROOT_PATH', dirname(dirname(APPLICATION_PATH))); // 根目录 defined('APPLICATION_ENV') || define('APPLICATION_ENV', 'developer'); +define('API_URL', 'http://testapi.yoho.cn:28078/'); +define('SERVICE_URL', 'http://testservice.yoho.cn:28077/'); +define('YOHOBUY_URL', 'http://www.yohobuy.com/'); +define('SERVICE_NOTIFY', 'http://testservice.yoho.cn:28077/'); +define('API_OLD', 'http://test2.open.yohobuy.com/'); + $application = new Application(APPLICATION_PATH . '/configs/application.developer.ini'); $application->bootstrap()->run(); \ No newline at end of file diff --git a/yohobuy/www.yohobuy.com/public/index-old.php b/yohobuy/www.yohobuy.com/public/index-old.php index 62c9498..ae791cb 100644 --- a/yohobuy/www.yohobuy.com/public/index-old.php +++ b/yohobuy/www.yohobuy.com/public/index-old.php @@ -1,8 +1,8 @@ <?php use Yaf\Application; -define('SITE_MAIN', 'http://www.yohobuy.com'); // 网站主域名 -define('OLD_MAIN', 'http://www.yohobuy.com'); // 网站旧域名 +define('SITE_MAIN', '//www.yohobuy.com'); // 网站主域名 +define('OLD_MAIN', '//www.yohobuy.com'); // 网站旧域名 define('COOKIE_DOMAIN', '.yohobuy.com'); // COOKIE作用域 define('SUB_DOMAIN', '.yohobuy.com'); // 子域名后缀 define('USE_CACHE', true); // 缓存的开关 @@ -10,5 +10,11 @@ define('APPLICATION_PATH', dirname(__DIR__)); // 应用目录 define('ROOT_PATH', dirname(dirname(APPLICATION_PATH))); // 根目录 defined('APPLICATION_ENV') || define('APPLICATION_ENV', 'production'); +define('API_URL', 'http://api.yoho.yohoops.org/'); +define('SERVICE_URL', 'http://service.yoho.yohoops.org/'); +define('YOHOBUY_URL', 'http://www.yohobuy.com/'); +define('SERVICE_NOTIFY', 'http://service.yoho.cn/'); +define('API_OLD', 'http://api2.open.yohobuy.com/'); + $application = new Application(APPLICATION_PATH . '/configs/application.production.ini'); $application->bootstrap()->run(); \ No newline at end of file diff --git a/yohobuy/www.yohobuy.com/public/index-pre.php b/yohobuy/www.yohobuy.com/public/index-pre.php index 906c90a..e2a3787 100644 --- a/yohobuy/www.yohobuy.com/public/index-pre.php +++ b/yohobuy/www.yohobuy.com/public/index-pre.php @@ -1,8 +1,8 @@ <?php use Yaf\Application; -define('SITE_MAIN', 'http://www.yohobuy.com'); // 网站主域名 -define('OLD_MAIN', 'http://www.yohobuy.com'); // 网站旧域名 +define('SITE_MAIN', '//www.yohobuy.com'); // 网站主域名 +define('OLD_MAIN', '//www.yohobuy.com'); // 网站旧域名 define('COOKIE_DOMAIN', '.yohobuy.com'); // COOKIE作用域 define('SUB_DOMAIN', '.yohobuy.com'); // 子域名后缀 define('USE_CACHE', true); // 缓存的开关 @@ -10,5 +10,11 @@ define('APPLICATION_PATH', dirname(__DIR__)); // 应用目录 define('ROOT_PATH', dirname(dirname(APPLICATION_PATH))); // 根目录 defined('APPLICATION_ENV') || define('APPLICATION_ENV', 'preview'); +define('API_URL', 'http://api.yoho.yohoops.org/'); +define('SERVICE_URL', 'http://service.yoho.yohoops.org/'); +define('YOHOBUY_URL', 'http://www.yohobuy.com/'); +define('SERVICE_NOTIFY', 'http://service.yoho.cn/'); +define('API_OLD', 'http://api2.open.yohobuy.com/'); + $application = new Application(APPLICATION_PATH . '/configs/application.preview.ini'); $application->bootstrap()->run(); \ No newline at end of file diff --git a/yohobuy/www.yohobuy.com/public/index-test.php b/yohobuy/www.yohobuy.com/public/index-test.php index b0a99ac..61e035f 100644 --- a/yohobuy/www.yohobuy.com/public/index-test.php +++ b/yohobuy/www.yohobuy.com/public/index-test.php @@ -1,8 +1,8 @@ <?php use Yaf\Application; -define('SITE_MAIN', 'http://www.yohobuy.com'); // 网站主域名 -define('OLD_MAIN', 'http://www.yohobuy.com'); // 网站旧域名 +define('SITE_MAIN', '//www.yohobuy.com'); // 网站主域名 +define('OLD_MAIN', '//www.yohobuy.com'); // 网站旧域名 define('COOKIE_DOMAIN', '.yohobuy.com'); // COOKIE作用域 define('SUB_DOMAIN', '.yohobuy.com'); // 子域名后缀 define('USE_CACHE', true); // 缓存的开关 @@ -10,5 +10,11 @@ define('APPLICATION_PATH', dirname(__DIR__)); // 应用目录 define('ROOT_PATH', dirname(dirname(APPLICATION_PATH))); // 根目录 defined('APPLICATION_ENV') || define('APPLICATION_ENV', 'testing'); +define('API_URL', 'http://testapi.yoho.cn:28078/'); +define('SERVICE_URL', 'http://testservice.yoho.cn:28077/'); +define('YOHOBUY_URL', 'http://www.yohobuy.com/'); +define('SERVICE_NOTIFY', 'http://testservice.yoho.cn:28077/'); +define('API_OLD', 'http://test2.open.yohobuy.com/'); + $application = new Application(APPLICATION_PATH . '/configs/application.testing.ini'); $application->bootstrap()->run(); \ No newline at end of file diff --git a/yohobuy/www.yohobuy.com/public/index.php b/yohobuy/www.yohobuy.com/public/index.php index 62c9498..ae791cb 100644 --- a/yohobuy/www.yohobuy.com/public/index.php +++ b/yohobuy/www.yohobuy.com/public/index.php @@ -1,8 +1,8 @@ <?php use Yaf\Application; -define('SITE_MAIN', 'http://www.yohobuy.com'); // 网站主域名 -define('OLD_MAIN', 'http://www.yohobuy.com'); // 网站旧域名 +define('SITE_MAIN', '//www.yohobuy.com'); // 网站主域名 +define('OLD_MAIN', '//www.yohobuy.com'); // 网站旧域名 define('COOKIE_DOMAIN', '.yohobuy.com'); // COOKIE作用域 define('SUB_DOMAIN', '.yohobuy.com'); // 子域名后缀 define('USE_CACHE', true); // 缓存的开关 @@ -10,5 +10,11 @@ define('APPLICATION_PATH', dirname(__DIR__)); // 应用目录 define('ROOT_PATH', dirname(dirname(APPLICATION_PATH))); // 根目录 defined('APPLICATION_ENV') || define('APPLICATION_ENV', 'production'); +define('API_URL', 'http://api.yoho.yohoops.org/'); +define('SERVICE_URL', 'http://service.yoho.yohoops.org/'); +define('YOHOBUY_URL', 'http://www.yohobuy.com/'); +define('SERVICE_NOTIFY', 'http://service.yoho.cn/'); +define('API_OLD', 'http://api2.open.yohobuy.com/'); + $application = new Application(APPLICATION_PATH . '/configs/application.production.ini'); $application->bootstrap()->run(); \ No newline at end of file