/*	
.-------------------------------------------------------------------------.
|                                                                         |
|  AUTHORS' UNIVERSE                                                      |
|  JS Framework "Ready" method                                            |
|  ---------------------------------------------------------------------  |
|  Runs crucial initialization methods, on a per-page basis, facilitated  |
|  by the browser DOM "page ready" event.                                 |
|                                                                         |
'-------------------------------------------------------------------------'
*/

jQuery(document).ready(
	function() {
	    // set font class on body element if @font-face is supported.
	    if (isFontFaceSupported()) jQuery("body").addClass("font");

	    // replace any checkboxes, if found, with styled replacements
	    framework.global.fn.replaceCheckboxes();

	    // global side nav
		jQuery(".nav>.nav-content>dl>dd>ul>li.disabled>a")
			.each(	function() {
						$(this).attr("title", "This feature is coming soon!");
					});

	    // setup onlick event for new journal css definition
	    jQuery("a.new-journal").click(function() { openWin('rwCreateJournal'); return false; });

	    // per-page initializations
	    switch (framework.prop.pageID.toLowerCase()) {
	        case "homepage":
	            break;

	        case "journal":
				jQuery(".hanging-menu>.hanging-menu-content>h4>a").bind("mouseover", framework.tooltips.fn.show);
				jQuery(".hanging-menu>.hanging-menu-content>h4>a").bind("mouseout", framework.tooltips.fn.hide);
	            break;
				
			case "journal-properties" : 
				// set up AJAX bindings for each journal and drafts within each
				jQuery("#" + framework.journalProperties.prop.defaultJournalClientID).bind("change", framework.journalProperties.fn.setDefaultJournal);
				jQuery("#journals-inner>ul>li>.tile>strong").bind("click", framework.journalProperties.fn.editJournalTitle);
				jQuery("#journals-inner>ul>li>.tile>textarea").bind("blur", framework.journalProperties.fn.updateJournalTitle);
				jQuery("#journals-inner>ul>li>.tile>ol>li.checkbox input[type=checkbox]").bind("change", framework.journalProperties.fn.checkboxUpdate);
				jQuery("#journals-inner>ul>li>.tile>ol>li.autosave select").bind("change", framework.journalProperties.fn.autosaveUpdate);
				jQuery("#journals-inner>ul>li>.tile>a.delete").bind("click", function(objEvent) { objEvent.preventDefault(); objEvent.stopPropagation(); framework.journalProperties.fn.showConfirmationDialog("journal", this); });
				jQuery("#journals-inner>ul>li>.drafts .drafts-inner>ol>li>a.delete").bind("click", function(objEvent) { objEvent.preventDefault(); objEvent.stopPropagation(); framework.journalProperties.fn.showConfirmationDialog("draft", this); });
				jQuery("#journals-inner>ul>li>.drafts .drafts-inner>ol>li>a[class!='delete']").bind("click", framework.journalProperties.fn.toggleDraftStatus);
				jQuery("#journals-confirmation>blockquote>a.no").bind("click", framework.journalProperties.fn.hideConfirmationDialog);

				var objJournals		= jQuery("#journals-inner>ul>li");		// find all <li> items inside of the main journals container (this will give us a list of how many journals the user has)
				
				// auto-scrollbar show/hide stuff
				if (objJournals.length) {
					// set journals container width so it will scroll horizontally instead of vertically
					framework.journalProperties.fn.setContainerSize();
					
					// do we have at least 4 journals?
					if (objJournals.length >= 4) {
						var objScrollElement									= jQuery("#journals").jScrollPane();
						
						framework.journalProperties.prop.mainScrollContainer	= objScrollElement.data("jsp");		// grab pointer to the API for this scroll container
					} else {
						jQuery("#journals").addClass("single-line");
					}
					
					for (var intCounter = 0; intCounter < objJournals.length; intCounter++) {
						var objDraftsElement		= jQuery(objJournals[intCounter]).find(".drafts");
						var objDraftsList			= jQuery(objDraftsElement).find("ol");
						var objDrafts				= jQuery(objDraftsList).find("li");
						var strListElementID		= jQuery(objDraftsList).attr("id");
						var objDraftScrollElement;
						
						if (objDrafts.length) {
							// set drafts container width so it will scroll horizontally instead of vertically
							framework.journalProperties.fn.setDraftContainerSize(objDraftsList);
							
							// do we have at least 4 drafts?  (if not, we don't need to scroll)
							if (objDrafts.length >= 4) {
								objDraftScrollElement		= jQuery(objDraftsElement).jScrollPane();
								
								// grab pointer to the API for this scroll container and push it onto our array so we can re-initialize it later if/when we remove items from it
								framework.journalProperties.prop.draftScrollContainers[strListElementID]	= objDraftScrollElement.data("jsp");
							} else {
								jQuery(objDraftsElement).addClass("single-line");
							}
						} else {
							jQuery(objDraftsElement).addClass("hidden");
						}
					}
				}
				break;
	    }
	}
);
