window.onload = function(){
	YAHOO.util.Event.addListener('options', "mouseover", goBig);
	YAHOO.util.Event.addListener('options', "mouseout", goSmall);
	YAHOO.util.Event.addListener('options', "click", showPanel);
	YAHOO.util.Event.onContentReady('header',doActionsOfLoad);
}

var doActionsOfLoad = function(){
	var result,resulth,resultF;
	result = getCookie('bgmenu');
	if(result=='closed;'){
		hideThis('bgmenu');
	}
	resulth = getCookie('header');
	if(resulth=='closed;'){
		
		hideThis('header');
		hideThis('jlogo');
		hideThis('contentsearch');
		hideElement('contentsearch');
		hideElement('socialicon');
		showElement('optionsb');
	}
	resultF = getCookie('fontSize').replace(/\;/,'');
	if(resultF>0){
		document.styleSheets[2].cssRules[18].style.fontSize = resultF+'%';
	}
}

var goBig = function(e){
	var bignow = new YAHOO.util.Anim('options', {
		height: { to: 43 }, 
	    width: { to: 43 } 
		
	},0.3,YAHOO.util.Easing.easeOut);
	bignow.animate();	
}

var hideElement = function(element){
	document.getElementById(element).style.display = 'none';
	document.getElementById('optionsb').innerHTML = '<img src="http://jeez.eu/wp-content/themes/palmixio/images/opts.png" id="scopts" width="33" height="33" style="padding-top:6px;" />';
	YAHOO.util.Event.addListener('scopts', "mouseover", goBig);
	YAHOO.util.Event.addListener('scopts', "mouseout", goSmall);
	YAHOO.util.Event.addListener('scopts', "click", showPanel);
}

var showElement = function(element){
	document.getElementById(element).style.display = 'block';
}


var goSmall = function(e){
	var smallnow = new YAHOO.util.Anim('options', {
		height: { to: 42 }, 
	    width: { to: 42 } 
		
	},0.3,YAHOO.util.Easing.easeOut);
	smallnow.animate();	
}

var hideThis = function(element){
	var hidenow = new YAHOO.util.Anim(element, {
		height: { to: 0 }
		
	},1,YAHOO.util.Easing.easeOut);
	hidenow.animate();	
}

var showThis = function(element){
	var oH;
	switch (element){
		case "bgmenu":
		oH = 40;
		break;
		case "header":
		oH = 304;
		break;
		case "jlogo":
		oH = 184;
		break;
		case "contentsearch":
		oH = 200;
		break;
	}
	var shownow = new YAHOO.util.Anim(element, {
		height: { to: oH }
		
	},1,YAHOO.util.Easing.easeOut);
	shownow.animate();	
}

var showPanel = function(e){
	var panel = new YAHOO.widget.Panel("optionsPanel", {fixedcenter:true, modal:true, width:"600px", height:"300px", visible:false, draggable:false, close:true} );
	panel.setHeader("Jeez Tech Screen Options");
	panel.setBody(getOptions());
	setListeners('jmenu');
	setListeners('jheader');
	setListeners('fontsBox');
	panel.render(document.body);
	panel.show();
	if(getCookie('fontSize').replace(/\;/,'')>0){
		showFontsSlider();
	}
}

var getOptions = function(){
	var menuV, headerV,fontsV,styled;
	if(getCookie('bgmenu')=='closed;'){
		menuV = 'checked = "checked"';
	}
	var htmlcode = "<label for='jmenu'>Hide Menu</label><input type='checkbox' id='jmenu' value='bgmenu' "+menuV+">";
	if(getCookie('header')=='closed;'){
		headerV = 'checked = "checked"';
	}
	htmlcode += "<label for='jheader'>Hide Logo and Search</label><input type='checkbox' id='jheader' value='header' "+headerV+">";
	if(getCookie('fontSize').replace(/\;/,'')>0){
		fontsV = 'checked = "checked"';
		var loadFonts = true;
	}else{
		styled = 'style="display:none;"';
	}
	htmlcode += "<label for='fontsBox'>Change the Font Size</label><input type='checkbox' id='fontsBox' value='fontsBox' "+fontsV+">";
	htmlcode += '<div '+styled+' id="slider-bg" class="yui-h-slider" tabindex="-1" title="Slider"><div id="slider-thumb" class="yui-slider-thumb"><img src="http://jeez.eu/wp-content/themes/palmixio/images/thumb-n.gif"></div></div><p>Fonts Size (%): <span '+styled+' id="slider-value">0</span></p>';
	return htmlcode;
}

var getCookie = function(element){
	//alert(YAHOO.util.Cookie.get(element));
	return YAHOO.util.Cookie.get(element);
}

var setListeners = function(option){	
	YAHOO.util.Event.addListener(option, "click", manageClick);
}

var setCookie = function(element,newvalue){
	var coptions = {
	expires:new Date("January 12, 2025")
	};
	YAHOO.util.Cookie.set(element, newvalue,coptions);
}

var showFontsSlider = function(){
	document.getElementById('slider-bg').style.display = 'block';
	document.getElementById('slider-value').style.display = 'block';
	var Event = YAHOO.util.Event,
        Dom   = YAHOO.util.Dom,
        lang  = YAHOO.lang,
        slider, 
        bg="slider-bg", thumb="slider-thumb", 
        valuearea="slider-value"

    // The slider can move 0 pixels up
    var topConstraint = 0;

    // The slider can move 200 pixels down
    var bottomConstraint = parseFloat(200);

    // Custom scale factor for converting the pixel offset into a real value
    var scaleFactor = 1;

    // The amount the slider moves when the value is changed with the arrow
    // keys
    var keyIncrement = 10;

    var tickSize = 10;

    Event.onDOMReady(function() {

        slider = YAHOO.widget.Slider.getHorizSlider(bg, 
                         thumb, topConstraint, bottomConstraint, 1);

        // Sliders with ticks can be animated without YAHOO.util.Anim
        slider.animate = true;

        slider.getRealValue = function() {
            return Math.round(this.getValue()/scaleFactor);
        }

        slider.subscribe("change", function(offsetFromStart) {

            var valnode = Dom.get(valuearea);
            

            // Display the pixel value of the control
            valnode.innerHTML = offsetFromStart;
			var fontSizes = document.styleSheets[2].cssRules[18].style.fontSize;
			var newSizes = Math.round(fontSizes.replace(/\%/,''));
			if(newSizes!=offsetFromStart){
				document.styleSheets[2].cssRules[18].style.fontSize = offsetFromStart+'%';
			}
			
			setCookie('fontSize',offsetFromStart);
			
            // use the scale factor to convert the pixel offset into a real
            // value
            var actualValue = slider.getRealValue();


            // Update the title attribute on the background.  This helps assistive
            // technology to communicate the state change
            Dom.get(bg).title = "Fonts Size = " + actualValue;

        });

        // Listen for keystrokes on the form field that displays the
        // control's value.  While not provided by default, having a
        // form field with the slider is a good way to help keep your
        // application accessible.
        // Use setValue to reset the value to white:
     var fontSizes = document.styleSheets[2].cssRules[18].style.fontSize;
	  var newSizes = Math.round(fontSizes.replace(/\%/,''));
            slider.setValue(newSizes, false); //false here means to animate if possible
    });
	
}

var hideFontsSlider = function(){
	document.styleSheets[2].cssRules[18].style.fontSize = '62.5%';
	document.getElementById('slider-bg').style.display = 'none';
	document.getElementById('slider-value').style.display = 'none';
	setCookie('fontSize',0);
}

var manageClick = function(e){
	if(e.target.checked){
		switch(e.target.value){
			case "bgmenu":
			hideThis(e.target.value);
			setCookie(e.target.value,'closed');
			break;
			case "header":
			hideThis(e.target.value);
			setCookie(e.target.value,'closed');
			hideThis('jlogo');
			hideThis('contentsearch');
			hideElement('contentsearch');
			hideElement('socialicon');
			showElement('optionsb');
			break;
			case "fontsBox":
			showFontsSlider();
			break;
			default:
			hideThis(e.target.value);
			setCookie(e.target.value,'closed');
		}
		
	}else{
		switch(e.target.value){
			case "bgmenu":
			showThis(e.target.value);
			setCookie(e.target.value,'opened');
			break;
			case "header":
			showThis(e.target.value);
			setCookie(e.target.value,'opened');
			showThis('jlogo');
			showElement('contentsearch');
			showThis('contentsearch');
			showElement('socialicon');
			hideElement('optionsb');
			break;
			case "fontsBox":
			hideFontsSlider();
			break;
			default:
			showThis(e.target.value);
			setCookie(e.target.value,'opened');
		}
		
	}
}