/**
 * GRP Banner Control
 * by: Paul McLanahan <paul dot mclanahan at digitalinsight>
 * copyright: 2006 Digital Insight Inc. All Rights Reserved
 * usage: Place the following code on the site:

<div id="grpBanner" style="display:none"><!-- GRP Banner --></div>
<script src="/mstinc/grp/js/grp.js" type="text/javascript"><!-- grp --></script>
<script type="text/javascript">if(typeof grp!='undefined')grp.show();</script>

 * You may call grp.show with an argument which is the domain
 * of the site you wish to use for the config. If you leave it
 * out the script will work out which domain the site is being
 * viewed from.  You may need to specify the domain name in situations
 * where the FI has multiple domain names or a setting for one domain
 * needs to be used for multiple sites.
 */
var grp = {
	domains : {},
	banners : [],
	
	addBanner : function(bImg,bURL,bRURL){
		grp.banners[grp.banners.length] = {'img' : bImg, 'url' : bURL, 'rules_url' : bRURL};
	},
	
	addDomain : function(dName,dInfo){
		grp.domains[dName] = dInfo;
	},
	
	show : function(site){
		if(!document.getElementsByTagName || !document.getElementById)return;
		grp.site = site || grp.getDomain();
		grp.require('grpDomains_'+(/^[a-z]/i.test(grp.site)?grp.site.charAt(0):0)+'.js');
	},
	
	init : function(){
	    // quit if this function has already been called
	    if (arguments.callee.done) return;
	
	    // flag this function so we don't do the same thing twice
	    arguments.callee.done = true;
			
		var el = document.getElementById('grpBanner');
		if(!el)return;
		var doDisplay = true, content = '';
		if(grp.siteIsActive(grp.site) && grp.isActive){
			content = grp.getBannerCode();
		}
		else if(grp.domains[grp.site] && grp.domains[grp.site].altcode){
			content = grp.domains[grp.site].altcode;
		}
		else doDisplay = false;
		if(doDisplay){
			el.innerHTML = content;
			el.style.display = '';
		}
	},
	
	getDomain : function(){
		var hostName = /^https?:\/\/([^\/]+)\/?/.exec(document.URL)[1];
		if(hostName.match(/\./g).length > 1){
			hostName = /[^.]+\.[^.]+$/.exec(hostName)[0];
		}
		return hostName;
	},
	
	getBannerCode : function(){
		var d = grp.domains[grp.site];
		var b = grp.banners[d.banner];
		var out = '', aTag = false;
		if(b.url || d.alturl){
			out += '<a style="margin:0;padding:0" href="'+(d.alturl?d.alturl:b.url)+'"'+(d.popup?' target="_blank"':'')+'>';
			aTag = true;
		}
		out += '<img style="margin:0;padding:0" src="'+(d.altimg?d.altimg:grp.path+'images/'+b.img)+'" alt="'+d.alttext+'" border="0" />';
		if(aTag)out += '</a>';
		//out += '<p style="margin:0;padding:0;font-family:Arial,Helvetica,sans-serif;font-size:8pt;">Click here for <a href="'+b.rules_url+'" target="_blank">official rules</a></p>';
		return out;
	},
	
	siteIsActive : function(site){
		var enabled = false;
		if(grp.domains[site]){
			enabled = grp.domains[site].enabled;
		}
		return enabled;
	},
	
	require: function(sLib){
		if(!grp.path){
			if(!document.getElementsByTagName)return;
			scripts = document.getElementsByTagName('script');
			for(var s=0;s < scripts.length;s++){
				if(scripts[s].src.match(/js\/grp\.js$/)){
					var grpScriptSrc = scripts[s].src;
					break;
				}
			}
			grp.path = grpScriptSrc.replace(/js\/grp\.js$/,'');
		}
		document.write('<scr'+'ipt type="text/javascript" src="'+grp.path+'js/'+sLib+'"></scr'+'ipt>');
	}
}
grp.require('grpDomains.js');