/* Featured box JS */
initFeatured = function() {
	var featuredDivs = document.getElementById('featuredBox').getElementsByTagName('div');
	for (i=0; i<featuredDivs.length; i++) {
		if (featuredDivs[i].className!='featuredBox active') featuredDivs[i].style.display = 'block';
	}
}

triggerFeatured = function(id) {
	var featuredDivs = document.getElementById('featuredBox').getElementsByTagName('div');
	for (i=0; i<featuredDivs.length; i++) {
		if (featuredDivs[i].className=='featuredBox active') featuredDivs[i].className=featuredDivs[i].className.replace(new RegExp(" active\\b"), "");
	}
	//featuredDivs[id-1].className+=" active";
    	document.getElementById(id).className+=" active";
	return false;
} 

/* Dropdowns for IE */

sfHover = function() {
	var sfEls = document.getElementById("navMain").getElementsByTagName("LI");
	for (var i=0; i<sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
			this.className+=" sfhover";
		}
		sfEls[i].onmouseout=function() {
			this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
		}
	}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

/* Stylesheet Switcher */

function setActiveStyleSheet(title) {
  var i, a, main;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
      a.disabled = true;
      if(a.getAttribute("title") == title) a.disabled = false;
    }
  }
}

function getActiveStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
  }
  return null;
}

function getPreferredStyleSheet() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
    if(a.getAttribute("rel").indexOf("style") != -1
       && a.getAttribute("rel").indexOf("alt") == -1
       && a.getAttribute("title")
       ) return a.getAttribute("title");
  }
  return null;
}

function createCookie(name,value,days) {
  if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
  var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
  }
  return null;
}

/* Onload and unonload functions */

window.onload = function(e) {
  var cookie = readCookie("style");
  var title = cookie ? cookie : getPreferredStyleSheet();
  setActiveStyleSheet(title);
	if (document.getElementById('featuredBox')) initFeatured();
}

window.onunload = function(e) {
  var title = getActiveStyleSheet();
  createCookie("style", title, 365);
}

var cookie = readCookie("style");
var title = cookie ? cookie : getPreferredStyleSheet();
setActiveStyleSheet(title);


//search field
function checkSrchString(fld, ev, arg) {
    //alert(whichFocus);
    if(whichFocus=="srch") {
        var charCode = (ev.charCode) ? ev.charCode : ((ev.which) ? ev.which : ev.keyCode);                       
        if(charCode==13){                              
            submitSrch(fld);                             
        }
    }
    else {
        return true;
    }
}   
             
function submitSrch(fld) {
   //var searchquery = trim(fld.value);                
   var searchquery = escape(trim(document.getElementById("txtQuery").value));
   //alert(searchquery);
    if (searchquery != '') {
        var aacnSearchQuery = "&txtQuery=&access=p&site=aacn_new&proxystylesheet=aacn&client=aacn&output=xml_no_dtd&ie=UTF-8&lr=lang_en&oe=UTF-8&proxyreload=1&aacn_query=&num=10&filter=1";
        window.location.href = "/DM/Search/AACNSearch.aspx?ResultsTarget=gmini.aacn.org&Action=aacnsearch.aspx&q=" + searchquery + aacnSearchQuery;
    }
    else {           
        return false;
    }   
}
function submitSrchX(fld) {
    var searchquery = trim(fld.value);                
    if (searchquery != '') {
        var aacnSearchQuery = "&txtQuery=&access=p&site=aacn_new&proxystylesheet=aacn&client=aacn&output=xml_no_dtd&ie=UTF-8&lr=lang_en&oe=UTF-8&proxyreload=1&aacn_query=&num=10&filter=1";
        window.location.href = "/DM/Search/AACNSearch.aspx?ResultsTarget=gmini.aacn.org&Action=aacnsearch.aspx&q=" + searchquery + aacnSearchQuery;
    }
    else {           
        return false;
    }   
}

//trim string
function ltrim(str) { 
    for(var k = 0; k < str.length && isWhitespace(str.charAt(k)); k++);
    return str.substring(k, str.length);
}
function rtrim(str) {
    for(var j=str.length-1; j>=0 && isWhitespace(str.charAt(j)) ; j--) ;
    return str.substring(0,j+1);
}
function trim(str) {
    //alert("trim: -" + ltrim(rtrim(str)) + "-");
    return ltrim(rtrim(str));
}
function isWhitespace(charToCheck) {
    var whitespaceChars = " \t\n\r\f";
    return (whitespaceChars.indexOf(charToCheck) != -1);
}

function checkSrchFocus() {
    if (whichFocus != "srch") {
        return true;
    }
    else {return false;}
}

var whichFocus="asdf";

function openSecurePage(url) {
    if (aacn_authenticated == "true") {
        window.open(url);
    }
    else {
        alert("Please log in to use this feature.");
    }
}


//code to automatically assign class to form elements.
/*
window.onload = function() { 
    var els = document.getElementsByTagName('input'); 
    for (var i=0; i < els.length ;i++ ){ 
        if ( els[i].getAttribute('type') ) { 
            if ( els[i].getAttribute('type') == "text" ) { 
                if(els[i].className) {                                     
                    //els[i].className = els[i].className + ' text '; 
                } 
                else {                                     
                    els[i].className = ' text '; 
                } 
            } 
            else if ( els[i].getAttribute('type') == "radio" ) { 
                if(els[i].className ) { 
                    //els[i].className = els[i].className + ' radio '; 
                } 
                else { 
                    els[i].className = ' radio '; 
                } 
            } 
            else if ( els[i].getAttribute('type') == "checkbox" ) { 
                if(els[i].className ) { 
                    //els[i].className = els[i].className + ' checkbox '; 
                } 
                else { 
                    els[i].className = ' checkbox '; 
                } 
            } 
            else { 
                if(els[i].className ) {
                    //els[i].className = els[i].className + ' button ' ; 
                } 
                else { 
                    els[i].className = ' button '; 
                } 
           }
        }
    }
}*/



//code for dynamic outlines 12.16.08

function getControlTag(src) {
    TRok = false;
    //alert('getcontroltag1: ' + src.nodeName);
    while ("HTML" != src.nodeName) {
        //alert('getcontroltag2: ' + src.nodeName);
        if ("IMG" == src.nodeName || "FONT" == src.nodeName || "A" == src.nodeName || "TD" == src.nodeName)
            TRok = true
        if ("LI" == src.nodeName)
            return src
        if ("TR" == src.nodeName) {
            if (TRok)
                return src
            return null
        }
        src = src.parentNode;
    }
    return null
}

function dynOutlineEnabled(src) {
    while ("BODY" != src.nodeName) {
        table = "TABLE" == src.nodeName;
        if (table && src.getAttribute("border", false) != "0")
            return false;
            
        //if ("OL" == src.nodeName || "UL" == src.nodeName || table) {
        if(src.className == "dynamicoutline"){
            
            if (src.attachEvent)
                src.onclick = function() { dynOutline(event) }
            else
                src.setAttribute('onclick', 'dynOutline(event)');
                
            if (src.className == "dynamicoutline")
                return true;
            else
                return false;

            if (null != src.getAttribute("nodynamicoutline", false))
                return false
            if (null != src.getAttribute("dynamicoutline", false))
                return true
            //if(mac > 0)
            if (false) {
                var at = src.outerHTML.indexOf("dynamicoutline")
                if (at > 0) {
                    var gt = src.outerHTML.indexOf(">")
                    if (at < gt)
                        return true
                }
            }
        }
        src = src.parentNode;
    }
    return false
}

function initCollapse(src) {
    //alert('hi');
    while ("BODY" != src.nodeName) {
        table = "TABLE" == src.nodeName;
        if (table && src.getAttribute("border", false) != "0")
            return false;
        if ("OL" == src.nodeName || "UL" == src.nodeName || table) {
            //if (null != src.getAttribute("initcollapsed", false))
                return true
        }
        src = src.parentNode;
    }
    return false
}
function containedIn(src, dest) {
    //alert('containedin: ' + src.nodeName + " - " + dest);
    if ("!" == src.nodeName)
        return true
    src = getControlTag(src)
    //alert('containedin2: ' + src.nodeName);
    if (src == dest)
        return true
    return false
}

function isSafariBrowser(){
    var ua = navigator.userAgent;
    var isOpera = typeof opera != 'undefined';
    var isIe = !isOpera && ua.indexOf('MSIE') != -1;
    var isSafari = !isOpera && ua.indexOf('WebKit') != -1;
    // Safari also gives navigator.product string equal to 'Gecko'.
    var isGecko = !isOpera && navigator.product == 'Gecko' && !isSafari;
    return isSafari;
}

function initOutline() {
    //var ms = navigator.appVersion.indexOf("MSIE");
    //mac = navigator.appVersion.indexOf("Macintosh");
    //ie4 = (ms>0) && (parseInt(navigator.appVersion.substring(ms+5, ms+6)) >= 4);
    //if(!ie4)
    //	return;

    //var mainsrc = document.getElementsByTagName("ul");
    //alert(mainsrc.length);
    //alert(mainsrc[mainsrc.length-1].sourceIndex);
    //alert(mainsrc[mainsrc.length-1].nodeName);





    //if (mainsrc[0].sourceIndex){
if(!isSafariBrowser()){
    listTags = new Array()
    listTags[0] = "UL"
    listTags[1] = "OL"
    listTags[2] = "TABLE"
    for (j = 0; j < listTags.length; j++) {
        tagName = listTags[j]
        //coll=document.all.tags(tagName)
        coll = document.getElementsByTagName(tagName);
        for (i = 0; i < coll.length; i++) {
            if (dynOutlineEnabled(coll[i].parentNode)) {                
                if (initCollapse(coll[i]))
                    coll[i].style.display = "none"
            }
        }
    }
}
else {
  //alert('issafari');
}
}
function dynOutline(e) {

    var ms = navigator.appVersion.indexOf("MSIE");
    ie4 = (ms > 0) && (parseInt(navigator.appVersion.substring(ms + 5, ms + 6)) >= 4);
    //if(!ie4)
    //	return;
    //var src = event.srcElement
    var src = e.srcElement ? e.srcElement : e.target;

    src = getControlTag(src)
    //alert(src.sourceIndex);
    //alert('00');
    if (null == src)
        return
    if (!dynOutlineEnabled(src))
        return

    var allElements = document.getElementsByTagName("*");
    //var allElements = getElementsByClass(document, "dynamicoutline", "UL");
    if (!e.srcElement)
        for (var i = 0, l = allElements.length; i < l; i++) allElements[i].sourceIndex = i

    //var idx = allElements.length-1;
    var idx = 0;
    if(src.sourceIndex)
       idx = src.sourceIndex + 1;
    //alert(allElements.length);
    //alert("idx: " + idx);
    while (idx < allElements.length && containedIn(allElements[idx], src)) {
        //alert("index: "  + idx);
        //srcTmp = document.all[idx]
        srcTmp = allElements[idx];
        //tag = srcTmp.tagName;
	tag=srcTmp.nodeName;
        //alert(tag);
        if ("UL" == tag || "OL" == tag || "TABLE" == tag){
	    //alert('c');
            srcTmp.style.display = srcTmp.style.display == "none" ? "" : "none"
	}
        idx++;        
    }
}

function getElementsByClass(node, searchClass, tag) {
    var classElements = new Array();
    var els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    var pattern = new RegExp("\b" + searchClass + "\b");
    for (i = 0, j = 0; i < elsLen; i++) {
        if (pattern.test(els[i].className)) {
            classElements[j] = els[i];
            j++;
        }
    }
    return classElements;
}
