/*
* 微商城弹出窗口
*/
(function($) {
$.fn.microshop_form = function(options) {
var settings = $.extend({}, {title: ''}, options);
var _div = $(this);
$(this).addClass("dialog_wrapper");
$(this).wrapInner(function(){
return '
';
});
$(this).wrapInner(function(){
return '
';
});
$(this).find('.dialog_body').prepend('
'+settings.title+'X
');
$(this).append('
');
$(".dialog_close_button").click(function(){
_div.hide();
});
}
})(jQuery);
(function($) {
$.fn.microshop_form_show = function(options) {
var settings = $.extend({}, {width: 480}, options);
settings.left = $(window).scrollLeft() + ($(window).width() - settings.width) / 2;
settings.top = $(window).scrollTop() + ($(window).height() - $(this).height()) / 2;
$(this).attr("style","display:none; z-index: 1100; position: absolute; width: "+settings.width+"px; left: "+settings.left+"px; top: "+settings.top+"px;");
$(this).show();
}
})(jQuery);
/*
* 微商城消息发布
*/
(function($) {
$.fn.microshop_publish = function(options,submit_function) {
var settings = $.extend({}, {max: 140,button_item:'#btn_publish_comment',allow_null:'false'}, options);
$(this).after('
');
settings.message_item = $(this).next("[nc_type='commend_count']");
var message_object = $(this);
return this.each(function() {
$(settings.message_item).html("0/"+settings.max);
$(this).keyup(commend_message_count);
$(this).focusout(commend_message_count);
if(settings.button_item != '') {
$(settings.button_item).click(commend_message_submit);
}
});
function commend_message_count() {
var message_count = $(message_object).val().length;
if(message_count <= settings.max) {
settings.message_item.css("color","");
settings.message_item.html(message_count+"/"+settings.max);
} else {
var over_count = message_count - settings.max;
settings.message_item.css("color","red");
settings.message_item.html("已超出"+parseInt(over_count)+"个字");
}
}
function commend_message_submit() {
var message_count = $(message_object).val().length;
if(message_count <= settings.max && (message_count > 0 || settings.allow_null == 'true')) {
$(settings.button_item).attr("disabled","disabled");
submit_function();
$(message_object).val('');
settings.message_item.html("0/"+settings.max);
$(settings.button_item).removeAttr("disabled");
}
}
}
})(jQuery);
/*
* 微商城计数加减
*/
(function($) {
$.fn.microshop_count = function(options) {
var settings = $.extend({}, { type:'+',step:1}, options);
var old_count = parseInt($(this).html());
if(old_count >= 999) {
$(this).html('999+');
} else {
var new_count = old_count;
if(settings.type == '-') {
new_count = old_count - settings.step;
} else {
new_count = old_count + settings.step;
}
if(new_count < 0) {
new_count = 0;
}
$(this).html(new_count);
}
return this;
}
})(jQuery);
/*
* 微商城喜欢
*/
(function($) {
$.fn.microshop_like = function(options) {
var settings = $.extend({}, { type:null,count_target:'' }, options);
if( settings.type == null ) return false;
return this.each(function() {
$(this).parent().parent().append("
");
$(this).click(submit_like);
});
function submit_like() {
var item = $(this);
$.getJSON("index.php?act=like&op=like_save", { type: settings.type, like_id: item.attr("like_id") }, function(json){
if(json.result == "true") {
if(settings.count_target == '') {
item.find("em").microshop_count({type:"+"});
} else {
settings.count_target.microshop_count({type:"+"});
}
}
$(".like_tooltips").hide();
var tooltips = item.parent().parent().find(".like_tooltips");
tooltips.html(json.message).show();
setTimeout(function(){tooltips.hide()},2000);
});
}
}
})(jQuery);
/*
* 表情处理
*/
(function($) {
$.fn.smilies = function(options) {
var settings = $.extend({}, {smilies_input: '#comment_message'}, options);
settings.smilies_div = "#_smilies_div"
$(document).click(function(){
$(settings.smilies_div).html('');
$(settings.smilies_div).hide();
});
$(this).after('
');
var smilies_array = new Array();
var STATICURL = 'resource/js/smilies/';
smilies_array[1] = [['1', ':smile:', 'smile.gif', '28', '28', '28','微笑'], ['2', ':sad:', 'sad.gif', '28', '28', '28','难过'], ['3', ':biggrin:', 'biggrin.gif', '28', '28', '28','呲牙'], ['4', ':cry:', 'cry.gif', '28', '28', '28','大哭'], ['5', ':huffy:', 'huffy.gif', '28', '28', '28','发怒'], ['6', ':shocked:', 'shocked.gif', '28', '28', '28','惊讶'], ['7', ':tongue:', 'tongue.gif', '28', '28', '28','调皮'], ['8', ':shy:', 'shy.gif', '28', '28', '28','害羞'], ['9', ':titter:', 'titter.gif', '28', '28', '28','偷笑'], ['10', ':sweat:', 'sweat.gif', '28', '28', '28','流汗'], ['11', ':mad:', 'mad.gif', '28', '28', '28','抓狂'], ['12', ':lol:', 'lol.gif', '28', '28', '28','阴险'], ['13', ':loveliness:', 'loveliness.gif', '28', '28', '28','可爱'], ['14', ':funk:', 'funk.gif', '28', '28', '28','惊恐'], ['15', ':curse:', 'curse.gif', '28', '28', '28','咒骂'], ['16', ':dizzy:', 'dizzy.gif', '28', '28', '28','晕'], ['17', ':shutup:', 'shutup.gif', '28', '28', '28','闭嘴'], ['18', ':sleepy:', 'sleepy.gif', '28', '28', '28','睡'], ['19', ':hug:', 'hug.gif', '28', '28', '28','拥抱'], ['20', ':victory:', 'victory.gif', '28', '28', '28','胜利'], ['21', ':sun:', 'sun.gif', '28', '28', '28','太阳'],['22', ':moon:', 'moon.gif', '28', '28', '28','月亮'], ['23', ':kiss:', 'kiss.gif', '28', '28', '28','示爱'], ['24', ':handshake:', 'handshake.gif', '28', '28', '28','握手']];
$(settings.smilies_div).position({
of: $("body"),
at: "left bottom",
offset: "10 10"
});
this.each(function() {
$(this).live('click',function(){
//光标处插入代码功能
smiliesshowdiv(this);
return false;
});
});
//显示和隐藏表情模块
function smiliesshowdiv(btnobj){
if($(settings.smilies_div).css("display")=='none'){
if($(settings.smilies_div).html() == ''){
smilies_show( 8, 'e_');
}
$(settings.smilies_div).show();
smiliesposition(btnobj);
}else{
$(settings.smilies_div).hide();
}
}
//弹出层位置控制
function smiliesposition(btnobj){
$(settings.smilies_div).position({
of: btnobj,
at: "left bottom",
offset: "105 57"
});
}
function smilies_show(smcols, seditorkey) {
if(seditorkey && !$("#"+seditorkey + 'sml_menu')[0]) {
var div = document.createElement("div");
div.id = seditorkey + 'sml_menu';
div.className = 'sllt';
$(settings.smilies_div).append(div);
var div = document.createElement("div");
div.id = "_smilies_content"
div.style.overflow = 'hidden';
$("#"+seditorkey + 'sml_menu').append(div);
}
smilies_onload(smcols, seditorkey);
//image绑定操作函数
$("#_smilies_content").find("td").bind('click',function(){
insertsmilie(this);
});
}
function insertsmilie(smilieone){
var code = $(smilieone).attr('codetext');
insertAtCaret(code);
$(settings.smilies_input).focus();
$(settings.smilies_div).html('');
$(settings.smilies_div).hide();
}
function insertAtCaret(textFeildValue){
var textObj = $(settings.smilies_input).get(0);
if(document.all && textObj.createTextRange && textObj.caretPos){
var caretPos=textObj.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length-1) == '' ?
textFeildValue+'' : textFeildValue;
}
else if(textObj.setSelectionRange){
var rangeStart=textObj.selectionStart;
var rangeEnd=textObj.selectionEnd;
var tempStr1=textObj.value.substring(0,rangeStart);
var tempStr2=textObj.value.substring(rangeEnd);
textObj.value=tempStr1+textFeildValue+tempStr2;
textObj.focus();
var len=textFeildValue.length;
textObj.setSelectionRange(rangeStart+len,rangeStart+len);
textObj.blur();
}
else {
textObj.value+=textFeildValue;
}
}
function smilies_onload(smcols, seditorkey) {
seditorkey = !seditorkey ? '' : seditorkey;
$("#_smilies_content").html('
');
smilies_switch(smcols, seditorkey);
}
function smilies_switch(smcols, seditorkey) {
var page = 1;
if(!smilies_array || !smilies_array[page]) return;
smiliesdata = '
';
j = k = 0;
img = [];
for(i in smilies_array[page]) {
if(j >= smcols) {
smiliesdata += '
';
j = 0;
}
var s = smilies_array[page][i];
smilieimg = STATICURL + 'images/' + s[2];
img[k] = new Image();
img[k].src = smilieimg;
smiliesdata += s && s[0] ? ' ' : ' | ';
j++; k++;
}
smiliesdata += ' |
';
$('#_smilies_content_data').html(smiliesdata);
}
}
})(jQuery);
/*
* 微商城图片延迟加载
*/
(function($) {
$.fn.microshop_lazyload = function() {
var lazy_items = [];
this.each(function() {
var lazy_item = {
object: $(this),
url: $(this).attr("data-src")
}
lazy_items.push(lazy_item);
});
var load_img = function() {
var window_height = $(window).height();
var scroll_top = $(window).scrollTop();
$.each(lazy_items, function(i, lazy_item) {
if(lazy_item.object) {
item_top = lazy_item.object.offset().top - scroll_top;
if(item_top >= 0 && item_top < window_height) {
if(lazy_item.url) {
lazy_item.object.attr("src",lazy_item.url);
}
lazy_item.object = null;
}
}
});
}
load_img();
$(window).bind("scroll", load_img);
}
})(jQuery);