
	function cst_box_element_position(element) {
		var elem=element,tagname="",x=0,y=0;
		
		while ((typeof(elem)=="object")&&(typeof(elem.tagName)!="undefined")) {
			y+=elem.offsetTop;
			x+=elem.offsetLeft;
			tagname=elem.tagName.toUpperCase();
			
			if ( (document.all && tagname=="HTML") || tagname=="BODY" ) elem=0;
			
			if (typeof(elem)=="object")
			if (typeof(elem.offsetParent)=="object")
			elem=elem.offsetParent;
		}
		
		position=new Object();
		position.x=x;
		position.y=y;
		return position;
	}

	function cst_box_decode_utf8(utftext) {
		var plaintext = ""; var i=0; var c=c1=c2=0;
		// while-Schleife, weil einige Zeichen uebersprungen werden
		while(i<utftext.length) {
			c = utftext.charCodeAt(i);
			if (c<128) {
				plaintext += String.fromCharCode(c);
				i++;
			} else if((c>191) && (c<224)) {
				c2 = utftext.charCodeAt(i+1);
				plaintext += String.fromCharCode(((c&31)<<6) | (c2&63));
				i+=2;
			} else {
				c2 = utftext.charCodeAt(i+1); c3 = utftext.charCodeAt(i+2);
				plaintext += String.fromCharCode(((c&15)<<12) | ((c2&63)<<6) | (c3&63));
				i+=3;
			}
		}
		return plaintext;
	}

	function cst_box_remember_cookie_get() {
		var cookieValue = ""; 
		var search = 'remember_items='; 
		var end = 0;
		if( document.cookie.length > 0 ) {  
			offset = document.cookie.indexOf(search); 
			if( offset != -1 ) {  
				offset += search.length; 
				end = document.cookie.indexOf(";", offset); 
				if( end == -1 ) end = document.cookie.length; 
				cookieValue = document.cookie.substring(offset, end);
			} 
		} 
		return cookieValue;
	}
	
	function cst_box_remember_check_duplicate( id ) {
		var data = cst_box_remember_cookie_get( );
		var items  = data.split( '|' );	
		var item = Array();
		var itemKey = 0;
		var status = true;
		for( itemKey in items ) {
			if ( typeof items[ itemKey ] == "function" ) continue;
			item = items[ itemKey ].split( '\\' );
			if( item.length == 4 ) {
				if ( item[0] == id ) {
					return false;
				} else {
					status = true;
				}
			}
		}
		return status;
	}
	
	if (typeof(window.cst_box_remember_items_get) != "function") {
		function cst_box_remember_items_get( ) {
			var data = cst_box_remember_cookie_get( );
			var items  = data.split( '|' );	
			var item = Array();
			var itemKey = 0;
			var html = '';
			var isempty = true;
			for( var itemKey=0; itemKey<items.length; itemKey++ ) {
				if ( typeof items[ itemKey ] == "function" ) continue;
				item = items[ itemKey ].split( '\\' );
				if( item.length == 4 ) {
					isempty = false;
					var text;
					if ( document.all ) {
						text = decodeURI( item[2] );
					} else {
						text = unescape( item[2] );
					}
					html = html+'<tr><td><div class="name" style="overflow:hidden;"><a href="'+item[3]+'" class="note_link">'+text+'</a></div></td></tr><tr><td class="delete-link"><a href="javascript:remember_item_del( '+itemKey+' );" class="note_del">'+cst_box_remember_texts['delete']+'</a></td></tr>';

				}
			}
			if( isempty == true ) {
				document.getElementById( 'cst-remember-box' ).innerHTML = cst_box_remember_texts['nothing'];
				document.getElementById( 'cst-remember-button' ).style.display = 'none';
			} else {
				document.getElementById( 'cst-remember-button' ).style.display = 'inline';
				document.getElementById( 'cst-remember-box' ).innerHTML = '<table>'+html+'</table>';
			}
		}
	}
	
	/* public functions */
	function remember_item_del( id ) {
		var data = cst_box_remember_cookie_get( );
		var items  = data.split( '|' );	
		var itemKey = 0;
		var str = '';
		var now = new Date();
 		var expire_periode = 1000*60*60*24*30;
 		var expire = new Date(now.getTime() + expire_periode);
		for( itemKey in items ) {			
			if( ( itemKey != id ) && ( itemKey < ( items.length + 1 ) ) ) {
				str += items[ itemKey ]+'|';
			} else {
			}
			document.cookie = 'remember_items='+str+';path=/; expires='+expire.toGMTString()+';';
			cst_box_remember_items_get( );
		}
	 }

	function remember_item_add(id, p, t, l) {
 		var now = new Date();
 		var expire_periode = 1000*60*60*24*30;
 		var expire = new Date(now.getTime() + expire_periode);
 		if( cst_box_remember_check_duplicate( id ) == true ) {
 			var str = id+'\\'+p+'\\'+escape( t )+'\\'+l+'|';
 			box_position = cst_box_element_position( document.getElementById( 'cst-remember-box' ) ).x < ( ( document.all ? document.body.offsetWidth : window.innerWidth ) / 2 ) ? 'notice_left' : 'notice_right';
 			document.cookie = 'remember_items=' + cst_box_remember_cookie_get( ) + str+';path=/; expires='+expire.toGMTString()+';';
 			cst_box_remember_items_get( );
			var span = document.createElement( 'span' );
			span.innerHTML = cst_box_remember_texts[box_position];
			alert( span.innerHTML );
 		} else {
 			cst_box_remember_items_get( );
 		}
	}
	
