/* 

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

Written by Sameer D'Costa http://dcostanet.net/wordpress
Email: sameerdcosta@gmail.com

* Version 0.1
  ** Initial version 
* Version 0.2 
  ** At 0% remove the "posted by" and "tags" divs
  ** Expand out an item if we have a mouseover for 1 sec

*/
var slider = new Slider(document.getElementById("slider-1"),
                   document.getElementById("slider-input-1"));

cDivs = document.getElementsByTagName('div');

var reallyDoSomething = 1; // to limit the number of multiple expansions.
var currentTimeout = null;
var mydivs = new Array();
var mydivheight = new Array();
// var tmpdivs = new Array();
j=0;
for (i=0;i<cDivs.length; i++){
	if (cDivs[i].className == 'content') {
		mydivs[j] = cDivs[i]; 		
		mydivs[j].style.overflow = "hidden";
		mydivs[j].sliderarray = j;
		mydivs[j].parentNode.onmouseover = sliderExpandThisItem;
		mydivs[j].parentNode.onmouseout = sliderContractThisItem;
		mydivheight[j] = (mydivs[j].scrollHeight > mydivs[j].offsetHeight)?  mydivs[j].scrollHeight : mydivs[j].offsetHeight;
		j++;

	}

}

function itemToArray(node) {
// This function expects an li (item) and returns its position in the
// mydivs array. 
var retValue = 0;
tmpdivs = node.getElementsByTagName("div");
	for (i=0;i<tmpdivs.length; i++){
	        if (tmpdivs[i].className == 'content' && tmpdivs[i].sliderarray >=0 &&
					tmpdivs[i].sliderarray < mydivs.length) {
						retValue = tmpdivs[i].sliderarray;
						break;
					}
	}

return retValue;
}

if (slider) {
	slider.setMinimum(0);
	slider.setMaximum(100);
	oldval = getCookie("slider");
	if(!oldval && (oldval < 0 || oldval > 100)) {oldval = 100;}
	slider.setValue(oldval);
	onsliderchange();
	slider.onchange = function () {
		onsliderchange();
	}
}

function onsliderchange() {
	setCookie("slider",slider.getValue(), sliderCookiePath);
	if (slider.getValue() == 100) {
		for(i=0;i<mydivs.length; i++){
			expandItem100percent(i, 0);
		}
	}else if (slider.getValue() > 50) {
		for(i=0;i<mydivs.length; i++){
			mydivs[i].style.display = "block" ;
			if(mydivheight[i] > 100) {
				mydivs[i].style.height = Math.round(100 +
				(mydivheight[i]- 100) * (slider.getValue() - 50) / 50) + "px";
			} else {
				mydivs[i].style.height = "";
			}
		}
	} else if (slider.getValue()) {
		for(i=0;i<mydivs.length; i++){
			mydivs[i].style.display = "block" ;
			if(mydivheight[i] > slider.getValue() * 2) {
				mydivs[i].style.height = slider.getValue() * 2 + "px";
			}else{
				mydivs[i].style.height = "";
			}
		}
	} else {
		for(i=0;i<mydivs.length; i++){
			expandItem0percent(i, 0);
		}
	}

}

function expandItem100percent(i, checkDoSomething) {
	// default is to ignore the reallyDoSomething variable
	if (!checkDoSomething || reallyDoSomething) {
	       mydivs[i].style.display = "block" ;
	       tmpdivs = mydivs[i].parentNode.getElementsByTagName("h5");
	       if (tmpdivs.length >= 2) {
			tmpdivs[0].style.display = "block";
			tmpdivs[1].style.display = "block";
	       }
	       mydivs[i].style.height = "";
	       if (checkDoSomething) { reallyDoSomething = 0;}
	}
}

function expandItem0percent(i, checkDoSomething) {
	if (!checkDoSomething || reallyDoSomething) {
	    mydivs[i].style.display = "none" ;
	    tmpdivs = mydivs[i].parentNode.getElementsByTagName("h5");
	    if (tmpdivs.length >= 2) {
		     tmpdivs[0].style.display = "none";
		     tmpdivs[1].style.display = "none";
	    }
	    if (checkDoSomething) { reallyDoSomething = 0;}
	}
}

function sliderExpandThisItem() {
	reallyDoSomething = 1;
	if(currentTimeout) {
		clearTimeout(currentTimeout); 
		currentTimeout = null;
	}
	currentTimeout = self.setTimeout('onsliderchange(); expandItem100percent(' + itemToArray(this) + ', 1)', 1500);
}

function sliderContractThisItem() {
	reallyDoSomething = 0;
	if(currentTimeout) {
		clearTimeout(currentTimeout); 
		currentTimeout = null;
	}	
	//currentTimeout = self.setTimeout('onsliderchange(); expandItem0percent(' + itemToArray(this) + ', 1)', 1500);
	//onsliderchange();
}
