// story.js

// Story Constructor
var Story = {};

Story._storyId;

Story.setStoryId = function (storyId) {

	if (!storyId) {
		storyId = $('storyId').value; 
	}
	
	Story._storyId = storyId;
}

Story.getStoryId = function () {
	return Story._storyId;
} 

Story.getStoryElement = function () {
	return $('content');
}

Story.getStoryShadowElement = function () {
	return $('contentShadow');
}

Story.hideContentToolBar = function () {

	//Hide toolbar since it blocks the search results
 	var contentToolBar			= $('contentToolBar');
 	if (contentToolBar) {
 		contentToolBar.style.display = 'none';
 	}
}

Story.previewStory = function () {

	//Data elements
	var storyHeaderElm 		= $('story_header');
	var storyHeader			= storyHeaderElm.value;
	var storyTextElm		= $('story_text');
	var storyText			= storyTextElm.value;
	var authorFirstNameElm	= $('author_first_name');
	var authorFirstName		= authorFirstNameElm.value;	
	var authorLastNameElm	= $('author_last_name');
	var authorLastName		= authorLastNameElm.value;	
	var todaysDate			= getTodaysDate();
	var storyBody			= '';

	//Container Elements	
	var storyFormContainer	= $('storyFormContainer');
	var storyPreviewElm		= $('storyPreview');

	//Replace new lines with HTML line breaks
	storyText = storyText.gsub("\n", '<br/>');
	
	//Compensate for difference in location
	storyText = storyText.gsub('src="uploads', 'src="../uploads');	
	storyText = storyText.gsub('href="uploads', 'href="../uploads');	
		
	//Header
	storyBody += '<h1 class="hentry entry">' + storyHeader + '</h1>';
	
	//By Line
	storyBody += '<span class="post-info">';
	storyBody += '<span id="byline" class="vcard author">by ' + authorFirstName + ' ' + authorLastName;
	storyBody += '</span>&nbsp;'
	storyBody += '<span class="published" >Posted: ' + todaysDate + '</span>';
	storyBody += '</span><br/><br/>';
	
	//Story Text
	storyBody += '<div class="entry-content">';
	storyBody += storyText;
	storyBody += '</div>';
	storyBody += '&nbsp;';
	storyBody += '<br/>';	
	
	//Put It Altogether
	storyPreviewElm.innerHTML = storyBody;
	storyPreviewElm.toggle();
	storyFormContainer.toggle();

}


Story.displayStorySummary = function (element) {

	var elementObj	= $(element);
	var storyId		= elementObj.id;
	
	//Create balloon box object
	var articleSummary = new BalloonBox;

	//Set position as 
	var position 	= Position.page(elementObj);
	
	//Adjust x position to the left to prevent obscuring element
	position[0] -= 5;
	position[1] -= 10;
	
	//Set data for the BalloonBox	
	articleSummary.setHeaderText('Fetching summary');
	articleSummary.setBodyText('Fetching the summary of the article');
	articleSummary.setPosition(position[0], position[1]);
	articleSummary.setBalloonWidth(300);
	articleSummary.setHandleOrientation('east');
	articleSummary.setBalloonType('information');
	
	//Display BalloonBox
	articleSummary.displayBalloonBox();
	
	
	Story.getSummaryText(storyId);

}

Story.getSummaryText = function (storyId, response) {
	
	if (response){ 
		
		//Format data from XML
		var summaryText = new Array();
		summaryText[0] 	= response[0].childNodes[0].childNodes[0].data; 
		summaryText[1] 	= response[1].childNodes[0].childNodes[0].data; 
		summaryText[2]	= response[2].childNodes[0].childNodes[0].data; 

		Story.displaySummaryBalloon(summaryText);
		
	} else {

		//Fetch XML
		var url  = 'cgi-bin/ajax.cgi?action=get_article_summary&method=getSummaryText&query=' + storyId;    
		loadXMLDoc(url);
	}

}


Story.displaySummaryBalloon = function (summaryText) {

	var elementId	= $(summaryText[0]);
	
	//Create balloon box object
	var storySummary = new BalloonBox;

	//Set position as 
	var position 	= Position.page(elementId);
	
	//Adjust x position to the left to prevent obscuring element
	position[0] -= 5;
	position[1] -= 10;
	
	//Set data for the BalloonBox	
	storySummary.setHeaderText(summaryText[1]);
	storySummary.setBodyText(summaryText[2]);
	storySummary.setPosition(position[0], position[1]);
	storySummary.setBalloonWidth(300);
	storySummary.setHandleOrientation('east');
	storySummary.setBalloonType('information');
	
	//Display BalloonBox
	storySummary.displayBalloonBox();

}

Story.insertStory = function () {

}

Story.editStory = function () {

}

Story.updateStory = function () {

}

Story.deleteStory = function () {

}

