Index: branches/dev/data/include/mobile_emoji_map_softbank.inc
===================================================================
--- branches/dev/data/include/mobile_emoji_map_softbank.inc	(revision 11460)
+++ branches/dev/data/include/mobile_emoji_map_softbank.inc	(revision 11460)
@@ -0,0 +1,260 @@
+<?php
+/**
+ * SoftBankÍÑ³¨Ê¸»ú¥³¡¼¥É (Shift JIS)
+ */
+
+return array(
+	'1'   => "\x1b\$Gj\x0f",
+	'2'   => "\x1b\$Gi\x0f",
+	'3'   => "\x1b\$Gk\x0f",
+	'4'   => "\x1b\$Gh\x0f",
+	'5'   => "\x1b\$E]\x0f",
+	'6'   => "\x1b\$Pc\x0f",
+	'7'   => "[\x96\xb6]", // [Ì¸]
+	'8'   => "\x1b\$P\\\x0f",
+	'9'   => "\x1b\$F_\x0f",
+	'10'  => "\x1b\$F`\x0f",
+	'11'  => "\x1b\$Fa\x0f",
+	'12'  => "\x1b\$Fb\x0f",
+	'13'  => "\x1b\$Fc\x0f",
+	'14'  => "\x1b\$Fd\x0f",
+	'15'  => "\x1b\$Fe\x0f",
+	'16'  => "\x1b\$Ff\x0f",
+	'17'  => "\x1b\$Fg\x0f",
+	'18'  => "\x1b\$Fh\x0f",
+	'19'  => "\x1b\$Fi\x0f",
+	'20'  => "\x1b\$Fj\x0f",
+	'21'  => null,
+	'22'  => "\x1b\$G6\x0f",
+	'23'  => "\x1b\$G4\x0f",
+	'24'  => "\x1b\$G5\x0f",
+	'25'  => "\x1b\$G8\x0f",
+	'26'  => "\x1b\$G3\x0f",
+	'27'  => "\x1b\$PJ\x0f",
+	'28'  => "\x1b\$ER\x0f",
+	'29'  => "[\xce\xdf\xb9\xaf\xc4\xcd\xde\xd9]", // [¥Ý¥±¥Ã¥È¥Ù¥ë]
+	'30'  => "\x1b\$G>\x0f",
+	'31'  => "\x1b\$PT\x0f",
+	'32'  => "\x1b\$PU\x0f",
+	'33'  => "\x1b\$G;\x0f",
+	'34'  => "\x1b\$PN\x0f",
+	'35'  => "\x1b\$Ey\x0f",
+	'36'  => "\x1b\$F\"\x0f",
+	'37'  => "\x1b\$G=\x0f",
+	'38'  => "\x1b\$GV\x0f",
+	'39'  => "\x1b\$GX\x0f",
+	'40'  => "\x1b\$Es\x0f",
+	'41'  => "\x1b\$Eu\x0f",
+	'42'  => "\x1b\$Em\x0f",
+	'43'  => "\x1b\$Et\x0f",
+	'44'  => "\x1b\$Ex\x0f",
+	'45'  => "\x1b\$Ev\x0f",
+	'46'  => "\x1b\$GZ\x0f",
+	'47'  => "\x1b\$Eo\x0f",
+	'48'  => "\x1b\$En\x0f",
+	'49'  => "\x1b\$Eq\x0f",
+	'50'  => "\x1b\$Gc\x0f",
+	'51'  => "\x1b\$Ge\x0f",
+	'52'  => "\x1b\$Gd\x0f",
+	'53'  => "\x1b\$Gg\x0f",
+	'54'  => "\x1b\$E@\x0f",
+	'55'  => "\x1b\$E^\x0f",
+	'56'  => "\x1b\$O3\x0f",
+	'57'  => "\x1b\$G\\\x0f",
+	'58'  => "\x1b\$G]\x0f",
+	'59'  => "\x1b\$FV\x0f",
+	'60'  => null,
+	'61'  => "\x1b\$O*\x0f",
+	'62'  => "\x1b\$Q\"\x0f",
+	'63'  => "\x1b\$Q#\x0f",
+	'64'  => null,
+	'65'  => "\x1b\$EE\x0f",
+	'66'  => "\x1b\$O.\x0f",
+	'67'  => "\x1b\$F(\x0f",
+	'68'  => "\x1b\$G(\x0f",
+	'69'  => "\x1b\$OC\x0f",
+	'70'  => "\x1b\$Eh\x0f",
+	'71'  => "\x1b\$O4\x0f",
+	'72'  => "\x1b\$E2\x0f",
+	'73'  => "\x1b\$Ok\x0f",
+	'74'  => "\x1b\$G)\x0f",
+	'75'  => "\x1b\$G*\x0f",
+	'76'  => "\x1b\$O!\x0f",
+	'77'  => "\x1b\$EJ\x0f",
+	'78'  => "[\xb9\xde\xb0\xd1]", // [¥²¡¼¥à]
+	'79'  => "\x1b\$EF\x0f",
+	'80'  => "\x1b\$F,\x0f",
+	'81'  => "\x1b\$F.\x0f",
+	'82'  => "\x1b\$F-\x0f",
+	'83'  => "\x1b\$F/\x0f",
+	'84'  => "\x1b\$P9\x0f",
+	'85'  => "\x1b\$P;\x0f",
+	'86'  => "\x1b\$G0\x0f",
+	'87'  => "\x1b\$G1\x0f",
+	'88'  => "\x1b\$G2\x0f",
+	'89'  => "\x1b\$FX\x0f",
+	'90'  => "\x1b\$FW\x0f",
+	'91'  => "\x1b\$QV\x0f",
+	'92'  => "\x1b\$G'\x0f",
+	'93'  => "[\xd2\xb6\xde\xc8]", // [¥á¥¬¥Í]
+	'94'  => "\x1b\$F*\x0f",
+	'95'  => "\x81\x9c", // ¡ü
+	'96'  => "\x1b\$Gl\x0f",
+	'97'  => "\x1b\$Gl\x0f",
+	'98'  => "\x1b\$Gl\x0f",
+	'99'  => "\x81\x9b", // ¡û
+	'100' => "\x1b\$Gr\x0f",
+	'101' => "\x1b\$Go\x0f",
+	'102' => "\x1b\$G<\x0f",
+	'103' => "\x1b\$GS\x0f",
+	'104' => "\x1b\$FY\x0f",
+	'105' => "\x1b\$E\$\x0f",
+	'106' => "\x1b\$E#\x0f",
+	'107' => "\x1b\$G+\x0f",
+	'108' => "[i\xd3\xb0\xc4\xde]", // [i¥â¡¼¥É]
+	'109' => "[i\xd3\xb0\xc4\xde]", // [i¥â¡¼¥É]
+	'110' => "\x1b\$E#\x0f",
+	'111' => "[\xc4\xde\xba\xd3]", // [¥É¥³¥â]
+	'112' => "[\xc4\xde\xba\xd3\xce\xdf\xb2\xdd\xc4]", // [¥É¥³¥â¥Ý¥¤¥ó¥È]
+	'113' => '\\',
+	'114' => '[FREE]',
+	'115' => "\x1b\$FI\x0f",
+	'116' => "\x1b\$G_\x0f",
+	'117' => null,
+	'118' => '[CL]',
+	'119' => "\x1b\$E4\x0f",
+	'120' => "\x1b\$F2\x0f",
+	'121' => null,
+	'122' => "\x1b\$F1\x0f",
+	'123' => "\x1b\$F0\x0f",
+	'124' => '[Q]',
+	'125' => "\x1b\$F<\x0f",
+	'126' => "\x1b\$F=\x0f",
+	'127' => "\x1b\$F>\x0f",
+	'128' => "\x1b\$F?\x0f",
+	'129' => "\x1b\$F@\x0f",
+	'130' => "\x1b\$FA\x0f",
+	'131' => "\x1b\$FB\x0f",
+	'132' => "\x1b\$FC\x0f",
+	'133' => "\x1b\$FD\x0f",
+	'134' => "\x1b\$FE\x0f",
+	'135' => "\x1b\$Fm\x0f",
+	'136' => "\x1b\$GB\x0f",
+	'137' => "\x1b\$OG\x0f",
+	'138' => "\x1b\$GC\x0f",
+	'139' => "\x1b\$OG\x0f",
+	'140' => "\x1b\$Gw\x0f",
+	'141' => "\x1b\$Gy\x0f",
+	'142' => "\x1b\$Gx\x0f",
+	'143' => "\x1b\$P'\x0f",
+	'144' => "\x1b\$P&\x0f",
+	'145' => "\x1b\$FV\x0f",
+	'146' => "\x1b\$G^\x0f",
+	'147' => "\x1b\$EC\x0f",
+	'148' => null,
+	'149' => "\x1b\$G#\x0f",
+	'150' => "\x1b\$ON\x0f",
+	'151' => "\x1b\$E/\x0f",
+	'152' => "\x1b\$OT\x0f",
+	'153' => "\x1b\$G-\x0f",
+	'154' => "\x1b\$O1\x0f",
+	'155' => "\x1b\$OF\x0f",
+	'156' => "\x1b\$FX\x0f",
+	'157' => "\x1b\$E\\\x0f",
+	'158' => "\x1b\$GA\x0f",
+	'159' => '!?',
+	'160' => '!!',
+	'161' => null,
+	'162' => "\x1b\$OQ\x0f",
+	'163' => "\x1b\$OQ\x0f",
+	'164' => "\x1b\$OP\x0f",
+	'165' => null,
+	'166' => null,
+	'167' => "\x1b\$OD\x0f",
+	'168' => "[\x82\xd3\x82\xad\x82\xeb]", // [¤Õ¤¯¤í]
+	'169' => "[\xcd\xdf\xdd]", // [¥Ú¥ó]
+	'170' => null,
+	'171' => "\x1b\$E?\x0f",
+	'172' => "\x1b\$Pk\x0f",
+	'173' => '[SOON]',
+	'174' => '[ON]',
+	'175' => '[end]',
+	'176' => "\x1b\$GM\x0f",
+	'e1'  => "[i\xb1\xcc\xdf\xd8]", // [i¥¢¥×¥ê]
+	'e2'  => "[i\xb1\xcc\xdf\xd8]", // [i¥¢¥×¥ê]
+	'e3'  => "\x1b\$G&\x0f",
+	'e4'  => "[\x8d\xe0\x95\x7a]", // [ºâÉÛ]
+	'e5'  => "\x1b\$O<\x0f",
+	'e6'  => "[\xbc\xde\xb0\xdd\xbd\xde]", // [¥¸¡¼¥ó¥º]
+	'e7'  => "[\xbd\xc9\xce\xde]", // [¥¹¥Î¥Ü]
+	'e8'  => "\x1b\$OE\x0f",
+	'e9'  => "[\xc4\xde\xb1]", // [¥É¥¢]
+	'e10' => "\x1b\$EO\x0f",
+	'e11' => "\x1b\$G,\x0f",
+	'e12' => "\x1b\$E#\x0f\x1b\$OH\x0f",
+	'e13' => "[\xda\xdd\xc1]", // [¥ì¥ó¥Á]
+	'e14' => "\x1b\$O!\x0f",
+	'e15' => "\x1b\$E.\x0f",
+	'e16' => "\x1b\$GT\x0f",
+	'e17' => "[\x8d\xbb\x8e\x9e\x8c\x76]", // [º½»þ·×]
+	'e18' => "\x1b\$EV\x0f",
+	'e19' => "\x1b\$OX\x0f",
+	'e20' => "[\x98\x72\x8e\x9e\x8c\x76]", // [ÏÓ»þ·×]
+	'e21' => "\x1b\$P#\x0f",
+	'e22' => "\x1b\$P*\x0f",
+	'e23' => "\x1b\$P5\x0f\x1b\$OQ\x0f",
+	'e24' => "\x1b\$E(\x0f",
+	'e25' => "\x1b\$P6\x0f",
+	'e26' => "\x1b\$P.\x0f",
+	'e27' => "\x1b\$E&\x0f",
+	'e28' => "\x1b\$G.\x0f",
+	'e29' => "\x1b\$E%\x0f",
+	'e30' => "\x1b\$P%\x0f",
+	'e31' => "\x1b\$P*\x0f",
+	'e32' => "\x1b\$P&\x0f",
+	'e33' => "\x1b\$P\"\x0f",
+	'e34' => "\x1b\$P1\x0f",
+	'e35' => "\x1b\$P3\x0f",
+	'e36' => '[NG]',
+	'e37' => "[\xb8\xd8\xaf\xcc\xdf]", // [¥¯¥ê¥Ã¥×]
+	'e38' => "\x1b\$Fn\x0f",
+	'e39' => "\x1b\$QW\x0f",
+	'e40' => "\x1b\$E5\x0f",
+	'e41' => "\x1b\$O5\x0f",
+	'e42' => null,
+	'e43' => "\x1b\$Fo\x0f",
+	'e44' => "\x1b\$Fr\x0f",
+	'e45' => "[\x8b\xd6]", // [¶Ø]
+	'e46' => "\x1b\$FK\x0f",
+	'e47' => "[\x8d\x87]", // [¹ç]
+	'e48' => "\x1b\$FJ\x0f",
+	'e49' => "\x81\xcc", // ¢Î
+	'e50' => "\x81\xaa\x81\xab", // ¢¬¢­
+	'e51' => "\x1b\$Ew\x0f",
+	'e52' => "\x1b\$P^\x0f",
+	'e53' => "\x1b\$G[\x0f",
+	'e54' => "\x1b\$E0\x0f",
+	'e55' => "[\xc1\xaa\xd8\xb0]", // [¥Á¥§¥ê¡¼]
+	'e56' => "\x1b\$O\$\x0f",
+	'e57' => "[\xca\xde\xc5\xc5]", // [¥Ð¥Ê¥Ê]
+	'e58' => "\x1b\$Oe\x0f",
+	'e59' => "\x1b\$E0\x0f",
+	'e60' => "\x1b\$E8\x0f",
+	'e61' => "\x1b\$GP\x0f",
+	'e62' => "\x1b\$Ob\x0f",
+	'e63' => "\x1b\$Gf\x0f",
+	'e64' => "\x1b\$O+\x0f",
+	'e65' => "\x1b\$O`\x0f",
+	'e66' => "\x1b\$OY\x0f",
+	'e67' => "[\xb6\xc0\xc2\xd1\xd8]", // [¥«¥¿¥Ä¥à¥ê]
+	'e68' => "\x1b\$QC\x0f",
+	'e69' => "\x1b\$Gu\x0f",
+	'e70' => "\x1b\$G9\x0f",
+	'e71' => "\x1b\$Gv\x0f",
+	'e72' => "\x1b\$P\$\x0f",
+	'e73' => "\x1b\$G:\x0f",
+	'e74' => "\x1b\$E+\x0f",
+	'e75' => "\x1b\$Gd\x0f",
+	'e76' => "\x1b\$E'\x0f"
+);
+?>
Index: branches/dev/data/include/mobile_image_map_softbank.csv
===================================================================
--- branches/dev/data/include/mobile_image_map_softbank.csv	(revision 11460)
+++ branches/dev/data/include/mobile_image_map_softbank.csv	(revision 11460)
@@ -0,0 +1,146 @@
+705P,705P,300000,Y,240,240,jpg,15000,Y
+705SC,705SC,300000,Y,230,230,jpg,15000,Y
+706SC,706SC,300000,Y,230,230,jpg,15000,Y
+707SC,707SC,300000,Y,230,230,jpg,15000,Y
+810SH,810SH,300000,Y,480,480,jpg,15000,Y
+810T,810T,300000,Y,240,240,jpg,15000,Y
+811SH,811SH,300000,Y,480,480,jpg,15000,Y
+811T,811T,300000,Y,240,240,jpg,15000,Y
+910SH,910SH,300000,Y,480,480,jpg,15000,Y
+910T,910T,300000,Y,240,240,jpg,15000,Y
+911SH,911SH,300000,Y,234,232,jpg,15000,Y
+J-D03,J-D03,6000,N,120,120,jpg,5000,N
+J-D04,J-D04,6000,N,120,120,jpg,5000,N
+J-D05,J-D05,6000,N,132,132,jpg,5000,N
+J-D06,J-D06,6000,N,132,132,jpg,5000,N
+J-D07,J-D07,6000,N,128,128,jpg,5000,N
+J-D08,J-D08,6000,N,132,132,jpg,5000,N
+J-D31,J-D31,6000,N,120,120,jpg,5000,N
+J-DN02,J-DN02,6000,N,116,112,png,5000,N
+J-DN02_a,J-DN02_a,6000,N,116,112,png,5000,N
+J-DN02_b,J-DN02_b,6000,N,116,112,png,5000,N
+J-DN03,J-DN03,6000,N,120,120,jpg,5000,N
+J-DN03_a,J-DN03_a,6000,N,120,120,jpg,5000,N
+J-K03,J-K03,6000,N,120,120,jpg,5000,N
+J-K04,J-K04,6000,N,120,120,jpg,5000,N
+J-K05,J-K05,6000,N,120,120,jpg,5000,N
+J-K51,J-K51,12000,Y,128,128,jpg,10000,Y
+J-N03,J-N03,6000,N,120,120,jpg,5000,N
+J-N03II,J-N03B,6000,N,120,120,jpg,5000,N
+J-N04,J-N04,6000,N,120,120,jpg,5000,N
+J-N05,J-N05,6000,N,160,160,jpg,5000,N
+J-N51,J-N51,12000,Y,160,160,jpg,10000,Y
+J-NM01,J-NM01,6000,N,120,120,jpg,5000,N
+J-NM01_a,J-NM01_a,6000,N,120,120,jpg,5000,N
+J-NM01_b,J-NM01_b,6000,N,120,120,jpg,5000,N
+J-NM02,J-NM02,6000,N,120,120,jpg,5000,N
+J-P02,J-P02,6000,N,96,96,png,5000,N
+J-P02_a,J-P02_a,6000,N,96,96,png,5000,N
+J-P03,J-P03,6000,N,96,96,png,5000,N
+J-P51,J-P51,12000,Y,120,120,jpg,10000,Y
+J-PE03,J-PE03,6000,N,120,120,jpg,5000,N
+J-PE03_a,J-PE03_a,6000,N,120,120,jpg,5000,N
+J-PE03_b,J-PE03_b,6000,N,120,120,jpg,5000,N
+J-PE03_c,J-PE03_c,6000,N,120,120,jpg,5000,N
+J-PE03II,J-PE03B,6000,N,120,120,jpg,5000,N
+J-PE03II(J-PE03B_a),J-PE03B_a,6000,N,120,120,jpg,5000,N
+J-SA02,J-SA02,6000,N,96,96,png,5000,N
+J-SA03,J-SA03,6000,N,120,120,jpg,5000,N
+J-SA03_a,J-SA03_a,6000,N,120,120,jpg,5000,N
+J-SA03_b,J-SA03_b,6000,N,120,120,jpg,5000,N
+J-SA04,J-SA04,6000,N,120,120,jpg,5000,N
+J-SA04_a,J-SA04_a,6000,N,120,120,jpg,5000,N
+J-SA05,J-SA05,6000,N,120,120,jpg,5000,N
+J-SA06,J-SA06,6000,N,132,132,jpg,5000,N
+J-SA51,J-SA51,12000,Y,132,132,jpg,10000,Y
+J-SA51_a,J-SA51_a,12000,Y,132,132,jpg,10000,Y
+J-SH02,J-SH02,6000,N,96,96,png,5000,N
+J-SH02_a,J-SH02_a,6000,N,96,96,png,5000,N
+J-SH03,J-SH03,6000,N,96,96,png,5000,N
+J-SH03_a,J-SH03_a,6000,N,96,96,png,5000,N
+J-SH04,J-SH04,6000,N,96,96,jpg,5000,N
+J-SH04_a,J-SH04_a,6000,N,96,96,jpg,5000,N
+J-SH04_b,J-SH04_b,6000,N,96,96,jpg,5000,N
+J-SH04_c,J-SH04_c,6000,N,96,96,jpg,5000,N
+J-SH04B,J-SH04B,6000,N,96,96,jpg,5000,N
+J-SH04B_a,J-SH04B_a,6000,N,96,96,jpg,5000,N
+J-SH05,J-SH05,6000,N,120,120,jpg,5000,N
+J-SH05_a,J-SH05_a,6000,N,120,120,jpg,5000,N
+J-SH06,J-SH06,6000,N,96,96,jpg,5000,N
+J-SH07,J-SH07,6000,N,120,120,jpg,5000,N
+J-SH08,J-SH08,6000,N,120,120,jpg,5000,N
+J-SH09,J-SH09,6000,N,120,120,jpg,5000,N
+J-SH09_a,J-SH09_a,6000,N,120,120,jpg,5000,N
+J-SH010,J-SH10,6000,N,240,240,jpg,5000,N
+J-SH010_a,J-SH10_a,6000,N,240,240,jpg,5000,N
+J-SH51,J-SH51,12000,Y,120,120,jpg,10000,Y
+J-SH51_a,J-SH51_a,12000,Y,120,120,jpg,10000,Y
+J-SH52,J-SH52,12000,Y,120,120,jpg,10000,Y
+J-SH53,J-SH53,12000,Y,240,240,jpg,10000,Y
+J-SH53_a,J-SH53_a,12000,Y,240,240,jpg,10000,Y
+J-T04,J-T04,6000,N,96,96,png,5000,N
+J-T04_a,J-T04_a,6000,N,96,96,png,5000,N
+J-T05,J-T05,6000,N,120,120,jpg,5000,N
+J-T06,J-T06,6000,N,120,120,jpg,5000,N
+J-T06_a,J-T06_a,6000,N,120,120,jpg,5000,N
+J-T07,J-T07,6000,N,144,144,jpg,5000,N
+J-T08,J-T08,6000,N,222,222,jpg,5000,N
+J-T09,J-T09,6000,N,144,144,jpg,5000,N
+J-T010,J-T10,6000,N,240,240,jpg,5000,N
+J-T51,J-T51,12000,Y,144,144,jpg,10000,Y
+V702sMO,MOT-C980,300000,Y,176,176,jpg,15000,Y
+V702MO,MOT-V980,300000,Y,176,176,jpg,15000,Y
+V102D,V102D,6000,N,128,128,jpg,5000,N
+V201SH,V201SH,6000,N,240,240,jpg,5000,N
+V301D,V301D,6000,N,132,132,jpg,5000,N
+V301D_n,V301D_n,6000,N,132,132,jpg,5000,N
+V301SH,V301SH,6000,N,240,240,jpg,5000,N
+V301T,V301T,6000,N,222,216,jpg,5000,N
+V302SH,V302SH,6000,N,240,240,jpg,5000,N
+V302T,V302T,6000,N,144,144,jpg,5000,N
+V303T(KOTO),V303T,6000,N,222,216,jpg,5000,N
+V304T,V304T,6000,N,221,216,jpg,5000,N
+V401D,V401D,6000,N,240,240,jpg,5000,N
+V401SA,V401SA,6000,N,240,240,jpg,5000,N
+V401SH,V401SH,6000,N,240,240,jpg,5000,N
+V401T,V401T,6000,N,240,240,jpg,5000,N
+V402SH,V402SH,6000,N,240,240,jpg,5000,N
+V403SH,V403SH,6000,N,240,240,jpg,5000,N
+V501SH,V501SH,30000,Y,240,240,jpg,10000,Y
+V501T,V501T,30000,Y,240,240,jpg,10000,Y
+V502T,V502T,30000,Y,240,240,jpg,10000,Y
+V601N,V601N,12000,Y,160,160,jpg,10000,Y
+V601SH,V601SH,12000,Y,240,240,jpg,10000,Y
+V601T,V601T,30000,Y,240,240,jpg,10000,Y
+V602SH,V602SH,30000,Y,240,240,jpg,10000,Y
+V602T,V602T,30000,Y,240,240,jpg,10000,Y
+V603SH,V603SH,30000,Y,240,240,jpg,10000,Y
+V603T,V603T,30000,Y,240,240,jpg,10000,Y
+V604SH,V604SH,30000,Y,240,240,jpg,10000,Y
+V604T,V604T,30000,Y,240,240,jpg,10000,Y
+V702NK,V702NK,300000,Y,176,176,jpg,15000,Y
+V702NKII(V702NK2),V702NK2,300000,Y,176,176,jpg,15000,Y
+V703N,V703N,300000,Y,240,240,jpg,15000,Y
+V703SH,V703SH,300000,Y,240,240,jpg,15000,Y
+V703SHf,V703SHf,300000,Y,240,240,jpg,15000,Y
+V705SH,V705SH,300000,Y,240,240,jpg,15000,Y
+V705T,V705T,300000,Y,240,240,jpg,15000,Y
+V801SA,V801SA,200000,Y,240,240,jpg,18000,Y
+V801SA_a,V801SA_a,200000,Y,240,240,jpg,18000,Y
+V801SH,V801SH,200000,Y,240,240,jpg,18000,Y
+V802N,V802N,300000,Y,240,240,jpg,15000,Y
+V802SE,V802SE,300000,Y,176,176,jpg,15000,Y
+V802SH,V802SH,300000,Y,240,240,jpg,15000,Y
+V803T,V803T,300000,Y,240,240,jpg,15000,Y
+V804N,V804N,300000,Y,240,240,jpg,15000,Y
+V804NK,V804NK,300000,Y,240,240,jpg,15000,Y
+V804SH,V804SH,300000,Y,240,240,jpg,15000,Y
+V804SS,V804SS,300000,Y,240,240,jpg,15000,Y
+V902SH,V902SH,300000,Y,240,240,jpg,15000,Y
+V902T,V902T,300000,Y,240,240,jpg,15000,Y
+V903SH,V903SH,300000,Y,240,240,jpg,15000,Y
+V903T,V903T,300000,Y,240,240,jpg,15000,Y
+V904SH,V904SH,300000,Y,240,240,jpg,15000,Y
+V904T,V904T,300000,Y,240,240,jpg,15000,Y
+V905SH,V905SH,300000,Y,240,240,jpg,15000,Y
+*,*,300000,Y,240,240,jpg,15000,Y
Index: branches/dev/data/include/mobile_emoji_map_ezweb.inc
===================================================================
--- branches/dev/data/include/mobile_emoji_map_ezweb.inc	(revision 11460)
+++ branches/dev/data/include/mobile_emoji_map_ezweb.inc	(revision 11460)
@@ -0,0 +1,260 @@
+<?php
+/**
+ * EZwebÍÑ³¨Ê¸»ú¥³¡¼¥É (Shift JIS)
+ */
+
+return array(
+	'1'   => '<img localsrc="44">',
+	'2'   => '<img localsrc="107">',
+	'3'   => '<img localsrc="95">',
+	'4'   => '<img localsrc="191">',
+	'5'   => '<img localsrc="16">',
+	'6'   => '<img localsrc="190">',
+	'7'   => '<img localsrc="305">',
+	'8'   => '<img localsrc="481">',
+	'9'   => '<img localsrc="192">',
+	'10'  => '<img localsrc="193">',
+	'11'  => '<img localsrc="194">',
+	'12'  => '<img localsrc="195">',
+	'13'  => '<img localsrc="196">',
+	'14'  => '<img localsrc="197">',
+	'15'  => '<img localsrc="198">',
+	'16'  => '<img localsrc="199">',
+	'17'  => '<img localsrc="200">',
+	'18'  => '<img localsrc="201">',
+	'19'  => '<img localsrc="202">',
+	'20'  => '<img localsrc="203">',
+	'21'  => null,
+	'22'  => '<img localsrc="45">',
+	'23'  => '<img localsrc="306">',
+	'24'  => '<img localsrc="220">',
+	'25'  => '<img localsrc="219">',
+	'26'  => '<img localsrc="421">',
+	'27'  => '<img localsrc="307">',
+	'28'  => '<img localsrc="222">',
+	'29'  => '<img localsrc="308">',
+	'30'  => '<img localsrc="172">',
+	'31'  => '<img localsrc="341">',
+	'32'  => '<img localsrc="217">',
+	'33'  => '<img localsrc="125">',
+	'34'  => '<img localsrc="125">',
+	'35'  => '<img localsrc="216">',
+	'36'  => '<img localsrc="379">',
+	'37'  => '<img localsrc="168">',
+	'38'  => '<img localsrc="112">',
+	'39'  => '<img localsrc="156">',
+	'40'  => '<img localsrc="375">',
+	'41'  => '<img localsrc="376">',
+	'42'  => '<img localsrc="212">',
+	'43'  => '<img localsrc="205">',
+	'44'  => '<img localsrc="378">',
+	'45'  => '<img localsrc="206">',
+	'46'  => '<img localsrc="213">',
+	'47'  => '<img localsrc="208">',
+	'48'  => '<img localsrc="99">',
+	'49'  => '<img localsrc="207">',
+	'50'  => '<img localsrc="146">',
+	'51'  => '<img localsrc="93">',
+	'52'  => '<img localsrc="52">',
+	'53'  => '<img localsrc="65">',
+	'54'  => '<img localsrc="245">',
+	'55'  => '<img localsrc="124">',
+	'56'  => '<img localsrc="104">',
+	'57'  => '<img localsrc="289">',
+	'58'  => '<img localsrc="110">',
+	'59'  => '<img localsrc="70">',
+	'60'  => null,
+	'61'  => '<img localsrc="294">',
+	'62'  => '<img localsrc="309">',
+	'63'  => '<img localsrc="494">',
+	'64'  => '<img localsrc="311">',
+	'65'  => '<img localsrc="106">',
+	'66'  => '<img localsrc="176">',
+	'67'  => '<img localsrc="177">',
+	'68'  => '<img localsrc="94">',
+	'69'  => '<img localsrc="83">',
+	'70'  => '<img localsrc="122">',
+	'71'  => '<img localsrc="312">',
+	'72'  => '<img localsrc="144">',
+	'73'  => '<img localsrc="313">',
+	'74'  => '<img localsrc="85">',
+	'75'  => '<img localsrc="161">',
+	'76'  => '<img localsrc="395">',
+	'77'  => '<img localsrc="288">',
+	'78'  => '<img localsrc="232">',
+	'79'  => '<img localsrc="300">',
+	'80'  => '<img localsrc="414">',
+	'81'  => '<img localsrc="314">',
+	'82'  => '<img localsrc="315">',
+	'83'  => '<img localsrc="316">',
+	'84'  => '<img localsrc="317">',
+	'85'  => '<img localsrc="318">',
+	'86'  => '<img localsrc="817">',
+	'87'  => '<img localsrc="319">',
+	'88'  => '<img localsrc="320">',
+	'89'  => '<img localsrc="43">',
+	'90'  => '<img localsrc="42">',
+	'91'  => '<img localsrc="728">',
+	'92'  => '<img localsrc="729">',
+	'93'  => '<img localsrc="116">',
+	'94'  => '<img localsrc="178">',
+	'95'  => '<img localsrc="321">',
+	'96'  => '<img localsrc="322">',
+	'97'  => '<img localsrc="323">',
+	'98'  => '<img localsrc="15">',
+	'99'  => "\x81\x9b", // ¡û
+	'100' => '<img localsrc="134">',
+	'101' => '<img localsrc="251">',
+	'102' => '<img localsrc="169">',
+	'103' => '<img localsrc="234">',
+	'104' => '<img localsrc="71">',
+	'105' => '<img localsrc="513">',
+	'106' => '<img localsrc="784">',
+	'107' => '<img localsrc="166">',
+	'108' => "[i\xd3\xb0\xc4\xde]", // [i¥â¡¼¥É]
+	'109' => "[i\xd3\xb0\xc4\xde]", // [i¥â¡¼¥É]
+	'110' => '<img localsrc="108">',
+	'111' => "[\xc4\xde\xba\xd3]", // [¥É¥³¥â]
+	'112' => "[\xc4\xde\xba\xd3\xce\xdf\xb2\xdd\xc4]", // [¥É¥³¥â¥Ý¥¤¥ó¥È]
+	'113' => '<img localsrc="109">',
+	'114' => '<img localsrc="299">',
+	'115' => '<img localsrc="385">',
+	'116' => '<img localsrc="120">',
+	'117' => '<img localsrc="118">',
+	'118' => '<img localsrc="324">',
+	'119' => '<img localsrc="119">',
+	'120' => '<img localsrc="334">',
+	'121' => '<img localsrc="730">',
+	'122' => "[\xcc\xd8\xb0\xc0\xde\xb2\xd4\xd9]", // [¥Õ¥ê¡¼¥À¥¤¥ä¥ë]
+	'123' => '<img localsrc="818">',
+	'124' => '<img localsrc="4">',
+	'125' => '<img localsrc="180">',
+	'126' => '<img localsrc="181">',
+	'127' => '<img localsrc="182">',
+	'128' => '<img localsrc="183">',
+	'129' => '<img localsrc="184">',
+	'130' => '<img localsrc="185">',
+	'131' => '<img localsrc="186">',
+	'132' => '<img localsrc="187">',
+	'133' => '<img localsrc="188">',
+	'134' => '<img localsrc="325">',
+	'135' => '<img localsrc="326">',
+	'136' => '<img localsrc="51">',
+	'137' => '<img localsrc="803">',
+	'138' => '<img localsrc="265">',
+	'139' => '<img localsrc="266">',
+	'140' => '<img localsrc="257">',
+	'141' => '<img localsrc="258">',
+	'142' => '<img localsrc="441">',
+	'143' => '<img localsrc="444">',
+	'144' => '<img localsrc="327">',
+	'145' => '<img localsrc="731">',
+	'146' => '<img localsrc="343">',
+	'147' => '<img localsrc="224">',
+	'148' => null,
+	'149' => '<img localsrc="273">',
+	'150' => '<img localsrc="420">',
+	'151' => '<img localsrc="77">',
+	'152' => '<img localsrc="262">',
+	'153' => '<img localsrc="281">',
+	'154' => '<img localsrc="268">',
+	'155' => '<img localsrc="291">',
+	'156' => '<img localsrc="732">',
+	'157' => '<img localsrc="261">',
+	'158' => '<img localsrc="2">',
+	'159' => '<img localsrc="733">',
+	'160' => '<img localsrc="734">',
+	'161' => '<img localsrc="329">',
+	'162' => '<img localsrc="330">',
+	'163' => '<img localsrc="263">',
+	'164' => '<img localsrc="282">',
+	'165' => null,
+	'166' => '<img localsrc="735">',
+	'167' => '<img localsrc="226">',
+	'168' => "[\x82\xd3\x82\xad\x82\xeb]", // [¤Õ¤¯¤í]
+	'169' => '<img localsrc="508">',
+	'170' => null,
+	'171' => "[\x82\xa2\x82\xb7]", // [¤¤¤¹]
+	'172' => '<img localsrc="490">',
+	'173' => '[SOON]',
+	'174' => '[ON]',
+	'175' => '[end]',
+	'176' => '<img localsrc="46">',
+	'e1'  => "[i\xb1\xcc\xdf\xd8]", // [i¥¢¥×¥ê]
+	'e2'  => "[i\xb1\xcc\xdf\xd8]", // [i¥¢¥×¥ê]
+	'e3'  => '<img localsrc="335">',
+	'e4'  => '<img localsrc="290">',
+	'e5'  => '<img localsrc="295">',
+	'e6'  => '<img localsrc="805">',
+	'e7'  => '<img localsrc="221">',
+	'e8'  => '<img localsrc="48">',
+	'e9'  => "[\xc4\xde\xb1]", // [¥É¥¢]
+	'e10' => '<img localsrc="233">',
+	'e11' => '<img localsrc="337">',
+	'e12' => '<img localsrc="806">',
+	'e13' => '<img localsrc="152">',
+	'e14' => '<img localsrc="149">',
+	'e15' => '<img localsrc="354">',
+	'e16' => '<img localsrc="72">',
+	'e17' => '<img localsrc="58">',
+	'e18' => '<img localsrc="215">',
+	'e19' => '<img localsrc="423">',
+	'e20' => '<img localsrc="25">',
+	'e21' => '<img localsrc="441">',
+	'e22' => '<img localsrc="446">',
+	'e23' => '<img localsrc="257"><img localsrc="330">',
+	'e24' => '<img localsrc="351">',
+	'e25' => '<img localsrc="779">',
+	'e26' => '<img localsrc="450">',
+	'e27' => '<img localsrc="349">',
+	'e28' => '<img localsrc="287">',
+	'e29' => '<img localsrc="264">',
+	'e30' => '<img localsrc="348">',
+	'e31' => '<img localsrc="446">',
+	'e32' => '<img localsrc="443">',
+	'e33' => '<img localsrc="440">',
+	'e34' => '<img localsrc="259">',
+	'e35' => '<img localsrc="791">',
+	'e36' => '[NG]',
+	'e37' => '<img localsrc="143">',
+	'e38' => '<img localsrc="81">',
+	'e39' => '<img localsrc="54">',
+	'e40' => '<img localsrc="218">',
+	'e41' => '<img localsrc="279">',
+	'e42' => '<img localsrc="807">',
+	'e43' => '<img localsrc="82">',
+	'e44' => '<img localsrc="1">',
+	'e45' => "[\x8b\xd6]", // [¶Ø]
+	'e46' => '<img localsrc="387">',
+	'e47' => "[\x8d\x87]", // [¹ç]
+	'e48' => '<img localsrc="386">',
+	'e49' => '<img localsrc="808">',
+	'e50' => '<img localsrc="809">',
+	'e51' => '<img localsrc="377">',
+	'e52' => '<img localsrc="810">',
+	'e53' => '<img localsrc="342">',
+	'e54' => '<img localsrc="53">',
+	'e55' => '<img localsrc="241">',
+	'e56' => '<img localsrc="113">',
+	'e57' => '<img localsrc="739">',
+	'e58' => '<img localsrc="434">',
+	'e59' => '<img localsrc="811">',
+	'e60' => '<img localsrc="133">',
+	'e61' => '<img localsrc="235">',
+	'e62' => '<img localsrc="244">',
+	'e63' => '<img localsrc="239">',
+	'e64' => '<img localsrc="400">',
+	'e65' => '<img localsrc="333">',
+	'e66' => '<img localsrc="424">',
+	'e67' => '<img localsrc="812">',
+	'e68' => '<img localsrc="78">',
+	'e69' => '<img localsrc="252">',
+	'e70' => '<img localsrc="203">',
+	'e71' => '<img localsrc="454">',
+	'e72' => '<img localsrc="814">',
+	'e73' => '<img localsrc="248">',
+	'e74' => '<img localsrc="254">',
+	'e75' => '<img localsrc="12">',
+	'e76' => '<img localsrc="350">'
+);
+?>
Index: branches/dev/data/include/mobile_image_map_ezweb.csv
===================================================================
--- branches/dev/data/include/mobile_image_map_ezweb.csv	(revision 11460)
+++ branches/dev/data/include/mobile_image_map_ezweb.csv	(revision 11460)
@@ -0,0 +1,194 @@
+C303CA,CA11,1400,Y,120,120,bmp,1300,N
+C311CA,CA12,1400,Y,120,120,bmp,1300,N
+C409CA,CA13,7500,Y,120,120,png,6000,Y
+C452CA,CA14,7500,Y,120,120,png,6000,Y
+A3012CA,CA21,9000,Y,125,120,jpg,8000,Y
+A5302CA,CA22,9000,Y,125,120,jpg,20000,Y
+A5401CA A5401CA II(A5401CA),CA23,9000,Y,123,120,jpg,20000,Y
+A5403CA,CA24,9000,Y,230,224,jpg,20000,Y
+A5406CA,CA25,9000,Y,230,224,jpg,20000,Y
+A5407CA,CA26,9000,Y,230,224,jpg,20000,Y
+A5512CA,CA27,9000,Y,230,224,jpg,20000,Y
+A5513CA(G'zOne TYPE-R),CA28,9000,Y,230,224,jpg,20000,Y
+W21CA W21CA II(W21CA),CA31,9000,Y,123,120,jpg,20000,Y
+W31CA,CA32,9000,Y,230,224,jpg,20000,Y
+W41CA,CA33,9000,Y,230,224,jpg,20000,Y
+W42CA,CA34,9000,Y,232,232,jpg,20000,Y
+W43CA,CA35,9000,Y,232,232,jpg,20000,Y
+C202DE,DN01,1400,Y,108,104,bmp,1300,N
+C402DE,DN11,7500,Y,120,120,png,6000,Y
+C201H(C201H_A),HI01,1400,Y,120,120,bmp,1300,N
+C201H(C201H_A),HI02,1400,Y,120,120,bmp,1300,N
+C302H,HI11,1400,Y,120,120,bmp,1300,N
+C309H,HI12,7500,Y,120,120,png,6000,N
+C407H,HI13,7500,Y,120,120,png,6000,Y
+C451H,HI14,7500,Y,120,120,png,6000,Y
+C3001H,HI21,9000,Y,120,120,jpg,8000,Y
+A5303H,HI23,9000,Y,125,120,jpg,20000,Y
+A5303H II(A5303H2),HI24,9000,Y,125,120,jpg,20000,Y
+W11H,HI31,9000,Y,233,232,jpg,20000,Y
+W21H,HI32,9000,Y,123,120,jpg,20000,Y
+W22H,HI33,9000,Y,230,224,jpg,20000,Y
+W31H(PENCK),HI34,9000,Y,230,224,jpg,20000,Y
+W32H,HI35,9000,Y,230,224,jpg,20000,Y
+W41H,HI36,9000,Y,230,224,jpg,20000,Y
+W42H,HI37,9000,Y,232,232,jpg,20000,Y
+W43H,HI38,9000,Y,232,232,jpg,20000,Y
+C307K,KC11,1400,Y,121,120,bmp,1300,N
+C313K,KC12,1400,Y,120,120,png,1300,N
+C414K,KC13,7500,Y,120,120,jpg,6000,Y
+A1012K A1012K II(A1012K),KC14,7500,Y,120,120,jpg,6000,Y
+A1013K,KC15,7500,Y,120,120,jpg,6000,Y
+C3002K,KC21,9000,Y,128,128,jpg,7000,Y
+A5305K,KC22,9000,Y,125,120,jpg,20000,Y
+A1401K,KC23,9000,Y,126,120,jpg,20000,Y
+A5502K(A5502K_A),KC24,9000,Y,234,232,jpg,20000,Y
+A5502K(A5502K_B),KC25,9000,Y,234,232,jpg,20000,Y
+A1403KB01K(A1403K),KC26,9000,Y,234,232,jpg,20000,Y
+A5515K,KC27,9000,Y,234,232,jpg,20000,Y
+A5521K,KC28,9000,Y,234,232,jpg,20000,Y
+W11K,KC31,9000,Y,233,232,jpg,20000,Y
+W21K,KC32,9000,Y,234,232,jpg,20000,Y
+W31K W31K II(W31K),KC33,9000,Y,234,232,jpg,20000,Y
+W32K,KC34,9000,Y,234,232,jpg,20000,Y
+W41K,KC35,9000,Y,232,232,jpg,20000,Y
+W42K,KC36,9000,Y,232,232,jpg,20000,Y
+W43K,KC37,9000,Y,232,232,jpg,20000,Y
+W44K,KC38,9000,Y,232,232,jpg,20000,Y
+D303K,KCC1,1400121,120,bmp,1300,N
+D304K,KCC2,1400121,120,bmp,1300,N
+702G,KCI1,1400121,120,bmp,1300,N
+703G,KCI2,1400121,120,bmp,1300,N
+TK01,KCT1,1400,Y,121,120,bmp,1300,Y
+TK02,KCT2,1400,Y,121,120,bmp,1300,Y
+TK0K,KCT3,1400,Y,121,120,bmp,1300,Y
+TK03,KCT4,7500,Y,96,96,png,6000,Y
+TK04,KCT5,7500,Y,96,96,png,6000,Y
+TK05,KCT6,7500,Y,96,96,png,6000,Y
+TK11,KCT7,7500,Y,96,96,png,6000,Y
+TK12,KCT8,7500,Y,120,120,png,6000,Y
+TK21,KCT9,7500,Y,120,120,jpg,6000,Y
+TK22,KCTA,7500,Y,120,120,jpg,6000,Y
+TK23,KCTB,7500,Y,120,120,png,6000,Y
+TK31,KCTC,7500,Y,120,120,jpg,6000,Y
+TK40,KCTD,7500,Y,120,120,jpg,6000,Y
+TK51,KCTE,7500,Y,120,120,jpg,6000,Y
+TK41,KCU1,9000,Y,114,112,jpg,8000,Y
+C308P(C308P_A),MA11,1400,Y,122,120,bmp,1300,N
+C308P(C308P_B),MA12,1400,Y,122,120,bmp,1300,N
+C408P,MA13,7500,Y,115,112,png,6000,Y
+C3003P,MA21,9000,Y,132,132,jpg,8000,Y
+D305P(D305P_A),MAC1,1400122,120,bmp,1300,N
+D305P(D305P_B),MAC2,1400122,120,bmp,1300,N
+704G(704G_A),MAI1,1400122,120,bmp,1300,N
+D704G(704G_B),MAI2,1400122,120,bmp,1300,N
+TP01(TP01_A),MAT1,1400,Y,122,120,bmp,1300,Y
+TP01(TP01_B),MAT2,1400,Y,122,120,bmp,1300,Y
+TP11,MAT3,7500,Y,96,96,png,6000,Y
+TD11,MIT1,7500,Y,120,120,png,6000,Y
+A1405PT,PT21,9000,Y,240,240,jpg,20000,Y
+A1406PT,PT22,9000,Y,240,240,jpg,20000,Y
+A3011SA,SA21,9000,Y,126,120,jpg,8000,Y
+A3015SA,SA22,9000,Y,126,120,jpg,8000,Y
+A1302SA,SA24,9000,Y,132,132,jpg,20000,Y
+A1303SA,SA25,9000,Y,132,132,jpg,20000,Y
+A5503SA,SA26,9000,Y,225,224,jpg,20000,Y
+A5505SA,SA27,9000,Y,225,224,jpg,20000,Y
+A1305SA,SA28,9000,Y,124,120,jpg,20000,Y
+A5522SA,SA29,9000,Y,235,232,jpg,20000,Y
+W21SA,SA31,9000,Y,225,224,jpg,20000,Y
+W22SA,SA32,9000,Y,230,224,jpg,20000,Y
+W31SA W31SA II(W31SA),SA33,9000,Y,230,224,jpg,20000,Y
+W32SA,SA34,9000,Y,228,224,jpg,20000,Y
+W33SA,SA35,9000,Y,228,224,jpg,20000,Y
+W41SA,SA36,9000,Y,228,224,jpg,20000,Y
+E02SA,SA37,9000,Y,228 ,224 ,jpg,20000,Y
+W43SA,SA38,9000,Y,228,224,jpg,20000,Y
+W41SH,SH31,9000,Y,229,224,jpg,20000,Y
+C305S,SN11,1400,Y,120,120,bmp,1300,N
+C404S(C404S_A),SN12,7500,Y,120,120,png,6000,Y
+C406S,SN13,7500,Y,120,120,png,6000,Y
+C404S(C404S_B),SN14,7500,Y,120,120,png,6000,Y
+C413S(C413S_B),SN15,7500,Y,120,120,png,6000,Y
+C413S(C413S_A),SN16,7500,Y,120,120,png,6000,Y
+C1002S,SN17,7500,Y,120,120,png,6000,Y
+A3014S,SN21,9000,Y,120,120,jpg,8000,Y
+A1101S,SN22,9000,Y,120,120,jpg,8000,Y
+A1301S,SN23,9000,Y,120,120,jpg,20000,Y
+A5402S,SN24,9000,Y,120,120,jpg,20000,Y
+A5404S,SN25,9000,Y,240,240,jpg,20000,Y
+A1402S,SN26,9000,Y,228,224,jpg,20000,Y
+A1402S II(A1402S2_A),SN27,9000,Y,228,224,jpg,20000,Y
+A1402S II ¥«¥á¥éÌµ¤·(A1402S2_B),SN28,9000,Y,228,224,jpg,20000,Y
+A1404S A1404S II(A1404S),SN29,9000,Y,228,224,jpg,20000,Y
+W21S,SN31,9000,Y,228,224,jpg,20000,Y
+W31S,SN32,9000,Y,228,224,jpg,20000,Y
+W32S,SN33,9000,Y,228,224,jpg,20000,Y
+W41S,SN34,9000,Y,228,224,jpg,20000,Y
+W32S,SN35,9000,Y,228,224,jpg,20000,Y
+W42S,SN36,9000,Y,228,224,jpg,20000,Y
+W43S,SN37,9000,Y,228,224,jpg,20000,Y
+D306S,SNC1,1400120,120,bmp,1300,N
+705G,SNI1,1400120,120,bmp,1300,N
+C403ST,ST11,7500,Y,120,120,png,6000,Y
+C411ST,ST12,7500,Y,120,120,png,6000,Y
+A1011ST,ST13,7500,Y,120,120,jpg,6000,Y
+A1014ST,ST14,7500,Y,120,120,jpg,6000,Y
+A5306ST,ST21,9000,Y,125,120,jpg,20000,Y
+A5307ST(INFOBAR),ST22,9000,Y,125,120,jpg,20000,Y
+A5405SA,ST23,9000,Y,127,120,jpg,20000,Y
+A5507SA,ST24,9000,Y,235,232,jpg,20000,Y
+A5508SA(talby),ST25,9000,Y,235,232,jpg,20000,Y
+A5510SA(Sweets),ST26,9000,Y,235,232,jpg,20000,Y
+A5514SA,ST27,9000,Y,235,232,jpg,20000,Y
+A5518SA,ST28,9000,Y,235,232,jpg,20000,Y
+A5519SA(Sweets pure),ST29,9000,Y,235,232,jpg,20000,Y
+A5520SA,ST2A,9000,Y,235,232,jpg,20000,Y
+W42SA,ST31,9000,Y,235,232,jpg,20000,Y
+C304SA,SY11,1400,Y,128,128,bmp,1300,N
+C401SA,SY12,7500,Y,120,120,png,6000,Y
+C405SA,SY13,1400,Y,120,120,png,1300,Y
+C412SA,SY14,7500,Y,120,120,png,6000,Y
+C1001SA,SY15,7500,Y,120,120,png,6000,Y
+D301SA,SYC1,1400128,128,bmp,1300,N
+TS01,SYT1,1400,Y,128,128,bmp,1300,Y
+TS02,SYT2,7500,Y,96,96,png,6000,Y
+TS11,SYT3,7500,Y,120,120,jpg,6000,Y
+TS31,SYT4,7500,Y,120,120,jpg,6000,Y
+TS41,SYT5,7500,Y,132,132,jpg,6000,Y
+C301T,TS11,1400,Y,120,120,bmp,1300,N
+C310T,TS12,7500,Y,96,96,png,6000,N
+C410T,TS13,7500,Y,96,96,png,6000,Y
+C415T,TS14,7500,Y,96,96,png,6000,Y
+C5001T,TS21,9000,Y,144,144,jpg,20000,Y
+A3013T,TS22,9000,Y,144,144,jpg,7740,Y
+A5301T,TS23,9000,Y,144,144,jpg,20000,Y
+A5304T,TS24,9000,Y,144,144,jpg,20000,Y
+A1304T A1304T II(A1304T),TS25,9000,Y,144,144,jpg,20000,Y
+A5501T,TS26,9000,Y,240,240,jpg,20000,Y
+A5504T,TS27,9000,Y,229,224,jpg,20000,Y
+A5506T,TS28,9000,Y,229,224,jpg,20000,Y
+A5509T,TS29,9000,Y,229,224,jpg,20000,Y
+A5511T,TS2A,9000,Y,229,224,jpg,20000,Y
+A5516T,TS2B,9000,Y,229,224,jpg,20000,Y
+A5517T,TS2C,9000,Y,229,224,jpg,20000,Y
+W21T,TS31,9000,Y,229,224,jpg,20000,Y
+W31T,TS32,9000,Y,229,224,jpg,20000,Y
+W32T,TS33,9000,Y,229,224,jpg,20000,Y
+W41T,TS34,9000,Y,229,224,jpg,20000,Y
+W42T(neon),TS35,9000,Y,229,224,jpg,20000,Y
+W43T,TS36,9000,Y,229,224,jpg,20000,Y
+W44T,TS37,9000,Y,229,224,jpg,20000,Y
+W45T,TS38,9000,Y,229,224,jpg,20000,Y
+D302T,TSC1,1400120,120,bmp,1300,N
+701G,TSI1,1400120,120,bmp,1300,N
+TT01,TST1,1400,Y,120,120,bmp,1300,Y
+TT02,TST2,1400,Y,120,120,bmp,1300,Y
+TT03,TST3,7500,Y,120,120,png,6000,Y
+TT11,TST4,7500,Y,120,120,jpg,6000,Y
+TT21,TST5,7500,Y,140,140,jpg,6000,Y
+TT22,TST6,7500,Y,140,140,jpg,6000,Y
+TT31,TST7,7500,Y,140,140,jpg,6000,Y
+TT32,TST8,7500,Y,140,140,jpg,6000,Y
+TT51,TST9,7500,Y,120,120,jpg,6000,Y
+*,*,9000,Y,229,224,jpg,20000,Y
Index: branches/dev/data/include/mobile.inc
===================================================================
--- branches/dev/data/include/mobile.inc	(revision 11460)
+++ branches/dev/data/include/mobile.inc	(revision 11460)
@@ -0,0 +1,414 @@
+<?php
+/**
+ * ¥â¥Ð¥¤¥ë¥µ¥¤¥È¶¦Í­´Ø¿ô¥Õ¥¡¥¤¥ë
+ */
+
+require_once DATA_PATH . 'module/Net/URL.php';
+require_once DATA_PATH . 'class/SC_DbConn.php';
+require_once DATA_PATH . 'class/SC_Query.php';
+
+/**
+ * EC-CUBE ¤¬¥µ¥Ý¡¼¥È¤¹¤ë·ÈÂÓÃ¼Ëö¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£
+ * ÈóÂÐ±þÃ¼Ëö¤Î¾ì¹ç¤Ï unsupported/index.php ¤Ø¥ê¥À¥¤¥ì¥¯¥È¤¹¤ë¡£
+ *
+ * @return void
+ */
+function lfMobileCheckCompatibility() {
+	if (!GC_MobileUserAgent::isSupported()) {
+		header('Location: ' . URL_DIR . 'unsupported/index.php');
+		exit;
+	}
+}
+
+/**
+ * ÆþÎÏ¥Ç¡¼¥¿¤òÆâÉô¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ËÊÑ´¹¤·¡¢³¨Ê¸»ú¤ò½üµî¤¹¤ë¡£
+ *
+ * @param string &$value ÆþÎÏ¥Ç¡¼¥¿¤Ø¤Î»²¾È
+ * @return void
+ */
+function lfMobileConvertInputValue(&$value) {
+	// Shift JIS ¤«¤éÆâÉô¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ËÊÑ´¹¤¹¤ë¡£
+	// SoftBank °Ê³°¤Î³¨Ê¸»ú¤Ï³°»úÎÎ°è¤Ë´Þ¤Þ¤ì¤ë¤¿¤á¡¢¤³¤ÎÃÊ³¬¤Ç½üµî¤µ¤ì¤ë¡£
+	$value = mb_convert_encoding($value, CHAR_CODE, 'SJIS');
+
+	// SoftBank ¤Î³¨Ê¸»ú¤ò½üµî¤¹¤ë¡£
+	$value = preg_replace('/\\x1b\\$[^\\x0f]*\\x0f/', '', $value);
+}
+
+/**
+ * ¥â¥Ð¥¤¥ë¥µ¥¤¥ÈÍÑ¤ÎÆþÎÏ¤Î½é´ü½èÍý¤ò¹Ô¤¦¡£
+ *
+ * @return void
+ */
+function lfMobileInitInput() {
+	array_walk($_GET, 'lfMobileConvertInputValue');
+	array_walk($_POST, 'lfMobileConvertInputValue');
+	array_walk($_REQUEST, 'lfMobileConvertInputValue');
+}
+
+/**
+ * dtb_mobile_ext_session_id ¥Æ¡¼¥Ö¥ë¤ò¸¡º÷¤·¤Æ¥»¥Ã¥·¥ç¥óID¤ò¼èÆÀ¤¹¤ë¡£
+ *
+ * @return string|null ¼èÆÀ¤·¤¿¥»¥Ã¥·¥ç¥óID¤òÊÖ¤¹¡£
+ *                     ¼èÆÀ¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï null ¤òÊÖ¤¹¡£
+ */
+function lfMobileGetExtSessionId() {
+	if (!preg_match('|^' . URL_DIR . '(.*)$|', $_SERVER['SCRIPT_NAME'], $matches)) {
+		return null;
+	}
+
+	$url = $matches[1];
+	$time = date('Y-m-d H:i:s', time() - MOBILE_SESSION_LIFETIME);
+	$objQuery = new SC_Query;
+
+	foreach ($_REQUEST as $key => $value) {
+		$session_id = $objQuery->get('dtb_mobile_ext_session_id', 'session_id',
+		                             'param_key = ? AND param_value = ? AND url = ? AND create_date >= ?',
+		                             array($key, $value, $url, $time));
+		if (isset($session_id)) {
+			return $session_id;
+		}
+	}
+
+	return null;
+}
+
+/**
+ * ¥Ñ¥é¥á¡¼¥¿¡¼¤«¤éÍ­¸ú¤Ê¥»¥Ã¥·¥ç¥óID¤ò¼èÆÀ¤¹¤ë¡£
+ *
+ * @return string|false ¼èÆÀ¤·¤¿Í­¸ú¤Ê¥»¥Ã¥·¥ç¥óID¤òÊÖ¤¹¡£
+ *                      ¼èÆÀ¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï false ¤òÊÖ¤¹¡£
+ */
+function lfMobileGetSessionId() {
+	// ¥Ñ¥é¥á¡¼¥¿¡¼¤«¤é¥»¥Ã¥·¥ç¥óID¤ò¼èÆÀ¤¹¤ë¡£
+	$sessionId = @$_POST[session_name()];
+	if (!isset($sessionId)) {
+		$sessionId = @$_GET[session_name()];
+	}
+	if (!isset($sessionId)) {
+		$sessionId = lfMobileGetExtSessionId();
+	}
+	if (!isset($sessionId)) {
+		return false;
+	}
+
+	// ¥»¥Ã¥·¥ç¥óID¤Î¥Õ¥©¡¼¥Þ¥Ã¥È¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£
+	if (preg_match('/^[0-9a-zA-Z,-]{32,}$/', $sessionId) < 1) {
+		gfPrintLog("Invalid session id : sid=$sessionId");
+		return false;
+	}
+
+	// ¥»¥Ã¥·¥ç¥óID¤ÎÂ¸ºß¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£
+	if (sfSessRead($sessionId) === null) {
+		gfPrintLog("Non-existent session id : sid=$sessionId");
+		return false;
+	}
+
+	return session_id($sessionId);
+}
+
+/**
+ * ¥»¥Ã¥·¥ç¥ó¥Ç¡¼¥¿¤¬Í­¸ú¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£
+ *
+ * @return boolean ¥»¥Ã¥·¥ç¥ó¥Ç¡¼¥¿¤¬Í­¸ú¤Ê¾ì¹ç¤Ï true¡¢Ìµ¸ú¤Ê¾ì¹ç¤Ï false ¤òÊÖ¤¹¡£
+ */
+function lfMobileValidateSession() {
+	// ÇÛÎó mobile ¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£
+	if (!is_array(@$_SESSION['mobile'])) {
+		return false;
+	}
+
+	// Í­¸ú´ü¸Â¤ò²á¤®¤Æ¤¤¤Ê¤¤¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£
+	if (intval(@$_SESSION['mobile']['expires']) < time()) {
+		gfPrintLog("Session expired at " .
+		           date('Y/m/d H:i:s', @$_SESSION['mobile']['expires']) .
+		           ' : sid=' . session_id());
+
+		return false;
+	}
+
+	// ·ÈÂÓÃ¼Ëö¤Îµ¡¼ï¤¬°ìÃ×¤¹¤ë¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£
+	$model = GC_MobileUserAgent::getModel();
+	if (@$_SESSION['mobile']['model'] != $model) {
+		gfPrintLog("User agent model mismatch : " .
+		           "\"$model\" != \"" . @$_SESSION['mobile']['model'] .
+		           '" (expected), sid=' . session_id());
+		return false;
+	}
+
+	return true;
+}
+
+/**
+ * ¥â¥Ð¥¤¥ë¥µ¥¤¥ÈÍÑ¤Î¥»¥Ã¥·¥ç¥ó´ØÏ¢¤Î½é´ü½èÍý¤ò¹Ô¤¦¡£
+ *
+ * @return void
+ */
+function lfMobileInitSession() {
+	// ¥»¥Ã¥·¥ç¥óID¤Î¼õ¤±ÅÏ¤·¤Ë¥¯¥Ã¥­¡¼¤ò»ÈÍÑ¤·¤Ê¤¤¡£
+	ini_set('session.use_cookies', '0');
+
+	// ¥Ñ¥é¥á¡¼¥¿¡¼¤«¤éÍ­¸ú¤Ê¥»¥Ã¥·¥ç¥óID¤ò¼èÆÀ¤¹¤ë¡£
+	$sessionId = lfMobileGetSessionId();
+
+	session_start();
+
+	// ¥»¥Ã¥·¥ç¥óID¤Þ¤¿¤Ï¥»¥Ã¥·¥ç¥ó¥Ç¡¼¥¿¤¬Ìµ¸ú¤Ê¾ì¹ç¤Ï¡¢¥»¥Ã¥·¥ç¥óID¤òºÆÀ¸À®
+	// ¤·¡¢¥»¥Ã¥·¥ç¥ó¥Ç¡¼¥¿¤ò½é´ü²½¤¹¤ë¡£
+	if ($sessionId === false || !lfMobileValidateSession()) {
+		session_regenerate_id();
+		$_SESSION = array('mobile' => array('model'    => GC_MobileUserAgent::getModel(),
+		                                    'phone_id' => GC_MobileUserAgent::getId(),
+		                                    'expires'  => time() + MOBILE_SESSION_LIFETIME));
+
+		// ¿·¤·¤¤¥»¥Ã¥·¥ç¥óID¤òÉÕ²Ã¤·¤Æ¥ê¥À¥¤¥ì¥¯¥È¤¹¤ë¡£
+		if ($_SERVER['REQUEST_METHOD'] == 'GET') {
+			// GET ¤Î¾ì¹ç¤ÏÆ±¤¸¥Ú¡¼¥¸¤Ë¥ê¥À¥¤¥ì¥¯¥È¤¹¤ë¡£
+			header('Location: ' . gfAddSessionId());
+		} else {
+			// GET °Ê³°¤Î¾ì¹ç¤Ï¥È¥Ã¥×¥Ú¡¼¥¸¤Ø¥ê¥À¥¤¥ì¥¯¥È¤¹¤ë¡£
+			header('Location: ' . URL_SITE_TOP . '?' . SID);
+		}
+		exit;
+	}
+
+	// ·ÈÂÓÃ¼ËöID¤ò¼èÆÀ¤Ç¤­¤¿¾ì¹ç¤Ï¥»¥Ã¥·¥ç¥ó¥Ç¡¼¥¿¤ËÊÝÂ¸¤¹¤ë¡£
+	$phoneId = GC_MobileUserAgent::getId();
+	if ($phoneId !== false) {
+		$_SESSION['mobile']['phone_id'] = $phoneId;
+	}
+
+	// ¥»¥Ã¥·¥ç¥ó¤ÎÍ­¸ú´ü¸Â¤ò¹¹¿·¤¹¤ë¡£
+	$_SESSION['mobile']['expires'] = time() + MOBILE_SESSION_LIFETIME;
+}
+
+/**
+ * ¥â¥Ð¥¤¥ë¥µ¥¤¥ÈÍÑ¤Î½ÐÎÏ¤Î½é´ü½èÍý¤ò¹Ô¤¦¡£
+ *
+ * ½ÐÎÏ¤ÎÎ®¤ì
+ * 1. Smarty
+ * 2. ÆâÉô¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤«¤é Shift JIS ¤ËÊÑ´¹¤¹¤ë¡£
+ * 3. Á´³Ñ¥«¥¿¥«¥Ê¤òÈ¾³Ñ¥«¥¿¥«¥Ê¤ËÊÑ´¹¤¹¤ë¡£
+ * 4. ²èÁüÍÑ¤Î¥¿¥°¤òÄ´À°¤¹¤ë¡£
+ * 5. ³¨Ê¸»ú¥¿¥°¤ò³¨Ê¸»ú¥³¡¼¥É¤ËÊÑ´¹¤¹¤ë¡£
+ * 6. ½ÐÎÏ
+ *
+ * @return void
+ */
+function lfMobileInitOutput() {
+	// Smarty ÍÑ¤Î¥Ç¥£¥ì¥¯¥È¥ê¡¼¤òºîÀ®¤¹¤ë¡£
+	@mkdir(COMPILE_DIR);
+
+	// ½ÐÎÏÍÑ¤Î¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤ò Shift JIS ¤Ë¸ÇÄê¤¹¤ë¡£
+	mb_http_output('SJIS-win');
+
+	// ³¨Ê¸»ú¥¿¥°¤ò³¨Ê¸»ú¥³¡¼¥É¤ËÊÑ´¹¤¹¤ë¡£
+	ob_start(array('GC_MobileEmoji', 'handler'));
+
+	// Ã¼Ëö¤Ë¹ç¤ï¤»¤Æ²èÁü¥µ¥¤¥º¤òÊÑ´¹¤¹¤ë¡£
+	ob_start(array('GC_MobileImage', 'handler'));
+
+	// Á´³Ñ¥«¥¿¥«¥Ê¤òÈ¾³Ñ¥«¥¿¥«¥Ê¤ËÊÑ´¹¤¹¤ë¡£
+	ob_start(create_function('$buffer', 'return mb_convert_kana($buffer, "k", "SJIS-win");'));
+
+	// ÆâÉô¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤«¤é Shift JIS ¤ËÊÑ´¹¤¹¤ë¡£
+	ob_start('mb_output_handler');
+}
+
+/**
+ * ¥â¥Ð¥¤¥ë¥µ¥¤¥ÈÍÑ¤Î½é´ü½èÍý¤ò¹Ô¤¦¡£
+ *
+ * @return void
+ */
+function sfMobileInit() {
+	lfMobileInitInput();
+
+	if (basename(dirname($_SERVER['SCRIPT_NAME'])) != 'unsupported') {
+		lfMobileCheckCompatibility();
+		lfMobileInitSession();
+	}
+
+	lfMobileInitOutput();
+}
+
+/**
+ * LocationÅù¤Ç¥»¥Ã¥·¥ç¥óID¤òÉÕ²Ã¤¹¤ëÉ¬Í×¤¬¤¢¤ëURL¤Ë¥»¥Ã¥·¥ç¥óID¤òÉÕ²Ã¤¹¤ë¡£
+ *
+ * @return String
+ */
+function gfAddSessionId($url = null) {
+	$objURL = new Net_URL($url);
+	$objURL->addQueryString(session_name(), session_id());
+	return $objURL->getURL();
+}
+
+/**
+ * ¶õ¥á¡¼¥ëÍÑ¤Î¥È¡¼¥¯¥ó¤òÀ¸À®¤¹¤ë¡£
+ *
+ * @return string À¸À®¤·¤¿¥È¡¼¥¯¥ó¤òÊÖ¤¹¡£
+ */
+function lfGenerateKaraMailToken() {
+	$token_chars = '0123456789abcdefghijklmnopqrstuvwxyz';
+	$token_chars_length = strlen($token_chars);
+	$token_length = 10;
+	$token = '';
+
+	while ($token_length > 0) {
+		$token .= $token_chars{mt_rand(0, $token_chars_length - 1)};
+		--$token_length;
+	}
+
+	return $token;
+}
+
+/**
+ * ¶õ¥á¡¼¥ë´ÉÍý¥Æ¡¼¥Ö¥ë¤Ë¿·µ¬¥¨¥ó¥È¥ê¡¼¤òÅÐÏ¿¤·¡¢¥È¡¼¥¯¥ó¤òÊÖ¤¹¡£
+ *
+ * @param string $next_url ¶õ¥á¡¼¥ë¼õ¤±ÉÕ¤±¸å¤ËÁ«°Ü¤µ¤»¤ë¥Ú¡¼¥¸ (¥â¥Ð¥¤¥ë¥µ¥¤¥È¥È¥Ã¥×¤«¤é¤ÎÁêÂÐURL)
+ * @param string $session_id ¥»¥Ã¥·¥ç¥óID (¾ÊÎ¬¤·¤¿¾ì¹ç¤Ï¸½ºß¤Î¥»¥Ã¥·¥ç¥óID)
+ * @return string|false ¥È¡¼¥¯¥ó¤òÊÖ¤¹¡£¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ïfalse¤òÊÖ¤¹¡£
+ */
+function gfPrepareKaraMail($next_url, $session_id = null) {
+	if (!isset($session_id)) {
+		$session_id = session_id();
+	}
+
+	$objQuery = new SC_Query;
+
+	// GC
+	$time = date('Y-m-d H:i:s', time() - MOBILE_SESSION_LIFETIME);
+	$objQuery->delete('dtb_mobile_kara_mail', 'email IS NULL AND create_date < ?', array($time));
+
+	$objQuery->delete('dtb_mobile_kara_mail', 'session_id = ?', array($session_id));
+
+	$arrValues = array('session_id' => $session_id,
+	                   'next_url'   => $next_url);
+
+	$try = 10;
+
+	while ($try > 0) {
+		$arrValues['token'] = $token = lfGenerateKaraMailToken();
+
+		$objQuery->insert('dtb_mobile_kara_mail', $arrValues);
+		$count = $objQuery->count('dtb_mobile_kara_mail', 'token = ?', array($token));
+
+		if ($count == 1) {
+			break;
+		}
+
+		$objQuery->delete('dtb_mobile_kara_mail', 'session_id = ?', array($session_id));
+		$token = false;
+		--$try;
+	}
+
+	return $token;
+}
+
+/**
+ * ¶õ¥á¡¼¥ë¤«¤é¼èÆÀ¤·¤¿¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò¶õ¥á¡¼¥ë´ÉÍý¥Æ¡¼¥Ö¥ë¤ËÅÐÏ¿¤¹¤ë¡£
+ *
+ * @param string $token ¥È¡¼¥¯¥ó
+ * @param string $email ¥á¡¼¥ë¥¢¥É¥ì¥¹
+ * @return boolean À®¸ù¤·¤¿¾ì¹ç¤Ïtrue¡¢¼ºÇÔ¤·¤¿¾ì¹ç¤Ïfalse¤òÊÖ¤¹¡£
+ */
+function gfRegisterKaraMail($token, $email) {
+	$objQuery = new SC_Query;
+
+	// GC
+	$time = date('Y-m-d H:i:s', time() - MOBILE_SESSION_LIFETIME);
+	$objQuery->delete('dtb_mobile_kara_mail',
+	                  '(email IS NULL AND create_date < ?) OR (email IS NOT NULL AND receive_date < ?)',
+	                  array($time, $time));
+
+	$kara_mail_id = $objQuery->get('dtb_mobile_kara_mail', 'kara_mail_id', 'token = ?', array($token));
+	if (!isset($kara_mail_id)) {
+		return false;
+	}
+
+	$arrValues = array('email' => $email);
+	$arrRawValues = array('receive_date' => 'now()');
+	$objQuery->update('dtb_mobile_kara_mail', $arrValues, 'kara_mail_id = ?', array($kara_mail_id), $arrRawValues);
+
+	return true;
+}
+
+/**
+ * ¶õ¥á¡¼¥ë´ÉÍý¥Æ¡¼¥Ö¥ë¤«¤é¥È¡¼¥¯¥ó¤¬°ìÃ×¤¹¤ë¹Ô¤òºï½ü¤·¡¢
+ * ¼¡¤ËÁ«°Ü¤µ¤»¤ë¥Ú¡¼¥¸¤ÎURL¤òÊÖ¤¹¡£¡¡
+ *
+ * ¥á¡¼¥ë¥¢¥É¥ì¥¹¤Ï $_SESSION['mobile']['kara_mail_from'] ¤ËÅÐÏ¿¤µ¤ì¤ë¡£
+ *
+ * @param string $token ¥È¡¼¥¯¥ó
+ * @return string|false URL¤òÊÖ¤¹¡£¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ïfalse¤òÊÖ¤¹¡£
+ */
+function gfFinishKaraMail($token) {
+	$objQuery = new SC_Query;
+
+	$arrRow = $objQuery->getrow('dtb_mobile_kara_mail', 'session_id, next_url, email',
+	                            'token = ? AND email IS NOT NULL AND receive_date >= ?',
+	                            array($token, date('Y-m-d H:i:s', time() - MOBILE_SESSION_LIFETIME)));
+	if (!isset($arrRow)) {
+		return false;
+	}
+
+	$objQuery->delete('dtb_mobile_kara_mail', 'token = ?', array($token));
+
+	list($session_id, $next_url, $email) = $arrRow;
+	$objURL = new Net_URL(SITE_URL . $next_url);
+	$objURL->addQueryString(session_name(), $session_id);
+	$url = $objURL->getURL();
+
+	session_id($session_id);
+	session_start();
+	$_SESSION['mobile']['kara_mail_from'] = $email;
+	session_write_close();
+
+	return $url;
+}
+
+/**
+ * ³°Éô¥µ¥¤¥ÈÏ¢·ÈÍÑ¤Ë¥»¥Ã¥·¥ç¥óID¤È¥Ñ¥é¥á¡¼¥¿¡¼¤ÎÁÈ¤ß¹ç¤ï¤»¤òÊÝÂ¸¤¹¤ë¡£
+ *
+ * @param string $param_key ¥Ñ¥é¥á¡¼¥¿¡¼Ì¾
+ * @param string $param_value ¥Ñ¥é¥á¡¼¥¿¡¼ÃÍ
+ * @param string $url URL
+ * @return void
+ */
+function sfMobileSetExtSessionId($param_key, $param_value, $url) {
+	$objQuery = new SC_Query;
+
+	// GC
+	$time = date('Y-m-d H:i:s', time() - MOBILE_SESSION_LIFETIME);
+	$objQuery->delete('dtb_mobile_ext_session_id', 'create_date < ?', array($time));
+
+	$arrValues = array('session_id'  => session_id(),
+	                   'param_key'   => $param_key,
+	                   'param_value' => $param_value,
+	                   'url'         => $url);
+
+	$objQuery->insert('dtb_mobile_ext_session_id', $arrValues);
+}
+
+/**
+ * ¥á¡¼¥ë¥¢¥É¥ì¥¹¤¬·ÈÂÓ¤Î¤â¤Î¤«¤É¤¦¤«¤òÈ½ÊÌ¤¹¤ë¡£
+ *
+ * @param string $address ¥á¡¼¥ë¥¢¥É¥ì¥¹
+ * @return boolean ·ÈÂÓ¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤Î¾ì¹ç¤Ïtrue¡¢¤½¤ì°Ê³°¤Î¾ì¹ç¤Ïfalse¤òÊÖ¤¹¡£
+ */
+function gfIsMobileMailAddress($address) {
+	$arrMobileMailDomains = array('docomo.ne.jp', 'ezweb.ne.jp', 'softbank.ne.jp', 'vodafone.ne.jp');
+
+	if (defined('MOBILE_ADDITIONAL_MAIL_DOMAINS')) {
+		$arrMobileMailDomains = array_merge($arrMobileMailDomains, split('[ ,]+', MOBILE_ADDITIONAL_MAIL_DOMAINS));
+	}
+
+	foreach ($arrMobileMailDomains as $domain) {
+		$domain = str_replace('.', '\\.', $domain);
+		if (preg_match("/@([^@]+\\.)?$domain\$/", $address)) {
+			return true;
+		}
+	}
+
+	return false;
+}
+?>
Index: branches/dev/data/include/mobile_emoji_map_docomo.inc
===================================================================
--- branches/dev/data/include/mobile_emoji_map_docomo.inc	(revision 11460)
+++ branches/dev/data/include/mobile_emoji_map_docomo.inc	(revision 11460)
@@ -0,0 +1,260 @@
+<?php
+/**
+ * i¥â¡¼¥ÉÍÑ³¨Ê¸»ú¥³¡¼¥É (Shift JIS)
+ */
+
+return array(
+	'1'   => "\xf8\x9f",
+	'2'   => "\xf8\xa0",
+	'3'   => "\xf8\xa1",
+	'4'   => "\xf8\xa2",
+	'5'   => "\xf8\xa3",
+	'6'   => "\xf8\xa4",
+	'7'   => "\xf8\xa5",
+	'8'   => "\xf8\xa6",
+	'9'   => "\xf8\xa7",
+	'10'  => "\xf8\xa8",
+	'11'  => "\xf8\xa9",
+	'12'  => "\xf8\xaa",
+	'13'  => "\xf8\xab",
+	'14'  => "\xf8\xac",
+	'15'  => "\xf8\xad",
+	'16'  => "\xf8\xae",
+	'17'  => "\xf8\xaf",
+	'18'  => "\xf8\xb0",
+	'19'  => "\xf8\xb1",
+	'20'  => "\xf8\xb2",
+	'21'  => "\xf8\xb3",
+	'22'  => "\xf8\xb4",
+	'23'  => "\xf8\xb5",
+	'24'  => "\xf8\xb6",
+	'25'  => "\xf8\xb7",
+	'26'  => "\xf8\xb8",
+	'27'  => "\xf8\xb9",
+	'28'  => "\xf8\xba",
+	'29'  => "\xf8\xbb",
+	'30'  => "\xf8\xbc",
+	'31'  => "\xf8\xbd",
+	'32'  => "\xf8\xbe",
+	'33'  => "\xf8\xbf",
+	'34'  => "\xf8\xc0",
+	'35'  => "\xf8\xc1",
+	'36'  => "\xf8\xc2",
+	'37'  => "\xf8\xc3",
+	'38'  => "\xf8\xc4",
+	'39'  => "\xf8\xc5",
+	'40'  => "\xf8\xc6",
+	'41'  => "\xf8\xc7",
+	'42'  => "\xf8\xc8",
+	'43'  => "\xf8\xc9",
+	'44'  => "\xf8\xca",
+	'45'  => "\xf8\xcb",
+	'46'  => "\xf8\xcc",
+	'47'  => "\xf8\xcd",
+	'48'  => "\xf8\xce",
+	'49'  => "\xf8\xcf",
+	'50'  => "\xf8\xd0",
+	'51'  => "\xf8\xd1",
+	'52'  => "\xf8\xd2",
+	'53'  => "\xf8\xd3",
+	'54'  => "\xf8\xd4",
+	'55'  => "\xf8\xd5",
+	'56'  => "\xf8\xd6",
+	'57'  => "\xf8\xd7",
+	'58'  => "\xf8\xd8",
+	'59'  => "\xf8\xd9",
+	'60'  => "\xf8\xda",
+	'61'  => "\xf8\xdb",
+	'62'  => "\xf8\xdc",
+	'63'  => "\xf8\xdd",
+	'64'  => "\xf8\xde",
+	'65'  => "\xf8\xdf",
+	'66'  => "\xf8\xe0",
+	'67'  => "\xf8\xe1",
+	'68'  => "\xf8\xe2",
+	'69'  => "\xf8\xe3",
+	'70'  => "\xf8\xe4",
+	'71'  => "\xf8\xe5",
+	'72'  => "\xf8\xe6",
+	'73'  => "\xf8\xe7",
+	'74'  => "\xf8\xe8",
+	'75'  => "\xf8\xe9",
+	'76'  => "\xf8\xea",
+	'77'  => "\xf8\xeb",
+	'78'  => "\xf8\xec",
+	'79'  => "\xf8\xed",
+	'80'  => "\xf8\xee",
+	'81'  => "\xf8\xef",
+	'82'  => "\xf8\xf0",
+	'83'  => "\xf8\xf1",
+	'84'  => "\xf8\xf2",
+	'85'  => "\xf8\xf3",
+	'86'  => "\xf8\xf4",
+	'87'  => "\xf8\xf5",
+	'88'  => "\xf8\xf6",
+	'89'  => "\xf8\xf7",
+	'90'  => "\xf8\xf8",
+	'91'  => "\xf8\xf9",
+	'92'  => "\xf8\xfa",
+	'93'  => "\xf8\xfb",
+	'94'  => "\xf8\xfc",
+	'95'  => "\xf9\x40",
+	'96'  => "\xf9\x41",
+	'97'  => "\xf9\x42",
+	'98'  => "\xf9\x43",
+	'99'  => "\xf9\x44",
+	'100' => "\xf9\x45",
+	'101' => "\xf9\x46",
+	'102' => "\xf9\x47",
+	'103' => "\xf9\x48",
+	'104' => "\xf9\x49",
+	'105' => "\xf9\x72",
+	'106' => "\xf9\x73",
+	'107' => "\xf9\x74",
+	'108' => "\xf9\x75",
+	'109' => "\xf9\x76",
+	'110' => "\xf9\x77",
+	'111' => "\xf9\x78",
+	'112' => "\xf9\x79",
+	'113' => "\xf9\x7a",
+	'114' => "\xf9\x7b",
+	'115' => "\xf9\x7c",
+	'116' => "\xf9\x7d",
+	'117' => "\xf9\x7e",
+	'118' => "\xf9\x80",
+	'119' => "\xf9\x81",
+	'120' => "\xf9\x82",
+	'121' => "\xf9\x83",
+	'122' => "\xf9\x84",
+	'123' => "\xf9\x85",
+	'124' => "\xf9\x86",
+	'125' => "\xf9\x87",
+	'126' => "\xf9\x88",
+	'127' => "\xf9\x89",
+	'128' => "\xf9\x8a",
+	'129' => "\xf9\x8b",
+	'130' => "\xf9\x8c",
+	'131' => "\xf9\x8d",
+	'132' => "\xf9\x8e",
+	'133' => "\xf9\x8f",
+	'134' => "\xf9\x90",
+	'135' => "\xf9\xb0",
+	'136' => "\xf9\x91",
+	'137' => "\xf9\x92",
+	'138' => "\xf9\x93",
+	'139' => "\xf9\x94",
+	'140' => "\xf9\x95",
+	'141' => "\xf9\x96",
+	'142' => "\xf9\x97",
+	'143' => "\xf9\x98",
+	'144' => "\xf9\x99",
+	'145' => "\xf9\x9a",
+	'146' => "\xf9\x9b",
+	'147' => "\xf9\x9c",
+	'148' => "\xf9\x9d",
+	'149' => "\xf9\x9e",
+	'150' => "\xf9\x9f",
+	'151' => "\xf9\xa0",
+	'152' => "\xf9\xa1",
+	'153' => "\xf9\xa2",
+	'154' => "\xf9\xa3",
+	'155' => "\xf9\xa4",
+	'156' => "\xf9\xa5",
+	'157' => "\xf9\xa6",
+	'158' => "\xf9\xa7",
+	'159' => "\xf9\xa8",
+	'160' => "\xf9\xa9",
+	'161' => "\xf9\xaa",
+	'162' => "\xf9\xab",
+	'163' => "\xf9\xac",
+	'164' => "\xf9\xad",
+	'165' => "\xf9\xae",
+	'166' => "\xf9\xaf",
+	'167' => "\xf9\x50",
+	'168' => "\xf9\x51",
+	'169' => "\xf9\x52",
+	'170' => "\xf9\x55",
+	'171' => "\xf9\x56",
+	'172' => "\xf9\x57",
+	'173' => "\xf9\x5b",
+	'174' => "\xf9\x5c",
+	'175' => "\xf9\x5d",
+	'176' => "\xf9\x5e",
+	'e1'  => "\xf9\xb1",
+	'e2'  => "\xf9\xb2",
+	'e3'  => "\xf9\xb3",
+	'e4'  => "\xf9\xb4",
+	'e5'  => "\xf9\xb5",
+	'e6'  => "\xf9\xb6",
+	'e7'  => "\xf9\xb7",
+	'e8'  => "\xf9\xb8",
+	'e9'  => "\xf9\xb9",
+	'e10' => "\xf9\xba",
+	'e11' => "\xf9\xbb",
+	'e12' => "\xf9\xbc",
+	'e13' => "\xf9\xbd",
+	'e14' => "\xf9\xbe",
+	'e15' => "\xf9\xbf",
+	'e16' => "\xf9\xc0",
+	'e17' => "\xf9\xc1",
+	'e18' => "\xf9\xc2",
+	'e19' => "\xf9\xc3",
+	'e20' => "\xf9\xc4",
+	'e21' => "\xf9\xc5",
+	'e22' => "\xf9\xc6",
+	'e23' => "\xf9\xc7",
+	'e24' => "\xf9\xc8",
+	'e25' => "\xf9\xc9",
+	'e26' => "\xf9\xca",
+	'e27' => "\xf9\xcb",
+	'e28' => "\xf9\xcc",
+	'e29' => "\xf9\xcd",
+	'e30' => "\xf9\xce",
+	'e31' => "\xf9\xcf",
+	'e32' => "\xf9\xd0",
+	'e33' => "\xf9\xd1",
+	'e34' => "\xf9\xd2",
+	'e35' => "\xf9\xd3",
+	'e36' => "\xf9\xd4",
+	'e37' => "\xf9\xd5",
+	'e38' => "\xf9\xd6",
+	'e39' => "\xf9\xd7",
+	'e40' => "\xf9\xd8",
+	'e41' => "\xf9\xd9",
+	'e42' => "\xf9\xda",
+	'e43' => "\xf9\xdb",
+	'e44' => "\xf9\xdc",
+	'e45' => "\xf9\xdd",
+	'e46' => "\xf9\xde",
+	'e47' => "\xf9\xdf",
+	'e48' => "\xf9\xe0",
+	'e49' => "\xf9\xe1",
+	'e50' => "\xf9\xe2",
+	'e51' => "\xf9\xe3",
+	'e52' => "\xf9\xe4",
+	'e53' => "\xf9\xe5",
+	'e54' => "\xf9\xe6",
+	'e55' => "\xf9\xe7",
+	'e56' => "\xf9\xe8",
+	'e57' => "\xf9\xe9",
+	'e58' => "\xf9\xea",
+	'e59' => "\xf9\xeb",
+	'e60' => "\xf9\xec",
+	'e61' => "\xf9\xed",
+	'e62' => "\xf9\xee",
+	'e63' => "\xf9\xef",
+	'e64' => "\xf9\xf0",
+	'e65' => "\xf9\xf1",
+	'e66' => "\xf9\xf2",
+	'e67' => "\xf9\xf3",
+	'e68' => "\xf9\xf4",
+	'e69' => "\xf9\xf5",
+	'e70' => "\xf9\xf6",
+	'e71' => "\xf9\xf7",
+	'e72' => "\xf9\xf8",
+	'e73' => "\xf9\xf9",
+	'e74' => "\xf9\xfa",
+	'e75' => "\xf9\xfb",
+	'e76' => "\xf9\xfc"
+);
+?>
Index: branches/dev/data/include/mobile_image_map_docomo.csv
===================================================================
--- branches/dev/data/include/mobile_image_map_docomo.csv	(revision 11460)
+++ branches/dev/data/include/mobile_image_map_docomo.csv	(revision 11460)
@@ -0,0 +1,226 @@
+D209i(D209i_B),D209i,5000,N,96,96,gif,3000,N
+D209i(D209i_A),D209i/c10,10000,N,96,96,gif,8000,N
+D2101V,D2101V,100000,Y,120,120,jpg,20000,Y
+D210i,D210i,10000,N,96,96,gif,8000,N
+D211i,D211i,10000,Y,100,100,gif,8000,Y
+D251i,D251i,10000,Y,132,132,jpg,8000,Y
+D251iS,D251iS,10000,Y,132,132,jpg,8000,Y
+D252i,D252i,10000,Y,176,176,jpg,8000,Y
+D253i,D253i,10000,Y,176,176,jpg,8000,Y
+D253iWM(MusicPORTER),D253iWM,10000,Y,220,216,jpg,8000,Y
+D501i,D501i,5000,N,96,96,gif,3000,N
+D502i(D502i_B),D502i,5000,N,96,96,gif,3000,N
+D502i(D502i_A),D502i/c10,10000,N,96,96,gif,5000,N
+D503i,D503i,10000,Y,132,132,gif,8000,Y
+D503iS,D503iS,10000,Y,132,132,gif,8000,Y
+D504i,D504i,10000,Y,132,132,jpg,8000,Y
+D505i,D505i,20000,Y,240,240,jpg,18000,Y
+D505iS,D505iS,20000,Y,240,240,jpg,18000,Y
+D506i,D506i,20000,Y,240,240,jpg,18000,Y
+D701i,D701i,100000,Y,230,224,jpg,20000,Y
+D701iWM(Music Porter II),D701iWM,100000,Y,230,224,jpg,20000,Y
+D702i,D702i,100000,Y,230,224,jpg,20000,Y
+D702iBCL,D702iBCL,100000,Y,230,224,jpg,20000,Y
+D702iF,D702iF,100000,Y,230,224,jpg,20000,Y
+D851iWM(Music Porter X),D851iWM,100000,Y,230,224,jpg,20000,Y
+D900i,D900i,100000,Y,240,240,jpg,20000,Y
+D901i,D901i,100000,Y,230,224,jpg,20000,Y
+D901iS,D901iS,100000,Y,230,224,jpg,20000,Y
+D902i,D902i,100000,Y,230,224,jpg,20000,Y
+D902iS,D902iS,100000,Y,230,224,jpg,20000,Y
+D903i,D903i,100000,Y,230,224,jpg,20000,Y
+ER209i(ER209i_B),ER209i,5000,N,120,120,gif,3000,N
+ER209i(ER209i_A),ER209i/c15,15000,N,120,120,gif,8000,N
+F2051,F2051,100000,Y,176,176,jpg,20000,Y
+F209i(F209i_B),F209i,5000,N,96,96,gif,3000,N
+F209i(F209i_A),F209i/c10,10000,N,96,96,gif,8000,N
+F2102V,F2102V,100000,Y,176,176,jpg,20000,Y
+F210i,F210i,10000,N,96,96,gif,8000,N
+F211i,F211i,10000,Y,96,96,gif,8000,Y
+F212i,F212i,10000,Y,132,132,jpg,8000,Y
+F251i,F251i,10000,Y,132,132,jpg,8000,Y
+F501i,F501i,5000,N,112,112,gif,3000,N
+F502i(F502i_B),F502i,5000,N,96,96,gif,3000,N
+F502i(F502i_A),F502i/c10,10000,N,96,96,gif,8000,N
+F502it(F502it_B),F502it,5000,N,96,96,gif,3000,N
+F502it(F502it_A),F502it/c10,10000,N,96,96,gif,8000,N
+F503i,F503i,10000,Y,120,120,gif,8000,Y
+F503iS,F503iS,10000,Y,120,120,gif,8000,Y
+F504i,F504i,10000,Y,132,132,jpg,8000,Y
+F504iS,F504iS,10000,Y,132,132,jpg,8000,Y
+F505i,F505i,20000,Y,240,240,jpg,18000,Y
+F505iGPS,F505iGPS,20000,Y,240,240,jpg,18000,Y
+F506i,F506i,20000,Y,240,240,jpg,18000,Y
+F661i,F661i,10000,Y,132,132,jpg,8000,Y
+F671i,F671i,10000,N,120,120,gif,8000,N
+F671iS,F671iS,10000,Y,160,160,jpg,8000,Y
+F672i,F672i,10000,Y,160,160,jpg,8000,Y
+F700i,F700i,100000,Y,230,224,jpg,20000,Y
+F700iS,F700iS,100000,Y,230,224,jpg,20000,Y
+F702iD,F702iD,100000,Y,230,224,jpg,20000,Y
+F880iES(FOMA¤é¤¯¤é¤¯¥Û¥ó),F880iES,100000,Y,240,240,jpg,20000,Y
+F881iES(FOMA¤é¤¯¤é¤¯¥Û¥óII),F881iES,100000,Y,240,240,jpg,20000,Y
+F882iES,F882iES,100000,Y,240,240,jpg,20000,Y
+F900i,F900i,100000,Y,230,224,jpg,20000,Y
+F900iC,F900iC,100000,Y,230,224,jpg,20000,Y
+F900iT,F900iT,100000,Y,230,224,jpg,20000,Y
+F901iC,F901iC,100000,Y,230,224,jpg,20000,Y
+F901iS,F901iS,100000,Y,230,224,jpg,20000,Y
+F902i,F902i,100000,Y,230,224,jpg,20000,Y
+F902iS,F902iS,100000,Y,230,224,jpg,20000,Y
+F903i,F903i,100000,Y,230,224,jpg,20000,Y
+ISIM101,ISIM101,-,-,240,240,jpg,20000,N
+ISIM60,ISIM60,-,-,176,176,jpg,20000,N
+ISIM70,ISIM70,-,-,240,240,jpg,20000,N
+KO209i,KO209i,5000,N,96,96,gif,3000,N
+KO210i(KO210i_B),KO210i,5000,N,96,96,gif,3000,N
+KO210i(KO210i_A),KO210i/c10,10000,N,96,96,gif,8000,N
+L600i,L600i,100000,Y,176,176,jpg,20000,Y
+L601i (SIMPURE L1),L601i,100000,Y,176,176,jpg,20000,Y
+SH2101V,MST_v_SH2101V,100000,Y,240,240,jpg,20000,Y
+N2001,N2001,10000,Y,118,112,jpg,8000,Y
+N2002,N2002,100000,Y,118,112,jpg,20000,Y
+N2051,N2051,100000,Y,176,176,jpg,20000,Y
+N209i(N209i_B),N209i,5000,N,108,108,gif,3000,N
+N209i(N209i_A),N209i/c08,8000,N,108,108,gif,6000,N
+N2102V,N2102V,100000,Y,176,176,jpg,20000,Y
+N210i(N210i_B),N210i,5000,N,118,112,gif,3000,N
+N210i(N210i_A),N210i/c10,10000,N,118,112,gif,8000,N
+N211i,N211i,10000,Y,118,112,jpg,8000,Y
+N211iS,N211iS,10000,Y,118,112,jpg,8000,Y
+N251i,N251i,10000,Y,132,132,jpg,8000,Y
+N251iS,N251iS,10000,Y,132,132,jpg,8000,Y
+N252i,N252i,10000,Y,132,132,jpg,8000,Y
+N253i,N253i,10000,Y,160,160,jpg,8000,Y
+N2701(N2701_B),N2701,100000,Y,176,176,jpg,20000,Y
+N2701(N2701_A),N2701/c10,10000,Y,176,176,jpg,8000,Y
+N501i,N501i,5000,N,118,112,gif,3000,N
+N502i(N502i_B),N502i,5000,N,118,112,gif,3000,N
+N502i(N502i_A),N502i/c08,8000,N,118,112,gif,6000,N
+N502it(N502it_B),N502it,5000,N,118,112,gif,3000,N
+N502it(N502it_A),N502it/c10,10000,N,118,112,gif,8000,N
+N503i,N503i,10000,Y,118,112,jpg,8000,Y
+N503iS,N503iS,10000,Y,118,112,jpg,8000,Y
+N504i,N504i,10000,Y,160,160,jpg,8000,Y
+N504iS,N504iS,10000,Y,160,160,jpg,8000,Y
+N505i,N505i,20000,Y,240,240,jpg,18000,Y
+N505iS,N505iS,20000,Y,240,240,jpg,18000,Y
+N506i,N506i,20000,Y,240,240,jpg,18000,Y
+N506iS,N506iS,20000,Y,240,240,jpg,18000,Y
+N506iSII(N506iS2),N506iS2,20000,Y,240,240,jpg,18000,Y
+N600i,N600i,100000,Y,176,176,jpg,20000,Y
+N601i,N601i,100000,Y,240,240,jpg,20000,Y
+N700i,N700i,100000,Y,240,240,jpg,20000,Y
+N701i,N701i,100000,Y,240,240,jpg,20000,Y
+N701iECO,N701iECO,100000,Y,240,240,jpg,20000,Y
+N702iD,N702iD,100000,Y,240,240,jpg,20000,Y
+N702iS,N702iS,100000,Y,240,240,jpg,20000,Y
+N821i(N821i_B),N821i,5000,N,118,112,gif,3000,N
+N821i(N821i_A),N821i/c08,8000,N,118,112,gif,6000,N
+N900i,N900i,100000,Y,240,240,jpg,20000,Y
+N900iG,N900iG,100000,Y,240,240,jpg,20000,Y
+N900iL,N900iL,100000,Y,240,240,jpg,20000,Y
+N900iS,N900iS,100000,Y,240,240,jpg,20000,Y
+N901iC,N901iC,100000,Y,240,240,jpg,20000,Y
+N901iS,N901iS,100000,Y,240,240,jpg,20000,Y
+N902i,N902i,100000,Y,240,240,jpg,20000,Y
+N902iS,N902iS,100000,Y,240,240,jpg,20000,Y
+N902iX(HIGH SPEED),N902iX,100000,Y,240,240,jpg,20000,Y
+N903i,N903i,100000,Y,240,240,jpg,20000,Y
+NM502i(NM502i_B),NM502i,5000,N,111,104,gif,3000,N
+NM502i(NM502i_A),NM502i/c10,10000,N,111,104,gif,8000,N
+NM850iG,NM850iG,100000,Y,176,176,jpg,20000,Y
+P2002,P2002,100000,Y,118,112,jpg,20000,Y
+P209i(P209i_B),P209i,5000,N,96,96,gif,3000,N
+P209i(P209i_A),P209i/c10,10000,N,96,96,gif,8000,N
+P209iS(P209iS_B),P209is,5000,N,96,96,gif,3000,N
+P209iS(P209iS_A),P209is/c10,10000,N,96,96,gif,8000,N
+P2101V,P2101V,100000,Y,163,160,jpg,20000,Y
+P2102V,P2102V,100000,Y,176,176,jpg,20000,Y
+P210i(P210i_B),P210i,5000,N,96,96,gif,3000,N
+P210i(P210i_A),P210i/c10,10000,N,96,96,gif,8000,N
+P211i,P211i,10000,Y,120,120,jpg,8000,Y
+P211iS,P211iS,10000,Y,120,120,jpg,8000,Y
+P213i(prosolid),P213i,10000,Y,132,132,jpg,8000,Y
+P251iS,P251iS,10000,Y,132,132,jpg,8000,Y
+P252i,P252i,10000,Y,132,132,jpg,8000,Y
+P252iS,P252iS,10000,Y,132,132,jpg,8000,Y
+P253i,P253i,10000,Y,132,132,jpg,8000,Y
+P253iS(Lechiffon),P253iS,10000,Y,132,132,jpg,8000,Y
+P501i,P501i,5000,N,96,96,gif,3000,N
+P502i(P502i_B),P502i,5000,N,96,96,gif,3000,N
+P502i(P502i_A),P502i/c10,10000,N,96,96,gif,8000,N
+P503i,P503i,10000,Y,120,120,jpg,8000,Y
+P503iS,P503iS,10000,Y,120,120,jpg,8000,Y
+P504i,P504i,10000,Y,132,132,jpg,8000,Y
+P504iS,P504iS,10000,Y,132,132,jpg,8000,Y
+P505i,P505i,20000,Y,240,240,jpg,18000,Y
+P505iS,P505iS,20000,Y,240,240,jpg,18000,Y
+P506iC,P506iC,20000,Y,240,240,jpg,18000,Y
+P651ps(P651ps_B),P651ps,500096,96,gif,3000,N
+P651ps(P651ps_A),P651ps/c10,1000096,96,gif,3000,N
+P700i,P700i,100000,Y,240,240,jpg,20000,Y
+P701iD,P701iD,100000,Y,240,240,jpg,20000,Y
+P702i,P702i,100000,Y,240,240,jpg,20000,Y
+P702iD,P702iD,100000,Y,240,240,jpg,20000,Y
+P821i(P821i_B),P821i,5000,N,118,112,gif,3000,N
+P821i(P821i_A),P821i/c08,8000,N,118,112,gif,6000,N
+P851i(prosolidII),P851i,100000,Y,240,240,jpg,20000,Y
+P900i,P900i,100000,Y,240,240,jpg,20000,Y
+P900iV,P900iV,100000,Y,240,240,jpg,20000,Y
+P901i,P901i,100000,Y,240,240,jpg,20000,Y
+P901iS,P901iS,100000,Y,240,240,jpg,20000,Y
+P901iTV,P901iTV,100000,Y,240,240,jpg,20000,Y
+P902i,P902i,100000,Y,240,240,jpg,20000,Y
+P902iS,P902iS,100000,Y,240,240,jpg,20000,Y
+P903i,P903i,100000,Y,240,240,jpg,20000,Y
+R209i,R209i,5000,N,96,96,gif,3000,N
+R211i,R211i,10000,Y,96,96,jpg,8000,Y
+R691i,R691i,5000,N,96,96,gif,3000,N
+R692i,R692i,10000,Y,96,96,jpg,8000,Y
+SA700iS,SA700iS,100000,Y,240,240,jpg,20000,Y
+SA702i,SA702i,100000,Y,240,240,jpg,20000,Y
+SA800i,SA800i,100000,Y,240,240,jpg,20000,Y
+SH251i,SH251i,10000,N,120,120,jpg,8000,N
+SH251iS,SH251iS,10000,N,176,176,jpg,8000,N
+SH252i,SH252i,20000,Y,240,240,jpg,18000,Y
+SH505i,SH505i,20000,Y,240,240,jpg,18000,Y
+SH505i,SH505i2,20000,Y,240,240,jpg,18000,Y
+SH505iS,SH505iS,20000,Y,240,240,jpg,18000,Y
+SH506iC,SH506iC,20000,Y,240,240,jpg,18000,Y
+SH700i,SH700i,100000,Y,230,230,jpg,20000,Y
+SH700iS,SH700iS,100000,Y,240,240,jpg,20000,Y
+SH702iD,SH702iD,100000,Y,240,240,jpg,20000,Y
+SH702iS,SH702iS,100000,Y,240,240,jpg,20000,Y
+SH821i(SH821i_B),SH821i,5000,N,96,96,gif,3000,N
+SH821i(SH821i_A),SH821i/c10,10000,N,96,96,gif,8000,N
+SH851i(DOLCE),SH851i,100000,Y,240,240,jpg,20000,Y
+SH900i,SH900i,100000,Y,240,240,jpg,20000,Y
+SH901iC,SH901iC,100000,Y,240,240,jpg,20000,Y
+SH901iS,SH901iS,100000,Y,240,240,jpg,20000,Y
+SH902i,SH902i,100000,Y,240,240,jpg,20000,Y
+SH902iS,SH902iS,100000,Y,240,240,jpg,20000,Y
+SH902iSL,SH902iSL,100000,Y,240,240,jpg,20000,Y
+SH903i,SH903i,100000,Y,240,240,jpg,20000,Y
+SO210i,SO210i,10000,N,120,120,gif,8000,N
+SO211i,SO211i,10000,Y,120,120,jpg,8000,Y
+SO212i,SO212i,10000,Y,120,120,jpg,8000,Y
+SO213i(premini),SO213i,10000,Y,120,120,jpg,8000,Y
+SO213iS(premini-S),SO213iS,10000,Y,120,120,jpg,8000,Y
+SO213iWR(RADIDEN),SO213iWR,10000,Y,120,120,jpg,8000,Y
+SO502i,SO502i,5000,N,120,120,gif,3000,N
+SO502iWM,SO502iWM,10000,N,120,120,gif,8000,N
+SO503i,SO503i,10000,Y,120,120,gif,8000,Y
+SO503iS,SO503iS,10000,Y,120,120,gif,8000,Y
+SO504i,SO504i,10000,Y,120,120,jpg,8000,Y
+SO505i,SO505i,20000,Y,256,256,jpg,18000,Y
+SO505iS,SO505iS,20000,Y,240,240,jpg,18000,Y
+SO506i(premini-II),SO506i,20000,Y,240,240,jpg,18000,Y
+SO506iC,SO506iC,20000,Y,240,240,jpg,18000,Y
+SO506iS(premini-IIS),SO506iS,20000,Y,240,240,jpg,18000,Y
+SO702i,SO702i,100000,Y,240,240,jpg,20000,Y
+SO902i,SO902i,100000,Y,240,240,jpg,20000,Y
+SO902iWP+,SO902iWP+,100000,Y,240,240,jpg,20000,Y
+SO903i,SO903i,100000,Y,240,240,jpg,20000,Y
+T2101V,T2101V,100000,Y,176,176,jpg,20000,Y
+*,*,100000,Y,240,240,jpg,20000,Y
Index: branches/dev/data/include/image_converter.inc
===================================================================
--- branches/dev/data/include/image_converter.inc	(revision 11460)
+++ branches/dev/data/include/image_converter.inc	(revision 11460)
@@ -0,0 +1,144 @@
+<?php
+/**
+ * ²èÁü¥Õ¥¡¥¤¥ë¤ÎÊÑ´¹¤ò¹Ô¤¦
+ */
+class ImageConverter {
+	var $outputImageDir;		// ÊÑ´¹¸å¤Î²èÁü¤ÎÊÝÂ¸Àè
+	var $outputImageType;		// ÊÑ´¹¸å¤Î²èÁü¤Î·Á¼°
+	var $outputImageWidth;		// ÊÑ´¹¸å¤Î²èÁü¤Î²£Éý
+	var $outputImageHeight;		// ÊÑ´¹¸å¤Î²èÁü¤Î¹â¤µ
+	var $outputImageFileSize;	// ÊÑ´¹¸å¤Î²èÁü¤Î¥Õ¥¡¥¤¥ë¥µ¥¤¥º
+
+	// ¥³¥ó¥¹¥È¥é¥¯¥¿
+	function ImageConverter() {
+		$this->outputImageDir    = realpath(realpath(dirname(__FILE__)));
+		$this->outputImageType   = 'jpeg';
+		$this->outputImageWidth  = 320;
+		$this->outputImageHeight = NULL;
+		$this->outputFileSize    = 20000;
+	}
+
+	// ÊÑ´¹¼Â¹Ô
+	function execute($inputImagePath) {
+		// Á°½èÍý
+		$filestat         = @stat($inputImagePath);
+		$imagesize        = getimagesize($inputImagePath);
+		$inputImageWidth  = $imagesize[0];
+		$inputImageHeight = $imagesize[1];
+		$inputImageType   = $imagesize[2];
+		$outputImageName  = sha1($inputImagePath . '_' . $this->outputImageWidth . '_' . $this->outputFileSize . '_' . $filestat['mtime']) . '.' . $this->outputImageType;
+		$outputImagePath  = $this->outputImageDir . '/' . $outputImageName;
+
+		// ÊÑ´¹¸å¤Î²èÁü¤Î¹â¤µ¤¬»ØÄê¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ÊÑ´¹¸å¤Î²èÁü¤Î²£Éý¤«¤éµá¤á¤ë
+		if (is_null($this->outputImageHeight)) {
+			$this->outputImageHeight = $inputImageHeight * ($this->outputImageWidth / $inputImageWidth);
+		}
+
+		// ¥Õ¥¡¥¤¥ë¤¬Â¸ºß¤¹¤ë¤«³ÎÇ§¤·¡¢Â¸ºß¤·¤Ê¤¤¾ì¹ç¤Î¤ßºîÀ®¤¹¤ë
+		if (file_exists($outputImagePath)) {
+			$info['convert'] = FALSE;
+		} else {
+			// ¸µ¥Õ¥¡¥¤¥ëºîÀ®
+			switch($inputImageType) {
+			case 1:
+				// gif
+				$tempImage = imagecreatefromgif($inputImagePath);
+				break;
+			case 2:
+				// jpeg
+				$tempImage = imagecreatefromjpeg($inputImagePath);
+				break;
+			case 3:
+				// png
+				$tempImage = imagecreatefrompng($inputImagePath);
+				break;
+			case 6:
+				// bmp
+				$tempImage = imagecreatefromwbmp($inputImagePath);
+				break;
+			}
+
+			if (!$tempImage) {
+				return false;
+			}
+
+			$scale = 1.0;
+			$outputImagePathTemp = $outputImagePath . '.tmp-' . rand();
+			do {
+				// ¶õ¥Õ¥¡¥¤¥ëºîÀ®
+				$outputImage = ImageCreateTruecolor($this->outputImageWidth * $scale, $this->outputImageHeight * $scale);
+				ImageCopyResampled($outputImage, $tempImage, 0, 0, 0, 0, $this->outputImageWidth * $scale, $this->outputImageHeight * $scale, $inputImageWidth, $inputImageHeight);
+
+				// ¥Õ¥¡¥¤¥ë½ÐÎÏ
+
+				@unlink($outputImagePathTemp);
+
+				switch ($this->outputImageType) {
+				case 1:
+				case 'gif':
+					imagegif($outputImage, $outputImagePathTemp);
+					break;
+				default:
+				case 2:
+				case 'jpg':
+				case 'jpeg':
+					$quality = 75;
+					// É½¼¨²ÄÇ½¤Ê¥Õ¥¡¥¤¥ë¥µ¥¤¥º°Ê²¼¤Ë¤Ê¤ë¤Þ¤Ç¡¢10%¤º¤Ä¥¯¥ª¥ê¥Æ¥£¤òÄ´À°¤¹¤ë
+					do {
+						@unlink($outputImagePathTemp);
+						imagejpeg($outputImage, $outputImagePathTemp, $quality);
+						$quality -= 10;
+						clearstatcache();
+					} while (filesize($outputImagePathTemp) > $this->outputFileSize && $quality > 0);
+					break;
+				case 3:
+				case 'png':
+					imagepng($outputImage, $outputImagePathTemp);
+					break;
+				case 6:
+				case 'bmp':
+					imagewbmp($outputImage, $outputImagePathTemp);
+					break;
+				}
+
+				// ¥á¥â¥ê³«Êü
+				imagedestroy($outputImage);
+
+				$scale -= 0.1;
+				clearstatcache();
+			} while (filesize($outputImagePathTemp) > $this->outputFileSize && $scale >= 0.5);
+
+			rename($outputImagePathTemp, $outputImagePath);
+
+			// ¥á¥â¥ê³«Êü
+			imagedestroy($tempImage);
+
+			$info['convert'] = TRUE;
+		}
+
+		$info['outputImagePath']  = $outputImagePath;
+		$info['outputImageName']  = $outputImageName;
+		return $info;
+
+	}
+
+	// Setter
+	function setOutputDir($outputDir)   { $this->outputImageDir   = $outputDir;  }
+	function setImageType($imageType)   { $this->outputImageType  = $imageType;  }
+	function setImageWidth($imageWidth) { $this->outputImageWidth = $imageWidth; }
+	function setFileSize($fileSize)     { $this->outputFileSize   = $fileSize;   }
+	// function setImageHeight($imageHeight) { $this->outputImageHeight = $imageHeight; }
+
+	// Getter
+	function getOutputDir()   { return $this->outputDir;         }
+	function getImageType()   { return $this->outputImageType;   }
+	function getImageWidth()  { return $this->outputImageWidth;  }
+	function getImageHeight() { return $this->outputImageHeight; }
+
+	/*
+	 * PrivateMethod
+	 */
+	function beforeExecute() {
+	}
+}
+?>
Index: branches/dev/data/script/send_kara_mail.php
===================================================================
--- branches/dev/data/script/send_kara_mail.php	(revision 11460)
+++ branches/dev/data/script/send_kara_mail.php	(revision 11460)
@@ -0,0 +1,26 @@
+#!/usr/bin/env php
+<?php
+/**
+ * ¥â¥Ð¥¤¥ë¥µ¥¤¥È/¶õ¥á¡¼¥ë¥Æ¥¹¥ÈÁ÷¿®¥¹¥¯¥ê¥×¥È
+ */
+
+require_once dirname(__FILE__) . '/../conf/mobile.conf';
+
+if ($argc != 4) {
+	echo "Usage: $argv[0] sender command token\n";
+	exit(1);
+}
+
+$receive_kara_mail = dirname(__FILE__) . '/receive_kara_mail.php';
+$from = $argv[1];
+$command = $argv[2];
+$token = $argv[3];
+$to = MOBILE_KARA_MAIL_ADDRESS_USER . MOBILE_KARA_MAIL_ADDRESS_DELIMITER . $command . '_' . $token . '@' . MOBILE_KARA_MAIL_ADDRESS_DOMAIN;
+
+$pipe = popen($receive_kara_mail, 'w');
+fwrite($pipe, "From $from " . date('D M j H:i:s Y') . "\n");
+fwrite($pipe, "From: $from\n");
+fwrite($pipe, "To: $to\n");
+fwrite($pipe, "\n");
+pclose($pipe);
+?>
Index: branches/dev/data/script/receive_kara_mail.php
===================================================================
--- branches/dev/data/script/receive_kara_mail.php	(revision 11460)
+++ branches/dev/data/script/receive_kara_mail.php	(revision 11460)
@@ -0,0 +1,38 @@
+#!/usr/bin/env php
+<?php
+/**
+ * ¥â¥Ð¥¤¥ë¥µ¥¤¥È/¶õ¥á¡¼¥ë¼õ¤±ÉÕ¤±¥¹¥¯¥ê¥×¥È
+ */
+
+require_once dirname(__FILE__) . '/../conf/mobile.conf';
+require_once DATA_PATH . '/include/php_ini.inc';
+require_once DATA_PATH . '/include/mobile.inc';
+require_once DATA_PATH . '/lib/slib.php';
+require_once DATA_PATH . '/class/GC_MobileKaraMail.php';
+require_once DATA_PATH . '/class/GC_SendMail.php';
+
+$CONF = sf_getBasisData();
+
+$objMail =& GC_MobileKaraMail::factory();
+$objMail->parse();
+$token = $objMail->getToken();
+$sender = $objMail->getSender();
+
+if (gfRegisterKaraMail($token, $sender)) {
+	$subject = '¶õ¥á¡¼¥ë¤ò¼õ¤±ÉÕ¤±¤Þ¤·¤¿';
+	$reply_body = "²¼µ­¤Î¥ê¥ó¥¯¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¡¢¼¡¤Î¼êÂ³¤­¤Ë¿Ê¤ó¤Ç¤¯¤À¤µ¤¤¡£\n" .
+	              SITE_URL . "redirect.php?token=$token";
+} else {
+	$subject = '¶õ¥á¡¼¥ë¼êÂ³¤­¤¬¼ºÇÔ¤·¤Þ¤·¤¿';
+	$reply_body = "»þ´ÖÀÚ¤ì¤Ê¤É¤Ë¤è¤ê¡¢¶õ¥á¡¼¥ë¼êÂ³¤­¤ò¹Ô¤¦¤³¤È¤¬¤Ç¤­¤Þ¤»¤ó¤Ç¤·¤¿¡£\n" .
+	              "¥µ¥¤¥È¤Î¥È¥Ã¥×¤ØÌá¤Ã¤Æ¤ä¤êÄ¾¤·¤Æ¤¯¤À¤µ¤¤¡£\n" .
+	              SITE_URL . "\n";
+}
+
+$objReply = new GC_SendMail;
+$objReply->setItem($sender, "¡Ú{$CONF["shop_name"]}¡Û$subject", $reply_body,
+                   $CONF['email03'], $CONF['shop_name'], $CONF['email03'], $CONF['email04']);
+$objReply->sendMail();
+
+$objMail->success();
+?>
Index: branches/dev/data/class/GC_MobileKaraMail.php
===================================================================
--- branches/dev/data/class/GC_MobileKaraMail.php	(revision 11460)
+++ branches/dev/data/class/GC_MobileKaraMail.php	(revision 11460)
@@ -0,0 +1,200 @@
+<?php
+
+/**
+ * ¶õ¥á¡¼¥ë¼õ¤±ÉÕ¤±¥¢¥É¥ì¥¹¤Î¥³¥Þ¥ó¥ÉÌ¾¤È¥È¡¼¥¯¥ó¤Î´Ö¤Î¶èÀÚ¤êÊ¸»ú
+ */
+define('MOBILE_KARA_MAIL_EXTENSION_DELIMITER', '_');
+
+/**
+ * ¥â¥Ð¥¤¥ë¥µ¥¤¥È¤Î¶õ¥á¡¼¥ë¤ò°·¤¦¥¯¥é¥¹
+ */
+class GC_MobileKaraMail {
+	/**
+	 * ´Ä¶­ÊÑ¿ô¤«¤é MTA ¤òÈ½ÊÌ¤·¡¢ÂÐ±þ¤¹¤ë GC_MobileKaraMail ¤Þ¤¿¤Ï¤½¤Î¥µ¥Ö¥¯¥é¥¹
+	 * ¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤òºîÀ®¤¹¤ë¡£
+	 *
+	 * @return object GC_MobileKaraMail ¤Þ¤¿¤Ï¤½¤Î¥µ¥Ö¥¯¥é¥¹¤Î¥¤¥ó¥¹¥¿¥ó¥¹¤òÊÖ¤¹¡£
+	 */
+	function &factory() {
+		if (isset($_ENV['EXTENSION'])) {
+			$objInstance = new GC_MobileKaraMail_Postfix;
+		} elseif (isset($_ENV['DEFAULT'])) {
+			$objInstance = new GC_MobileKaraMail_Qmail;
+		} else {
+			$objInstance = new GC_MobileKaraMail;
+		}
+
+		return $objInstance;
+	}
+
+	/**
+	 * É¸½àÆþÎÏ¤«¤é¥á¡¼¥ë¤òÆÉ¤ß¹þ¤ß¡¢É¬Í×¤Ê¾ðÊó¤ò¼èÆÀ¤¹¤ë¡£
+	 *
+	 * @return void
+	 */
+	function parse() {
+		if (@$this->parsed) {
+			return;
+		}
+
+		require_once DATA_PATH . '/module/Mail/mimeDecode.php';
+
+		$fp = fopen('php://stdin', 'r');
+
+		// From ¹Ô¤ò²òÀÏ¤¹¤ë¡£
+		$from_line = rtrim(fgets($fp));
+		if (preg_match('/^From\\s+"?([^\\s"@]+)"?@([^\\s@]+)/', $from_line, $matches)) {
+			$this->sender = $matches[1] . '@' . $matches[2];
+		} else {
+			trigger_error("Invalid from line: $from_line");
+			$this->sender = null;
+		}
+
+		// »Ä¤ê¤Î¥Ø¥Ã¥À¡¼¤ò²òÀÏ¤¹¤ë¡£
+		$data = '';
+		while (!feof($fp)) {
+			$data .= fgets($fp);
+			if (rtrim($data, "\r\n") == '') {
+				break;
+			}
+		}
+		$structure = Mail_mimeDecode::decode(array('input' => $data));
+		$this->recipient = @$structure->headers['to'];
+
+		// °¸Àè¥¢¥É¥ì¥¹¤«¤é³ÈÄ¥ÉôÊ¬¤ò¼èÆÀ¤¹¤ë¡£
+		$pos = strpos($this->recipient, MOBILE_KARA_MAIL_ADDRESS_DELIMITER);
+		if ($pos !== false) {
+			$extension_and_domain = substr($this->recipient, $pos + 1);
+			$pos = strpos($extension_and_domain, '@');
+			if ($pos !== false) {
+				$this->extension = substr($extension_and_domain, 0, $pos);
+			} else {
+				$this->extension = $extension_and_domain;
+			}
+		} else {
+			trigger_error("Invalid recipient: {$this->recipient}");
+			$this->extension = null;
+		}
+
+		$this->parsed = true;
+	}
+
+	/**
+	 * ÇÛ¿®¤¬´°Î»¤·¤¿¤³¤È¤ò¼¨¤¹½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ç¥×¥í¥°¥é¥à¤ò½ªÎ»¤¹¤ë¡£
+	 *
+	 * @return void
+	 */
+	function success() {
+		exit(0);
+	}
+
+	/**
+	 * °ì»þÅª¤Ê¥¨¥é¡¼¤ò¼¨¤¹½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ç¥×¥í¥°¥é¥à¤ò½ªÎ»¤¹¤ë¡£
+	 *
+	 * @return void
+	 */
+	function temporaryFailure() {
+		exit(75);
+	}
+
+	/**
+	 * Á÷¿®¼Ô¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò¼èÆÀ¤¹¤ë¡£
+	 *
+	 * parse() ¼Â¹Ô¸å¤Ë»ÈÍÑ¤¹¤ë¤³¤È¡£
+	 *
+	 * @return string|false Á÷¿®¼Ô¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤òÊÖ¤¹¡£¼èÆÀ¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï false ¤òÊÖ¤¹¡£
+	 */
+	function getSender() {
+		return isset($this->sender) ? $this->sender : false;
+	}
+
+	/**
+	 * °¸Àè¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤Î³ÈÄ¥ÉôÊ¬¤«¤é¥³¥Þ¥ó¥ÉÌ¾¤ò¼èÆÀ¤¹¤ë¡£
+	 *
+	 * parse() ¼Â¹Ô¸å¤Ë»ÈÍÑ¤¹¤ë¤³¤È¡£
+	 *
+	 * @return string|false ¥³¥Þ¥ó¥ÉÌ¾¤òÊÖ¤¹¡£¼èÆÀ¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï false ¤òÊÖ¤¹¡£
+	 */
+	function getCommand() {
+		if (!isset($this->extension)) {
+			return false;
+		}
+
+		$pos = strpos($this->extension, MOBILE_KARA_MAIL_EXTENSION_DELIMITER);
+		if ($pos === false) {
+			return false;
+		}
+
+		return substr($this->extension, 0, $pos);
+	}
+
+	/**
+	 * °¸Àè¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤Î³ÈÄ¥ÉôÊ¬¤«¤é¥È¡¼¥¯¥ó¤ò¼èÆÀ¤¹¤ë¡£
+	 *
+	 * parse() ¼Â¹Ô¸å¤Ë»ÈÍÑ¤¹¤ë¤³¤È¡£
+	 *
+	 * @return string|false ¥È¡¼¥¯¥ó¤òÊÖ¤¹¡£¼èÆÀ¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï false ¤òÊÖ¤¹¡£
+	 */
+	function getToken() {
+		if (!isset($this->extension)) {
+			return false;
+		}
+
+		$pos = strpos($this->extension, MOBILE_KARA_MAIL_EXTENSION_DELIMITER);
+		if ($pos === false) {
+			return false;
+		}
+
+		return substr($this->extension, $pos + 1);
+	}
+}
+
+/**
+ * ¥â¥Ð¥¤¥ë¥µ¥¤¥È¤Î¶õ¥á¡¼¥ë¤ò°·¤¦¥¯¥é¥¹ (PostfixÍÑ)
+ */
+class GC_MobileKaraMail_Postfix extends GC_MobileKaraMail {
+	/**
+	 * @see GC_MobileKaraMail::parse()
+	 */
+	function parse() {
+		if (@$this->parsed) {
+			return;
+		}
+
+		$this->sender = $_ENV['SENDER'];
+		$this->recipient = $_ENV['RECIPIENT'];
+		$this->extension = $_ENV['EXTENSION'];
+
+		$this->parsed = true;
+	}
+}
+
+/**
+ * ¥â¥Ð¥¤¥ë¥µ¥¤¥È¤Î¶õ¥á¡¼¥ë¤ò°·¤¦¥¯¥é¥¹ (qmailÍÑ)
+ */
+class GC_MobileKaraMail_Qmail extends GC_MobileKaraMail {
+	/**
+	 * @see GC_MobileKaraMail::parse()
+	 */
+	function parse() {
+		if (@$this->parsed) {
+			return;
+		}
+
+		$this->sender = $_ENV['SENDER'];
+		$this->recipient = $_ENV['RECIPIENT'];
+		$this->extension = $_ENV['DEFAULT'];
+
+		$this->parsed = true;
+	}
+
+	/**
+	 * °ì»þÅª¤Ê¥¨¥é¡¼¤ò¼¨¤¹½ªÎ»¥¹¥Æ¡¼¥¿¥¹¤Ç¥×¥í¥°¥é¥à¤ò½ªÎ»¤¹¤ë¡£
+	 *
+	 * @return void
+	 */
+	function temporaryFailure() {
+		exit(111);
+	}
+}
+?>
Index: branches/dev/data/class/GC_MobileImage.php
===================================================================
--- branches/dev/data/class/GC_MobileImage.php	(revision 11460)
+++ branches/dev/data/class/GC_MobileImage.php	(revision 11460)
@@ -0,0 +1,77 @@
+<?php
+/**
+ * Ã¼Ëö¤Î²èÌÌ²òÁüÅÙ¤Ë¤¢¤ï¤»¤Æ²èÁü¤òÊÑ´¹¤¹¤ë
+ */
+
+define("MOBILE_IMAGE_INC_PATH", realpath(dirname( __FILE__)) . "/../include");
+require_once(MOBILE_IMAGE_INC_PATH . "/image_converter.inc");
+
+/**
+ * ²èÁüÊÑ´¹¥¯¥é¥¹
+ */
+class GC_MobileImage {
+	/**
+	 * ²èÁü¤òÃ¼Ëö¤Î²òÁüÅÙ¤Ë¹ç¤ï¤»¤ÆÊÑ´¹¤¹¤ë
+	 * output buffering ÍÑ¥³¡¼¥ë¥Ð¥Ã¥¯´Ø¿ô
+	 *
+	 * @param string ÆþÎÏ
+	 * @return string ½ÐÎÏ
+	 */
+	function handler($buffer) {
+
+		// Ã¼Ëö¾ðÊó¤ò¼èÆÀ¤¹¤ë
+		$carrier = GC_MobileUserAgent::getCarrier();
+		$model   = GC_MobileUserAgent::getModel();
+
+		// ·ÈÂÓÅÅÏÃ¤Î¾ì¹ç¤Î¤ß½èÍý¤ò¹Ô¤¦
+		if ($carrier !== FALSE) {
+
+			// HTMLÃæ¤ÎIMG¥¿¥°¤ò¼èÆÀ¤¹¤ë
+			$pattern = '/<img\s+src=[\'"]([^>"]+)[\'"]\s*\/*>/i';
+			$result = preg_match_all($pattern, $buffer, $images);
+
+			// Ã¼Ëö¤Î¾ðÊó¤ò¼èÆÀ¤¹¤ë
+			$fp = fopen(MOBILE_IMAGE_INC_PATH . "/mobile_image_map_$carrier.csv", "r");
+			while (($data = fgetcsv($fp, 1000, ",")) !== FALSE) {
+				if ($data[1] == $model || $data[1] == '*') {
+					$cacheSize     = $data[2];
+					$imageFileSize = $data[7];
+					$imageType     = $data[6];
+					$imageWidth    = $data[5];
+					break;
+				}
+			}
+			fclose($fp);
+
+			// docomo¤Èsoftbank¤Î¾ì¹ç¤Ï²èÁü¥Õ¥¡¥¤¥ë°ì¤Ä¤ËÍøÍÑ²ÄÇ½¤Ê¥µ¥¤¥º¤Î¾å¸Â¤ò·×»»¤¹¤ë
+			// au¤ÏHTML¤Îbyte¿ô¾å¸Â¤Ë²èÁü¥Õ¥¡¥¤¥ë¥µ¥¤¥º¤¬´Þ¤Þ¤ì¤Ê¤¤¤Î¤ÇimageFileSize¤Î¤Þ¤Þ¡£
+			if ($carrier == "docomo" or $carrier == "softbank") {
+				// ·×»»¼°¡§(ÍøÍÑÃ¼Ëö¤ÇÉ½¼¨²ÄÇ½¤Êcache¥µ¥¤¥º - HTML¤Î¥Ð¥¤¥È¿ô - ÊÑ´¹¸å¤Î²èÁüÌ¾¤Î¥Ð¥¤¥È¿ô(ÌÜ°ÂÃÍ) ) / HTMLÃæ¤Î²èÁü¿ô
+				$temp_imagefilesize = ($cacheSize - strlen($buffer) - (140 * $result) ) / $result;
+				// ·×»»·ë²Ì¤¬Ã¼Ëö¤ÎÉ½¼¨²ÄÇ½¥Õ¥¡¥¤¥ë¥µ¥¤¥º¾å¸Â¤è¤ê¾®¤µ¤¤¾ì¹ç¤Ï·×»»·ë²Ì¤ÎÃÍ¤òÍ­¸ú¤Ë¤¹¤ë
+				if ($temp_imagefilesize < $imageFileSize) {
+					$imageFileSize = $temp_imagefilesize;
+				}
+			}
+
+			// ²èÁüÊÑ´¹¤Î¾ðÊó¤ò¥»¥Ã¥È¤¹¤ë
+			$imageConverter = New ImageConverter();
+			$imageConverter->setOutputDir(MOBILE_IMAGE_DIR);
+			$imageConverter->setImageType($imageType);
+			$imageConverter->setImageWidth($imageWidth);
+			$imageConverter->setFileSize($imageFileSize);
+
+			// HTMLÃæ¤ÎIMG¥¿¥°¤òÊÑ´¹¸å¤Î¥Õ¥¡¥¤¥ë¥Ñ¥¹¤ËÃÖ´¹¤¹¤ë
+			foreach ($images[1] as $key => $value) {
+				$converted = $imageConverter->execute(preg_replace('|^' . PC_URL_DIR . '|', PC_HTML_PATH, $value));
+				if (isset($converted['outputImageName'])) {
+					$buffer = str_replace($value, MOBILE_IMAGE_URL . '/' . $converted['outputImageName'], $buffer);
+				} else {
+					$buffer = str_replace($images[0][$key], '<!--No image-->', $buffer);
+				}
+			}
+		}
+		return $buffer;
+	}
+}
+?>
Index: branches/dev/data/class/SC_Customer.php
===================================================================
--- branches/dev/data/class/SC_Customer.php	(revision 17)
+++ branches/dev/data/class/SC_Customer.php	(revision 11460)
@@ -50,8 +50,13 @@
 	}
 	
-	function getCustomerDataFromEmailPass( $pass, $email ) {
+	function getCustomerDataFromEmailPass( $pass, $email, $mobile = false ) {
+		$sql_mobile = $mobile ? ' OR email_mobile ILIKE ?' : '';
+		$arrValues = array($email);
+		if ($mobile) {
+			$arrValues[] = $email;
+		}
 		// ËÜÅÐÏ¿¤µ¤ì¤¿²ñ°÷¤Î¤ß
-		$sql = "SELECT * FROM dtb_customer WHERE email ILIKE ? AND del_flg = 0 AND status = 2";
-		$result = $this->conn->getAll($sql, array($email));
+		$sql = "SELECT * FROM dtb_customer WHERE (email ILIKE ?" . $sql_mobile . ") AND del_flg = 0 AND status = 2";
+		$result = $this->conn->getAll($sql, $arrValues);
 		$data = $result[0];
 		
@@ -63,4 +68,94 @@
 		}
 		return false;
+	}
+
+	/**
+	 * ·ÈÂÓÃ¼ËöID¤¬°ìÃ×¤¹¤ë²ñ°÷¤¬Â¸ºß¤¹¤ë¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£
+	 *
+	 * @return boolean ³ºÅö¤¹¤ë²ñ°÷¤¬Â¸ºß¤¹¤ë¾ì¹ç¤Ï true¡¢¤½¤ì°Ê³°¤Î¾ì¹ç
+	 *                 ¤Ï false ¤òÊÖ¤¹¡£
+	 */
+	function checkMobilePhoneId() {
+		if (!isset($_SESSION['mobile']['phone_id']) || $_SESSION['mobile']['phone_id'] === false) {
+			return false;
+		}
+
+		// ·ÈÂÓÃ¼ËöID¤¬°ìÃ×¤·¡¢ËÜÅÐÏ¿¤µ¤ì¤¿²ñ°÷¤ò¸¡º÷¤¹¤ë¡£
+		$sql = 'SELECT count(*) FROM dtb_customer WHERE mobile_phone_id = ? AND del_flg = 0 AND status = 2';
+		$result = $this->conn->getOne($sql, array($_SESSION['mobile']['phone_id']));
+		return $result > 0;
+	}
+
+	/**
+	 * ·ÈÂÓÃ¼ËöID¤ò»ÈÍÑ¤·¤Æ²ñ°÷¤ò¸¡º÷¤·¡¢¥Ñ¥¹¥ï¡¼¥É¤Î¾È¹ç¤ò¹Ô¤¦¡£
+	 * ¥Ñ¥¹¥ï¡¼¥É¤¬¹ç¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¸ÜµÒ¾ðÊó¤ò¼èÆÀ¤¹¤ë¡£
+	 *
+	 * @param string $pass ¥Ñ¥¹¥ï¡¼¥É
+	 * @return boolean ³ºÅö¤¹¤ë²ñ°÷¤¬Â¸ºß¤·¡¢¥Ñ¥¹¥ï¡¼¥É¤¬¹ç¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï true¡¢
+	 *                 ¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï false ¤òÊÖ¤¹¡£
+	 */
+	function getCustomerDataFromMobilePhoneIdPass($pass) {
+		if (!isset($_SESSION['mobile']['phone_id']) || $_SESSION['mobile']['phone_id'] === false) {
+			return false;
+		}
+
+		// ·ÈÂÓÃ¼ËöID¤¬°ìÃ×¤·¡¢ËÜÅÐÏ¿¤µ¤ì¤¿²ñ°÷¤ò¸¡º÷¤¹¤ë¡£
+		$sql = 'SELECT * FROM dtb_customer WHERE mobile_phone_id = ? AND del_flg = 0 AND status = 2';
+		@list($data) = $this->conn->getAll($sql, array($_SESSION['mobile']['phone_id']));
+
+		// ¥Ñ¥¹¥ï¡¼¥É¤¬¹ç¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¸ÜµÒ¾ðÊó¤òcustomer_data¤Ë³ÊÇ¼¤·¤Ætrue¤òÊÖ¤¹¡£
+		if (sha1($pass . ':' . AUTH_MAGIC) == @$data['password']) {
+			$this->customer_data = $data;
+			$this->startSession();
+			return true;
+		}
+		return false;
+	}
+
+	/**
+	 * ·ÈÂÓÃ¼ËöID¤òÅÐÏ¿¤¹¤ë¡£
+	 *
+	 * @return void
+	 */
+	function updateMobilePhoneId() {
+		if (!isset($_SESSION['mobile']['phone_id']) || $_SESSION['mobile']['phone_id'] === false) {
+			return;
+		}
+
+		if ($this->customer_data['mobile_phone_id'] == $_SESSION['mobile']['phone_id']) {
+			return;
+		}
+
+		$objQuery = new SC_Query;
+		$sqlval = array('mobile_phone_id' => $_SESSION['mobile']['phone_id']);
+		$where = 'customer_id = ? AND del_flg = 0 AND status = 2';
+		$objQuery->update('dtb_customer', $sqlval, $where, array($this->customer_data['customer_id']));
+
+		$this->customer_data['mobile_phone_id'] = $_SESSION['mobile']['phone_id'];
+	}
+
+	/**
+	 * email ¤«¤é email_mobile ¤Ø·ÈÂÓ¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò¥³¥Ô¡¼¤¹¤ë¡£
+	 *
+	 * @return void
+	 */
+	function updateEmailMobile() {
+		// ¤¹¤Ç¤Ë email_mobile ¤ËÃÍ¤¬Æþ¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ï²¿¤â¤·¤Ê¤¤¡£
+		if ($this->customer_data['email_mobile'] != '') {
+			return;
+		}
+
+		// email ¤¬·ÈÂÓ¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤Ç¤Ï¤Ê¤¤¾ì¹ç¤Ï²¿¤â¤·¤Ê¤¤¡£
+		if (!gfIsMobileMailAddress($this->customer_data['email'])) {
+			return;
+		}
+
+		// email ¤«¤é email_mobile ¤Ø¥³¥Ô¡¼¤¹¤ë¡£
+		$objQuery = new SC_Query;
+		$sqlval = array('email_mobile' => $this->customer_data['email']);
+		$where = 'customer_id = ? AND del_flg = 0 AND status = 2';
+		$objQuery->update('dtb_customer', $sqlval, $where, array($this->customer_data['customer_id']));
+
+		$this->customer_data['email_mobile'] = $this->customer_data['email'];
 	}
 	
@@ -101,5 +196,5 @@
 	
 	// ¥í¥°¥¤¥ó¤ËÀ®¸ù¤·¤Æ¤¤¤ë¤«È½Äê¤¹¤ë¡£
-	function isLoginSuccess() {
+	function isLoginSuccess($dont_check_email_mobile = false) {
 		// ¥í¥°¥¤¥ó»þ¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤ÈDB¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤¬°ìÃ×¤·¤Æ¤¤¤ë¾ì¹ç
 		if(sfIsInt($_SESSION['customer']['customer_id'])) {
@@ -107,4 +202,10 @@
 			$email = $objQuery->get("dtb_customer", "email", "customer_id = ?", array($_SESSION['customer']['customer_id']));
 			if($email == $_SESSION['customer']['email']) {
+				// ¥â¥Ð¥¤¥ë¥µ¥¤¥È¤Î¾ì¹ç¤Ï·ÈÂÓ¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤³¤È¤â¥Á¥§¥Ã¥¯¤¹¤ë¡£
+				// ¤¿¤À¤· $dont_check_email_mobile ¤¬ true ¤Î¾ì¹ç¤Ï¥Á¥§¥Ã¥¯¤·¤Ê¤¤¡£
+				if (defined('MOBILE_SITE') && !$dont_check_email_mobile) {
+					$email_mobile = $objQuery->get("dtb_customer", "email_mobile", "customer_id = ?", array($_SESSION['customer']['customer_id']));
+					return isset($email_mobile);
+				}
 				return true;
 			}
@@ -121,4 +222,9 @@
 	function setValue($keyname, $val) {
 		$_SESSION['customer'][$keyname] = $val;
+	}
+
+	// ¥Ñ¥é¥á¡¼¥¿¤¬NULL¤«¤É¤¦¤«¤ÎÈ½Äê
+	function hasValue($keyname) {
+		return isset($_SESSION['customer'][$keyname]);
 	}
 	
Index: branches/dev/data/class/GC_MobileUserAgent.php
===================================================================
--- branches/dev/data/class/GC_MobileUserAgent.php	(revision 11460)
+++ branches/dev/data/class/GC_MobileUserAgent.php	(revision 11460)
@@ -0,0 +1,127 @@
+<?php
+require_once(dirname(__FILE__) . '/../module/Net/UserAgent/Mobile.php');
+
+/**
+ * ·ÈÂÓÃ¼Ëö¤Î¾ðÊó¤ò°·¤¦¥¯¥é¥¹
+ *
+ * ÂÐ¾Ý¤È¤¹¤ë·ÈÂÓÃ¼Ëö¤Ï $_SERVER ¤«¤é·èÄê¤¹¤ë¡£
+ * ¤¹¤Ù¤Æ¤Î¥á¥½¥Ã¥É¤Ï¥¯¥é¥¹¥á¥½¥Ã¥É¡£
+ */
+class GC_MobileUserAgent {
+	/**
+	 * ·ÈÂÓÃ¼Ëö¤Î¥­¥ã¥ê¥¢¤òÉ½¤¹Ê¸»úÎó¤ò¼èÆÀ¤¹¤ë¡£
+	 *
+	 * Ê¸»úÎó¤Ï docomo, ezweb, softbank ¤Î¤¤¤º¤ì¤«¡£
+	 *
+	 * @return string|false ·ÈÂÓÃ¼Ëö¤Î¥­¥ã¥ê¥¢¤òÉ½¤¹Ê¸»úÎó¤òÊÖ¤¹¡£
+	 *                      ·ÈÂÓÃ¼Ëö¤Ç¤Ï¤Ê¤¤¾ì¹ç¤Ï false ¤òÊÖ¤¹¡£
+	 */
+	function getCarrier() {
+		$objAgent =& Net_UserAgent_Mobile::singleton();
+		if (Net_UserAgent_Mobile::isError($objAgent)) {
+			return false;
+		}
+
+		switch ($objAgent->getCarrierShortName()) {
+		case 'I':
+			return 'docomo';
+		case 'E':
+			return 'ezweb';
+		case 'V':
+			return 'softbank';
+		default:
+			return false;
+		}
+	}
+
+	/**
+	 * ¾¡¼ê¥µ¥¤¥È¤ÇÍøÍÑ²ÄÇ½¤Ê·ÈÂÓÃ¼Ëö/ÍøÍÑ¼Ô¤ÎID¤ò¼èÆÀ¤¹¤ë¡£
+	 *
+	 * ³Æ¥­¥ã¥ê¥¢¤Ç»ÈÍÑ¤¹¤ëID¤Î¼ïÎà:
+	 * + docomo   ... UTN
+	 * + ezweb    ... EZÈÖ¹æ
+	 * + softbank ... Ã¼Ëö¥·¥ê¥¢¥ëÈÖ¹æ
+	 *
+	 * @return string|false ¼èÆÀ¤·¤¿ID¤òÊÖ¤¹¡£¼èÆÀ¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ï false ¤òÊÖ¤¹¡£
+	 */
+	function getId() {
+		$objAgent =& Net_UserAgent_Mobile::singleton();
+		if (Net_UserAgent_Mobile::isError($objAgent)) {
+			return false;
+		} elseif ($objAgent->isDoCoMo() || $objAgent->isVodafone()) {
+			$id = $objAgent->getSerialNumber();
+		} elseif ($objAgent->isEZweb()) {
+			$id = @$_SERVER['HTTP_X_UP_SUBNO'];
+		}
+		return isset($id) ? $id : false;
+	}
+
+	/**
+	 * ·ÈÂÓÃ¼Ëö¤Îµ¡¼ï¤òÉ½¤¹Ê¸»úÎó¤ò¼èÆÀ¤¹¤ë¡£
+	 * ·ÈÂÓÃ¼Ëö¤Ç¤Ï¤Ê¤¤¾ì¹ç¤Ï¥æ¡¼¥¶¡¼¥¨¡¼¥¸¥§¥ó¥È¤ÎÌ¾Á°¤ò¼èÆÀ¤¹¤ë¡£(Îã: "Mozilla")
+	 *
+	 * @return string ·ÈÂÓÃ¼Ëö¤Î¥â¥Ç¥ë¤òÉ½¤¹Ê¸»úÎó¤òÊÖ¤¹¡£
+	 */
+	function getModel() {
+		$objAgent =& Net_UserAgent_Mobile::singleton();
+		if (Net_UserAgent_Mobile::isError($objAgent)) {
+			return 'Unknown';
+		} elseif ($objAgent->isNonMobile()) {
+			return $objAgent->getName();
+		} else {
+			return $objAgent->getModel();
+		}
+	}
+
+	/**
+	 * EC-CUBE ¤¬¥µ¥Ý¡¼¥È¤¹¤ë·ÈÂÓ¥­¥ã¥ê¥¢¤«¤É¤¦¤«¤òÈ½ÊÌ¤¹¤ë¡£
+	 *
+	 * @return boolean ¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç¤Ï true¡¢¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï false ¤òÊÖ¤¹¡£
+	 */
+	function isMobile() {
+		$objAgent =& Net_UserAgent_Mobile::singleton();
+		if (Net_UserAgent_Mobile::isError($objAgent)) {
+			return false;
+		} else {
+			return $objAgent->isDoCoMo() || $objAgent->isEZweb() || $objAgent->isVodafone();
+		}
+	}
+
+	/**
+	 * EC-CUBE ¤¬¥µ¥Ý¡¼¥È¤¹¤ë·ÈÂÓ¥­¥ã¥ê¥¢¤«¤É¤¦¤«¤òÈ½ÊÌ¤¹¤ë¡£
+	 *
+	 * @return boolean ·ÈÂÓÃ¼Ëö¤Ç¤Ï¤Ê¤¤¾ì¹ç¤Ï true¡¢¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï false ¤òÊÖ¤¹¡£
+	 */
+	function isNonMobile() {
+		return !GC_MobileUserAgent::isMobile();
+	}
+
+	/**
+	 * EC-CUBE ¤¬¥µ¥Ý¡¼¥È¤¹¤ë·ÈÂÓÃ¼Ëö¤«¤É¤¦¤«¤òÈ½ÊÌ¤¹¤ë¡£
+	 *
+	 * @return boolean ¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¾ì¹ç¤Ï true¡¢¤½¤ì°Ê³°¤Î¾ì¹ç¤Ï false ¤òÊÖ¤¹¡£
+	 */
+	function isSupported() {
+		$objAgent =& Net_UserAgent_Mobile::singleton();
+
+		// ·ÈÂÓÃ¼Ëö¤À¤ÈÇ§¼±¤µ¤ì¤¿¤¬¡¢User-Agent ¤Î·Á¼°¤¬Ì¤ÃÎ¤Î¾ì¹ç
+		if (Net_UserAgent_Mobile::isError($objAgent)) {
+			gfPrintLog($objAgent->toString());
+			return false;
+		}
+
+		if ($objAgent->isDoCoMo()) {
+			$arrUnsupportedSeries = array('501i', '502i', '209i', '210i');
+			$arrUnsupportedModels = array('SH821i', 'N821i', 'P821i ', 'P651ps', 'R691i', 'F671i', 'SH251i', 'SH251iS');
+			return !in_array($objAgent->getSeries(), $arrUnsupportedSeries) && !in_array($objAgent->getModel(), $arrUnsupportedModels);
+		} elseif ($objAgent->isEZweb()) {
+			return $objAgent->isWAP2();
+		} elseif ($objAgent->isVodafone()) {
+			return $objAgent->isPacketCompliant();
+		} else {
+			// ·ÈÂÓÃ¼Ëö¤Ç¤Ï¤Ê¤¤¾ì¹ç¤Ï¥µ¥Ý¡¼¥È¤·¤Æ¤¤¤ë¤³¤È¤Ë¤¹¤ë¡£
+			return true;
+		}
+	}
+}
+?>
Index: branches/dev/data/class/GC_MobileEmoji.php
===================================================================
--- branches/dev/data/class/GC_MobileEmoji.php	(revision 11460)
+++ branches/dev/data/class/GC_MobileEmoji.php	(revision 11460)
@@ -0,0 +1,45 @@
+<?php
+
+/**
+ * 表示できない絵文字を置き換える文字列 (Shift JIS)
+ * デフォルトは空文字列。
+ */
+define('MOBILE_EMOJI_SUBSTITUTE', '');
+
+/**
+ * 携帯端末の絵文字を扱うクラス
+ */
+class GC_MobileEmoji {
+	/**
+	 * 絵文字タグを各キャリア用の文字コードに変換する
+	 * output buffering 用コールバック関数
+	 *
+	 * @param string 入力
+	 * @return string 出力
+	 */
+	function handler($buffer) {
+		$replace_callback = create_function('$matches', 'return GC_MobileEmoji::indexToCode($matches[1]);');
+		return preg_replace_callback('/\[emoji:(e?\d+)\]/', $replace_callback, $buffer);
+	}
+
+	/**
+	 * 絵文字番号を絵文字を表す Shift JIS の文字列に変換する。
+	 *
+	 * @param string $index 絵文字番号
+	 * @return string 絵文字を表す Shift JIS の文字列を返す。
+	 */
+	function indexToCode($index) {
+		$carrier = GC_MobileUserAgent::getCarrier();
+		if ($carrier === false) {
+			return MOBILE_EMOJI_SUBSTITUTE;
+		}
+
+		static $arrMap;
+		if (!isset($arrMap)) {
+			$arrMap = @include_once(dirname(__FILE__) . "/../include/mobile_emoji_map_$carrier.inc");
+		}
+
+		return isset($arrMap[$index]) ? $arrMap[$index] : MOBILE_EMOJI_SUBSTITUTE;
+	}
+}
+?>
Index: branches/dev/data/class/SC_FormParam.php
===================================================================
--- branches/dev/data/class/SC_FormParam.php	(revision 17)
+++ branches/dev/data/class/SC_FormParam.php	(revision 11460)
@@ -155,4 +155,5 @@
 				case 'DOMAIN_CHECK':
 				case 'FILE_NAME_CHECK':
+				case 'MOBILE_EMAIL_CHECK':
 				
 					if(!is_array($this->param[$cnt])) {
Index: branches/dev/data/class/SC_CheckError.php
===================================================================
--- branches/dev/data/class/SC_CheckError.php	(revision 17)
+++ branches/dev/data/class/SC_CheckError.php	(revision 11460)
@@ -378,5 +378,5 @@
 			return;
 		}
-		if(strlen($this->arrParam[$value[1]]) > 0 && ! mb_ereg("^([¥¡-¥ö]|[¡¼])+$", $this->arrParam[$value[1]])) {
+		if(strlen($this->arrParam[$value[1]]) > 0 && ! mb_ereg("^[¥¡-¥ö¦-ß¡¼]+$", $this->arrParam[$value[1]])) {
 			$this->arrErr[$value[1]] = "¢¨ " . $value[0] . "¤Ï¥«¥¿¥«¥Ê¤ÇÆþÎÏ¤·¤Æ¤¯¤À¤µ¤¤¡£<br />";	
 		}
@@ -780,4 +780,15 @@
 		}
 	}	
+	
+	/*¡¡·ÈÂÓ¥á¡¼¥ë¥¢¥É¥ì¥¹¤ÎÈ½Äê¡¡*/
+	// value[0] = ¹àÌÜÌ¾ value[1] = È½ÄêÂÐ¾Ý¥á¡¼¥ë¥¢¥É¥ì¥¹
+	function MOBILE_EMAIL_CHECK( $value ){				//¡¡¥á¡¼¥ë¥¢¥É¥ì¥¹¤òÀµµ¬É½¸½¤ÇÈ½Äê¤¹¤ë
+		if(isset($this->arrErr[$value[1]])) {
+			return;
+		}
+		if(strlen($this->arrParam[$value[1]]) > 0 && !gfIsMobileMailAddress($this->arrParam[$value[1]])) {
+			$this->arrErr[$value[1]] = "¢¨ " . $value[0] . "¤Ï·ÈÂÓÅÅÏÃ¤Î¤â¤Î¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó¡£<br />";
+		}
+	}		
 }
 ?>
Index: branches/dev/data/conf/mobile.conf
===================================================================
--- branches/dev/data/conf/mobile.conf	(revision 11460)
+++ branches/dev/data/conf/mobile.conf	(revision 11460)
@@ -0,0 +1,77 @@
+<?php
+/**
+ * ¥â¥Ð¥¤¥ë¥µ¥¤¥È¶¦Í­ÀßÄê¥Õ¥¡¥¤¥ë
+ */
+
+// ¥â¥Ð¥¤¥ë¥µ¥¤¥ÈÀßÄê¥Õ¥¡¥¤¥ë¤òÆÉ¤ß¹þ¤à¡£
+require_once(dirname(__FILE__) . '/../install_mobile.inc');
+
+
+//--------------------------------------------------------------------------------------------------------
+// conf.php ¤ÇÄêµÁ¤µ¤ì¤ëÄê¿ô¤Î¤¦¤Á¡¢¥â¥Ð¥¤¥ë¥µ¥¤¥ÈÍÑ¤ËÊÑ¹¹¤¬É¬Í×¤Ê¤â¤Î
+
+define('TEMPLATE_DIR', DATA_PATH . 'Smarty/templates/mobile');	// SMARTY¥Æ¥ó¥×¥ì¡¼¥È
+define('COMPILE_DIR', DATA_PATH . 'Smarty/templates_c/mobile');	// SMARTY¥³¥ó¥Ñ¥¤¥ë
+define('IMAGE_TEMP_DIR', PC_HTML_PATH . 'upload/temp_image/');	// ²èÁü°ì»þÊÝÂ¸
+define('IMAGE_SAVE_DIR', PC_HTML_PATH . 'upload/save_image/');	// ²èÁüÊÝÂ¸Àè
+define('IMAGE_TEMP_URL', PC_URL_DIR . 'upload/temp_image/');	// ²èÁü°ì»þÊÝÂ¸URL
+define('IMAGE_SAVE_URL', PC_URL_DIR . 'upload/save_image/');	// ²èÁüÊÝÂ¸ÀèURL
+
+
+//--------------------------------------------------------------------------------------------------------
+// ¥â¥Ð¥¤¥ë¥µ¥¤¥ÈÀìÍÑ¤ÎÀßÄê
+
+/**
+ * ¥â¥Ð¥¤¥ë¥µ¥¤¥È¤Ç¤¢¤ë¤³¤È¤òÉ½¤¹Äê¿ô
+ */
+define('MOBILE_SITE', true);
+
+/**
+ * ¥»¥Ã¥·¥ç¥ó¤ÎÂ¸Â³»þ´Ö (ÉÃ)
+ */
+define('MOBILE_SESSION_LIFETIME', 1800);
+
+/**
+ * ¶õ¥á¡¼¥ëµ¡Ç½¤ò»ÈÍÑ¤¹¤ë¤«¤É¤¦¤«
+ */
+define('MOBILE_USE_KARA_MAIL', false);
+
+/**
+ * ¶õ¥á¡¼¥ë¼õ¤±ÉÕ¤±¥¢¥É¥ì¥¹¤Î¥æ¡¼¥¶¡¼Ì¾ÉôÊ¬
+ */
+define('MOBILE_KARA_MAIL_ADDRESS_USER', 'eccube');
+
+/**
+ * ¶õ¥á¡¼¥ë¼õ¤±ÉÕ¤±¥¢¥É¥ì¥¹¤Î¥æ¡¼¥¶¡¼Ì¾¤È¥³¥Þ¥ó¥É¤Î´Ö¤Î¶èÀÚ¤êÊ¸»ú
+ * qmail ¤Î¾ì¹ç¤Ï '-'
+ */
+define('MOBILE_KARA_MAIL_ADDRESS_DELIMITER', '+');
+
+/**
+ * ¶õ¥á¡¼¥ë¼õ¤±ÉÕ¤±¥¢¥É¥ì¥¹¤Î¥É¥á¥¤¥óÉôÊ¬
+ */
+define('MOBILE_KARA_MAIL_ADDRESS_DOMAIN', 'mobile.ec-cube.net');
+
+/**
+ * ·ÈÂÓ¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤Ç¤Ï¤Ê¤¤¤¬¡¢·ÈÂÓ¤À¤È¤ß¤Ê¤¹¥É¥á¥¤¥ó¤Î¥ê¥¹¥È
+ * Ç¤°Õ¤Î¿ô¤Î¡Ö,¡×¡Ö ¡×¤Ç¶èÀÚ¤ë¡£
+ */
+define('MOBILE_ADDITIONAL_MAIL_DOMAINS', 'lockon.co.jp, rebelt.co.jp');
+
+/**
+ * ·ÈÂÓÅÅÏÃ¸þ¤±ÊÑ´¹²èÁüÊÝÂ¸¥Ç¥£¥ì¥¯¥È¥ê
+ */
+define('MOBILE_IMAGE_DIR', HTML_PATH . 'converted_images');
+define('MOBILE_IMAGE_URL', URL_DIR . 'converted_images');
+
+
+//--------------------------------------------------------------------------------------------------------
+// conf.php ¤«¤é»Ä¤ê¤ÎÀßÄê¤òÆÉ¤ß¹þ¤à¡£
+// Äê¿ô¤ÎÄêµÁ¤¬½ÅÊ£¤¹¤ë¤¿¤á¡¢error_reporting ¤Î¥ì¥Ù¥ë¤òÄ´À°¤¹¤ë¡£
+
+$error_reporting = error_reporting();
+error_reporting($error_reporting & ~E_NOTICE);
+require_once(DATA_PATH . 'conf/conf.php');
+error_reporting($error_reporting);
+unset($error_reporting);
+?>
Index: branches/dev/data/install_mobile.inc
===================================================================
--- branches/dev/data/install_mobile.inc	(revision 11460)
+++ branches/dev/data/install_mobile.inc	(revision 11460)
@@ -0,0 +1,19 @@
+<?php
+    define ('ECCUBE_INSTALL', 'ON');
+    define ('HTML_PATH', '/home/web/mobile.ec-cube.net/html/mobile/');
+    define ('PC_HTML_PATH', '/home/web/mobile.ec-cube.net/html/');
+    define ('SITE_URL', 'http://mobile.ec-cube.net/mobile/');
+    define ('PC_SITE_URL', 'http://mobile.ec-cube.net/');
+    define ('SSL_URL', 'http://mobile.ec-cube.net/mobile/');
+    define ('PC_SSL_URL', 'http://mobile.ec-cube.net/');
+    define ('URL_DIR', '/mobile/');
+    define ('PC_URL_DIR', '/');
+    define ('DOMAIN_NAME', '');
+    define ('DB_TYPE', 'mysql');
+    define ('DB_USER', 'mobile_db_user');
+    define ('DB_PASSWORD', 'password');
+    define ('DB_SERVER', '127.0.0.1');
+    define ('DB_NAME', 'mobile_db');
+    define ('DB_PORT', '3307');
+    define ('DATA_PATH', '/home/web/mobile.ec-cube.net/html/../data/');
+?>
Index: branches/dev/data/module/Mail/mimeDecode.php
===================================================================
--- branches/dev/data/module/Mail/mimeDecode.php	(revision 11460)
+++ branches/dev/data/module/Mail/mimeDecode.php	(revision 11460)
@@ -0,0 +1,837 @@
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+// +-----------------------------------------------------------------------+
+// | Copyright (c) 2002-2003  Richard Heyes                                |
+// | Copyright (c) 2003-2005  The PHP Group                                |
+// | All rights reserved.                                                  |
+// |                                                                       |
+// | Redistribution and use in source and binary forms, with or without    |
+// | modification, are permitted provided that the following conditions    |
+// | are met:                                                              |
+// |                                                                       |
+// | o Redistributions of source code must retain the above copyright      |
+// |   notice, this list of conditions and the following disclaimer.       |
+// | o Redistributions in binary form must reproduce the above copyright   |
+// |   notice, this list of conditions and the following disclaimer in the |
+// |   documentation and/or other materials provided with the distribution.|
+// | o The names of the authors may not be used to endorse or promote      |
+// |   products derived from this software without specific prior written  |
+// |   permission.                                                         |
+// |                                                                       |
+// | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS   |
+// | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT     |
+// | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
+// | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT  |
+// | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
+// | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT      |
+// | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
+// | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
+// | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT   |
+// | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
+// | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  |
+// |                                                                       |
+// +-----------------------------------------------------------------------+
+// | Author: Richard Heyes <richard@phpguru.org>                           |
+// +-----------------------------------------------------------------------+
+
+require_once dirname(__FILE__) . '/../PEAR.php';
+
+/**
+*  +----------------------------- IMPORTANT ------------------------------+
+*  | Usage of this class compared to native php extensions such as        |
+*  | mailparse or imap, is slow and may be feature deficient. If available|
+*  | you are STRONGLY recommended to use the php extensions.              |
+*  +----------------------------------------------------------------------+
+*
+* Mime Decoding class
+*
+* This class will parse a raw mime email and return
+* the structure. Returned structure is similar to
+* that returned by imap_fetchstructure().
+*
+* USAGE: (assume $input is your raw email)
+*
+* $decode = new Mail_mimeDecode($input, "\r\n");
+* $structure = $decode->decode();
+* print_r($structure);
+*
+* Or statically:
+*
+* $params['input'] = $input;
+* $structure = Mail_mimeDecode::decode($params);
+* print_r($structure);
+*
+* TODO:
+*  o Implement multipart/appledouble
+*  o UTF8: ???
+
+		> 4. We have also found a solution for decoding the UTF-8 
+		> headers. Therefore I made the following function:
+		> 
+		> function decode_utf8($txt) {
+		> $trans=array("Å&#8216;"=>"Ãµ","Å±"=>"Ã»","Å"=>"Ã&#8226;","Å°"
+		=>"Ã&#8250;");
+		> $txt=strtr($txt,$trans);
+		> return(utf8_decode($txt));
+		> }
+		> 
+		> And I have inserted the following line to the class:
+		> 
+		> if (strtolower($charset)=="utf-8") $text=decode_utf8($text);
+		> 
+		> ... before the following one in the "_decodeHeader" function:
+		> 
+		> $input = str_replace($encoded, $text, $input);
+		> 
+		> This way from now on it can easily decode the UTF-8 headers too.
+
+*
+* @author  Richard Heyes <richard@phpguru.org>
+* @version $Revision: 1.46 $
+* @package Mail
+*/
+class Mail_mimeDecode extends PEAR
+{
+    /**
+     * The raw email to decode
+     * @var    string
+     */
+    var $_input;
+
+    /**
+     * The header part of the input
+     * @var    string
+     */
+    var $_header;
+
+    /**
+     * The body part of the input
+     * @var    string
+     */
+    var $_body;
+
+    /**
+     * If an error occurs, this is used to store the message
+     * @var    string
+     */
+    var $_error;
+
+    /**
+     * Flag to determine whether to include bodies in the
+     * returned object.
+     * @var    boolean
+     */
+    var $_include_bodies;
+
+    /**
+     * Flag to determine whether to decode bodies
+     * @var    boolean
+     */
+    var $_decode_bodies;
+
+    /**
+     * Flag to determine whether to decode headers
+     * @var    boolean
+     */
+    var $_decode_headers;
+
+    /**
+     * Constructor.
+     *
+     * Sets up the object, initialise the variables, and splits and
+     * stores the header and body of the input.
+     *
+     * @param string The input to decode
+     * @access public
+     */
+    function Mail_mimeDecode($input)
+    {
+        list($header, $body)   = $this->_splitBodyHeader($input);
+
+        $this->_input          = $input;
+        $this->_header         = $header;
+        $this->_body           = $body;
+        $this->_decode_bodies  = false;
+        $this->_include_bodies = true;
+    }
+
+    /**
+     * Begins the decoding process. If called statically
+     * it will create an object and call the decode() method
+     * of it.
+     *
+     * @param array An array of various parameters that determine
+     *              various things:
+     *              include_bodies - Whether to include the body in the returned
+     *                               object.
+     *              decode_bodies  - Whether to decode the bodies
+     *                               of the parts. (Transfer encoding)
+     *              decode_headers - Whether to decode headers
+     *              input          - If called statically, this will be treated
+     *                               as the input
+     * @return object Decoded results
+     * @access public
+     */
+    function decode($params = null)
+    {
+        // determine if this method has been called statically
+        $isStatic = !(isset($this) && get_class($this) == __CLASS__);
+
+        // Have we been called statically?
+	// If so, create an object and pass details to that.
+        if ($isStatic AND isset($params['input'])) {
+
+            $obj = new Mail_mimeDecode($params['input']);
+            $structure = $obj->decode($params);
+
+        // Called statically but no input
+        } elseif ($isStatic) {
+            return PEAR::raiseError('Called statically and no input given');
+
+        // Called via an object
+        } else {
+            $this->_include_bodies = isset($params['include_bodies']) ?
+	                             $params['include_bodies'] : false;
+            $this->_decode_bodies  = isset($params['decode_bodies']) ?
+	                             $params['decode_bodies']  : false;
+            $this->_decode_headers = isset($params['decode_headers']) ?
+	                             $params['decode_headers'] : false;
+
+            $structure = $this->_decode($this->_header, $this->_body);
+            if ($structure === false) {
+                $structure = $this->raiseError($this->_error);
+            }
+        }
+
+        return $structure;
+    }
+
+    /**
+     * Performs the decoding. Decodes the body string passed to it
+     * If it finds certain content-types it will call itself in a
+     * recursive fashion
+     *
+     * @param string Header section
+     * @param string Body section
+     * @return object Results of decoding process
+     * @access private
+     */
+    function _decode($headers, $body, $default_ctype = 'text/plain')
+    {
+        $return = new stdClass;
+        $return->headers = array();
+        $headers = $this->_parseHeaders($headers);
+
+        foreach ($headers as $value) {
+            if (isset($return->headers[strtolower($value['name'])]) AND !is_array($return->headers[strtolower($value['name'])])) {
+                $return->headers[strtolower($value['name'])]   = array($return->headers[strtolower($value['name'])]);
+                $return->headers[strtolower($value['name'])][] = $value['value'];
+
+            } elseif (isset($return->headers[strtolower($value['name'])])) {
+                $return->headers[strtolower($value['name'])][] = $value['value'];
+
+            } else {
+                $return->headers[strtolower($value['name'])] = $value['value'];
+            }
+        }
+
+        reset($headers);
+        while (list($key, $value) = each($headers)) {
+            $headers[$key]['name'] = strtolower($headers[$key]['name']);
+            switch ($headers[$key]['name']) {
+
+                case 'content-type':
+                    $content_type = $this->_parseHeaderValue($headers[$key]['value']);
+
+                    if (preg_match('/([0-9a-z+.-]+)\/([0-9a-z+.-]+)/i', $content_type['value'], $regs)) {
+                        $return->ctype_primary   = $regs[1];
+                        $return->ctype_secondary = $regs[2];
+                    }
+
+                    if (isset($content_type['other'])) {
+                        while (list($p_name, $p_value) = each($content_type['other'])) {
+                            $return->ctype_parameters[$p_name] = $p_value;
+                        }
+                    }
+                    break;
+
+                case 'content-disposition':
+                    $content_disposition = $this->_parseHeaderValue($headers[$key]['value']);
+                    $return->disposition   = $content_disposition['value'];
+                    if (isset($content_disposition['other'])) {
+                        while (list($p_name, $p_value) = each($content_disposition['other'])) {
+                            $return->d_parameters[$p_name] = $p_value;
+                        }
+                    }
+                    break;
+
+                case 'content-transfer-encoding':
+                    $content_transfer_encoding = $this->_parseHeaderValue($headers[$key]['value']);
+                    break;
+            }
+        }
+
+        if (isset($content_type)) {
+            switch (strtolower($content_type['value'])) {
+                case 'text/plain':
+                    $encoding = isset($content_transfer_encoding) ? $content_transfer_encoding['value'] : '7bit';
+                    $this->_include_bodies ? $return->body = ($this->_decode_bodies ? $this->_decodeBody($body, $encoding) : $body) : null;
+                    break;
+
+                case 'text/html':
+                    $encoding = isset($content_transfer_encoding) ? $content_transfer_encoding['value'] : '7bit';
+                    $this->_include_bodies ? $return->body = ($this->_decode_bodies ? $this->_decodeBody($body, $encoding) : $body) : null;
+                    break;
+
+                case 'multipart/parallel':
+                case 'multipart/report': // RFC1892
+                case 'multipart/signed': // PGP
+                case 'multipart/digest':
+                case 'multipart/alternative':
+                case 'multipart/related':
+                case 'multipart/mixed':
+                    if(!isset($content_type['other']['boundary'])){
+                        $this->_error = 'No boundary found for ' . $content_type['value'] . ' part';
+                        return false;
+                    }
+
+                    $default_ctype = (strtolower($content_type['value']) === 'multipart/digest') ? 'message/rfc822' : 'text/plain';
+
+                    $parts = $this->_boundarySplit($body, $content_type['other']['boundary']);
+                    for ($i = 0; $i < count($parts); $i++) {
+                        list($part_header, $part_body) = $this->_splitBodyHeader($parts[$i]);
+                        $part = $this->_decode($part_header, $part_body, $default_ctype);
+                        if($part === false)
+                            $part = $this->raiseError($this->_error);
+                        $return->parts[] = $part;
+                    }
+                    break;
+
+                case 'message/rfc822':
+                    $obj = &new Mail_mimeDecode($body);
+                    $return->parts[] = $obj->decode(array('include_bodies' => $this->_include_bodies,
+					                                      'decode_bodies'  => $this->_decode_bodies,
+														  'decode_headers' => $this->_decode_headers));
+                    unset($obj);
+                    break;
+
+                default:
+                    if(!isset($content_transfer_encoding['value']))
+                        $content_transfer_encoding['value'] = '7bit';
+                    $this->_include_bodies ? $return->body = ($this->_decode_bodies ? $this->_decodeBody($body, $content_transfer_encoding['value']) : $body) : null;
+                    break;
+            }
+
+        } else {
+            $ctype = explode('/', $default_ctype);
+            $return->ctype_primary   = $ctype[0];
+            $return->ctype_secondary = $ctype[1];
+            $this->_include_bodies ? $return->body = ($this->_decode_bodies ? $this->_decodeBody($body) : $body) : null;
+        }
+
+        return $return;
+    }
+
+    /**
+     * Given the output of the above function, this will return an
+     * array of references to the parts, indexed by mime number.
+     *
+     * @param  object $structure   The structure to go through
+     * @param  string $mime_number Internal use only.
+     * @return array               Mime numbers
+     */
+    function &getMimeNumbers(&$structure, $no_refs = false, $mime_number = '', $prepend = '')
+    {
+        $return = array();
+        if (!empty($structure->parts)) {
+            if ($mime_number != '') {
+                $structure->mime_id = $prepend . $mime_number;
+                $return[$prepend . $mime_number] = &$structure;
+            }
+            for ($i = 0; $i < count($structure->parts); $i++) {
+
+            
+                if (!empty($structure->headers['content-type']) AND substr(strtolower($structure->headers['content-type']), 0, 8) == 'message/') {
+                    $prepend      = $prepend . $mime_number . '.';
+                    $_mime_number = '';
+                } else {
+                    $_mime_number = ($mime_number == '' ? $i + 1 : sprintf('%s.%s', $mime_number, $i + 1));
+                }
+
+                $arr = &Mail_mimeDecode::getMimeNumbers($structure->parts[$i], $no_refs, $_mime_number, $prepend);
+                foreach ($arr as $key => $val) {
+                    $no_refs ? $return[$key] = '' : $return[$key] = &$arr[$key];
+                }
+            }
+        } else {
+            if ($mime_number == '') {
+                $mime_number = '1';
+            }
+            $structure->mime_id = $prepend . $mime_number;
+            $no_refs ? $return[$prepend . $mime_number] = '' : $return[$prepend . $mime_number] = &$structure;
+        }
+        
+        return $return;
+    }
+
+    /**
+     * Given a string containing a header and body
+     * section, this function will split them (at the first
+     * blank line) and return them.
+     *
+     * @param string Input to split apart
+     * @return array Contains header and body section
+     * @access private
+     */
+    function _splitBodyHeader($input)
+    {
+        if (preg_match("/^(.*?)\r?\n\r?\n(.*)/s", $input, $match)) {
+            return array($match[1], $match[2]);
+        }
+        $this->_error = 'Could not split header and body';
+        return false;
+    }
+
+    /**
+     * Parse headers given in $input and return
+     * as assoc array.
+     *
+     * @param string Headers to parse
+     * @return array Contains parsed headers
+     * @access private
+     */
+    function _parseHeaders($input)
+    {
+
+        if ($input !== '') {
+            // Unfold the input
+            $input   = preg_replace("/\r?\n/", "\r\n", $input);
+            $input   = preg_replace("/\r\n(\t| )+/", ' ', $input);
+            $headers = explode("\r\n", trim($input));
+
+            foreach ($headers as $value) {
+                $hdr_name = substr($value, 0, $pos = strpos($value, ':'));
+                $hdr_value = substr($value, $pos+1);
+                if($hdr_value[0] == ' ')
+                    $hdr_value = substr($hdr_value, 1);
+
+                $return[] = array(
+                                  'name'  => $hdr_name,
+                                  'value' => $this->_decode_headers ? $this->_decodeHeader($hdr_value) : $hdr_value
+                                 );
+            }
+        } else {
+            $return = array();
+        }
+
+        return $return;
+    }
+
+    /**
+     * Function to parse a header value,
+     * extract first part, and any secondary
+     * parts (after ;) This function is not as
+     * robust as it could be. Eg. header comments
+     * in the wrong place will probably break it.
+     *
+     * @param string Header value to parse
+     * @return array Contains parsed result
+     * @access private
+     */
+    function _parseHeaderValue($input)
+    {
+
+        if (($pos = strpos($input, ';')) !== false) {
+
+            $return['value'] = trim(substr($input, 0, $pos));
+            $input = trim(substr($input, $pos+1));
+
+            if (strlen($input) > 0) {
+
+                // This splits on a semi-colon, if there's no preceeding backslash
+                // Now works with quoted values; had to glue the \; breaks in PHP
+                // the regex is already bordering on incomprehensible
+                $splitRegex = '/([^;\'"]*[\'"]([^\'"]*([^\'"]*)*)[\'"][^;\'"]*|([^;]+))(;|$)/';
+                preg_match_all($splitRegex, $input, $matches);
+                $parameters = array();
+                for ($i=0; $i<count($matches[0]); $i++) {
+                    $param = $matches[0][$i];
+                    while (substr($param, -2) == '\;') {
+                        $param .= $matches[0][++$i];
+                    }
+                    $parameters[] = $param;
+                }
+
+                for ($i = 0; $i < count($parameters); $i++) {
+                    $param_name  = trim(substr($parameters[$i], 0, $pos = strpos($parameters[$i], '=')), "'\";\t\\ ");
+                    $param_value = trim(str_replace('\;', ';', substr($parameters[$i], $pos + 1)), "'\";\t\\ ");
+                    if ($param_value[0] == '"') {
+                        $param_value = substr($param_value, 1, -1);
+                    }
+                    $return['other'][$param_name] = $param_value;
+                    $return['other'][strtolower($param_name)] = $param_value;
+                }
+            }
+        } else {
+            $return['value'] = trim($input);
+        }
+
+        return $return;
+    }
+
+    /**
+     * This function splits the input based
+     * on the given boundary
+     *
+     * @param string Input to parse
+     * @return array Contains array of resulting mime parts
+     * @access private
+     */
+    function _boundarySplit($input, $boundary)
+    {
+        $parts = array();
+
+        $bs_possible = substr($boundary, 2, -2);
+        $bs_check = '\"' . $bs_possible . '\"';
+
+        if ($boundary == $bs_check) {
+            $boundary = $bs_possible;
+        }
+
+        $tmp = explode('--' . $boundary, $input);
+
+        for ($i = 1; $i < count($tmp) - 1; $i++) {
+            $parts[] = $tmp[$i];
+        }
+
+        return $parts;
+    }
+
+    /**
+     * Given a header, this function will decode it
+     * according to RFC2047. Probably not *exactly*
+     * conformant, but it does pass all the given
+     * examples (in RFC2047).
+     *
+     * @param string Input header value to decode
+     * @return string Decoded header value
+     * @access private
+     */
+    function _decodeHeader($input)
+    {
+        // Remove white space between encoded-words
+        $input = preg_replace('/(=\?[^?]+\?(q|b)\?[^?]*\?=)(\s)+=\?/i', '\1=?', $input);
+
+        // For each encoded-word...
+        while (preg_match('/(=\?([^?]+)\?(q|b)\?([^?]*)\?=)/i', $input, $matches)) {
+
+            $encoded  = $matches[1];
+            $charset  = $matches[2];
+            $encoding = $matches[3];
+            $text     = $matches[4];
+
+            switch (strtolower($encoding)) {
+                case 'b':
+                    $text = base64_decode($text);
+                    break;
+
+                case 'q':
+                    $text = str_replace('_', ' ', $text);
+                    preg_match_all('/=([a-f0-9]{2})/i', $text, $matches);
+                    foreach($matches[1] as $value)
+                        $text = str_replace('='.$value, chr(hexdec($value)), $text);
+                    break;
+            }
+
+            $input = str_replace($encoded, $text, $input);
+        }
+
+        return $input;
+    }
+
+    /**
+     * Given a body string and an encoding type,
+     * this function will decode and return it.
+     *
+     * @param  string Input body to decode
+     * @param  string Encoding type to use.
+     * @return string Decoded body
+     * @access private
+     */
+    function _decodeBody($input, $encoding = '7bit')
+    {
+        switch (strtolower($encoding)) {
+            case '7bit':
+                return $input;
+                break;
+
+            case 'quoted-printable':
+                return $this->_quotedPrintableDecode($input);
+                break;
+
+            case 'base64':
+                return base64_decode($input);
+                break;
+
+            default:
+                return $input;
+        }
+    }
+
+    /**
+     * Given a quoted-printable string, this
+     * function will decode and return it.
+     *
+     * @param  string Input body to decode
+     * @return string Decoded body
+     * @access private
+     */
+    function _quotedPrintableDecode($input)
+    {
+        // Remove soft line breaks
+        $input = preg_replace("/=\r?\n/", '', $input);
+
+        // Replace encoded characters
+		$input = preg_replace('/=([a-f0-9]{2})/ie', "chr(hexdec('\\1'))", $input);
+
+        return $input;
+    }
+
+    /**
+     * Checks the input for uuencoded files and returns
+     * an array of them. Can be called statically, eg:
+     *
+     * $files =& Mail_mimeDecode::uudecode($some_text);
+     *
+     * It will check for the begin 666 ... end syntax
+     * however and won't just blindly decode whatever you
+     * pass it.
+     *
+     * @param  string Input body to look for attahcments in
+     * @return array  Decoded bodies, filenames and permissions
+     * @access public
+     * @author Unknown
+     */
+    function &uudecode($input)
+    {
+        // Find all uuencoded sections
+        preg_match_all("/begin ([0-7]{3}) (.+)\r?\n(.+)\r?\nend/Us", $input, $matches);
+
+        for ($j = 0; $j < count($matches[3]); $j++) {
+
+            $str      = $matches[3][$j];
+            $filename = $matches[2][$j];
+            $fileperm = $matches[1][$j];
+
+            $file = '';
+            $str = preg_split("/\r?\n/", trim($str));
+            $strlen = count($str);
+
+            for ($i = 0; $i < $strlen; $i++) {
+                $pos = 1;
+                $d = 0;
+                $len=(int)(((ord(substr($str[$i],0,1)) -32) - ' ') & 077);
+
+                while (($d + 3 <= $len) AND ($pos + 4 <= strlen($str[$i]))) {
+                    $c0 = (ord(substr($str[$i],$pos,1)) ^ 0x20);
+                    $c1 = (ord(substr($str[$i],$pos+1,1)) ^ 0x20);
+                    $c2 = (ord(substr($str[$i],$pos+2,1)) ^ 0x20);
+                    $c3 = (ord(substr($str[$i],$pos+3,1)) ^ 0x20);
+                    $file .= chr(((($c0 - ' ') & 077) << 2) | ((($c1 - ' ') & 077) >> 4));
+
+                    $file .= chr(((($c1 - ' ') & 077) << 4) | ((($c2 - ' ') & 077) >> 2));
+
+                    $file .= chr(((($c2 - ' ') & 077) << 6) |  (($c3 - ' ') & 077));
+
+                    $pos += 4;
+                    $d += 3;
+                }
+
+                if (($d + 2 <= $len) && ($pos + 3 <= strlen($str[$i]))) {
+                    $c0 = (ord(substr($str[$i],$pos,1)) ^ 0x20);
+                    $c1 = (ord(substr($str[$i],$pos+1,1)) ^ 0x20);
+                    $c2 = (ord(substr($str[$i],$pos+2,1)) ^ 0x20);
+                    $file .= chr(((($c0 - ' ') & 077) << 2) | ((($c1 - ' ') & 077) >> 4));
+
+                    $file .= chr(((($c1 - ' ') & 077) << 4) | ((($c2 - ' ') & 077) >> 2));
+
+                    $pos += 3;
+                    $d += 2;
+                }
+
+                if (($d + 1 <= $len) && ($pos + 2 <= strlen($str[$i]))) {
+                    $c0 = (ord(substr($str[$i],$pos,1)) ^ 0x20);
+                    $c1 = (ord(substr($str[$i],$pos+1,1)) ^ 0x20);
+                    $file .= chr(((($c0 - ' ') & 077) << 2) | ((($c1 - ' ') & 077) >> 4));
+
+                }
+            }
+            $files[] = array('filename' => $filename, 'fileperm' => $fileperm, 'filedata' => $file);
+        }
+
+        return $files;
+    }
+
+    /**
+     * getSendArray() returns the arguments required for Mail::send()
+     * used to build the arguments for a mail::send() call 
+     *
+     * Usage:
+     * $mailtext = Full email (for example generated by a template)
+     * $decoder = new Mail_mimeDecode($mailtext);
+     * $parts =  $decoder->getSendArray();
+     * if (!PEAR::isError($parts) {
+     *     list($recipents,$headers,$body) = $parts;
+     *     $mail = Mail::factory('smtp');
+     *     $mail->send($recipents,$headers,$body);
+     * } else {
+     *     echo $parts->message;
+     * }
+     * @return mixed   array of recipeint, headers,body or Pear_Error
+     * @access public
+     * @author Alan Knowles <alan@akbkhome.com>
+     */
+    function getSendArray()
+    {
+        // prevent warning if this is not set
+        $this->_decode_headers = FALSE;
+        $headerlist =$this->_parseHeaders($this->_header);
+        $to = "";
+        if (!$headerlist) {
+            return $this->raiseError("Message did not contain headers");
+        }
+        foreach($headerlist as $item) {
+            $header[$item['name']] = $item['value'];
+            switch (strtolower($item['name'])) {
+                case "to":
+                case "cc":
+                case "bcc":
+                    $to = ",".$item['value'];
+                default:
+                   break;
+            }
+        }
+        if ($to == "") {
+            return $this->raiseError("Message did not contain any recipents");
+        }
+        $to = substr($to,1);
+        return array($to,$header,$this->_body);
+    } 
+
+    /**
+     * Returns a xml copy of the output of
+     * Mail_mimeDecode::decode. Pass the output in as the
+     * argument. This function can be called statically. Eg:
+     *
+     * $output = $obj->decode();
+     * $xml    = Mail_mimeDecode::getXML($output);
+     *
+     * The DTD used for this should have been in the package. Or
+     * alternatively you can get it from cvs, or here:
+     * http://www.phpguru.org/xmail/xmail.dtd.
+     *
+     * @param  object Input to convert to xml. This should be the
+     *                output of the Mail_mimeDecode::decode function
+     * @return string XML version of input
+     * @access public
+     */
+    function getXML($input)
+    {
+        $crlf    =  "\r\n";
+        $output  = '<?xml version=\'1.0\'?>' . $crlf .
+                   '<!DOCTYPE email SYSTEM "http://www.phpguru.org/xmail/xmail.dtd">' . $crlf .
+                   '<email>' . $crlf .
+                   Mail_mimeDecode::_getXML($input) .
+                   '</email>';
+
+        return $output;
+    }
+
+    /**
+     * Function that does the actual conversion to xml. Does a single
+     * mimepart at a time.
+     *
+     * @param  object  Input to convert to xml. This is a mimepart object.
+     *                 It may or may not contain subparts.
+     * @param  integer Number of tabs to indent
+     * @return string  XML version of input
+     * @access private
+     */
+    function _getXML($input, $indent = 1)
+    {
+        $htab    =  "\t";
+        $crlf    =  "\r\n";
+        $output  =  '';
+        $headers = @(array)$input->headers;
+
+        foreach ($headers as $hdr_name => $hdr_value) {
+
+            // Multiple headers with this name
+            if (is_array($headers[$hdr_name])) {
+                for ($i = 0; $i < count($hdr_value); $i++) {
+                    $output .= Mail_mimeDecode::_getXML_helper($hdr_name, $hdr_value[$i], $indent);
+                }
+
+            // Only one header of this sort
+            } else {
+                $output .= Mail_mimeDecode::_getXML_helper($hdr_name, $hdr_value, $indent);
+            }
+        }
+
+        if (!empty($input->parts)) {
+            for ($i = 0; $i < count($input->parts); $i++) {
+                $output .= $crlf . str_repeat($htab, $indent) . '<mimepart>' . $crlf .
+                           Mail_mimeDecode::_getXML($input->parts[$i], $indent+1) .
+                           str_repeat($htab, $indent) . '</mimepart>' . $crlf;
+            }
+        } elseif (isset($input->body)) {
+            $output .= $crlf . str_repeat($htab, $indent) . '<body><![CDATA[' .
+                       $input->body . ']]></body>' . $crlf;
+        }
+
+        return $output;
+    }
+
+    /**
+     * Helper function to _getXML(). Returns xml of a header.
+     *
+     * @param  string  Name of header
+     * @param  string  Value of header
+     * @param  integer Number of tabs to indent
+     * @return string  XML version of input
+     * @access private
+     */
+    function _getXML_helper($hdr_name, $hdr_value, $indent)
+    {
+        $htab   = "\t";
+        $crlf   = "\r\n";
+        $return = '';
+
+        $new_hdr_value = ($hdr_name != 'received') ? Mail_mimeDecode::_parseHeaderValue($hdr_value) : array('value' => $hdr_value);
+        $new_hdr_name  = str_replace(' ', '-', ucwords(str_replace('-', ' ', $hdr_name)));
+
+        // Sort out any parameters
+        if (!empty($new_hdr_value['other'])) {
+            foreach ($new_hdr_value['other'] as $paramname => $paramvalue) {
+                $params[] = str_repeat($htab, $indent) . $htab . '<parameter>' . $crlf .
+                            str_repeat($htab, $indent) . $htab . $htab . '<paramname>' . htmlspecialchars($paramname) . '</paramname>' . $crlf .
+                            str_repeat($htab, $indent) . $htab . $htab . '<paramvalue>' . htmlspecialchars($paramvalue) . '</paramvalue>' . $crlf .
+                            str_repeat($htab, $indent) . $htab . '</parameter>' . $crlf;
+            }
+
+            $params = implode('', $params);
+        } else {
+            $params = '';
+        }
+
+        $return = str_repeat($htab, $indent) . '<header>' . $crlf .
+                  str_repeat($htab, $indent) . $htab . '<headername>' . htmlspecialchars($new_hdr_name) . '</headername>' . $crlf .
+                  str_repeat($htab, $indent) . $htab . '<headervalue>' . htmlspecialchars($new_hdr_value['value']) . '</headervalue>' . $crlf .
+                  $params .
+                  str_repeat($htab, $indent) . '</header>' . $crlf;
+
+        return $return;
+    }
+
+} // End of class
+?>
Index: branches/dev/data/module/Mail/mimePart.php
===================================================================
--- branches/dev/data/module/Mail/mimePart.php	(revision 11460)
+++ branches/dev/data/module/Mail/mimePart.php	(revision 11460)
@@ -0,0 +1,351 @@
+<?php
+// +-----------------------------------------------------------------------+
+// | Copyright (c) 2002-2003  Richard Heyes                                     |
+// | All rights reserved.                                                  |
+// |                                                                       |
+// | Redistribution and use in source and binary forms, with or without    |
+// | modification, are permitted provided that the following conditions    |
+// | are met:                                                              |
+// |                                                                       |
+// | o Redistributions of source code must retain the above copyright      |
+// |   notice, this list of conditions and the following disclaimer.       |
+// | o Redistributions in binary form must reproduce the above copyright   |
+// |   notice, this list of conditions and the following disclaimer in the |
+// |   documentation and/or other materials provided with the distribution.|
+// | o The names of the authors may not be used to endorse or promote      |
+// |   products derived from this software without specific prior written  |
+// |   permission.                                                         |
+// |                                                                       |
+// | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS   |
+// | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT     |
+// | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
+// | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT  |
+// | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
+// | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT      |
+// | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
+// | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
+// | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT   |
+// | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
+// | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  |
+// |                                                                       |
+// +-----------------------------------------------------------------------+
+// | Author: Richard Heyes <richard@phpguru.org>                           |
+// +-----------------------------------------------------------------------+
+
+/**
+*
+*  Raw mime encoding class
+*
+* What is it?
+*   This class enables you to manipulate and build
+*   a mime email from the ground up.
+*
+* Why use this instead of mime.php?
+*   mime.php is a userfriendly api to this class for
+*   people who aren't interested in the internals of
+*   mime mail. This class however allows full control
+*   over the email.
+*
+* Eg.
+*
+* // Since multipart/mixed has no real body, (the body is
+* // the subpart), we set the body argument to blank.
+*
+* $params['content_type'] = 'multipart/mixed';
+* $email = new Mail_mimePart('', $params);
+*
+* // Here we add a text part to the multipart we have
+* // already. Assume $body contains plain text.
+*
+* $params['content_type'] = 'text/plain';
+* $params['encoding']     = '7bit';
+* $text = $email->addSubPart($body, $params);
+*
+* // Now add an attachment. Assume $attach is
+* the contents of the attachment
+*
+* $params['content_type'] = 'application/zip';
+* $params['encoding']     = 'base64';
+* $params['disposition']  = 'attachment';
+* $params['dfilename']    = 'example.zip';
+* $attach =& $email->addSubPart($body, $params);
+*
+* // Now build the email. Note that the encode
+* // function returns an associative array containing two
+* // elements, body and headers. You will need to add extra
+* // headers, (eg. Mime-Version) before sending.
+*
+* $email = $message->encode();
+* $email['headers'][] = 'Mime-Version: 1.0';
+*
+*
+* Further examples are available at http://www.phpguru.org
+*
+* TODO:
+*  - Set encode() to return the $obj->encoded if encode()
+*    has already been run. Unless a flag is passed to specifically
+*    re-build the message.
+*
+* @author  Richard Heyes <richard@phpguru.org>
+* @version $Revision: 1.13 $
+* @package Mail
+*/
+
+class Mail_mimePart {
+
+   /**
+    * The encoding type of this part
+    * @var string
+    */
+    var $_encoding;
+
+   /**
+    * An array of subparts
+    * @var array
+    */
+    var $_subparts;
+
+   /**
+    * The output of this part after being built
+    * @var string
+    */
+    var $_encoded;
+
+   /**
+    * Headers for this part
+    * @var array
+    */
+    var $_headers;
+
+   /**
+    * The body of this part (not encoded)
+    * @var string
+    */
+    var $_body;
+
+    /**
+     * Constructor.
+     *
+     * Sets up the object.
+     *
+     * @param $body   - The body of the mime part if any.
+     * @param $params - An associative array of parameters:
+     *                  content_type - The content type for this part eg multipart/mixed
+     *                  encoding     - The encoding to use, 7bit, 8bit, base64, or quoted-printable
+     *                  cid          - Content ID to apply
+     *                  disposition  - Content disposition, inline or attachment
+     *                  dfilename    - Optional filename parameter for content disposition
+     *                  description  - Content description
+     *                  charset      - Character set to use
+     * @access public
+     */
+    function Mail_mimePart($body = '', $params = array())
+    {
+        if (!defined('MAIL_MIMEPART_CRLF')) {
+            define('MAIL_MIMEPART_CRLF', defined('MAIL_MIME_CRLF') ? MAIL_MIME_CRLF : "\r\n", TRUE);
+        }
+
+        foreach ($params as $key => $value) {
+            switch ($key) {
+                case 'content_type':
+                    $headers['Content-Type'] = $value . (isset($charset) ? '; charset="' . $charset . '"' : '');
+                    break;
+
+                case 'encoding':
+                    $this->_encoding = $value;
+                    $headers['Content-Transfer-Encoding'] = $value;
+                    break;
+
+                case 'cid':
+                    $headers['Content-ID'] = '<' . $value . '>';
+                    break;
+
+                case 'disposition':
+                    $headers['Content-Disposition'] = $value . (isset($dfilename) ? '; filename="' . $dfilename . '"' : '');
+                    break;
+
+                case 'dfilename':
+                    if (isset($headers['Content-Disposition'])) {
+                        $headers['Content-Disposition'] .= '; filename="' . $value . '"';
+                    } else {
+                        $dfilename = $value;
+                    }
+                    break;
+
+                case 'description':
+                    $headers['Content-Description'] = $value;
+                    break;
+
+                case 'charset':
+                    if (isset($headers['Content-Type'])) {
+                        $headers['Content-Type'] .= '; charset="' . $value . '"';
+                    } else {
+                        $charset = $value;
+                    }
+                    break;
+            }
+        }
+
+        // Default content-type
+        if (!isset($headers['Content-Type'])) {
+            $headers['Content-Type'] = 'text/plain';
+        }
+
+        //Default encoding
+        if (!isset($this->_encoding)) {
+            $this->_encoding = '7bit';
+        }
+
+        // Assign stuff to member variables
+        $this->_encoded  = array();
+        $this->_headers  = $headers;
+        $this->_body     = $body;
+    }
+
+    /**
+     * encode()
+     *
+     * Encodes and returns the email. Also stores
+     * it in the encoded member variable
+     *
+     * @return An associative array containing two elements,
+     *         body and headers. The headers element is itself
+     *         an indexed array.
+     * @access public
+     */
+    function encode()
+    {
+        $encoded =& $this->_encoded;
+
+        if (!empty($this->_subparts)) {
+            srand((double)microtime()*1000000);
+            $boundary = '=_' . md5(rand() . microtime());
+            $this->_headers['Content-Type'] .= ';' . MAIL_MIMEPART_CRLF . "\t" . 'boundary="' . $boundary . '"';
+
+            // Add body parts to $subparts
+            for ($i = 0; $i < count($this->_subparts); $i++) {
+                $headers = array();
+                $tmp = $this->_subparts[$i]->encode();
+                foreach ($tmp['headers'] as $key => $value) {
+                    $headers[] = $key . ': ' . $value;
+                }
+                $subparts[] = implode(MAIL_MIMEPART_CRLF, $headers) . MAIL_MIMEPART_CRLF . MAIL_MIMEPART_CRLF . $tmp['body'];
+            }
+
+            $encoded['body'] = '--' . $boundary . MAIL_MIMEPART_CRLF .
+                               implode('--' . $boundary . MAIL_MIMEPART_CRLF, $subparts) .
+                               '--' . $boundary.'--' . MAIL_MIMEPART_CRLF;
+
+        } else {
+            $encoded['body'] = $this->_getEncodedData($this->_body, $this->_encoding) . MAIL_MIMEPART_CRLF;
+        }
+
+        // Add headers to $encoded
+        $encoded['headers'] =& $this->_headers;
+
+        return $encoded;
+    }
+
+    /**
+     * &addSubPart()
+     *
+     * Adds a subpart to current mime part and returns
+     * a reference to it
+     *
+     * @param $body   The body of the subpart, if any.
+     * @param $params The parameters for the subpart, same
+     *                as the $params argument for constructor.
+     * @return A reference to the part you just added. It is
+     *         crucial if using multipart/* in your subparts that
+     *         you use =& in your script when calling this function,
+     *         otherwise you will not be able to add further subparts.
+     * @access public
+     */
+    function &addSubPart($body, $params)
+    {
+        $this->_subparts[] = new Mail_mimePart($body, $params);
+        return $this->_subparts[count($this->_subparts) - 1];
+    }
+
+    /**
+     * _getEncodedData()
+     *
+     * Returns encoded data based upon encoding passed to it
+     *
+     * @param $data     The data to encode.
+     * @param $encoding The encoding type to use, 7bit, base64,
+     *                  or quoted-printable.
+     * @access private
+     */
+    function _getEncodedData($data, $encoding)
+    {
+        switch ($encoding) {
+            case '8bit':
+            case '7bit':
+                return $data;
+                break;
+
+            case 'quoted-printable':
+                return $this->_quotedPrintableEncode($data);
+                break;
+
+            case 'base64':
+                return rtrim(chunk_split(base64_encode($data), 76, MAIL_MIMEPART_CRLF));
+                break;
+
+            default:
+                return $data;
+        }
+    }
+
+    /**
+     * quoteadPrintableEncode()
+     *
+     * Encodes data to quoted-printable standard.
+     *
+     * @param $input    The data to encode
+     * @param $line_max Optional max line length. Should
+     *                  not be more than 76 chars
+     *
+     * @access private
+     */
+    function _quotedPrintableEncode($input , $line_max = 76)
+    {
+        $lines  = preg_split("/\r?\n/", $input);
+        $eol    = MAIL_MIMEPART_CRLF;
+        $escape = '=';
+        $output = '';
+
+        while(list(, $line) = each($lines)){
+
+            $linlen     = strlen($line);
+            $newline = '';
+
+            for ($i = 0; $i < $linlen; $i++) {
+                $char = substr($line, $i, 1);
+                $dec  = ord($char);
+
+                if (($dec == 32) AND ($i == ($linlen - 1))){    // convert space at eol only
+                    $char = '=20';
+
+                } elseif(($dec == 9) AND ($i == ($linlen - 1))) {  // convert tab at eol only
+                    $char = '=09';
+                } elseif($dec == 9) {
+                    ; // Do nothing if a tab.
+                } elseif(($dec == 61) OR ($dec < 32 ) OR ($dec > 126)) {
+                    $char = $escape . strtoupper(sprintf('%02s', dechex($dec)));
+                }
+
+                if ((strlen($newline) + strlen($char)) >= $line_max) {        // MAIL_MIMEPART_CRLF is not counted
+                    $output  .= $newline . $escape . $eol;                    // soft line break; " =\r\n" is okay
+                    $newline  = '';
+                }
+                $newline .= $char;
+            } // end of for
+            $output .= $newline . $eol;
+        }
+        $output = substr($output, 0, -1 * strlen($eol)); // Don't want last crlf
+        return $output;
+    }
+} // End of class
+?>
Index: branches/dev/data/module/Mail/mime.php
===================================================================
--- branches/dev/data/module/Mail/mime.php	(revision 11460)
+++ branches/dev/data/module/Mail/mime.php	(revision 11460)
@@ -0,0 +1,713 @@
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
+// +-----------------------------------------------------------------------+
+// | Copyright (c) 2002-2003  Richard Heyes                                |
+// | Copyright (c) 2003-2005  The PHP Group                                |
+// | All rights reserved.                                                  |
+// |                                                                       |
+// | Redistribution and use in source and binary forms, with or without    |
+// | modification, are permitted provided that the following conditions    |
+// | are met:                                                              |
+// |                                                                       |
+// | o Redistributions of source code must retain the above copyright      |
+// |   notice, this list of conditions and the following disclaimer.       |
+// | o Redistributions in binary form must reproduce the above copyright   |
+// |   notice, this list of conditions and the following disclaimer in the |
+// |   documentation and/or other materials provided with the distribution.|
+// | o The names of the authors may not be used to endorse or promote      |
+// |   products derived from this software without specific prior written  |
+// |   permission.                                                         |
+// |                                                                       |
+// | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS   |
+// | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT     |
+// | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
+// | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT  |
+// | OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
+// | SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT      |
+// | LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
+// | DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
+// | THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT   |
+// | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
+// | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  |
+// |                                                                       |
+// +-----------------------------------------------------------------------+
+// | Author: Richard Heyes <richard@phpguru.org>                           |
+// |         Tomas V.V.Cox <cox@idecnet.com> (port to PEAR)                |
+// +-----------------------------------------------------------------------+
+//
+// $Id: mime.php,v 1.39 2005/06/13 21:24:16 cipri Exp $
+
+require_once(dirname(__FILE__) . '/../PEAR.php');
+require_once(dirname(__FILE__) . '/mimePart.php');
+
+/**
+ * Mime mail composer class. Can handle: text and html bodies, embedded html
+ * images and attachments.
+ * Documentation and examples of this class are avaible here:
+ * http://pear.php.net/manual/
+ *
+ * @notes This class is based on HTML Mime Mail class from
+ *   Richard Heyes <richard@phpguru.org> which was based also
+ *   in the mime_mail.class by Tobias Ratschiller <tobias@dnet.it> and
+ *   Sascha Schumann <sascha@schumann.cx>
+ *
+ * @author   Richard Heyes <richard.heyes@heyes-computing.net>
+ * @author   Tomas V.V.Cox <cox@idecnet.com>
+ * @package  Mail
+ * @access   public
+ */
+class Mail_mime
+{
+    /**
+     * Contains the plain text part of the email
+     * @var string
+     */
+    var $_txtbody;
+    /**
+     * Contains the html part of the email
+     * @var string
+     */
+    var $_htmlbody;
+    /**
+     * contains the mime encoded text
+     * @var string
+     */
+    var $_mime;
+    /**
+     * contains the multipart content
+     * @var string
+     */
+    var $_multipart;
+    /**
+     * list of the attached images
+     * @var array
+     */
+    var $_html_images = array();
+    /**
+     * list of the attachements
+     * @var array
+     */
+    var $_parts = array();
+    /**
+     * Build parameters
+     * @var array
+     */
+    var $_build_params = array();
+    /**
+     * Headers for the mail
+     * @var array
+     */
+    var $_headers = array();
+    /**
+     * End Of Line sequence (for serialize)
+     * @var string
+     */
+    var $_eol;
+
+
+    /**
+     * Constructor function
+     *
+     * @access public
+     */
+    function Mail_mime($crlf = "\r\n")
+    {
+        $this->_setEOL($crlf);
+        $this->_build_params = array(
+                                     'text_encoding' => '7bit',
+                                     'html_encoding' => 'quoted-printable',
+                                     '7bit_wrap'     => 998,
+                                     'html_charset'  => 'ISO-8859-1',
+                                     'text_charset'  => 'ISO-8859-1',
+                                     'head_charset'  => 'ISO-8859-1'
+                                    );
+    }
+
+    /**
+     * Wakeup (unserialize) - re-sets EOL constant
+     *
+     * @access private
+     */
+    function __wakeup()
+    {
+        $this->_setEOL($this->_eol);
+    }
+
+    /**
+     * Accessor function to set the body text. Body text is used if
+     * it's not an html mail being sent or else is used to fill the
+     * text/plain part that emails clients who don't support
+     * html should show.
+     *
+     * @param  string  $data   Either a string or
+     *                         the file name with the contents
+     * @param  bool    $isfile If true the first param should be treated
+     *                         as a file name, else as a string (default)
+     * @param  bool    $append If true the text or file is appended to
+     *                         the existing body, else the old body is
+     *                         overwritten
+     * @return mixed   true on success or PEAR_Error object
+     * @access public
+     */
+    function setTXTBody($data, $isfile = false, $append = false)
+    {
+        if (!$isfile) {
+            if (!$append) {
+                $this->_txtbody = $data;
+            } else {
+                $this->_txtbody .= $data;
+            }
+        } else {
+            $cont = $this->_file2str($data);
+            if (PEAR::isError($cont)) {
+                return $cont;
+            }
+            if (!$append) {
+                $this->_txtbody = $cont;
+            } else {
+                $this->_txtbody .= $cont;
+            }
+        }
+        return true;
+    }
+
+    /**
+     * Adds a html part to the mail
+     *
+     * @param  string  $data   Either a string or the file name with the
+     *                         contents
+     * @param  bool    $isfile If true the first param should be treated
+     *                         as a file name, else as a string (default)
+     * @return mixed   true on success or PEAR_Error object
+     * @access public
+     */
+    function setHTMLBody($data, $isfile = false)
+    {
+        if (!$isfile) {
+            $this->_htmlbody = $data;
+        } else {
+            $cont = $this->_file2str($data);
+            if (PEAR::isError($cont)) {
+                return $cont;
+            }
+            $this->_htmlbody = $cont;
+        }
+
+        return true;
+    }
+
+    /**
+     * Adds an image to the list of embedded images.
+     *
+     * @param  string  $file       The image file name OR image data itself
+     * @param  string  $c_type     The content type
+     * @param  string  $name       The filename of the image.
+     *                             Only use if $file is the image data
+     * @param  bool    $isfilename Whether $file is a filename or not
+     *                             Defaults to true
+     * @return mixed   true on success or PEAR_Error object
+     * @access public
+     */
+    function addHTMLImage($file, $c_type='application/octet-stream',
+                          $name = '', $isfilename = true)
+    {
+        $filedata = ($isfilename === true) ? $this->_file2str($file)
+                                           : $file;
+        if ($isfilename === true) {
+            $filename = ($name == '' ? basename($file) : basename($name));
+        } else {
+            $filename = basename($name);
+        }
+        if (PEAR::isError($filedata)) {
+            return $filedata;
+        }
+        $this->_html_images[] = array(
+                                      'body'   => $filedata,
+                                      'name'   => $filename,
+                                      'c_type' => $c_type,
+                                      'cid'    => md5(uniqid(time()))
+                                     );
+        return true;
+    }
+
+    /**
+     * Adds a file to the list of attachments.
+     *
+     * @param  string  $file       The file name of the file to attach
+     *                             OR the file data itself
+     * @param  string  $c_type     The content type
+     * @param  string  $name       The filename of the attachment
+     *                             Only use if $file is the file data
+     * @param  bool    $isFilename Whether $file is a filename or not
+     *                             Defaults to true
+     * @return mixed true on success or PEAR_Error object
+     * @access public
+     */
+    function addAttachment($file, $c_type = 'application/octet-stream',
+                           $name = '', $isfilename = true,
+                           $encoding = 'base64')
+    {
+        $filedata = ($isfilename === true) ? $this->_file2str($file)
+                                           : $file;
+        if ($isfilename === true) {
+            // Force the name the user supplied, otherwise use $file
+            $filename = (!empty($name)) ? $name : $file;
+        } else {
+            $filename = $name;
+        }
+        if (empty($filename)) {
+            return PEAR::raiseError(
+              'The supplied filename for the attachment can\'t be empty'
+            );
+        }
+        $filename = basename($filename);
+        if (PEAR::isError($filedata)) {
+            return $filedata;
+        }
+
+        $this->_parts[] = array(
+                                'body'     => $filedata,
+                                'name'     => $filename,
+                                'c_type'   => $c_type,
+                                'encoding' => $encoding
+                               );
+        return true;
+    }
+
+    /**
+     * Get the contents of the given file name as string
+     *
+     * @param  string  $file_name  path of file to process
+     * @return string  contents of $file_name
+     * @access private
+     */
+    function &_file2str($file_name)
+    {
+        if (!is_readable($file_name)) {
+            return PEAR::raiseError('File is not readable ' . $file_name);
+        }
+        if (!$fd = fopen($file_name, 'rb')) {
+            return PEAR::raiseError('Could not open ' . $file_name);
+        }
+        $filesize = filesize($file_name);
+        if ($filesize == 0){
+            $cont =  "";
+        }else{
+            $cont = fread($fd, $filesize);
+        }
+        fclose($fd);
+        return $cont;
+    }
+
+    /**
+     * Adds a text subpart to the mimePart object and
+     * returns it during the build process.
+     *
+     * @param mixed    The object to add the part to, or
+     *                 null if a new object is to be created.
+     * @param string   The text to add.
+     * @return object  The text mimePart object
+     * @access private
+     */
+    function &_addTextPart(&$obj, $text)
+    {
+        $params['content_type'] = 'text/plain';
+        $params['encoding']     = $this->_build_params['text_encoding'];
+        $params['charset']      = $this->_build_params['text_charset'];
+        if (is_object($obj)) {
+            return $obj->addSubpart($text, $params);
+        } else {
+            return new Mail_mimePart($text, $params);
+        }
+    }
+
+    /**
+     * Adds a html subpart to the mimePart object and
+     * returns it during the build process.
+     *
+     * @param  mixed   The object to add the part to, or
+     *                 null if a new object is to be created.
+     * @return object  The html mimePart object
+     * @access private
+     */
+    function &_addHtmlPart(&$obj)
+    {
+        $params['content_type'] = 'text/html';
+        $params['encoding']     = $this->_build_params['html_encoding'];
+        $params['charset']      = $this->_build_params['html_charset'];
+        if (is_object($obj)) {
+            return $obj->addSubpart($this->_htmlbody, $params);
+        } else {
+            return new Mail_mimePart($this->_htmlbody, $params);
+        }
+    }
+
+    /**
+     * Creates a new mimePart object, using multipart/mixed as
+     * the initial content-type and returns it during the
+     * build process.
+     *
+     * @return object  The multipart/mixed mimePart object
+     * @access private
+     */
+    function &_addMixedPart()
+    {
+        $params['content_type'] = 'multipart/mixed';
+        return new Mail_mimePart('', $params);
+    }
+
+    /**
+     * Adds a multipart/alternative part to a mimePart
+     * object (or creates one), and returns it during
+     * the build process.
+     *
+     * @param  mixed   The object to add the part to, or
+     *                 null if a new object is to be created.
+     * @return object  The multipart/mixed mimePart object
+     * @access private
+     */
+    function &_addAlternativePart(&$obj)
+    {
+        $params['content_type'] = 'multipart/alternative';
+        if (is_object($obj)) {
+            return $obj->addSubpart('', $params);
+        } else {
+            return new Mail_mimePart('', $params);
+        }
+    }
+
+    /**
+     * Adds a multipart/related part to a mimePart
+     * object (or creates one), and returns it during
+     * the build process.
+     *
+     * @param mixed    The object to add the part to, or
+     *                 null if a new object is to be created
+     * @return object  The multipart/mixed mimePart object
+     * @access private
+     */
+    function &_addRelatedPart(&$obj)
+    {
+        $params['content_type'] = 'multipart/related';
+        if (is_object($obj)) {
+            return $obj->addSubpart('', $params);
+        } else {
+            return new Mail_mimePart('', $params);
+        }
+    }
+
+    /**
+     * Adds an html image subpart to a mimePart object
+     * and returns it during the build process.
+     *
+     * @param  object  The mimePart to add the image to
+     * @param  array   The image information
+     * @return object  The image mimePart object
+     * @access private
+     */
+    function &_addHtmlImagePart(&$obj, $value)
+    {
+        $params['content_type'] = $value['c_type'];
+        $params['encoding']     = 'base64';
+        $params['disposition']  = 'inline';
+        $params['dfilename']    = $value['name'];
+        $params['cid']          = $value['cid'];
+        $obj->addSubpart($value['body'], $params);
+    }
+
+    /**
+     * Adds an attachment subpart to a mimePart object
+     * and returns it during the build process.
+     *
+     * @param  object  The mimePart to add the image to
+     * @param  array   The attachment information
+     * @return object  The image mimePart object
+     * @access private
+     */
+    function &_addAttachmentPart(&$obj, $value)
+    {
+        $params['content_type'] = $value['c_type'];
+        $params['encoding']     = $value['encoding'];
+        $params['disposition']  = 'attachment';
+        $params['dfilename']    = $value['name'];
+        $obj->addSubpart($value['body'], $params);
+    }
+
+    /**
+     * Builds the multipart message from the list ($this->_parts) and
+     * returns the mime content.
+     *
+     * @param  array  Build parameters that change the way the email
+     *                is built. Should be associative. Can contain:
+     *                text_encoding  -  What encoding to use for plain text
+     *                                  Default is 7bit
+     *                html_encoding  -  What encoding to use for html
+     *                                  Default is quoted-printable
+     *                7bit_wrap      -  Number of characters before text is
+     *                                  wrapped in 7bit encoding
+     *                                  Default is 998
+     *                html_charset   -  The character set to use for html.
+     *                                  Default is iso-8859-1
+     *                text_charset   -  The character set to use for text.
+     *                                  Default is iso-8859-1
+     *                head_charset   -  The character set to use for headers.
+     *                                  Default is iso-8859-1
+     * @return string The mime content
+     * @access public
+     */
+    function &get($build_params = null)
+    {
+        if (isset($build_params)) {
+            while (list($key, $value) = each($build_params)) {
+                $this->_build_params[$key] = $value;
+            }
+        }
+
+        if (!empty($this->_html_images) AND isset($this->_htmlbody)) {
+            foreach ($this->_html_images as $value) {
+                $regex = '#(\s)((?i)src|background|href(?-i))\s*=\s*(["\']?)' . preg_quote($value['name'], '#') .
+                         '\3#';
+                $rep = '\1\2=\3cid:' . $value['cid'] .'\3';
+                $this->_htmlbody = preg_replace($regex, $rep,
+                                       $this->_htmlbody
+                                   );
+            }
+        }
+
+        $null        = null;
+        $attachments = !empty($this->_parts)                ? true : false;
+        $html_images = !empty($this->_html_images)          ? true : false;
+        $html        = !empty($this->_htmlbody)             ? true : false;
+        $text        = (!$html AND !empty($this->_txtbody)) ? true : false;
+
+        switch (true) {
+        case $text AND !$attachments:
+            $message =& $this->_addTextPart($null, $this->_txtbody);
+            break;
+
+        case !$text AND !$html AND $attachments:
+            $message =& $this->_addMixedPart();
+            for ($i = 0; $i < count($this->_parts); $i++) {
+                $this->_addAttachmentPart($message, $this->_parts[$i]);
+            }
+            break;
+
+        case $text AND $attachments:
+            $message =& $this->_addMixedPart();
+            $this->_addTextPart($message, $this->_txtbody);
+            for ($i = 0; $i < count($this->_parts); $i++) {
+                $this->_addAttachmentPart($message, $this->_parts[$i]);
+            }
+            break;
+
+        case $html AND !$attachments AND !$html_images:
+            if (isset($this->_txtbody)) {
+                $message =& $this->_addAlternativePart($null);
+                $this->_addTextPart($message, $this->_txtbody);
+                $this->_addHtmlPart($message);
+            } else {
+                $message =& $this->_addHtmlPart($null);
+            }
+            break;
+
+        case $html AND !$attachments AND $html_images:
+            if (isset($this->_txtbody)) {
+                $message =& $this->_addAlternativePart($null);
+                $this->_addTextPart($message, $this->_txtbody);
+                $related =& $this->_addRelatedPart($message);
+            } else {
+                $message =& $this->_addRelatedPart($null);
+                $related =& $message;
+            }
+            $this->_addHtmlPart($related);
+            for ($i = 0; $i < count($this->_html_images); $i++) {
+                $this->_addHtmlImagePart($related, $this->_html_images[$i]);
+            }
+            break;
+
+        case $html AND $attachments AND !$html_images:
+            $message =& $this->_addMixedPart();
+            if (isset($this->_txtbody)) {
+                $alt =& $this->_addAlternativePart($message);
+                $this->_addTextPart($alt, $this->_txtbody);
+                $this->_addHtmlPart($alt);
+            } else {
+                $this->_addHtmlPart($message);
+            }
+            for ($i = 0; $i < count($this->_parts); $i++) {
+                $this->_addAttachmentPart($message, $this->_parts[$i]);
+            }
+            break;
+
+        case $html AND $attachments AND $html_images:
+            $message =& $this->_addMixedPart();
+            if (isset($this->_txtbody)) {
+                $alt =& $this->_addAlternativePart($message);
+                $this->_addTextPart($alt, $this->_txtbody);
+                $rel =& $this->_addRelatedPart($alt);
+            } else {
+                $rel =& $this->_addRelatedPart($message);
+            }
+            $this->_addHtmlPart($rel);
+            for ($i = 0; $i < count($this->_html_images); $i++) {
+                $this->_addHtmlImagePart($rel, $this->_html_images[$i]);
+            }
+            for ($i = 0; $i < count($this->_parts); $i++) {
+                $this->_addAttachmentPart($message, $this->_parts[$i]);
+            }
+            break;
+
+        }
+
+        if (isset($message)) {
+            $output = $message->encode();
+            $this->_headers = array_merge($this->_headers,
+                                          $output['headers']);
+            return $output['body'];
+
+        } else {
+            return false;
+        }
+    }
+
+    /**
+     * Returns an array with the headers needed to prepend to the email
+     * (MIME-Version and Content-Type). Format of argument is:
+     * $array['header-name'] = 'header-value';
+     *
+     * @param  array $xtra_headers Assoc array with any extra headers.
+     *                             Optional.
+     * @return array Assoc array with the mime headers
+     * @access public
+     */
+    function &headers($xtra_headers = null)
+    {
+        // Content-Type header should already be present,
+        // So just add mime version header
+        $headers['MIME-Version'] = '1.0';
+        if (isset($xtra_headers)) {
+            $headers = array_merge($headers, $xtra_headers);
+        }
+        $this->_headers = array_merge($headers, $this->_headers);
+
+        return $this->_encodeHeaders($this->_headers);
+    }
+
+    /**
+     * Get the text version of the headers
+     * (usefull if you want to use the PHP mail() function)
+     *
+     * @param  array   $xtra_headers Assoc array with any extra headers.
+     *                               Optional.
+     * @return string  Plain text headers
+     * @access public
+     */
+    function txtHeaders($xtra_headers = null)
+    {
+        $headers = $this->headers($xtra_headers);
+        $ret = '';
+        foreach ($headers as $key => $val) {
+            $ret .= "$key: $val" . MAIL_MIME_CRLF;
+        }
+        return $ret;
+    }
+
+    /**
+     * Sets the Subject header
+     *
+     * @param  string $subject String to set the subject to
+     * access  public
+     */
+    function setSubject($subject)
+    {
+        $this->_headers['Subject'] = $subject;
+    }
+
+    /**
+     * Set an email to the From (the sender) header
+     *
+     * @param  string $email The email direction to add
+     * @access public
+     */
+    function setFrom($email)
+    {
+        $this->_headers['From'] = $email;
+    }
+
+    /**
+     * Add an email to the Cc (carbon copy) header
+     * (multiple calls to this method are allowed)
+     *
+     * @param  string $email The email direction to add
+     * @access public
+     */
+    function addCc($email)
+    {
+        if (isset($this->_headers['Cc'])) {
+            $this->_headers['Cc'] .= ", $email";
+        } else {
+            $this->_headers['Cc'] = $email;
+        }
+    }
+
+    /**
+     * Add an email to the Bcc (blank carbon copy) header
+     * (multiple calls to this method are allowed)
+     *
+     * @param  string $email The email direction to add
+     * @access public
+     */
+    function addBcc($email)
+    {
+        if (isset($this->_headers['Bcc'])) {
+            $this->_headers['Bcc'] .= ", $email";
+        } else {
+            $this->_headers['Bcc'] = $email;
+        }
+    }
+
+    /**
+     * Encodes a header as per RFC2047
+     *
+     * @param  string  $input The header data to encode
+     * @return string  Encoded data
+     * @access private
+     */
+    function _encodeHeaders($input)
+    {
+        foreach ($input as $hdr_name => $hdr_value) {
+            preg_match_all('/(\w*[\x80-\xFF]+\w*)/', $hdr_value, $matches);
+            foreach ($matches[1] as $value) {
+                $replacement = preg_replace('/([\x80-\xFF])/e',
+                                            '"=" .
+                                            strtoupper(dechex(ord("\1")))',
+                                            $value);
+                $hdr_value = str_replace($value, '=?' .
+                                         $this->_build_params['head_charset'] .
+                                         '?Q?' . $replacement . '?=',
+                                         $hdr_value);
+            }
+            $input[$hdr_name] = $hdr_value;
+        }
+
+        return $input;
+    }
+
+    /**
+     * Set the object's end-of-line and define the constant if applicable
+     *
+     * @param string $eol End Of Line sequence
+     * @access private
+     */
+    function _setEOL($eol)
+    {
+        $this->_eol = $eol;
+        if (!defined('MAIL_MIME_CRLF')) {
+            define('MAIL_MIME_CRLF', $this->_eol, true);
+        }
+    }
+
+    
+
+} // End of class
+?>
Index: branches/dev/data/module/Net/UserAgent/Mobile/NonMobile.php
===================================================================
--- branches/dev/data/module/Net/UserAgent/Mobile/NonMobile.php	(revision 11460)
+++ branches/dev/data/module/Net/UserAgent/Mobile/NonMobile.php	(revision 11460)
@@ -0,0 +1,188 @@
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4: */
+
+/**
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.0 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category   Networking
+ * @package    Net_UserAgent_Mobile
+ * @author     KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @copyright  2003-2007 KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
+ * @version    CVS: $Id: NonMobile.php,v 1.12 2007/02/20 15:20:02 kuboa Exp $
+ * @see        Net_UserAgent_Mobile_Common
+ * @since      File available since Release 0.1.0
+ */
+
+require_once(dirname(__FILE__) . '/Common.php');
+require_once(dirname(__FILE__) . '/Display.php');
+
+// {{{ Net_UserAgent_Mobile_NonMobile
+
+/**
+ * Non-Mobile Agent implementation
+ *
+ * Net_UserAgent_Mobile_NonMobile is a subclass of
+ * {@link Net_UserAgent_Mobile_Common}, which implements non-mobile or
+ * unimplemented user agents.
+ *
+ * SYNOPSIS:
+ * <code>
+ * require_once 'Net/UserAgent/Mobile.php';
+ *
+ * $_SERVER['HTTP_USER_AGENT'] = 'Mozilla/4.0';
+ * $agent = &Net_UserAgent_Mobile::factory();
+ * </code>
+ *
+ * @category   Networking
+ * @package    Net_UserAgent_Mobile
+ * @author     KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @copyright  2003-2007 KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
+ * @version    Release: 0.30.0
+ * @see        Net_UserAgent_Mobile_Common
+ * @since      Class available since Release 0.1.0
+ */
+class Net_UserAgent_Mobile_NonMobile extends Net_UserAgent_Mobile_Common
+{
+
+    // {{{ properties
+
+    /**#@+
+     * @access public
+     */
+
+    /**#@-*/
+
+    /**#@+
+     * @access private
+     */
+
+    /**#@-*/
+
+    /**#@+
+     * @access public
+     */
+
+    // }}}
+    // {{{ isNonMobile()
+
+    /**
+     * returns true
+     *
+     * @return boolean
+     */
+    function isNonMobile()
+    {
+        return true;
+    }
+
+    // }}}
+    // {{{ parse()
+
+    /**
+     * parse HTTP_USER_AGENT string
+     */
+    function parse()
+    {
+        @list($this->name, $this->version) =
+            explode('/', $this->getUserAgent());
+    }
+
+    // }}}
+    // {{{ makeDisplay()
+
+    /**
+     * create a new {@link Net_UserAgent_Mobile_Display} class instance
+     *
+     * @return object a newly created {@link Net_UserAgent_Mobile_Display}
+     *     object
+     * @see Net_UserAgent_Mobile_Display
+     */
+    function makeDisplay()
+    {
+        return new Net_UserAgent_Mobile_Display(null);
+    }
+
+    // }}}
+    // {{{ getModel()
+
+    /**
+     * returns name of the model
+     *
+     * @return string
+     */
+    function getModel()
+    {
+        return '';
+    }
+
+    // }}}
+    // {{{ getDeviceID()
+
+    /**
+     * returns device ID
+     *
+     * @return string
+     */
+    function getDeviceID()
+    {
+        return '';
+    }
+
+    // }}}
+    // {{{ getCarrierShortName()
+
+    /**
+     * returns the short name of the carrier
+     *
+     * @return string
+     */
+    function getCarrierShortName()
+    {
+        return 'N';
+    }
+
+    // }}}
+    // {{{ getCarrierLongName()
+
+    /**
+     * returns the long name of the carrier
+     *
+     * @return string
+     */
+    function getCarrierLongName()
+    {
+        return 'NonMobile';
+    }
+
+    /**#@-*/
+
+    /**#@+
+     * @access private
+     */
+
+    /**#@-*/
+
+    // }}}
+}
+
+// }}}
+
+/*
+ * Local Variables:
+ * mode: php
+ * coding: iso-8859-1
+ * tab-width: 4
+ * c-basic-offset: 4
+ * c-hanging-comment-ender-p: nil
+ * indent-tabs-mode: nil
+ * End:
+ */
+?>
Index: branches/dev/data/module/Net/UserAgent/Mobile/DoCoMoDisplayMap.php
===================================================================
--- branches/dev/data/module/Net/UserAgent/Mobile/DoCoMoDisplayMap.php	(revision 11460)
+++ branches/dev/data/module/Net/UserAgent/Mobile/DoCoMoDisplayMap.php	(revision 11460)
@@ -0,0 +1,1471 @@
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4: */
+
+/**
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.0 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category   Networking
+ * @package    Net_UserAgent_Mobile
+ * @author     KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @copyright  2003-2007 KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
+ * @version    CVS: $Id: DoCoMoDisplayMap.php,v 1.32 2007/02/20 18:30:17 kuboa Exp $
+ * @link       http://www.nttdocomo.co.jp/service/imode/make/content/spec/screen_area/index.html
+ * @see        Net_UserAgent_Mobile_Display
+ * @since      File available since Release 0.1
+ */
+
+// {{{ Net_UserAgent_Mobile_DoCoMoDisplayMap
+
+/**
+ * Display information mapping for DoCoMo.
+ *
+ * @category   Networking
+ * @package    Net_UserAgent_Mobile
+ * @author     KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @copyright  2003-2007 KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
+ * @version    Release: 0.30.0
+ * @link       http://www.nttdocomo.co.jp/service/imode/make/content/spec/screen_area/index.html
+ * @see        Net_UserAgent_Mobile_Display
+ * @since      Class available since Release 0.1
+ */
+class Net_UserAgent_Mobile_DoCoMoDisplayMap
+{
+
+    // {{{ properties
+
+    /**#@+
+     * @access public
+     */
+
+    /**#@-*/
+
+    /**#@+
+     * @access private
+     */
+
+    /**#@-*/
+
+    /**#@+
+     * @access public
+     */
+
+    // }}}
+    // {{{ get()
+
+    /**
+     * Returns the display information of the model.
+     *
+     * @param string $model the name of the model
+     * @return array
+     * @static
+     */
+    function get($model)
+    {
+        static $displayMap;
+        if (!isset($displayMap)) {
+            if (isset($_SERVER['DOCOMO_MAP'])) {
+
+                // using the specified XML data
+                while (true) {
+                    if (!function_exists('xml_parser_create')
+                        || !is_readable($_SERVER['DOCOMO_MAP'])
+                        ) {
+                        break;
+                    }
+                    $xml = file_get_contents($_SERVER['DOCOMO_MAP']);
+                    $parser = xml_parser_create();
+                    if ($parser === false) {
+                        break;
+                    }
+                    xml_parse_into_struct($parser, $xml, $values, $indexes);
+                    if (!xml_parser_free($parser)) {
+                        break;
+                    }
+                    if (isset($indexes['OPT'])) {
+                        unset($indexes['OPT']);
+                    }
+                    foreach ($indexes as $modelName => $modelIndexes) {
+                        $displayMap[$modelName] = array();
+                        foreach ($values[ $modelIndexes[0] ]['attributes'] as $attributeName => $attributeValue) {
+                            $displayMap[$modelName][ strtolower($attributeName) ] = $attributeValue;
+                        }
+                    }
+                    break;
+                }
+            }
+
+            if (!isset($displayMap)) {
+                $displayMap = array(
+
+                                    // i-mode compliant HTML 1.0
+                                    'D501I' => array(
+                                                     'width'  => 96,
+                                                     'height' => 72,
+                                                     'depth'  => 2,
+                                                     'color'  => 0
+                                                     ),
+                                    'F501I' => array(
+                                                     'width'  => 112,
+                                                     'height' => 84,
+                                                     'depth'  => 2,
+                                                     'color'  => 0
+                                                     ),
+                                    'N501I' => array(
+                                                     'width'  => 118,
+                                                     'height' => 128,
+                                                     'depth'  => 2,
+                                                     'color'  => 0
+                                                     ),
+                                    'P501I' => array(
+                                                     'width'  => 96,
+                                                     'height' => 120,
+                                                     'depth'  => 2,
+                                                     'color'  => 0
+                                                     ),
+
+                                    // i-mode compliant HTML 2.0
+                                    'D502I' => array(
+                                                     'width'  => 96,
+                                                     'height' => 90,
+                                                     'depth'  => 256,
+                                                     'color'  => 1
+                                                     ),
+                                    'F502I' => array(
+                                                     'width'  => 96,
+                                                     'height' => 91,
+                                                     'depth'  => 256,
+                                                     'color'  => 1
+                                                     ),
+                                    'N502I' => array(
+                                                     'width'  => 118,
+                                                     'height' => 128,
+                                                     'depth'  => 4,
+                                                     'color'  => 0
+                                                     ),
+                                    'P502I' => array(
+                                                     'width'  => 96,
+                                                     'height' => 117,
+                                                     'depth'  => 4,
+                                                     'color'  => 0
+                                                     ),
+                                    'NM502I' => array(
+                                                      'width'  => 111,
+                                                      'height' => 106,
+                                                      'depth'  => 2,
+                                                      'color'  => 0
+                                                      ),
+                                    'SO502I' => array(
+                                                      'width'  => 120,
+                                                      'height' => 120,
+                                                      'depth'  => 4,
+                                                      'color'  => 0
+                                                      ),
+                                    'F502IT' => array(
+                                                      'width'  => 96,
+                                                      'height' => 91,
+                                                      'depth'  => 256,
+                                                      'color'  => 1
+                                                      ),
+                                    'N502IT' => array(
+                                                      'width'  => 118,
+                                                      'height' => 128,
+                                                      'depth'  => 256,
+                                                      'color'  => 1
+                                                      ),
+                                    'SO502IWM' => array(
+                                                        'width'  => 120,
+                                                        'height' => 113,
+                                                        'depth'  => 256,
+                                                        'color'  => 1
+                                                        ),
+                                    'SH821I' => array(
+                                                      'width'  => 96,
+                                                      'height' => 78,
+                                                      'depth'  => 256,
+                                                      'color'  => 1
+                                                      ),
+                                    'N821I' => array(
+                                                     'width'  => 118,
+                                                     'height' => 128,
+                                                     'depth'  => 4,
+                                                     'color'  => 0
+                                                     ),
+                                    'P821I' => array(
+                                                     'width'  => 118,
+                                                     'height' => 128,
+                                                     'depth'  => 4,
+                                                     'color'  => 0
+                                                     ),
+                                    'D209I' => array(
+                                                     'width'  => 96,
+                                                     'height' => 90,
+                                                     'depth'  => 256,
+                                                     'color'  => 1
+                                                     ),
+                                    'ER209I' => array(
+                                                      'width'  => 120,
+                                                      'height' => 72,
+                                                      'depth'  => 2,
+                                                      'color'  => 0
+                                                      ),
+                                    'F209I' => array(
+                                                     'width'  => 96,
+                                                     'height' => 91,
+                                                     'depth'  => 256,
+                                                     'color'  => 1
+                                                     ),
+                                    'KO209I' => array(
+                                                      'width'  => 96,
+                                                      'height' => 96,
+                                                      'depth'  => 256,
+                                                      'color'  => 1
+                                                      ),
+                                    'N209I' => array(
+                                                     'width'  => 108,
+                                                     'height' => 82,
+                                                     'depth'  => 4,
+                                                     'color'  => 0
+                                                     ),
+                                    'P209I' => array(
+                                                     'width'  => 96,
+                                                     'height' => 87,
+                                                     'depth'  => 4,
+                                                     'color'  => 0
+                                                     ),
+                                    'P209IS' => array(
+                                                      'width'  => 96,
+                                                      'height' => 87,
+                                                      'depth'  => 256,
+                                                      'color'  => 1
+                                                      ),
+                                    'R209I' => array(
+                                                     'width'  => 96,
+                                                     'height' => 72,
+                                                     'depth'  => 4,
+                                                     'color'  => 0
+                                                     ),
+                                    'P651PS' => array(
+                                                      'width'  => 96,
+                                                      'height' => 87,
+                                                      'depth'  => 4,
+                                                      'color'  => 0
+                                                      ),
+                                    'R691I' => array(
+                                                     'width'  => 96,
+                                                     'height' => 72,
+                                                     'depth'  => 4,
+                                                     'color'  => 0
+                                                     ),
+                                    'F671I' => array(
+                                                     'width'  => 120,
+                                                     'height' => 126,
+                                                     'depth'  => 256,
+                                                     'color'  => 1
+                                                     ),
+                                    'F210I' => array(
+                                                     'width'  => 96,
+                                                     'height' => 113,
+                                                     'depth'  => 256,
+                                                     'color'  => 1
+                                                     ),
+                                    'N210I' => array(
+                                                     'width'  => 118,
+                                                     'height' => 113,
+                                                     'depth'  => 256,
+                                                     'color'  => 1
+                                                     ),
+                                    'P210I' => array(
+                                                     'width'  => 96,
+                                                     'height' => 91,
+                                                     'depth'  => 256,
+                                                     'color'  => 1
+                                                     ),
+                                    'KO210I' => array(
+                                                      'width'  => 96,
+                                                      'height' => 96,
+                                                      'depth'  => 256,
+                                                      'color'  => 1
+                                                      ),
+
+                                    // i-mode compliant HTML 3.0
+                                    'F503I' => array(
+                                                     'width'  => 120,
+                                                     'height' => 130,
+                                                     'depth'  => 256,
+                                                     'color'  => 1
+                                                     ),
+                                    'F503IS' => array(
+                                                      'width'  => 120,
+                                                      'height' => 130,
+                                                      'depth'  => 4096,
+                                                      'color'  => 1
+                                                      ),
+                                    'P503I' => array(
+                                                     'width'  => 120,
+                                                     'height' => 130,
+                                                     'depth'  => 256,
+                                                     'color'  => 1
+                                                     ),
+                                    'P503IS' => array(
+                                                      'width'  => 120,
+                                                      'height' => 130,
+                                                      'depth'  => 256,
+                                                      'color'  => 1
+                                                      ),
+                                    'N503I' => array(
+                                                     'width'  => 118,
+                                                     'height' => 128,
+                                                     'depth'  => 4096,
+                                                     'color'  => 1
+                                                     ),
+                                    'N503IS' => array(
+                                                      'width'  => 118,
+                                                      'height' => 128,
+                                                      'depth'  => 4096,
+                                                      'color'  => 1
+                                                      ),
+                                    'SO503I' => array(
+                                                      'width'  => 120,
+                                                      'height' => 113,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'SO503IS' => array(
+                                                       'width'  => 120,
+                                                       'height' => 113,
+                                                       'depth'  => 65536,
+                                                       'color'  => 1
+                                                       ),
+                                    'D503I' => array(
+                                                     'width'  => 132,
+                                                     'height' => 126,
+                                                     'depth'  => 4096,
+                                                     'color'  => 1
+                                                     ),
+                                    'D503IS' => array(
+                                                      'width'  => 132,
+                                                      'height' => 126,
+                                                      'depth'  => 4096,
+                                                      'color'  => 1
+                                                      ),
+                                    'D210I' => array(
+                                                     'width'  => 96,
+                                                     'height' => 91,
+                                                     'depth'  => 256,
+                                                     'color'  => 1
+                                                     ),
+                                    'SO210I' => array(
+                                                      'width'  => 120,
+                                                      'height' => 113,
+                                                      'depth'  => 256,
+                                                      'color'  => 1
+                                                      ),
+                                    'F211I' => array(
+                                                     'width'  => 96,
+                                                     'height' => 113,
+                                                     'depth'  => 4096,
+                                                     'color'  => 1
+                                                     ),
+                                    'D211I' => array(
+                                                     'width'  => 100,
+                                                     'height' => 91,
+                                                     'depth'  => 4096,
+                                                     'color'  => 1
+                                                     ),
+                                    'N211I' => array(
+                                                     'width'  => 118,
+                                                     'height' => 128,
+                                                     'depth'  => 4096,
+                                                     'color'  => 1
+                                                     ),
+                                    'N211IS' => array(
+                                                      'width'  => 118,
+                                                      'height' => 128,
+                                                      'depth'  => 4096,
+                                                      'color'  => 1
+                                                      ),
+                                    'P211I' => array(
+                                                     'width'  => 120,
+                                                     'height' => 130,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'P211IS' => array(
+                                                      'width'  => 120,
+                                                      'height' => 130,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'SO211I' => array(
+                                                      'width'  => 120,
+                                                      'height' => 112,
+                                                      'depth'  => 4096,
+                                                      'color'  => 1
+                                                      ),
+                                    'R211I' => array(
+                                                     'width'  => 96,
+                                                     'height' => 98,
+                                                     'depth'  => 4096,
+                                                     'color'  => 1
+                                                     ),
+                                    'SH251I' => array(
+                                                      'width'  => 120,
+                                                      'height' => 130,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'SH251IS' => array(
+                                                       'width'  => 176,
+                                                       'height' => 187,
+                                                       'depth'  => 65536,
+                                                       'color'  => 1
+                                                       ),
+                                    'R692I' => array(
+                                                     'width'  => 96,
+                                                     'height' => 98,
+                                                     'depth'  => 4096,
+                                                     'color'  => 1
+                                                     ),
+
+                                    // i-mode compliant HTML 3.0
+                                    // (FOMA 2001/2002/2101V)
+                                    'N2001' => array(
+                                                     'width'  => 118,
+                                                     'height' => 128,
+                                                     'depth'  => 4096,
+                                                     'color'  => 1
+                                                     ),
+                                    'N2002' => array(
+                                                     'width'  => 118,
+                                                     'height' => 128,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'P2002' => array(
+                                                     'width'  => 118,
+                                                     'height' => 128,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'D2101V' => array(
+                                                      'width'  => 120,
+                                                      'height' => 130,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'P2101V' => array(
+                                                      'width'  => 163,
+                                                      'height' => 182,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'SH2101V' => array(
+                                                       'width'  => 800,
+                                                       'height' => 600,
+                                                       'depth'  => 65536,
+                                                       'color'  => 1
+                                                       ),
+                                    'T2101V' => array(
+                                                      'width'  => 176,
+                                                      'height' => 144,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+
+                                    // i-mode compliant HTML 4.0
+                                    'D504I' => array(
+                                                     'width'  => 132,
+                                                     'height' => 144,
+                                                     'depth'  => 262144,
+                                                     'color'  => 1
+                                                     ),
+                                    'F504I' => array(
+                                                     'width'  => 132,
+                                                     'height' => 136,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'F504IS' => array(
+                                                      'width'  => 132,
+                                                      'height' => 136,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'N504I' => array(
+                                                     'width'  => 160,
+                                                     'height' => 180,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'N504IS' => array(
+                                                      'width'  => 160,
+                                                      'height' => 180,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'SO504I' => array(
+                                                      'width'  => 120,
+                                                      'height' => 112,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'P504I' => array(
+                                                     'width'  => 132,
+                                                     'height' => 144,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'P504IS' => array(
+                                                      'width'  => 132,
+                                                      'height' => 144,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'D251I' => array(
+                                                     'width'  => 132,
+                                                     'height' => 144,
+                                                     'depth'  => 262144,
+                                                     'color'  => 1
+                                                     ),
+                                    'D251IS' => array(
+                                                      'width'  => 132,
+                                                      'height' => 144,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'F251I' => array(
+                                                     'width'  => 132,
+                                                     'height' => 140,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'N251I' => array(
+                                                     'width'  => 132,
+                                                     'height' => 140,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'N251IS' => array(
+                                                      'width'  => 132,
+                                                      'height' => 140,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'P251IS' => array(
+                                                      'width'  => 132,
+                                                      'height' => 144,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'F671IS' => array(
+                                                      'width'  => 160,
+                                                      'height' => 120,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'F212I' => array(
+                                                     'width'  => 132,
+                                                     'height' => 136,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'SO212I' => array(
+                                                      'width'  => 120,
+                                                      'height' => 112,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'F661I' => array(
+                                                     'width'  => 132,
+                                                     'height' => 136,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'F672I' => array(
+                                                     'width'  => 160,
+                                                     'height' => 120,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'SO213I' => array(
+                                                      'width'  => 120,
+                                                      'height' => 112,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'SO213IS' => array(
+                                                       'width'  => 120,
+                                                       'height' => 112,
+                                                       'depth'  => 65536,
+                                                       'color'  => 1
+                                                       ),
+                                    'SO213IWR' => array(
+                                                        'width'  => 120,
+                                                        'height' => 112,
+                                                        'depth'  => 65536,
+                                                        'color'  => 1
+                                                        ),
+
+                                    // i-mode compliant HTML 4.0
+                                    // (FOMA 2051/2102V/2701 etc.)
+                                    'F2051' => array(
+                                                     'width'  => 176,
+                                                     'height' => 182,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'N2051' => array(
+                                                     'width'  => 176,
+                                                     'height' => 198,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'P2102V' => array(
+                                                      'width'  => 176,
+                                                      'height' => 198,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'P2102V' => array(
+                                                      'width'  => 176,
+                                                      'height' => 198,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'F2102V' => array(
+                                                      'width'  => 176,
+                                                      'height' => 182,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'N2102V' => array(
+                                                      'width'  => 176,
+                                                      'height' => 198,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'N2701' => array(
+                                                     'width'  => 176,
+                                                     'height' => 198,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'NM850IG' => array(
+                                                       'width'  => 176,
+                                                       'height' => 144,
+                                                       'depth'  => 65536,
+                                                       'color'  => 1
+                                                       ),
+
+                                    // i-mode compliant HTML 5.0 (505i etc.)
+                                    'D505I' => array(
+                                                     'width'  => 240,
+                                                     'height' => 270,
+                                                     'depth'  => 262144,
+                                                     'color'  => 1
+                                                     ),
+                                    'SO505I' => array(
+                                                      'width'  => 256,
+                                                      'height' => 240,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'SH505I' => array(
+                                                      'width'  => 240,
+                                                      'height' => 252,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'N505I' => array(
+                                                     'width'  => 240,
+                                                     'height' => 270,
+                                                     'depth'  => 262144,
+                                                     'color'  => 1
+                                                     ),
+                                    'F505I' => array(
+                                                     'width'  => 240,
+                                                     'height' => 268,
+                                                     'depth'  => 262144,
+                                                     'color'  => 1
+                                                     ),
+                                    'P505I' => array(
+                                                     'width'  => 240,
+                                                     'height' => 266,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'D505IS' => array(
+                                                      'width'  => 240,
+                                                      'height' => 270,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'P505IS' => array(
+                                                      'width'  => 240,
+                                                      'height' => 266,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'N505IS' => array(
+                                                      'width'  => 240,
+                                                      'height' => 270,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'SO505IS' => array(
+                                                       'width'  => 240,
+                                                       'height' => 256,
+                                                       'depth'  => 262144,
+                                                       'color'  => 1
+                                                       ),
+                                    'SH505IS' => array(
+                                                       'width'  => 240,
+                                                       'height' => 252,
+                                                       'depth'  => 262144,
+                                                       'color'  => 1
+                                                       ),
+                                    'F505IGPS' => array(
+                                                        'width'  => 240,
+                                                        'height' => 268,
+                                                        'depth'  => 262144,
+                                                        'color'  => 1
+                                                        ),
+                                    'D252I' => array(
+                                                     'width'  => 176,
+                                                     'height' => 198,
+                                                     'depth'  => 262144,
+                                                     'color'  => 1
+                                                     ),
+                                    'SH252I' => array(
+                                                      'width'  => 240,
+                                                      'height' => 252,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'P252I' => array(
+                                                     'width'  => 132,
+                                                     'height' => 144,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'N252I' => array(
+                                                     'width'  => 132,
+                                                     'height' => 140,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'P252IS' => array(
+                                                      'width'  => 132,
+                                                      'height' => 144,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'D506I' => array(
+                                                     'width'  => 240,
+                                                     'height' => 270,
+                                                     'depth'  => 262144,
+                                                     'color'  => 1
+                                                     ),
+                                    'F506I' => array(
+                                                     'width'  => 240,
+                                                     'height' => 268,
+                                                     'depth'  => 262144,
+                                                     'color'  => 1
+                                                     ),
+                                    'N506I' => array(
+                                                     'width'  => 240,
+                                                     'height' => 295,
+                                                     'depth'  => 262144,
+                                                     'color'  => 1
+                                                     ),
+                                    'P506IC' => array(
+                                                      'width'  => 240,
+                                                      'height' => 266,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'SH506IC' => array(
+                                                       'width'  => 240,
+                                                       'height' => 252,
+                                                       'depth'  => 262144,
+                                                       'color'  => 1
+                                                       ),
+                                    'SO506IC' => array(
+                                                       'width'  => 240,
+                                                       'height' => 256,
+                                                       'depth'  => 262144,
+                                                       'color'  => 1
+                                                       ),
+                                    'N506IS' => array(
+                                                      'width'  => 240,
+                                                      'height' => 295,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'SO506I' => array(
+                                                      'width'  => 240,
+                                                      'height' => 256,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'SO506IS' => array(
+                                                       'width'  => 240,
+                                                       'height' => 256,
+                                                       'depth'  => 262144,
+                                                       'color'  => 1
+                                                       ),
+                                    'N506ISII' => array(
+                                                        'width'  => 240,
+                                                        'height' => 295,
+                                                        'depth'  => 262144,
+                                                        'color'  => 1
+                                                        ),
+                                    'P506ICII' => array(
+                                                        'width'  => 240,
+                                                        'height' => 266,
+                                                        'depth'  => 65536,
+                                                        'color'  => 1
+                                                        ),
+                                    'D253I' => array(
+                                                     'width'  => 176,
+                                                     'height' => 198,
+                                                     'depth'  => 262144,
+                                                     'color'  => 1
+                                                     ),
+                                    'N253I' => array(
+                                                     'width'  => 160,
+                                                     'height' => 180,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'P253I' => array(
+                                                     'width'  => 132,
+                                                     'height' => 144,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'D253IWM' => array(
+                                                       'width'  => 220,
+                                                       'height' => 144,
+                                                       'depth'  => 262144,
+                                                       'color'  => 1
+                                                       ),
+                                    'P253IS' => array(
+                                                      'width'  => 132,
+                                                      'height' => 144,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'P213I' => array(
+                                                     'width'  => 132,
+                                                     'height' => 144,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+
+                                    // i-mode compliant HTML 5.0
+                                    // (FOMA 900i etc.)
+                                    'F900I' => array(
+                                                     'width'  => 230,
+                                                     'height' => 240,
+                                                     'depth'  => 262144,
+                                                     'color'  => 1
+                                                     ),
+                                    'N900I' => array(
+                                                     'width'  => 240,
+                                                     'height' => 269,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'P900I' => array(
+                                                     'width'  => 240,
+                                                     'height' => 266,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'SH900I' => array(
+                                                      'width'  => 240,
+                                                      'height' => 252,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'F900IT' => array(
+                                                      'width'  => 230,
+                                                      'height' => 240,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'P900IV' => array(
+                                                      'width'  => 240,
+                                                      'height' => 266,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'N900IS' => array(
+                                                      'width'  => 240,
+                                                      'height' => 269,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'D900I' => array(
+                                                     'width'  => 240,
+                                                     'height' => 270,
+                                                     'depth'  => 262144,
+                                                     'color'  => 1
+                                                     ),
+                                    'F900IC' => array(
+                                                      'width'  => 230,
+                                                      'height' => 240,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'F880IES' => array(
+                                                       'width'  => 240,
+                                                       'height' => 256,
+                                                       'depth'  => 65536,
+                                                       'color'  => 1
+                                                       ),
+                                    'N900IL' => array(
+                                                      'width'  => 240,
+                                                      'height' => 269,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'N900IG' => array(
+                                                      'width'  => 240,
+                                                      'height' => 269,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'SH901IC' => array(
+                                                       'width'  => 240,
+                                                       'height' => 252,
+                                                       'depth'  => 262144,
+                                                       'color'  => 1
+                                                       ),
+                                    'F901IC' => array(
+                                                      'width'  => 230,
+                                                      'height' => 240,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'N901IC' => array(
+                                                      'width'  => 240,
+                                                      'height' => 270,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'D901I' => array(
+                                                     'width'  => 230,
+                                                     'height' => 240,
+                                                     'depth'  => 262144,
+                                                     'color'  => 1
+                                                     ),
+                                    'P901I' => array(
+                                                     'width'  => 240,
+                                                     'height' => 270,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'F700I' => array(
+                                                     'width'  => 230,
+                                                     'height' => 240,
+                                                     'depth'  => 262144,
+                                                     'color'  => 1
+                                                     ),
+                                    'SH700I' => array(
+                                                      'width'  => 240,
+                                                      'height' => 252,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'N700I' => array(
+                                                     'width'  => 240,
+                                                     'height' => 270,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'P700I' => array(
+                                                     'width'  => 240,
+                                                     'height' => 270,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'F700IS' => array(
+                                                      'width'  => 230,
+                                                      'height' => 240,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'SH700IS' => array(
+                                                       'width'  => 240,
+                                                       'height' => 252,
+                                                       'depth'  => 262144,
+                                                       'color'  => 1
+                                                       ),
+                                    'SA700IS' => array(
+                                                       'width'  => 240,
+                                                       'height' => 252,
+                                                       'depth'  => 65536,
+                                                       'color'  => 1
+                                                       ),
+
+                                    'SH901IS' => array(
+                                                       'width'  => 240,
+                                                       'height' => 252,
+                                                       'depth'  => 262144,
+                                                       'color'  => 1
+                                                       ),
+                                    'F901IS' => array(
+                                                      'width'  => 230,
+                                                      'height' => 240,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'D901IS' => array(
+                                                      'width'  => 230,
+                                                      'height' => 240,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'P901IS' => array(
+                                                      'width'  => 240,
+                                                      'height' => 270,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'N901IS' => array(
+                                                      'width'  => 240,
+                                                      'height' => 270,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'P901ITV' => array(
+                                                       'width'  => 240,
+                                                       'height' => 270,
+                                                       'depth'  => 65536,
+                                                       'color'  => 1
+                                                       ),
+                                    'SH851I' => array(
+                                                      'width'  => 240,
+                                                      'height' => 252,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'P851I' => array(
+                                                     'width'  => 240,
+                                                     'height' => 270,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'F881IES' => array(
+                                                       'width'  => 240,
+                                                       'height' => 256,
+                                                       'depth'  => 65536,
+                                                       'color'  => 1
+                                                       ),
+                                    'D701I' => array(
+                                                     'width'  => 230,
+                                                     'height' => 240,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'N701I' => array(
+                                                     'width'  => 240,
+                                                     'height' => 270,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'P701ID' => array(
+                                                      'width'  => 240,
+                                                      'height' => 270,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'D701IWM' => array(
+                                                       'width'  => 230,
+                                                       'height' => 240,
+                                                       'depth'  => 65536,
+                                                       'color'  => 1
+                                                       ),
+                                    'N701IECO' => array(
+                                                        'width'  => 240,
+                                                        'height' => 270,
+                                                        'depth'  => 65536,
+                                                        'color'  => 1
+                                                        ),
+                                    'SA800I' => array(
+                                                      'width'  => 240,
+                                                      'height' => 252,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'L600I' => array(
+                                                     'width'  => 176,
+                                                     'height' => 189,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'N600I' => array(
+                                                     'width'  => 176,
+                                                     'height' => 180,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'L601I' => array(
+                                                     'width'  => 176,
+                                                     'height' => 189,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'M702IS' => array(
+                                                      'width'  => 240,
+                                                      'height' => 267,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'M702IG' => array(
+                                                      'width'  => 240,
+                                                      'height' => 267,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+
+                                    // i-mode compliant HTML 6.0
+                                    // (FOMA 902i etc.)
+                                    'F902I' => array(
+                                                     'width'  => 230,
+                                                     'height' => 240,
+                                                     'depth'  => 262144,
+                                                     'color'  => 1
+                                                     ),
+                                    'D902I' => array(
+                                                     'width'  => 230,
+                                                     'height' => 240,
+                                                     'depth'  => 262144,
+                                                     'color'  => 1
+                                                     ),
+                                    'N902I' => array(
+                                                     'width'  => 240,
+                                                     'height' => 270,
+                                                     'depth'  => 262144,
+                                                     'color'  => 1
+                                                     ),
+                                    'P902I' => array(
+                                                     'width'  => 240,
+                                                     'height' => 270,
+                                                     'depth'  => 262144,
+                                                     'color'  => 1
+                                                     ),
+                                    'SH902I' => array(
+                                                      'width'  => 240,
+                                                      'height' => 240,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'SO902I' => array(
+                                                      'width'  => 240,
+                                                      'height' => 256,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'SH902IS' => array(
+                                                       'width'  => 240,
+                                                       'height' => 240,
+                                                       'depth'  => 262144,
+                                                       'color'  => 1
+                                                       ),
+                                    'P902IS' => array(
+                                                      'width'  => 240,
+                                                      'height' => 270,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'N902IS' => array(
+                                                      'width'  => 240,
+                                                      'height' => 270,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'D902IS' => array(
+                                                      'width'  => 230,
+                                                      'height' => 320,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'F902IS' => array(
+                                                      'width'  => 230,
+                                                      'height' => 240,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'SO902IWP+' => array(
+                                                         'width'  => 240,
+                                                         'height' => 256,
+                                                         'depth'  => 262144,
+                                                         'color'  => 1
+                                                         ),
+                                    'SH902ISL' => array(
+                                                        'width'  => 240,
+                                                        'height' => 240,
+                                                        'depth'  => 262144,
+                                                        'color'  => 1
+                                                        ),
+                                    'N902IX' => array(
+                                                      'width'  => 240,
+                                                      'height' => 270,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'N902IL' => array(
+                                                      'width'  => 240,
+                                                      'height' => 270,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'P702I' => array(
+                                                     'width'  => 240,
+                                                     'height' => 270,
+                                                     'depth'  => 262144,
+                                                     'color'  => 1
+                                                     ),
+                                    'N702ID' => array(
+                                                      'width'  => 240,
+                                                      'height' => 270,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'F702ID' => array(
+                                                      'width'  => 230,
+                                                      'height' => 240,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'SH702ID' => array(
+                                                       'width'  => 240,
+                                                       'height' => 240,
+                                                       'depth'  => 262144,
+                                                       'color'  => 1
+                                                       ),
+                                    'D702I' => array(
+                                                     'width'  => 230,
+                                                     'height' => 240,
+                                                     'depth'  => 262144,
+                                                     'color'  => 1
+                                                     ),
+                                    'SO702I' => array(
+                                                      'width'  => 240,
+                                                      'height' => 256,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'D702IBCL' => array(
+                                                        'width'  => 230,
+                                                        'height' => 240,
+                                                        'depth'  => 262144,
+                                                        'color'  => 1
+                                                        ),
+                                    'SA702I' => array(
+                                                      'width'  => 240,
+                                                      'height' => 252,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'SH702IS' => array(
+                                                       'width'  => 240,
+                                                       'height' => 240,
+                                                       'depth'  => 262144,
+                                                       'color'  => 1
+                                                       ),
+                                    'N702IS' => array(
+                                                      'width'  => 240,
+                                                      'height' => 270,
+                                                      'depth'  => 65536,
+                                                      'color'  => 1
+                                                      ),
+                                    'P702ID' => array(
+                                                      'width'  => 240,
+                                                      'height' => 270,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'D702IF' => array(
+                                                      'width'  => 230,
+                                                      'height' => 240,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'D851IWM' => array(
+                                                       'width'  => 230,
+                                                       'height' => 320,
+                                                       'depth'  => 262144,
+                                                       'color'  => 1
+                                                       ),
+                                    'F882IES' => array(
+                                                       'width'  => 240,
+                                                       'height' => 256,
+                                                       'depth'  => 65536,
+                                                       'color'  => 1
+                                                       ),
+                                    'N601I' => array(
+                                                     'width'  => 240,
+                                                     'height' => 270,
+                                                     'depth'  => 65536,
+                                                     'color'  => 1
+                                                     ),
+                                    'D800IDS' => array(
+                                                       'width'  => 230,
+                                                       'height' => 240,
+                                                       'depth'  => 262144,
+                                                       'color'  => 1
+                                                       ),
+                                    'P703IMYU' => array(
+                                                        'width'  => 240,
+                                                        'height' => 270,
+                                                        'depth'  => 262144,
+                                                        'color'  => 1
+                                                        ),
+
+                                    // i-mode compliant HTML 7.0
+                                    // (FOMA 903i etc.)
+                                    'SH903I' => array(
+                                                      'width'  => 240,
+                                                      'height' => 320,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'P903I' => array(
+                                                     'width'  => 240,
+                                                     'height' => 270,
+                                                     'depth'  => 262144,
+                                                     'color'  => 1
+                                                     ),
+                                    'N903I' => array(
+                                                     'width'  => 240,
+                                                     'height' => 270,
+                                                     'depth'  => 262144,
+                                                     'color'  => 1
+                                                     ),
+                                    'D903I' => array(
+                                                     'width'  => 230,
+                                                     'height' => 320,
+                                                     'depth'  => 262144,
+                                                     'color'  => 1
+                                                     ),
+                                    'F903I' => array(
+                                                     'width'  => 230,
+                                                     'height' => 240,
+                                                     'depth'  => 262144,
+                                                     'color'  => 1
+                                                     ),
+                                    'SO903I' => array(
+                                                      'width'  => 240,
+                                                      'height' => 368,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'D903ITV' => array(
+                                                      'width'  => 230,
+                                                      'height' => 320,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'F903IX' => array(
+                                                      'width'  => 230,
+                                                      'height' => 240,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'P903ITV' => array(
+                                                       'width'  => 240,
+                                                       'height' => 350,
+                                                       'depth'  => 262144,
+                                                       'color'  => 1
+                                                       ),
+                                    'N703ID' => array(
+                                                      'width'  => 240,
+                                                      'height' => 270,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'F703I' => array(
+                                                     'width'  => 230,
+                                                     'height' => 240,
+                                                     'depth'  => 262144,
+                                                     'color'  => 1
+                                                     ),
+                                    'P703I' => array(
+                                                     'width'  => 240,
+                                                     'height' => 270,
+                                                     'depth'  => 262144,
+                                                     'color'  => 1
+                                                     ),
+                                    'D703I' => array(
+                                                     'width'  => 230,
+                                                     'height' => 240,
+                                                     'depth'  => 262144,
+                                                     'color'  => 1
+                                                     ),
+                                    'SH703I' => array(
+                                                      'width'  => 240,
+                                                      'height' => 240,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'SH703I' => array(
+                                                      'width'  => 240,
+                                                      'height' => 240,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      ),
+                                    'N703IMYU' => array(
+                                                        'width'  => 240,
+                                                        'height' => 270,
+                                                        'depth'  => 262144,
+                                                        'color'  => 1
+                                                        ),
+                                    'SO703I' => array(
+                                                      'width'  => 240,
+                                                      'height' => 368,
+                                                      'depth'  => 262144,
+                                                      'color'  => 1
+                                                      )
+                                    );
+            }
+        }
+
+        return @$displayMap[ strtoupper($model) ];
+    }
+
+    /**#@-*/
+
+    /**#@+
+     * @access private
+     */
+
+    /**#@-*/
+
+    // }}}
+}
+
+// }}}
+
+/*
+ * Local Variables:
+ * mode: php
+ * coding: iso-8859-1
+ * tab-width: 4
+ * c-basic-offset: 4
+ * c-hanging-comment-ender-p: nil
+ * indent-tabs-mode: nil
+ * End:
+ */
+?>
Index: branches/dev/data/module/Net/UserAgent/Mobile/Display.php
===================================================================
--- branches/dev/data/module/Net/UserAgent/Mobile/Display.php	(revision 11460)
+++ branches/dev/data/module/Net/UserAgent/Mobile/Display.php	(revision 11460)
@@ -0,0 +1,268 @@
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4: */
+
+/**
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.0 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category   Networking
+ * @package    Net_UserAgent_Mobile
+ * @author     KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @copyright  2003-2007 KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
+ * @version    CVS: $Id: Display.php,v 1.10 2007/02/20 15:00:06 kuboa Exp $
+ * @since      File available since Release 0.1
+ */
+
+// {{{ Net_UserAgent_Mobile_Display
+
+/**
+ * Display information for Net_UserAgent_Mobile
+ *
+ * Net_UserAgent_Mobile_Display is a class for display information on
+ * {@link Net_UserAgent_Mobile}. Handy for image resizing or dispatching.
+ *
+ * SYNOPSIS:
+ * <code>
+ * require_once 'Net/UserAgent/Mobile.php';
+ *
+ * $agent = &Net_UserAgent_Mobile::factory();
+ * $display = $agent->getDisplay();
+ *
+ * $width  = $display->getWidth();
+ * $height = $display->getHeight();
+ * list($width, $height) = $display->getSize();
+ *
+ * if ($display->isColor()) {
+ *     $depth = $display->getDepth();
+ * }
+ *
+ * // only available in DoCoMo 505i
+ * $width_bytes  = $display->getWidthBytes();
+ * $height_bytes = $display->getHeightBytes();
+ * </code>
+ *
+ * USING EXTERNAL MAP FILE:
+ * If the environment variable DOCOMO_MAP exists, the specified XML data will
+ * be used for DoCoMo display information.
+ *
+ * ex) Please add the following code.
+ * $_SERVER['DOCOMO_MAP'] = '/path/to/DoCoMoMap.xml';
+ *
+ * @category   Networking
+ * @package    Net_UserAgent_Mobile
+ * @author     KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @copyright  2003-2007 KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
+ * @version    Release: 0.30.0
+ * @since      Class available since Release 0.1
+ */
+class Net_UserAgent_Mobile_Display
+{
+
+    // {{{ properties
+
+    /**#@+
+     * @access public
+     */
+
+    /**#@-*/
+
+    /**#@+
+     * @access private
+     */
+
+    /**
+     * width of the display
+     * @var integer
+     */
+    var $_width;
+
+    /**
+     * height of the display
+     * @var integer
+     */
+    var $_height;
+
+    /**
+     * depth of the display
+     * @var integer
+     */
+    var $_depth;
+
+    /**
+     * color capability of the display
+     * @var boolean
+     */
+    var $_color;
+
+    /**
+     * width (bytes) of the display
+     * @var integer
+     */
+    var $_widthBytes;
+
+    /**
+     * height (bytes) of the display
+     * @var integer
+     */
+    var $_heightBytes;
+
+    /**#@-*/
+
+    /**#@+
+     * @access public
+     */
+
+    // }}}
+    // {{{ constructor
+
+    /**
+     * constructor
+     *
+     * @param array $data display infomation
+     */
+    function Net_UserAgent_Mobile_Display($data)
+    {
+        $this->_width  = (integer)@$data['width'];
+        $this->_height = (integer)@$data['height'];
+        $this->_depth  = (integer)@$data['depth'];
+        $this->_color  = (boolean)@$data['color'];
+
+        $this->_widthBytes  = (integer)@$data['width_bytes'];
+        $this->_heightBytes = (integer)@$data['height_bytes'];
+    }
+
+    // }}}
+    // {{{ calcSize()
+
+    /**
+     * returns width * height of the display
+     *
+     * @return integer
+     */
+    function calcSize()
+    {
+        return $this->_width * $this->_height;
+    }
+
+    // }}}
+    // {{{ getSize()
+
+    /**
+     * returns width with height of the display
+     *
+     * @return array
+     */
+    function getSize()
+    {
+        return array($this->_width, $this->_height);
+    }
+
+    // }}}
+    // {{{ getWidth()
+
+    /**
+     * returns width of the display
+     *
+     * @return integer
+     */
+    function getWidth()
+    {
+        return $this->_width;
+    }
+
+    // }}}
+    // {{{ getHeight()
+
+    /**
+     * returns height of the display
+     *
+     * @return integer
+     */
+    function getHeight()
+    {
+        return $this->_height;
+    }
+
+    // }}}
+    // {{{ getDepth()
+
+    /**
+     * returns depth of the display
+     *
+     * @return integer
+     */
+    function getDepth()
+    {
+        return $this->_depth;
+    }
+
+    // }}}
+    // {{{ isColor()
+
+    /**
+     * returns true if the display has color capability
+     *
+     * @return boolean
+     */
+    function isColor()
+    {
+        return $this->_color;
+    }
+
+    // }}}
+    // {{{ getWidthBytes()
+
+    /**
+     * returns width (bytes) of the display
+     *
+     * @return integer
+     */
+    function getWidthBytes()
+    {
+        return $this->_widthBytes;
+    }
+
+    // }}}
+    // {{{ getHeightBytes()
+
+    /**
+     * returns height (bytes) of the display
+     *
+     * @return integer
+     */
+    function getHeightBytes()
+    {
+        return $this->_heightBytes;
+    }
+
+    /**#@-*/
+
+    /**#@+
+     * @access private
+     */
+
+    /**#@-*/
+
+    // }}}
+}
+
+// }}}
+
+/*
+ * Local Variables:
+ * mode: php
+ * coding: iso-8859-1
+ * tab-width: 4
+ * c-basic-offset: 4
+ * c-hanging-comment-ender-p: nil
+ * indent-tabs-mode: nil
+ * End:
+ */
+?>
Index: branches/dev/data/module/Net/UserAgent/Mobile/Common.php
===================================================================
--- branches/dev/data/module/Net/UserAgent/Mobile/Common.php	(revision 11460)
+++ branches/dev/data/module/Net/UserAgent/Mobile/Common.php	(revision 11460)
@@ -0,0 +1,447 @@
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4: */
+
+/**
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.0 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category   Networking
+ * @package    Net_UserAgent_Mobile
+ * @author     KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @copyright  2003-2007 KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
+ * @version    CVS: $Id: Common.php,v 1.15 2007/02/20 14:59:19 kuboa Exp $
+ * @since      File available since Release 0.1
+ */
+
+// {{{ Net_UserAgent_Mobile_Common
+
+/**
+ * Base class that is extended by each user agents implementor
+ *
+ * Net_UserAgent_Mobile_Common is a class for mobile user agent
+ * abstraction layer on Net_UserAgent_Mobile.
+ *
+ * @category   Networking
+ * @package    Net_UserAgent_Mobile
+ * @author     KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @copyright  2003-2007 KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
+ * @version    Release: 0.30.0
+ * @since      Class available since Release 0.1
+ */
+class Net_UserAgent_Mobile_Common extends PEAR
+{
+
+    // {{{ properties
+
+    /**#@+
+     * @access public
+     */
+
+    /**
+     * User-Agent name like 'DoCoMo'
+     * @var string
+     */
+    var $name = '';
+
+    /**
+     * User-Agent version number like '1.0'
+     * @var string
+     */
+    var $version = '';
+
+    /**#@-*/
+
+    /**#@+
+     * @access private
+     */
+
+    /**
+     * {@link Net_UserAgent_Mobile_Display} object
+     * @var object {@link Net_UserAgent_Mobile_Display}
+     */
+    var $_display;
+
+    /**
+     * Net_UserAgent_Mobile_Request_XXX object
+     * @var object {@link Net_UserAgent_Mobile_Request_Env}
+     */
+    var $_request;
+
+    /**
+     * {@link Net_UserAgent_Mobile_Error} object for error handling in the
+     *     constructor
+     * @var object
+     **/
+    var $_error = null;
+
+    /**#@-*/
+
+    /**#@+
+     * @access public
+     */
+
+    // }}}
+    // {{{ constructor
+
+    /**
+     * constructor
+     *
+     * @param object $request a {@link Net_UserAgent_Mobile_Request_Env}
+     *     object
+     */
+    function Net_UserAgent_Mobile_Common($request)
+    {
+        parent::PEAR('Net_UserAgent_Mobile_Error');
+        $this->_request = $request;
+        if (Net_UserAgent_Mobile::isError($result = $this->parse())) {
+            $this->isError($result);
+        }
+    }
+
+    // }}}
+    // {{{ isError
+
+    /**
+     * Returns/set an error when the instance couldn't initialize properly
+     *
+     * @param object {@link Net_UserAgent_Mobile_Error} object when setting
+     *     an error
+     * @return object {@link Net_UserAgent_Mobile_Error} object
+     */
+    function &isError($error = null)
+    {
+        if ($error !== null) {
+            $this->_error = &$error;
+        }
+
+        return $this->_error;
+    }
+
+    // }}}
+    // {{{ raiseError()
+
+    /**
+     * This method is used to communicate an error and invoke error
+     * callbacks etc. Basically a wrapper for PEAR::raiseError without
+     * the message string.
+     *
+     * @param mixed $code integer error code, or a PEAR error object (all
+     *     other parameters are ignored if this parameter is an object
+     * @param int $mode error mode, see PEAR_Error docs
+     * @param mixed $options If error mode is PEAR_ERROR_TRIGGER, this is the
+     *     error level (E_USER_NOTICE etc). If error mode is
+     *     PEAR_ERROR_CALLBACK, this is the callback function, either as a
+     *     function name, or as an array of an object and method name. For
+     *     other error modes this parameter is ignored.
+     * @param string $userinfo Extra debug information. Defaults to the last
+     *     query and native error code.
+     * @return object a PEAR error object
+     * @see PEAR_Error
+     */
+    function &raiseError($code = NET_USERAGENT_MOBILE_ERROR, $mode = null,
+                         $options = null, $userinfo = null
+                         )
+    {
+
+        // The error is yet a Net_UserAgent_Mobile error object
+        if (is_object($code)) {
+            $error = &PEAR::raiseError($code, null, null, null, null, null,
+                                       true
+                                       );
+            return $error;
+        }
+
+        $error = &PEAR::raiseError(null, $code, $mode, $options, $userinfo,
+                                   'Net_UserAgent_Mobile_Error', true
+                                   );
+        return $error;
+    }
+
+    // }}}
+    // {{{ getUserAgent()
+
+    /**
+     * returns User-Agent string
+     *
+     * @return string
+     */
+    function getUserAgent()
+    {
+        return $this->getHeader('User-Agent');
+    }
+
+    // }}}
+    // {{{ getHeader()
+
+    /**
+     * returns a specified HTTP header
+     *
+     * @param string $header
+     * @return string
+     */
+    function getHeader($header)
+    {
+        return $this->_request->get($header);
+    }
+
+    // }}}
+    // {{{ getName()
+
+    /**
+     * returns User-Agent name like 'DoCoMo'
+     *
+     * @return string
+     */
+    function getName()
+    {
+        return $this->name;
+    }
+
+    // }}}
+    // {{{ getDisplay()
+
+    /**
+     * returns {@link Net_UserAgent_Mobile_Disply} object
+     *
+     * @return object a {@link Net_UserAgent_Mobile_Display} object, or a
+     *     PEAR error object on error
+     * @see Net_UserAgent_Mobile_Display
+     */
+    function getDisplay()
+    {
+        if (!is_object($this->_display)) {
+            $this->_display = $this->makeDisplay();
+        }
+        return $this->_display;
+    }
+
+    // }}}
+    // {{{ getVersion()
+
+    /**
+     * returns User-Agent version number like '1.0'
+     *
+     * @return string
+     */
+    function getVersion()
+    {
+        return $this->version;
+    }
+
+    // }}}
+    // {{{ noMatch()
+
+    /**
+     * generates a warning message for new variants
+     *
+     * @return object a PEAR error object
+     */
+    function noMatch()
+    {
+        return $this->raiseError(NET_USERAGENT_MOBILE_ERROR_NOMATCH, null,
+                                 null, $this->getUserAgent() .
+                                 ': might be new variants. Please contact the author of Net_UserAgent_Mobile!'
+                                 );
+    }
+
+    // }}}
+    // {{{ parse()
+
+    /**
+     * parse HTTP_USER_AGENT string (should be implemented in subclasses)
+     *
+     * @abstract
+     */
+    function parse()
+    {
+        die();
+    }
+
+    // }}}
+    // {{{ makeDisplay()
+
+    /**
+     * create a new Net_UserAgent_Mobile_Display class instance (should be
+     * implemented in subclasses)
+     *
+     * @abstract
+     */
+    function makeDisplay()
+    {
+        die();
+    }
+
+    // }}}
+    // {{{ isDoCoMo()
+
+    /**
+     * returns true if the agent is DoCoMo
+     *
+     * @return boolean
+     */
+    function isDoCoMo()
+    {
+        return false;
+    }
+
+    // }}}
+    // {{{ isJPhone()
+
+    /**
+     * returns true if the agent is J-PHONE
+     *
+     * @return boolean
+     */
+    function isJPhone()
+    {
+        return false;
+    }
+
+    // }}}
+    // {{{ isVodafone()
+
+    /**
+     * returns true if the agent is Vodafone
+     *
+     * @return boolean
+     */
+    function isVodafone()
+    {
+        return false;
+    }
+
+    // }}}
+    // {{{ isEZweb()
+
+    /**
+     * returns true if the agent is EZweb
+     *
+     * @return boolean
+     */
+    function isEZweb()
+    {
+        return false;
+    }
+
+    // }}}
+    // {{{ isAirHPhone()
+
+    /**
+     * returns true if the agent is AirH"PHONE
+     *
+     * @return boolean
+     */
+    function isAirHPhone()
+    {
+        return false;
+    }
+
+    // }}}
+    // {{{ isNonMobile()
+
+    /**
+     * returns true if the agent is NonMobile
+     *
+     * @return boolean
+     */
+    function isNonMobile()
+    {
+        return false;
+    }
+
+    // }}}
+    // {{{ isTUKa()
+
+    /**
+     * returns true if the agent is TU-Ka
+     *
+     * @return boolean
+     */
+    function isTUKa()
+    {
+        return false;
+    }
+
+    // }}}
+    // {{{ isWAP1()
+
+    /**
+     * returns true if the agent can speak WAP1 protocol
+     *
+     * @return boolean
+     */
+    function isWAP1()
+    {
+        return $this->isEZweb() && !$this->isWAP2();
+    }
+
+    // }}}
+    // {{{ isWAP2()
+
+    /**
+     * returns true if the agent can speak WAP2 protocol
+     *
+     * @return boolean
+     */
+    function isWAP2()
+    {
+        return $this->isEZweb() && $this->isXHTMLCompliant();
+    }
+
+    // }}}
+    // {{{ getCarrierShortName()
+
+    /**
+     * returns the short name of the carrier
+     *
+     * @abstract
+     */
+    function getCarrierShortName()
+    {
+        die();
+    }
+
+    // }}}
+    // {{{ getCarrierLongName()
+
+    /**
+     * returns the long name of the carrier
+     *
+     * @abstract
+     */
+    function getCarrierLongName()
+    {
+        die();
+    }
+
+    /**#@-*/
+
+    /**#@+
+     * @access private
+     */
+
+    /**#@-*/
+
+    // }}}
+}
+
+// }}}
+
+/*
+ * Local Variables:
+ * mode: php
+ * coding: iso-8859-1
+ * tab-width: 4
+ * c-basic-offset: 4
+ * c-hanging-comment-ender-p: nil
+ * indent-tabs-mode: nil
+ * End:
+ */
+?>
Index: branches/dev/data/module/Net/UserAgent/Mobile/Request.php
===================================================================
--- branches/dev/data/module/Net/UserAgent/Mobile/Request.php	(revision 11460)
+++ branches/dev/data/module/Net/UserAgent/Mobile/Request.php	(revision 11460)
@@ -0,0 +1,185 @@
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4: */
+
+/**
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.0 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category   Networking
+ * @package    Net_UserAgent_Mobile
+ * @author     KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @copyright  2003-2007 KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
+ * @version    CVS: $Id: Request.php,v 1.6 2007/02/20 15:18:26 kuboa Exp $
+ * @since      File available since Release 0.1
+ */
+
+// {{{ Net_UserAgent_Mobile_Request
+
+/**
+ * Utility class that constructs appropriate class instance for miscellaneous
+ * HTTP header containers
+ *
+ * @category   Networking
+ * @package    Net_UserAgent_Mobile
+ * @author     KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @copyright  2003-2007 KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
+ * @version    Release: 0.30.0
+ * @since      Class available since Release 0.1
+ */
+class Net_UserAgent_Mobile_Request
+{
+
+    // {{{ properties
+
+    /**#@+
+     * @access public
+     */
+
+    /**#@-*/
+
+    /**#@+
+     * @access private
+     */
+
+    /**#@-*/
+
+    /**#@+
+     * @access public
+     * @static
+     */
+
+    // }}}
+    // {{{ factory()
+
+    /**
+     * create a new Net_UserAgent_Mobile_Request_XXX instance
+     *
+     * parses HTTP headers and constructs appropriate class instance.
+     * If no argument is supplied, $_SERVER is used.
+     *
+     * @param mixed $stuff User-Agent string or object that works with
+     *     HTTP_Request (not implemented)
+     * @return mixed a newly created Net_UserAgent_Request object
+     * @global array $_SERVER
+     */
+    function &factory($stuff = null)
+    {
+        if ($stuff === null) {
+            $request = &new Net_UserAgent_Mobile_Request_Env($_SERVER);
+        } else {
+            $request =
+                &new Net_UserAgent_Mobile_Request_Env(array(
+                                                            'HTTP_USER_AGENT' => $stuff)
+                                                      );
+        }
+        return $request;
+    }
+
+    /**#@-*/
+
+    /**#@+
+     * @access private
+     */
+
+    /**#@-*/
+
+    // }}}
+}
+
+// }}}
+// {{{ Net_UserAgent_Mobile_Request_Env
+
+/**
+ * provides easy way to access environment variables
+ *
+ * @category   Networking
+ * @package    Net_UserAgent_Mobile
+ * @author     KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @copyright  2003-2007 KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
+ * @version    Release: 0.30.0
+ * @since      Class available since Release 0.1
+ */
+class Net_UserAgent_Mobile_Request_Env
+{
+
+    // {{{ properties
+
+    /**#@+
+     * @access public
+     */
+
+    /**#@-*/
+
+    /**#@+
+     * @access private
+     */
+
+    /**
+     * array of environment variables defined by Web Server
+     * @var array
+     */
+    var $_env;
+
+    /**#@-*/
+
+    /**#@+
+     * @access public
+     */
+
+    // }}}
+    // {{{ constructor
+
+    /**
+     * constructor
+     *
+     * @param array $env
+     */
+    function Net_UserAgent_Mobile_Request_Env($env)
+    {
+        $this->_env = $env;
+    }
+
+    /**
+     * returns a specified HTTP Header
+     *
+     * @param string $header
+     * @return string
+     */
+    function get($header)
+    {
+        $header = strtr($header, '-', '_');
+        return @$this->_env[ 'HTTP_' . strtoupper($header) ];
+    }
+
+    /**#@-*/
+
+    /**#@+
+     * @access private
+     */
+
+    /**#@-*/
+
+    // }}}
+}
+
+// }}}
+
+/*
+ * Local Variables:
+ * mode: php
+ * coding: iso-8859-1
+ * tab-width: 4
+ * c-basic-offset: 4
+ * c-hanging-comment-ender-p: nil
+ * indent-tabs-mode: nil
+ * End:
+ */
+?>
Index: branches/dev/data/module/Net/UserAgent/Mobile/EZweb.php
===================================================================
--- branches/dev/data/module/Net/UserAgent/Mobile/EZweb.php	(revision 11460)
+++ branches/dev/data/module/Net/UserAgent/Mobile/EZweb.php	(revision 11460)
@@ -0,0 +1,347 @@
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4: */
+
+/**
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.0 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category   Networking
+ * @package    Net_UserAgent_Mobile
+ * @author     KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @copyright  2003-2007 KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
+ * @version    CVS: $Id: EZweb.php,v 1.17 2007/02/20 15:19:07 kuboa Exp $
+ * @link       http://www.au.kddi.com/ezfactory/tec/spec/4_4.html
+ * @link       http://www.au.kddi.com/ezfactory/tec/spec/new_win/ezkishu.html
+ * @see        Net_UserAgent_Mobile_Common
+ * @since      File available since Release 0.1.0
+ */
+
+require_once(dirname(__FILE__) . '/Common.php');
+require_once(dirname(__FILE__) . '/Display.php');
+
+// {{{ Net_UserAgent_Mobile_EZweb
+
+/**
+ * EZweb implementation
+ *
+ * Net_UserAgent_Mobile_EZweb is a subclass of
+ * {@link Net_UserAgent_Mobile_Common}, which implements EZweb (WAP1.0/2.0)
+ * user agents.
+ *
+ * SYNOPSIS:
+ * <code>
+ * require_once 'Net/UserAgent/Mobile.php';
+ *
+ * $_SERVER['HTTP_USER_AGENT'] = 'UP.Browser/3.01-HI02 UP.Link/3.2.1.2';
+ * $agent = &Net_UserAgent_Mobile::factory();
+ *
+ * printf("Name: %s\n", $agent->getName()); // 'UP.Browser'
+ * printf("Version: %s\n", $agent->getVersion()); // 3.01
+ * printf("DeviceID: %s\n", $agent->getDeviceID()); // 'HI02'
+ * printf("Server: %s\n", $agent->getServer()); // 'UP.Link/3.2.1.2'
+ *
+ * e.g.) 'UP.Browser/3.01-HI02 UP.Link/3.2.1.2 (Google WAP Proxy/1.0)'
+ * printf("Comment: %s\n", $agent->getComment()); // 'Google WAP Proxy/1.0'
+ *
+ * e.g.) 'KDDI-TS21 UP.Browser/6.0.2.276 (GUI) MMP/1.1'
+ * if ($agent->isXHTMLCompliant()) {
+ *     print "XHTML compliant!\n"; // true
+ * }
+ * </code>
+ *
+ * @category   Networking
+ * @package    Net_UserAgent_Mobile
+ * @author     KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @copyright  2003-2007 KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
+ * @version    Release: 0.30.0
+ * @link       http://www.au.kddi.com/ezfactory/tec/spec/4_4.html
+ * @link       http://www.au.kddi.com/ezfactory/tec/spec/new_win/ezkishu.html
+ * @see        Net_UserAgent_Mobile_Common
+ * @since      Class available since Release 0.1.0
+ */
+class Net_UserAgent_Mobile_EZweb extends Net_UserAgent_Mobile_Common
+{
+
+    // {{{ properties
+
+    /**#@+
+     * @access public
+     */
+
+    /**#@-*/
+
+    /**#@+
+     * @access private
+     */
+
+    /**
+     * name of the model like 'P502i'
+     * @var string
+     */
+    var $_model = '';
+
+    /**
+     * device ID like 'TS21'
+     * @var string
+     */
+    var $_deviceID = '';
+
+    /**
+     * server string like 'UP.Link/3.2.1.2'
+     * @var string
+     */
+    var $_serverName = '';
+
+    /**
+     * comment like 'Google WAP Proxy/1.0'
+     * @var string
+     */
+    var $_comment = null;
+
+    /**
+     * whether it's XHTML compliant or not
+     * @var boolean
+     */
+    var $_xhtmlCompliant = false;
+
+    /**#@-*/
+
+    /**#@+
+     * @access public
+     */
+
+    // }}}
+    // {{{ isEZweb()
+
+    /**
+     * returns true
+     *
+     * @return boolean
+     */
+    function isEZweb()
+    {
+        return true;
+    }
+
+    // }}}
+    // {{{ isTUKa()
+
+    /**
+     * returns true if the agent is TU-Ka
+     *
+     * @return boolean
+     */
+    function isTUKa()
+    {
+        $tuka = substr($this->_deviceID, 2, 1);
+        if ($this->isWAP2()) {
+            if ($tuka == 'U') {
+                return true;
+            }
+        } else {
+            if ($tuka == 'T') {
+                return true;
+            }
+        }
+        
+        return false;
+    }
+
+    // }}}
+    // {{{ parse()
+
+    /**
+     * parse HTTP_USER_AGENT string
+     */
+    function parse()
+    {
+        $agent = $this->getUserAgent();
+
+        if (preg_match('/^KDDI-(.*)/', $agent, $matches)) {
+
+            // KDDI-TS21 UP.Browser/6.0.2.276 (GUI) MMP/1.1
+            $this->_xhtmlCompliant = true;
+            list($this->_deviceID, $browser, $opt, $this->_serverName) =
+                explode(' ', $matches[1], 4);
+            list($this->name, $version) = explode('/', $browser);
+            $this->version = "$version $opt";
+        } else {
+
+            // UP.Browser/3.01-HI01 UP.Link/3.4.5.2
+            @list($browser, $this->_serverName, $comment) =
+                explode(' ', $agent, 3);
+            list($this->name, $software) = explode('/', $browser);
+            list($this->version, $this->_deviceID) =
+                explode('-', $software);
+            if ($comment) {
+                $this->_comment =
+                    preg_replace('/^\((.*)\)$/', '$1', $comment);
+            }
+        }
+
+        $this->_model = $this->_deviceID;
+    }
+
+    // }}}
+    // {{{ makeDisplay()
+
+    /**
+     * create a new {@link Net_UserAgent_Mobile_Display} class instance
+     *
+     * @return object a newly created {@link Net_UserAgent_Mobile_Display}
+     *     object
+     * @see Net_UserAgent_Mobile_Display
+     */
+    function makeDisplay()
+    {
+        @list($width, $height) =
+            explode(',', $this->getHeader('x-up-devcap-screenpixels'));
+        $screenDepth =
+            explode(',', $this->getHeader('x-up-devcap-screendepth'));
+        $depth = $screenDepth[0] ? pow(2, (integer)$screenDepth[0]) : 0;
+        $color =
+            $this->getHeader('x-up-devcap-iscolor') === '1' ? true : false;
+        return new Net_UserAgent_Mobile_Display(array(
+                                                      'width'  => $width,
+                                                      'height' => $height,
+                                                      'color'  => $color,
+                                                      'depth'  => $depth
+                                                      )
+                                                );
+    }
+
+    // }}}
+    // {{{ getModel()
+
+    /**
+     * returns name of the model (device ID) like 'TS21'
+     *
+     * @return string
+     */
+    function getModel()
+    {
+        return $this->_model;
+    }
+
+    // }}}
+    // {{{ getDeviceID()
+
+    /**
+     * returns device ID like 'TS21'
+     *
+     * @return string
+     */
+    function getDeviceID()
+    {
+        return $this->_deviceID;
+    }
+
+    // }}}
+    // {{{ getServer()
+
+    /**
+     * returns server string like 'UP.Link/3.2.1.2'
+     *
+     * @return string
+     */
+    function getServer()
+    {
+        return $this->_serverName;
+    }
+
+    // }}}
+    // {{{ getComment()
+
+    /**
+     * returns comment like 'Google WAP Proxy/1.0'. returns null if nothinng.
+     *
+     * @return boolean
+     */
+    function getComment()
+    {
+        return $this->_comment;
+    }
+
+    // }}}
+    // {{{ isXHTMLCompliant()
+
+    /**
+     * returns whether it's XHTML compliant or not
+     *
+     * @return boolean
+     */
+    function isXHTMLCompliant()
+    {
+        return $this->_xhtmlCompliant;
+    }
+
+    // }}}
+    // {{{ getCarrierShortName()
+
+    /**
+     * returns the short name of the carrier
+     *
+     * @return string
+     */
+    function getCarrierShortName()
+    {
+        return 'E';
+    }
+
+    // }}}
+    // {{{ getCarrierLongName()
+
+    /**
+     * returns the long name of the carrier
+     *
+     * @return string
+     */
+    function getCarrierLongName()
+    {
+        return 'EZweb';
+    }
+
+    // }}}
+    // {{{ isWIN()
+
+    /**
+     * Returns whether the agent is CDMA 1X WIN or not.
+     *
+     * @return boolean
+     */
+    function isWIN()
+    {
+        return substr($this->_deviceID, 2, 1) == 3 ? true : false;
+    }
+
+    /**#@-*/
+
+    /**#@+
+     * @access private
+     */
+
+    /**#@-*/
+
+    // }}}
+}
+
+// }}}
+
+/*
+ * Local Variables:
+ * mode: php
+ * coding: iso-8859-1
+ * tab-width: 4
+ * c-basic-offset: 4
+ * c-hanging-comment-ender-p: nil
+ * indent-tabs-mode: nil
+ * End:
+ */
+?>
Index: branches/dev/data/module/Net/UserAgent/Mobile/AirHPhone.php
===================================================================
--- branches/dev/data/module/Net/UserAgent/Mobile/AirHPhone.php	(revision 11460)
+++ branches/dev/data/module/Net/UserAgent/Mobile/AirHPhone.php	(revision 11460)
@@ -0,0 +1,285 @@
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4: */
+
+/**
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.0 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category   Networking
+ * @package    Net_UserAgent_Mobile
+ * @author     KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @copyright  2003-2007 KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
+ * @version    CVS: $Id: AirHPhone.php,v 1.12 2007/02/20 14:39:45 kuboa Exp $
+ * @link       http://www.willcom-inc.com/ja/service/contents_service/club_air_edge/for_phone/homepage/index.html
+ * @see        Net_UserAgent_Mobile_Common
+ * @since      File available since Release 0.5
+ */
+
+require_once(dirname(__FILE__) . '/Common.php');
+require_once(dirname(__FILE__) . '/Display.php');
+
+// {{{ Net_UserAgent_Mobile_AirHPhone
+
+/**
+ * AirH"PHONE implementation
+ *
+ * Net_UserAgent_Mobile_AirHPhone is a subclass of
+ * {@link Net_UserAgent_Mobile_Common}, which implements DDI POCKET's
+ * AirH"PHONE user agents.
+ *
+ * SYNOPSIS:
+ * <code>
+ * require_once 'Net/UserAgent/Mobile.php';
+ *
+ * $_SERVER['HTTP_USER_AGENT'] =
+ *     'Mozilla/3.0(DDIPOCKET;JRC/AH-J3001V,AH-J3002V/1.0/0100/c50)CNF/2.0';
+ * $agent = &Net_UserAgent_Mobile::factory();
+ *
+ * printf("Name: %s\n", $agent->getName()); // 'DDIPOCKET'
+ * printf("Verdor: %s\n", $agent->getVendor()); // 'JRC'
+ * printf("Model: %s\n", $agent->getModel()); // 'AH-J3001V,AH-J3002V'
+ * printf("Model Version: %s\n", $agent->getModelVersion()); // '1.0'
+ * printf("Browser Version: %s\n", $agent->getBrowserVersion()); // '0100'
+ * printf("Cache Size: %s\n", $agent->getCacheSize()); // 50
+ * </code>
+ *
+ * @category   Networking
+ * @package    Net_UserAgent_Mobile
+ * @author     KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @copyright  2003-2007 KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
+ * @version    Release: 0.30.0
+ * @link       http://www.willcom-inc.com/ja/service/contents_service/club_air_edge/for_phone/homepage/index.html
+ * @see        Net_UserAgent_Mobile_Common
+ * @since      Class available since Release 0.5
+ */
+class Net_UserAgent_Mobile_AirHPhone extends Net_UserAgent_Mobile_Common
+{
+
+    // {{{ properties
+
+    /**#@+
+     * @access public
+     */
+
+    /**
+     * User-Agent name
+     * @var string
+     */
+    var $name = 'WILLCOM';
+
+    /**#@-*/
+
+    /**#@+
+     * @access private
+     */
+
+    /**
+     * vendor name
+     * @var string
+     */
+    var $_vendor;
+
+    /**
+     * model name
+     * @var string
+     */
+    var $_model;
+
+    /**
+     * version number of the model
+     * @var string
+     */
+    var $_modelVersion;
+
+    /**
+     * version number of the browser
+     * @var string
+     */
+    var $_browserVersion;
+
+    /**
+     * cache size as killobytes unit
+     * @var integer
+     */
+    var $_cacheSize;
+
+    /**#@-*/
+
+    /**#@+
+     * @access public
+     */
+
+    // }}}
+    // {{{ isAirHPhone()
+
+    /**
+     * returns true
+     *
+     * @return boolean
+     */
+    function isAirHPhone()
+    {
+        return true;
+    }
+
+    // }}}
+    // {{{ parse()
+
+    /**
+     * parse HTTP_USER_AGENT string
+     */
+    function parse()
+    {
+        $agent = $this->getUserAgent();
+        if (preg_match('!^Mozilla/3\.0\((?:DDIPOCKET|WILLCOM);(.*)\)!',
+                       $agent, $matches)
+            ) {
+            list($this->_vendor, $this->_model, $this->_modelVersion,
+                 $this->_browserVersion, $cache) =
+                explode('/', $matches[1]);
+            if (!preg_match('/^[Cc](\d+)/', $cache, $matches)) {
+                return $this->noMatch();
+            }
+            $this->_cacheSize = (integer)$matches[1];
+        } else {
+            $this->noMatch();
+        }
+    }
+
+    // }}}
+    // {{{ makeDisplay()
+
+    /**
+     * create a new {@link Net_UserAgent_Mobile_Display} class instance
+     *
+     * @return object a newly created {@link Net_UserAgent_Mobile_Display}
+     *     object
+     * @see Net_UserAgent_Mobile_Display
+     */
+    function makeDisplay()
+    {
+        return new Net_UserAgent_Mobile_Display(null);
+    }
+
+    // }}}
+    // {{{ getVendor()
+
+    /**
+     * returns vendor name
+     *
+     * @return string
+     */
+    function getVendor()
+    {
+        return $this->_vendor;
+    }
+
+    // }}}
+    // {{{ getModel()
+
+    /**
+     * returns model name. Note that model names are separated with ','.
+     *
+     * @return string
+     */
+    function getModel()
+    {
+        return $this->_model;
+    }
+
+    // }}}
+    // {{{ getModelVersion()
+
+    /**
+     * returns version number of the model
+     *
+     * @return string
+     */
+    function getModelVersion()
+    {
+        return $this->_modelVersion;
+    }
+
+    // }}}
+    // {{{ getBrowserVersion()
+
+    /**
+     * returns version number of the browser
+     *
+     * @return string
+     */
+    function getBrowserVersion()
+    {
+        return $this->_browserVersion;
+    }
+
+    // }}}
+    // {{{ getCacheSize()
+
+    /**
+     * returns cache size as killobytes unit
+     *
+     * @return integer
+     */
+    function getCacheSize()
+    {
+        return $this->_cacheSize;
+    }
+
+    // }}}
+    // {{{ getCarrierShortName()
+
+    /**
+     * returns the short name of the carrier
+     *
+     * @return string
+     */
+    function getCarrierShortName()
+    {
+        return 'H';
+    }
+
+    // }}}
+    // {{{ getCarrierLongName()
+
+    /**
+     * returns the long name of the carrier
+     *
+     * @return string
+     */
+    function getCarrierLongName()
+    {
+        return 'AirH';
+    }
+
+    /**#@-*/
+
+    /**#@+
+     * @access private
+     */
+
+    /**#@-*/
+
+    // }}}
+}
+
+// }}}
+
+/*
+ * Local Variables:
+ * mode: php
+ * coding: iso-8859-1
+ * tab-width: 4
+ * c-basic-offset: 4
+ * c-hanging-comment-ender-p: nil
+ * indent-tabs-mode: nil
+ * End:
+ */
+?>
Index: branches/dev/data/module/Net/UserAgent/Mobile/DoCoMo.php
===================================================================
--- branches/dev/data/module/Net/UserAgent/Mobile/DoCoMo.php	(revision 11460)
+++ branches/dev/data/module/Net/UserAgent/Mobile/DoCoMo.php	(revision 11460)
@@ -0,0 +1,587 @@
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4: */
+
+/**
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.0 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category   Networking
+ * @package    Net_UserAgent_Mobile
+ * @author     KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @copyright  2003-2007 KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
+ * @version    CVS: $Id: DoCoMo.php,v 1.35 2007/02/20 18:41:04 kuboa Exp $
+ * @link       http://www.nttdocomo.co.jp/service/imode/make/content/spec/useragent/index.html
+ * @see        Net_UserAgent_Mobile_Common
+ * @since      File available since Release 0.1
+ */
+
+require_once dirname(__FILE__) . '/Common.php';
+require_once dirname(__FILE__) . '/Display.php';
+require_once dirname(__FILE__) . '/DoCoMoDisplayMap.php';
+
+// {{{ Net_UserAgent_Mobile_DoCoMo
+
+/**
+ * NTT DoCoMo implementation
+ *
+ * Net_UserAgent_Mobile_DoCoMo is a subclass of
+ * {@link Net_UserAgent_Mobile_Common}, which implements NTT docomo i-mode
+ * user agents.
+ *
+ * SYNOPSIS:
+ * <code>
+ * require_once 'Net/UserAgent/Mobile.php';
+ *
+ * $_SERVER['HTTP_USER_AGENT'] = 'DoCoMo/1.0/P502i/c10';
+ * $agent = &Net_UserAgent_Mobile::factory();
+ *
+ * printf("Name: %s\n", $agent->getName()); // 'DoCoMo'
+ * printf("Version: %s\n", $agent->getVersion()); // 1.0
+ * printf("HTML version: %s\n", $agent->getHTMLVersion()); // 2.0
+ * printf("Model: %s\n", $agent->getModel()); // 'P502i'
+ * printf("Cache: %dk\n", $agent->getCacheSize()); // 10
+ * if ($agent->isFOMA()) {
+ *     print "FOMA\n";             // false
+ * }
+ * printf("Vendor: %s\n", $agent->getVendor()); // 'P'
+ * printf("Series: %s\n", $agent->getSeries()); // '502i'
+ *
+ * // only available with <form utn>
+ * // e.g.) 'DoCoMo/1.0/P503i/c10/serNMABH200331';
+ * printf("Serial: %s\n", $agent->getSerialNumber()); // 'NMABH200331'
+ *
+ * // e.g.) 'DoCoMo/2.0 N2001(c10;ser0123456789abcde;icc01234567890123456789)';
+ * printf("Serial: %s\n", $agent->getSerialNumber()); // '0123456789abcde'
+ * printf("Card ID: %s\n", $agent->getCardID()); // '01234567890123456789'
+ *
+ * // e.g.) 'DoCoMo/1.0/P502i (Google CHTML Proxy/1.0)'
+ * printf("Comment: %s\n", $agent->getComment()); // 'Google CHTML Proxy/1.0'
+ *
+ * // e.g.) 'DoCoMo/1.0/D505i/c20/TB/W20H10'
+ * printf("Status: %s\n", $agent->getStatus()); // 'TB'
+ *
+ * // only available in eggy/M-stage
+ * // e.g.) 'DoCoMo/1.0/eggy/c300/s32/kPHS-K'
+ * printf("Bandwidth: %dkbps\n", $agent->getBandwidth()); // 32
+ * </code>
+ *
+ * @category   Networking
+ * @package    Net_UserAgent_Mobile
+ * @author     KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @copyright  2003-2007 KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
+ * @version    Release: 0.30.0
+ * @link       http://www.nttdocomo.co.jp/service/imode/make/content/spec/useragent/index.html
+ * @see        Net_UserAgent_Mobile_Common
+ * @since      Class available since Release 0.1
+ */
+class Net_UserAgent_Mobile_DoCoMo extends Net_UserAgent_Mobile_Common
+{
+
+    // {{{ properties
+
+    /**#@+
+     * @access public
+     */
+
+    /**#@-*/
+
+    /**#@+
+     * @access private
+     */
+
+    /**
+     * name of the model like 'P502i'
+     * @var string
+     */
+    var $_model = '';
+
+    /**
+     * status of the cache (TC, TB, TD, TJ)
+     * @var string
+     */
+    var $_status = '';
+
+    /**
+     * bandwidth like 32 as kilobytes unit
+     * @var integer
+     */
+    var $_bandwidth = null;
+
+    /**
+     * hardware unique serial number
+     * @var string
+     */
+    var $_serialNumber = null;
+
+    /**
+     * whether it's FOMA or not
+     * @var boolean
+     */
+    var $_isFOMA = false;
+
+    /**
+     * FOMA Card ID (20 digit alphanumeric)
+     * @var string
+     */
+    var $_cardID = null;
+
+    /**
+     * comment on user agent string like 'Google Proxy'
+     * @var string
+     */
+    var $_comment = null;
+
+    /**
+     * cache size as killobytes unit
+     * @var integer
+     */
+    var $_cacheSize;
+
+    /**
+     * width and height of the display
+     * @var string
+     */
+    var $_displayBytes = '';
+
+    /**#@-*/
+
+    /**#@+
+     * @access public
+     */
+
+    // }}}
+    // {{{ isDoCoMo()
+
+    /**
+     * returns true
+     *
+     * @return boolean
+     */
+    function isDoCoMo()
+    {
+        return true;
+    }
+
+    // }}}
+    // {{{ parse()
+
+    /**
+     * parse HTTP_USER_AGENT string
+     *
+     * @return mixed void, or a PEAR error object on error
+     */
+    function parse()
+    {
+        @list($main, $foma_or_comment) =
+            explode(' ', $this->getUserAgent(), 2);
+
+        if ($foma_or_comment
+            && preg_match('/^\((.*)\)$/', $foma_or_comment, $matches)
+            ) {
+
+            // DoCoMo/1.0/P209is (Google CHTML Proxy/1.0)
+            $this->_comment = $matches[1];
+            $result = $this->_parseMain($main);
+        } elseif ($foma_or_comment) {
+
+            // DoCoMo/2.0 N2001(c10;ser0123456789abcde;icc01234567890123456789)
+            $this->_isFOMA = true;
+            list($this->name, $this->version) = explode('/', $main);
+            $result = $this->_parseFOMA($foma_or_comment);
+        } else {
+
+            // DoCoMo/1.0/R692i/c10
+            $result = $this->_parseMain($main);
+        }
+
+        if (Net_UserAgent_Mobile::isError($result)) {
+            return $result;
+        }
+    }
+
+    // }}}
+    // {{{ makeDisplay()
+
+    /**
+     * create a new {@link Net_UserAgent_Mobile_Display} class instance
+     *
+     * @return object a newly created {@link Net_UserAgent_Mobile_Display}
+     *     object
+     * @see Net_UserAgent_Mobile_Display
+     * @see Net_UserAgent_Mobile_DoCoMoDisplayMap::get()
+     */
+    function makeDisplay()
+    {
+        $display = Net_UserAgent_Mobile_DoCoMoDisplayMap::get($this->_model);
+        if ($this->_displayBytes !== '') {
+            list($widthBytes, $heightBytes) =
+                explode('*', $this->_displayBytes);
+            $display['width_bytes']  = $widthBytes;
+            $display['height_bytes'] = $heightBytes;
+        }
+        return new Net_UserAgent_Mobile_Display($display);
+    }
+
+    // }}}
+    // {{{ getHTMLVersion()
+
+    /**
+     * returns supported HTML version like '3.0'. retuns null if unknown.
+     *
+     * @return string
+     */
+    function getHTMLVersion()
+    {
+        static $htmlVersionMap;
+        if (!isset($htmlVersionMap)) {
+            $htmlVersionMap = array(
+                                    '[DFNP]501i' => '1.0',
+                                    '502i|821i|209i|651|691i|(F|N|P|KO)210i|^F671i$' => '2.0',
+                                    '(D210i|SO210i)|503i|211i|SH251i|692i|200[12]|2101V' => '3.0',
+                                    '504i|251i|^F671iS$|212i|2051|2102V|661i|2701|672i|SO213i|850i' => '4.0',
+                                    'eggy|P751v' => '3.2',
+                                    '505i|252i|900i|506i|880i|253i|P213i|901i|700i|851i|701i|881i|^SA800i$|600i|^L601i$|^M702i(S|G)$' => '5.0',
+                                    '902i|702i|851i|882i|^N601i$|^D800iDS$|^P703imyu$' => '6.0',
+                                    '903i|703i' => '7.0'
+                                    );
+        }
+
+        foreach ($htmlVersionMap as $key => $value) {
+            if (preg_match("/$key/", $this->_model)) {
+                return $value;
+            }
+        }
+        return null;
+    }
+
+    // }}}
+    // {{{ getCacheSize()
+
+    /**
+     * returns cache size as kilobytes unit. returns 5 if unknown.
+     *
+     * @return integer
+     */
+    function getCacheSize()
+    {
+        if ($this->_cacheSize) {
+            return $this->_cacheSize;
+        }
+
+        static $defaultCacheSize;
+        if (!isset($defaultCacheSize)) {
+            $defaultCacheSize = 5;
+        }
+        return $defaultCacheSize;
+    }
+
+    // }}}
+    // {{{ getSeries()
+
+    /**
+     * returns series name like '502i'. returns null if unknown.
+     *
+     * @return string
+     */
+    function getSeries()
+    {
+        if ($this->isFOMA() && preg_match('/(\d{4})/', $this->_model)) {
+            return 'FOMA';
+        }
+
+        if (preg_match('/(\d{3}i)/', $this->_model, $matches)) {
+            return $matches[1];
+        }
+
+        if ($this->_model == 'P651ps') {
+            return '651';
+        }
+
+        return null;
+    }
+
+    // }}}
+    // {{{ getVendor()
+
+    /**
+     * returns vender code like 'SO' for Sony. returns null if unknown.
+     *
+     * @return string
+     */
+    function getVendor()
+    {
+        if (preg_match('/([A-Z]+)\d/', $this->_model, $matches)) {
+            return $matches[1];
+        }
+        return null;
+    }
+
+    // }}}
+    // {{{ getModel()
+
+    /**
+     * returns name of the model like 'P502i'
+     *
+     * @return string
+     */
+    function getModel()
+    {
+        return $this->_model;
+    }
+
+    // }}}
+    // {{{ getStatus()
+
+    /**
+     * returns status like "TB", "TC", "TD" or "TJ", which means:
+     * 
+     * TB | Browsers
+     * TC | Browsers with image off (only Available in HTML 5.0)
+     * TD | Fetching JAR
+     * TJ | i-Appli
+     *
+     * @return string
+     */
+    function getStatus()
+    {
+        return $this->_status;
+    }
+
+    // }}}
+    // {{{ getBandwidth()
+
+    /**
+     * returns bandwidth like 32 as killobytes unit. Only vailable in eggy,
+     * returns null otherwise.
+     *
+     * @return integer
+     */
+    function getBandwidth()
+    {
+        return $this->_bandwidth;
+    }
+
+    // }}}
+    // {{{ getSerialNumber()
+
+    /**
+     * returns hardware unique serial number (15 digit in FOMA, 11 digit
+     * otherwise alphanumeric). Only available with form utn attribute.
+     * returns null otherwise.
+     *
+     * @return string
+     */
+    function getSerialNumber()
+    {
+        return $this->_serialNumber;
+    }
+
+    // }}}
+    // {{{ isFOMA()
+
+    /**
+     * retuns whether it's FOMA or not
+     *
+     * @return boolean
+     */
+    function isFOMA()
+    {
+        return $this->_isFOMA;
+    }
+
+    // }}}
+    // {{{ getComment()
+
+    /**
+     * returns comment on user agent string like 'Google Proxy'. returns null
+     * otherwise.
+     *
+     * @return string
+     */
+    function getComment()
+    {
+        return $this->_comment;
+    }
+
+    // }}}
+    // {{{ getCardID()
+
+    /**
+     * returns FOMA Card ID (20 digit alphanumeric). Only available in FOMA
+     * with <form utn> attribute. returns null otherwise.
+     *
+     * @return string
+     */ 
+    function getCardID()
+    {
+        return $this->_cardID;
+    }
+
+    // }}}
+    // {{{ isGPS()
+
+    /**
+     * @return boolean
+     */ 
+    function isGPS()
+    {
+        static $gpsModels;
+        if (!isset($gpsModels)) {
+            $gpsModels = array('F661i', 'F505iGPS');
+        }
+        return in_array($this->_model, $gpsModels);
+    }
+
+    // }}}
+    // {{{ getCarrierShortName()
+
+    /**
+     * returns the short name of the carrier
+     *
+     * @return string
+     */
+    function getCarrierShortName()
+    {
+        return 'I';
+    }
+
+    // }}}
+    // {{{ getCarrierLongName()
+
+    /**
+     * returns the long name of the carrier
+     *
+     * @return string
+     */
+    function getCarrierLongName()
+    {
+        return 'DoCoMo';
+    }
+
+    /**#@-*/
+
+    /**#@+
+     * @access private
+     */
+
+    // }}}
+    // {{{ _parseMain()
+
+    /**
+     * parse main part of HTTP_USER_AGENT string (not FOMA)
+     *
+     * @param string $main main part of HTTP_USER_AGENT string
+     * @return mixed void, or a PEAR error object on error
+     */ 
+    function _parseMain($main)
+    {
+        @list($this->name, $this->version, $this->_model, $cache, $rest) =
+            explode('/', $main, 5);
+        if ($this->_model === 'SH505i2') {
+            $this->_model = 'SH505i';
+        }
+
+        if ($cache) {
+            if (!preg_match('/^c(\d+)/', $cache, $matches)) {
+                return $this->noMatch();
+            }
+            $this->_cacheSize = (integer)$matches[1];
+        }
+
+        if ($rest) {
+            $rest = explode('/', $rest);
+            foreach ($rest as $value) {
+                if (preg_match('/^ser(\w{11})$/', $value, $matches)) {
+                    $this->_serialNumber = $matches[1];
+                    continue;
+                }
+                if (preg_match('/^(T[CDBJ])$/', $value, $matches)) {
+                    $this->_status = $matches[1];
+                    continue;
+                }
+                if (preg_match('/^s(\d+)$/', $value, $matches)) {
+                    $this->_bandwidth = (integer)$matches[1];
+                    continue;
+                }
+                if (preg_match('/^W(\d+)H(\d+)$/', $value, $matches)) {
+                    $this->_displayBytes = "{$matches[1]}*{$matches[2]}";
+                    continue;
+                }
+            }
+        }
+    }
+
+    // }}}
+    // {{{ _parseFOMA()
+
+    /**
+     * parse main part of HTTP_USER_AGENT string (FOMA)
+     *
+     * @param string $foma main part of HTTP_USER_AGENT string
+     * @return mixed void, or a PEAR error object on error
+     */ 
+    function _parseFOMA($foma)
+    {
+        if (!preg_match('/^([^(]+)/', $foma, $matches)) {
+            return $this->noMatch();
+        }
+        $this->_model = $matches[1];
+        if ($matches[1] === 'MST_v_SH2101V') {
+            $this->_model = 'SH2101V';
+        }
+
+        if (preg_match('/^[^(]+\((.*?)\)$/', $foma, $matches)) {
+            $rest = explode(';', $matches[1]);
+            foreach ($rest as $value) {
+                if (preg_match('/^c(\d+)/', $value, $matches)) {
+                    $this->_cacheSize = (integer)$matches[1];
+                    continue;
+                }
+                if (preg_match('/^ser(\w{15})$/', $value, $matches)) {
+                    $this->_serialNumber = $matches[1];
+                    continue;
+                }
+                if (preg_match('/^(T[CDBJ])$/', $value, $matches)) {
+                    $this->_status = $matches[1];
+                    continue;
+                }
+                if (preg_match('/^icc(\w{20})?$/', $value, $matches)) {
+                    if (count($matches) == 2) {
+                        $this->_cardID = $matches[1];
+                    }
+                    continue;
+                }
+                if (preg_match('/^W(\d+)H(\d+)$/', $value, $matches)) {
+                    $this->_displayBytes = "{$matches[1]}*{$matches[2]}";
+                    continue;
+                }
+                return $this->noMatch();
+            }
+        }
+    }
+
+    /**#@-*/
+
+    // }}}
+}
+
+// }}}
+
+/*
+ * Local Variables:
+ * mode: php
+ * coding: iso-8859-1
+ * tab-width: 4
+ * c-basic-offset: 4
+ * c-hanging-comment-ender-p: nil
+ * indent-tabs-mode: nil
+ * End:
+ */
+?>
Index: branches/dev/data/module/Net/UserAgent/Mobile/Vodafone.php
===================================================================
--- branches/dev/data/module/Net/UserAgent/Mobile/Vodafone.php	(revision 11460)
+++ branches/dev/data/module/Net/UserAgent/Mobile/Vodafone.php	(revision 11460)
@@ -0,0 +1,557 @@
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4: */
+
+/**
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.0 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category   Networking
+ * @package    Net_UserAgent_Mobile
+ * @author     KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @copyright  2003-2007 KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
+ * @version    CVS: $Id: Vodafone.php,v 1.12 2007/02/20 15:21:05 kuboa Exp $
+ * @since      File available since Release 0.20.0
+ */
+
+require_once dirname(__FILE__) . '/Common.php';
+require_once dirname(__FILE__) . '/Display.php';
+
+// {{{ Net_UserAgent_Mobile_Vodafone
+
+/**
+ * Vodafone implementation
+ *
+ * Net_UserAgent_Mobile_Vodafone is a subclass of
+ * {@link Net_UserAgent_Mobile_Common}, which implements Vodafone user agents.
+ *
+ * SYNOPSIS:
+ * <code>
+ * require_once 'Net/UserAgent/Mobile.php';
+ *
+ * $_SERVER['HTTP_USER_AGENT'] = 'J-PHONE/2.0/J-DN02';
+ * $agent = &Net_UserAgent_Mobile::factory();
+ *
+ * printf("Name: %s\n", $agent->getName()); // 'J-PHONE'
+ * printf("Version: %s\n", $agent->getVersion()); // 2.0
+ * printf("Model: %s\n", $agent->getModel()); // 'J-DN02'
+ * if ($agent->isPacketCompliant()) {
+ *     print "Packet is compliant.\n"; // false
+ * }
+ *
+ * // only availabe in Java compliant
+ * // e.g.) 'J-PHONE/4.0/J-SH51/SNXXXXXXXXX SH/0001a Profile/MIDP-1.0 Configuration/CLDC-1.0 Ext-Profile/JSCL-1.1.0'
+ * printf("Serial: %s\n", $agent->getSerialNumber()); // XXXXXXXXX
+ * printf("Vendor: %s\n", $agent->getVendor()); // 'SH'
+ * printf("Vendor Version: %s\n", $agent->getVendorVersion()); // '0001a'
+ *
+ * $info = $agent->getJavaInfo();  // array
+ * foreach ($info as $key => $value) {
+ *     print "$key: $value\n";
+ * }
+ * </code>
+ *
+ * @category   Networking
+ * @package    Net_UserAgent_Mobile
+ * @author     KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @copyright  2003-2007 KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
+ * @version    Release: 0.30.0
+ * @link       http://developers.vodafone.jp/dp/tool_dl/web/useragent.php
+ * @link       http://developers.vodafone.jp/dp/tool_dl/web/position.php
+ * @see        Net_UserAgent_Mobile_Common
+ * @since      Class available since Release 0.20.0
+ */
+class Net_UserAgent_Mobile_Vodafone extends Net_UserAgent_Mobile_Common
+{
+
+    // {{{ properties
+
+    /**#@+
+     * @access public
+     */
+
+    /**#@-*/
+
+    /**#@+
+     * @access private
+     */
+
+    /**
+     * name of the model like 'J-DN02'
+     * @var string
+     */
+    var $_model = '';
+
+    /**
+     * whether the agent is packet connection complicant or not
+     * @var boolean
+     */
+    var $_packetCompliant = false;
+
+    /**
+     * terminal unique serial number
+     * @var string
+     */
+    var $_serialNumber = null;
+
+    /**
+     * vendor code like 'SH'
+     * @var string
+     */
+    var $_vendor = '';
+
+    /**
+     * vendor version like '0001a'
+     * @var string
+     */
+    var $_vendorVersion = null;
+
+    /**
+     * Java profiles
+     * @var array
+     */
+    var $_javaInfo = array();
+
+    /**
+     * whether the agent is 3G
+     * @var boolean
+     */
+    var $_is3G = true;
+
+    /**
+     * the name of the mobile phone
+     * @var string
+     */
+    var $_msname = '';
+
+    /**#@-*/
+
+    /**#@+
+     * @access public
+     */
+
+    // }}}
+    // {{{ isJPhone()
+
+    /**
+     * returns true
+     *
+     * @return boolean
+     */
+    function isJPhone()
+    {
+        return true;
+    }
+
+    // }}}
+    // {{{ isVodafone()
+
+    /**
+     * returns true
+     *
+     * @return boolean
+     */
+    function isVodafone()
+    {
+        return true;
+    }
+
+    // }}}
+    // {{{ parse()
+
+    /**
+     * parse HTTP_USER_AGENT string
+     *
+     * @return mixed void, or a PEAR error object on error
+     */
+    function parse()
+    {
+        $agent = explode(' ', $this->getUserAgent());
+        preg_match('!^(?:(SoftBank|Vodafone|J-PHONE)/\d\.\d|MOT-)!',
+                   $agent[0], $matches
+                   );
+        if (count($matches) > 1) {
+            $carrier = $matches[1];
+        } else {
+            $carrier = 'Motorola';
+        }
+
+        switch ($carrier) {
+        case 'Vodafone':
+        case 'SoftBank':
+            $result = $this->_parseVodafone($agent);
+            break;
+        case 'J-PHONE':
+            $result = $this->_parseJphone($agent);
+            break;
+        case 'Motorola':
+            $result = $this->_parseMotorola($agent);
+            break;
+        }
+
+        if (Net_UserAgent_Mobile::isError($result)) {
+            return $result;
+        }
+
+        $this->_msname = $this->getHeader('x-jphone-msname');
+    }
+
+    // }}}
+    // {{{ makeDisplay()
+
+    /**
+     * create a new {@link Net_UserAgent_Mobile_Display} class instance
+     *
+     * @return object a newly created {@link Net_UserAgent_Mobile_Display}
+     *     object
+     * @see Net_UserAgent_Mobile_Display
+     */
+    function makeDisplay() 
+    {
+        @list($width, $height) =
+            explode('*', $this->getHeader('x-jphone-display'));
+        $color = false;
+        $depth = 0;
+        if ($color_string = $this->getHeader('x-jphone-color')) {
+            preg_match('!^([CG])(\d+)$!', $color_string, $matches);
+            $color = $matches[1] === 'C' ? true : false;
+            $depth = $matches[2];
+        }
+        return new Net_UserAgent_Mobile_Display(array(
+                                                      'width'  => $width,
+                                                      'height' => $height,
+                                                      'depth'  => $depth,
+                                                      'color'  => $color)
+                                                );
+    }
+
+    // }}}
+    // {{{ getModel()
+
+    /**
+     * returns name of the model like 'J-DN02'
+     *
+     * @return string
+     */
+    function getModel()
+    {
+        return $this->_model;
+    }
+
+    // }}}
+    // {{{ isPacketCompliant()
+
+    /**
+     * returns whether the agent is packet connection complicant or not
+     *
+     * @return boolean
+     */
+    function isPacketCompliant()
+    {
+        return $this->_packetCompliant;
+    }
+
+    // }}}
+    // {{{ getSerialNumber()
+
+    /**
+     * return terminal unique serial number. returns null if user forbids to
+     * send his/her serial number.
+     *
+     * @return string
+     */
+    function getSerialNumber()
+    {
+        return $this->_serialNumber;
+    }
+
+    // }}}
+    // {{{ getVendor()
+
+    /**
+     * returns vendor code like 'SH'
+     *
+     * @return string
+     */
+    function getVendor()
+    {
+        return $this->_vendor;
+    }
+
+    // }}}
+    // {{{ getVendorVersion()
+
+    /**
+     * returns vendor version like '0001a'. returns null if unknown.
+     *
+     * @return string
+     */
+    function getVendorVersion()
+    {
+        return $this->_vendorVersion;
+    }
+
+    // }}}
+    // {{{ getJavaInfo()
+
+    /**
+     * returns array of Java profiles
+     *
+     * Array structure is something like:
+     *
+     * - 'Profile'       => 'MIDP-1.0',
+     * - 'Configuration' => 'CLDC-1.0',
+     * - 'Ext-Profile'   => 'JSCL-1.1.0'
+     *
+     * @return array
+     */
+    function getJavaInfo()
+    {
+        return $this->_javaInfo;
+    }
+
+    // }}}
+    // {{{ getCarrierShortName()
+
+    /**
+     * returns the short name of the carrier
+     *
+     * @return string
+     */
+    function getCarrierShortName()
+    {
+        return 'V';
+    }
+
+    // }}}
+    // {{{ getCarrierLongName()
+
+    /**
+     * returns the long name of the carrier
+     *
+     * @return string
+     */
+    function getCarrierLongName()
+    {
+        return 'Vodafone';
+    }
+
+    // }}}
+    // {{{ isTypeC()
+
+    /**
+     * returns true if the type is C
+     *
+     * @return boolean
+     */
+    function isTypeC()
+    {
+        if ($this->_is3G || !preg_match('!^[32]\.!', $this->version)) {
+            return false;
+        }
+
+        return true;
+    }
+
+    // }}}
+    // {{{ isTypeP()
+
+    /**
+     * returns true if the type is P
+     *
+     * @return boolean
+     */
+    function isTypeP()
+    {
+        if ($this->_is3G || !preg_match('!^4\.!', $this->version)) {
+            return false;
+        }
+
+        return true;
+    }
+
+    // }}}
+    // {{{ isTypeW()
+
+    /**
+     * returns true if the type is W
+     *
+     * @return boolean
+     */
+    function isTypeW()
+    {
+        if ($this->_is3G || !preg_match('!^5\.!', $this->version)) {
+            return false;
+        }
+
+        return true;
+    }
+
+    // }}}
+    // {{{ isType3GC()
+
+    /**
+     * returns true if the type is 3GC
+     *
+     * @return boolean
+     */
+    function isType3GC()
+    {
+        return $this->_is3G;
+    }
+
+    // }}}
+    // {{{ getMsname()
+
+    /**
+     * returns the name of the mobile phone
+     *
+     * @return string the name of the mobile phone
+     */
+    function getMsname()
+    {
+        return $this->_msname;
+    }
+
+    /**#@-*/
+
+    /**#@+
+     * @access private
+     */
+
+    // }}}
+    // {{{ _parseVodafone()
+
+    /**
+     * parse HTTP_USER_AGENT string for the Vodafone 3G aegnt
+     *
+     * @param array $agent parts of the User-Agent string
+     * @return mixed void, or a PEAR error object on error
+     */
+    function _parseVodafone(&$agent)
+    {
+        $count = count($agent);
+        $this->_packetCompliant = true;
+
+        // Vodafone/1.0/V702NK/NKJ001 Series60/2.6 Nokia6630/2.39.148 Profile/MIDP-2.0 Configuration/CLDC-1.1
+        // Vodafone/1.0/V702NK/NKJ001/SN123456789012345 Series60/2.6 Nokia6630/2.39.148 Profile/MIDP-2.0 Configuration/CLDC-1.1
+        // Vodafone/1.0/V802SE/SEJ001/SN123456789012345 Browser/SEMC-Browser/4.1 Profile/MIDP-2.0 Configuration/CLDC-1.1
+        @list($this->name, $this->version, $this->_model, $modelVersion,
+              $serialNumber) = explode('/', $agent[0]);
+        if ($serialNumber) {
+            if (!preg_match('!^SN(.+)!', $serialNumber, $matches)) {
+                return $this->noMatch();
+            }
+            $this->_serialNumber = $matches[1];
+        }
+
+        if (!preg_match('!^([a-z]+)((?:[a-z]|\d){4})$!i', $modelVersion, $matches)) {
+            return $this->noMatch();
+        }
+
+        $this->_vendor = $matches[1];
+        $this->_vendorVersion = $matches[2];
+
+        for ($i = 2; $i < $count; ++$i) {
+            list($key, $value) = explode('/', $agent[$i]);
+            $this->_javaInfo[$key] = $value;
+        }
+    }
+
+    // }}}
+    // {{{ _parseJphone()
+
+    /**
+     * parse HTTP_USER_AGENT string for the ancient agent
+     *
+     * @param array $agent parts of the User-Agent string
+     * @return mixed void, or a PEAR error object on error
+     */
+    function _parseJphone(&$agent)
+    {
+        $count = count($agent);
+        $this->_is3G = false;
+
+        if ($count > 1) {
+
+            // J-PHONE/4.0/J-SH51/SNJSHA3029293 SH/0001aa Profile/MIDP-1.0 Configuration/CLDC-1.0 Ext-Profile/JSCL-1.1.0
+            $this->_packetCompliant = true;
+            @list($this->name, $this->version, $this->_model,
+                  $serialNumber) = explode('/', $agent[0]);
+            if ($serialNumber) {
+                if (!preg_match('!^SN(.+)!', $serialNumber, $matches)) {
+                    return $this->noMatch();
+                }
+                $this->_serialNumber = $matches[1];
+            }
+            list($this->_vendor, $this->_vendorVersion) =
+                explode('/', $agent[1]);
+            for ($i = 2; $i < $count; ++$i) {
+                list($key, $value) = explode('/', $agent[$i]);
+                $this->_javaInfo[$key] = $value;
+            }
+        } else {
+
+            // J-PHONE/2.0/J-DN02
+            @list($this->name, $this->version, $model) =
+                explode('/', $agent[0]);
+            $this->_model  = (string)$model;
+            if ($this->_model) {
+                if (preg_match('!V\d+([A-Z]+)!', $this->_model, $matches)) {
+                    $this->_vendor = $matches[1];
+                } elseif (preg_match('!J-([A-Z]+)!', $this->_model, $matches)) {
+                    $this->_vendor = $matches[1];
+                }
+            }
+        }
+    }
+
+    // }}}
+    // {{{ _parseMotorola()
+
+    /**
+     * parse HTTP_USER_AGENT string for the Motorola 3G aegnt
+     *
+     * @param array $agent parts of the User-Agent string
+     * @return mixed void, or a PEAR error object on error
+     */
+    function _parseMotorola(&$agent)
+    {
+        $count = count($agent);
+        $this->_packetCompliant = true;
+        $this->_vendor = 'MOT';
+
+        // MOT-V980/80.2F.2E. MIB/2.2.1 Profile/MIDP-2.0 Configuration/CLDC-1.1
+        list($name, $this->_vendorVersion) = explode('/', $agent[0]);
+        $this->_model = substr(strrchr($name, '-'), 1);
+
+        for ($i = 2; $i < $count; ++$i) {
+            list($key, $value) = explode('/', $agent[$i]);
+            $this->_javaInfo[$key] = $value;
+        }
+    }
+
+    /**#@-*/
+
+    // }}}
+}
+
+// }}}
+
+/*
+ * Local Variables:
+ * mode: php
+ * coding: iso-8859-1
+ * tab-width: 4
+ * c-basic-offset: 4
+ * c-hanging-comment-ender-p: nil
+ * indent-tabs-mode: nil
+ * End:
+ */
+?>
Index: branches/dev/data/module/Net/UserAgent/Mobile.php
===================================================================
--- branches/dev/data/module/Net/UserAgent/Mobile.php	(revision 11460)
+++ branches/dev/data/module/Net/UserAgent/Mobile.php	(revision 11460)
@@ -0,0 +1,358 @@
+<?php
+/* vim: set expandtab tabstop=4 shiftwidth=4: */
+
+/**
+ * PHP versions 4 and 5
+ *
+ * LICENSE: This source file is subject to version 3.0 of the PHP license
+ * that is available through the world-wide-web at the following URI:
+ * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
+ * the PHP License and are unable to obtain it through the web, please
+ * send a note to license@php.net so we can mail you a copy immediately.
+ *
+ * @category   Networking
+ * @package    Net_UserAgent_Mobile
+ * @author     KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @copyright  2003-2007 KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
+ * @version    CVS: $Id: Mobile.php,v 1.27 2007/02/20 15:17:16 kuboa Exp $
+ * @since      File available since Release 0.1
+ */
+
+require_once dirname(__FILE__) . '/../../PEAR.php';
+require_once dirname(__FILE__) . '/Mobile/Request.php';
+
+// {{{ constants
+
+/**
+ * Constants for error handling.
+ */
+define('NET_USERAGENT_MOBILE_OK',               1);
+define('NET_USERAGENT_MOBILE_ERROR',           -1);
+define('NET_USERAGENT_MOBILE_ERROR_NOMATCH',   -2);
+define('NET_USERAGENT_MOBILE_ERROR_NOT_FOUND', -3);
+
+// }}}
+// {{{ GLOBALS
+
+/**
+ * globals for fallback on no match
+ *
+ * @global boolean $GLOBALS['_NET_USERAGENT_MOBILE_FALLBACK_ON_NOMATCH']
+ */
+$GLOBALS['_NET_USERAGENT_MOBILE_FALLBACK_ON_NOMATCH'] = false;
+
+// }}}
+// {{{ Net_UserAgent_Mobile
+
+/**
+ * HTTP mobile user agent string parser
+ *
+ * Net_UserAgent_Mobile parses HTTP_USER_AGENT strings of (mainly Japanese)
+ * mobile HTTP user agents. It'll be useful in page dispatching by user
+ * agents.
+ * This package was ported from Perl's HTTP::MobileAgent.
+ * See {@link http://search.cpan.org/search?mode=module&query=HTTP-MobileAgent}
+ * The author of the HTTP::MobileAgent module is Tatsuhiko Miyagawa
+ * <miyagawa@bulknews.net>
+ *
+ * SYNOPSIS:
+ * <code>
+ * require_once 'Net/UserAgent/Mobile.php';
+ *
+ * $agent = &Net_UserAgent_Mobile::factory($agent_string);
+ * // or $agent = &Net_UserAgent_Mobile::factory(); // to get from $_SERVER
+ *
+ * if ($agent->isDoCoMo()) {
+ *     // or if ($agent->getName() == 'DoCoMo')
+ *     // or if (strtolower(get_class($agent)) == 'http_mobileagent_docomo')
+ *     // it's NTT DoCoMo i-mode
+ *     // see what's available in Net_UserAgent_Mobile_DoCoMo
+ * } elseif ($agent->isVodafone()) {
+ *     // it's Vodafone(J-PHONE)
+ *     // see what's available in Net_UserAgent_Mobile_Vodafone
+ * } elseif ($agent->isEZweb()) {
+ *     // it's KDDI/EZWeb
+ *     // see what's available in Net_UserAgent_Mobile_EZweb
+ * } else {
+ *     // may be PC
+ *     // $agent is Net_UserAgent_Mobile_NonMobile
+ * }
+ *
+ * $display = $agent->getDisplay();    // Net_UserAgent_Mobile_Display
+ * if ($display->isColor()) {
+ *    ...
+ * }
+ * </code>
+ *
+ * @category   Networking
+ * @package    Net_UserAgent_Mobile
+ * @author     KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @copyright  2003-2007 KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
+ * @version    Release: 0.30.0
+ * @since      Class available since Release 0.1
+ */
+class Net_UserAgent_Mobile
+{
+
+    // {{{ properties
+
+    /**#@+
+     * @access public
+     */
+
+    /**#@-*/
+
+    /**#@+
+     * @access private
+     */
+
+    /**#@-*/
+
+    /**#@+
+     * @access public
+     * @static
+     */
+
+    // }}}
+    // {{{ factory()
+
+    /**
+     * create a new {@link Net_UserAgent_Mobile_Common} subclass instance
+     *
+     * parses HTTP headers and constructs {@link Net_UserAgent_Mobile_Common}
+     * subclass instance.
+     * If no argument is supplied, $_SERVER{'HTTP_*'} is used.
+     *
+     * @param mixed $stuff User-Agent string or object that works with
+     *     HTTP_Request (not implemented)
+     * @return mixed a newly created Net_UserAgent_Mobile object, or a PEAR
+     *     error object on error
+     * @see Net_UserAgent_Mobile_Request::factory()
+     */
+    function &factory($stuff = null)
+    {
+        static $mobileRegex;
+        if (!isset($mobileRegex)) {
+            $docomoRegex    = '^DoCoMo/\d\.\d[ /]';
+            $vodafoneRegex  = '^(?:(?:SoftBank|Vodafone|J-PHONE|Vemulator|J-EMULATOR)/\d\.\d|(?:MOT|MOTEMULATOR)-)';
+            $ezwebRegex     = '^(?:KDDI-[A-Z]+\d+[A-Z]? )?UP\.Browser\/';
+            $airhphoneRegex = '^Mozilla/3\.0\((?:DDIPOCKET|WILLCOM);';
+            $mobileRegex =
+                "(?:($docomoRegex)|($vodafoneRegex)|($ezwebRegex)|($airhphoneRegex))";
+        }
+
+        $request = &Net_UserAgent_Mobile_Request::factory($stuff);
+
+        // parse User-Agent string
+        $ua = $request->get('User-Agent');
+        $sub = 'NonMobile';
+        if (preg_match("!$mobileRegex!", $ua, $matches)) {
+            $sub = @$matches[1] ? 'DoCoMo' :
+                (@$matches[2] ? 'Vodafone' :
+                 (@$matches[3] ? 'EZweb' : 'AirHPhone'));
+        }
+        $className = "Net_UserAgent_Mobile_{$sub}";
+
+        if (!class_exists($className)) {
+            $file = dirname(__FILE__) . "/Mobile/{$sub}.php";
+            if (!include_once $file) {
+                return PEAR::raiseError(null,
+                                        NET_USERAGENT_MOBILE_ERROR_NOT_FOUND,
+                                        null, null,
+                                        "Unable to include the $file file",
+                                        'Net_UserAgent_Mobile_Error', true
+                                        );
+            }
+        }
+
+        $instance = &new $className($request);
+        $error = &$instance->isError();
+        if (Net_UserAgent_Mobile::isError($error)) {
+            if ($GLOBALS['_NET_USERAGENT_MOBILE_FALLBACK_ON_NOMATCH']
+                && $error->getCode() == NET_USERAGENT_MOBILE_ERROR_NOMATCH
+                ) {
+                $instance = &Net_UserAgent_Mobile::factory('Net_UserAgent_Mobile_Fallback_On_NoMatch');
+                return $instance;
+            }
+
+            $instance = &$error;
+        }
+
+        return $instance;
+    }
+
+    // }}}
+    // {{{ singleton()
+
+    /**
+     * creates a new {@link Net_UserAgent_Mobile_Common} subclass instance or
+     * returns a instance from existent ones
+     *
+     * @param mixed $stuff User-Agent string or object that works with
+     *     HTTP_Request (not implemented)
+     * @return mixed a newly created or a existent Net_UserAgent_Mobile
+     *     object, or a PEAR error object on error
+     * @see Net_UserAgent_Mobile::factory()
+     */
+     function &singleton($stuff = null)
+     {
+         static $instance;
+         if (!isset($instance)) {
+             $instance = Net_UserAgent_Mobile::factory($stuff);
+         }
+
+         return $instance;
+     }
+
+    // }}}
+    // {{{ isError()
+
+    /**
+     * tell whether a result code from a Net_UserAgent_Mobile method
+     * is an error
+     *
+     * @param integer $value result code
+     * @return boolean whether $value is an {@link Net_UserAgent_Mobile_Error}
+     */
+    function isError($value)
+    {
+        return is_a($value, 'Net_UserAgent_Mobile_Error');
+    }
+
+    // }}}
+    // {{{ errorMessage()
+
+    /**
+     * return a textual error message for a Net_UserAgent_Mobile error code
+     *
+     * @param integer $value error code
+     * @return string error message, or false if the error code was not
+     *     recognized
+     */
+    function errorMessage($value)
+    {
+        static $errorMessages;
+        if (!isset($errorMessages)) {
+            $errorMessages = array(
+                                   NET_USERAGENT_MOBILE_ERROR           => 'unknown error',
+                                   NET_USERAGENT_MOBILE_ERROR_NOMATCH   => 'no match',
+                                   NET_USERAGENT_MOBILE_ERROR_NOT_FOUND => 'not found',
+                                   NET_USERAGENT_MOBILE_OK              => 'no error'
+                                   );
+        }
+
+        if (Net_UserAgent_Mobile::isError($value)) {
+            $value = $value->getCode();
+        }
+
+        return isset($errorMessages[$value]) ?
+            $errorMessages[$value] :
+            $errorMessages[NET_USERAGENT_MOBILE_ERROR];
+    }
+
+    /**#@-*/
+
+    /**#@+
+     * @access private
+     */
+
+    /**#@-*/
+
+    // }}}
+}
+
+// }}}
+// {{{ Net_UserAgent_Mobile_Error
+
+/**
+ * Net_UserAgent_Mobile_Error implements a class for reporting user
+ * agent error messages
+ *
+ * @category   Networking
+ * @package    Net_UserAgent_Mobile
+ * @author     KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @copyright  2003-2007 KUBO Atsuhiro <iteman@users.sourceforge.net>
+ * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
+ * @version    Release: 0.30.0
+ * @since      Class available since Release 0.1
+ */
+class Net_UserAgent_Mobile_Error extends PEAR_Error
+{
+
+    // {{{ properties
+
+    /**#@+
+     * @access public
+     */
+
+    /**#@-*/
+
+    /**#@+
+     * @access private
+     */
+
+    /**#@-*/
+
+    /**#@+
+     * @access public
+     */
+
+    // }}}
+    // {{{ constructor
+
+    /**
+     * constructor
+     *
+     * @param mixed   $code     Net_UserAgent_Mobile error code, or string
+     *     with error message.
+     * @param integer $mode     what 'error mode' to operate in
+     * @param integer $level    what error level to use for $mode and
+     *     PEAR_ERROR_TRIGGER
+     * @param mixed   $userinfo additional user/debug info
+     * @access public
+     */
+    function Net_UserAgent_Mobile_Error($code = NET_USERAGENT_MOBILE_ERROR,
+                                        $mode = PEAR_ERROR_RETURN,
+                                        $level = E_USER_NOTICE,
+                                        $userinfo = null
+                                        )
+    {
+        if (is_int($code)) {
+            $this->PEAR_Error('Net_UserAgent_Mobile Error: ' .
+                              Net_UserAgent_Mobile::errorMessage($code),
+                              $code, $mode, $level, $userinfo
+                              );
+        } else {
+            $this->PEAR_Error("Net_UserAgent_Mobile Error: $code",
+                              NET_USERAGENT_MOBILE_ERROR, $mode, $level,
+                              $userinfo
+                              );
+        }
+    }
+
+    /**#@-*/
+
+    /**#@+
+     * @access private
+     */
+
+    /**#@-*/
+
+    // }}}
+}
+
+// }}}
+
+/*
+ * Local Variables:
+ * mode: php
+ * coding: iso-8859-1
+ * tab-width: 4
+ * c-basic-offset: 4
+ * c-hanging-comment-ender-p: nil
+ * indent-tabs-mode: nil
+ * End:
+ */
+?>
Index: branches/dev/data/lib/slib.php
===================================================================
--- branches/dev/data/lib/slib.php	(revision 340)
+++ branches/dev/data/lib/slib.php	(revision 11460)
@@ -1741,5 +1741,9 @@
 	    $sqlval['order_tel02'] = $objCustomer->getValue('tel02');
 		$sqlval['order_tel03'] = $objCustomer->getValue('tel03');
-		$sqlval['order_email'] = $objCustomer->getValue('email');
+		if (defined('MOBILE_SITE')) {
+			$sqlval['order_email'] = $objCustomer->getValue('email_mobile');
+		} else {
+			$sqlval['order_email'] = $objCustomer->getValue('email');
+		}
 		$sqlval['order_job'] = $objCustomer->getValue('job');
 		$sqlval['order_birth'] = $objCustomer->getValue('birth');
@@ -2047,4 +2051,5 @@
 		if(strlen($str) > ($len + 2)) {
 			$ret =substr($str, 0, $len);
+			$cut = substr($str, $len);
 		} else {
 			$ret = $str;
@@ -2054,4 +2059,5 @@
 		if(mb_strlen($str) > ($len + 1)) {
 			$ret = mb_substr($str, 0, $len);
+			$cut = mb_substr($str, $len);
 		} else {
 			$ret = $str;
@@ -2059,4 +2065,27 @@
 		}
 	}
+
+	// ³¨Ê¸»ú¥¿¥°¤ÎÅÓÃæ¤ÇÊ¬ÃÇ¤µ¤ì¤Ê¤¤¤è¤¦¤Ë¤¹¤ë¡£
+	if (isset($cut)) {
+		// Ê¬³ä°ÌÃÖ¤è¤êÁ°¤ÎºÇ¸å¤Î [ °Ê¹ß¤ò¼èÆÀ¤¹¤ë¡£
+		$head = strrchr($ret, '[');
+
+		// Ê¬³ä°ÌÃÖ¤è¤ê¸å¤ÎºÇ½é¤Î ] °ÊÁ°¤ò¼èÆÀ¤¹¤ë¡£
+		$tail_pos = strpos($cut, ']');
+		if ($tail_pos !== false) {
+			$tail = substr($cut, 0, $tail_pos + 1);
+		}
+
+		// Ê¬³ä°ÌÃÖ¤è¤êÁ°¤Ë [¡¢¸å¤Ë ] ¤¬¸«¤Ä¤«¤Ã¤¿¾ì¹ç¤Ï¡¢[ ¤«¤é ] ¤Þ¤Ç¤ò
+		// ÀÜÂ³¤·¤Æ³¨Ê¸»ú¥¿¥°1¸ÄÊ¬¤Ë¤Ê¤ë¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£
+		if ($head !== false && $tail_pos !== false) {
+			$subject = $head . $tail;
+			if (preg_match('/^\[emoji:e?\d+\]$/', $subject)) {
+				// ³¨Ê¸»ú¥¿¥°¤¬¸«¤Ä¤«¤Ã¤¿¤Î¤Çºï½ü¤¹¤ë¡£
+				$ret = substr($ret, 0, -strlen($head));
+			}
+		}
+	}
+
 	if($commadisp){
 		$ret = $ret . "...";
Index: branches/dev/data/smarty_extends/modifier.numeric_emoji.php
===================================================================
--- branches/dev/data/smarty_extends/modifier.numeric_emoji.php	(revision 11460)
+++ branches/dev/data/smarty_extends/modifier.numeric_emoji.php	(revision 11460)
@@ -0,0 +1,21 @@
+<?php
+/**
+ * ¿ôÃÍ¤ò¿ô»ú³¨Ê¸»ú¤ËÊÑ´¹¤¹¤ë¡£
+ *
+ * ÆþÎÏ¤¬0¡Á9¤Ç¤Ï¤Ê¤¤¾ì¹ç¡¢¤Þ¤¿¤Ï¡¢·ÈÂÓÃ¼Ëö¤«¤é¤Î¥¢¥¯¥»¥¹¤Ç¤Ï¤Ê¤¤¾ì¹ç¤Ï¡¢
+ * ÆþÎÏ¤ò [ ¤È ] ¤Ç°Ï¤ó¤ÀÊ¸»úÎó¤òÊÖ¤¹¡£
+ *
+ * @param string $value ÆþÎÏ
+ * @return string ½ÐÎÏ
+ */
+function smarty_modifier_numeric_emoji($value) {
+	// ¿ô»ú³¨Ê¸»ú (0¡Á9) ¤Î³¨Ê¸»úÈÖ¹æ
+	static $numeric_emoji_index = array('134', '125', '126', '127', '128', '129', '130', '131', '132', '133');
+
+	if (GC_MobileUserAgent::isMobile() && isset($numeric_emoji_index[$value])) {
+		return '[emoji:' . $numeric_emoji_index[$value] . ']';
+	} else {
+		return '[' . $value . ']';
+	}
+}
+?>
Index: branches/dev/data/downloads/module/mdl_epsilon/card.php
===================================================================
--- branches/dev/data/downloads/module/mdl_epsilon/card.php	(revision 17)
+++ branches/dev/data/downloads/module/mdl_epsilon/card.php	(revision 11460)
@@ -67,5 +67,9 @@
 
 	// ´°Î»²èÌÌ¤Ø
-	header("Location: " .  URL_SHOP_COMPLETE);
+	if (GC_MobileUserAgent::isMobile()) {
+		header("Location: " .  gfAddSessionId(URL_SHOP_COMPLETE));
+	} else {
+		header("Location: " .  URL_SHOP_COMPLETE);
+	}
 }
 
@@ -124,4 +128,10 @@
 		$objSiteSess->setRegistFlag();
 		
+		// ·ÈÂÓÃ¼Ëö¤Î¾ì¹ç¤Ï¡¢¥»¥Ã¥·¥ç¥óID¡¦¥ª¡¼¥À¡¼ÈÖ¹æ¡¦Ìá¤Ã¤Æ¤¯¤ëURL¤òÊÝÂ¸¤·¤Æ¤ª¤¯¡£
+		if (GC_MobileUserAgent::isMobile()) {
+			sfMobileSetExtSessionId('order_number', $arrData['order_id'], 'shopping/load_payment_module.php');
+			sfMobileSetExtSessionId('order_number', $arrData['order_id'], 'shopping/confirm.php');
+		}
+
 		$url = sfGetXMLValue($arrXML,'RESULT','REDIRECT');
 		header("Location: " . $url);
Index: branches/dev/data/downloads/module/mdl_epsilon/convenience.php
===================================================================
--- branches/dev/data/downloads/module/mdl_epsilon/convenience.php	(revision 17)
+++ branches/dev/data/downloads/module/mdl_epsilon/convenience.php	(revision 11460)
@@ -12,5 +12,9 @@
 class LC_Page {
 	function LC_Page() {
-		$this->tpl_mainpage = MODULE_PATH . "mdl_epsilon/convenience.tpl";
+		if (GC_MobileUserAgent::isMobile()) {
+			$this->tpl_mainpage = MODULE_PATH . "mdl_epsilon/convenience_mobile.tpl";
+		} else {
+			$this->tpl_mainpage = MODULE_PATH . "mdl_epsilon/convenience.tpl";
+		}
 		$this->tpl_title = "¥³¥ó¥Ó¥Ë·èºÑ";
 		/*
@@ -66,5 +70,9 @@
 		$objSiteSess->setRegistFlag();
 		// ³ÎÇ§¥Ú¡¼¥¸¤Ø°ÜÆ°
-		header("Location: " . URL_SHOP_CONFIRM);
+		if (GC_MobileUserAgent::isMobile()) {
+			header("Location: " . gfAddSessionId(URL_SHOP_CONFIRM));
+		} else {
+			header("Location: " . URL_SHOP_CONFIRM);
+		}
 		exit;
 		break;
@@ -197,5 +205,9 @@
 				sfRegistTempOrder($uniqid, $sqlval);
 
-				header("Location: " . URL_SHOP_COMPLETE);
+				if (GC_MobileUserAgent::isMobile()) {
+					header("Location: " . gfAddSessionId(URL_SHOP_COMPLETE));
+				} else {
+					header("Location: " . URL_SHOP_COMPLETE);
+				}
 			}
 		}
Index: branches/dev/data/install.inc
===================================================================
--- branches/dev/data/install.inc	(revision 8)
+++ branches/dev/data/install.inc	(revision 11460)
@@ -1,2 +1,15 @@
 <?php
+    define ('ECCUBE_INSTALL', 'ON');
+    define ('HTML_PATH', 'C:\eclipse\workspace\dev.ec-cube.net\html/');
+    define ('SITE_URL', 'http://localhost/eccube/');
+    define ('SSL_URL', 'http://localhost/eccube/');
+    define ('URL_DIR', '/eccube/');
+    define ('DOMAIN_NAME', '');
+    define ('DB_TYPE', 'mysql');
+    define ('DB_USER', 'eccube');
+    define ('DB_PASSWORD', 'eccube');
+    define ('DB_SERVER', '127.0.0.1');
+    define ('DB_NAME', 'eccube');
+    define ('DB_PORT', '');
+    define ('DATA_PATH', 'C:\eclipse\workspace\dev.ec-cube.net\html/../data/');
 ?>
Index: branches/dev/data/Smarty/templates/mobile/magazine/confirm.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/magazine/confirm.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/magazine/confirm.tpl	(revision 11460)
@@ -0,0 +1,26 @@
+<div align="center"><!--{$arrForm.kind|escape}-->³ÎÇ§</div>
+<hr>
+<!--{$arrForm.kind|escape}-->¤ò¹Ô¤¤¤Þ¤¹¡£<br>
+°Ê²¼¤ÎÆâÍÆ¤Ç¤è¤í¤·¤¤¤Ç¤·¤ç¤¦¤«¡£<br>
+
+<br>
+<form action="confirm.php" method="post">
+	<input type="hidden" name="mode" value="<!--{$arrForm.type}-->">
+	<input type="hidden" name="email" value="<!--{$arrForm.mail|escape}-->">
+	¢£¥á¡¼¥ë¥¢¥É¥ì¥¹<br>
+	<!--{$arrForm.mail|escape}--><br>
+	<br>
+	<div align="center"><input type="submit" name="submit" value="·èÄê"></div>
+</form>
+<br>
+
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/magazine/regist.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/magazine/regist.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/magazine/regist.tpl	(revision 11460)
@@ -0,0 +1,17 @@
+<div align="center">ÅÐÏ¿´°Î»</div>
+<hr>
+
+¥á¡¼¥ë¥Þ¥¬¥¸¥ó¤ÎÅÐÏ¿¤¬´°Î»Ã×¤·¤Þ¤·¤¿¡£<br>
+º£¸å¤È¤â¤´°¦¸Ü»ò¤ê¤Þ¤¹¤è¤¦¤è¤í¤·¤¯¤ª´ê¤¤¿½¤·¾å¤²¤Þ¤¹¡£<br>
+<br>
+
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/magazine/cancel.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/magazine/cancel.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/magazine/cancel.tpl	(revision 11460)
@@ -0,0 +1,17 @@
+<div align="center">²ò½ü´°Î»</div>
+<hr>
+
+¥á¡¼¥ë¥Þ¥¬¥¸¥ó¤Î²ò½ü¤¬´°Î»Ã×¤·¤Þ¤·¤¿¡£<br>
+º£¸å¤È¤â¤´°¦¸Ü»ò¤ê¤Þ¤¹¤è¤¦¤è¤í¤·¤¯¤ª´ê¤¤¿½¤·¾å¤²¤Þ¤¹¡£<br>
+<br>
+
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/magazine/index.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/magazine/index.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/magazine/index.tpl	(revision 11460)
@@ -0,0 +1,35 @@
+<div align="center">¥á¥ë¥Þ¥¬ÅÐÏ¿</div>
+<hr>
+¤´ÅÐÏ¿¤¤¤¿¤À¤¤¤¿¤ªµÒÍÍ¤Ø¤Ï<!--{if $arrSiteInfo.shop_name != ""}--><!--{$arrSiteInfo.shop_name|escape}-->¤è¤ê<!--{/if}-->¾¦ÉÊ¤ä¥­¥ã¥ó¥Ú¡¼¥ó¾ðÊó¤ò¥á¡¼¥ë¤Ç¤ªÆÏ¤±¤¤¤¿¤·¤Þ¤¹¡£<br>
+¢¨<!--{if $arrSiteInfo.shop_name != ""}--><!--{$arrSiteInfo.shop_name|escape}-->¤Ç¤Ï<!--{/if}-->¤´ÍøÍÑµ¬Ìó¤Ë½¾¤¤ÍøÍÑ¼Ô¤Î¥¢¥É¥ì¥¹¤òÊÝ¸î¤·¤Æ¤¤¤Þ¤¹¡£<br>
+<br>
+<form action="confirm.php" method="post">
+	¢£ÅÐÏ¿<br>
+	<font color="#FF0000"><!--{$arrErr.regist}--></font>
+	<input type="text" name="regist" value="<!--{$arrForm.regist|escape}-->" istyle="3"><br>
+	<div align="center"><input type="submit" name="btnRegist" value="¼¡¤Ø"></div>
+	<br>
+
+	¢£²ò½ü<br>
+	<font color="#FF0000"><!--{$arrErr.cancel}--></font>
+	<input type="text" name="cancel" value="<!--{$arrForm.cancel|escape}-->" istyle="3"><br>
+	<div align="center"><input type="submit" name="btnCancel" value="¼¡¤Ø"></div>
+	<br>
+</form>
+<br>
+
+¢£¥á¡¼¥ë¥¢¥É¥ì¥¹ÊÑ¹¹<br>
+¥á¡¼¥ë¥¢¥É¥ì¥¹ÊÑ¹¹´õË¾¤ÎÊý¤Ï°ìÅÙ¡¢ÅÐÏ¿²ò½ü¤·¤Æ¤«¤é¡¢¤â¤¦°ìÅÙÅÐÏ¿¤·Ä¾¤·¤Æ¤¯¤À¤µ¤¤¡£<br>
+
+<br>
+
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/magazine/complete.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/magazine/complete.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/magazine/complete.tpl	(revision 11460)
@@ -0,0 +1,17 @@
+<div align="center">´°Î»</div>
+<hr>
+
+¤´ÆþÎÏ¤¤¤¿¤À¤¤¤¿¥á¡¼¥ë¥¢¥É¥ì¥¹°¸¤Æ¤Ë¡¢¤´Ï¢Íí¤¬ÆÏ¤¤¤Æ¤ª¤ê¤Þ¤¹¤Î¤Ç¤´³ÎÇ§²¼¤µ¤¤¡£<br>
+º£¸å¤È¤â¤´°¦¸Ü»ò¤ê¤Þ¤¹¤è¤¦¤è¤í¤·¤¯¤ª´ê¤¤¿½¤·¾å¤²¤Þ¤¹¡£<br>
+<br>
+
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/contact/index.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/contact/index.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/contact/index.tpl	(revision 11460)
@@ -0,0 +1,24 @@
+<div align="center">¤ªÌä¤¤¹ç¤ï¤»</div>
+
+<hr>
+
+³Æ¼ï¤ªÌä¤¤¹ç¤»¤Ï¡¢²¼µ­¤Î¤ªÅÅÏÃËô¤Ï¥á¡¼¥ë¤Ë¤Æ¤´Ï¢Íí²¼¤µ¤¤¤Þ¤»¡£<br>
+¢£<!--{$company_name}--><br>
+¡ÚÅÅÏÃ¡Û<br>
+±Ä¶È»þ´Ö¡§<br>
+<!--{$business_hour}--><br>
+ÅÅÏÃÈÖ¹æ¡§<br>
+<!--{$tel01}-->-<!--{$tel02}-->-<!--{$tel02}--><br>
+¡ÚE-mail¡Û<br>
+<a href="mailto:<!--{$email01}-->"><!--{$email01}--></a><br>
+¢¨¤ªµÞ¤®¤Î¾ì¹ç¤Ë¤Ï¡¢¤ªÅÅÏÃ¤Ë¤Æ¤ªÌä¤¤¹ç¤»²¼¤µ¤¤¡£<br>
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/footer.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/footer.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/footer.tpl	(revision 11460)
@@ -0,0 +1,1 @@
+<center>LOCKON CO.,LTD.</center>
Index: branches/dev/data/Smarty/templates/mobile/guide/usage.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/guide/usage.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/guide/usage.tpl	(revision 11460)
@@ -0,0 +1,22 @@
+<center>¤´ÍøÍÑÊýË¡</center>
+
+<hr>
+
+<!-- ¢§¥á¥Ë¥å¡¼ ¤³¤³¤«¤é -->
+<a href="usage.php?page=1" accesskey="1"><!--{1|numeric_emoji}-->¾¦ÉÊ¤ÎÃµ¤·Êý</a><br>
+<a href="usage.php?page=2" accesskey="2"><!--{2|numeric_emoji}-->¤´ÃíÊ¸ÊýË¡</a><br>
+<a href="usage.php?page=3" accesskey="3"><!--{3|numeric_emoji}-->¤´ÃíÊ¸¸å</a><br>
+<a href="usage.php?page=4" accesskey="4"><!--{4|numeric_emoji}-->¾¦ÉÊÅþÃå¸å</a><br>
+<!-- ¢¥¥á¥Ë¥å¡¼ ¤³¤³¤Þ¤Ç -->
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/guide/usage1.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/guide/usage1.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/guide/usage1.tpl	(revision 11460)
@@ -0,0 +1,19 @@
+<center>¾¦ÉÊ¤ÎÃµ¤·Êý</center>
+
+<hr>
+
+<!-- ¢§ËÜÊ¸ ¤³¤³¤«¤é -->
+¡Ö¾¦ÉÊ¤ÎÃµ¤·Êý¡×¤ÎËÜÊ¸<br>
+<!-- ¢¥ËÜÊ¸ ¤³¤³¤Þ¤Ç -->
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/guide/usage2.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/guide/usage2.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/guide/usage2.tpl	(revision 11460)
@@ -0,0 +1,19 @@
+<center>¤´ÃíÊ¸ÊýË¡</center>
+
+<hr>
+
+<!-- ¢§ËÜÊ¸ ¤³¤³¤«¤é -->
+¡Ö¤´ÃíÊ¸ÊýË¡¡×¤ÎËÜÊ¸<br>
+<!-- ¢¥ËÜÊ¸ ¤³¤³¤Þ¤Ç -->
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/guide/index.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/guide/index.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/guide/index.tpl	(revision 11460)
@@ -0,0 +1,23 @@
+<center>¤´ÍøÍÑ¥¬¥¤¥É</center>
+
+<hr>
+
+<!-- ¢§¥á¥Ë¥å¡¼ ¤³¤³¤«¤é -->
+<a href="usage.php" accesskey="1"><!--{1|numeric_emoji}-->¤´ÍøÍÑÊýË¡</a><br>
+<a href="privacy.php" accesskey="2"><!--{2|numeric_emoji}-->¥×¥é¥¤¥Ð¥·¡¼¥Ý¥ê¥·¡¼</a><br>
+<a href="charge.php" accesskey="3"><!--{3|numeric_emoji}-->ÄÌ¿®ÎÁ¤Ë¤Ä¤¤¤Æ</a><br>
+<a href="kiyaku.php" accesskey="4"><!--{4|numeric_emoji}-->¤´ÍøÍÑµ¬Ìó</a><br>
+<a href="about.php" accesskey="5"><!--{5|numeric_emoji}-->±¿±Ä²ñ¼Ò¾Ò²ð</a><br>
+<!-- ¢¥¥á¥Ë¥å¡¼ ¤³¤³¤Þ¤Ç -->
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/guide/usage3.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/guide/usage3.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/guide/usage3.tpl	(revision 11460)
@@ -0,0 +1,19 @@
+<center>¤´ÃíÊ¸¸å</center>
+
+<hr>
+
+<!-- ¢§ËÜÊ¸ ¤³¤³¤«¤é -->
+¡Ö¤´ÃíÊ¸¸å¡×¤ÎËÜÊ¸<br>
+<!-- ¢¥ËÜÊ¸ ¤³¤³¤Þ¤Ç -->
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/guide/usage4.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/guide/usage4.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/guide/usage4.tpl	(revision 11460)
@@ -0,0 +1,19 @@
+<center>¾¦ÉÊÅþÃå¸å</center>
+
+<hr>
+
+<!-- ¢§ËÜÊ¸ ¤³¤³¤«¤é -->
+¡Ö¾¦ÉÊÅþÃå¸å¡×¤ÎËÜÊ¸<br>
+<!-- ¢¥ËÜÊ¸ ¤³¤³¤Þ¤Ç -->
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/guide/charge.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/guide/charge.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/guide/charge.tpl	(revision 11460)
@@ -0,0 +1,22 @@
+<center>ÄÌ¿®ÎÁ¤Ë¤Ä¤¤¤Æ</center>
+
+<hr>
+
+<!-- ¢§ËÜÊ¸ ¤³¤³¤«¤é -->
+Åö¥µ¥¤¥È¤Î¥³¥ó¥Æ¥ó¥Ä¤Ï¡¢²¼µ­ÌÈÀÕ»ö¹à¤ò¤ªÆÉ¤ß¤Ë¤Ê¤ê¡¢¤´Î»¾µ¤¤¤¿¤À¤¤¤¿Êý¤Ë¤ª»È¤¤Äº¤±¤Þ¤¹¡£<br>
+<br>
+¥Ñ¥±¥Ã¥ÈÄÌ¿®¤Ë¤Ï·ÈÂÓ¥­¥ã¥ê¥¢»ØÄê¤ÎÄÌ¿®ÎÁ¤¬È¯À¸¤·¤Þ¤¹¡£<br>
+ÅÅÇÈ¾õ¶·¤Ê¤É¤Ë¤è¤ê¡¢¥Ñ¥±¥Ã¥ÈÄÌ¿®¤ò¤ä¤êÄ¾¤¹¾ì¹ç¤¬¤¢¤ê¤Þ¤¹¡£<br>
+<!-- ¢¥ËÜÊ¸ ¤³¤³¤Þ¤Ç -->
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/guide/about.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/guide/about.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/guide/about.tpl	(revision 11460)
@@ -0,0 +1,55 @@
+<center>±¿±Ä²ñ¼Ò¾Ò²ð</center>
+
+<hr>
+
+<!-- ¢§ËÜÊ¸ ¤³¤³¤«¤é -->
+<!--{if $arrSiteInfo.shop_name != ""}-->
+[emoji:38]<font color="#800000">Å¹Ì¾</font><br>
+<!--{$arrSiteInfo.shop_name|escape}--><br>
+<!--{/if}-->
+<!--{if $arrSiteInfo.company_name != ""}-->
+[emoji:39]<font color="#800000">²ñ¼ÒÌ¾</font><br>
+<!--{$arrSiteInfo.company_name|escape}--><br>
+<!--{/if}-->
+<!--{if $arrSiteInfo.zip01 != ""}-->
+[emoji:121]<font color="#800000">½»½ê</font><br>
+¢©<!--{$arrSiteInfo.zip01|escape}-->-<!--{$arrSiteInfo.zip02|escape}--><br>
+<!--{$arrSiteInfo.pref|escape}--><!--{$arrSiteInfo.addr01|escape}--><!--{$arrSiteInfo.addr02|escape}--><br>
+<!--{/if}-->
+<!--{if $arrSiteInfo.tel01 != ""}-->
+[emoji:74]<font color="#800000">ÅÅÏÃÈÖ¹æ</font><br>
+<!--{$arrSiteInfo.tel01|escape}-->-<!--{$arrSiteInfo.tel02|escape}-->-<!--{$arrSiteInfo.tel03|escape}--><br>
+<!--{/if}-->
+<!--{if $arrSiteInfo.fax01 != ""}-->
+[emoji:76]<font color="#800000">FAXÈÖ¹æ</font><br>
+<!--{$arrSiteInfo.fax01|escape}-->-<!--{$arrSiteInfo.fax02|escape}-->-<!--{$arrSiteInfo.fax03|escape}--><br>
+<!--{/if}-->
+<!--{if $arrSiteInfo.business_hour != ""}-->
+[emoji:176]<font color="#800000">±Ä¶È»þ´Ö</font><br>
+<!--{$arrSiteInfo.business_hour|escape}--><br>
+<!--{/if}-->
+<!--{if $arrSiteInfo.email02 != ""}-->
+[emoji:110]<font color="#800000">¥á¡¼¥ë¥¢¥É¥ì¥¹</font><br>
+<a href="mailto:<!--{$arrSiteInfo.email02|escape}-->"><!--{$arrSiteInfo.email02|escape}--></a><br>
+<!--{/if}-->
+<!--{if $arrSiteInfo.good_traded != ""}-->
+[emoji:72]<font color="#800000">¼è°·¾¦ÉÊ</font><br>
+<!--{$arrSiteInfo.good_traded|escape|nl2br}--><br>
+<!--{/if}-->
+<!--{if $arrSiteInfo.message != ""}-->
+[emoji:70]<font color="#800000">¥á¥Ã¥»¡¼¥¸</font><br>
+<!--{$arrSiteInfo.message|escape|nl2br}--><br>
+<!--{/if}-->
+<!-- ¢¥ËÜÊ¸ ¤³¤³¤Þ¤Ç -->
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/guide/kiyaku.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/guide/kiyaku.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/guide/kiyaku.tpl	(revision 11460)
@@ -0,0 +1,30 @@
+<center>¤´ÍøÍÑµ¬Ìó(<!--{$tpl_kiyaku_index+1}-->/<!--{$tpl_kiyaku_last_index+1}-->)</center>
+
+<hr>
+
+<!-- ¢§ËÜÊ¸ ¤³¤³¤«¤é -->
+<font color="#ff0000"><!--{$tpl_kiyaku_title|escape}--></font><br>
+<!--{$tpl_kiyaku_text|escape}--><br>
+<!-- ¢¥ËÜÊ¸ ¤³¤³¤Þ¤Ç -->
+
+<!--{if !$tpl_kiyaku_is_first || !$tpl_kiyaku_is_last}-->
+<br>
+<!--{if !$tpl_kiyaku_is_first}-->
+<a href="kiyaku.php?page=<!--{$tpl_kiyaku_index-1}-->" accesskey="1"><!--{1|numeric_emoji}-->Ìá¤ë</a><br>
+<!--{/if}-->
+<!--{if !$tpl_kiyaku_is_last}-->
+<a href="kiyaku.php?page=<!--{$tpl_kiyaku_index+1}-->" accesskey="2"><!--{2|numeric_emoji}-->¿Ê¤à</a><br>
+<!--{/if}-->
+<!--{/if}-->
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/guide/privacy.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/guide/privacy.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/guide/privacy.tpl	(revision 11460)
@@ -0,0 +1,21 @@
+<center>¥×¥é¥¤¥Ð¥·¡¼¥Ý¥ê¥·¡¼</center>
+
+<hr>
+
+<!-- ¢§ËÜÊ¸ ¤³¤³¤«¤é -->
+<!--{$arrSiteInfo.company_name|escape}-->¤Ï¡¢¸Ä¿Í¾ðÊóÊÝ¸î¤Î½ÅÍ×À­¤Ë´Õ¤ß¡¢¡Ö¸Ä¿Í¾ðÊó¤ÎÊÝ¸î¤Ë´Ø¤¹¤ëË¡Î§¡×µÚ¤ÓËÜ¥×¥é¥¤¥Ð¥·¡¼¥Ý¥ê¥·¡¼¤ò½å¼é¤·¡¢¤ªµÒ¤µ¤Þ¤Î¥×¥é¥¤¥Ð¥·¡¼ÊÝ¸î¤ËÅØ¤á¤Þ¤¹¡£<br>
+¡¡¸Ä¿Í¾ðÊó¤ÎÄêµÁ<br>
+¤ªµÒ¤µ¤Þ¸Ä¿Í¤Ë´Ø¤¹¤ë¾ðÊó(°Ê²¼¡Ö¸Ä¿Í¾ðÊó¡×¤È¤¤¤¤¤Þ¤¹)¤Ç¤¢¤Ã¤Æ¡¢¤ªµÒ¤µ¤Þ¤Î¤ªÌ¾Á°¡¢¤´½»½ê¡¢ÅÅÏÃÈÖ¹æ¤Ê¤ÉÅö³º¤ªµÒ¤µ¤Þ¸Ä¿Í¤ò¼±ÊÌ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¾ðÊó¤ò¤µ¤·¤Þ¤¹¡£Â¾¤Î¾ðÊó¤ÈÁÈ¤ß¹ç¤ï¤»¤Æ¾È¹ç¤¹¤ë¤³¤È¤Ë¤è¤ê¸Ä¿Í¤ò¼±ÊÌ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¾ðÊó¤â´Þ¤Þ¤ì¤Þ¤¹¡£<br>
+<!-- ¢¥ËÜÊ¸ ¤³¤³¤Þ¤Ç -->
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/regist/complete.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/regist/complete.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/regist/complete.tpl	(revision 11460)
@@ -0,0 +1,31 @@
+<center>ËÜ²ñ°÷ÅÐÏ¿´°Î»</center>
+
+<hr>
+
+ËÜÅÐÏ¿¤¬´°Î»¤¤¤¿¤·¤Þ¤·¤¿¡£<br>
+¤½¤ì¤Ç¤Ï¥·¥ç¥Ã¥Ô¥ó¥°¤ò¤ª³Ú¤·¤ß¤¯¤À¤µ¤¤¡£<br>
+
+<br>
+
+º£¸å¤È¤â¤´°¦¸Ü»ò¤ê¤Þ¤¹¤è¤¦¤è¤í¤·¤¯¤ª´ê¤¤¿½¤·¾å¤²¤Þ¤¹¡£<br>
+
+<br>
+
+<!--{$arrSiteInfo.company_name|escape}--><br>
+TEL¡§<!--{$arrSiteInfo.tel01}-->-<!--{$arrSiteInfo.tel02}-->-<!--{$arrSiteInfo.tel03}--> <!--{if $arrSiteInfo.business_hour != ""}-->¡Ê¼õÉÕ»þ´Ö/<!--{$arrSiteInfo.business_hour}-->¡Ë<!--{/if}--><br>
+E-mail¡§<a href="mailto:<!--{$arrSiteInfo.email02|escape}-->"><!--{$arrSiteInfo.email02|escape}--></a><br>
+
+<br>
+
+<!--{if !$tpl_cart_empty}-->
+<a href="<!--{$smarty.const.URL_DIR}-->shopping/deliv.php">¤´ÃíÊ¸¼êÂ³¤­¤Ø¿Ê¤à</a><br>
+<!--{/if}-->
+
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->">TOP¥Ú¡¼¥¸¤ËÌá¤ë</a><br>
+
+<br>
+<hr>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<center>LOCKON CO.,LTD.</center>
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/regist/error.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/regist/error.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/regist/error.tpl	(revision 11460)
@@ -0,0 +1,17 @@
+<center>ËÜ²ñ°÷ÅÐÏ¿</center>
+
+<hr>
+
+<font color="#ff0000"><!--{$arrErr.id}--></font>
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<center>LOCKON CO.,LTD.</center>
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/top.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/top.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/top.tpl	(revision 11460)
@@ -0,0 +1,36 @@
+<!-- ¢§¥í¥´ ¤³¤³¤«¤é -->
+<center><img src="<!--{$smarty.const.PC_URL_DIR}-->img/header/logo.gif"></center>
+<!-- ¢¥¥í¥´ ¤³¤³¤Þ¤Ç -->
+
+<br>
+
+<!-- ¢§¿·Ãå¾ðÊó ¤³¤³¤«¤é -->
+<!--{include_php file=`$smarty.const.HTML_PATH`frontparts/bloc/news.php}-->
+<!-- ¢¥¿·Ãå¾ðÊó ¤³¤³¤Þ¤Ç -->
+
+<br>
+
+<!-- ¢§¥Ô¥Ã¥¯¥¢¥Ã¥×¾¦ÉÊ ¤³¤³¤«¤é -->
+<hr>
+<!--{include_php file=`$smarty.const.HTML_PATH`frontparts/bloc/best5.php}-->
+<hr>
+<!-- ¢¥¥Ô¥Ã¥¯¥¢¥Ã¥×¾¦ÉÊ ¤³¤³¤Þ¤Ç -->
+
+<br>
+
+<!-- ¢§¥á¥Ë¥å¡¼ ¤³¤³¤«¤é -->
+<!--{1|numeric_emoji}-->¾¦ÉÊ¥«¥Æ¥´¥ê<br>
+<!--{include_php file=`$smarty.const.HTML_PATH`frontparts/bloc/category.php}-->
+<a href="products/search.php" accesskey="2"><!--{2|numeric_emoji}-->¾¦ÉÊ¸¡º÷</a><br>
+<a href="magazine/index.php" accesskey="3"><!--{3|numeric_emoji}-->¥á¥ë¥Þ¥¬ÅÐÏ¿</a><br>
+<a href="entry/new.php" accesskey="4"><!--{4|numeric_emoji}-->²ñ°÷ÅÐÏ¿¡¦Âà²ñ</a><br>
+<a href="guide/index.php" accesskey="5"><!--{5|numeric_emoji}-->¤´ÍøÍÑ¥¬¥¤¥É</a><br>
+<a href="contact/index.php" accesskey="6"><!--{6|numeric_emoji}-->¤ªÌä¤¤¹ç¤»</a><br>
+<a href="mypage/index.php" accesskey="7"><!--{7|numeric_emoji}-->My¥Ú¡¼¥¸</a><br>
+<!-- ¢¥¥á¥Ë¥å¡¼ ¤³¤³¤Þ¤Ç -->
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/forgot/secret.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/forgot/secret.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/forgot/secret.tpl	(revision 11460)
@@ -0,0 +1,30 @@
+<center>¥Ñ¥¹¥ï¡¼¥É¤òËº¤ì¤¿Êý</center>
+
+<hr>
+
+<!--{if $errmsg}-->
+<font color="#ff0000"><!--{$errmsg}--></font><br>
+<!--{/if}-->
+
+¤´ÅÐÏ¿»þ¤ËÆþÎÏ¤·¤¿²¼µ­¼ÁÌä¤ÎÅú¤¨¤òÆþÎÏ¤·¤Æ¡Ö¼¡¤Ø¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤¡£<br>
+¢¨²¼µ­¼ÁÌä¤ÎÅú¤¨¤ò¤ªËº¤ì¤Ë¤Ê¤é¤ì¤¿¾ì¹ç¤Ï¡¢<a href="mailto:<!--{$arrSiteInfo.email02|escape}-->"><!--{$arrSiteInfo.email02|escape}--></a>¤Þ¤Ç¤´Ï¢Íí¤¯¤À¤µ¤¤¡£<br>
+
+<form action="<!--{$smarty.server.PHP_SELF|escape}-->" method="post">
+<input type="hidden" name="mode" value="secret_check">
+
+<!--{$Reminder|escape}-->¡§<input type="text" name="input_reminder" value="" size="40"><br>
+
+<center><input type="submit" value="¼¡¤Ø" name="next"></center>
+</form>
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/forgot/index.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/forgot/index.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/forgot/index.tpl	(revision 11460)
@@ -0,0 +1,40 @@
+<center>¥Ñ¥¹¥ï¡¼¥É¤òËº¤ì¤¿Êý</center>
+
+<font color="#ff0000">¢¨¿·¤·¤¯¥Ñ¥¹¥ï¡¼¥É¤òÈ¯¹Ô¤¤¤¿¤·¤Þ¤¹¤Î¤Ç¡¢¤ªËº¤ì¤Ë¤Ê¤Ã¤¿¥Ñ¥¹¥ï¡¼¥É¤Ï¤´ÍøÍÑ¤Ç¤­¤Ê¤¯¤Ê¤ê¤Þ¤¹¡£</font>
+
+<hr>
+
+<!--{if $errmsg}-->
+<font color="#ff0000"><!--{$errmsg}--></font><br>
+<!--{/if}-->
+
+<!--{if @$tpl_kara_mail_to != ''}-->
+¢£¤´ÅÐÏ¿»þ¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤«¤é¥á¡¼¥ë¤òÁ÷¤ì¤ëÊý¤Ï¡¢¼¡¤Î¥ê¥ó¥¯¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¶õ¥á¡¼¥ë¤òÁ÷¿®¤·¤Æ¤¯¤À¤µ¤¤¡£<br>
+<center><a href="mailto:<!--{$tpl_kara_mail_to|escape:'url'}-->">¥á¡¼¥ëÁ÷¿®</a></center>
+
+<br>
+
+¢£¥á¡¼¥ë¤òÁ÷¤ì¤Ê¤¤Êý¤Ï¡¢¤´ÅÐÏ¿»þ¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤òÆþÎÏ¤·¤Æ¡Ö¼¡¤Ø¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤¡£<br>
+<!--{else}-->
+¤´ÅÐÏ¿»þ¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤òÆþÎÏ¤·¤Æ¡Ö¼¡¤Ø¡×¥Ü¥¿¥ó¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¤¯¤À¤µ¤¤¡£<br>
+<!--{/if}-->
+
+<form action="<!--{$smarty.server.PHP_SELF|escape}-->" method="post">
+<input type="hidden" name="mode" value="mail_check">
+
+¥á¡¼¥ë¥¢¥É¥ì¥¹¡§<input type="text" name="email" value="<!--{$tpl_login_email|escape}-->" size="50" istyle="3"><br>
+
+<center><input type="submit" value="¼¡¤Ø" name="next"></center>
+</form>
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/forgot/complete.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/forgot/complete.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/forgot/complete.tpl	(revision 11460)
@@ -0,0 +1,22 @@
+<center>¥Ñ¥¹¥ï¡¼¥É¤òËº¤ì¤¿Êý</center>
+
+<hr>
+
+¥Ñ¥¹¥ï¡¼¥É¤ÎÈ¯¹Ô¤¬´°Î»¤¤¤¿¤·¤Þ¤·¤¿¡£¥í¥°¥¤¥ó¤Ë¤Ï²¼µ­¤Î¥Ñ¥¹¥ï¡¼¥É¤ò¤´ÍøÍÑ¤¯¤À¤µ¤¤¡£<br>
+¢¨²¼µ­¥Ñ¥¹¥ï¡¼¥É¤Ï¡¢MY¥Ú¡¼¥¸¤Î¡Ö²ñ°÷ÅÐÏ¿ÆâÍÆÊÑ¹¹¡×¤è¤ê¤´ÊÑ¹¹¤¤¤¿¤À¤±¤Þ¤¹¡£<br>
+
+<br>
+
+<center><font color="red"><!--{$temp_password}--></font></center>
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/mail_templates/mailmagazine_regist.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/mail_templates/mailmagazine_regist.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/mail_templates/mailmagazine_regist.tpl	(revision 11460)
@@ -0,0 +1,11 @@
+¢¨ËÜÒ°Ù¤Ï¼«Æ°ÇÛ¿®Ò°Ù¤Ç¤¹¡
+<!--{$tpl_shopname}-->¤è¤ê¤ÒÙÏ¶Þ¹ØÆÉÅÐÏ¿¤ò´õË¾¤µ¤ì¤¿Êý¤Ë¤ªÁ÷¤ê¤·¤Æ¤¤¤Þ¤¹¡
+¤â¤·¤ª¿´Åö¤¿¤ê¤¬Ìµ¤¤¾ì¹ç¤Ï¤¤³¤Î¤Þ¤Þ¤³¤ÎÒ°Ù¤òÇË´þ¤·¤Æ¤¤¤¿¤À¤±¤ì¤ÐÒÙÏ¶Þ¹ØÆÉÅÐÏ¿¤Ï¤Ê¤µ¤ì¤Þ¤»¤ó¡
+¤Þ¤¿¤½¤Î»Ý¤<!--{$tpl_infoemail}-->¤Þ¤Ç¤´Ï¢Íí¤¤¤¿¤À¤±¤ì¤Ð¹¬¤¤¤Ç¤¹¡
+
+¤³¤ÎÅÙ¤Ï¤ÒÙÏ¶Þ¹ØÆÉ°ÍÍê¤ò¤¤¤¿¤À¤­¤Þ¤·¤Æ¤Í­¤êÆñ¤¦¤´¤¶¤¤¤Þ¤¹¡
+¸½ºß¤Ï²¾ÅÐÏ¿¤Î¾õÂÖ¤Ç¤¹¡
+´°Î»¤¹¤ë¤Ë¤Ï²¼µ­URL¤Ë±¸¾½¤·¤Æ¤¯¤À¤µ¤¤¡
+¢¨ÆþÎÏ¤µ¤ì¤¿¤ªµÒÍÍ¤Î¾ðÊó¤ÏSSL°Å¹æ²½ÄÌ¿®¤Ë¤è¤êÊÝ¸î¤µ¤ì¤Þ¤¹¡
+
+<!--{$tpl_url}-->
Index: branches/dev/data/Smarty/templates/mobile/mail_templates/order_mail.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/mail_templates/order_mail.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/mail_templates/order_mail.tpl	(revision 11460)
@@ -0,0 +1,21 @@
+<!--{$arrOrder.order_name01}--> <!--{$arrOrder.order_name02}--> ÍÍ
+
+¢£ÇÛÁ÷¾ðÊó¤È¤´ÀÁµá¶â³Û
+¤´ÃíÊ¸ÈÖ¹æ¡§<!--{$arrOrder.order_id}-->
+¤ª»ÙÊ§¹ç·×¡§¡ï <!--{$arrOrder.payment_total|number_format|default:0}-->
+¤´·èºÑÊýË¡¡§<!--{$arrOrder.payment_method}-->
+¡¡¤ªÆÏ¤±Æü¡§<!--{$arrOrder.deliv_date|default:"»ØÄê¤Ê¤·"}-->
+¤ªÆÏ¤±»þ´Ö¡§<!--{$arrOrder.deliv_time|default:"»ØÄê¤Ê¤·"}-->
+¡ý¤ªÆÏ¤±Àè
+¡¡¤ªÌ¾Á°¡¡¡§<!--{$arrOrder.deliv_name01}--> <!--{$arrOrder.deliv_name02}-->¡¡ÍÍ
+¡¡Í¹ÊØÈÖ¹æ¡§¢©<!--{$arrOrder.deliv_zip01}-->-<!--{$arrOrder.deliv_zip02}-->
+¡¡¤´½»½ê¡¡¡§<!--{$arrOrder.deliv_pref}--><!--{$arrOrder.deliv_addr01}--><!--{$arrOrder.deliv_addr02}-->
+¡¡ÅÅÏÃÈÖ¹æ¡§<!--{$arrOrder.deliv_tel01}-->-<!--{$arrOrder.deliv_tel02}-->-<!--{$arrOrder.deliv_tel03}-->
+
+¢£¤´ÃíÊ¸¾¦ÉÊÌÀºÙ
+<!--{section name=cnt loop=$arrOrderDetail}-->
+¾¦ÉÊÌ¾: <!--{$arrOrderDetail[cnt].product_name}--> <!--{$arrOrderDetail[cnt].classcategory_name1}--> <!--{$arrOrderDetail[cnt].classcategory_name2}-->
+¿ôÎÌ¡§<!--{$arrOrderDetail[cnt].quantity}--> ¸Ä
+¶â³Û¡§¡ï <!--{$arrOrderDetail[cnt].price|sfPreTax:$arrInfo.tax:$arrInfo.tax_rule|number_format}-->
+
+<!--{/section}-->
Index: branches/dev/data/Smarty/templates/mobile/mail_templates/customer_regist_mail.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/mail_templates/customer_regist_mail.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/mail_templates/customer_regist_mail.tpl	(revision 11460)
@@ -0,0 +1,10 @@
+<!--{$name01}--><!--{$name02}--> ÍÍ
+
+<!--{$CONF.shop_name}-->¤Ç¤´¤¶¤¤¤Þ¤¹¡£
+
+¤³¤ÎÅÙ¤Ï²ñ°÷ÅÐÏ¿°ÍÍê¤ò¤¤¤¿¤À¤­¤Þ¤·¤Æ¤Þ¤³¤È¤ËÍ­¤êÆñ¤¦¤´¤¶¤¤¤Þ¤¹¡£
+
+ËÜ²ñ°÷ÅÐÏ¿¤¬´°Î»¤¤¤¿¤·¤Þ¤·¤¿¡£
+¥·¥ç¥Ã¥Ô¥ó¥°¤ò¤ª³Ú¤·¤ß¤¯¤À¤µ¤¤¤Þ¤»¡£
+
+º£¸å¤È¤â¤É¤¦¤¾<!--{$CONF.shop_name}-->¤ò¤è¤í¤·¤¯¤ª´ê¤¤¿½¤·¾å¤²¤Þ¤¹¡£
Index: branches/dev/data/Smarty/templates/mobile/mail_templates/customer_mail.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/mail_templates/customer_mail.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/mail_templates/customer_mail.tpl	(revision 11460)
@@ -0,0 +1,14 @@
+¢¨ËÜ¥á¡¼¥ë¤Ï¡¢
+<!--{$CONF.shop_name}-->¤è¤ê²ñ°÷ÅÐÏ¿¤ò´õË¾¤µ¤ì¤¿Êý¤Ë¤ªÁ÷¤ê¤·¤Æ¤¤¤Þ¤¹¡£
+¤â¤·¤ª¿´Åö¤¿¤ê¤¬Ìµ¤¤¾ì¹ç¤Ï¤³¤Î¤Þ¤Þ¤³¤Î¥á¡¼¥ë¤òÇË´þ¤·¤Æ¤¤¤¿¤À¤±¤ì¤Ð²ñ°÷ÅÐÏ¿¤Ï¤Ê¤µ¤ì¤Þ¤»¤ó¡£
+
+<!--{$to_name01}--> <!--{$to_name02}--> ÍÍ
+
+<!--{$CONF.shop_name}-->¤Ç¤´¤¶¤¤¤Þ¤¹¡£
+¤³¤ÎÅÙ¤Ï²ñ°÷ÅÐÏ¿°ÍÍê¤ò¤¤¤¿¤À¤­¤Þ¤·¤Æ¡¢Í­¤êÆñ¤¦¤´¤¶¤¤¤Þ¤¹¡£
+¸½ºß¤Ï²¾ÅÐÏ¿¤Î¾õÂÖ¤Ç¤¹¡£
+¡¡¡¡¡¡~~~~~~
+ËÜ²ñ°÷ÅÐÏ¿¤ò´°Î»¤¹¤ë¤Ë¤Ï²¼µ­URL¤Ë¥¢¥¯¥»¥¹¤·¤Æ¤¯¤À¤µ¤¤¡£
+<!--{$smarty.const.SSL_URL}-->regist/index.php?mode=regist&id=<!--{$uniqid}-->
+
+¾åµ­URL¤Ë¤ÆËÜ²ñ°÷ÅÐÏ¿¤¬´°Î»¤¤¤¿¤·¤Þ¤·¤¿¤é²þ¤á¤Æ¤´ÅÐÏ¿ÆâÍÆ¤´³ÎÇ§¥á¡¼¥ë¤ò¤ªÁ÷¤êÃ×¤·¤Þ¤¹¡£
Index: branches/dev/data/Smarty/templates/mobile/mail_templates/mail_title.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/mail_templates/mail_title.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/mail_templates/mail_title.tpl	(revision 11460)
@@ -0,0 +1,1 @@
+¡Ú<!--{$tpl_shopname}-->¡Û <!--{$tpl_mailtitle}-->
Index: branches/dev/data/Smarty/templates/mobile/mail_templates/mailmagazine_cancel.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/mail_templates/mailmagazine_cancel.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/mail_templates/mailmagazine_cancel.tpl	(revision 11460)
@@ -0,0 +1,10 @@
+¢¨ËÜÒ°Ù¤Ï¼«Æ°ÇÛ¿®Ò°Ù¤Ç¤¹¡
+<!--{$tpl_shopname}-->¤è¤ê¤ÒÙÏ¶Þ¹ØÆÉ²ò½ü¤ò´õË¾¤µ¤ì¤¿Êý¤Ë¤ªÁ÷¤ê¤·¤Æ¤¤¤Þ¤¹¡
+¤â¤·¤ª¿´Åö¤¿¤ê¤¬Ìµ¤¤¾ì¹ç¤Ï¤¤³¤Î¤Þ¤Þ¤³¤ÎÒ°Ù¤òÇË´þ¤·¤Æ¤¤¤¿¤À¤±¤ì¤ÐÒÙÏ¶Þ¹ØÆÉ²ò½ü¤Ï¤Ê¤µ¤ì¤Þ¤»¤ó¡
+¤Þ¤¿¤½¤Î»Ý¤<!--{$tpl_infoemail}-->¤Þ¤Ç¤´Ï¢Íí¤¤¤¿¤À¤±¤ì¤Ð¹¬¤¤¤Ç¤¹¡
+
+¸½ºß¤Ï¤Þ¤À¹ØÆÉ¤µ¤ì¤¿¾õÂÖ¤Ç¤¹¡
+´°Î»¤¹¤ë¤Ë¤Ï²¼µ­URL¤Ë±¸¾½¤·¤Æ¤¯¤À¤µ¤¤¡
+¢¨ÆþÎÏ¤µ¤ì¤¿¤ªµÒÍÍ¤Î¾ðÊó¤ÏSSL°Å¹æ²½ÄÌ¿®¤Ë¤è¤êÊÝ¸î¤µ¤ì¤Þ¤¹¡
+
+<!--{$tpl_url}-->
Index: branches/dev/data/Smarty/templates/mobile/entry/mail.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/entry/mail.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/entry/mail.tpl	(revision 11460)
@@ -0,0 +1,24 @@
+<center>¥á¡¼¥ë¥¢¥É¥ì¥¹ÅÐÏ¿</center>
+
+<hr>
+
+¼¡¤Î¥ê¥ó¥¯¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¶õ¥á¡¼¥ë¤òÁ÷¿®¤·¤Æ¤¯¤À¤µ¤¤¡£
+¤¹¤°¤Ë¤´°ÆÆâ¤Î¥á¡¼¥ë¤¬Á÷¿®¤µ¤ì¤Þ¤¹¤Î¤Ç¡¢¥á¡¼¥ëÆâ¤Î¥ê¥ó¥¯¤ò¥¯¥ê¥Ã¥¯¤·¤Æ²ñ°÷¾ðÊó¤ÎÆþÎÏ¤Ë¿Ê¤ó¤Ç¤¯¤À¤µ¤¤¡£<br>
+<font color="#ff0000">¢¨¥É¥á¥¤¥ó»ØÄê¼õ¿®µ¡Ç½¤òÍøÍÑ¤µ¤ì¤Æ¤¤¤ëÊý¤Ï¡¢¥á¡¼¥ë¤òÁ÷¿®¤¹¤ëÁ°¤ËÉ¬¤º¡Ö<!--{$tpl_from_address|escape}-->¡×¤«¤é¤Î¥á¡¼¥ë¤¬¼õ¿®¤Ç¤­¤ë¤è¤¦¤ËÀßÄê¤·¤Æ¤ª¤¤¤Æ¤¯¤À¤µ¤¤¡£</font><br>
+<br>
+
+<br>
+
+<center><a href="mailto:<!--{$tpl_kara_mail_to|escape:'url'}-->">¥á¡¼¥ëÁ÷¿®</a></center>
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/entry/email_mobile_complete.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/entry/email_mobile_complete.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/entry/email_mobile_complete.tpl	(revision 11460)
@@ -0,0 +1,17 @@
+<center>·ÈÂÓ¥á¡¼¥ëÅÐÏ¿´°Î»</center>
+
+<hr>
+
+·ÈÂÓÅÅÏÃ¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤ÎÅÐÏ¿¤¬´°Î»¤¤¤¿¤·¤Þ¤·¤¿¡£<br>
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/entry/index.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/entry/index.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/entry/index.tpl	(revision 11460)
@@ -0,0 +1,63 @@
+<div align="center">²ñ°÷¾ðÊóÆþÎÏ 1/3</div>
+<hr>
+<form name="form1" method="post" action="<!--{$smarty.server.PHP_SELF|escape}-->">
+	<input type="hidden" name="mode" value="set1">
+
+	<font color="#FF0000">*¤ÏÉ¬¿Ü¹àÌÜ¤Ç¤¹¡£</font><br>
+	<br>
+
+	¡Ú¥á¡¼¥ë¥¢¥É¥ì¥¹¡Û<font color="#FF0000">¢¨</font><br>
+	<font color="#FF0000"><!--{$arrErr.email}--></font>
+<!--{if @$tpl_kara_mail_from}-->
+  <!--{$tpl_kara_mail_from|escape}-->
+<!--{else}-->
+	<input type="text" name="email" value="<!--{$email|escape}-->" istyle="3">
+<!--{/if}-->
+  <br>
+
+	¡Ú¥Ñ¥¹¥ï¡¼¥É¡Û<font color="#FF0000">¢¨</font><br>
+	¡ÊÈ¾³Ñ±Ñ¿ô»ú<!--{$smarty.const.PASSWORD_LEN1}-->Ê¸»ú°Ê¾å<!--{$smarty.const.PASSWORD_LEN2}-->Ê¸»ú°ÊÆâ¡Ë<br>
+	<font color="#FF0000"><!--{$arrErr.password}--></font>
+	<!--{assign var="size" value="`$smarty.const.PASSWORD_LEN2+2`"}-->
+	<input type="text" name="password" value="<!--{$arrForm.password}-->" istyle="4" maxlength="<!--{$smarty.const.PASSWORD_LEN2}-->" size="<!--{$size}-->"><br>
+
+	¡Ú¥Ñ¥¹¥ï¡¼¥É³ÎÇ§ÍÑ¤Î¼ÁÌä¡Û<font color="#FF0000">¢¨</font><br>
+	<font color="#FF0000"><!--{$arrErr.reminder}--></font>
+	<select name="reminder">
+		<option value="" selected>ÁªÂò¤·¤Æ¤¯¤À¤µ¤¤</option>
+		<!--{html_options options=$arrReminder selected=$reminder}-->
+	</select><br>
+
+	¡Ú¼ÁÌä¤ÎÅú¤¨¡Û<font color="#FF0000">¢¨</font><br>
+	<font color="#FF0000"><!--{$arrErr.reminder_answer}--></font>
+	<input type="text" name="reminder_answer" value="<!--{$reminder_answer|escape}-->" istyle="1"><br>
+
+	¡Ú¤ªÌ¾Á°¡Û<font color="#FF0000">¢¨</font><br>
+	<font color="#FF0000"><!--{$arrErr.name01}--><!--{$arrErr.name02}--></font>
+	À«¡ÊÎã¡§½ÂÃ«¡Ë<br>
+	<input type="text" name="name01" value="<!--{$name01|escape}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" istyle="1"><br>
+
+	Ì¾¡ÊÎã¡§²Ö»Ò¡Ë<br>
+	<input type="text" name="name02" value="<!--{$name02|escape}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" istyle="1"><br>
+	<font color="#FF0000"><!--{$arrErr.kana01}--><!--{$arrErr.kana02}--></font>
+
+	¥«¥Ê/À«¡ÊÎã¡§¥·¥Ö¥ä¡Ë<br>
+	<input type="text" name="kana01" value="<!--{$kana01|escape}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" istyle="2"><br>
+
+	¥«¥Ê/Ì¾¡ÊÎã¡§¥Ï¥Ê¥³¡Ë<br>
+	<input type="text" name="kana02" value="<!--{$kana02|escape}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" istyle="2"><br>
+
+	<input type="submit" name="confirm" value="¼¡¤Ø">
+</form>
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/entry/complete.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/entry/complete.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/entry/complete.tpl	(revision 11460)
@@ -0,0 +1,20 @@
+<div align="center">²ñ°÷ÅÐÏ¿´°Î»</div>
+<hr>
+
+²ñ°÷ÅÐÏ¿¤Î¼õÉÕ¤¬´°Î»¤¤¤¿¤·¤Þ¤·¤¿¡£<br>
+¸½ºß<font color="#FF0000">²¾²ñ°÷</font>¤Î¾õÂÖ¤Ç¤¹¡£<br>
+¤´ÆþÎÏ¤¤¤¿¤À¤¤¤¿¥á¡¼¥ë¥¢¥É¥ì¥¹°¸¤Æ¤Ë¡¢¤´Ï¢Íí¤¬ÆÏ¤¤¤Æ¤ª¤ê¤Þ¤¹¤Î¤Ç¡¢ËÜ²ñ°÷ÅÐÏ¿¤Ë¤Ê¤Ã¤¿¾å¤Ç¤ªÇã¤¤Êª¤ò¤ª³Ú¤·¤ß¤¯¤À¤µ¤¤¡£<br>
+º£¸å¤È¤â¤´°¦¸Ü»ò¤ê¤Þ¤¹¤è¤¦¤è¤í¤·¤¯¤ª´ê¤¤¿½¤·¾å¤²¤Þ¤¹¡£<br>
+
+<br>
+
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/entry/new.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/entry/new.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/entry/new.tpl	(revision 11460)
@@ -0,0 +1,20 @@
+<div align="center">¿·µ¬¤´ÅÐÏ¿</div>
+<hr>
+
+¤´ÃíÊ¸¤ËºÝ¤·¤ÆÉ¬Í×¤ÊÆâÍÆ¡Ê¤´¼«Âð½»½êÅù¡Ë¤ò¤´ÅÐÏ¿¤·¤Æ¤¤¤¿¤À¤­¤Þ¤¹¡£<br>
+¤´ÍøÍÑ¤Îµ¬Ìó¤ò¤è¤¯¤ªÆÉ¤ß¤Î¾å¡¢¤´ÅÐÏ¿²¼¤µ¤¤¡£<br>
+<a href="kiyaku.php" accesskey="1"><!--{1|numeric_emoji}-->²ñ°÷µ¬Ìó¤òÆÉ¤à<br>
+<a href="index.php" accesskey="2"><!--{2|numeric_emoji}-->Æ±°Õ¤·¤ÆÅÐÏ¿¤Ø<br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="3"><!--{3|numeric_emoji}-->Æ±°Õ¤·¤Ê¤¤<br>
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/entry/set1.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/entry/set1.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/entry/set1.tpl	(revision 11460)
@@ -0,0 +1,54 @@
+<div align="center">²ñ°÷¾ðÊóÆþÎÏ 2/3</div>
+<hr>
+<form name="form1" method="post" action="<!--{$smarty.server.PHP_SELF|escape}-->">
+	<input type="hidden" name="mode" value="set2">
+
+	<font color="#FF0000">*¤ÏÉ¬¿Ü¹àÌÜ¤Ç¤¹¡£</font><br>
+	<br>
+
+	¡ÚÀ­ÊÌ¡Û<font color="#FF0000">*</font><br>
+	<font color="#FF0000"><!--{$arrErr.sex}--></font>
+	<input type="radio" name="sex" value="1" <!--{if $sex eq 1}-->checked<!--{/if}--> />ÃËÀ­&nbsp;<input type="radio" name="sex" value="2" <!--{if $sex eq 2}-->checked<!--{/if}--> />½÷À­<br>
+
+	¡ÚÀ¸Ç¯·îÆü¡Û<font color="#FF0000">*</font><br>
+	<font color="#FF0000"><!--{$arrErr.year}--><!--{$arrErr.month}--><!--{$arrErr.day}--></font>
+	<select name="year">
+		<!--{html_options options=$arrYear selected=$year}-->
+	</select>Ç¯<br>
+	<select name="month">
+		<option value="">--</option>
+		<!--{html_options options=$arrMonth selected=$month}-->
+	</select>·î<br>
+	<select value="" name="day">
+		<option value="">--</option>
+		<!--{html_options options=$arrDay selected=$day}-->
+	</select>Æü<br>
+
+	<!--{assign var=key1 value="zip01"}-->
+	<!--{assign var=key2 value="zip02"}-->
+	¡ÚÍ¹ÊØÈÖ¹æ¡Û<font color="#FF0000">*</font><br>
+	<font color="#FF0000"><!--{$arrErr[$key1]}--><!--{$arrErr[$key2]}--></font>
+	<!--{assign var="size1" value="`$smarty.const.ZIP01_LEN+2`"}-->
+	<!--{assign var="size2" value="`$smarty.const.ZIP02_LEN+2`"}-->
+	<input size="<!--{$size1}-->" type="text" name="zip01" value="<!--{if $zip01 == ""}--><!--{$arrOtherDeliv.zip01|escape}--><!--{else}--><!--{$zip01|escape}--><!--{/if}-->" maxlength="<!--{$smarty.const.ZIP01_LEN}-->" istyle="4">
+	&nbsp;-&nbsp;
+	<input size="<!--{$size2}-->" type="text" name="zip02" value="<!--{if $zip02 == ""}--><!--{$arrOtherDeliv.zip02|escape}--><!--{else}--><!--{$zip02|escape}--><!--{/if}-->" maxlength="<!--{$smarty.const.ZIP02_LEN}-->" istyle="4"><br>
+
+	<input type="submit" name="confirm" value="¼¡¤Ø">
+
+	<!--{foreach from=$list_data key=key item=item}-->
+		<input type="hidden" name="<!--{$key|escape}-->" value="<!--{$item|escape}-->">
+	<!--{/foreach}-->
+</form>
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/entry/confirm.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/entry/confirm.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/entry/confirm.tpl	(revision 11460)
@@ -0,0 +1,45 @@
+<div align="center">ÅÐÏ¿³ÎÇ§</div>
+<hr>
+<form name="form1" id="form1" method="post" action="<!--{$smarty.server.PHP_SELF|escape}-->">
+	<input type="hidden" name="mode" value="complete">
+	<!--{foreach from=$list_data key=key item=item}-->
+		<input type="hidden" name="<!--{$key|escape}-->" value="<!--{$item|escape}-->">
+	<!--{/foreach}-->
+	²¼µ­¤ÎÆâÍÆ¤Ç¤´ÅÐÏ¿¤·¤Æ¤â¤è¤í¤·¤¤¤Ç¤¹¤«¡©<br>
+	<br>
+	¡ÚÒ°Ù±ÄÞÚ½¡Û<br>
+	<!--{$list_data.email|escape}--><br>
+
+	¡ÚÊß½Ü°ÄÞ³ÎÇ§ÍÑ¼ÁÌä¡Û<br>
+	<!--{$arrReminder[$list_data.reminder]|escape}--><br>
+
+	¡Ú¼ÁÌä¤ÎÅú¤¨¡Û<br>
+	<!--{$list_data.reminder_answer|escape}--><br>
+
+	¡Ú¸Ä¿Í¾ðÊó¡Û<br>
+	<!--{$list_data.name01|escape}-->¡¡<!--{$list_data.name02|escape}--><br>
+	<!--{$list_data.kana01|escape}-->¡¡<!--{$list_data.kana02|escape}--><br>
+	<!--{if $list_data.sex eq 1}-->ÃËÀ­<!--{else}-->½÷À­<!--{/if}--><br>
+	<!--{if strlen($list_data.year) > 0 && strlen($list_data.month) > 0 && strlen($list_data.day) > 0}--><!--{$list_data.year|escape}-->Ç¯<!--{$list_data.month|escape}-->·î<!--{$list_data.day|escape}-->ÆüÀ¸¤Þ¤ì<!--{else}-->Ì¤ÅÐÏ¿<!--{/if}--><br>
+	¢©<!--{$list_data.zip01|escape}--> - <!--{$list_data.zip02|escape}--><br>
+	<!--{$arrPref[$list_data.pref]|escape}--><!--{$list_data.addr01|escape}--><!--{$list_data.addr02|escape}--><br>
+	<!--{$list_data.tel01|escape}-->-<!--{$list_data.tel02|escape}-->-<!--{$list_data.tel03|escape}--><br>
+	
+	¡ÚÒ°ÙÏ¶Þ¼ÞÝÞ¡Û<br>
+	<!--{if $list_data.mail_flag eq 2}-->´õË¾¤¹¤ë<!--{else}-->´õË¾¤·¤Ê¤¤<!--{/if}--><br>
+	<br>
+
+	<input type="submit" name="submit" value="ÅÐÏ¿">
+</form>
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/entry/kiyaku.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/entry/kiyaku.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/entry/kiyaku.tpl	(revision 11460)
@@ -0,0 +1,23 @@
+<div align="center">¤´ÍøÍÑµ¬Ìó</div>
+<hr>
+<!--{$tpl_kiyaku_text}--><br>
+
+<BR>
+<!--{if $offset != -1}-->
+	<a href="kiyaku.php?offset=<!--{$offset}-->">¼¡¤Ø¢ª</a><br><br>
+<!--{/if}-->
+
+<a href="index.php" accesskey="1"><!--{1|numeric_emoji}-->Æ±°Õ¤·¤ÆÅÐÏ¿¤Ø</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="2"><!--{2|numeric_emoji}-->Æ±°Õ¤·¤Ê¤¤</a><br>
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/entry/set2.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/entry/set2.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/entry/set2.tpl	(revision 11460)
@@ -0,0 +1,54 @@
+<div align="center">²ñ°÷¾ðÊóÆþÎÏ 3/3</div>
+<hr>
+<form name="form1" method="post" action="<!--{$smarty.server.PHP_SELF|escape}-->">
+	<input type="hidden" name="mode" value="confirm">
+
+	<font color="#FF0000">*¤ÏÉ¬¿Ü¹àÌÜ¤Ç¤¹¡£</font><br>
+	<br>
+
+	¡ÚÅÔÆ»ÉÜ¸©¡Û<font color="#FF0000">*</font><br>
+	<font color="#FF0000"><!--{$arrErr.pref}--><!--{$arrErr.addr01}--><!--{$arrErr.addr02}--></font>
+	<select name="pref">
+		<option value="" selected>ÅÔÆ»ÉÜ¸©¤òÁªÂò</option>
+		<!--{html_options options=$arrPref selected=$pref}-->
+	</select><br>
+
+	¡Ú»Ô¶èÄ®Â¼¡Û<font color="#FF0000">*</font><br>
+	<input type="text" name="addr01" value="<!--{$addr01|escape}-->" istyle="1"><br>
+
+	¡ÚÈÖÃÏ¡Û<font color="#FF0000">*</font><br>
+	<input type="text" name="addr02" value="<!--{$addr02|escape}-->" istyle="1"><br>
+
+	¡ÚÅÅÏÃÈÖ¹æ¡Û<font color="#FF0000">*</font><br>
+	<font color="#FF0000"><!--{$arrErr.tel01}--><!--{$arrErr.tel02}--><!--{$arrErr.tel03}--></font>
+	<!--{assign var="size" value="`$smarty.const.TEL_ITEM_LEN+2`"}-->
+	<input type="text" size="<!--{$size}-->" name="tel01" value="<!--{$tel01|escape}-->" maxlength="<!--{$smarty.const.TEL_ITEM_LEN}-->" istyle="4">
+	&nbsp;-&nbsp;
+	<input type="text" size="<!--{$size}-->" name="tel02" value="<!--{$tel02|escape}-->" maxlength="<!--{$smarty.const.TEL_ITEM_LEN}-->" istyle="4">
+	&nbsp;-&nbsp;
+	<input type="text" size="<!--{$size}-->" name="tel03" value="<!--{$tel03|escape}-->" maxlength="<!--{$smarty.const.TEL_ITEM_LEN}-->" istyle="4"><br>
+
+	¡Ú¥á¡¼¥ë¥Þ¥¬¥¸¥ó¡Û<br>
+	¤ªÆÀ¤Ê¾ðÊó¤ò´õË¾¤µ¤ì¤Þ¤¹¤«¡©<br>
+	ÇÛ¿®´õË¾<input type="checkbox" name="mail_flag" value="on" <!--{if $mail_flag eq 'on'}-->checked<!--{/if}--> /><br>
+	¡Ê´õË¾¤µ¤ì¤Ê¤¤¾ì¹ç¤Ï¥Á¥§¥Ã¥¯¤ò¤Ï¤º¤·¤Æ¤¯¤À¤µ¤¤¡Ë<br>
+	<br>
+
+	<input type="submit" name="confirm" value="¼¡¤Ø">
+
+	<!--{foreach from=$list_data key=key item=item}-->
+		<input type="hidden" name="<!--{$key|escape}-->" value="<!--{$item|escape}-->">
+	<!--{/foreach}-->
+</form>
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/entry/email_mobile.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/entry/email_mobile.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/entry/email_mobile.tpl	(revision 11460)
@@ -0,0 +1,33 @@
+<center>·ÈÂÓ¥á¡¼¥ëÅÐÏ¿</center>
+
+<hr>
+
+<!--{$tpl_name|escape}-->ÍÍ<br>
+¤¤¤Ä¤â¤´ÍøÍÑ¤¤¤¿¤À¤­¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£¤´»ÈÍÑ¤Î·ÈÂÓÅÅÏÃ¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò¤´ÅÐÏ¿²¼¤µ¤¤¡£<br>
+
+<br>
+
+<!--{if @$tpl_kara_mail_to != ''}-->
+¼¡¤Î¥ê¥ó¥¯¤ò¥¯¥ê¥Ã¥¯¤·¤Æ¶õ¥á¡¼¥ë¤òÁ÷¿®¤·¤Æ¤¯¤À¤µ¤¤¡£<br>
+<center><a href="mailto:<!--{$tpl_kara_mail_to|escape:'url'}-->">¥á¡¼¥ëÁ÷¿®</a></center>
+<!--{else}-->
+<form method="post" action="<!--{$smarty.server.PHP_SELF|escape}-->">
+<!--{assign var=key value='email_mobile'}-->
+¢§¥á¡¼¥ë¥¢¥É¥ì¥¹<br>
+<font color="#ff0000"><!--{$arrErr[$key]|default:''}--></font>
+<input type="text" name="email_mobile" value="<!--{$arrForm[$key].value|escape}-->" size="40" maxlength="<!--{$arrForm[$key].length}-->" istyle="3"><br>
+<center><input type="submit" value="Á÷¿®"></center>
+</form>
+<!--{/if}-->
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/frontparts/bloc/best5.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/frontparts/bloc/best5.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/frontparts/bloc/best5.tpl	(revision 11460)
@@ -0,0 +1,14 @@
+<!--{if count($arrBestProducts) > 0}-->
+<center>
+<!--{foreach from=$arrBestProducts item=arrProduct name=best_products}-->
+
+<!-- ¢§¥ª¥¹¥¹¥á¥³¥á¥ó¥È ¤³¤³¤«¤é -->
+<a href="<!--{$smarty.const.DETAIL_P_HTML}--><!--{$arrProduct.product_id}-->">
+<!--{$arrProduct.comment|escape|nl2br}-->
+</a>
+<!-- ¢¥¥ª¥¹¥¹¥á¥³¥á¥ó¥È ¤³¤³¤Þ¤Ç -->
+
+<!--{if !$smarty.foreach.best_products.last}--><br><br><!--{/if}-->
+<!--{/foreach}-->
+</center>
+<!--{/if}-->
Index: branches/dev/data/Smarty/templates/mobile/frontparts/bloc/news.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/frontparts/bloc/news.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/frontparts/bloc/news.tpl	(revision 11460)
@@ -0,0 +1,11 @@
+<!--{if count($arrNews) > 0}-->
+<center>
+¡½¡½¡½¡½¡½¡½¡½¡½¡½<br>
+<marquee>
+<!--{if $arrNews[0].news_url}--><a href="<!--{$arrNews[0].news_url|escape}-->"><!--{/if}-->
+<!--{$arrNews[0].news_title|escape}-->
+<!--{if $arrNews[0].news_url}--></a><!--{/if}-->
+</marquee>
+¡½¡½¡½¡½¡½¡½¡½¡½¡½<br>
+</center>
+<!--{/if}-->
Index: branches/dev/data/Smarty/templates/mobile/frontparts/bloc/category.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/frontparts/bloc/category.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/frontparts/bloc/category.tpl	(revision 11460)
@@ -0,0 +1,11 @@
+<!--¢§¾¦ÉÊ¥«¥Æ¥´¥ê¡¼¤³¤³¤«¤é-->
+<!--{section name=cnt loop=$arrCat}-->
+<!--{assign var=disp_name value="`$arrCat[cnt].category_name`"}-->
+<!--{if $arrCat[cnt].has_children}-->
+<!--{assign var=path value="`$smarty.const.URL_DIR`products/category_list.php"}-->
+<!--{else}-->
+<!--{assign var=path value="`$smarty.const.URL_DIR`products/list.php"}-->
+<!--{/if}-->
+¡¡<font color="<!--{cycle values="#000000,#880000,#8888ff,#88ff88,#ff0000"}-->">¢£</font><a href="<!--{$path}-->?category_id=<!--{$arrCat[cnt].category_id}-->"><!--{$disp_name|sfCutString:20|escape}--></a><br>
+<!--{/section}-->
+<!--¢¥¾¦ÉÊ¥«¥Æ¥´¥ê¡¼¤³¤³¤Þ¤Ç-->
Index: branches/dev/data/Smarty/templates/mobile/products/select_item.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/products/select_item.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/products/select_item.tpl	(revision 11460)
@@ -0,0 +1,26 @@
+<div align="center">¿ôÎÌ»ØÄê</div>
+<hr>
+
+<!--{if $arrErr.classcategory_id2 != ""}-->
+	<font color="#FF0000">¢¨¿ôÎÌ¤òÆþÎÏ¤·¤Æ²¼¤µ¤¤¡</font><br>
+<!--{/if}-->
+<form method="post" action="<!--{$smarty.server.REQUEST_URI|escape}-->">
+	<input type="text" name="quantity" size="3" value="<!--{$arrForm.quantity.value|default:1}-->" maxlength=<!--{$smarty.const.INT_LEN}--> istyle="4"><br>
+	<input type="hidden" name="mode" value="cart">
+	<input type="hidden" name="classcategory_id1" value="<!--{$arrForm.classcategory_id1.value}-->">
+	<input type="hidden" name="classcategory_id2" value="<!--{$arrForm.classcategory_id2.value}-->">
+	<input type="hidden" name="product_id" value="<!--{$tpl_product_id}-->">
+	<center><input type="submit" name="submit" value="¤«¤´¤ËÆþ¤ì¤ë"></center>
+</form>
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/products/select_find1.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/products/select_find1.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/products/select_find1.tpl	(revision 11460)
@@ -0,0 +1,27 @@
+<div align="center"><!--{$tpl_class_name1}--></div>
+<hr>
+
+<!--{if $arrErr.classcategory_id1 != ""}-->
+	<font color="#FF0000">¢¨<!--{$tpl_class_name1}-->¤òÆþÎÏ¤·¤Æ²¼¤µ¤¤¡</font><br>
+<!--{/if}-->
+<form method="post" action="<!--{$smarty.server.REQUEST_URI|escape}-->">
+	<select name="classcategory_id1">
+		<option value="">ÁªÂò¤·¤Æ¤¯¤À¤µ¤¤</option>
+		<!--{html_options options=$arrClassCat1 selected=$arrForm.classcategory_id1.value}-->
+	</select><br>
+	<input type="hidden" name="mode" value="select2">
+	<input type="hidden" name="product_id" value="<!--{$tpl_product_id}-->">
+	<center><input type="submit" name="submit" value="¼¡¤Ø"></center>
+</form>
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/products/select_find2.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/products/select_find2.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/products/select_find2.tpl	(revision 11460)
@@ -0,0 +1,28 @@
+<div align="center"><!--{$tpl_class_name2}--></div>
+<hr>
+
+<!--{if $arrErr.classcategory_id2 != ""}-->
+	<font color="#FF0000">¢¨<!--{$tpl_class_name2}-->¤òÆþÎÏ¤·¤Æ²¼¤µ¤¤¡</font><br>
+<!--{/if}-->
+<form method="post" action="<!--{$smarty.server.REQUEST_URI|escape}-->">
+	<select name="classcategory_id2">
+		<option value="">ÁªÂò¤·¤Æ¤¯¤À¤µ¤¤</option>
+		<!--{html_options options=$arrClassCat2 selected=$arrForm.classcategory_id2.value}-->
+	</select><br>
+	<input type="hidden" name="mode" value="selectItem">
+	<input type="hidden" name="classcategory_id1" value="<!--{$arrForm.classcategory_id1.value}-->">
+	<input type="hidden" name="product_id" value="<!--{$tpl_product_id}-->">
+	<center><input type="submit" name="submit" value="¼¡¤Ø"></center>
+</form>
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/products/detail.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/products/detail.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/products/detail.tpl	(revision 11460)
@@ -0,0 +1,55 @@
+<!--¢§CONTENTS-->
+<!--¢§MAIN CONTENTS-->
+<!--À²ÄÙ¤³¤³¤«¤é-->
+<!--¡ú¾¦ÉÊÌ¾¡ú-->
+<div align="center"><!--{$arrProduct.name|escape}--></div>
+<hr>
+<!--À²ÄÙ¤³¤³¤Þ¤Ç-->
+<!--¾ÜºÙ¤³¤³¤«¤é-->
+<!--{assign var=key value="main_image"}-->
+<img src="<!--{$arrFile[$key].filepath}-->"><br>
+<!--¡ú¾ÜºÙÒ²ÝºÒÝÄ¡ú-->
+[emoji:76]<!--{$arrProduct.main_comment|nl2br}--><br>
+<br>
+<!--±²ºÝ-->
+<!--¡ú²Á³Ê¡ú-->
+<font color="#FF0000">²Á³Ê(ÀÇ¹þ):
+<!--{if $arrProduct.price02_min == $arrProduct.price02_max}-->
+	<!--{$arrProduct.price02_min|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->
+<!--{else}-->
+	<!--{$arrProduct.price02_min|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->¥<!--{$arrProduct.price02_max|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->
+<!--{/if}-->
+±ß</font><br/>
+<!--{if $arrProduct.price01_max > 0}-->
+<font color="#FF0000">»²¹Í»Ô¾ì²Á³Ê:
+<!--{if $arrProduct.price01_min == $arrProduct.price01_max}-->
+<!--{$arrProduct.price01_min|number_format}-->
+<!--{else}-->
+<!--{$arrProduct.price01_min|number_format}-->¥<!--{$arrProduct.price01_max|number_format}-->
+<!--{/if}-->
+±ß</font><br>
+<!--{/if}-->
+<form name="form1" method="post" action="<!--{$smarty.server.REQUEST_URI|escape}-->">
+	<input type="hidden" name="mode" value="select">
+	<input type="hidden" name="product_id" value="<!--{$tpl_product_id}-->">
+<!--{if $tpl_stock_find}-->
+	<!--¡ú¾¦ÉÊ¤òÁª¤Ö¡ú-->
+	<center><input type="submit" name="select" id="cart" value="¤³¤Î¾¦ÉÊ¤òÁª¤Ö"></center>
+<!--{else}-->
+	<font color="#FF0000">¿½¤·Ìõ¤´¤¶¤¤¤Þ¤»¤ó¤¬¤Âþº£ÉÊÀÚ¤ìÃæ¤Ç¤¹¡</font>
+<!--{/if}-->
+</form>
+<!--¾ÜºÙ¤³¤³¤Þ¤Ç-->
+<!--¢¥CONTENTS-->
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/products/search.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/products/search.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/products/search.tpl	(revision 11460)
@@ -0,0 +1,25 @@
+<center>¾¦ÉÊ¸¡º÷</center>
+
+<hr>
+
+¤ªÃµ¤·¤Î¾¦ÉÊÌ¾¡¦·¿ÈÖ¤òÆþÎÏ¤·¤Æ¤¯¤À¤µ¤¤¡£<br>
+
+<form method="get" action="<!--{$smarty.const.URL_DIR}-->products/list.php">
+<center>
+<input type="hidden" name="mode" value="search">
+<input type="text" name="name" size="18" maxlength="50" value="<!--{$smarty.get.name|escape}-->"><br>
+<input type="submit" name="search" value="¸¡º÷">
+</center>
+</form>
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/products/category_list.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/products/category_list.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/products/category_list.tpl	(revision 11460)
@@ -0,0 +1,28 @@
+<center><!--{$arrCategory.category_name|escape}--></center>
+
+<hr>
+
+<!--{foreach from=$arrChildren key=i item=arrChild}-->
+<!--{if $arrChild.has_children}-->
+<!--{assign var=path value="`$smarty.const.URL_DIR`products/category_list.php"}-->
+<!--{else}-->
+<!--{assign var=path value="`$smarty.const.URL_DIR`products/list.php"}-->
+<!--{/if}-->
+<!--{if $i+1<9}-->
+<a href="<!--{$path}-->?category_id=<!--{$arrChild.category_id}-->" accesskey="<!--{$i+1}-->"><!--{$i+1|numeric_emoji}--><!--{$arrChild.category_name|escape}-->(<!--{$arrChild.product_count}-->)</a><br>
+<!--{else}-->
+[<!--{$i+1}-->]<a href="<!--{$path}-->?category_id=<!--{$arrChild.category_id}-->"><!--{$arrChild.category_name|escape}-->(<!--{$arrChild.product_count}-->)</a><br>
+<!--{/if}-->
+<!--{/foreach}-->
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/products/list.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/products/list.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/products/list.tpl	(revision 11460)
@@ -0,0 +1,42 @@
+<!-- ¢§¥¿¥¤¥È¥ë ¤³¤³¤«¤é -->
+<center><!--{$tpl_subtitle|escape}--></center>
+<!-- ¢¥¥¿¥¤¥È¥ë ¤³¤³¤Þ¤Ç -->
+
+<hr>
+
+<!--{foreach from=$arrProducts key=i item=arrProduct}-->
+<!-- ¢§¾¦ÉÊ ¤³¤³¤«¤é -->
+<!--{if $i+1<9}--><!--{$i+1|numeric_emoji}--><!--{else}-->[<!--{$i+1}-->]<!--{/if}-->
+<!-- ¾¦ÉÊÌ¾ --><!--{$arrProduct.name|escape}--><br>
+
+²Á³Ê¡§
+<!--{if $arrProduct.price02_min == $arrProduct.price02_max}-->
+¡ï<!--{$arrProduct.price02_min|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->
+<!--{else}-->
+¡ï<!--{$arrProduct.price02_min|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->¡Á¡ï<!--{$arrProduct.price02_max|sfPreTax:$arrSiteInfo.tax:$arrSiteInfo.tax_rule|number_format}-->
+<!--{/if}-->
+<br>
+
+<div align="right">
+<!--{if $i+1<9}-->
+<a href="<!--{$smarty.const.DETAIL_P_HTML}--><!--{$arrProduct.product_id}-->" accesskey="<!--{$i+1}-->">¾¦ÉÊ¾ÜºÙ¤Ø¢ª</a>
+<!--{else}-->
+<a href="<!--{$smarty.const.DETAIL_P_HTML}--><!--{$arrProduct.product_id}-->">¾¦ÉÊ¾ÜºÙ¤Ø¢ª</a>
+<!--{/if}-->
+</div>
+
+<br>
+<!-- ¢¥¾¦ÉÊ ¤³¤³¤Þ¤Ç -->
+<!--{/foreach}-->
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/site_main.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/site_main.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/site_main.tpl	(revision 11460)
@@ -0,0 +1,9 @@
+<body bgcolor="#ffffff" text="#555555" link="#3a75af" vlink="#3a75af" alink="#3a75af">
+<!--¢§MAIN-->
+<!--{include file=$tpl_mainpage}-->
+<!--¢¥MAIN-->
+<!--{* EBiS¥¿¥°É½¼¨ÍÑ *}-->
+<!--{$tpl_mainpage|sfPrintEbisTag}-->
+<!--{* ¥¢¥Õ¥£¥ê¥¨¥¤¥È¥¿¥°É½¼¨ÍÑ *}-->
+<!--{$tpl_conv_page|sfPrintAffTag:$tpl_aff_option}-->
+</body>
Index: branches/dev/data/Smarty/templates/mobile/site_frame.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/site_frame.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/site_frame.tpl	(revision 11460)
@@ -0,0 +1,12 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
+<title><!--{$arrSiteInfo.shop_name|escape}-->/<!--{$tpl_title|escape}--></title>
+<meta name="author" content="<!--{$arrPageLayout.author|escape}-->">
+<meta name="description" content="<!--{$arrPageLayout.description|escape}-->">
+<meta name="keywords" content="<!--{$arrPageLayout.keyword|escape}-->">
+</head>
+<!-- ¢§ £Â£Ï£Ä£ÙÉô ¥¹¥¿¡¼¥È -->
+<!--{include file='./site_main.tpl'}-->
+<!-- ¢¥ £Â£Ï£Ä£ÙÉô ¥¨¥ó¥É -->
+</html>
Index: branches/dev/data/Smarty/templates/mobile/mypage/change_confirm.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/mypage/change_confirm.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/mypage/change_confirm.tpl	(revision 11460)
@@ -0,0 +1,49 @@
+<div align="center">ÊÑ¹¹³ÎÇ§</div>
+<hr>
+<form name="form1" id="form1" method="post" action="<!--{$smarty.server.PHP_SELF|escape}-->">
+	<input type="hidden" name="mode" value="complete">
+	<!--{foreach from=$list_data key=key item=item}-->
+		<input type="hidden" name="<!--{$key|escape}-->" value="<!--{$item|escape}-->">
+	<!--{/foreach}-->
+	²¼µ­¤ÎÆâÍÆ¤Ç¤´ÅÐÏ¿¤·¤Æ¤â¤è¤í¤·¤¤¤Ç¤¹¤«¡©<br>
+	<br>
+	¡ÚÒ°Ù±ÄÞÚ½¡Û<br>
+	<!--{$list_data.email|escape}--><br>
+	<br>
+
+	¡ÚÊß½Ü°ÄÞ³ÎÇ§ÍÑ¼ÁÌä¡Û<br>
+	<!--{$arrReminder[$list_data.reminder]|escape}--><br>
+	<br>
+
+	¡Ú¼ÁÌä¤ÎÅú¤¨¡Û<br>
+	<!--{$list_data.reminder_answer|escape}--><br>
+	<br>
+
+	¡Ú¸Ä¿Í¾ðÊó¡Û<br>
+	<!--{$list_data.name01|escape}-->¡¡<!--{$list_data.name02|escape}--><br>
+	<!--{$list_data.kana01|escape}-->¡¡<!--{$list_data.kana02|escape}--><br>
+	<!--{if $list_data.sex eq 1}-->ÃËÀ­<!--{else}-->½÷À­<!--{/if}--><br>
+	<!--{if strlen($list_data.year) > 0 && strlen($list_data.month) > 0 && strlen($list_data.day) > 0}--><!--{$list_data.year|escape}-->Ç¯<!--{$list_data.month|escape}-->·î<!--{$list_data.day|escape}-->ÆüÀ¸¤Þ¤ì<!--{else}-->Ì¤ÅÐÏ¿<!--{/if}--><br>
+	¢©<!--{$list_data.zip01|escape}--> - <!--{$list_data.zip02|escape}--><br>
+	<!--{$arrPref[$list_data.pref]|escape}--><!--{$list_data.addr01|escape}--><!--{$list_data.addr02|escape}--><br>
+	<!--{$list_data.tel01|escape}-->-<!--{$list_data.tel02|escape}-->-<!--{$list_data.tel03|escape}--><br>
+	<br>
+	
+	¡ÚÒ°ÙÏ¶Þ¼ÞÝÞ¡Û<br>
+	<!--{if $list_data.mail_flag eq 2}-->´õË¾¤¹¤ë<!--{else}-->´õË¾¤·¤Ê¤¤<!--{/if}--><br>
+	<br>
+
+	<input type="submit" name="submit" value="ÊÑ¹¹">
+</form>
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/mypage/history_detail.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/mypage/history_detail.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/mypage/history_detail.tpl	(revision 11460)
@@ -0,0 +1,54 @@
+<div align="center">¹ØÆþÍúÎò¾ÜºÙ</div>
+<hr>
+
+¢£<!--{$arrDisp.create_date|sfDispDBDate}--><br>
+ÃíÊ¸ÈÖ¹æ:<!--{$arrDisp.order_id}--><br>
+<br>
+¡ÚÇÛÁ÷Àè¡Û<br>
+	<!--{assign var=key1 value="deliv_name01"}--><!--{assign var=key2 value="deliv_name02"}-->
+	<!--{$arrDisp[$key1]|escape}-->&nbsp;<!--{$arrDisp[$key2]|escape}--><br>
+	<!--{assign var=key1 value="deliv_zip01"}--><!--{assign var=key2 value="deliv_zip02"}-->
+	¢©<!--{$arrDisp[$key1]}-->-<!--{$arrDisp[$key2]}--><br>
+	<!--{assign var=pref value=`$arrDisp.deliv_pref`}--><!--{$arrPref[$pref]}-->
+	<!--{assign var=key value="deliv_addr01"}--><!--{$arrDisp[$key]|escape}-->
+	<!--{assign var=key value="deliv_addr02"}--><!--{$arrDisp[$key]|escape}--><br>
+<br>
+¡ÚÇÛÁ÷Æü»þ»ØÄê¡Û<br>
+<!--{if $arrDisp.deliv_date eq "" and $arrDelivTime[$arrDisp.deliv_time_id] eq ""}-->
+	»ØÄê¤Ê¤·<br>
+<!--{else}-->
+	<!--{$arrDisp.deliv_date|escape}--> <!--{$arrDelivTime[$arrDisp.deliv_time_id]|escape}--><br>
+<!--{/if}-->
+<br>
+¡Ú¤ª»ÙÊ§¤¤ÊýË¡¡Û<br>
+<!--{$arrPayment[$arrDisp.payment_id]|escape}--><br>
+<br>
+¡Ú¤´ÃíÊ¸ÆâÍÆ¡Û<br>
+<!--{section name=cnt loop=$arrDisp.quantity}-->
+<!--{$arrDisp.product_name[cnt]|escape}--><br>
+<a href="<!--{$smarty.const.URL_DIR}-->products/detail.php?product_id=<!--{$arrDisp.product_id[cnt]}-->">¾¦ÉÊ¹ØÆþ¾ÜºÙ¢ª</a><br>
+<!--{/section}-->
+<br>
+¡Ú¹ØÆþ¶â³Û¡Û<br>
+¾¦ÉÊ¹ç·×:<!--{$arrDisp.subtotal|number_format}-->±ß<br>
+Á÷ÎÁ:<!--{assign var=key value="deliv_fee"}--><!--{$arrDisp[$key]|escape|number_format}-->±ß<br>
+¹ç·×:<!--{$arrDisp.payment_total|number_format}-->±ß<br>
+<br>
+
+<form action="order.php" method="post">
+	<input type="hidden" name="order_id" value="<!--{$arrDisp.order_id}-->">
+	<div align="center"><input type="submit" name="submit" value="ºÆÃíÊ¸"></div>
+</form>
+
+<br>
+
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/mypage/change.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/mypage/change.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/mypage/change.tpl	(revision 11460)
@@ -0,0 +1,59 @@
+<div align="center">ÅÐÏ¿ÆâÍÆÊÑ¹¹ 1/3</div>
+<hr>
+<form name="form1" method="post" action="<!--{$smarty.server.PHP_SELF|escape}-->">
+	<input type="hidden" name="mode" value="set1">
+
+	<font color="#FF0000">*¤ÏÉ¬¿Ü¹àÌÜ¤Ç¤¹¡£</font><br>
+	<br>
+
+	¡Ú¥á¡¼¥ë¥¢¥É¥ì¥¹¡Û<font color="#FF0000">¢¨</font><br>
+	<font color="#FF0000"><!--{$arrErr.email}--></font>
+	<input type="text" name="email" value="<!--{$arrForm.email|escape}-->" istyle="3">
+	<br>
+
+	¡Ú¥Ñ¥¹¥ï¡¼¥É¡Û<font color="#FF0000">¢¨</font><br>
+	¡ÊÈ¾³Ñ±Ñ¿ô»ú<!--{$smarty.const.PASSWORD_LEN1}-->Ê¸»ú°Ê¾å<!--{$smarty.const.PASSWORD_LEN2}-->Ê¸»ú°ÊÆâ¡Ë<br>
+	<font color="#FF0000"><!--{$arrErr.password}--></font>
+	<!--{assign var="size" value="`$smarty.const.PASSWORD_LEN2+2`"}-->
+	<input type="password" name="password" value="<!--{$arrForm.password}-->" istyle="4" maxlength="<!--{$smarty.const.PASSWORD_LEN2}-->" size="<!--{$size}-->"><br>
+
+	¡Ú¥Ñ¥¹¥ï¡¼¥É³ÎÇ§ÍÑ¤Î¼ÁÌä¡Û<font color="#FF0000">¢¨</font><br>
+	<font color="#FF0000"><!--{$arrErr.reminder}--></font>
+	<select name="reminder">
+		<option value="" selected>ÁªÂò¤·¤Æ¤¯¤À¤µ¤¤</option>
+		<!--{html_options options=$arrReminder selected=$arrForm.reminder}-->
+	</select><br>
+
+	¡Ú¼ÁÌä¤ÎÅú¤¨¡Û<font color="#FF0000">¢¨</font><br>
+	<font color="#FF0000"><!--{$arrErr.reminder_answer}--></font>
+	<input type="text" name="reminder_answer" value="<!--{$arrForm.reminder_answer|escape}-->" istyle="1"><br>
+
+	¡Ú¤ªÌ¾Á°¡Û<font color="#FF0000">¢¨</font><br>
+	<font color="#FF0000"><!--{$arrErr.name01}--><!--{$arrErr.name02}--></font>
+	À«¡ÊÎã¡§½ÂÃ«¡Ë<br>
+	<input type="text" name="name01" value="<!--{$arrForm.name01|escape}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" istyle="1"><br>
+
+	Ì¾¡ÊÎã¡§²Ö»Ò¡Ë<br>
+	<input type="text" name="name02" value="<!--{$arrForm.name02|escape}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" istyle="1"><br>
+	<font color="#FF0000"><!--{$arrErr.kana01}--><!--{$arrErr.kana02}--></font>
+
+	¥«¥Ê/À«¡ÊÎã¡§¥·¥Ö¥ä¡Ë<br>
+	<input type="text" name="kana01" value="<!--{$arrForm.kana01|escape}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" istyle="2"><br>
+
+	¥«¥Ê/Ì¾¡ÊÎã¡§¥Ï¥Ê¥³¡Ë<br>
+	<input type="text" name="kana02" value="<!--{$arrForm.kana02|escape}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" istyle="2"><br>
+
+	<input type="submit" name="confirm" value="¼¡¤Ø">
+</form>
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/mypage/index.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/mypage/index.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/mypage/index.tpl	(revision 11460)
@@ -0,0 +1,20 @@
+<div align="center">MY¥Ú¡¼¥¸TOP</div>
+<hr>
+
+<!--{$CustomerName1|escape}--> <!--{$CustomerName2|escape}-->ÍÍ<br>
+¤¤¤Ä¤â¤´ÍøÍÑ¤¤¤¿¤À¤­¤¢¤ê¤¬¤È¤¦¤´¤¶¤¤¤Þ¤¹¡£<br>
+<br>
+<a href="history.php" accesskey="1"><!--{1|numeric_emoji}-->¹ØÆþÍúÎò<br>
+<a href="change.php" accesskey="2"><!--{2|numeric_emoji}-->ÅÐÏ¿ÆâÍÆÊÑ¹¹<br>
+<a href="refusal.php" accesskey="3"><!--{3|numeric_emoji}-->Âà²ñ<br>
+
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/mypage/login.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/mypage/login.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/mypage/login.tpl	(revision 11460)
@@ -0,0 +1,36 @@
+<div align="center">¥í¥°¥¤¥ó</div>
+<hr>
+
+<!--¢§CONTENTS-->
+<form name="login_mypage" id="login_mypage" method="post" action="./index.php">
+	<input type="hidden" name="mode" value="login" >
+<!--{if !$tpl_valid_phone_id}-->
+	¢£°ÊÁ°¤Ë¤´ÃíÊ¸¤µ¤ì¤¿Êý<br>
+	(¥â¥Ð¥¤¥ëËô¤ÏPC¤Ç¤´ÅÐÏ¿ºÑ¤ß)<br>
+	¢§¥á¡¼¥ë¥¢¥É¥ì¥¹<br>
+	<!--{assign var=key value="login_email"}-->
+	<font color="#FF0000"><!--{$arrErr[$key]}--></font>
+	<input type="text" name="<!--{$key}-->" value="<!--{$login_email|escape}-->" 
+		maxlength="<!--{$arrForm[$key].length}-->" size="40" istyle="3"><br>
+<!--{else}-->
+	<input type="hidden" name="login_email" value="dummy">
+<!--{/if}-->
+	¢§¥Ñ¥¹¥ï¡¼¥É<br>
+	<!--{assign var=key value="login_pass"}--><font color="#FF0000"><!--{$arrErr[$key]}--></font>
+	<input type="password" name="<!--{$key}-->" maxlength="<!--{$arrForm[$key].length}-->" size="40" istyle="3"><br>
+	<center><input type="submit" value="Á÷¿®" name="log"></center><br>
+	<a href="<!--{$smarty.const.URL_DIR}-->forgot/index.php">¥Ñ¥¹¥ï¡¼¥É¤ò¤ªËº¤ì¤ÎÊý¤Ï¤³¤Á¤é</a><br>
+</form>
+<!--¢¥CONTENTS-->
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/mypage/refusal_complete.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/mypage/refusal_complete.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/mypage/refusal_complete.tpl	(revision 11460)
@@ -0,0 +1,16 @@
+<div align="center">Âà²ñ´°Î»</div>
+<hr>
+
+Âà²ñ¼êÂ³¤­¤¬´°Î»Ã×¤·¤Þ¤·¤¿¡£¤Þ¤¿¤Î¤´ÍøÍÑ¤ò¤ª¤Þ¤Á¤·¤Æ¤ª¤ê¤Þ¤¹¡£<br>
+<br>
+
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<hr>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
+
+
+
Index: branches/dev/data/Smarty/templates/mobile/mypage/set1.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/mypage/set1.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/mypage/set1.tpl	(revision 11460)
@@ -0,0 +1,55 @@
+<div align="center">ÅÐÏ¿ÆâÍÆÊÑ¹¹ 2/3</div>
+<hr>
+<form name="form1" method="post" action="<!--{$smarty.server.PHP_SELF|escape}-->">
+	<input type="hidden" name="mode" value="set2">
+
+	<font color="#FF0000">*¤ÏÉ¬¿Ü¹àÌÜ¤Ç¤¹¡£</font><br>
+	<br>
+
+	¡ÚÀ­ÊÌ¡Û<font color="#FF0000">*</font><br>
+	<font color="#FF0000"><!--{$arrErr.sex}--></font>
+	<input type="radio" name="sex" value="1" <!--{if $arrForm.sex eq "1"}-->checked<!--{/if}--> />ÃËÀ­&nbsp;
+	<input type="radio" name="sex" value="2" <!--{if $arrForm.sex eq "2"}-->checked<!--{/if}--> />½÷À­<br>
+
+	¡ÚÀ¸Ç¯·îÆü¡Û<font color="#FF0000">*</font><br>
+	<font color="#FF0000"><!--{$arrErr.year}--><!--{$arrErr.month}--><!--{$arrErr.day}--></font>
+	<select name="year">
+		<!--{html_options options=$arrYear selected=$arrForm.year}-->
+	</select>Ç¯<br>
+	<select name="month">
+		<option value="">--</option>
+		<!--{html_options options=$arrMonth selected=$arrForm.month}-->
+	</select>·î<br>
+	<select value="" name="day">
+		<option value="">--</option>
+		<!--{html_options options=$arrDay selected=$arrForm.day}-->
+	</select>Æü<br>
+
+	<!--{assign var=key1 value="zip01"}-->
+	<!--{assign var=key2 value="zip02"}-->
+	¡ÚÍ¹ÊØÈÖ¹æ¡Û<font color="#FF0000">*</font><br>
+	<font color="#FF0000"><!--{$arrErr[$key1]}--><!--{$arrErr[$key2]}--></font>
+	<!--{assign var="size1" value="`$smarty.const.ZIP01_LEN+2`"}-->
+	<!--{assign var="size2" value="`$smarty.const.ZIP02_LEN+2`"}-->
+	<input size="<!--{$size1}-->" type="text" name="zip01" value="<!--{if $arrForm.zip01 == ""}--><!--{$arrForm.zip01|escape}--><!--{else}--><!--{$arrForm.zip01|escape}--><!--{/if}-->" maxlength="<!--{$smarty.const.ZIP01_LEN}-->" istyle="4">
+	&nbsp;-&nbsp;
+	<input size="<!--{$size2}-->" type="text" name="zip02" value="<!--{if $arrForm.zip02 == ""}--><!--{$arrForm.zip02|escape}--><!--{else}--><!--{$arrForm.zip02|escape}--><!--{/if}-->" maxlength="<!--{$smarty.const.ZIP02_LEN}-->" istyle="4"><br>
+
+	<input type="submit" name="confirm" value="¼¡¤Ø">
+
+	<!--{foreach from=$list_data key=key item=item}-->
+		<input type="hidden" name="<!--{$key|escape}-->" value="<!--{$item|escape}-->">
+	<!--{/foreach}-->
+</form>
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/mypage/change_complete.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/mypage/change_complete.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/mypage/change_complete.tpl	(revision 11460)
@@ -0,0 +1,18 @@
+<div align="center">ÊÑ¹¹´°Î»</div>
+<hr>
+
+²ñ°÷ÅÐÏ¿ÆâÍÆ¤ÎÊÑ¹¹¤¬´°Î»¤¤¤¿¤·¤Þ¤·¤¿¡£<br>
+º£¸å¤È¤â¤´°¦¸Ü»ò¤ê¤Þ¤¹¤è¤¦¤è¤í¤·¤¯¤ª´ê¤¤¿½¤·¾å¤²¤Þ¤¹¡£<br>
+
+<br>
+
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/mypage/set2.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/mypage/set2.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/mypage/set2.tpl	(revision 11460)
@@ -0,0 +1,54 @@
+<div align="center">ÅÐÏ¿ÆâÍÆÊÑ¹¹ 3/3</div>
+<hr>
+<form name="form1" method="post" action="<!--{$smarty.server.PHP_SELF|escape}-->">
+	<input type="hidden" name="mode" value="confirm">
+
+	<font color="#FF0000">*¤ÏÉ¬¿Ü¹àÌÜ¤Ç¤¹¡£</font><br>
+	<br>
+
+	¡ÚÅÔÆ»ÉÜ¸©¡Û<font color="#FF0000">*</font><br>
+	<font color="#FF0000"><!--{$arrErr.pref}--><!--{$arrErr.addr01}--><!--{$arrErr.addr02}--></font>
+	<select name="pref">
+		<option value="" selected>ÅÔÆ»ÉÜ¸©¤òÁªÂò</option>
+		<!--{html_options options=$arrPref selected=$arrForm.pref}-->
+	</select><br>
+
+	¡Ú»Ô¶èÄ®Â¼¡Û<font color="#FF0000">*</font><br>
+	<input type="text" name="addr01" value="<!--{$arrForm.addr01|escape}-->" istyle="1"><br>
+
+	¡ÚÈÖÃÏ¡Û<font color="#FF0000">*</font><br>
+	<input type="text" name="addr02" value="<!--{$arrForm.addr02|escape}-->" istyle="1"><br>
+
+	¡ÚÅÅÏÃÈÖ¹æ¡Û<font color="#FF0000">*</font><br>
+	<font color="#FF0000"><!--{$arrErr.tel01}--><!--{$arrErr.tel02}--><!--{$arrErr.tel03}--></font>
+	<!--{assign var="size" value="`$smarty.const.TEL_ITEM_LEN+2`"}-->
+	<input type="text" size="<!--{$size}-->" name="tel01" value="<!--{$arrForm.tel01|escape}-->" maxlength="<!--{$smarty.const.TEL_ITEM_LEN}-->" istyle="4">
+	&nbsp;-&nbsp;
+	<input type="text" size="<!--{$size}-->" name="tel02" value="<!--{$arrForm.tel02|escape}-->" maxlength="<!--{$smarty.const.TEL_ITEM_LEN}-->" istyle="4">
+	&nbsp;-&nbsp;
+	<input type="text" size="<!--{$size}-->" name="tel03" value="<!--{$arrForm.tel03|escape}-->" maxlength="<!--{$smarty.const.TEL_ITEM_LEN}-->" istyle="4"><br>
+
+	¡Ú¥á¡¼¥ë¥Þ¥¬¥¸¥ó¡Û<br>
+	¤ªÆÀ¤Ê¾ðÊó¤ò´õË¾¤µ¤ì¤Þ¤¹¤«¡©<br>
+	ÇÛ¿®´õË¾<input type="checkbox" name="mail_flag" value="on" <!--{if $arrForm.mail_flag eq '2'}-->checked<!--{/if}--> /><br>
+	¡Ê´õË¾¤µ¤ì¤Ê¤¤¾ì¹ç¤Ï¥Á¥§¥Ã¥¯¤ò¤Ï¤º¤·¤Æ¤¯¤À¤µ¤¤¡Ë<br>
+	<br>
+
+	<input type="submit" name="confirm" value="¼¡¤Ø">
+
+	<!--{foreach from=$list_data key=key item=item}-->
+		<input type="hidden" name="<!--{$key|escape}-->" value="<!--{$item|escape}-->">
+	<!--{/foreach}-->
+</form>
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/mypage/history.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/mypage/history.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/mypage/history.tpl	(revision 11460)
@@ -0,0 +1,31 @@
+<div align="center">¹ØÆþÍúÎò</div>
+<hr>
+
+<!--{section name=cnt loop=$arrOrder}-->
+	¢£<!--{$arrOrder[cnt].create_date|sfDispDBDate}--><br>
+	ÃíÊ¸ÈÖ¹æ:<!--{$arrOrder[cnt].order_id}--><br>
+	<!--{assign var=payment_id value="`$arrOrder[cnt].payment_id`"}-->
+	¹ç·×¶â³Û:<!--{$arrOrder[cnt].payment_total|number_format}-->±ß<br>
+
+	<div align="center">
+	<form name="form1" method="post" action="history_detail.php">
+		<input type="hidden" name="order_id" value="<!--{$arrOrder[cnt].order_id}-->">
+		<input type="submit" name="submit" value="¾ÜºÙ¤ò¸«¤ë">
+	</form>
+	</div>
+	<br>
+<!--{/section}-->
+<br>
+
+<!--{$tpl_strnavi}-->
+
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/mypage/refusal.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/mypage/refusal.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/mypage/refusal.tpl	(revision 11460)
@@ -0,0 +1,22 @@
+<div align="center">Âà²ñ³ÎÇ§</div>
+<hr>
+<!--{$CustomerName1|escape}--> <!--{$CustomerName2|escape}-->ÍÍ¡¢²ñ°÷¤«¤éÂà²ñ¤ò¤µ¤ì¤Þ¤¹¤È¡¢ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤ªÆÏ¤±Àè¤Î¾ðÊó¤Ê¤ÉÁ´¤Æºï½ü¤µ¤ì¤Þ¤¹¤¬¤è¤í¤·¤¤¤Ç¤·¤ç¤¦¤«¡£<br>
+<br>
+<div align="center">
+<form action="<!--{$smarty.server.PHP_SELF|escape}-->" method="post">
+	<input type="submit" name="no" value="¤¤¤¤¤¨">
+	<input type="submit" name="complete" value="¤Ï¤¤">
+</form>
+</div>
+<br>
+
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/error.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/error.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/error.tpl	(revision 11460)
@@ -0,0 +1,8 @@
+<!--¢§CONTENTS-->
+<!--¢§MAIN ONTENTS-->
+<!--¡ú¥¨¥é¡¼¥á¥Ã¥»¡¼¥¸--><!--{$tpl_error}--><br>
+<!--{if $return_top}-->
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a>
+<!--{/if}-->
+<!--¢¥MAIN ONTENTS-->
+<!--¢¥CONTENTS-->
Index: branches/dev/data/Smarty/templates/mobile/shopping/deliv.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/shopping/deliv.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/shopping/deliv.tpl	(revision 11460)
@@ -0,0 +1,49 @@
+<center>ÇÛÁ÷Àè»ØÄê</center>
+
+<hr>
+
+<!--{if $arrErr.deli != ""}-->
+<font color="#ff0000"><!--{$arrErr.deli}--></font>
+<!--{/if}-->
+
+<!--¢§CONTENTS-->
+<!--{section name=cnt loop=$arrAddr}-->
+<form method="post" action="<!--{$smarty.server.PHP_SELF|escape}-->">
+<input type="hidden" name="uniqid" value="<!--{$tpl_uniqid}-->">
+<input type="hidden" name="deli" value="<!--{$smarty.section.cnt.iteration}-->">
+<!--{if $smarty.section.cnt.first}-->
+<input type="hidden" name="mode" value="customer_addr">
+<input type="hidden" name="other_deliv_id" value="">
+<!--{else}-->
+<input type="hidden" name="mode" value="other_addr">
+<input type="hidden" name="other_deliv_id" value="<!--{$arrAddr[cnt].other_deliv_id}-->">
+<!--{/if}-->
+¢£ÇÛÁ÷Àè<!--{$smarty.section.cnt.iteration}--><br>
+¢©<!--{$arrAddr[cnt].zip01}-->-<!--{$arrAddr[cnt].zip02}--><br>
+<!--{assign var=key value=$arrAddr[cnt].pref}--><!--{$arrPref[$key]}--><!--{$arrAddr[cnt].addr01|escape}--><br>
+<!--{if $arrAddr[cnt].addr02 != ""}-->
+<!--{$arrAddr[cnt].addr02|escape}--><br>
+<!--{/if}-->
+<center><input type="submit" value="¤³¤³¤ËÁ÷¤ë"></center>
+</form>
+<!--{/section}-->
+
+<br>
+
+¢£¤½¤ÎÂ¾¤Î¤ªÆÏ¤±Àè¤ò»ØÄê<br>
+<form method="get" action="deliv_addr.php">
+<center><input type="submit" value="¿·µ¬ÅÐÏ¿"></center>
+</form>
+<!--¢¥CONTENTS-->
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<center>LOCKON CO.,LTD.</center>
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/shopping/index.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/shopping/index.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/shopping/index.tpl	(revision 11460)
@@ -0,0 +1,49 @@
+<!--¢§CONTENTS-->
+<!--¢§MAIN ONTENTS-->
+<div align="center"><font color="#000080">¤´ÃíÊ¸¼êÂ³¤­</font></div><br>
+<hr>
+<!--{if !$tpl_valid_phone_id}-->
+<!--¢§²ñ°÷ÅÐÏ¿¤¬¤ªºÑ¤ß¤Ç¤Ê¤¤¤ªµÒÍÍ-->
+¢£½é¤á¤Æ¤´ÃíÊ¸¤ÎÊý<br>
+(¿·µ¬¤´ÅÐÏ¿)<br>
+<form name="member_form" id="member_form" method="post" action="<!--{$smarty.const.URL_DIR}-->entry/kiyaku.php">
+	<div align="center"><input type="submit" value="¿·µ¬ÅÐÏ¿"></div><br>
+</form>
+<!--¢¥¤Þ¤À²ñ°÷ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤¤ªµÒÍÍ-->
+<!--{/if}-->
+
+<!--¢§²ñ°÷ÅÐÏ¿¤¬¤ªºÑ¤ß¤Î¤ªµÒÍÍ-->
+<form name="member_form" id="member_form" method="post" action="./deliv.php">
+	<input type="hidden" name="mode" value="login">
+<!--{if !$tpl_valid_phone_id}-->
+	¢£°ÊÁ°¤Ë¤´ÃíÊ¸¤µ¤ì¤¿Êý<br>
+	(¥â¥Ð¥¤¥ëËô¤ÏPC¤Ç¤´ÅÐÏ¿ºÑ¤ß)<br>
+	¢§¥á¡¼¥ë¥¢¥É¥ì¥¹<br>
+	<!--{assign var=key value="login_email"}-->
+	<font color="#FF0000"><!--{$arrErr[$key]}--></font>
+	<input type="text" name="<!--{$key}-->" value="<!--{$tpl_login_email|escape}-->" 
+		maxlength="<!--{$arrForm[$key].length}-->" size="40" istyle="3"><br>
+<!--{else}-->
+<input type="hidden" name="login_email" value="dummy">
+<!--{/if}-->
+	¢§¥Ñ¥¹¥ï¡¼¥É<br>
+	<!--{assign var=key value="login_pass"}--><font color="#FF0000"><!--{$arrErr[$key]}--></font>
+	<input type="password" name="<!--{$key}-->" maxlength="<!--{$arrForm[$key].length}-->" size="40" istyle="3"><br>
+	<center><input type="submit" value="Á÷¿®" name="log"></center><br>
+	<a href="<!--{$smarty.const.URL_DIR}-->forgot/index.php">¥Ñ¥¹¥ï¡¼¥É¤ò¤ªËº¤ì¤ÎÊý¤Ï¤³¤Á¤é</a><br>
+</form>
+<!--¢¥²ñ°÷ÅÐÏ¿¤¬¤ªºÑ¤Î¤ªµÒÍÍ-->
+<!--¢¥MAIN ONTENTS-->
+<!--¢¥CONTENTS-->
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/shopping/complete.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/shopping/complete.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/shopping/complete.tpl	(revision 11460)
@@ -0,0 +1,18 @@
+<center>¤´ÃíÊ¸´°Î»</center>
+
+<hr>
+
+¤´ÃíÊ¸¡¢Í­¤êÆñ¤¦¤´¤¶¤¤¤Þ¤·¤¿¡£<br>
+¾¦ÉÊÅþÃå¤ò¤ª³Ú¤·¤ß¤Ë¤ªÂÔ¤Á²¼¤µ¤¤¤Þ¤»¡£<br>
+¤É¤¦¤¾¡¢º£¸å¤È¤â¡¢<!--{$arrInfo.shop_name|escape}-->¤ò¤è¤í¤·¤¯¤ª´ê¤¤¤·¤Þ¤¹¡£<br>
+
+<br>
+
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->">TOP¥Ú¡¼¥¸¤ËÌá¤ë</a><br>
+
+<br>
+<hr>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<center>LOCKON CO.,LTD.</center>
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/shopping/set1.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/shopping/set1.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/shopping/set1.tpl	(revision 11460)
@@ -0,0 +1,50 @@
+<div align="center">¤ªÆÏ¤±ÀèÅÐÏ¿</div>
+<hr>
+<form name="form1" method="post" action="<!--{$smarty.server.PHP_SELF|escape}-->">
+	<input type="hidden" name="mode" value="set2">
+
+	<font color="#FF0000">*¤ÏÉ¬¿Ü¹àÌÜ¤Ç¤¹¡£</font><br>
+	<br>
+
+	¡ÚÅÔÆ»ÉÜ¸©¡Û<font color="#FF0000">*</font><br>
+	<font color="#FF0000"><!--{$arrErr.pref}--><!--{$arrErr.addr01}--><!--{$arrErr.addr02}--></font>
+	<select name="pref">
+		<option value="" selected>ÅÔÆ»ÉÜ¸©¤òÁªÂò</option>
+		<!--{html_options options=$arrPref selected=$arrForm.pref}-->
+	</select><br>
+
+	¡Ú»Ô¶èÄ®Â¼¡Û<font color="#FF0000">*</font><br>
+	<input type="text" name="addr01" value="<!--{$arrForm.addr01|escape}-->" istyle="1"><br>
+
+	¡ÚÈÖÃÏ¡Û<font color="#FF0000">*</font><br>
+	<input type="text" name="addr02" value="<!--{$arrForm.addr02|escape}-->" istyle="1"><br>
+
+	¡ÚÅÅÏÃÈÖ¹æ¡Û<font color="#FF0000">*</font><br>
+	<font color="#FF0000"><!--{$arrErr.tel01}--><!--{$arrErr.tel02}--><!--{$arrErr.tel03}--></font>
+	<!--{assign var="size" value="`$smarty.const.TEL_ITEM_LEN+2`"}-->
+	<input type="text" size="<!--{$size}-->" name="tel01" value="<!--{$arrForm.tel01|escape}-->" maxlength="<!--{$smarty.const.TEL_ITEM_LEN}-->" istyle="4">
+	&nbsp;-&nbsp;
+	<input type="text" size="<!--{$size}-->" name="tel02" value="<!--{$arrForm.tel02|escape}-->" maxlength="<!--{$smarty.const.TEL_ITEM_LEN}-->" istyle="4">
+	&nbsp;-&nbsp;
+	<input type="text" size="<!--{$size}-->" name="tel03" value="<!--{$arrForm.tel03|escape}-->" maxlength="<!--{$smarty.const.TEL_ITEM_LEN}-->" istyle="4"><br>
+
+	<br>
+
+	<div align="center"><input type="submit" name="submit" value="¼¡¤Ø"></div>
+
+	<!--{foreach from=$list_data key=key item=item}-->
+		<input type="hidden" name="<!--{$key|escape}-->" value="<!--{$item|escape}-->">
+	<!--{/foreach}-->
+</form>
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/shopping/confirm.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/shopping/confirm.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/shopping/confirm.tpl	(revision 11460)
@@ -0,0 +1,66 @@
+<center>¤´ÃíÊ¸ÆâÍÆ³ÎÇ§</center>
+
+<hr>
+
+<form method="post" action="<!--{$smarty.server.PHP_SELF|escape}-->">
+<input type="hidden" name="mode" value="confirm">
+<input type="hidden" name="uniqid" value="<!--{$tpl_uniqid}-->">
+
+²¼µ­¤Î¤´ÃíÊ¸ÆâÍÆ¤Ë´Ö°ã¤¤¤Ï¤´¤¶¤¤¤Þ¤»¤ó¤«¡©<br>
+
+<br>
+
+¡ÚÇÛÁ÷Àè¡Û<br>
+<!--{if $arrData.deliv_check == 1}-->
+<!--{$arrData.deliv_name01|escape}--> <!--{$arrData.deliv_name02|escape}--><br>
+¢©<!--{$arrData.deliv_zip01|escape}-->-<!--{$arrData.deliv_zip02|escape}--><br>
+<!--{$arrPref[$arrData.deliv_pref]}--><!--{$arrData.deliv_addr01|escape}--><!--{$arrData.deliv_addr02|escape}--><br>
+<!--{else}-->
+<!--{$arrData.order_name01|escape}--> <!--{$arrData.order_name02|escape}--><br>
+¢©<!--{$arrData.order_zip01|escape}-->-<!--{$arrData.order_zip02|escape}--><br>
+<!--{$arrPref[$arrData.order_pref]}--><!--{$arrData.order_addr01|escape}--><!--{$arrData.order_addr02|escape}--><br>
+<!--{/if}-->
+
+<br>
+
+¡ÚÇÛÁ÷Æü»þ»ØÄê¡Û<br>
+Æü¡§<!--{$arrData.deliv_date|escape|default:"»ØÄê¤Ê¤·"}--><br>
+»þ´Ö¡§<!--{$arrData.deliv_time|escape|default:"»ØÄê¤Ê¤·"}--><br>
+
+<br>
+
+¡Ú¤ª»ÙÊ§¤¤ÊýË¡¡Û<br>
+<!--{$arrData.payment_method|escape}--><br>
+
+<br>
+
+¡Ú¤´ÃíÊ¸ÆâÍÆ¡Û<br>
+<!--{section name=cnt loop=$arrProductsClass}-->
+<!--{$arrProductsClass[cnt].name}--> <!--{$arrProductsClass[cnt].quantity|number_format}-->¸Ä<br>
+<!--{/section}-->
+
+<br>
+
+¡Ú¹ØÆþ¶â³Û¡Û<br>
+¾¦ÉÊ¹ç·×¡§<!--{$tpl_total_pretax|number_format}--><br>
+Á÷ÎÁ¡§<!--{$arrData.deliv_fee|number_format}--><br>
+<!--{if $arrData.charge > 0}-->¼ê¿ôÎÁ¡§<!--{$arrData.charge|number_format}--><br><!--{/if}-->
+¹ç·×¡§<!--{$arrData.payment_total|number_format}--><br>
+(Æâ¾ÃÈñÀÇ¡§<!--{$arrData.tax|number_format}-->)<br>
+
+<br>
+
+<center><input type="submit" value="ÃíÊ¸"></center>
+</form>
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<center>LOCKON CO.,LTD.</center>
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/shopping/deliv_addr.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/shopping/deliv_addr.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/shopping/deliv_addr.tpl	(revision 11460)
@@ -0,0 +1,53 @@
+<div align="center">¤ªÆÏ¤±ÀèÅÐÏ¿</div>
+<hr>
+<form name="form1" method="post" action="<!--{$smarty.server.PHP_SELF|escape}-->">
+	<input type="hidden" name="mode" value="set1">
+
+	<font color="#FF0000">*¤ÏÉ¬¿Ü¹àÌÜ¤Ç¤¹¡£</font><br>
+	<br>
+
+	¡Ú¤ªÌ¾Á°¡Û<font color="#FF0000">¢¨</font><br>
+	<font color="#FF0000"><!--{$arrErr.name01}--><!--{$arrErr.name02}--></font>
+	À«¡ÊÎã¡§½ÂÃ«¡Ë<br>
+	<input type="text" name="name01" value="<!--{$arrForm.name01|escape}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" istyle="1"><br>
+
+	Ì¾¡ÊÎã¡§²Ö»Ò¡Ë<br>
+	<input type="text" name="name02" value="<!--{$arrForm.name02|escape}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" istyle="1"><br>
+	<font color="#FF0000"><!--{$arrErr.kana01}--><!--{$arrErr.kana02}--></font>
+
+	¥«¥Ê/À«¡ÊÎã¡§¥·¥Ö¥ä¡Ë<br>
+	<input type="text" name="kana01" value="<!--{$arrForm.kana01|escape}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" istyle="2"><br>
+
+	¥«¥Ê/Ì¾¡ÊÎã¡§¥Ï¥Ê¥³¡Ë<br>
+	<input type="text" name="kana02" value="<!--{$arrForm.kana02|escape}-->" maxlength="<!--{$smarty.const.STEXT_LEN}-->" istyle="2"><br>
+
+	<br>
+
+	<!--{assign var=key1 value="zip01"}-->
+	<!--{assign var=key2 value="zip02"}-->
+	¡ÚÍ¹ÊØÈÖ¹æ¡Û<font color="#FF0000">*</font><br>
+	<font color="#FF0000"><!--{$arrErr[$key1]}--><!--{$arrErr[$key2]}--></font>
+	<!--{assign var="size1" value="`$smarty.const.ZIP01_LEN+2`"}-->
+	<!--{assign var="size2" value="`$smarty.const.ZIP02_LEN+2`"}-->
+	<input size="<!--{$size1}-->" type="text" name="zip01" value="<!--{if $arrForm.zip01 == ""}--><!--{$arrForm.zip01|escape}--><!--{else}--><!--{$zip01|escape}--><!--{/if}-->" maxlength="<!--{$smarty.const.ZIP01_LEN}-->" istyle="4">
+	&nbsp;-&nbsp;
+	<input size="<!--{$size2}-->" type="text" name="zip02" value="<!--{if $arrForm.zip02 == ""}--><!--{$arrForm.zip02|escape}--><!--{else}--><!--{$zip02|escape}--><!--{/if}-->" maxlength="<!--{$smarty.const.ZIP02_LEN}-->" istyle="4"><br>
+
+	<br>
+
+	<div align="center"><input type="submit" name="confirm" value="¼¡¤Ø"></div>
+
+</form>
+
+<br>
+
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/shopping/payment.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/shopping/payment.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/shopping/payment.tpl	(revision 11460)
@@ -0,0 +1,69 @@
+<center>ÇÛÃ£Æü¡¦»ÙÊ§¤¤»ØÄê</center>
+
+<hr>
+
+<form method="post" action="<!--{$smarty.server.PHP_SELF|escape}-->">
+<input type="hidden" name="mode" value="confirm">
+<input type="hidden" name="uniqid" value="<!--{$tpl_uniqid}-->">
+<!--<input type="hidden" name="message" value="">-->
+<!--{if $tpl_login == 1}-->
+<!--<input type="hidden" name="point_check" value="2">-->
+<!--{/if}-->
+
+¢£ÇÛÃ£Æü»þ»ØÄê<br>
+ÇÛÁ÷Æü»ØÄê<br>
+<!--{assign var=key value="deliv_date"}-->
+<!--{if $arrErr[$key] != ""}-->
+<font color="red"><!--{$arrErr[$key]}--></font>
+<!--{/if}-->
+<!--{if $arrDelivDate}-->
+<select name="<!--{$key}-->">
+<option value="" selected="">»ØÄê¤Ê¤·</option>
+<!--{html_options options=$arrDelivDate selected=$arrForm[$key].value}-->
+</select>
+<!--{else}-->
+¤´»ØÄêÄº¤±¤Þ¤»¤ó¡£
+<!--{/if}-->
+<br>
+
+»þ´ÖÂÓ»ØÄê<br>
+<!--{assign var=key value="deliv_time_id"}-->
+<!--{if $arrErr[$key] != ""}-->
+<font color="red"><!--{$arrErr[$key]}--></font>
+<!--{/if}-->
+<select name="<!--{$key}-->">
+<option value="" selected="">»ØÄê¤Ê¤·</option>
+<!--{html_options options=$arrDelivTime selected=$arrForm[$key].value}-->
+</select>
+<br>
+
+<br>
+
+<center>»ÙÊ§¤¤ÊýË¡»ØÄê</center>
+
+<hr>
+
+<!--{assign var=key value="payment_id"}-->
+<!--{if $arrErr[$key] != ""}-->
+<font color="red"><!--{$arrErr[$key]}--></font>
+<!--{/if}-->
+<!--{section name=cnt loop=$arrPayment}-->
+<input type="radio" name="<!--{$key}-->" value="<!--{$arrPayment[cnt].payment_id}-->" <!--{$arrPayment[cnt].payment_id|sfGetChecked:$arrForm[$key].value}-->>
+<!--{$arrPayment[cnt].payment_method|escape}-->
+<br>
+<!--{/section}-->
+
+<center><input type="submit" value="¼¡¤Ø"></center>
+</form>
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<center>LOCKON CO.,LTD.</center>
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/shopping/set2.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/shopping/set2.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/shopping/set2.tpl	(revision 11460)
@@ -0,0 +1,30 @@
+<div align="center">¤ªÆÏ¤±ÀèÅÐÏ¿³ÎÇ§</div>
+<hr>
+<form name="form1" method="post" action="<!--{$smarty.server.PHP_SELF|escape}-->">
+	<input type="hidden" name="mode" value="complete">
+
+	¡Ú¸Ä¿Í¾ðÊó¡Û<br>
+	<!--{$list_data.name01|escape}-->¡¡<!--{$list_data.name02|escape}--><br>
+	<!--{$list_data.kana01|escape}-->¡¡<!--{$list_data.kana02|escape}--><br>
+	¢©<!--{$list_data.zip01|escape}--> - <!--{$list_data.zip02|escape}--><br>
+	<!--{$arrPref[$list_data.pref]|escape}--><!--{$list_data.addr01|escape}--><!--{$list_data.addr02|escape}--><br>
+	<!--{$list_data.tel01|escape}-->-<!--{$list_data.tel02|escape}-->-<!--{$list_data.tel03|escape}--><br>
+
+	<div align="center"><input type="submit" name="submit" value="¼¡¤Ø"></div>
+
+	<!--{foreach from=$list_data key=key item=item}-->
+		<input type="hidden" name="<!--{$key|escape}-->" value="<!--{$item|escape}-->">
+	<!--{/foreach}-->
+</form>
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_CART_TOP}-->" accesskey="9"><!--{9|numeric_emoji}-->¤«¤´¤ò¸«¤ë</a><br>
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/data/Smarty/templates/mobile/unsupported/index.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/unsupported/index.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/unsupported/index.tpl	(revision 11460)
@@ -0,0 +1,5 @@
+<!--¢§CONTENTS-->
+<!--¢§MAIN ONTENTS-->
+ÈóÂÐ±þµ¡¼ï¤Ç¤¹¡£
+<!--¢¥MAIN ONTENTS-->
+<!--¢¥CONTENTS-->
Index: branches/dev/data/Smarty/templates/mobile/cart/index.tpl
===================================================================
--- branches/dev/data/Smarty/templates/mobile/cart/index.tpl	(revision 11460)
+++ branches/dev/data/Smarty/templates/mobile/cart/index.tpl	(revision 11460)
@@ -0,0 +1,65 @@
+<!--¢§CONTENTS-->
+<!--¢§MAIN ONTENTS-->
+<div align="center"><font color="#000080">¤«¤´É½¼¨</font></div>
+<!--{if $tpl_message != ""}-->
+	<!--{$tpl_message}--><br>
+<!--{/if}-->
+<!--{if count($arrProductsClass) > 0}-->
+<form name="form1" id="form1" method="post" action="<!--{$smarty.server.PHP_SELF|escape}-->" utn>
+	<input type="hidden" name="mode" value="confirm">
+	<input type="hidden" name="cart_no" value="">
+	<!--¤´ÃíÊ¸ÆâÍÆ¤³¤³¤«¤é-->
+	<hr>
+	<!--{section name=cnt loop=$arrProductsClass}-->
+		<!--{* ¾¦ÉÊÌ¾ *}--><!--{$arrProductsClass[cnt].name|escape}--><br>
+		<!--{* ²Á³Ê *}-->
+		<!--{if $arrProductsClass[cnt].price02 != ""}-->
+			\<!--{$arrProductsClass[cnt].price02|sfPreTax:$arrInfo.tax:$arrInfo.tax_rule|number_format}-->
+		<!--{else}-->
+			\<!--{$arrProductsClass[cnt].price01|sfPreTax:$arrInfo.tax:$arrInfo.tax_rule|number_format}-->
+		<!--{/if}-->
+		¡ß <!--{$arrProductsClass[cnt].quantity}--><br>
+		<!--{* ¾ÜºÙ *}-->
+		<!--{if $arrProductsClass[cnt].classcategory_name1 != ""}-->
+			<!--{$arrProductsClass[cnt].class_name1}-->:<!--{$arrProductsClass[cnt].classcategory_name1}--><br>
+		<!--{/if}-->
+		<!--{if $arrProductsClass[cnt].classcategory_name2 != ""}-->
+			<!--{$arrProductsClass[cnt].class_name2}-->:<!--{$arrProductsClass[cnt].classcategory_name2}--><br>
+		<!--{/if}-->
+		<br>
+		<!--{* ¿ôÎÌ *}-->
+    ¿ôÎÌ:<!--{$arrProductsClass[cnt].quantity}--><br>
+		<!--{* ¹ç·× *}-->
+		¾®·×:<!--{$arrProductsClass[cnt].total_pretax|number_format}-->±ß<br>
+		<div align="right"><a href="<!--{$smarty.const.DETAIL_P_HTML}--><!--{$arrProductsClass[cnt].product_id}-->">¾¦ÉÊ¹ØÆþ¾ÜºÙ¤Ø¢ª</a></div>
+		<HR>
+	<!--{/section}-->
+	¾¦ÉÊ¹ç·×:<!--{$tpl_total_pretax|number_format}-->±ß<br>
+	¹ç·×:<!--{$arrData.total-$arrData.deliv_fee|number_format}-->±ß<br>
+	<!--{if $arrData.birth_point > 0}-->
+		¤ªÃÂÀ¸·îÎß²ÝÄ<br>
+		<!--{$arrData.birth_point|number_format}-->pt<br>
+	<!--{/if}-->
+	<br>
+	<center><input type="submit" value="ÃíÊ¸¤¹¤ë" name="confirm"></center>
+</form>
+<form method="post" action="<!--{$smarty.server.PHP_SELF|escape}-->">
+	<center><input type="submit" value="¤ªÇãÊª¤òÂ³¤±¤ë" name="continue"></center>
+</form>
+<!--{else}-->
+	¢¨¸½ºß¶°ÄÆâ¤Ë¾¦ÉÊ¤Ï¤´¤¶¤¤¤Þ¤»¤ó¡<br>
+<!--{/if}-->
+<!--¢¥CONTENTS-->
+<!--¢¥MAIN CONTENTS-->
+<!--¢¥CONTENTS-->
+
+<br>
+<hr>
+
+<a href="<!--{$smarty.const.URL_SITE_TOP}-->" accesskey="0"><!--{0|numeric_emoji}-->TOP¥Ú¡¼¥¸¤Ø</a><br>
+
+<br>
+
+<!-- ¢§¥Õ¥Ã¥¿¡¼ ¤³¤³¤«¤é -->
+<!--{include file='footer.tpl'}-->
+<!-- ¢¥¥Õ¥Ã¥¿¡¼ ¤³¤³¤Þ¤Ç -->
Index: branches/dev/html/require.php
===================================================================
--- branches/dev/html/require.php	(revision 17)
+++ branches/dev/html/require.php	(revision 11460)
@@ -31,4 +31,6 @@
 require_once($include_dir . "/../data/class/SC_Page.php");
 require_once($include_dir . "/../data/class/SC_Pdf.php");
+require_once($include_dir . "/../data/class/GC_MobileUserAgent.php");
+require_once($include_dir . "/../data/class/GC_MobileEmoji.php");
 require_once($include_dir . "/../data/include/page_layout.inc");
 
@@ -36,3 +38,16 @@
 sfLoadUpdateModule();
 
+// ·ÈÂÓÃ¼Ëö¤Î¾ì¹ç¤Ï mobile °Ê²¼¤Ø¥ê¥À¥¤¥ì¥¯¥È¤¹¤ë¡£
+if (GC_MobileUserAgent::isMobile()) {
+	if (preg_match('|^' . URL_DIR . '(.*)$|', $_SERVER['REQUEST_URI'], $matches)) {
+		$path = $matches[1];
+	} else {
+		$path = '';
+	}
+	header("Location: " . URL_DIR . "mobile/$path");
+	exit;
+}
+
+// ³¨Ê¸»úÊÑ´¹ (½üµî) ¥Õ¥£¥ë¥¿¡¼¤òÁÈ¤ß¹þ¤à¡£
+ob_start(array('GC_MobileEmoji', 'handler'));
 ?>
Index: branches/dev/html/install/index.php
===================================================================
--- branches/dev/html/install/index.php	(revision 399)
+++ branches/dev/html/install/index.php	(revision 11460)
@@ -99,4 +99,8 @@
 	$objPage->arrErr = lfAddTable("dtb_module", $dsn);			// ¥â¥¸¥å¡¼¥ë´ÉÍý¥Æ¡¼¥Ö¥ë
 	$objPage->arrErr = lfAddTable("dtb_campaign_order", $dsn);	// ¥­¥ã¥ó¥Ú¡¼¥ó¼õÃí¥Æ¡¼¥Ö¥ë
+	// ¥Æ¡¼¥Ö¥ë¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤ËÄÉ²Ã¤µ¤ì¤ë¡£
+	$objPage->arrErr = lfAddTable("dtb_mobile_kara_mail", $dsn);	// ¶õ¥á¡¼¥ë´ÉÍý¥Æ¡¼¥Ö¥ë
+	// ¥Æ¡¼¥Ö¥ë¤¬Â¸ºß¤·¤Ê¤¤¾ì¹ç¤ËÄÉ²Ã¤µ¤ì¤ë¡£
+	$objPage->arrErr = lfAddTable("dtb_mobile_ext_session_id", $dsn);	// ¥»¥Ã¥·¥ç¥óID´ÉÍý¥Æ¡¼¥Ö¥ë
 	
 	// ¥«¥é¥à¤òÄÉ²Ã
@@ -345,8 +349,10 @@
 	$arrWriteFile = array(
 		"../../data/install.inc",
+		"../../data/install_mobile.inc",
 		"../user_data",
 		"../cp",
 		"../upload",
-		"../../data/Smarty/templates_c",		
+		"../mobile/converted_images",
+		"../../data/Smarty/templates_c",
 		"../../data/downloads",
 		"../../data/logs"
@@ -767,4 +773,33 @@
 		fclose($fp);
 	}
+
+	// ¥â¥Ð¥¤¥ëÈÇ¤ÎÀßÄê¥Õ¥¡¥¤¥ë install_mobile.inc ¤òºîÀ®¤¹¤ë¡£
+	$filepath = $data_path . "install_mobile.inc";
+	
+	$config_data = 
+	"<?php\n".
+	"    define ('ECCUBE_INSTALL', 'ON');\n" .
+	"    define ('HTML_PATH', '" . $root_dir . "mobile/');\n" .	 
+	"    define ('PC_HTML_PATH', '" . $root_dir . "');\n" .	 
+	"    define ('SITE_URL', '" . $normal_url . "mobile/');\n" .
+	"    define ('PC_SITE_URL', '" . $normal_url . "');\n" .
+	"    define ('SSL_URL', '" . $secure_url . "mobile/');\n" .
+	"    define ('PC_SSL_URL', '" . $secure_url . "');\n" .
+	"    define ('URL_DIR', '" . $url_dir . "mobile/');\n" .	
+	"    define ('PC_URL_DIR', '" . $url_dir . "');\n" .	
+	"    define ('DOMAIN_NAME', '" . $objWebParam->getValue('domain') . "');\n" .
+	"    define ('DB_TYPE', '" . $objDBParam->getValue('db_type') . "');\n" .
+	"    define ('DB_USER', '" . $objDBParam->getValue('db_user') . "');\n" . 
+	"    define ('DB_PASSWORD', '" . $objDBParam->getValue('db_password') . "');\n" .
+	"    define ('DB_SERVER', '" . $objDBParam->getValue('db_server') . "');\n" .
+	"    define ('DB_NAME', '" . $objDBParam->getValue('db_name') . "');\n" .
+	"    define ('DB_PORT', '" . $objDBParam->getValue('db_port') .  "');\n" .
+	"    define ('DATA_PATH', '".$data_path."');\n" .
+	"?>";
+	
+	if($fp = fopen($filepath,"w")) {
+		fwrite($fp, $config_data);
+		fclose($fp);
+	}
 }
 
@@ -803,4 +838,6 @@
 // ¥«¥é¥à¤ÎÄÉ²Ã¡Ê´û¤Ë¥«¥é¥à¤¬Â¸ºß¤¹¤ë¾ì¹ç¤ÏºîÀ®¤·¤Ê¤¤¡Ë
 function lfAddColumn($dsn) {
+	global $objDBParam;
+
 	// ¼õÃí¥Æ¡¼¥Ö¥ë	
 	sfColumnExists("dtb_order", "memo01", "text", $dsn, true);	
@@ -853,4 +890,22 @@
 	sfColumnExists("dtb_campaign", "cart_flg", "int2 NOT NULL DEFAULT 0", $dsn, true);
 	sfColumnExists("dtb_campaign", "deliv_free_flg", "int2 NOT NULL DEFAULT 0", $dsn, true);	
+
+	// ¸ÜµÒ
+	if (!sfColumnExists("dtb_customer", "mobile_phone_id", "", $dsn)) {
+		sfColumnExists("dtb_customer", "mobile_phone_id", "text", $dsn, true);
+		$objQuery = new SC_Query($dsn);
+		if ($objDBParam->getValue('db_type') == 'mysql') {
+			$objQuery->query("CREATE INDEX dtb_customer_mobile_phone_id_key ON dtb_customer (mobile_phone_id(64))");
+		} else {
+			$objQuery->query("CREATE INDEX dtb_customer_mobile_phone_id_key ON dtb_customer (mobile_phone_id)");
+		}
+	}
+
+	// ¸ÜµÒ¥á¡¼¥ë
+	if ($objDBParam->getValue('db_type') == 'mysql') {
+		sfColumnExists("dtb_customer_mail", "secret_key", "varchar(50) unique", $dsn, true);
+	} else {
+		sfColumnExists("dtb_customer_mail", "secret_key", "text unique", $dsn, true);
+	}
 }
 
Index: branches/dev/html/install/sql/add/dtb_mobile_ext_session_id_mysql.sql
===================================================================
--- branches/dev/html/install/sql/add/dtb_mobile_ext_session_id_mysql.sql	(revision 11460)
+++ branches/dev/html/install/sql/add/dtb_mobile_ext_session_id_mysql.sql	(revision 11460)
@@ -0,0 +1,19 @@
+CREATE TABLE dtb_mobile_ext_session_id (
+    session_id text NOT NULL,
+    param_key text,
+    param_value text,
+    url text,
+    create_date timestamp NOT NULL DEFAULT now()
+);
+
+CREATE INDEX dtb_mobile_ext_session_id_param_key_key ON dtb_mobile_ext_session_id (param_key(64));
+CREATE INDEX dtb_mobile_ext_session_id_param_value_key ON dtb_mobile_ext_session_id (param_value(64));
+CREATE INDEX dtb_mobile_ext_session_id_url_key ON dtb_mobile_ext_session_id (url(64));
+CREATE INDEX dtb_mobile_ext_session_id_create_date_key ON dtb_mobile_ext_session_id (create_date);
+
+INSERT INTO dtb_table_comment (table_name, description) VALUES ('dtb_mobile_ext_session_id', '¥»¥Ã¥·¥ç¥óID´ÉÍý');
+INSERT INTO dtb_table_comment (table_name, column_name, description) VALUES ('dtb_mobile_ext_session_id', 'session_id', '¥»¥Ã¥·¥ç¥óID');
+INSERT INTO dtb_table_comment (table_name, column_name, description) VALUES ('dtb_mobile_ext_session_id', 'param_key', '¥Ñ¥é¥á¡¼¥¿Ì¾');
+INSERT INTO dtb_table_comment (table_name, column_name, description) VALUES ('dtb_mobile_ext_session_id', 'param_value', '¥Ñ¥é¥á¡¼¥¿ÃÍ');
+INSERT INTO dtb_table_comment (table_name, column_name, description) VALUES ('dtb_mobile_ext_session_id', 'url', 'URL');
+INSERT INTO dtb_table_comment (table_name, column_name, description) VALUES ('dtb_mobile_ext_session_id', 'create_date', 'ºîÀ®Æü»þ');
Index: branches/dev/html/install/sql/add/dtb_mobile_ext_session_id_pgsql.sql
===================================================================
--- branches/dev/html/install/sql/add/dtb_mobile_ext_session_id_pgsql.sql	(revision 11460)
+++ branches/dev/html/install/sql/add/dtb_mobile_ext_session_id_pgsql.sql	(revision 11460)
@@ -0,0 +1,19 @@
+CREATE TABLE dtb_mobile_ext_session_id (
+    session_id text NOT NULL,
+    param_key text,
+    param_value text,
+    url text,
+    create_date timestamp NOT NULL DEFAULT now()
+);
+
+CREATE INDEX dtb_mobile_ext_session_id_param_key_key ON dtb_mobile_ext_session_id (param_key);
+CREATE INDEX dtb_mobile_ext_session_id_param_value_key ON dtb_mobile_ext_session_id (param_value);
+CREATE INDEX dtb_mobile_ext_session_id_url_key ON dtb_mobile_ext_session_id (url);
+CREATE INDEX dtb_mobile_ext_session_id_create_date_key ON dtb_mobile_ext_session_id (create_date);
+
+INSERT INTO dtb_table_comment (table_name, description) VALUES ('dtb_mobile_ext_session_id', '¥»¥Ã¥·¥ç¥óID´ÉÍý');
+INSERT INTO dtb_table_comment (table_name, column_name, description) VALUES ('dtb_mobile_ext_session_id', 'session_id', '¥»¥Ã¥·¥ç¥óID');
+INSERT INTO dtb_table_comment (table_name, column_name, description) VALUES ('dtb_mobile_ext_session_id', 'param_key', '¥Ñ¥é¥á¡¼¥¿Ì¾');
+INSERT INTO dtb_table_comment (table_name, column_name, description) VALUES ('dtb_mobile_ext_session_id', 'param_value', '¥Ñ¥é¥á¡¼¥¿ÃÍ');
+INSERT INTO dtb_table_comment (table_name, column_name, description) VALUES ('dtb_mobile_ext_session_id', 'url', 'URL');
+INSERT INTO dtb_table_comment (table_name, column_name, description) VALUES ('dtb_mobile_ext_session_id', 'create_date', 'ºîÀ®Æü»þ');
Index: branches/dev/html/install/sql/add/dtb_mobile_kara_mail_mysql.sql
===================================================================
--- branches/dev/html/install/sql/add/dtb_mobile_kara_mail_mysql.sql	(revision 11460)
+++ branches/dev/html/install/sql/add/dtb_mobile_kara_mail_mysql.sql	(revision 11460)
@@ -0,0 +1,22 @@
+CREATE TABLE dtb_mobile_kara_mail (
+    kara_mail_id serial PRIMARY KEY,
+    session_id text NOT NULL,
+    token text NOT NULL,
+    next_url text NOT NULL,
+    create_date timestamp NOT NULL DEFAULT now(),
+    email text,
+    receive_date timestamp
+);
+
+CREATE INDEX dtb_mobile_kara_mail_token_key ON dtb_mobile_kara_mail (token(64));
+CREATE INDEX dtb_mobile_kara_mail_create_date_key ON dtb_mobile_kara_mail (create_date);
+CREATE INDEX dtb_mobile_kara_mail_receive_date_key ON dtb_mobile_kara_mail (receive_date);
+
+INSERT INTO dtb_table_comment (table_name, description) VALUES ('dtb_mobile_kara_mail', '¶õ¥á¡¼¥ë´ÉÍý');
+INSERT INTO dtb_table_comment (table_name, column_name, description) VALUES ('dtb_mobile_kara_mail', 'kara_mail_id', '¶õ¥á¡¼¥ë´ÉÍýID');
+INSERT INTO dtb_table_comment (table_name, column_name, description) VALUES ('dtb_mobile_kara_mail', 'session_id', '¥»¥Ã¥·¥ç¥óID');
+INSERT INTO dtb_table_comment (table_name, column_name, description) VALUES ('dtb_mobile_kara_mail', 'token', '¥È¡¼¥¯¥ó');
+INSERT INTO dtb_table_comment (table_name, column_name, description) VALUES ('dtb_mobile_kara_mail', 'next_url', '¼¡¥Ú¡¼¥¸URL');
+INSERT INTO dtb_table_comment (table_name, column_name, description) VALUES ('dtb_mobile_kara_mail', 'create_date', 'ºîÀ®Æü»þ');
+INSERT INTO dtb_table_comment (table_name, column_name, description) VALUES ('dtb_mobile_kara_mail', 'email', '¥á¡¼¥ë¥¢¥É¥ì¥¹');
+INSERT INTO dtb_table_comment (table_name, column_name, description) VALUES ('dtb_mobile_kara_mail', 'receive_date', '¼õ¿®Æü»þ');
Index: branches/dev/html/install/sql/add/dtb_mobile_kara_mail_pgsql.sql
===================================================================
--- branches/dev/html/install/sql/add/dtb_mobile_kara_mail_pgsql.sql	(revision 11460)
+++ branches/dev/html/install/sql/add/dtb_mobile_kara_mail_pgsql.sql	(revision 11460)
@@ -0,0 +1,22 @@
+CREATE TABLE dtb_mobile_kara_mail (
+    kara_mail_id serial PRIMARY KEY,
+    session_id text NOT NULL,
+    token text NOT NULL,
+    next_url text NOT NULL,
+    create_date timestamp NOT NULL DEFAULT now(),
+    email text,
+    receive_date timestamp
+);
+
+CREATE INDEX dtb_mobile_kara_mail_token_key ON dtb_mobile_kara_mail (token);
+CREATE INDEX dtb_mobile_kara_mail_create_date_key ON dtb_mobile_kara_mail (create_date);
+CREATE INDEX dtb_mobile_kara_mail_receive_date_key ON dtb_mobile_kara_mail (receive_date);
+
+INSERT INTO dtb_table_comment (table_name, description) VALUES ('dtb_mobile_kara_mail', '¶õ¥á¡¼¥ë´ÉÍý');
+INSERT INTO dtb_table_comment (table_name, column_name, description) VALUES ('dtb_mobile_kara_mail', 'kara_mail_id', '¶õ¥á¡¼¥ë´ÉÍýID');
+INSERT INTO dtb_table_comment (table_name, column_name, description) VALUES ('dtb_mobile_kara_mail', 'session_id', '¥»¥Ã¥·¥ç¥óID');
+INSERT INTO dtb_table_comment (table_name, column_name, description) VALUES ('dtb_mobile_kara_mail', 'token', '¥È¡¼¥¯¥ó');
+INSERT INTO dtb_table_comment (table_name, column_name, description) VALUES ('dtb_mobile_kara_mail', 'next_url', '¼¡¥Ú¡¼¥¸URL');
+INSERT INTO dtb_table_comment (table_name, column_name, description) VALUES ('dtb_mobile_kara_mail', 'create_date', 'ºîÀ®Æü»þ');
+INSERT INTO dtb_table_comment (table_name, column_name, description) VALUES ('dtb_mobile_kara_mail', 'email', '¥á¡¼¥ë¥¢¥É¥ì¥¹');
+INSERT INTO dtb_table_comment (table_name, column_name, description) VALUES ('dtb_mobile_kara_mail', 'receive_date', '¼õ¿®Æü»þ');
Index: branches/dev/html/install/sql/insert_data.sql
===================================================================
--- branches/dev/html/install/sql/insert_data.sql	(revision 24)
+++ branches/dev/html/install/sql/insert_data.sql	(revision 11460)
@@ -23,25 +23,25 @@
 update dtb_pagelayout set page_id = 0 where page_id = 5;
 
-INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(1,1,(SELECT bloc_id FROM dtb_bloc WHERE filename = 'category'),2,'category');
-INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(1,1,(SELECT bloc_id FROM dtb_bloc WHERE filename = 'guide'),3,'guide');
-INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(1,1,(SELECT bloc_id FROM dtb_bloc WHERE filename = 'cart'),1,'cart');
-INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(1,3,(SELECT bloc_id FROM dtb_bloc WHERE filename = 'search_products'),2,'search_products');
-INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(1,4,(SELECT bloc_id FROM dtb_bloc WHERE filename = 'news'),1,'news');
-INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(1,3,(SELECT bloc_id FROM dtb_bloc WHERE filename = 'login'),1,'login');
-INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(1,4,(SELECT bloc_id FROM dtb_bloc WHERE filename = 'best5'),2,'best5');
-INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(2,1,(SELECT bloc_id FROM dtb_bloc WHERE filename = 'category'),2,'category');
-INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(2,1,(SELECT bloc_id FROM dtb_bloc WHERE filename = 'guide'),3,'guide');
-INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(2,1,(SELECT bloc_id FROM dtb_bloc WHERE filename = 'cart'),1,'cart');
-INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(2,5,(SELECT bloc_id FROM dtb_bloc WHERE filename = 'search_products'),0,'search_products');
-INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(2,5,(SELECT bloc_id FROM dtb_bloc WHERE filename = 'news'),0,'news');
-INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(2,5,(SELECT bloc_id FROM dtb_bloc WHERE filename = 'login'),0,'login');
-INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(2,5,(SELECT bloc_id FROM dtb_bloc WHERE filename = 'best5'),0,'best5');
-INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(3,1,(SELECT bloc_id FROM dtb_bloc WHERE filename = 'category'),2,'category');
-INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(3,1,(SELECT bloc_id FROM dtb_bloc WHERE filename = 'guide'),3,'guide');
-INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(3,1,(SELECT bloc_id FROM dtb_bloc WHERE filename = 'cart'),1,'cart');
-INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(3,5,(SELECT bloc_id FROM dtb_bloc WHERE filename = 'search_products'),0,'search_products');
-INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(3,5,(SELECT bloc_id FROM dtb_bloc WHERE filename = 'news'),0,'news');
-INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(3,5,(SELECT bloc_id FROM dtb_bloc WHERE filename = 'login'),0,'login');
-INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(3,5,(SELECT bloc_id FROM dtb_bloc WHERE filename = 'best5'),0,'best5');
+INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(1,1,1,2,'category');
+INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(1,1,2,3,'guide');
+INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(1,1,3,1,'cart');
+INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(1,3,4,2,'search_products');
+INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(1,4,5,1,'news');
+INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(1,3,6,1,'login');
+INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(1,4,7,2,'best5');
+INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(2,1,1,2,'category');
+INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(2,1,2,3,'guide');
+INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(2,1,3,1,'cart');
+INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(2,5,4,0,'search_products');
+INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(2,5,5,0,'news');
+INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(2,5,6,0,'login');
+INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(2,5,7,0,'best5');
+INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(3,1,1,2,'category');
+INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(3,1,2,3,'guide');
+INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(3,1,3,1,'cart');
+INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(3,5,4,0,'search_products');
+INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(3,5,5,0,'news');
+INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(3,5,6,0,'login');
+INSERT INTO dtb_blocposition (page_id,target_id,bloc_id,bloc_row,filename)values(3,5,7,0,'best5');
 
 insert into dtb_csv(csv_id,col,disp_name,rank,create_date,update_date)values(1,'product_id','¾¦ÉÊID',1,now(),now());
Index: branches/dev/html/install/sql/column_comment.sql
===================================================================
--- branches/dev/html/install/sql/column_comment.sql	(revision 8)
+++ branches/dev/html/install/sql/column_comment.sql	(revision 11460)
@@ -368,6 +368,8 @@
 INSERT INTO dtb_table_comment(table_name,column_name,description) values ('dtb_customer','cell02','·ÈÂÓÅÅÏÃÈÖ¹æ2');
 INSERT INTO dtb_table_comment(table_name,column_name,description) values ('dtb_customer','cell03','·ÈÂÓÅÅÏÃÈÖ¹æ3');
+INSERT INTO dtb_table_comment(table_name,column_name,description) values ('dtb_customer','mobile_phone_id','·ÈÂÓÃ¼ËöID');
 INSERT INTO dtb_table_comment(table_name,column_name,description) values ('dtb_customer_mail','email','¥á¡¼¥ë¥¢¥É¥ì¥¹');
 INSERT INTO dtb_table_comment(table_name,column_name,description) values ('dtb_customer_mail','mail_flag','1:HTML 2:TEXT 3:´õË¾¤·¤Ê¤¤ 4:²¾ÅÐÏ¿¡ÊHTML¡Ë 5:²¾ÅÐÏ¿(TEXT) 6:²¾ÅÐÏ¿(´õË¾¤·¤Ê¤¤)');
+INSERT INTO dtb_table_comment(table_name,column_name,description) values ('dtb_customer_mail','secret_key','°Å¹æ²½¸ÜµÒID');
 INSERT INTO dtb_table_comment(table_name,column_name,description) values ('dtb_customer_mail_temp','email','¥á¡¼¥ë¥¢¥É¥ì¥¹');
 INSERT INTO dtb_table_comment(table_name,column_name,description) values ('dtb_customer_mail_temp','mail_flag','1:HTML 2:TEXT 3:´õË¾¤·¤Ê¤¤(Ää»ß)');
Index: branches/dev/html/install/sql/create_table_mysql.sql
===================================================================
--- branches/dev/html/install/sql/create_table_mysql.sql	(revision 8)
+++ branches/dev/html/install/sql/create_table_mysql.sql	(revision 11460)
@@ -517,10 +517,14 @@
     cell01 text,
     cell02 text,
-    cell03 text
-) TYPE=InnoDB ;
+    cell03 text,
+    mobile_phone_id text
+) TYPE=InnoDB ;
+
+CREATE INDEX dtb_customer_mobile_phone_id_key ON dtb_customer (mobile_phone_id(64));
 
 CREATE TABLE dtb_customer_mail (
     email varchar(50) NOT NULL UNIQUE,
     mail_flag smallint,
+    secret_key varchar(50) UNIQUE,
     create_date datetime NOT NULL ,
     update_date datetime 
Index: branches/dev/html/install/sql/create_table_pgsql.sql
===================================================================
--- branches/dev/html/install/sql/create_table_pgsql.sql	(revision 8)
+++ branches/dev/html/install/sql/create_table_pgsql.sql	(revision 11460)
@@ -517,10 +517,14 @@
     cell01 text,
     cell02 text,
-    cell03 text
-);
+    cell03 text,
+    mobile_phone_id text
+);
+
+CREATE INDEX dtb_customer_mobile_phone_id_key ON dtb_customer (mobile_phone_id);
 
 CREATE TABLE dtb_customer_mail (
     email text NOT NULL UNIQUE,
     mail_flag int2,
+    secret_key text UNIQUE,
     create_date timestamp NOT NULL DEFAULT now(),
     update_date timestamp DEFAULT now()
Index: branches/dev/html/mobile/redirect.php
===================================================================
--- branches/dev/html/mobile/redirect.php	(revision 11460)
+++ branches/dev/html/mobile/redirect.php	(revision 11460)
@@ -0,0 +1,18 @@
+<?php
+/**
+ * ¥â¥Ð¥¤¥ë¥µ¥¤¥È/¶õ¥á¡¼¥ë¤ÎÊÖ¿®¤«¤é¤ÎÁ«°Ü
+ */
+
+define('SKIP_MOBILE_INIT', true);
+require_once 'require.php';
+
+if (isset($_GET['token'])) {
+	$next_url = gfFinishKaraMail($_GET['token']);
+}
+
+if (isset($next_url) && $next_url !== false) {
+	header("Location: $next_url");
+} else {
+	header('Location: ' . SITE_URL);
+}
+?>
Index: branches/dev/html/mobile/shopping/confirm.php
===================================================================
--- branches/dev/html/mobile/shopping/confirm.php	(revision 11460)
+++ branches/dev/html/mobile/shopping/confirm.php	(revision 11460)
@@ -0,0 +1,120 @@
+<?php
+/*
+ * Copyright(c) 2000-2006 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ */
+
+require_once("../require.php");
+
+class LC_Page {
+	var $arrSession;
+	var $tpl_mode;
+	var $tpl_total_deliv_fee;
+	function LC_Page() {
+		$this->tpl_mainpage = 'shopping/confirm.tpl';
+		$this->tpl_css = '/css/layout/shopping/confirm.css';
+		$this->tpl_title = "¤´ÆþÎÏÆâÍÆ¤Î¤´³ÎÇ§";
+		global $arrPref;
+		$this->arrPref = $arrPref;
+		global $arrSex;
+		$this->arrSex = $arrSex;
+		global $arrMAILMAGATYPE;
+		$this->arrMAILMAGATYPE = $arrMAILMAGATYPE;
+		global $arrReminder;
+		$this->arrReminder = $arrReminder;
+		/*
+		 session_start»þ¤Îno-cache¥Ø¥Ã¥À¡¼¤òÍÞÀ©¤¹¤ë¤³¤È¤Ç
+		 ¡ÖÌá¤ë¡×¥Ü¥¿¥ó»ÈÍÑ»þ¤ÎÍ­¸ú´ü¸ÂÀÚ¤ìÉ½¼¨¤òÍÞÀ©¤¹¤ë¡£
+		 private-no-expire:¥¯¥é¥¤¥¢¥ó¥È¤Î¥­¥ã¥Ã¥·¥å¤òµö²Ä¤¹¤ë¡£
+		*/
+		session_cache_limiter('private-no-expire');		
+
+	}
+}
+
+$objPage = new LC_Page();
+$objView = new SC_SiteView();
+$objCartSess = new SC_CartSession();
+$objSiteInfo = $objView->objSiteInfo;
+$objSiteSess = new SC_SiteSession();
+$objCustomer = new SC_Customer();
+$arrInfo = $objSiteInfo->data;
+$objQuery = new SC_Query();
+
+// Á°¤Î¥Ú¡¼¥¸¤ÇÀµ¤·¤¯ÅÐÏ¿¼êÂ³¤­¤¬¹Ô¤ï¤ì¤¿µ­Ï¿¤¬¤¢¤ë¤«È½Äê
+sfIsPrePage($objSiteSess);
+
+// ¥æ¡¼¥¶¥æ¥Ë¡¼¥¯ID¤Î¼èÆÀ¤È¹ØÆþ¾õÂÖ¤ÎÀµÅöÀ­¤ò¥Á¥§¥Ã¥¯
+$uniqid = sfCheckNormalAccess($objSiteSess, $objCartSess);
+$objPage->tpl_uniqid = $uniqid;
+
+// ¥«¡¼¥È½¸·×½èÍý
+$objPage = sfTotalCart($objPage, $objCartSess, $arrInfo);
+// °ì»þ¼õÃí¥Æ¡¼¥Ö¥ë¤ÎÆÉ¹þ
+$arrData = sfGetOrderTemp($uniqid);
+// ¥«¡¼¥È½¸·×¤ò¸µ¤ËºÇ½ª·×»»
+$arrData = sfTotalConfirm($arrData, $objPage, $objCartSess, $arrInfo, $objCustomer);
+
+// ¥«¡¼ÅÔÆâ¤Î¾¦ÉÊ¤ÎÇä¤êÀÚ¤ì¥Á¥§¥Ã¥¯
+$objCartSess->chkSoldOut($objCartSess->getCartList());
+
+// ²ñ°÷¥í¥°¥¤¥ó¥Á¥§¥Ã¥¯
+if($objCustomer->isLoginSuccess()) {
+	$objPage->tpl_login = '1';
+	$objPage->tpl_user_point = $objCustomer->getValue('point');
+}
+
+// ·èºÑ¶èÊ¬¤ò¼èÆÀ¤¹¤ë
+$payment_type = "";
+if(sfColumnExists("dtb_payment", "memo01")){
+	// MEMO03¤ËÃÍ¤¬Æþ¤Ã¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¡¢¥â¥¸¥å¡¼¥ëÄÉ²Ã¤µ¤ì¤¿¤â¤Î¤È¤ß¤Ê¤¹
+	$sql = "SELECT memo03 FROM dtb_payment WHERE payment_id = ?";
+	$arrPayment = $objQuery->getall($sql, array($arrData['payment_id']));
+	$payment_type = $arrPayment[0]["memo03"];
+}
+$objPage->payment_type = $payment_type;
+
+
+switch($_POST['mode']) {
+// Á°¤Î¥Ú¡¼¥¸¤ËÌá¤ë
+case 'return':
+	// Àµ¾ï¤Ê¿ä°Ü¤Ç¤¢¤ë¤³¤È¤òµ­Ï¿¤·¤Æ¤ª¤¯
+	$objSiteSess->setRegistFlag();
+	header("Location: " . gfAddSessionId(URL_SHOP_PAYMENT));
+	exit;
+	break;
+case 'confirm':
+	// ¤³¤Î»þÅÀ¤Ç¥ª¡¼¥À¡¼ID¤ò³ÎÊÝ¤·¤Æ¤ª¤¯¡Ê¥¯¥ì¥¸¥Ã¥È¡¢¥³¥ó¥Ó¥Ë·èºÑ¤ÇÉ¬Í×¤Ê¤¿¤á¡Ë
+	// postgresql¤Èmysql¤È¤Ç½èÍý¤òÊ¬¤±¤ë
+	if (DB_TYPE == "pgsql") {
+		$order_id = $objQuery->nextval("dtb_order","order_id");
+	}elseif (DB_TYPE == "mysql") {
+		$order_id = $objQuery->get_auto_increment("dtb_order");
+	}
+	$arrData["order_id"] = $order_id;
+	
+	// ½¸·×·ë²Ì¤ò¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤ËÈ¿±Ç
+	sfRegistTempOrder($uniqid, $arrData);
+	// Àµ¾ï¤ËÅÐÏ¿¤µ¤ì¤¿¤³¤È¤òµ­Ï¿¤·¤Æ¤ª¤¯
+	$objSiteSess->setRegistFlag();
+	
+	// ·èºÑÊýË¡¤Ë¤è¤ê²èÌÌÀÚÂØ
+	if($payment_type != "") {
+		$_SESSION["payment_id"] = $arrData['payment_id'];
+		header("Location: " . gfAddSessionId(URL_SHOP_MODULE));
+	}else{
+		header("Location: " . gfAddSessionId(URL_SHOP_COMPLETE));
+	}
+	break;
+default:
+	break;
+}
+
+
+$objPage->arrData = $arrData;
+$objPage->arrInfo = $arrInfo;
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+//--------------------------------------------------------------------------------------------------------------------------
+?>
Index: branches/dev/html/mobile/shopping/deliv_addr.php
===================================================================
--- branches/dev/html/mobile/shopping/deliv_addr.php	(revision 11460)
+++ branches/dev/html/mobile/shopping/deliv_addr.php	(revision 11460)
@@ -0,0 +1,277 @@
+<?php
+/**
+ * ÇÛÁ÷Àè¤ÎÄÉ²Ã
+ */
+require_once("../require.php");
+
+class LC_Page{
+	function LC_Page(){
+		$this->tpl_mainpage = 'shopping/deliv_addr.tpl';
+		$this->tpl_title = "¿·¤·¤¤¤ªÆÏ¤±Àè¤ÎÄÉ²Ã";
+	}
+}
+
+$objPage = new LC_Page();
+$objView = new SC_SiteView(false);
+$objQuery = new SC_Query();
+$objCustomer = new SC_Customer();
+$objConn = new SC_DBConn();
+$objSiteSess = new SC_SiteSession();
+$objCartSess = new SC_CartSession();
+
+//¥í¥°¥¤¥óÈ½Äê
+if (!$objCustomer->isLoginSuccess()){
+	sfDispSiteError(CUSTOMER_ERROR);
+}
+
+$objPage->arrForm = $_POST;
+$objPage->arrPref = $arrPref;
+//-- ¥Ç¡¼¥¿ÀßÄê
+foreach($_POST as $key => $val) {
+	if ($key != "mode") $objPage->list_data[ $key ] = $val;
+}
+
+// ¥æ¡¼¥¶¥æ¥Ë¡¼¥¯ID¤Î¼èÆÀ¤È¹ØÆþ¾õÂÖ¤ÎÀµÅöÀ­¤ò¥Á¥§¥Ã¥¯
+$uniqid = sfCheckNormalAccess($objSiteSess, $objCartSess);
+
+//ÊÌ¤Î¤ªÆÏ¤±Àè£Ä£ÂÅÐÏ¿ÍÑ¥«¥é¥àÇÛÎó
+$arrRegistColumn = array(
+							 array(  "column" => "name01",		"convert" => "aKV" ),
+							 array(  "column" => "name02",		"convert" => "aKV" ),
+							 array(  "column" => "kana01",		"convert" => "CKV" ),
+							 array(  "column" => "kana02",		"convert" => "CKV" ),
+							 array(  "column" => "zip01",		"convert" => "n" ),
+							 array(  "column" => "zip02",		"convert" => "n" ),
+							 array(  "column" => "pref",		"convert" => "n" ),
+							 array(  "column" => "addr01",		"convert" => "aKV" ),
+							 array(  "column" => "addr02",		"convert" => "aKV" ),
+							 array(  "column" => "tel01",		"convert" => "n" ),
+							 array(  "column" => "tel02",		"convert" => "n" ),
+							 array(  "column" => "tel03",		"convert" => "n" ),
+						);
+
+switch ($_POST['mode']){
+	case 'set1':
+		$objPage->arrErr = lfErrorCheck1($objPage->arrForm);
+		if (count($objPage->arrErr) == 0) {
+			$objPage->tpl_mainpage = 'shopping/set1.tpl';
+
+			// Í¹ÊØÈÖ¹æ¤«¤é½»½ê¤Î¼èÆÀ
+			$address = lfGetAddress($_REQUEST['zip01'].$_REQUEST['zip02']);
+
+			$objPage->arrForm['pref'] = @$address[0]['state'];
+			$objPage->arrForm['addr01'] = @$address[0]['city'] . @$address[0]['town'];
+		}
+		break;
+	case 'set2':
+		$objPage->arrErr = lfErrorCheck2($objPage->arrForm);
+		if (count($objPage->arrErr) == 0) {
+			$objPage->tpl_mainpage = 'shopping/set2.tpl';
+		} else {
+			$objPage->tpl_mainpage = 'shopping/set1.tpl';
+
+			$checkVal = array("pref", "addr01", "addr02", "addr03", "tel01", "tel02", "tel03");
+			//-- ¥Ç¡¼¥¿ÀßÄê
+			unset($objPage->list_data);
+			foreach($_POST as $key => $val) {
+				if ($key != "mode" && !in_array($key, $checkVal)) $objPage->list_data[ $key ] = $val;
+			}
+		}
+		break;
+	case 'complete':
+		$objPage->arrErr = lfErrorCheck($objPage->arrForm);
+		if (count($objPage->arrErr) == 0) {
+			// ÅÐÏ¿
+			$other_deliv_id = lfRegistData($_POST,$arrRegistColumn);
+
+			// ÅÐÏ¿ºÑ¤ß¤ÎÊÌ¤Î¤ªÆÏ¤±Àè¤ò¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤Ë½ñ¤­¹þ¤à
+			lfRegistOtherDelivData($uniqid, $objCustomer, $other_deliv_id);
+
+			// Àµ¾ï¤ËÅÐÏ¿¤µ¤ì¤¿¤³¤È¤òµ­Ï¿¤·¤Æ¤ª¤¯
+			$objSiteSess->setRegistFlag();
+			// ¤ª»ÙÊ§¤¤ÊýË¡ÁªÂò¥Ú¡¼¥¸¤Ø°ÜÆ°
+			header("Location: " . gfAddSessionId(URL_SHOP_PAYMENT));
+			exit;
+		} else {
+			sfDispSiteError(CUSTOMER_ERROR);
+		}
+		break;
+	default:
+		$deliv_count = $objQuery->count("dtb_other_deliv", "customer_id=?", array($objCustomer->getValue('customer_id')));
+		if ($deliv_count >= DELIV_ADDR_MAX){
+			sfDispSiteError(FREE_ERROR_MSG, "", false, "ºÇÂçÅÐÏ¿·ï¿ô¤òÄ¶¤¨¤Æ¤¤¤Þ¤¹¡£");
+		}
+}
+
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+
+//-------------------------------------------------------------------------------------------------------------
+
+/* ¥¨¥é¡¼¥Á¥§¥Ã¥¯ */
+function lfErrorCheck() {
+	$objErr = new SC_CheckError();
+	
+	$objErr->doFunc(array("¤ªÌ¾Á°¡ÊÀ«¡Ë", 'name01', STEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
+	$objErr->doFunc(array("¤ªÌ¾Á°¡ÊÌ¾¡Ë", 'name02', STEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK", "MAX_LENGTH_CHECK"));
+	$objErr->doFunc(array("¥Õ¥ê¥¬¥Ê¡ÊÀ«¡Ë", 'kana01', STEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK", "MAX_LENGTH_CHECK", "KANA_CHECK"));
+	$objErr->doFunc(array("¥Õ¥ê¥¬¥Ê¡ÊÌ¾¡Ë", 'kana02', STEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK", "MAX_LENGTH_CHECK", "KANA_CHECK"));
+	$objErr->doFunc(array("Í¹ÊØÈÖ¹æ1", "zip01", ZIP01_LEN ) ,array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK"));
+	$objErr->doFunc(array("Í¹ÊØÈÖ¹æ2", "zip02", ZIP02_LEN ) ,array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK")); 
+	$objErr->doFunc(array("Í¹ÊØÈÖ¹æ", "zip01", "zip02"), array("ALL_EXIST_CHECK"));
+	$objErr->doFunc(array("ÅÔÆ»ÉÜ¸©", 'pref'), array("SELECT_CHECK","NUM_CHECK"));
+	$objErr->doFunc(array("¤´½»½ê¡Ê1¡Ë", "addr01", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
+	$objErr->doFunc(array("¤´½»½ê¡Ê2¡Ë", "addr02", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
+	$objErr->doFunc(array("¤ªÅÅÏÃÈÖ¹æ1", 'tel01'), array("EXIST_CHECK","NUM_CHECK"));
+	$objErr->doFunc(array("¤ªÅÅÏÃÈÖ¹æ2", 'tel02'), array("EXIST_CHECK","NUM_CHECK"));
+	$objErr->doFunc(array("¤ªÅÅÏÃÈÖ¹æ3", 'tel03'), array("EXIST_CHECK","NUM_CHECK"));
+	$objErr->doFunc(array("¤ªÅÅÏÃÈÖ¹æ", "tel01", "tel02", "tel03", TEL_LEN) ,array("TEL_CHECK"));
+	return $objErr->arrErr;
+	
+}
+
+/* ¥¨¥é¡¼¥Á¥§¥Ã¥¯ */
+function lfErrorCheck1() {
+	$objErr = new SC_CheckError();
+	
+	$objErr->doFunc(array("¤ªÌ¾Á°¡ÊÀ«¡Ë", 'name01', STEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
+	$objErr->doFunc(array("¤ªÌ¾Á°¡ÊÌ¾¡Ë", 'name02', STEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK", "MAX_LENGTH_CHECK"));
+	$objErr->doFunc(array("¥Õ¥ê¥¬¥Ê¡ÊÀ«¡Ë", 'kana01', STEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK", "MAX_LENGTH_CHECK", "KANA_CHECK"));
+	$objErr->doFunc(array("¥Õ¥ê¥¬¥Ê¡ÊÌ¾¡Ë", 'kana02', STEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK", "MAX_LENGTH_CHECK", "KANA_CHECK"));
+	$objErr->doFunc(array("Í¹ÊØÈÖ¹æ1", "zip01", ZIP01_LEN ) ,array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK"));
+	$objErr->doFunc(array("Í¹ÊØÈÖ¹æ2", "zip02", ZIP02_LEN ) ,array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK")); 
+	$objErr->doFunc(array("Í¹ÊØÈÖ¹æ", "zip01", "zip02"), array("ALL_EXIST_CHECK"));
+	return $objErr->arrErr;
+	
+}
+
+/* ¥¨¥é¡¼¥Á¥§¥Ã¥¯ */
+function lfErrorCheck2() {
+	$objErr = new SC_CheckError();
+	
+	$objErr->doFunc(array("ÅÔÆ»ÉÜ¸©", 'pref'), array("SELECT_CHECK","NUM_CHECK"));
+	$objErr->doFunc(array("¤´½»½ê¡Ê1¡Ë", "addr01", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
+	$objErr->doFunc(array("¤´½»½ê¡Ê2¡Ë", "addr02", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK","MAX_LENGTH_CHECK"));
+	$objErr->doFunc(array("¤ªÅÅÏÃÈÖ¹æ1", 'tel01'), array("EXIST_CHECK","NUM_CHECK"));
+	$objErr->doFunc(array("¤ªÅÅÏÃÈÖ¹æ2", 'tel02'), array("EXIST_CHECK","NUM_CHECK"));
+	$objErr->doFunc(array("¤ªÅÅÏÃÈÖ¹æ3", 'tel03'), array("EXIST_CHECK","NUM_CHECK"));
+	$objErr->doFunc(array("¤ªÅÅÏÃÈÖ¹æ", "tel01", "tel02", "tel03", TEL_LEN) ,array("TEL_CHECK"));
+	return $objErr->arrErr;
+	
+}
+
+
+
+/* ÅÐÏ¿¼Â¹Ô */
+function lfRegistData($array, $arrRegistColumn) {
+	global $objConn;
+	global $objCustomer;
+	
+	foreach ($arrRegistColumn as $data) {
+		if (strlen($array[ $data["column"] ]) > 0) {
+			$arrRegist[ $data["column"] ] = $array[ $data["column"] ];
+		}
+	}
+	
+	$arrRegist['customer_id'] = $objCustomer->getvalue('customer_id');
+	
+	//-- ÊÔ½¸ÅÐÏ¿¼Â¹Ô
+	$objConn->query("BEGIN");
+	if ($array['other_deliv_id'] != ""){
+		$objConn->autoExecute("dtb_other_deliv", $arrRegist, "other_deliv_id='" .addslashes($array["other_deliv_id"]). "'");
+	}else{
+		$objConn->autoExecute("dtb_other_deliv", $arrRegist);
+
+		$sqlse = "SELECT max(other_deliv_id) FROM dtb_other_deliv WHERE customer_id = ?";
+		$array['other_deliv_id'] = $objConn->getOne($sqlse, array($arrRegist['customer_id']));
+	}
+
+	$objConn->query("COMMIT");
+
+	return $array['other_deliv_id'];
+}
+
+//----¡¡¼èÆÀÊ¸»úÎó¤ÎÊÑ´¹
+function lfConvertParam($array, $arrRegistColumn) {
+	/*
+	 *	Ê¸»úÎó¤ÎÊÑ´¹
+	 *	K :  ¡ÖÈ¾³Ñ(ÊÝ¶¸)ÊÒ²¾Ì¾¡×¤ò¡ÖÁ´³ÑÊÒ²¾Ì¾¡×¤ËÊÑ´¹
+	 *	C :  ¡ÖÁ´³Ñ¤Ò¤é²¾Ì¾¡×¤ò¡ÖÁ´³Ñ¤«¤¿²¾Ì¾¡×¤ËÊÑ´¹
+	 *	V :  ÂùÅÀÉÕ¤­¤ÎÊ¸»ú¤ò°ìÊ¸»ú¤ËÊÑ´¹¡£"K","H"¤È¶¦¤Ë»ÈÍÑ¤·¤Þ¤¹	
+	 *	n :  ¡ÖÁ´³Ñ¡×¿ô»ú¤ò¡ÖÈ¾³Ñ(ÊÝ¶¸)¡×¤ËÊÑ´¹
+	 *  a :  Á´³Ñ±Ñ¿ô»ú¤òÈ¾³Ñ±Ñ¿ô»ú¤ËÊÑ´¹¤¹¤ë
+	 */
+	// ¥«¥é¥àÌ¾¤È¥³¥ó¥Ð¡¼¥È¾ðÊó
+	foreach ($arrRegistColumn as $data) {
+		$arrConvList[ $data["column"] ] = $data["convert"];
+	}
+	
+	// Ê¸»úÊÑ´¹
+	foreach ($arrConvList as $key => $val) {
+		// POST¤µ¤ì¤Æ¤­¤¿ÃÍ¤Î¤ßÊÑ´¹¤¹¤ë¡£
+		if(strlen(($array[$key])) > 0) {
+			$array[$key] = mb_convert_kana($array[$key] ,$val);
+		}
+	}
+	return $array;
+}
+
+// Í¹ÊØÈÖ¹æ¤«¤é½»½ê¤Î¼èÆÀ
+function lfGetAddress($zipcode) {
+	global $arrPref;
+
+	$conn = new SC_DBconn(ZIP_DSN);
+
+	// Í¹ÊØÈÖ¹æ¸¡º÷Ê¸ºîÀ®
+	$zipcode = mb_convert_kana($zipcode ,"n");
+	$sqlse = "SELECT state, city, town FROM mtb_zip WHERE zipcode = ?";
+
+	$data_list = $conn->getAll($sqlse, array($zipcode));
+
+	// ¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÈÃÍ¤òÈ¿Å¾¤µ¤»¤ë¡£
+	$arrREV_PREF = array_flip($arrPref);
+
+	/*
+		ÁíÌ³¾Ê¤«¤é¥À¥¦¥ó¥í¡¼¥É¤·¤¿¥Ç¡¼¥¿¤ò¤½¤Î¤Þ¤Þ¥¤¥ó¥Ý¡¼¥È¤¹¤ë¤È
+		°Ê²¼¤Î¤è¤¦¤ÊÊ¸»úÎó¤¬Æþ¤Ã¤Æ¤¤¤ë¤Î¤Ç	ÂÐºö¤¹¤ë¡£
+		¡¦¡Ê£±¡¦£±£¹ÃúÌÜ¡Ë
+		¡¦°Ê²¼¤Ë·ÇºÜ¤¬¤Ê¤¤¾ì¹ç
+	*/
+	$town =  $data_list[0]['town'];
+	$town = ereg_replace("¡Ê.*¡Ë$","",$town);
+	$town = ereg_replace("°Ê²¼¤Ë·ÇºÜ¤¬¤Ê¤¤¾ì¹ç","",$town);
+	$data_list[0]['town'] = $town;
+	$data_list[0]['state'] = $arrREV_PREF[$data_list[0]['state']];
+
+	return $data_list;
+}
+
+/* ÊÌ¤Î¤ªÆÏ¤±Àè½»½ê¤ò°ì»þ¼õÃí¥Æ¡¼¥Ö¥ë¤Ø */
+function lfRegistOtherDelivData($uniqid, $objCustomer, $other_deliv_id) {
+	// ÅÐÏ¿¥Ç¡¼¥¿¤ÎºîÀ®
+	$sqlval['order_temp_id'] = $uniqid;
+	$sqlval['update_date'] = 'Now()';
+	$sqlval['customer_id'] = $objCustomer->getValue('customer_id');
+	$sqlval['order_birth'] = $objCustomer->getValue('birth');
+
+	$objQuery = new SC_Query();
+	$where = "other_deliv_id = ?";
+	$arrRet = $objQuery->select("*", "dtb_other_deliv", $where, array($other_deliv_id));
+	
+	$sqlval['deliv_check'] = '1';
+    $sqlval['deliv_name01'] = $arrRet[0]['name01'];
+    $sqlval['deliv_name02'] = $arrRet[0]['name02'];
+    $sqlval['deliv_kana01'] = $arrRet[0]['kana01'];
+    $sqlval['deliv_kana02'] = $arrRet[0]['kana02'];
+    $sqlval['deliv_zip01'] = $arrRet[0]['zip01'];
+    $sqlval['deliv_zip02'] = $arrRet[0]['zip02'];
+    $sqlval['deliv_pref'] = $arrRet[0]['pref'];
+    $sqlval['deliv_addr01'] = $arrRet[0]['addr01'];
+    $sqlval['deliv_addr02'] = $arrRet[0]['addr02'];
+    $sqlval['deliv_tel01'] = $arrRet[0]['tel01'];
+    $sqlval['deliv_tel02'] = $arrRet[0]['tel02'];
+	$sqlval['deliv_tel03'] = $arrRet[0]['tel03'];
+	sfRegistTempOrder($uniqid, $sqlval);
+}
+
+?>
Index: branches/dev/html/mobile/shopping/payment.php
===================================================================
--- branches/dev/html/mobile/shopping/payment.php	(revision 11460)
+++ branches/dev/html/mobile/shopping/payment.php	(revision 11460)
@@ -0,0 +1,333 @@
+<?php
+/*
+ * Copyright(c) 2000-2006 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ */
+
+require_once("../require.php");
+
+class LC_Page {
+	var $arrSession;
+	var $tpl_mode;
+	function LC_Page() {
+		$this->tpl_css = '/css/layout/shopping/pay.css';
+		$this->tpl_mainpage = 'shopping/payment.tpl';
+		$this->tpl_onload = 'fnCheckInputPoint();';
+		$this->tpl_title = "¤ª»ÙÊ§ÊýË¡¡¦¤ªÆÏ¤±»þ´ÖÅù¤Î»ØÄê";
+		/*
+		 session_start»þ¤Îno-cache¥Ø¥Ã¥À¡¼¤òÍÞÀ©¤¹¤ë¤³¤È¤Ç
+		 ¡ÖÌá¤ë¡×¥Ü¥¿¥ó»ÈÍÑ»þ¤ÎÍ­¸ú´ü¸ÂÀÚ¤ìÉ½¼¨¤òÍÞÀ©¤¹¤ë¡£
+		 private-no-expire:¥¯¥é¥¤¥¢¥ó¥È¤Î¥­¥ã¥Ã¥·¥å¤òµö²Ä¤¹¤ë¡£
+		*/
+		session_cache_limiter('private-no-expire');		
+	}
+}
+
+$objPage = new LC_Page();
+$objView = new SC_SiteView();
+$objSiteSess = new SC_SiteSession();
+$objCartSess = new SC_CartSession();
+$objCustomer = new SC_Customer();
+$objSiteInfo = $objView->objSiteInfo;
+$arrInfo = $objSiteInfo->data;
+
+// ¥Ñ¥é¥á¡¼¥¿´ÉÍý¥¯¥é¥¹
+$objFormParam = new SC_FormParam();
+// ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½
+lfInitParam();
+// POSTÃÍ¤Î¼èÆÀ
+$objFormParam->setParam($_POST);
+
+// ¥æ¡¼¥¶¥æ¥Ë¡¼¥¯ID¤Î¼èÆÀ¤È¹ØÆþ¾õÂÖ¤ÎÀµÅöÀ­¤ò¥Á¥§¥Ã¥¯
+$uniqid = sfCheckNormalAccess($objSiteSess, $objCartSess);
+// ¥æ¥Ë¡¼¥¯ID¤ò°ú¤­·Ñ¤°
+$objPage->tpl_uniqid = $uniqid;
+
+// ²ñ°÷¥í¥°¥¤¥ó¥Á¥§¥Ã¥¯
+if($objCustomer->isLoginSuccess()) {
+	$objPage->tpl_login = '1';
+	$objPage->tpl_user_point = $objCustomer->getValue('point');
+}
+
+// ¶â³Û¤Î¼èÆÀ (¹ØÆþÅÓÃæ¤ÇÇä¤êÀÚ¤ì¤¿¾ì¹ç¤Ë¤Ï¤³¤Î´Ø¿ôÆâ¤Ë¤Æ¤½¤Î¾¦ÉÊ¤Î¸Ä¿ô¤¬£°¤Ë¤Ê¤ë)
+$objPage = sfTotalCart($objPage, $objCartSess, $arrInfo);
+$objPage->arrData = sfTotalConfirm($arrData, $objPage, $objCartSess, $arrInfo);
+
+// ¥«¡¼ÅÔÆâ¤Î¾¦ÉÊ¤ÎÇä¤êÀÚ¤ì¥Á¥§¥Ã¥¯
+$objCartSess->chkSoldOut($objCartSess->getCartList());
+
+switch($_POST['mode']) {
+case 'confirm':
+	// ÆþÎÏÃÍ¤ÎÊÑ´¹
+	$objFormParam->convParam();
+	$objPage->arrErr = lfCheckError($objPage->arrData );
+	// ÆþÎÏ¥¨¥é¡¼¤Ê¤·
+	if(count($objPage->arrErr) == 0) {
+		// DB¤Ø¤Î¥Ç¡¼¥¿ÅÐÏ¿
+		lfRegistData($uniqid);
+		// Àµ¾ï¤ËÅÐÏ¿¤µ¤ì¤¿¤³¤È¤òµ­Ï¿¤·¤Æ¤ª¤¯
+		$objSiteSess->setRegistFlag();
+		// ³ÎÇ§¥Ú¡¼¥¸¤Ø°ÜÆ°
+		header("Location: " . gfAddSessionId(URL_SHOP_CONFIRM));
+		exit;
+	}else{
+		// ¥æ¡¼¥¶¥æ¥Ë¡¼¥¯ID¤Î¼èÆÀ
+		$uniqid = $objSiteSess->getUniqId();
+		// ¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤«¤é¤Î¾ðÊó¤ò³ÊÇ¼
+		lfSetOrderTempData($uniqid);
+	}
+	break;
+// Á°¤Î¥Ú¡¼¥¸¤ËÌá¤ë
+case 'return':
+	// Èó²ñ°÷¤Î¾ì¹ç
+	// Àµ¾ï¤Ê¿ä°Ü¤Ç¤¢¤ë¤³¤È¤òµ­Ï¿¤·¤Æ¤ª¤¯
+	$objSiteSess->setRegistFlag();
+	header("Location: " . gfAddSessionId(URL_SHOP_TOP));
+	exit;
+	break;
+// »ÙÊ§¤¤ÊýË¡¤¬ÊÑ¹¹¤µ¤ì¤¿¾ì¹ç
+case 'payment':
+	// ¤³¤³¤Îbreak¤Ï¡¢°ÕÌ£¤¬¤¢¤ë¤Î¤Ç³°¤µ¤Ê¤¤¤Ç²¼¤µ¤¤¡£
+	break;
+default:
+	// ¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤«¤é¤Î¾ðÊó¤ò³ÊÇ¼
+	lfSetOrderTempData($uniqid);
+	break;
+}
+
+// Å¹ÊÞ¾ðÊó¤Î¼èÆÀ
+$arrInfo = $objSiteInfo->data;
+// ¹ØÆþ¶â³Û¤Î¼èÆÀÆÀ
+$total_pretax = $objCartSess->getAllProductsTotal($arrInfo);
+// »ÙÊ§¤¤ÊýË¡¤Î¼èÆÀ
+$objPage->arrPayment = lfGetPayment($total_pretax);
+// ÇÛÁ÷»þ´Ö¤Î¼èÆÀ
+$arrRet = sfGetDelivTime($objFormParam->getValue('payment_id'));
+$objPage->arrDelivTime = sfArrKeyValue($arrRet, 'time_id', 'deliv_time');
+$objPage->objCustomer = $objCustomer;
+//¡¡ÇÛÁ÷Æü°ìÍ÷¤Î¼èÆÀ
+$objPage->arrDelivDate = lfGetDelivDate();
+
+$objPage->arrForm = $objFormParam->getFormParamList();
+
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+//--------------------------------------------------------------------------------------------------------------------------
+/* ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½ */
+function lfInitParam() {
+	global $objFormParam;
+	$objFormParam->addParam("¤ª»ÙÊ§¤¤ÊýË¡", "payment_id", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
+	$objFormParam->addParam("¥Ý¥¤¥ó¥È", "use_point", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK", "ZERO_START"));
+	$objFormParam->addParam("ÇÛÃ£»þ´Ö", "deliv_time_id", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
+	$objFormParam->addParam("¤´¼ÁÌä", "message", LTEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK"));
+	$objFormParam->addParam("¥Ý¥¤¥ó¥È¤ò»ÈÍÑ¤¹¤ë", "point_check", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), '2');
+	$objFormParam->addParam("ÇÛÃ£Æü", "deliv_date", STEXT_LEN, "KVa", array("MAX_LENGTH_CHECK"));
+}
+
+function lfGetPayment($total_pretax) {
+	$objQuery = new SC_Query();
+	$objQuery->setorder("rank DESC");
+	//ºï½ü¤µ¤ì¤Æ¤¤¤Ê¤¤»ÙÊ§ÊýË¡¤ò¼èÆÀ
+	$arrRet = $objQuery->select("payment_id, payment_method, rule, upper_rule, note, payment_image", "dtb_payment", "del_flg = 0 AND deliv_id IN (SELECT deliv_id FROM dtb_deliv WHERE del_flg = 0) ");
+	//ÍøÍÑ¾ò·ï¤«¤é»ÙÊ§²ÄÇ½ÊýË¡¤òÈ½Äê
+	foreach($arrRet as $data) {
+		//²¼¸Â¤È¾å¸Â¤¬ÀßÄê¤µ¤ì¤Æ¤¤¤ë
+		if($data['rule'] > 0 && $data['upper_rule'] > 0) {
+			if($data['rule'] <= $total_pretax && $data['upper_rule'] >= $total_pretax) {
+				$arrPayment[] = $data;
+			}
+		//²¼¸Â¤Î¤ßÀßÄê¤µ¤ì¤Æ¤¤¤ë
+		} elseif($data['rule'] > 0) {	
+			if($data['rule'] <= $total_pretax) {
+				$arrPayment[] = $data;
+			}
+		//¾å¸Â¤Î¤ßÀßÄê¤µ¤ì¤Æ¤¤¤ë
+		} elseif($data['upper_rule'] > 0) {
+			if($data['upper_rule'] >= $total_pretax) {
+				$arrPayment[] = $data;
+			}
+		//ÀßÄê¤Ê¤·
+		} else {
+			$arrPayment[] = $data;
+		}	
+	}
+	return $arrPayment;	
+}
+
+/* ÆþÎÏÆâÍÆ¤Î¥Á¥§¥Ã¥¯ */
+function lfCheckError($arrData) {
+	global $objFormParam;
+	global $objCustomer;
+	// ÆþÎÏ¥Ç¡¼¥¿¤òÅÏ¤¹¡£
+	$arrRet =  $objFormParam->getHashArray();
+	$objErr = new SC_CheckError($arrRet);
+	$objErr->arrErr = $objFormParam->checkError();
+	
+	if($_POST['point_check'] == '1') {
+		$objErr->doFunc(array("¥Ý¥¤¥ó¥È¤ò»ÈÍÑ¤¹¤ë", "point_check"), array("EXIST_CHECK"));
+		$objErr->doFunc(array("¥Ý¥¤¥ó¥È", "use_point"), array("EXIST_CHECK"));
+		$max_point = $objCustomer->getValue('point');
+		if($max_point == "") {
+			$max_point = 0;
+		}
+		if($arrRet['use_point'] > $max_point) {
+			$objErr->arrErr['use_point'] = "¢¨ ¤´ÍøÍÑ¥Ý¥¤¥ó¥È¤¬½ê»ý¥Ý¥¤¥ó¥È¤òÄ¶¤¨¤Æ¤¤¤Þ¤¹¡£<br>";
+		}
+		if(($arrRet['use_point'] * POINT_VALUE) > $arrData['subtotal']) {
+			$objErr->arrErr['use_point'] = "¢¨ ¤´ÍøÍÑ¥Ý¥¤¥ó¥È¤¬¤´¹ØÆþ¶â³Û¤òÄ¶¤¨¤Æ¤¤¤Þ¤¹¡£<br>";
+		}
+	}
+	return $objErr->arrErr;
+}
+
+/* »ÙÊ§¤¤ÊýË¡Ê¸»úÎó¤Î¼èÆÀ */
+function lfGetPaymentInfo($payment_id) {
+	$objQuery = new SC_Query();
+	$where = "payment_id = ?";
+	$arrRet = $objQuery->select("payment_method, charge", "dtb_payment", $where, array($payment_id));
+	return (array($arrRet[0]['payment_method'], $arrRet[0]['charge']));
+}
+
+/* ÇÛÁ÷»þ´ÖÊ¸»úÎó¤Î¼èÆÀ */
+function lfGetDelivTimeInfo($time_id) {
+	$objQuery = new SC_Query();
+	$where = "time_id = ?";
+	$arrRet = $objQuery->select("deliv_id, deliv_time", "dtb_delivtime", $where, array($time_id));
+	return (array($arrRet[0]['deliv_id'], $arrRet[0]['deliv_time']));
+}
+
+/* DB¤Ø¥Ç¡¼¥¿¤ÎÅÐÏ¿ */
+function lfRegistData($uniqid) {
+	global $objFormParam;
+	$arrRet = $objFormParam->getHashArray();
+	$sqlval = $objFormParam->getDbArray();
+	// ÅÐÏ¿¥Ç¡¼¥¿¤ÎºîÀ®
+	$sqlval['order_temp_id'] = $uniqid;
+	$sqlval['update_date'] = 'Now()';
+	
+	if($sqlval['payment_id'] != "") {
+		list($sqlval['payment_method'], $sqlval['charge']) = lfGetPaymentInfo($sqlval['payment_id']);
+	} else {
+		$sqlval['payment_id'] = '0';
+		$sqlval['payment_method'] = "";
+	}
+	
+	if($sqlval['deliv_time_id'] != "") {
+		list($sqlval['deliv_id'], $sqlval['deliv_time']) = lfGetDelivTimeInfo($sqlval['deliv_time_id']);
+	} else {
+		$sqlval['deliv_time_id'] = '0';
+		$sqlval['deliv_id'] = '0';
+		$sqlval['deliv_time'] = "";
+	}
+	
+	// »ÈÍÑ¥Ý¥¤¥ó¥È¤ÎÀßÄê
+	if($sqlval['point_check'] != '1') {
+		$sqlval['use_point'] = 0;
+	}
+	
+	sfRegistTempOrder($uniqid, $sqlval);
+}
+
+/* ÇÛÃ£Æü°ìÍ÷¤ò¼èÆÀ¤¹¤ë */
+function lfGetDelivDate() {
+	$objCartSess = new SC_CartSession();
+	$objQuery = new SC_Query();
+	// ¾¦ÉÊID¤Î¼èÆÀ
+	$max = $objCartSess->getMax();
+	for($i = 1; $i <= $max; $i++) {
+		if($_SESSION[$objCartSess->key][$i]['id'][0] != "") {
+			$arrID['product_id'][$i] = $_SESSION[$objCartSess->key][$i]['id'][0];
+		}
+	}
+	if(count($arrID['product_id']) > 0) {
+		$id = implode(",", $arrID['product_id']);
+		//¾¦ÉÊ¤«¤éÈ¯Á÷ÌÜ°Â¤Î¼èÆÀ
+		$deliv_date = $objQuery->get("dtb_products", "MAX(deliv_date_id)", "product_id IN (".$id.")");
+		//È¯Á÷ÌÜ°Â
+		switch($deliv_date) {
+		//Â¨ÆüÈ¯Á÷
+		case '1':
+			$start_day = 1;
+			break;
+		//1-2Æü¸å
+		case '2':
+			$start_day = 3;
+			break;
+		//3-4Æü¸å
+		case '3':
+			$start_day = 5;
+			break;
+		//1½µ´Ö°ÊÆâ
+		case '4':
+			$start_day = 8;
+			break;
+		//2½µ´Ö°ÊÆâ
+		case '5':
+			$start_day = 15;
+			break;
+		//3½µ´Ö°ÊÆâ
+		case '6':
+			$start_day = 22;
+			break;
+		//1¥ö·î°ÊÆâ
+		case '7':
+			$start_day = 32;
+			break;
+		//2¥ö·î°Ê¹ß
+		case '8':
+			$start_day = 62;			
+			break;
+		//¤ª¼è¤ê´ó¤»(¾¦ÉÊÆþ²Ù¸å)
+		case '9':
+			$start_day = "";
+			break;
+		default:
+			//¤ªÆÏ¤±Æü¤¬ÀßÄê¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç
+			$start_day = "";
+			break;
+		}
+		//ÇÛÃ£²ÄÇ½Æü¤Î¥¹¥¿¡¼¥ÈÃÍ¤«¤é¡¢ÇÛÃ£Æü¤ÎÇÛÎó¤ò¼èÆÀ¤¹¤ë
+		$arrDelivDate = lfGetDateArray($start_day, DELIV_DATE_END_MAX);
+	}
+	return $arrDelivDate;
+}
+
+//ÇÛÃ£²ÄÇ½Æü¤Î¥¹¥¿¡¼¥ÈÃÍ¤«¤é¡¢ÇÛÃ£Æü¤ÎÇÛÎó¤ò¼èÆÀ¤¹¤ë
+function lfGetDateArray($start_day, $end_day) {
+	global $arrWDAY;
+	//ÇÛÃ£²ÄÇ½Æü¤Î¥¹¥¿¡¼¥ÈÃÍ¤¬¥»¥Ã¥È¤µ¤ì¤Æ¤¤¤ì¤Ð
+	if($start_day >= 1) {
+		$now_time = time();
+		$max_day = $start_day + $end_day;
+		// ½¸·×
+		for ($i = $start_day; $i < $max_day; $i++) {
+			// ´ðËÜ»þ´Ö¤«¤éÆü¿ô¤òÄÉ²Ã¤·¤Æ¤¤¤¯
+			$tmp_time = $now_time + ($i * 24 * 3600);
+			list($y, $m, $d, $w) = split(" ", date("y m d w", $tmp_time));	
+			$val = sprintf("%02d/%02d/%02d(%s)", $y, $m, $d, $arrWDAY[$w]);
+			$arrDate[$val] = $val;
+		}
+	} else {
+		$arrDate = false;
+	}
+	return $arrDate;
+}
+
+//°ì»þ¼õÃí¥Æ¡¼¥Ö¥ë¤«¤é¤Î¾ðÊó¤ò³ÊÇ¼¤¹¤ë
+function lfSetOrderTempData($uniqid) {
+	global $objQuery;
+	global $objFormParam;
+	
+	$objQuery = new SC_Query();
+	$col = "payment_id, use_point, deliv_time_id, message, point_check, deliv_date";
+	$from = "dtb_order_temp";
+	$where = "order_temp_id = ?";
+	$arrRet = $objQuery->select($col, $from, $where, array($uniqid));
+	// DBÃÍ¤Î¼èÆÀ
+	$objFormParam->setParam($arrRet[0]);
+	return $objFormParam;
+}
+
+
+?>
Index: branches/dev/html/mobile/shopping/load_payment_module.php
===================================================================
--- branches/dev/html/mobile/shopping/load_payment_module.php	(revision 11460)
+++ branches/dev/html/mobile/shopping/load_payment_module.php	(revision 11460)
@@ -0,0 +1,42 @@
+<?php
+/*
+ * Copyright(c) 2000-2006 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ */
+require_once("../require.php");
+
+$objSiteSess = new SC_SiteSession();
+$objCartSess = new SC_CartSession();
+$objQuery = new SC_Query();
+
+// Á°¤Î¥Ú¡¼¥¸¤ÇÀµ¤·¤¯ÅÐÏ¿¼êÂ³¤­¤¬¹Ô¤ï¤ì¤¿µ­Ï¿¤¬¤¢¤ë¤«È½Äê
+sfIsPrePage($objSiteSess);
+
+// ¥¢¥¯¥»¥¹¤ÎÀµÅöÀ­¤ÎÈ½Äê
+$uniqid = sfCheckNormalAccess($objSiteSess, $objCartSess);
+
+$payment_id = $_SESSION["payment_id"];
+
+// »ÙÊ§¤¤ID¤¬Ìµ¤¤¾ì¹ç¤Ë¤Ï¥¨¥é¡¼
+if($payment_id == ""){
+	sfDispSiteError(PAGE_ERROR, "", true);
+}
+
+// ·èºÑ¾ðÊó¤ò¼èÆÀ¤¹¤ë
+if(sfColumnExists("dtb_payment", "memo01")){
+	$sql = "SELECT module_path, memo01, memo02, memo03, memo04, memo05, memo06, memo07, memo08, memo09, memo10 FROM dtb_payment WHERE payment_id = ?";
+	$arrPayment = $objQuery->getall($sql, array($payment_id));
+}
+
+if(count($arrPayment) > 0) {
+	$path = $arrPayment[0]['module_path'];
+	if(file_exists($path)) {
+		require_once($path);
+		exit;
+	} else {
+		sfDispSiteError(FREE_ERROR_MSG, "", true, "¥â¥¸¥å¡¼¥ë¥Õ¥¡¥¤¥ë¤Î¼èÆÀ¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£<br />¤³¤Î¼êÂ³¤­¤ÏÌµ¸ú¤È¤Ê¤ê¤Þ¤·¤¿¡£");
+	}
+}
+
+?>
Index: branches/dev/html/mobile/shopping/deliv.php
===================================================================
--- branches/dev/html/mobile/shopping/deliv.php	(revision 11460)
+++ branches/dev/html/mobile/shopping/deliv.php	(revision 11460)
@@ -0,0 +1,315 @@
+<?php
+/*
+ * Copyright(c) 2000-2006 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ */
+
+require_once("../require.php");
+
+class LC_Page {
+	var $arrSession;
+	var $tpl_mode;
+	var $arrAddr;
+	function LC_Page() {
+		$this->tpl_mainpage = 'shopping/deliv.tpl';
+		$this->tpl_css = '/css/layout/shopping/index.css';
+		global $arrPref;
+		$this->arrPref = $arrPref;
+		$this->tpl_title = "¤ªÆÏ¤±Àè»ØÄê";		// ¥¿¥¤¥È¥ë
+
+		/*
+		 session_start»þ¤Îno-cache¥Ø¥Ã¥À¡¼¤òÍÞÀ©¤¹¤ë¤³¤È¤Ç
+		 ¡ÖÌá¤ë¡×¥Ü¥¿¥ó»ÈÍÑ»þ¤ÎÍ­¸ú´ü¸ÂÀÚ¤ìÉ½¼¨¤òÍÞÀ©¤¹¤ë¡£
+		 private-no-expire:¥¯¥é¥¤¥¢¥ó¥È¤Î¥­¥ã¥Ã¥·¥å¤òµö²Ä¤¹¤ë¡£
+		*/
+		session_cache_limiter('private-no-expire');		
+
+	}
+}
+
+$objPage = new LC_Page();
+$objView = new SC_SiteView();
+$objSiteSess = new SC_SiteSession();
+$objCartSess = new SC_CartSession();
+$objCustomer = new SC_Customer();
+// ¥¯¥Ã¥­¡¼´ÉÍý¥¯¥é¥¹
+$objCookie = new SC_Cookie(COOKIE_EXPIRE);
+// ¥Ñ¥é¥á¡¼¥¿´ÉÍý¥¯¥é¥¹
+$objFormParam = new SC_FormParam();
+// ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½
+lfInitParam();
+// POSTÃÍ¤Î¼èÆÀ
+$objFormParam->setParam($_POST);
+
+$objLoginFormParam = new SC_FormParam();	// ¥í¥°¥¤¥ó¥Õ¥©¡¼¥àÍÑ
+lfInitLoginFormParam();						// ½é´üÀßÄê
+$objLoginFormParam->setParam($_POST);		// POSTÃÍ¤Î¼èÆÀ
+
+// ¥æ¡¼¥¶¥æ¥Ë¡¼¥¯ID¤Î¼èÆÀ¤È¹ØÆþ¾õÂÖ¤ÎÀµÅöÀ­¤ò¥Á¥§¥Ã¥¯
+$uniqid = sfCheckNormalAccess($objSiteSess, $objCartSess);
+$objPage->tpl_uniqid = $uniqid;
+
+// ¥í¥°¥¤¥ó¥Á¥§¥Ã¥¯
+if($_POST['mode'] != 'login' && !$objCustomer->isLoginSuccess()) {
+	// ÉÔÀµ¥¢¥¯¥»¥¹¤È¤ß¤Ê¤¹
+	sfDispSiteError(CUSTOMER_ERROR);
+}
+
+switch($_POST['mode']) {
+case 'login':
+	$objLoginFormParam->toLower('login_email');
+	$objPage->arrErr = $objLoginFormParam->checkError();
+	$arrForm =  $objLoginFormParam->getHashArray();
+	// ¥¯¥Ã¥­¡¼ÊÝÂ¸È½Äê
+	if($arrForm['login_memory'] == "1" && $arrForm['login_email'] != "") {
+		$objCookie->setCookie('login_email', $_POST['login_email']);
+	} else {
+		$objCookie->setCookie('login_email', '');
+	}
+
+	if(count($objPage->arrErr) == 0) {
+		// ¥í¥°¥¤¥óÈ½Äê
+		if(!$objCustomer->getCustomerDataFromMobilePhoneIdPass($arrForm['login_pass']) &&
+		   !$objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'], true)) {
+			// ²¾ÅÐÏ¿¤ÎÈ½Äê
+			$objQuery = new SC_Query;
+			$where = "email = ? AND status = 1 AND del_flg = 0";
+			$ret = $objQuery->count("dtb_customer", $where, array($arrForm['login_email']));
+			
+			if($ret > 0) {
+				sfDispSiteError(TEMP_LOGIN_ERROR);
+			} else {
+				sfDispSiteError(SITE_LOGIN_ERROR);
+			}
+		} 
+	} else {
+		// ¥í¥°¥¤¥ó¥Ú¡¼¥¸¤ËÌá¤ë
+		header("Location: " . gfAddSessionId(URL_SHOP_TOP));
+		exit;
+	}
+
+	// ¥í¥°¥¤¥ó¤¬À®¸ù¤·¤¿¾ì¹ç¤Ï·ÈÂÓÃ¼ËöID¤òÊÝÂ¸¤¹¤ë¡£
+	$objCustomer->updateMobilePhoneId();
+
+	// ·ÈÂÓ¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò¥³¥Ô¡¼¤¹¤ë¡£
+	$objCustomer->updateEmailMobile();
+
+	// ·ÈÂÓ¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç
+	if (!$objCustomer->hasValue('email_mobile')) {
+		header('Location: ' . gfAddSessionId('../entry/email_mobile.php'));
+		exit;
+	}
+	break;
+// ºï½ü
+case 'delete':
+	if (sfIsInt($_POST['other_deliv_id'])) {
+		$objQuery = new SC_Query();
+		$where = "other_deliv_id = ?";
+		$arrRet = $objQuery->delete("dtb_other_deliv", $where, array($_POST['other_deliv_id']));
+		$objFormParam->setValue('select_addr_id', '');
+	}
+	break;
+// ²ñ°÷ÅÐÏ¿½»½ê¤ËÁ÷¤ë
+case 'customer_addr':
+	// ¤ªÆÏ¤±Àè¤¬¥Á¥§¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¹¹¿·½èÍý¤ò¹Ô¤¦
+	if ($_POST['deli'] != "") {
+		// ²ñ°÷¾ðÊó¤Î½»½ê¤ò¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤Ë½ñ¤­¹þ¤à
+		lfRegistDelivData($uniqid, $objCustomer);
+		// Àµ¾ï¤ËÅÐÏ¿¤µ¤ì¤¿¤³¤È¤òµ­Ï¿¤·¤Æ¤ª¤¯
+		$objSiteSess->setRegistFlag();
+		// ¤ª»ÙÊ§¤¤ÊýË¡ÁªÂò¥Ú¡¼¥¸¤Ø°ÜÆ°
+		header("Location: " . gfAddSessionId(URL_SHOP_PAYMENT));
+		exit;
+	}else{
+		// ¥¨¥é¡¼¤òÊÖ¤¹
+		$arrErr['deli'] = '¢¨ ¤ªÆÏ¤±Àè¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£';
+	}
+	break;
+	
+// ÅÐÏ¿ºÑ¤ß¤ÎÊÌ¤Î¤ªÆÏ¤±Àè¤ËÁ÷¤ë
+case 'other_addr':
+	// ¤ªÆÏ¤±Àè¤¬¥Á¥§¥Ã¥¯¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ë¤Ï¹¹¿·½èÍý¤ò¹Ô¤¦
+	if ($_POST['deli'] != "") {
+		if (sfIsInt($_POST['other_deliv_id'])) {
+			// ÅÐÏ¿ºÑ¤ß¤ÎÊÌ¤Î¤ªÆÏ¤±Àè¤ò¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤Ë½ñ¤­¹þ¤à
+			lfRegistOtherDelivData($uniqid, $objCustomer, $_POST['other_deliv_id']);
+			// Àµ¾ï¤ËÅÐÏ¿¤µ¤ì¤¿¤³¤È¤òµ­Ï¿¤·¤Æ¤ª¤¯
+			$objSiteSess->setRegistFlag();
+			// ¤ª»ÙÊ§¤¤ÊýË¡ÁªÂò¥Ú¡¼¥¸¤Ø°ÜÆ°
+			header("Location: " . gfAddSessionId(URL_SHOP_PAYMENT));
+			exit;
+		}
+	}else{
+		// ¥¨¥é¡¼¤òÊÖ¤¹
+		$arrErr['deli'] = '¢¨ ¤ªÆÏ¤±Àè¤òÁªÂò¤·¤Æ¤¯¤À¤µ¤¤¡£';
+	}
+	break;
+
+/*
+// ÊÌ¤Î¤ªÆÏ¤±Àè¤ò»ØÄê
+case 'new_addr':
+	// ÆþÎÏÃÍ¤ÎÊÑ´¹
+	$objFormParam->convParam();
+	$objPage->arrErr = lfCheckError($arrRet);
+	// ÆþÎÏ¥¨¥é¡¼¤Ê¤·
+	if(count($objPage->arrErr) == 0) {
+		// DB¤Ø¤ªÆÏ¤±Àè¤òÅÐÏ¿
+		lfRegistNewAddrData($uniqid, $objCustomer);
+		// Àµ¾ï¤ËÅÐÏ¿¤µ¤ì¤¿¤³¤È¤òµ­Ï¿¤·¤Æ¤ª¤¯
+		$objSiteSess->setRegistFlag();
+		// ¤ª»ÙÊ§¤¤ÊýË¡ÁªÂò¥Ú¡¼¥¸¤Ø°ÜÆ°
+		header("Location: " . URL_SHOP_PAYMENT);
+		exit;
+	}
+	break;
+*/
+
+// Á°¤Î¥Ú¡¼¥¸¤ËÌá¤ë
+case 'return':
+	// ³ÎÇ§¥Ú¡¼¥¸¤Ø°ÜÆ°
+	header("Location: " . URL_CART_TOP);
+	exit;
+	break;
+default:
+	$objQuery = new SC_Query();
+	$where = "order_temp_id = ?";
+	$arrRet = $objQuery->select("*", "dtb_order_temp", $where, array($uniqid));
+	$objFormParam->setParam($arrRet[0]);
+	break;
+}
+
+/** É½¼¨½èÍý **/
+
+// ²ñ°÷ÅÐÏ¿½»½ê¤Î¼èÆÀ
+$col = "name01, name02, pref, addr01, addr02, zip01, zip02";
+$where = "customer_id = ?";
+$objQuery = new SC_Query();
+$arrCustomerAddr = $objQuery->select($col, "dtb_customer", $where, array($_SESSION['customer']['customer_id']));
+// ÊÌ¤Î¤ªÆÏ¤±Àè½»½ê¤Î¼èÆÀ
+$col = "other_deliv_id, name01, name02, pref, addr01, addr02, zip01, zip02";
+$objQuery->setorder("other_deliv_id DESC");
+$objOtherAddr = $objQuery->select($col, "dtb_other_deliv", $where, array($_SESSION['customer']['customer_id']));
+$objPage->arrAddr = $arrCustomerAddr;
+$cnt = 1;
+foreach($objOtherAddr as $val) {
+	$objPage->arrAddr[$cnt] = $val;
+	$cnt++;
+}
+
+// ÆþÎÏÃÍ¤Î¼èÆÀ
+$objPage->arrForm = $objFormParam->getFormParamList();
+$objPage->arrErr = $arrErr;
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+//--------------------------------------------------------------------------------------------------------------------------
+/* ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½ */
+function lfInitParam() {
+	global $objFormParam;
+	$objFormParam->addParam("¤ªÌ¾Á°1", "deliv_name01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
+	$objFormParam->addParam("¤ªÌ¾Á°2", "deliv_name02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
+	$objFormParam->addParam("¥Õ¥ê¥¬¥Ê1", "deliv_kana01", STEXT_LEN, "KVCa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
+	$objFormParam->addParam("¥Õ¥ê¥¬¥Ê2", "deliv_kana02", STEXT_LEN, "KVCa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
+	$objFormParam->addParam("Í¹ÊØÈÖ¹æ1", "deliv_zip01", ZIP01_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK"));
+	$objFormParam->addParam("Í¹ÊØÈÖ¹æ2", "deliv_zip02", ZIP02_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK"));
+	$objFormParam->addParam("ÅÔÆ»ÉÜ¸©", "deliv_pref", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
+	$objFormParam->addParam("½»½ê1", "deliv_addr01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
+	$objFormParam->addParam("½»½ê2", "deliv_addr02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
+	$objFormParam->addParam("ÅÅÏÃÈÖ¹æ1", "deliv_tel01", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK"));
+	$objFormParam->addParam("ÅÅÏÃÈÖ¹æ2", "deliv_tel02", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK"));
+	$objFormParam->addParam("ÅÅÏÃÈÖ¹æ3", "deliv_tel03", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK"));
+}
+
+function lfInitLoginFormParam() {
+	global $objLoginFormParam;
+	$objLoginFormParam->addParam("µ­²±¤¹¤ë", "login_memory", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
+	$objLoginFormParam->addParam("¥á¡¼¥ë¥¢¥É¥ì¥¹", "login_email", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
+	$objLoginFormParam->addParam("¥Ñ¥¹¥ï¡¼¥É", "login_pass", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
+}
+
+/* DB¤Ø¥Ç¡¼¥¿¤ÎÅÐÏ¿ */
+function lfRegistNewAddrData($uniqid, $objCustomer) {
+	global $objFormParam;
+	$arrRet = $objFormParam->getHashArray();
+	$sqlval = $objFormParam->getDbArray();
+	// ÅÐÏ¿¥Ç¡¼¥¿¤ÎºîÀ®
+	$sqlval['deliv_check'] = '1';
+	$sqlval['order_temp_id'] = $uniqid;
+	$sqlval['update_date'] = 'Now()';
+	$sqlval['customer_id'] = $objCustomer->getValue('customer_id');
+	$sqlval['order_birth'] = $objCustomer->getValue('birth');
+	
+	sfRegistTempOrder($uniqid, $sqlval);
+}
+
+/* ²ñ°÷¾ðÊó¤Î½»½ê¤ò°ì»þ¼õÃí¥Æ¡¼¥Ö¥ë¤Ø */
+function lfRegistDelivData($uniqid, $objCustomer) {
+	// ÅÐÏ¿¥Ç¡¼¥¿¤ÎºîÀ®
+	$sqlval['order_temp_id'] = $uniqid;
+	$sqlval['update_date'] = 'Now()';
+	$sqlval['customer_id'] = $objCustomer->getValue('customer_id');
+    $sqlval['deliv_check'] = '1';
+	$sqlval['deliv_name01'] = $objCustomer->getValue('name01');
+    $sqlval['deliv_name02'] = $objCustomer->getValue('name02');
+    $sqlval['deliv_kana01'] = $objCustomer->getValue('kana01');
+    $sqlval['deliv_kana02'] = $objCustomer->getValue('kana02');
+    $sqlval['deliv_zip01'] = $objCustomer->getValue('zip01');
+    $sqlval['deliv_zip02'] = $objCustomer->getValue('zip02');
+    $sqlval['deliv_pref'] = $objCustomer->getValue('pref');
+    $sqlval['deliv_addr01'] = $objCustomer->getValue('addr01');
+    $sqlval['deliv_addr02'] = $objCustomer->getValue('addr02');
+    $sqlval['deliv_tel01'] = $objCustomer->getValue('tel01');
+    $sqlval['deliv_tel02'] = $objCustomer->getValue('tel02');
+	$sqlval['deliv_tel03'] = $objCustomer->getValue('tel03');
+
+    $sqlval['deliv_fax01'] = $objCustomer->getValue('fax01');
+    $sqlval['deliv_fax02'] = $objCustomer->getValue('fax02');
+	$sqlval['deliv_fax03'] = $objCustomer->getValue('fax03');
+
+	sfRegistTempOrder($uniqid, $sqlval);
+}
+
+/* ÊÌ¤Î¤ªÆÏ¤±Àè½»½ê¤ò°ì»þ¼õÃí¥Æ¡¼¥Ö¥ë¤Ø */
+function lfRegistOtherDelivData($uniqid, $objCustomer, $other_deliv_id) {
+	// ÅÐÏ¿¥Ç¡¼¥¿¤ÎºîÀ®
+	$sqlval['order_temp_id'] = $uniqid;
+	$sqlval['update_date'] = 'Now()';
+	$sqlval['customer_id'] = $objCustomer->getValue('customer_id');
+	$sqlval['order_birth'] = $objCustomer->getValue('birth');
+		
+	$objQuery = new SC_Query();
+	$where = "other_deliv_id = ?";
+	$arrRet = $objQuery->select("*", "dtb_other_deliv", $where, array($other_deliv_id));
+	
+	$sqlval['deliv_check'] = '1';
+    $sqlval['deliv_name01'] = $arrRet[0]['name01'];
+    $sqlval['deliv_name02'] = $arrRet[0]['name02'];
+    $sqlval['deliv_kana01'] = $arrRet[0]['kana01'];
+    $sqlval['deliv_kana02'] = $arrRet[0]['kana02'];
+    $sqlval['deliv_zip01'] = $arrRet[0]['zip01'];
+    $sqlval['deliv_zip02'] = $arrRet[0]['zip02'];
+    $sqlval['deliv_pref'] = $arrRet[0]['pref'];
+    $sqlval['deliv_addr01'] = $arrRet[0]['addr01'];
+    $sqlval['deliv_addr02'] = $arrRet[0]['addr02'];
+    $sqlval['deliv_tel01'] = $arrRet[0]['tel01'];
+    $sqlval['deliv_tel02'] = $arrRet[0]['tel02'];
+	$sqlval['deliv_tel03'] = $arrRet[0]['tel03'];
+	sfRegistTempOrder($uniqid, $sqlval);
+}
+
+/* ÆþÎÏÆâÍÆ¤Î¥Á¥§¥Ã¥¯ */
+function lfCheckError() {
+	global $objFormParam;
+	// ÆþÎÏ¥Ç¡¼¥¿¤òÅÏ¤¹¡£
+	$arrRet =  $objFormParam->getHashArray();
+	$objErr = new SC_CheckError($arrRet);
+	$objErr->arrErr = $objFormParam->checkError();
+	// Ê£¿ô¹àÌÜ¥Á¥§¥Ã¥¯
+	if ($_POST['mode'] == 'login'){
+	$objErr->doFunc(array("¥á¡¼¥ë¥¢¥É¥ì¥¹", "login_email", STEXT_LEN), array("EXIST_CHECK"));
+	$objErr->doFunc(array("¥Ñ¥¹¥ï¡¼¥É", "login_pass", STEXT_LEN), array("EXIST_CHECK"));
+	}
+	$objErr->doFunc(array("TEL", "deliv_tel01", "deliv_tel02", "deliv_tel03", TEL_ITEM_LEN), array("TEL_CHECK"));
+	return $objErr->arrErr;
+}
+?>
Index: branches/dev/html/mobile/shopping/index.php
===================================================================
--- branches/dev/html/mobile/shopping/index.php	(revision 11460)
+++ branches/dev/html/mobile/shopping/index.php	(revision 11460)
@@ -0,0 +1,248 @@
+<?php
+/*
+ * Copyright(c) 2000-2006 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ */
+
+require_once("../require.php");
+
+class LC_Page {
+	var $arrSession;
+	var $tpl_mode;
+	var $tpl_login_email;
+	function LC_Page() {
+		$this->tpl_mainpage = 'shopping/index.tpl';
+		global $arrPref;
+		$this->arrPref = $arrPref;
+		global $arrSex;
+		$this->arrSex = $arrSex;
+		global $arrJob;
+		$this->arrJob = $arrJob;
+		$this->tpl_onload = 'fnCheckInputDeliv();';
+		
+		/*
+		 session_start»þ¤Îno-cache¥Ø¥Ã¥À¡¼¤òÍÞÀ©¤¹¤ë¤³¤È¤Ç
+		 ¡ÖÌá¤ë¡×¥Ü¥¿¥ó»ÈÍÑ»þ¤ÎÍ­¸ú´ü¸ÂÀÚ¤ìÉ½¼¨¤òÍÞÀ©¤¹¤ë¡£
+		 private-no-expire:¥¯¥é¥¤¥¢¥ó¥È¤Î¥­¥ã¥Ã¥·¥å¤òµö²Ä¤¹¤ë¡£
+		*/
+		session_cache_limiter('private-no-expire');				
+	}
+}
+
+$conn = new SC_DBConn();
+$objPage = new LC_Page();
+$objView = new SC_SiteView();
+$objSiteSess = new SC_SiteSession();
+$objCartSess = new SC_CartSession();
+$objCustomer = new SC_Customer();
+$objCookie = new SC_Cookie();
+$objFormParam = new SC_FormParam();			// ¥Õ¥©¡¼¥àÍÑ
+lfInitParam();								// ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½
+$objFormParam->setParam($_POST);			// POSTÃÍ¤Î¼èÆÀ
+
+// ¥æ¡¼¥¶¥æ¥Ë¡¼¥¯ID¤Î¼èÆÀ¤È¹ØÆþ¾õÂÖ¤ÎÀµÅöÀ­¤ò¥Á¥§¥Ã¥¯
+$uniqid = sfCheckNormalAccess($objSiteSess, $objCartSess);
+
+$objPage->tpl_uniqid = $uniqid;
+
+// ¥í¥°¥¤¥ó¥Á¥§¥Ã¥¯
+if($objCustomer->isLoginSuccess()) {
+	// ¤¹¤Ç¤Ë¥í¥°¥¤¥ó¤µ¤ì¤Æ¤¤¤ë¾ì¹ç¤Ï¡¢¤ªÆÏ¤±ÀèÀßÄê²èÌÌ¤ËÅ¾Á÷
+	header("Location: " . gfAddSessionId('deliv.php'));
+	exit;
+}
+
+// ·ÈÂÓÃ¼ËöID¤¬°ìÃ×¤¹¤ë²ñ°÷¤¬Â¸ºß¤¹¤ë¤«¤É¤¦¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë¡£
+$objPage->tpl_valid_phone_id = $objCustomer->checkMobilePhoneId();
+
+switch($_POST['mode']) {
+case 'nonmember_confirm':
+	$objPage = lfSetNonMember($objPage);
+	// ¢¨break¤Ê¤·
+case 'confirm':
+	// ÆþÎÏÃÍ¤ÎÊÑ´¹
+	$objFormParam->convParam();
+	$objFormParam->toLower('order_mail');
+	$objFormParam->toLower('order_mail_check');
+	
+	$objPage->arrErr = lfCheckError();
+
+	// ÆþÎÏ¥¨¥é¡¼¤Ê¤·
+	if(count($objPage->arrErr) == 0) {
+		// DB¤Ø¤Î¥Ç¡¼¥¿ÅÐÏ¿
+		lfRegistData($uniqid);
+		// Àµ¾ï¤ËÅÐÏ¿¤µ¤ì¤¿¤³¤È¤òµ­Ï¿¤·¤Æ¤ª¤¯
+		$objSiteSess->setRegistFlag();
+		// ¤ª»ÙÊ§¤¤ÊýË¡ÁªÂò¥Ú¡¼¥¸¤Ø°ÜÆ°
+		header("Location: " . gfAddSessionId(URL_SHOP_PAYMENT));
+		exit;		
+	}
+	
+	break;
+// Á°¤Î¥Ú¡¼¥¸¤ËÌá¤ë
+case 'return':
+	// ³ÎÇ§¥Ú¡¼¥¸¤Ø°ÜÆ°
+	header("Location: " . gfAddSessionId(URL_CART_TOP));
+	exit;
+	break;
+case 'nonmember':
+	$objPage = lfSetNonMember($objPage);
+	// ¢¨break¤Ê¤·
+default:
+	if($_GET['from'] == 'nonmember') {
+		$objPage = lfSetNonMember($objPage);
+	}
+	// ¥æ¡¼¥¶¥æ¥Ë¡¼¥¯ID¤Î¼èÆÀ
+	$uniqid = $objSiteSess->getUniqId();
+	$objQuery = new SC_Query();
+	$where = "order_temp_id = ?";
+	$arrRet = $objQuery->select("*", "dtb_order_temp", $where, array($uniqid));
+	// DBÃÍ¤Î¼èÆÀ
+	$objFormParam->setParam($arrRet[0]);
+	$objFormParam->setValue('order_email_check', $arrRet[0]['order_email']);
+	$objFormParam->setDBDate($arrRet[0]['order_birth']);
+	break;
+}
+
+// ¥¯¥Ã¥­¡¼È½Äê
+$objPage->tpl_login_email = $objCookie->getCookie('login_email');
+if($objPage->tpl_login_email != "") {
+	$objPage->tpl_login_memory = "1";
+}
+
+// ÁªÂòÍÑÆüÉÕ¤Î¼èÆÀ
+$objDate = new SC_Date(START_BIRTH_YEAR);
+$objPage->arrYear = $objDate->getYear('', 1950);	//¡¡ÆüÉÕ¥×¥ë¥À¥¦¥óÀßÄê
+$objPage->arrMonth = $objDate->getMonth();
+$objPage->arrDay = $objDate->getDay();
+
+if($objPage->year == '') {
+	$objPage->year = '----';
+}
+
+// ÆþÎÏÃÍ¤Î¼èÆÀ
+$objPage->arrForm = $objFormParam->getFormParamList();
+
+if($objPage->arrForm['year']['value'] == ""){
+	$objPage->arrForm['year']['value'] = '----';	
+}
+
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+//--------------------------------------------------------------------------------------------------------------------------
+/* Èó²ñ°÷ÆþÎÏ¥Ú¡¼¥¸¤Î¥»¥Ã¥È */
+function lfSetNonMember($objPage) {
+	$objPage->tpl_mainpage = 'shopping/nonmember_input.tpl';
+	$objPage->tpl_css = array();
+	$objPage->tpl_css[] = '/css/layout/login/nonmember.css';
+	return $objPage;
+}
+
+/* ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½ */
+function lfInitParam() {
+	global $objFormParam;
+	$objFormParam->addParam("¤ªÌ¾Á°¡ÊÀ«¡Ë", "order_name01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
+	$objFormParam->addParam("¤ªÌ¾Á°¡ÊÌ¾¡Ë", "order_name02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
+	$objFormParam->addParam("¥Õ¥ê¥¬¥Ê¡Ê¥»¥¤¡Ë", "order_kana01", STEXT_LEN, "KVCa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
+	$objFormParam->addParam("¥Õ¥ê¥¬¥Ê¡Ê¥á¥¤¡Ë", "order_kana02", STEXT_LEN, "KVCa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
+	$objFormParam->addParam("Í¹ÊØÈÖ¹æ1", "order_zip01", ZIP01_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK"));
+	$objFormParam->addParam("Í¹ÊØÈÖ¹æ2", "order_zip02", ZIP02_LEN, "n", array("EXIST_CHECK", "NUM_CHECK", "NUM_COUNT_CHECK"));
+	$objFormParam->addParam("ÅÔÆ»ÉÜ¸©", "order_pref", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
+	$objFormParam->addParam("½»½ê1", "order_addr01", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
+	$objFormParam->addParam("½»½ê2", "order_addr02", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "MAX_LENGTH_CHECK"));
+	$objFormParam->addParam("ÅÅÏÃÈÖ¹æ1", "order_tel01", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK"));
+	$objFormParam->addParam("ÅÅÏÃÈÖ¹æ2", "order_tel02", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK"));
+	$objFormParam->addParam("ÅÅÏÃÈÖ¹æ3", "order_tel03", TEL_ITEM_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK" ,"NUM_CHECK"));
+	$objFormParam->addParam("FAXÈÖ¹æ1", "order_fax01", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK"));
+	$objFormParam->addParam("FAXÈÖ¹æ2", "order_fax02", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK"));
+	$objFormParam->addParam("FAXÈÖ¹æ3", "order_fax03", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK"));
+	$objFormParam->addParam("¥á¡¼¥ë¥¢¥É¥ì¥¹", "order_email", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "NO_SPTAB", "MAX_LENGTH_CHECK", "EMAIL_CHECK", "EMAIL_CHAR_CHECK"));
+	$objFormParam->addParam("¥á¡¼¥ë¥¢¥É¥ì¥¹¡Ê³ÎÇ§¡Ë", "order_email_check", STEXT_LEN, "KVa", array("EXIST_CHECK", "SPTAB_CHECK", "NO_SPTAB", "MAX_LENGTH_CHECK", "EMAIL_CHECK", "EMAIL_CHAR_CHECK"), "", false);
+	$objFormParam->addParam("Ç¯", "year", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false);
+	$objFormParam->addParam("·î", "month", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false);
+	$objFormParam->addParam("Æü", "day", INT_LEN, "n", array("MAX_LENGTH_CHECK"), "", false);
+	$objFormParam->addParam("À­ÊÌ", "order_sex", INT_LEN, "n", array("EXIST_CHECK", "MAX_LENGTH_CHECK", "NUM_CHECK"));
+	$objFormParam->addParam("¿¦¶È", "order_job", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
+	$objFormParam->addParam("ÊÌ¤Î¤ªÆÏ¤±Àè", "deliv_check", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
+	$objFormParam->addParam("¤ªÌ¾Á°¡ÊÀ«¡Ë", "deliv_name01", STEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK"));
+	$objFormParam->addParam("¤ªÌ¾Á°¡ÊÌ¾¡Ë", "deliv_name02", STEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK"));
+	$objFormParam->addParam("¥Õ¥ê¥¬¥Ê¡Ê¥»¥¤¡Ë", "deliv_kana01", STEXT_LEN, "KVCa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK"));
+	$objFormParam->addParam("¥Õ¥ê¥¬¥Ê¡Ê¥á¥¤¡Ë", "deliv_kana02", STEXT_LEN, "KVCa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK"));
+	$objFormParam->addParam("Í¹ÊØÈÖ¹æ1", "deliv_zip01", ZIP01_LEN, "n", array("NUM_CHECK", "NUM_COUNT_CHECK"));
+	$objFormParam->addParam("Í¹ÊØÈÖ¹æ2", "deliv_zip02", ZIP02_LEN, "n", array("NUM_CHECK", "NUM_COUNT_CHECK"));
+	$objFormParam->addParam("ÅÔÆ»ÉÜ¸©", "deliv_pref", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
+	$objFormParam->addParam("½»½ê1", "deliv_addr01", STEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK"));
+	$objFormParam->addParam("½»½ê2", "deliv_addr02", STEXT_LEN, "KVa", array("SPTAB_CHECK", "MAX_LENGTH_CHECK"));
+	$objFormParam->addParam("ÅÅÏÃÈÖ¹æ1", "deliv_tel01", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK"));
+	$objFormParam->addParam("ÅÅÏÃÈÖ¹æ2", "deliv_tel02", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK"));
+	$objFormParam->addParam("ÅÅÏÃÈÖ¹æ3", "deliv_tel03", TEL_ITEM_LEN, "n", array("MAX_LENGTH_CHECK" ,"NUM_CHECK"));
+	$objFormParam->addParam("¥á¡¼¥ë¥Þ¥¬¥¸¥ó", "mail_flag", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"), 1);
+}
+
+/* DB¤Ø¥Ç¡¼¥¿¤ÎÅÐÏ¿ */
+function lfRegistData($uniqid) {
+	global $objFormParam;
+	$arrRet = $objFormParam->getHashArray();
+	$sqlval = $objFormParam->getDbArray();
+	// ÅÐÏ¿¥Ç¡¼¥¿¤ÎºîÀ®
+	$sqlval['order_temp_id'] = $uniqid;
+	$sqlval['order_birth'] = sfGetTimestamp($arrRet['year'], $arrRet['month'], $arrRet['day']);
+	$sqlval['update_date'] = 'Now()';
+	$sqlval['customer_id'] = '0';
+	
+	// ´ûÂ¸¥Ç¡¼¥¿¤Î¥Á¥§¥Ã¥¯
+	$objQuery = new SC_Query();
+	$where = "order_temp_id = ?";
+	$cnt = $objQuery->count("dtb_order_temp", $where, array($uniqid));
+	// ´ûÂ¸¥Ç¡¼¥¿¤¬¤Ê¤¤¾ì¹ç
+	if ($cnt == 0) {
+		$sqlval['create_date'] = 'Now()';
+		$objQuery->insert("dtb_order_temp", $sqlval);
+	} else {
+		$objQuery->update("dtb_order_temp", $sqlval, $where, array($uniqid));
+	}
+}
+
+/* ÆþÎÏÆâÍÆ¤Î¥Á¥§¥Ã¥¯ */
+function lfCheckError() {
+	global $objFormParam;
+	// ÆþÎÏ¥Ç¡¼¥¿¤òÅÏ¤¹¡£
+	$arrRet =  $objFormParam->getHashArray();
+	$objErr = new SC_CheckError($arrRet);
+	$objErr->arrErr = $objFormParam->checkError();
+		
+	// ÊÌ¤Î¤ªÆÏ¤±Àè¥Á¥§¥Ã¥¯
+	if($_POST['deliv_check'] == "1") { 
+		$objErr->doFunc(array("¤ªÌ¾Á°¡ÊÀ«¡Ë", "deliv_name01"), array("EXIST_CHECK"));
+		$objErr->doFunc(array("¤ªÌ¾Á°¡ÊÌ¾¡Ë", "deliv_name02"), array("EXIST_CHECK"));
+		$objErr->doFunc(array("¥Õ¥ê¥¬¥Ê¡Ê¥»¥¤¡Ë", "deliv_kana01"), array("EXIST_CHECK"));
+		$objErr->doFunc(array("¥Õ¥ê¥¬¥Ê¡Ê¥á¥¤¡Ë", "deliv_kana02"), array("EXIST_CHECK"));
+		$objErr->doFunc(array("Í¹ÊØÈÖ¹æ1", "deliv_zip01"), array("EXIST_CHECK"));
+		$objErr->doFunc(array("Í¹ÊØÈÖ¹æ2", "deliv_zip02"), array("EXIST_CHECK"));
+		$objErr->doFunc(array("ÅÔÆ»ÉÜ¸©", "deliv_pref"), array("EXIST_CHECK"));
+		$objErr->doFunc(array("½»½ê1", "deliv_addr01"), array("EXIST_CHECK"));
+		$objErr->doFunc(array("½»½ê2", "deliv_addr02"), array("EXIST_CHECK"));
+		$objErr->doFunc(array("ÅÅÏÃÈÖ¹æ1", "deliv_tel01"), array("EXIST_CHECK"));
+		$objErr->doFunc(array("ÅÅÏÃÈÖ¹æ2", "deliv_tel02"), array("EXIST_CHECK"));
+		$objErr->doFunc(array("ÅÅÏÃÈÖ¹æ3", "deliv_tel03"), array("EXIST_CHECK"));
+	}
+	
+	// Ê£¿ô¹àÌÜ¥Á¥§¥Ã¥¯
+	$objErr->doFunc(array("TEL", "order_tel01", "order_tel02", "order_tel03", TEL_ITEM_LEN), array("TEL_CHECK"));
+	$objErr->doFunc(array("FAX", "order_fax01", "order_fax02", "order_fax03", TEL_ITEM_LEN), array("TEL_CHECK"));
+	$objErr->doFunc(array("Í¹ÊØÈÖ¹æ", "order_zip01", "order_zip02"), array("ALL_EXIST_CHECK"));
+	$objErr->doFunc(array("TEL", "deliv_tel01", "deliv_tel02", "deliv_tel03", TEL_ITEM_LEN), array("TEL_CHECK"));
+	$objErr->doFunc(array("FAX", "deliv_fax01", "deliv_fax02", "deliv_fax03", TEL_ITEM_LEN), array("TEL_CHECK"));
+	$objErr->doFunc(array("Í¹ÊØÈÖ¹æ", "deliv_zip01", "deliv_zip02"), array("ALL_EXIST_CHECK"));
+	$objErr->doFunc(array("À¸Ç¯·îÆü", "year", "month", "day"), array("CHECK_DATE"));
+	$objErr->doFunc(array("¥á¡¼¥ë¥¢¥É¥ì¥¹", "¥á¡¼¥ë¥¢¥É¥ì¥¹¡Ê³ÎÇ§¡Ë", "order_email", "order_email_check"), array("EQUAL_CHECK"));
+	
+	// ¤¹¤Ç¤Ë¥á¥ë¥Þ¥¬¥Æ¡¼¥Ö¥ë¤Ë²ñ°÷¤È¤·¤Æ¥á¡¼¥ë¥¢¥É¥ì¥¹¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¾ì¹ç
+	if(sfCheckCustomerMailMaga($arrRet['order_email'])) {
+		$objErr->arrErr['order_email'] = "¤³¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤Ï¤¹¤Ç¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤Þ¤¹¡£<br>";
+	}
+		
+	return $objErr->arrErr;
+}
+?>
Index: branches/dev/html/mobile/shopping/complete.php
===================================================================
--- branches/dev/html/mobile/shopping/complete.php	(revision 11460)
+++ branches/dev/html/mobile/shopping/complete.php	(revision 11460)
@@ -0,0 +1,524 @@
+<?php
+/*
+ * Copyright(c) 2000-2006 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ */
+
+require_once("../require.php");
+
+class LC_Page {
+	function LC_Page() {
+		$this->tpl_mainpage = 'shopping/complete.tpl';
+		$this->tpl_css = '/css/layout/shopping/complete.css';
+		$this->tpl_title = "¤´ÃíÊ¸´°Î»";
+		global $arrCONVENIENCE;
+		$this->arrCONVENIENCE = $arrCONVENIENCE;
+		global $arrCONVENIMESSAGE;
+		$this->arrCONVENIMESSAGE = $arrCONVENIMESSAGE;
+		global $arrCONVENIENCE;
+		global $arrCONVENIMESSAGE;
+		$objPage->arrCONVENIENCE = $arrCONVENIENCE;
+		$objPage->arrCONVENIMESSAGE = $arrCONVENIMESSAGE;
+		/*
+		 session_start»þ¤Îno-cache¥Ø¥Ã¥À¡¼¤òÍÞÀ©¤¹¤ë¤³¤È¤Ç
+		 ¡ÖÌá¤ë¡×¥Ü¥¿¥ó»ÈÍÑ»þ¤ÎÍ­¸ú´ü¸ÂÀÚ¤ìÉ½¼¨¤òÍÞÀ©¤¹¤ë¡£
+		 private-no-expire:¥¯¥é¥¤¥¢¥ó¥È¤Î¥­¥ã¥Ã¥·¥å¤òµö²Ä¤¹¤ë¡£
+		*/
+		session_cache_limiter('private-no-expire');		
+
+	}
+}
+
+$conn = new SC_DBConn();
+$objPage = new LC_Page();
+$objView = new SC_SiteView();
+$objSiteSess = new SC_SiteSession();
+$objCartSess = new SC_CartSession();
+$objSiteInfo = $objView->objSiteInfo;
+$arrInfo = $objSiteInfo->data;
+$objCustomer = new SC_Customer();
+
+// Á°¤Î¥Ú¡¼¥¸¤ÇÀµ¤·¤¯ÅÐÏ¿¼êÂ³¤­¤¬¹Ô¤ï¤ì¤¿¤«È½Äê
+sfIsPrePage($objSiteSess);
+// ¥æ¡¼¥¶¥æ¥Ë¡¼¥¯ID¤Î¼èÆÀ¤È¹ØÆþ¾õÂÖ¤ÎÀµÅöÀ­¤ò¥Á¥§¥Ã¥¯
+$uniqid = sfCheckNormalAccess($objSiteSess, $objCartSess);
+if ($uniqid != "") {
+	
+	// ´°Î»½èÍý
+	$objQuery = new SC_Query();
+	$objQuery->begin();
+	$order_id = lfDoComplete($objQuery, $uniqid);
+	$objQuery->commit();
+	
+	// ¥»¥Ã¥·¥ç¥ó¤ËÊÝ´É¤µ¤ì¤Æ¤¤¤ë¾ðÊó¤ò¹¹¿·¤¹¤ë
+	$objCustomer->updateSession();
+
+	// ´°Î»¥á¡¼¥ëÁ÷¿®
+	if($order_id != "") {
+		sfSendOrderMail($order_id, '1');
+	}
+
+	//¤½¤ÎÂ¾¾ðÊó¤Î¼èÆÀ
+	$other_data = $objQuery->get("dtb_order", "memo02", "order_id = ? ", array($order_id));
+	if($other_data != "") {
+		$arrOther = unserialize($other_data);
+		
+		// ¥Ç¡¼¥¿¤òÊÔ½¸
+		foreach($arrOther as $key => $val){
+			// URL¤Î¾ì¹ç¤Ë¤Ï¥ê¥ó¥¯¤Ä¤­¤ÇÉ½¼¨¤µ¤»¤ë
+			if (preg_match('/^(https?|ftp)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $val["value"])) {
+				$arrOther[$key]["value"] = "<a href='#' onClick=\"window.open('". $val["value"] . "'); \" >" . $val["value"] ."</a>";
+			}
+		}
+				
+		$objPage->arrOther = $arrOther;
+		
+	}
+	
+	// ¥¢¥Õ¥£¥ê¥¨¥¤¥ÈÍÑ¥³¥ó¥Ð¡¼¥¸¥ç¥ó¥¿¥°¤ÎÀßÄê
+	$objPage->tpl_conv_page = AFF_SHOPPING_COMPLETE;
+	$objPage->tpl_aff_option = "order_id=$order_id";
+	//¹ç·×²Á³Ê¤Î¼èÆÀ
+	$total = $objQuery->get("dtb_order", "total", "order_id = ? ", array($order_id));
+	if($total != "") {
+		$objPage->tpl_aff_option.= "|total=$total";
+	}
+}
+
+$objPage->arrInfo = $arrInfo;
+
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+//--------------------------------------------------------------------------------------------------------------------------
+// ¥¨¥Ó¥¹¥¿¥°°úÅÏ¤·ÍÑ¥Ç¡¼¥¿¤òÀ¸À®¤¹¤ë
+function lfGetEbisData($order_id) {
+	$objQuery = new SC_Query();
+	$col = "customer_id, total, order_sex, order_job, to_number(to_char(age(current_timestamp, order_birth), 'YYY'), 999) AS order_age";
+	$arrRet = $objQuery->select($col, "dtb_order", "order_id = ?", array($order_id));
+	
+	if($arrRet[0]['customer_id'] > 0) {
+		// ²ñ°÷ÈÖ¹æ
+		$arrEbis['m1id'] = $arrRet[0]['customer_id'];
+		// Èó²ñ°÷or²ñ°÷
+		$arrEbis['o5id'] = '1';
+	} else {
+		// ²ñ°÷ÈÖ¹æ
+		$arrEbis['m1id'] = '';
+		// Èó²ñ°÷or²ñ°÷
+		$arrEbis['o5id'] = '2';	
+	}
+	
+	// ¹ØÆþ¶â³Û
+	$arrEbis['a1id'] = $arrRet[0]['total'];
+	// À­ÊÌ
+	$arrEbis['o2id'] = $arrRet[0]['order_sex'];
+	// Ç¯Îð
+	$arrEbis['o3id'] = $arrRet[0]['order_age'];
+	// ¿¦¶È
+	$arrEbis['o4id'] = $arrRet[0]['order_job'];
+		
+	$objQuery->setgroupby("product_id");
+	$arrRet = $objQuery->select("product_id", "dtb_order_detail", "order_id = ?", array($order_id));
+	$arrProducts = sfSwapArray($arrRet);
+	
+	$line = "";
+	// ¾¦ÉÊID¤ò¥¢¥ó¥À¡¼¥Ð¡¼¤ÇÀÜÂ³¤¹¤ë¡£
+	foreach($arrProducts['product_id'] as $val) {
+		if($line != "") {
+			$line .= "_$val";		
+		} else {
+			$line .= "$val";
+		}
+	}
+	
+	// ¾¦ÉÊID	
+	$arrEbis['o1id'] = $line;
+	
+	return $arrEbis;
+}
+
+// ´°Î»½èÍý
+function lfDoComplete($objQuery, $uniqid) {
+	global $objCartSess;
+	global $objSiteSess;
+	global $objCustomer;
+	global $arrInfo;
+	
+	// °ì»þ¼õÃí¥Æ¡¼¥Ö¥ë¤ÎÆÉ¹þ
+	$arrData = sfGetOrderTemp($uniqid);
+	
+	// ²ñ°÷¾ðÊóÅÐÏ¿½èÍý
+	if ($objCustomer->isLoginSuccess()) {
+		// ¿·¤ªÆÏ¤±Àè¤ÎÅÐÏ¿
+		lfSetNewAddr($uniqid, $objCustomer->getValue('customer_id'));
+		// ¹ØÆþ½¸·×¤ò¸ÜµÒ¥Æ¡¼¥Ö¥ë¤ËÈ¿±Ç
+		lfSetCustomerPurchase($objCustomer->getValue('customer_id'), $arrData, $objQuery);
+	} else {
+		//¹ØÆþ»þ¶¯À©²ñ°÷ÅÐÏ¿
+		switch(PURCHASE_CUSTOMER_REGIST) {
+		//Ìµ¸ú
+		case '0':
+			// ¹ØÆþ»þ²ñ°÷ÅÐÏ¿
+			if($arrData['member_check'] == '1') {
+				// ²¾²ñ°÷ÅÐÏ¿
+				$customer_id = lfRegistPreCustomer($arrData, $arrInfo);
+				// ¹ØÆþ½¸·×¤ò¸ÜµÒ¥Æ¡¼¥Ö¥ë¤ËÈ¿±Ç
+				lfSetCustomerPurchase($customer_id, $arrData, $objQuery);
+			}
+			break;
+		//Í­¸ú
+		case '1':
+			// ²¾²ñ°÷ÅÐÏ¿
+			$customer_id = lfRegistPreCustomer($arrData, $arrInfo);
+			// ¹ØÆþ½¸·×¤ò¸ÜµÒ¥Æ¡¼¥Ö¥ë¤ËÈ¿±Ç
+			lfSetCustomerPurchase($customer_id, $arrData, $objQuery);
+			break;
+		}
+		
+	}
+	// °ì»þ¥Æ¡¼¥Ö¥ë¤ò¼õÃí¥Æ¡¼¥Ö¥ë¤Ë³ÊÇ¼¤¹¤ë
+	$order_id = lfRegistOrder($objQuery, $arrData);
+	// ¥«¡¼¥È¾¦ÉÊ¤ò¼õÃí¾ÜºÙ¥Æ¡¼¥Ö¥ë¤Ë³ÊÇ¼¤¹¤ë
+	lfRegistOrderDetail($objQuery, $order_id, $objCartSess);
+	// ¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤Î¾ðÊó¤òºï½ü¤¹¤ë¡£
+	lfDeleteTempOrder($objQuery, $uniqid);
+	
+	// ¥»¥Ã¥·¥ç¥ó¥«¡¼¥ÈÆâ¤Î¾¦ÉÊ¤òºï½ü¤¹¤ë¡£
+	$objCartSess->delAllProducts();
+	// ÃíÊ¸°ì»þID¤ò²ò½ü¤¹¤ë¡£
+	$objSiteSess->unsetUniqId();
+	
+	return $order_id;
+}
+
+// ²ñ°÷ÅÐÏ¿¡Ê²¾ÅÐÏ¿¡Ë
+function lfRegistPreCustomer($arrData, $arrInfo) {
+	// ¹ØÆþ»þ¤Î²ñ°÷ÅÐÏ¿
+	$sqlval['name01'] = $arrData['order_name01'];
+	$sqlval['name02'] = $arrData['order_name02'];
+	$sqlval['kana01'] = $arrData['order_kana01'];
+	$sqlval['kana02'] = $arrData['order_kana02'];
+	$sqlval['zip01'] = $arrData['order_zip01'];
+	$sqlval['zip02'] = $arrData['order_zip02'];
+	$sqlval['pref'] = $arrData['order_pref'];
+	$sqlval['addr01'] = $arrData['order_addr01'];
+	$sqlval['addr02'] = $arrData['order_addr02'];
+	$sqlval['email'] = $arrData['order_email'];
+	$sqlval['tel01'] = $arrData['order_tel01'];
+	$sqlval['tel02'] = $arrData['order_tel02'];
+	$sqlval['tel03'] = $arrData['order_tel03'];
+	$sqlval['fax01'] = $arrData['order_fax01'];
+	$sqlval['fax02'] = $arrData['order_fax02'];
+	$sqlval['fax03'] = $arrData['order_fax03'];
+	$sqlval['sex'] = $arrData['order_sex'];
+	$sqlval['password'] = $arrData['password'];
+	$sqlval['reminder'] = $arrData['reminder'];
+	$sqlval['reminder_answer'] = $arrData['reminder_answer'];
+	// ²ñ°÷²¾ÅÐÏ¿
+	$sqlval['status'] = 1;
+	// URLÈ½ÄêÍÑ¥­¡¼
+	$sqlval['secret_key'] = sfGetUniqRandomId("t"); 
+	
+	$objQuery = new SC_Query();
+	$sqlval['create_date'] = "now()";
+	$sqlval['update_date'] = "now()";
+	$objQuery->insert("dtb_customer", $sqlval);
+	
+	// ¸ÜµÒID¤Î¼èÆÀ
+	$arrRet = $objQuery->select("customer_id", "dtb_customer", "secret_key = ?", array($sqlval['secret_key']));
+	$customer_id = $arrRet[0]['customer_id'];
+	
+	// ¥á¥ë¥Þ¥¬ÇÛ¿®ÍÑ¥Õ¥é¥°¤ÎÈ½Äê
+	switch($arrData['mail_flag']) {
+	case '1':	// HTML¥á¡¼¥ë
+		$mail_flag = 4;
+		break;
+	case '2':	// TEXT¥á¡¼¥ë
+		$mail_flag = 5;
+		break;
+	case '3':	// ´õË¾¤Ê¤·
+		$mail_flag = 6;
+		break;
+	default:
+		$mail_flag = 6;
+		break;
+	}
+
+	$objQuery = new SC_Query();
+	$objQuery->begin();	
+	// ¥á¥ë¥Þ¥¬ÇÛ¿®ÍÑ¥Æ¡¼¥Ö¥ëÅÐÏ¿
+	lfRegistNonCustomer($arrData['order_email'], $mail_flag, $objQuery);
+	$objQuery->commit();
+
+	//¡¡²¾ÅÐÏ¿´°Î»¥á¡¼¥ëÁ÷¿®
+	$objMailPage = new LC_Page();
+	$objMailPage->to_name01 = $arrData['order_name01'];
+	$objMailPage->to_name02 = $arrData['order_name02'];
+	$objMailPage->CONF = $arrInfo;
+	$objMailPage->uniqid = $sqlval['secret_key'];
+	$objMailView = new SC_SiteView();
+	$objMailView->assignobj($objMailPage);
+	$body = $objMailView->fetch("mail_templates/customer_mail.tpl");
+	
+	$objMail = new GC_SendMail();
+	$objMail->setItem(
+						''										//¡¡°¸Àè
+						, sfMakeSubject("²ñ°÷ÅÐÏ¿¤Î¤´³ÎÇ§")		//¡¡¥µ¥Ö¥¸¥§¥¯¥È
+						, $body									//¡¡ËÜÊ¸
+						, $arrInfo['email03']					//¡¡ÇÛÁ÷¸µ¥¢¥É¥ì¥¹
+						, $arrInfo['shop_name']					//¡¡ÇÛÁ÷¸µ¡¡Ì¾Á°
+						, $arrInfo["email03"]					//¡¡reply_to
+						, $arrInfo["email04"]					//¡¡return_path
+						, $arrInfo["email04"]					//  Errors_to
+						, $arrInfo["email01"]					//  Bcc
+														);
+	// °¸Àè¤ÎÀßÄê
+	$name = $arrData['order_name01'] . $arrData['order_name02'] ." ÍÍ";
+	$objMail->setTo($arrData['order_email'], $name);			
+	$objMail->sendMail();
+	
+	return $customer_id;
+}
+
+// ¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤Î¤ªÆÏ¤±Àè¤ò¥³¥Ô¡¼¤¹¤ë
+function lfCopyDeliv($uniqid, $arrData) {
+	$objQuery = new SC_Query();
+	
+	// ÊÌ¤Î¤ªÆÏ¤±Àè¤ò»ØÄê¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ÇÛÁ÷Àè¤ËÅÐÏ¿½»½ê¤ò¥³¥Ô¡¼¤¹¤ë¡£
+	if($arrData["deliv_check"] != "1") {
+		$sqlval['deliv_name01'] = $arrData['order_name01'];
+		$sqlval['deliv_name02'] = $arrData['order_name02'];
+		$sqlval['deliv_kana01'] = $arrData['order_kana01'];
+		$sqlval['deliv_kana02'] = $arrData['order_kana02'];
+		$sqlval['deliv_pref'] = $arrData['order_pref'];
+		$sqlval['deliv_zip01'] = $arrData['order_zip01'];
+		$sqlval['deliv_zip02'] = $arrData['order_zip02'];
+		$sqlval['deliv_addr01'] = $arrData['order_addr01'];
+		$sqlval['deliv_addr02'] = $arrData['order_addr02'];
+		$sqlval['deliv_tel01'] = $arrData['order_tel01'];
+		$sqlval['deliv_tel02'] = $arrData['order_tel02'];
+		$sqlval['deliv_tel03'] = $arrData['order_tel03'];
+		$where = "order_temp_id = ?";
+		$objQuery->update("dtb_order_temp", $sqlval, $where, array($uniqid));
+	}
+}
+
+// ¼õÃí¥Æ¡¼¥Ö¥ë¤ØÅÐÏ¿
+function lfRegistOrder($objQuery, $arrData) {
+	$sqlval = $arrData;
+
+	// ¼õÃí¥Æ¡¼¥Ö¥ë¤Ë½ñ¤­¹þ¤Þ¤Ê¤¤Îó¤ò½üµî
+	unset($sqlval['mail_flag']);		// ¥á¥ë¥Þ¥¬¥Á¥§¥Ã¥¯
+	unset($sqlval['deliv_check']);		// ÊÌ¤Î¤ªÆÏ¤±Àè¥Á¥§¥Ã¥¯
+	unset($sqlval['point_check']);		// ¥Ý¥¤¥ó¥ÈÍøÍÑ¥Á¥§¥Ã¥¯
+	unset($sqlval['member_check']);		// ¹ØÆþ»þ²ñ°÷¥Á¥§¥Ã¥¯
+	unset($sqlval['password']);			// ¥í¥°¥¤¥ó¥Ñ¥¹¥ï¡¼¥É
+	unset($sqlval['reminder']);			// ¥ê¥Þ¥¤¥ó¥À¡¼¼ÁÌä
+	unset($sqlval['reminder_answer']);	// ¥ê¥Þ¥¤¥ó¥À¡¼Åú¤¨
+
+	// ÃíÊ¸¥¹¥Æ¡¼¥¿¥¹:»ØÄê¤¬Ìµ¤±¤ì¤Ð¿·µ¬¼õÉÕ¤ËÀßÄê
+	if($sqlval["status"] == ""){
+		$sqlval['status'] = '1';			
+	}
+	
+	// ÊÌ¤Î¤ªÆÏ¤±Àè¤ò»ØÄê¤·¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢ÇÛÁ÷Àè¤ËÅÐÏ¿½»½ê¤ò¥³¥Ô¡¼¤¹¤ë¡£
+	if($arrData["deliv_check"] != "1") {
+		$sqlval['deliv_name01'] = $arrData['order_name01'];
+		$sqlval['deliv_name02'] = $arrData['order_name02'];
+		$sqlval['deliv_kana01'] = $arrData['order_kana01'];
+		$sqlval['deliv_kana02'] = $arrData['order_kana02'];
+		$sqlval['deliv_pref'] = $arrData['order_pref'];
+		$sqlval['deliv_zip01'] = $arrData['order_zip01'];
+		$sqlval['deliv_zip02'] = $arrData['order_zip02'];
+		$sqlval['deliv_addr01'] = $arrData['order_addr01'];
+		$sqlval['deliv_addr02'] = $arrData['order_addr02'];
+		$sqlval['deliv_tel01'] = $arrData['order_tel01'];
+		$sqlval['deliv_tel02'] = $arrData['order_tel02'];
+		$sqlval['deliv_tel03'] = $arrData['order_tel03'];
+	}
+	
+	$order_id = $arrData['order_id'];		// ¥ª¡¼¥À¡¼ID
+	$sqlval['create_date'] = 'now()';		// ¼õÃíÆü
+	
+	// ¥²¥Ã¥È¤ÎÃÍ¤ò¥¤¥ó¥µ¡¼¥È
+	//$sqlval = lfGetInsParam($sqlval);
+	
+	// INSERT¤Î¼Â¹Ô
+	$objQuery->insert("dtb_order", $sqlval);
+	
+	// ¥á¥ë¥Þ¥¬ÇÛ¿®´õË¾¾ðÊó¤ÎÅÐÏ¿
+	lfRegistNonCustomer($arrData['order_email'], $arrData['mail_flag'], $objQuery);
+	
+	return $order_id;
+}
+
+// ¼õÃí¾ÜºÙ¥Æ¡¼¥Ö¥ë¤ØÅÐÏ¿
+function lfRegistOrderDetail($objQuery, $order_id, $objCartSess) {
+	// ¥«¡¼¥ÈÆâ¾ðÊó¤Î¼èÆÀ
+	$arrCart = $objCartSess->getCartList();
+	$max = count($arrCart);
+	
+	// ´û¤ËÂ¸ºß¤¹¤ë¾ÜºÙ¥ì¥³¡¼¥É¤ò¾Ã¤·¤Æ¤ª¤¯¡£
+	$objQuery->delete("dtb_order_detail", "order_id = $order_id");
+
+	// µ¬³ÊÌ¾°ìÍ÷
+	$arrClassName = sfGetIDValueList("dtb_class", "class_id", "name");
+	// µ¬³ÊÊ¬ÎàÌ¾°ìÍ÷
+	$arrClassCatName = sfGetIDValueList("dtb_classcategory", "classcategory_id", "name");
+			
+	for ($i = 0; $i < $max; $i++) {
+		// ¾¦ÉÊµ¬³Ê¾ðÊó¤Î¼èÆÀ	
+		$arrData = sfGetProductsClass($arrCart[$i]['id']);
+		
+		// Â¸ºß¤¹¤ë¾¦ÉÊ¤Î¤ßÉ½¼¨¤¹¤ë¡£
+		if($arrData != "") {
+			$sqlval['order_id'] = $order_id;
+			$sqlval['product_id'] = $arrCart[$i]['id'][0];
+			$sqlval['classcategory_id1'] = $arrCart[$i]['id'][1];
+			$sqlval['classcategory_id2'] = $arrCart[$i]['id'][2];
+			$sqlval['product_name'] = $arrData['name'];
+			$sqlval['product_code'] = $arrData['product_code'];
+			$sqlval['classcategory_name1'] = $arrClassCatName[$arrData['classcategory_id1']];
+			$sqlval['classcategory_name2'] = $arrClassCatName[$arrData['classcategory_id2']];
+			$sqlval['point_rate'] = $arrCart[$i]['point_rate'];			
+			$sqlval['price'] = $arrCart[$i]['price'];
+			$sqlval['quantity'] = $arrCart[$i]['quantity'];
+			lfReduceStock($objQuery, $arrCart[$i]['id'], $arrCart[$i]['quantity']);
+			// INSERT¤Î¼Â¹Ô
+			$objQuery->insert("dtb_order_detail", $sqlval);
+		} else {
+			sfDispSiteError(CART_NOT_FOUND);
+		}
+	}
+}
+
+/* ¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤Îºï½ü */
+function lfDeleteTempOrder($objQuery, $uniqid) {
+	$where = "order_temp_id = ?";
+	$sqlval['del_flg'] = 1;
+	$objQuery->update("dtb_order_temp", $sqlval, $where, array($uniqid));
+	// $objQuery->delete("dtb_order_temp", $where, array($uniqid));
+}
+
+// ¼õÃí°ì»þ¥Æ¡¼¥Ö¥ë¤Î½»½ê¤¬ÅÐÏ¿ºÑ¤ß¥Æ¡¼¥Ö¥ë¤È°Û¤Ê¤ë¾ì¹ç¤Ï¡¢ÊÌ¤Î¤ªÆÏ¤±Àè¤ËÄÉ²Ã¤¹¤ë
+function lfSetNewAddr($uniqid, $customer_id) {
+	$objQuery = new SC_Query();
+	$diff = false;
+	$find_same = false;
+	
+	$col = "deliv_name01,deliv_name02,deliv_kana01,deliv_kana02,deliv_tel01,deliv_tel02,deliv_tel03,deliv_zip01,deliv_zip02,deliv_pref,deliv_addr01,deliv_addr02";
+	$where = "order_temp_id = ?";
+	$arrRet = $objQuery->select($col, "dtb_order_temp", $where, array($uniqid));
+	
+	// Í×ÁÇÌ¾¤Îdeliv_¤òºï½ü¤¹¤ë¡£
+	foreach($arrRet[0] as $key => $val) {
+		$keyname = ereg_replace("^deliv_", "", $key);
+		$arrNew[$keyname] = $val;
+	}
+	
+	// ²ñ°÷¾ðÊó¥Æ¡¼¥Ö¥ë¤È¤ÎÈæ³Ó
+	$col = "name01,name02,kana01,kana02,tel01,tel02,tel03,zip01,zip02,pref,addr01,addr02";
+	$where = "customer_id = ?";
+	$arrCustomerAddr = $objQuery->select($col, "dtb_customer", $where, array($customer_id));
+	
+	// ²ñ°÷¾ðÊó¤Î½»½ê¤È°Û¤Ê¤ë¾ì¹ç
+	if($arrNew != $arrCustomerAddr[0]) {
+		// ÊÌ¤Î¤ªÆÏ¤±Àè¥Æ¡¼¥Ö¥ë¤Î½»½ê¤ÈÈæ³Ó¤¹¤ë
+		$col = "name01,name02,kana01,kana02,tel01,tel02,tel03,zip01,zip02,pref,addr01,addr02";
+		$where = "customer_id = ?";
+		$arrOtherAddr = $objQuery->select($col, "dtb_other_deliv", $where, array($customer_id));
+
+		foreach($arrOtherAddr as $arrval) {
+			if($arrNew == $arrval) {
+				// ¤¹¤Ç¤ËÆ±¤¸½»½ê¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë
+				$find_same = true;
+			}
+		}
+		
+		if(!$find_same) {
+			$diff = true;
+		}
+	}
+	
+	// ¿·¤·¤¤¤ªÆÏ¤±Àè¤¬ÅÐÏ¿ºÑ¤ß¤Î¤â¤Î¤È°Û¤Ê¤ë¾ì¹ç¤ÏÊÌ¤Î¤ªÆÏ¤±Àè¥Æ¡¼¥Ö¥ë¤ËÅÐÏ¿¤¹¤ë
+	if($diff) {
+		$sqlval = $arrNew;
+		$sqlval['customer_id'] = $customer_id;
+		$objQuery->insert("dtb_other_deliv", $sqlval);
+	}
+}
+
+/* ¹ØÆþ¾ðÊó¤ò²ñ°÷¥Æ¡¼¥Ö¥ë¤ËÅÐÏ¿¤¹¤ë */
+function lfSetCustomerPurchase($customer_id, $arrData, $objQuery) {
+	$col = "first_buy_date, last_buy_date, buy_times, buy_total, point";
+	$where = "customer_id = ?";
+	$arrRet = $objQuery->select($col, "dtb_customer", $where, array($customer_id));
+	$sqlval = $arrRet[0];
+	
+	if($sqlval['first_buy_date'] == "") {
+		$sqlval['first_buy_date'] = "Now()";
+	}
+	$sqlval['last_buy_date'] = "Now()";
+	$sqlval['buy_times']++;
+	$sqlval['buy_total']+= $arrData['total'];
+	$sqlval['point'] = ($sqlval['point'] + $arrData['add_point'] - $arrData['use_point']);
+	
+	// ¥Ý¥¤¥ó¥È¤¬ÉÔÂ­¤·¤Æ¤¤¤ë¾ì¹ç
+	if($sqlval['point'] < 0) {
+		$objQuery->rollback();
+		sfDispSiteError(LACK_POINT);
+	}
+	
+	$objQuery->update("dtb_customer", $sqlval, $where, array($customer_id));
+}
+
+/* Èó²ñ°÷¤Î¥á¥ë¥Þ¥¬¥Æ¡¼¥Ö¥ë¤Ø¤ÎÅÐÏ¿ */
+function lfRegistNonCustomer($email, $mail_flag, $objQuery) {
+	// ²ñ°÷¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç
+	if(!sfCheckCustomerMailMaga($email)) {
+		$where = "email = ?";
+		$objQuery->delete("dtb_customer_mail", $where, array($email));
+		$sqlval['email'] = $email;
+		$sqlval['mail_flag'] = $mail_flag;
+		$sqlval['create_date'] = "now()";
+		$sqlval['update_date'] = "now()";
+		$objQuery->insert("dtb_customer_mail", $sqlval);
+	}
+}
+
+// ºß¸Ë¤ò¸º¤é¤¹½èÍý
+function lfReduceStock($objQuery, $arrID, $quantity) {
+	$where = "product_id = ? AND classcategory_id1 = ? AND classcategory_id2 = ?";
+	$arrRet = $objQuery->select("stock, stock_unlimited", "dtb_products_class", $where, $arrID);
+	
+	// Çä¤êÀÚ¤ì¥¨¥é¡¼
+	if(($arrRet[0]['stock_unlimited'] != '1' && $arrRet[0]['stock'] < $quantity) || $quantity == 0) {
+		$objQuery->rollback();
+		sfDispSiteError(SOLD_OUT, "", true);
+	// ÌµÀ©¸Â¤Î¾ì¹ç¡¢ºß¸Ë¤ÏNULL
+	} elseif($arrRet[0]['stock_unlimited'] == '1') {
+		$sqlval['stock'] = null;
+		$objQuery->update("dtb_products_class", $sqlval, $where, $arrID);
+	// ºß¸Ë¤ò¸º¤é¤¹
+	} else {
+		$sqlval['stock'] = ($arrRet[0]['stock'] - $quantity);
+		if($sqlval['stock'] == "") {
+			$sqlval['stock'] = '0';
+		}		
+		$objQuery->update("dtb_products_class", $sqlval, $where, $arrID);
+	}
+}
+
+// GET¤ÎÃÍ¤ò¥¤¥ó¥µ¡¼¥ÈÍÑ¤ËÀ°¤¨¤ë
+function lfGetInsParam($sqlVal){
+	
+	foreach($_GET as $key => $val){
+		// ¥«¥é¥à¤ÎÂ¸ºß¥Á¥§¥Ã¥¯
+		if(sfColumnExists("dtb_order", $key)) $sqlVal[$key] = $val;
+	}
+	
+	return $sqlVal;
+}
+
+?>
Index: branches/dev/html/mobile/unsupported/index.php
===================================================================
--- branches/dev/html/mobile/unsupported/index.php	(revision 11460)
+++ branches/dev/html/mobile/unsupported/index.php	(revision 11460)
@@ -0,0 +1,24 @@
+<?php
+require_once("../require.php");
+
+class LC_Page {
+	function LC_Page() {
+		/** É¬¤º»ØÄê¤¹¤ë **/
+		$this->tpl_css = '';			// ¥á¥¤¥óCSS¥Ñ¥¹
+		/** É¬¤º»ØÄê¤¹¤ë **/
+		// ¥á¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È
+		$this->tpl_mainpage = 'unsupported/index.tpl';
+	}
+}
+
+$objPage = new LC_Page();
+$objView = new SC_SiteView();
+
+// ¥ì¥¤¥¢¥¦¥È¥Ç¥¶¥¤¥ó¤ò¼èÆÀ
+$objPage = sfGetPageLayout($objPage, false, DEF_LAYOUT);
+
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+
+//-----------------------------------------------------------------------------------------------------------------------------------
+?>
Index: branches/dev/html/mobile/cart/index.php
===================================================================
--- branches/dev/html/mobile/cart/index.php	(revision 11460)
+++ branches/dev/html/mobile/cart/index.php	(revision 11460)
@@ -0,0 +1,115 @@
+<?php
+require_once("../require.php");
+
+class LC_Page {
+	var $arrSession;
+	var $arrProductsClass;
+	var $tpl_total_pretax;
+	var $tpl_total_tax;
+	var $tpl_total_point;
+	var $tpl_message;
+	function LC_Page() {
+		/** É¬¤º»ØÄê¤¹¤ë **/
+		$this->tpl_css = '/css/layout/cartin/index.css';	// ¥á¥¤¥óCSS¥Ñ¥¹
+		/** É¬¤º»ØÄê¤¹¤ë **/
+		$this->tpl_mainpage = 'cart/index.tpl';		// ¥á¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È
+		$this->tpl_title = "¶ºÞ¤ÎÃæ¤ò¸«¤ë";
+	}
+}
+
+// Çã¤¤Êª¤òÂ³¤±¤ë¾ì¹ç
+if($_REQUEST['continue']) {
+	header("Location: " . gfAddSessionId(URL_SITE_TOP) );
+	exit;
+}
+
+$objPage = new LC_Page();
+$objView = new SC_SiteView(false);
+$objCartSess = new SC_CartSession("", false);
+$objSiteSess = new SC_SiteSession();
+$objSiteInfo = $objView->objSiteInfo;
+$objCustomer = new SC_Customer();
+// ´ðËÜ¾ðÊó¤Î¼èÆÀ
+$arrInfo = $objSiteInfo->data;
+
+// ¾¦ÉÊ¹ØÆþÃæ¤Ë¥«¡¼¥ÈÆâÍÆ¤¬ÊÑ¹¹¤µ¤ì¤¿¡£
+if($objCartSess->getCancelPurchase()) {
+	$objPage->tpl_message = "¾¦ÉÊ¹ØÆþÃæ¤Ë¶°ÄÆâÍÆ¤¬ÊÑ¹¹¤µ¤ì¤Þ¤·¤¿¤Î¤Ç¤¤ª¼ê¿ô¤Ç¤¹¤¬¹ØÆþ¼êÂ³¤­¤ò¤ä¤êÄ¾¤·¤Æ²¼¤µ¤¤¡";
+}
+
+switch($_POST['mode']) {
+case 'up':
+	$objCartSess->upQuantity($_POST['cart_no']);
+	sfReload();
+	break;
+case 'down':
+	$objCartSess->downQuantity($_POST['cart_no']);
+	sfReload();
+	break;
+case 'delete':
+	$objCartSess->delProduct($_POST['cart_no']);
+	sfReload();
+	break;
+case 'confirm':
+	// ¥«¡¼¥ÈÆâ¾ðÊó¤Î¼èÆÀ
+	$arrRet = $objCartSess->getCartList();
+	$max = count($arrRet);
+	$cnt = 0;
+	for ($i = 0; $i < $max; $i++) {
+		// ¾¦ÉÊµ¬³Ê¾ðÊó¤Î¼èÆÀ
+		$arrData = sfGetProductsClass($arrRet[$i]['id']);
+		// DB¤ËÂ¸ºß¤¹¤ë¾¦ÉÊ
+		if($arrData != "") {
+			$cnt++;
+		}
+	}
+	// ¥«¡¼¥È¾¦ÉÊ¤¬1·ï°Ê¾åÂ¸ºß¤¹¤ë¾ì¹ç
+	if($cnt > 0) {
+		// Àµ¾ï¤ËÅÐÏ¿¤µ¤ì¤¿¤³¤È¤òµ­Ï¿¤·¤Æ¤ª¤¯
+		$objSiteSess->setRegistFlag();
+		$pre_uniqid = $objSiteSess->getUniqId();
+		// ÃíÊ¸°ì»þID¤ÎÈ¯¹Ô
+		$objSiteSess->setUniqId();
+		$uniqid = $objSiteSess->getUniqId();
+		// ¥¨¥é¡¼¥ê¥È¥é¥¤¤Ê¤É¤Ç´û¤Ëuniqid¤¬Â¸ºß¤¹¤ë¾ì¹ç¤Ï¡¢ÀßÄê¤ò°ú¤­·Ñ¤°
+		if($pre_uniqid != "") {
+			$sqlval['order_temp_id'] = $uniqid;
+			$where = "order_temp_id = ?";
+			$objQuery = new SC_Query();
+			$objQuery->update("dtb_order_temp", $sqlval, $where, array($pre_uniqid));
+		}
+		// ¥«¡¼¥È¤ò¹ØÆþ¥â¡¼¥É¤ËÀßÄê
+		$objCartSess->saveCurrentCart($uniqid);
+		// ¹ØÆþ¥Ú¡¼¥¸¤Ø
+		header("Location: " . gfAddSessionId(URL_SHOP_TOP));
+		exit;
+	}
+	break;
+default:
+	break;
+}
+
+// ¥«¡¼¥È½¸·×½èÍý
+$objPage = sfTotalCart($objPage, $objCartSess, $arrInfo);
+$objPage->arrData = sfTotalConfirm($arrData, $objPage, $objCartSess, $arrInfo, $objCustomer);
+
+$objPage->arrInfo = $arrInfo;
+
+// ¥í¥°¥¤¥óÈ½Äê
+if($objCustomer->isLoginSuccess()) {
+	$objPage->tpl_login = true;
+	$objPage->tpl_user_point = $objCustomer->getValue('point');
+	$objPage->tpl_name = $objCustomer->getValue('name01');
+}
+
+// Á÷ÎÁÌµÎÁ¤Þ¤Ç¤Î¶â³Û¤ò·×»»
+$tpl_deliv_free = $objPage->arrInfo['free_rule'] - $objPage->tpl_total_pretax;
+$objPage->tpl_deliv_free = $tpl_deliv_free;
+
+// Á°ÊÇ¤ÎURL¤ò¼èÆÀ
+$objPage->tpl_prev_url = $objCartSess->getPrevURL();
+
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+//--------------------------------------------------------------------------------------------------------------------------
+?>
Index: branches/dev/html/mobile/contact/index.php
===================================================================
--- branches/dev/html/mobile/contact/index.php	(revision 11460)
+++ branches/dev/html/mobile/contact/index.php	(revision 11460)
@@ -0,0 +1,26 @@
+<?php
+require_once("../require.php");
+
+class LC_Page {
+	function LC_Page() {
+		$this->tpl_css = '/css/layout/contact/index.css';	// ¥á¥¤¥óCSS¥Ñ¥¹
+		$this->tpl_mainpage = 'contact/index.tpl';
+		$this->tpl_title = '¤ªÌä¤¤¹ç¤ï¤»(ÆþÎÏ¥Ú¡¼¥¸)';
+		$this->tpl_page_category = 'contact';
+		global $arrPref;
+		$this->arrPref = $arrPref;
+	}
+}
+
+$conn = new SC_DBConn();
+$objPage = new LC_Page();
+$objView = new SC_SiteView();
+$CONF = sf_getBasisData();			// Å¹ÊÞ´ðËÜ¾ðÊó
+
+//----¡¡¥Ú¡¼¥¸É½¼¨
+$objView->assignobj($objPage);
+$objView->assignarray($CONF);
+$objView->display(SITE_FRAME);
+
+//------------------------------------------------------------------------------------------------------------------------------------------
+?>
Index: branches/dev/html/mobile/magazine/cancel.php
===================================================================
--- branches/dev/html/mobile/magazine/cancel.php	(revision 11460)
+++ branches/dev/html/mobile/magazine/cancel.php	(revision 11460)
@@ -0,0 +1,58 @@
+<?php
+/**
+ * ¥á¥ë¥Þ¥¬²ò½ü
+ */
+
+require_once('../require.php');
+
+class LC_Page {
+	function LC_Page() {
+		/** É¬¤ºÊÑ¹¹¤¹¤ë **/
+		$this->tpl_mainpage = 'magazine/cancel.tpl';
+		$this->tpl_title .= '¥á¥ë¥Þ¥¬²ò½ü´°Î»';
+	}
+}
+
+$objPage = new LC_Page();
+$objQuery = new SC_Query();
+
+// secret_key¤Î¼èÆÀ
+$key = $_GET['id'];
+
+if (empty($key) or !lfExistKey($key))  {
+	sfDispSiteError(PAGE_ERROR);
+} else {
+	lfChangeData($key);
+}
+
+$objView = new SC_SiteView();
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+
+//-----------------------------------------------------------------------------------------------------------------------------------
+
+// ¥á¥ë¥Þ¥¬¤Î²ò½ü¤ò´°Î»¤µ¤»¤ë
+function lfChangeData($key) {
+	global $objQuery;
+
+	$arrUpdate['mail_flag'] = 3;
+	$arrUpdate['secret_key'] = NULL;
+	$result = $objQuery->update("dtb_customer_mail", $arrUpdate, "secret_key = '" .addslashes($key). "'");
+}
+
+// ¥­¡¼¤¬Â¸ºß¤¹¤ë¤«¤É¤¦¤«
+function lfExistKey($key) {
+	global $objQuery;
+
+	$sql = "SELECT count(*) FROM dtb_customer_mail WHERE secret_key = ?";
+	$result = $objQuery->getOne($sql, array($key));
+
+	if ($result == 1) {
+		return true;
+	} else {
+		return false;
+	}
+}
+
+
+?>
Index: branches/dev/html/mobile/magazine/index.php
===================================================================
--- branches/dev/html/mobile/magazine/index.php	(revision 11460)
+++ branches/dev/html/mobile/magazine/index.php	(revision 11460)
@@ -0,0 +1,27 @@
+<?php
+/**
+ * ¥á¥ë¥Þ¥¬ÅÐÏ¿¡¦²ò½ü¡¡¥È¥Ã¥×¥Ú¡¼¥¸
+ */
+
+require_once('../require.php');
+
+class LC_Page {
+	function LC_Page() {
+		/** É¬¤ºÊÑ¹¹¤¹¤ë **/
+		$this->tpl_mainpage = 'magazine/index.tpl';
+		$this->tpl_title .= '¥á¥ë¥Þ¥¬ÅÐÏ¿¡¦²ò½ü';
+	}
+}
+
+$objPage = new LC_Page();
+$objPage->arrForm = $_POST;
+
+// ¥ì¥¤¥¢¥¦¥È¥Ç¥¶¥¤¥ó¤ò¼èÆÀ
+$objPage = sfGetPageLayout($objPage, false, DEF_LAYOUT);
+
+$objView = new SC_SiteView();
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+
+//-----------------------------------------------------------------------------------------------------------------------------------
+?>
Index: branches/dev/html/mobile/magazine/complete.php
===================================================================
--- branches/dev/html/mobile/magazine/complete.php	(revision 11460)
+++ branches/dev/html/mobile/magazine/complete.php	(revision 11460)
@@ -0,0 +1,19 @@
+<?php
+require_once("../require.php");
+
+class LC_Page {
+	function LC_Page() {
+		$this->tpl_mainpage = 'magazine/complete.tpl';		// ¥á¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È
+		$this->tpl_title .= '¥á¥ë¥Þ¥¬ÅÐÏ¿(´°Î»¥Ú¡¼¥¸)';			//¡¡¥Ú¡¼¥¸¥¿¥¤¥È¥ë
+	}
+}
+
+$objPage = new LC_Page();
+$objView = new SC_SiteView();
+
+//----¡¡¥Ú¡¼¥¸É½¼¨
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+
+//----------------------------------------------------------------------------------------------------------------------
+?>
Index: branches/dev/html/mobile/magazine/confirm.php
===================================================================
--- branches/dev/html/mobile/magazine/confirm.php	(revision 11460)
+++ branches/dev/html/mobile/magazine/confirm.php	(revision 11460)
@@ -0,0 +1,186 @@
+<?php
+/**
+ * ¥á¥ë¥Þ¥¬³ÎÇ§
+ */
+
+require_once('../require.php');
+
+class LC_Page {
+	function LC_Page() {
+		/** É¬¤ºÊÑ¹¹¤¹¤ë **/
+		$this->tpl_mainpage = 'magazine/confirm.tpl';
+		$this->tpl_title .= '¥á¥ë¥Þ¥¬³ÎÇ§';
+	}
+}
+
+$objPage = new LC_Page();
+$objConn = new SC_DbConn();
+$objPage->arrForm = $_POST;
+
+// ÅÐÏ¿
+if (isset($_REQUEST['btnRegist'])) {
+	$objPage->arrErr = lfMailErrorCheck($objPage->arrForm, "regist");
+
+	// ¥¨¥é¡¼¤¬¤Ê¤±¤ì¤Ð
+	if (count($objPage->arrErr) == 0) {
+		// ³ÎÇ§
+		$objPage->arrForm['kind'] = '¥á¥ë¥Þ¥¬ÅÐÏ¿';
+		$objPage->arrForm['type'] = 'regist';
+		$objPage->arrForm['mail'] = $objPage->arrForm['regist'];
+	} else {
+		$objPage->tpl_mainpage = 'magazine/index.tpl';
+		$objPage->tpl_title = '¥á¥ë¥Þ¥¬ÅÐÏ¿¡¦²ò½ü';
+	}
+// ²ò½ü
+} elseif (isset($_REQUEST['btnCancel'])) {
+	$objPage->arrErr = lfMailErrorCheck($objPage->arrForm, "cancel");
+
+	// ¥¨¥é¡¼¤¬¤Ê¤±¤ì¤Ð
+	if (count($objPage->arrErr) == 0) {
+		// ³ÎÇ§
+		$objPage->arrForm['kind'] = '¥á¥ë¥Þ¥¬²ò½ü';
+		$objPage->arrForm['type'] = 'cancel';
+		$objPage->arrForm['mail'] = $objPage->arrForm['cancel'];
+	} else {
+		$objPage->tpl_mainpage = 'magazine/index.tpl';
+		$objPage->tpl_title = '¥á¥ë¥Þ¥¬ÅÐÏ¿¡¦²ò½ü';
+	}
+// ´°Î»
+} elseif ($_REQUEST['mode'] == 'regist' or $_REQUEST['mode'] == 'cancel') {
+
+	//¡¡ÅÐÏ¿
+	if ($_REQUEST['mode'] == 'regist') {
+		$uniqId = lfRegistData($_POST["email"]);
+		$subject = sfMakesubject('¥á¥ë¥Þ¥¬ÅÐÏ¿¤Î¤´³ÎÇ§');
+	//¡¡²ò½ü
+	} elseif ($_REQUEST['mode'] == 'cancel') {
+		$uniqId = lfGetSecretKey($_POST["email"]);
+		$subject = sfMakesubject('¥á¥ë¥Þ¥¬²ò½ü¤Î¤´³ÎÇ§');
+	}
+	$CONF = sf_getBasisData();
+	$objPage->CONF = $CONF;
+	$objPage->tpl_url = gfAddSessionId(SSL_URL . "magazine/" . $_REQUEST['mode'] . ".php?id=" . $uniqId);
+	
+	$objMailText = new SC_SiteView();
+	$objMailText->assignobj($objPage);
+	$toCustomerMail = $objMailText->fetch("mail_templates/mailmagazine_" . $_REQUEST['mode'] . ".tpl");
+	$objMail = new GC_SendMail();
+	$objMail->setItem(
+						''									//¡¡°¸Àè
+						, $subject							//¡¡¥µ¥Ö¥¸¥§¥¯¥È
+						, $toCustomerMail					//¡¡ËÜÊ¸
+						, $CONF["email03"]					//¡¡ÇÛÁ÷¸µ¥¢¥É¥ì¥¹
+						, $CONF["shop_name"]				//¡¡ÇÛÁ÷¸µ¡¡Ì¾Á°
+						, $CONF["email03"]					//¡¡reply_to
+						, $CONF["email04"]					//¡¡return_path
+						, $CONF["email04"]					//  Errors_to
+						, $CONF["email01"]					//  Bcc
+														);
+	// °¸Àè¤ÎÀßÄê
+	$objMail->setTo($_POST["email"], $_POST["email"]);
+	$objMail->sendMail();
+
+	// ´°Î»¥Ú¡¼¥¸¤Ë°ÜÆ°¤µ¤»¤ë¡£
+	header("Location:" . gfAddSessionId("./complete.php"));
+	exit;
+} else {
+	sfDispSiteError(CUSTOMER_ERROR);
+}
+
+// ¥ì¥¤¥¢¥¦¥È¥Ç¥¶¥¤¥ó¤ò¼èÆÀ
+$objPage = sfGetPageLayout($objPage, false, DEF_LAYOUT);
+
+$objView = new SC_SiteView();
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+
+//-----------------------------------------------------------------------------------------------------------------------------------
+
+
+//---- ÆþÎÏ¥¨¥é¡¼¥Á¥§¥Ã¥¯
+function lfMailErrorCheck($array, $dataName) {
+	$objErr = new SC_CheckError($array);
+	$objErr->doFunc(
+				array('¥á¡¼¥ë¥¢¥É¥ì¥¹', $dataName, MTEXT_LEN) ,
+				array("NO_SPTAB", "EXIST_CHECK", "EMAIL_CHECK", 
+					"SPTAB_CHECK" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK", "MOBILE_EMAIL_CHECK"));
+
+	// ÆþÎÏ¥¨¥é¡¼¤¬¤Ê¤±¤ì¤Ð
+	if (count($objErr->arrErr) == 0) {
+		// ¥á¥ë¥Þ¥¬¤ÎÅÐÏ¿Í­Ìµ
+		$flg = lfIsRegistData($array[$dataName]);
+
+		// ÅÐÏ¿¤Î»þ
+		if ($dataName == 'regist' and $flg == true) {
+			$objErr->arrErr[$dataName] = "´û¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤Þ¤¹¡£<br>";
+		// ²ò½ü¤Î»þ
+		} elseif ($dataName == 'cancel' and $flg == false) {
+			$objErr->arrErr[$dataName] = "¥á¥ë¥Þ¥¬ÅÐÏ¿¤¬¤µ¤ì¤Æ¤¤¤Þ¤»¤ó¡£<br>";
+		}
+	}
+
+	return $objErr->arrErr;
+}
+
+
+//---- ¥á¥ë¥Þ¥¬ÅÐÏ¿
+function lfRegistData ($email) {
+	global $objConn;
+
+	$count = 1;
+	while ($count != 0) {
+		$uniqid = sfGetUniqRandomId("t");
+		$count = $objConn->getOne("SELECT COUNT(*) FROM dtb_customer_mail WHERE secret_key = ?", array($uniqid));
+	}
+	
+	$arrRegist["email"] = $email;			// ¥á¡¼¥ë¥¢¥É¥ì¥¹
+	$arrRegist["mail_flag"] = 5;			// ÅÐÏ¿¾õÂÖ
+	$arrRegist["secret_key"] = $uniqid;		// IDÈ¯¹Ô
+	$arrRegist["create_date"] = "now()"; 	// ºîÀ®Æü
+	$arrRegist["update_date"] = "now()"; 	// ¹¹¿·Æü
+
+	//-- ²¾ÅÐÏ¿¼Â¹Ô
+	$objConn->query("BEGIN");
+
+	$objQuery = new SC_Query();
+	$objQuery->insert("dtb_customer_mail", $arrRegist);
+
+	//--¡¡´û¤Ë¥á¥ë¥Þ¥¬ÅÐÏ¿¤·¤Æ¤¤¤ë¤«¤ÎÈ½Äê
+	$sql = "SELECT count(*) FROM dtb_customer_mail WHERE email = ?";
+	$mailResult = $objConn->getOne($sql, array($arrRegist["email"]));
+
+	if ($mailResult == 1) {		
+		$objQuery->update("dtb_customer_mail", $arrRegist, "email = '" .addslashes($arrRegist["email"]). "'");			
+	} else {
+		$objQuery->insert("dtb_customer_mail", $arrRegist);		
+	}
+	$objConn->query("COMMIT");
+
+	return $uniqid;
+}
+
+// ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¥­¡¼¤Î¼èÆÀ
+function lfGetSecretKey ($email) {
+	global $objConn;
+
+	$sql = "SELECT secret_key FROM dtb_customer_mail WHERE email = ?";
+	return $objConn->getOne($sql, array($email));
+}
+
+// ´û¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¤«¤É¤¦¤«
+function lfIsRegistData ($email) {
+	global $objConn;
+
+	$sql = "SELECT email, mail_flag FROM dtb_customer_mail WHERE email = ?";
+	$mailResult = $objConn->getRow($sql, array($email));
+
+	// NULL¤â¹ØÆÉ¤È¤ß¤Ê¤¹
+	if (count($mailResult) == 0 or ($mailResult[1] != null and $mailResult[1] <= 2 )) {
+		return false;
+	} else {
+		return true;
+	}
+}
+
+
+?>
Index: branches/dev/html/mobile/magazine/regist.php
===================================================================
--- branches/dev/html/mobile/magazine/regist.php	(revision 11460)
+++ branches/dev/html/mobile/magazine/regist.php	(revision 11460)
@@ -0,0 +1,58 @@
+<?php
+/**
+ * ¥á¥ë¥Þ¥¬ÅÐÏ¿
+ */
+
+require_once('../require.php');
+
+class LC_Page {
+	function LC_Page() {
+		/** É¬¤ºÊÑ¹¹¤¹¤ë **/
+		$this->tpl_mainpage = 'magazine/regist.tpl';
+		$this->tpl_title .= '¥á¥ë¥Þ¥¬ÅÐÏ¿´°Î»';
+	}
+}
+
+$objPage = new LC_Page();
+$objQuery = new SC_Query();
+
+// secret_key¤Î¼èÆÀ
+$key = $_GET['id'];
+
+if (empty($key) or !lfExistKey($key))  {
+	sfDispSiteError(PAGE_ERROR);
+} else {
+	lfChangeData($key);
+}
+
+$objView = new SC_SiteView();
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+
+//-----------------------------------------------------------------------------------------------------------------------------------
+
+// ¥á¥ë¥Þ¥¬¤ÎÅÐÏ¿¤ò´°Î»¤µ¤»¤ë
+function lfChangeData($key) {
+	global $objQuery;
+
+	$arrUpdate['mail_flag'] = 2;
+	$arrUpdate['secret_key'] = NULL;
+	$result = $objQuery->update("dtb_customer_mail", $arrUpdate, "secret_key = '" .addslashes($key). "'");
+}
+
+// ¥­¡¼¤¬Â¸ºß¤¹¤ë¤«¤É¤¦¤«
+function lfExistKey($key) {
+	global $objQuery;
+
+	$sql = "SELECT count(*) FROM dtb_customer_mail WHERE secret_key = ?";
+	$result = $objQuery->getOne($sql, array($key));
+
+	if ($result == 1) {
+		return true;
+	} else {
+		return false;
+	}
+}
+
+
+?>
Index: branches/dev/html/mobile/guide/usage.php
===================================================================
--- branches/dev/html/mobile/guide/usage.php	(revision 11460)
+++ branches/dev/html/mobile/guide/usage.php	(revision 11460)
@@ -0,0 +1,35 @@
+<?php
+/**
+ * ¥â¥Ð¥¤¥ë¥µ¥¤¥È/¤´ÍøÍÑÊýË¡
+ */
+
+require_once('../require.php');
+
+class LC_Page {
+	function LC_Page() {
+		/** É¬¤ºÊÑ¹¹¤¹¤ë **/
+		$this->tpl_mainpage = 'guide/usage.tpl';	// ¥á¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È
+		$this->tpl_title = '¤´ÍøÍÑÊýË¡';
+	}
+}
+
+$objPage = new LC_Page();
+
+switch (@$_GET['page']) {
+case '1':
+case '2':
+case '3':
+case '4':
+	$objPage->tpl_mainpage = 'guide/usage' . $_GET['page'] . '.tpl';
+	break;
+}
+
+// ¥ì¥¤¥¢¥¦¥È¥Ç¥¶¥¤¥ó¤ò¼èÆÀ
+$objPage = sfGetPageLayout($objPage, false, DEF_LAYOUT);
+
+$objView = new SC_SiteView();
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+
+//-----------------------------------------------------------------------------------------------------------------------------------
+?>
Index: branches/dev/html/mobile/guide/index.php
===================================================================
--- branches/dev/html/mobile/guide/index.php	(revision 11460)
+++ branches/dev/html/mobile/guide/index.php	(revision 11460)
@@ -0,0 +1,26 @@
+<?php
+/**
+ * ¥â¥Ð¥¤¥ë¥µ¥¤¥È/¤´ÍøÍÑ¥¬¥¤¥É
+ */
+
+require_once('../require.php');
+
+class LC_Page {
+	function LC_Page() {
+		/** É¬¤ºÊÑ¹¹¤¹¤ë **/
+		$this->tpl_mainpage = 'guide/index.tpl';	// ¥á¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È
+		$this->tpl_title = '¤´ÍøÍÑ¥¬¥¤¥É';
+	}
+}
+
+$objPage = new LC_Page();
+
+// ¥ì¥¤¥¢¥¦¥È¥Ç¥¶¥¤¥ó¤ò¼èÆÀ
+$objPage = sfGetPageLayout($objPage, false, DEF_LAYOUT);
+
+$objView = new SC_SiteView();
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+
+//-----------------------------------------------------------------------------------------------------------------------------------
+?>
Index: branches/dev/html/mobile/guide/charge.php
===================================================================
--- branches/dev/html/mobile/guide/charge.php	(revision 11460)
+++ branches/dev/html/mobile/guide/charge.php	(revision 11460)
@@ -0,0 +1,26 @@
+<?php
+/**
+ * ¥â¥Ð¥¤¥ë¥µ¥¤¥È/ÄÌ¿®ÎÁ¤Ë¤Ä¤¤¤Æ
+ */
+
+require_once('../require.php');
+
+class LC_Page {
+	function LC_Page() {
+		/** É¬¤ºÊÑ¹¹¤¹¤ë **/
+		$this->tpl_mainpage = 'guide/charge.tpl';	// ¥á¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È
+		$this->tpl_title = 'ÄÌ¿®ÎÁ¤Ë¤Ä¤¤¤Æ';
+	}
+}
+
+$objPage = new LC_Page();
+
+// ¥ì¥¤¥¢¥¦¥È¥Ç¥¶¥¤¥ó¤ò¼èÆÀ
+$objPage = sfGetPageLayout($objPage, false, DEF_LAYOUT);
+
+$objView = new SC_SiteView();
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+
+//-----------------------------------------------------------------------------------------------------------------------------------
+?>
Index: branches/dev/html/mobile/guide/about.php
===================================================================
--- branches/dev/html/mobile/guide/about.php	(revision 11460)
+++ branches/dev/html/mobile/guide/about.php	(revision 11460)
@@ -0,0 +1,26 @@
+<?php
+/**
+ * ¥â¥Ð¥¤¥ë¥µ¥¤¥È/±¿±Ä²ñ¼Ò¾Ò²ð
+ */
+
+require_once('../require.php');
+
+class LC_Page {
+	function LC_Page() {
+		/** É¬¤ºÊÑ¹¹¤¹¤ë **/
+		$this->tpl_mainpage = 'guide/about.tpl';	// ¥á¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È
+		$this->tpl_title = '¥×¥é¥¤¥Ð¥·¡¼¥Ý¥ê¥·¡¼';
+	}
+}
+
+$objPage = new LC_Page();
+
+// ¥ì¥¤¥¢¥¦¥È¥Ç¥¶¥¤¥ó¤ò¼èÆÀ
+$objPage = sfGetPageLayout($objPage, false, DEF_LAYOUT);
+
+$objView = new SC_SiteView();
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+
+//-----------------------------------------------------------------------------------------------------------------------------------
+?>
Index: branches/dev/html/mobile/guide/kiyaku.php
===================================================================
--- branches/dev/html/mobile/guide/kiyaku.php	(revision 11460)
+++ branches/dev/html/mobile/guide/kiyaku.php	(revision 11460)
@@ -0,0 +1,63 @@
+<?php
+/**
+ * ¥â¥Ð¥¤¥ë¥µ¥¤¥È/¤´ÍøÍÑµ¬Ìó
+ */
+
+require_once('../require.php');
+
+class LC_Page {
+	function LC_Page() {
+		/** É¬¤ºÊÑ¹¹¤¹¤ë **/
+		$this->tpl_mainpage = 'guide/kiyaku.tpl';	// ¥á¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È
+		$this->tpl_title = '¤´ÍøÍÑµ¬Ìó';
+	}
+}
+
+$objPage = new LC_Page();
+
+// ¥ì¥¤¥¢¥¦¥È¥Ç¥¶¥¤¥ó¤ò¼èÆÀ
+$objPage = sfGetPageLayout($objPage, false, DEF_LAYOUT);
+
+// ÍøÍÑµ¬Ìó¤ò¼èÆÀ¤¹¤ë¡£
+lfGetKiyaku(intval(@$_GET['page']), $objPage);
+
+$objView = new SC_SiteView();
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+
+//-----------------------------------------------------------------------------------------------------------------------------------
+
+/**
+ * ÍøÍÑµ¬Ìó¤ò¼èÆÀ¤·¡¢¥Ú¡¼¥¸¥ª¥Ö¥¸¥§¥¯¥È¤Ë³ÊÇ¼¤¹¤ë¡£
+ *
+ * @param integer $index µ¬Ìó¤Î¥¤¥ó¥Ç¥Ã¥¯¥¹
+ * @param object &$objPage ¥Ú¡¼¥¸¥ª¥Ö¥¸¥§¥¯¥È
+ * @return void
+ */
+function lfGetKiyaku($index, &$objPage)
+{
+	$objQuery = new SC_Query();
+	$objQuery->setorder('rank DESC');
+	$arrRet = $objQuery->select('kiyaku_title, kiyaku_text', 'dtb_kiyaku', 'del_flg <> 1');
+
+	$number = count($arrRet);
+	if ($number > 0) {
+		$last = $number - 1;
+	} else {
+		$last = 0;
+	}
+
+	if ($index < 0) {
+		$index = 0;
+	} elseif ($index > $last) {
+		$index = $last;
+	}
+
+	$objPage->tpl_kiyaku_title = @$arrRet[$index]['kiyaku_title'];
+	$objPage->tpl_kiyaku_text = @$arrRet[$index]['kiyaku_text'];
+	$objPage->tpl_kiyaku_index = $index;
+	$objPage->tpl_kiyaku_last_index = $last;
+	$objPage->tpl_kiyaku_is_first = $index <= 0;
+	$objPage->tpl_kiyaku_is_last = $index >= $last;
+}
+?>
Index: branches/dev/html/mobile/guide/privacy.php
===================================================================
--- branches/dev/html/mobile/guide/privacy.php	(revision 11460)
+++ branches/dev/html/mobile/guide/privacy.php	(revision 11460)
@@ -0,0 +1,26 @@
+<?php
+/**
+ * ¥â¥Ð¥¤¥ë¥µ¥¤¥È/¥×¥é¥¤¥Ð¥·¡¼¥Ý¥ê¥·¡¼
+ */
+
+require_once('../require.php');
+
+class LC_Page {
+	function LC_Page() {
+		/** É¬¤ºÊÑ¹¹¤¹¤ë **/
+		$this->tpl_mainpage = 'guide/privacy.tpl';	// ¥á¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È
+		$this->tpl_title = '¥×¥é¥¤¥Ð¥·¡¼¥Ý¥ê¥·¡¼';
+	}
+}
+
+$objPage = new LC_Page();
+
+// ¥ì¥¤¥¢¥¦¥È¥Ç¥¶¥¤¥ó¤ò¼èÆÀ
+$objPage = sfGetPageLayout($objPage, false, DEF_LAYOUT);
+
+$objView = new SC_SiteView();
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+
+//-----------------------------------------------------------------------------------------------------------------------------------
+?>
Index: branches/dev/html/mobile/index.php
===================================================================
--- branches/dev/html/mobile/index.php	(revision 11460)
+++ branches/dev/html/mobile/index.php	(revision 11460)
@@ -0,0 +1,26 @@
+<?php
+/**
+ * ¥â¥Ð¥¤¥ë¥µ¥¤¥È/¥È¥Ã¥×¥Ú¡¼¥¸
+ */
+
+require_once('./require.php');
+
+class LC_Page {
+	function LC_Page() {
+		/** É¬¤ºÊÑ¹¹¤¹¤ë **/
+		$this->tpl_mainpage = 'top.tpl';	// ¥á¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È
+	}
+}
+
+$objPage = new LC_Page();
+$conn = new SC_DBConn();
+
+// ¥ì¥¤¥¢¥¦¥È¥Ç¥¶¥¤¥ó¤ò¼èÆÀ
+$objPage = sfGetPageLayout($objPage, false, 'index.php');
+
+$objView = new SC_SiteView();
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+
+//-----------------------------------------------------------------------------------------------------------------------------------
+?>
Index: branches/dev/html/mobile/regist/index.php
===================================================================
--- branches/dev/html/mobile/regist/index.php	(revision 11460)
+++ branches/dev/html/mobile/regist/index.php	(revision 11460)
@@ -0,0 +1,196 @@
+<?php
+/*
+ * Copyright(c) 2000-2006 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ */
+
+require_once("../require.php");
+
+//---- ¥Ú¡¼¥¸É½¼¨¥¯¥é¥¹
+class LC_Page {
+	
+	var $arrSession;
+	var $tpl_mainpage;
+	var $arrPref;
+
+	function LC_Page() {
+		$this->tpl_css = '/css/layout/regist/index.css';	// ¥á¥¤¥óCSS¥Ñ¥¹
+	}
+}
+
+$objConn = new SC_DBConn();
+$objPage = new LC_Page();
+$objView = new SC_SiteView();
+$objSiteInfo = $objView->objSiteInfo;
+$objCustomer = new SC_Customer();
+$CONF = sf_getBasisData();
+$arrInfo = $objSiteInfo->data;
+
+//--¡¡ËÜÅÐÏ¿´°Î»¤Î¤¿¤á¤Ë¥á¡¼¥ë¤«¤éÀÜÂ³¤·¤¿¾ì¹ç
+if ($_GET["mode"] == "regist") {
+	
+	//-- ÆþÎÏ¥Á¥§¥Ã¥¯
+	$objPage->arrErr = lfErrorCheck($_GET);
+	if ($objPage->arrErr) {
+		$objPage->tpl_mainpage = 'regist/error.tpl';
+		$objPage->tpl_css = "/css/layout/regist/error.css";
+		$objPage->tpl_title = '¥¨¥é¡¼';
+
+	} else {
+		//$objPage->tpl_mainpage = 'regist/complete.tpl';
+		//$objPage->tpl_title = ' ²ñ°÷ÅÐÏ¿(´°Î»¥Ú¡¼¥¸)';
+		$registSecretKey = lfRegistData($_GET);			//ËÜ²ñ°÷ÅÐÏ¿¡Ê¥Õ¥é¥°ÊÑ¹¹¡Ë
+		lfSendRegistMail($registSecretKey);				//ËÜ²ñ°÷ÅÐÏ¿´°Î»¥á¡¼¥ëÁ÷¿®
+
+		// ¥í¥°¥¤¥óºÑ¤ß¤Î¾õÂÖ¤Ë¤¹¤ë¡£
+		$objQuery = new SC_Query();
+		$email = $objQuery->get("dtb_customer", "email", "secret_key = ?", array($registSecretKey));
+		$objCustomer->setLogin($email);
+		header("Location: " . gfAddSessionId("./complete.php"));
+		exit;
+	}
+
+//--¡¡¤½¤ì°Ê³°¤Î¥¢¥¯¥»¥¹¤ÏÌµ¸ú¤È¤¹¤ë
+} else {
+	$objPage->arrErr["id"] = "Ìµ¸ú¤Ê¥¢¥¯¥»¥¹¤Ç¤¹¡£";
+	$objPage->tpl_mainpage = 'regist/error.tpl';
+	$objPage->tpl_css = "/css/layout/regist/error.css";
+	$objPage->tpl_title = '¥¨¥é¡¼';
+
+}
+
+//----¡¡¥Ú¡¼¥¸É½¼¨
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+
+//---- ÅÐÏ¿
+function lfRegistData($array) {
+	global $objConn;
+	global $arrInfo;
+	
+	do {
+		$secret = sfGetUniqRandomId("r");
+	} while( ($result = $objConn->getOne("SELECT COUNT(*) FROM dtb_customer WHERE secret_key = ?", array($secret)) ) != 0);
+
+	$sql = "SELECT email FROM dtb_customer WHERE secret_key = ? AND status = 1";
+	$email = $objConn->getOne($sql, array($array["id"]));
+
+	$objConn->query("BEGIN");
+	$arrRegist["secret_key"] = $secret;	//¡¡ËÜÅÐÏ¿IDÈ¯¹Ô
+	$arrRegist["status"] = 2;
+	$arrRegist["update_date"] = "NOW()";
+	
+	$objQuery = new SC_Query();
+	$where = "secret_key = ? AND status = 1";
+	
+	$arrRet = $objQuery->select("point", "dtb_customer", $where, array($array["id"]));
+	// ²ñ°÷ÅÐÏ¿»þ¤Î²Ã»»¥Ý¥¤¥ó¥È(¹ØÆþ»þ²ñ°÷ÅÐÏ¿¤Î¾ì¹ç¤Ï¡¢¥Ý¥¤¥ó¥È²Ã»»¡Ë
+	$arrRegist['point'] = $arrRet[0]['point'] + addslashes($arrInfo['welcome_point']);
+	
+	$objQuery->update("dtb_customer", $arrRegist, $where, array($array["id"]));
+
+	/* ¹ØÆþ»þ¤Î¼«Æ°²ñ°÷ÅÐÏ¿¤Ï¹Ô¤ï¤Ê¤¤¤¿¤áDEL
+	// ¹ØÆþ»þÅÐÏ¿¤Î¾ì¹ç¡¢¤½¤Î²ó¤Î¹ØÆþ¤ò²ñ°÷¹ØÆþ¤È¤ß¤Ê¤¹¡£
+	// ²ñ°÷¾ðÊó¤ÎÆÉ¤ß¹þ¤ß
+	$where1 = "secret_key = ? AND status = 2";
+	$customer = $objQuery->select("*", "dtb_customer", $where1, array($secret));
+	// ½é²ó¹ØÆþ¾ðÊó¤ÎÆÉ¤ß¹þ¤ß
+	$order_temp_id = $objQuery->get("dtb_order_temp", "order_temp_id");
+	// ¹ØÆþ¾ðÊó¤Î¹¹¿·
+	if ($order_temp_id != null) {
+		$arrCustomer['customer_id'] = $customer[0]['customer_id'];
+		$where3 = "order_temp_id = ?";
+		$objQuery->update("dtb_order_temp", $arrCustomer, $where3, array($order_temp_id));
+		$objQuery->update("dtb_order", $arrCustomer, $where3, array($order_temp_id));
+	}
+	*/
+
+	$sql = "SELECT mail_flag FROM dtb_customer_mail WHERE email = ?";
+	$result = $objConn->getOne($sql, array($email));
+	
+	switch($result) {
+	// ²¾HTML
+	case '4':
+		$arrRegistMail["mail_flag"] = 1;
+		break;
+	// ²¾TEXT
+	case '5':
+		$arrRegistMail["mail_flag"] = 2;
+		break;
+	// ²¾¤Ê¤·
+	case '6':
+		$arrRegistMail["mail_flag"] = 3;
+		break;
+	default:
+		$arrRegistMail["mail_flag"] = $result;
+		break;
+	}
+
+	$objConn->autoExecute("dtb_customer_mail", $arrRegistMail, "email = '" .addslashes($email). "'");
+	$objConn->query("COMMIT");
+		
+	return $secret;		// ËÜÅÐÏ¿ID¤òÊÖ¤¹
+}
+
+//---- ÆþÎÏ¥¨¥é¡¼¥Á¥§¥Ã¥¯
+function lfErrorCheck($array) {
+
+	global $objConn;
+	$objErr = new SC_CheckError($array);
+
+	$objErr->doFunc(array("²¾ÅÐÏ¿ID", 'id'), array("EXIST_CHECK"));
+	if (! EregI("^[[:alnum:]]+$",$array["id"] )) {
+		$objErr->arrErr["id"] = "Ìµ¸ú¤ÊURL¤Ç¤¹¡£¥á¡¼¥ë¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ëËÜ²ñ°÷ÅÐÏ¿ÍÑURL¤òºÆÅÙ¤´³ÎÇ§¤¯¤À¤µ¤¤¡£";
+	}
+	if (! $objErr->arrErr["id"]) {
+
+		$sql = "SELECT customer_id FROM dtb_customer WHERE secret_key = ? AND status = 1 AND del_flg = 0";
+		$result = $objConn->getOne($sql, array($array["id"]));
+
+		if (! is_numeric($result)) {
+			$objErr->arrErr["id"] .= "¢¨ ´û¤Ë²ñ°÷ÅÐÏ¿¤¬´°Î»¤·¤Æ¤¤¤ë¤«¡¢Ìµ¸ú¤ÊURL¤Ç¤¹¡£<br>";
+			return $objErr->arrErr;
+
+		}
+	}
+
+	return $objErr->arrErr;
+}
+
+//---- Àµ²ñ°÷ÅÐÏ¿´°Î»¥á¡¼¥ëÁ÷¿®
+function lfSendRegistMail($registSecretKey) {
+	global $objConn;
+	global $CONF;
+
+	//-- À«Ì¾¤ò¼èÆÀ
+	$sql = "SELECT email, name01, name02 FROM dtb_customer WHERE secret_key = ?";
+	$result = $objConn->getAll($sql, array($registSecretKey));
+	$data = $result[0];
+	
+	//--¡¡¥á¡¼¥ëÁ÷¿®
+	$objMailText = new SC_SiteView();
+	$objMailText->assign("CONF", $CONF);
+	$objMailText->assign("name01", $data["name01"]);
+	$objMailText->assign("name02", $data["name02"]);
+	$toCustomerMail = $objMailText->fetch("mail_templates/customer_regist_mail.tpl");
+	$subject = sfMakeSubject('ËÜ²ñ°÷ÅÐÏ¿¤¬´°Î»¤·¤Þ¤·¤¿¡£');
+	$objMail = new GC_SendMail();
+
+	$objMail->setItem(
+						  ''								//¡¡°¸Àè
+						, $subject//"¡Ú" .$CONF["shop_name"]. "¡Û".ENTRY_CUSTOMER_REGIST_SUBJECT 		//¡¡¥µ¥Ö¥¸¥§¥¯¥È
+						, $toCustomerMail					//¡¡ËÜÊ¸
+						, $CONF["email03"]					//¡¡ÇÛÁ÷¸µ¥¢¥É¥ì¥¹
+						, $CONF["shop_name"]				//¡¡ÇÛÁ÷¸µ¡¡Ì¾Á°
+						, $CONF["email03"]					//¡¡reply_to
+						, $CONF["email04"]					//¡¡return_path
+						, $CONF["email04"]					//  Errors_to
+					);
+	// °¸Àè¤ÎÀßÄê
+	$name = $data["name01"] . $data["name02"] ." ÍÍ";
+	$objMail->setTo($data["email"], $name);
+	$objMail->sendMail();
+}
+
+?>
Index: branches/dev/html/mobile/regist/complete.php
===================================================================
--- branches/dev/html/mobile/regist/complete.php	(revision 11460)
+++ branches/dev/html/mobile/regist/complete.php	(revision 11460)
@@ -0,0 +1,31 @@
+<?php
+/*
+ * Copyright(c) 2000-2006 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ */
+
+require_once("../require.php");
+
+class LC_Page{
+	function LC_Page(){
+		$this->tpl_mainpage = 'regist/complete.tpl';
+		$this->tpl_css = '/css/layout/regist/complete.css';
+		$this->tpl_title = '²ñ°÷ÅÐÏ¿(´°Î»¥Ú¡¼¥¸)';
+	}
+}
+
+$objPage = new LC_Page();
+$objView = new SC_SiteView();
+
+// ¥«¡¼¥È¤¬¶õ¤«¤É¤¦¤«¤ò³ÎÇ§¤¹¤ë¡£
+$objCartSess = new SC_CartSession("", false);
+$objPage->tpl_cart_empty = count($objCartSess->getCartList()) < 1;
+
+// ¥ì¥¤¥¢¥¦¥È¥Ç¥¶¥¤¥ó¤ò¼èÆÀ
+$objPage = sfGetPageLayout($objPage, false, DEF_LAYOUT);
+
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+
+?>
Index: branches/dev/html/mobile/forgot/index.php
===================================================================
--- branches/dev/html/mobile/forgot/index.php	(revision 11460)
+++ branches/dev/html/mobile/forgot/index.php	(revision 11460)
@@ -0,0 +1,160 @@
+<?php
+/**
+ * ¥â¥Ð¥¤¥ë¥µ¥¤¥È/¥Ñ¥¹¥ï¡¼¥É¤òËº¤ì¤¿Êý
+ */
+
+require_once('../require.php');
+
+class LC_Page {
+	var $errmsg;
+	var $arrReminder;
+	var $temp_password;
+
+	function LC_Page() {
+		$this->tpl_mainpage = 'forgot/index.tpl';
+		$this->tpl_title = '¥Ñ¥¹¥ï¡¼¥É¤òËº¤ì¤¿Êý';
+		$this->tpl_mainno = '';
+	}
+}
+
+$conn = new SC_DBConn();
+$objPage = new LC_Page();
+$objPage = sfGetPageLayout($objPage, false, DEF_LAYOUT);
+$objView = new SC_SiteView();
+$objSess = new SC_Session();
+$CONF = sf_getBasisData();					// Å¹ÊÞ´ðËÜ¾ðÊó
+// ¥¯¥Ã¥­¡¼´ÉÍý¥¯¥é¥¹
+$objCookie = new SC_Cookie(COOKIE_EXPIRE);
+
+if (isset($_SESSION['mobile']['kara_mail_from'])) {
+	if (!isset($_POST['mode'])) {
+		$_POST['mode'] = 'mail_check';
+	}
+	$_POST['email'] = $_SESSION['mobile']['kara_mail_from'];
+}
+
+if ( $_POST['mode'] == 'mail_check' ){
+	//¥á¥¢¥ÉÆþÎÏ»þ
+	$_POST['email'] = strtolower($_POST['email']);
+	$sql = "SELECT * FROM dtb_customer WHERE (email ILIKE ? OR email_mobile ILIKE ?) AND status = 2 AND del_flg = 0";
+	$result = $conn->getAll($sql, array($_POST['email'], $_POST['email']) );
+	
+	if ( $result[0]['reminder'] ){		// ËÜ²ñ°÷ÅÐÏ¿ºÑ¤ß¤Î¾ì¹ç
+		// ÆþÎÏemail¤¬Â¸ºß¤¹¤ë		
+		$_SESSION['forgot']['email'] = $_POST['email'];
+		$_SESSION['forgot']['reminder'] = $result[0]['reminder'];
+		// ¥Ò¥ß¥Ä¤ÎÅú¤¨ÆþÎÏ²èÌÌ
+		$objPage->Reminder = $arrReminder[$_SESSION['forgot']['reminder']];
+		$objPage->tpl_mainpage = 'forgot/secret.tpl';
+	} else {
+		$sql = "SELECT customer_id FROM dtb_customer WHERE email ILIKE ? AND status = 1 AND del_flg = 0";	//²¾ÅÐÏ¿Ãæ¤Î³ÎÇ§
+		$result = $conn->getAll($sql, array($_POST['email']) );
+		if ($result) {
+			$objPage->errmsg = "¤´ÆþÎÏ¤Îemail¥¢¥É¥ì¥¹¤Ï¸½ºß²¾ÅÐÏ¿Ãæ¤Ç¤¹¡£<br>ÅÐÏ¿¤ÎºÝ¤Ë¤ªÁ÷¤ê¤·¤¿¥á¡¼¥ë¤ÎURL¤Ë¥¢¥¯¥»¥¹¤·¡¢<br>ËÜ²ñ°÷ÅÐÏ¿¤ò¤ª´ê¤¤¤·¤Þ¤¹¡£";
+		} else {		//¡¡ÅÐÏ¿¤·¤Æ¤¤¤Ê¤¤¾ì¹ç
+			$objPage->errmsg = "¤´ÆþÎÏ¤Îemail¥¢¥É¥ì¥¹¤ÏÅÐÏ¿¤µ¤ì¤Æ¤¤¤Þ¤»¤ó";
+		}
+	}
+	
+} elseif( $_POST['mode'] == 'secret_check' ){
+	//¥Ò¥ß¥Ä¤ÎÅú¤¨ÆþÎÏ»þ
+	
+	if ( $_SESSION['forgot']['email'] ) {
+		// ¥Ò¥ß¥Ä¤ÎÅú¤¨¤Î²óÅú¤¬Àµ¤·¤¤¤«¥Á¥§¥Ã¥¯
+		
+		$sql = "SELECT * FROM dtb_customer WHERE (email ILIKE ? OR email_mobile ILIKE ?) AND del_flg = 0";
+		$result = $conn->getAll($sql, array($_SESSION['forgot']['email'], $_SESSION['forgot']['email']) );
+		$data = $result[0];
+		
+		if ( $data['reminder_answer'] === $_POST['input_reminder'] ){
+			// ¥Ò¥ß¥Ä¤ÎÅú¤¨¤¬Àµ¤·¤¤
+						
+			// ¿·¤·¤¤¥Ñ¥¹¥ï¡¼¥É¤òÀßÄê¤¹¤ë
+			$objPage->temp_password = gfMakePassword(8);
+						
+			if(FORGOT_MAIL == 1) {
+				// ¥á¡¼¥ë¤ÇÊÑ¹¹ÄÌÃÎ¤ò¤¹¤ë
+				lfSendMail($CONF, $_SESSION['forgot']['email'], $data['name01'], $objPage->temp_password);
+			}
+			
+			// DB¤ò½ñ¤­´¹¤¨¤ë
+			$sql = "UPDATE dtb_customer SET password = ?, update_date = now() WHERE customer_id = ?";
+			$conn->query( $sql, array( sha1($objPage->temp_password . ":" . AUTH_MAGIC) ,$data['customer_id']) );
+			
+			// ´°Î»²èÌÌ¤ÎÉ½¼¨
+			$objPage->tpl_mainpage = 'forgot/complete.tpl';
+			
+			// ¥»¥Ã¥·¥ç¥óÊÑ¿ô¤Î²òÊü
+			$_SESSION['forgot'] = array();
+			unset($_SESSION['forgot']);
+			
+		} else {
+			// ¥Ò¥ß¥Ä¤ÎÅú¤¨¤¬Àµ¤·¤¯¤Ê¤¤
+			
+			$objPage->Reminder = $arrReminder[$_SESSION['forgot']['reminder']];
+			$objPage->errmsg = "¥Ñ¥¹¥ï¡¼¥É¤òËº¤ì¤¿¤È¤­¤Î¼ÁÌä¤ËÂÐ¤¹¤ë²óÅú¤¬Àµ¤·¤¯¤¢¤ê¤Þ¤»¤ó";
+			$objPage->tpl_mainpage = 'forgot/secret.tpl';
+
+		}
+	
+		
+	} else {
+		// ¥¢¥¯¥»¥¹¸µ¤¬ÉÔÀµ¤Þ¤¿¤Ï¡¢¥»¥Ã¥·¥ç¥óÊÝ»ý´ü´Ö¤¬ÀÚ¤ì¤Æ¤¤¤ë
+		$objPage->errmsg = "email¥¢¥É¥ì¥¹¤òºÆÅÙÅÐÏ¿¤·¤Æ¤¯¤À¤µ¤¤¡£<br />Á°²ó¤ÎÆþÎÏ¤«¤é»þ´Ö¤¬·Ð¤Ã¤Æ¤¤¤Þ¤¹¤È¡¢ËÜ¥á¥Ã¥»¡¼¥¸¤¬É½¼¨¤µ¤ì¤ë²ÄÇ½À­¤¬¤¢¤ê¤Þ¤¹¡£";
+	}
+}
+
+// ¥Ç¥Õ¥©¥ë¥ÈÆþÎÏ
+if($_POST['email'] != "") {
+	// POSTÃÍ¤òÆþÎÏ
+	$objPage->tpl_login_email = $_POST['email'];
+} else {
+	// ¥¯¥Ã¥­¡¼ÃÍ¤òÆþÎÏ
+	$objPage->tpl_login_email = $objCookie->getCookie('login_email');
+}
+
+// ¶õ¥á¡¼¥ëÍÑ¤Î¥È¡¼¥¯¥ó¤òºîÀ®¡£
+if (MOBILE_USE_KARA_MAIL) {
+	$token = gfPrepareKaraMail('forgot/index.php');
+	if ($token !== false) {
+		$objPage->tpl_kara_mail_to = MOBILE_KARA_MAIL_ADDRESS_USER . MOBILE_KARA_MAIL_ADDRESS_DELIMITER . 'forgot_' . $token . '@' . MOBILE_KARA_MAIL_ADDRESS_DOMAIN;
+	}
+}
+
+//----¡¡¥Ú¡¼¥¸É½¼¨
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+
+//-----------------------------------------------------------------------------------------------------------------------------------
+
+function lfSendMail($CONF, $email, $customer_name, $temp_password){
+	//¡¡¥Ñ¥¹¥ï¡¼¥ÉÊÑ¹¹¤ªÃÎ¤é¤»¥á¡¼¥ëÁ÷¿®
+	
+	$objPage = new LC_Page();
+	$objPage->customer_name = $customer_name;
+	$objPage->temp_password = $temp_password;
+	$objMailText = new SC_SiteView();
+	$objMailText->assignobj($objPage);
+	
+	$toCustomerMail = $objMailText->fetch("mail_templates/forgot_mail.tpl");
+	$objMail = new GC_SendMail();
+	
+	$objMail->setItem(
+						  ''								//¡¡°¸Àè
+						, "¥Ñ¥¹¥ï¡¼¥É¤¬ÊÑ¹¹¤µ¤ì¤Þ¤·¤¿" ."¡Ú" .$CONF["shop_name"]. "¡Û"		//¡¡¥µ¥Ö¥¸¥§¥¯¥È
+						, $toCustomerMail					//¡¡ËÜÊ¸
+						, $CONF["email03"]					//¡¡ÇÛÁ÷¸µ¥¢¥É¥ì¥¹
+						, $CONF["shop_name"]				//¡¡ÇÛÁ÷¸µ¡¡Ì¾Á°
+						, $CONF["email03"]					//¡¡reply_to
+						, $CONF["email04"]					//¡¡return_path
+						, $CONF["email04"]					//  Errors_to
+
+														);
+	$objMail->setTo($email, $customer_name ." ÍÍ");
+	$objMail->sendMail();	
+	
+}
+
+
+?>
+
Index: branches/dev/html/mobile/entry/index.php
===================================================================
--- branches/dev/html/mobile/entry/index.php	(revision 11460)
+++ branches/dev/html/mobile/entry/index.php	(revision 11460)
@@ -0,0 +1,441 @@
+<?php
+/*
+ * Copyright(c) 2000-2006 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ */
+
+require_once("../require.php");
+
+class LC_Page {
+	function LC_Page() {
+		$this->tpl_mainpage = 'entry/index.tpl';		// ¥á¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È
+		$this->tpl_title .= '²ñ°÷ÅÐÏ¿(1/3)';			//¡¡¥Ú¡¼¥¸¥¿¥¤¥È¥ë
+	}
+}
+
+//---- ¥Ú¡¼¥¸½é´üÀßÄê
+$CONF = sf_getBasisData();					// Å¹ÊÞ´ðËÜ¾ðÊó
+$objConn = new SC_DbConn();
+$objPage = new LC_Page();
+$objView = new SC_SiteView();
+$objDate = new SC_Date(START_BIRTH_YEAR, date("Y",strtotime("now")));
+$objPage->arrPref = $arrPref;
+$objPage->arrJob = $arrJob;
+$objPage->arrReminder = $arrReminder;
+$objPage->arrYear = $objDate->getYear('', 1950);	//¡¡ÆüÉÕ¥×¥ë¥À¥¦¥óÀßÄê
+$objPage->arrMonth = $objDate->getMonth();
+$objPage->arrDay = $objDate->getDay();
+
+// ¶õ¥á¡¼¥ë
+if (isset($_SESSION['mobile']['kara_mail_from'])) {
+	$objPage->tpl_kara_mail_from = $_POST['email'] = $_SESSION['mobile']['kara_mail_from'];
+} elseif (MOBILE_USE_KARA_MAIL) {
+	$token = gfPrepareKaraMail('entry/index.php');
+	if ($token !== false) {
+		$objPage->tpl_mainpage = 'entry/mail.tpl';
+		$objPage->tpl_title = '²ñ°÷ÅÐÏ¿(¶õ¥á¡¼¥ë)';
+		$objPage->tpl_kara_mail_to = MOBILE_KARA_MAIL_ADDRESS_USER . MOBILE_KARA_MAIL_ADDRESS_DELIMITER . 'entry_' . $token . '@' . MOBILE_KARA_MAIL_ADDRESS_DOMAIN;
+		$objPage->tpl_from_address = $CONF['email03'];
+	}
+}
+
+//SSLURLÈ½Äê
+if (SSLURL_CHECK == 1){
+	$ssl_url= sfRmDupSlash(SSL_URL.$_SERVER['REQUEST_URI']);
+	if (!ereg("^https://", $non_ssl_url)){
+		sfDispSiteError(URL_ERROR);
+	}
+}
+
+// ¥ì¥¤¥¢¥¦¥È¥Ç¥¶¥¤¥ó¤ò¼èÆÀ
+$objPage = sfGetPageLayout($objPage, false, DEF_LAYOUT);
+
+//---- ÅÐÏ¿ÍÑ¥«¥é¥àÇÛÎó
+$arrRegistColumn = array(
+							 array(  "column" => "name01", "convert" => "aKV" ),
+							 array(  "column" => "name02", "convert" => "aKV" ),
+							 array(  "column" => "kana01", "convert" => "CKV" ),
+							 array(  "column" => "kana02", "convert" => "CKV" ),
+							 array(  "column" => "zip01", "convert" => "n" ),
+							 array(  "column" => "zip02", "convert" => "n" ),
+							 array(  "column" => "pref", "convert" => "n" ),
+							 array(  "column" => "addr01", "convert" => "aKV" ),
+							 array(  "column" => "addr02", "convert" => "aKV" ),
+							 array(  "column" => "email", "convert" => "a" ),
+							 array(  "column" => "email2", "convert" => "a" ),
+							 array(  "column" => "email_mobile", "convert" => "a" ),
+							 array(  "column" => "email_mobile2", "convert" => "a" ),
+							 array(  "column" => "tel01", "convert" => "n" ),
+							 array(  "column" => "tel02", "convert" => "n" ),
+							 array(  "column" => "tel03", "convert" => "n" ),
+							 array(  "column" => "fax01", "convert" => "n" ),
+							 array(  "column" => "fax02", "convert" => "n" ),
+							 array(  "column" => "fax03", "convert" => "n" ),
+							 array(  "column" => "sex", "convert" => "n" ),
+							 array(  "column" => "job", "convert" => "n" ),
+							 array(  "column" => "birth", "convert" => "n" ),
+							 array(  "column" => "reminder", "convert" => "n" ),
+							 array(  "column" => "reminder_answer", "convert" => "aKV"),
+							 array(  "column" => "password", "convert" => "a" ),
+							 array(  "column" => "password02", "convert" => "a" )
+						 );
+
+//---- ÅÐÏ¿½ü³°ÍÑ¥«¥é¥àÇÛÎó
+$arrRejectRegistColumn = array("year", "month", "day", "email02", "email_mobile02", "password02");
+
+if ($_SERVER["REQUEST_METHOD"] == "POST") {
+
+	//-- POST¥Ç¡¼¥¿¤Î°ú¤­·Ñ¤®
+	$objPage->arrForm = $_POST;
+	
+	if($objPage->arrForm['year'] == '----') {
+		$objPage->arrForm['year'] = '';
+	}
+	
+	$objPage->arrForm['email'] = strtolower($objPage->arrForm['email']);		// email¤Ï¤¹¤Ù¤Æ¾®Ê¸»ú¤Ç½èÍý
+	
+	//-- ÆþÎÏ¥Ç¡¼¥¿¤ÎÊÑ´¹
+	$objPage->arrForm = lfConvertParam($objPage->arrForm, $arrRegistColumn);
+
+	//--¡¡ÆþÎÏ¥¨¥é¡¼¥Á¥§¥Ã¥¯
+	if ($_POST["mode"] == "set1") {
+		$objPage->arrErr = lfErrorCheck1($objPage->arrForm);
+		$objPage->tpl_mainpage = 'entry/index.tpl';
+		$objPage->tpl_title = '²ñ°÷ÅÐÏ¿(1/3)';
+	} elseif ($_POST["mode"] == "set2") {
+		$objPage->arrErr = lfErrorCheck2($objPage->arrForm);
+		$objPage->tpl_mainpage = 'entry/set1.tpl';
+		$objPage->tpl_title = '²ñ°÷ÅÐÏ¿(2/3)';
+	} else {
+		$objPage->arrErr = lfErrorCheck3($objPage->arrForm);
+		$objPage->tpl_mainpage = 'entry/set2.tpl';
+		$objPage->tpl_title = '²ñ°÷ÅÐÏ¿(3/3)';
+	}
+
+	if ($objPage->arrErr || $_POST["mode"] == "return") {		// ÆþÎÏ¥¨¥é¡¼¤Î¥Á¥§¥Ã¥¯
+		foreach($objPage->arrForm as $key => $val) {
+			$objPage->$key = $val;
+		}
+
+		//-- ¥Ç¡¼¥¿¤ÎÀßÄê
+		if ($_POST["mode"] == "set1") {
+			$checkVal = array("email", "password", "reminder", "reminder_answer", "name01", "name02", "kana01", "kana02");
+			foreach($objPage->arrForm as $key => $val) {
+				if ($key != "mode" && $key != "subm" & !in_array($key, $checkVal)) $objPage->list_data[ $key ] = $val;
+			}
+
+		} elseif ($_POST["mode"] == "set2") {
+			$checkVal = array("sex", "year", "month", "day", "zip01", "zip02");
+			foreach($objPage->arrForm as $key => $val) {
+				if ($key != "mode" && $key != "subm" & !in_array($key, $checkVal)) $objPage->list_data[ $key ] = $val;
+			}
+		} else {
+			$checkVal = array("pref", "addr01", "addr02", "tel01", "tel02", "tel03");
+			foreach($objPage->arrForm as $key => $val) {
+				if ($key != "mode" && $key != "subm" & !in_array($key, $checkVal)) $objPage->list_data[ $key ] = $val;
+			}
+		}
+
+
+	} else {
+
+		//--¡¡¥Æ¥ó¥×¥ì¡¼¥ÈÀßÄê
+		if ($_POST["mode"] == "set1") {
+			$objPage->tpl_mainpage = 'entry/set1.tpl';
+			$objPage->tpl_title = '²ñ°÷ÅÐÏ¿(2/3)';
+		} elseif ($_POST["mode"] == "set2") {
+			$objPage->tpl_mainpage = 'entry/set2.tpl';
+			$objPage->tpl_title = '²ñ°÷ÅÐÏ¿(3/3)';
+
+			$address = lfGetAddress($_REQUEST['zip01'].$_REQUEST['zip02']);
+			$objView->assign("pref", @$address[0]['state']);
+			$objView->assign("addr01", @$address[0]['city'] . @$address[0]['town']);
+		} elseif ($_POST["mode"] == "confirm") {
+			//¥Ñ¥¹¥ï¡¼¥ÉÉ½¼¨
+			$passlen = strlen($objPage->arrForm['password']);
+			$objPage->passlen = lfPassLen($passlen);
+			
+			//¥á¡¼¥ë¼õ¤±¼è¤ê
+			if ($objPage->arrForm['mail_flag'] = "ON") {
+				$objPage->arrForm['mail_flag']  = "2";
+			}
+
+			$objPage->tpl_mainpage = 'entry/confirm.tpl';
+			$objPage->tpl_title = '²ñ°÷ÅÐÏ¿(³ÎÇ§¥Ú¡¼¥¸)';
+
+		}
+
+		//-- ¥Ç¡¼¥¿ÀßÄê
+		unset($objPage->list_data);
+		foreach($objPage->arrForm as $key => $val) {
+			if ($key != "mode" && $key != "subm") $objPage->list_data[ $key ] = $val;
+		}
+
+
+		//--¡¡²¾ÅÐÏ¿¤È´°Î»²èÌÌ
+		if ($_POST["mode"] == "complete") {
+			$objPage->uniqid = lfRegistData ($objPage->arrForm, $arrRegistColumn, $arrRejectRegistColumn);
+
+			// ¶õ¥á¡¼¥ë¤ò¼õ¿®ºÑ¤ß¤Î¾ì¹ç¤Ï¤¹¤°¤ËËÜÅÐÏ¿´°Î»¤Ë¤¹¤ë¡£
+			if (isset($_SESSION['mobile']['kara_mail_from'])) {
+				header("Location:" . gfAddSessionId(URL_DIR . "regist/index.php?mode=regist&id=" . $objPage->uniqid));
+				exit;
+			}
+
+			$objPage->tpl_mainpage = 'entry/complete.tpl';
+			$objPage->tpl_title = '²ñ°÷ÅÐÏ¿(´°Î»¥Ú¡¼¥¸)';
+
+			sfMobileSetExtSessionId('id', $objPage->uniqid, 'regist/index.php');
+
+			//¡¡²¾ÅÐÏ¿´°Î»¥á¡¼¥ëÁ÷¿®
+			$objPage->CONF = $CONF;
+			$objPage->to_name01 = $_POST['name01'];
+			$objPage->to_name02 = $_POST['name02'];
+			$objMailText = new SC_SiteView();
+			$objMailText->assignobj($objPage);
+			$subject = sfMakesubject('²ñ°÷ÅÐÏ¿¤Î¤´³ÎÇ§');
+			$toCustomerMail = $objMailText->fetch("mail_templates/customer_mail.tpl");
+			$objMail = new GC_SendMail();
+			$objMail->setItem(
+								''									//¡¡°¸Àè
+								, $subject							//¡¡¥µ¥Ö¥¸¥§¥¯¥È
+								, $toCustomerMail					//¡¡ËÜÊ¸
+								, $CONF["email03"]					//¡¡ÇÛÁ÷¸µ¥¢¥É¥ì¥¹
+								, $CONF["shop_name"]				//¡¡ÇÛÁ÷¸µ¡¡Ì¾Á°
+								, $CONF["email03"]					//¡¡reply_to
+								, $CONF["email04"]					//¡¡return_path
+								, $CONF["email04"]					//  Errors_to
+								, $CONF["email01"]					//  Bcc
+																);
+			// °¸Àè¤ÎÀßÄê
+			$name = $_POST["name01"] . $_POST["name02"] ." ÍÍ";
+			$objMail->setTo($_POST["email"], $name);
+			$objMail->sendMail();
+
+			// ´°Î»¥Ú¡¼¥¸¤Ë°ÜÆ°¤µ¤»¤ë¡£
+			header("Location:" . gfAddSessionId("./complete.php"));
+			exit;
+		}
+	}
+}
+
+if($objPage->year == '') {
+	$objPage->year = '----';
+}
+
+//----¡¡¥Ú¡¼¥¸É½¼¨
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+
+//----------------------------------------------------------------------------------------------------------------------
+
+//---- function·²
+function lfRegistData ($array, $arrRegistColumn, $arrRejectRegistColumn) {
+	global $objConn;
+
+	// ²¾ÅÐÏ¿
+	foreach ($arrRegistColumn as $data) {
+		if (strlen($array[ $data["column"] ]) > 0 && ! in_array($data["column"], $arrRejectRegistColumn)) {
+			$arrRegist[ $data["column"] ] = $array[ $data["column"] ];
+		}
+	}
+		
+	// ÃÂÀ¸Æü¤¬ÆþÎÏ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç
+	if (strlen($array["year"]) > 0 ) {
+		$arrRegist["birth"] = $array["year"] ."/". $array["month"] ."/". $array["day"] ." 00:00:00";
+	}
+	
+	// ¥Ñ¥¹¥ï¡¼¥É¤Î°Å¹æ²½
+	$arrRegist["password"] = sha1($arrRegist["password"] . ":" . AUTH_MAGIC);
+	
+	$count = 1;
+	while ($count != 0) {
+		$uniqid = sfGetUniqRandomId("t");
+		$count = $objConn->getOne("SELECT COUNT(*) FROM dtb_customer WHERE secret_key = ?", array($uniqid));
+	}
+	
+	$arrRegist["secret_key"] = $uniqid;		// ²¾ÅÐÏ¿IDÈ¯¹Ô
+	$arrRegist["create_date"] = "now()"; 	// ºîÀ®Æü
+	$arrRegist["update_date"] = "now()"; 	// ¹¹¿·Æü
+	$arrRegist["first_buy_date"] = "";	 	// ºÇ½é¤Î¹ØÆþÆü
+	
+	// ·ÈÂÓ¥á¡¼¥ë¥¢¥É¥ì¥¹
+	$arrRegist['email_mobile'] = $arrRegist['email'];
+
+	//-- ²¾ÅÐÏ¿¼Â¹Ô
+	$objConn->query("BEGIN");
+
+	$objQuery = new SC_Query();
+	$objQuery->insert("dtb_customer", $arrRegist);
+
+	//--¡¡Èó²ñ°÷¤Ç¥á¥ë¥Þ¥¬ÅÐÏ¿¤·¤Æ¤¤¤ë¤«¤ÎÈ½Äê
+	$sql = "SELECT count(*) FROM dtb_customer_mail WHERE email = ?";
+	$mailResult = $objConn->getOne($sql, array($arrRegist["email"]));
+
+	//--¡¡¥á¥ë¥Þ¥¬²¾ÅÐÏ¿¼Â¹Ô
+	$arrRegistMail["email"] = $arrRegist["email"];	
+	if ($array["mail_flag"] == 1) {
+		$arrRegistMail["mail_flag"] = 4; 
+	} elseif ($array["mail_flag"] == 2) {
+		$arrRegistMail["mail_flag"] = 5; 
+	} else {
+		$arrRegistMail["mail_flag"] = 6; 
+	}
+	$arrRegistMail["update_date"] = "now()";
+	
+	// Èó²ñ°÷¤Ç¥á¥ë¥Þ¥¬ÅÐÏ¿¤·¤Æ¤¤¤ë¾ì¹ç
+	if ($mailResult == 1) {		
+		$objQuery->update("dtb_customer_mail", $arrRegistMail, "email = '" .addslashes($arrRegistMail["email"]). "'");			
+	} else {				//¡¡¿·µ¬ÅÐÏ¿¤Î¾ì¹ç
+		$arrRegistMail["create_date"] = "now()";
+		$objQuery->insert("dtb_customer_mail", $arrRegistMail);		
+	}
+	$objConn->query("COMMIT");
+
+	return $uniqid;
+}
+
+//----¡¡¼èÆÀÊ¸»úÎó¤ÎÊÑ´¹
+function lfConvertParam($array, $arrRegistColumn) {
+	/*
+	 *	Ê¸»úÎó¤ÎÊÑ´¹
+	 *	K :  ¡ÖÈ¾³Ñ(ÊÝ¶¸)ÊÒ²¾Ì¾¡×¤ò¡ÖÁ´³ÑÊÒ²¾Ì¾¡×¤ËÊÑ´¹
+	 *	C :  ¡ÖÁ´³Ñ¤Ò¤é²¾Ì¾¡×¤ò¡ÖÁ´³Ñ¤«¤¿²¾Ì¾¡×¤ËÊÑ´¹
+	 *	V :  ÂùÅÀÉÕ¤­¤ÎÊ¸»ú¤ò°ìÊ¸»ú¤ËÊÑ´¹¡£"K","H"¤È¶¦¤Ë»ÈÍÑ¤·¤Þ¤¹	
+	 *	n :  ¡ÖÁ´³Ñ¡×¿ô»ú¤ò¡ÖÈ¾³Ñ(ÊÝ¶¸)¡×¤ËÊÑ´¹
+	 *  a :  Á´³Ñ±Ñ¿ô»ú¤òÈ¾³Ñ±Ñ¿ô»ú¤ËÊÑ´¹¤¹¤ë
+	 */
+	// ¥«¥é¥àÌ¾¤È¥³¥ó¥Ð¡¼¥È¾ðÊó
+	foreach ($arrRegistColumn as $data) {
+		$arrConvList[ $data["column"] ] = $data["convert"];
+	}
+	// Ê¸»úÊÑ´¹
+	foreach ($arrConvList as $key => $val) {
+		// POST¤µ¤ì¤Æ¤­¤¿ÃÍ¤Î¤ßÊÑ´¹¤¹¤ë¡£
+		if(strlen(($array[$key])) > 0) {
+			$array[$key] = mb_convert_kana($array[$key] ,$val);
+		}
+	}
+	return $array;
+}
+
+//---- ÆþÎÏ¥¨¥é¡¼¥Á¥§¥Ã¥¯
+function lfErrorCheck1($array) {
+
+	global $objConn;
+	$objErr = new SC_CheckError($array);
+	
+	$objErr->doFunc(array("¤ªÌ¾Á°¡ÊÀ«¡Ë", 'name01', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
+	$objErr->doFunc(array("¤ªÌ¾Á°¡ÊÌ¾¡Ë", 'name02', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" , "MAX_LENGTH_CHECK"));
+	$objErr->doFunc(array("¥Õ¥ê¥¬¥Ê¡Ê¥»¥¤¡Ë", 'kana01', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK"));
+	$objErr->doFunc(array("¥Õ¥ê¥¬¥Ê¡Ê¥á¥¤¡Ë", 'kana02', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK"));
+	$objErr->doFunc(array('¥á¡¼¥ë¥¢¥É¥ì¥¹', "email", MTEXT_LEN) ,array("NO_SPTAB", "EXIST_CHECK", "EMAIL_CHECK", "SPTAB_CHECK" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK", "MOBILE_EMAIL_CHECK"));
+
+	//¸½²ñ°÷¤ÎÈ½Äê ¢ª¡¡¸½²ñ°÷¤â¤·¤¯¤Ï²¾ÅÐÏ¿Ãæ¤Ï¡¢¥á¥¢¥É°ì°Õ¤¬Á°Äó¤Ë¤Ê¤Ã¤Æ¤ë¤Î¤ÇÆ±¤¸¥á¥¢¥É¤ÇÅÐÏ¿ÉÔ²Ä
+	if (strlen($array["email"]) > 0) {
+		$objQuery = new SC_Query();
+		$arrRet = $objQuery->select("email, update_date, del_flg", "dtb_customer","email ILIKE ? OR email_mobile ILIKE ? ORDER BY del_flg", array($array["email"], $array["email"]));
+				
+		if(count($arrRet) > 0) {
+			if($arrRet[0]['del_flg'] != '1') {
+				// ²ñ°÷¤Ç¤¢¤ë¾ì¹ç
+				$objErr->arrErr["email"] .= "¢¨ ¤¹¤Ç¤Ë²ñ°÷ÅÐÏ¿¤Ç»ÈÍÑ¤µ¤ì¤Æ¤¤¤ë¥á¡¼¥ë¥¢¥É¥ì¥¹¤Ç¤¹¡£<br />";
+			} else {
+				// Âà²ñ¤·¤¿²ñ°÷¤Ç¤¢¤ë¾ì¹ç
+				$leave_time = sfDBDatetoTime($arrRet[0]['update_date']);
+				$now_time = time();
+				$pass_time = $now_time - $leave_time;
+				// Âà²ñ¤«¤é²¿»þ´Ö-·Ð²á¤·¤Æ¤¤¤ë¤«È½Äê¤¹¤ë¡£
+				$limit_time = ENTRY_LIMIT_HOUR * 3600;						
+				if($pass_time < $limit_time) {
+					$objErr->arrErr["email"] .= "¢¨ Âà²ñ¤«¤é°ìÄê´ü´Ö¤Î´Ö¤Ï¡¢Æ±¤¸¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò»ÈÍÑ¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£<br />";
+				}
+			}
+		}
+	}
+
+	$objErr->doFunc(array("¥Ñ¥¹¥ï¡¼¥É", 'password', PASSWORD_LEN1, PASSWORD_LEN2), array("EXIST_CHECK", "SPTAB_CHECK" ,"ALNUM_CHECK", "NUM_RANGE_CHECK"));
+	$objErr->doFunc(array("¥Ñ¥¹¥ï¡¼¥É¤òËº¤ì¤¿¤È¤­¤Î¥Ò¥ó¥È ¼ÁÌä", "reminder") ,array("SELECT_CHECK", "NUM_CHECK")); 
+	$objErr->doFunc(array("¥Ñ¥¹¥ï¡¼¥É¤òËº¤ì¤¿¤È¤­¤Î¥Ò¥ó¥È Åú¤¨", "reminder_answer", STEXT_LEN) ,array("EXIST_CHECK","SPTAB_CHECK" , "MAX_LENGTH_CHECK"));
+	
+	return $objErr->arrErr;
+}
+
+//---- ÆþÎÏ¥¨¥é¡¼¥Á¥§¥Ã¥¯
+function lfErrorCheck2($array) {
+
+	global $objConn;
+	$objErr = new SC_CheckError($array);
+	
+	$objErr->doFunc(array("Í¹ÊØÈÖ¹æ1", "zip01", ZIP01_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK"));
+	$objErr->doFunc(array("Í¹ÊØÈÖ¹æ2", "zip02", ZIP02_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 
+	$objErr->doFunc(array("Í¹ÊØÈÖ¹æ", "zip01", "zip02"), array("ALL_EXIST_CHECK"));
+
+	$objErr->doFunc(array("¤´À­ÊÌ", "sex") ,array("SELECT_CHECK", "NUM_CHECK")); 
+	$objErr->doFunc(array("À¸Ç¯·îÆü", "year", "month", "day"), array("SELECT_CHECK", "CHECK_DATE"));
+	
+	return $objErr->arrErr;
+}
+
+//---- ÆþÎÏ¥¨¥é¡¼¥Á¥§¥Ã¥¯
+function lfErrorCheck3($array) {
+
+	global $objConn;
+	$objErr = new SC_CheckError($array);
+	
+	$objErr->doFunc(array("ÅÔÆ»ÉÜ¸©", 'pref'), array("SELECT_CHECK","NUM_CHECK"));
+	$objErr->doFunc(array("¤´½»½ê1", "addr01", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
+	$objErr->doFunc(array("¤´½»½ê2", "addr02", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
+	$objErr->doFunc(array("¤ªÅÅÏÃÈÖ¹æ1", 'tel01'), array("EXIST_CHECK","SPTAB_CHECK" ));
+	$objErr->doFunc(array("¤ªÅÅÏÃÈÖ¹æ2", 'tel02'), array("EXIST_CHECK","SPTAB_CHECK" ));
+	$objErr->doFunc(array("¤ªÅÅÏÃÈÖ¹æ3", 'tel03'), array("EXIST_CHECK","SPTAB_CHECK" ));
+	$objErr->doFunc(array("¤ªÅÅÏÃÈÖ¹æ", "tel01", "tel02", "tel03",TEL_ITEM_LEN) ,array("TEL_CHECK"));
+	
+	return $objErr->arrErr;
+}
+
+//³ÎÇ§¥Ú¡¼¥¸ÍÑ¥Ñ¥¹¥ï¡¼¥ÉÉ½¼¨ÍÑ
+
+function lfPassLen($passlen){
+	$ret = "";
+	for ($i=0;$i<$passlen;true){
+	$ret.="*";
+	$i++;
+	}
+	return $ret;
+}
+
+
+// Í¹ÊØÈÖ¹æ¤«¤é½»½ê¤Î¼èÆÀ
+function lfGetAddress($zipcode) {
+	global $arrPref;
+
+	$conn = new SC_DBconn(ZIP_DSN);
+
+	// Í¹ÊØÈÖ¹æ¸¡º÷Ê¸ºîÀ®
+	$zipcode = mb_convert_kana($zipcode ,"n");
+	$sqlse = "SELECT state, city, town FROM mtb_zip WHERE zipcode = ?";
+
+	$data_list = $conn->getAll($sqlse, array($zipcode));
+
+	// ¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÈÃÍ¤òÈ¿Å¾¤µ¤»¤ë¡£
+	$arrREV_PREF = array_flip($arrPref);
+
+	/*
+		ÁíÌ³¾Ê¤«¤é¥À¥¦¥ó¥í¡¼¥É¤·¤¿¥Ç¡¼¥¿¤ò¤½¤Î¤Þ¤Þ¥¤¥ó¥Ý¡¼¥È¤¹¤ë¤È
+		°Ê²¼¤Î¤è¤¦¤ÊÊ¸»úÎó¤¬Æþ¤Ã¤Æ¤¤¤ë¤Î¤Ç	ÂÐºö¤¹¤ë¡£
+		¡¦¡Ê£±¡¦£±£¹ÃúÌÜ¡Ë
+		¡¦°Ê²¼¤Ë·ÇºÜ¤¬¤Ê¤¤¾ì¹ç
+	*/
+	$town =  $data_list[0]['town'];
+	$town = ereg_replace("¡Ê.*¡Ë$","",$town);
+	$town = ereg_replace("°Ê²¼¤Ë·ÇºÜ¤¬¤Ê¤¤¾ì¹ç","",$town);
+	$data_list[0]['town'] = $town;
+	$data_list[0]['state'] = $arrREV_PREF[$data_list[0]['state']];
+
+	return $data_list;
+}
+
+//-----------------------------------------------------------------------------------------------------------------------------------
+?>
Index: branches/dev/html/mobile/entry/complete.php
===================================================================
--- branches/dev/html/mobile/entry/complete.php	(revision 11460)
+++ branches/dev/html/mobile/entry/complete.php	(revision 11460)
@@ -0,0 +1,29 @@
+<?php
+/*
+ * Copyright(c) 2000-2006 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ */
+require_once("../require.php");
+
+class LC_Page {
+	function LC_Page() {
+		$this->tpl_css = '/css/layout/entry/complete.css';	// ¥á¥¤¥óCSS¥Ñ¥¹
+		$this->tpl_mainpage = 'entry/complete.tpl';			// ¥á¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È
+		$this->tpl_title .= '²ñ°÷ÅÐÏ¿(´°Î»¥Ú¡¼¥¸)';			//¡¡¥Ú¡¼¥¸¥¿¥¤¥È¥ë
+	}
+}
+
+$objPage = new LC_Page();
+$objView = new SC_SiteView();
+
+
+// ¥ì¥¤¥¢¥¦¥È¥Ç¥¶¥¤¥ó¤ò¼èÆÀ
+$objPage = sfGetPageLayout($objPage, false, DEF_LAYOUT);
+
+//----¡¡¥Ú¡¼¥¸É½¼¨
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+
+//----------------------------------------------------------------------------------------------------------------------
+?>
Index: branches/dev/html/mobile/entry/new.php
===================================================================
--- branches/dev/html/mobile/entry/new.php	(revision 11460)
+++ branches/dev/html/mobile/entry/new.php	(revision 11460)
@@ -0,0 +1,23 @@
+<?php
+/**
+ * ¿·µ¬ÅÐÏ¿
+ */
+
+require_once('../require.php');
+
+class LC_Page {
+	function LC_Page() {
+		/** É¬¤ºÊÑ¹¹¤¹¤ë **/
+		$this->tpl_mainpage = 'entry/new.tpl';	// ¥á¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È
+	}
+}
+
+$objPage = new LC_Page();
+
+// ¥ì¥¤¥¢¥¦¥È¥Ç¥¶¥¤¥ó¤ò¼èÆÀ
+$objView = new SC_SiteView();
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+
+//-----------------------------------------------------------------------------------------------------------------------------------
+?>
Index: branches/dev/html/mobile/entry/kiyaku.php
===================================================================
--- branches/dev/html/mobile/entry/kiyaku.php	(revision 11460)
+++ branches/dev/html/mobile/entry/kiyaku.php	(revision 11460)
@@ -0,0 +1,50 @@
+<?php
+/*
+ * Copyright(c) 2000-2006 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ */
+require_once("../require.php");
+
+class LC_Page {
+	function LC_Page() {
+		$this->tpl_mainpage = 'entry/kiyaku.tpl';
+		$this->tpl_title="¤´ÍøÍÑµ¬Ìó";
+	}
+}
+
+$objPage = new LC_Page();
+$objView = new SC_SiteView();
+$objCustomer = new SC_Customer();
+
+$offset = isset($_REQUEST['offset']) ? $_REQUEST['offset'] : 0;
+$next = $offset;
+
+// ¥ì¥¤¥¢¥¦¥È¥Ç¥¶¥¤¥ó¤ò¼èÆÀ
+$objPage = sfGetPageLayout($objPage, false, DEF_LAYOUT);
+
+// µ¬ÌóÆâÍÆ¤Î¼èÆÀ
+$objQuery = new SC_Query();
+$count = $objQuery->count("dtb_kiyaku", "del_flg <> 1");
+$objQuery->setorder("rank DESC");
+$objQuery->setlimitoffset(1, $offset);
+$arrRet = $objQuery->select("kiyaku_title, kiyaku_text", "dtb_kiyaku", "del_flg <> 1");
+
+if($count > $offset + 1){
+	$next++;
+} else {
+	$next = -1;
+}
+
+$max = count($arrRet);
+$objPage->tpl_kiyaku_text = "";
+for ($i = 0; $i < $max; $i++) {
+	$objPage->tpl_kiyaku_text.=$arrRet[$i]['kiyaku_title'] . "\n\n"; 
+	$objPage->tpl_kiyaku_text.=$arrRet[$i]['kiyaku_text'] . "\n\n"; 
+}
+
+$objView->assign("offset", $next);
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+//--------------------------------------------------------------------------------------------------------------------------
+?>
Index: branches/dev/html/mobile/entry/email_mobile.php
===================================================================
--- branches/dev/html/mobile/entry/email_mobile.php	(revision 11460)
+++ branches/dev/html/mobile/entry/email_mobile.php	(revision 11460)
@@ -0,0 +1,110 @@
+<?php
+/**
+ * ¥â¥Ð¥¤¥ë¥µ¥¤¥È/·ÈÂÓ¥á¡¼¥ëÅÐÏ¿
+ */
+
+require_once('../require.php');
+
+class LC_Page {
+	function LC_Page() {
+		$this->tpl_mainpage = 'entry/email_mobile.tpl';
+		$this->tpl_title = '·ÈÂÓ¥á¡¼¥ëÅÐÏ¿';
+		/*
+		 session_start»þ¤Îno-cache¥Ø¥Ã¥À¡¼¤òÍÞÀ©¤¹¤ë¤³¤È¤Ç
+		 ¡ÖÌá¤ë¡×¥Ü¥¿¥ó»ÈÍÑ»þ¤ÎÍ­¸ú´ü¸ÂÀÚ¤ìÉ½¼¨¤òÍÞÀ©¤¹¤ë¡£
+		 private-no-expire:¥¯¥é¥¤¥¢¥ó¥È¤Î¥­¥ã¥Ã¥·¥å¤òµö²Ä¤¹¤ë¡£
+		*/
+		session_cache_limiter('private-no-expire');		
+	}
+}
+
+$objPage = new LC_Page;
+$objView = new SC_SiteView;
+$objCustomer = new SC_Customer;
+$objFormParam = new SC_FormParam;
+
+if (isset($_SESSION['mobile']['kara_mail_from'])) {
+	$_SERVER['REQUEST_METHOD'] = 'POST';
+	$_POST['email_mobile'] = $_SESSION['mobile']['kara_mail_from'];
+}
+
+lfInitParam($objFormParam);
+
+if ($_SERVER['REQUEST_METHOD'] == 'POST') {
+	$objFormParam->setParam($_POST);
+	$objFormParam->convParam();
+	$objPage->arrErr = lfCheckError($objFormParam, $objCustomer);
+
+	if (empty($arrRet)) {
+		lfRegister($objFormParam, $objCustomer);
+		$objPage->tpl_mainpage = 'entry/email_mobile_complete.tpl';
+		$objPage->tpl_title = '·ÈÂÓ¥á¡¼¥ëÅÐÏ¿´°Î»';
+	}
+}
+
+// ¶õ¥á¡¼¥ëÍÑ¤Î¥È¡¼¥¯¥ó¤òºîÀ®¤¹¤ë¡£
+if (MOBILE_USE_KARA_MAIL) {
+	$token = gfPrepareKaraMail('entry/email_mobile.php');
+	if ($token !== false) {
+		$objPage->tpl_kara_mail_to = MOBILE_KARA_MAIL_ADDRESS_USER . MOBILE_KARA_MAIL_ADDRESS_DELIMITER . 'entry_' . $token . '@' . MOBILE_KARA_MAIL_ADDRESS_DOMAIN;
+	}
+}
+
+$objPage->tpl_name = $objCustomer->getValue('name01');
+$objPage->arrForm = $objFormParam->getFormParamList();
+
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+
+//-----------------------------------------------------------------------------------------------------------------------------------
+
+function lfInitParam(&$objFormParam) {
+	$objFormParam->addParam('¥á¡¼¥ë¥¢¥É¥ì¥¹', 'email_mobile', MTEXT_LEN, 'a',
+		array('NO_SPTAB', 'EXIST_CHECK', 'MAX_LENGTH_CHECK', 'CHANGE_LOWER', 'EMAIL_CHAR_CHECK', 'MOBILE_EMAIL_CHECK'));
+}
+
+function lfCheckError(&$objFormParam, &$objCustomer) {
+	$arrRet = $objFormParam->getHashArray();
+	$objErr = new SC_CheckError($arrRet);
+	$objErr->arrErr = $objFormParam->checkError();
+
+	if (count($objErr->arrErr) > 0) {
+		return $objErr->arrErr;
+	}
+
+	$email_mobile = $objFormParam->getValue('email_mobile');
+	$customer_id = $objCustomer->getValue('customer_id');
+	$objQuery = new SC_Query();
+	$arrRet = $objQuery->select('email, email_mobile, update_date, del_flg', 'dtb_customer', '(email ILIKE ? OR email_mobile ILIKE ?) AND customer_id <> ? ORDER BY del_flg', array($email_mobile, $email_mobile, $customer_id));
+
+	if (count($arrRet) > 0) {
+		if ($arrRet[0]['del_flg'] != '1') {
+			// ²ñ°÷¤Ç¤¢¤ë¾ì¹ç
+			$objErr->arrErr['email_mobile'] .= '¢¨ ¤¹¤Ç¤ËÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¥á¡¼¥ë¥¢¥É¥ì¥¹¤Ç¤¹¡£<br>';
+		} else {
+			// Âà²ñ¤·¤¿²ñ°÷¤Ç¤¢¤ë¾ì¹ç
+			$leave_time = sfDBDatetoTime($arrRet[0]['update_date']);
+			$now_time = time();
+			$pass_time = $now_time - $leave_time;
+			// Âà²ñ¤«¤é²¿»þ´Ö-·Ð²á¤·¤Æ¤¤¤ë¤«È½Äê¤¹¤ë¡£
+			$limit_time = ENTRY_LIMIT_HOUR * 3600;
+			if ($pass_time < $limit_time) {
+				$objErr->arrErr['email_mobile'] .= '¢¨ Âà²ñ¤«¤é°ìÄê´ü´Ö¤Î´Ö¤Ï¡¢Æ±¤¸¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò»ÈÍÑ¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£<br>';
+			}
+		}
+	}
+
+	return $objErr->arrErr;
+}
+
+function lfRegister(&$objFormParam, &$objCustomer)
+{
+	$customer_id = $objCustomer->getValue('customer_id');
+	$email_mobile = $objFormParam->getValue('email_mobile');
+
+	$objQuery = new SC_Query();
+	$objQuery->update('dtb_customer', array('email_mobile' => $email_mobile), 'customer_id = ?', array($customer_id));
+
+	$objCustomer->setValue('email_mobile', $email_mobile);
+}
+?>
Index: branches/dev/html/mobile/require.php
===================================================================
--- branches/dev/html/mobile/require.php	(revision 11460)
+++ branches/dev/html/mobile/require.php	(revision 11460)
@@ -0,0 +1,39 @@
+<?php
+$include_dir = realpath(dirname( __FILE__));
+require_once($include_dir . "/../../data/conf/mobile.conf");
+require_once($include_dir . "/../../data/include/module.inc");
+require_once($include_dir . "/../../data/include/mobile.inc");
+require_once($include_dir . "/../../data/lib/glib.php");
+require_once($include_dir . "/../../data/lib/slib.php");
+require_once($include_dir . "/../../data/class/SC_View.php");
+require_once($include_dir . "/../../data/class/SC_DbConn.php");
+require_once($include_dir . "/../../data/class/SC_Session.php");
+require_once($include_dir . "/../../data/class/SC_Query.php");
+require_once($include_dir . "/../../data/class/SC_SelectSql.php");
+require_once($include_dir . "/../../data/class/SC_CheckError.php");
+require_once($include_dir . "/../../data/class/SC_PageNavi.php");
+require_once($include_dir . "/../../data/class/SC_Date.php");
+require_once($include_dir . "/../../data/class/SC_Image.php");
+require_once($include_dir . "/../../data/class/SC_UploadFile.php");
+require_once($include_dir . "/../../data/class/SC_SiteInfo.php");
+require_once($include_dir . "/../../data/class/GC_SendMail.php");
+require_once($include_dir . "/../../data/class/SC_FormParam.php");
+require_once($include_dir . "/../../data/class/SC_CartSession.php");
+require_once($include_dir . "/../../data/class/SC_SiteSession.php");
+require_once($include_dir . "/../../data/class/SC_Customer.php");
+require_once($include_dir . "/../../data/class/SC_Cookie.php");
+require_once($include_dir . "/../../data/class/SC_Page.php");
+require_once($include_dir . "/../../data/class/SC_Pdf.php");
+require_once($include_dir . "/../../data/class/GC_MobileUserAgent.php");
+require_once($include_dir . "/../../data/class/GC_MobileEmoji.php");
+require_once($include_dir . "/../../data/class/GC_MobileImage.php");
+require_once($include_dir . "/../../data/include/page_layout.inc");
+
+// ¥¢¥Ã¥×¥Ç¡¼¥È¤Ç¼èÆÀ¤·¤¿PHP¤òÆÉ¤ß½Ð¤¹
+sfLoadUpdateModule();
+
+// ¥â¥Ð¥¤¥ë¥µ¥¤¥ÈÍÑ¤Î½é´ü½èÍý¤ò¼Â¹Ô¤¹¤ë¡£
+if (!defined('SKIP_MOBILE_INIT')) {
+	sfMobileInit();
+}
+?>
Index: branches/dev/html/mobile/frontparts/bloc/best5.php
===================================================================
--- branches/dev/html/mobile/frontparts/bloc/best5.php	(revision 11460)
+++ branches/dev/html/mobile/frontparts/bloc/best5.php	(revision 11460)
@@ -0,0 +1,43 @@
+<?php
+/*
+ * Copyright(c) 2000-2006 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ */
+class LC_Best5Page {
+	function LC_Best5Page() {
+		/** É¬¤ºÊÑ¹¹¤¹¤ë **/
+		$this->tpl_mainpage = 'frontparts/bloc/best5.tpl';	// ¥á¥¤¥ó
+	}
+}
+
+$objSubPage = new LC_Best5Page();
+$objSubView = new SC_SiteView();
+$objSiteInfo = $objView->objSiteInfo;
+
+// ´ðËÜ¾ðÊó¤òÅÏ¤¹
+$objSiteInfo = new SC_SiteInfo();
+$objSubPage->arrInfo = $objSiteInfo->data;
+
+//¤ª¤¹¤¹¤á¾¦ÉÊÉ½¼¨
+$objSubPage->arrBestProducts = lfGetRanking();
+
+$objSubView->assignobj($objSubPage);
+$objSubView->display($objSubPage->tpl_mainpage);
+//-----------------------------------------------------------------------------------------------------------------------------------
+//¤ª¤¹¤¹¤á¾¦ÉÊ¸¡º÷
+function lfGetRanking(){
+	$objQuery = new SC_Query();
+	
+	$col = "A.*, name, price02_min, price01_min, main_list_image ";
+	$from = "dtb_best_products AS A INNER JOIN vw_products_allclass AS allcls using(product_id)";
+	$where = "status = 1";
+	$order = "rank";
+	$objQuery->setorder($order);
+	
+	$arrBestProducts = $objQuery->select($col, $from, $where);
+		
+	return $arrBestProducts;
+}
+
+?>
Index: branches/dev/html/mobile/frontparts/bloc/news.php
===================================================================
--- branches/dev/html/mobile/frontparts/bloc/news.php	(revision 11460)
+++ branches/dev/html/mobile/frontparts/bloc/news.php	(revision 11460)
@@ -0,0 +1,29 @@
+<?php
+/*
+ * Copyright(c) 2000-2006 LOCKON CO.,LTD. All Rights Reserved.
+ *
+ * http://www.lockon.co.jp/
+ */
+class LC_NewsPage {
+	function LC_NewsPage() {
+		/** É¬¤ºÊÑ¹¹¤¹¤ë **/
+		$this->tpl_mainpage = 'frontparts/bloc/news.tpl';	// ¥á¥¤¥ó
+	}
+}
+
+$objSubPage = new LC_NewsPage();
+$objSubView = new SC_SiteView();
+
+//¿·Ãå¾ðÊó¼èÆÀ
+$objSubPage->arrNews = lfGetNews();
+
+$objSubView->assignobj($objSubPage);
+$objSubView->display($objSubPage->tpl_mainpage);
+//-----------------------------------------------------------------------------------------------------------------------------------
+function lfGetNews(){
+	$conn = new SC_DBConn();
+	$sql = "SELECT *, cast(substring(news_date,1,10) as date) as news_date_disp FROM dtb_news WHERE del_flg = '0' ORDER BY rank DESC";
+	$list_data = $conn->getAll($sql);
+	return $list_data;	
+}
+?>
Index: branches/dev/html/mobile/frontparts/bloc/category.php
===================================================================
--- branches/dev/html/mobile/frontparts/bloc/category.php	(revision 11460)
+++ branches/dev/html/mobile/frontparts/bloc/category.php	(revision 11460)
@@ -0,0 +1,53 @@
+<?php
+/**
+ * ¥â¥Ð¥¤¥ë¥µ¥¤¥È/¥á¥¤¥ó¥«¥Æ¥´¥ê¡¼
+ */
+
+class LC_CatPage {
+	function LC_CatPage() {
+		/** É¬¤ºÊÑ¹¹¤¹¤ë **/
+		$this->tpl_mainpage = 'frontparts/bloc/category.tpl';	// ¥á¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È
+	}
+}
+
+$objSubPage = new LC_CatPage();
+$objSubView = new SC_SiteView();
+
+$objSubPage = lfGetMainCat(true, $objSubPage);
+
+$objSubView->assignobj($objSubPage);
+$objSubView->display($objSubPage->tpl_mainpage);
+
+//-----------------------------------------------------------------------------------------------------------------------------------
+
+// ¥á¥¤¥ó¥«¥Æ¥´¥ê¡¼¤Î¼èÆÀ
+function lfGetMainCat($count_check = false, $objSubPage) {
+	$objQuery = new SC_Query();
+	$col = "*";
+	$from = "dtb_category left join dtb_category_total_count using (category_id)";
+	// ¥á¥¤¥ó¥«¥Æ¥´¥ê¡¼¤È¤½¤ÎÄ¾²¼¤Î¥«¥Æ¥´¥ê¡¼¤ò¼èÆÀ¤¹¤ë¡£
+	$where = 'level <= 2 AND del_flg = 0';
+	// ÅÐÏ¿¾¦ÉÊ¿ô¤Î¥Á¥§¥Ã¥¯
+	if($count_check) {
+		$where .= " AND product_count > 0";
+	}
+	$objQuery->setoption("ORDER BY rank DESC");
+	$arrRet = $objQuery->select($col, $from, $where);
+
+	// ¥á¥¤¥ó¥«¥Æ¥´¥ê¡¼¤òÃê½Ð¤¹¤ë¡£
+	$arrMainCat = array();
+	foreach ($arrRet as $cat) {
+		if ($cat['level'] != 1) {
+			continue;
+		}
+
+		// »Ò¥«¥Æ¥´¥ê¡¼¤ò»ý¤Ä¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¡£
+		$arrChildrenID = sfGetUnderChildrenArray($arrRet, 'parent_category_id', 'category_id', $cat['category_id']);
+		$cat['has_children'] = count($arrChildrenID) > 0;
+		$arrMainCat[] = $cat;
+	}
+
+	$objSubPage->arrCat = $arrMainCat;
+	return $objSubPage;
+}
+?>
Index: branches/dev/html/mobile/products/detail.php
===================================================================
--- branches/dev/html/mobile/products/detail.php	(revision 11460)
+++ branches/dev/html/mobile/products/detail.php	(revision 11460)
@@ -0,0 +1,482 @@
+<?php
+
+require_once("../require.php");
+require_once(DATA_PATH . "include/page_layout.inc");
+
+class LC_Page {
+	function LC_Page() {
+		/** É¬¤º»ØÄê¤¹¤ë **/
+		global $arrSTATUS;
+		$this->arrSTATUS = $arrSTATUS;
+		global $arrSTATUS_IMAGE;
+		$this->arrSTATUS_IMAGE = $arrSTATUS_IMAGE;
+		global $arrDELIVERYDATE;
+		$this->arrDELIVERYDATE = $arrDELIVERYDATE;
+		global $arrRECOMMEND;
+		$this->arrRECOMMEND = $arrRECOMMEND;
+		
+		$this->tpl_mainpage="products/detail.tpl";
+		
+		/*
+		 session_start»þ¤Îno-cache¥Ø¥Ã¥À¡¼¤òÍÞÀ©¤¹¤ë¤³¤È¤Ç
+		 ¡ÖÌá¤ë¡×¥Ü¥¿¥ó»ÈÍÑ»þ¤ÎÍ­¸ú´ü¸ÂÀÚ¤ìÉ½¼¨¤òÍÞÀ©¤¹¤ë¡£
+		 private-no-expire:¥¯¥é¥¤¥¢¥ó¥È¤Î¥­¥ã¥Ã¥·¥å¤òµö²Ä¤¹¤ë¡£
+		*/
+		session_cache_limiter('private-no-expire');
+	}
+}
+
+$objPage = new LC_Page();
+$objView = new SC_SiteView();
+$objCustomer = new SC_Customer();
+$objQuery = new SC_Query();
+
+// ¥ì¥¤¥¢¥¦¥È¥Ç¥¶¥¤¥ó¤ò¼èÆÀ
+$objPage = sfGetPageLayout($objPage, false, "products/detail.php");
+
+// ¥Ñ¥é¥á¡¼¥¿´ÉÍý¥¯¥é¥¹
+$objFormParam = new SC_FormParam();
+// ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½
+lfInitParam();
+// POSTÃÍ¤Î¼èÆÀ
+$objFormParam->setParam($_POST);
+
+// ¥Õ¥¡¥¤¥ë´ÉÍý¥¯¥é¥¹
+$objUpFile = new SC_UploadFile(IMAGE_TEMP_DIR, IMAGE_SAVE_DIR);
+// ¥Õ¥¡¥¤¥ë¾ðÊó¤Î½é´ü²½
+lfInitFile();
+
+// ´ÉÍý¥Ú¡¼¥¸¤«¤é¤Î³ÎÇ§¤Î¾ì¹ç¤Ï¡¢Èó¸ø³«¤Î¾¦ÉÊ¤âÉ½¼¨¤¹¤ë¡£
+if($_GET['admin'] == 'on') {
+	$where = "del_flg = 0";
+} else {
+	$where = "del_flg = 0 AND status = 1";
+}
+
+if($_POST['mode'] != "") {
+	$tmp_id = $_POST['product_id'];
+} else {
+	$tmp_id = $_GET['product_id'];
+}
+
+// ÃÍ¤ÎÀµÅöÀ­¥Á¥§¥Ã¥¯
+if(!sfIsInt($_GET['product_id']) || !sfIsRecord("dtb_products", "product_id", $tmp_id, $where)) {
+	sfDispSiteError(PRODUCT_NOT_FOUND);
+}
+// ¥í¥°¥¤¥óÈ½Äê
+if($objCustomer->isLoginSuccess()) {
+	//¤ªµ¤¤ËÆþ¤ê¥Ü¥¿¥óÉ½¼¨
+	$objPage->tpl_login = true;
+
+/* ±ÜÍ÷¥í¥°µ¡Ç½¤Ï¸½ºßÌ¤»ÈÍÑ
+	
+	$table = "dtb_customer_reading";
+	$where = "customer_id = ? ";
+	$arrval[] = $objCustomer->getValue('customer_id');
+	//¸ÜµÒ¤Î±ÜÍ÷¾¦ÉÊ¿ô
+	$rpcnt = $objQuery->count($table, $where, $arrval);
+
+	//±ÜÍ÷¿ô¤¬ÀßÄê¿ô°Ê²¼
+	if ($rpcnt < CUSTOMER_READING_MAX){
+		//±ÜÍ÷ÍúÎò¤Ë¿·µ¬ÄÉ²Ã
+		lfRegistReadingData($tmp_id, $objCustomer->getValue('customer_id'));
+	} else {
+		//±ÜÍ÷ÍúÎò¤ÎÃæ¤Ç°ìÈÖ¸Å¤¤¤â¤Î¤òºï½ü¤·¤Æ¿·µ¬ÄÉ²Ã
+		$oldsql = "SELECT MIN(update_date) FROM ".$table." WHERE customer_id = ?";
+		$old = $objQuery->getone($oldsql, array($objCustomer->getValue("customer_id")));
+		$where = "customer_id = ? AND update_date = ? ";
+		$arrval = array($objCustomer->getValue("customer_id"), $old);
+		//ºï½ü
+		$objQuery->delete($table, $where, $arrval);
+		//ÄÉ²Ã
+		lfRegistReadingData($tmp_id, $objCustomer->getValue('customer_id'));
+	}
+*/
+}
+
+
+// µ¬³ÊÁªÂò¥»¥ì¥¯¥È¥Ü¥Ã¥¯¥¹¤ÎºîÀ®
+$objPage = lfMakeSelect($objPage, $tmp_id);
+
+// ¾¦ÉÊID¤òFORMÆâ¤ËÊÝ»ý¤¹¤ë¡£
+$objPage->tpl_product_id = $tmp_id;
+
+switch($_POST['mode']) {
+case 'select':
+	// µ¬³Ê1¤¬ÀßÄê¤µ¤ì¤Æ¤¤¤ë¾ì¹ç
+	if($objPage->tpl_classcat_find1) {
+		// template¤ÎÊÑ¹¹
+		$objPage->tpl_mainpage = "products/select_find1.tpl";
+		break;
+	}
+
+case 'select2':
+	$objPage->arrErr = lfCheckError();
+
+	// µ¬³Ê1¤¬ÀßÄê¤µ¤ì¤Æ¤¤¤ë¾ì¹ç
+	if($objPage->tpl_classcat_find1 and $objPage->arrErr['classcategory_id1']) {
+		// template¤ÎÊÑ¹¹
+		$objPage->tpl_mainpage = "products/select_find1.tpl";
+		break;
+	}
+
+	// µ¬³Ê2¤¬ÀßÄê¤µ¤ì¤Æ¤¤¤ë¾ì¹ç
+	if($objPage->tpl_classcat_find2) {
+		$objPage->arrErr = array();
+
+		$objPage->tpl_mainpage = "products/select_find2.tpl";
+		break;
+	}
+
+case 'selectItem':
+	$objPage->arrErr = lfCheckError();
+
+	// µ¬³Ê1¤¬ÀßÄê¤µ¤ì¤Æ¤¤¤ë¾ì¹ç
+	if($objPage->tpl_classcat_find2 and $objPage->arrErr['classcategory_id2']) {
+		// template¤ÎÊÑ¹¹
+		$objPage->tpl_mainpage = "products/select_find2.tpl";
+		break;
+	}
+	// ¾¦ÉÊ¿ô¤ÎÁªÂò¤ò¹Ô¤¦
+	$objPage->tpl_mainpage = "products/select_item.tpl";
+	break;
+
+case 'cart':
+	// ÆþÎÏÃÍ¤ÎÊÑ´¹
+	$objFormParam->convParam();
+	$objPage->arrErr = lfCheckError();
+	if(count($objPage->arrErr) == 0) {
+		$objCartSess = new SC_CartSession();
+		$classcategory_id1 = $_POST['classcategory_id1'];
+		$classcategory_id2 = $_POST['classcategory_id2'];
+				
+		// µ¬³Ê1¤¬ÀßÄê¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç
+		if(!$objPage->tpl_classcat_find1) {
+			$classcategory_id1 = '0';
+		}
+		
+		// µ¬³Ê2¤¬ÀßÄê¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç
+		if(!$objPage->tpl_classcat_find2) {
+			$classcategory_id2 = '0';
+		}
+		
+		$objCartSess->setPrevURL($_SERVER['REQUEST_URI']);
+		$objCartSess->addProduct(array($_POST['product_id'], $classcategory_id1, $classcategory_id2), $objFormParam->getValue('quantity'));
+
+		header("Location: " . gfAddSessionId(URL_CART_TOP));
+
+		exit;
+	}
+	break;
+		
+default:
+	break;
+}
+
+$objQuery = new SC_Query();
+// DB¤«¤é¾¦ÉÊ¾ðÊó¤ò¼èÆÀ¤¹¤ë¡£
+$arrRet = $objQuery->select("*", "vw_products_allclass_detail AS alldtl", "product_id = ?", array($tmp_id));
+$objPage->arrProduct = $arrRet[0];
+
+// ¾¦ÉÊ¥³¡¼¥É¤Î¼èÆÀ
+$code_sql = "SELECT product_code FROM dtb_products_class AS prdcls WHERE prdcls.product_id = ? GROUP BY product_code ORDER BY product_code";
+$arrProductCode = $objQuery->getall($code_sql, array($tmp_id));
+$arrProductCode = sfswaparray($arrProductCode);
+$objPage->arrProductCode = $arrProductCode["product_code"];
+
+// ¹ØÆþÀ©¸Â¿ô¤ò¼èÆÀ
+if($objPage->arrProduct['sale_unlimited'] == 1 || $objPage->arrProduct['sale_limit'] > SALE_LIMIT_MAX) {
+  $objPage->tpl_sale_limit = SALE_LIMIT_MAX;
+} else {
+  $objPage->tpl_sale_limit = $objPage->arrProduct['sale_limit'];
+}
+
+// ¥µ¥Ö¥¿¥¤¥È¥ë¤ò¼èÆÀ
+$arrFirstCat = GetFirstCat($arrRet[0]['category_id']);
+$tpl_subtitle = $arrFirstCat['name'];
+$objPage->tpl_subtitle = $tpl_subtitle;
+
+// DB¤«¤é¤Î¥Ç¡¼¥¿¤ò°ú¤­·Ñ¤°
+$objUpFile->setDBFileList($objPage->arrProduct);
+// ¥Õ¥¡¥¤¥ëÉ½¼¨ÍÑÇÛÎó¤òÅÏ¤¹
+$objPage->arrFile = $objUpFile->getFormFileList(IMAGE_TEMP_URL, IMAGE_SAVE_URL, true);
+// »ÙÊ§ÊýË¡¤Î¼èÆÀ
+$objPage->arrPayment = lfGetPayment();
+// ÆþÎÏ¾ðÊó¤òÅÏ¤¹
+$objPage->arrForm = $objFormParam->getFormParamList();
+//¥ì¥Ó¥å¡¼¾ðÊó¤Î¼èÆÀ
+$objPage->arrReview = lfGetReviewData($tmp_id);
+// ¥¿¥¤¥È¥ë¤Ë¾¦ÉÊÌ¾¤òÆþ¤ì¤ë
+$objPage->tpl_title = "¾¦ÉÊ¾ÜºÙ ". $objPage->arrProduct["name"];
+//¥ª¥¹¥¹¥á¾¦ÉÊ¾ðÊóÉ½¼¨
+$objPage->arrRecommend = lfPreGetRecommendProducts($tmp_id);
+//¤³¤Î¾¦ÉÊ¤òÇã¤Ã¤¿¿Í¤Ï¤³¤ó¤Ê¾¦ÉÊ¤âÇã¤Ã¤Æ¤¤¤Þ¤¹
+$objPage->arrRelateProducts = lfGetRelateProducts($tmp_id);
+
+// ³ÈÂç²èÁü¤Î¥¦¥£¥ó¥É¥¦¥µ¥¤¥º¤ò¥»¥Ã¥È
+list($large_width, $large_height) = getimagesize(IMAGE_SAVE_DIR . basename($objPage->arrFile["main_large_image"]["filepath"]));
+$objPage->tpl_large_width = $large_width + 60;
+$objPage->tpl_large_height = $large_height + 80;
+
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+//-----------------------------------------------------------------------------------------------------------------------------------
+/* ¥Õ¥¡¥¤¥ë¾ðÊó¤Î½é´ü²½ */
+function lfInitFile() {
+	global $objUpFile;
+	$objUpFile->addFile("°ìÍ÷-¥á¥¤¥ó²èÁü", 'main_list_image', array('jpg','gif'),IMAGE_SIZE, true, SMALL_IMAGE_WIDTH, SMALL_IMAGE_HEIGHT);
+	$objUpFile->addFile("¾ÜºÙ-¥á¥¤¥ó²èÁü", 'main_image', array('jpg'), IMAGE_SIZE, true, NORMAL_IMAGE_WIDTH, NORMAL_IMAGE_HEIGHT);
+	$objUpFile->addFile("¾ÜºÙ-¥á¥¤¥ó³ÈÂç²èÁü", 'main_large_image', array('jpg'), IMAGE_SIZE, false, LARGE_IMAGE_HEIGHT, LARGE_IMAGE_HEIGHT);
+	for ($cnt = 1; $cnt <= PRODUCTSUB_MAX; $cnt++) {
+		$objUpFile->addFile("¾ÜºÙ-¥µ¥Ö²èÁü$cnt", "sub_image$cnt", array('jpg'), IMAGE_SIZE, false, NORMAL_SUBIMAGE_HEIGHT, NORMAL_SUBIMAGE_HEIGHT);	
+		$objUpFile->addFile("¾ÜºÙ-¥µ¥Ö³ÈÂç²èÁü$cnt", "sub_large_image$cnt", array('jpg'), IMAGE_SIZE, false, LARGE_SUBIMAGE_HEIGHT, LARGE_SUBIMAGE_HEIGHT);
+	}
+	$objUpFile->addFile("¾¦ÉÊÈæ³Ó²èÁü", 'file1', array('jpg'), IMAGE_SIZE, false, NORMAL_IMAGE_HEIGHT, NORMAL_IMAGE_HEIGHT);
+	$objUpFile->addFile("¾¦ÉÊ¾ÜºÙ¥Õ¥¡¥¤¥ë", 'file2', array('pdf'), PDF_SIZE, false, 0, 0, false);
+}
+
+/* µ¬³ÊÁªÂò¥»¥ì¥¯¥È¥Ü¥Ã¥¯¥¹¤ÎºîÀ® */
+function lfMakeSelect($objPage, $product_id) {
+	global $objPage;
+	$classcat_find1 = false;
+	$classcat_find2 = false;
+	// ºß¸Ë¤¢¤ê¤Î¾¦ÉÊ¤ÎÍ­Ìµ
+	$stock_find = false;
+	
+	// µ¬³ÊÌ¾°ìÍ÷
+	$arrClassName = sfGetIDValueList("dtb_class", "class_id", "name");
+	// µ¬³ÊÊ¬ÎàÌ¾°ìÍ÷
+	$arrClassCatName = sfGetIDValueList("dtb_classcategory", "classcategory_id", "name");
+	// ¾¦ÉÊµ¬³Ê¾ðÊó¤Î¼èÆÀ	
+	$arrProductsClass = lfGetProductsClass($product_id);
+	
+	// µ¬³Ê1¥¯¥é¥¹Ì¾¤Î¼èÆÀ
+	$objPage->tpl_class_name1 = $arrClassName[$arrProductsClass[0]['class_id1']];
+	// µ¬³Ê2¥¯¥é¥¹Ì¾¤Î¼èÆÀ
+	$objPage->tpl_class_name2 = $arrClassName[$arrProductsClass[0]['class_id2']];
+	
+	// ¤¹¤Ù¤Æ¤ÎÁÈ¤ß¹ç¤ï¤»¿ô	
+	$count = count($arrProductsClass);
+	
+	$classcat_id1 = "";
+	
+	$arrSele1 = array();
+	$arrSele2 = array();
+	$arrList = array();
+	
+	$list_id = 0;
+	$arrList[0] = "\tlist0 = new Array('ÁªÂò¤·¤Æ¤¯¤À¤µ¤¤'";
+	$arrVal[0] = "\tval0 = new Array(''";
+	
+	for ($i = 0; $i < $count; $i++) {
+		// ºß¸Ë¤Î¥Á¥§¥Ã¥¯
+		if($arrProductsClass[$i]['stock'] <= 0 && $arrProductsClass[$i]['stock_unlimited'] != '1') {
+			continue;
+		}
+		
+		$stock_find = true;
+		
+		// µ¬³Ê1¤Î¥»¥ì¥¯¥È¥Ü¥Ã¥¯¥¹ÍÑ
+		if($classcat_id1 != $arrProductsClass[$i]['classcategory_id1']){
+			$arrList[$list_id].=");\n";
+			$arrVal[$list_id].=");\n";
+			$classcat_id1 = $arrProductsClass[$i]['classcategory_id1'];
+			$arrSele1[$classcat_id1] = $arrClassCatName[$classcat_id1];
+		}
+
+		// µ¬³Ê2¤Î¥»¥ì¥¯¥È¥Ü¥Ã¥¯¥¹ÍÑ
+		if($arrProductsClass[$i]['classcategory_id1'] == $_POST['classcategory_id1'] and $classcat_id2 != $arrProductsClass[$i]['classcategory_id2']) {
+			$classcat_id2 = $arrProductsClass[$i]['classcategory_id2'];
+			$arrSele2[$classcat_id2] = $arrClassCatName[$classcat_id2];
+		}
+
+		$list_id++;
+
+		// ¥»¥ì¥¯¥È¥Ü¥Ã¥¯¥¹É½¼¨ÃÍ
+		if($arrList[$list_id] == "") {
+			$arrList[$list_id] = "\tlist".$list_id." = new Array('ÁªÂò¤·¤Æ¤¯¤À¤µ¤¤', '".$arrClassCatName[$classcat_id2]."'";
+		} else {
+			$arrList[$list_id].= ", '".$arrClassCatName[$classcat_id2]."'";
+		}
+		
+		// ¥»¥ì¥¯¥È¥Ü¥Ã¥¯¥¹POSTÃÍ
+		if($arrVal[$list_id] == "") {
+			$arrVal[$list_id] = "\tval".$list_id." = new Array('', '".$classcat_id2."'";
+		} else {
+			$arrVal[$list_id].= ", '".$classcat_id2."'";
+		}
+	}	
+	
+	//$arrList[$list_id].=");\n";
+	$arrVal[$list_id].=");\n";
+		
+	// µ¬³Ê1
+	$objPage->arrClassCat1 = $arrSele1;
+	$objPage->arrClassCat2 = $arrSele2;
+	
+	//$lists = "\tlists = new Array(";
+	//$no = 0;
+	
+	//foreach($arrList as $val) {
+	//	$objPage->tpl_javascript.= $val;
+	//	if ($no != 0) {
+	//		$lists.= ",list".$no;
+	//	} else {
+	//		$lists.= "list".$no;
+	//	}
+	//	$no++;
+	//}
+	//$objPage->tpl_javascript.=$lists.");\n";
+	
+	$vals = "\tvals = new Array(";
+	$no = 0;
+	
+	//foreach($arrVal as $val) {
+	//	$objPage->tpl_javascript.= $val;
+	//	if ($no != 0) {
+	//		$vals.= ",val".$no;
+	//	} else {
+	//		$vals.= "val".$no;
+	//	}
+	//	$no++;
+	//}
+	//$objPage->tpl_javascript.=$vals.");\n";
+	
+	// ÁªÂò¤µ¤ì¤Æ¤¤¤ëµ¬³Ê2ID
+	$objPage->tpl_onload = "lnSetSelect('form1', 'classcategory_id1', 'classcategory_id2', '" . $_POST['classcategory_id2'] . "');";
+
+	// µ¬³Ê1¤¬ÀßÄê¤µ¤ì¤Æ¤¤¤ë
+	if($arrProductsClass[0]['classcategory_id1'] != '0') {
+		$classcat_find1 = true;
+	}
+	
+	// µ¬³Ê2¤¬ÀßÄê¤µ¤ì¤Æ¤¤¤ë
+	if($arrProductsClass[0]['classcategory_id2'] != '0') {
+		$classcat_find2 = true;
+	}
+		
+	$objPage->tpl_classcat_find1 = $classcat_find1;
+	$objPage->tpl_classcat_find2 = $classcat_find2;
+	$objPage->tpl_stock_find = $stock_find;
+		
+	return $objPage;
+}
+
+/* ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½ */
+function lfInitParam() {
+	global $objFormParam;
+
+	$objFormParam->addParam("µ¬³Ê1", "classcategory_id1", INT_LEN, "n", array("NUM_CHECK", "MAX_LENGTH_CHECK"));
+	$objFormParam->addParam("µ¬³Ê2", "classcategory_id2", INT_LEN, "n", array("NUM_CHECK", "MAX_LENGTH_CHECK"));
+	$objFormParam->addParam("¸Ä¿ô", "quantity", INT_LEN, "n", array("EXIST_CHECK", "ZERO_CHECK", "NUM_CHECK", "MAX_LENGTH_CHECK"));
+}
+
+/* ¾¦ÉÊµ¬³Ê¾ðÊó¤Î¼èÆÀ */
+function lfGetProductsClass($product_id) {
+	$arrRet = array();
+	if(sfIsInt($product_id)) {
+		// ¾¦ÉÊµ¬³Ê¼èÆÀ
+		$objQuery = new SC_Query();
+		$col = "product_class_id, classcategory_id1, classcategory_id2, class_id1, class_id2, stock, stock_unlimited";
+		$table = "vw_product_class AS prdcls";
+		$where = "product_id = ?";
+		$objQuery->setorder("rank1 DESC, rank2 DESC");
+		$arrRet = $objQuery->select($col, $table, $where, array($product_id));
+	}
+	return $arrRet;
+}
+
+/* ÅÐÏ¿ºÑ¤ß¥ª¥¹¥¹¥á¾¦ÉÊ¤ÎÆÉ¤ß¹þ¤ß */
+function lfPreGetRecommendProducts($product_id) {
+	$objQuery = new SC_Query();
+	$objQuery->setorder("rank DESC");
+	$arrRet = $objQuery->select("recommend_product_id, comment", "dtb_recommend_products", "product_id = ?", array($product_id));
+	$max = count($arrRet);
+	$no = 0;
+	for($i = 0; $i < $max; $i++) {
+		$where = "del_flg = 0 AND product_id = ? AND status = 1";
+		$arrProductInfo = $objQuery->select("main_list_image, price02_min, price02_max, price01_min, price01_max, name, point_rate", "vw_products_allclass  AS allcls", $where, array($arrRet[$i]['recommend_product_id'])); 
+				
+		if(count($arrProductInfo) > 0) {
+			$arrRecommend[$no] = $arrProductInfo[0];
+			$arrRecommend[$no]['product_id'] = $arrRet[$i]['recommend_product_id'];
+			$arrRecommend[$no]['comment'] = $arrRet[$i]['comment'];
+			$no++;
+		}	
+	}
+	return $arrRecommend;
+}
+
+/* ÆþÎÏÆâÍÆ¤Î¥Á¥§¥Ã¥¯ */
+function lfCheckError() {
+	global $objFormParam;
+	global $objPage;
+	// ÆþÎÏ¥Ç¡¼¥¿¤òÅÏ¤¹¡£
+	$arrRet =  $objFormParam->getHashArray();
+	$objErr = new SC_CheckError($arrRet);
+	$objErr->arrErr = $objFormParam->checkError();
+		
+	// Ê£¿ô¹àÌÜ¥Á¥§¥Ã¥¯
+	if ($objPage->tpl_classcat_find1) {
+		$objErr->doFunc(array("µ¬³Ê1", "classcategory_id1"), array("EXIST_CHECK"));
+	}
+	if ($objPage->tpl_classcat_find2) {
+		$objErr->doFunc(array("µ¬³Ê2", "classcategory_id2"), array("EXIST_CHECK"));
+	}
+
+	return $objErr->arrErr;
+}
+
+//±ÜÍ÷ÍúÎò¿·µ¬ÅÐÏ¿
+function lfRegistReadingData($tmp_id, $customer_id){
+	$objQuery = new SC_Query;
+	$sqlval['customer_id'] = $customer_id;
+	$sqlval['reading_product_id'] = $tmp_id;
+	$sqlval['create_date'] = 'NOW()';
+	$sqlval['update_date'] = 'NOW()';
+	$objQuery->insert("dtb_customer_reading", $sqlval);
+}
+
+//¤³¤Î¾¦ÉÊ¤òÇã¤Ã¤¿¿Í¤Ï¤³¤ó¤Ê¾¦ÉÊ¤âÇã¤Ã¤Æ¤¤¤Þ¤¹
+function lfGetRelateProducts($tmp_id) {
+	$objQuery = new SC_Query;
+	//¼«Æ°Ãê½Ð
+	$objQuery->setorder("random()");
+	//É½¼¨·ï¿ô¤ÎÀ©¸Â
+	$objQuery->setlimit(RELATED_PRODUCTS_MAX);
+	//¸¡º÷¾ò·ï
+	$col = "name, main_list_image, price01_min, price02_min, price01_max, price02_max, point_rate";
+	$from = "vw_products_allclass AS allcls ";
+	$where = "del_flg = 0 AND status = 1 AND (stock_max <> 0 OR stock_max IS NULL) AND product_id = ? ";
+	$arrval[] = $tmp_id;
+	//·ë²Ì¤Î¼èÆÀ
+	$arrProducts = $objQuery->select($col, $from, $where, $arrval);
+	
+	return $arrProducts;
+}
+
+//¾¦ÉÊ¤´¤È¤Î¥ì¥Ó¥å¡¼¾ðÊó¤ò¼èÆÀ¤¹¤ë
+function lfGetReviewData($id) {
+	$objQuery = new SC_Query;
+	//¾¦ÉÊ¤´¤È¤Î¥ì¥Ó¥å¡¼¾ðÊó¤ò¼èÆÀ¤¹¤ë
+	$col = "create_date, reviewer_url, reviewer_name, recommend_level, title, comment";
+	$from = "dtb_review";
+	$where = "del_flg = 0 AND status = 1 AND product_id = ? ";
+	$arrval[] = $id;
+	$arrReview = $objQuery->select($col, $from, $where, $arrval);
+	return $arrReview; 
+}
+
+//»ÙÊ§ÊýË¡¤Î¼èÆÀ
+//payment_id	1:¥¯¥ì¥¸¥Ã¥È¡¡2:¥·¥ç¥Ã¥Ô¥ó¥°¥í¡¼¥ó	
+function lfGetPayment() {
+	$objQuery = new SC_Query;
+	$col = "payment_id, rule, payment_method";
+	$from = "dtb_payment";
+	$where = "del_flg = 0";
+	$order = "payment_id";
+	$objQuery->setorder($order);
+	$arrRet = $objQuery->select($col, $from, $where);
+	return $arrRet;
+}
+?>
Index: branches/dev/html/mobile/products/search.php
===================================================================
--- branches/dev/html/mobile/products/search.php	(revision 11460)
+++ branches/dev/html/mobile/products/search.php	(revision 11460)
@@ -0,0 +1,26 @@
+<?php
+/**
+ * ¥â¥Ð¥¤¥ë¥µ¥¤¥È/¾¦ÉÊ¸¡º÷¥Õ¥©¡¼¥à
+ */
+
+require_once('../require.php');
+
+class LC_Page {
+	function LC_Page() {
+		/** É¬¤º»ØÄê¤¹¤ë **/
+		$this->tpl_mainpage = 'products/search.tpl';			// ¥á¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È
+		$this->tpl_title = '¾¦ÉÊ¸¡º÷';
+	}
+}
+
+$objPage = new LC_Page();
+$objView = new SC_SiteView();
+
+// ¥ì¥¤¥¢¥¦¥È¥Ç¥¶¥¤¥ó¤ò¼èÆÀ
+$objPage = sfGetPageLayout($objPage, false, DEF_LAYOUT);
+
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+
+//-----------------------------------------------------------------------------------------------------------------------------------
+?>
Index: branches/dev/html/mobile/products/category_list.php
===================================================================
--- branches/dev/html/mobile/products/category_list.php	(revision 11460)
+++ branches/dev/html/mobile/products/category_list.php	(revision 11460)
@@ -0,0 +1,89 @@
+<?php
+/**
+ * ¥â¥Ð¥¤¥ë¥µ¥¤¥È/¥«¥Æ¥´¥ê¡¼°ìÍ÷
+ */
+
+require_once('../require.php');
+
+class LC_Page {
+	function LC_Page() {
+		/** É¬¤º»ØÄê¤¹¤ë **/
+		$this->tpl_mainpage = 'products/category_list.tpl';			// ¥á¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È
+		$this->tpl_title = '¥«¥Æ¥´¥ê°ìÍ÷¥Ú¡¼¥¸';
+	}
+}
+
+$objPage = new LC_Page();
+$objView = new SC_SiteView();
+
+// ¥ì¥¤¥¢¥¦¥È¥Ç¥¶¥¤¥ó¤ò¼èÆÀ
+$objPage = sfGetPageLayout($objPage, false, DEF_LAYOUT);
+
+// ¥«¥Æ¥´¥ê¡¼¾ðÊó¤ò¼èÆÀ¤¹¤ë¡£
+lfGetCategories(@$_GET['category_id'], true, $objPage);
+
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+
+//-----------------------------------------------------------------------------------------------------------------------------------
+
+/**
+ * ÁªÂò¤µ¤ì¤¿¥«¥Æ¥´¥ê¡¼¤È¤½¤Î»Ò¥«¥Æ¥´¥ê¡¼¤Î¾ðÊó¤ò¼èÆÀ¤·¡¢
+ * ¥Ú¡¼¥¸¥ª¥Ö¥¸¥§¥¯¥È¤Ë³ÊÇ¼¤¹¤ë¡£
+ *
+ * @param string $category_id ¥«¥Æ¥´¥ê¡¼ID
+ * @param boolean $count_check Í­¸ú¤Ê¾¦ÉÊ¤¬¤Ê¤¤¥«¥Æ¥´¥ê¡¼¤ò½ü¤¯¤«¤É¤¦¤«
+ * @param object &$objPage ¥Ú¡¼¥¸¥ª¥Ö¥¸¥§¥¯¥È
+ * @return void
+ */
+function lfGetCategories($category_id, $count_check = false, &$objPage) {
+	// ¥«¥Æ¥´¥ê¡¼¤ÎÀµ¤·¤¤ID¤ò¼èÆÀ¤¹¤ë¡£
+	$category_id = sfGetCategoryId('', $category_id);
+	if ($category_id == 0) {
+		sfDispSiteError(CATEGORY_NOT_FOUND);
+	}
+
+	$arrCategory = null;	// ÁªÂò¤µ¤ì¤¿¥«¥Æ¥´¥ê¡¼
+	$arrChildren = array();	// »Ò¥«¥Æ¥´¥ê¡¼
+
+	$arrAll = sfGetCatTree($category_id, $count_check);
+	foreach ($arrAll as $category) {
+		// ÁªÂò¤µ¤ì¤¿¥«¥Æ¥´¥ê¡¼¤Î¾ì¹ç
+		if ($category['category_id'] == $category_id) {
+			$arrCategory = $category;
+			continue;
+		}
+
+		// ´Ø·¸¤Î¤Ê¤¤¥«¥Æ¥´¥ê¡¼¤Ï¥¹¥­¥Ã¥×¤¹¤ë¡£
+		if ($category['parent_category_id'] != $category_id) {
+			continue;
+		}
+
+		// »Ò¥«¥Æ¥´¥ê¡¼¤Î¾ì¹ç¤Ï¡¢Â¹¥«¥Æ¥´¥ê¡¼¤¬Â¸ºß¤¹¤ë¤«¤É¤¦¤«¤òÄ´¤Ù¤ë¡£
+		$arrGrandchildrenID = sfGetUnderChildrenArray($arrAll, 'parent_category_id', 'category_id', $category['category_id']);
+		$category['has_children'] = count($arrGrandchildrenID) > 0;
+		$arrChildren[] = $category;
+	}
+
+	if (!isset($arrCategory)) {
+		sfDispSiteError(CATEGORY_NOT_FOUND);
+	}
+
+	// »Ò¥«¥Æ¥´¥ê¡¼¤Î¾¦ÉÊ¿ô¤ò¹ç·×¤¹¤ë¡£
+	$children_product_count = 0;
+	foreach ($arrChildren as $category) {
+		$children_product_count += $category['product_count'];
+	}
+
+	// ÁªÂò¤µ¤ì¤¿¥«¥Æ¥´¥ê¡¼¤ËÄ¾Â°¤Î¾¦ÉÊ¤¬¤¢¤ë¾ì¹ç¤Ï¡¢»Ò¥«¥Æ¥´¥ê¡¼¤ÎÀèÆ¬¤ËÄÉ²Ã¤¹¤ë¡£
+	if ($arrCategory['product_count'] > $children_product_count) {
+		$arrCategory['product_count'] -= $children_product_count;	// »Ò¥«¥Æ¥´¥ê¡¼¤Î¾¦ÉÊ¿ô¤ò½ü¤¯¡£
+		$arrCategory['has_children'] = false;	// ¾¦ÉÊ°ìÍ÷¥Ú¡¼¥¸¤ËÁ«°Ü¤µ¤»¤ë¤¿¤á¡£
+		array_unshift($arrChildren, $arrCategory);
+	}
+
+	// ·ë²Ì¤ò³ÊÇ¼¤¹¤ë¡£
+	$objPage->arrCategory = $arrCategory;
+	$objPage->arrChildren = $arrChildren;
+}
+?>
Index: branches/dev/html/mobile/products/list.php
===================================================================
--- branches/dev/html/mobile/products/list.php	(revision 11460)
+++ branches/dev/html/mobile/products/list.php	(revision 11460)
@@ -0,0 +1,406 @@
+<?php
+/**
+ * ¥â¥Ð¥¤¥ë¥µ¥¤¥È/¾¦ÉÊ°ìÍ÷
+ */
+
+require_once('../require.php');
+
+class LC_Page {
+	function LC_Page() {
+		global $arrSTATUS;
+		$this->arrSTATUS = $arrSTATUS;
+		global $arrSTATUS_IMAGE;
+		$this->arrSTATUS_IMAGE = $arrSTATUS_IMAGE;
+		global $arrDELIVERYDATE;
+		$this->arrDELIVERYDATE = $arrDELIVERYDATE;
+		global $arrPRODUCTLISTMAX;
+		$this->arrPRODUCTLISTMAX = $arrPRODUCTLISTMAX;		
+		/*
+		 session_start»þ¤Îno-cache¥Ø¥Ã¥À¡¼¤òÍÞÀ©¤¹¤ë¤³¤È¤Ç
+		 ¡ÖÌá¤ë¡×¥Ü¥¿¥ó»ÈÍÑ»þ¤ÎÍ­¸ú´ü¸ÂÀÚ¤ìÉ½¼¨¤òÍÞÀ©¤¹¤ë¡£
+		 private-no-expire:¥¯¥é¥¤¥¢¥ó¥È¤Î¥­¥ã¥Ã¥·¥å¤òµö²Ä¤¹¤ë¡£
+		*/
+		session_cache_limiter('private-no-expire');
+	}
+}
+
+$objPage = new LC_Page();
+$conn = new SC_DBConn();
+
+//É½¼¨·ï¿ô¤ÎÁªÂò
+if(sfIsInt($_POST['disp_number'])) {
+	$objPage->disp_number = $_POST['disp_number'];
+} else {
+	//ºÇ¾®É½¼¨·ï¿ô¤òÁªÂò
+	$objPage->disp_number = current(array_keys($arrPRODUCTLISTMAX));
+}
+
+//É½¼¨½ç½ø¤ÎÊÝÂ¸
+$objPage->orderby = $_POST['orderby'];
+
+// GET¤Î¥«¥Æ¥´¥êID¤ò¸µ¤ËÀµ¤·¤¤¥«¥Æ¥´¥êID¤ò¼èÆÀ¤¹¤ë¡£
+$category_id = sfGetCategoryId("", $_GET['category_id']);
+
+// ¥¿¥¤¥È¥ëÊÔ½¸
+$tpl_subtitle = "";
+if($_GET['mode'] == 'search'){
+	$tpl_subtitle = "¸¡º÷·ë²Ì";
+}elseif ($category_id == "" ) {
+	$tpl_subtitle = "Á´¾¦ÉÊ";
+}else{
+	$arrFirstCat = GetFirstCat($category_id);
+	$tpl_subtitle = $arrFirstCat['name'];
+}
+
+$objQuery = new SC_Query();
+$count = $objQuery->count("dtb_best_products", "category_id = ?", array($category_id));
+
+// °Ê²¼¤Î¾ò·ï¤ÇBEST¾¦ÉÊ¤òÉ½¼¨¤¹¤ë
+// ¡¦BESTºÇÂç¿ô¤Î¾¦ÉÊ¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤ë¡£
+// ¡¦¥«¥Æ¥´¥êID¤¬¥ë¡¼¥ÈID¤Ç¤¢¤ë¡£
+// ¡¦¸¡º÷¥â¡¼¥É¤Ç¤Ê¤¤¡£
+if(($count >= BEST_MIN) && lfIsRootCategory($category_id) && ($_GET['mode'] != 'search') ) {
+	// ¾¦ÉÊTOP¤ÎÉ½¼¨½èÍý
+	/** É¬¤º»ØÄê¤¹¤ë **/
+	$objPage->tpl_mainpage = "products/list.tpl";		// ¥á¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È	
+	
+	$objPage->arrBestItems = sfGetBestProducts($conn, $category_id);
+	$objPage->BEST_ROOP_MAX = ceil((BEST_MAX-1)/2);
+} else {
+	if ($_GET['mode'] == 'search' && strlen($_GET['category_id']) == 0 ){
+		// ¸¡º÷»þ¤Ëcategory_id¤¬GET¤ËÂ¸ºß¤·¤Ê¤¤¾ì¹ç¤Ï¡¢²¾¤ËËä¤á¤¿ID¤ò¶õÇò¤ËÌá¤¹
+		$category_id = '';	
+	}
+	
+	// ¾¦ÉÊ°ìÍ÷¤ÎÉ½¼¨½èÍý
+	$objPage = lfDispProductsList($category_id, $_GET['name'], $objPage->disp_number, $_POST['orderby']);
+	
+	// ¸¡º÷¾ò·ï¤ò²èÌÌ¤ËÉ½¼¨
+	// ¥«¥Æ¥´¥ê¡¼¸¡º÷¾ò·ï
+	if (strlen($_GET['category_id']) == 0) {
+		$arrSearch['category'] = "»ØÄê¤Ê¤·";
+	}else{
+		$arrCat = $conn->getOne("SELECT category_name FROM dtb_category WHERE category_id = ?",array($category_id));
+		$arrSearch['category'] = $arrCat;
+	}
+	
+	// ¾¦ÉÊÌ¾¸¡º÷¾ò·ï
+	if ($_GET['name'] === "") {
+		$arrSearch['name'] = "»ØÄê¤Ê¤·";
+	}else{
+		$arrSearch['name'] = $_GET['name'];
+	}
+}
+
+// ¥ì¥¤¥¢¥¦¥È¥Ç¥¶¥¤¥ó¤ò¼èÆÀ
+$objPage = sfGetPageLayout($objPage, false, "products/list.php");
+
+if($_POST['mode'] == "cart" && $_POST['product_id'] != "") {
+	// ÃÍ¤ÎÀµÅöÀ­¥Á¥§¥Ã¥¯
+	if(!sfIsInt($_POST['product_id']) || !sfIsRecord("dtb_products", "product_id", $_POST['product_id'], "del_flg = 0 AND status = 1")) {
+		sfDispSiteError(PRODUCT_NOT_FOUND);
+	} else {
+		// ÆþÎÏÃÍ¤ÎÊÑ´¹
+		$objPage->arrErr = lfCheckError($_POST['product_id']);
+		if(count($objPage->arrErr) == 0) {
+			$objCartSess = new SC_CartSession();
+			$classcategory_id = "classcategory_id". $_POST['product_id'];
+			$classcategory_id1 = $_POST[$classcategory_id. '_1'];
+			$classcategory_id2 = $_POST[$classcategory_id. '_2'];
+			$quantity = "quantity". $_POST['product_id'];
+			// µ¬³Ê1¤¬ÀßÄê¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç
+			if(!$objPage->tpl_classcat_find1[$_POST['product_id']]) {
+				$classcategory_id1 = '0';
+			}
+			// µ¬³Ê2¤¬ÀßÄê¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç
+			if(!$objPage->tpl_classcat_find2[$_POST['product_id']]) {
+				$classcategory_id2 = '0';
+			}
+			$objCartSess->setPrevURL($_SERVER['REQUEST_URI']);
+			$objCartSess->addProduct(array($_POST['product_id'], $classcategory_id1, $classcategory_id2), $_POST[$quantity]);
+			header("Location: " . URL_CART_TOP);
+			exit;
+		}
+	}
+}
+
+
+$objPage->tpl_subtitle = $tpl_subtitle;
+
+// »ÙÊ§ÊýË¡¤Î¼èÆÀ
+$objPage->arrPayment = lfGetPayment();
+// ÆþÎÏ¾ðÊó¤òÅÏ¤¹
+$objPage->arrForm = $_POST;
+
+$objPage->category_id = $category_id;
+$objPage->arrSearch = $arrSearch;
+
+sfCustomDisplay($objPage);
+
+//-----------------------------------------------------------------------------------------------------------------------------------
+/* ¥«¥Æ¥´¥êID¤¬¥ë¡¼¥È¤«¤É¤¦¤«¤ÎÈ½Äê */
+function lfIsRootCategory($category_id) {
+	$objQuery = new SC_Query();
+	$level = $objQuery->get("dtb_category", "level", "category_id = ?", array($category_id));
+	if($level == 1) {
+		return true;
+	}
+	return false;
+}
+
+/* ¾¦ÉÊ°ìÍ÷¤ÎÉ½¼¨ */
+function lfDispProductsList($category_id, $name, $disp_num, $orderby) {
+	global $objPage;
+	$objQuery = new SC_Query();	
+	$objPage->tpl_pageno = $_POST['pageno'];
+
+	//É½¼¨·ï¿ô¤Ç¥Æ¥ó¥×¥ì¡¼¥È¤òÀÚ¤êÂØ¤¨¤ë
+	$objPage->tpl_mainpage = "products/list.tpl";		// ¥á¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È		
+
+	//É½¼¨½ç½ø
+	switch($orderby) {
+	//²Á³Ê½ç
+	case 'price':
+		$order = "price02_min ASC";
+		break;
+	//¿·Ãå½ç
+	case 'date':
+		$order = "create_date DESC";
+		break;
+	default:
+		$order = "category_rank DESC, rank DESC";
+		break;
+	}
+	
+	// ¾¦ÉÊ¸¡º÷¾ò·ï¤ÎºîÀ®¡ÊÌ¤ºï½ü¡¢É½¼¨¡Ë
+	$where = "del_flg = 0 AND status = 1 ";
+	// ¥«¥Æ¥´¥ê¤«¤é¤ÎWHEREÊ¸»úÎó¼èÆÀ
+	if ( $category_id ) {
+		$where .= 'AND category_id = ?';
+		$arrval = array($category_id);
+	}
+		
+	// ¾¦ÉÊÌ¾¤òwhereÊ¸¤Ë
+	$name = ereg_replace(",", "", $name);
+	if ( strlen($name) > 0 ){
+		$where .= " AND ( name ILIKE ? OR comment3 ILIKE ?) ";
+		$ret = sfManualEscape($name);		
+		$arrval[] = "%$ret%";
+		$arrval[] = "%$ret%";
+	}
+			
+	// ¹Ô¿ô¤Î¼èÆÀ
+	$linemax = $objQuery->count("vw_products_allclass AS allcls", $where, $arrval);
+	$objPage->tpl_linemax = $linemax;	// ²¿·ï¤¬³ºÅö¤·¤Þ¤·¤¿¡£É½¼¨ÍÑ
+	
+	// ¥Ú¡¼¥¸Á÷¤ê¤Î¼èÆÀ
+	$objNavi = new SC_PageNavi($_POST['pageno'], $linemax, $disp_num, "fnNaviPage", NAVI_PMAX);
+	
+	$strnavi = $objNavi->strnavi;
+	$strnavi = str_replace('onclick="fnNaviPage', 'onclick="form1.mode.value=\''.'\'; fnNaviPage', $strnavi);
+	$objPage->tpl_strnavi = $strnavi;		// É½¼¨Ê¸»úÎó
+	$startno = $objNavi->start_row;					// ³«»Ï¹Ô
+	
+	// ¼èÆÀÈÏ°Ï¤Î»ØÄê(³«»Ï¹ÔÈÖ¹æ¡¢¹Ô¿ô¤Î¥»¥Ã¥È)
+	$objQuery->setlimitoffset($disp_num, $startno);
+	// É½¼¨½ç½ø
+	$objQuery->setorder($order);
+	// ¸¡º÷·ë²Ì¤Î¼èÆÀ
+	$objPage->arrProducts = $objQuery->select("*", "vw_products_allclass AS allcls", $where, $arrval);
+	
+	// µ¬³ÊÌ¾°ìÍ÷
+	$arrClassName = sfGetIDValueList("dtb_class", "class_id", "name");
+	// µ¬³ÊÊ¬ÎàÌ¾°ìÍ÷
+	$arrClassCatName = sfGetIDValueList("dtb_classcategory", "classcategory_id", "name");
+	// ´ë²è¥»¥ì¥¯¥È¥Ü¥Ã¥¯¥¹ÀßÄê
+	if($disp_num == 15) {
+		for($i = 0; $i < count($objPage->arrProducts); $i++) {
+			$objPage = lfMakeSelect($objPage->arrProducts[$i]['product_id'], $arrClassName, $arrClassCatName);
+			// ¹ØÆþÀ©¸Â¿ô¤ò¼èÆÀ
+			$objPage = lfGetSaleLimit($objPage->arrProducts[$i]);
+		}
+	}
+
+	return $objPage;
+}
+
+/* µ¬³Ê¥»¥ì¥¯¥È¥Ü¥Ã¥¯¥¹¤ÎºîÀ® */
+function lfMakeSelect($product_id, $arrClassName, $arrClassCatName) {
+	global $objPage;
+	
+	$classcat_find1 = false;
+	$classcat_find2 = false;
+	// ºß¸Ë¤¢¤ê¤Î¾¦ÉÊ¤ÎÍ­Ìµ
+	$stock_find = false;
+	
+	// ¾¦ÉÊµ¬³Ê¾ðÊó¤Î¼èÆÀ	
+	$arrProductsClass = lfGetProductsClass($product_id);
+	
+	// µ¬³Ê1¥¯¥é¥¹Ì¾¤Î¼èÆÀ
+	$objPage->tpl_class_name1[$product_id] = $arrClassName[$arrProductsClass[0]['class_id1']];
+	// µ¬³Ê2¥¯¥é¥¹Ì¾¤Î¼èÆÀ
+	$objPage->tpl_class_name2[$product_id] = $arrClassName[$arrProductsClass[0]['class_id2']];
+	
+	// ¤¹¤Ù¤Æ¤ÎÁÈ¤ß¹ç¤ï¤»¿ô	
+	$count = count($arrProductsClass);
+	
+	$classcat_id1 = "";
+	
+	$arrSele = array();
+	$arrList = array();
+	
+	$list_id = 0;
+	$arrList[0] = "\tlist". $product_id. "_0 = new Array('ÁªÂò¤·¤Æ¤¯¤À¤µ¤¤'";
+	$arrVal[0] = "\tval". $product_id. "_0 = new Array(''";
+	
+	for ($i = 0; $i < $count; $i++) {
+		// ºß¸Ë¤Î¥Á¥§¥Ã¥¯
+		if($arrProductsClass[$i]['stock'] <= 0 && $arrProductsClass[$i]['stock_unlimited'] != '1') {
+			continue;
+		}
+		
+		$stock_find = true;
+		
+		// µ¬³Ê1¤Î¥»¥ì¥¯¥È¥Ü¥Ã¥¯¥¹ÍÑ
+		if($classcat_id1 != $arrProductsClass[$i]['classcategory_id1']){
+			$arrList[$list_id].=");\n";
+			$arrVal[$list_id].=");\n";
+			$classcat_id1 = $arrProductsClass[$i]['classcategory_id1'];
+			$arrSele[$classcat_id1] = $arrClassCatName[$classcat_id1];
+			$list_id++;
+		}
+		
+		// µ¬³Ê2¤Î¥»¥ì¥¯¥È¥Ü¥Ã¥¯¥¹ÍÑ
+		$classcat_id2 = $arrProductsClass[$i]['classcategory_id2'];
+		
+		// ¥»¥ì¥¯¥È¥Ü¥Ã¥¯¥¹É½¼¨ÃÍ
+		if($arrList[$list_id] == "") {
+			$arrList[$list_id] = "\tlist". $product_id. "_". $list_id. " = new Array('ÁªÂò¤·¤Æ¤¯¤À¤µ¤¤', '". $arrClassCatName[$classcat_id2]. "'";
+		} else {
+			$arrList[$list_id].= ", '".$arrClassCatName[$classcat_id2]."'";
+		}
+		
+		// ¥»¥ì¥¯¥È¥Ü¥Ã¥¯¥¹POSTÃÍ
+		if($arrVal[$list_id] == "") {
+			$arrVal[$list_id] = "\tval". $product_id. "_". $list_id. " = new Array('', '". $classcat_id2. "'";
+		} else {
+			$arrVal[$list_id].= ", '".$classcat_id2."'";
+		}
+	}	
+	
+	$arrList[$list_id].=");\n";
+	$arrVal[$list_id].=");\n";
+		
+	// µ¬³Ê1
+	$objPage->arrClassCat1[$product_id] = $arrSele;
+	
+	$lists = "\tlists".$product_id. " = new Array(";
+	$no = 0;
+	foreach($arrList as $val) {
+		$objPage->tpl_javascript.= $val;
+		if ($no != 0) {
+			$lists.= ",list". $product_id. "_". $no;
+		} else {
+			$lists.= "list". $product_id. "_". $no;
+		}
+		$no++;
+	}
+	$objPage->tpl_javascript.= $lists.");\n";
+	
+	$vals = "\tvals".$product_id. " = new Array(";
+	$no = 0;
+	foreach($arrVal as $val) {
+		$objPage->tpl_javascript.= $val;
+		if ($no != 0) {
+			$vals.= ",val". $product_id. "_". $no;
+		} else {
+			$vals.= "val". $product_id. "_". $no;
+		}
+		$no++;
+	}
+	$objPage->tpl_javascript.= $vals.");\n";
+	
+	// ÁªÂò¤µ¤ì¤Æ¤¤¤ëµ¬³Ê2ID
+	$classcategory_id = "classcategory_id". $product_id;
+	$objPage->tpl_onload .= "lnSetSelect('".$classcategory_id."_1','".$classcategory_id."_2','".$product_id."','".$_POST[$classcategory_id."_2"]."'); ";
+
+	// µ¬³Ê1¤¬ÀßÄê¤µ¤ì¤Æ¤¤¤ë
+	if($arrProductsClass[0]['classcategory_id1'] != '0') {
+		$classcat_find1 = true;
+	}
+	
+	// µ¬³Ê2¤¬ÀßÄê¤µ¤ì¤Æ¤¤¤ë
+	if($arrProductsClass[0]['classcategory_id2'] != '0') {
+		$classcat_find2 = true;
+	}
+		
+	$objPage->tpl_classcat_find1[$product_id] = $classcat_find1;
+	$objPage->tpl_classcat_find2[$product_id] = $classcat_find2;
+	$objPage->tpl_stock_find[$product_id] = $stock_find;
+		
+	return $objPage;
+}
+/* ¾¦ÉÊµ¬³Ê¾ðÊó¤Î¼èÆÀ */
+function lfGetProductsClass($product_id) {
+	$arrRet = array();
+	if(sfIsInt($product_id)) {
+		// ¾¦ÉÊµ¬³Ê¼èÆÀ
+		$objQuery = new SC_Query();
+		$col = "product_class_id, classcategory_id1, classcategory_id2, class_id1, class_id2, stock, stock_unlimited";
+		$table = "vw_product_class AS prdcls";
+		$where = "product_id = ?";
+		$objQuery->setorder("rank1 DESC, rank2 DESC");
+		$arrRet = $objQuery->select($col, $table, $where, array($product_id));
+	}
+	return $arrRet;
+}
+
+/* ÆþÎÏÆâÍÆ¤Î¥Á¥§¥Ã¥¯ */
+function lfCheckError($id) {
+	global $objPage;
+	
+	// ÆþÎÏ¥Ç¡¼¥¿¤òÅÏ¤¹¡£
+	$objErr = new SC_CheckError();
+	
+	$classcategory_id1 = "classcategory_id". $id. "_1";
+	$classcategory_id2 = "classcategory_id". $id. "_2";
+	$quantity = "quantity". $id;
+	// Ê£¿ô¹àÌÜ¥Á¥§¥Ã¥¯
+	if ($objPage->tpl_classcat_find1[$id]) {
+		$objErr->doFunc(array("µ¬³Ê1", $classcategory_id1, INT_LEN), array("EXIST_CHECK", "NUM_CHECK", "MAX_LENGTH_CHECK"));
+	}
+	if ($objPage->tpl_classcat_find2[$id]) {
+		$objErr->doFunc(array("µ¬³Ê2", $classcategory_id2, INT_LEN), array("EXIST_CHECK", "NUM_CHECK", "MAX_LENGTH_CHECK"));
+	}
+	$objErr->doFunc(array("¸Ä¿ô", $quantity, INT_LEN), array("EXIST_CHECK", "ZERO_CHECK", "NUM_CHECK", "MAX_LENGTH_CHECK"));
+			
+	return $objErr->arrErr;
+}
+
+// ¹ØÆþÀ©¸Â¿ô¤ÎÀßÄê
+function lfGetSaleLimit($product) {
+	global $objPage;
+	//ºß¸Ë¤¬Ìµ¸Â¤Þ¤¿¤Ï¹ØÆþÀ©¸ÂÃÍ¤¬ÀßÄêÃÍ¤è¤êÂç¤­¤¤¾ì¹ç
+	if($product['sale_unlimited'] == 1 || $product['sale_limit'] > SALE_LIMIT_MAX) {
+		$objPage->tpl_sale_limit[$product['product_id']] = SALE_LIMIT_MAX;
+	} else {
+		$objPage->tpl_sale_limit[$product['product_id']] = $product['sale_limit'];
+	}
+	
+	return $objPage;
+}
+
+//»ÙÊ§ÊýË¡¤Î¼èÆÀ
+//payment_id	1:Âå¶â°ú´¹¡¡2:¶ä¹Ô¿¶¤ê¹þ¤ß¡¡3:¸½¶â½ñÎ±
+function lfGetPayment() {
+	$objQuery = new SC_Query;
+	$col = "payment_id, rule, payment_method";
+	$from = "dtb_payment";
+	$where = "del_flg = 0";
+	$order = "payment_id";
+	$objQuery->setorder($order);
+	$arrRet = $objQuery->select($col, $from, $where);
+	return $arrRet;
+}
+
+?>
Index: branches/dev/html/mobile/.htaccess
===================================================================
--- branches/dev/html/mobile/.htaccess	(revision 11460)
+++ branches/dev/html/mobile/.htaccess	(revision 11460)
@@ -0,0 +1,5 @@
+php_flag mbstring.encoding_translation 0
+php_value output_handler null
+php_value variables_order EGPS
+php_flag session.auto_start 0
+php_flag session.use_trans_sid 1
Index: branches/dev/html/mobile/mypage/history_detail.php
===================================================================
--- branches/dev/html/mobile/mypage/history_detail.php	(revision 11460)
+++ branches/dev/html/mobile/mypage/history_detail.php	(revision 11460)
@@ -0,0 +1,84 @@
+<?php
+/*
+ * ÍúÎò
+ */
+
+require_once("../require.php");
+
+class LC_Page {
+	function LC_Page() {
+		$this->tpl_mainpage = 'mypage/history_detail.tpl';
+		$this->tpl_title = "MY¥Ú¡¼¥¸/¹ØÆþÍúÎò¾ÜºÙ";
+		session_cache_limiter('private-no-expire');
+	}
+}
+
+$objPage = new LC_Page();
+$objView = new SC_SiteView();
+$objQuery = new SC_Query();
+$objCustomer = new SC_Customer();
+
+// ¥ì¥¤¥¢¥¦¥È¥Ç¥¶¥¤¥ó¤ò¼èÆÀ
+$objPage = sfGetPageLayout($objPage, false, "mypage/index.php");
+
+//ÉÔÀµ¥¢¥¯¥»¥¹È½Äê
+$from = "dtb_order";
+$where = "del_flg = 0 AND customer_id = ? AND order_id = ? ";
+$arrval = array($objCustomer->getValue('customer_id'), $_POST['order_id']);
+//DB¤Ë¾ðÊó¤¬¤¢¤ë¤«È½Äê
+$cnt = $objQuery->count($from, $where, $arrval);
+
+//¥í¥°¥¤¥ó¤·¤Æ¤¤¤Ê¤¤¡¢¤Þ¤¿¤ÏDB¤Ë¾ðÊó¤¬Ìµ¤¤¾ì¹ç
+if (!$objCustomer->isLoginSuccess() or $cnt == 0){
+	sfDispSiteError(CUSTOMER_ERROR);
+} else {
+	//¼õÃí¾ÜºÙ¥Ç¡¼¥¿¤Î¼èÆÀ
+	$objPage->arrDisp = lfGetOrderData($_POST['order_id']);
+	// »ÙÊ§¤¤ÊýË¡¤Î¼èÆÀ
+	$objPage->arrPayment = sfGetIDValueList("dtb_payment", "payment_id", "payment_method");
+	// ÇÛÁ÷»þ´Ö¤Î¼èÆÀ
+	$arrRet = sfGetDelivTime($objPage->arrDisp['payment_id']);
+	$objPage->arrDelivTime = sfArrKeyValue($arrRet, 'time_id', 'deliv_time');
+
+	//¥Þ¥¤¥Ú¡¼¥¸¥È¥Ã¥×¸ÜµÒ¾ðÊóÉ½¼¨ÍÑ
+	$objPage->CustomerName1 = $objCustomer->getvalue('name01');
+	$objPage->CustomerName2 = $objCustomer->getvalue('name02');
+	$objPage->CustomerPoint = $objCustomer->getvalue('point');
+}
+
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+//-----------------------------------------------------------------------------------------------------------------------------------
+
+//¼õÃí¾ÜºÙ¥Ç¡¼¥¿¤Î¼èÆÀ
+function lfGetOrderData($order_id) {
+	//¼õÃíÈÖ¹æ¤¬¿ô»ú¤Ç¤¢¤ì¤Ð
+	if(sfIsInt($order_id)) {
+		// DB¤«¤é¼õÃí¾ðÊó¤òÆÉ¤ß¹þ¤à
+		$objQuery = new SC_Query();
+		$col = "order_id, create_date, payment_id, subtotal, tax, use_point, add_point, discount, ";
+		$col .= "deliv_fee, charge, payment_total, deliv_name01, deliv_name02, deliv_kana01, deliv_kana02, ";
+		$col .= "deliv_zip01, deliv_zip02, deliv_pref, deliv_addr01, deliv_addr02, deliv_tel01, deliv_tel02, deliv_tel03, deliv_time_id, deliv_date ";
+		$from = "dtb_order";
+		$where = "order_id = ?";
+		$arrRet = $objQuery->select($col, $from, $where, array($order_id));
+		$arrOrder = $arrRet[0];
+		// ¼õÃí¾ÜºÙ¥Ç¡¼¥¿¤Î¼èÆÀ
+		$arrRet = lfGetOrderDetail($order_id);
+		$arrOrderDetail = sfSwapArray($arrRet);
+		$arrData = array_merge($arrOrder, $arrOrderDetail);
+	}
+	return $arrData;
+}
+
+// ¼õÃí¾ÜºÙ¥Ç¡¼¥¿¤Î¼èÆÀ
+function lfGetOrderDetail($order_id) {
+	$objQuery = new SC_Query();
+	$col = "product_id, product_code, product_name, classcategory_name1, classcategory_name2, price, quantity, point_rate";
+	$where = "order_id = ?";
+	$objQuery->setorder("classcategory_id1, classcategory_id2");
+	$arrRet = $objQuery->select($col, "dtb_order_detail", $where, array($order_id));
+	return $arrRet;
+}
+
+?>
Index: branches/dev/html/mobile/mypage/change.php
===================================================================
--- branches/dev/html/mobile/mypage/change.php	(revision 11460)
+++ branches/dev/html/mobile/mypage/change.php	(revision 11460)
@@ -0,0 +1,470 @@
+<?php
+/*
+ * ¾ðÊóÊÑ¹¹
+ */
+
+require_once("../require.php");
+
+class LC_Page {
+	function LC_Page() {
+		$this->tpl_mainpage = 'mypage/change.tpl';		// ¥á¥¤¥ó¥Æ¥ó¥×¥ì¡¼¥È
+		$this->tpl_title .= 'ÅÐÏ¿ÊÑ¹¹(1/3)';			//¡¡¥Ú¡¼¥¸¥¿¥¤¥È¥ë
+	}
+}
+
+//---- ¥Ú¡¼¥¸½é´üÀßÄê
+$CONF = sf_getBasisData();					// Å¹ÊÞ´ðËÜ¾ðÊó
+$objConn = new SC_DbConn();
+$objPage = new LC_Page();
+$objView = new SC_SiteView();
+$objDate = new SC_Date(START_BIRTH_YEAR, date("Y",strtotime("now")));
+$objQuery = new SC_Query();
+$objCustomer = new SC_Customer();
+$objPage->arrPref = $arrPref;
+$objPage->arrJob = $arrJob;
+$objPage->arrReminder = $arrReminder;
+$objPage->arrYear = $objDate->getYear('', 1950);	//¡¡ÆüÉÕ¥×¥ë¥À¥¦¥óÀßÄê
+$objPage->arrMonth = $objDate->getMonth();
+$objPage->arrDay = $objDate->getDay();
+
+// ¥ì¥¤¥¢¥¦¥È¥Ç¥¶¥¤¥ó¤ò¼èÆÀ
+$objPage = sfGetPageLayout($objPage, false, DEF_LAYOUT);
+
+//---- ÅÐÏ¿ÍÑ¥«¥é¥àÇÛÎó
+$arrRegistColumn = array(
+							 array(  "column" => "name01", "convert" => "aKV" ),
+							 array(  "column" => "name02", "convert" => "aKV" ),
+							 array(  "column" => "kana01", "convert" => "CKV" ),
+							 array(  "column" => "kana02", "convert" => "CKV" ),
+							 array(  "column" => "zip01", "convert" => "n" ),
+							 array(  "column" => "zip02", "convert" => "n" ),
+							 array(  "column" => "pref", "convert" => "n" ),
+							 array(  "column" => "addr01", "convert" => "aKV" ),
+							 array(  "column" => "addr02", "convert" => "aKV" ),
+							 array(  "column" => "email", "convert" => "a" ),
+							 array(  "column" => "email_mobile", "convert" => "a" ),
+							 array(  "column" => "tel01", "convert" => "n" ),
+							 array(  "column" => "tel02", "convert" => "n" ),
+							 array(  "column" => "tel03", "convert" => "n" ),
+							 array(  "column" => "fax01", "convert" => "n" ),
+							 array(  "column" => "fax02", "convert" => "n" ),
+							 array(  "column" => "fax03", "convert" => "n" ),
+							 array(  "column" => "sex", "convert" => "n" ),
+							 array(  "column" => "job", "convert" => "n" ),
+							 array(  "column" => "birth", "convert" => "n" ),
+							 array(  "column" => "reminder", "convert" => "n" ),
+							 array(  "column" => "reminder_answer", "convert" => "aKV"),
+							 array(  "column" => "password", "convert" => "a" ),
+						 );
+
+//---- ÅÐÏ¿½ü³°ÍÑ¥«¥é¥àÇÛÎó
+$arrRejectRegistColumn = array("year", "month", "day", "email02", "email_mobile02", "password02");
+
+$objPage->arrForm = lfGetCustomerData();
+$objPage->arrForm['password'] = DEFAULT_PASSWORD;
+
+if ($_SERVER["REQUEST_METHOD"] == "POST") {
+
+	//-- POST¥Ç¡¼¥¿¤Î°ú¤­·Ñ¤®
+	$objPage->arrForm = array_merge($objPage->arrForm, $_POST);
+
+	if($objPage->arrForm['year'] == '----') {
+		$objPage->arrForm['year'] = '';
+	}
+	
+	$objPage->arrForm['email'] = strtolower($objPage->arrForm['email']);		// email¤Ï¤¹¤Ù¤Æ¾®Ê¸»ú¤Ç½èÍý
+	
+	//-- ÆþÎÏ¥Ç¡¼¥¿¤ÎÊÑ´¹
+	$objPage->arrForm = lfConvertParam($objPage->arrForm, $arrRegistColumn);
+
+	//--¡¡ÆþÎÏ¥¨¥é¡¼¥Á¥§¥Ã¥¯
+	if ($_POST["mode"] == "set1") {
+		$objPage->arrErr = lfErrorCheck1($objPage->arrForm);
+		$objPage->tpl_mainpage = 'mypage/change.tpl';
+		$objPage->tpl_title = 'ÅÐÏ¿ÊÑ¹¹(1/3)';
+	} elseif ($_POST["mode"] == "set2") {
+		$objPage->arrErr = lfErrorCheck2($objPage->arrForm);
+		$objPage->tpl_mainpage = 'mypage/set1.tpl';
+		$objPage->tpl_title = 'ÅÐÏ¿ÊÑ¹¹(2/3)';
+	} else {
+		$objPage->arrErr = lfErrorCheck3($objPage->arrForm);
+		$objPage->tpl_mainpage = 'mypage/set2.tpl';
+		$objPage->tpl_title = 'ÅÐÏ¿ÊÑ¹¹(3/3)';
+	}
+
+	if ($objPage->arrErr || $_POST["mode"] == "return") {		// ÆþÎÏ¥¨¥é¡¼¤Î¥Á¥§¥Ã¥¯
+		foreach($objPage->arrForm as $key => $val) {
+			$objPage->$key = $val;
+		}
+
+		//-- ¥Ç¡¼¥¿¤ÎÀßÄê
+		if ($_POST["mode"] == "set1") {
+			$checkVal = array("email", "password", "reminder", "reminder_answer", "name01", "name02", "kana01", "kana02");
+			foreach($objPage->arrForm as $key => $val) {
+				if ($key != "mode" && $key != "subm" & !in_array($key, $checkVal)) $objPage->list_data[ $key ] = $val;
+			}
+
+		} elseif ($_POST["mode"] == "set2") {
+			$checkVal = array("sex", "year", "month", "day", "zip01", "zip02");
+			foreach($objPage->arrForm as $key => $val) {
+				if ($key != "mode" && $key != "subm" & !in_array($key, $checkVal)) $objPage->list_data[ $key ] = $val;
+			}
+		} else {
+			$checkVal = array("pref", "addr01", "addr02", "tel01", "tel02", "tel03");
+			foreach($objPage->arrForm as $key => $val) {
+				if ($key != "mode" && $key != "subm" & !in_array($key, $checkVal)) $objPage->list_data[ $key ] = $val;
+			}
+		}
+
+
+	} else {
+
+		//--¡¡¥Æ¥ó¥×¥ì¡¼¥ÈÀßÄê
+		if ($_POST["mode"] == "set1") {
+			$objPage->tpl_mainpage = 'mypage/set1.tpl';
+			$objPage->tpl_title = 'ÅÐÏ¿ÊÑ¹¹(2/3)';
+		} elseif ($_POST["mode"] == "set2") {
+			$objPage->tpl_mainpage = 'mypage/set2.tpl';
+			$objPage->tpl_title = 'ÅÐÏ¿ÊÑ¹¹(3/3)';
+
+			$address = lfGetAddress($_REQUEST['zip01'].$_REQUEST['zip02']);
+
+			$objPage->arrForm['pref'] = @$address[0]['state'];
+			$objPage->arrForm['addr01'] = @$address[0]['city'] . @$address[0]['town'];
+		} elseif ($_POST["mode"] == "confirm") {
+			//¥Ñ¥¹¥ï¡¼¥ÉÉ½¼¨
+			$passlen = strlen($objPage->arrForm['password']);
+			$objPage->passlen = lfPassLen($passlen);
+			
+			//¥á¡¼¥ë¼õ¤±¼è¤ê
+			if ($objPage->arrForm['mail_flag'] = "ON") {
+				$objPage->arrForm['mail_flag']  = "2";
+			}
+
+			$objPage->tpl_mainpage = 'mypage/change_confirm.tpl';
+			$objPage->tpl_title = 'ÅÐÏ¿ÊÑ¹¹(³ÎÇ§¥Ú¡¼¥¸)';
+
+		}
+
+		//-- ¥Ç¡¼¥¿ÀßÄê
+		unset($objPage->list_data);
+		foreach($_POST as $key => $val) {
+			if ($key != "mode" && $key != "subm") $objPage->list_data[ $key ] = $val;
+		}
+
+
+		//--¡¡²¾ÅÐÏ¿¤È´°Î»²èÌÌ
+		if ($_POST["mode"] == "complete") {
+
+			//-- ÆþÎÏ¥Ç¡¼¥¿¤ÎÊÑ´¹
+			$arrForm = lfConvertParam($_POST, $arrRegistColumn);
+			$arrForm['email'] = strtolower($arrForm['email']);		// email¤Ï¤¹¤Ù¤Æ¾®Ê¸»ú¤Ç½èÍý
+	
+			//¥¨¥é¡¼¥Á¥§¥Ã¥¯
+			$objPage->arrErr = lfErrorCheck($objPage->arrForm);
+			$email_flag = true;
+
+			if($objPage->arrForm['email'] != $objCustomer->getValue('email')) {
+				//¥á¡¼¥ë¥¢¥É¥ì¥¹¤Î½ÅÊ£¥Á¥§¥Ã¥¯
+				$email_cnt = $objQuery->count("dtb_customer","del_flg=0 AND email=?", array($objPage->arrForm['email']));
+				if ($email_cnt > 0){
+					$email_flag = false;
+				}
+			}
+
+			//¥¨¥é¡¼¤Ê¤·¤Ç¤«¤Ä¥á¡¼¥ë¥¢¥É¥ì¥¹¤¬½ÅÊ£¤·¤Æ¤¤¤Ê¤¤¾ì¹ç
+			if($objPage->arrErr == "" && $email_flag) {
+				$arrForm['customer_id'] = $objCustomer->getValue('customer_id');
+				//-- ÊÔ½¸ÅÐÏ¿
+				sfEditCustomerData($arrForm, $arrRegistColumn);
+				//¥»¥Ã¥·¥ç¥ó¾ðÊó¤òºÇ¿·¤Î¾õÂÖ¤Ë¹¹¿·¤¹¤ë
+				$objCustomer->updateSession();
+				//´°Î»¥Ú¡¼¥¸¤Ø
+				header("Location: " . gfAddSessionId("change_complete.php"));
+				exit;
+			} else {
+				sfDispSiteError(CUSTOMER_ERROR);
+			}
+
+		}
+	}
+}
+
+if($objPage->year == '') {
+	$objPage->year = '----';
+}
+
+//----¡¡¥Ú¡¼¥¸É½¼¨
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+
+//----------------------------------------------------------------------------------------------------------------------
+
+//---- function·²
+function lfRegistData ($array, $arrRegistColumn, $arrRejectRegistColumn) {
+	global $objConn;
+
+	// ²¾ÅÐÏ¿
+	foreach ($arrRegistColumn as $data) {
+		if (strlen($array[ $data["column"] ]) > 0 && ! in_array($data["column"], $arrRejectRegistColumn)) {
+			$arrRegist[ $data["column"] ] = $array[ $data["column"] ];
+		}
+	}
+		
+	// ÃÂÀ¸Æü¤¬ÆþÎÏ¤µ¤ì¤Æ¤¤¤ë¾ì¹ç
+	if (strlen($array["year"]) > 0 ) {
+		$arrRegist["birth"] = $array["year"] ."/". $array["month"] ."/". $array["day"] ." 00:00:00";
+	}
+	
+	// ¥Ñ¥¹¥ï¡¼¥É¤Î°Å¹æ²½
+	$arrRegist["password"] = sha1($arrRegist["password"] . ":" . AUTH_MAGIC);
+	
+	$count = 1;
+	while ($count != 0) {
+		$uniqid = sfGetUniqRandomId("t");
+		$count = $objConn->getOne("SELECT COUNT(*) FROM dtb_customer WHERE secret_key = ?", array($uniqid));
+	}
+	
+	$arrRegist["secret_key"] = $uniqid;		// ²¾ÅÐÏ¿IDÈ¯¹Ô
+	$arrRegist["create_date"] = "now()"; 	// ºîÀ®Æü
+	$arrRegist["update_date"] = "now()"; 	// ¹¹¿·Æü
+	$arrRegist["first_buy_date"] = "";	 	// ºÇ½é¤Î¹ØÆþÆü
+	
+	// ·ÈÂÓ¥á¡¼¥ë¥¢¥É¥ì¥¹
+	$arrRegist['email_mobile'] = $arrRegist['email'];
+
+	//-- ²¾ÅÐÏ¿¼Â¹Ô
+	$objConn->query("BEGIN");
+
+	$objQuery = new SC_Query();
+	$objQuery->insert("dtb_customer", $arrRegist);
+
+	//--¡¡Èó²ñ°÷¤Ç¥á¥ë¥Þ¥¬ÅÐÏ¿¤·¤Æ¤¤¤ë¤«¤ÎÈ½Äê
+	$sql = "SELECT count(*) FROM dtb_customer_mail WHERE email = ?";
+	$mailResult = $objConn->getOne($sql, array($arrRegist["email"]));
+
+	//--¡¡¥á¥ë¥Þ¥¬²¾ÅÐÏ¿¼Â¹Ô
+	$arrRegistMail["email"] = $arrRegist["email"];	
+	if ($array["mail_flag"] == 1) {
+		$arrRegistMail["mail_flag"] = 4; 
+	} elseif ($array["mail_flag"] == 2) {
+		$arrRegistMail["mail_flag"] = 5; 
+	} else {
+		$arrRegistMail["mail_flag"] = 6; 
+	}
+	$arrRegistMail["update_date"] = "now()";
+	
+	// Èó²ñ°÷¤Ç¥á¥ë¥Þ¥¬ÅÐÏ¿¤·¤Æ¤¤¤ë¾ì¹ç
+	if ($mailResult == 1) {		
+		$objQuery->update("dtb_customer_mail", $arrRegistMail, "email = '" .addslashes($arrRegistMail["email"]). "'");			
+	} else {				//¡¡¿·µ¬ÅÐÏ¿¤Î¾ì¹ç
+		$arrRegistMail["create_date"] = "now()";
+		$objQuery->insert("dtb_customer_mail", $arrRegistMail);		
+	}
+	$objConn->query("COMMIT");
+
+	return $uniqid;
+}
+
+//----¡¡¼èÆÀÊ¸»úÎó¤ÎÊÑ´¹
+function lfConvertParam($array, $arrRegistColumn) {
+	/*
+	 *	Ê¸»úÎó¤ÎÊÑ´¹
+	 *	K :  ¡ÖÈ¾³Ñ(ÊÝ¶¸)ÊÒ²¾Ì¾¡×¤ò¡ÖÁ´³ÑÊÒ²¾Ì¾¡×¤ËÊÑ´¹
+	 *	C :  ¡ÖÁ´³Ñ¤Ò¤é²¾Ì¾¡×¤ò¡ÖÁ´³Ñ¤«¤¿²¾Ì¾¡×¤ËÊÑ´¹
+	 *	V :  ÂùÅÀÉÕ¤­¤ÎÊ¸»ú¤ò°ìÊ¸»ú¤ËÊÑ´¹¡£"K","H"¤È¶¦¤Ë»ÈÍÑ¤·¤Þ¤¹	
+	 *	n :  ¡ÖÁ´³Ñ¡×¿ô»ú¤ò¡ÖÈ¾³Ñ(ÊÝ¶¸)¡×¤ËÊÑ´¹
+	 *  a :  Á´³Ñ±Ñ¿ô»ú¤òÈ¾³Ñ±Ñ¿ô»ú¤ËÊÑ´¹¤¹¤ë
+	 */
+	// ¥«¥é¥àÌ¾¤È¥³¥ó¥Ð¡¼¥È¾ðÊó
+	foreach ($arrRegistColumn as $data) {
+		$arrConvList[ $data["column"] ] = $data["convert"];
+	}
+	// Ê¸»úÊÑ´¹
+	foreach ($arrConvList as $key => $val) {
+		// POST¤µ¤ì¤Æ¤­¤¿ÃÍ¤Î¤ßÊÑ´¹¤¹¤ë¡£
+		if(strlen(($array[$key])) > 0) {
+			$array[$key] = mb_convert_kana($array[$key] ,$val);
+		}
+	}
+	return $array;
+}
+
+
+//¥¨¥é¡¼¥Á¥§¥Ã¥¯
+
+function lfErrorCheck($array) {
+	$objErr = new SC_CheckError($array);
+	
+	$objErr->doFunc(array("¤ªÌ¾Á°¡ÊÀ«¡Ë", 'name01', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
+	$objErr->doFunc(array("¤ªÌ¾Á°¡ÊÌ¾¡Ë", 'name02', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
+	$objErr->doFunc(array("¥Õ¥ê¥¬¥Ê¡Ê¥»¥¤¡Ë", 'kana01', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK"));
+	$objErr->doFunc(array("¥Õ¥ê¥¬¥Ê¡Ê¥á¥¤¡Ë", 'kana02', STEXT_LEN), array("EXIST_CHECK", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK"));
+	$objErr->doFunc(array("Í¹ÊØÈÖ¹æ1", "zip01", ZIP01_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK"));
+	$objErr->doFunc(array("Í¹ÊØÈÖ¹æ2", "zip02", ZIP02_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 
+	$objErr->doFunc(array("Í¹ÊØÈÖ¹æ", "zip01", "zip02"), array("ALL_EXIST_CHECK"));
+	$objErr->doFunc(array("ÅÔÆ»ÉÜ¸©", 'pref'), array("SELECT_CHECK","NUM_CHECK"));
+	$objErr->doFunc(array("¤´½»½ê1", "addr01", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
+	$objErr->doFunc(array("¤´½»½ê2", "addr02", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
+	$objErr->doFunc(array('¥á¡¼¥ë¥¢¥É¥ì¥¹', "email", MTEXT_LEN) ,array("EXIST_CHECK", "EMAIL_CHECK", "NO_SPTAB" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK"));
+	$objErr->doFunc(array("¤ªÅÅÏÃÈÖ¹æ1", 'tel01'), array("EXIST_CHECK","SPTAB_CHECK"));
+	$objErr->doFunc(array("¤ªÅÅÏÃÈÖ¹æ2", 'tel02'), array("EXIST_CHECK","SPTAB_CHECK"));
+	$objErr->doFunc(array("¤ªÅÅÏÃÈÖ¹æ3", 'tel03'), array("EXIST_CHECK","SPTAB_CHECK"));
+	$objErr->doFunc(array("¤ªÅÅÏÃÈÖ¹æ", "tel01", "tel02", "tel03", TEL_LEN) ,array("TEL_CHECK"));
+	$objErr->doFunc(array("FAXÈÖ¹æ", "fax01", "fax02", "fax03", TEL_LEN) ,array("TEL_CHECK"));
+	$objErr->doFunc(array("¤´À­ÊÌ", "sex") ,array("SELECT_CHECK", "NUM_CHECK")); 
+	$objErr->doFunc(array("¤´¿¦¶È", "job") ,array("NUM_CHECK"));
+	$objErr->doFunc(array("À¸Ç¯·îÆü", "year", "month", "day"), array("CHECK_DATE"));
+	$objErr->doFunc(array("¥Ñ¥¹¥ï¡¼¥É", 'password', PASSWORD_LEN1, PASSWORD_LEN2), array("EXIST_CHECK", "ALNUM_CHECK", "NUM_RANGE_CHECK"));
+	$objErr->doFunc(array("¥Ñ¥¹¥ï¡¼¥É¤òËº¤ì¤¿¤È¤­¤Î¼ÁÌä", "reminder") ,array("SELECT_CHECK", "NUM_CHECK")); 
+	$objErr->doFunc(array("¥Ñ¥¹¥ï¡¼¥É¤òËº¤ì¤¿¤È¤­¤ÎÅú¤¨", "reminder_answer", STEXT_LEN) ,array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
+	return $objErr->arrErr;
+	
+}
+
+//---- ÆþÎÏ¥¨¥é¡¼¥Á¥§¥Ã¥¯
+function lfErrorCheck1($array) {
+
+	global $objConn;
+	global $objCustomer;
+	$objErr = new SC_CheckError($array);
+	
+	$objErr->doFunc(array("¤ªÌ¾Á°¡ÊÀ«¡Ë", 'name01', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
+	$objErr->doFunc(array("¤ªÌ¾Á°¡ÊÌ¾¡Ë", 'name02', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" , "MAX_LENGTH_CHECK"));
+	$objErr->doFunc(array("¥Õ¥ê¥¬¥Ê¡Ê¥»¥¤¡Ë", 'kana01', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK"));
+	$objErr->doFunc(array("¥Õ¥ê¥¬¥Ê¡Ê¥á¥¤¡Ë", 'kana02', STEXT_LEN), array("EXIST_CHECK", "NO_SPTAB", "SPTAB_CHECK" ,"MAX_LENGTH_CHECK", "KANA_CHECK"));
+	$objErr->doFunc(array('¥á¡¼¥ë¥¢¥É¥ì¥¹', "email", MTEXT_LEN) ,array("NO_SPTAB", "EXIST_CHECK", "EMAIL_CHECK", "SPTAB_CHECK" ,"EMAIL_CHAR_CHECK", "MAX_LENGTH_CHECK", "MOBILE_EMAIL_CHECK"));
+
+	//¸½²ñ°÷¤ÎÈ½Äê ¢ª¡¡¸½²ñ°÷¤â¤·¤¯¤Ï²¾ÅÐÏ¿Ãæ¤Ï¡¢¥á¥¢¥É°ì°Õ¤¬Á°Äó¤Ë¤Ê¤Ã¤Æ¤ë¤Î¤ÇÆ±¤¸¥á¥¢¥É¤ÇÅÐÏ¿ÉÔ²Ä
+	$array["customer_id"] = $objCustomer->getValue('customer_id');
+	if (strlen($array["email"]) > 0) {
+		$objQuery = new SC_Query();
+		$arrRet = $objQuery->select("email, update_date, del_flg", "dtb_customer","customer_id <> ? and (email ILIKE ? OR email_mobile ILIKE ?) ORDER BY del_flg", array($array["customer_id"], $array["email"], $array["email"]));
+
+		if(count($arrRet) > 0) {
+			if($arrRet[0]['del_flg'] != '1') {
+				// ²ñ°÷¤Ç¤¢¤ë¾ì¹ç
+				$objErr->arrErr["email"] .= "¢¨ ¤¹¤Ç¤Ë²ñ°÷ÅÐÏ¿¤Ç»ÈÍÑ¤µ¤ì¤Æ¤¤¤ë¥á¡¼¥ë¥¢¥É¥ì¥¹¤Ç¤¹¡£<br />";
+			} else {
+				// Âà²ñ¤·¤¿²ñ°÷¤Ç¤¢¤ë¾ì¹ç
+				$leave_time = sfDBDatetoTime($arrRet[0]['update_date']);
+				$now_time = time();
+				$pass_time = $now_time - $leave_time;
+				// Âà²ñ¤«¤é²¿»þ´Ö-·Ð²á¤·¤Æ¤¤¤ë¤«È½Äê¤¹¤ë¡£
+				$limit_time = ENTRY_LIMIT_HOUR * 3600;						
+				if($pass_time < $limit_time) {
+					$objErr->arrErr["email"] .= "¢¨ Âà²ñ¤«¤é°ìÄê´ü´Ö¤Î´Ö¤Ï¡¢Æ±¤¸¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò»ÈÍÑ¤¹¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó¡£<br />";
+				}
+			}
+		}
+	}
+
+	$objErr->doFunc(array("¥Ñ¥¹¥ï¡¼¥É", 'password', PASSWORD_LEN1, PASSWORD_LEN2), array("EXIST_CHECK", "SPTAB_CHECK" ,"ALNUM_CHECK", "NUM_RANGE_CHECK"));
+	$objErr->doFunc(array("¥Ñ¥¹¥ï¡¼¥É¤òËº¤ì¤¿¤È¤­¤Î¥Ò¥ó¥È ¼ÁÌä", "reminder") ,array("SELECT_CHECK", "NUM_CHECK")); 
+	$objErr->doFunc(array("¥Ñ¥¹¥ï¡¼¥É¤òËº¤ì¤¿¤È¤­¤Î¥Ò¥ó¥È Åú¤¨", "reminder_answer", STEXT_LEN) ,array("EXIST_CHECK","SPTAB_CHECK" , "MAX_LENGTH_CHECK"));
+	
+	return $objErr->arrErr;
+}
+
+//---- ÆþÎÏ¥¨¥é¡¼¥Á¥§¥Ã¥¯
+function lfErrorCheck2($array) {
+
+	global $objConn;
+	$objErr = new SC_CheckError($array);
+	
+	$objErr->doFunc(array("Í¹ÊØÈÖ¹æ1", "zip01", ZIP01_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK"));
+	$objErr->doFunc(array("Í¹ÊØÈÖ¹æ2", "zip02", ZIP02_LEN ) ,array("EXIST_CHECK", "SPTAB_CHECK" ,"NUM_CHECK", "NUM_COUNT_CHECK")); 
+	$objErr->doFunc(array("Í¹ÊØÈÖ¹æ", "zip01", "zip02"), array("ALL_EXIST_CHECK"));
+
+	$objErr->doFunc(array("¤´À­ÊÌ", "sex") ,array("SELECT_CHECK", "NUM_CHECK")); 
+	$objErr->doFunc(array("À¸Ç¯·îÆü", "year", "month", "day"), array("SELECT_CHECK", "CHECK_DATE"));
+	
+	return $objErr->arrErr;
+}
+
+//---- ÆþÎÏ¥¨¥é¡¼¥Á¥§¥Ã¥¯
+function lfErrorCheck3($array) {
+
+	global $objConn;
+	$objErr = new SC_CheckError($array);
+	
+	$objErr->doFunc(array("ÅÔÆ»ÉÜ¸©", 'pref'), array("SELECT_CHECK","NUM_CHECK"));
+	$objErr->doFunc(array("¤´½»½ê1", "addr01", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
+	$objErr->doFunc(array("¤´½»½ê2", "addr02", MTEXT_LEN), array("EXIST_CHECK","SPTAB_CHECK" ,"MAX_LENGTH_CHECK"));
+	$objErr->doFunc(array("¤ªÅÅÏÃÈÖ¹æ1", 'tel01'), array("EXIST_CHECK","SPTAB_CHECK" ));
+	$objErr->doFunc(array("¤ªÅÅÏÃÈÖ¹æ2", 'tel02'), array("EXIST_CHECK","SPTAB_CHECK" ));
+	$objErr->doFunc(array("¤ªÅÅÏÃÈÖ¹æ3", 'tel03'), array("EXIST_CHECK","SPTAB_CHECK" ));
+	$objErr->doFunc(array("¤ªÅÅÏÃÈÖ¹æ", "tel01", "tel02", "tel03",TEL_ITEM_LEN) ,array("TEL_CHECK"));
+	
+	return $objErr->arrErr;
+}
+
+//³ÎÇ§¥Ú¡¼¥¸ÍÑ¥Ñ¥¹¥ï¡¼¥ÉÉ½¼¨ÍÑ
+
+function lfPassLen($passlen){
+	$ret = "";
+	for ($i=0;$i<$passlen;true){
+	$ret.="*";
+	$i++;
+	}
+	return $ret;
+}
+
+
+// Í¹ÊØÈÖ¹æ¤«¤é½»½ê¤Î¼èÆÀ
+function lfGetAddress($zipcode) {
+	global $arrPref;
+
+	$conn = new SC_DBconn(ZIP_DSN);
+
+	// Í¹ÊØÈÖ¹æ¸¡º÷Ê¸ºîÀ®
+	$zipcode = mb_convert_kana($zipcode ,"n");
+	$sqlse = "SELECT state, city, town FROM mtb_zip WHERE zipcode = ?";
+
+	$data_list = $conn->getAll($sqlse, array($zipcode));
+
+	// ¥¤¥ó¥Ç¥Ã¥¯¥¹¤ÈÃÍ¤òÈ¿Å¾¤µ¤»¤ë¡£
+	$arrREV_PREF = array_flip($arrPref);
+
+	/*
+		ÁíÌ³¾Ê¤«¤é¥À¥¦¥ó¥í¡¼¥É¤·¤¿¥Ç¡¼¥¿¤ò¤½¤Î¤Þ¤Þ¥¤¥ó¥Ý¡¼¥È¤¹¤ë¤È
+		°Ê²¼¤Î¤è¤¦¤ÊÊ¸»úÎó¤¬Æþ¤Ã¤Æ¤¤¤ë¤Î¤Ç	ÂÐºö¤¹¤ë¡£
+		¡¦¡Ê£±¡¦£±£¹ÃúÌÜ¡Ë
+		¡¦°Ê²¼¤Ë·ÇºÜ¤¬¤Ê¤¤¾ì¹ç
+	*/
+	$town =  $data_list[0]['town'];
+	$town = ereg_replace("¡Ê.*¡Ë$","",$town);
+	$town = ereg_replace("°Ê²¼¤Ë·ÇºÜ¤¬¤Ê¤¤¾ì¹ç","",$town);
+	$data_list[0]['town'] = $town;
+	$data_list[0]['state'] = $arrREV_PREF[$data_list[0]['state']];
+
+	return $data_list;
+}
+
+//¸ÜµÒ¾ðÊó¤Î¼èÆÀ
+function lfGetCustomerData(){
+	global $objQuery;
+	global $objCustomer;
+	//¸ÜµÒ¾ðÊó¼èÆÀ
+	$ret = $objQuery->select("*","dtb_customer","customer_id=?", array($objCustomer->getValue('customer_id')));
+	$arrForm = $ret[0];
+
+	//¥á¥ë¥Þ¥¬¥Õ¥é¥°¼èÆÀ
+	$arrForm['mail_flag'] = $objQuery->get("dtb_customer_mail","mail_flag","email=?", array($objCustomer->getValue('email')));
+	
+	//ÃÂÀ¸Æü¤ÎÇ¯·îÆü¼èÆÀ
+	if (isset($arrForm['birth'])){
+		$birth = split(" ", $arrForm["birth"]);
+		list($year, $month, $day) = split("-",$birth[0]);
+		
+		$arrForm['year'] = $year;
+		$arrForm['month'] = $month;
+		$arrForm['day'] = $day;
+		
+	}
+	return $arrForm;
+}
+
+
+//-----------------------------------------------------------------------------------------------------------------------------------
+?>
Index: branches/dev/html/mobile/mypage/index.php
===================================================================
--- branches/dev/html/mobile/mypage/index.php	(revision 11460)
+++ branches/dev/html/mobile/mypage/index.php	(revision 11460)
@@ -0,0 +1,95 @@
+<?php
+/*
+ * MyPage
+ */
+
+require_once("../require.php");
+
+class LC_Page{
+	function LC_Page() {
+		$this->tpl_mainpage = 'mypage/index.tpl';
+		$this->tpl_title = 'MY¥Ú¡¼¥¸/¹ØÆþÍúÎò°ìÍ÷';
+		session_cache_limiter('private-no-expire');
+	}
+}
+
+$objPage = new LC_Page();
+$objView = new SC_SiteView();
+$objQuery = new SC_Query();
+$objCustomer = new SC_Customer();
+// ¥¯¥Ã¥­¡¼´ÉÍý¥¯¥é¥¹
+$objCookie = new SC_Cookie(COOKIE_EXPIRE);
+// ¥Ñ¥é¥á¡¼¥¿´ÉÍý¥¯¥é¥¹
+$objFormParam = new SC_FormParam();
+// ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½
+lfInitParam();
+// POSTÃÍ¤Î¼èÆÀ
+$objFormParam->setParam($_POST);
+
+// ¥ì¥¤¥¢¥¦¥È¥Ç¥¶¥¤¥ó¤ò¼èÆÀ
+$objPage = sfGetPageLayout($objPage, false, "mypage/index.php");
+
+// ¥í¥°¥¤¥ó½èÍý
+if($_POST['mode'] == 'login') {
+	$objFormParam->toLower('login_email');
+	$arrErr = $objFormParam->checkError();
+	$arrForm =  $objFormParam->getHashArray();
+	
+	// ¥¯¥Ã¥­¡¼ÊÝÂ¸È½Äê
+	if ($arrForm['login_memory'] == "1" && $arrForm['login_email'] != "") {
+		$objCookie->setCookie('login_email', $_POST['login_email']);
+	} else {
+		$objCookie->setCookie('login_email', '');
+	}
+
+	if (count($arrErr) == 0){
+		if($objCustomer->getCustomerDataFromEmailPass($arrForm['login_pass'], $arrForm['login_email'])) {
+			// ¥í¥°¥¤¥ó¤¬À®¸ù¤·¤¿¾ì¹ç¤Ï·ÈÂÓÃ¼ËöID¤òÊÝÂ¸¤¹¤ë¡£
+			$objCustomer->updateMobilePhoneId();
+
+			// ·ÈÂÓ¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò¥³¥Ô¡¼¤¹¤ë¡£
+			$objCustomer->updateEmailMobile();
+
+			// ·ÈÂÓ¤Î¥á¡¼¥ë¥¢¥É¥ì¥¹¤¬ÅÐÏ¿¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç
+			if (!$objCustomer->hasValue('email_mobile')) {
+				header('Location: ' . gfAddSessionId('../entry/email_mobile.php'));
+				exit;
+			}
+		} else {
+			$objQuery = new SC_Query;
+			$where = "email = ? AND status = 1 AND del_flg = 0";
+			$ret = $objQuery->count("dtb_customer", $where, array($arrForm['login_email']));
+			
+			if($ret > 0) {
+				sfDispSiteError(TEMP_LOGIN_ERROR);
+			} else {
+				sfDispSiteError(SITE_LOGIN_ERROR);
+			}
+		}
+	}
+}
+
+
+// ¥í¥°¥¤¥ó¥Á¥§¥Ã¥¯
+if(!isset($_SESSION['customer'])) {
+	$objPage->tpl_mainpage = 'mypage/login.tpl';
+	$objView->assignArray($objFormParam->getHashArray());
+	$objView->assignArray(array("arrErr" => $arrErr));
+}else {
+	//¥Þ¥¤¥Ú¡¼¥¸¥È¥Ã¥×¸ÜµÒ¾ðÊóÉ½¼¨ÍÑ
+	$objPage->CustomerName1 = $objCustomer->getvalue('name01');
+	$objPage->CustomerName2 = $objCustomer->getvalue('name02');
+}
+
+$objView->assignobj($objPage);				//$objpageÆâ¤ÎÁ´¤Æ¤Î¥Æ¥ó¥×¥ì¡¼¥ÈÊÑ¿ô¤òsmarty¤Ë³ÊÇ¼
+$objView->display(SITE_FRAME);				//¥Ñ¥¹¤È¥Æ¥ó¥×¥ì¡¼¥ÈÊÑ¿ô¤Î¸Æ¤Ó½Ð¤·¡¢¼Â¹Ô
+
+//-------------------------------------------------------------------------------------------------------------------------
+/* ¥Ñ¥é¥á¡¼¥¿¾ðÊó¤Î½é´ü²½ */
+function lfInitParam() {
+	global $objFormParam;
+	$objFormParam->addParam("µ­²±¤¹¤ë", "login_memory", INT_LEN, "n", array("MAX_LENGTH_CHECK", "NUM_CHECK"));
+	$objFormParam->addParam("¥á¡¼¥ë¥¢¥É¥ì¥¹", "login_email", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
+	$objFormParam->addParam("¥Ñ¥¹¥ï¡¼¥É", "login_pass", STEXT_LEN, "KVa", array("EXIST_CHECK", "MAX_LENGTH_CHECK"));
+}
+?>
Index: branches/dev/html/mobile/mypage/refusal_complete.php
===================================================================
--- branches/dev/html/mobile/mypage/refusal_complete.php	(revision 11460)
+++ branches/dev/html/mobile/mypage/refusal_complete.php	(revision 11460)
@@ -0,0 +1,31 @@
+<?php
+/*
+ * Âà²ñ´°Î»
+ */
+
+require_once("../require.php");
+
+class LC_Page{
+	function LC_Page(){
+		$this->tpl_mainpage = 'mypage/refusal_complete.tpl';
+		$this->tpl_title = "MY¥Ú¡¼¥¸/Âà²ñ¼êÂ³¤­(´°Î»¥Ú¡¼¥¸)";
+		$this->point_disp = false;
+	}
+}
+
+$objPage = new LC_Page();
+$objView = new SC_SiteView();
+
+$objCustomer = new SC_Customer();
+//¥Þ¥¤¥Ú¡¼¥¸¥È¥Ã¥×¸ÜµÒ¾ðÊóÉ½¼¨ÍÑ
+$objPage->CustomerName1 = $objCustomer->getvalue('name01');
+$objPage->CustomerName2 = $objCustomer->getvalue('name02');
+$objPage->CustomerPoint = $objCustomer->getvalue('point');
+
+// ¥ì¥¤¥¢¥¦¥È¥Ç¥¶¥¤¥ó¤ò¼èÆÀ
+$objPage = sfGetPageLayout($objPage, false, "mypage/index.php");
+
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+
+?>
Index: branches/dev/html/mobile/mypage/order.php
===================================================================
--- branches/dev/html/mobile/mypage/order.php	(revision 11460)
+++ branches/dev/html/mobile/mypage/order.php	(revision 11460)
@@ -0,0 +1,41 @@
+<?
+/*
+ * ÍúÎò¤«¤éÃíÊ¸¤ò¼èÆÀ¡¦ÅÐÏ¿¤·¡¢¥«¡¼¥È¤ËÁ«°Ü¤¹¤ë¡£
+ */
+require_once("../require.php");
+
+$objCustomer = new SC_Customer();
+$objCartSess = new SC_CartSession();
+
+//¼õÃí¾ÜºÙ¥Ç¡¼¥¿¤Î¼èÆÀ
+$arrDisp = lfGetOrderDetail($_POST['order_id']);
+
+//¥í¥°¥¤¥ó¤·¤Æ¤¤¤Ê¤¤¡¢¤Þ¤¿¤ÏDB¤Ë¾ðÊó¤¬Ìµ¤¤¾ì¹ç
+if (!$objCustomer->isLoginSuccess() or count($arrDisp) == 0){
+	sfDispSiteError(CUSTOMER_ERROR);
+}
+
+for($num = 0; $num < count($arrDisp); $num++) {
+	$product_id = $arrDisp[$num]['product_id'];
+	$cate_id1 = $arrDisp[$num]['classcategory_id1'];
+	$cate_id2 = $arrDisp[$num]['classcategory_id2'];
+	$quantity = $arrDisp[$num]['quantity'];
+
+	$objCartSess->addProduct(array($product_id, $cate_id1, $cate_id2), $quantity);
+}
+
+header("Location: " . gfAddSessionId(URL_CART_TOP));
+
+
+//-----------------------------------------------------------------------------------------------------------------------------------
+// ¼õÃí¾ÜºÙ¥Ç¡¼¥¿¤Î¼èÆÀ
+function lfGetOrderDetail($order_id) {
+	$objQuery = new SC_Query();
+	$col = "product_id, classcategory_id1, classcategory_id2, quantity";
+	$where = "order_id = ?";
+	$objQuery->setorder("classcategory_id1, classcategory_id2");
+	$arrRet = $objQuery->select($col, "dtb_order_detail", $where, array($order_id));
+	return $arrRet;
+}
+
+?>
Index: branches/dev/html/mobile/mypage/change_complete.php
===================================================================
--- branches/dev/html/mobile/mypage/change_complete.php	(revision 11460)
+++ branches/dev/html/mobile/mypage/change_complete.php	(revision 11460)
@@ -0,0 +1,38 @@
+<?php
+/*
+ * ÊÑ¹¹´°Î»
+ */
+require_once("../require.php");
+
+class LC_Page{
+	function LC_Page(){
+		$this->tpl_mainpage = 'mypage/change_complete.tpl';
+		$this->tpl_title = 'MY¥Ú¡¼¥¸/²ñ°÷ÅÐÏ¿ÆâÍÆÊÑ¹¹(´°Î»¥Ú¡¼¥¸)';
+	}
+}
+
+$objPage = new LC_Page();
+$objView = new SC_SiteView();
+$objCustomer = new SC_Customer();
+
+// ¥ì¥¤¥¢¥¦¥È¥Ç¥¶¥¤¥ó¤ò¼èÆÀ
+$objPage = sfGetPageLayout($objPage, false, "mypage/index.php");
+
+//¥»¥Ã¥·¥ç¥ó¾ðÊó¤òºÇ¿·¤Î¾õÂÖ¤Ë¹¹¿·¤¹¤ë
+$objCustomer->updateSession();
+
+//¥í¥°¥¤¥óÈ½Äê
+if (!$objCustomer->isLoginSuccess()){
+	sfDispSiteError(CUSTOMER_ERROR);
+}else {
+	//¥Þ¥¤¥Ú¡¼¥¸¥È¥Ã¥×¸ÜµÒ¾ðÊóÉ½¼¨ÍÑ
+	$objPage->CustomerName1 = $objCustomer->getvalue('name01');
+	$objPage->CustomerName2 = $objCustomer->getvalue('name02');
+	$objPage->CustomerPoint = $objCustomer->getvalue('point');
+}
+
+
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+
+?>
Index: branches/dev/html/mobile/mypage/history.php
===================================================================
--- branches/dev/html/mobile/mypage/history.php	(revision 11460)
+++ branches/dev/html/mobile/mypage/history.php	(revision 11460)
@@ -0,0 +1,68 @@
+<?php
+/*
+ * MyPage
+ */
+
+require_once("../require.php");
+
+class LC_Page{
+	function LC_Page() {
+		$this->tpl_mainpage = 'mypage/history.tpl';
+		$this->tpl_title = 'MY¥Ú¡¼¥¸/¹ØÆþÍúÎò°ìÍ÷';
+		session_cache_limiter('private-no-expire');
+	}
+}
+
+define ("HISTORY_NUM", 5);
+
+$objPage = new LC_Page();
+$objView = new SC_SiteView();
+$objQuery = new SC_Query();
+$objCustomer = new SC_Customer();
+$pageNo = isset($_GET['pageno']) ? $_GET['pageno'] : 0;
+
+// ¥ì¥¤¥¢¥¦¥È¥Ç¥¶¥¤¥ó¤ò¼èÆÀ
+$objPage = sfGetPageLayout($objPage, false, "mypage/index.php");
+
+// ¥í¥°¥¤¥ó¥Á¥§¥Ã¥¯
+if(!isset($_SESSION['customer'])) {
+	sfDispSiteError(CUSTOMER_ERROR);
+}
+
+$col = "order_id, create_date, payment_id, payment_total";
+$from = "dtb_order";
+$where = "del_flg = 0 AND customer_id=?";
+$arrval = array($objCustomer->getvalue('customer_id'));
+$order = "order_id DESC";
+
+$linemax = $objQuery->count($from, $where, $arrval);
+$objPage->tpl_linemax = $linemax;
+
+// ¼èÆÀÈÏ°Ï¤Î»ØÄê(³«»Ï¹ÔÈÖ¹æ¡¢¹Ô¿ô¤Î¥»¥Ã¥È)
+$objQuery->setlimitoffset(HISTORY_NUM, $pageNo);
+// É½¼¨½ç½ø
+$objQuery->setorder($order);
+
+//¹ØÆþÍúÎò¤Î¼èÆÀ
+$objPage->arrOrder = $objQuery->select($col, $from, $where, $arrval);
+
+// next
+if ($pageNo + HISTORY_NUM < $linemax) {
+	$next = "<a href='history.php?pageno=" . ($pageNo + HISTORY_NUM) . "'>¼¡¤Ø¢ª</a>";
+} else {
+	$next = "¼¡¤Ø¢ª";
+}
+
+// previous
+if ($pageNo - HISTORY_NUM > 0) {
+	$previous = "<a href='history.php?pageno=" . ($pageNo - HISTORY_NUM) . "'>¢«Á°</a>";
+} elseif ($pageNo == 0) {
+	$previous = "¢«Á°";
+} else {
+	$previous = "<a href='history.php?pageno=0'>¢«Á°</a>";
+}
+
+$objPage->tpl_strnavi = $previous . " | " . $next;
+$objView->assignobj($objPage);				//$objpageÆâ¤ÎÁ´¤Æ¤Î¥Æ¥ó¥×¥ì¡¼¥ÈÊÑ¿ô¤òsmarty¤Ë³ÊÇ¼
+$objView->display(SITE_FRAME);				//¥Ñ¥¹¤È¥Æ¥ó¥×¥ì¡¼¥ÈÊÑ¿ô¤Î¸Æ¤Ó½Ð¤·¡¢¼Â¹Ô
+?>
Index: branches/dev/html/mobile/mypage/refusal.php
===================================================================
--- branches/dev/html/mobile/mypage/refusal.php	(revision 11460)
+++ branches/dev/html/mobile/mypage/refusal.php	(revision 11460)
@@ -0,0 +1,54 @@
+<?php
+/*
+ * Âà²ñ½èÍý
+ */
+require_once("../require.php");
+
+class LC_Page{
+	function LC_Page(){
+		$this->tpl_mainpage = 'mypage/refusal.tpl';
+		$this->tpl_title = "MY¥Ú¡¼¥¸/Âà²ñ¼êÂ³¤­(ÆþÎÏ¥Ú¡¼¥¸)";
+		//session_cache_limiter('private-no-expire');
+	}
+}
+
+$objPage = new LC_Page();
+$objView = new SC_SiteView();
+$objCustomer = new SC_Customer();
+$objQuery = new SC_Query();
+
+//¥í¥°¥¤¥óÈ½Äê
+if (!$objCustomer->isLoginSuccess()){
+	sfDispSiteError(CUSTOMER_ERROR);
+}else {
+	//¥Þ¥¤¥Ú¡¼¥¸¥È¥Ã¥×¸ÜµÒ¾ðÊóÉ½¼¨ÍÑ
+	$objPage->CustomerName1 = $objCustomer->getvalue('name01');
+	$objPage->CustomerName2 = $objCustomer->getvalue('name02');
+	$objPage->CustomerPoint = $objCustomer->getvalue('point');
+}
+
+
+// ¥ì¥¤¥¢¥¦¥È¥Ç¥¶¥¤¥ó¤ò¼èÆÀ
+$objPage = sfGetPageLayout($objPage, false, "mypage/index.php");
+
+if (isset($_POST['no'])) {
+	header("Location: " . gfAddSessionId("index.php"));
+	exit;
+} elseif (isset($_POST['complete'])){
+	//²ñ°÷ºï½ü
+	$objQuery->exec("UPDATE dtb_customer SET del_flg=1, update_date=now() WHERE customer_id=?", array($objCustomer->getValue('customer_id')));
+
+	$where = "email ILIKE ?";
+	if (DB_TYPE == "mysql")	$where = sfChangeILIKE($where);
+
+	$objQuery->delete("dtb_customer_mail", $where, array($objCustomer->getValue('email')));
+	$objCustomer->EndSession();
+	//´°Î»¥Ú¡¼¥¸¤Ø
+	header("Location: " . gfAddSessionId("refusal_complete.php"));
+	exit;
+}
+
+$objView->assignobj($objPage);
+$objView->display(SITE_FRAME);
+
+?>
