// JavaScript Document
var GJAD = {
chooseAble:false,
dropAble:false,
delStr:false,
styleStr:"gj",
fn:null,
index:1,
hideObjArr:new Array(),
history_num:0,
new_num:0,
posX:null,
posY:null,
sTop:20,
mouse_tips:null,
selectElement:null,
SetFunction:function(fn){
GJAD.fn = fn;
},
AddRules:function(rules)
{
chrome.extension.sendRequest({cmd: "add_rules", rules: rules}, function(response)
{
});
},
DelRules:function(rules)
{
chrome.extension.sendRequest({cmd: "del_rules", rules: rules}, function(response)
{
});
},
Confirm:function(rules)
{
chrome.extension.sendRequest({cmd: "confirm", rules: rules}, function(response)
{
});
},
Cancel:function(rules)
{
chrome.extension.sendRequest({cmd: "cancel", rules: rules}, function(response)
{
});
},
initHtml:function(str){
var htmlstr = '
'+
''+
''+
'';
var liststr = ''+
'
'+
'
'+
'
'+
'
\u60a8\u8fd8\u6ca1\u6709\u521b\u5efa\u81ea\u5df1\u7684\u8fc7\u6ee4\u89c4\u5219~\u8d76\u5feb\u8bd5\u4e00\u4e0b\u5427\uff01
'+
'
'+
'
'+
'
'+
'
'+
'
'+
'
'+
'';
$("body").append(htmlstr).append(liststr);
GJAD.initEvent();
GJAD.initHistory(str);
},
initEvent:function(){
$(".clickHide_expand").toggle(function(){
$(this).addClass("clickHide_collapse");
$(this).parents("dl").children("dd").hide();
},function(){
$(this).removeClass("clickHide_collapse");
$(this).parents("dl").children("dd").show();
});
$(".clickHide_title").mousedown(function(e){
GJAD.dropAble = true;
var of = $("#clickHide_list").offset();
GJAD.posX = e.clientX - of.left;
GJAD.posY = e.clientY - of.top + $(window).scrollTop();
}).mouseup(function(){
GJAD.dropAble = false;
GJAD.sTop = $("#clickHide_list").offset().top - $(window).scrollTop();
});
$("#clickHide_list").mouseenter(function(){
$(this).removeClass("clickHide_alpha");
GJAD.chooseAble = false;
}).mouseleave(function(){
$(this).addClass("clickHide_alpha");
GJAD.chooseAble = true;
});
$("#clickHide_btn_cancel,.clickHide_close").click(function(){GJAD.cancel()});
$("#clickHide_btn_alladd").click(function(){GJAD.allAdd()});
$("#clickHide_history a").click(function(){GJAD.allCancel(0)});
$("#clickHide_new a").click(function(){GJAD.allCancel(1)});
if ($.browser.msie && ($.browser.version == "6.0") && !$.support.style){
$(window).scroll(function(){
$('#clickHide_list').css({"top":$(this).scrollTop() + GJAD.sTop});
})
}
},
initHistory:function(str){
if(!str){
return false;
}
var hobj = str.split("<|>");
if(hobj){
for(var i=0; i")[1];
var elementId = spobj.indexOf("#")>=0 ? spobj : null;
var url = spobj.indexOf("http")>=0 ? spobj : null;
var elementClasses = spobj.indexOf(".")>=0 ? spobj : null;
var type = 1;
var title = cutstr($.trim($("title").html()),20);
clickHideFilters = new Array();
selectorList = new Array();
if(url){
type = 2;
clickHideFilters.push(relativeToAbsoluteUrl(url));
}else{
clickHideFilters.push(document.location.host + "@@" + spobj);
}
var od_str = document.location.host+'<#>'+spobj+'<#>'+type+'<#>'+title;
$("#clickHide_history").append(''+clickHideFilters[0]+'\u5220\u9664');
$("#dda_"+GJAD.index).click(function(){
GJAD.delRules(spobj,type,$(this).parents("dd").attr("index"),0);
});
$("#clickHide_history").show();
GJAD.history_num+=1;
GJAD.index+=1;
GJAD.fix_num();
}
$("#clickHide_history .clickHide_expand").click();
$(".clickHide_def").hide();
}
},
SetStyle:function(str){
GJAD.styleStr = str;
},
StartCustom:function(str){
var startEvents=function(){
GJAD.initHtml(str);
GJAD.setCover();
GJAD.chooseAble = true;
$(document).bind("mouseover",GJAD.clickHide_mouseOver);
$(document).bind("mouseout",GJAD.clickHide_mouseOut);
$(document).bind("mousedown",GJAD.clickHide_mouseClick);
$(document).bind("mousemove",GJAD.clickHide_mouseMove);
}
if(!document.getElementById("clickHide_list")){
startEvents();
}
},
StopCustom:function(){
GJAD.chooseAble = false;
GJAD.resetAll();
},
clickHide_mouseOver:function(e){
if(GJAD.chooseAble){
if((e.target.id || e.target.className || e.target.src) && $(e.target).width()<1024){
GJAD.selectElement = e.target;
var target_left = $(GJAD.selectElement).offset().left,
target_top = $(GJAD.selectElement).offset().top,
target_width = $(GJAD.selectElement).innerWidth(),
target_height = $(GJAD.selectElement).innerHeight();
$('#clickHide_border_left').css({'left': target_left+ 'px','top': target_top + 'px','height': target_height});
$('#clickHide_border_top').css({'left': target_left+ 'px','top': target_top + 'px','width': target_width});
$('#clickHide_border_right').css({'left': target_left+target_width +'px','top': target_top + 'px','height': target_height});
$('#clickHide_border_bottom').css({'left': target_left+ 'px','top': target_top + target_height+'px','width': target_width+2});
$('.clickHide_border').show();
$(e.target).addClass("clickHide_mouse_normal");
$(".clickHide_mouse_on").show().removeClass("clickHide_mouse_show");
GJAD.mouse_tips = setTimeout("GJAD.showMouseTips()",200);
}
}
},
showMouseTips:function(){
$(".clickHide_mouse_on").addClass("clickHide_mouse_show");
},
clickHide_mouseOut:function(e){
$(e.target).removeClass("clickHide_mouse_normal");
$('.clickHide_border').hide();
clearTimeout(GJAD.mouse_tips);
$(".clickHide_mouse_on").hide();
},
clickHide_mouseClick:function(e){
if(!GJAD.chooseAble || !e.target || $(e.target).parents("#clickHide_list").attr("id")=="clickHide_list" || $(e.target).attr("id")=="clickHide_list" || $(e.target).width()>1024){
return false;
}
$(e.target).removeClass("clickHide_mouse_normal");
var elt = e.target;
if(elt.className && elt.className == "gj_adblock_cover") {
elt = GJAD.selectElement.prisoner;
var url = GJAD.selectElement.prisonerURL;
$(e.target).hide();
}else{
var url = elt.src ? normalizeURL(relativeToAbsoluteUrl(elt.src)) : null;
}
var elementId = elt.id ? elt.id.split(' ').join('') : null;
var elementClasses = elt.className ? elt.className.replace(/\s+/g, ' ').replace(/^\s+|\s+$/g, '').split(' ') : null;
var type = 1;
var od_obj = null;
var title = cutstr($.trim($("title").html()),20);
clickHideFilters = new Array();
selectorList = new Array();
if(elementId){
od_obj = "#" + elementId;
clickHideFilters.push(document.location.host + "@@#" + elementId);
}else if(elementClasses) {
for(var i = 0; i < elementClasses.length; i++) {
selectorList.push("." + elementClasses[i]);
clickHideFilters.push(document.location.host + "@@." + elementClasses[i]);
}
od_obj = selectorList[0];
}else if(url) {
type = 2;
od_obj = url;
clickHideFilters.push(relativeToAbsoluteUrl(url));
}
var od_str = document.location.host+'<#>'+od_obj+'<#>'+type+'<#>'+title;
if(type==1){
$(od_obj).hide();
//$(e.target).hide();
}else{
$(elt).hide();
$(e.target).hide();
//$("img[src='"+od_obj+"'],embed[src='"+od_obj+"'],iframe[src='"+od_obj+"']").hide();
}
if(od_obj!=null){
var ishide = $("#clickHide_new dd:visible").length==0 && GJAD.new_num!=0 ? "none" : "block";
$("#clickHide_new").append(''+clickHideFilters[0]+'\u5220\u9664');
$("#dda_"+GJAD.index).click(function(){
GJAD.delRules(od_obj,type,$(this).parents("dd").attr("index"),1);
});
$("#clickHide_new").show();
$('.clickHide_border').hide();
$(".clickHide_def").hide();
GJAD.hideObjArr[GJAD.index] = elt;
GJAD.new_num+=1;
GJAD.index+=1;
GJAD.fix_num();
GJAD.setCover();
$(".clickHide_info").scrollTop(999);
}
e.preventDefault();
return false;
},
clickHide_mouseMove:function(e){
$(".clickHide_mouse_on").css({"top":e.pageY,"left":e.pageX+10});
if(GJAD.dropAble){
//var of = $("#clickHide_list").offset();
$("#clickHide_list").css({"top":e.clientY-GJAD.posY,"left":e.clientX-GJAD.posX});
}
},
setCover:function(){
$(".gj_adblock_cover").remove();
var elts = $('object:visible,iframe:visible');
for(var i=0; i"+od : GJAD.delStr=od;
}
$("#"+aobj+" dd[index='"+index+"']").remove();
if(type==1){
$(obj).show();
}else{
//$("img[src='"+obj+"']").show();
$(GJAD.hideObjArr[index]).show();
}
GJAD.fix_num();
GJAD.setCover();
return false;
},
allCancel:function(ud){
if(ud==1){
$("#clickHide_new dd").each(function(){
$(this).children("a").click();
})
}else{
$("#clickHide_history dd").each(function(){
$(this).children("a").click();
})
}
GJAD.fix_num();
},
allAdd:function(){
var tp = "";
$("#clickHide_new dd").each(function(){
if(tp){
tp=tp+"<|>"+$(this).attr("od");
}else{
tp=$(this).attr("od");
}
});
GJAD.AddRules(tp);
GJAD.DelRules(GJAD.delStr);
if(tp!="" || GJAD.delStr){
GJAD.Confirm();
window.location.reload(true);
};
GJAD.resetAll();
},
cancel:function(){
if($("#clickHide_new dd:visible").length!=0 || GJAD.delStr){
GJAD.Cancel();
window.location.reload(true);
};
GJAD.resetAll();
},
resetAll:function(){
GJAD.chooseAble = false;
$(document).unbind("mouseover",GJAD.clickHide_mouseOver);
$(document).unbind("mouseout",GJAD.clickHide_mouseOut);
$(document).unbind("mousedown",GJAD.clickHide_mouseClick);
$(document).unbind("mousemove",GJAD.clickHide_mouseMove);
$("#clickHide_border_left,#clickHide_border_right,#clickHide_border_top,#clickHide_border_bottom,#clickHide_list,.clickHide_mouse_on").remove();
$(".gj_adblock_cover").remove();
GJAD.index=1;
GJAD.history_num=0;
GJAD.new_num=0;
},
fix_num:function(){
var total = GJAD.history_num + GJAD.new_num;
if(total==0){
$(".clickHide_word_title").html('\u60a8\u8fd8\u6ca1\u6709\u4e3a\u5f53\u524d\u9875\u9762\u5efa\u7acb\u89c4\u5219');
}else{
$(".clickHide_def").hide();
$(".clickHide_word_title").html('\u60a8\u5df2\u4e3a\u5f53\u524d\u9875\u9762\u5efa\u7acb 0 \u6761\u8fc7\u6ee4\u89c4\u5219');
}
$("#clickHide_history_num").text(GJAD.history_num);
$("#clickHide_new_num").text(GJAD.new_num);
$("#clickHide_num").text(total);
},
}
document.body.onselectstart=function(){
if(GJAD.dropAble){
return false;
}
}
// Extracts source URL from an IMG, OBJECT, EMBED, or IFRAME
function getElementURL(elt) {
// Check children of object nodes for "param" nodes with name="movie" that specify a URL
// in value attribute
var url;
if(elt.tagName.toUpperCase() == "OBJECT" && !(url = elt.getAttribute("data"))) {
// No data attribute, look in PARAM child tags for a URL for the swf file
//var params = $(elt).querySelectorAll("param[name=\"movie\"]");
var params = $(elt).children("param[name='movie']");
// This OBJECT could contain an EMBED we already nuked, in which case there's no URL
if(params[0])
url = params[0].getAttribute("value");
else {
params = $(elt).children("param[name='src']");
if(params[0])
url = params[0].getAttribute("value");
}
} else if(!url) {
url = elt.getAttribute("src") || elt.getAttribute("href");
}
return url;
}
function relativeToAbsoluteUrl(url){
// If URL is already absolute, don't mess with it
if (!url || /^[\w\-]+:/i.test(url))
return url;
// Leading / means absolute path
if(url[0] == '/')
return document.location.protocol + "//" + document.location.host + url;
// Remove filename and add relative URL to it
var base = document.baseURI.match(/.+\//);
if(!base)
return document.baseURI + "/" + url;
return base[0] + url;
}
function normalizeURL(url){
var components = url.match(/(.+:\/\/.+?)\/(.*)/);
if(!components)
return url;
var newPath = removeDotSegments(components[2]);
if(newPath.length == 0)
return components[1];
if(newPath[0] != '/')
newPath = '/' + newPath;
return components[1] + newPath;
}
function removeDotSegments(u){
var r = '', m = [];
if (/\./.test(u)) {
while (u !== undefined && u !== '') {
if (u === '.' || u === '..') {
u = '';
} else if (/^\.\.\//.test(u)) { // starts with ../
u = u.substring(3);
} else if (/^\.\//.test(u)) { // starts with ./
u = u.substring(2);
} else if (/^\/\.(\/|$)/.test(u)) { // starts with /./ or consists of /.
u = '/' + u.substring(3);
} else if (/^\/\.\.(\/|$)/.test(u)) { // starts with /../ or consists of /..
u = '/' + u.substring(4);
r = r.replace(/\/?[^\/]+$/, '');
} else {
m = u.match(/^(\/?[^\/]*)(\/.*)?$/);
u = m[2];
r = r + m[1];
}
}
return r;
} else {
return u;
}
}
function cutstr(str,len){
var str_length = 0;
var str_len = 0;
str_cut = new String();
str_len = str.length;
for(var i = 0;i 4){
//中文字符的长度经编码之后大于4
str_length++;
}
str_cut = str_cut.concat(a);
if(str_length>=len){
str_cut = str_cut.concat("...");
return str_cut;
}
}
//如果给定字符串小于指定长度,则返回源字符串;
if(str_length