// Site variables (editable)

site='Free BDSM & Fetish';
var baseUrl='http://www.free-bdsm-fetish.com/';
var emailPage=preStr+'htm/email.html#FreeBDSMFetish';
var submitPage=preStr+'htm/add_site.html#FreeBDSMFetish';
var altPage=preStr+'htm/personals.html';
var stlSht=preStr+'scr/style.css';
var bnrDir=preStr+'bnr/';
// var spoDir=preStr+'/spo/'; // Set in page
var homeUrl=baseUrl;
var stlStr='<LINK rel=StyleSheet href="'+stlSht+'" type="text/css">';

// Toplists format (editable)
var tplNoof=6; // no of tpls
var tplOrn=0; // tpl orientation 1=v, 0=h
var tplHlt=1; // tpl hiliting 1=on
var tplBrd=0; // tpl border in px

// Links format (editable)
var mysHlt=1; // my site hiliting 1=on
var mysBrd=0; // my site border in px
var spoHlt=1; // sponsor hiliting 1=on
var spoBrd=0; // sponsor border in px

// NO EDITING REQUIRED BELOW THIS LINE
setFalseA=new Array('dFr','spo');
for(i=0;i<setFalseA.length;i++){
	eval('if(!'+setFalseA[i]+')var '+setFalseA[i]+'=false;'); // if not set in page
}
setTrueA=new Array();
for(i=0;i<setTrueA.length;i++){
	eval('if(!'+setTrueA[i]+')var '+setTrueA[i]+'=true;'); // if not set in page
}
setBlankA=new Array();
for(i=0;i<setBlankA.length;i++){eval('var '+setBlankA[i]+'=\'\'')}

// Lnk object (repeat in link generation script in case this script doesn't load
function Link(nch,wgt,flg,url,src,ttl,alt,dsc,off){
 this.nch=nch;this.wgt=wgt;this.flg=flg;this.url=url;this.src=src;this.ttl=ttl;this.alt=alt;this.dsc=dsc;this.off=off;
}
// Note: niches (nch) fe=fetish bd=bdsm as=asian sp=spanking fd=femdom ge=general etc.
// Note: weightings (wgt) 3=high 2=medium 1=low 0=suspended (in fact any weighting is possible)
// Note: flag (flg) 5 =A1+! 4=hot, 3=cool 2=updated 1=new 0=noFlag

if(spo==true){
	siteA=new Array();
	pickSites(spoA.length,spoA);
	topStr='<DIV align=center><DIV class=adDiv><B>';
	topStr+=getTxtLnk(siteA[0],'_blank')+'</B><BR>';
	topStr+=getImgLnk(true,spoDir,siteA[0],'_blank',0);
	topStr+='<BR>'+siteA[0].dsc+'</DIV></DIV>';
	botStr='<DIV align=center><DIV class=adDiv><B>';
	botStr+=getTxtLnk(siteA[1],'_blank')+'</B><BR>';
	botStr+=getImgLnk(true,spoDir,siteA[1],'_blank',0);
	botStr+='<BR>'+siteA[1].dsc+'</DIV></DIV>';
	spoStr='<P align=center><TABLE height=90 cellSpacing=1 cellPadding=1 width=750 border=0><TR vAlign=top>';
	for(i=2;i<8;i++){
		siteA[i].src=newImgSrc(siteA[i].src,'080060','jpg');
		spoStr+='<TD width=124 align=center>';
		spoStr+='<P class=imgTtl align=center>'+getTxtLnk(siteA[i],'_blank')+'<BR clear=both>';
		spoStr+=getImgLnk(true,spoDir,siteA[i],'_blank',0)+'</TD>';
	}
	spoStr+='</TR></TABLE>';
}else{
	topStr='';
	botStr='';
	spoStr='';
}

// loading and unloading
window.onload=loadFunc;
window.onunload=unLoadFunc;

function loadFunc(){
	if(dFr==true)ditchF();
	if(ie>3)hltSetup();
}

function unLoadFunc(){return}

// Ditch frames function
function ditchF(){if(top.location.href!=window.location.href)top.location.href=window.location.href}

// Image hiliting for IE4+
function hltSetup(){
	for(i=0;i<document.images.length;i++){
		if(document.images[i].className=='hl'||document.images[i].className=='th'){
			with(document.images[i]){
				onmouseover=hiLt;onmouseout=loLt;
				filters.alpha.opacity=85;
			}
		}
	}
}

function hiLt(){this.filters.alpha.opacity=100}

function loLt(){this.filters.alpha.opacity=85}

// Link functions

// randomly selects a link from the given array and turns off all instances of that link
var lnk;
function rndLnk(arr){
	checkIt(arr);
	lnk=0;
	while(lnk<1){
		lnkRnd=Math.round(Math.random()*(arr.length-1));
		if(arr[lnkRnd].off==0){
			lnk=1;
			break;
		}
	}
	retLnk=arr[lnkRnd];
	for(ii=0;ii<arr.length;ii++){if(arr[ii].url==retLnk.url)arr[ii].off=1}
	return retLnk;
}

// creates text link w. mouseover title
function getTxtLnk(item,trgt){
	rStr='<A title="'+item.alt+'" '+'href="'+item.url+'" target="'+trgt+'">'+item.ttl+'</A>';
	return rStr;
}

// creates image link w. mouseover hiliting and/or border
function getImgLnk(hl,bnFld,item,trgt,b){
	ht=getHw(item,'h');
	wd=getHw(item,'w');
	hlStr=(hl>0?'<IMG class="hl" style="filter:alpha(opacity=100)"':'<IMG');
	rStr=(hl>0?'<A class=bg':'<A');
	rStr+=' href="'+item.url+'" target="'+trgt+'">'+hlStr+' src="'+bnFld+item.src+'"';
	rStr+=' height='+ht+' width='+wd+' border='+b+' alt="'+item.alt+'"></A>';
	return rStr;
}

// general purpose slot writer
function writeSlot(str){
	writeStr=eval(str+'Str');
	document.write(writeStr);
}

// Link utility functions
// excludes a link specified by ttl by setting weight to 0;
// exc=the link to exclude (.ttl) excA=the array;
function excLnk(exc,excA){
	for(i=0;i<excA.length;i++){
		if(excA[i].ttl==exc)excA[i].wgt=0
	}
}

// multiplies and sorts link instances in given array by weight, returns new array
// wgtA = the array to be weighted, weight=0/1 sort=0/1;
function wgtArr(wgtA,z,w,s){
	// strips out 0 weight links
	rtnA0=new Array();
	if(z>0){
		for(i=0;i<wgtA.length;i++){
			if(wgtA[i].wgt>0)rtnA0[rtnA0.length]=wgtA[i]
		}
	}else{rtnA0=wgtA}
	// multiplies array items by weight
	rtnAw=new Array();
	if(w>0){
		for(i=0;i<rtnA0.length;i++){
			for(wli=0;wli<rtnA0[i].wgt;wli++){
				rtnAw[rtnAw.length]=rtnA0[i]
			}
		}
	}
	else{rtnAw=rtnA0}
	// sorts array
	rtnAs=new Array();
	if(s>0){rtnAs=rtnAw.sort(cmpWgt)}
	else{rtnAs=rtnAw}
	return rtnAs;
}

// compare function for sort
function cmpWgt(a,b){return b.wgt-a.wgt}

// checks if any array elements still unused, if none resets the array
function checkIt(ar){
	check=0;
	for(cii=0;cii<ar.length;cii++){if(ar[cii].off==0)check++}
	if(check==0){for(cii=0;cii<ar.length;cii++){ar[cii].off=0}}
}

// gets image size from file name (images name = width 3 digits height 3 digits 3 letter site code)
function getHw(item,dim){
	hStr=item.src.substr(3,3);
	wStr=item.src.substr(0,3);
	if(hStr.substr(0,1)==0)hStr=hStr.substr(1);
	if(wStr.substr(0,1)==0)wStr=wStr.substr(1);
	return eval(dim+'Str');
}

function newImgSrc(anSrc,newDim,newFrmt){
	dimStr=anSrc.substr(0,6);
	tmpSrc=anSrc.replace(dimStr,newDim);
	frmtStr=tmpSrc.substr(10,3);
	newSrc=tmpSrc.replace(frmtStr,newFrmt);
	return newSrc;
}

function pickSites(noof,siteArr){
	siteLimit=(siteArr.length>noof)?noof:siteArr.length;
	for(stl=0;stl<siteLimit;stl++){
		theSite=rndLnk(siteArr);
		siteA[siteA.length]=theSite;
	}
}

// Addto favorites
var afMsg=(ie>3)?'Click to add '+site+' to your favorites!':'Press CTRL-D to bookmark '+site;

function addFavorite(){if(ie>3){window.external.AddFavorite(homeUrl,site);}else{alert(afMsg)}return false;}

// Popups

// Contact form
function popMail(){
hdnStr='<INPUT type=hidden name="';
inptStr='<BR><INPUT class=inpt type=text size=57 name="';
sndEml=window.open("","sndEml_win","width=440,height=310");
sndEml.document.write('<HTML><HEAD><TITLE>Contact us!</TITLE>'+stlStr+'</HEAD><BODY topMargin=20 leftMargin=20 marginHeight=20 marginWidth=20><CENTER><DIV align=center style="width:400px"><FORM name="mail" method="post" action="http://www.fetish-sm.org/cgi-bin/external.pl"><SCRIPT language="JavaScript">document.write(\'<INPUT type="hidden" name="referrer" value="\'+document.referrer+\'">\');</SCRIPT><NOSCRIPT><INPUT type="hidden" name="referrer" value="unknown"></NOSCRIPT>'+hdnStr+'website" value="'+site+'">'+hdnStr+'required" value="email,message">'+hdnStr+'env_report" value="HTTP_REFERER">'+hdnStr+'redirect" value="http://www.fetish-sm.org/htm/email_sent.html">'+hdnStr+'sort" value="order:website,realname,email,message,env_report,referrer"><P align=left><FONT size=3><B>Contact us!</B></FONT>'+inptStr+'realname">&nbsp;Your name'+inptStr+'email">&nbsp;Your email'+inptStr+'subject">&nbsp;Subject<BR>Message:<BR><TEXTAREA class=txta name="message" rows="12" cols="64"></TEXTAREA><INPUT class=sbmt type="submit" name="submit" value=" Send your message!"><INPUT class=sbmt type="reset" name="reset" value=" Reset"></FORM></DIV></CENTER></BODY></HTML>');
sndEml.document.close();
return false;
}

function sendEml(){
sndEml=window.open(emailPage,"email_pop","width=440,height=330");
return false;
}

function submitSite(){
sndEml=window.open(submitPage,"submit_pop","width=440,height=520");
return false;
}

function popPersonals(){
popAlt=window.open(altPage,"alt_pop","width=370,height=240,left=25,top=140");
return false;
}

// Status line messages
function afSt(){window.status=afMsg;return true;}

function cnSt(){window.status='Contact '+site;return true;}

function addSt(){window.status='Add a site to directory';return true;}

function dfSt(){window.status=window.defaultStatus;return true;}
