

/*
	
	
	file: 			/js/common.js
	description:	common site javascript, dom tools, pop windows, smilies, etc
	
	revision:		1.2
	date:			2:28 06/10/03
	modified:		3/30/04
*/

var isNav4, isNav6, isIE4;

/*
 * Browser version snooper; determines your browser
 * (Navigator 4, Navigator 6, or Internet Explorer 4/5)
 */
 
function setBrowser()
{
    if (navigator.appVersion.charAt(0) == "4")
    {
        if (navigator.appName.indexOf("Explorer") >= 0)
        {
            isIE4 = true;
        }
        else
        {
            isNav4 = true;
        }
    }
    else if (navigator.appVersion.charAt(0) > "4")
    {
        isNav6 = true;
    }
}

/*
 *
 * Given a selector string, return a style object
 * by searching through stylesheets. Return null if
 * none found
 *
 */
function getStyleBySelector( selector )
{
    if (!isNav6)
    {
        return null;
    }
    var sheetList = document.styleSheets;
    var ruleList;
    var i, j;

    /* look through stylesheets in reverse order that
       they appear in the document */
    for (i=sheetList.length-1; i >= 0; i--)
    {
        ruleList = sheetList[i].cssRules;
        for (j=0; j<ruleList.length; j++)
        {
            if (ruleList[j].type == CSSRule.STYLE_RULE &&
                ruleList[j].selectorText == selector)
            {
                return ruleList[j].style;
            }   
        }
    }
    return null;
}

/*
 *
 * Given an id and a property (as strings), return
 * the given property of that id.  Navigator 6 will
 * first look for the property in a tag; if not found,
 * it will look through the stylesheet.
 *
 * Note: do not precede the id with a # -- it will be
 * appended when searching the stylesheets
 *
 */
function getIdProperty( id, property )
{
    if (isNav6)
    {
        var styleObject = document.getElementById( id );
        if (styleObject != null)
        {
            styleObject = styleObject.style;
            if (styleObject[property])
            {
                return styleObject[ property ];
            }
        }
        styleObject = getStyleBySelector( "#" + id );
        return (styleObject != null) ?
            styleObject[property] :
            null;
    }
    else if (isNav4)
    {
        return document[id][property];
    }
    else
    {
        return document.all[id].style[property];
    }
}

/*
 *
 * Given an id and a property (as strings), set
 * the given property of that id to the value provided.
 *
 * The property is set directly on the tag, not in the
 * stylesheet.
 *
 */
function setIdProperty( id, property, value )
{
    if (isNav6)
    {
        var styleObject = document.getElementById( id );
        if (styleObject != null)
        {
            styleObject = styleObject.style;
            styleObject[ property ] = value;
        }
    }
    else if (isNav4)
    {
        document[id][property] = value;
    }
    else if (isIE4)
    {
         document.all[id].style[property] = value;
    }
}

/*
 *
 * Return a division's document
 * 
 */
function getDocument( divName )
{
    var doc;

    if (isNav4)
    {
        doc = window.document[divName].document;
    }
    else if (isNav6)
    {
        doc = document;
    }
    else if (isIE4)
    {
        doc = document;
    }
    return doc;
}


function getObject( nameStr )
{
	
    if (document.getElementById)
    {
        return document.getElementById( nameStr );
    }
    else if (isIE4)
    {
        return document.all[nameStr];
    }
}

function loadGirlPage()
{
	document.location.href = '/girls/' + document.selectGirl.girl.value + '/';
}

function changeBoard()
{
	document.location.href = '/boards/' + document.selectBoard.board.value + '/';
}

function insertSmilie(smilie, target)
{
	if (!target) 
	{
		target = 'insertTarget';
	}
	
	document.getElementById(target).value += ' ' + smilie + ' ';
	document.getElementById(target).focus();
	//return false;
}

function insertFormat(format, target)
{
	var insert = '';
	if (!target) 
	{
		target = 'insertTarget';
	}
	
	switch(format)
	{
		case 'url':
			var url = prompt("Enter the address of the web page you are linking", "http://");
			var title = prompt("Enter the title of the web page you are linking.  For example, if you entered http://suicidegirls.com, you might use 'SuicideGirls'.", "");
			insert = "[URL="+url+"]"+title+"[/URL]";
		break;
		
		case 'member':
			var member = prompt("Enter the name of the member", "");
			insert = "[MEMBER="+member+"]";	
		break;

		case 'email':
			var email = prompt("Enter the complete email address (someone@somewhere.com) that you wish to add.", "");
			insert = "[EMAIL]"+email+"[/EMAIL]";
		break;
			
		case 'image':
			var image = prompt("Enter the complete URL for the image you wish to display.", "http://");
			insert = "[IMG]"+image+"[/IMG]";	
		break;
				
		case 'bold':
			var bold = prompt("Enter the text that you wish to make bold.", "");
			insert = "[B]"+bold+"[/B]";
		break;		
		
		case 'italics':
			var italics = prompt("Enter the text that you wish to italicize.", "");
			insert = "[I]"+italics+"[/I]";	
		break;	
					
		case 'quote':
			insert = "\n[QUOTE]\n\n[/QUOTE]";
		break;	
				
		case 'code':
			insert = "\n[CODE]\n\n[/CODE]";	
		break;
		
		case 'liststart':
			insert = "\n[LIST]\n";
		break;	
		
		case 'listitem':
			var item = prompt("Enter the new list item.  Note that each list group must be preceeded by a List Start and the entire list group must end with a List End (in order to display properly).", "");
			insert = "[LISTITEM]"+item+"[/LISTITEM]";
		break;	
		
		case 'listend':
			insert = "\n[/LIST]\n";
		break;			
	}
	document.getElementById(target).value += insert;
	document.getElementById(target).focus();			
}

function popWindow(url,width,height)
{
	//default pos
	xposition = 0;
	yposition = 0;
	
	//center it
	if ((parseInt(navigator.appVersion) >= 4 ))
	{
		xposition = (screen.width - width) / 2;
		yposition = (screen.height - height) / 2;
	}
	
	args = "width=" + (width) + "," 
	+ "height=" + (height) + "," 
	+ "location=0," 
	+ "menubar=0,"
	+ "resizable=1,"
	+ "scrollbars=auto,"
	+ "status=1," 
	+ "titlebar=0,"
	+ "toolbar=0,"
	+ "hotkeys=0,"
	+ "left=" + xposition + ","
	+ "top=" + yposition;
	window.open(url,'sgPop' + Math.floor(Math.random()*1000000000),args);
}

/*
 * opens link in parent window
 * for popups
 */
function main(url)
{
opener.location.href=url;
}

/***************/
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
   var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
   if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
