/**************************************** COOKIE HANDLER ***************************************/
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 var 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;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}
/*****************************************************************************************************************/

var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			   string: navigator.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();
/*****************************************************************************************************************/

function SmartScrollerGetCoords() {
	var scrollX, scrollY;
	if (document.all) {
	  if (!document.documentElement.scrollLeft)
		  scrollX = document.body.scrollLeft;
	  else
		scrollX = document.documentElement.scrollLeft;

		if (!document.documentElement.scrollTop)
			scrollY = document.body.scrollTop;
		else
			scrollY = document.documentElement.scrollTop;
	} else {
		scrollX = window.pageXOffset;
		scrollY = window.pageYOffset;
	}
	document.getElementById("IncFooter_scrollLeft").value = scrollX;
	document.getElementById("IncFooter_scrollTop").value = scrollY;
}

function SmartScroll() {
	if (document.getElementById("IncFooter_scrollLeft") != null) {
		var x = document.getElementById("IncFooter_scrollLeft").value;
		var y = document.getElementById("IncFooter_scrollTop").value;
		window.scrollTo(x, y);
	}
}
/*****************************************************************************************************************/
function FindPosition(object, direction) {
	var y = x = 0;
	if (object.offsetParent) {
		do {
			x += object.offsetLeft;
			y += object.offsetTop;
		} while (object = object.offsetParent);
	}
	if (direction == "x") {return x;} else {return y;};
}
/*****************************************************************************************************************/
function getElementsByAttribute(elm,att,val,arr){ //do not re-format this code!!
	if (arguments.length<4)	var arr=[];
	for(var k=0;k<elm.childNodes.length;k++){
		var child=elm.childNodes.item(k);
		if(child.nodeType==1){
			if(child.getAttribute(att)==val)
			arr[arr.length]=child;
			if(child.childNodes.length>0)
			getElementsByAttribute(child,att,val,arr);
		}
	}
	return arr;
}
/*****************************************************************************************************************/
function getAttributeValue(tag, attr) {
	for( var x = 0; x < tag.attributes.length; x++ ) {
		if (tag.attributes[x].nodeName.toLowerCase() == attr) {
			return tag.attributes[x].nodeValue;
		}
	}
}
/*****************************************************************************************************************/
function replaceAll(str, from, to) {
    var idx = str.indexOf( from );
    while ( idx > -1 ) {
        str = str.replace( from, to ); 
        idx = str.indexOf( from );
    }
    return str;
}
/*****************************************************************************************************************/
var myWin;
function OpenWindow(target, windowWidth, windowHeight){
	if (myWin) myWin.close();
	myWin = window.open(target, "AmeristarPopupWindow","toolbar=no, status=no, scrollbars=yes, resizable=yes, width="+windowWidth+", height="+windowHeight+"");
	if (window.focus) {myWin.focus();};
}

function OpenFullScreenWindow(url) {
	if (myWin) myWin.close();
	params  = "toolbar=yes, status=yes, scrollbars=yes, resizable=yes, location=yes";
	params += ", width=" + (screen.width - 20);
	params += ", height=" + (screen.height - 50);
	params += ", top=0, left=0"
//	params += ", fullscreen=yes";

	myWin = window.open(url,"AmeristarFullScreenWin", params);
	if (window.focus) {myWin.focus();};
}

/*****************************************************************************************************************/
function RoundCorners(){
	
	Rounded1Settings = {tl:{radius:8}, tr:{radius:8}, bl:{radius:8}, br:{radius:8}, antiAlias:true, autoPad:true, validTags:["div"]};
	Rounded2Settings = {tl:{radius:6}, tr:{radius:6}, bl:{radius:6}, br:{radius:6}, antiAlias:true, autoPad:true, validTags:["div", "a"]};
	Rounded3Settings = {tl:{radius:4}, tr:{radius:4}, bl:{radius:4}, br:{radius:4}, antiAlias:true, autoPad:true, validTags:["div", "p"]};
	Rounded4Settings = {tl:{radius:2}, tr:{radius:2}, bl:{radius:2}, br:{radius:2}, antiAlias:true, autoPad:true, validTags:["div", "a"]};

	for (a=1; a<5; a++) {
		RoundedElementsList = getElementsByAttribute(document.body, "rounded", String(a));
		if (RoundedElementsList != "") {
			for (i=0; i<RoundedElementsList.length; i++) {
				RoundedElement = RoundedElementsList[i];
				var RoundedObject;
				if (RoundedElement.className == "Red") RoundedElement.innerHTML = "&nbsp; " + RoundedElement.innerHTML + " &nbsp;";
				switch (a) {
					case 1: RoundedObject = new curvyCorners(Rounded1Settings, RoundedElement); break;
					case 2: RoundedObject = new curvyCorners(Rounded2Settings, RoundedElement); break;
					case 3: RoundedObject = new curvyCorners(Rounded3Settings, RoundedElement); break;
					case 4: RoundedObject = new curvyCorners(Rounded4Settings, RoundedElement); break;
				}
				RoundedObject.applyCornersToAll();
			}
		}
	}
}
/*****************************************************************************************************************/
function HighlightClickedLink(){
//	pageName = String(document.location).split("/");
//	pageName = pageName[pageName.length-1];

	var links=document.getElementsByTagName("a");
	for (i=0; i<links.length; i++) {
		var link = links[i];
		var LastChar = link.href.substring(link.href.length - 1, link.href.length);
		if (LastChar != "#" && link.href == String(document.location)) {
			if (String(link.getAttribute("MarkSelected")).toLowerCase() != "false") {
				Indicate(link);
			} else {
				if (String(link.getAttribute("Color")).toLowerCase() != "null") link.style.color = link.getAttribute("Color");
			}
		}

		
		//////////////////////////////////// sub category highlight
		if (AmeristarPageSubCategory != "" || AmeristarPageCategory != ""){
			if (AmeristarPageSubCategory == "") AmeristarPageSubCategory = AmeristarPageCategory;
			
			if (AmeristarPageSubCategory.indexOf("~") > -1) {
				AmeristarPageSubCategory = AmeristarPageSubCategory.split("~")[1];
			}
			if (link.getAttribute("SubMenu")){
				LinkText = link.innerHTML.toLowerCase().replace("/", "");
				if (AmeristarPageSubCategory == "guestinfo") AmeristarPageSubCategory = "info";
				if (LinkText == "hotelspa") LinkText = "hotel";
			
				if (link.getAttribute("SubMenu").toLowerCase() == "true" && LinkText == AmeristarPageSubCategory)
				Indicate(link);
			}
		}
	}
}

function Indicate(link){
	link.innerHTML = "&nbsp;" + link.innerHTML + "&nbsp;";
	link.style.color = "#000000";
	link.style.backgroundColor = "#E6D4BA";
	link.style.fontWeight = "normal";
	link.setAttribute("rounded", "4");
	//its IE, lets do more stuff
	//if (navigator.appName.indexOf("Internet Explorer") > -1) link.style.width = getPixelWidth(link);
}

/*****************************************************************************************************************/
function RandomNumberMaker(max){
	return Math.floor(Math.random()*max);
}

function SetBackgroundImage(){
	var loc = String(document.location).toLowerCase();
	//alert(AmeristarPageCategory);
	if (loc.indexOf("/rate_a_slot.aspx") > -1) {
		//BgImage =  "Images/BackgroundRateASlot.jpg";
		BgImage = "Images/BackgroundDefault.jpg";
	} else if (AmeristarPageCategory == "gaming") {
		BgImage =  "Images/BackgroundGaming"+(RandomNumberMaker(5)+1)+".jpg"; 
	} else if (AmeristarPageCategory == "shopping") {
		BgImage =  "Images/BackgroundShopping"+(RandomNumberMaker(5)+1)+".jpg";
	} else if (AmeristarPageCategory == "hotel") {
		BgImage =  "Images/BackgroundHotel.jpg";
	} else if (AmeristarPageCategory == "dining") {
		BgImage =  "Images/BackgroundDining"+(RandomNumberMaker(5)+1)+".jpg";
	} else if (loc.indexOf("/events.aspx") > -1) {
		BgImage =  "Images/BackgroundEvents"+(RandomNumberMaker(6)+1)+".jpg";
	} else if (AmeristarPageCategory == "entertainment" && loc.indexOf("entertainment.aspx") == -1) {
		BgImage =  "Images/BackgroundEntertainment"+(RandomNumberMaker(7)+1)+".jpg";
	} else if (AmeristarPageCategory == "guestinfo") {
		BgImage =  "Images/BackgroundGuestServices"+(RandomNumberMaker(5)+1)+".jpg";
	} else if (AmeristarPageCategory == "starawards" || loc.indexOf("star_awards.aspx") > -1) {
		BgImage =  "Images/BackgroundStarAwards"+(RandomNumberMaker(4)+1)+".jpg";
	} else {
		BgImage = "Images/BackgroundDefault.jpg";
	}


	if (loc.indexOf("black_hawk_hotel_signup") > -1 || loc.indexOf("excite.aspx") > -1 ) {
		BgImage =  "Images/BackgroundBHPromo.jpg";
	} else if (loc.indexOf("phoneoptin.aspx") > -1 ) {
		BgImage =  "Images/BackgroundPhoneOptIn.jpg";
	} else if (loc.indexOf("meetings") > -1 ) {
		BgImage =  "Images/BackgroundMeetings.jpg";
	} else if (loc.indexOf("hivi") > 1 || loc.indexOf("hi-vi") > -1 || loc.indexOf("hi_vi") > -1) {
		BgImage =  "Images/BackgroundHiVi.jpg";
	} else if (loc.indexOf("kids_quest") > -1) {
		BgImage =  "Images/BackgroundKidsQuest.jpg";
	} else if (loc.indexOf("weddings") > -1 ) {
		BgImage =  "Images/BackgroundWeddings.jpg";
	} else if (loc.indexOf("_spa") > -1 ) {
		BgImage =  "Images/BackgroundSpa.jpg";
	} else if (loc.indexOf("_home_nightclub") > -1 ) {
		BgImage =  "Images/BackgroundHomeNightclub.jpg";
	} else if (loc.indexOf("entertainment_bar_8042") > -1 ) {
		BgImage =  "Images/BackgroundBH8042.jpg";
	} else if (loc.indexOf("council_bluffs_entertainment_amerisports_bar.aspx") > -1 ) {
		BgImage =  "Images/BackgroundCBAmerisports.jpg";
	} else if (loc.indexOf("entertainment_depot") > -1 ) {
		BgImage =  "Images/BackgroundKCDepot9.jpg";
	} else if (loc.indexOf("st_charles_entertainment_bottleneck_blues_bar.aspx") > -1 ) {
		BgImage =  "Images/BackgroundSCBBB.jpg";
	} else if (loc.indexOf("vicksburg_entertainment_bottleneck_blues_bar.aspx") > -1 ) {
		BgImage =  "Images/BackgroundVBBBB.jpg";
	}

	document.body.background = BgImage;
}
/*****************************************************************************************************************/
function getToolTipElements(elm,att,arr){
	if(arguments.length<3) var arr=[]
	for(var k=0;k<elm.childNodes.length;k++) {
		var child = elm.childNodes.item(k)
		if(child.nodeType == 1) {
			if (child.attributes && child.attributes[att]) arr[arr.length] = child
			//if(val == "*" || child.getAttribute(att) == val) arr[arr.length] = child
			if (child.childNodes.length > 0) getToolTipElements(child,att,arr)
		}
	}
	return arr
}

function setAllTooltips(){
	var docLength = document.body.innerHTML.length;
	if (docLength < 2000000) {
		var arrNode = getToolTipElements(document.body, "help");
		for(var i=0;i<arrNode.length;i++){
			arrNode[i].onmouseover = function(){
				Tip(this.attributes["help"].value, FADEIN, 200, FADEOUT, 200, BGCOLOR, "#E6D4BA", BORDERCOLOR, "#1B0100", SHADOW, true, SHADOWCOLOR, "#1B0100", SHADOWWIDTH, 2, CENTERMOUSE, true, ABOVE, true,  FONTFACE, "'Lucida Sans Unicode','Lucida Grande'", WIDTH, -300);
			}
			arrNode[i].onmouseout = function(){
				UnTip();
			}
		}
	}
}
/************************************************************************************************************/
function GetStringWidth(text) { //for IE only
	var spanElement = document.createElement("span");
	spanElement.style.whiteSpace = "nowrap";
	spanElement.innerHTML = text;
	document.body.appendChild(spanElement);
	var width = spanElement.offsetWidth;
	document.body.removeChild(spanElement);
	return width;
}

function getPixelWidth(obj) {
	return (document.all)?obj.offsetWidth:obj.document.width;
}
function getPixelHeight(obj) {
	return (document.all)?obj.offsetHeight:obj.document.height;
}
/************************************** DROP DOWN MENUS ***************************************************************/
//	new Effect.SlideUp(MenuItem, {duration:0.5});
//	new Effect.SlideDown(MenuItem, {duration:0.3,afterFinish: OnFinish, beforeStart: OnStart});

var CloseTimer=0;
var MenuItem;
var LastMenuItem;

function OpenMenuS(ItemID, MenuButton) {
	CancelCloseTimeS();
	if (LastMenuItem) LastMenuItem.style.visibility = "hidden";

	MenuItem = document.getElementById(ItemID);
	LastMenuItem = MenuItem;

	MenuItem.style.top = (FindPosition(MenuButton, "y") + 22) + "px";
	
	if (!MenuItem.style.height) MenuItem.style.height = (MenuItem.clientHeight - 15) + "px";

	var MNewX;

	if ((document.all) && (BrowserDetect.browser == "Explorer" && BrowserDetect.version < 8)) {
		MyMenuWidth = GetStringWidth(MenuItem.innerHTML) + 12;
		MenuItem.style.width = MyMenuWidth + "px";
		MNewX = FindPosition(MenuButton, "x") - ((MyMenuWidth - getPixelWidth(MenuButton)) / 2)
	} else {
		MenuItem.style.width = "auto";
		MNewX = FindPosition(MenuButton, "x") - ((MenuItem.offsetWidth - MenuButton.offsetWidth) / 2)
	}
	//CENTERED
	MenuItem.style.left = MNewX + "px";
	//TO THE LEFT
	//MenuItem.style.left = (FindPosition(MenuButton, "x") - 14) + "px";

 	MenuItem.style.visibility = "visible";
}

function CancelCloseTimeS(){if(CloseTimer){window.clearTimeout(CloseTimer);CloseTimer=null;}}
function SetCloseTimeS(){CloseTimer = window.setTimeout(CloseMenuS, 50);}
function CloseMenuS(){if (MenuItem){MenuItem.style.visibility = "hidden"; MenuItem=null;};}
document.onclick = CloseMenuS;

/*****************************************************************************************************************/
window.onload = function(){
	if (typeof AmeristarPageCategory == "undefined") AmeristarPageCategory = "";
	HighlightClickedLink();
	SetBackgroundImage();
	RoundCorners();
	SmartScroll();
	setAllTooltips();
	if (typeof DoUponLoad == "function") DoUponLoad();
}

window.onscroll = SmartScrollerGetCoords;
window.onclick = SmartScrollerGetCoords;
window.onkeypress = SmartScrollerGetCoords;
