	/* 
	>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
		CLASS: SMART DOC
	>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
		REQUIRES:
			* framework
				- jquery-1.2.6.min.js
				- jquery-ui-personalized-1.6rc2.min.js
			* extensions
				- jScrollPane.js
				- jquery.mousewheel.js
			* custom
				- Overlay.js
				- tooltip.js
	>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
		TODO:
			---------------------------------
			- persist data (inc: premium content)
			--------------------------------
			- clean-up
			- check selectors
	>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
	*/
	$j.Avaya.SmartDock = function(options) {
	
		if (!document.getElementById('smartDock'))
			return;
		
		var self = this;
		var currentCollection = 0;
		var currentsmartDockId = 0;
		
		var settings = $j.extend({
			defaults: {width: 280, height: 600},
			height: null,
			width: null,
			amtShowing: 22,
			unregMaxItems: 5,
			animationLength: 700,
			dontShowAgain: 1,
			cookieName: "smartdock",
			isOpen: 0,
			sortableSettings: {
				items: ".item",
				handle: ".titlebar",
				placeholder: "placeholder",
				update: function() {
					_reorderBookmarks();	
				}
			},
			scrollbar: {
				scrollbarWidth: 5	
			},
			isFixed : true
		}, options);

		// INITIALIZE
			var $wrap = $j("#sd-wrap");
			var $knob = $j("#sd-knob");
			var $smartDock = $j("#smartDock");
			var $sdItems = $j("#sd-items");
			var $content = $j("#sd-content");
			var $sdCollection = $j("#sd-collection");
			var $customSelect = $content.find('select.customSelect');			
			var itemManager; //Initialized in _loadUserCollections
			var collectionIndex = 0;
			var $bigOpen = $j("#sd-bigOpen");
			var smartDockId = $j.Avaya.SmartDockId;
			var Collections = 0;
			var isOpening = false;
			
			// undo fixed dock positioning if too small for window
			if($j(window).height() < $smartDock.offset().top + $smartDock.height() - 15) {
				$smartDock.css({position: "absolute"});
				settings.isFixed = false;
			}
			
			if(!$j.Avaya.global.isRegistered) {
				$j("#sd-registerTout").show();
				$j("#sd-avayaRecommends").hide();
			}
			// default opened or closed based on settings
			if(!settings.isOpen) {			
				$smartDock.css({
					left: _getClosedPosition()
				});
			} else {
				$smartDock.data("isOpen", 1); 
			}	
				
			if($j.Avaya.global.isRegistered) {
				//Populate collection dropdown
				_getUserCollections(smartDockId);	
			} else {
				_disableFooter();
				$j(window).unload(function () { 
					saveUnregisteredData();
				});				
				string = '<option value="collection_0">'+$j.Avaya.Error.SmartDock.defaultCollectionName+'</option>'; 
				
				var dock = loadUnregisteredData();
				
				if($j.cookie("dontShowAgain") != null) {
					settings.dontShowAgain = $j.cookie("dontShowAgain");
				}
				
				if(dock) {
					dock.itms = dock.itms.reverse();

					for(var i=0; i<dock.itms.length; i++) {
						if(dock.itms[i] && (dock.itms[i] != "" || dock.itms[i] != null)) {
							var itmInfo = JSON.parse(dock.itms[i]);						
							var $itm = $j(_createItem(itmInfo));
				
							$sdItems.prepend($itm);
							$itm.data("itmInfo", dock.itms[i]);
							new $j.Avaya.ToolTipTrigger($itm,{staticContent:'<p>'+itmInfo.description+'</p>',location:'NE',width:214, yOffset: 15, xOffset: -70, fixed:settings.isFixed, canLock:true});
							
				
							$sdItems.jScrollPane(settings.scrollbar);
							$sdItems.sortable("destroy");
							$sdItems.sortable(settings.sortableSettings);
						}
				}

					
				}
					
				_buildDropDown(string);
			}
			
			// initialze events
			//Hide SmartDock on clicks outside
			$j(document).click(function(e){
				if (!$smartDock.data('isOpen') || $smartDock.data('isOpen') == 0) return;
				
				var $tar = $j(e.target);
				var parents = $tar.parents();
				//Add exceptions into here
				if (!parents.is('#smartDock, #item-manager, .smartdock-add, #tool-tip, #util-saveList') && !$tar.hasClass("smartdock-add")){
					self.hide();
				}
			});
			
			$knob.click(function(e){
				_toggle(e);
				self.statusIndicator.hide();
			});

			$j("#sd-help").click(_showHelp);
			$j("#sd-help").hover(function(){
				$j(this).find('img').attr('src','/_assets/img/btn_help_on.png');
			},function(){
				$j(this).find('img').attr('src','/_assets/img/btn_help.png');
			});
			
			$j("a.printCollection", $smartDock).live("click", _printCollection);
			$j("a.shareCollection", $smartDock).live("click", _shareCollection);
				
			$j("a.share-send").live("click", function(e) {
				e.preventDefault(e);
				
				$j.Avaya.global.Tracking.clickEvent("SD-SHARE_SEND");
				
				var $recipients = $j("#recipient");
				$recipients.focus(function() { 
					if($j(this).hasClass("invalid")) {
						$j(this).removeClass("invalid");
						self.statusIndicator.hide();
					}
				});

				$j("#shareCollection input").removeClass("invalid");
										
				var emails = $recipients.val();

				var comments = $j("#comments").val();
				var copytoself = "";
				var checkboxes = $j("input:checkbox");
				checkboxes.each( function() {
					if(this.checked){
					    copytoself = "yes";
					}
				});
				//Instantiate SmartDock
				var oSmartDock = new SmartDock();
				var msg = oSmartDock.CheckExplicitLanguage(comments, function(response) {
	                var ErrorMessage = response.result;
	                if (ErrorMessage != "") {
	                    alert(ErrorMessage);
	                    self.statusIndicator
			            .setValue(ErrorMessage)
			            .setHorizontal(-200,265)
			            .show({
				            hide: 6000,
				            top: 300
			            });
	                    return;
	                } else {
		                    var emailsValid = validateEmails(emails);
            				
				if(validateEmails(emails))  {

			                    oSmartDock.AddShareWithAFriend(currentCollection,emails,comments, copytoself, function(params) {
				                    if(params.result > 0) {
					                    $j.get("/_assets/inc/shareComplete.html", function(response) {
						                    panels.share.show({val: $j(response)});
								$j.Avaya.global.Tracking.pageView("SD-SHARE_COMPLETE", "Open", "SmartDock");
					                    });		
				                    } else {
					                    self.statusIndicator
								.setValue($j.Avaya.Error.SmartDock.genericServerError)
						                    .setHorizontal(-200,265)
						                    .show({
							                    hide: 6000,
							                    top: 300
						                    });
				                    }
			                    });

		                    } else {
			                    if(emailsValid == false) {
				                    $recipients.addClass("invalid");
			                    }

			                    self.statusIndicator
						.setValue($j.Avaya.Error.SmartDock.genericFormError)
				                    .setHorizontal(-250,265)
				                    .show({
					                    hide: 6000,
					                    top: 300
				                    });
		                    }
		              }
				  });
			});
			
			$j("a.share-cancel").live("click", function(e) {
				e.preventDefault(e);					  
				$j.Avaya.global.Tracking.clickEvent("SD-SHARE_CANCEL");
				$j.Avaya.global.Tracking.pageView("SD-COLLECTION_" + _getCollectionIndex(currentCollection) , "Return", "SmartDock");
				panels.share.hide();
				_enableFooter();
			});

			$j("a.share-continue").live("click", function(e) {
				e.preventDefault(e);										  
				$j.Avaya.global.Tracking.clickEvent("SD-SHARE_CONTINUE");
				$j.Avaya.global.Tracking.pageView("SD-COLLECTION_" + _getCollectionIndex(currentCollection) , "Return", "SmartDock");
				panels.share.hide();
				_enableFooter();
			});
			
			
			
			$j("a.delete", $wrap).live("click", function(e){
				e.preventDefault(e);
				
				if(confirm($j.Avaya.Error.SmartDock.areYouSureBookmark)) {
					
					$j.Avaya.global.Tracking.clickEvent("SD-BOOKMARK_DELETE");
					
					var $target = $j(e.target).parents("div.item");
					_deleteBookmark($target,currentCollection,$target.attr("id"));
				}
			});
			
			$j("#sd-avayaRecommends").css({top: 332});
			
			$j("#ar-expand").click(function(e) {
				e.preventDefault();
				
				
				
				var $target = $j(e.target);
				var $ar = $j("#sd-avayaRecommends");
				var $items = $j("#sd-avayaRecommends .items");
				var $sdCollection = $j("#sd-collection");
				if($target.hasClass("open")) {
					$j.Avaya.global.Tracking.pageView("SD-AVAYA_RECOMMENDS", "Open", "SmartDock");

					$target.removeClass("open").addClass("close");	

					$ar.stop();
					$sdItems.stop();
					$items.stop();
					$sdCollection.addClass("recommendsOpen");
					
					$sdItems.jScrollPaneRemove();
					
					
					$items.animate({height: 285}, {duration: 500, queue: false, 
						complete: function() {

							$items.jScrollPane(settings.scrollbar);																	  
						}
					});
					$ar.animate({top: 130}, {duration: 500, queue: false});
					$sdCollection.animate({height: 80}, {duration: 500, queue: false});
						
				} else if($target.hasClass("close")){
					$j.Avaya.global.Tracking.clickEvent('SD-AVAYA_RECOMMENDS_Close'); 
					$j.Avaya.global.Tracking.pageView("SD-COLLECTION_" + _getCollectionIndex(currentCollection), "Return", "SmartDock" );
					$items.jScrollPaneRemove();		
					$items.height(285);
					$target.removeClass("close").addClass("open");
					
					$ar.stop();
					$sdItems.stop();
					$items.stop();
					$ar.animate({top: 332}, {duration: 500, queue: false});
					$sdCollection.animate({height: 280}, {duration: 500, queue: false});
					$items.animate({height: 80}, {
							duration: 500, 
							queue: false, 
							complete: function() {
								$items.jScrollPaneRemove();
								$sdCollection.removeClass("recommendsOpen");
								$sdItems.jScrollPane(settings.scrollbar);
							}
					});

				}
			});
			
			// SIFR
			$j.Avaya.SifrConfig.masterReplace($j.Avaya.SifrConfig.gothamLight,{
			   selector: '#sd-header h2',
			   css: {
					'.sIFR-root': { 
						'color': '#cc0000', 
						'font-weight': 'bold',
						'font-size': 18
					}
			   },
			   selectable: false
			});
			
			
		/* METHODS >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> */
		/* PUBLIC ................................... */
		
		this.initItems = function() {
			var $items = $j("div.item", $smartDock);

			//$items.each(function(index, itm) {
				// init tip
			//	new $j.Avaya.ToolTipTrigger($j(itm),{staticContent:'<p><strong>PRODUCT</strong><br />Product name</p><p><br />Lorem ipsum doler sit amet, sine qua non lorem sit doler ubi...</p>',location:'NE',width:214, yOffset: 45, xOffset: -30, fixed: true});
			//});
			
			$sdItems.jScrollPane(settings.scrollbar);
					
			$sdItems.sortable("destroy");
			$sdItems.sortable(settings.sortableSettings);
		}

		this.show = function() {
			isOpening=true;
			$bigOpen.css({display:'none'});
			if(!$j.Avaya.global.isRegistered && $j.cookie("wasOpened") != 1) {
				$j.cookie("wasOpened", 1);
				_showWelcome();
			}
			
			$wrap.css({visibility: "visible"});
			
			$knob.removeClass("open").addClass("open");
			
			$wrap.fadeIn(200);
			$smartDock.stop();
			$smartDock.animate({ 
				left: 0
			}, {duration:settings.animationLength, easing:"easeout",complete:function(){isOpening=false;}});

			$smartDock.data("isOpen", 1);

			$sdItems.jScrollPane(settings.scrollbar);
			$j.Avaya.global.Tracking.clickEvent("SD-OPEN");
		}
		
		this.hide = function() {
			
			
			$smartDock.stop();
			$smartDock.animate(
				{left: _getClosedPosition()}, 
				{duration:settings.animationLength, 
				easing:"easeout",complete:
				function() {
					$wrap.css({visibility: "hidden"});	
					// hide open panels
					for(var i in panels) {
						panels[i].hide();	
					}
					if($j.Avaya.global.isRegistered) {
						_enableFooter();
					}
					$bigOpen.css({display:'block'});
					$knob.removeClass("open");
				}}
			);
			$smartDock.data("isOpen", 0);			
		}
		
		
		/* PRIVATE */
		function _getCollectionIndex(id) {
			var i = 0;
			$customSelect.find("option").each(function(index, itm){
				if (itm.value == 'collection_'+id){
					i = index;
				}
			});
			return i;
		}
		
		function _getAvayaRecommends() {
		    /*
				THIS IS WHAT IT WILL USE:
				var oSmartDock = new SmartDock();
				oSmartDock.GetRecommendedCollections(function(params){
				
				});	
			*/
			if(typeof avayarecommends == "undefined") {
				avayarecommends = [];	
			}
			var $customSelect = $content.find('select.customSelect');
			// TEMP: GET FIRST COLLECTION FOR TEST DATA
			//var cid = $customSelect.val().split("_")[1];

			var string = '';
			var bookmarks;
			$avayaRecommendsItems = $j("#sdItems-avayaRecommends");
						
			//var oSmartDock = new SmartDock();
			//oSmartDock.GetCollectionBookmarks(cid, function(params) {
				if(typeof avayarecommends != "undefined") {
				bookmarks = avayarecommends;

                for (var i=0;i<bookmarks.length;i++){
					var bm = bookmarks[i];
					if(bm.id) {
					var itm = $j(_createItem(bm, 1));
					$avayaRecommendsItems.append(itm)
					new $j.Avaya.ToolTipTrigger(itm,{staticContent:'<p>'+bm.description+'</p>',location:'NE',width:214, yOffset: 15, xOffset: -70, fixed:settings.isFixed, canLock: true});
					}
				}
				//self.initItems();
				
				//currentCollection = cid;
				}
			//});

		}
		
		function _createItem(params, isAvayaRecommends) {
			var settings = $j.extend({
				type: null,
				id: 0,
				img: ""
			}, params);
			
                        if(typeof contentlist == "undefined") {
				contentlist = [];	
			}
			var canPush = true;
			for(var i=0; i<contentlist.length; i++) {
				if(contentlist[i].id == params.id) {
					canPush = false;
					break;
				}
			}
			if(canPush) { contentlist.push(params); } 
			
			//settings.description = _truncate(settings.description);
			settings.title = _truncate(settings.title);

                        var deleteBtn = '<a href="javascript:void(0)" class="delete">x</a>';
			var avayaRecommendsClass = "";
			var addBtnClass = "";
			
			if(isAvayaRecommends) {
				deleteBtn = "";
				avayaRecommendsClass = " isAvayaRecommends";
			} else {
				addBtnClass = " inCollection";
			}
			
			var id = "";
			if(typeof settings.bookmarkId == "undefined") {
				id = settings.id;
			} else {
			    id = settings.bookmarkId;
			}

                        var premiumIndicator = '<img src="/_assets/img/icon_premiumContent.png" alt="premium content" title="premium content" />';
			if(! settings.isPremiumContent) {
				premiumIndicator = "";	
			}

			return '<div class="item'+avayaRecommendsClass+'" id="'+id+'"><div class="titlebar"><span>'+settings.contentTypeDescription+'</span><div class="item-utils"><a href="javascript:void(0)" class="smartdock-add'+addBtnClass+'" title="copy to collection" alt="copy to collection"></a>'+deleteBtn+'</div></div><div class="item-content"><img src="'+settings.smallImage+'" /><a href="'+settings.url+'">'+settings.title+ premiumIndicator + '</a></div></div>';

		}
				
		function _buildDropDown(string){		
			var str = string;
			str += '<option value="ignore new" id="beginSdActions">'+$j.Avaya.Error.SmartDock.newCollection+'</option><option value="ignore delete">'+$j.Avaya.Error.SmartDock.deleteCollection+'</option><option value="ignore rename">'+$j.Avaya.Error.SmartDock.renameCollection+'</option>'; 
			
			$customSelect.html(str);
			
			itemManager = new ItemManager();
			
			self.customSelect = new $j.Avaya.CustomSelect($customSelect, {
				submitFunction: function(){
					var collectionId = $customSelect.val().split('_')[1];
					_getCollection(collectionId);
					//_getCollection(collectionId);
				},
				ignoredValue: "ignore",
				functions: {
					"new": function() {
						if($j.Avaya.global.isRegistered) {
							_addCollection();
						} else {
							self.statusIndicator.setValue($j.Avaya.Error.SmartDock.newCollectionRegister, 1).setHorizontal(15,265).show();
						}
					},
					"rename": function() {
						if($j.Avaya.global.isRegistered) {
							_makeRenamable();
							
						} else {
							self.statusIndicator.setValue($j.Avaya.Error.SmartDock.renameCollectionRegister, 1).setHorizontal(15,265).show();
						}	
					}, 
					"delete": function() {
						if($j.Avaya.global.isRegistered) {
						    var collectionId = $customSelect.val().split('_')[1];
							_deleteCollection(collectionId);
						} else {
							self.statusIndicator.setValue($j.Avaya.Error.SmartDock.deleteCollectionRegister, 1).setHorizontal(15,265).show();
						}
					}
				}
			});
			
			$content.find("ul.selectList li").each(function(){ 
				if($j(this).html() == $j.Avaya.Error.SmartDock.newCollection) {
					$j(this).addClass("divider");
				}
			});
		};
		
		function _makeRenamable(val) {
							var selectParent = $customSelect.parents(".selectParent");
						var $label = selectParent.find("div.selectDisplay span");
			var labelVal = val || $label.html();
			var $input = $j('<input maxlength="25" value="'+labelVal+'" />');
			this.currentCollectionName = $label.html();
							
							$input.blur(function() {
				//$j(this).parents("span").html(this.value);				 
								_renameCollection(currentCollection,this.value);
							}).click(function(e) {
				return false;
							}).keyup(function(e) {
								if(e.keyCode == 13) {
					//$j(this).parents("span").html(this.value);		
									_renameCollection(currentCollection,this.value);
								}
							});

						$label.html($input);
							
							setTimeout(function() {
							var $input = selectParent.find("div.selectDisplay input");
							$input.focus();	
							$input.select();						
							}, 100);
				}
		
						
		function _showHelp(e) {
			if (e){
				e.preventDefault();
			}
			
			//$j.Avaya.global.Tracking.clickEvent("SD-HELP");
			
			$j.get("/_assets/inc/help.html", function(response) {
				self.statusIndicator.abruptHide();													  	
				panels.welcome.show({val: $j(response)});					
				$j.Avaya.global.Tracking.pageView("SD-HELP", "Open", "SmartDock");
				
				$j(".tryDock", $j("#sd-panel.welcome")).die().live("click", function(e) {
						e.preventDefault(e);
						$j.Avaya.global.Tracking.clickEvent("SD-TRYDOCK");
						$j.Avaya.global.Tracking.pageView("SD-COLLECTION_" + _getCollectionIndex(currentCollection) , "Return", "SmartDock");
						panels.welcome.hide();								  
				});
				
				$j("a.panel-close", $j("#sd-panel.welcome")).die().live("click", function(e) {
						e.preventDefault(e);								  
						$j.Avaya.global.Tracking.clickEvent("SD-HELP_CLOSE");
						$j.Avaya.global.Tracking.pageView("SD-COLLECTION_" + _getCollectionIndex(currentCollection) , "Return", "SmartDock");
						panels.welcome.hide();
				});

				if($j.Avaya.global.isRegistered) {
					setTimeout(function() {
						$j("#welcomeScreen").addClass("isRegistered");	
					}, 500);
				}
			});		
			if($j.Avaya.global.isRegistered) {
				_enableFooter();
			}
		}
		

		
		function _showWelcome(e) {
			if (e){
				e.preventDefault();
			}
			if($j.cookie("dontShowAgain") != 1) {
			$j.get("/_assets/inc/welcome.html", function(response) {
				self.statusIndicator.abruptHide();	
				panels.welcome.show({val: $j(response)});	
					$j.Avaya.global.Tracking.pageView("SD-WELCOME" , "Open", "SmartDock");

					$j("#sd_dontShowAgain").die().live("click", function(e) {
					$j(this).attr("checked") ? settings.dontShowAgain = 1 : settings.dontShowAgain = 0;
				});
				
					$j(".tryDock", $j("#sd-panel.welcome")).die().live("click", function(e) {
						e.preventDefault(e);
							
							$j.Avaya.global.Tracking.clickEvent("SD-TRYDOCK");
							
						panels.welcome.hide();								  
							setTimeout(function() {
								$sdItems.jScrollPane(settings.scrollbar);
							}, 100);
				});
				
					$j(".welcome-close", $j("#sd-panel.welcome")).die().live("click", function(e) {
						e.preventDefault(e);								  
						panels.welcome.hide();
				});

				if(settings.dontShowAgain == 0) {
					setTimeout(function() { 
						$j("#sd_dontShowAgain").click();
					}, 500);	
				}
			});		
			if($j.Avaya.global.isRegistered) {
			_enableFooter();
		}
		}
		}
		
		$bigOpen.click(function() {
			self.show();								
		}).hover(function(){
			if (!isOpening && !$smartDock.data("isOpen")) {
				$smartDock.stop(true)
				.animate({left:-255},20)
				.animate({left:-245},200)
				.animate({left:-250},200);
			}
		},function(){
			if (!isOpening && !$smartDock.data("isOpen")) {
				$smartDock.stop().animate({left:-258},100);
			}
		});
		
		// args [e:Event] : return null
		function _toggle(e) {		
			e.preventDefault(e);
			if(!$smartDock.data("isOpen") || $smartDock.data("isOpen") == 0) {
				self.show();
			} else {
				self.hide();
				$j.Avaya.global.Tracking.clickEvent("SD-CLOSE");
			}
		}
		
		// return NUMBER
		function _getClosedPosition() {
			return ((settings.width) ? -(settings.width) : -(settings.defaults.width)) + settings.amtShowing;
		}
		
		function _printCollection(e) {
			e.preventDefault(e);
			if(! $j(e.target).hasClass("disabled")) {
                            $j.Avaya.global.Tracking.clickEvent("SD-PRINT"); 
			    //var o = new $j.Avaya.Overlay({width: 600, id : "pk-overlay"});
				if($j.Avaya.global.isRegistered) { 
				    window.open("/print.aspx?CollectionID=" +currentCollection);
				    /*
				    $j.ajax({
				        type:'GET',
				        url:'/print.aspx',
				        data:'CollectionID='+ currentCollection, 
				        dataType: '',
				        success: function(response){
				            o.setContent($j(response));
						    o.show();
					        //if (response.status==-1){
						    //    alert(response.message);
					        //}
				        },
				        error:function(thrownError){
					        
				        }
			        });
			        
					$j.get("/print.aspx?CollectionID="+currentCollection, function(response) {
						o.setContent($j(response));
						o.show();
					});*/
					/* TEMP: shouldn't use pk prefix */
					$j("#pk-overlay .pk-overlay-close").live("click", function(e) {
						e.preventDefault(e);
						o.hide();													   
					});
					$j("#pk-overlay .pk-overlay-create").live("click", function(e) {
						e.preventDefault(e);
						o.hide();												   
					});
				}
			}
		}
		
		function _disableFooter() {
			$j("#sd-footer a").removeClass("disabled").addClass("disabled");
		}
		
		function _enableFooter() {
			$j("#sd-footer a").removeClass("disabled");
		}
		
		function _shareCollection(e) {
			e.preventDefault(e);
			if(! $j(e.target).hasClass("disabled")) {
				if($j.Avaya.global.isRegistered) { 
					$j.get("/_assets/inc/shareform.html", function(response) {
						panels.share.show({val: $j(response)});
                                                $j.Avaya.global.Tracking.pageView("SD-SHARE_FORM", "Open", "SmartDock");
						var lastupdatedate = "", username = "";
						var oSmartDock = new SmartDock();
				        oSmartDock.GetCollectionByCollectionId(currentCollection,function(params){
				            var ocollection = params.result
				            lastupdatedate = ocollection[0].lastUpdateDate
				            //alert(lastupdatedate);
				        });
				        oSmartDock.GetUserName(function(params){
				            username = params.result;
				        });

						setTimeout(function() {
						    $j("#SHAREFORM-collection").html($content.find("div.selectDisplay span").html());
							$j("##SHAREFORM-TEXT-collection input").attr("value", $content.find("div.selectDisplay span").html()); 
							$j("#SHAREFORM-date").html(lastupdatedate);
							$j("#SHAREFORM-name").html(username);
							$j("#comments").maxLength(1000);
							
							var checkboxes = $j("input:checkbox");
							checkboxes.each( function() {
								$j(this).css('position', 'absolute').css('left', '-9999px');
								(this.checked) ? $j("#fake"+this.id).addClass('fakecheckboxChecked') : $j("#fake"+this.id).removeClass('fakecheckboxChecked');
								var id = $j(this).attr('hook');
								var html = $j(this).val();
								var checked = this.checked;
							});
							
							$j("#privacyLink").click(function() {
                                                            setTimeout(function() {
									document.location = $j("#privacyStatementLink").get(0).href.toString();
                                                            }, 100);
							});
							$j(".fakecheckbox").click(function(){
								($j(this).hasClass('fakecheckboxChecked')) ? $j(this).removeClass('fakecheckboxChecked') : $j(this).addClass('fakecheckboxChecked');
								var checkBoxId = $j(this).attr('hook');
								var checkBox = $j('input:checkbox#' + checkBoxId);
								checkBox.trigger('click');
							});
							
						}, 500);
					});
					_disableFooter();
				}
			}
		}
		
		function validateEmail(address) {
			var email = /^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+$/;
			if(!email.test(address)) {
				return false;
			}
			return true;
		}
		
		function validateEmails(addresses) {
			var emails = addresses.split(",");
			var valid = false;
			
			for(var i=0; i<emails.length; i++) {
				valid = validateEmail($j.trim(emails[i]));
				if(!valid) { break; }
			}

			if(valid) {
				return true;
			} else {
				return false
			}
		}
		
	/****** AJAX Calls ******/		
		//Gets the collections related to a smartdockID
		function _getUserCollections(dockId){
		    var string = '';
	        var jsonCollection;

	        var oSmartDock = new SmartDock();
	        oSmartDock.GetUserCollections(1, function(params) {
		        jsonCollection = params.result;
		        if (jsonCollection.length > 0) {
		            for (var i=0;i<jsonCollection.length;i++){
		                currentsmartDockId = jsonCollection[i].smartDockId;
			            string += '<option value="collection_'+jsonCollection[i].id+'">'+jsonCollection[i].name+'</option>'; 
                                $sdCollection.removeClass("collections-" + Collections);
					Collections++;
					$sdCollection.addClass("collections-" + Collections);
		            }
		            _getCollection(jsonCollection[0].id);		
		         }
			    _buildDropDown(string);
				
	        });
	        _getAvayaRecommends();
		}
		
		function _getCollection(collectionId,callback){	
		    var string = '';
			var bookmarks;
			
			if ($j.Avaya.global.ToolTip){
				$j.Avaya.global.ToolTip.killToolTip();
			}
			
			$j.Avaya.global.Tracking.pageView("SD-COLLECTION_" + _getCollectionIndex(collectionId), "Open", "SmartDock" );
			
			var oSmartDock = new SmartDock();
			oSmartDock.GetCollectionBookmarks(collectionId, function(params) {
				$sdItems.html("");
				bookmarks = params.result;
				
				for (var i=0;i<bookmarks.length;i++){
					var bm = bookmarks[i].content;
					var itm = $j(_createItem(bm));
					$sdItems.append(itm)
					new $j.Avaya.ToolTipTrigger(itm,{staticContent:'<p>'+bm.description+'</p>',location:'NE',width:214, yOffset: 15, xOffset: -70, fixed:settings.isFixed, canLock:true});
				}
				
				
				self.initItems();																	 
				
				currentCollection = collectionId;
				
				if (typeof callback == "function"){
					callback();
				}
				
				if($j.Avaya.global.ToolTip){
					$j.Avaya.global.ToolTip.killToolTip();
				}
			});
        }	

                function _checkCollectionNames(collectionName){
			var name= '';
			var number = 1;	
			var match = true;
			var opts = $customSelect.find('option');
			var optNames = [];
			
			(!collectionName) ? name = $j.Avaya.Error.SmartDock.defaultCollectionName : name  = collectionName;

			//Check for duplicate names, if so append 1, 2, ...
			for (var i=0;i<opts.length;i++){
				optNames.push(opts.eq(i).html());
			}
			
			var tempName = name;
			while (match){
				match = false;
				for (var i=0;i<optNames.length;i++){
					if (optNames[i] == tempName){
						tempName = name + ' ' + number;
						number++;
						optNames.splice(i,1);
						match = true;
						break;
					}
				}
			}
			
			return tempName;
		}


		function _addCollection(collectionName){

			$j.Avaya.global.Tracking.clickEvent("SD-COLLECTION_ADD");
			
                    if (Collections < 10){
		    var name;
			(!collectionName) ? name = 'My Collection ' + (self.customSelect.opts.length-2) : name  = collectionName;
			
			//If the Collection Name is empty dont add it
			if (name == "") {
			    return;
			}
			
			//Instantiate the SmartDock
			var oSmartDock = new SmartDock();
			
			
			//Check for Collection Name Exists
			var msg = oSmartDock.CheckExplicitLanguage(name, function(response) {
			    var ErrorMessage = response.result;
			    if (ErrorMessage != "") {
			        self.statusIndicator.setValue(ErrorMessage, 1).setHorizontal(50,265).show();
			        return;
			    } else {
			        var msg = oSmartDock.IsCollection(currentsmartDockId,name, function(response) {
			            var ErrorMessage = response.result;
			            if (ErrorMessage != "") {
			                self.statusIndicator.setValue(ErrorMessage, 1).setHorizontal(50,265).show();
			                return;
			            } else {
			                //Check for Collection Count More than 10, if not then add the collection
			                var msg = oSmartDock.CollectionCount(currentsmartDockId, function(response) {
			                    var ErroMessage = response.result;
			                    if (ErroMessage != "") {
			                        self.statusIndicator.setValue(ErroMessage, 1).setHorizontal(50,265).show();
			                        return;
			                    } else {
			                        oSmartDock.AddCollection(currentsmartDockId,name, function(response) {
			                            if (response.result[0].id > 0){
					                        currentCollection = response.result[0].id;
                                                                $j.Avaya.global.Tracking.pageView("SD-COLLECTION_" + _getCollectionIndex(currentCollection), "Open", "SmartDock" );
					                        $j('#beginSdActions').parents("select").prepend('<option value="collection_'+response.result[0].id+'">'+response.result[0].name+'</option>');

						                        self.customSelect.updateList();
					                        itemManager.populate();
					                        // TEMP: make it jump twice because otherwise it won't just go to zero
					                        $j.Avaya.global.SmartDock.customSelect.jumpToIndex(self.customSelect.opts.length - 1);
					                        $j.Avaya.global.SmartDock.customSelect.jumpToIndex(0);
                        					
						$content.find("ul.selectList li").each(function(){ 
							if($j(this).html() == $j.Avaya.Error.SmartDock.newCollection) {
								$j(this).addClass("divider");
							}
						});
							
					                        $sdItems.html("");				
						$sdItems.jScrollPane(settings.scrollbar);
					                        _makeRenamable();
						                $sdCollection.removeClass("collections-" + Collections);
                        					Collections++;
                                                                $sdCollection.addClass("collections-" + Collections);;
				                        }
			                        });
			                    }
			                });
			            }
			        });
			     }	
			   });	 
                       } else {
				self.statusIndicator.setValue($j.Avaya.Error.SmartDock.exceedCollectionLimit,true).show({top:67});
			}    		
		}
		
		function _deleteCollection(collectionId){

				if(confirm($j.Avaya.Error.SmartDock.areYouSureCollection)) {
				
				$j.Avaya.global.Tracking.clickEvent("SD-COLLECTION_DELETE");
				
					    var oSmartDock = new SmartDock();
					
				oSmartDock.DeleteCollection(collectionId, function(params) {
			                $customSelect.find(':selected').remove();
							self.customSelect.updateList();
						itemManager.populate(); 

						if($customSelect.find('option').length == 3){
						_addCollection($j.Avaya.Error.SmartDock.currentCollection);
						} else {
					_getCollection($customSelect.val().split('_')[1], function() {
						// TEMP: make it jump twice because otherwise it won't just go to zero
						$j.Avaya.global.SmartDock.customSelect.jumpToIndex(3);										   
						$j.Avaya.global.SmartDock.customSelect.jumpToIndex(0);										   
					});
						}
						
						$content.find("ul.selectList li").each(function(){ 
						if($j(this).html() == $j.Avaya.Error.SmartDock.newCollection) {
								$j(this).addClass("divider");
							}
						});
						$sdCollection.removeClass("collections-" + Collections);
						Collections--;
                                                $sdCollection.addClass("collections-" + Collections);
				});
				}
				
		}
		
		function _renameCollection(collectionId,newName){
			$j.Avaya.global.Tracking.clickEvent("SD-COLLECTION_RENAME");
			
			var oSmartDock = new SmartDock();
			var selectParent = $customSelect.parents(".selectParent");
			var $label = selectParent.find("div.selectDisplay span");
		
		    //If the Collection Name is empty dont add it
			if (newName == "") {
			    return;
			}
                        if (newName.search(/[<>]/) != -1){
				newName = newName.replace(/</g, '&lt;').replace(/>/g, '&gt;');
				//self.statusIndicator.setValue($j.Avaya.Error.Form.illegalCharacter, true).show({top:67});
				//return false;
			}

			if (newName == this.currentCollectionName){
				$label.html(this.currentCollectionName);
				return false;
			}
			
                    if (newName != _checkCollectionNames(newName)){
				self.statusIndicator.setValue($j.Avaya.Error.SmartDock.collectionNameExists,true).show({top:67});
				$label.html(this.currentCollectionName);
				return false;
			}
			
		
		    //Instantiate the SmartDock
			var oSmartDock = new SmartDock();
			
			//Check for Explicit language and Collection Name Exists
			var msg = oSmartDock.CheckExplicitLanguage(newName, function(response) {
			    var ErrorMessage = response.result;
			    if (ErrorMessage != "") {
			        self.statusIndicator.setValue(ErrorMessage, 1).setHorizontal(50,265).show();
			        return;
			    } else {
			        var msg = oSmartDock.IsCollectionWithCollectionID(currentsmartDockId,collectionId,newName, function(response) {
			            var ErrorMessage = response.result;
			            if (ErrorMessage != "") {
			                self.statusIndicator.setValue(ErrorMessage, 1).setHorizontal(15,265).show();
			                return;
			            } else {
			                var _status = oSmartDock.RenameCollection(collectionId,newName, function(params){ 
			                    var index = _getCurrentIndex() || 0;
			                    self.customSelect.editOptionText(index,newName);
                                            self.customSelect.displaySpan.html(newName);	
			                    itemManager.populate();
			                });
			            }
			        });
			      }	
				
			  });    
		}
		
	
		function _deleteBookmark($target,collectionId,bookmarkId){
			$j.Avaya.global.ToolTip.killToolTip();
			if($j.Avaya.global.isRegistered) {
					var oSmartDock = new SmartDock();
				oSmartDock.DeleteBookMark(collectionId, bookmarkId, function(params) {
					
						$target.animate({left:-215},{duration:600,easing:'easeout',complete:function() {
							$target.remove();		
							$sdItems.jScrollPane(settings.scrollbar);
						}});	
					
					
				});
									
					} else {
				$target.animate({left:-215},{duration:600,easing:'easeout',complete:function() {
					$target.remove();		
					$sdItems.jScrollPane(settings.scrollbar);
				}});
				}
		}

        function _reorderBookmarks(){
			$j.Avaya.global.Tracking.clickEvent("SD-COLLECTION_REORDER");
            
			var bookmarkIdOrder = "";//"itemIdOrder=";
			$sdItems.find("div.item").each(function(index, itm) {
				bookmarkIdOrder += this.id + ",";
			});
			bookmarkIdOrder = bookmarkIdOrder.replace(/,$/, "");
			var oSmartDock = new SmartDock();
			var _status = oSmartDock.ReorderBookMark(currentCollection,bookmarkIdOrder, function(params){ 
			});
			/*
			$j.ajax({
				type:'GET',
				url:'/_assets/json/reorderBookmarks.js',
				data:'action=reorderbookmarks&collectionId='+ currentCollection + '&' + bookmarkIdOrder, 
				dataType: 'json',
				success: function(response){
					if (response.status==-1){
						alert(response.message);
					}
				}
			});*/
		}
		
		function _getBookmarkInfo(ids){
			var string = '';
			$j.ajax({
				type:'GET',
				url:'/_assets/json/getBookmark_'+ids+'.js',
				data:'action=getBookmarkInfo&bookmarkId='+ ids, 
				dataType: 'json',
				success:function(response){
					var bookmarks = response.bookmarks;
					for (var i=0;i<bookmarks.length;i++){
						string += _createItem({
							id: 'sdItem_'+bookmarks[i].id,
							type: bookmarks[i].type,
							copy: bookmarks[i].copy,
							img: bookmarks[i].images.small
						})
					}
				},
				error:function(){
					alert('Could not load Bookmarks');
				},
				complete:function(){
					$sdItems.html(string);
					self.initItems();
				}
			});
		} 
		
		
		this.addBookmark = function(tar, collectionId, pageInfo) {
		    var $target = $j(tar);

			$j.Avaya.global.Tracking.clickEvent("SD-BOOKMARK_ADD");
			
			if(
			   $j.Avaya.global.isRegistered || (window.XMLHttpRequest && !$j.Avaya.global.isRegistered && $j("#sd-items .item").length < settings.unregMaxItems)
				|| (!window.XMLHttpRequest && !$j.Avaya.global.isRegistered && $j("#sd-items .item").length < (settings.unregMaxItems - 2))
			) {
				
				if($target.attr('id')) {
					var id = $target.attr('id').split('-')[1];
					if(id == null || typeof id == "undefined") {
						id = $target.parents("div.item").attr("id");	
					}
				} else if ($target.hasClass('smartdock-add') && !$target.attr('id')){
					var id = $target.parents('div.item').attr('id');
				} 
					
					var itm, itmInfo;
					//Call to add item 
                  if($j.Avaya.global.isRegistered) {
						var collectionid = collectionId;

						    var oSmartDock = new SmartDock();
						var bookmarkId;
						var itemData = null;
                                                if($target.parents("#util-saveList").get(0) != null) {
						itemData = pageInfo;
					} else {
						    for (var i =0; i < contentlist.length;i++) {
						        if (contentlist[i].id == id) {
								    // bookmarkId = id;
								    bookmarkId = i;
                                    itemData = contentlist[i];
                                                                    break;
						        }
						    }   
						    for (var i =0; i < avayarecommends.length;i++) {
						        if (avayarecommends[i].id == id) {
								    // bookmarkId = id;
								    bookmarkId = i;
                                    itemData = avayarecommends[i];
                                    break;
						        }
						    }   
					}
					
				    var msg = oSmartDock.IsBookMarkExists(collectionid,itemData.url, function(response) {
                        var ErrorMessage = response.result;
                        if (ErrorMessage != "") {
                            self.statusIndicator.setValue(ErrorMessage,true).show({top:67});
                            return ;
                        } else {
	                    
					
						if (collectionid==currentCollection){
						    var itemAmount = $j("#sd-items").find('div.item').length;
							if (itemAmount < 35 ) {
						    oSmartDock.AddBookMark(collectionid,JSON.stringify(itemData),function(params){
								//if(typeof params.message != "undefined" && params.message == "") {
									itmInfo = params.result.content;
							itm = $j(_createItem(itmInfo));
								_appendItem(itm,itmInfo);
                                                                 new $j.Avaya.ToolTipTrigger(itm,{staticContent:'<p><strong>'+itmInfo.contentTypeDescription+'</strong><br />'+itmInfo.title+'</p><br /><p>'+itmInfo.description+'</p>',location:'NE',width:206, yOffset: 45, xOffset: -30, fixed:settings.isFixed});
								//} else {
								//	var msg = params.message || "error";
								//		self.statusIndicator.setValue(msg, 1).setHorizontal(50,265).show();
								//}
							});
							
                                                        } else {
							self.statusIndicator.setValue($j.Avaya.Error.SmartDock.exceedRegItemLimit,true).show({top:67});
							}
							} else {
								_getCollection(collectionid,function(){
								self.customSelect.jumpToIndex(_getCurrentIndex());
                                                                var itemAmount = $j("#sd-items").find('div.item').length;
								if (itemAmount < 35 ) {
								oSmartDock.AddBookMark(collectionid,JSON.stringify(itemData),function(params){
                                  //if(typeof params.message != "undefined" && params.message == "") {
									itmInfo = params.result.content;
									
									itm = $j(_createItem(itmInfo));
									_appendItem(itm,itmInfo);
									new $j.Avaya.ToolTipTrigger(itm,{staticContent:'<p>'+itmInfo.description+'</p>',location:'NE',width:214, yOffset: 15, xOffset: -70, fixed:settings.isFixed, canLock:true});
									//} else {
									//	var msg = params.message || "error";
									//	self.statusIndicator.setValue(msg, 1).setHorizontal(15,265).show();
									//}
								});

                                                               } else {
								self.statusIndicator.setValue($j.Avaya.Error.SmartDock.exceedRegItemLimit,true).show({top:67});
								}
					});
						}  
                       }
				  });
					} else {
						var itmData = null;
					if (document.getElementById(id)){
						self.statusIndicator.setValue($j.Avaya.Error.SmartDock.duplicateItemExists, 1).setHorizontal(15,265).show({top:67});
					} else {
											
						if(tar == "flash") {
							itmData = pageInfo;
						} else if($target.parents("#util-saveList").get(0) != null) {
							itmData = pageInfo;				
						} else {
						for (var i =0; i < contentlist.length;i++) {
						    if (contentlist[i].id == id) {
								itmData = contentlist[i];
									break;
							}
						}
						}
						
						itmInfo = itmData;
							itm = $j(_createItem(itmInfo));
							
						new $j.Avaya.ToolTipTrigger(itm,{staticContent:'<p>'+itmInfo.description+'</p>',location:'NE',width:214, yOffset: 15, xOffset: -70, fixed:settings.isFixed, canLock:true});
						itm.data("itmInfo", JSON.stringify(itmData));
							// TEMP: put in function
							itm.css({left: 400});
							itm.animate({left: 0}, 600);

						self.statusIndicator.setValue($j.Avaya.Error.SmartDock.registerToSave, 1).setHorizontal(-200,265).show();

							var $sdItems = $j("#sd-items");
							$sdItems.prepend(itm);
							
						try {
							$sdItems.jScrollPane(settings.scrollbar);
							// when the welcome screen is open this line fails in ie6
						} catch(e) {}
							$sdItems.sortable("destroy");
							$sdItems.sortable(settings.sortableSettings);
							
						
							if(!$j.Avaya.global.isRegistered && settings.dontShowAgain == false) {
								$j.Avaya.global.SmartDock.show();
								_showWelcome();			
							}
					}
						}
				
			} else if(!$j.Avaya.global.isRegistered && $j("#sd-items .item").length == (settings.unregMaxItems - 2) && !window.XMLHttpRequest) {
				self.statusIndicator.setValue($j.Avaya.Error.SmartDock.exceedItemLimitGeneric, 1).setHorizontal(15,265).show();	
			} else if(!$j.Avaya.global.isRegistered && $j("#sd-items .item").length == settings.unregMaxItems) {
				self.statusIndicator.setValue($j.Avaya.Error.SmartDock.exceedItemLimit, 1).setHorizontal(15,265).show();	
			}
		}
		
		//returns index
		function _getCurrentIndex(){
			var index;
			$customSelect.find('option').each(function(i){
				if (this.value == 'collection_'+currentCollection){
					index= i;
					return false;
				}										
			});
			
			return index;
		}
		
		//accepts string, returns truncated string
		function _truncate(string){
			
			if(typeof string != "undefined") {
			if (string.length > $j.Avaya.Item.truncate)
			{
				return string.substr(0, $j.Avaya.Item.truncate) + '...';
			}
			
			return string;
			} else {
			return "";
			}
		}
		
		function _appendItem(item,info){
			item.css({left: 400});
			item.animate({left: 0}, 600);

			if ((!$smartDock.data('isOpen') || $smartDock.data('isOpen')==0)){
				self.statusIndicator.setValue('Item added.', 1).setHorizontal(-200,265).show();
			}

			var $sdItems = $j("#sd-items");
			$sdItems.prepend(item);
			$sdItems.jScrollPane(settings.scrollbar);
			
			$sdItems.sortable("destroy");
			$sdItems.sortable(settings.sortableSettings);
			
		}
		
		function saveUnregisteredData() {
			var serialized = "";
			// FORMAT: BOOKMARK***BOOKMARK***BOOKMARK***BOOKMARK***BOOKMARK***			
			var $items = $j("#sd-items div.item");
			
			$j("#sd-items div.item").each(function(index, itm) {
				serialized += $j(itm).data("itmInfo");
				if($items.length != index ) {
					serialized += "***";
				}
			});
			
			$j.cookie("dontShowAgain", settings.dontShowAgain, {path: "/", expires: 100 });

			var maxCookieSize = 2000;

			//$j.cookie(settings.cookieName, "overflow");
			var i = 0;
			
			var j = 0;
			while($j.cookie(settings.cookieName + j) != null) {
				$j.cookie(settings.cookieName + j, "");
				j++;
			}
			
			if(serialized.length < maxCookieSize) {
				$j.cookie(settings.cookieName + "0", serialized);
			} else {
			while(serialized.length >= maxCookieSize) {
				$j.cookie(settings.cookieName + i, serialized.substring(0,maxCookieSize));
				serialized = serialized.slice(maxCookieSize, serialized.length);
				i++;
				
				if(serialized.length < maxCookieSize) {
					$j.cookie(settings.cookieName + i, serialized);
				}
			}
			}
		}

		// private
		function loadUnregisteredData() {
			if($j.cookie(settings.cookieName + 0) != null) {

				var i = 0;
				serialized = "";
				
				while($j.cookie(settings.cookieName + i) != null) {
					serialized += $j.cookie(settings.cookieName + i);
					i++;
				}
				
				var deserialized = serialized;

				var itmArr = deserialized.split("***");
				if(itmArr == "" || itmArr == null) {
					itmArr = [];	
				}
	
				return {
					itms: itmArr
				}
			} else {
				return null;	
			}
		}

		var panels = {
			welcome: new Panel({
				height: 571,
				top: 5,
				toggle: $j("#sd-header").add("#sd-footer").add("#sd-content"),
				name: "welcome"
			}),
			share: new Panel({		
				height: 490,
				top: 50,
				toggle: $j("#sd-content"),
				name: "share"
			})
		}	
		
		function Panel(options) {
			var settings = $j.extend({
				height: 0,
				top: 0,
				$container: $j("#smartDock"),
				toggle: null,
				name: ""
			},options);	
			
			this.show = function (params) {
				$j("#sd-loading").show();
				$j("#sd-panel").remove();
				settings.$container.append('<div id="sd-panel" class="'+settings.name+'"></div>');
				var $panel = $j("#sd-panel");
				$panel.css({height: settings.height, top: settings.top});

				settings.toggle.hide();
				
				setTimeout(function() {
					$j("#sd-loading").hide();	
					$panel.html(params.val);
					if(params.callback) {
						params.callback();
					}
				}, 500);
			}
			
			this.hide = function(params) {
				setTimeout(function() {
					$j("#sd-panel").remove();
					settings.toggle.show();
				}, 10);
				if(params && params.callback) { params.callback(); }				
			}
		}
		
		
		this.statusIndicator = {
			value : '',
			defaultStart:20,
			defaultEnd:255,
			maxWidth:300,
			
			init:function(){
				this.element=$j('#status-indicator');
				
				this.element.html('<div class="top-outer"><div class="top-inner"><div class="content"></div></div></div><div class="bottom-outer"><div class="bottom-inner"></div></div>');
				this.content = this.element.find('div.content');
				this.startingX = this.defaultStart;
				this.endingX = this.defaultEnd;
				this.top = 67;
				this.left = -250;
			},
			
			showTimeout:0,
			hideTimeout:0,
			
			abruptHide: function() {
				this.cancelTimeout();
				this.hide();
				this.element.css({left: -250});
			},
			
			cancelTimeout: function() {
				clearTimeout(this.showTimeout);
				clearTimeout(this.hideTimeout);
			},
			
			hide:function(){
				var self=this;
				this.element.css({left:self.startingX,zIndex:1,visibility:'hidden'});
				$j.Avaya.global.ToolTip.unlockToolTip();
				return this;
			},
			
			show:function(params){
				var self=this;
				
				if ($j('#mainNag').get(0)){
					$j('#mainNag').remove();
				}
				
				var settings = $j.extend({
					hide: 3000,
					top: self.top,
					delay: 0,
					endPos:self.endingX,
					bouncePos:300,
					duration:500,
					bounceDuration: 700
				}, params);
				
				clearTimeout(this.hideTimeout);
				$j.Avaya.global.ToolTip.lockToolTip();
				
				this.showTimeout = setTimeout(function(){
						self.element.css({top: settings.top, visibility: 'visible' });
						self.element.animate({left:settings.bouncePos},{duration:settings.duration,easing:'easein',complete:function(){self.element.css({zIndex:3})}})
									.animate({left:settings.endPos},{duration:settings.bounceDuration,easing:'bounceout'});

					self.hideTimeout = setTimeout(function(){self.hide()},settings.hide);
				},settings.delay);
				
				return this;
			},
			
			setValue:function(val, manual){
				this.value = val;
				var html = "";

				if(manual == true) {
					html = val;
				} else {
				var words = this.value.split(' ');
				var firstLine = Math.ceil(words.length/2);
				
					html = '<p>';
				for (var i=0;i<words.length;i++){
					html += ' '+words[i];
					if (i==firstLine-1){
						html += '</p><p>';
					}
					if (i==words.length-1){
						html += '</p>';
					}
				}
				}
				this.content.html(html);

				//Setting the width of the status indicator according to the content 
				$j('#page').append('<div id="tempStatusHolder"><div class="content"></div></div>');
				var width = $j('#tempStatusHolder').find('div.content').html(val).width() + 52;
				
				if (width > this.maxWidth){
					this.element.width(this.maxWidth);
				} else {
					this.element.width(width);
				}
				
				$j('#tempStatusHolder').remove();
				
				return this;
			},
			
			setHorizontal: function(starting,ending){
				this.startingX = starting;
				this.endingX = ending;
				
				return this;
			},
			
			reset:function(){
				this.startingX = this.defaultStart;
				this.endingX = this.defaultEnd;
				this.setValue('');
				this.element.css({top: this.top});
				
				return this;
			}
		}		
		this.statusIndicator.init();
		
		function ItemManager() {
				
		/***Initialize***/	
			if (!$j('#item-manager').get(0)){
				$j('body').append('<div id="item-manager"><ul></ul></div>');
			}
			
			var _this = this;
			var wrapper = $j('#item-manager');
			var list = wrapper.find('ul');
			var target = false;
			var isOpen = false;
			var multipleCollections = false;

		/***Add events***/	
			$j(document).click(function(e){
				if (isOpen){
					_this.hide();
				}
			});
			
			$j('a.smartdock-add').live('click',function(e){
				e.preventDefault();
				target = $j(e.target);
				wrapper.find("li").each(function() {
					$j(this).show();
				});
				
				//If there is only 1 collection, the dropdown does not show and the item is added to that one collection
				if (multipleCollections && !target.hasClass("inCollection")){
					_this.show(target);
				} else if(multipleCollections && target.hasClass("inCollection") ) {
					var currentCollection = $j("#sd-content div.selectDisplay span").html();
					wrapper.find("li").each(function() {				
						if(currentCollection == $j(this).find("a").html()) {
							$j(this).hide();
						}
					});
					
					_this.show(target);
				} else {
					_this.addToCollection(e);
				}
			});
			
			list.find('a').live('click',function(e){
				e.preventDefault();
				_this.addToCollection(e);
			});
			
		/***Public methods***/
			this.show = function(){
				this.hide();
				position();
				wrapper.slideDown('fast',function(){
					isOpen = true;
				});
			}
			
			this.hide = function(){
				wrapper.css({display:'none'});
				isOpen = false;
			}
			
			this.addToCollection = function(e){
				var collectionId = null;
				targetcollectionid = e.target.href.split('_')[e.target.href.split('_').length-1]
				$j(e.target).hasClass("smartdock-add") ? collectionId = currentCollection : collectionId = targetcollectionid;
				self.addBookmark(target, collectionId);
			}
		
			this.populate = function(){
				var string = '';
				var select = $j('#sd-content').find('select');
				var count = 0;
				select.find('option').each(function(i){
					if (this.value.indexOf('ignore')==-1){
						string += '<li><a href="#'+this.value+'">'+this.innerHTML+'</a></li>';
						count++;
					}
				});
				
				count>1 ? multipleCollections = true : multipleCollections = false;
				list.html(string);
				list.find('a').eq(0).addClass('first');
			}
			
		/***Private methods***/	
			
			function position(){
				wrapper.css({
					top:target.offset().top + target.outerHeight(),
					left:target.offset().left + target.outerWidth() - wrapper.outerWidth()
				});				
			}
			
			this.populate();
		}

		
		function mainNagMessage(){
			
			var mainNag = $j('<div id="mainNag"><div class="wrapper"><div class="content">'+$j.Avaya.Error.SmartDock.mainNagMessage+'</div></div></div>');
			$smartDock.append(mainNag);
			
			var content = mainNag.find('div.content');
			
			$smartDock.click(function(){
				mainNag.remove();
			});
			
			mainNag.animate({left:350},{
						duration:300,
						easing:'easeout'
					}).animate({left:263},{
						duration:500,
						easing:'bounceout',
						complete:function(){
							setTimeout(function(){
								mainNag.animate({left:-200},{
									duration:500,
									easing:'easein',
									complete: function(){
										mainNag.remove();
									}
								});	
							},6000);
						}
					});
		}
		
				if($j.cookie("wasOpened") != 1) {
					setTimeout(function(){
						new mainNagMessage();
					},1500);
			}
		
	}
