document.getElementsByTagName('html')[0].className = 'hasScript';

//DOLLYWOOD LINK TRACKING
///////////////////////////
addEvent(document, 'click', dwHandlerTrackAction);

function dwHandlerTrackAction(e)
{
	var target = e.target || e.srcElement;
	
	if (target.nodeName == 'A') {
	
		if (target.rel=='dollywood') {
			target.href = dwTrackLink(target.href, 4);
			target.rel ='';
		}
		else if (target.rel=='dollywoodMP') {
			target.href = dwTrackLink(target.href, 3);
			target.rel ='';
		}
	}
}

function dwTrackLink(href, action)
{
	href = href.substring(href.indexOf(location.host)+location.host.length);
	while(href.match(/[^a-z0-9%]/i))
	    href = href.replace(String(href.match(/[^a-z0-9%]/i)), "%" + String(href.match(/[^a-z0-9%]/i)).charCodeAt(0).toString(16).toUpperCase());
	    
	return "http://www.gatlinburg.com/ref.asp?action=" + action + "&url=" + href;
}

//ROLLOVER RELATED
///////////////////////////
td1 = new  Image(134,28);
td1.src = "/!images/int/gcc_button_bookonline_sm1.gif";
td2 = new  Image(134,28);
td2.src = "/!images/int/gcc_button_bookonline_sm2.gif";

function hiLite(name, source)
{
	document.images[name].src = eval(source + ".src");
}

var over = new Array();
var out = new Array();
function addRollovers(idArr) {
	var imgs, a;

	if (!document.images) return;

	for (i = 0; i < idArr.length; i++) {
		imgs = getObj(idArr[i]);
		if (!imgs) continue;
		a = imgs.parentNode;
		if (a && a.tagName == 'A'){
			over[i] = new Image();
			out[i] = new Image();
			over[i].src = getRollSrc(imgs.src,"gif",1);
			out[i].src = imgs.src;
			imgs.setAttribute('ro_index',i);
			a.onmouseover = function() { this.childNodes[0].src = over[this.childNodes[0].getAttribute('ro_index')].src; }
			a.onfocus = function() { this.childNodes[0].src = over[this.childNodes[0].getAttribute('ro_index')].src; }
			a.onmouseout = function() { this.childNodes[0].src = out[this.childNodes[0].getAttribute('ro_index')].src; }
			a.onblur = function() { this.childNodes[0].src = out[this.childNodes[0].getAttribute('ro_index')].src; }
		}
	}
}
function getRollSrc(src, ext, hover) {
	return (hover) ? src.replace("a."+ext,"b."+ext) : src.replace("b."+ext,"a."+ext);
}

function ieHoverInit(wrapperList, tagname)
{
    for(i=0; i < wrapperList.getElementsByTagName(tagname).length; i++)
    {
        wrapperList.getElementsByTagName(tagname)[i].onmouseover = function()
        {
            if(this.className != "")
                this.className = this.className + " ";
                
            this.className = this.className + "ieHover";
        }
        wrapperList.getElementsByTagName(tagname)[i].onmouseout = function()
        {
            this.className = this.className.replace(/ ?ieHover/i, "");
        }
    }
}

function reveal_hide_enhanced_description(link, businessID)
{
    var enhanced_description = null;
    var link_image = link.getElementsByTagName("img")[0];
    
    for(i = 0; i < link.parentNode.parentNode.getElementsByTagName("dd").length; i++)
    {
        if (link.parentNode.parentNode.getElementsByTagName("dd")[i].className == "enhanced_description")
        {
            enhanced_description = link.parentNode.parentNode.getElementsByTagName("dd")[i];
            break;
        }
    }
    
    if (enhanced_description.style.display == "")
    {
        enhanced_description.style.display = "block";
        link_image.src = "/!images/gcc_int_icon_listing_close.gif";
        link_image.alt = "Close";
        moreInfoTracking(businessID);
    }
    else
    {
        enhanced_description.style.display = "";
        link_image.src = "/!images/gcc_int_icon_listing_click_for_more.gif";
        link_image.alt = "Click for More";
    }
    
    return false;
}

//GENERAL PURPOSE FUNCTIONS
///////////////////////////

var wini; //Reference to a window
function PopWin(url, name, width, height) {
	h = (height) ? height : 500;
	w = (width) ? width : 600;
	LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
	TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
	settings =  'height='+ h +',width='+ w +',top='+TopPosition+',left='+LeftPosition+',scrollbars=yes,resizable';
	wini = window.open(url,name,settings);
	if (wini) wini.focus();
	//return ( !wini )
}// PopWin()

function addEvent(obj,evType,fn){
	if(obj.addEventListener){
		obj.addEventListener(evType,fn,false);
	}
	else if(obj.attachEvent){
		var r=obj.attachEvent("on"+evType,fn);
	}
	else{
		if ( typeof( obj['on'+evType] ) == 'function' ) {
			var last = obj['on'+evType] ;
			obj['on'+evType] = null;
			obj['on'+evType] = function() { last(); fn(); };
		}
		else obj['on'+evType] = fn;
	}
}

function getObj() {
  var elements = new Array();
  for (var i = 0; i < arguments.length; i++) {
    var element = arguments[i];
    if (typeof element == 'string')
      element = document.getElementById(element);
    if (arguments.length == 1) 
      return element;

    elements.push(element);
  }
  return elements;
}

//****************************
//** FROM: somewhere. Seen these functions elsewhere too many times to properly credit
//***************************
function setOpacity(obj, opacity) {
  opacity = (opacity == 100)?99.999:opacity;
  // IE/Win
  obj.style.filter = "alpha(opacity:"+opacity+")";
  // Safari<1.2, Konqueror
  obj.style.KHTMLOpacity = opacity/100;
  // Older Mozilla and Firefox
  obj.style.MozOpacity = opacity/100;
  // Safari 1.2, newer Firefox and Mozilla, CSS3
  obj.style.opacity = opacity/100;
}

function fadeIn(objId,opacity) {
  if (document.getElementById) {
    obj = document.getElementById(objId);
    if (opacity <= 100) {
      setOpacity(obj, opacity);
      opacity += 10;
      window.setTimeout("fadeIn('"+objId+"',"+opacity+")", 100);
    }
  }
}

function hideAll(r,f) {
	if (!r) return false;
	var dls = r.getElementsByTagName("li");
	
	for(i = 0; i < dls.length; i++)
	{
		if (dls[i].parentNode == r) {
			dts = dls[i].getElementsByTagName("a");
			for(var j=0;j < dts.length; j++){
				if( dts[j].parentNode == dls[i] ) {
					if(f && ( location.href.indexOf(dts[j].href) >= 0  )  ){ startOpenObj = dls[i]; dts[j].onclick = function() { showAll (this.parentNode); return false; }; }
					if( !jscss('check',dts[j],'closed') && !jscss('check',dts[j],'open') ) { jscss ('add',dts[j],'closed'); }
				}
			}
			dds = dls[i].getElementsByTagName("ul");
			for(var j=0;j < dds.length; j++) {
				dds[j].style.display = "none";
			}
		}
	}
}

function showAll (obj) {
	if (!obj) return false;
	dt = obj.getElementsByTagName("a")[0];

	if(!jscss('check',dt,'open')){
		cl1 = "open";
		cl2 = "closed";
		b = "block";
	}
	else {
		cl1 = "closed";
		cl2 = "open";
		b = "none";
	}
	hideAll(obj.parentNode,false);
	jscss('swap',dt,cl1,cl2);
	dd = obj.getElementsByTagName("ul");
	for(var j=0;j < dd.length; j++) {
		dd[j].style.display = b;
	}
}

// found at http://www.onlinetools.org/articles/unobtrusivejavascript/cssjsseparation.html
function jscss(a,o,c1,c2)
{
  switch (a){
    case 'swap':
      o.className=!jscss('check',o,c1)?o.className.replace(c2,c1): o.className.replace(c1,c2);
    break;
    case 'add':
      if(!jscss('check',o,c1)){o.className+=o.className?' '+c1:c1;}
    break;
    case 'remove':
      var rep=o.className.match(' '+c1)?' '+c1:c1;
      o.className=o.className.replace(rep,'');
    break;
    case 'check':
      return new RegExp('\\b'+c1+'\\b').test(o.className)
    break;
  }
}
try {document.execCommand("BackgroundImageCache", false, true);} catch(e){};

function moreInfoTracking(PageID)
{
    var xmlHttp;
    try { xmlHttp = new XMLHttpRequest(); }
    catch (e)
    {
        try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); }
        catch (e)
        {
            try { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); }
            catch (e) { return false; }
        }
    }
    
     xmlHttp.open("GET", "/moreInfoTracking.asp?id=" + PageID, true);
     xmlHttp.send(null);
  }

