var supersleight=false;//per tutti i browser che visualizzano di default le pngfunction MM_preloadImages() { //v3.0  	var d=document;  	if(d.images){ //controlla che il browser supporti		if(!d.MM_p) {			d.MM_p=new Array();		}		var i;		var j=d.MM_p.length;		var a=MM_preloadImages.arguments; 		for(i=0; i<a.length; i++){			if (a[i].indexOf("#")!=0){ 				d.MM_p[j]=new Image; 				d.MM_p[j++].src=a[i];			}		}	}}/*ROLLOVER IMG*/function rollOver(obj, img) {//questa funzione mi serve per passare i parametri senza attivare la funzione	return function() { 		obj.src=img;		//if(supersleight && img.match(/\.png$/i) !== null){		if(supersleight && img.match(/\.png/i) !== null){			supersleight.aggiorna(obj);		}	}}function attiva_rollover(obj){	//l'immagine pu� essere png o no	//se l'immagine � png � gi� stata sostituita con shim, quindi percorso, nome, estensione sono diversi	filtro=obj.style.filter;	if(supersleight && filtro){//controllo se esiste filter		//ricavo da qui il nome originale della png		inizio="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='";		src=filtro.substr(inizio.length);		src=src.substr(0, src.indexOf("'"));	}else{		src=obj.getAttribute('src'); //no png o png non su IE	}	/*percorso_img=src.replace(/(.*\/?)[a-zA-Z0-9_-]+\.\w+$/, "$1");	nome_img=src.replace(/.*\/?([a-zA-Z0-9_-]+)\.(\w+)$/, "$1");*/	//nome_img=src.replace(/(.+)\.(\w+)$/, "$1");	nome_img=src.replace(/(.+)\.(\w+)\??[0-9]*$/, "$1");	//estensione_img=src.replace(/.*\/?[a-zA-Z0-9_-]+\.(\w+)$/, "$1");	estensione_img=src.replace(/.*\/?[a-zA-Z0-9_-]+\.(\w+)\??[0-9]*$/, "$1");	//estensione_img=src.replace(/.*\/?[a-zA-Z0-9_-]+\.(\w+\??[0-9]*)$/, "$1");	img_on=nome_img+"_on."+estensione_img;	img_off=nome_img+"."+estensione_img;	//preload, il percorso � relativo alla pagina html	MM_preloadImages(img_on);		//over e ricarico supersleight	Event.observe(obj, 'mouseover', rollOver(obj, img_on));		//out e ricarico supersleight	Event.observe(obj, 'mouseout', rollOver(obj, img_off));}//le immagini di rollover devono avere class img_rollover e lo stesso nome ma con l'aggiunta di _onfunction cerca_rollover(){	if($$('.img_rollover')){		$$('.img_rollover').each(function(obj){			attiva_rollover(obj);		});	}}var BrowserDetect = {	init: function () {		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";		this.version = this.searchVersion(navigator.userAgent)			|| this.searchVersion(navigator.appVersion)			|| "an unknown version";		this.OS = this.searchString(this.dataOS) || "an unknown OS";	},	searchString: function (data) {		for (var i=0;i<data.length;i++)	{			var dataString = data[i].string;			var dataProp = data[i].prop;			this.versionSearchString = data[i].versionSearch || data[i].identity;			if (dataString) {				if (dataString.indexOf(data[i].subString) != -1)					return data[i].identity;			}			else if (dataProp)				return data[i].identity;		}	},	searchVersion: function (dataString) {		var index = dataString.indexOf(this.versionSearchString);		if (index == -1) return;		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));	},        isIPad: function(){                return (this.browser == "Safari" && this.OS == "iPad");        },        isIPhone: function(){                return (this.browser == "Safari" && this.OS == "iPhone");        },        isIPod: function(){                return (this.browser == "Safari" && this.OS == "iPod");        },        supportHTML5: function(){                // only iPad platform for the moment                return (this.isIPad() || this.isIPhone() || this.isIPod());                //return true;        },	dataBrowser: [		{                        string: navigator.userAgent,			subString: "OmniWeb",			versionSearch: "OmniWeb/",			identity: "OmniWeb"		},		{			string: navigator.userAgent,			subString: "Chrome", 			identity: "Chrome"		},		{			string: navigator.userAgent,			subString: "Paparazzi", 			identity: "Paparazzi"		},		{			string: navigator.userAgent,			subString: "AdobeAIR", 			identity: "AdobeAIR"		},		{			string: navigator.vendor,			subString: "Apple",                        versionSearch: "Version",			identity: "Safari"		},		{			prop: window.opera,			identity: "Opera"		},		{			string: navigator.vendor,			subString: "iCab",			identity: "iCab"		},		{			string: navigator.vendor,			subString: "KDE",			identity: "Konqueror"		},		{			string: navigator.userAgent,			subString: "Firefox",			identity: "Firefox"		},		{			string: navigator.vendor,			subString: "Camino",			identity: "Camino"		},		{		// for newer Netscapes (6+)			string: navigator.userAgent,			subString: "Netscape",			identity: "Netscape"		},		{			string: navigator.userAgent,			subString: "MSIE",			identity: "Explorer",			versionSearch: "MSIE"		},		{			string: navigator.userAgent,			subString: "Gecko",			identity: "Mozilla",			versionSearch: "rv"		},		{                        // for older Netscapes (4-)			string: navigator.userAgent,			subString: "Mozilla",			identity: "Netscape",			versionSearch: "Mozilla"		}	],	dataOS : [		{			string: navigator.platform,			subString: "Win",			identity: "Windows"		},		{			string: navigator.platform,			subString: "Mac",			identity: "Mac"		},		{			string: navigator.platform,			subString: "MacPPC",			identity: "Mac"		},		{			string: navigator.platform,			subString: "MacIntel",			identity: "Mac"		},                {			string: navigator.platform,			subString: "Linux",			identity: "Linux"		},                {			string: navigator.platform,			subString: "iPod",			identity: "iPod"		},                {			string: navigator.platform,			subString: "iPhone",			identity: "iPhone"		},                {			string: navigator.platform,			subString: "iPad",			identity: "iPad"		}	]};BrowserDetect.init();/*---------------------*/function getObjectMsgForFeedBack(feedback){    var text = createMsgInText(feedback)    var msg = new Array();    msg[0] = text    return msg;}function createMsgInText(text){    var msgForFeedBack = []    msgForFeedBack[0] = text    return msgForFeedBack}function accedi(){    $$('.boxAccountOperation')[0].style.display = ""    $$('.boxAccountOperation1')[0].style.display = ""    var flash = $('containerFlash')    var underFlash = $('flashObscured')    flash ? flash.hide() : null;    underFlash ? underFlash.show() : null/*if(FB.getSession()){        FB.logout();    }*/if(FB.getAuthResponse()){        FB.logout();    }}function logOutUser(){    var requester = new Requester({            object: new Hash({                action: "logoutSystemUser",                url:    "/commons/json_request.php"            }),            callBackAfterRequest: reloadPage.bind(this)    })    requester.sendRequest()    requester = null;}function logoutSystem(){    if(FB.getAuthResponse()){        FB.logout();    }    logOutUser()}function reloadPage(){    showUserWait()    setTimeout("window.location.reload()",5000)}function showUserWait(){    $$('.userWait')[0].show()}function afterLogout(fromServer){    window.location.reload();}function changeBoxAccount(response,facebookUser){    var step2 = $$('.containerStep2')[0]    var step1 = $$('.step1')[0]    var step2Elements = step2.childElements()    if(response.serverObject.facebook_id == null && !response.serverObject.ok){ //allora ti registro        step2Elements[0].childElements()[1].value = facebookUser.first_name        step2Elements[1].childElements()[1].value = facebookUser.last_name        step2Elements[2].childElements()[1].value = (facebookUser.email != undefined ? facebookUser.email : '') //azzo!!        if(facebookUser.gender != ""){            if(facebookUser.gender == "female")                step2Elements[3].childElements()[2].checked = true            else                step2Elements[3].childElements()[1].checked = true        }        step2Elements[4].childElements()[1].value = facebookUser.birthday        /*step2Elements[5].hide()        step2Elements[6].hide()*/        step2Elements[13].value = facebookUser.id        step2.parentNode.parentNode.show();        $$('.boxAccountOperation')[0].show()        $$('.boxAccountOperation1')[0].show()        $$('.userWait')[0].hide()        $$('.password1')[0].style.display = "none"        $$('.password2')[0].style.display = "none"        step1.hide();        $$('.textRegistrati')[0].innerHTML = "Completa la registrazione "    }else if(response.serverObject.user){        if(facebookUser.id == response.serverObject.user.facebook_id){            window.location.reload();        }    }else{        var msg = getObjectMsgForFeedBack("I dati inviati non sono corretti oppure l'account non è stato confermato.")                 this.builderRequest = new BuilderMsg({                    msgToPrint: msg,                    containerMsg: $$('.msgfeedbackReg')[0],                    containerFeedback: $$('.containerFeedbackReg')[0],                    forWhat: "generic",                    classBtnClicked: 'btnCloseForReg',                    left:100,                    top:100                });                this.builderRequest.build()    }}function showUserWaitForAElements(){    var iteratorForA = 0    var elementsA = document.getElementsByTagName('a')    var size = elementsA.length    for( iteratorForA= 0 ; iteratorForA < size ; iteratorForA++ )        if(elementsA[iteratorForA].target != "_blank" && elementsA[iteratorForA].id != "noUserWait")            elementsA[iteratorForA].onclick = showUserWait.bindAsEventListener(this)}function bindClickTag(){    alert("ciao")}    function alternateCheckSex(window,hideTheseElements){        for(var i = 0; i < hideTheseElements.size(); i++){            hideTheseElements[i].checked = false        }    }    function logoutForRegistration(){        //FB.logout();    }    function checkBirthday(element) { // regular expression to match required date format         var re = /\d{1,2}\/\d{1,2}\/\d{4}$/;         if(element.value != '' && !element.value.match(re)) {             element.focus();             return false;         }         return true;    }    function hideElement(window, element,element2){        element2.hide()        element.hide()        $$('.step1')[0].show();        var flash = $('containerFlash')        var underFlash = $('flashObscured')        flash ? flash.show() : null;        underFlash ? underFlash.hide() : null;    }        function showElement(window, element){        element.show()        $$('.step1')[0].hide();    }    function isEMailAddr(elem) {        var str = elem.value;        var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;        if (!str.match(re)) {            return false;        } else {            return true;        }    }    function checkPassword(password1,password2){        if(password1.value == password2.value && password1.value != "" )            return true        else            return false;    }    function sendEmailForForgot(window,element){        if(isEMailAddr($$(".emailForgot")[0])){            var email = $$(".emailForgot")[0].value            var requester = new Requester({                        object: new Hash({                            action: "forgottedPassword",                            url:    "/commons/json_request.php",                            userInfo: {email:email}                        }),                        mustBuildRequest: 1,                        callBackAfterRequest: afterRequestForgot.bind(this)                    })                    requester.sendRequest()                    requester = null;        }else{            var msg = getObjectMsgForFeedBack("l'email non è corretta!")                     this.builderRequest = new BuilderMsg({                        msgToPrint: msg,                        containerMsg: $$('.msgfeedbackReg')[0],                        containerFeedback: $$('.containerFeedbackReg')[0],                        forWhat: "generic",                        classBtnClicked: 'btnCloseForReg',                        left:100,                        top:100                    });                    this.builderRequest.build()        }    }    function login(){        if(isEMailAddr($$(".email")[0])){            var email = $$(".email")[0].value            var password = $$(".passwordDefault")[0].value            var ricordami = $$(".ricordamiDefault")[0].checked            if(email != "" && password != ""){                var requester = new Requester({                        object: new Hash({                            action: "logUser",                            url:    "/commons/json_request.php",                            userInfo: {email:email,password:password,ricordami:ricordami}                        }),                        mustBuildRequest: 1,                        callBackAfterRequest: afterRequestGeneric.bind(this)                    })                    requester.sendRequest()                    requester = null;            }else{                    var msg = getObjectMsgForFeedBack("devi inserire tutti i campi!")                     this.builderRequest = new BuilderMsg({                        msgToPrint: msg,                        containerMsg: $$('.msgfeedbackReg')[0],                        containerFeedback: $$('.containerFeedbackReg')[0],                        forWhat: "generic",                        classBtnClicked: 'btnCloseForReg',                        left:100,                        top:100                    });                    this.builderRequest.build()            }        }else{            var msg = getObjectMsgForFeedBack("l'email non è corretta!")                     this.builderRequest = new BuilderMsg({                        msgToPrint: msg,                        containerMsg: $$('.msgfeedbackGeneric')[0],                        containerFeedback: $$('.containerFeedbackRegStep1')[0],                        forWhat: "generic",                        classBtnClicked: 'btnCloseForReg',                        left:100,                        top:100                    });                    this.builderRequest.build()        }    }    function forgot(){    }    function registrati(window){        var can = 1        var objectForRegister = new Hash()        var userInfo = null;        var requiredField = $$('.require')        var requiredCheckField = $$('.requireCheck')        var requiredDoubleCheckField = $$('.requireDoubleCheck')        var optionalField = $$('.optional')        var requireFieldSize = requiredField.size()        var requireCheckFieldSize = requiredCheckField.size()        var requiredDoubleCheckFieldSize = requiredDoubleCheckField.size()        var optionalFieldSize = optionalField.size()        $$('.errorMsg')[0].style.display = "none";        $$('.errorMsg.Password')[0].style.display = "none";        $$('.errorMsg.Email')[0].style.display = "none";        $$('.errorMsg.Password')[0].style.display = "none";        var redStars = $$('.redStar')        var nrRedStar = redStars.size()        for(var i = 0; i < nrRedStar; i++){            if(redStars[i]){                redStars[i].className = ""                redStars[i].update("")            }        }        var parent = null;        for(var i = 0; i < requireFieldSize; i++){            if( requiredField[i].value == null || requiredField[i].value == ''  ){                if(requiredField[i].parentNode.style.display == ""){                    can = 0;                    parent = requiredField[i].parentNode                    Element.insert(parent,{bottom: '<span class="redStar"> * </span>'});                    //parent.insert({bottom: '<span class="redStar"> * </span>'});                    $$('.errorMsg')[0].style.display = "";                }            }        }        for(var i = 0; i < requireCheckFieldSize; i++){            if( requiredCheckField[i].checked == false ){                can = 0;                parent = requiredCheckField[i].parentNode                     //parent.appendChild('<span class="redStar"> * </span>');                     Element.insert(parent,{bottom: '<span class="redStar"> * </span>'});                   //parent.insert({bottom: '<span class="redStar"> * </span>'});                $$('.errorMsg')[0].style.display = "";            }        }        for(var i = 0; i < requiredDoubleCheckFieldSize; i++){            if( requiredDoubleCheckField[i].childElements()[1].checked == false && requiredDoubleCheckField[i].childElements()[2].checked == false  ){                can = 0;                    parent = requiredDoubleCheckField[i]                    //parent.insert({bottom: '<span class="redStar"> * </span>'});                    Element.insert(parent,{bottom: '<span class="redStar"> * </span>'});                $$('.errorMsg')[0].style.display = "";            }        }        if(!isEMailAddr($('emailReg'))){             can = 0;             parent = $('emailReg').parentNode             Element.insert(parent,{bottom: '<span class="redStar"> * </span>'});             //$('email').parentNode.insert({bottom: '<span class="redStar"> * </span>'});             $$('.errorMsg.Email')[0].style.display = "";        }        if($$('.password1')[0].style.display != "none"){            if(!checkPassword($('password1'),$('password2'))){                 can = 0;                 //$('password2').parentNode.insert({bottom: '<span class="redStar"> * </span>'});                 parent = $('password2').parentNode                 Element.insert(parent,{bottom: '<span class="redStar"> * </span>'});                 $$('.errorMsg.Password')[0].style.display = "";            }        }        if(!checkBirthday($('birthday'))){             can = 0;             parent = $('birthday').parentNode             Element.insert(parent,{bottom: '<span class="redStar"> * </span>'});             //$('birthday').parentNode.insert({bottom: '<span class="redStar"> * </span>'});             $$('.errorMsg.Birthday')[0].style.display = "";        }        if(can){            var i = 0;            for(i; i < requireFieldSize; i++){                objectForRegister.set(requiredField[i].id,requiredField[i].value)            }            for(i = 0; i < optionalFieldSize; i++){                objectForRegister.set(optionalField[i].id,optionalField[i].value)            }            for(i = 0; i < requiredDoubleCheckFieldSize; i++){                var value = "F"                requiredDoubleCheckField[i].childElements()[1].checked ? value = "M" : null                objectForRegister.set(requiredDoubleCheckField[i].id, value )            }            var requester = new Requester({                object: new Hash({                    action: "registerUser",                    url:    "/commons/json_request.php",                    userInfo: objectForRegister                }),                mustBuildRequest: 1,                callBackAfterRequest: afterRequestAccountOperation.bind(this)            })            requester.sendRequest()            requester = null;        }    }    function afterRequestAccountOperation(request){        if(request.serverObject.ok){            $$('.boxAccountOperation')[0].hide()        }    }    function afterRequestGeneric(request){        if(request.serverObject.ok){            setTimeout("reloadPageForLogin()",4000)        }else{        }    }    function afterRequestForgot(request){        if(request.serverObject.ok){           $$('.boxAccountOperation')[0].hide()         }else{                    }    }    function reloadPageForAccountOperation(){        window.location = "/welcome.php";    }    function reloadPageForLogin(){        window.location.reload()    }    function keyPressedForLogIn(e){        if($$('.boxAccountOperation')[0].style.display != "none")            if(e.keyCode == Event.KEY_RETURN)                if($$(".email").value != "" && $$(".passwordDefault")[0].value != "")                    login()    }    function setEventForTabPeriod(period,objectRequester){        var gardenTab = $$('.GardenTab.'+period+'')[0]        var greenHouseTab = $$('.GreenhouseTab.'+period+'')[0]        var storeRoomTab = $$('.StoreroomTab.'+period+'')[0]        var kitchenTab = $$('.KitchenTab.'+period+'')[0]        var myRoomTab = $$('.MyroomTab.'+period+'')[0]        var activityTab = $$('.ActivityTab.'+period+'')[0]        var requests = [1,1,1,1,1,1]        gardenTab.onclick = showTabForPeriod.bindAsEventListener(this,"Garden",period,null,requests[0]);        greenHouseTab.onclick = showTabForPeriod.bindAsEventListener(this,"Greenhouse",period,objectRequester[1],requests[1]);        storeRoomTab.onclick = showTabForPeriod.bindAsEventListener(this,"Storeroom",period,objectRequester[2],requests[2]);        kitchenTab.onclick = showTabForPeriod.bindAsEventListener(this,"Kitchen",period,objectRequester[3],requests[3]);        myRoomTab.onclick = showTabForPeriod.bindAsEventListener(this,"Myroom",period,objectRequester[4],requests[4]);        activityTab.onclick = showTabForPeriod.bindAsEventListener(this,"Activity",period,objectRequester[5],requests[5]);            }    function showPeriodSection(window,periodToShow){        var allTabsToHide = $$('.roomRank.ForPeriod')        changeCssToTabDateForPeriod();        $$('.tabdateElement.'+periodToShow)[0].addClassName("on")        $$('.tabdateElement.'+periodToShow)[0].removeClassName("off")        for(var i = 0; i < allTabsToHide.size();i++)            allTabsToHide[i].hide()        $$('.roomRank.'+periodToShow)[0].show()    }    function changeCssToTabDateForPeriod(){        var periods = ["1rstPeriod","2thPeriod","3thPeriod","4thPeriod","5thPeriod"];        for(var i = 0; i < periods.size();i++){            var element = $$('.tabdateElement.'+periods[i])[0]            if(element){                $$('.tabdateElement.'+periods[i])[0].addClassName("off")                $$('.tabdateElement.'+periods[i])[0].removeClassName("on")            }        }    }        function showTabForPeriod(window,section,period,objectRequester,requestDone){                var sections = ["Garden","Greenhouse","Storeroom","Kitchen","Myroom","Activity"]        hideAllForPeriod(sections,period)        changeCssToTabForPeriod(sections,period)        $$('.container'+section+'.'+period+'')[0].show()        $$('.'+section+'Tab'+'.'+period+'')[0].addClassName("on")        $$('.'+section+'Tab'+'.'+period+'')[0].removeClassName("off")        if(objectRequester ){            objectRequester.externalLaunchRequest(true)        }    }    function changeCssToTabForPeriod(sections,period){        for(var i = 0; i < sections.size();i++){            $$('.'+sections[i]+'Tab.'+period+'')[0].addClassName("off")            $$('.'+sections[i]+'Tab.'+period+'')[0].removeClassName("on")        }    }    function hideAllForPeriod(sections,period){        for(var i = 0; i < sections.size();i++){            $$('.container'+sections[i]+'.'+period+'')[0].hide()        }    }
