<?
//(1) ปรับเวลาให้ตรงกับเวลาเมืองไทย กรณีที่ server อยู่ที่เมืองนอก โดยความสำคัญอยู่ที่ตัวแปร $hour และ $min 
	$hour = 0;   //ปรับให้ตรงตามต้องการ
	$min = 10;  //ปรับให้ตรงตามต้องการ
	$Year = date("Y")+543;
	$thaiweekFull=array("วันอาทิตย์ ที่","วันจันทร์ ที่","วันอังคาร ที่","วันพุธ ที่","วันพฤหัสบดี ที่","วันศุกร์ ที่","วันเสาร์ ที่");
	$thaimonthFull=array("มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฎาคม","สิงหาคม","กันยายน","ตุลาคม", "พฤศจิกายน","ธันวาคม");
	$thaimonth=array("ม.ค.","ก.พ.","มี.ค.","เม.ย.","พ.ค.","มิ.ย.","ก.ค.","ส.ค.","ก.ย.","ต.ค.", "พ.ย.","ธ.ค.");
  
    $sym01=sprintf("%c%c",92,34) ;  //    \"
//    $txt = str_replace($sym01, "\"", $txt);

	//คุณสามารถเลือกใช้งานได้ 3 อย่างคือ.. $mdate หรือ $ThaiDate หรือ $ThaiDateFull

	// 3 ส.ค. 2544
	$mdate = date("j ",mktime( date("H")+$hour, date("i")+$min )). $thaimonth[date("m")-1]." ".$Year; 

	// 3 ส.ค. 2544 เวลา 12:36 น.
	$ThaiDate = date("j ").$thaimonth[date("m")-1]." ".$Year.date(" เวลา H:i น.",mktime( date("H")+$hour, date("i")+$min )); 
	
	// วันศุกร์ที่ 3 ส.ค. 2544 เวลา 12:36 น.
	$ThaiDateFull = $thaiweekFull[date("w")]. date(" j "). $thaimonthFull[date("m")-1]. " ". $Year . date(" เวลา H:i น.",mktime( date("H")+$hour, date("i")+$min )); 

	// ได้ค่าเป็น วินาที นับจากปี ค.ศ.1900
	$Logtime = date("U",mktime( date("H")+$hour, date("i")+$min ));


//(2) ฟังก์ชั่นตัดคำหยาบซึ่งสามารถเพิ่มคำที่ต้องการตัดได้
	function CheckRude($temp){
		$wordrude = array(
		"ashole","a s h o l e","a.s.h.o.l.e","bitch","b i t c h","b.i.t.c.h","shit","s h i t","s.h.i.t","fuck",
		"dick","f u c k","d i c k","f.u.c.k","d.i.c.k","มึง","มึ ง","กู","ควย","ค ว ย","ค.ว.ย",
		"คอ วอ ยอ","คอ-วอ-ยอ","ปี้","เหี้ย","เฮี้ย","ชาติหมา","ชาดหมา","ช า ด ห ม า","ช.า.ด.ห.ม.า","ช า ติ ห ม า",
		"ช.า.ติ.ห.ม.า","ไอ้","สัดหมา","สัด","เย็ด","หี","สันดาน","แม่ง","ระยำ","ส้นตีน","แตด") ;
		$wordchange = ("<font color=red>+++</font>") ;

		for ( $i=0 ; $i<sizeof($wordrude) ; $i++ ){
			$temp = eregi_replace ($wordrude[$i] ,$wordchange ,$temp);
		}
		return ( $temp ) ;
	}


//(3) ฟังก์ชั่นแทรกรูปภาพสามารถเพิ่มรูปได้
	function CheckSmile($temp){
		global $url;
		$text = array(
		":sad:",":red:", ":big:", ":ent:", ":shy:", ":sleepy:", ":sun:", ":sg:", ":embarass:", 
		":dead:", ":cool:", ":clown:", ":pukey:", ":eek:", ":roll:", ":smoke:", ":angry:", ":confused:", ":cry:", 
		":lol:", ":yawn:", ":devil:", ":tongue:", ":alien:",":tasty:",":crazy:",":agree:",":disagree:",":bawling:", 
		":crap:",":crying1:",":dunce:",":error:",":evil:",":lookaroundb:",":laugh:",":pimp:",":spiny:",":wavey:",":smash:",":angry:",
		":brain:",":phone:",":zip:",":download:",":beer:",":censore:",":nolove:",":cranium:");

		$pic =array(
		"frown.gif","redface.gif","biggrin.gif","blue.gif","shy.gif","sleepy.gif","sunglasses.gif", "supergrin.gif","embarass.gif",
		"dead.gif","cool.gif","clown.gif","pukey.gif","eek.gif","sarcblink.gif","smokin.gif","reallymad.gif","confused.gif","crying.gif",
		"lol.gif","yawn.gif","devil.gif","tongue.gif","aysmile.gif","tasty.gif","grazy.gif","agree.gif","disagree.gif","bawling.gif",
		"crap.gif","crying1.gif","dunce.gif","error.gif","evil.gif","lookaroundb.gif","laugh.gif","pimp.gif","spiny.gif","wavey.gif","smash.gif","angry.gif",
		"brain.gif","phone.gif","zip.gif","download.gif","beer.gif","censore.gif","nolove.gif","cranium.gif");

		for ($i=0 ; $i<sizeof($text) ; $i++) {
			$temp = eregi_replace($text[$i],"<img src=\"./pic/$pic[$i]\">",$temp);
		}
		return($temp);
	}


//(4) ฟังก์ชั่นตรวจสอบการแทรก Link และ Tag 
	function CheckTag($temp){
		global $url;
		$temp = stripslashes(htmlspecialchars($temp));
		$temp = eregi_replace ( "<" , "&lt;" , $temp ) ;
		$temp = eregi_replace ( ">" , "&gt;" , $temp ) ;
		$temp = eregi_replace ( "\n", "<br>" , $temp ) ;

		//สำหรับเปลี่ยนอักขระที่กำหนด ให้เป็นแทก html ต่างๆ
		$temp = eregi_replace ( "\[b\]", "<b>" , $temp ) ;
		$temp = eregi_replace ( "\[/b\]", "</b>" , $temp ) ;
		$temp = eregi_replace ( "\[i\]", "<i>" , $temp ) ;
		$temp = eregi_replace ( "\[/i\]", "</i>" , $temp ) ;
		$temp = eregi_replace ( "\[u\]", "<u>" , $temp ) ;
		$temp = eregi_replace ( "\[/u\]", "</u>" , $temp ) ;
		$temp = eregi_replace ( "\[\-\-\-\]", "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" , $temp ) ;
		$temp = eregi_replace ( "\[color=red\]", "<font color=red>" , $temp ) ;
		$temp = eregi_replace ( "\[color=green\]", "<font color=green>" , $temp ) ;
		$temp = eregi_replace ( "\[color=blue\]", "<font color=blue>" , $temp ) ;
		$temp = eregi_replace ( "\[color=orange\]", "<font color=FF6600>" , $temp ) ;
		$temp = eregi_replace ( "\[color=pink\]", "<font color=FF00FF>" , $temp ) ;
		$temp = eregi_replace ( "\[color=gray\]", "<font color=999999>" , $temp ) ;
		$temp = eregi_replace ( "\[/color\]", "</font>" , $temp ) ;

		// คำสั่งแสดงรูปที่แทรกคำสั่งเข้ามา
		$temp = eregi_replace ("\[img\]([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]])\[/img\]", "<img src=\"\\1://\\2\\3\">",$temp ) ;

		// สร้างลิงค์ URL ที่แทรกคำสั่งเข้ามา
		$temp = eregi_replace ("\[url\]([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])\[/url\]","<a href=\"\\1://\\2\\3\" target=\"_blank\">\\1://\\2\\3</a>",$temp ) ;

		//สร้างลิงค์อีเมล์
		$temp = eregi_replace ("([^[:space:]]*)@([^[:space:]]*)([[:alnum:]])","<a href=\"./mail2me/mail2me.php?wemail=\\1@\\2\\3&name=\\1@\\2\\3\" target=\"_blank\">\\1@\\2\\3</a>",$temp ) ;

		return ( $temp ) ;
	}

//(5) ฟังก์ชั่นแสดงข้อความ ผลการกระทำการ
	function Message($Size,$Color,$Message,$Comment,$Link){
		$temp = "<br><center>\n";
		$temp .= "<table width=$Size% border=0 cellspacing=0 cellpadding=0 bgcolor=#000000>\n";
		$temp .= "<tr><td><table width=100% border=0 cellpadding=2 cellspacing=1>\n";
    	$temp .= "<tr bgcolor=#FFFFCC>\n"; 
    	$temp .= "<td align=center><br>\n";
		$temp .= "<font color=$Color class=size3><b>$Message</b></font>\n";
		$temp .= "<br><br>$Comment<br><br>\n";
	    $temp .= "</td></tr></table></td></tr></table><br>\n";
		$temp .= "[ $Link ]\n";
		$temp .= "</center>\n";
		return ( $temp ) ;
	}

//(6) ฟังก์ชั่นตรวจสอบการส่งรูป และ copy รูปไว้ในไดเรคทอรี่
	function Send_Img($Type, $No, $Upload_Img, $Upload_Img_type, $Upload_Img_size) {

		include("./config.inc.php");	//ตั้งค่าต่างๆของเวปบอร์ด


		if($Upload_Img!="none") {		// ถ้ามีการส่งรูปมาด้วย
			if($Upload_Img_type=="image/gif") {
				$imgfiles=".gif";  //ถ้าไฟล์ที่ส่งมาเป็นไฟล์ .gif ให้มีสกุลไฟล์เป็นตามที่กำหนดนี้
			}
			else if( ($Upload_Img_type=="image/jpg") || ($Upload_Img_type=="image/jpeg") || ($Upload_Img_type=="image/pjpeg")) {
							$imgfiles=".jpg";  //ถ้าไฟล์ที่ส่งมาเป็นไฟล์ .jpg ให้มีสกุลไฟล์เป็นตามที่กำหนดนี้
						}
						else {

						echo Message(35,"red","ไม่ใช่ไฟล์รูปภาพ .gif หรือ .jpg","กรุณาตรวจสอบด้วยครับ","<a href='javascript:history.back(1)'> กลับไปแก้ไข </a>");
			    exit();
			}

			// ส่งรูปได้ไม่เกิน 50 Kb
			if($Upload_Img_size>768000) {
			echo Message(35,"red","ขนาดของรูปเกินกว่าที่กำหนด","กรุณาตรวจสอบด้วยครับ","<a href='javascript:history.back(1)'> กลับไปแก้ไข </a>");
			exit();
			}

			// ตรวจสอบความกว้างของรูป
			$size = getimagesize($Upload_Img);	
			if($size[0] > 600) {  //ถ้าความกว้างมากกว่า 600 pixels
				echo Message(35,"red","ความกว้างของรูปมากกว่า 600 pixels","กรุณาแก้ไขด้วยครับ","<a href='javascript:history.back(1)'>กลับไปแก้ไข</a>");
				exit();
			}

			// ตรวจสอบว่ามีไดเรคทอรี่ชื่อ imagefiles อยู่หรือไม่ ถ้าไม่มีให้สร้างขึ้นใหม่

			$DirOK = 0;
			$DIR = opendir("./$dataDir/");
			while ($text = readdir($DIR)){
				if($text == "imagefiles") $DirOK = 1;
			}
			if(!$DirOK) mkdir("./$dataDir/imagefiles/",0777);


			// ถ้าเป็นการส่งรูปจากการตอบ (เนื่องจากการตอบจะตอบได้หลายคนและอาจจะส่งมาหลายรูป)
			if($Type){
				// อ่านจำนวนของรูปจากไฟล์
				$filename = "./$dataDir/imagefiles/Img$No.txt"; 
				if(file_exists($filename)) {
					$FILE=fopen($filename,"rt");
					$num=fgets($FILE,10);
					fclose($FILE);
				}
				else{
					$num=0;
				}
				$num++;  //เพิ่มค่าขึ้น 1


				// บันทึกค่าจำนวนรูปลงในไฟล์ดังเดิม ด้วยค่าใหม่
				$FILE=fopen($filename,"w");
				flock($FILE,2);
				fputs($FILE,$num);
				flock($FILE,3);
				fclose($FILE);
				$ImgName = "R$No-$num$imgfiles";
			}
			else {
				$ImgName = "$No$imgfiles";
			}

			// copy ไฟล์รูปไปเก็บไว้ในไดเรคทอรี่
			copy($Upload_Img,"./$dataDir/imagefiles/$ImgName");
			return ($ImgName);

		} // จบการตรวจสอบ ว่าส่งรูปมาหรือเปล่า
		else {
			return (0);
		}
	} // จบฟังก์ชั่น


//(7) ฟังก์ชั่นตรวจสอบการโพส.. ให้โพสติดกันได้มากสุด 3 กระทู้
	function CheckFlood($IP) { 
		
		$fileLastIP = "lastip.txt";

		if(file_exists($fileLastIP)) {
			$FILE=fopen($fileLastIP,"rt");
			$last_ip = fgets($FILE,20);
			fclose($FILE);
	
			$last_ip = Chop($last_ip);
			list ($ipx, $xnum,) = split ('[,]', $last_ip);
		}

		if($ipx == $IP) {
			if ($xnum>2){
				$check='no';
			} else {
				$check='yes';
			}
		}else{
			$check='yes';
			$xnum=0;
		}

		if ($check=='no'){
			echo Message(55,"red","ขออภัยครับ!! อนุญาตให้โพสติดกันได้เพียง 3 กระทู้","กรุณากลับมาโพสใหม่ในคราวหน้า","<a href='javascript:history.back(1)'>กลับไปแก้ไข</a>");
			exit();
		} else {
			$xnum++;
			$FILE = fopen ( $fileLastIP , "w+" );
				fputs ($FILE , "$IP,$xnum");
			fclose( $FILE);
		}
		return (1);
	}


//(8) ฟังก์ชั่นตรวจสอบการโพสกระทู้ซ้ำ.. 
	function CheckRepeated($QTitle) { 
		include("./config.inc.php");	//ตั้งค่าต่างๆของเวปบอร์ด

		if(file_exists($fileQuestion)) {
			$question = file($fileQuestion);
	
			// แยกข้อมูลในแต่ละบรรทัด ออกเป็นฟิลด์ย่อย $question[0] คือกระทู้ล่าสุด
			$split = explode("|X|",$question[0]);
			$topic = $split[1];

			if ($QTitle == $topic){
				echo Message(40,"red","ขออภัยครับ!! คุณโพสคำถามซ้ำ","กรุณาตรวจสอบ","<a href='javascript:history.back(1)'>กลับไปแก้ไข</a>");
				exit();
			}
		}
		return (1);
	}


//(9) ฟังก์ชั่นหาจำนวนผู้ตอบคำถาม
	function CountReply($numQuestion) { 
		include("./config.inc.php");	//ตั้งค่าต่างๆของเวปบอร์ด

		// วนลูปอ่านข้อมูล ของคำตอบ แล้วหาจำนวนคำตอบทั้งหมด
		$fileReply = "./$dataDir/R$numQuestion.txt";
		$countR=0; // เป็นตัวบอกว่ามีจำนวนคนตอบกี่คน

		if(file_exists($fileReply)) {
			$Reply = file($fileReply);
			for ($j=0 ; $j<sizeof($Reply) ; $j++) {

				// แยกข้อมูลในแต่ละบรรทัด ออกเป็นฟิลด์ย่อย
				$chk = explode("||",$Reply[$j]);

				// ถ้าฟิลด์ที่ 0 ของข้อมูลที่แบ่งออกมา เท่ากับ "IS_reply" (ตัวแบ่งหมายเลขคำถาม) ให้เพิ่มค่า $countR
				if(substr($chk[0],0,8) == "IS_reply"){ $countR++; }
			}// end for j
		}//end if
		return $countR;
	}

//(10) ฟังก์ชั่นตรวจสอบว่าในกระทู้มีรูปหรือเปล่า
	function CheckImage($No) { 
		include("./config.inc.php");	//ตั้งค่าต่างๆของเวปบอร์ด
		$imgOK = 0;

		// ค้นหาไฟล์รูปที่อยู่ในคำถาม
		$fileQImg="./$dataDir/imagefiles/$No";
		if(file_exists("$fileQImg.jpg")) $imgOK = 1;
		if(file_exists("$fileQImg.gif")) $imgOK = 1;

		// ค้นหาไฟล์รูปที่อยู่ในคำตอบ
		$fileNumImgR="./$dataDir/imagefiles/Img$No.txt";
		$fileImgR="./$dataDir/imagefiles/R$No";
		if(file_exists($fileNumImgR)) {
			// อ่านจำนวนของรูปจากไฟล์
			if(file_exists($fileNumImgR)) {
				$FILE=fopen($fileNumImgR,"rt");
					$numImg=fgets($FILE,10);
				fclose($FILE);
			}
			for ($i=1 ; $i<=$numImg ; $i++){
				if(file_exists("$fileImgR-$i.jpg")) $imgOK = 1;
				if(file_exists("$fileImgR-$i.gif")) $imgOK = 1;
			}
		}
		return $imgOK;
	}
	
	   function mkDirE($dir,$dirmode=700)
   {
       if (!empty($dir))
       {
           if (!file_exists($dir))
           {
               preg_match_all('/([^\/]*)\/?/i', $dir,$atmp);
               $base="";
               foreach ($atmp[0] as $key=>$val)
               {
                   $base=$base.$val;
                   if(!file_exists($base))
                       if (!mkdir($base,$dirmode))
                       {
                               echo "Error: Cannot create ".$base;
                           return -1;
                       }
               }
           }
           else
               if (!is_dir($dir))
               {
                       echo "Error: ".$dir." exists and is not a directory";
                   return -2;
               }
       }

       return 0;

   } 

function deldir($dir) {
   $dh=opendir($dir);
   while ($file=readdir($dh)) {
       if($file!="." && $file!="..") {
           $fullpath=$dir."/".$file;
           if(!is_dir($fullpath)) {
               unlink($fullpath);
           } else {
               deldir($fullpath);
           }
       }
   }

   closedir($dh);
   
   if(rmdir($dir)) {
       return true;
   } else {
       return false;
   }
} 

?>