Object.size = function(obj) {
 var size = 0, key;
 for (key in obj) {
  if (obj.hasOwnProperty(key)) size++;
 }
 return size;
};

// FLAGS
var flgA = new Array();
flgA[flgA.length]=''; // 0 = no flag
flgA[flgA.length]='New'; // 1
flgA[flgA.length]='Cool'; // 2
flgA[flgA.length]='Hot'; // 3
flgA[flgA.length]='A1'; // 4

if(typeof(site) == 'undefined' ) var site = document.title;
if(typeof(homeUrl) == 'undefined' ) var homeUrl = document.URL.toString();
if(typeof(xyzDir) == 'undefined') var xyzDir = '/xyz/';
if(typeof(xyz472A) == 'undefined') var xyz472A = new Array();
if(typeof(defaultXyz) == 'undefined') var defaultXyz = 'gbs';
if(typeof(noofXyz472) == 'undefined') var noofXyz472 = 12;
if(typeof(noofXyz150) == 'undefined') var noofXyz150 = 1;
if(typeof(gbsCvr) == 'undefined') var gbsCvr = true;

// xyz150Str
var xyz150Str = '';
if(noofXyz150 > 0){
 xyz150Codes = new Array('csp', 'fhv', 'rls', 'vss');
 var theXyz150Code = xyz150Codes[Math.floor(Math.random()*xyz150Codes.length)];
 var theXyz150 = xyz472A[theXyz150Code];
 theXyz150.src = theXyz150.src.replace('470062', '150150');
 xyz150Str = (Object.size(xyz472A) > 0)? '<a class="xyz150" href="'+theXyz150.url+'" title="'+theXyz150.ttl+' - '+theXyz150.alt+'" rel="external nofollow"><img src="'+xyzDir+theXyz150.src+'" " border="0" alt="'+theXyz150.alt+'"></a>' : '';
}

// xyz472
if(noofXyz472 > 0) var w472A = getWeightedKeys(xyz472A, 'sp', 2); // Generate array of weighted keys
function writeXyz(){
 var writeStr = '';
 if(noofXyz472 > 0){
  if(w472A.length == 0) w472A = getWeightedKeys(xyz472A, 'sp', 2); // Regenerate array of weighted keys if required
  var xyz = w472A.shift();
  theXyz = xyz472A[xyz];
  theXyz.src = theXyz.src.replace('150150', '470062');
  var xyz472Str = makeXyz472(xyz);
 }
 document.write(xyz472Str);
}

// cvrImgStr
var cvrImgStr = '';
if(gbsCvr){
 var theCvr = Math.floor(Math.random() * gbsCvrs) + gbsCvr1;
 if(typeof(theCvr) == 'undefined' ) var theCvr = '000';
 cvrImgStr = '<img src="'+xyzDir+'220261gbs'+theCvr+'.jpg" border="0" alt="The worlds #1 site for strict domestic discipline!">';
}

// NO EDITING REQUIRED BELOW THIS LINE
function makeXyz472(xyz){
 var theXyz = xyz472A[xyz];
 theXyz.src = theXyz.src.replace('150150', '470062');
 var flagTxt = (theXyz.flg == 4 ? flgA[theXyz.flg]+'+!' : flgA[theXyz.flg]+'!');
 var str472 = '<div class="xyz472Div">';
 str472 += '<a href="'+theXyz.url+'" title="'+theXyz.alt+'" rel="external"><strong>'+theXyz.ttl+'</strong></a>';
 str472 += (theXyz.flg>0 ? '&nbsp;<span class="flag '+flgA[theXyz.flg]+'">'+flagTxt+'</span>' : '');
 str472 += '<br><a href="'+theXyz.url+'" title="'+theXyz.alt+'" rel="external nofollow">';
 str472 += '<img src="'+xyzDir+theXyz.src+'" border="0" alt="'+theXyz.alt+'">';
 str472 += '</a><br>'+theXyz.dsc+'</div>'
 return str472;
}

function getWeightedKeys(inputA, cat, wgt){
// category, minimum weight
 var wA = new Array();
 for(var k in inputA){
  var theXyz = inputA[k];
  if(theXyz.cat == cat && theXyz.wgt >= wgt){
   for( var w = 0; w < theXyz.wgt; w++){
    wA.push(k);
   }
  }
 }
 return jsShuffle(wA);
}

function jsShuffle(a){
 var tmp, current, top = a.length;
 if(top) while(--top){
  current = Math.floor(Math.random() * (top + 1));
  var tmp = a[current];
  a[current] = a[top];
  a[top] = tmp;
 }
 return a;
}

// Add to favorites
var favStr = '<span class="bt" title="Bookmark '+site+' (CTRL-D)">Bookmark</span>';
if(window.sidebar || window.external || (window.opera && window.print))
 favStr = '<a class="bt" href="javascript:addBookmark(\''+site+'\',\''+homeUrl+'\')" title="Bookmark '+site+'">Bookmark</a>';

function addBookmark(title,url){
 if(window.sidebar){
  window.sidebar.addPanel(title,url,'');
 }else if(window.external){
  window.external.AddFavorite(url,title);
 }else if(window.opera && window.print){
  var elem = document.createElement('a');
  elem.setAttribute('href',url);
  elem.setAttribute('title',title);
  elem.setAttribute('rel','sidebar');
  elem.click();
 }else{
  return true;
 }
}

function externalLinks(){
// Adapted from: http://perishablepress.com/press/2007/11/20/open-external-links-as-blank-targets-via-unobtrusive-javascript/
 if(!document.getElementsByTagName) return;
 var anchors = document.getElementsByTagName('a');
 for(var i = 0; i < anchors.length; i++){
  var anchor = anchors[i];
  if(anchor.getAttribute('href') && anchor.getAttribute('rel')){
   var relTxt = anchor.getAttribute('rel');
   if(relTxt.indexOf('external') >= 0) anchor.target = '_blank';
  }
 }
}

var alreadyrunflag = 0;
if(document.addEventListener){
 document.addEventListener('DOMContentLoaded', function(){alreadyrunflag=1; externalLinks();}, false);
}else if(document.all && !window.opera){
 document.write('<script type="text/javascript" id="contentloadtag" defer="defer" src="javascript:void(0)"><\/script>');
 var contentloadtag = document.getElementById('contentloadtag');
 contentloadtag.onreadystatechange = function(){
  if(this.readyState=="complete"){
   alreadyrunflag=1;
   externalLinks();
  }
 };
}

window.onload=function(){
 setTimeout("if (!alreadyrunflag){externalLinks();}", 0);
}

