/*************************************************************
 	GLOBAL: DOM Functions
 *************************************************************/
function $() {
	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;
}
/*************************************************************/
var addEvent;
if (document.addEventListener) {
    addEvent = function(element, type, handler) {
        element.addEventListener(type, handler, null);
    };
} else if (document.attachEvent) {
    addEvent = function(element, type, handler) {
        element.attachEvent("on" + type, handler);
    };
} else {
    addEvent = new Function; // not supported
}
/*************************************************************/
function getElementsByClassName(parentNode,node,classname) {
	var a = [];
	var re = new RegExp('(^| )'+classname+'( |$)');
	var els = parentNode.getElementsByTagName(node);
	for(var i=0,j=els.length; i<j; i++){
		if(re.test(els[i].className))a.push(els[i]);
	}
	return a;
}
function addClass(node,className){
	if (!hasClass(node,className) ){
		if ( node.className && node.className.length>0 ){
			className = node.className+" "+className;
		}
		node.className = className;
	}
}
function removeClass(node,className){
	if (hasClass(node,className)){
		node.className = node.className.replace(new RegExp("\\b"+className+"\\b"), "");
	}
}
function swapClass(node,c1,c2){
	node.className = !hasClass(node,c1)? node.className.replace(c2,c1) : node.className.replace(c1,c2);	
}
function hasClass(node,className){
	return ( 
    	node.className && 
    	node.className.match(new RegExp("\\b"+className+"\\b")) 
	) ? true : false;
}
/*************************************************************
 	GLOBAL: Trap <Enter> Key
 *************************************************************/
function trapEnter(e,callback){ 
	var characterCode;

	if(e && e.which){ //character code is contained in NN4's which property
		e = e;
		characterCode = e.which; 
	} else { //character code is contained in IE's keyCode property
		e = event;
		characterCode = e.keyCode; 
	}
	if(characterCode == 13) { // ascii 13 (if enter key)
		callback(e); // call action
		return false; 
	} else {
		return true;
	}
}
/*************************************************************
 	GLOBAL: Top Nav Preload & Rollovers
 *************************************************************/
var base = "images/navBtn/";
var entertainBase = "images/entertainment/navBtn/";

if (document.images)
{
home_on = new Image(); home_on.src = base + "home_over.gif";
home_off = new Image(); home_off.src = base + "home.gif";
home_status = "Home";

tournaments_on = new Image(); tournaments_on.src  = base + "tournaments_over.gif";
tournaments_off = new Image(); tournaments_off.src = base + "tournaments.gif";
tournaments_status = "Tournaments";

players_on = new Image(); players_on.src = base + "players_over.gif";
players_off = new Image(); players_off.src = base + "players.gif";
players_status = "Players";

entertainment_on = new Image(); entertainment_on.src = base + "entertainment_over.gif";
entertainment_off = new Image(); entertainment_off.src = base + "entertainment.gif";
entertainment_status = "Entertainment";

stats_news_on = new Image(); stats_news_on.src = base + "stats_news_over.gif";
stats_news_off = new Image(); stats_news_off.src = base + "stats_news.gif";
stats_news_status = "Stats & News";

fans_on = new Image(); fans_on.src = base + "fans_over.gif";
fans_off = new Image(); fans_off.src = base + "fans.gif";
fans_status = "Fans";

teaching_on = new Image(); teaching_on.src  = base + "teaching_over.gif";
teaching_off = new Image(); teaching_off.src = base + "teaching.gif";
teaching_status = "Teaching and Club Pros";

juniors_on = new Image(); juniors_on.src = base + "juniors_over.gif";
juniors_off = new Image(); juniors_off.src = base + "juniors.gif";
juniors_status = "Juniors";

instructions_on = new Image(); instructions_on.src = base + "instructions_over.gif";
instructions_off = new Image(); instructions_off.src = base + "instructions.gif";
instructions_status = "Instruction";

PROSHOP_on = new Image(); PROSHOP_on.src = base + "PROSHOP_over.gif";
PROSHOP_off = new Image(); PROSHOP_off.src = base + "PROSHOP.gif";
PROSHOP_status = "Pro Shop";

SCHEDULE_on = new Image(); SCHEDULE_on.src = base + "SCHEDULE_over.gif";
SCHEDULE_off = new Image(); SCHEDULE_off.src = base + "SCHEDULE.gif";
SCHEDULE_status = "Schedule";

BOARDS_on = new Image(); BOARDS_on.src = base + "BOARDS_over.gif";
BOARDS_off = new Image(); BOARDS_off.src = base + "BOARDS.gif";
BOARDS_status = "Message Boards";

NEWSLETTER_on = new Image(); NEWSLETTER_on.src = base + "NEWSLETTER_over.gif";
NEWSLETTER_off = new Image(); NEWSLETTER_off.src = base + "NEWSLETTER.gif";
NEWSLETTER_status = "Newsletter";

VIDEO_on = new Image(); VIDEO_on.src = base + "VIDEO_over.gif";
VIDEO_off = new Image(); VIDEO_off.src = base + "VIDEO.gif";
VIDEO_status = "Video";
/*************************************************************/
eHOME_on = new Image(); eHOME_on.src = entertainBase + "HOME_over.gif";
eHOME_off = new Image(); eHOME_off.src = entertainBase + "HOME.gif";
eHOME_status = "Home";

eTOURNAMENTS_on = new Image(); eTOURNAMENTS_on.src  = entertainBase + "TOURNAMENTS_over.gif";
eTOURNAMENTS_off = new Image(); eTOURNAMENTS_off.src = entertainBase + "TOURNAMENTS.gif";
eTOURNAMENTS_status = "Tournaments";

ePLAYERS_on = new Image(); ePLAYERS_on.src = entertainBase + "PLAYERS_over.gif";
ePLAYERS_off = new Image(); ePLAYERS_off.src = entertainBase + "PLAYERS.gif";
ePLAYERS_status = "Players";

eENTERTAINMENT_on = new Image(); eENTERTAINMENT_on.src = entertainBase + "ENTERTAINMENT_over.gif";
eENTERTAINMENT_off = new Image(); eENTERTAINMENT_off.src = entertainBase + "ENTERTAINMENT.gif";
eENTERTAINMENT_status = "Entertainment";

eSTATS_NEWS_on = new Image(); eSTATS_NEWS_on.src = entertainBase + "STATS_NEWS_over.gif";
eSTATS_NEWS_off = new Image(); eSTATS_NEWS_off.src = entertainBase + "STATS_NEWS.gif";
eSTATS_NEWS_status = "Stats & News";

eOUR_FANS_on = new Image(); eOUR_FANS_on.src = entertainBase + "OUR_FANS_over.gif";
eOUR_FANS_off = new Image(); eOUR_FANS_off.src = entertainBase + "OUR_FANS.gif";
eOUR_FANS_status = "Our Fans";

eTEACHING_on = new Image(); eTEACHING_on.src  = entertainBase + "TEACHING_over.gif";
eTEACHING_off = new Image(); eTEACHING_off.src = entertainBase + "TEACHING.gif";
eTEACHING_status = "Teaching and Club Pros";

eJR_GOLFER_on = new Image(); eJR_GOLFER_on.src = entertainBase + "JR_GOLFER_over.gif";
eJR_GOLFER_off = new Image(); eJR_GOLFER_off.src = entertainBase + "JR_GOLFER.gif";
eJR_GOLFER_status = "Jr. Golfer";

eIMPROVE_GAME_on = new Image(); eIMPROVE_GAME_on.src = entertainBase + "IMPROVE_GAME_over.gif";
eIMPROVE_GAME_off = new Image(); eIMPROVE_GAME_off.src = entertainBase + "IMPROVE_GAME.gif";
eIMPROVE_GAME_status = "Improve Your Game";

ePROSHOP_on = new Image(); ePROSHOP_on.src = entertainBase + "PROSHOP_over.gif";
ePROSHOP_off = new Image(); ePROSHOP_off.src = entertainBase + "PROSHOP.gif";
ePROSHOP_status = "Pro Shop";
}
/*************************************************************/
function imgOn(imgName) {
	if (document.images) { 
		document[imgName].src = eval(imgName + "_on.src");
		window.status = eval(imgName + "_status");
		return true;
	}
}

function imgOff(imgName) {
	if (document.images) { document[imgName].src = eval(imgName + "_off.src");window.status=""; }
}

/*************************************************************
 	GLOBAL: Return Random Number
 *************************************************************/
function returnRandom(lower, upper) {
	var range = upper-lower+1; 
	var l = ("" + range).length; 
	var randomNumber = (Math.floor(Math.random() * Math.pow(10,l)) % range) + parseInt(lower); 
	return randomNumber; 
}
/*************************************************************
 	HEADER: Search textbox
 *************************************************************/
function Search(event) {
	event = event || window.event; 
	var tgt = event.target || event.srcElement;
	location.href = '/Search.aspx?SearchString=' + document.getElementById('SearchTextBox').value;
	
	if (event.stopPropagation) {
		event.stopPropagation();
	} else {
		event.cancelBubble = true;
	}

	if (event.preventDefault) {
		event.preventDefault();
	} else {
		event.returnValue = false;
	}
	return false;
}

/*************************************************************
	Switch CSS ClassNames from HREF		
 *************************************************************/

function showCurrentEvent(){
	time = new Date();
	currMonth = "month" + (time.getMonth() + 1);
	SwitchMenu(currMonth);
}

function SwitchMenu(obj){
	if(document.getElementById){
		var el = document.getElementById(obj);
		var ar = document.getElementById("calendar").getElementsByTagName("td");
		for (var i=0; i<ar.length; i++){
			if (ar[i].className == "monthBtn_on"){
				ar[i].className = "monthBtn";
			}
		}
		el.className = "monthBtn_on";
	}
}
// window.onload = showCurrentEvent;

/*************************************************************
	DSW - Show/Hide Bubble Item
 *************************************************************/
function showBubble (num){
	document.getElementById("player"+num).style.zIndex = 6;
	var bubble = document.getElementById("bubble");
	switch(num){
		case 1: ypos=-20; xpos=20; break;
		case 2: ypos=-25; xpos=110; break;
		case 3: ypos=-40; xpos=180; break;
		case 4: ypos=-20; xpos=250; break;
		case 5: ypos=0; xpos=330; break;
		default: ypos=0;xpos=-2000;
	}
	bubble.style.top = ypos;
	bubble.style.left = xpos;
	bubble.style.display = "block";
}
function hideBubble (num){
	document.getElementById("player"+num).style.zIndex = 1;
	document.getElementById("bubble").style.display = "none";
}

/*************************************************************
	Clear Pre-populated Form Text
 *************************************************************/
function clearIt(theText){
	if(theText.value == theText.defaultValue){
		theText.value = "";
	}
}

// ** Example Usage **
// <input type="text" name="Comments" value="Enter Comment Here" onFocus="clearIt(this)">
/*************************************************************/


/*************************************************************
	Open Tour Report
 *************************************************************/
function openTourReport(){
	var url = "http://www.lpga.com/popup_TOUR_REPORT.html";
	var name = "tourReport";
	var width = "529";
	var height = "382";
	// center window
	var winL = (screen.width - width)/2;
	var winT = (screen.height - height)/2
	var features = "resizable=no,scrollbars=no,status=no,location=no,toolbar=no,menubar=no,";
	window.open(url,name,features + "width=" + width + ", height="+ height + ",top=" + winT + ", left="+ winL);
}

/*************************************************************
	Toggle Bracket Tree Tabs
 *************************************************************/

function toggleDiv(div,toggle){
	document.getElementById(div).style.display = (toggle)? "block" : "none";
}
function displayTab(o){
	toggleDiv("bracketContentOne",false);
	toggleDiv("bracketContentTwo",false);
	switch(o){
		case "tabOne" :
			toggleDiv("bracketContentOne",true);
			document.getElementById("tabOne").className = "tab active";
			document.getElementById("tabTwo").className = "tab inactive";
			break;
		case "tabTwo" :
			toggleDiv("bracketContentTwo",true);
			document.getElementById("tabOne").className = "tab inactive";
			document.getElementById("tabTwo").className = "tab active";
			break;
	}
}
window.onload = function(){
	if(document.getElementById("tabOne")){
		displayTab("tabOne");
	}
}
/*************************************************************
	INDEX: Tabs
 *************************************************************/
function initTabs(divID,divON){
	var tabs = getElementsByClassName($(divID),"div","tab");
	var text = getElementsByClassName($(divID),"div","content");
	divID = new Object();
	divID.content = text;
	if(divON == undefined){ divON = 1 }
	else if(!divON){ divON = returnRandom(1,tabs.length) }
	for(t=0,tl=tabs.length;t<tl;t++){
		if(tabs[t].onclick != undefined){ 
			existing = tabs[t].onclick;
			tabs[t].onclick=function(){existing();clickTab(this,divID);};
		} else {
			tabs[t].onclick=function(){clickTab(this,divID);};
		}
		tabs[t].setAttribute("num",t);
		if(t == (divON-1)){
			addClass(tabs[t],"activeTab");
			swapClass(text[t],"inactive","active");
			if(hasClass(tabs[t],"one")) swapClass(tabs[t],"one","activeOne");
			divID.active = tabs[t];
			divID.activeTxt = text[t];
		}
	}
}
function clickTab(tab,id){
	var theTab = eval(id);
	var txt = theTab.content[tab.getAttribute("num")];
	if(theTab.active != undefined){
		removeClass(theTab.active,"activeTab");
		swapClass(theTab.activeTxt,"active","inactive");
		if(hasClass(theTab.active,"activeOne")) swapClass(theTab.active,"activeOne","one");
	}
	if(hasClass(tab,"one")) swapClass(tab,"one","activeOne");
	addClass(tab,"activeTab");
	swapClass(txt,"inactive","active");
	theTab.active = tab;
	theTab.activeTxt = txt;
}
/*************************************************************
	INDEX: Photo Gallery
 *************************************************************/
var startPos = 0;
var currPos = 0;
var currBox = 1;
var galleryTotal = 0;
var isEnabled = false;
var isScrolling = false;
var PhotoGallery;

function PhotoGallery(id){
	var oGallery = new XHConn();
	//var parser = "xml/flash_processor.xml";
	var parser = "flash_processor.aspx";
	
	this.init = function(oXML){
		var count = 0;
		var photos = oXML.responseXML;
		var media = photos.getElementsByTagName("photo");
		var caption = photos.getElementsByTagName("caption");
		galleryTotal = Math.ceil(media.length/4);
		$("scroller").innerHTML = "";
		$("scroller").style.cursor = "pointer";
		$("scroller").onclick = function(){ window.location.href = "http://www.lpga.com/entertainment_archives.aspx?gid="+id }
		$("galleryTitle").innerHTML =  photos.getElementsByTagName("title")[0].firstChild.nodeValue;
		for(var m=0,ml=galleryTotal;m<ml;m++){
			var div = document.createElement("div");
			div.className = "imgs";
			$("scroller").appendChild(div);
			for(var x=0;x<4;x++){
				if(count<media.length){
					var photo = document.createElement("div");
					photo.className = "photo";
					var img = document.createElement("img");
					img.src = media[count].getAttribute("media");
					img.caption = caption[count].firstChild.nodeValue;
					img.onmouseover = function(){ showtrail(this.src,this.caption,360,240) }
					img.onmouseout = function(){ hidetrail(); }
					photo.appendChild(img);
					div.appendChild(photo);
					count++;
				}
			}
		}
		isEnabled = true;
	}
	this.move = function(num){
		if(!isScrolling && isEnabled){
			currPos = (((520*num)-520)*-1);
			var t1 = new Tween($('scroller').style,'left',Tween.strongEaseInOut,Number(startPos),Number(currPos),.75,'px');
			t1.onMotionStarted = function(){
				$("group"+num).src = $("group"+num).src.replace("_off.gif","_on.gif");
				$("group"+currBox).src = $("group"+currBox).src.replace("_on.gif","_off.gif");
				if(num==1){ addClass($("galleryBtnPREV"),"disabled") } else { removeClass($("galleryBtnPREV"),"disabled") };
				if(num==galleryTotal){ addClass($("galleryBtnNEXT"),"disabled") } else { removeClass($("galleryBtnNEXT"),"disabled") };
				isScrolling = true;
			};
			t1.onMotionFinished = function(){ 
				window.startPos = window.currPos;
				currBox = num;
				isScrolling = false;
			};
			t1.start();
		}
	}
	if(!isEnabled) oGallery.connect(parser,"GET","type=MediaGallery&id=" + id,this.init);
}
function initGallery(id){
	if(!isEnabled){
		// add gallery script
		var head = document.getElementsByTagName("head").item(0);
		script = document.createElement("script");
		script.src = "javascript/preview_gallery.js";
		script.type = "text/javascript";
		head.appendChild(script);
		// add gallery div
		var page = document.getElementsByTagName("body").item(0);
		var div = document.createElement("div");
		div.setAttribute("id","preview_div");
		div.style.position = "absolute";
		div.style.display = "none";
		div.style.zIndex = "999";
		page.appendChild(div);
		// initialize the gallery
		PhotoGallery = new PhotoGallery(id);
	}
	
}
function Cookie() {
    this.get = function(name) {
        var cookies = document.cookie.split(";");
        for (var i = 0; i < cookies.length; ++i) {
            var a = cookies[i].split("=");
            if (a.length == 2) {
                a[0] = a[0].trim();
                a[1] = a[1].trim();
                if (a[0] == name) {
                    return unescape(a[1]);
                }
            }
        }
        return "";
    };
    this.set = function(name, value, hours, path, domain, secure) {
        var cookie = (name + "=" + escape(value));
        if (hours) {
            var date = new Date(new Date().getTime() + hours * 60 * 60 * 1000);
//			var date = new Date(new Date().getTime() + hours * 60 * 1000);
            cookie += ("; expires="+date.toGMTString());
        }
        cookie += (path    ? "; path="+path : "");
        cookie += (domain  ? "; domain="+domain : "");
        cookie += (secure  ? "; secure" : "");
        document.cookie = cookie;
    };
    this.del = function(name) {
        document.cookie = name + "=; expires=Thu, 01-Jan-70 00:00:01 GMT";
    };
}
String.prototype.trim = function() {
    return this.replace(/^\s*|\s*$/g, "");
};

function showPopupAd(){
	$('popupAd').style.display = 'block';
}
function getPopupResults(){
	//console.log('done');
	//alert("done");
}
function hidePopupAd(parser){
	$('popupAd').style.display = 'none';
	if(parser != 'undefined' && parser.indexOf('http:')>-1){
		var oCloseAd = new XHConn();
		//alert(parser);
		oCloseAd.connect(parser,"POST","",getPopupResults);
	}
}