//
//  JavaScript for sending mail on Anova Solutions website
//  
//  (C) Copyright Anova Solutions, Inc. 2008 All Rights Reserved.
//
//――――――――――――――――――――――――――――――――――――――
// Check password and open page.
//――――――――――――――――――――――――――――――――――――――

function BeemsOpenPage(){

	// Set-up.

	var encrypted = document.BeemsUsersOnly.UserPageKey.value;
	encrypted = RemoveEscChr( encrypted );
	var enqlen  = encrypted.length;
	var decrypted = "";
	var decryptedPassword = "";
	var decryptedPath     = "";
	var targetUrl         = "";
	var indexbase = " !\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~";
	var chr1 = unescape( "%u3042" );
	var charType = chr1.length;
	var chr2 = "";
	var i, j, k, nbase;

	// Check if password is given.

	var password = document.BeemsUsersOnly.UserPagePassword.value;
	var passlen = password.length;
	if( passlen <= 0 ){
                window.alert( "パスワードを入力してください。" );
		document.BeemsUsersOnly.UserPagePassword.focus();
		return;
	}

	// Get password and link name.

	for( i = 0, j = passlen - 1, k = 0 ; i < enqlen ; i++, j--, k = 0 ){
		if( j < 0 ){
			j = passlen - 1;
		}
		chr1 = indexbase.indexOf( password.charAt( j ) );
		chr2 = indexbase.indexOf( encrypted.charAt( i ) );
		if( chr2 < ( chr1 + j ) ){
			nbase = ( chr1 + j - chr2 ) / 0x5f;
			k += ( 0x5f * Math.ceil( nbase ) );
		}
		k += ( chr2 - chr1 - j );
		decrypted += indexbase.charAt( k );
	}

	// Check if password matchs.

	decryptedPassword = decrypted.substring( decrypted.length - passlen, decrypted.length );
//	alert( "decryptedPassword = " + decryptedPassword );
	if( password != decryptedPassword ){
		alert( "パスワードが違っています。" );
	}

	// Get window path.

	else{
		decryptedPath = decrypted.substring( 0, decrypted.length - passlen );
//		alert( "decryptedPath = " + decryptedPath );
		passlen = decryptedPath.length;
		for( i = 0 ; i < passlen ; i++ ){
			chr1 = decryptedPath.charAt( i );
			if( chr1 == "%" ){
				if( charType == 1 ){
					chr2 = decryptedPath.substring( i, i+6 );
				}
				else{
					chr2 = decryptedPath.substring( i+6, i+6+6 );
				}
				targetUrl += chr2;
				i += 11;
			}
			else{
				targetUrl += chr1;
			}
		}

	// Open target window.

//		alert( "Move page to: " + targetUrl );
		window.location.href = targetUrl;
	}

	// Reset password text box.

	document.BeemsUsersOnly.UserPagePassword.value = "";
	document.BeemsUsersOnly.UserPagePassword.focus();
	return;
}

//
// Sub functions.
//

function RemoveEscChr( InputString ){
	var string = InputString;
	var escChr = new Array( "\\\'", "\\\"", "\\\\" );
	var rplChr = new Array( "\'", "\"", "\\" ); 
	for( var i = 0; i < escChr.length; i++ ){
		string = ReplaceAll( string, escChr[ i ], rplChr[ i ] );
	}
	return string;
}

function ReplaceAll( text, sText, rText ){
                   // Replace all "sText" with "rText" in "text".
	text1 = "";
	text2 = text;

	while( true ){
	index = text2.indexOf( sText, 0 );
		if( index < 0 ) {
			break;
		}
	text = text2.replace( sText, rText );
	text1 += text.substring( 0, index + rText.length );
	text2 =  text.substring( index + rText.length, text.length );
	}

	return text1 + text2;  // Return modified string.
}


//――――――――――――――――――――――――――――――――――――――
// End of file.
//――――――――――――――――――――――――――――――――――――――
