	function urldecode( str ) {
		var histogram = {}, histogram_r = {}, code = 0, str_tmp = [];
		var ret = str.toString();

		var replacer = function(search, replace, str) {
			tmp_arr = str.split(search);
			return tmp_arr.join(replace);
		};
		
		try {
			ret = replacer('%21', '!' , ret); // Custom replace. No regexing
			ret = replacer('+', '%20' , ret); // Custom replace. No regexing
		}
		catch( err ) {
		}		

		ret = unescape(ret);
	
		return ret;
	}


	function updateDashboardCookie( ) {
        //return false;
		var server = '';
		if( document.location.toString().indexOf( '.de/' ) > 0 ) {
			server = 'https://' + document.location.host.toString()
		} 

		var myImg = document.createElement( 'img' );
		if( myImg ) {
			myImg.src = server + '/csc/produkte/dashboard/status?' + Math.random();
			return true;
		}
		return false;
	}

	// returns an array containing the various dashboard-values
	function getDashboardCookie( ) {
		var c_name   = "Dashboard";
		var c_start  = 0;
		var c_end    = 0;
		var c_string = null;
		var ret      = [];

		var has_cookies = (document.cookie.length > 0);
		var c_start     = document.cookie.indexOf( c_name + "=" );

		if( !has_cookies || (c_start == -1) ) {
			return( ret );
		}

		c_start = c_start + c_name.length+1;
		c_end   = document.cookie.indexOf( ";", c_start );
		if( c_end == -1 ) {
			c_end = document.cookie.length;
		}

		c_string = urldecode(
			document.cookie.substring( c_start, c_end )
		);
		if( c_string ) {
			ret = c_string.split( ';' );
		}

		return( ret );
	}

	function urlForElementsById( id, url ) {
		if( !id || !id.length ) { return; }
		if( url == undefined ) { url = ''; }
		
		var db_elem = document.getElementById( id );
		if( !db_elem ) { return; }

		if( url && url != '' ) {
			db_elem.setAttribute( 'href', url );
		} else { 
			db_elem.removeAttribute( 'href' );
		}		
	}	
	
	function contentForElementById( id, content ) {
		if( !id || !id.length ) { return; }
		if( content == undefined ) { content = ''; }

		var db_elem = document.getElementById( id );
		if( !db_elem ) { return; }

		db_elem.innerHTML = content;
		return( db_elem );
	}

	function updateDashboard( ) {
		updateDashboardCookie( );
		window.setTimeout( 'setDashboardData();', 3000 ); 
	} // end function updateDashboard()

	// places the parsed cookie-values into the corresponding html-elements
	function setDashboardData( ) {
		var db_elem = document.getElementById( "dashboard" );
		var db_cookie = getDashboardCookie( );

		if( db_elem ) {
			contentForElementById( 'db_customerName',  db_cookie[0] );
			contentForElementById( 'db_customerId',    db_cookie[1] );
			contentForElementById( 'db_lastLogin',     db_cookie[2] );
			contentForElementById( 'db_emailAddress',  db_cookie[3] );
			
			if(db_cookie[4] == 'einrichten'){
				contentForElementById( 'db_urlEmail', 'E-Mail einrichten <span id="db_emailUnread"> </span>' );
				contentForElementById( 'db_emailUnread', '' );
				contentForElementById( 'db_smsAvailable',  '100' );
			}else if(db_cookie[4] == '-'){
				contentForElementById( 'db_urlEmail', 'E-Mail einrichten  <span id="db_emailUnread"> </span>' );
				contentForElementById( 'db_emailUnread', '' );
				contentForElementById( 'db_smsAvailable',  '-' );
			}else {
				contentForElementById( 'db_urlEmail', 'Neue E-Mails:  <span id="db_emailUnread"> </span>' );
				contentForElementById( 'db_emailUnread',   db_cookie[4] );				
				contentForElementById( 'db_smsAvailable',  db_cookie[5] );
			}
			
			contentForElementById( 'db_faxNumber',     db_cookie[6] );
			contentForElementById( 'db_faxUnread',     db_cookie[7] );
			
			if(db_cookie[8] == 'einrichten'){
				contentForElementById( 'db_urlWebspace', 'Medien Center einrichten' );
				contentForElementById( 'db_webspaceAvail', '' );
			}else if(db_cookie[8] == '-'){
				contentForElementById( 'db_urlWebspace', 'Medien Center einrichten' );
				contentForElementById( 'db_webspaceAvail', '' );
			}else {
				
				contentForElementById( 'db_urlWebspace', 'Freier Speicher: <span id="db_webspaceAvail"> </span>' );
				contentForElementById( 'db_webspaceAvail', db_cookie[8] );
			}
			
			contentForElementById( 'db_productName',   db_cookie[9] );
			
			urlForElementsById( 'db_urlEmail',   db_cookie[10] );
			urlForElementsById( 'db_urlEmail2',   db_cookie[10] );
			urlForElementsById( 'db_urlSMS',      db_cookie[11] );
			urlForElementsById( 'db_urlWebspace', db_cookie[12] );
			
		}
	} // end function setDashboardData()


window.setTimeout( 'updateDashboard();', 10000 );
window.setInterval( 'updateDashboard( );', 300000 );
	
