/*
	suicidegirls.com
	
	file: 			/js/common.js
	description:	common site javascript, dom tools, pop windows, smilies, etc
	
	author:			sawks
	revision:		1.1.1
	date:			2:28 06/10/03
*/

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 changeGeo()
{
	document.location.href = '/girls/geographic/' + document.selectGeo.geo.value + '/';
}

function changePhotographer()
{
	document.location.href = '/girls/photographer/' + document.selectPhotographer.photographer.value + '/';
}

function changeCategory()
{
	document.location.href = '/groups/category/' + document.selectCategory.category.value + '/';
}

function changeSection()
{
	document.location.href = '/albums/' + document.selectSection.section.value + '/';
}

function changePeriod(affId, admin)
{
	if (admin) {
		document.location.href = '/admin/affiliates/' + affId + '/' + document.selectPeriod.period.value + '/';
	} else {
		document.location.href = '/affiliates/' + affId + '/' + document.selectPeriod.period.value + '/';
	}
}

function changeProject(section)
{
	document.location.href = '/admin/projects/' + section + '/' + document.selectProject.category.value + '/' + document.selectProject.type.value + '/' + document.selectProject.user.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 'spoiler':
			insert = "[SPOILER]\n\n[/SPOILER]";
		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);
}

function popWindowScroll(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=1,"
	+ "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 changeTimezoneDropDown() {

	continentSelected  = document.forms.myForm.continent.options[document.forms.myForm.continent.selectedIndex].value;

    // build the region list
    regionArray  = region[continentSelected];
	regionidArray = regionid[continentSelected];
    destList        = document.forms.myForm.region.options;
    
    //empty the options list
    destList.length = 0;

    //populate region options list
    //first add dashes option
    destList[0] = new Option('PLEASE CHOOSE', '');

    //now populate with data set in above arrays
    for (loop = 0; loop < regionArray.length; loop++) {
        //because the 0th position contains dashes, we want option[1] = data[0], option[2] = data[1] and so on
        destList[loop + 1] = new Option(regionArray[loop], regionidArray[loop]);
    }

    //select the region if its in the list (recursively look through array) - we only need to do this if a region has been selected
    if (regionSelected) {
      for (i = 1; i < destList.length; i++){
          if(destList[i].value == regionSelected){
              destList.selectedIndex = i;
              break; //no need to keep looking through, now we're done
          }
      }
    }
}

function showDiv(link){
	mom = link.parentNode;
	if (mom.children){
		//this is for IE
		mom.children[1].style.display='block';
	} else {
		//this is for everything else
		mom.childNodes[3].attributes[0].value ='display:block';
	}
}

function disableSubmit( formName ) {
	eval('document.forms.' + formName + '.submit.value = \'Posting...\'');
	eval('document.forms.' + formName + '.submit.disabled = true;');
	return;
}

function randomClip() {
	var clipText = document.getElementById('clipText');
	var randChoose = Math.round(Math.random() * 100);
	if (randChoose > 50) {
		var randNumber = Math.round( Math.random() * (clips['notice'].length - 1) );
		clipText.innerHTML = clips['notice'][ randNumber ];
	} else {
		var randNumber = Math.round( Math.random() * (clips['news'].length - 1) );
		clipText.innerHTML = clips['news'][ randNumber ];
	}
	return;
}

function nextClip()
{
	var clipText = document.getElementById('clipText');
	activeClip++;
	if (activeClip > clips[clipStyle].length-1) {
		if (clipStyle=='news') {
			clipStyle='notice';
		} else {
			clipStyle='news';
		}
		activeClip=0;
	}
	clipText.innerHTML = clips[clipStyle][activeClip];
}

function prevClip()
{
	var clipText = document.getElementById('clipText');
	activeClip--;
	if (activeClip < 0) {
		if (clipStyle=='news') {
			clipStyle='notice';
		} else {
			clipStyle='news';
		}
		activeClip=clips[clipStyle].length-1;
	}
	clipText.innerHTML = clips[clipStyle][activeClip];
}

function toggleDVDShippingAddress()
{
	var shippingToggle = document.getElementById('shippingAddress').style.display;
	
	if ( shippingToggle == 'block') {
		document.getElementById('shippingAddress').style.display = 'none';
	} else {
		document.getElementById('shippingAddress').style.display = 'block';
	}

	return;
};

function toggleVideoArchive()
{
	var archiveToggle = document.getElementById('moreVideo').style.display;
	
	if ( archiveToggle == 'block') {
		document.getElementById('moreVideo').style.display = 'none';
	} else {
		document.getElementById('moreVideo').style.display = 'block';
	}

	return;
}

function toggleAudioArchive()
{
	var archiveToggle = document.getElementById('moreAudio').style.display;
	
	if ( archiveToggle == 'block') {
		document.getElementById('moreAudio').style.display = 'none';
	} else {
		document.getElementById('moreAudio').style.display = 'block';
	}

	return;
}