var isSignUpClick = "0";

window.name = 'signUpWin';

function allowedCharacterCheck(obj){
	obj.value = obj.value.replace(/[^ a-zA-Z0-9@!\"\#\$\%\&\'\(\)\*\+\,\-\.\?\/\;\:\<\>\=\ ]/g, "");
}

function trim(str){ 
	return str.replace(/^\s+|\s+$/g,'');
}

function mino_alert_layer(msg) {
	var al = new mino.alert();
	al.message = msg;
	al.open();
}


function mino_alert_layer_reload(msg) {
	var al = new mino.alert();
	al.message = msg;
	al.okFnc=function() { relodePage(); };
	al.open();
}


//숫자, 영소대문자, _-  @만 입력
function inputKeyEmailCheck(event)
{
	if (window.event) keyCode = window.event.keyCode;
	else if (event) keyCode = event.which;


		if((keyCode != 10) && (keyCode != 13) &&(keyCode != 8) && (keyCode != 0) && (keyCode != 43) && ((keyCode<45) || (keyCode> 122)  || (keyCode== 96) || (keyCode== 47) || ((keyCode >= 58) && (keyCode <= 63)) || ((keyCode >= 91) && (keyCode <= 94))))
		{
			if(mino.isIE) {
				event.keyCode = 0;
			}else{
				event.preventDefault();
			}

			event.cancelBubble = true; 
			event.returnValue = false;  

			mino_alert_layer("That character is not allowed.");
			return;
		}
}

//" 입력 막기
function inputKeyNameCheck(event)
{
	if (window.event) keyCode = window.event.keyCode;
	else if (event) keyCode = event.which;

		if((keyCode==34))
		{
			if(mino.isIE)
				event.keyCode = 0; 
			else
				event.preventDefault();

			event.cancelBubble = true; 
			event.returnValue = false;  

			mino_alert_layer("That character is not allowed.");
			return;
		}
}

//숫자만 입력
function inputKeyPhoneCheck(event)
{
	if (window.event) keyCode = window.event.keyCode;
	else if (event) keyCode = event.which;

		if((keyCode != 10) && (keyCode != 13) && (keyCode != 8) && (keyCode != 0) && ((keyCode<48) || (keyCode> 57)))
		{
			if(mino.isIE)
				event.keyCode = 0; 
			else
				event.preventDefault();

			event.cancelBubble = true; 
			event.returnValue = false;  

			mino_alert_layer("That character is not allowed.");
			return;
		}
}

//숫자, 영소대문자, _- 만 입력, dot(.) 추가(task 3097)
function inputKeyUsernameCheck(event)
{
	if (window.event) keyCode = window.event.keyCode;
	else if (event) keyCode = event.which;

		if((keyCode != 10) && (keyCode != 13) && (keyCode != 8) && (keyCode != 0) && ((keyCode<45) || (keyCode> 122)  || (keyCode== 96) || (keyCode== 47) || ((keyCode >= 58) && (keyCode <= 64)) || ((keyCode >= 91) && (keyCode <= 94))))
		{
			if(mino.isIE)
				event.keyCode = 0; 
			else
				event.preventDefault();

			event.cancelBubble = true; 
			event.returnValue = false;  

			mino_alert_layer("That character is not allowed.");
			return;
		}
}


function chkPromoter() {
	chk_available.location.href="/manageAccount/action/action_signup2.php?mode=chkPromoter&value=" + document.forms["signupform"].Promoter_code.value;
}


function chkUserName() {

	var usernamepattern =  /[0-9a-zA-Z]+[\.0-9a-zA-Z_-]*[\.0-9a-zA-Z_-]$/;  
	var raw_userneme = document.forms["signupform"].user_name.value; 
	var result; 

	result = raw_userneme.match(usernamepattern); 

	if (result != raw_userneme){ 
		mino_alert_layer("Your username must be at least five alphanumeric characters.<br>You can use dashes, underscores and dot, but all other non-alphanumeric characters are not allowed.");
		return;
	} 

	var t=document.forms["signupform"].user_name.value;
	if(t) chk_available.location.href="/manageAccount/action/action_signup2.php?mode=chkUserName&value="+t; // LK
	else {
		mino_alert_layer("Please enter your desired username.");
	}
}

function chkEmail() {

	document.forms["signupform"].email.value = document.forms["signupform"].email.value.replace(/(^\s*)|(\s*$)/gi, "");

	var emailpattern = /^\s*[\w\~\-\.\+]+\@[\w\~\-]+(\.[\w\~\-]+)+\s*$/g;

	var raw_mail_address = document.forms["signupform"].email.value; 
	var result; 

	result = raw_mail_address.match(emailpattern); 

	if (result != raw_mail_address){ 
		mino_alert_layer("Please enter a vaild email address.");
		return;
	}

	var t=encodeURIComponent(document.forms["signupform"].email.value);
	if(t) chk_available.location.href="/manageAccount/action/action_signup2.php?mode=chkEmail&value="+t;
	else {
		mino_alert_layer("Please enter your email address.");
	}
}


function signupSubmit() {
	if (isSignUpClick == 1) {
		mino_alert_layer("Please wait while we process this information.");
		return ;
	}

	var errMsg = '';
	var focusObject;


	/*
	* @ username pattern match
	*/
	var usernamepattern = /[0-9a-zA-Z]+[\.0-9a-zA-Z_-]*[\.0-9a-zA-Z_-]$/;
	var raw_userneme = document.getElementById( "user_name" ).value;
	var username_result; 

	username_result = raw_userneme.match(usernamepattern); 

	/*
	* @ email pattern match
	*/
	var emailpattern = /^\s*[\w\~\-\.\+]+\@[\w\~\-]+(\.[\w\~\-]+)+\s*$/g;

	var raw_mail_address = document.forms["signupform"].email.value;
	var email_result;

	email_result = raw_mail_address.match(emailpattern); 



	/*
	* @ username check
	*/
	if( document.getElementById( "user_name" ).value == "" ) {
		errMsg = 'Please enter your desired username.';
		focusObject = document.getElementById( "user_name" );
	}
	else if( document.getElementById( "user_name" ).value.length < 5 ) {
		errMsg = 'Your username must be at least five alphanumeric characters. You can use dashes, underscores<br/>and dot, but all other non-alphanumeric characters are not allowed.';
		focusObject = document.getElementById( "user_name" );
	}
	else if( document.getElementById( "user_name" ).value.length > 50 ) {
		errMsg = 'The maximum length for a username is 20 characters.';
		focusObject = document.getElementById( "user_name" );
	}
	else if (username_result != raw_userneme){ 
		errMsg = 'Your username must be at least five alphanumeric characters. You can use dashes, underscores<br />and dot, but all other non-alphanumeric characters are not allowed.';
		focusObject = document.getElementById( "user_name" );
	}

	/*
	* @ password check
	*/
	else if( document.getElementById( "password1" ).value.length < 4 ) {
		errMsg = 'Your password must be at least 4 characters long.';
		focusObject = document.getElementById( "password1" );
	}
	else if( document.getElementById( "password1" ).value != document.getElementById( "password2" ).value ) {
		errMsg = 'Your passwords do not match.';
		focusObject = document.getElementById( "password1" );
	}

	/*
	* @ firstname check
	*/
	else if( trim( document.getElementById( "firstname" ).value ) == "" ) {
		errMsg = 'Please enter your first name.';
		focusObject = document.getElementById( "firstname" );
	}

	/*
	* @ lastname check
	*/
	else if( trim( document.getElementById( "lastname" ).value ) == "" ) {
		errMsg = 'Please enter your last name.';
		focusObject = document.getElementById( "lastname" );
	}

	/*
	* @ businessname check
	*/
	else if( trim( document.getElementById( "business_name" ).value ) == "" ) {
		errMsg = 'Please enter '+ __AlertName +'.';
		focusObject = document.getElementById( "business_name" );
	}

	/*
	* @ businesstype check
	*/

/*
	else if( document.getElementById( "business_type" ).value == "" ) {
		errMsg = 'Please enter Industry.';
		focusObject = document.getElementById( "business_type" );
	}
*/

	/*
	* @ email check
	*/
	else if( document.getElementById( "email" ).value == "" ) {
		errMsg = 'Please enter a valid e-mail address.';
		focusObject = document.getElementById( "email" );
	}
	else if (email_result != raw_mail_address){
		errMsg = 'Please enter a valid e-mail address.';
		focusObject = document.getElementById( "email" );
	}

	/*
	* @ mobilenumber check
	*/
	else if( document.getElementById( "mobile" ).value == "" ) {
		errMsg = 'Please enter your mobile number.';
		focusObject = document.getElementById( "mobile" );
	}
	else if( sMobileAuthChk == false ) {
		errMsg = 'You must verify your mobile number before you can sign up.';
		focusObject = document.getElementById( "mobile" );
	}
	else if( isNaN( document.getElementById( "mobile" ).value ) ) {
		errMsg = 'Your mobile number must be ten numeric characters.';
	}
	else if( document.getElementById( "mobile" ).value != "" && document.getElementById( "country_code" ).value == "1" ) {
	
		if ( document.getElementById( "mobile" ).value.length != 10 ) {
			errMsg = 'Your mobile number must be ten numeric characters..';
			focusObject = document.getElementById( "mobile" );
		}
		else if( ( document.getElementById( "mobile" ).value.substr(0, 1) == "0") || ( document.getElementById( "mobile" ).value.substr(0, 1) == "1" ) ) {
			errMsg = 'Your mobile number must not begin with \'1\' or \'0\'..';
			focusObject = document.getElementById( "mobile" );
		}
	}
	
	if( !errMsg || errMsg=='' ) {
		if(document.getElementsByName( "TCagree" )[0].checked == false) {	
			errMsg = 'Please read '+ sCompanyName +'\'s Terms of Use thoroughly. You must agree to them before signing up.';
			focusObject = document.getElementsByName( "TCagree" )[0];
		}
		else if( document.getElementsByName( "verification" )[0].value == "" ) {
			errMsg = 'Please enter Visual Verification.';
			focusObject = document.getElementsByName( "verification" )[0];
		}
	}
	
	if( errMsg != '' ) {
		var al = new mino.alert();
		al.message = errMsg;
		al.open();

		focusObject.focus();

		return;
	}

	document.forms["signupform"].action = "/manageAccount/action/action_signup2.php?mode=signup";

	isSignUpClick = 1;
	document.forms["signupform"].submit();
}

function relodePage() {
	location.href = "/manageAccount/signup2.php";
}

function showHelp(e, divName) {
	
	var addDiv=document.getElementById(divName);

	addDiv.style.display='';
	try {
		mino.layer.moveMouse(addDiv,e);
	} catch(err) {
		moveMouse(addDiv,e);
	}
}

function chknumber(e) {
	var obj;

	if(e.target) obj=e.target;
	else obj=e.srcElement;

	obj.value=obj.value.replace(/[^0-9]/g,"");
}

////////////////////////////////////////////////////////
// Task-4442 :	2010년 02월 26일 금요일 정주용 복사
////////////////////////////////////////////////////////
	/*
		- handleCode DESC -

		SU001: Verification-UI STEP 1. Ready
		SU002: Verification-UI STEP 2. Verify
		SU002: Verification-UI STEP 3. Last Chance Verify
		SU201: Verification-code send success.
		SU202: Verification-code confirm.
		SU301: internal server error.
		SU401: Invalid verification code.
		SU402: Unmatch verification code.
		SU901: Verification-UI STEP 3. Success
	*/

	// event handle
	function window_onload(){
		// message define
		msg				= new Array();
		msg['SU201']	= "A verification message has been sent to your mobile phone.";
		msg['SU202']	= "The mobile number you are trying to verify is <span style=\"font-size:15px; font-weight:bold; color:red;\">#[:N1]#</span>.<br /> You may have entered an incorrect number or your phone may not have a good reception.<br /> Your current retry count is <span style=\"color:red;\">#[:N2]#</span> out of <span style=\"color:red;\">#[:N3]#</span> allowed.";
		msg['SU301']	= "Sorry. There was a technical problem<br />sending you the code. Please try again.";
		msg['SU401']	= "Invalid verification code! Please check your code again and reenter it.";
		msg['SU402']	= "Please enter a valid mobile number.";
		msg['SU901']	= "Your carrier (#[:N1]#) does not accept text messages sent from a shortcode.<br />You are allowed to sign up here, but you won't be receiving messages sent via<br />Trumpia's shortcode or any other shortcode.";

		// element define
		iMobileNum				= document.getElementById( 'mobile'							);
		iMobileCountryCode		= document.getElementById( 'country_code_v'					);
		aMobileAuthChk			= document.getElementById( 'mobile_number_auth_check_area'	);
		iMobileAuthChk			= document.getElementById( 'inputMobileNumAuthChk'			);
		mMobileAuthChk_1		= document.getElementById( 'msgMobileNumAuthChk_01'			);
		mMobileAuthChk_2		= document.getElementById( 'msgMobileNumAuthChk_02'			);
		mMobileAuthChk_2_sub01	= document.getElementById( 'msgMobileNumAuthChk_02sub01'	);
		mMobileAuthChk_2_sub02	= document.getElementById( 'msgMobileNumAuthChk_02sub02'	);
		mMobileAuthChk_3		= document.getElementById( 'msgMobileNumAuthChk_03'			);

		bMobileAuthChk_resend	= document.getElementById( 'code_resend_btn' );
		mMobileAuthChk_resend	= document.getElementById( 'code_resend_msg' );

		// default UI Load
		UiHandle4VerifyMobile('SU001');
		iMobileNum.blur();
	}

	// Ui Handle
	function UiHandle4VerifyMobile ( handleCode ){

		// Notify Case
		if( handleCode == 'SU202' ){
			var al = new mino.alert();

			al.useCancel			= true;
			al.btnOKsrc				= '/images/common/resendtothesamenumber_btn.jpg';
			al.btnOKsrcDisable		= '/images/common/resendtothesamenumber_btn_2.jpg';
			al.btnCANCELsrc			= '/images/common/reentermobilenumber_btn.jpg';
			al.btnCANCELsrcDisable	= '/images/common/reentermobilenumber_btn_2.jpg';

			al.message = msg[handleCode].replace( '#[:N1]#', iMobileCountryCode.value + ' ' + iMobileNum.value );
			al.message = al.message.replace( '#[:N2]#', sMobileVerifyUseChance );
			al.message = al.message.replace( '#[:N3]#', sMobileVerifyMaxCnance );

			al.okFnc		= function() { MobileVerifyCodeSend() };
			al.cancelFnc	= function() { 
				iMobileNum.setAttribute( 'style', "background:#FFFFFF;"	);
				iMobileNum.removeAttribute( 'readonly'	);
				iMobileNum.value	= "";
				sMobileAuthNum		= "";
				iMobileNum.focus();
			};

			al.open();
			return;

		} else if ( handleCode == 'SU201' ) {
			var al2 = new mino.alert();
			al2.useCancel = false;

			al2.message	= msg[ handleCode ];

			if( sMobileVerifyUseChance < sMobileVerifyMaxCnance )
				al2.okFnc = function() { UiHandle4VerifyMobile( 'SU002' ) };
			else
				al2.okFnc = function() { UiHandle4VerifyMobile( 'SU003' ) };

			al2.open();
		} else if( 
			handleCode.substr( 2,1 ) == '2'
			|| handleCode.substr( 2,1 ) == '3'
			|| handleCode.substr( 2,1 ) == '4'
		){
			mino_alert_layer( msg[handleCode] );
			return;
		}

		// UiChange Case
		switch ( handleCode ){
			case 'SU001':
				mMobileAuthChk_1.style.display = "block";
				mMobileAuthChk_2.style.display = "none";
				mMobileAuthChk_3.style.display = "none";

				sMobileAuthNum			= '';
				sMobileAuthChk			= false;
				sMobileAuthSet			= new Array();
				sMobileBlockCarrier		= '';

				sMobileVerifyUseChance	= 0;
				sMobileVerifyMaxCnance	= 7;

				iMobileNum.setAttribute( 'style', "background:#FFFFFF;" );
				iMobileNum.removeAttribute( 'readonly' );

				iMobileNum.value	= "";
				iMobileNum.focus();

				break;

			case 'SU002': case 'SU003':
				mMobileAuthChk_1.style.display = "none";
				mMobileAuthChk_2.style.display = "block";
				mMobileAuthChk_3.style.display = "none";

				if ( handleCode == 'SU002' ) {
					mMobileAuthChk_2_sub01.style.display = "block";
					mMobileAuthChk_2_sub02.style.display = "none";

					bMobileAuthChk_resend.style.display = "inline";
					mMobileAuthChk_resend.style.display = "none";
				} else {
					mMobileAuthChk_2_sub01.style.display = "none";
					mMobileAuthChk_2_sub02.style.display = "block";
				}

				iMobileNum.setAttribute( 'readonly',	true					);
				iMobileNum.setAttribute( 'style',		"background:#DDDDDD;"	);

				iMobileAuthChk.value = "";
				iMobileAuthChk.focus();

				break;

			case 'SU901':

				if( sMobileBlockCarrier != '' ){
					mino_alert_layer( msg['SU901'].replace( '#[:N1]#', sMobileBlockCarrier ).replace( 'Trumpia', sCompanyName ) );
					sMobileBlockCarrier = '';
				}

				mMobileAuthChk_1.style.display = "none";
				mMobileAuthChk_2.style.display = "none";
				mMobileAuthChk_3.style.display = "block";

				iMobileNum.setAttribute( 'readonly',	true					);
				iMobileNum.setAttribute( 'style',		"background:#DDDDDD;"	);

				break;
		}

		return;
	}

	// send button action
	function MobileVerifyCodeSend() {

		if(
			iMobileNum.value.length == 0
			||	(
					iMobileCountryCode.value == '+1'
					&&(
						iMobileNum.value.length != 10 
						||	iMobileNum.value.substr(0, 1) == "0"
						||	iMobileNum.value.substr(0, 1) == "1"
					)
				)
		)
		{
			UiHandle4VerifyMobile( 'SU402' );
			return false;
		}

		try{
			bMobileAuthChk_resend.style.display = "none";
			mMobileAuthChk_resend.style.display = "inline";
		} catch (e) { }

		internationnal_flag = ( iMobileCountryCode.value == '+1' ) ? '0' : '1';

		try{
			var req = new mino.request();
		}catch(e){
			var req = new mino_request();
		}

		req.url = "/manageAccount/action/action_signup2.php?mode=verify_mobile";
		req.addParam( 'countryNumber',	iMobileCountryCode.value.replace('+', '') );
		req.addParam( 'mobileNumber',	iMobileNum.value );

		req.addResponse( MobileVerifyCodeSendReaction );
		req.send();

		return true;
	}

	// resend button action
	function MobileVerifyCodeReSend() {
		if( sMobileAuthNum == iMobileNum.value  && iMobileNum.value.length > 0 ){
			UiHandle4VerifyMobile( 'SU202' );
			return;
		}
		MobileVerifyCodeSend();
		return false;
	}

	// check button action
	function MobileVerifyCodeCheck(){

		var sVerifiedMobileNum = ( typeof( sMobileAuthSet[iMobileAuthChk.value] ) == 'undefined' ) ? '' : sMobileAuthSet[iMobileAuthChk.value];

		if ( sVerifiedMobileNum == '' ){
			UiHandle4VerifyMobile('SU401');
			return;
		}

		sMobileAuthChk = true;
		iMobileNum.value = sVerifiedMobileNum;
		UiHandle4VerifyMobile('SU901');

		return;
	}

	// SMS send reaction
	function MobileVerifyCodeSendReaction( req ) {
		var xml		= req.responseXML;
		var code	= xml.getElementsByTagName( "nRdmCode"	).item(0).firstChild.nodeValue;
		var errCode	= xml.getElementsByTagName( "errorCode"	).item(0).firstChild.nodeValue;
		try{
			var blockCarrier = xml.getElementsByTagName( "blockedCarrierName"		).item(0).firstChild.nodeValue;
		}catch (e) {
			var blockCarrier = '';
		}

		if ( errCode == '0011' ) {
			sMobileBlockCarrier = blockCarrier;
			UiHandle4VerifyMobile('SU901');
			return;
		}

		if ( code.length != 4 || errCode != '0000' ) {
			UiHandle4VerifyMobile('SU301');
		}else{
			sMobileAuthSet[code]	= iMobileNum.value;
			sMobileAuthNum			= iMobileNum.value;
			sMobileVerifyUseChance++;
			UiHandle4VerifyMobile( 'SU201' );
		}

		chk_available.location.replace('about:blank');
		formSubmit_frame.location.replace('about:blank');

		return;
	}

////////////////////////////////////////////////////////
// Task-4442 :	2010년 02월 26일 금요일 정주용 완료
//				2010년 03월 03일 금요일 정주용 최종 수정
////////////////////////////////////////////////////////
