/* 
 * Copyright Notice. 
 * This code was originally created by yCode: http://www.yCode.com  
 * Any modifications to this code can only be made upon purchase from
 * yCode provided that this notice remains in the source code. 
 *
 */

//spread_sheet_demo.js

//maintain the table width, if any (it'll be lost when the table
// layout is changed to "fixed")
var original_table_width	= "";

var mySpreadSheet			= null;
/*=========================================================
initializeSpreadSheet() -- creates spread sheet object
--------------------------------------------------------- */
function initializeSpreadSheet( bLarge )
{
	var nSize;

	if ( bLarge ) {
		ss_asColumnHeaderTags = new Array( 101 );
		var iInd; 

		for ( iInd = 0; iInd < 101; iInd++ ) {
			ss_asColumnHeaderTags[ iInd ] = iInd + 1;
		}
		nSize = 80;
	}
	else {
		nSize = 5;
	}

	// Create spreadsheet
	mySpreadSheet= new yCodeSpreadSheet("spreadSheetID");
	if ( mySpreadSheet == null ) {
		alert( "Error creating spreadsheet" );
		return;
	}

	// Initialize spreadsheet defaults
	mySpreadSheet.setActivationEvent( true );
	mySpreadSheet.setFunctionName( "sum" );
	mySpreadSheet.setLayout( false, 1, 50 );
	mySpreadSheet.setHeader( 2, true );
	mySpreadSheet.setColumnResize( true );

	mySpreadSheet.setNumberRows( nSize );
	mySpreadSheet.setNumberColumns( nSize );
}

function UIInitializeControls()
{
	var oOptionsFrame = find_frame( top, "options_frame" );
	var oSpreadSheetFrame = find_frame( top, "spreadsheet_frame" );
	if ( ( oOptionsFrame == null ) || ( oSpreadSheetFrame == null ) ) {
		return;
	}
	if ( oSpreadSheetFrame.mySpreadSheet == null ) {	
		return;
	}

	var iInd, iLen;
	
	// Activation event
	var iEvent = oSpreadSheetFrame.mySpreadSheet.getActivationEvent();
	oOptionsFrame.document.all.rb_actevent[ iEvent - 1 ].checked = true;

	// Number of rows and columns
	var iRows = oSpreadSheetFrame.mySpreadSheet.getNumberRows();
	iLen = oOptionsFrame.document.all.lb_numrows.options.length;
	for ( iInd = 0; iInd < iLen; iInd++ ) {
		if ( oOptionsFrame.document.all.lb_numrows.options[iInd].value == iRows ) {
			oOptionsFrame.document.all.lb_numrows.options[iInd].selected = true;
			break;
		}
	}
	var iCols = oSpreadSheetFrame.mySpreadSheet.getNumberColumns();
	iLen = oOptionsFrame.document.all.lb_numcolumns.options.length;
	for ( iInd = 0; iInd < iLen; iInd++ ) {
		if ( oOptionsFrame.document.all.lb_numcolumns.options[iInd].value == iCols ) {
			oOptionsFrame.document.all.lb_numcolumns.options[iInd].selected = true;
			break;
		}
	}

	// Headers
	var iHeaderValue = oSpreadSheetFrame.mySpreadSheet.getHeader();
	iLen = oOptionsFrame.document.all.lb_header.options.length;

	for ( iInd = 0; iInd < iLen; iInd++ ) {
		if ( oOptionsFrame.document.all.lb_header.options[iInd].value == iHeaderValue ) {
			oOptionsFrame.document.all.lb_header.options[iInd].selected = true;
			break;
		}
	}

	// Function name
	var sFunctionName = oSpreadSheetFrame.mySpreadSheet.getFunctionName();
	iLen = oOptionsFrame.document.all.lb_function.options.length;
	for ( iInd = 0; iInd < iLen; iInd++ ) {
		if ( oOptionsFrame.document.all.lb_function.options[iInd].value == sFunctionName ) {
			oOptionsFrame.document.all.lb_function.options[iInd].selected = true;
			break;
		}
	}

	// Allow column resize
	if ( oSpreadSheetFrame.mySpreadSheet.getColumnResize() ) {
		oOptionsFrame.document.all.lb_columnresize.options[0].selected = true;
	}
	else {
		oOptionsFrame.document.all.lb_columnresize.options[1].selected = true;
	}

	// Spreadsheet layout
	var iLayout = oSpreadSheetFrame.mySpreadSheet.getLayout();
	if ( iLayout != -1 ) {
		oOptionsFrame.document.all.rb_tableauto[iLayout].checked = true;
		if ( iLayout == 1 ) {
			oOptionsFrame.document.all.text_cellwidth.value = oSpreadSheetFrame.mySpreadSheet.getFixedCellWidth();
		}
		else if ( iLayout == 2 ) {
			oOptionsFrame.document.all.text_tablewidth.value = oSpreadSheetFrame.mySpreadSheet.getLayoutResize();
		}
	}
	else {
		oOptionsFrame.document.all.rb_tableauto[0].checked = false;
		oOptionsFrame.document.all.rb_tableauto[1].checked = false;
		oOptionsFrame.document.all.rb_tableauto[2].checked = false;
	}
	UIEnableLayoutControls();
}

function UIEnableLayoutControls()
{
	var oOptionsFrame = find_frame( top, "options_frame" );
	if ( oOptionsFrame == null ) {
		return;
	}

	if ( !oOptionsFrame.document.all.rb_tableauto[1].checked ) {
		oOptionsFrame.document.all.text_cellwidth.value = "";
		oOptionsFrame.document.all.text_cellwidth.readOnly = true;
	}
	else {
		oOptionsFrame.document.all.text_cellwidth.readOnly = false;
	}

	if ( !oOptionsFrame.document.all.rb_tableauto[2].checked ) {
		oOptionsFrame.document.all.text_tablewidth.value = "";
		oOptionsFrame.document.all.text_tablewidth.readOnly = true;
	}
	else {
		oOptionsFrame.document.all.text_tablewidth.readOnly = false;
	}

	oOptionsFrame.document.all.btn_cellfixedsize.disabled = 
	     !oOptionsFrame.document.all.rb_tableauto[0].checked &&
		 !oOptionsFrame.document.all.rb_tableauto[1].checked &&
		 !oOptionsFrame.document.all.rb_tableauto[2].checked;
}

//=========================================================
//UIsetClick() -- toggles single/double click
//---------------------------------------------------------
function UISetClick(bClick)
{
	var oSpreadSheetFrame = find_frame( top, "spreadsheet_frame" );
	if ( oSpreadSheetFrame == null ) {
		return;
	}
	oSpreadSheetFrame.mySpreadSheet.setActivationEvent( bClick );
}


//=========================================================
//UIUpdateSpreadSheetRows() -- adds or removes rows 
//  from the spread sheet
//---------------------------------------------------------
function UIUpdateSpreadSheetRows()
{
	var oOptionsFrame = find_frame( top, "options_frame" );
	var oSpreadSheetFrame = find_frame( top, "spreadsheet_frame" );
	if ( ( oOptionsFrame == null ) || ( oSpreadSheetFrame == null ) ) {
		return;
	}
	try
	{
		oSpreadSheetFrame.mySpreadSheet.setNumberRows(oOptionsFrame.document.all.lb_numrows.value);
	}
	catch (e)
	{
		alert(e);
	}
}


//=========================================================
//UIUpdateSpreadSheetColumns() -- adds or removes columns 
// from the spread sheet
//---------------------------------------------------------
function UIUpdateSpreadSheetColumns()
{
	var oOptionsFrame = find_frame( top, "options_frame" );
	var oSpreadSheetFrame = find_frame( top, "spreadsheet_frame" );
	if ( ( oOptionsFrame == null ) || ( oSpreadSheetFrame == null ) ) {
		return;
	}
	try
	{
		oSpreadSheetFrame.mySpreadSheet.setNumberColumns(oOptionsFrame.document.all.lb_numcolumns.value);
	}
	catch (e)
	{
		alert(e);
	}
}

function UISetLayout( bAutomatic, iResizeOption, iWidth )
{
	var oOptionsFrame = find_frame( top, "options_frame" );
	var oSpreadSheetFrame = find_frame( top, "spreadsheet_frame" );
	if ( ( oOptionsFrame == null ) || ( oSpreadSheetFrame == null ) ) {
		return;
	}
	if ( !bAutomatic && ( iWidth == "" ) ) {
			alert( "Please specify the width" );
			return;
	}
	try
	{
		oSpreadSheetFrame.mySpreadSheet.setLayout(bAutomatic, iResizeOption, iWidth);
	}
	catch (e)
	{
		alert(e);
		return;
	}
} 

function UISetColumnResize( bResizeAllowed )
{
	var oSpreadSheetFrame = find_frame( top, "spreadsheet_frame" );
	if ( oSpreadSheetFrame == null ) {
		return;
	}
	oSpreadSheetFrame.mySpreadSheet.setColumnResize( bResizeAllowed );
}

//=========================================================
//UISetFunction() -- sets the spread sheet function
//---------------------------------------------------------
function UISetFunction(functionName)
{
	var oSpreadSheetFrame = find_frame( top, "spreadsheet_frame" );
	if ( oSpreadSheetFrame == null ) {
		return;
	}
	try
	{
		oSpreadSheetFrame.mySpreadSheet.setFunctionName(functionName);
	}
	catch (e)
	{
		alert(e);
	}
}

function UIsetSetHeader( iHeader )
{
	var oSpreadSheetFrame = find_frame( top, "spreadsheet_frame" );
	if ( oSpreadSheetFrame == null ) {
		return;
	}
	if ( iHeader < 0 ) {
		oSpreadSheetFrame.mySpreadSheet.setHeader( 2, false );
	}
	else if ( iHeader < 1 ) {
		oSpreadSheetFrame.mySpreadSheet.setHeader( 0, true );
		oSpreadSheetFrame.mySpreadSheet.setHeader( 1, false );
	}
	else if ( iHeader < 2 ) {
		oSpreadSheetFrame.mySpreadSheet.setHeader( 0, false );
		oSpreadSheetFrame.mySpreadSheet.setHeader( 1, true );
	}
	else {
		oSpreadSheetFrame.mySpreadSheet.setHeader( 2, true );
	}
}

function UIDoMouseUp() 
{
	if ( ss_iColResized < 0 ) {
		return;
	}
	var oOptionsFrame = find_frame( top, "options_frame" );
	var oSpreadSheetFrame = find_frame( top, "spreadsheet_frame" );
	if ( ( oOptionsFrame == null ) || ( oSpreadSheetFrame == null ) ) {
		return;
	}
	oOptionsFrame.document.all.rb_tableauto[0].checked = false;
	oOptionsFrame.document.all.rb_tableauto[1].checked = false;
	oOptionsFrame.document.all.rb_tableauto[2].checked = false;
	UIEnableLayoutControls();
}



/*
//=========================================================
//UIretrieveRowValues() -- retrieves row values
//---------------------------------------------------------
function UIretrieveRowValues()
{
	try
	{
		var rowNumber = document.all.lbRow_Values.value;
		var rowValues = mySpreadSheet.retrieveRowValues( rowNumber );
		var j;
		var temp="Values for row number " + rowNumber + ":\n";
		for (j=0; j < rowValues.length; j++)
		{
			temp+=rowValues[j] + "\n";
		}
		alert( temp );

	}
	catch (e)
	{
		alert(e);
	}
}


//=========================================================
//UIretrieveColumnValues() -- retrieves column values
//---------------------------------------------------------
function UIretrieveColumnValues()
{
	try
	{
		var columnNumber = document.all.lbColumn_Values.value;
		var columnValues = mySpreadSheet.retrieveColumnValues( columnNumber );
		var j;
		var temp="Values for column number " + columnNumber + ":\n";
		for (j=0; j < columnValues.length; j++)
		{
			temp+=columnValues[j] + "\n";
		}
		alert( temp );

	}
	catch (e)
	{
		alert(e);
	}
}


//=========================================================
//UIretrieveCellValue() -- retrieves cell value
//---------------------------------------------------------
function UIretrieveCellValue()
{
	try
	{
		var rowNumber = document.all.lbRow_Values.value;
		var columnNumber = document.all.lbColumn_Values.value;
		var cellValue = mySpreadSheet.retrieveCellValue( rowNumber, columnNumber );
		alert( "Cell value for row " + rowNumber + ", column " + columnNumber + ":\n" + cellValue );

	}
	catch (e)
	{
		alert(e);
	}
}

//=========================================================
//UIsetCellValue() -- sets cell value
//---------------------------------------------------------
function UIsetCellValue()
{
	try
	{
		var rowNumber = document.all.lbRow_setDataValues.value;
		var columnNumber = document.all.lbColumn_setDataVValues.value;
		var strValue = document.all.setDataTextID.value;
		mySpreadSheet.setCellValue( rowNumber, columnNumber, strValue );
	}
	catch (e)
	{
		alert(e);
	}
}
*/
