/**
 *
 */

$( function() {
	   $('input').each( function () {
		   this.onchange = function ( e ) {
			   form_check();
		   };
		   this.onkeyup_save = this.onkeyup;
		   this.onkeyup = function ( e ) {
			   form_check();
			   if( this.onkeyup_save ) {
				   this.onkeyup_save();
			   }
		   };
		   this.onkeydown = function ( e ) {
			   form_check();
		   };
	   } );
	   form_check();
	   if( location.href.match( /back=1/ ) ) {
	       set_height();
	   }
	   //	alert( location.href );
} );


function is_katakana( str ) {
	str = trim( str );
	return str.match(/^[ァ-ヶー 　]*$/);
}

function is_mail( str ) {
	str = trim( str );
	return str.match(/^[0-9,A-Z,a-z][0-9,a-z,A-Z,_,\.,-]+@[0-9,A-Z,a-z][0-9,a-z,A-Z,_,\.,-]+\.(af|al|dz|as|ad|ao|ai|aq|ag|ar|am|aw|ac|au|at|az|bh|bd|bb|by|bj|bm|bt|bo|ba|bw|br|io|bn|bg|bf|bi|kh|cm|ca|cv|cf|td|gg|je|cl|cn|cx|cc|co|km|cg|cd|ck|cr|ci|hr|cu|cy|cz|dk|dj|dm|do|tp|ec|eg|sv|gq|er|ee|et|fk|fo|fj|fi|fr|gf|pf|tf|fx|ga|gm|ge|de|gh|gi|gd|gp|gu|gt|gn|gw|gy|ht|hm|hn|hk|hu|is|in|id|ir|iq|ie|im|il|it|jm|jo|kz|ke|ki|kp|kr|kw|kg|la|lv|lb|ls|lr|ly|li|lt|lu|mo|mk|mg|mw|my|mv|ml|mt|mh|mq|mr|mu|yt|mx|fm|md|mc|mn|ms|ma|mz|mm|na|nr|np|nl|an|nc|nz|ni|ne|ng|nu|nf|mp|no|om|pk|pw|pa|pg|py|pe|ph|pn|pl|pt|pr|qa|re|ro|ru|rw|kn|lc|vc|ws|sm|st|sa|sn|sc|sl|sg|sk|si|sb|so|za|gs|es|lk|sh|pm|sd|sr|sj|sz|se|ch|sy|tw|tj|tz|th|bs|ky|tg|tk|to|tt|tn|tr|tm|tc|tv|ug|ua|ae|uk|us|um|uy|uz|vu|va|ve|vn|vg|vi|wf|eh|ye|yu|zm|zw|com|net|org|gov|edu|int|mil|biz|info|name|pro|jp)$/i);
}

function trim( str ) {
	str = str.replace( /^[ 　]*/, "" );
	str = str.replace( /[ 　]*$/, "" );
	return str;
}



function form_check() {
	if( $('form.courses_form' ).length ) {
		return form_check_courses_form();
	}
	if( $('form.shop_form' ).length ) {
		return form_check_shop_form();
	}
}


function form_check_shop_form() {
	var msg;

	var namae = $('[name=namae]');
	var furigana = $('[name=furigana]');
	var o;
	var n;
	var st = "&nbsp;<em>";
	var en = "</em>";

	o = namae;

	n = trim( o.val() );
	if( n.length > 1 ) {
		msg = '';
	} else {
		msg = '漢字でお名前を入力してください';
		msg = st + msg + en;
	}
	find_chk( o ).html( msg );

	o = furigana;
	n = trim( o.val() );
	if( n.length > 1 && is_katakana( n ) ) {
		msg = '';
	} else {
		msg = 'カタカナでフリガナを入力してください';
		msg = st + msg + en;
	}
	find_chk( o ).html( msg );

	var i;

	var total = 0;

	$('[name*=art]').each( function () {
		var o = $( this );
		var name = o.attr( 'name' );
		if( !name.match( /art[0-9][0-9]*/ ) ) {
			return;
		}
		
		var n = trim( o.val() );
		if( n == '' ) {
			msg = '';
		} else if( n.match( /^[0-9][0-9]*$/ ) ) {
			var price = find_chk( o, '.price' ).text();
			price = price.replace( /,/g , "" );
			price = price.replace( /\\/, "" );
			price = price - 0;
			total += price * (n - 0);
			msg = '';
		} else {
			msg = '半角数字で入力';
			msg = st + msg + en;
		}
		find_chk( o ).html( msg );
	} );
	$('.total').text( '\\' + addFigure( total ) );

	o = $('[name=todokesaki_namae]' );
	n = trim( o.val() );
	if( n.length > 1 ) {
		msg = '';
	} else {
		msg = '漢字でお名前を入力してください';
		msg = st + msg + en;
	}
	find_chk( o ).html( msg );

	o = $('[name=todokesaki_zip]' );
	n = trim( o.val() );
	if( n.match( /^[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$/ ) ) {
		msg = '';
	} else {
		msg = '半角数字と-で郵便番号を入力してください'+'<br>'+'（例：112-0033）';
		msg = st + msg + en;
	}
	find_chk( o ).html( msg );

	o = $('[name=todokesaki_tel]' );
	n = trim( o.val() );
	if( n.match( /^[0-9][0-9]*-[0-9][0-9]*-[0-9][0-9]*$/ ) ) {
		msg = '';
	} else {
		msg = '半角数字と-で電話番号を入力してください'+'<br>'+'（例：03-1234-5678 ）';
		msg = st + msg + en;
	}
	find_chk( o ).html( msg );

	o = $('[name=todokesaki_fax]' );
	n = trim( o.val() );
	if( n == '' || n.match( /^[0-9][0-9]*-[0-9][0-9]*-[0-9][0-9]*$/ ) ) {
		msg = '';
	} else {
		msg = '半角数字と-でFAX番号を入力してください'+'<br>'+'（例：03-1234-5678 ）';
		msg = st + msg + en;
	}
	find_chk( o ).html( msg );

	o = $('[name=shiharai]:checked' );
	if( o.length  ) {
		msg = '';
	} else {
		msg = '支払い方法を選択してください';
		msg = st + msg + en;
	}
	o = $('[name=shiharai]' ).get(0);
	o = $(o);
	find_chk( o ).html( msg );

	var mail;
	o = $('[name=mail]' );
	n = trim( o.val() );
	mail = n;
	if( is_mail( n ) ) {
		msg = '';
	} else {
		msg = '半角でメールアドレスを入力してください';
		msg = st + msg + en;
	}
	find_chk( o ).html( msg );

	o = $('[name=mail_kakunin]' );
	n = trim( o.val() );
	if( is_mail( n ) ) {
		if( n == mail ) {
			msg = '';
		} else {
			msg = '同じメールアドレスを入力してください';
			msg = st + msg + en;
		}
	} else {
		msg = '半角でメールアドレスを入力してください';
		msg = st + msg + en;
	}
	find_chk( o ).html( msg );

}

function addFigure(str) {
	var num = new String(str).replace(/,/g, "");
	while(num != (num = num.replace(/^(-?\d+)(\d{3})/, "$1,$2")));
	return num;
}
function find_chk( o, chk )
{
	var p;
	if( !chk ) {
		chk = '.chk';
	}
	p = $( chk, o );
	if( p.length ) {
		return p;
	}
	return find_chk( o.parent(), chk );
}


function form_check_courses_form() {
	var msg;
	var cls = $('[name=class]:checked');
	var gatsuki =  $('[name=gatsuki]');
	var namae = $('[name=namae]');
	var furigana = $('[name=furigana]');
	var zip = $('[name=zip]');
	var tel = $('[name=tel]');
	var mail = $('[name=mail]');
	var n;

//	alert( cls + "," + cls.length);
//	alert( gatsuki );

	var st = "&nbsp;<em>";
	var en = "</em>";

	if( !cls.length  ) {
		cls = $('[name=class[]]:checked');
	}
	if( cls.length  ) {
		msg = '';
	} else {
		msg = 'クラスを選択してください';
		msg = st + msg + en;
	}
	$('.class_chk').html( msg );

	if( gatsuki.length ) {
		n = trim( gatsuki.val() ) - 0;
		if( 1 <= n && n <= 12 ) {
			msg = '';
		} else {
			msg = '半角数字で月期を入力してください';
			msg = st + msg + en;
		}
		$('.gatsuki_chk').html( msg );
	}

	n = trim( namae.val() );
	if( n.length > 1 ) {
		msg = '';
	} else {
		msg = '漢字でお名前を入力してください<br />（苗字と名前の間に全角スペースを入力してください）';
		msg = st + msg + en;
	}
	$('.namae_chk').html( msg );

	n = trim( furigana.val() );
	if( n.length > 1 && is_katakana( n ) ) {
		msg = '';
	} else {
		msg = 'カタカナでフリガナを入力してください<br />（苗字と名前の間に全角スペースを入力してください）';
		msg = st + msg + en;
	}
	$('.furigana_chk').html( msg );

	n = trim( zip.val() );
	if( n.match( /^[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]$/ ) ) {
		msg = '';
	} else {
		msg = '半角数字と-で郵便番号を入力してください'+'<br>'+'（例：112-0033）';
		msg = st + msg + en;
	}
	$('.zip_chk').html( msg );

	n = trim( tel.val() );
	if( n.match( /^[0-9][0-9]*-[0-9][0-9]*-[0-9][0-9]*$/ ) ) {
		msg = '';
	} else {
		msg = '半角数字と-で電話番号を入力してください'+'<br>'+'（例：03-1234-5678 ）';
		msg = st + msg + en;
	}
	$('.tel_chk').html( msg );

	n = trim( mail.val() );
	if(n.match(/^[0-9,A-Z,a-z][0-9,a-z,A-Z,_,\.,-]+@[0-9,A-Z,a-z][0-9,a-z,A-Z,_,\.,-]+\.(af|al|dz|as|ad|ao|ai|aq|ag|ar|am|aw|ac|au|at|az|bh|bd|bb|by|bj|bm|bt|bo|ba|bw|br|io|bn|bg|bf|bi|kh|cm|ca|cv|cf|td|gg|je|cl|cn|cx|cc|co|km|cg|cd|ck|cr|ci|hr|cu|cy|cz|dk|dj|dm|do|tp|ec|eg|sv|gq|er|ee|et|fk|fo|fj|fi|fr|gf|pf|tf|fx|ga|gm|ge|de|gh|gi|gd|gp|gu|gt|gn|gw|gy|ht|hm|hn|hk|hu|is|in|id|ir|iq|ie|im|il|it|jm|jo|kz|ke|ki|kp|kr|kw|kg|la|lv|lb|ls|lr|ly|li|lt|lu|mo|mk|mg|mw|my|mv|ml|mt|mh|mq|mr|mu|yt|mx|fm|md|mc|mn|ms|ma|mz|mm|na|nr|np|nl|an|nc|nz|ni|ne|ng|nu|nf|mp|no|om|pk|pw|pa|pg|py|pe|ph|pn|pl|pt|pr|qa|re|ro|ru|rw|kn|lc|vc|ws|sm|st|sa|sn|sc|sl|sg|sk|si|sb|so|za|gs|es|lk|sh|pm|sd|sr|sj|sz|se|ch|sy|tw|tj|tz|th|bs|ky|tg|tk|to|tt|tn|tr|tm|tc|tv|ug|ua|ae|uk|us|um|uy|uz|vu|va|ve|vn|vg|vi|wf|eh|ye|yu|zm|zw|com|net|org|gov|edu|int|mil|biz|info|name|pro|jp)$/i)){
		msg = '';
	} else {
		msg = '半角でメールアドレスを入力してください';
		msg = st + msg + en;
	}
	$('.mail_chk').html( msg );
}

function set_height() {
	var o_outer;
	var o;
	var o_body;

	o_body  = $('.table_scroll_body');
	o       = $('.table_scroll');
	o_outer = $('.table_scroll_outer');

	var h = o_body.height() - o_outer.height() ;

	if( navigator.userAgent.indexOf("MSIE") >= 0 ) {
		h -= 5;
	} else {
		h += 4;
	}

	o.show();
	$('form').jqTransform({imgPath:'js/jqtransformplugin/img/'}); 	   
	o.height( h );
}

/**
 *
 */

