var CaringFYP =
{
	start: function()
	{
		
		// prep twidlers:
		
		CaringFYP.prepTwids();

		//do accordions
		Site.start();

		//fix ie7 eolas
		CaringFYP.fix_eolas_tags();
		
			
		//preload images
		var aPreLoad	= new Array();
		var aPreLoadi	= 0;

		//do rollover
		$$('img','input').each(function(el){

			if(el.hasClass('roll'))
			{
				//let's preload
				aPreLoad[aPreLoadi] = new Image();
				aPreLoad[aPreLoadi].src = el.src.replace(el.src.replace(/(\.[^.]*)$/, "_h$1"));
				aPreLoadi++;

				el.addEvent('mouseover',function(){
					this.setAttribute('src',this.src.replace(/(\.[^.]*)$/, "_h$1"));
				});

				el.addEvent('mouseout',function(){
				this.setAttribute('src',this.src.replace(/_h(\.[^.]*)$/, "$1"));

				});
			}
		});

		//external links
    	$$('a').each(function(el)
		{
			if(el.hasClass('external'))
			{
				el.setAttribute('target','CaringFYP-external');
			}
			if(el.hasClass('t-print'))
			{

				el.addEvent('click',function(){
				if(window.webkit && !window.webkit420)
				{
					alert("For optimal printing in Safari, please reload page and open all toggles before printing.");
				}
				
				window.print();
				return false;
				});
			}
		});
		
		//nav_arrows 
		$$('ul').each(function(el)
		{
			if(el.hasClass('toc_nav_inner')) {
				var an = el.getElementsByTagName('li') 
				for (var i = 0; i < an.length; i++ ){
					if (an[i].getElementsByTagName('a').length == 0) {
						an[i].className = 'current_subsection';
						//an[i].addClass('current_subsection');
					}
				}
			}
		});
		
		//memory clean up
		delete aPreLoad;

	},
	
	ms_wrap: function(ms_node)
	{
		// Transform element `ms_node' and subsequent
		// non-ms_node type siblings into a twidler
		//var ms_container = document.createElement('DIV');
		var ms_toggler_content = document.createElement('DIV');
		var ms_tog_wrap = document.createElement('DIV');
		var ms_container = ms_node.cloneNode(false);
		//alert(ms_node.innerHTML);
		var w_node = ms_node.getElementsByTagName('H2')[0].cloneNode(true);
		for (var j = 0; j < ms_node.childNodes.length; j++) {
			if (ms_node.childNodes[j].tagName != 'H2') {
				ms_tog_wrap.appendChild(ms_node.childNodes[j].cloneNode(true));
			}
		}
		
		w_node.className = 'toggler';
		w_node.innerHTML = '<span>' + w_node.innerHTML + '</span>';
		//ms_container.className = 'question';
		ms_toggler_content.className = 'toggler_content';
		ms_tog_wrap.className = 'tog_wrap';	
		ms_container.appendChild(w_node);
		
		ms_container.appendChild(ms_toggler_content);
		ms_toggler_content.appendChild(ms_tog_wrap);
		return ms_container;
	},
	
	prepTwids: function() {
		
		var twidlers = $('main_content').getElementsByClassName('question');
		for (var i = 0; i < twidlers.length; i++) {
			var wrapped = CaringFYP.ms_wrap(twidlers[i]);
			$('main_content').replaceChild(wrapped, twidlers[i]);
		}
		
//		var ms_lastdiv = '';
//		var ms_content = document.getElementById('main_content').cloneNode(true);
//		var ms_new_content = document.getElementById('main_content').cloneNode(false);
//		var x = ms_content.childNodes.length;
////		alert(x);
//		for (i = 0; i < x; i++) {
//			//alert(i + ' ' + ms_content.childNodes[i].nodeType + ' ' + ms_content.childNodes[i].tagName+ ' ' + ms_content.childNodes[i].childNodes.length + ' ' + ms_content.childNodes[i].innerHTML);
//			if (ms_content.childNodes[i] && ms_content.childNodes[i].nodeType !=3) {
//			//	alert(i + ' ' + ms_content.childNodes[i].nodeType + ' ' + ms_content.childNodes[i].tagName + ' ' + ms_content.childNodes[i].innerHTML);
//				if (ms_content.childNodes[i].tagName == 'H2') {
//					//alert('Found twid at ' + i);
//					if (ms_lastdiv != '') {ms_new_content.appendChild(ms_lastdiv);}
//					ms_lastdiv = CaringFYP.ms_wrap(ms_content.childNodes[i]);
//					//	(ms_lastdiv.className);
//				} else if (ms_lastdiv == '') {
//					ms_new_content.appendChild(ms_content.childNodes[i]);
//				} else {
//					ms_lastdiv.getElementsByTagName('DIV')[0].getElementsByTagName('DIV')[0].appendChild(ms_content.childNodes[i]);
//				}
//			}
//			
//		}
//		if (ms_lastdiv != '') {ms_new_content.appendChild(ms_lastdiv);}
// IE6/7: all content is visible this way, but QG doesn't work (and generates JS error in IE7):
//		document.body.getElementById('wrapper').replaceChild(ms_new_content,document.getElementById('main_content'));
// IE6/7: QG works, but not all content is visible:
//		document.getElementById('wrapper').replaceChild(ms_new_content,document.getElementById('main_content'));
		if (window.ie) {
			//alert('detected ie');
		}
		qgGo(qg_loc);
	},

	fix_eolas_tags: function()
	{
		$$('object','embed').each(function(el){

				//set parent object for brevity
				parentObj = el.parentNode;

				//grab the html inside of the element before removing it from the DOM
				newHTML = parentObj.innerHTML;

				//remove element from the DOM
				parentObj.removeChild(el);

				//stick the element right back in, but as a new object
				parentObj.innerHTML = newHTML;
		});
	}

};

// ---

window.addEvent('domready', CaringFYP.start);
