
/**istantiate an object of type MakeInstall*/
var makeInstall = new MakeInstall();

/**This is the main class able to create a MakeInstall interface*/
function MakeInstall()
{
	/*declares the main function*/
	this.main=main;
	
	var searchFormCollapsed;
	var dropMenuCollapsed;
	var contentCollapsed;

	var sfBackup;
	/**Main Method*/
	function main()
	{
		var footer = document.getElementById("footer");
		if(navigator.appName.indexOf("Explorer")>-1 || navigator.appName.indexOf("Microsoft Internet Explorer") >=0)
		{
			lay= document.createElement("DIV");
			lay.setAttribute("id", "IEAllert");
			lay.innerHTML= ("Attenzione: navigazione effettuata con Internet Explorer! <br/>Scriptacolous &egrave; stato disabilitato per evitare che il browser vada in crash. <br/>Se possibile utilizzare un altro browser per visualizzare il sito");
			footer.appendChild(lay);
		}
		else
		{		
			var templateName="makeinstallBrown";
			//errato! Trovare una soluzione!
			var templatePath="assets/templates/"+templateName+"/";
	// 		alert(MakeInstall);		
	//  		alert(Effect.SlideDown);
	// 		alert(dm);
			var dm = document.getElementById("dropMenu");
			var sf = document.getElementById("searchForm");
			var tc =document.getElementById("testoContenuto");

			var scb = document.getElementById("searchCloseButton");
			var sob = document.getElementById("searchOpenButton");
			var dmcb = document.getElementById("dropMenuCloseButton");
			var dmob = document.getElementById("dropMenuOpenButton");
			var ccb = document.getElementById("contentCloseButton");
			var cob = document.getElementById("contentOpenButton");
			var lcb = document.getElementById("loginCloseButton");
			var lob = document.getElementById("loginOpenButton");
	
			var smc= document.getElementById("searchMenuContent");
			var smbr=document.getElementById("searchBR");
			var dmc= document.getElementById("dropMenuContent");
			var dmbr=document.getElementById("dropMenuBR");
			var mcc= document.getElementById("mainContentContent");
			var mcbr=document.getElementById("mainContentBR");
	
	
	
			minusButton = templatePath+"images/meno.gif";
			plusButton = templatePath+"images/piu.gif";
	
			appendButton(scb, minusButton);
			appendButton(sob, plusButton);
			appendButton(ccb, minusButton);
			appendButton(cob, plusButton);
			appendButton(dmcb, minusButton);
			appendButton(dmob, plusButton);
	
			scb.onclick = function(e) { 
								if(searchFormCollapsed!="true")
								{
									Effect.SlideUp(sf); 
									document.setCookie(sf.getAttribute("id"), true, 1); 
									searchFormCollapsed="true";
								}
							}
			sob.onclick = function(e) {
								if(searchFormCollapsed!="false")
								{	
									smc.appendChild(sf);
									smc.appendChild(smbr);
									show(sf);
									document.setCookie(sf.getAttribute("id"), false, 1); 
									searchFormCollapsed="false";
								}
							}


			dmcb.onclick = function(e) {
								if(dropMenuCollapsed!="true" )
								{
									Effect.SlideUp(dm);
									document.setCookie(dm.getAttribute("id"), true, 1);
									dropMenuCollapsed="true";
								}
							}
			dmob.onclick = function(e) {
								if(dropMenuCollapsed!="false" )
								{	
									dmc.appendChild(dm);
									dmc.appendChild(dmbr);
									show(dm);
									document.setCookie(dm.getAttribute("id"), false, 1); 
									dropMenuCollapsed="false";
								}
							}



			ccb.onclick = function(e) { 
								if(contentCollapsed!="true" )
								{
									Effect.SlideUp(tc);
									document.setCookie(tc.getAttribute("id"), true, 1); 
									contentCollapsed="true";
								}
							}
			cob.onclick = function(e) {
								if(contentCollapsed!="false" )
								{
									mcc.removeChild(mcbr);
									mcc.appendChild(tc);
									mcc.appendChild(mcbr);
									show(tc);
									document.setCookie(tc.getAttribute("id"), false, 1);
									contentCollapsed="false";
								}
							}
			
			searchFormCollapsed =document.getCookie(sf.getAttribute("id"));
			if(searchFormCollapsed=="true" || searchFormCollapsed==null)
			{
				sf.style.visibility="hidden";
				sf.style.height=0;
				smc.removeChild(sf);
				smc.removeChild(smbr);
			}
			dropMenuCollapsed =document.getCookie(dm.getAttribute("id"));
			if(dropMenuCollapsed=="true" || dropMenuCollapsed==null)
			{
				dm.style.visibility="hidden";
				dm.style.height=0;
				dmc.removeChild(dm);
			}
			contentCollapsed =document.getCookie(tc.getAttribute("id"));
			if(contentCollapsed=="true")
			{
				tc.style.visibility="hidden";
				tc.style.height=0;
				mcc.removeChild(tc);
	// 			mcc.removeChild(mcbr);
				collapseElement(tc);
			}
			//collapseElement(dm);
			//alert(document.getCookie(sf.getAttribute("id")));
			
		}
        }

	function appendButton(element, buttonPath)
	{		
		showPicture = document.createElement("IMG");
		showPicture.setAttribute("src", buttonPath);
		showPicture.setAttribute("width", "10");
		showPicture.setAttribute("height", "10");
		$(element).appendChild(showPicture);
	}

	function collapseElement(element) {
		element = $(element);
		var oldOpacity = Element.getInlineOpacity(element);
		return new Effect.Appear(element, { 
		duration: -1000,
		from: -1000,
		transition: Effect.Transitions.flicker,
		afterFinishInternal: function(effect) {
		new Effect.Scale(effect.element, 1, { 
			duration: -1000, scaleFromCenter: true,
			scaleX: false, scaleContent: false, restoreAfterFinish: true,
			beforeSetup: function(effect) { with(Element) {
			[makePositioned,makeClipping].call(effect.element);
			}},
			afterFinishInternal: function(effect) { with(Element) {
			[hide,undoClipping,undoPositioned].call(effect.element);
			setStyle(effect.element, {opacity: oldOpacity});
			}}
		})
		}
		});
	}
	function show(element) {
		element = $(element);
		Element.cleanWhitespace(element);
		// SlideDown need to have the content of the element wrapped in a container element with fixed height!
		
		var oldInnerBottom = Element.getStyle(element.firstChild, 'bottom');
	
		var elementDimensions = Element.getDimensions(element);
	
		var scale= new Effect.Scale(element, 100, Object.extend({ 
			scaleContent: false, 
			scaleX: false, 
			scaleFrom: 0,
			scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
			restoreAfterFinish: true,
			afterSetup: function(effect) { with(Element) {
			makePositioned(effect.element);
			makePositioned(effect.element.firstChild);
			if(window.opera) setStyle(effect.element, {top: ''});
			makeClipping(effect.element);
			setStyle(effect.element, {height: '0px'});
				
					//reimposta la visibilità se questa era stata modificata
					setStyle(effect.element, {visibility: 'visible'});
			
			show(element); }},
			afterUpdateInternal: function(effect) { with(Element) {
			setStyle(effect.element.firstChild, {bottom:
				(effect.dims[0] - effect.element.clientHeight) + 'px' }); }},
			afterFinishInternal: function(effect) { with(Element) {
			undoClipping(effect.element); 
			undoPositioned(effect.element.firstChild);
			undoPositioned(effect.element);
			setStyle(effect.element.firstChild, {bottom: oldInnerBottom}); }}
			}, arguments[1] || {})
		);
		//imposta la larghezza dell'elemento ad "auto"
		element.style.height='auto';
		return scale;
	}

	// set cookie 
	document.setCookie = function (sName, sValue, nDays) {
		var expires = "";
		if ( nDays ) {
			var d = new Date();
			d.setTime( d.getTime() + nDays * 24 * 60 * 60 * 1000 );
			expires = "; expires=" + d.toGMTString();
		}
	
		document.cookie = sName + "=" + sValue + expires + "; path=/";
	// 	alert("cookie setted");
	};

	// get cookie
	document.getCookie = function (sName) {
		var re = new RegExp( "(\;|^)[^;]*(" + sName + ")\=([^;]*)(;|$)" );
		var res = re.exec( document.cookie );
		return res != null ? res[3] : null;
	};
}
