/*	NFA 2006
	Scripts
	Created 120106 by dansmith
*/

var g_enlargement;
var g_vidwin;
var g_image_caption_line_height_px = 15;
var g_image_caption_letters_per_line = 45;

window.onload = init;

function init()
{	
	if (document.getElementById)
	{	
		enhance_image_hyperlinks();
		upgrade_video_links();
	}
}

function MM_openBrWindow(theURL,winName,features) 
{ 
	//v2.0
	window.open(theURL,winName,features);
}

function replace(string,text,by) {
// Replaces text with by in string
    var strLength = string.length, txtLength = text.length;
    if ((strLength == 0) || (txtLength == 0)) return string;

    var i = string.indexOf(text);
    if ((!i) && (text != string.substring(0,txtLength))) return string;
    if (i == -1) return string;

    var newstr = string.substring(0,i) + by;

    if (i+txtLength < strLength)
        newstr += replace(string.substring(i+txtLength,strLength),text,by);

    return newstr;
}

function enhance_image_hyperlinks()
{
	var images_wrapper = document.getElementById('images-wrap');	

	// process all hyperlinks
	var image_enlargement_links = images_wrapper.getElementsByTagName('a');
	// and captions
	var image_captions = images_wrapper.getElementsByTagName('dd');

	for (var i=0; i<image_enlargement_links.length; i++)
	{
		var this_link_href = image_enlargement_links[i].getAttribute('href');
		
		// width, height, and src
		var enlargement_width = this_link_href.substring(this_link_href.length-11, this_link_href.length-8);
		var enlargement_height = this_link_href.substring(this_link_href.length-7, this_link_href.length-4);		
		var enlargement_win_height = enlargement_height;
		
		var enlargement_src = this_link_href;
		var enlargement_caption = image_captions[i].getElementsByTagName('p')[0];
		
		enlargement_win_width = (parseInt(enlargement_width) + 0); // was 10px for image border + 10px for page margin
		
		if (enlargement_caption)
		{
		
			enlargement_caption = enlargement_caption.innerHTML;	

			// encode entities which break the JS new window output																																 
			enlargement_caption = enlargement_caption.replace(/\(/g,"&#40;");
			enlargement_caption = enlargement_caption.replace(/\)/g,"&#41;");
			enlargement_caption = enlargement_caption.replace(/\'/g,"&#8217;");			
					
			if ((enlargement_caption != '') && (enlargement_caption != '&nbsp;') && (enlargement_caption != '<p>&nbsp;</p>'))
			{
				var number_of_lines_in_caption = parseFloat(enlargement_caption.length / g_image_caption_letters_per_line);
				
				// Quick and dirty logic to calculate extra height reqd for caption
				
				if (number_of_lines_in_caption < 1)
				{
					number_of_lines_in_caption = 1;
				}
				else if ((number_of_lines_in_caption > 1) && (number_of_lines_in_caption < 2))
				{
					number_of_lines_in_caption = 2;
				}
				else if ((number_of_lines_in_caption > 2) && (number_of_lines_in_caption < 3))
				{
					number_of_lines_in_caption = 3;
				}			
				else if ((number_of_lines_in_caption > 3) && (number_of_lines_in_caption < 4))
				{
					number_of_lines_in_caption = 4;
				}				
				else if ((number_of_lines_in_caption > 4) && (number_of_lines_in_caption < 5))
				{
					number_of_lines_in_caption = 5;
				}									
				
				//alert(enlargement_caption.length + ', ' + g_image_caption_letters_per_line + ', ' + number_of_lines_in_caption);
				enlargement_win_height = ((parseInt(enlargement_height)) + (number_of_lines_in_caption * g_image_caption_line_height_px) + 10);							
			}
		}

		// image alt text
		var image_enlargement_images = images_wrapper.getElementsByTagName('img');
		var this_image = image_enlargement_images[i];				
		var enlargement_alt_pre = this_image.getAttribute('alt');		
		
		// Make ' and " safe to use
		enlargement_alt = replace(enlargement_alt_pre, "'", "&quot;");
		enlargement_alt = replace(enlargement_alt, '"', '&quot;');
		
		// add js enlargement function to hyperlink					
		// failed in IE: image_enlargement_links[i].setAttribute('onclick', "enlarge('" + enlargement_src + "', '" + enlargement_width + "', '" + enlargement_height + "', '" + enlargement_alt + "'); return false");		
		
		image_enlargement_links[i].setAttribute('href', "javascript:enlarge('" + enlargement_src + "', '" + enlargement_width + "', '" + enlargement_height + "', '" + enlargement_win_width + "', '" + enlargement_win_height + "', '" + enlargement_alt + "', '" + enlargement_caption + "')");	
		image_enlargement_links[i].removeAttribute('target');
	}
}

function upgrade_video_links()
{
	var video_list = document.getElementById('video');
	
	if (video_list)
	{
		var video_list_links = video_list.getElementsByTagName('a');
		
		for (var i=0; i<video_list_links.length; i++)
		{
			// a.setAttribute('onclick'.. not in IE
			video_list_links[i].onclick = function()
			{
				setTimeout("remove_back_to_record_information_link()",1000)									
				g_vidwin = window.open(this.href, 'video', 'width=610,height=400,resizable'); return false;	
			
				
			}
		}
	}
}

function remove_back_to_record_information_link()
{
	// g_vidwin.onload = alert(g_vidwin.document.body.getElementsByTagName('table')[1].getElementsByTagName('td')[0].innerHTML);
}

function enlarge(enlargement_src, enlargement_width, enlargement_height, enlargement_win_width, enlargement_win_height, enlargement_alt, enlargement_caption)
{
	// close window if already open, so that new window can be generated at correct size
	if (g_enlargement && g_enlargement.open && !g_enlargement.closed)
	{
		// var converted to global else test fails
		g_enlargement.close();
	}
	
	var enlargement_params = ('height=' + enlargement_win_height + ', width=' + enlargement_win_width);	
	
	// open new window to show enlargement
	g_enlargement = window.open('', 'enlargement', enlargement_params);	
	
	// write to enlargement document rather than link directly to image, 
	// to allow application of css to collapse page padding/margins
	
	g_enlargement_str = ('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">');
	g_enlargement_str += ('<head>');
	g_enlargement_str += ('	<title>Enlargement</title>');
	g_enlargement_str += ('</head>');
	g_enlargement_str += ('<body style="padding: 0; margin: 0; background-color: black;">');
	g_enlargement_str += ('	<img src="' + enlargement_src + '" width="' + enlargement_width + '" + height="' + enlargement_height + '" alt="Enlargement: ' + enlargement_alt + '">');
	
	if ((enlargement_caption != '') && (enlargement_caption != '&nbsp;') && (enlargement_caption != '<p>&nbsp;</p>'))
	{
		g_enlargement_str += ('	<p style="margin: 5px; font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; line-height: 12px; color: #999; text-align: center;">' + enlargement_caption + '</p>');
	}
	g_enlargement_str += ('</body>');
	g_enlargement_str += ('</HTML>');
	
	g_enlargement.document.write(g_enlargement_str);
	g_enlargement.document.title = enlargement_alt;
	g_enlargement.document.close();	
}
