var UNGweb = {
	
	ratingInProgress: false,
	specialResizeHandling: false,
	twitterUpdateURI: "",
	friendPopupURI: "",
	tickerItemArray: new Array,
	currentTickerIndex: 0,
	tickerIsActive: true,
	lastRequestedURI: "/",
	
	printerUpload: function()
	{
		var file = document.getElementById('print_file').value;
		if (!file || (file.lastIndexOf(".ps") == -1 && file.lastIndexOf(".txt") == -1)) {
			alert('Berre filer av typen .ps og .txt kan sendes til utskrift via utskriftswidgeten!');
			return false;
		}
		
		var f = document.getElementById('printerwidget-upload-form');
		var d = document.getElementById('printerwidget-upload-loading-text');
		
		if( f ) f.style.diplay = "none";
		if( d ) d.style.display = "";
	},
	
	printerUploadComplete: function()
	{
		var f = document.getElementById('printerwidget-upload-form');
		var d = document.getElementById('printerwidget-upload-loading-text');
		
		if( f ) f.style.diplay = "";
		if( d ) d.style.display = "none";
	},
	
	printerDelete: function()
	{
		var f = document.getElementById('printerwidget-delete-form');
		var d = document.getElementById('printerwidget-delete-loading-text');
		
		if( f ) f.style.diplay = "none";
		if( d ) d.style.display = "";
	},
	
	printerDeleteComplete: function()
	{
		var f = document.getElementById('printerwidget-delete-form');
		var d = document.getElementById('printerwidget-delete-loading-text');
		
		if( f ) f.style.diplay = "none";
		if( d ) d.style.display = "";
	},
	
	addBoxClass: function( block_id, instance_id, newClass )
	{
		var div = document.getElementById('box-' + block_id + '-' + instance_id);

		if( div )
		{
			div.className = div.className + " " + newClass;
		}
	},
	
	friendAction: function( action, id )
	{
		var actionForm = document.getElementById('friend_' + action);
		
		if( actionForm )
		{
			actionForm.action = actionForm.action + "/" + id;
			actionForm.submit();
		}
	},
	
	friendPopup: function( user_id )
	{
		var h = (typeof window.innerHeight != 'undefined' ? window.innerHeight : document.body.offsetHeight);
		var w = (typeof window.innerWidth != 'undefined' ? window.innerWidth : document.body.offsetWidth);
		
		
		var popW = 600;
		var popH = 330;
		
		var oW = (w / 2) - (popW / 2);
		var oH = (h / 2) - (popH / 2);
		
		var wPop = window.open( UNGweb.friendPopupURI + "/" + user_id, "friendpopup", "status=1,toolbar=0,scrollbars=0,resizable=0,location=0,height=" + popH + ",width=" + popW );
		wPop.moveTo(oW,oH);
		wPop.focus();
	},
	
	myProfileTwitterEdit: function(mode)
	{
		var twText = document.getElementById('my_profile_twitter_text');
		var twEdit = document.getElementById('my_profile_twitter_edit');
		
		if( twText && twEdit )
		{
			if( mode == 'show' )
			{
				twText.style.display = "none";
				twEdit.style.display = "";
			}
			else
			{
				twText.style.display = "";
				twEdit.style.display = "none";
				var twTextEdit = document.getElementById('my_profile_twitter_edit_textarea');
				twText.innerHTML = twTextEdit.value;
				UNGweb.storeTwitter(twTextEdit.value);
			}
			
		}
	},
	
	voidCallback: function( o )
	{
	
	},
	
	storeTwitter: function(twitterValue)
	{
		YAHOO.util.Connect.asyncRequest( 'post', UNGweb.twitterUpdateURI, { success: UNGweb.voidCallback, failure: UNGweb.voidCallback }, "twitterText=" + twitterValue );
	},
	
	init: function()
	{
		if( eZFlowWidgets.personalized )
		{
			UNGweb.resizeCols();
			eZFlowWidgets.addEndDragHook( UNGweb.resizeCols );
			eZFlowWidgets.addEndDragHook( UNGweb.tabsSizeFix );
		}
		
		UNGweb.initTicker();
	},
	
	initTicker: function()
	{
		var tickerItem = document.getElementById('latest-ticker-item');
		
		if( tickerItem && UNGweb.tickerItemArray.length > 0 )
		{
			tickerItem.onmouseover = UNGweb.haltTicker;
			tickerItem.onmouseout = UNGweb.startTicker;
			UNGweb.updateTicker();
		}
	},
	
	haltTicker: function()
	{
		UNGweb.tickerIsActive = false;
	},
	
	startTicker: function()
	{
		UNGweb.tickerIsActive = true;
	},
	
	updateTicker: function()
	{
		var index = UNGweb.currentTickerIndex;
		var tickerItem = document.getElementById('latest-ticker-item');
		var cfg;
		
		if( UNGweb.tickerIsActive && tickerItem && UNGweb.tickerItemArray[ index ] )
		{
			cfg = UNGweb.tickerItemArray[ index ];
			
			var hideAnim = new YAHOO.util.Anim(tickerItem, { opacity: { from: 1, to: 0 } }, 1, YAHOO.util.Easing.easeOut);
			
			hideAnim.onComplete.subscribe(function() {
				tickerItem.href = cfg.href;
				tickerItem.innerHTML = cfg.innerHTML;
				
				if( cfg.popup == '1' )
					tickerItem.target = "_blank";
				else
					tickerItem.target = "_self";
				
				var showAnim = new YAHOO.util.Anim(tickerItem, { opacity: { from: 0, to: 1 } }, 1, YAHOO.util.Easing.easeOut);
				showAnim.animate();
			});
			hideAnim.animate();
		}
		
		UNGweb.currentTickerIndex = index + 1;
		
		if( UNGweb.currentTickerIndex > UNGweb.tickerItemArray.length - 1 )
			UNGweb.currentTickerIndex = 0;
		
		setTimeout( 'UNGweb.updateTicker();', 7000 );
	},
	
	addTickerItem: function( cfg )
	{
		UNGweb.tickerItemArray[ UNGweb.tickerItemArray.length ] = cfg;
	},
	
	selectLayout: function( layout )
	{
		var layoutForm = document.getElementById('mypage_select_layout');
		var selectedLayout = document.getElementById('mypage_select_layout_allowed_type');
		
		if( layoutForm && selectedLayout )
		{
			selectedLayout.value = layout;
			layoutForm.submit();
		}
	},
	
	selectTheme: function( theme )
	{
		var themeForm = document.getElementById('mypage_select_theme');
		var selectedTheme = document.getElementById('mypage_selected_theme');
		
		if( themeForm && selectedTheme )
		{
			selectedTheme.value = theme;
			themeForm.submit();
		}
	},
	
	tabsSizeFix: function( srcEl )
	{
		var tabs = YAHOO.util.Dom.getElementsByClassName( 'block-dyntabs', 'div', srcEl );
		var tabButtons = YAHOO.util.Dom.getElementsByClassName( 'widget-tab-select', 'a', srcEl );
		
		if( tabs.length > 0 )
		{
			var width = UNGweb.getElementWidth( srcEl );
			
			var tablength = 121;
			var totalLength = parseInt( tablength * parseInt(tabButtons.length) );

			if( width <= ( totalLength - 10 ) )
			{
				var hideClass = 'mainmenus-tabs';
				var showClass = 'mainmenus-select';
			}
			else
			{
				var hideClass = 'mainmenus-select';
				var showClass = 'mainmenus-tabs';
			}
			
			var showDiv = YAHOO.util.Dom.getElementsByClassName( showClass, 'div', srcEl );
			var hideDiv = YAHOO.util.Dom.getElementsByClassName( hideClass, 'div', srcEl );
			
			if( showDiv.length )
				showDiv[0].style.display = '';
				
			if( hideDiv.length )	
				hideDiv[0].style.display = 'none';
		}
	},
	
	blockIconClass: function( block_id, instance_id, className )
	{
		var blockicon = eZFlowWidgets.DomCacheGet('block-icon-' + block_id + '-' + instance_id);
		
		if( blockicon )
		{
			YAHOO.util.Dom.addClass( blockicon, className );
		}
	},
	
	toggleLogin: function(url)
	{
		var ddlogin = document.getElementById('logindd-redirecturi');
		var ddbanner = document.getElementById('top_banner');
		
		if( ddlogin && url )
			ddlogin.value = url;
			
		UNGweb.toggleDiv('ungweb_login');
		
		if( ddbanner )
			UNGweb.toggleDiv('top_banner');
	},
	
	resizeCols: function( srcEl )
	{
		var ezpagezones = document.getElementById('ezpage-zones');
		
		if( ezpagezones )
		{
			var maxHeight = 0, curHeight = 0;
			var cols = YAHOO.util.Dom.getElementsByClassName( 'ezflow-zone-column', 'div', ezpagezones );
		 					
	 		for( var i = 0; i < cols.length; i++ )
	 		{
	 			cols[i].style.height = "";
	 			
	 			curHeight = UNGweb.getElementHeight( cols[i] );
	 			
	 			if( curHeight > maxHeight )
	 				maxHeight = curHeight;
	 		}
	 		
	 		if( maxHeight > 0 )
	 			maxHeight = maxHeight + 50;
	
	 		if( maxHeight > 0 )
	 		{
	 			for( i = 0; i < cols.length; i++ )
	 			{
 					if( !UNGweb.specialResizeHandling )
 						cols[i].style.height = maxHeight + 'px';
	 				else if( cols[i].parentNode.className.indexOf('colresize') >= 0 )
						cols[i].style.height = maxHeight + 'px';
					else
					{
						cols[i].style.height = "";
						curHeight = UNGweb.getElementHeight( cols[i] );
						
						if( curHeight <= 10 )
							curHeight = parseInt( curHeight ) + 25;
						else
							curHeight = parseInt( curHeight ) + 10;
						
						cols[i].style.height = curHeight + 'px';
					}
	 			}
	 		}
		}
	},
	
	getElementHeight: function(el)
	{
		if( !el )
			return 0;
		
		if( el.offsetHeight )
			return el.offsetHeight;

		if( el.clientHeight )
			return el.clientHeight;
		
		if( document.layers && document.layers[el.id] && document.layers[el.id].clip && document.layers[el.id].clip.height )
			return document.layers[el.id].clip.height;
		
		if( document.defaultView && document.defaultView.getComputedStyle(el, null).getPropertyValue('height', null) )
			return document.defaultView.getComputedStyle(el, null).getPropertyValue('height', null);
	
		return 0;
	},
	
	getElementWidth: function(el)
	{
		if( !el )
			return 0;
		
		if( el.offsetWidth )
			return el.offsetWidth;

		if( el.clientWidth )
			return el.clientWidth;
		
		if( document.layers && document.layers[el.id] && document.layers[el.id].clip && document.layers[el.id].clip.width )
			return document.layers[el.id].clip.width;
		
		if( document.defaultView && document.defaultView.getComputedStyle(el, null).getPropertyValue('width', null) )
			return document.defaultView.getComputedStyle(el, null).getPropertyValue('width', null);
	
		return 0;
	},
	
	selectTabsDropdown: function( select, block_id, instance_id )
	{
		var tabId = select.options[select.selectedIndex].value;
		
		UNGweb.selectTab( block_id, instance_id, tabId );
	},
	
	selectTab: function( block_id, instance_id, tabId )
	{
		var tabView = eZFlowWidgets.DomCacheGet( 'widgettabs-' + block_id + '-' + instance_id + '-dyntabs' );
		
		if( tabView )
		{
			var tabsSelecters = YAHOO.util.Dom.getElementsByClassName( 'widget-tab-select', 'a', tabView );
		 	
		 	for( var i = 0; i < tabsSelecters.length; i++ )
		 		YAHOO.util.Dom.removeClass( tabsSelecters[i], "active" );
		 		
		 	if( tabsSelecters[tabId] )
		 	{
		 		YAHOO.util.Dom.addClass( tabsSelecters[tabId], "active" );
		 	}
		 	
		 	var tabs = YAHOO.util.Dom.getElementsByClassName( 'widgettabs-tab', 'div', tabView );
		 	
		 	for( i = 0; i < tabs.length; i++ )
		 	{
		 		tabs[i].style.display = "none";
		 	}
		 	
		 	if( tabs[tabId] )
		 	{
		 		tabs[tabId].style.display = "";
		 	}
		 	
		 	UNGweb.resizeCols();
		}
		
	},
	
	myProfileWidgetCategory: function(a, catId)
	{
		var links = a.parentNode.getElementsByTagName('a');
		
		for( var i = 0; i < links.length; i++ )
		{
			YAHOO.util.Dom.removeClass( links[i], "active" );
		}
		
		YAHOO.util.Dom.addClass( a, "active" );
		
		var categories = YAHOO.util.Dom.getElementsByClassName( 'my_profile_widget_category', 'div', document.getElementById('my_profile_add_widgets') );
		
		for( i = 0; i < categories.length; i++ )
		{
			categories[i].style.display = 'none';
		}
		
		var selectedCategory = document.getElementById( 'my_profile_widget_category_' + catId );
		
		if( selectedCategory )
			selectedCategory.style.display = "";
	},
	
	myProfileSettingArea: function(a, area)
	{
		var links = YAHOO.util.Dom.getElementsByClassName( 'my_profile_change_setting_area', 'a', a.parentNode );
		
		for( var i = 0; i < links.length; i++ )
		{
			YAHOO.util.Dom.removeClass( links[i], "active" );
		}
		
		YAHOO.util.Dom.addClass( a, "active" );
		
		var areas = YAHOO.util.Dom.getElementsByClassName( 'my_profile_setting_area', 'div', document.getElementById('my_profile_popup') );
	
		for( i = 0; i < areas.length; i++ )
		{
			areas[i].style.display = 'none';
		}
		
		var areaDiv = document.getElementById( 'my_profile_' + area );
		areaDiv.style.display = "";
	},
	
	toggleProfileSettings: function()
	{
		UNGweb.toggleDiv('my_profile_show');
		UNGweb.toggleDiv('my_profile_popup');
	},
	
	toggleDiv: function(id)
	{
		var div = document.getElementById(id);
		
		if( div )
		{
			if( div.style.display == 'none' )
				div.style.display = '';
			else
				div.style.display = 'none';
		}
	},
	
	submitForm: function( formid )
	{
		var tempForm = document.getElementById(formid);
		
		if( tempForm )
			tempForm.submit();
	},
	
	rate: function( object_id, type )
	{
		if( UNGweb.ratingInProgress == false )
		{
			var uri = document.getElementById('ungweb_rateURI').value + '/' + object_id + '/' + type;
			
			var rate_markup = document.getElementById('rate-loading-markup-' + object_id);
			var rate = document.getElementById('rate-' + object_id);
			
			if( rate )
				rate.style.display = "none";
			
			if( rate_markup )
				rate_markup.style.display = "";
			
			UNGweb.ratingInProgress = true;
			
			YAHOO.util.Connect.asyncRequest( 'post', uri, { success: UNGweb.rateCallbacks.success, failure: UNGweb.rateCallbacks.failure }, '' );

		}
	},
	
	createComment: function()
	{
		var form = document.getElementById('create_comment_form');
		if( form ) form.submit();
	},
	
	initTagCloud: function( block_id, instance_id )
	{
		var cookieVal = YAHOO.util.Cookie.get( "tagcloudpref" );
		
		if( cookieVal == null )
		{
			var myDate=new Date();
			myDate.setDate(myDate.getDate()+365);
			YAHOO.util.Cookie.set( "tagcloudpref", "cloud", { expires: myDate } );
		}
		
		cookieVal = YAHOO.util.Cookie.get( "tagcloudpref" );
		
		if( cookieVal == 'cloud' )
			var otherVal = 'list';
		else
			var otherVal = 'cloud';
		
		UNGweb.setTagCloudMode( cookieVal, otherVal, block_id, instance_id );
	},
	
	setTagCloudMode: function( showMode, hideMode, block_id, instance_id )
	{
		var showDiv = document.getElementById('tag-' + showMode + '-' + block_id + '-' + instance_id);
		var hideDiv = document.getElementById('tag-' + hideMode + '-' + block_id + '-' + instance_id);
		var activeMenu = document.getElementById('box-menu-' + block_id + '-' + instance_id + '-' + showMode);
		var inactiveMenu = document.getElementById('box-menu-' + block_id + '-' + instance_id + '-' + hideMode);
	
		if( showDiv )
			showDiv.style.display = "";
		if( hideDiv )
			hideDiv.style.display = "none";
		if( inactiveMenu )
		{
			inactiveMenu.className = activeMenu.className.replace('active', '');
		}
		if( activeMenu )
		{
			activeMenu.className = activeMenu.className.replace('active', '');
			activeMenu.className = inactiveMenu.className + " active";
		}
		
		var myDate=new Date();
		myDate.setDate(myDate.getDate()+365);
		YAHOO.util.Cookie.set( "tagcloudpref", showMode, { expires: myDate } );
	},

	articleTime: function(node_id, year, month, day, hours, seconds)
	{
		var oldDate=new Date(year,month-1,day,hours,seconds,0);
		var newDate=new Date();
		
		var span = document.getElementById('time-node-' + node_id);
		
		var minutes = 1000*60;
		var hours = minutes*60;
		var days = hours*24;
		var years = days*365;

	    var difference = newDate.getTime() - oldDate.getTime();
		
		var daysDifference = Math.floor(difference/days);
		var hoursDifference = Math.floor(difference/hours);
		var minutesDifference = Math.floor(difference/minutes);
		
		//alert( daysDifference + " days " + hoursDifference + " hours " );
		var string = "";

		if( daysDifference >= 1 )
		{
			if( daysDifference == 1 )
				string = string + daysDifference + " dag ";
			else
				string = string + daysDifference + " dager ";
		}
		else if( hoursDifference > 0 )
		{
			if( hoursDifference == 1 )
				string = string + hoursDifference + " time ";
			else
				string = string + hoursDifference + " timer ";
		}
		else if( minutesDifference > 0 )
		{
			if( minutesDifference == 1 )
				string = string + minutesDifference + " minutt ";
			else
				string = string + minutesDifference + " minutter ";
		}
		if( span && string != "" )
		{
			span.innerHTML = "(" + string.replace(/^\s\s*/, '').replace(/\s\s*$/, '') + " siden)";
		}
		
	}
	
};

UNGweb.facebook = {
	
	currentInterval: false,
	
	checkWidget: function( uwaEnv, block_id, instance_id )
	{
		if( uwaEnv.widget ) 
		{
			if( uwaEnv.widget.getValue('uid') != "" )
			{
				var uid = uwaEnv.widget.getValue('uid');
				var session_key = uwaEnv.widget.getValue('session_key');
				var secret = uwaEnv.widget.getValue('secret');
				var zone_id = "zone";
				
				var uri = YAHOO.util.Dom.get('ezflow_storeConfigURI').value + '/' + zone_id + '/' + block_id + '/' + instance_id;
				
				var configString = 'mode=store&blockconfig[uwa-uid]=' + uid + '&blockconfig[uwa-session_key]=' + session_key + '&blockconfig[uwa-secret]=' + secret;
								
				YAHOO.util.Connect.asyncRequest( 'post', uri, { success: UNGweb.noCallback.success, failure: UNGweb.noCallback.failure }, configString );
				
				clearInterval( UNGweb.currentInterval );
			}

		}

	}
	
};

UNGweb.noCallback = {
	success: function(o) { },
	failure: function(o) { }
};

UNGweb.rateCallbacks = {
	success: function(o)
	{
		var json = eval( '(' + o.responseText + ')' );
		var rate = false;
		
		if( json )
		{
			if( json.contentobject_id )
				rate = document.getElementById('rate-' + json.contentobject_id);

			if( json.error_message )
			{
				//alert( json.error_message );
			}
			else if( json.data.vote_count )
			{		
				if( rate )
					rate.innerHTML = 'Poeng: ' + json.data.score;
			}
			
			if( json.contentobject_id )
			{
				var rate_markup = document.getElementById('rate-loading-markup-' + json.contentobject_id);
	
				if( rate_markup )
					rate_markup.style.display = "none";
			}
		}
		
		if( rate )
			rate.style.display = "";
		
		UNGweb.ratingInProgress = false;
	},
	
	failure: function(o)
	{
		var rate = document.getElementById('rate');
		if( rate )
			rate.style.display = "";
			
		UNGweb.ratingInProgress = false;
	}
};

YAHOO.util.Event.onDOMReady(UNGweb.init); 
