// Encodes user input from the MCE editor.
function encodeMCEInput(element_id, html, body)
{
	return encodeURI(html);
}

// Browser detection
var objDoc, objNav, objApp, objUA, objDom, blnMac, blnWin, blnLin, blnIE, blnIE4, blnIE5x, blnMoz, blnSaf, blnIE5Mac, blnKonq, blnIE5xWin, blnOp;

objDoc = document;
objNav = navigator;
objApp = objNav.appVersion;
objUA = objNav.userAgent;
blnWin = ( objApp.indexOf( 'Win' ) != -1 );
blnMac = ( objApp.indexOf( 'Mac' ) != -1 );
blnLin = ( objUA.indexOf( 'Linux' ) != -1 );

if (!objDoc.layers)
{
	objDom = (objDoc.getElementById);
	blnOp = (objUA.indexOf('Opera') != -1);
	blnKonq = (objUA.indexOf('Konqueror') != -1);
	blnSaf = (objUA.indexOf('Safari') != -1);
	blnMoz = (objUA.indexOf('Gecko') != -1 && !blnSaf && !blnKonq);
	blnIE = (objDoc.all && !blnOp);
	blnIE4 = (blnIE && !objDom);
	blnIE5x = (objDoc.all && objDom);
	blnIE5Mac = (blnMac && blnIE5x);
	blnIE5xWin = (blnWin && blnIE5x);
}

// Prevent drag
if (blnIE)
	document.ondragstart = function () { return false; };

// QuickScor
var quickScorAds = null;
var intChangeAdDelay = 6000;
var intCurrentIndex = 0;
var intFadeStep = 10;
var intFadeDelay = 20;

function changeOpacity(strAdId, intOpacity)
{
	var objAd = document.getElementById(strAdId).style;
	
	if (blnIE)
	{
		objAd.filter = "alpha(opacity=" + intOpacity + ")";
	}
	else
	{
		objAd.opacity = (intOpacity / 100);		
	}
}

function changeAd()
{
	var quickScorAdTable = S.Get("QuickScorAdTable" + adIndexType);
	var quickScorAdTextLinkTable = S.Get("QuickScorAdTextLinkTable");
	var elementIn = null;
	var elementOut = null;
												
	if (!quickScorAds || quickScorAds.length == 0)
	{
		quickScorAdTable = S.Get("QuickScorAdTable1");
		quickScorAdTable.style.display = "none";
		quickScorAdTextLinkTable.style.display = "block";
		return;
	}
	else if (adIndex == (quickScorAds.length -1))
	{
		elementIn = quickScorAdTextLinkTable;
		elementOut = quickScorAdTable;
		adIndex = -2;
	}
	else
	{
		if (firstAd)
		{
			for (var j, x, i = quickScorAds.length; i; j = parseInt(Math.random() * i), x = quickScorAds[--i], quickScorAds[i] = quickScorAds[j], quickScorAds[j] = x);
		}
		
		quickScorAdTextLinkTable.style.display = "none";
		elementOut = quickScorAdTable;
		adIndexType = adIndexType == 1 ? 2 : 1;
		adIndex = (adIndex == -2) ? adIndex = 0 : adIndex + 1;
		elementIn = S.Get("QuickScorAdTable" + adIndexType);
		
		var profileImageLink = S.Get("QuickScorProfileImageLink" + adIndexType);
		var profileImage = S.Get("QuickScorProfileimage" + adIndexType);
		var genderImage = S.Get("QuickScorGenderImage" + adIndexType);
		var profileLink = S.Get("QuickScorProfileLink" + adIndexType);
		var textLink = S.Get("QuickScorTextLink" + adIndexType);
		var quickScorLink = S.Get("QuickScorLink" + adIndexType);
		var imageContainer = S.Get("QuickScorProfileImageContainer");
		
		genderImage.src = themeBasePath + "/Common/Gfx/Icons/icon_gender_" + quickScorAds[adIndex].GenderImageSrc + ".png";
		genderImage.alt = quickScorAds[adIndex].GenderImageAlt;
		genderImage.title = quickScorAds[adIndex].GenderImageAlt;
		textLink.innerHTML = quickScorAds[adIndex].Text;
		textLink.href = qsLink;
		quickScorLink.href = textLink.href;
		profileLink.href = profileLinkBase.replace("/0/", "/" + quickScorAds[adIndex].ProfileID + "/");
		profileLink.innerHTML = quickScorAds[adIndex].ProfileName.replace('&', '&amp;');
		profileImageLink.href = profileLink;
		
		var images = imageContainer.getElementsByTagName("img");
		
		for (var i=0;i<images.length;i++)
		{
			if (images[i].getAttribute("adid") == quickScorAds[adIndex].ID)
			{
				profileImage.src = images[i].src;
				break;
			}
		}
	}
	
	if (!firstAd)
	{
		elementIn.style.display = "block";
		fadeOut(elementOut.id, (100 - intFadeStep));
		fadeIn(elementIn.id, intFadeStep);
		elementOut.style.display = "none";
	}
	else
	{
		elementIn.style.display = "block";
		adIndex = 0;
	}
	
	firstAd = false;
	
	setTimeout("changeAd()", intChangeAdDelay);
}

function fadeOut(strAdId, intOpacity)
{
	changeOpacity(strAdId, intOpacity);

	if (intOpacity > 0)
	{
		setTimeout("fadeOut('" + strAdId + "', " + (intOpacity - intFadeStep) + ");", intFadeDelay);
	}
}

function fadeIn(strAdId, intOpacity)
{
	changeOpacity(strAdId, intOpacity);

	if (intOpacity < 100)
	{
		setTimeout("fadeIn('" + strAdId + "', " + (intOpacity + intFadeStep) + ");", intFadeDelay);
	}
}

// Flash
function embedFlash(containerID, flashVars, swfUrl, width, height)
{
	var parameters = {};
	parameters.flashvars = flashVars;
	parameters.quality = "high";
	parameters.menu = false;
	parameters.wmode = "transparent";

	swfobject.embedSWF(swfUrl, containerID, width, height, "9.0.0", "/Include/Flash/ExpressInstall.swf", null, parameters, "");
}

// Dialogs
function popFileDialog(strPopupUrl)
{
	return window.open(strPopupUrl, "", "height=336,width=770,dialog=yes,modal=yes,status=yes,toolbar=no,menubar=no,location=no");
}

function popVideoPlayerDialog(strPopupUrl)
{
	return window.open(strPopupUrl, "", "height=480,width=370,dialog=yes,modal=yes,status=yes,toolbar=no,menubar=no,location=no");
}

// This type requires ScorExtensions.js.
function CollapsibleContentHandler(collapseImageId, contentContainerId, hiddenId)
{
    this.imageSources =
    {
    	expand: themeBasePath + "/Themes/Naughty/Gfx/Icons/icon_expand.png",
    	collapse: themeBasePath + "/Themes/Naughty/Gfx/Icons/icon_collapse.png"
    };
    
    this.image = S.Get(collapseImageId);
    this.container = S.Get(contentContainerId);
    this.hidden = S.Get(hiddenId);
    
    this.saveHidden();
    S.Event.add(this.image, "click", this.toggle.bindAsEventListener(this));
}

CollapsibleContentHandler.prototype.toggle = function(e)
{
    this.container.style.display = (this.container.style.display == "block" ? "none" : "block");
    this.image.src = (this.container.style.display == "block" ? this.imageSources.collapse : this.imageSources.expand)
    this.saveHidden();
}

CollapsibleContentHandler.prototype.saveHidden = function()
{
    this.hidden.value = (this.container.style.display == "block" ? "true" : "false");
}

function preventFormSubmit(ev)
{
	ev = ev || event;
	S.Event.wrap(ev).preventDefault();
	return false;
}

function pcm(image)
{
	image.oncontextmenu = function(e) { return false; };
	S.Event.add(image, "contextmenu", function(event) { return false; });
	S.Event.add(image, "mousedown", pcmD);
}

function pcmD(ev)
{
	if (ev.preventDefault)
	{
		ev.preventDefault();
	}
	
	return false;
}