

// Initialize variables
var SERVER_URL = 'http://www.autopostale.ch';
var SECURE_SERVER_URL = 'https://www.autopostale.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 bMapIsSet;

Event.observe(window, "load", function() {
	 
	// Initialise the divs for the javascript site
	if ($('ra-alt-image')) {
		$('ra-alt-image').addClassName('hidden');
	}
	
	if ($('googleMap')) {
		$('googleMap').setStyle({border: '1px solid #999999', borderTop: 'none'});
	}
	
	if ($('ra-map-icon')) {
		$('ra-map-icon').removeClassName('hidden');
		
		$('movieFrame').setStyle({display: 'none'});
		//$('ra-mapcontainer').addClassName('ra-mapcontainersize');
		
		// Change the view to the movie
		$('ra-showmovie').observe('click', function(event){
			$('googleMap').setStyle({display: 'none'});
			$('movieFrame').setStyle({display: 'block'});
			
			// Icons
			$('ra-movie-icon').removeClassName('hidden');
			$('ra-map-icon').addClassName('hidden');
			
			// Close map text
			$('closemap').update(asciiToText("Chiudere il film"));
			$('closemaplink').title = asciiToText("Chiudere il film");
			
			// Load and print the iframe first time loaded
			if (!$('movieFrame').hasClassName('loaded')) {
				// Show loading div	
				$('movieloading').removeClassName('hidden');
			
				// Add the iFrame
				var myFrame = document.createElement('iframe');
				myFrame.src = 'http://media10.simplex.tv/content/54/55/10258/index.html';
				myFrame.width = '750px';
				myFrame.height = '330px';
				myFrame.scrolling = 'no';
				myFrame.frameBorder = '0';
				
				// Append the iframe
				$(myFrame).addClassName('hidden');				
				$('movieFrame').appendChild(myFrame);
				
				$(myFrame).observe('load', function(event) {
					$('movieloading').addClassName('hidden');
					$(myFrame).removeClassName('hidden');
				});
			
				// Set flag to loaded
				$('movieFrame').addClassName('loaded');
			}
			
			Event.stop(event);
		});
		
		// Change the view to the map
		$('ra-showmap').observe('click', function(event){
			$('googleMap').setStyle({display: 'block'});
			$('movieFrame').setStyle({display: 'none'});
			
			// Icons
			$('ra-map-icon').removeClassName('hidden');
			$('ra-movie-icon').addClassName('hidden');
			
			// Close map text
			$('closemap').update(asciiToText("Chiudere la carta"));
			$('closemaplink').title = asciiToText("Chiudere la carta");
			
			Event.stop(event);
		});
	}
	
	$$('span.raDropdown').invoke('observe', 'click', function(event) {
		var element = Event.element(event);
		
		if (!element.id) {
			element = element.up();
		}
		var iCategory = element.id.substring(12);
		if (iCategory && !isNaN(iCategory)) {
			
			var oContainer = $('ra-category-' + iCategory);
			if (oContainer) {
				if (oContainer.hasClassName('open')) {
					new Effect.SlideUp(oContainer, {duration:0.5, scaleContent: false});
				}
				else {
				
					if ($$('div#ra-filter-container .hide')) {
						$$('div#ra-filter-container .hide').each(function(item) {
							if (item.hasClassName('open')) {
								if ($(item.id)) {
									$(item.id).setStyle('z-index:1');
									new Effect.SlideUp($(item.id), {duration:0.5, scaleContent: false});
								}
							}
							item.removeClassName('open');
						});
					}
					oContainer.setStyle('z-index:1000');
					new Effect.SlideDown(oContainer, {duration:0.5, scaleContent: false});
					
				}
				oContainer.toggleClassName('open');
				Event.stop(event);
				$(document.body).observe('click', respondToClick);
			}
		}
	});
	
	if ($('ra-query')) {
		$('ra-query').observe('focus', function(event) {
			var element = Event.element(event);
			if (element.value == asciiToText("Parola chiave")) {
				element.value = "";
			}
		});
		$('ra-query').observe('blur', function(event) {
			var element = Event.element(event);
			if (element.value == "") {
				element.value = asciiToText("Parola chiave");
			}
		});
	}

	$$('a.showMap').invoke('observe', 'click', function(event) {
		var element = Event.element(event);
		
		if (!element.href) {
			element = element.up();
		}
		var oMap = $('ra-mapcontainer');
		var oArrow;
		if (oMap) {
			if (oMap.hasClassName('open')) {
				new Effect.SlideUp(oMap, {duration:0.8, scaleContent: false});
				oArrow = element.down("span.up");				
				oArrow.removeClassName('up')
				oArrow.addClassName('down');
				if ($('ra-map-icon') && $('ra-map-icon').hasClassName('hidden')) {
					$('closemaplink').title = asciiToText("Aprire il film");
					$('closemap').update(asciiToText("Aprire il film"));
				}
				else {
					$('closemaplink').title = asciiToText("Aprire la carta");
					$('closemap').update(asciiToText("Aprire la carta"));
				}
			}
			else {
				new Effect.SlideDown(oMap, {duration:0.8, scaleContent: false});
				oArrow = element.down("span.down");
				oArrow.removeClassName('down')
				oArrow.addClassName('up');
				if ($('ra-map-icon') && $('ra-map-icon').hasClassName('hidden')) {
					$('closemaplink').title = asciiToText("Chiudere il film");
					$('closemap').update(asciiToText("Chiudere il film"));
				}
				else {
					$('closemaplink').title = asciiToText("Chiudere la carta");
					$('closemap').update(asciiToText("Chiudere la carta"));
				}
			}
			oMap.toggleClassName('open');
		}
		Event.stop(event);
	});
	
	$$('a.raTabChange').invoke('observe', 'click', function(event) {
		var element = Event.element(event);
		var oContainer = $('ra-detail');
		var oTabs = $$('div#ra-tabs li');
		var tmp = getLinkProperties(element).rel.split("$$");
		var oKeyvisual = $('ra-keyvisual');
		var oTeaser = $('pag_ra_map');
		
		if (oContainer && oTabs) {
			var oAjax = new Ajax.Request(
				'ra-ajax-manager',
				{
					method:		'get', 
					parameters:	"method=tabchange&offerId=" + tmp[1] + "&template=" + tmp[2] + "&checksum=" + tmp[3] + "&poi=" + tmp[4],
					onSuccess:	function(transport, json) {
						var sResponse = transport.responseText;
						if (sResponse) {
							oContainer.innerHTML = sResponse;
							
							if (tmp[0] == "map") {
								$('googleMap').style.display = "block";
								if (tmp[4] == "true") {
									GMapsLoad(tmp[1], 'POI');
								}
								else if (tmp[1]) {
									GMapsLoad(tmp[1], 'offer', null, window.oKmlToIntegrate);
								}
								
								// register shadowbox links for POIs
								registerBoxLinks();
							}
							else {
								GUnload();
							}
							
							// hide shadowbox buttons for all except gallery
							if (tmp[0] != "gallery" && $('sb-info') && $('sb-info')!=null) {
								$('sb-info').style.display = 'none';
							}
							
							// add shadowbox to photogallery
							if (tmp[0] == "gallery") {
								Shadowbox.setup("a.imageChange", {"gallery": "photos", "onFinish": function() {
									$('sb-info').style.display = 'block'; 
									$('sb-title-inner').setStyle({paddingRight: '100px', height: 'auto'});
									$('sb-title').setStyle({height: $('sb-title-inner').getHeight() + 'px'});
								},
								"onChange": function() {
									$('sb-title-inner').setStyle({paddingRight: '100px', height: '26px'});
									$('sb-title').setStyle({height: '26px'});
								},
								"onClose" : function() {
									$('sb-title-inner').setStyle({paddingRight: '100px', height: '26px'});
									$('sb-title').setStyle({height: '26px'});
								}
								
								});
							}
							
							// do the same for movies
							else if (tmp[0] == "video") {
								registerMovieBoxLinks();
							}
							
							// register shadowbox links for pois in tipps-view
							else if (tmp[0] == "pois") {
								registerBoxLinks();
								
							}
							
							// Webtrends tracking
							var sAppEvent = "Detail_Angebot_";
							if (tmp[4] == "true") {
								sAppEvent = "Detail_POI_";
							}
							switch(tmp[0]) {
								case "video":
									sAppEvent += "Video";
									break;
								case "map":
									sAppEvent += "Karte";
									break;
								case "gallery":
									sAppEvent += "Bildergalerie";
									break;
								case "pois":
									sAppEvent += "POIs";
									break;
								case "offers":
									sAppEvent += "Angebote";
									break;
								default:
									sAppEvent += "Uebersicht";
									break;
							}
							dcsMultiTrack('DCSext.app_event', sAppEvent);
							
											
							if (oTeaser) {
								tmp[0] == "map" ? oTeaser.hide() : oTeaser.show();
							}
							oTabs.each(function(item) {
								if (item.id == tmp[0]) {
									if (!item.hasClassName("current")) {
										item.addClassName("current");
									}
								}
								else {
									item.removeClassName("current");
								}
							});
						}
					},
					onFailure:	function(transport, json) {
						alert(asciiToText("Si &#232; verificato un errore. Si prega di riprovare pi&#249; tardi."));
					}
				}
			);
		}
		Event.stop(event);
	});
	
	
	$$('input.ra-filter').invoke('observe', 'click', function(event) {
		var element = Event.element(event);
		var oFilterForm = $('ra-filters');
		var oActive = $('ra-active');
		var aValue = element.value.split("$");
		
		
		if (oFilterForm && aValue) {
			
			var sCategories = oFilterForm.serialize(true).categories;
								
			var sAttributes = "";
			sCategories.split(",").each(function (s) {
				var sSelected = oFilterForm.serialize(true)['filters_' + s]
				if (sSelected) {
					sAttributes += sAttributes ? "," + sSelected : sSelected;
				}
			});
			sAttributes = sAttributes ? sAttributes : "undefined";
						
			toggleRAChoice(aValue[1], aValue[0], element.type);
			toggleRAActive(element.value, element.type);

			var oAjax = new Ajax.Request(
				'ra-ajax-manager',
				{
					method:		'get', 
					parameters:	"method=update&filters=" + sAttributes + "&category=" + aValue[0] + "&categories=" + sCategories,
					onSuccess:	function(transport, json) {
						var sResponse = transport.responseText;
						
						if (sResponse) {
							var json  = eval(sResponse);
							$('ra-offer-count').update('<strong>' + json.count + '</strong>');
							
							for (var iCount = 0; iCount < json.categories.length; ++iCount) {
								var attributes = json.categories[iCount].attributes;
								
								for (var jCount = 0; jCount < attributes.length; ++jCount) {
									if (attributes[jCount].headline != "1") {
										$('ra-count-' + attributes[jCount].id).update('(' + attributes[jCount].count + ')');
										var oInput = $('ra-filter-' + attributes[jCount].id);
										if (attributes[jCount].count == 0) {
											if (oInput.checked) {
												toggleRAChoice(attributes[jCount].id, json.categories[iCount].id, oInput.type);
											}
											oInput.checked = false;
											oInput.disabled = true;
										}
										else {
											if (oActive.value.indexOf(oInput.value) > -1) {
												oInput.checked = true;
												if (oInput.disabled) {
													toggleRAChoice(attributes[jCount].id, json.categories[iCount].id, oInput.type);
												}
											}
											oInput.disabled = false;
										}
									}
								}
							}							
						}
					},
					onFailure:	function(transport, json) {
						alert(asciiToText("Si &#232; verificato un errore. Si prega di riprovare pi&#249; tardi."));
					}
				}
			);
		}
	});
	
	$$('a.ra_admin_textobject').invoke('observe', 'click', function(event) {
		var element = Event.element(event);
		
		var sHref = getHref(element);
		var sName = element.id;
		var aOptions = sHref.split("?");
		
		if (aOptions.length == 2) {
			var sUrl = aOptions[0];
			var sParams = aOptions[1];
			
			var aParams = sParams.split("&");
			var sMethod = aParams[5].split("=")[1];
			
			if (sMethod != "delete" || confirm(asciiToText(""))) {
				var sParentName = sName.substring(0, sName.indexOf("_"))
				$(sParentName + '_loading').removeClassName('hidden');
				
				var oAjax = new Ajax.Request(sUrl,
					{
						method:		'get', 
						parameters:	sParams,
						onSuccess:	function(transport, json) {
							var sResponse = transport.responseText;
							
							if (sResponse != "" && sResponse != "error") {
								if (sMethod == "delete") {
									$(sParentName + '_create').removeClassName('hidden');
									$(sParentName + '_edit').addClassName('hidden');
									$(sParentName + '_delete').addClassName('hidden');
									$(sParentName).value = "";
								}
								else if (sMethod == "create" && !isNaN(sResponse)) {
									$(sParentName + '_create').addClassName('hidden');
									$(sParentName + '_edit').removeClassName('hidden');
									$(sParentName + '_delete').removeClassName('hidden');
									$(sParentName).value = sResponse;
									openTextWizard(sResponse);
								}
								else {
									alert(asciiToText("Si &#232; verificato un errore. Si prega di riprovare pi&#249; tardi."));
								}
								
								$(sParentName + '_loading').addClassName('hidden');
							}
							else {
								alert(asciiToText("Si &#232; verificato un errore. Si prega di riprovare pi&#249; tardi."));
								$(sParentName + '_loading').addClassName('hidden');
							} 
						},
						onFailure:	function(transport, json) {
							alert(asciiToText("Si &#232; verificato un errore. Si prega di riprovare pi&#249; tardi."));
							$(sParentName + '_loading').addClassName('hidden');
						}
					}
				);
			}
		}
		else {
			alert(asciiToText("Si &#232; verificato un errore. Si prega di riprovare pi&#249; tardi."));
		}
		
		Event.stop(event);	

	});
	
	if (!bMapIsSet && window.GMapsLoad) {
		GMapsLoad();
	}
	

	// register shadowbox on page load
	registerBoxLinks();
	Shadowbox.setup("a.imageChange", {"gallery": "photos", "onFinish": function() {
									$('sb-info').style.display = 'block'; 
									$('sb-title-inner').setStyle({paddingRight: '100px', height: 'auto'});
									$('sb-title').setStyle({height: $('sb-title-inner').getHeight() + 'px'});
								},
								"onChange": function() {
									$('sb-title-inner').setStyle({paddingRight: '100px', height: '26px'});
									$('sb-title').setStyle({height: '26px'});
								},
								"onClose" : function() {
									$('sb-title-inner').setStyle({paddingRight: '100px', height: '26px'});
									$('sb-title').setStyle({height: '26px'});
								}
								
								});
	registerMovieBoxLinks();
});


function respondToClick(event) {
	var clickedElement = Event.element(event);
	var oContainer = $$('div#ra-filter-container .open');
	if (oContainer) {
		oContainer.each(function(item) {
			if (clickedElement.descendantOf(item) !== true && !clickedElement.hasClassName('raDropdown')) {
				$(document.body).stopObserving('click', respondToClick);
				new Effect.SlideUp(item, {duration : 0.5, scaleContent : false});
				item.toggleClassName('open');
			}
		});
	}
}

function toggleRAActive(sValue, sType) {
	var oInput = $('ra-active');
	var sUpdate = "";
	
	if (oInput) {
		if (sType != "radio") {
			if (oInput.value.indexOf(sValue) > -1) {
				sUpdate = oInput.value.split(",").without(sValue).join(",");
			}
			else {
				sUpdate = oInput.value != "" ? oInput.value + "," + sValue : sValue;
			}
		}
		else {
			var tmp = sValue.split("$");
			var sCheck = "";
			if (oInput.value.indexOf(tmp[0] + "$") > -1) {
				sCheck = oInput.value.substring(oInput.value.indexOf(tmp[0] + "$"));
				if (sCheck.indexOf(",") > -1) {
					sCheck = sCheck.substring(0, sCheck.indexOf(","));
				}
				sUpdate = oInput.value.split(",").without(sCheck).join(",");
				sUpdate = sUpdate != "" ? sUpdate + "," + sValue : sValue;
			}
			else {
				sUpdate = oInput.value != "" ? oInput.value + "," + sValue : sValue;
			}

		}
		oInput.value = sUpdate;
	}
}

function toggleRAChoice(iAttribute, iCategory, sType) {
	var oChoice = $('ra-choice-' + iCategory);
	var oDropdown = $('ra-dropdown-' + iCategory);
	var oLabel = $('ra-attr-' + iAttribute);
	
	if (oChoice && oLabel && oDropdown) {
		var sLabel = oLabel.innerHTML;
		var sChoice = oChoice.innerHTML;
		var sUpdate = "";
		
		if (sChoice != "-") {							
			var tmp = sChoice.split(", ");
			if (sChoice.indexOf(sLabel) > -1) {								
				if (sType != "radio") {
					sUpdate = tmp.without(sLabel).join(", ");
					if (sUpdate == "") {
						sUpdate = "-";
					}
				}
				else {
					sUpdate = sLabel;
				}
			}
			else {
				if (sType != "radio") {
					sUpdate = sChoice + ", " + sLabel;
				}
				else {
					sUpdate = sLabel;
				}
			}
		}
		else {
			sUpdate = sLabel;
		}
		oChoice.update(sUpdate);
		if (sUpdate == "-") {
			sUpdate = asciiToText("Selezionare");
		}
		if (sUpdate.length > 28) {
			sUpdate = sUpdate.substring(0, 28) + '...';
		}
		oDropdown.update(sUpdate);
	}
}

Rules['a.movieChange:click'] = (function(element, event) {
	var oFrame = $('ra-movie');
	var tmp = getLinkProperties(element).rel.split("$$");
	if (oFrame) {
		var oAjax = new Ajax.Request(
			'ra-ajax-manager',
			{
				method:		'get', 
				parameters:	"method=moviechange&movieId=" + tmp[0] + "&checksum=" + tmp[1],
				onSuccess:	function(transport, json) {
					var sResponse = transport.responseText;
					if (sResponse) {
						oFrame.update(sResponse);
					}
				},
				onFailure:	function(transport, json) {
					alert(asciiToText("Si &#232; verificato un errore. Si prega di riprovare pi&#249; tardi."));
				}
			}
		);
	}
	Event.stop(event);
});

// register shadowbox links for POIs
function registerBoxLinks() {
	// do not handle list links on start page
	if ($("ra-search") === null) {
		$$(".ra_offer_list a").each(function(e)
		{
			attachShadowBoxEvent(e);
		});
	}
	
	// handle clicks in map tooltips
	document.observe("click", function(event, el) {
		if (el = event.findElement("#googleMap #infowin_content .title a.link")) {
			openShadowBox(el.href);
			Event.stop(event);
		}
	});

}

// register shadowbox links for movie galleries
function registerMovieBoxLinks() {
	$$("a.movieChange").each(function(e)
	{
		e.observe("click", shadowBoxMovieLinkHandler);
	});
}

// used to attach shadowbox to a link
function attachShadowBoxEvent(link) {
	link.observe('click', shadowBoxLinkHandler);	
}

// link handler for shadownbox links
function shadowBoxLinkHandler(event) {
	var element = Event.element(event);
	var link = this;
	openShadowBox(link.href);
	Event.stop(event);
}

// link handler for movies
function shadowBoxMovieLinkHandler(event) {
	var link = this;
	openMovieInShadowBox(link);
	Event.stop(event);
}

// open shadow boxes with ajax content
function openShadowBox(url) {
	Shadowbox.open({
		"content": "<div id='shadowboxloading'><div style='background-image:url(ajax-loader.gif); background-position: 48% 30px; background-repeat:no-repeat; height:50px;'></div></div>",
		"player": "html",
		"width": 590
			
	});
	
	new Ajax.Request(
		"ra-ajax-manager",
		{
			"parameters": { "method": "loadInBox", "requrl": url },
			"onSuccess":	function(transport, json) {
				var sResponse = transport.responseText;
				writeToBox(sResponse);
			},
			"onFailure":	function(transport, json) {
				alert(asciiToText("Si &#232; verificato un errore. Si prega di riprovare pi&#249; tardi."));
			}
		});
	
}

// open shadow boxes with ajax content
function openShadowBoxMovieViaAjax(id) {
	Shadowbox.open({
		"content": "<div id='shadowboxloading'><div style='background-image:url(ajax-loader.gif); background-position: 48% 30px; background-repeat:no-repeat; height:50px;'></div></div>",
		"player": "html",
		"width": 590
			
	});
	
	new Ajax.Request(
		"ra-ajax-manager",
		{
			"parameters": { "method": "getmovie", "movieid": id },
			"onSuccess":	function(transport, json) {
				var sResponse = transport.responseText;
				writeToBox(sResponse);
			},
			"onFailure":	function(transport, json) {
				alert(asciiToText("Si &#232; verificato un errore. Si prega di riprovare pi&#249; tardi."));
			}
		});
	
}

// open shadow boxes with movie
function openMovieInShadowBox(link) {
	
	var rel = link.rel;
	var aParams = rel.split("$$");
	openShadowBoxMovieViaAjax(aParams[0]);
}

// write html content to shadowbox
function writeToBox(sContent) {
	var oBox = $('shadowboxloading');
	if (oBox == null) {
		setTimeout(function() {
			writeToBox(sContent);
		}, 200);
	}
	else {
		//oBox.innerHTML = sContent;
		oBox.update(sContent);

		resizeShadowBox();
		
		// strangely live events on dynamic image loads don't work.. workaround:
		setTimeout(resizeShadowBox, 100);
		setTimeout(resizeShadowBox, 500);
		setTimeout(resizeShadowBox, 1000);
	}
}

// uses new applyResize to resize shadowbox to fit inline-content
function resizeShadowBox() {
	try
	{
		var heightFix = 24;
		
		if ($$("#shadowboxloading object").length > 0) {
		
			heightFix = 0;
			Shadowbox.content.width = 544;
		}
		Shadowbox.content.height = Element.getHeight($('shadowboxloading')) + heightFix;
		Shadowbox.skin.applyResize();
	}
	catch(e){}
}
