$(function () {
$(".win-homepage").click(function () {
if (document.all) {
document.body.style.behavior = 'url(#default#homepage)';
document.body.setHomePage(document.URL);
} else {
alert("设置首页失败,请手动设置!");
}
});
$(".win-favorite").click(function () {
var sURL = document.URL;
var sTitle = document.title;
try {
window.external.addFavorite(sURL, sTitle);
}
catch (e) {
try {
window.sidebar.addPanel(sTitle, sURL, "");
}
catch (e) {
alert("加入收藏失败,请使用Ctrl+D进行添加");
}
}
});
$(".win-forward").click(function () {
window.history.forward(1);
});
$(".win-back").click(function () {
window.history.back(-1);
});
$(".win-backtop").click(function () {
$('body,html').animate({scrollTop: 0}, 1000);
return false;
});
$(".win-refresh").click(function () {
window.location.reload();
});
$(".win-print").click(function () {
window.print();
});
$(".win-close").click(function () {
window.close();
});
$('.checkall').click(function () {
var e = $(this);
var name = e.attr("name");
var checkfor = e.attr("checkfor");
var type;
if (checkfor != '' && checkfor != null && checkfor != undefined) {
type = e.closest('form').find("input[name='" + checkfor + "']");
} else {
type = e.closest('form').find("input[type='checkbox']");
}
;
if (name == "checkall") {
$(type).each(function (index, element) {
element.checked = true;
});
e.attr("name", "ok");
} else {
$(type).each(function (index, element) {
element.checked = false;
});
e.attr("name", "checkall");
}
});
$('.dropdown-toggle').click(function () {
$(this).closest('.button-group, .drop').addClass("open");
});
$(".dropdown-hover").hover(function () {
$(".button-group, .drop").removeClass("open");
$(this).closest(".button-group, .drop").addClass("open")
});
$(document).bind("click", function (e) {
if ($(e.target).closest(".button-group.open, .drop.open").length == 0) {
$(".button-group, .drop").removeClass("open");
}
});
$checkplaceholder = function () {
var input = document.createElement('input');
return 'placeholder' in input;
};
if (!$checkplaceholder()) {
$("textarea[placeholder], input[placeholder]").each(function (index, element) {
var content = false;
if ($(this).val().length === 0 || $(this).val() == $(this).attr("placeholder")) {
content = true
}
;
if (content) {
$(element).val($(element).attr("placeholder"));
$(element).css("color", "rgb(169,169,169)");
$(element).data("pintuerholder", $(element).css("color"));
$(element).focus(function () {
$hideplaceholder($(this));
});
$(element).blur(function () {
$showplaceholder($(this));
});
}
})
}
;
$showplaceholder = function (element) {
if (($(element).val().length === 0 || $(element).val() == $(element).attr("placeholder")) && $(element).attr("type") != "password") {
$(element).val($(element).attr("placeholder"));
$(element).data("pintuerholder", $(element).css("color"));
$(element).css("color", "rgb(169,169,169)");
}
};
var $hideplaceholder = function (element) {
if ($(element).data("pintuerholder")) {
$(element).val("");
$(element).css("color", $(element).data("pintuerholder"));
$(element).removeData("pintuerholder");
}
};
$('textarea, input, select').blur(function () {
var e = $(this);
if (e.attr("data-validate")) {
e.closest('.field').find(".input-help").remove();
var $checkdata = e.attr("data-validate").split(',');
var $checkvalue = e.val();
var $checkstate = true;
var $checktext = "";
if (e.attr("placeholder") == $checkvalue) {
$checkvalue = "";
}
if ($checkvalue != "" || e.attr("data-validate").indexOf("required") >= 0) {
for (var i = 0; i < $checkdata.length; i++) {
var $checktype = $checkdata[i].split(':');
if (!$pintuercheck(e, $checktype[0], $checkvalue)) {
$checkstate = false;
$checktext = $checktext + "
" + $checktype[1] + "";
}
}
}
;
if ($checkstate) {
e.closest('.form-check').removeClass("check-error");
e.parent().find(".input-help").remove();
e.closest('.form-check').addClass("check-success");
//有group
e.closest('.form-group').removeClass("check-error");
e.parent().find(".input-help").remove();
e.closest('.form-group').addClass("check-success");
} else {
e.closest('.form-check').removeClass("check-success");
e.closest('.form-check').addClass("check-error");
//有group
e.closest('.form-group').removeClass("check-success");
e.closest('.form-group').addClass("check-error");
e.closest('.field').append('');
}
}
});
$pintuercheck = function (element, type, value) {
$pintu = value.replace(/(^\s*)|(\s*$)/g, "");
switch (type) {
case "required":
return /[^(^\s*)|(\s*$)]/.test($pintu);
break;
case "chinese":
return /^[\u0391-\uFFE5]+$/.test($pintu);
break;
case "number":
return /^\d+$/.test($pintu);
break;
case "integer":
return /^[-\+]?\d+$/.test($pintu);
break;
case "plusinteger":
return /^[+]?\d+$/.test($pintu);
break;
case "double":
return /^[-\+]?\d+(\.\d+)?$/.test($pintu);
break;
case "plusdouble":
return /^[+]?\d+(\.\d+)?$/.test($pintu);
break;
case "english":
return /^[A-Za-z]+$/.test($pintu);
break;
case "username":
return /^[a-z]\w{3,}$/i.test($pintu);
break;
case "mobile":
return /^((\(\d{3}\))|(\d{3}\-))?13[0-9]\d{8}?$|15[0-9]\d{8}?$|17[0-9]\d{8}?$|14[0-9]\d{8}?$|18[0-9]\d{8}?$/.test($pintu);
break;
case "phone":
return /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/.test($pintu);
break;
case "tel":
return /^((\(\d{3}\))|(\d{3}\-))?13[0-9]\d{8}?$|15[89]\d{8}?$|170\d{8}?$|147\d{8}?$/.test($pintu) || /^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/.test($pintu);
break;
case "email":
return /^[^@]+@[^@]+\.[^@]+$/.test($pintu);
break;
case "url":
return /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/.test($pintu);
break;
case "ip":
return /^[\d\.]{7,15}$/.test($pintu);
break;
case "qq":
return /^[1-9]\d{4,10}$/.test($pintu);
break;
case "currency":
return /^\d+(\.\d+)?$/.test($pintu);
break;
case "zip":
return /^[1-9]\d{5}$/.test($pintu);
break;
case "radio":
var radio = element.closest('form').find('input[name="' + element.attr("name") + '"]:checked').length;
return eval(radio == 1);
break;
default:
var $test = type.split('#');
if ($test.length > 1) {
switch ($test[0]) {
case "compare":
return eval(Number($pintu) + $test[1]);
break;
case "regexp":
return new RegExp($test[1], "gi").test($pintu);
break;
case "length":
var $length;
if (element.attr("type") == "checkbox") {
$length = element.closest('form').find('input[name="' + element.attr("name") + '"]:checked').length;
} else {
$length = $pintu.replace(/[\u4e00-\u9fa5]/g, "***").length;
}
return eval($length + $test[1]);
break;
case "ajax":
var $getdata;
var $url = $test[1] + $pintu;
$.ajaxSetup({async: false});
$.getJSON($url, function (data) {
$getdata = data.getdata;
});
if ($getdata == "true") {
return true;
}
break;
case "repeat":
return $pintu == jQuery('input[id="' + $test[1] + '"]').eq(0).val();
break;
default:
return true;
break;
}
break;
} else {
return true;
}
}
};
$('form').submit(function () {
$(this).find('input[data-validate],textarea[data-validate],select[data-validate]').trigger("blur");
$(this).find('input[placeholder],textarea[placeholder]').each(function () {
$hideplaceholder($(this));
});
var numError = $(this).find('.check-error').length;
if (numError) {
$(this).find('.check-error').first().find('input[data-validate],textarea[data-validate],select[data-validate]').first().focus().select();
return false;
}
});
$.fn.valid = function () {//form验证
$(this).find('input[data-validate],textarea[data-validate],select[data-validate]').trigger("blur");
$(this).find('input[placeholder],textarea[placeholder]').each(function () {
$hideplaceholder($(this));
});
var numError = $(this).find('.check-error').length;
if (numError) {
$(this).find('.check-error').first().find('input[data-validate],textarea[data-validate],select[data-validate]').first().focus().select();
return false;
}
return true;
};
$('.form-reset').click(function () {
$(this).closest('form').find(".input-help").remove();
$(this).closest('form').find('.form-submit').removeAttr('disabled');
$(this).closest('form').find('.form-group').removeClass("check-error");
$(this).closest('form').find('.form-group').removeClass("check-success");
});
$('.tab .tab-nav li').each(function () {
var e = $(this);
var trigger = e.closest('.tab').attr("data-toggle");
if (trigger == "hover") {
e.mouseover(function () {
$showtabs(e);
});
e.click(function () {
return false;
});
} else {
e.click(function () {
$showtabs(e);
return false;
});
}
});
$showtabs = function (e) {
var detail = e.children("a").attr("href");
e.closest('.tab .tab-nav').find("li").removeClass("active");
e.closest('.tab').find(".tab-body .tab-panel").removeClass("active");
e.addClass("active");
$(detail).addClass("active");
};
$('.dialogs').each(function () {
var e = $(this);
var trigger = e.attr("data-toggle");
if (trigger == "hover") {
e.mouseover(function () {
$showdialogs(e);
});
} else if (trigger == "click") {
e.click(function () {
$showdialogs(e);
});
}
});
$showdialogs = function (e) {
var trigger = e.attr("data-toggle");
var getid = e.attr("data-target");
var data = e.attr("data-url");
var mask = e.attr("data-mask");
var width = e.attr("data-width");
var detail = "";
var masklayout = $('');
if (width == null) {
width = "80%";
}
if (mask == "1") {
$("body").append(masklayout);
}
detail = '';
if (getid != null) {
detail = detail + $(getid).html();
}
if (data != null) {
detail = detail + $.ajax({url: data, async: false}).responseText;
}
detail = detail + '
';
var win = $(detail);
win.find(".dialog").addClass("open");
$("body").append(win);
var x = parseInt($(window).width() - win.outerWidth()) / 2;
var y = parseInt($(window).height() - win.outerHeight()) / 2;
if (y <= 10) {
y = "10"
}
win.css({"left": x, "top": y});
win.find(".dialog-close,.close").each(function () {
$(this).click(function () {
win.remove();
$('.dialog-mask').remove();
});
});
masklayout.click(function () {
win.remove();
$(this).remove();
});
};
$('.tips').each(function () {
var e = $(this);
var title = e.attr("title");
var trigger = e.attr("data-toggle");
e.attr("title", "");
if (trigger == "" || trigger == null) {
trigger = "hover";
}
if (trigger == "hover") {
e.mouseover(function () {
$showtips(e, title);
});
} else if (trigger == "click") {
e.click(function () {
$showtips(e, title);
});
} else if (trigger == "show") {
e.ready(function () {
$showtips(e, title);
});
}
});
$showtips = function (e, title) {
var trigger = e.attr("data-toggle");
var place = e.attr("data-place");
var width = e.attr("data-width");
var css = e.attr("data-style");
var image = e.attr("data-image");
var content = e.attr("content");
var getid = e.attr("data-target");
var data = e.attr("data-url");
var x = 0;
var y = 0;
var html = "";
var detail = "";
if (image != null) {
detail = detail + '
';
}
if (content != null) {
detail = detail + '' + content + '
';
}
if (getid != null) {
detail = detail + $(getid).html();
}
if (data != null) {
detail = detail + $.ajax({url: data, async: false}).responseText;
}
if (title != null && title != "") {
if (detail != null && detail != "") {
detail = '' + title + '
' + detail;
} else {
detail = '' + title + '
';
}
}
detail = '' + detail + '
';
html = $(detail);
$("body").append(html);
if (width != null) {
html.css("width", width);
}
if (place == "" || place == null) {
place = "top";
}
if (place == "left") {
x = e.offset().left - html.outerWidth() - 5;
y = e.offset().top - html.outerHeight() / 2 + e.outerHeight() / 2;
} else if (place == "top") {
x = e.offset().left - html.outerWidth() / 2 + e.outerWidth() / 2;
y = e.offset().top - html.outerHeight() - 5;
} else if (place == "right") {
x = e.offset().left + e.outerWidth() + 5;
y = e.offset().top - html.outerHeight() / 2 + e.outerHeight() / 2;
} else if (place == "bottom") {
x = e.offset().left - html.outerWidth() / 2 + e.outerWidth() / 2;
y = e.offset().top + e.outerHeight() + 5;
}
if (css != "") {
html.addClass(css);
}
html.css({"left": x + "px", "top": y + "px", "position": "absolute"});
if (trigger == "hover" || trigger == "click" || trigger == null) {
e.mouseout(function () {
html.remove();
e.attr("title", title)
});
}
};
$('.alert .close').each(function () {
$(this).click(function () {
$(this).closest('.alert').remove();
});
});
$('.radio label').each(function () {
var e = $(this);
e.click(function () {
e.closest('.radio').find("label").removeClass("active");
e.addClass("active");
});
});
$('.checkbox label').each(function () {
var e = $(this);
e.click(function () {
if (e.find('input').is(':checked')) {
e.addClass("active");
} else {
e.removeClass("active");
}
;
});
});
$('.collapse .panel-head').each(function () {
var e = $(this);
e.click(function () {
e.closest('.collapse').find(".panel").removeClass("active");
e.closest('.panel').addClass("active");
});
});
$('.icon-navicon').each(function () {
var e = $(this);
var target = e.attr("data-target");
e.click(function () {
$(target).toggleClass("nav-navicon");
});
});
$('.banner').each(function () {
var e = $(this);
var pointer = e.attr("data-pointer");
var interval = e.attr("data-interval");
var style = e.attr("data-style");
var items = e.attr("data-item");
var items_s = e.attr("data-small");
var items_m = e.attr("data-middle");
var items_b = e.attr("data-big");
var num = e.find(".carousel .item").length;
var win = $(window).width();
var i = 1;
if (interval == null) {
interval = 5
}
;
if (items == null || items < 1) {
items = 1
}
;
if (items_s != null && win > 760) {
items = items_s
}
;
if (items_m != null && win > 1000) {
items = items_m
}
;
if (items_b != null && win > 1200) {
items = items_b
}
;
var itemWidth = Math.ceil(e.outerWidth() / items);
var page = Math.ceil(num / items);
e.find(".carousel .item").css("width", itemWidth + "px");
e.find(".carousel").css("width", itemWidth * num + "px");
var carousel = function () {
i++;
if (i > page) {
i = 1;
}
$showbanner(e, i, items, num);
};
var play = setInterval(carousel, interval * 600);
e.mouseover(function () {
clearInterval(play);
});
e.mouseout(function () {
play = setInterval(carousel, interval * 600);
});
if (pointer != 0 && page > 1) {
var point = '';
for (var j = 1; j < page; j++) {
point = point + ' ';
}
;
point = point + '
';
var pager = $(point);
if (style != null) {
pager.addClass(style);
}
;
e.append(pager);
pager.css("left", e.outerWidth() * 0.5 - pager.outerWidth() * 0.5 + "px");
pager.find("li").click(function () {
$showbanner(e, $(this).val(), items, num);
});
var lefter = $('');
var righter = $('');
if (style != null) {
lefter.addClass(style);
righter.addClass(style);
}
;
e.append(lefter);
e.append(righter);
lefter.click(function () {
i--;
if (i < 1) {
i = page;
}
$showbanner(e, i, items, num);
});
righter.click(function () {
i++;
if (i > page) {
i = 1;
}
$showbanner(e, i, items, num);
});
}
;
});
$showbanner = function (e, i, items, num) {
var after = 0, leftx = 0;
leftx = -Math.ceil(e.outerWidth() / items) * (items) * (i - 1);
if (i * items > num) {
after = i * items - num;
leftx = -Math.ceil(e.outerWidth() / items) * (num - items);
}
;
e.find(".carousel").stop(true, true).animate({"left": leftx + "px"}, 800);
e.find(".pointer li").removeClass("active");
e.find(".pointer li").eq(i - 1).addClass("active");
};
$(".spy a").each(function () {
var e = $(this);
var t = e.closest(".spy");
var target = t.attr("data-target");
var top = t.attr("data-offset-spy");
var thistarget = "";
var thistop = "";
if (top == null) {
top = 0;
}
;
if (target == null) {
thistarget = $(window);
} else {
thistarget = $(target);
}
;
thistarget.bind("scroll", function () {
if (target == null) {
thistop = $(e.attr("href")).offset().top - $(window).scrollTop() - parseInt(top);
} else {
thistop = $(e.attr("href")).offset().top - thistarget.offset().top - parseInt(top);
}
;
if (thistop < 0) {
t.find('li').removeClass("active");
e.parents('li').addClass("active");
}
;
});
});
$(".fixed").each(function () {
var e = $(this);
var style = e.attr("data-style");
var width = parseInt(e.attr("data-offset-fixed-width"));
var top = e.attr("data-offset-fixed");
if (top == null) {
top = e.offset().top;
} else {
top = e.offset().top - parseInt(top);
}
if (style == null) {
style = "fixed-top";
}
$(window).bind("scroll", function () {
var thistop = top - $(window).scrollTop();
if (style == "fixed-top" && thistop < 0) {
e.addClass("fixed-top");
if (width != null && width != 0) {
e.css("width", $(window).width() + width);
}
//alert(e.parent().width());
} else {
e.removeClass("fixed-top");
if (width != null && width != 0) {
e.css("width", "100%");
}
}
var thisbottom = top - $(window).scrollTop() - $(window).height();
if (style == "fixed-bottom" && thisbottom > 0) {
e.addClass("fixed-bottom");
} else {
e.removeClass("fixed-bottom");
}
;
});
});
})