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();
})();