hwm_Ivent_Filter

Clan-filter on time ivent (2014.11.21)

// ==UserScript==
// @name           hwm_Ivent_Filter
// @description    Clan-filter on time ivent (2014.11.21)
// @include        http://*heroeswm.ru/tj_event2.php*
// @include        http://178.248.235.15/tj_event2.php*
// @version	   0.2.0
// @author	   HAPblB
// @grant          GM_getValue
// @grant          GM_setValue
// @grant          GM_addStyle
// @namespace https://greasyfork.org/users/16830
// ==/UserScript==

var version = "0.2.0";
//tj_event.php
var event_name='tj';
var event_desc='tj_event2';



var hide_map=GM_getValue('hide_map',1);
var klan=GM_getValue('klan_id','');
var show_outklan=GM_getValue('show_outklan',1);
var hide_ico=GM_getValue('hide_ico',1);
var player_id = getPlayerId();
var klan_id='#'+klan;
var alli=document.getElementsByTagName('img');

if(location.href.match(event_name+'_event2')){
var cssStyle = "";
cssStyle += ".war_options {FONT-SIZE: 10px;BORDER-RIGHT:#020202 2px solid ; BORDER-TOP: #020202 2px solid ;  VERTICAL-ALIGN: top; BORDER-LEFT:#020202 2px solid ;  BORDER-BOTTOM:#020202 2px solid ; padding = '5px';}";
GM_addStyle(cssStyle);

var newdiv = document.createElement('div');
newdiv.className="war_options";
var div_content='';
div_content+='<table border=1 cellspacing=0 width=100%><tr><td width=50%>ID \u043A\u043B\u0430\u043D\u0430:<input type=text id=klan_id  size=4 value='+klan+'></td>';
div_content+='<td width=50%><label for="hdmp" style="cursor:pointer;"><input type=checkbox '+(hide_map?'checked':'')+' id=hdmp>&nbsp;\u0441\u043F\u0440\u044F\u0442\u0430\u0442\u044C \u043F\u043E\u043B\u0435\u0432\u0443\u044E \u043A\u0430\u0440\u0442\u0443</label></td></tr><tr>';
div_content+='<td width=50%><label for="hide_ico" style="cursor:pointer;"><input type=checkbox '+(hide_ico?'checked':'')+' id=hide_ico>&nbsp;\u0441\u043F\u0440\u044F\u0442\u0430\u0442\u044C \u043A\u043B\u0430\u043D-\u0437\u043D\u0430\u0447\u043A\u0438</label></td><td><label for="swout" style="cursor:pointer;"><input type=checkbox '+(show_outklan?'checked':'')+' id=swout>\u043E\u0442\u043E\u0431\u0440\u0430\u0436\u0430\u0442\u044C \u0432\u043D\u0435\u043A\u043B\u0430\u043D&nbsp;</label><input style="float: right;" type=button value="OK" id="apply_filter"></td>';
div_content+='</tr></table>';
newdiv.innerHTML=div_content;
document.body.appendChild(newdiv);




var obj_fl=document.getElementsByTagName('embed');
//alert(obj_fl.length);
var mn_td;
var top_tbl;
var left_td;

if(obj_fl.length>2)
	{
mn_td=obj_fl[2].parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.nextSibling.childNodes;}
else{
	for(var i=0;i<alli.length;i++)
		if(alli[i].src.indexOf('/i/'+event_name+'_event2.jpg')>-1)
		{
           // alert(alli[i].src);
		//alert(alli[i].parentNode.nextSibling.childNodes.length);
		//mn_td=alli[i].parentNode.parentNode.parentNode.parentNode.parentNode.childNodes;
            mn_td=alli[i].parentNode.parentNode.parentNode.parentNode.parentNode.nextSibling.childNodes;
		var newhr = document.createElement('hr');
		newhr.setAttribute('style','width: 80%');
           // alert(alli[i].parentNode.parentNode.parentNode.parentNode.parentNode.nextSibling.childNodes[0].nodeName);
		alli[i].parentNode.parentNode.parentNode.parentNode.parentNode.nextSibling.insertBefore(newhr, mn_td[0]);
		alli[i].parentNode.parentNode.parentNode.parentNode.parentNode.nextSibling.insertBefore(newdiv, newhr);
		left_td=alli[i].parentNode.parentNode;
		
            break;
		}
}

//obj_fl[2].parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.nextSibling.insertBefore(newdiv, mn_td[0]);
document.getElementById('klan_id').addEventListener('blur',function(){GM_setValue('klan_id',document.getElementById('klan_id').value);
klan_id='#'+GM_getValue('klan_id','');},false);
//alert(klan_id);
document.getElementById('apply_filter').addEventListener('click',init_war,false);
cut_tables(klan_id,show_outklan,hide_map,hide_ico);
}

function init_war(){
GM_setValue('klan_id',document.getElementById('klan_id').value);
klan_id='#'+GM_getValue('klan_id','');
if(document.getElementById('hdmp').checked==true)hide_map=1; else hide_map=0;
if(document.getElementById('hide_ico').checked==true)hide_ico=1; else hide_ico=0;
if(document.getElementById('swout').checked==true)show_outklan=1; else show_outklan=0;
GM_setValue('hide_map',hide_map);
GM_setValue('hide_ico',hide_ico);
GM_setValue('show_outklan',show_outklan);
location.reload();
}


function cut_tables(klan_id,show_outklan,hide_map,hide_ico){
//if(hide_map&&obj_fl.length>2)obj_fl[2].parentNode.removeChild(obj_fl[2]);


var tmp_cell;
for(var i=mn_td.length-1;i>0; i--)
{
    
  //  alert(mn_td[i].innerHTML);
    if(mn_td[i].nodeName=='TABLE'&&mn_td[i].childNodes.length>0)
        {
			//alert(i+'\n'+mn_td.length+'\n'+mn_td[i].innerHTML);
            
			var tmp_tr=mn_td[i].childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes[0].childNodes;   
			//alert(tmp_tr.length);
            for(var j=1;j< tmp_tr.length;j++){
				//alert('!!!');
/*					if(tmp_tr[j].childNodes[0].getAttribute('rowspan')){
					tmp_cell=tmp_tr[j].childNodes[0].innerHTML;
					tmp_tr[j].childNodes[0].setAttribute('rowspan','1');
					}
					if(tmp_tr[j].childNodes.length!=3){
					
					var new_td= document.createElement('td');
					new_td.innerHTML=tmp_cell;
					new_td.setAttribute('class','wbwhite');
					tmp_tr[j].insertBefore(new_td, tmp_tr[j].childNodes[0]);				
					}
*/

		//alert('!');		
				tmp_tr[j].childNodes[0].style.width='100px';
				//tmp_tr[j].childNodes[1].style.width='95px';



			
				var hidding=true;
				
				if(hide_ico){
				var all_ico=tmp_tr[j].childNodes[1].getElementsByTagName('img');
					 for(e=all_ico.length-1;e>=0;e--)
						if(all_ico[e].src.match('i_clans'))all_ico[e].parentNode.removeChild(all_ico[e]);
				}
//                    	alert(tmp_tr[j].childNodes[1].innerHTML);
             				var tmp_tr_inner=tmp_tr[j].childNodes[1].innerHTML;
				
				if(tmp_tr_inner.match('>'+klan_id+'<')||tmp_tr_inner==klan_id ||klan_id=='#'){ 
				if(klan_id!='#'){//alert(klan_id);
					// tmp_tr[j].childNodes[0].innerHTML=tmp_tr[j].childNodes[0].innerHTML.replace(klan_id,'&nbsp;<a href="http://www.heroeswm.ru/clan_info.php?id='+klan_id.replace('#','')+'"><img src="http://dcdn.heroeswm.ru/i_clans/l_'+klan_id.replace('#','')+'.gif" border=0></a>'+klan_id);
					 }
				hidding=false;
				
				
				} else 
				if(tmp_tr[j].childNodes[1].innerHTML.match(event_desc+'_join')&&show_outklan)
					{
					 tmp_tr[j].childNodes[0].innerHTML=tmp_tr[j].childNodes[0].innerHTML.replace(klan_id,'&nbsp;<a href="http://dcdn.heroeswm.ru/clan_info.php?id='+klan_id.replace('#','')+'"><img src="http://www.heroeswm.ru/i_clans/l_'+klan_id.replace('#','')+'.gif" border=0></a>'+klan_id);
					 hidding=false;
					} else
				if(tmp_tr[j].childNodes[0].innerHTML.match(event_desc+'_create'))hidding=false;
				
				else 
				if(tmp_tr[j].childNodes[1].innerHTML.match('id='+player_id+'">'))
					hidding=false;
				
				if(hidding)tmp_tr[j].style.display='none'; else tmp_tr[j].style.display='';
				//setColoredKKlan(tmp_tr[j]);
				
				if(tmp_tr_inner.match('#')&&!tmp_tr_inner.match('img')&&!tmp_tr_inner.match('px;"> vs#'))
					{
					var pattern=/(.*\>#)(\d*)\<(.*)/;
					var pattern2=/(#)(\d*)/;

					var img_beg='<img border="0" src="http://www.heroeswm.ru/i_clans/l_';
					var img_end='.gif" border=0>';
					if(tmp_tr_inner.match('clan_info')){
					
					
					tmp_tr[j].childNodes[0].innerHTML=tmp_tr[j].childNodes[0].innerHTML.replace('#'+pattern.exec(tmp_tr_inner)[2],img_beg+pattern.exec(tmp_tr_inner)[2]+img_end+'#'+pattern.exec(tmp_tr_inner)[2]);
					
					} else {tmp_tr[j].childNodes[0].innerHTML=tmp_tr[j].childNodes[0].innerHTML.replace('#'+pattern2.exec(tmp_tr_inner)[2],img_beg+pattern2.exec(tmp_tr_inner)[2]+img_end+'#'+pattern2.exec(tmp_tr_inner)[2]);}
					

//alert(tmp_tr_inner);
					}
					}
				
				
				}
		}
       // break;

	fake_img='/i_clans/l_.gif';
	for(var i=0;i<alli.length;i++)
		{
		if(alli[i].src.indexOf(fake_img)>=0){alli[i].parentNode.removeChild(alli[i]);};
		if(alli[i].src.indexOf('i/b_war.jpg')>=0){
		//alert(klan_id);
			left_td=alli[i].parentNode.parentNode.parentNode;
			top_tbl=left_td.childNodes[3].childNodes[0].childNodes[2].childNodes[0].childNodes;
				for(var y=0;y<top_tbl.length;y++)
					{
					//alert(top_tbl[y].innerHTML);
					
					if(top_tbl[y].childNodes[1].innerHTML.indexOf('>'+klan_id+'<')>=0)
						{//alert('!!!!!!!!!!');
						var new_style='background: none repeat scroll 0% 0% rgb(224, 170, 170);';
						top_tbl[y].childNodes[0].setAttribute('style',new_style);
						top_tbl[y].childNodes[1].setAttribute('style',new_style);
						top_tbl[y].childNodes[2].setAttribute('style',new_style);
						top_tbl[y].childNodes[3].setAttribute('style',new_style);
						}
					}
	
			}
		}
	}


function getPlayerId(){
	var all_li_subnav = document.evaluate("//li[@class='subnav']", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
	var my_li;
	var elm;
	var prev_elm;
	
	// get player ID
	my_li = all_li_subnav.snapshotItem(5);
	prev_elm = my_li.childNodes[1].childNodes[1];
		//alert("Player ID = \n" +prev_elm.innerHTML);
	//
	var ptrn = /<a href="pl_hunter_stat\.php\?id=(.*)">(.*)<\/a>/;
	var pid = prev_elm.innerHTML.replace(ptrn, "$1")
	
	return pid;
}

function setColoredKKlan(my_tr){
     var clan_td = my_tr.childNodes[0];
     var clan_td_str = my_tr.childNodes[0].innerHTML;
     //
     if(clan_td_str.match('#A')){clan_td.style.background = "#FFCCCC";}
     else if(clan_td_str.match('#B')){clan_td.style.background = "#FFFFCC";}
     else if(clan_td_str.match('#C')){clan_td.style.background = "#FFCCFF";}
     else if(clan_td_str.match('#D')){clan_td.style.background = "#ccffcc";}     
     else if(clan_td_str.match('#E')){clan_td.style.background = "#ccccff";}     
     else if(clan_td_str.match('#F')){clan_td.style.background = "#ffffff";}     
     
}