sBrowser = "all";
if ( navigator.userAgent.toLowerCase( ).indexOf( "msie" ) != -1 ) {
	sBrowser = "msie";
} else if ( navigator.userAgent.toLowerCase( ).indexOf( 'safari' ) != -1 ) {
	sBrowser = "safari";
}

if ( navigator.platform.toLowerCase( ).indexOf( "mac" ) != -1 ) {
	sPlatform = "mac";
} else {
	sPlatform = "pc";
}

function jumpToOffset( ) {
	sURL = String( document.location );
	aURL = sURL.split( "?" );

	aFile = aURL[ 0 ].split( "/" );
	sFile = aFile[ aFile.length - 1 ];

	iColumnOffset = 0;
	sProjectSummary = "";

	if ( aURL.length > 1 ) {
		var aParams = aURL[ aURL.length - 1 ].split( "&" );

		for ( var i=0; i<aParams.length; i++ ) {
			var aParam = aParams[ i ].split( "=" );

			switch ( aParam[ 0 ] ) {
				case "columnoffset":
					iColumnOffset = parseInt( aParam[ 1 ] );

					break;

				case "projectfile":
					if ( sFile.indexOf( "project" ) != -1 ) {
						var sProjectFile = aParam[ 1 ];
						var aProjectSummary = sProjectFile.split( "sel" );
						var sProjectSummary = aProjectSummary[ 0 ] + aProjectSummary[ aProjectSummary.length - 1 ];
					} else {
						var sProjectFile = aParam[ 1 ];
						var aProjectSummary = sProjectFile.split( "col" );
						aProjectSummary = aProjectSummary[ 0 ].split( "sel" );

						var sProjectSummary = aProjectSummary[ 0 ] + "sum.html";
						
					}

					break;
			
			}

			if ( iColumnOffset != 0 && sProjectSummary != "" ) {
				iColumnOffset %= 4;
				if ( iColumnOffset == 0 ) iColumnOffset = 4;


				if ( sBrowser != "msie" ) {
					var sPagePath = String( document.location );
					var aPagePath = sPagePath.split( "/" );

					var sProjectPath = "";
					for ( var i=0; i<aPagePath.length-1; i++ ) {
						sProjectPath += aPagePath[ i ] + "/";
					}

					sProjectSummary = sProjectPath + sProjectSummary
				}

				var iColsToJump = getColumn( sProjectSummary ) - iColumnOffset;
			} else {
				if ( iColumnOffset == 1 ) {
					var iColsToJump = 0;
				} else {
					var iColsToJump = ( 4 - ( iColumnOffset - 1 ) );
				}
			}

			if ( iColumnOffset != 0 ) {
				if ( sBrowser == "msie" ) {
					scroll( iColsToJump * ( document.body.offsetWidth / 4 - 1 ), 0 );
				} else if ( sBrowser == "safari" ) {
					scroll( iColsToJump * ( ( window.innerWidth / 4 ) + 4 ), 0 );
				} else {
					scroll( iColsToJump * ( window.innerWidth / 4 ), 0 );
				}
			}
		}
	} else {
		if ( sBrowser == "msie" ) {
			scroll( 2 * ( document.body.offsetWidth / 4 - 1 ), 0 );
		} else if ( sBrowser == "safari" ) {
			scroll( 2 * ( document.body.offsetWidth / 4 + 2 ), 0 );
		} else {
			scroll( 2 * ( window.innerWidth / 4 ), 0 );
		}
	}

}

function resetLocation( ) {
	self.moveTo( 0, 0 );
	self.resizeTo( 1024, screen.availHeight );

	window.focus();
}

function getColumn( oCaller ) {
//	alert( "column: " + oCaller );
	var iCurrentColumn = -1;

	var aCaller = oCaller.split( "/" );
	var sCaller = aCaller[ aCaller.length - 1 ];

	if ( typeof oCaller != 'undefined' ) {
		for ( var i=1; i<=iColumns; i++ ) {
			if ( i < 10 ) sColName = "col0" + i
			else sColName = "col" + i;

			if ( sBrowser == "msie" ) {
				if ( document.getElementById( sColName ).src == sCaller ) {
					iCurrentColumn = i;
				}
			} else {
				if ( document.getElementById( sColName ).src == oCaller ) {
					iCurrentColumn = i;
				}
			}
		}
	}

	return iCurrentColumn;
}

function jumpToColumn( iColNum, iNumCols ) {
	window.clearTimeout( oScrollTimeOut );

	if ( sBrowser == "msie" ) {
		scrollPage( ( iColNum - 1 ) * ( ( document.body.offsetWidth ) / 4 - 1 ), 0, iColNum, iNumCols ); 
	} else {
		scrollPage( ( iColNum - 1 ) * ( window.innerWidth / 4 ), 0, iColNum, iNumCols ); 
	}
}

function openPage( sURL, oCaller ) {
	if ( typeof oCaller != 'undefined' ) {
		var iCurrentColumn = getColumn( oCaller );
		var iColOffset = 0;

		if ( iCurrentColumn != -1 ) {
			if ( sBrowser == "msie" ) {
				var iColWidth = document.body.offsetWidth / 4;
				var iScrollX  = document.body.scrollLeft;
			} else {
				var iColWidth = window.innerWidth / 4;
				var iScrollX  = self.pageXOffset;
			}

			iColOffset = Math.round( ( iCurrentColumn * iColWidth - iScrollX ) / iColWidth );
		}

//		alert( "offset: " + iColOffset );
		if ( oCaller.indexOf( "sel" ) != -1 ) {
			var oCaller = oCaller.split( "/" );
			var aFileName = oCaller[ oCaller.length - 1 ].split( "#" );
			var sFileName = aFileName[ 0 ];

			window.location.href = sURL + "?columnoffset=" + iColOffset + "&projectfile=" + sFileName;
		} else {
			window.location.href = sURL + "?columnoffset=" + iColOffset;
		}
	} else {
		window.location.href = sURL;
	}
}

function scrollPage( iLocX, iLocY, iColNum, iNumCols ) {	
	if ( sBrowser == "msie" ) {	
		var iScrollX = document.body.scrollLeft;
		var iScrollY = document.body.scrollTop;
	} else {
		var iScrollX = self.pageXOffset;
		var iScrollY = self.pageYOffset;
	}

	var iDstX = ( iLocX - iScrollX ) * 0.1;
	if ( iDstX < 0 ) {
		iDstX = Math.floor( iDstX );
	} else {
		iDstX = Math.ceil( iDstX );
	}

	var iDstY = ( iLocY - iScrollY ) * 0.1;
	if ( iDstY < 0 ) {
		iDstY = Math.floor( iDstY );
	} else {
		iDstY = Math.ceil( iDstY );
	}

	var iEndX = iScrollX + iDstX;
	var iEndY = iScrollY + iDstY;

	if ( Math.abs( iEndX - iLocX ) < 1 && Math.abs( iEndY - iLocY ) < 1 ) {
		scroll( iLocX, iLocY );	

		if ( typeof iColNum != 'undefined' ) {
			if ( iNumCols == undefined ) {
				iNumCols = 1;
				sAnchor = "";
			} else {
				sAnchor = "1";
			}

			if ( iColNum < 10 ) { sPrefix = "0" } else { sPrefix = "" };
			objTargetCol = top.document.getElementById( 'col' + sPrefix + iColNum ).src;
			syncFrames( sAnchor, 1, iNumCols, objTargetCol );
		}

		window.clearTimeout( oScrollTimeOut );
	} else {
		scroll( iEndX, iEndY );

		oScrollTimeOut = window.setTimeout( 'scrollPage( ' + iLocX + ', ' + iLocY + ', ' + iColNum + ', ' + iNumCols + ' )', 10 );
	}	
}

function setColumSize( iNumCols ) {
	iColumns = iNumCols;

	for ( var i=1; i<=iNumCols; i++ ) {	
		var sColName = "col";
		if ( i < 10 ) sColName += "0" + i
		else sColName += i;

		if ( sBrowser == "msie" ) {
			document.getElementById( sColName ).width  = document.body.offsetWidth / 4 - 1;

			if ( sPlatform == "mac" ) {
				document.getElementById( sColName ).height = document.body.offsetHeight;
			} else {
				document.getElementById( sColName ).height = document.body.offsetHeight - 20;
			}
		} else {
			document.getElementById( sColName ).width  = window.innerWidth / 4;

			if ( sBrowser == "safari" ) {
				document.getElementById( sColName ).height = window.innerHeight; // - 20; ??
			} else{
				document.getElementById( sColName ).height = window.innerHeight - 16;
			}	
		}
	}

	jumpToOffset( );
}

oScrollTimeOut = undefined;