// JScript File

// global enter-event submitter
var enterTargetControlID = '';

// set the global enter-event submitter
function setEnterEvent(targetControlUniqueID)
{
	document.onkeydown = doEnterClick;
	enterTargetControlID = targetControlUniqueID;
}

// fire the global enter-event
function doEnterClick(evnt)
{
	if (enterTargetControlID  != '')
	{
		if (!evnt) {
			evnt = window.event;
		}
		if (evnt.which || evnt.keyCode) {
			if ((evnt.which == 13) || (evnt.keyCode == 13)) {
				var submitButton = document.getElementById(enterTargetControlID);
				if (submitButton != null)
				{
					if (submitButton.style.display != 'none')
					{
						submitButton.focus();
					}
					submitButton.click();
				}
			}
		}
	}
}

// disables the postback on the enter event
function disableEnter(evnt)
{
	if (!evnt) {
		evnt = window.event;
	}
	if (evnt.which || evnt.keyCode) {
		if ((evnt.which == 13) || (evnt.keyCode == 13)) {
			return false;
		}
	}
	return true;
}

// PostBacks after the "Enter"-key was pressed
// does a .net PostBack with validation options
function doPostBackOnEnter(event, eventTarget, eventArgument, validationGroup)
{
	if (event.which || event.keyCode) {
		if ((event.which == 13) || (event.keyCode == 13)) {
			if (validationGroup != null)
			{
				WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(eventTarget, eventArgument, true, validationGroup, '', false, true));
			}
			else
			{
				WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(eventTarget, eventArgument, false, '', '', false, true));
			}
		}
	}
}

// Clickes an element after the "Enter"-key was pressed
// example: 
// <input type=\"text\" onKeyDown=\"javascript:doClickOnEnter(event, " + submitbutton.ClientID + ", 'myTarget', 'myArgument', 'valGroup');\"/>
function doClickOnEnter(event, targetControlUniqueID, eventTarget, eventArgument, validationGroup)
{
	if (event.which || event.keyCode) {
		if ((event.which == 13) || (event.keyCode == 13)) {
			setEnterEvent('');
			
			var validationResult = true;
			if (validationGroup != '')
			{
				if (typeof(Page_ClientValidate) == 'function') {
					validationResult = Page_ClientValidate(validationGroup);
				}
			}
			if (validationResult)
			{
				__customPostBack(eventTarget, eventArgument, targetControlUniqueID);
			}
		}
	}
	return false;
}

// Custom click on a PostBack control (button, linkbutton) for non server side controls
function __customPostBack(eventTarget, eventArgument, submitButtonId) 
{
	if (!theForm.onsubmit || (theForm.onsubmit() != false)) 
	{
		theForm.__EVENTTARGET.value = eventTarget;
		theForm.__EVENTARGUMENT.value = eventArgument;
		var submitButton = document.getElementById(submitButtonId);
		if (submitButton != null)
		{
			//alert(eventTarget + " | " + eventArgument + " | " + submitButtonId);
			if (submitButton.style.display != 'none')
			{
				submitButton.focus();
			}
			submitButton.click();
		}
	}
}

// Moves the current window to the center of the screen
function centerWindow(){
	self.moveTo(screen.height?(screen.width - document.documentElement.clientWidth)/2:300,screen.height?(screen.height - document.documentElement.clientHeight)/2:200);
}

// hide or show cms menu
function show_object(strObjectId) {
	var objDiv = document.getElementById(strObjectId);

	if (objDiv.style.visibility == "hidden") {
		objDiv.style.visibility = "visible";
	} else {
		objDiv.style.visibility = "hidden";
	}
}

//window.open('/DE/Showpage.aspx?pageID=36&amp;isins=' + GetISINArray('chkISINSelect'), 'CompareProducts', '');
function compareProducts(link, checkboxName, tooFew, tooMuch)
{
	var isinString = GetISINArray(checkboxName,2,3);
	if (isinString == -1)
	{
		alert(tooFew);
		return false;
	}
	if (isinString == -2)
	{
		alert(tooMuch);
		return false;
	}
	var now = new Date();
	window.open(link + '&isins=' + isinString, 'CompareProducts'+now.getTime(), 'width=830, height=790, location=no, menubar=no, resizeable=no, scrollbars=no, status=no, toolbar=no');
}

// returns a ,-seperated string of clicked checkbox isins
function GetISINArray(checkboxID, min, max)
{
	var isinString = "";
	var checked = 0;
	checkboxes = document.getElementsByName(checkboxID);
	for (var i = 0; i < checkboxes.length; i++)
	{
		if (checkboxes[i].checked == true)
		{
			if (isinString.length > 0)
			{
				isinString += ",";
			}
			isinString += checkboxes[i].value;
			checked++;
		}
	}
	if (min > -1 && checked < min)
	{
		return -1;
	}
	
	if (max > -1 && checked > max)
	{
		return -2;
	}

	return isinString;
}

//For ProductInfo: Frame switch
function switchFrame(kat, id, frameCount)
{
	for(i=0;i<frameCount;i++)
	{
		document.getElementById(kat + '_' + i).style.display = 'none';
	}
	document.getElementById(kat + '_' + id).style.display = 'block';
}

//TopFlopBox: Tab and Div switch
function setTab(id, item, count){
	for(i=0;i<count;i++){
		if ((document.getElementById(id + '_' + i + '_tab')) && (document.getElementById(id + '_' + i + '_div')))
		{ 
			document.getElementById(id + '_' + i + '_tab').className = '';
			document.getElementById(id + '_' + i + '_div').style.display = 'none';
		}
	}
	if ((document.getElementById(id + '_' + item + '_tab')) && (document.getElementById(id + '_' + item + '_div')))
	{
		document.getElementById(id + '_' + item + '_tab').className = 'selected';
		document.getElementById(id + '_' + item + '_div').style.display = 'block';
	}
}

function toggle(newDiv, openDiv)
{
	// close open div
	if (openDiv.length > 0)
	{
		document.getElementById(openDiv).style.display = 'none';
	}
	
	// toggle new div
	if (document.getElementById(newDiv).style.display != 'none') 
	{
		document.getElementById(newDiv).style.display = 'none';
	}
	else 
	{
		document.getElementById(newDiv).style.display = '';
	}
	return newDiv;
}

function setHiddenValue(elementId, value, buttonId) {
	var submit = false;
	if (value.length > 2)
	{
		var element1 = document.getElementById(elementId.toLowerCase());
		
		if (element1 != null)
		{
			element1.value = value;
			
			var submitButton = document.getElementById(buttonId);
			if (submitButton != null) {
				if (submitButton.style.display != 'none')
				{
					submitButton.focus();
				}
				submitButton.click();
			}
		}
	}
}

function createFlashChart(chartName, importer, xmlCreatorPath, isin, type)
{
	document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" width="458" height="400" title="Graph">');
	document.write('<param name="movie" value="Flash/' + chartName + '?path=' + importer + '?target=' + xmlCreatorPath + '|' + isin+  '|' + type + '" />');
	document.write('<param name="quality" value="high" />');
	document.write('<embed src="Flash/' + chartName + '?path=' + importer + '?target=' + xmlCreatorPath + '|' + isin + '|' + type + '" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="458" height="400"></embed>');
	document.write('</object>');
}

function writeFlash(htmlString)
{
	document.write(htmlString);
}





// Select and deselect tabs and charts. Modifying layout by setting className
function toggleCharts(newDiv, openDiv, clickedTab, nameArray)
{
	for (var i = 0; i < nameArray.length; i++)
	{
		if(nameArray[i] == clickedTab)
		{
			document.getElementById(nameArray[i]).className = 'selected';						
		}
		else
		{
			var foundElement = document.getElementById(nameArray[i]);
			// Make sure the element exists
			if(foundElement)
				foundElement.className = '';
		}
	}
  // close open div
	if (openDiv.length > 0)
	{
		document.getElementById(openDiv).style.display = 'none';
	}
	
	// toggle new div
	if (document.getElementById(newDiv).style.display != 'none') 
	{
		document.getElementById(newDiv).style.display = 'none';
	}
	else 
	{

		document.getElementById(newDiv).style.display = '';
	}
	return newDiv;
}

// function for multiple chooser
function MoveListElement(from, to, isMultiple)
{
	listFrom = document.getElementById(from);
	listTo = document.getElementById(to);
	
	if (isMultiple)
	{
		for (i = 0; i < listFrom.length; ++i) 
		{
			if (listFrom.options[i].selected == true) 
			{
				newElmt = new Option(listFrom.options[i].text, listFrom.options[i].value, false, false);
				listTo.options[listTo.length] = newElmt;
				listFrom.options[i] = null;
				i--;
			}
		}
	}
	else
	{
		newElmt = new Option(listFrom.options[listFrom.options.selectedIndex].text, listFrom.options[listFrom.options.selectedIndex].value, false, false);
		listTo.options[listTo.length] = newElmt;
		listFrom.options[listFrom.options.selectedIndex] = null;
	}
	return false;
}

// function for multiple chooser (selectes all entries in a <select>)
function SelectAll(dropdownID)
{
	var dropdown = document.getElementById(dropdownID);
	if (dropdown != null)
	{
		/*dropdown.focus();*/
	
		for(i = 0; i < dropdown.length; i++)
		{
			dropdown[i].selected = true;
		}
	}	
}
