iGoogle gadget rotate

By MIZUNUMA Yuto Last update Mar 20, 2012 — Installed 1,786 times.

There are 4 previous versions of this script.

// ==UserScript==
// @name           iGoogle gadget rotate
// @namespace      http://d.hatena.ne.jp/miz999/
// @include        http://www.google.co.jp/ig*
// @include        http://www.google.com/ig*
// @description		rotate iGoogle gadget. press n rotate manually. Sidebar and Searcharea remove. 
////about remove method , original code is http://userscripts.org/scripts/show/54614
// ==/UserScript==

(function(){
    //rotate gadget
    var rotate = false;
    var intervalMin = 5; //5 min
    var waitCount = 0;

    function removeBar(){
        //sidebar
        //var sideBar;
        //var sideBar = document.getElementsByClassName('G-MS kdSidebarHolder')[0];
        
        // var elements = document.getElementsByTagName('td')
        // for(i=0;i<elements.length;i++){
        //     if (elements[i].className){
        //         if (elements[i].className.match(/.+ kdSidebarHolder/)){
        //             sideBar =  elements[i];
        //         }
        //     }
        // }
        
	    //Seach area main
	    var searchArea = document.getElementById('nhdrwrap');
	    //login user info and etc
	    var userName = document.getElementById('gb');
	    //search area sub


        var kdAppBar = document.getElementsByClassName('kdAppBar')[0];
	    if(kdAppBar){
		    kdAppBar.style.display = "none";
        }
        
//         if(!(searchArea && userName)){
// //        if(!(sideBar && searchArea && userName)){
//             GM_log("timeout:" + waitCount + userName + ':' + searchArea)
//             waitCount++;
//             if(waitCount > 5){
//                 return;
//             }
// 		    setTimeout(removeBar, 2000);
//             return;
//         }
            
	    // if(sideBar){
		//     sideBar.style.display = "none";
        // }


	    //Seach area main
//        GM_log(searchArea);
	    if(searchArea){
            // cutSearchArea = searchArea.parentNode.removeChild(searchArea);
            // footer = document.getElementsByClassName('footerwrap footer_tile_image')[0];
            // footer.style.height = "300px";
	        // footer.insertBefore(cutSearchArea, footer.firstChild);
		    searchArea.style.display = "none";
	    }

	    //login user info and etc
	    if(userName){
//		    var rtnChild = userName.parentNode.removeChild(userName);
//            footer = document.getElementsByClassName('footerwrap footer_tile_image')[0];
            userName.style.display = "none";
	    }

 	    //add sidebar visible/hide button
 	    var guser = document.getElementById('footer_igoogle_in_english_link');

// 	    if(guser){
// 		    guser.parentNode.appendChild(document.createElement("br"));
// //		    guser.parentNode.appendChild(document.createTextNode(" - "));
// 		    var button = document.createElement("a");
// //		    gbg = document.getElementById('gbg');
// //	        gbg.insertBefore(button, gbg.firstChild);
// //		    document.getElementById('gbg').appendChild(button);
// //		    guser.appendChild(button);
// 		    guser.parentNode.appendChild(button);
// 		    button.innerHTML = "Sidebar";
// 		    button.setAttribute("href", "#");
// 		    button.addEventListener("click", function(){
// 			    sideBar.style.display = (sideBar.style.display == "" ? "none" : "");
// 			    return false;
// 		    }, true);
// 	    }
	    
	    //add search area visible/hide button
	    if(guser){
		    guser.parentNode.appendChild(document.createTextNode(" - "));
		    var button2 = document.createElement("a");
		    guser.parentNode.appendChild(button2);
		    button2.innerHTML = "toggle UpperArea";
		    button2.setAttribute("href", "#");
		    button2.addEventListener("click", function(){
			    userName.style.display = (userName.style.display == "" ? "none" : "");
			    searchArea.style.display = (searchArea.style.display == "" ? "none" : "");
			    kdAppBar.style.display = (kdAppBar.style.display == "" ? "none" : "");
			    return false;
		    }, true);
	    }	
	}
	//sub func
	function getChildNodeById(node, idName, mStr){
		var n = node.getElementById(idName);
		var nodes = n.childNodes;
		var divArray = new Array(0);
		for(var i=0; i<nodes.length;i++){
			if(nodes[i].id.match(mStr)){
				divArray.push(nodes[i]);
			}
		}
		return divArray;
	}
	
	//timer trigger func rotate gadget
	function onFire(){
		var cA = getChildNodeById(document, "t_1", "c_");
		
		var c1;
		while(c1 = cA.shift()){
			var divs = c1.childNodes;
			var divArray = new Array(0);
			while(divs.length > 0){
				if(divs[0].id.match('m_')){
					divArray.push(c1.removeChild(divs[0]));
				} else {
					c1.removeChild(divs[0]);
				}
			}
			divArray.push(divArray.shift());
			while(divArray.length){
				c1.appendChild(divArray.shift());
			}
		}
	}

	if(rotate){
		setInterval(onFire, 1000*60*intervalMin);
	}

	// press n , rotate manually
	window.addEventListener("keydown",function(e) {
		
		var ctrl    = typeof e.modifiers == 'undefined' ? e.ctrlKey : e.modifiers & Event.CONTROL_MASK; 
		var shift   = typeof e.modifiers == 'undefined' ? e.shiftKey : e.modifiers & Event.SHIFT_MASK;

		if(e.keyCode==80 && !ctrl && !shift){ // n
			onFire();
		}
	}, false);

    removeBar();

 })();