var JQhomeObj;
/*
COMMUNITY PublishingBlock-83fb8a4b-b3bb-461a-a3cb-501cda9811fe
PALINSESTI PublishingBlock-d74fa8cd-558c-4293-8209-eb5e634812f6
RAITV PublishingBlock-3e79f970-b3ca-41ec-afa4-647f3fb6c3d2
PRIMOPIANO PublishingBlock-15c2c340-e282-473d-b944-661e818d667b
SERVIZI PublishingBlock-d3045a26-45ed-4c6f-b94c-b07b0aa3ab74
JUNIOR PublishingBlock-a87ef305-5a67-4395-b724-8372ac4000fd
SPORT PublishingBlock-c6293919-18dd-41fc-87bb-640d8f483c2d
TV PublishingBlock-8d20de42-b77c-4e1b-9fd0-a8e4b5497a84
RADIO PublishingBlock-c580fdf1-7db7-4ff2-91b6-162c045f763d

NEWS
TELEVIDEO PublishingBlock-4ed16a47-0b63-474a-8ecd-99fbda199bc7
RAITV PublishingBlock-4a9b5ae4-7e5d-4fc3-ad1f-ad39b07bd117  --- da fare (PublishingBlock-47d1dd37-f6a4-4d2a-a433-b9428db9e9dd)
METEO PublishingBlock-55f26079-d5d8-4bdf-a550-24dad105ebc9
VIABILITA PublishingBlock-7dfbd022-73ef-4d8c-949c-c8fc05421728
GR PublishingBlock-c3650cae-58d9-4e2a-b9e4-634e940f3903
BORSA PublishingBlock-a2b54013-21bc-4332-9228-bb461c8d9632
*/
if(typeof(DEBUGRAIHP)=='undefined'){
	DEBUGRAIHP=false;
};
if (typeof(DEBUG) == 'undefined') {
	DEBUG = false;
	if (document.location.search != null && document.location.search.length>1) {
		// eseguo tutto in una closure: evito di creare variabili globali non necessarie
		(function(){
			var s = document.location.search;
			if (s.match(/^\?/)) {
				s = s.substring(1);
			}
			var strParams = s.split('&');
			var params = {};
			var i = 0;
			for (i in strParams) {
				var name = strParams[i];
				var value = true;
				var pos = name.indexOf('=');
				if (pos>0) {
					value = name.substring(pos+1);
					name = name.substring(0, pos);
				}
				params[name] = value;
			}
			if (params.debug === true || params.debug == 'true' || params.debug == 'debug') {
				DEBUG = true;
			}
		})();
	}
}
if (typeof(debug) == 'undefined') {
	function debug(s) {
		if (DEBUG) {alert(s);}
	}
}

/*function getAdagioURL(adagioLocation, adagioFormat, adagioJsFunc, adagioJsFuncNo, kw, kwx) {
	if(window.parent) adagioObj=window.parent; else adagioObj=window;
	var adagioURL="";
	if (adagioFormat && adagioFormat!='') {
		var adagioURL = 'http://ad2.neodatagroup.com/ad/sipra.jsp?loc='+adagioLocation + '&fmt='+adagioFormat + '_jquery';
	} else {
		var adagioURL = 'http://ad2.neodatagroup.com/ad/sipra.jsp?loc='+adagioLocation+'^jquery';
	}
	if(!adagioObj.adagioBT) adagioObj.adagioBT='n';
	if(!adagioObj.adagioWT) adagioObj.adagioWT='n';
	if(!adagioObj.adagioWC) adagioObj.adagioWC=''; else adagioURL+='&wc='+adagioObj.adagioWC;
	if(!adagioObj.adagioWADV) adagioObj.adagioWADV=''; else adagioURL+='&wadv='+adagioObj.adagioWADV;
	if(!adagioObj.adagioBADV) adagioObj.adagioBADV=''; else adagioURL+='&badv='+adagioObj.adagioBADV;
	if(!adagioObj.adagioBT) adagioObj.adagioBT=''; else adagioURL+='&bt='+adagioObj.adagioBT;
	if(!adagioObj.adagioBL) adagioObj.adagioBL=''; else adagioURL+='&bl='+adagioObj.adagioBL;
	if(!adagioObj.adagioWT) adagioObj.adagioWT=''; else adagioURL+='&wt='+adagioObj.adagioWT;
	if(!adagioObj.adagioWL) adagioObj.adagioWL=''; else adagioURL+='&wl='+adagioObj.adagioWL;
	if (adagioJsFuncNo && adagioJsFuncNo != ''){ adagioURL+= '&jsfuncno='+adagioJsFuncNo; }
	if (adagioJsFunc && adagioJsFunc != '') { adagioURL+= '&jsfunc='+adagioJsFunc; }
	return adagioURL;
}*/

var bannercode
var Loader = function() {
	// {selector, adagioLocation, adagioFormat, keepContent}
	this.loading = false;
	this.banners = [];
	this.current = 0;
	this.stopLoading = 0;
	this.finalCallback = null;
	var adagioObj = null;
	if(window.parent) {
		adagioObj=window.parent;
	} else {
		adagioObj=window;
	}
	this.adagioObj = adagioObj;
};
Loader.prototype.reset = function() {
	this.banners = [];
	this.current = 0;
	this.stopLoading = 0;
	this.finalCallback = null;
};
Loader.prototype.setCallback = function(finalCallback) {
	this.finalCallback = finalCallback;
};
Loader.prototype.addBanner = function(bannerData) {
	this.banners[this.banners.length] = bannerData;
};
Loader.prototype.loadAll = function() {
	this.stopLoading = this.banners.length;
	if (!this.loading) {
		this.loadNext();
	} else {
		var s = 'BannerLoader: loadAll called when still loading banners. StopLoading index updated to '+this.stopLoading;
		var stack = [];
		var f = arguments.callee;
		while(f != null) {
			if (f.name) {
				stack.push(f.name);
			} else {
				stack.push(f);
			}
			f = f.caller;
		}
		s += '\nCall stack is:\n'+stack.join('\n');
		try {
			console.log(s);
		} catch(e) {
			debug(s);
		}
	}
};
Loader.prototype.loadNext = function() {
	this.loading = true;
	window.adagioURL = '';
	window.bannercode = '';
	if (this.current >= this.banners.length || this.current >= this.stopLoading) {
		this.loading = false;
		return this.finished();
	}
	debug('BannerLoader: loading banner '+(this.current+1)+' out of '+this.banners.length);

	var bannerData = this.banners[this.current];

	var fname = this.createCallback(this.bannerLoaded, this);
	this.adagioObj.adagioJsFunc = fname; // (quando viene restituito un banner)
	this.adagioObj.adagioJsFuncNo = fname; // (quando viene restituito un default)
	this.adagioObj.adagioLocation = bannerData.adagioLocation || '';
	this.adagioObj.adagioFormat = bannerData.adagioFormat || '';
	var url = getAdagioURL(bannerData.adagioLocation, bannerData.adagioFormat, fname+'();', fname+'();', bannerData.adagioKW, bannerData.adagioKWX);
	debug('BannerLoader: getting script\n'+url);
	$.getScript(url);
};
Loader.prototype.bannerLoaded = function() {
	var bannerData = this.banners[this.current];
	if (typeof(bannerData) == 'undefined') {
		bannerData = {};
	}
	var bcode = window.bannercode;
	debug('BannerLoader: response for banner '+(this.current+1)+' is'+(bcode&&bcode!=''?'\n'+bcode:' empty'));

	bannerData.bannercode = bcode;
	// memorizzo il codice ottenuto, anche se forse non servira'
	this.banners[this.current] = bannerData;

	this.current++;
	
	
	if (bannerData.bannercode == '' && (bannerData.adagioLocation == 'rai_home^rai_home^300x250^up' || bannerData.adagioLocation == 'rai_news^rai_news_hp^300x250^')) {
		debug('BannerLoader: bannerData.bannercode was empty, forcing banner "Emergenza Abruzzo" for rai_home^rai_home^300x250^up and rai_news^rai_news_hp^300x250^');
		// bannerData.bannercode = '<div class="inboxBanner"><h3>Emergenza Abruzzo</h3><div class="Banner"><a href="http://www.rai.it/dl/portale/text/ContentItem-0c8d71d7-5d00-4b61-9a06-2959f877b3ce.html" target="_blank"><img src="/dl/portale/image/emergenza_abruzzo.jpg" alt="Emergenza Abruzzo" /></a></div></div>';
	}

	window.adagioURL = '';
	window.bannercode = '';
	this.adagioObj.adagioJsFunc = false;
	this.adagioObj.adagioJsFuncNo = false;
	this.adagioObj.adagioLocation = '';
	this.adagioObj.adagioFormat = '';

	if (bannerData.bannercode != "") {
		// keepContent defaults to true, if undefined
		if (typeof(bannerData.keepContent) != 'undefined' && bannerData.keepContent != true) {
			$(bannerData.selector).empty();
		}
		//$(bannerData.bannercode).appendTo(bannerData.selector);
		$(bannerData.selector).append(bannerData.bannercode);
	}

	this.loadNext();

};
Loader.prototype.finished = function() {
	debug('BannerLoader: all banners loaded');
	if (this.finalCallback != null) {
		try {
			var f = this.finalCallback;
			this.finalCallback = null;
			f();
		} catch(e) {
		}
	}
	this.reset();
};
Loader.prototype.createCallback = function(func) {
	var baseName = 'bannerCallback';
	var fname = baseName + Math.round(Math.random()*1000000);
	while (typeof(window[fname]) != 'undefined') {
		debug('BannerLoader: creating callback, '+fname+' already exists');
		var r = Math.round(Math.random()*1000000);
		fname = baseName + r;
	}
	var self = this;
	var f = (function() {
		var o = self;
		var fun = func;
		return function() {
			// evito le chiamate multiple!
			window[fname] =  function() {
				return false;
			};
			return fun.call(o, arguments);
		}
	})();
	
	window[fname] = f;
	return fname;
};
BannerLoader = new Loader();

HomePack = function()
{
	var defaultCookie = {};
	var pageCookie;
	var arraySortable;
	var maxNumberCSS;
	var newCookie;
	var colorPage;
	var colorPageRandom;

	this.pageCookie = '';
	this.newCookie="";
	this.ELEMENT_SORTABLE = ".ui-sortable";
	this.PATH_HTML_BLOCK = "/dl/portale/html/";
	this.PATH_HTML_BLOCK_SERVIZI = "/dl/portale/html/servizi/";
	this.PATH_HTML_BLOCK_PALINSESTI = "/dl/portale/html/palinsesti/";
	this.arraySortable = ["#A","#B","#C","#D","#E"];
	this.maxNumberCSS = 17;
	this.colorPage = 1;
	this.colorPageRandom = false;
};

HomePack.prototype =
{
	__blockQueue: [],
	__blockQueueIndex: 0,
	__blocksEnqueuing : false,
	__blocksLoading : 0,
	__bannerIndex : 0,
	__banners :
		{Rai:
			[
				{selector: '.bloccoDx .banner300:eq(0)', keepContent: false, adagioLocation: 'rai_home^rai_home^300x250^up', adagioFormat: '', adagioKW: '', adagioKWX: ''},
				{selector: '#PushBanner', keepContent: false, adagioLocation: 'rai_home^rai_home_push^620x30^', adagioFormat: '', adagioKW: '', adagioKWX: ''},
				/*{selector: '#CX .banner:eq(0)', keepContent: false, adagioLocation: 'rai_home^rai_home_3_1_rect_var^', adagioFormat: '', adagioKW: '', adagioKWX: ''},*/
				{selector: '#CX .banner:eq(0)', keepContent: false, adagioLocation: 'rai_home^rai_home_3_1_rect_var^', adagioFormat: '', adagioKW: '', adagioKWX: ''},
				{selector: '#CX .banner:eq(1)', keepContent: false, adagioLocation: 'rai_home^rai_home^300x100^b', adagioFormat: '', adagioKW: '', adagioKWX: ''}/*,
				{selector: '#DX', keepContent: true, adagioLocation: 'rai_home^rai_home_txtlink^47x47^', adagioFormat: 'fmt_classified', adagioKW: '', adagioKWX: ''}*/
			]
		,
		News:
			[
				{selector: '.bloccoDx .banner300:eq(0)', keepContent: false, adagioLocation : 'rai_news^rai_news_hp^300x250^', adagioFormat: '', adagioKW: '', adagioKWX: ''},
				{selector: '#PushBanner', keepContent: false, adagioLocation : 'rai_news^rai_news_push^620x30^', adagioFormat: '', adagioKW: '', adagioKWX: ''},
				{selector: '#CX .banner:eq(0)', keepContent: false, adagioLocation : 'rai_news^rai_news_hp^300x100^', adagioFormat: '', adagioKW: '', adagioKWX: ''},
				{selector: '#CX .banner:eq(1)', keepContent: false, adagioLocation : 'rai_news^rai_news_hp^300x100^b', adagioFormat: '', adagioKW: '', adagioKWX: ''}/*,
				{selector: '#DX', keepContent: true, adagioLocation : 'rai_home^rai_home_txtlink^47x47^', adagioFormat: 'fmt_classified', adagioKW: '', adagioKWX: ''}*/
			]
		}
	,
	__loadBanners: function(){
		if (typeof(JQhomeObj.__banners[PAGE]) != 'undefined') {
			while (JQhomeObj.__bannerIndex < JQhomeObj.__banners[PAGE].length) {
				BannerLoader.addBanner(JQhomeObj.__banners[PAGE][JQhomeObj.__bannerIndex++]);
			}
			setTimeout(function(){BannerLoader.loadAll();}, 10);
		}
		return true;
	},
	__loadBannersBeforeBlocks: function(){
		var goOn = true;
		if (typeof(JQhomeObj.__banners[PAGE]) != 'undefined' && JQhomeObj.__bannerIndex < 2) {
			BannerLoader.setCallback(JQhomeObj.__loadNextBlock);
			try {
				BannerLoader.addBanner(JQhomeObj.__banners[PAGE][JQhomeObj.__bannerIndex++]);
				BannerLoader.addBanner(JQhomeObj.__banners[PAGE][JQhomeObj.__bannerIndex++]);
			} catch(e) {
			}
			setTimeout(function(){BannerLoader.loadAll();}, 10);
			//goOn = false;
		}
		return goOn;
	},
	__blockLoadComplete: function() {
		if (!JQhomeObj.__blocksEnqueuing) {
			// fix degli url escapati male: &amp;amp => &amp
			$('a').each(function(){var a = $(this).attr('href'); if (!!a) {a = a.replace(/&amp;/g, '&');$(this).attr('href', a);}});
			JQhomeObj.__clickAccordion();
			JQhomeObj.__toggleContent();
			JQhomeObj.__newsAddRemove();
			JQhomeObj.__lanciCarousel();
			//if (!DEBUG) JQhomeObj.__customiseHomepage();

			JQhomeObj.__loadBanners();

			JQhomeObj.applyPngFix();
			//Riscrivo di nuovo il cookie in modo che se da amministrazione vengono sganciati dei block lo ripulisco di tutti i block in eccesso
			JQhomeObj.setPageCookie(JQhomeObj.__getColumnsCookie());
		}
	},
	__loadNextBlock: function(o) {
		// prima cosa: caricamento del banner 300x250 e della pushbar
		if (!JQhomeObj.__loadBannersBeforeBlocks()) {
			return false;
		}
		if (JQhomeObj.__blockQueue.length <= JQhomeObj.__blockQueueIndex) {
			JQhomeObj.__blockLoadComplete();
			return false;
		}
		var o = JQhomeObj.__blockQueue[JQhomeObj.__blockQueueIndex];
		JQhomeObj.__blockQueueIndex++;
		var s = o.success;
		o.success = (function(){
			var f = s;
			return function(html){
				JQhomeObj.__blocksLoading -= 1;
				f.call(JQhomeObj, html);
				JQhomeObj.__loadNextBlock();
			}
		})();
		JQhomeObj.__blocksLoading++;
		//setTimeout( (function(){var u = o.url; return function(){throw(u)};})(), 10);
		$.ajax(o);
	},
	__enqueueBlock: function(options) {
		JQhomeObj.__blockQueue[JQhomeObj.__blockQueue.length] = options;
	},
	__renderingHomePage : function()
	{
		debug('JQhomeObj.__renderingHomePage starting...');
		var columns = $.evalJSON(JQhomeObj.pageCookie);
		JQhomeObj.__blocksEnqueuing = true;
		var keepBlocks = {};
		for (j in columns) {
			var type= columns[j].type, id = j, col = columns[j].col, val = columns[j].view, state = columns[j].state, pos = columns[j].p;
			var trovato = false;
			$(":checkbox").each(function() {
				if($(this).attr("value") == j) {
					trovato = true;
					keepBlocks[j] = true;
				}
			});
			// se e' uno dei blocchi selezionabili, allora lo carico (o lo riposiziono e personalizzo, se gia' presente nell'html)
			if(trovato) {
				var block = $('#'+id);
				if (block.length > 0) {
					// se gia' esiste nell'html, va riposizionato e customizzato
					var n = null;
					
					// mi assicuro di non eseguire di nuovo degli script
					block.find('script').remove();
					
					$(">div.groupItem", $(col)).each(function() {
						if ($(this).data('position')<pos) {
							n = $(this);
						}
					});
					if (id == 'PublishingBlock-3e79f970-b3ca-41ec-afa4-647f3fb6c3d2') {
						col = 'Z';
						type = -1;
					}
					if (n != block) {
						if (n == null) {
							// se e' gia' nel riquadro giusto non lo tocco
							if (block.parents(col).length == 0) {
								$(col).prepend(block);
							}
						} else {
							n.after(block);
						}
					}
					block.data('position', pos);
					block.show();
					if (state == "-") {
						$("div.itemContent", block).css('display','none');
						$("div.itemHeader", block).addClass("hpCollapsed");
					} else {
						$("div.itemContent", block).css('display','block');
						$("div.itemHeader", block).removeClass("hpCollapsed");
					}
					switch(type) {
						case 2 :
							JQhomeObj.__setAccordion(id,val ? val : 0 );
							break;
						case 3:
							// PALINSESTI
							JQhomeObj.__setPalinsesti(id,val ? val : 0 );
							break;
						case 4:
							// SERVIZI
							JQhomeObj.__setServizi(id,val ? val : 0 );
							break;
						default:
							JQhomeObj.__setVisibility(id,val ? val : 3 );
						break;
					}
				} else {
					// altrimenti va schedulato per il caricamento
					JQhomeObj.__enqueueBlock({
					  async :true,
					  url: JQhomeObj.PATH_HTML_BLOCK+id+".html",
					  success: (function(){
							var fCol = col;
							var fId = id;
							var fVal = val;
							var fState = state;
							var fType = type;
							var fPos = pos;
						  return function(html){
							var n = null;
							$(">div.groupItem", $(fCol)).each(function() {
								if ($(this).data('position')<fPos) {
									n = $(this);
								}
							});
							if (fId == 'PublishingBlock-3e79f970-b3ca-41ec-afa4-647f3fb6c3d2') {
								fCol = 'Z';
								fType = -1;
							}
							if (n == null) {
								// alert(fPos + ' va per primo');
								$(fCol).prepend(html);
							} else {
								// alert(fPos +' va dopo '+n.data('position'));
								n.after(html);
							}
							$('#'+fId).data('position', fPos);
							$('#'+fId).show();
							if(fState == "-") {
								$("#"+fId+" div.itemContent").css('display','none');
								$("#"+fId+" div.itemHeader").toggleClass("hpCollapsed");
							}
							switch(fType) {
								case 2 :
									JQhomeObj.__setAccordion(fId,fVal ? fVal : 0 );
									break;
								case 3:
									// PALINSESTI
									JQhomeObj.__setPalinsesti(fId,fVal ? fVal : 0 );
									break;
								case 4:
									// SERVIZI
									JQhomeObj.__setServizi(fId,fVal ? fVal : 0 );
									break;
								default:
									JQhomeObj.__setVisibility(fId,fVal ? fVal : 3 );
								break;
							}
							// JQhomeObj.__blockLoadComplete();
						  };
						 })()
					});
				}
			} else {
				// non e' tra i blocchi selezionabili: se esiste nell'html, lo tolgo
				// (btw, non dovrebbe poter accadere)
				$('#'+id).remove();
			}
		}
		// cerco tutti i blocchi gia' presenti nella pagina, e rimuovo quelli che l'utente non ha selezionato
		keepBlocks
		$('#A,#B,#C,#D,#E').find('>div.groupItem').each(function() {
			var id = $(this).attr('id');
			if (!keepBlocks[id]) {
				$(this).remove();
			}
		});
		
		// debug('__renderingHomePage: '+JQhomeObj.__blockQueue.length);
		JQhomeObj.__blocksEnqueuing = false;
		JQhomeObj.__loadNextBlock();
		// if (JQhomeObj.__blocksLoading == 0) {
		//	JQhomeObj.__blockLoadComplete();
		// }
	},

	__getColumnsCookie : function() {
		var jsonForCookie = {};
		
		var containers = $.merge(['#ZZ'], JQhomeObj.arraySortable);

		var j = 0,arrayLen = containers.length, indice = 0;
		for (; j < arrayLen; j++) {
			$(containers[j]).children().each(function(){
				var block = "", state = "", type = 0, state = "",view=0,
				state = $(this).children('.itemContent').css('display') == 'none' ? "-" : "+";
				block = $(this).attr('id');

				switch(block) {
					case "PublishingBlock-83fb8a4b-b3bb-461a-a3cb-501cda9811fe":
					case "PublishingBlock-3e79f970-b3ca-41ec-afa4-647f3fb6c3d2":
					case "PublishingBlock-4a9b5ae4-7e5d-4fc3-ad1f-ad39b07bd117":
					case "PublishingBlock-c3650cae-58d9-4e2a-b9e4-634e940f3903":
						//Qui vedo quale box della sezione COMMUNITY -  RAITV - RAITVNEWS - GIORNALI RADIO far vedere e salvo l'indice
						$(this).children(".itemContent").children(".drawers").children(".drawer").children("h2").each(function(i){
							if ( $(this).hasClass("open") )
								view = i;
						});
						type = 2;
						break;
					case "PublishingBlock-d74fa8cd-558c-4293-8209-eb5e634812f6":
						//Qui vedo quale box della sezione PALINSESTI far vedere e salvo l'indice
						$(this).children(".itemContent").children(".palinsesti").children(".palinsesto").children("h2").each(function(i){
							if ( $(this).hasClass("open") )
								view = i;
						});
						type = 3;
						break;
					case "PublishingBlock-d3045a26-45ed-4c6f-b94c-b07b0aa3ab74":
						//Qui vedo quale box della sezione SERVIZI far vedere e salvo l'indice
						$(this).children(".itemContent").children(".tabServizi").children("li").children("a").each(function(i){
							if ( $(this).hasClass("selected") ) {
								view = i;
							}
						});
						type = 4;
						break;
					default :
						var list = $(this).children('.itemContent').children('.item').children();
						var blocked = list.filter("[class!='blocked']");
						view = blocked.length;
						type = 1;
						break;
				}
				jsonForCookie[block] = {state : state, type : type, view : view, col : containers[j], p : indice++};
			});
		}
		if (PAGE =="Rai") {
			var state = "+";
			if (jsonForCookie['PublishingBlock-3e79f970-b3ca-41ec-afa4-647f3fb6c3d2']) {
				state = jsonForCookie['PublishingBlock-3e79f970-b3ca-41ec-afa4-647f3fb6c3d2'].state;
			}
			jsonForCookie['PublishingBlock-3e79f970-b3ca-41ec-afa4-647f3fb6c3d2'] =  {state : state, type : -1, view : 0, col : "#ZZ", p : 1};
		}
		return jsonForCookie;
    },

	__lanciCarousel : function(id)
	{
		$('.lanci>li,.lanci2>li,.lanciTemi>li').mouseover(function() {
			$(this).parents('.lanci,.lanci2,.lanciTemi').children().removeClass("hover"); //.children("a").removeClass("hover");
			$(this).addClass("hover"); //.children("a").addClass("hover");
			var link = $(this).find("h3>a").attr("href");
			// if (!$(this).parents('.lanci,.lanci2,.lanciTemi').is('.none') && $(this).children("span").html() != null && $(this).children("span").html() != '') {
			// 	$(this).parents('.lanci,.lanci2,.lanciTemi').prev().attr("style","background-image: url("+$(this).children("span").html()+");");
			// }
			if (!$(this).parents('.lanci,.lanci2,.lanciTemi').is('.none') && $(this).attr("rel") != null && $(this).attr("rel") != '') {
				$(this).parents('.lanci,.lanci2,.lanciTemi').prev().attr("style","background-image: url("+$(this).attr("rel")+");");
			}
			$(this).parents('.lanci,.lanci2,.lanciTemi').prev().children("a").attr("href",link);
		});
		// $('.lanci>li').css('height', '41px');
		$('.lanci>li').css('height', '39px');
	},

	__setServizi : function(el,val)
	{
		JQhomeObj.__getHtmlBox(el,$("#"+el+">DIV.itemContent>DIV.info"),$("UL.tabServizi>LI:eq("+val+")").attr("id"));
		$("#"+el+">DIV.itemContent>UL.tabServizi>LI>A:eq("+val+")").addClass("selected");
		$("UL.tabServizi>LI").each(function() {
			var l = $(this);
			var a = l.find('a');
			var f = function() {
				$(".tabServizi li a").removeClass("selected");
				l.children("a").addClass("selected");
				JQhomeObj.__getHtmlBox(el,$("#"+el+">DIV.itemContent>DIV.info"),l.attr("id"));
				JQhomeObj.setPageCookie(JQhomeObj.__getColumnsCookie());
				return false;
			};
			a.click(f);
			l.click(f);
		});
	},
	__getHtmlBox : function(elBox,elID,val)
	{
		var urlHTML = "";
		switch(elBox) {
			case "PublishingBlock-d3045a26-45ed-4c6f-b94c-b07b0aa3ab74":
				//SERVIZI
				urlHTML = JQhomeObj.PATH_HTML_BLOCK_SERVIZI+val+".html";
			break;
			case "PublishingBlock-d74fa8cd-558c-4293-8209-eb5e634812f6":
				//PALINSESTI
				urlHTML = JQhomeObj.PATH_HTML_BLOCK_PALINSESTI+val+".html";
			break;
		}

		$.ajax({
			  async :false,
			  url: urlHTML,
			  success: function(html){
				elID.html(html);
				JQhomeObj.applyPngFix();
			  }
		});
	},
	__setAccordion : function(el,val)
	{
		$("#"+el+">DIV.itemContent>UL.drawers>LI.drawer>div.drawer-container:not(:eq("+val+"))").slideUp("slow");
		$("#"+el+">DIV.itemContent>UL.drawers>LI.drawer>H2:eq("+val+")").addClass("open");
	},
	__clickAccordion : function()
	{
		var f = function() {
			if (DEBUGRAIHP) {alert($(this).siblings(".drawer-container").html());}
			if ($(this).siblings(".drawer-container").css('display') == 'none') {
				//$(this).parents(".drawers").children(".drawer").children("h2").removeClass("open").next().slideUp("slow");
				$(this).parents(".drawers").children(".drawer").children("h2").removeClass("open").siblings(".drawer-container").slideUp("slow");
				$(this).addClass('open').siblings(".drawer-container").slideDown("slow");
				JQhomeObj.setPageCookie(JQhomeObj.__getColumnsCookie());
			}
		};
		var dataName = '__clickAccordionDone';
		$("H2.drawer-handle").each(function() {
			if (!$(this).data(dataName)) {
				$(this).data(dataName, true);
				$(this).click(f);
			}
		});
	},
	/******************************************* PALINSESTI inizio******************************************************************************/
	__setPalinsesti : function(el,val)
	{
		//Per ora la lascio...ma forse sarà da cancellare dato che è tutto in flash...
		// MODIFICATO IL FUNZIONAMENTO DI setServizi e getHtmlBox...
	},
	/******************************************* PALINSESTI fine ******************************************************************************/
	__newsAddRemove : function(id)
	{
		var f = function() {
			var link = $(this);

			var list = $(this).parents('.itemContent').children('.item').children();
			var blocked = list.filter(".blocked");

			if(link.is('.add')){
	            if (blocked.length) {
	                $(blocked[0]).removeClass("blocked");
	                //this.data.get("a.remove").css("opacity", "1").attr("href", "#");
	            }
			}

			if(link.is('.remove')){
	            if (blocked.length <= list.length - 1) {
	                //this.data.get("a.add").css("opacity", "1").attr("href", "#");
	                $(list[list.length - blocked.length - 1]).addClass("blocked");
	            }
			}
			JQhomeObj.setPageCookie(JQhomeObj.__getColumnsCookie());
		};
		var dataName = '__newsAddRemoveDone';
		$('a.add, a.remove').each(function() {
			if (!$(this).data(dataName)) {
				$(this).data(dataName, true);
				$(this).click(f);
			}
		});
	},
	__setVisibility : function(el,val){
		$("#"+el+">DIV.itemContent>UL.item>LI:gt("+(val-1)+")").addClass("blocked");
	},
	__toggleContent : function(e)
	{
		// bind del click una sola volta! (etichetta toggleContentInited messa a true dopo il bind, elementi selezionati solo se toggleContentInited non e' true)
		$("a.toggle").filter(function() {
			return $(this).data('toggleContentInited') != true;
		}).click(function() {
			var targetContent = $(this).parents('.itemHeader').next();
			targetContent.slideToggle("slow",function () {
				$(this).prev().toggleClass("hpCollapsed");
				JQhomeObj.setPageCookie(JQhomeObj.__getColumnsCookie());
			});
			$(this).parents('.FootHeader').next().slideToggle("slow",function () {
				$(this).prev().toggleClass("hpCollapsed");
			});
		}).data('toggleContentInited', true);
	},

	__customiseHomepage : function(e)
	{
		/******************** INIZIO  SETTAGGIO CSS *******************/
		$("body").attr("class","hp"+JQhomeObj.colorPage);
		/******************** FINE SETTAGGIO CSS ************************/

		/******************** INIZIO  SETTAGGIO INPUT BOX *******************/
        $("div.feedSelection input").each(function() {
            if(JQhomeObj.pageCookie.search($(this).val()) > -1) {
                $(this).attr("checked", true);
                $(this).parent().addClass("enabled")
            }
            $(this).click(function() {
                $(this).parent().toggleClass("enabled")
            });
        });
		/******************** FINE   SETTAGGIO INPUT BOX ************************/
		$("#reset").click(function() {
			utils.cookie.remove("newp_"+PAGE,'/',HOST);
			utils.cookie.remove("hpRaiColor",'/',HOST);
			utils.cookie.remove("css",'/',HOST);
			window.location.reload();
		});
		/******************** INIZIO   SETTAGGIO COLOR ************************/
		if(JQhomeObj.colorPageRandom)
			$("UL.list_Color a:eq(0)").addClass("enabled");

		$("UL.list_Color a:eq("+JQhomeObj.colorPage+")").addClass("enabled");

		$("UL.list_Color a").click(function() {
			var index = $("UL.list_Color a").index(this);
			$("UL.list_Color a").removeClass("enabled");
			$("UL.list_Color a:eq("+index+")").addClass("enabled");
			return false;
		});
		/******************** FINE   SETTAGGIO COLOR ************************/
		$("#submit").click(function() {
			//JQhomeObj.newCookie = JQhomeObj.pageCookie;
			var block = "", state = "", type = 0, state = "", block = "",view=0;
			var  jsonForCookie = $.evalJSON(JQhomeObj.pageCookie);

			$(":checkbox").each(function() {
				block = $(this).attr("value");
				if($(this).parent().is('.enabled')) {
					if(typeof(jsonForCookie[block]) == 'undefined') {
						switch(block) {
							case "PublishingBlock-83fb8a4b-b3bb-461a-a3cb-501cda9811fe":case "PublishingBlock-3e79f970-b3ca-41ec-afa4-647f3fb6c3d2":
								case "PublishingBlock-4a9b5ae4-7e5d-4fc3-ad1f-ad39b07bd117": case "PublishingBlock-c3650cae-58d9-4e2a-b9e4-634e940f3903":
								//COMMUNITY -  RAITV - RAITVNEWS - GIORNALI RADIO
								view = 0;
								type = 2;
								break;
							case "PublishingBlock-d74fa8cd-558c-4293-8209-eb5e634812f6":
								//PALINSESTI
								view = 0;
								type = 3;
								break;
							case "PublishingBlock-d3045a26-45ed-4c6f-b94c-b07b0aa3ab74":
								//SERVIZI
								view = 0;
								type = 4;
								break;
							default :
								view = 3;
								type = 1;
								break;
						}
						state = "+";
						jsonForCookie[block] = {state: state, type: type, view: view, col : "#A", p : -1};
					}
				} else {
					delete jsonForCookie[block];
				}

			});
			var tmpArr = [];
			var tmpArr2 = [];
			for (i in jsonForCookie) {
				if (jsonForCookie[i].p != -1) {
					tmpArr[jsonForCookie[i].p] = {k: i, v: jsonForCookie[i]};
				} else {
					tmpArr2.push({k: i, v: jsonForCookie[i]});
				}
			}
			jsonForCookie = {};
			for (i in tmpArr2) {
				jsonForCookie[tmpArr2[i].k] = tmpArr2[i].v;
				tmpArr2[i].v.p = parseInt(i);
			}
			for (i in tmpArr) {
				jsonForCookie[tmpArr[i].k] = tmpArr[i].v;
				tmpArr[i].v.p = parseInt(i) + parseInt(tmpArr2.length);
			}
			JQhomeObj.setPageCookie(jsonForCookie);
			/*********** Colore Home *****************************/
			var color = $("UL.list_Color a").index($("UL.list_Color a").filter(".enabled"));
			utils.cookie.set("hpRaiColor",color,10,'/',HOST,'');
			window.location.reload();
			//JQhomeObj.initHome();
		});
	},
	initHome : function()
	{
		JQhomeObj = this;
		JQhomeObj.setPageCookie();
		JQhomeObj.setColorPage();
		//if (DEBUG) JQhomeObj.__customiseHomepage();
		JQhomeObj.__customiseHomepage();

		$(JQhomeObj.ELEMENT_SORTABLE).sortable({
			items: '> .groupItem',
			handle: 'div.itemHeader',
			connectWith: JQhomeObj.arraySortable,
			tolerance: 'guess',
			cursor: 'move',
			placeholder:'placeholder',
			appendTo: 'body',
			delay: 100,
            forcePlaceholderSize: true,
            revert: 300,
			helper: function(e, el) {
					var l = $('#A').add('#D').add('#E');
					var maxBot = 0;
					l.each(function(){
						var b = $(this).position().top+$(this).height();
						maxBot=(b>maxBot)?b:maxBot;
					});
					l.each(function(){
						var h = (maxBot - $(this).position().top);
						//disattivato: altrimenti non si riesce a rimettere il blocco nella colonna di partenza.
						//if (h <= $(this).height()) return true;
						var id = $(this).attr('id');
						$(this).attr('style', 'height: '+h+'px !important');
					});
					$(JQhomeObj.ELEMENT_SORTABLE).sortable('refreshPositions');
				return el.clone();
			},
			start: function(e,ui) {
				/*$(".groupItem div.itemContent").css('display','none');
				$(".groupItem div.itemHeader").addClass("hpCollapsed");
				$('html,body').animate( {scrollTop: $( '#E' ).offset().top});*/
				ui.helper.css("width", ui.item.width());
			},
			stop : function() {
				/*var columns = $.evalJSON(JQhomeObj.pageCookie);
				for (j in columns) {
					if(columns[j].state == "+") {
						$("#"+j+" div.itemContent").css('display','block');
						$("#"+j+" div.itemHeader").toggleClass("hpCollapsed");
					}
				}*/

				JQhomeObj.setPageCookie(JQhomeObj.__getColumnsCookie());
				$('#A').add('#D').add('#E').attr('style', 'height: auto !important; height: 200px;');
			}
		});

		JQhomeObj.__renderingHomePage();
		//var timerIdHome = setInterval('JQhomeObj.setNielsen()',60000*15);
	},
	applyPngFix : function()
	{
		var arVersion = navigator.appVersion.split("MSIE")
		var version = parseFloat(arVersion[1])

		if ((version >= 5.5) && (version < 7) && (document.body.filters))
		{
		   for(var i=0; i<document.images.length; i++)
		   {
		      var img = document.images[i]
		      var imgName = img.src.toUpperCase()
		      if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
		      {
		         var imgID = (img.id) ? "id='" + img.id + "' " : ""
		         var imgClass = (img.className) ? "class='" + img.className + "' " : ""
		         var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
		         var imgStyle = "display:inline-block;" + img.style.cssText
		         if (img.align == "left") imgStyle = "float:left;" + imgStyle
		         if (img.align == "right") imgStyle = "float:right;" + imgStyle
		         if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
		         var strNewHTML = "<span " + imgID + imgClass + imgTitle
		         + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
		         + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
		         + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>"
		         img.outerHTML = strNewHTML
		         i = i-1
		      }
		   }
		}
	},

	/** SET  e  GET  *****************************************************************************************************/
	setPageCookie : function(cookieJSON)
	{
		if (!utils.cookie.get("newp_"+PAGE)) {
			this.pageCookie = $.toJSON(JQhomeObj.defaultCookie);
			utils.cookie.set("newp_"+PAGE,$.base64Encode(this.pageCookie),10,'/',HOST,'');
		} else {
			if(cookieJSON == undefined){
				var tmpString = utils.cookie.get("newp_"+PAGE);
				var validBase64 = false;
				try {
					$.evalJSON($.base64Decode(tmpString));
					validBase64 = true;
				} catch(e) {
					validBase64 = false;
				}
				if (validBase64) {
					tmpString = $.base64Decode(tmpString);
				}
				this.pageCookie = tmpString;
			} else {
					this.pageCookie = $.toJSON(cookieJSON);
					utils.cookie.set("newp_"+PAGE,$.base64Encode(this.pageCookie),10,'/',HOST,'');
			}
		}
	},
	setColorPage : function()
	{
		if (utils.cookie.get("hpRaiColor")) {
			if (utils.cookie.get("hpRaiColor") != "0") {
				this.colorPage = utils.cookie.get('hpRaiColor');
			} else {
				this.colorPage = Math.ceil(JQhomeObj.maxNumberCSS*Math.random());
				this.colorPageRandom = true;
			}
		}
	},

	getColorPage : function()
	{
		var arrayColor = new Array("#2375c8","#2375c8","#4b362b","#204541","#5c6d51","#718b8c","#47a5ba","#14b4b4","#657287","#405273","#614d8a","#683f57","#934b85","#c7377f","#ab5b32","#e18d38","#d9b74c","#a6a73b");
		return arrayColor[JQhomeObj.colorPage];
	},

	createFlash : function(variabili)
	{
		if ($.browser.msie) {
			var flash = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="'+variabili.width+'" height="'+variabili.height+'" id="'+variabili.id+'" align="middle">'
						+'<param name="allowScriptAccess" value="sameDomain" />'
						+'<param name="allowFullScreen" value="true" />'
						+'<param name="movie" value="'+variabili.src+'.swf" />'
						+'<param name="quality" value="high" />'
						+'<param name="wmode" value="transparent" />'
						+'<param name="flashvars" value="'+variabili.flashvars+'" />'
						+'</object>';
		} else {
			var flash = '<embed src="'+variabili.src+'.swf" quality="high" wmode="transparent" width="'+variabili.width+'" height="'+variabili.height+'" name="'+variabili.name+'" align="middle" allowScriptAccess="sameDomain" allowFullScreen="true" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="'+variabili.flashvars+'" />';
		}

		$(variabili.elHtml).html(flash);
	},

	setNielsen : function(url) {
		if (url == undefined) url = location.href;

		$("#nielsen img").attr("src","//secure-it.imrworldwide.com/cgi-bin/m?ci=rainet-it&cg=0&si="+url);
	}
	/****************************************************************************************************/
};

