var SERVER_URL = 'http://www.suva.ch';
var SECURE_SERVER_URL = 'https://www.suva.ch';

if (document.location.href.indexOf("https://") > -1) {
	SERVER_URL = SECURE_SERVER_URL;
}

var CURRENT_LANGUAGE = 'it';
var URL_MAGIC = '/';
if (URL_MAGIC == "/") {
	URL_MAGIC = "";
}

var oDefaultValues = new Object();

var Browsers = {
  Browser: {
    IE:     !!(window.attachEvent &&
      navigator.userAgent.indexOf('Opera') === -1),
    Opera:  navigator.userAgent.indexOf('Opera') > -1,
    WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
    Gecko:  navigator.userAgent.indexOf('Gecko') > -1 && 
      navigator.userAgent.indexOf('KHTML') === -1,
    MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
  },

  BrowserFeatures: {
    XPath: !!document.evaluate,
    SelectorsAPI: !!document.querySelector,
    ElementExtensions: !!window.HTMLElement,
    SpecificElementExtensions: 
      document.createElement('div')['__proto__'] &&
      document.createElement('div')['__proto__'] !== 
        document.createElement('form')['__proto__']
  }
}

Browsers.Browser.IE6 = Browsers.Browser.IE && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5)) == 6;
Browsers.Browser.IE7 = Browsers.Browser.IE && parseInt(navigator.userAgent.substring(navigator.userAgent.indexOf("MSIE")+5)) == 7;
Browsers.Browser.IE8 = Browsers.Browser.IE && !Browsers.Browser.IE6 && !Browsers.Browser.IE7;

var Utf8 = {
 
	encode : function (string) {
		string = string.replace(/\r\n/g,"\n");
		var utftext = "";
 
		for (var n = 0; n < string.length; n++) {
 
			var c = string.charCodeAt(n);
 
			if (c < 128) {
				utftext += String.fromCharCode(c);
			}
			else if((c > 127) && (c < 2048)) {
				utftext += String.fromCharCode((c >> 6) | 192);
				utftext += String.fromCharCode((c & 63) | 128);
			}
			else {
				utftext += String.fromCharCode((c >> 12) | 224);
				utftext += String.fromCharCode(((c >> 6) & 63) | 128);
				utftext += String.fromCharCode((c & 63) | 128);
			}
 
		}
 
		return utftext;
	},
 
	decode : function (utftext) {
		var string = "";
		var i = 0;
		var c = c1 = c2 = 0;
 
		while ( i < utftext.length ) {
 
			c = utftext.charCodeAt(i);
 
			if (c < 128) {
				string += String.fromCharCode(c);
				i++;
			}
			else if((c > 191) && (c < 224)) {
				c2 = utftext.charCodeAt(i+1);
				string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
				i += 2;
			}
			else {
				c2 = utftext.charCodeAt(i+1);
				c3 = utftext.charCodeAt(i+2);
				string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
				i += 3;
			}
 
		}
 
		return string;
	}
 
}

/**
* Returns the value of the selected radio button in the radio group, null if
* none are selected, and false if the button group doesn't exist
*
* @param {radio Object} or {radio id} el
* OR
* @param {form Object} or {form id} el
* @param {radio group name} radioGroup
*/
function $RF(el, radioGroup) {
    if($(el).type && $(el).type.toLowerCase() == 'radio') {
        var radioGroup = $(el).name;
        var el = $(el).form;
    } else if ($(el).tagName.toLowerCase() != 'form') {
        return false;
    }

    var checked = $(el).getInputs('radio', radioGroup).find(
        function(re) {return re.checked;}
    );
    return (checked) ? $F(checked) : null;
}


var Rules = { 
  	rules: "1.0",
	
	
	'a.windowpopup:click': function(element, event) {
		var oProperties = getLinkProperties(element);		
		var sHref = oProperties.href;
		var sClasses = oProperties.cssClasses;
		var iHeight = 500;
		var iWidth = 680;
		var sParam;
		var asParam;
		var oRegExp;
		
		if(!sClasses){
			sClasses = element ? element.parentNode.className : "";
		}
				
		if (sClasses) {
			oRegExp = RegExp(/dim@[0-9]*@[0-9]*@(?:yes|no)@(?:yes|no)@(?:yes|no)/i);
			var sParam = sClasses.match(oRegExp);
			
			if (sParam)
			{
				asParam = sParam.toString().split("@");
				//alert("toolbar " + asParam[3]);
				//alert("statusbar " + asParam[4]);
				//alert("scrollbar " + asParam[5]);
				//alert("width " + asParam[1]);
				//alert("height " + asParam[2]);
				
				window.open(sHref, '_blank', 'toolbar=no, location=yes, status=' + asParam[4] + ', menubar=no, personalbar=no, scrollbars=' + asParam[5] + ', width=' + asParam[1] + ', height=' + asParam[2] + ', resizable=yes, screenx=50, left=50, screenY=50, top=50');			
			}
			else{
				window.open(sHref, "_blank", 'height=' + iHeight + ',width=' + iWidth +', location=yes, toolbar=no, status=no, resizable=yes, scrollbars=yes');	
			}
		}
		Event.stop(event);
	},
			
	'.hideonloaded:loaded' : function(element, event) {
		element.hide();
	},
	
	'input#plzsearch:focus' : function(element, event) {       
		if(element.value == asciiToText("Digita NPA")) {
			element.value = "";
		}
	},
	
	'input#plzsearch:blur' : function(element, event) {       
		if(element.value == "") {
			element.value = asciiToText("Digita NPA");
		}
	},
	
	'#plzform:submit' : function(element, event) {      
		dcsMultiTrack('WT.dl','7704','WT.i_zaction','c','WT.i_zelement','startseite-suva_PLZ_L0_P01_agenturen-adressen-suva');
	},
	
	'a.showhidehreftarget:click' : function(element, event) {
		var oMyElement = element;

		if(element.tagName.toLowerCase() == 'img' && element.parentNode.tagName.toLowerCase() == 'a'){
			oMyElement = element.parentNode;
		}

		var href = oMyElement.getAttribute('href');
		var iContentId = href.match(/#(\w.+)/)[1];
		var oContentElement = $(iContentId);
		if(oContentElement.style.display == 'none') {
			oContentElement.style.display = 'block';
		} else {
			oContentElement.style.display = 'none';
		}
		Event.stop(event);
	},
	
	'a.rsslink:click' : function(element, event) {
		element = getLinkProperties(element);
		dcsMultiTrack('DCS.dcsuri', '/rss/interessent/' + element.rel.toLowerCase() + '.htm', 'WT.ti', 'RSS Interessent - ' + element.rel, 'WT.rss_f', 'RSS_' + CURRENT_LANGUAGE.toUpperCase() + '_' + element.rel, 'WT.rss_ev', 's');
	},
	
	'a.itunes:click' : function(element, event) {
		element = getLinkProperties(element);
		dcsMultiTrack('DCS.dcsuri', '/podcast/interessent/itunes.htm', 'WT.ti', 'Podcast Interessent - iTunes', 'DCSext.podcast_source', 'Podcast_' + element.rel + '_' + CURRENT_LANGUAGE.toUpperCase(), 'DCSext.podcast_title', 'Klick iTunes');
	},
	
	'a.podcast-preview' : function(element, event) {
		element = getLinkProperties(element);
		var tmp = element.rel.split("$");
		dcsMultiTrack('DCS.dcsuri', '/podcast/vorschau/' + tmp[3] + '.htm', 'WT.ti', 'Podcast Vorschau - ' + tmp[2], 'DCSext.podcast_source', 'Podcast_' + tmp[1] + '_' + CURRENT_LANGUAGE.toUpperCase(), 'DCSext.podcast_title', 'Vorschau ' + tmp[2]);
	},
	
    'a.contact:focus' : function(element, event) {
		rewriteObscureEmail(element);
		Event.stop(event);
    },

	'a.newstab:click' : function(element, event) {       
		var oCurrent = $$('ul.tab-navigation li.current');
		if (oCurrent.length > 0) {
			oCurrent[0].removeClassName('current');
		}
		
		var oParent = element.parentNode;
		if (oParent) {
			$(oParent.id).addClassName('current');
		}
		
		$('news-loading').removeClassName('hidden');
		$('news-entries').addClassName('hidden');
		
		var tmp = element.rel.split('$$');
		var iYear = tmp[0];
		var sHref = element.href;
		var sEditMode = element.href.split("debug=");
		
		if (sEditMode[1]) {
			sEditMode = sEditMode[1].split("&");
			sEditMode = "&debug=" + sEditMode[0] + "&debugimg=on";				
		} else {
			sEditMode = "";
		}	
			
		var iConfig = tmp[1];
		var iClusterConfig = tmp[2];
		var sChecksum = tmp[3];
		var sUrl = 'medien-ajax-manager';
		var oAjax = new Ajax.Request(
			SERVER_URL + URL_MAGIC + '/' + CURRENT_LANGUAGE + '/' + sUrl,
			{
				method:		'get', 
				parameters:	"year=" + iYear + "&location=" + escape(sHref) + sEditMode,
				onSuccess:	function(transport, json) {
					var sResponse = transport.responseText;
					if (sResponse != "error") {
						$('news-archive').update(sResponse);
						Shadowbox.setup();
						$('current-year').innerHTML = iYear;
					}
					else {
						$('news-loading').addClassName('hidden');
						$('news-entries').removeClassName('hidden');
						alert(asciiToText("Si &#232; verificato un errore. Si prega di riprovare pi&#249; tardi."));
					}
				},
				onFailure:	function(transport, json) {
					$('news-loading').addClassName('hidden');
					$('news-entries').removeClassName('hidden');
					alert(asciiToText("Si &#232; verificato un errore. Si prega di riprovare pi&#249; tardi."));
				}
			}
		);	
		
		
		
		Event.stop(event);
	},
	
	'a#newstab-next:click' : function(element, event) {
		var aNext = $('newstab-next').rel.split('$$');
		var aPrevious = $('newstab-previous').rel.split('$$');
		
		var iCurrentYear = parseInt(aNext[0]);
		var iLastYear = parseInt(aNext[1]);
				
		if (iCurrentYear != iLastYear) {
			aNext[0] = iCurrentYear - 1;
			aPrevious[0] = iCurrentYear - 1;
			$('newstab-next').rel = aNext.join('$$');
			$('newstab-previous').rel = aPrevious.join('$$');
						
			new Effect.Move($('news-tab-navigation'), {x:-($('newstab-'+ iCurrentYear).getWidth()),y:0,duration:0.7, queue: 'end'});
		}
		
		Event.stop(event);
	},
	
	'a#newstab-previous:click' : function(element, event) {
		var aNext = $('newstab-next').rel.split('$$');
		var aPrevious = $('newstab-previous').rel.split('$$');
		
		var iCurrentYear = parseInt(aNext[0]);
		var iFirstYear = parseInt(aPrevious[1]);
				
		if (iCurrentYear != iFirstYear) {
			aNext[0] = iCurrentYear + 1;
			aPrevious[0] = iCurrentYear + 1;
			$('newstab-next').rel = aNext.join('$$');
			$('newstab-previous').rel = aPrevious.join('$$');
			
			new Effect.Move($('news-tab-navigation'), {x:($('newstab-'+iCurrentYear).getWidth()),y:0,duration:0.7, queue: 'end'});
		}
		
		Event.stop(event);
	},
	
	'a#change-reviewstate:click' : function(element, event) {
		var tmp = element.rel.split("$$");
		var oImage = $('img-reviewed');
		var oAjax = new Ajax.Request(
			SERVER_URL + URL_MAGIC + '/' + CURRENT_LANGUAGE + '/ajax-manager',
			{
				method:		'get', 
				parameters:	"method=setPageReview&value=" + tmp[0] + "&pageId=" + tmp[1],
				onSuccess:	function(transport, json) {
					var sResponse = transport.responseText;
					if (sResponse == "true") {
						oImage.src = "layout-icon-active-yes.gif";
						element.writeAttribute("rel", "false$$" + tmp[1]);
						element.innerHTML = asciiToText("Seitenversion durch Suva abgenommen");
					}
					else if (sResponse == "false") {
						oImage.src = "layout-icon-active-no.gif";
						element.writeAttribute("rel", "true$$" + tmp[1]);
						element.innerHTML = asciiToText("Seitenversion abnehmen");
					}
					else {
						alert(asciiToText("fehler!!"));
					}
				},
				onFailure:	function(transport, json) {
					alert(asciiToText("fehler!!"));
				}
			}
		);	
		Event.stop(event);
	},
	
	'form#kostenrechner:submit' : function(element, event) {
		var formValidator = new Validation('kostenrechner', '');
		if (formValidator.validate()) {
			
			var oAjax = new Ajax.Request(
			SERVER_URL + URL_MAGIC + '/' + CURRENT_LANGUAGE + '/kostenrechner-ajax-manager',
				{
					method: 'get',
					parameters: $('kostenrechner').serialize(),
					onSuccess: function(transport) {
	      				var response = transport.responseText;
						$('result').scrollTo();
	      				$('result').innerHTML = response;
	    			},
	    			onFailure: function() {
						$('result').innerHTML = "Something went wrong...";
					}
				}
			);
			Event.stop(event);
		}
	},
	
	/*'form#addressesAsa:submit' : function(element, event) {
		
		ajaxAsaAddresses(element, event, "");
		
	},
	
	'a.asaAddresses-sorting:click' : function(element, event) {
		
		var sParams = '&orderby=lastname&direction=asc';
		var rel = getLinkProperties(element).rel;
		if(rel != "") {
			var aParam = rel.split("@");
			sParams = '&orderby=' + aParam[0] + '&direction=' + aParam[1];
		}
		
		ajaxAsaAddresses(element, event, sParams);
		
	},
	
	'a.asaAddresses-paging:click' : function(element, event) {
		
		var sParams = "";
		var href = getLinkProperties(element).href;
		var aUrl = null;
		var aTempUrl = href.split("?");
		
		if(aTempUrl != null && aTempUrl[1] != "") {
			aUrl = aTempUrl[1].split("&");
		}
		if(aUrl != null) {
			for(var iCount = 0; iCount < aUrl.length; iCount++) {
				if(aUrl[iCount].indexOf("orderby") > -1) {
					sParams += "&" + aUrl[iCount];
				}
				if(aUrl[iCount].indexOf("direction") > -1) {
					sParams += "&" + aUrl[iCount];
				}
			}
		}

		var rel = getLinkProperties(element).rel;
		
		if(rel != "") {
			if(rel.indexOf("@") > -1) {
				sParams += "&currentPage=" + rel;
			}
			else {
				sParams += "&currentPage=" + rel.split("@")[0];
			}
		}
		
		ajaxAsaAddresses(element, event, sParams);
		
	},*/
	
	'select.filtercriteria:change' : function(element, event) {
		var oForm = element.up("form");
		oForm.submit();
	},
	
	'input#filter-saveselection:click' : function(element, event) {
		var aDropdowns = $$('.filtercriteria');
		var sCriteriaString = "";
		if (aDropdowns != undefined) {
			for(var iDropdownCount = 0; iDropdownCount < aDropdowns.length; iDropdownCount++) {
				if (aDropdowns[iDropdownCount].value == "") {
					break;
				}
				if (sCriteriaString != "") {
					sCriteriaString += ","
				}
				sCriteriaString += aDropdowns[iDropdownCount].value;
			}
		}
	
		var oAjax = new Ajax.Request(
		SERVER_URL + URL_MAGIC + '/' + CURRENT_LANGUAGE + '/filter-frontend-ajax-manager',
			{
				method: 'post',
				parameters: '?method=savesetting&criterias=' + sCriteriaString + '&filter=' + $('filter-id').value + '&referrer=' + $('filter-referrer').value + '&slug=' + $('filter-slug').value,
				onSuccess: function(transport) {
      				var response = transport.responseText;
					if (response == "FULL") {
						writeFilterMessage("Si possono salvare non pi&#249; di 3 impostazioni filtro.");
					}
					else if (response != "NOK" && response != "ERROR") {
						writeFilterMessage("Le impostazioni del filtro sono state salvate con successo.", 1);
						updateSavedFilterSettings(response, sCriteriaString);
					}
					else {
						writeFilterMessage("Durante il salvataggio delle impostazioni del filtro si &#232; verificato un errore. Riprova.", 0);
					}
    			},
    			onFailure: function() {
					writeFilterMessage("Durante il salvataggio delle impostazioni del filtro si &#232; verificato un errore. Riprova.", 0);
				}
			}
		);
		Event.stop(event);
	},
	'a.filter-delete-setting:click' : function(element, event) {
		element = element.up("a");
		var aRel = element.getAttribute('rel').split('$$');

	
		var oAjax = new Ajax.Request(
		SERVER_URL + URL_MAGIC + '/' + CURRENT_LANGUAGE + '/filter-frontend-ajax-manager',
			{
				method: 'post',
				parameters: '?method=deletesetting&filter='+ aRel[0] + '&setting=' + aRel[1] + '&referrer=' + $('filter-referrer').value + '&slug=' + $('filter-slug').value,
				onSuccess: function(transport) {
      				var response = transport.responseText;
					if (response != "NOK") {
						if (response == "ERROR") {
							writeFilterMessage("Durante la cancellazione delle impostazioni del filtro si &#232; verificato un errore. Riprova.", 0);
						}
						else if (response == "EMPTY") {
							hideSavedFilterSettings();
							writeFilterMessage("Le impostazioni del filtro sono state cancellate con successo.", 1);
						}
						else {
							writeFilterMessage("Le impostazioni del filtro sono state cancellate con successo.", 1);
							updateSavedFilterSettings(response, "");
						}
					}
					else {
						writeFilterMessage("Durante la cancellazione delle impostazioni del filtro si &#232; verificato un errore. Riprova.", 0);
					}
    			},
    			onFailure: function() {
					writeFilterMessage("Durante la cancellazione delle impostazioni del filtro si &#232; verificato un errore. Riprova.", 0);
				}
			}
		);
		Event.stop(event);
	},
	
	'div#seite-weiterempfehlen-close:loaded' : function(element, event) {
		$('seite-weiterempfehlen-close').removeClassName('hideme');
	},
	
	'a#forms-inputfield-cancel:click' : function(elememt, event) {
		if(self.parent) {
			self.parent.Shadowbox.close();
			//Event.stop(event);
		}
	},
	
	/*'div.simplesearch input#q:keyup' : function(element, event) {
		var sToken = element.value;
		var oLayerDiv = $('search_suggest');
		var oContainer = $('suggestions');
		if (sToken && sToken.length > 0 && oLayerDiv && oContainer) {
			var oAjax = new Ajax.Request(
				SERVER_URL + URL_MAGIC + '/' + CURRENT_LANGUAGE + '/gsa-ajax-manager',
				{
					method:		'get', 
					parameters:	"method=getQuerySuggestions&token=" + sToken,
					onSuccess:	function(transport, json) {
						var sResponse = transport.responseText;
						var aSuggestions = eval(sResponse);
						if (aSuggestions.length > 0) {
							var sHtmlString = "<ul class=\"ss-gac\">";
							for (var iCount = 0; iCount < aSuggestions.length; ++iCount) {
								sHtmlString += "<li>" + aSuggestions[iCount] + "</li>";
							}
							sHtmlString += "</ul>";
							oContainer.update(sHtmlString);
							oLayerDiv.show();
						}
						else {
							oLayerDiv.hide();
						}
					},
					onFailure:	function(transport, json) {
						alert(asciiToText("Well, this is embarassing... Something went wrong, please try again!"));
						oLayerDiv.hide();
					}
				}
			);
		}
		Event.stop(event);
	},*/
	
	'div#search_suggest a.close:click' : function(element, event) {
		var oLayerDiv = $('search_suggest');
		if (oLayerDiv) {
			oLayerDiv.hide();
		}
		Event.stop(event);
	},
	
	'div#search_suggest ul.ss-gac li:click' : function(element, event) {
		var oTarget = $('q');
		var oLayerDiv = $('search_suggest');
		var oForm = $('search-form');
		if (oTarget && oLayerDiv && oForm) {
			document.forms["search-form"].elements["q"].value = element.innerHTML;
			oLayerDiv.hide();
			oForm.submit();
		}
	},
	
	'div#search_suggest_top a.close:click' : function(element, event) {
		var oLayerDiv = $('search_suggest_top');
		if (oLayerDiv) {
			oLayerDiv.hide();
		}
		Event.stop(event);
	},
	
	'div#suggestions_top ul.ss-gac li:click' : function(element, event) {
		var oLayerDiv = $('search_suggest_top');
		var oForm = $('search-top');
		if (oLayerDiv && oForm) {
			document.forms["search-top"].elements["q"].value = element.innerHTML;
			oLayerDiv.hide();
			oForm.submit();
		}
	},
	
	'form#distributorlistsearch select#region:change' : function(element, event) {
		var oForm = element.up('form');
		if (oForm) {
			oForm.submit();
		}
	},
	
	'a.sitemap_expand:click' : function(element, event) {
		showSitemap(element, event);
	},
	
	'a.sitemap_unexpand:click' : function(element, event) {
		showSitemap(element, event);
	},
	
	'a.wt_track:click': function(element, event) {
		var oLink = $(element).up('a');
		if(oLink) {
			var sClasses = oLink.className.toString();
			var sWTParams = sClasses.substring(sClasses.lastIndexOf("wt_track {")+9, sClasses.indexOf("}", sClasses.lastIndexOf("wt_track {"))+1);
			var oParams = sWTParams.evalJSON();
			wtTrackLink(oParams);
		}
	},
	'div#container-search form#search-form:submit' : function(element, event) {
		newSearchReq(1,'load');		
		Event.stop(event);
	},
	'div.simplesearch select#as_filetype:change' : function(element, event) {
		newSearchReq(1,'load');		
		Event.stop(event);
	},
	'div#container-search div.paging a:click' : function(element, event) {
		

		var sRel = ""
		
		if(element.id == 'searchPrev' || element.id == 'searchNext'){
			var o;
			if(element.id == 'searchPrev'){
				sRel = document.getElementById('searchPrev').parentNode.rel
			}
			if(element.id == 'searchNext'){
				sRel = document.getElementById('searchNext').parentNode.rel
			}
		}
		else{
			if(element.rel){
				sRel = element.rel
			}
		}


		if(sRel && sRel != ""){
			var aRelParam = sRel.toString().split("@")
		}
		if(aRelParam){
			var sParams = "";
		    var href = getLinkProperties(element).href;
		    var aUrl = null;
		    var aTempUrl = href.split("?");
		    if (aTempUrl && aTempUrl[1]) {
               var aParams = aTempUrl[1].split("&");
               for (var iCount = 0; iCount < aParams.length; ++iCount) {
	               if (aParams[iCount].indexOf("method") == -1) {
	               	sParams += "&" + aParams[iCount];
	               }
               }
		    }
			newSearchReq(aRelParam[1],aRelParam[0],sParams);
			Event.stop(event);
		}
	},
	'div#container-search ul.linklist a:click' : function(element, event) {
		if(element.rel){
			var aRelParam = element.rel.toString().split("@")
		}
		if(aRelParam){
			newAdvancedSearchReporting(aRelParam[0],aRelParam[1],aRelParam[2],aRelParam[3]);
		}
	},
	'div#container-search ul.form_fieldset li.forms-advanced-search a.link:click' : function(element, event) {
		if(element.rel){
			newAdvancedSearchReporting(element.rel);
		}
	},
	'body:load' : function(element, event) {
		var oSubmit = $$('form#search-top input.submit');
		
		if(oSubmit) {
			oSubmit.setAttribute('disabled', 'disabled');
		}
	},	
	'a.asbesthaus-link:click' : function(element, event) {
		if (document.location.href && document.location.href.indexOf("#") != -1) {
			window.location.hash = '/asbesthaus';
		}
		if (document.location.href && document.location.href.indexOf("?") == -1) {
			Asbesthaus.open();
			Event.stop(event);
		}
	}
};

function getSuggestions(element) {
	var sToken = element.value;
	var oLayerDiv = $('search_suggest');
	var oContainer = $('suggestions');
	if (sToken && sToken.length > 0 && oLayerDiv && oContainer) {
		var oAjax = new Ajax.Request(
			SERVER_URL + URL_MAGIC + '/' + CURRENT_LANGUAGE + '/gsa-ajax-manager',
			{
				method:		'get', 
				parameters:	"method=getQuerySuggestions&token=" + sToken,
				onSuccess:	function(transport, json) {
					var sResponse = transport.responseText;
					var aSuggestions = eval(sResponse);
					if (aSuggestions.length > 0) {
						var sHtmlString = "<ul class=\"ss-gac\">";
						for (var iCount = 0; iCount < aSuggestions.length; ++iCount) {
							sHtmlString += "<li>" + aSuggestions[iCount] + "</li>";
						}
						sHtmlString += "</ul>";
						oContainer.update(sHtmlString);
						oLayerDiv.show();
					}
					else {
						oLayerDiv.hide();
					}
				},
				onFailure:	function(transport, json) {
					alert(asciiToText("Well, this is embarassing... Something went wrong, please try again!"));
					oLayerDiv.hide();
				}
			}
		);
	}
}

function getSuggestionsTop(element) {
	var sToken = element.value;
	var oLayerDiv = $('search_suggest_top');
	var oContainer = $('suggestions_top');
	if (sToken && sToken.length > 0 && oLayerDiv && oContainer) {
		var oAjax = new Ajax.Request(
			SERVER_URL + URL_MAGIC + '/' + CURRENT_LANGUAGE + '/gsa-ajax-manager',
			{
				method:		'get', 
				parameters:	"method=getQuerySuggestions&token=" + sToken,
				onSuccess:	function(transport, json) {
					var sResponse = transport.responseText;
					var aSuggestions = eval(sResponse);
					if (aSuggestions.length > 0) {
						var sHtmlString = "<ul class=\"ss-gac\">";
						for (var iCount = 0; iCount < aSuggestions.length; ++iCount) {
							sHtmlString += "<li>" + aSuggestions[iCount] + "</li>";
						}
						sHtmlString += "</ul>";
						oContainer.update(sHtmlString);
						oLayerDiv.show();
					}
					else {
						oLayerDiv.hide();
					}
				},
				onFailure:	function(transport, json) {
					alert(asciiToText("Well, this is embarassing... Something went wrong, please try again!"));
					oLayerDiv.hide();
				}
			}
		);
	}
}

function writeFilterMessage(message, mode) {
	if (mode && mode == 1) {
		$('filter-message').addClassName("success-message");
		$('filter-message').removeClassName("error-message");
		$('filter-message').update(message + "<br /><br />");
	}
	else {
		$('filter-message').addClassName("error-message");
		$('filter-message').removeClassName("success-message");
		$('filter-message').update(message + "<br /><br />");
	}
}

function updateSavedFilterSettings(html, sCriteriaString) {
	sCriteriaString = sCriteriaString.split(",").join("-");
	var sLiId = "id=\"setting-" + sCriteriaString + "\"";

	if (html.indexOf(sLiId) != -1) {
		$('filter-saveselection').disable();
	}
	else {
		$('filter-saveselection').enable();	
	}
	$('saved-filter').innerHTML = html;
	if (!$('saved-filter').visible()) {
		$('container-saved-filter').show();
		Effect.toggle('saved-filter', 'slide', { duration: 0.5 });
	}
	if (!$('saved-filter-handler').visible()) {
		$('saved-filter-handler').show();
		$('saved-filter-handler').addClassName('open');
	}
	if (!$('saved-filter-handler').hasClassName('open')) {
		$('container-saved-filter').show();
		Effect.toggle('saved-filter', 'slide', { duration: 0.5 });
		$('saved-filter-handler').addClassName('open');
	}
}

function hideSavedFilterSettings() {
	$('saved-filter').hide();
	$('saved-filter-handler').hide();
	$('saved-filter-handler').removeClassName('open');
	$('container-saved-filter').hide();
}

function windowOpen(sUrl, iWidth, iHeight) {
	if (iWidth && iWidth != "" && iHeight && iHeight != "") {
		window.open(sUrl, "_blank", "toolbar=no, location=no, status=no, menubar=no, personalbar=no, scrollbars=yes, width=" + iWidth + ", height=" + iHeight + ", resizable=yes, screenx=50, left=50, screenY=50, top=50");
	}
	else {
		window.open(sUrl, "_blank", "toolbar=no, location=no, status=no, menubar=no, personalbar=no, scrollbars=yes, width=775, height=500, resizable=yes, screenx=50, left=50, screenY=50, top=50");
	}
}


// Fallback / Debug
if(!dcsMultiTrack) {
	var dcsMultiTrack = function(v1, href, v2, title) {
		//alert("dcsMultiTrack(): " + href + ", " + title);
	}
}

// Get the href of the element (recursive)
function getHref(element) {
    var sHref="";      
	while (element) {
	    if (element.tagName.toLowerCase() == 'a' && element.href) {
			sHref = element.href;
			break;
	    }
	    else {
	    	element = element.parentNode;
	    }
	}
    return sHref;
}

// Get the link Properties of the element (recursive)
function getLinkProperties(element) {
    var oLinkProperties = new Object();      
	while (element) {
	    if (element.tagName.toLowerCase() == 'a' && element.href) {
			oLinkProperties.href = element.href;
			oLinkProperties.cssClasses = element.className;
			oLinkProperties.rel = element.rel;
			break;
	    }
	    else {
	    	element = element.parentNode;
	    }
	}
    return oLinkProperties;
}


function confirmDelete() {
	if (!confirm("Cancellare i dati selezionati?")) {
		return false;
	} else {
		return true;
	}
}

function focusFirstFormField() {

	var oForm = $("col3").getElementsByTagName("FORM")[0];
	if (oForm) {
	
		for (var iElementCount = 0; iElementCount < oForm.elements.length; ++iElementCount) {

			var oCurrentElem = oForm.elements[iElementCount];
			if (((((oCurrentElem.nodeName == "INPUT") && ((oCurrentElem.type == "text") || (oCurrentElem.type == "password") || (oCurrentElem.type == "radio") || (oCurrentElem.type == "checkbox"))) || (oCurrentElem.nodeName == "TEXTAREA")) && 
				(oCurrentElem.value == "")) || oCurrentElem.nodeName == "SELECT") {
				
				oCurrentElem.focus();
				break;
			}
		}
	}
}

function printPage(sUrl) {
	window.open(sUrl, "printWindow", "toolbar=no, location=no, status=no, menubar=yes, personalbar=no, scrollbars=yes, width=615, height=500, resizable=yes, screenx=50, left=50, screenY=50, top=50");
}

function openShadowbox(sContent, sPlayer, sTitle, iWidth, iHeight, bTrack) {
	if (sContent != "" && bTrack == true) {
		dcsMultiTrack('DCS.dcsuri', sContent);
	}
	Shadowbox.open({
		content:    sContent,
        player:     sPlayer,
        title:      sTitle,
		width:		iWidth,
		height:		iHeight
	});
}

function asciiToText(sInput) {
	return sInput.replace(/&#(\d+);/g, function (m, n) { return String.fromCharCode(n); });
}


// Remove/Comment this if you do not wish to reapply Rules automatically
// on Ajax request.
Ajax.Responders.register({
  onComplete: function() { EventSelectors.assign(Rules);}
});

function openTextWizard(iObjectId) {
	if ('WEBENGINE'.toUpperCase() == 'CMENGINE') {
		if (iObjectId != "" && iObjectId != "null") {
			//window.top.texWiz(iObjectId,1,2,0,'');
			window.open("cmo-WizardStarter?lang=1&appl=texwiz&id=" + iObjectId + "&objlang=1&objbrowser=1&objrevision=0&ocmid=2." + iObjectId+ ".1.1.0.0.0.0.0","WizardStarter","width=203,height=104");			
		}
		else {
			alert("Si &#232; verificato un errore. Si prega di riprovare pi&#249; tardi.");
		}
	}
}

function rewriteObscureEmail(element) {
	var sHref = getHref(element);
	if( sHref && sHref.indexOf("@") < 0 ) {
		var asErgebnis = sHref.match(/[a-zA-Z0-9_%\.\+\-]+\+[a-zA-Z0-9\.\-\+]+/);
		if (asErgebnis.length > 0) {
			sHref = asErgebnis[0];
			sHref = sHref.replace(/\+/i, "@");
			sHref = sHref.replace(/\+/gi, ".");
			element.href = "mailto:" + sHref;
		}
	}
}

function ajaxAsaAddresses(element, event, sParams) {
	var formValidator = new Validation('addressesAsa', '');
	if (formValidator.validate()) {
		
		var oAjax = new Ajax.Request(
		SERVER_URL + URL_MAGIC + '/' + CURRENT_LANGUAGE + '/asa-ajax-manager',
			{
				method: 'get',
				parameters: $('addressesAsa').serialize() + sParams,
				onSuccess: function(transport) {
      				var response = transport.responseText;
					$('addressesResult').scrollTo();
      				$('addressesResult').innerHTML = response;
    			},
    			onFailure: function() {
					$('addressesResult').innerHTML = "Something went wrong...";
				}
			}
		);
		Event.stop(event);
	}
}

function showSitemap(element, event) {
	if (element.className == 'sitemap_expand') {
		expandSitemap(element, event);
	}
	else if (element.className == 'sitemap_unexpand') {
		unexpandSitemap(element, event);
	}
}

function expandSitemap(element, event) {
	var sId = element.id.substr(7);

	var sUrl = 'sitemap-ajax-manager';
	var sParameter = '?node=' + sId;
	
	if (sUrl.indexOf('?') > -1) {
		sParameter = '&node=' + sId;
	}

	if($('list_' + sId) && $('list_' + sId).style.display == "none") {
		$('list_' + sId).style.display = 'block';
	}
	else {	
		var oAjax = new Ajax.Request(
		SERVER_URL + URL_MAGIC + '/' + CURRENT_LANGUAGE + '/' + sUrl,
			{
				method: 'get',
				parameters: sParameter,
				onSuccess: function(transport) {
	  				var response = transport.responseText;
	  				element.parentNode.innerHTML += response;
					$(document).fire("sitemap:expanded");
				},
				onFailure: function() {
					element.parentNode.innerHTML = "Something went wrong...";
				}
			}
		);
	}
	
	changeExpandLink(element, sId);
	
	Event.stop(event);	
}

function unexpandSitemap(element, event) {

	var sId = element.id.substr(9);
	var oContentElement = $('list_' + sId);
		
	oContentElement.style.display = 'none';
	
	var oaChildren = oContentElement.children;

	if (oaChildren.length > 0) {
		hideChildren(oaChildren);
	}
	
	changeExpandLink(element, sId);

	Event.stop(event);
}

function hideChildren(oaChildren) {
	var oChild = null;
	var oChild2 = null;
	var oaChildren2 = null;
	var oLink = null
	var sId = 0;

	for (var iCounter = 0;iCounter < oaChildren.length; iCounter++) {
		oChild = oaChildren.item(iCounter);
		oaChildren2 = oChild.children;
		
		for (var iCounter2 = 0;iCounter2 < oaChildren2.length;iCounter2++) {
			oChild2 = oaChildren2.item(iCounter2);
			
			if (oChild2.tagName == 'UL' && oChild2.id.indexOf('list_') > -1) {
			
				oChild2.style.display = 'none';
				
				sId = oChild2.id.substr(5);
				oLink = $('unexpand_' + sId);
				
				if (oLink) {
					changeExpandLink(oLink, sId);
				}
				
				if (oChild2.children.length > 0) {
					hideChildren(oChild2.children);
				}
			}
		}
		
	}
}

function changeExpandLink(element, sId) {
	
	if(element.id.indexOf('unexpand_') > -1) {
	
		element.id = 'expand_' + sId;
		element.className = 'sitemap_expand';
		element.title = 'expand';
		element.innerHTML = '[+]';
		var sUrl = 'sitemap-suva.htm';
		
		if (sUrl.indexOf('?') > -1) {
			element.href=sUrl + '&node=' + sId;
		}
		else {
			element.href=sUrl + '?node=' + sId;
		}
	}
	else {
		var sListId = element.parentNode.parentNode.id.substr(5);
		
		element.id = 'unexpand_' + sId;
		element.className = 'sitemap_unexpand';
		element.title = 'unexpand';
		element.innerHTML = '[-]';
		var sUrl = 'sitemap-suva.htm';
		
		if (sUrl.indexOf('?') > -1) {
			element.href=sUrl + '&node=' + sListId;
		}
		else {
			element.href=sUrl + '?node=' + sListId;
		}		
	}
}

function wtTrackLink(oParams) {
	
	var sParams = "'WT.i_zaction','c'";
	sParams += ",'WT.dl','7704'";
	
	for(var params in oParams) {
		sParams += ",'" + params + "','" + oParams[params] + "'";
	}

	eval("dcsMultiTrack(" + sParams + ")");
}
function newSearchReq(pg,ct,param){
	
	$('search-result').hide();
	$('search-result-load').show();
	
	var sParam = ''

	var url = SERVER_URL + URL_MAGIC + '/' + CURRENT_LANGUAGE + '/suche-ajax.htm';
	
	var sQuery = '';

	if($('search-form') && $('search-form').serialize(true).q){
		sQuery = $('search-form').serialize(true).q;
	}
	var sFormat = '';
	if($('as_filetype') && $('as_filetype').selectedIndex && $('as_filetype').options[$('as_filetype').selectedIndex] && $('as_filetype').options[$('as_filetype').selectedIndex].value){
		sFormat = $('as_filetype').options[$('as_filetype').selectedIndex].value;
	}
	var sLanguage = '';
	if($('lr') && $('lr').selectedIndex && $('lr').options[$('lr').selectedIndex] && $('lr').options[$('lr').selectedIndex].value){
		sLanguage = $('lr').options[$('lr').selectedIndex].value;
	}
	var sPhrase = '';
	if($('as_epq') && $('as_epq').value){
		//sPhrase = $('as_epq').value;
		sPhrase = $('search-form').serialize(true).as_epq;
	}
	var sOR = '';
	if($('as_oq') && $('as_oq').value){
		//sOR = $('as_oq').value;
		sOR = $('search-form').serialize(true).as_oq;
	}
	var sExclude = '';
	if($('as_eq') && $('as_eq').value){
		//sExclude = $('as_eq').value;
		sExclude = $('search-form').serialize(true).as_eq;
	}
	var sRequiredfields = '';
	if($('requiredfields') && $('requiredfields').selectedIndex && $('requiredfields').options[$('requiredfields').selectedIndex] && $('requiredfields').options[$('requiredfields').selectedIndex].value){
		sRequiredfields = $('requiredfields').options[$('requiredfields').selectedIndex].value;
	}
	var iStart = 1;
	if(pg){
		iStart = pg;
	}
	var sMode = '';
	if($('mode') && $('mode').value){
		sMode = $('mode').value;
	}
	if(!param){
		sParam = "&mode="+sMode+"&q="+sQuery+"&output=xml_no_dtd&ie=utf-8&oe=utf-8&start="+iStart+"&lr="+sLanguage+"&as_filetype="+sFormat+"&as_epq="+sPhrase+"&as_oq="+sOR+"&as_eq="+sExclude+"&requiredfields="+sRequiredfields+"&pg="+iStart;
	}
	else{
		sParam = param
	}

	if(url && url != ''){
		new Ajax.Request(url, {
  			method: 'post',
			parameters: sParam.replace(/&/,"?"),
  			onSuccess: function(transport) {
				//hide the DataTable
								
				$('search-result-load').hide();
				$('search-result').show();
				$('search-result').update(transport.responseText);
				if(ct){
					newAdvancedSearchReporting(ct);
				}
  			},
			onFailure: function(){
				$('search-result-load').hide();
				$('search-result').update("");
				$('search-result').show();
			}
		});
	}
}
function newAdvancedSearchReporting(sCt,sPg,sPos,sPgUrl){
	var url = SERVER_URL + URL_MAGIC + '/' + CURRENT_LANGUAGE + '/gsa-ajax-manager';
	
	var sQuery = '';
	if($('search-form') && $('search-form').serialize(true).q){
		sQuery = $('search-form').serialize(true).q;
	}
	var sClickType ='';
	if(sCt){
		sClickType = sCt;
	}
	var iPageingId = 1;
	if(sPg){
		iPageingId = parseInt(sPg);
	}
	var iPos = 0;
	if(sPos){
		iPos = parseInt(sPos);
	}
	var sPageUrl ='';
	if(sPgUrl){
		sPageUrl = sPgUrl;
	}
	if(url && url != ''){
		new Ajax.Request(url, {
  			method: 'post',
			parameters: {
				q: sQuery, 
				ct: sClickType,
				url: sPageUrl,
				pid: iPageingId,
				pos: iPos,
				method: 'ASR'//,
				//date: Date.parse(new Date()),
				//k: Math.random()
			},
  			onSuccess: function(transport) {
				//hide the DataTable
				if(transport.responseText == "successful"){
					// do nothing
				}
				if(transport.responseText == "failed"){
					// do nothing
				}
  			},
			onFailure: function(){
				// do nothing
			}
		});
	}
}
var Asbesthaus = ( function() {
			
	var rootdir = '/files/asbesthaus/';
	var contentPath = SERVER_URL + URL_MAGIC + "/" + CURRENT_LANGUAGE + "/asbestos-house-content.xml";
	var swfPath = rootdir + 'loader.swf';
	var appPath = rootdir + 'Main.swf';

    var swfVersionStr = "10.0.0";
    <!-- To use express install, set to playerProductInstall.swf, otherwise the empty string. -->
    var xiSwfUrlStr = "playerProductInstall.swf";
    var flashvars = {
			xmlcontent: contentPath,
			rootdir: rootdir,
			app: appPath
		};
    var params = {};
    params.quality = "high";
    params.bgcolor = "#ffffff";
    params.allowscriptaccess = "sameDomain";
    params.allowfullscreen = "true";
    params.wmode = Prototype.Browser.Gecko ? "window" : "transparent";
    var attributes = {};
    attributes.id = "AsbesthausFlash";
    attributes.name = "AsbesthausFlash";
    attributes.align = "middle";


	return {
		open: function() {				  
			Element.insert( document.body , '<div id="AsbesthausContainer" style="position: fixed; left:0; top: 0; width: 100%; height: 100%; z-index: 1000000;"><div id="AsbesthausContent">&nbsp;</div>' );
			
			   swfobject.embedSWF(
                swfPath , "AsbesthausContent", 
                "100%", "100%",
                swfVersionStr, xiSwfUrlStr, 
                flashvars, params, attributes);
			swfobject.createCSS("#AsbesthausContent", "display:block;text-align:left;");
		}
		,
		close: function() {
			$('AsbesthausContainer').remove();
		}
	}
} )();
