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 = '' + w_node.innerHTML + ''; //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);