// top search


// expand, collapse examples

function toggleDisplay(blockId, titleId)
{
	var block = document.getElementById(blockId);
	var title = document.getElementById(titleId);
	if (block.className.indexOf("qsfNone") == -1)
	{
		block.className = block.className + " qsfNone";
		title.className = "qsfSubtitleCollapsed";
	}
	else
	{
		block.className = block.className.replace(/qsfNone/, "");
		title.className = "qsfSubtitle";
	}
	return false;
}


// code viewer new window opener

function showCodeInExternalWindow()
{
	var winSize = ",width=" + (screen.availWidth - 200).toString() + ",height=" + (screen.availHeight - 200).toString();

	var codeViewerContents = document.getElementById("codeContent");
	var wnd = window.open("", "codeViewer", "status=0,toolbar=0,scrollbars=1,resizable=1" + winSize);
	wnd.document.open();
	wnd.document.write("<html><head>");
	wnd.document.write("<title>");
	wnd.document.write(document.title);
	wnd.document.write("</title></head><body>");
	wnd.document.write(codeViewerContents.innerHTML);
	wnd.document.write("</body></html>");
	wnd.document.close();
}

// Customer Skins thumb container width adjuster

function setThumbTableWidth()
{
	if (document.getElementById(SkinChooserTableID).clientWidth != qsfClientSkinsWidth)
	{
		qsfClientSkinsWidth = document.getElementById(SkinChooserTableID).clientWidth;
		document.getElementById("qsfClientSkins").style.width = qsfClientSkinsWidth + "px";
		document.getElementById(CustomerSkinsThumbID).style.zoom = 1;
		window.setTimeout("setThumbTableWidth()", 2000);
	}
}

// demo thumbnails slider

function InitDemoSlider(sender, eventArgs)
{
	var sliderId = sender.get_id();
	eval("initialValue_" + sliderId + " = sender.get_minimumValue() + 10;");
	
	HandleClientValueChange(sender, null);
}

function HandleClientValueChange(sender, eventArgs)
{
	var sliderId = sender.get_id();
	
	var wrapper = document.getElementById(sliderId + "_wrapper");
	var content = document.getElementById(sliderId + "_content");

	var oldValue = (eventArgs) ? eventArgs.get_oldValue() : (sender.get_minimumValue() + 10);
	var change = sender.get_value() - oldValue;

	var contentWidth = content.scrollWidth - wrapper.offsetWidth;
	var calculatedChangeStep = contentWidth / (((sender.get_maximumValue() - 10) - (sender.get_minimumValue() + 10)) / sender.get_slideStep());

	eval("initialValue_" + sliderId + " = initialValue_" + sliderId + " - change * calculatedChangeStep;");

	eval("content.style.left = initialValue_" + sliderId + " + 'px';");
	
	if (sender.get_value() == (sender.get_minimumValue() + 10))
	{
		eval("content.style.left = 0;");
	}
}

function OnClientBeforeValueChange(sender, args)
{
    // In order for the dragHandle of the slider to never leave the track, 
    // the values from -1 to -10 and from 101 and 110 are not valid values.
    var newValue = args.get_newValue();
    if(newValue < 0)
    {
        args.set_cancel(true);
        sender.set_value(0);
    }
    else if(newValue > 100)
    {
        args.set_cancel(true);
        sender.set_value(100);
    }
}