// Create an object to hold all functiions and variables (fp stands for flat page)
viewMore = {

/************************************* CSS Classes ********************************************************/
	// Using a dynamic class AND a static class allows us to use a 'descendant' selector and show 
	// 2 different versions of the element (static and dynamic)
	dynamicClass:'viewMore',
	// Used for the image popup
	hideClass:'hide', 
	linkClass:'read-more-link', 
	//hiddenContentContainer:'hidden_content',
  	containerId:'view_more',

// Set variables for link text
	closeLabel : 'read less', //[-] Read More
	openLabel : 'read more', //...[+] Read Less
	closeImage : null,
	openImage : null,
	imageHeight : null,
	imageWidth: null,
	//global parameters

  	init:function()
  	{
		if(!document.getElementById || !document.createTextNode){return;}
		container = document.getElementById(viewMore.containerId);
		
		if(container)
		{
			var _link = helper.getElementsByClass(viewMore.dynamicClass);
			for(var i=0; i<_link.length; i++)
			{
			
				// +++++++++++++++++++++++  Build toggle link
				var toggleLink=document.createElement('a');
				// Use the setAttribute method to set the href attribute to '#'
				toggleLink.setAttribute('href','#');
				toggleLink.setAttribute('class',viewMore.linkClass);
				// Set text of link
				if(viewMore.openLabel)
					toggleLink.innerHTML=viewMore.openLabel;
				
				// Check if toggle link is an image
				if(viewMore.openImage) {
					var image = document.createElement('img');	
					image.setAttribute('src',viewMore.openImage);
					image.setAttribute('height',viewMore.imageHeight);
					image.setAttribute('width',viewMore.imageWidth);
					toggleLink.appendChild(image);
				}
					
				// Add an event to the link (closewindo event)
				helper.addEvent(toggleLink,'click',viewMore.toggleDisplay,false);
				helper.fixSafari(toggleLink);
				//_link[i].parentNode.insertBefore(toggleLink,_link[i]); // Insert text before hidden link.
				_link[i].parentNode.insertBefore(toggleLink,_link[i].nextSibling); // Insert text after hidden link.

				// +++++++++++++++++++++++  Apply hide class
				 helper.cssjs('add', _link[i], viewMore.hideClass);
			}
		};
  	},
	
	toggleDisplay:function(e) {
		
		var linkElement = helper.getTarget(e);
		
		var divElement = linkElement.previousSibling;
		
		// If divElement is not set, we're likly dealing with an image
		if(!divElement) {

			if(linkElement.getAttribute('src') == viewMore.openImage) {
				linkElement.setAttribute('src',viewMore.closeImage);
				helper.cssjs('remove', linkElement.parentNode.previousSibling, 'hide');
				//linkElement.innerHTML = viewMore.closeLabel;
			}
			else {
				helper.cssjs('add', linkElement.parentNode.previousSibling, 'hide');
				linkElement.setAttribute('src',viewMore.openImage);
				//linkElement.innerHTML = viewMore.openLabel;
			}
		}
		else
		{
			if(helper.cssjs('check', divElement, viewMore.hideClass)) {
				helper.cssjs('remove', divElement, 'hide');
				linkElement.innerHTML = viewMore.closeLabel;
			}
			else {
				helper.cssjs('add', divElement, 'hide');
				linkElement.innerHTML = viewMore.openLabel;
			}		
		}
		helper.cancelClick(e);
	}
}
helper.addEvent(window, 'load', viewMore.init, false);
