├── js ├── file.jpg ├── folder.jpg ├── IMG_DOT_L.gif ├── IMG_TIPS.gif ├── IMG_COLSORT.gif ├── IMG_PBOX_BG.gif ├── IMG_PBOX_BGL.jpg ├── IMG_PBOX_BGR.jpg ├── IMG_RES_SUCC.gif ├── IMG_TOP_LOAD.gif ├── IMG_BARUSAGE0.gif ├── IMG_BARUSAGE1.gif ├── IMG_FOOTER_BG.gif ├── IMG_LIST_ADMIN.gif ├── IMG_LIST_BOTON.gif ├── IMG_LIST_USER.gif ├── IMG_LV_BT_USER.gif ├── IMG_MENU_HELP.gif ├── IMG_MENU_HOME.gif ├── IMG_RES_ERROR.gif ├── IMG_TIT_ARROW.gif ├── IMG_FOOTER_TABLE.gif ├── IMG_LIST_RESELLER.gif ├── IMG_LV_BT_ADMIN.gif ├── IMG_MENU_FILEMAN.gif ├── IMG_MENU_PASSWORD.gif ├── IMG_MENU_WEBMAIL.gif ├── IMG_MINBARUSAGE0.gif ├── IMG_MINBARUSAGE1.gif ├── IMG_MINBARUSAGE2.gif ├── IMG_TITLE_TABLE.gif ├── IMG_LIST_SUSPENDED.gif ├── IMG_LV_BT_RESELLER.gif ├── IMG_SKIN_HEADER_BG.gif ├── IMG_MAINJS.js ├── IMG_TOOLTIP.js ├── IMG_JS_CHARTS.js ├── style.css └── img.js ├── index.php ├── image.php ├── copy3.php ├── include.da.php ├── newdir.php ├── zip3.php ├── unzip2.php ├── dl.php ├── da.action2.php ├── class.runtime.php ├── chmod2.php ├── strip_quotes_gpc.sub.php ├── move.php ├── newdir2.php ├── chmod.php ├── rename2.php ├── cmd.php ├── newfile.php ├── unzip.php ├── mail.php ├── rename.php ├── xchmod.php ├── upfile.php ├── delete.php ├── urldl.php ├── copy2.php ├── mail_simply.php ├── config.php ├── da.action.php ├── mail_sendmail.php ├── readfile.php ├── password.php ├── modify.php ├── mail_smtp.php ├── readme.md ├── zip2.php ├── upfile2.php ├── mail_write.php ├── writefile.php ├── zip.php ├── simple.php ├── copy.php ├── view.php ├── list.php ├── function.php ├── da.php └── class.smtp.php /js/file.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/file.jpg -------------------------------------------------------------------------------- /js/folder.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/folder.jpg -------------------------------------------------------------------------------- /js/IMG_DOT_L.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_DOT_L.gif -------------------------------------------------------------------------------- /js/IMG_TIPS.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_TIPS.gif -------------------------------------------------------------------------------- /js/IMG_COLSORT.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_COLSORT.gif -------------------------------------------------------------------------------- /js/IMG_PBOX_BG.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_PBOX_BG.gif -------------------------------------------------------------------------------- /js/IMG_PBOX_BGL.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_PBOX_BGL.jpg -------------------------------------------------------------------------------- /js/IMG_PBOX_BGR.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_PBOX_BGR.jpg -------------------------------------------------------------------------------- /js/IMG_RES_SUCC.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_RES_SUCC.gif -------------------------------------------------------------------------------- /js/IMG_TOP_LOAD.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_TOP_LOAD.gif -------------------------------------------------------------------------------- /js/IMG_BARUSAGE0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_BARUSAGE0.gif -------------------------------------------------------------------------------- /js/IMG_BARUSAGE1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_BARUSAGE1.gif -------------------------------------------------------------------------------- /js/IMG_FOOTER_BG.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_FOOTER_BG.gif -------------------------------------------------------------------------------- /js/IMG_LIST_ADMIN.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_LIST_ADMIN.gif -------------------------------------------------------------------------------- /js/IMG_LIST_BOTON.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_LIST_BOTON.gif -------------------------------------------------------------------------------- /js/IMG_LIST_USER.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_LIST_USER.gif -------------------------------------------------------------------------------- /js/IMG_LV_BT_USER.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_LV_BT_USER.gif -------------------------------------------------------------------------------- /js/IMG_MENU_HELP.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_MENU_HELP.gif -------------------------------------------------------------------------------- /js/IMG_MENU_HOME.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_MENU_HOME.gif -------------------------------------------------------------------------------- /js/IMG_RES_ERROR.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_RES_ERROR.gif -------------------------------------------------------------------------------- /js/IMG_TIT_ARROW.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_TIT_ARROW.gif -------------------------------------------------------------------------------- /js/IMG_FOOTER_TABLE.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_FOOTER_TABLE.gif -------------------------------------------------------------------------------- /js/IMG_LIST_RESELLER.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_LIST_RESELLER.gif -------------------------------------------------------------------------------- /js/IMG_LV_BT_ADMIN.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_LV_BT_ADMIN.gif -------------------------------------------------------------------------------- /js/IMG_MENU_FILEMAN.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_MENU_FILEMAN.gif -------------------------------------------------------------------------------- /js/IMG_MENU_PASSWORD.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_MENU_PASSWORD.gif -------------------------------------------------------------------------------- /js/IMG_MENU_WEBMAIL.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_MENU_WEBMAIL.gif -------------------------------------------------------------------------------- /js/IMG_MINBARUSAGE0.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_MINBARUSAGE0.gif -------------------------------------------------------------------------------- /js/IMG_MINBARUSAGE1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_MINBARUSAGE1.gif -------------------------------------------------------------------------------- /js/IMG_MINBARUSAGE2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_MINBARUSAGE2.gif -------------------------------------------------------------------------------- /js/IMG_TITLE_TABLE.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_TITLE_TABLE.gif -------------------------------------------------------------------------------- /js/IMG_LIST_SUSPENDED.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_LIST_SUSPENDED.gif -------------------------------------------------------------------------------- /js/IMG_LV_BT_RESELLER.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_LV_BT_RESELLER.gif -------------------------------------------------------------------------------- /js/IMG_SKIN_HEADER_BG.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/loveyu/SimpleFile/master/js/IMG_SKIN_HEADER_BG.gif -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /image.php: -------------------------------------------------------------------------------- 1 | error path!"); 6 | header("Content-type: image/JPEG",true); 7 | readfile($sy_path); 8 | ?> -------------------------------------------------------------------------------- /copy3.php: -------------------------------------------------------------------------------- 1 | 6 |
7 | 当前文件:
8 | 复制到的目录: 9 | -------------------------------------------------------------------------------- /include.da.php: -------------------------------------------------------------------------------- 1 | "); 7 | } 8 | if(@$_COOKIE['fm:da']==null){ 9 | include_once('da.php'); 10 | exit; 11 | } 12 | ?> -------------------------------------------------------------------------------- /newdir.php: -------------------------------------------------------------------------------- 1 | \n

新文件夹列表:

"; 7 | for ($n=1;$n<=$number;$n++){ 8 | echo "$n 
"; 9 | } 10 | echo "\n
\n"; 11 | appmenu(); 12 | appfooter(); 13 | ?> -------------------------------------------------------------------------------- /zip3.php: -------------------------------------------------------------------------------- 1 | 6 |
7 | 压缩文件(目录):""为 8 | 9 | 10 | -------------------------------------------------------------------------------- /unzip2.php: -------------------------------------------------------------------------------- 1 | 7 | 8 | 当前zip文件:
9 | 10 | 解压到目录: 11 |
12 | 13 | -------------------------------------------------------------------------------- /dl.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /da.action2.php: -------------------------------------------------------------------------------- 1 | @$_POST['path']); 4 | @$_POST=array('rename1' => @$_POST['rename1']); 5 | include_once('rename2.php'); 6 | } 7 | if(@$_POST['mod']!=@$_POST['ysmod'] && @$_POST['button']=='mod'){ 8 | $_GET=array('0' => @$_POST['path']); 9 | $_POST=array('0' => @$_POST['mod']); 10 | include_once('chmod2.php'); 11 | } 12 | $page_from=@$_SERVER['HTTP_REFERER']; 13 | if($page_from!=null)echo ""; 14 | else echo ""; 15 | ?> -------------------------------------------------------------------------------- /class.runtime.php: -------------------------------------------------------------------------------- 1 | StartTime = $this->get_microtime(); 16 | } 17 | 18 | function stop() 19 | { 20 | $this->StopTime = $this->get_microtime(); 21 | } 22 | 23 | function spent() 24 | { 25 | return round(($this->StopTime - $this->StartTime), 5); //返回秒数 26 | } 27 | 28 | } 29 | ?> -------------------------------------------------------------------------------- /chmod2.php: -------------------------------------------------------------------------------- 1 | $new) { 9 | $filepath = $_GET["$id"];//通过get方法获得要修改权限的文件名 10 | $sy_filepath=mb_convert_encoding($filepath,$system_coding,'UTF-8');//转换为系统编码 11 | $new2=octdec($new); 12 | if (!chmod($sy_filepath,$new2)){ 13 | echo "\"$filepath\"修改权限为\"$new\"失败!
\n"; 14 | }else{ 15 | echo "\"$filepath\"修改权限为\"$new\"成功!
\n"; 16 | } 17 | } 18 | appmenu(); 19 | appfooter() 20 | ?> 21 | -------------------------------------------------------------------------------- /strip_quotes_gpc.sub.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /move.php: -------------------------------------------------------------------------------- 1 | 首先,如果空间不支持调用系统命令,还是请你先复制,然后删除
毕竟php没有直接对文件移动的方法!
所以,下面来判断你空间是否支持系统函数。
\n"; 6 | $disable_fun=get_cfg_var("disable_functions"); 7 | echo "被禁用的函数列表:$disable_fun
需要使用的函数:proc_open, popen, exec, system, shell_exec, passthru
当前绝对目录:".rootpath()."

\n\n
\n"; 8 | appmenu(); 9 | appfooter(); 10 | ?> -------------------------------------------------------------------------------- /newdir2.php: -------------------------------------------------------------------------------- 1 | $dirname) { 14 | $sy_dirname=mb_convert_encoding($dirname,$system_coding,'UTF-8'); 15 | $sy_dirpath=$sy_path.$sy_dirname; 16 | echo "$id. 在\"$path\"下建立\"$dirname\"目录 <<"; 17 | if(!@mkdir($sy_dirpath,0755)) echo"失败
"; 18 | else echo"成功
"; 19 | } 20 | appmenu(); 21 | appfooter(); 22 | ?> -------------------------------------------------------------------------------- /chmod.php: -------------------------------------------------------------------------------- 1 | $filepath) {//历遍数组输出get请求的文件名 11 | echo "$id=$filepath&"; 12 | } 13 | echo "\">\n"; 14 | foreach ($filelist as $id => $filepath) { 15 | $sy_filepath=mb_convert_encoding($filepath,$system_coding,'UTF-8');//转换文件名为系统编码 16 | $perms = substr(sprintf('%o', fileperms($sy_filepath)), -4);//取得文件(夹)权限 17 | echo "$id.$filepath
\n";//输出表单 18 | } 19 | echo "\n"; 20 | appmenu(); 21 | appfooter(); 22 | ?> -------------------------------------------------------------------------------- /rename2.php: -------------------------------------------------------------------------------- 1 | $newname) { 7 | $filepath = $_GET["$id"]; 8 | $sy_filepath=mb_convert_encoding($filepath,$system_coding,'UTF-8'); 9 | $dirpath = dirname($filepath); 10 | $newfath = $dirpath."/".$newname; 11 | $sy_newfath=mb_convert_encoding($newfath,$system_coding,'UTF-8'); 12 | echo "$filepath > $newfath"; 13 | if (!rename($sy_filepath,$sy_newfath)) { 14 | echo ' < 失败!
'; 15 | } else { 16 | echo ' < 成功!
'; 17 | } 18 | } 19 | appmenu(); 20 | appfooter(); 21 | ?> -------------------------------------------------------------------------------- /cmd.php: -------------------------------------------------------------------------------- 1 | \n你可以在此处执行任意php代码:(禁用函数:".get_cfg_var("disable_functions").")
\n
\n"; 11 | } 12 | echo "
\n 刷新页面 \n"; 13 | appmenu(); 14 | $runtime->stop(); 15 | echo "
页面执行时间: ".$runtime->spent()."秒.\n"; 16 | appfooter(); 17 | ?> -------------------------------------------------------------------------------- /newfile.php: -------------------------------------------------------------------------------- 1 | \"$filepath\"该文件已经存在,禁止创建新文件!\n返回


\n首页\n"; 9 | appfooter(); 10 | } 11 | echo "

该文件将写入到:\"$filepath\"

\n 12 |
13 | 保存为:"; 14 | codinglist(); 15 | echo "\n"; 16 | appmenu(); 17 | appfooter(); 18 | ?> -------------------------------------------------------------------------------- /unzip.php: -------------------------------------------------------------------------------- 1 | open($sy_zipfile) !== TRUE) { 10 | echo "无法打开\"$zipfile\",可能文档错误!\n"; 11 | echo '
返回\n"; 12 | appfooter(); 13 | } 14 | $zip->extractTo($sy_dir); 15 | $zip->close(); 16 | echo "$zipfile 解压到 $dir 成功!
\n"; 17 | appmenu(); 18 | $runtime->stop(); 19 | echo "
页面执行时间: ".$runtime->spent()."秒.\n"; 20 | appfooter(); 21 | ?> -------------------------------------------------------------------------------- /mail.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /rename.php: -------------------------------------------------------------------------------- 1 | 输入重命名的文件名

\n"; 6 | if(@$_GET['one']==null){ 7 | $filelist = $_POST; 8 | asort($filelist); 9 | echo " $filepath) { 12 | echo "$id=$filepath&"; 13 | } 14 | echo "\">\n"; 15 | foreach ($filelist as $id => $filepath) { 16 | $filename = basename($filepath); 17 | echo "$id.$filepath
\n"; 18 | } 19 | }else{?> 20 | 21 | 命名:"" 22 | \n"; 24 | appmenu(); 25 | appfooter(); 26 | ?> -------------------------------------------------------------------------------- /xchmod.php: -------------------------------------------------------------------------------- 1 | $filepath) { 25 | $path2=mb_convert_encoding($filepath,$system_coding,'UTF-8'); 26 | Xchmod($path2,$filemod,$dirmod,$show,$re); 27 | echo "修改路径$filepath 下的所有文件权限为$filemod ,所有目录权限为$dirmod 执行完成!
\n"; 28 | } 29 | appmenu(); 30 | $runtime->stop(); 31 | echo "
页面执行时间: ".$runtime->spent()."秒.\n\n"; 32 | appfooter(); 33 | ?> 34 | -------------------------------------------------------------------------------- /upfile.php: -------------------------------------------------------------------------------- 1 | $max_up_number){ 11 | echo "一次最多允许上传\"$max_up_number\"个文件
\n"; 12 | $number=$max_up_number; 13 | } 14 | echo "文件将上传到\"$path\"
\n\n\n上传文件列表:\n\n
15 |
\n
\n"; 16 | for ($n=1;$n<=$number;$n++){ 17 | $n0=$n-1; 18 | echo "$n 
\n文件名:
\n"; 19 | } 20 | echo "\n
\n文件名选填,留空为原始文件名!"; 21 | appmenu(); 22 | appfooter(); 23 | ?> -------------------------------------------------------------------------------- /delete.php: -------------------------------------------------------------------------------- 1 | $filename) { 12 | $sy_path=mb_convert_encoding($filename,$system_coding,'UTF-8'); 13 | if (is_file($sy_path)) { 14 | if (unlink($sy_path)) echo "删除文件 \"$filename\" 成功!
"; 15 | else echo "删除文件 \"$filename\"失败!
"; 16 | } else { 17 | CleanDir($sy_path); 18 | if (rmdir($sy_path)) { 19 | echo "删除目录 \"$filename\" 成功!
"; 20 | }else{ 21 | echo "删除目录 \"$filename\"失败!
"; 22 | } 23 | } 24 | } 25 | echo "
\n"; 26 | appmenu(); 27 | $runtime->stop(); 28 | echo "
页面执行时间: ".$runtime->spent()."秒.\n"; 29 | appfooter(); 30 | ?> -------------------------------------------------------------------------------- /urldl.php: -------------------------------------------------------------------------------- 1 | 下载\"$filename\"文件成功,大小为".newfilesize("$fn")."。
\n网址为:$url

"; 23 | }else{ 24 | echo "下载\"$url\"失败,请检查路径、文件名、及网址!文件大小限制为".round($httpdownmax/1024/1024,2)."M。"; 25 | } 26 | }else{ 27 | echo "该文件\"$fn\"已经存在,该操作无法覆盖文件!"; 28 | } 29 | appmenu(); 30 | $runtime->stop(); 31 | echo "
页面执行时间: ".$runtime->spent()."秒.\n"; 32 | appfooter(); 33 | ?> -------------------------------------------------------------------------------- /copy2.php: -------------------------------------------------------------------------------- 1 | $filepath){ 12 | $filepath_old=mb_convert_encoding($filepath,$system_coding,'UTF-8'); 13 | $todir_old=mb_convert_encoding($todir,$system_coding,'UTF-8'); 14 | $filename=basename($filepath_old); 15 | $filetype=filetype($filepath_old); 16 | if($filetype=='file'){ 17 | if(copy($filepath_old,$todir.$filename))echo "文件\"$filepath\"复制成功!
\n"; 18 | else echo "文件\"$filepath\"复制失败!
\n"; 19 | } 20 | if ($filetype=='dir'){ 21 | if (xCopy_dir($filepath_old,$todir.$filename))echo "文件夹\"$filepath\"复制成功!
\n"; 22 | else echo "文件夹\"$filepath\"复制失败!
\n"; 23 | } 24 | } 25 | appmenu(); 26 | $runtime->stop(); 27 | echo "
页面执行时间: ".$runtime->spent()."秒.\n"; 28 | appfooter(); 29 | ?> -------------------------------------------------------------------------------- /mail_simply.php: -------------------------------------------------------------------------------- 1 | AddReplyTo($email_reply,$email_reply_name); 8 | $mail->AddAddress($email_to,$email_to_name); 9 | $mail->SetFrom($email_from,$email_from_name); 10 | $mail->Subject = $Subject; 11 | $mail->MsgHTML($email_body); 12 | if($email_Attachment!=null){ 13 | $email_Attachment=mb_convert_encoding($email_Attachment,$system_coding,'UTF-8'); 14 | if(!is_file($email_Attachment)){ 15 | echo "\"$email_Attachment\"不是一个正确的文件!没有发送附件!"; 16 | }else{ 17 | if(filesize($email_Attachment)>50000000)echo "文件过大,附件未发送!"; 18 | else $mail->AddAttachment($email_Attachment); 19 | } 20 | } 21 | $mail->Send(); 22 | echo $successfully_info; 23 | } catch (phpmailerException $e) { 24 | echo $e->errorMessage(); //Pretty error messages from PHPMailer 25 | } catch (Exception $e) { 26 | echo $e->getMessage(); //Boring error messages from anything else! 27 | } 28 | appmenu(); 29 | $runtime->stop(); 30 | echo "
页面执行时间: ".$runtime->spent()."秒.\n"; 31 | appfooter(); 32 | ?> 33 | 34 | -------------------------------------------------------------------------------- /config.php: -------------------------------------------------------------------------------- 1 | start();//计时 24 | include_once ('strip_quotes_gpc.sub.php');//包含将提交信息中的转移符号去掉 25 | include_once ('password.php');//包含密码文档 26 | include_once ('function.php');//包含函数文件 27 | //邮件发送配置 28 | $smtp_port=465;//邮件发送端口 29 | $stmp_host="smtp.qq.com";//邮件服务器地址 30 | $smtp_username="";//邮件用户名 31 | $smtp_password="";//邮箱密码 32 | $smtp_ssl="ssl"; 33 | ?> -------------------------------------------------------------------------------- /da.action.php: -------------------------------------------------------------------------------- 1 | $name){ 16 | $_POST["$id"]=basename($name); 17 | } 18 | include_once('zip2.php'); 19 | } 20 | if($_POST['button']=='delete'){ 21 | clean_post_more(); 22 | include_once('delete.php'); 23 | } 24 | if($_POST['button']=='mod'){ 25 | $postfilemod=$_POST['filechmod']; 26 | $postdirmod=$_POST['dirchmod']; 27 | $postre=@$_POST['recursive']; 28 | $postshow=@$_POST['postshow']; 29 | clean_post_more(); 30 | include_once('xchmod.php'); 31 | } 32 | if(@$_POST['button']=='oneonerename'){ 33 | clean_post_more(); 34 | include_once('rename.php'); 35 | } 36 | $page_from=@$_SERVER['HTTP_REFERER']; 37 | if($page_from!=null)echo ""; 38 | else echo ""; 39 | ?> 40 | -------------------------------------------------------------------------------- /mail_sendmail.php: -------------------------------------------------------------------------------- 1 | IsSendmail(); 8 | try { 9 | $mail->AddReplyTo($email_reply,$email_reply_name); 10 | $mail->AddAddress($email_to,$email_to_name); 11 | $mail->SetFrom($email_from,$email_from_name); 12 | $mail->Subject = $Subject; 13 | $mail->MsgHTML($email_body); 14 | if($email_Attachment!=null){ 15 | $email_Attachment=mb_convert_encoding($email_Attachment,$system_coding,'UTF-8'); 16 | if(!is_file($email_Attachment)){ 17 | echo "\"$email_Attachment\"不是一个正确的文件!没有发送附件!"; 18 | }else{ 19 | if(filesize($email_Attachment)>50000000)echo "文件过大,附件未发送!"; 20 | else $mail->AddAttachment($email_Attachment); 21 | } 22 | } 23 | $mail->Send(); 24 | echo $successfully_info; 25 | } catch (phpmailerException $e) { 26 | echo $e->errorMessage(); //Pretty error messages from PHPMailer 27 | } catch (Exception $e) { 28 | echo $e->getMessage(); //Boring error messages from anything else! 29 | } 30 | appmenu(); 31 | $runtime->stop(); 32 | echo "
页面执行时间: ".$runtime->spent()."秒.\n"; 33 | appfooter(); 34 | ?> 35 | 36 | -------------------------------------------------------------------------------- /readfile.php: -------------------------------------------------------------------------------- 1 | "; 11 | }else{ 12 | echo "
13 | \n编码>>\n"; 14 | codinglist($coding); 15 | echo "

\n"; 16 | if ($coding=='UTF-8'){ 17 | highlight_file($sy_path); 18 | }else{ 19 | //if(!is_dir('temp'))mkdir('temp','0777'); 20 | //file_put_contents('temp/readfile.temp.php',mb_convert_encoding(file_get_contents($sy_path),'UTF-8',$coding)); 21 | $contents=mb_convert_encoding(file_get_contents($sy_path),'UTF-8',$coding); 22 | highlight_string($contents); 23 | //unlink('temp/readfile.temp.php'); 24 | } 25 | } 26 | echo "\n
\n"; 27 | appmenu(); 28 | $runtime->stop(); 29 | echo "
页面执行时间: ".$runtime->spent()."秒.\n"; 30 | appfooter(); 31 | ?> -------------------------------------------------------------------------------- /password.php: -------------------------------------------------------------------------------- 1 | \npassword ok!\n\nPassword has been saved, two seconds after the jump.\n"); 8 | }else{ 9 | die("\nerror\npassword error! return\n"); 10 | } 11 | } 12 | if (@$_COOKIE['fm:pwd'] != $password) { 13 | echo "\nPlease enter your password!\n

Please enter you password!

14 |
\n 15 | 16 |
\n"; 17 | exit; 18 | } 19 | if (@$_GET['action'] == "logout") { 20 | setcookie('fm:pwd', null); 21 | setcookie('fm:da',null); 22 | echo "\njumping...\n 23 | Cookie has been deleted, the page refreshes automatically after two seconds.\n"; 24 | exit; 25 | } 26 | ?> -------------------------------------------------------------------------------- /modify.php: -------------------------------------------------------------------------------- 1 | 22 |
23 |

该文件为:"" 编码为: 24 | 25 |

26 |

27 |
28 |
29 | 30 | 另存为: 31 | 32 | 33 | -------------------------------------------------------------------------------- /mail_smtp.php: -------------------------------------------------------------------------------- 1 | IsSMTP(); 8 | try { 9 | $mail->SMTPDebug = 2; 10 | $mail->SMTPAuth = true; 11 | $mail->SMTPSecure = $smtp_ssl; 12 | $mail->Host = $stmp_host; 13 | $mail->Port = $smtp_port; 14 | $mail->Username = $smtp_username; 15 | $mail->Password = $smtp_password; 16 | $mail->AddReplyTo($email_reply,$email_reply_name); 17 | $mail->AddAddress($email_to,$email_to_name); 18 | $mail->SetFrom($email_from,$email_from_name); 19 | $mail->Subject = $Subject; 20 | $mail->MsgHTML($email_body); 21 | if($email_Attachment!=null){ 22 | $email_Attachment=mb_convert_encoding($email_Attachment,$system_coding,'UTF-8'); 23 | if(!is_file($email_Attachment)){ 24 | echo "\"$email_Attachment\"不是一个正确的文件!没有发送附件!"; 25 | }else{ 26 | if(filesize($email_Attachment)>50000000)echo "文件过大,附件未发送!"; 27 | else $mail->AddAttachment($email_Attachment); 28 | } 29 | } 30 | $mail->Send(); 31 | echo $successfully_info; 32 | } catch (phpmailerException $e) { 33 | echo $e->errorMessage(); //Pretty error messages from PHPMailer 34 | } catch (Exception $e) { 35 | echo $e->getMessage(); //Boring error messages from anything else! 36 | } 37 | appmenu(); 38 | $runtime->stop(); 39 | echo "
页面执行时间: ".$runtime->spent()."秒.\n"; 40 | appfooter(); 41 | ?> 42 | 43 | -------------------------------------------------------------------------------- /readme.md: -------------------------------------------------------------------------------- 1 | # php文件管理 2 | ## 作者信息 3 | 4 | * 作者 : 恋羽 5 | * 博客 : [http://www.loveyu.org](http://www.loveyu.org) 6 | * 反馈地址 : [http://www.loveyu.org/1415.html](http://www.loveyu.org/1415.html) 7 | * 最新版本 : 2.06 8 | * 更新说明 : 程序将不再更新,请使用新的管理器 [http://www.loveyu.org/2429.html](http://www.loveyu.org/2429.html),支持更多的操作也更优雅 9 | 10 | ## 版本更新说明 11 | * 2.06增加目录详细跳转功能 12 | * 2.05增加一邮件发送功能 13 | * 2.04修正执行代码时的一小错误,修正网站显示//地址的问题 14 | * 2.03增加文件目录中文件夹和文件个数的显示,取消对整个目录下文件大小的计算,那是一个错误 15 | * 2.02修正小错误 16 | * 2.01修正上传文件中出现的一个错误,修正文件所有者得显示,win下不显示 17 | * 2.00模拟DA控制面板文件管理器 18 | * 1.05修正新建文件夹权限不对的问题 19 | * 1.04修正1.03中弄反函数的问题,导致修改的权限依然不对 20 | * 1.03增加对目录权限的递归修改,可分别设置文件与目录权限 21 | * 1.02修正修改权限时没有改为8进制导致修改权限乱的问题 22 | * 1.01修正view.php中'/'错位导致底部导航查看文件不准确 23 | 24 | ## 功能说明 25 | * 查看文件:可以下载文件和阅读文件,如果是图片可以查看 26 | * 新文件夹:创建新文件夹,不用介绍 27 | * 创建文件:支持指定常用编码 28 | * 修改文件:可以切换常用编码 29 | * 重命名:可以同时对一目录下的多文件(夹)进行改名 30 | * 权限修改:可以同时对一目录下的多文件(夹)进行权限修改,对于有时候php没有的权限那是没办法的,只有用ftp 31 | * 上传文件:一次上传多文件,同时可指定其文件名,不指定就为原始文件名 32 | * 复制文件:包括复制其子目录及文件 33 | * 删除文件:一次全删干净,包括子目录 34 | * 远程下载:直接下载文件到服务器,最好是指定文件,不然问题多多的,我采用了一个很烂的规则,当然,如果是 http://www.loveyu.org/wp-admin/post-new.php 就会命名为post-new.php.dl ,php5和asp也一样,如果是 http://www.loveyu.org/wp-admin/post-new.zip?sadas=dsahd 则会命名为post-new.zip,如果是 http://www.loveyu.org 就会自动命名为.dl,所以,如果确定文件地址很正规则不需要命名。 35 | * unzip操作:选择zip文档,解压到指定目录 36 | * zip操作:支持压缩文件及其子目录 37 | * 执行php代码:可以玩玩的,有时候直接执行php代码,还不错 38 | * 移动文件:如果你空间允许使用系统函数就用它移动,否则建议先复制再删除,毕竟php无移动文件函数。 -------------------------------------------------------------------------------- /zip2.php: -------------------------------------------------------------------------------- 1 | 添加以下文件到\"$zippath\":
\n"; 24 | $zip = new ZipArchive; 25 | if ($zip->open($sy_zippath, ZipArchive::OVERWRITE) === TRUE){ 26 | foreach($filedata as $id => $filename){ 27 | $filename_old=mb_convert_encoding($filename,$system_coding,'UTF-8'); 28 | if (is_dir($filename_old)){ 29 | addFileToZip($filename_old,$zip,$zippath); 30 | }else{ 31 | $zip->addFile($filename_old); 32 | echo "$filename > 成功
\n"; 33 | } 34 | } 35 | $zip->close(); 36 | echo "
"; 37 | }else{ 38 | echo "建立zip文件\"$zippath\"失败!\n"; 39 | } 40 | } 41 | appmenu(); 42 | $runtime->stop(); 43 | echo "
页面执行时间: ".$runtime->spent()."秒.\n"; 44 | appfooter(); 45 | ?> -------------------------------------------------------------------------------- /upfile2.php: -------------------------------------------------------------------------------- 1 | $name){ 9 | $file_number+=1; 10 | } 11 | for($i=0;$i<$file_number;$i++){ 12 | if($_FILES['upfile']['error'][$i]==0){ 13 | $postfname=$_POST["filename"."$i"]; 14 | $local_name=$_FILES['upfile']['name'][$i]; 15 | if ($postfname!=null)$name=mb_convert_encoding($path.$postfname,$system_coding,'UTF-8'); 16 | else $name=mb_convert_encoding($path.$local_name,$system_coding,'UTF-8'); 17 | if(!file_exists($name)){ 18 | if(move_uploaded_file($_FILES['upfile']['tmp_name'][$i],$name)){ 19 | echo "文件\"$local_name\"上传成功!保存为\"".mb_convert_encoding($name,'UTF-8',$system_coding) 20 | ."(".newfilesize($name).")\"。
\n"; 21 | }else{ 22 | echo "上传文件\"$local_name\"保存失败,未知错误!
\n"; 23 | } 24 | }else{ 25 | if(is_file($name))echo "上传文件\"$local_name\"保存失败,\"$name\"文件已存在!
\n"; 26 | } 27 | 28 | 29 | } 30 | } 31 | }else{ 32 | echo "没有上传文件!\n"; 33 | } 34 | appmenu(); 35 | $runtime->stop(); 36 | echo "
页面执行时间: ".$runtime->spent()."秒.\n"; 37 | appfooter(); 38 | ?> -------------------------------------------------------------------------------- /mail_write.php: -------------------------------------------------------------------------------- 1 | 5 | 6 | 主题:(留空为收件人邮箱名)
7 | 收件人邮箱:(必须) 8 | 姓名:(选填)
9 | 发件人邮箱:(必须) 10 | 姓名:
11 | 回复地址:(必须) 12 | 姓名:
13 | 附件:(选填,请输入服务器单个文件路径)
14 | 内容:(必须)
15 |
17 | 22 |

23 | 当前SMTP服务器设置:
24 | 主机:
25 | 端口:
26 | 方式:
27 | 用户: 28 | \n密码:当前密码为空!"; 30 | ?> 31 |
32 | -------------------------------------------------------------------------------- /writefile.php: -------------------------------------------------------------------------------- 1 | \"$filepath\"该文件已经存在,禁止创建新文件!\n返回


\n首页\n"; 16 | appfooter(); 17 | } 18 | if ($coding!='UTF-8'){ 19 | $content=mb_convert_encoding($content,$coding,'UTF-8'); 20 | } 21 | $writelong=file_put_contents($sy_filepath,$content); 22 | echo "提交字符串长度为\"$long\"字节,写入到\"$filepath\"的长度为\"$writelong\"字节。文件编码为\"$coding\",大小为\"" 23 | .newfilesize($sy_filepath)."\"。
\n返回选择文件目录 "; 24 | } 25 | if ($do=='modify'){ 26 | if ($coding!='UTF-8'){ 27 | $content=mb_convert_encoding($content,$coding,'UTF-8'); 28 | } 29 | $writelong=file_put_contents($sy_filepath,$content); 30 | echo "修改的文件为\"$filepath\",提交长度为\"$long\"字节,成功写入\"$writelong\"字节,文件编码为\"$coding\",大小为\"" 31 | .newfilesize($sy_filepath)."\"。
"; 32 | if ($filepath!=$old_path){ 33 | echo "原文件文件\"$old_path\"没有被删除,而是新建的\"$filepath\""; 34 | } 35 | echo "
\n返回选择文件 "; 36 | } 37 | appmenu(); 38 | appfooter(); 39 | ?> -------------------------------------------------------------------------------- /zip.php: -------------------------------------------------------------------------------- 1 | function ck(b)\n{\nvar input = document.getElementsByTagName(\"input\");\nfor (var i=0;i\n\n选择要压缩的文件和目录\n\n\n
\n"; 20 | foreach ($filedata as $id => $filename){ 21 | $filename_old=mb_convert_encoding($filename,$system_coding,'UTF-8'); 22 | $filetype = filetype($filename_old); 23 | $id+=1; 24 | if ($filetype == 'dir') { 25 | echo "$id  <$filetype>$filename
\n"; 26 | }else{ 27 | $filesize = newfilesize($filename_old); 28 | echo "$id  <$filetype>$filename($filesize)
\n"; 29 | } 30 | } 31 | echo " \n"; 32 | } 33 | } 34 | appmenu(); 35 | appfooter(); 36 | ?> -------------------------------------------------------------------------------- /simple.php: -------------------------------------------------------------------------------- 1 | 5 | 选择目录及操作类型: 6 | '; 7 | $path=dirname(rootpath());//获取上级目录名 8 | $filedata = glob("$path/*");//获取文件数组 9 | if(empty($filedata) || !@file_exists($path) || @$_GET['s']=='0'){//当文件数组为空,路径错误,或者请求手动输入,输出内容 10 | echo "\n(智能匹配)
\n"; 11 | }else{ 12 | $filedata=array_coding_to_utf8($filedata,$system_coding); 13 | asort($filedata);//对数组排列,并保持引索关系 14 | echo "\n(手动输入)
\n"; 23 | } 24 | echo '查看文件 25 | 新文件夹 26 | 创建文件 27 | 修改文件 28 | 重命名 29 |
30 | 权限修改 31 | 上传文件 32 | 复制文件 33 | 删除文件 34 | 远程下载 35 |
36 | unzip操作 37 | zip操作 38 | 移动文件 39 | 递归权限修改 40 |
41 |  '; 42 | appmenu();//底部菜单 43 | appfooter(); 44 | ?> -------------------------------------------------------------------------------- /copy.php: -------------------------------------------------------------------------------- 1 | function ck(b)\n{\nvar input = document.getElementsByTagName(\"input\");\nfor (var i=0;i"; 11 | if (!@file_exists($path)) { 12 | echo "该路径\"$path\"不存在或无访问权限!"; 13 | appmenu(); 14 | appfooter(); 15 | exit; 16 | } 17 | $lastpath=rawurlencode(dirname($path)); 18 | echo ">>>上级目录
\n"; 19 | $filedata = glob("$path"."*"); 20 | if(empty($filedata)){ 21 | echo "该目录为空,或无访问权限!\n"; 22 | }else{ 23 | echo "选择的文件和文件夹及子目录将会全部复制到$todir(重选)"; 24 | $path=mb_convert_encoding($path,'UTF-8',$system_coding); 25 | $filedata=array_coding_to_utf8($filedata,$system_coding); 26 | asort($filedata); 27 | echo "\n"; 28 | echo "\n\n 29 | 当前目录:$path
\n"; 30 | foreach ($filedata as $id => $filename) { 31 | $filename_old=mb_convert_encoding($filename,$system_coding,'UTF-8'); 32 | $urlfilename=rawurlencode($filename_old); 33 | $filetype = filetype($filename_old); 34 | $id = $id + 1; 35 | if ($filetype == 'dir') { 36 | echo "$id  <$filetype>$filename
\n"; 38 | }else{ 39 | $filesize = newfilesize($filename_old); 40 | echo "$id  <$filetype>$filename($filesize)
\n"; 41 | } 42 | 43 | } 44 | echo "注意:此操作会覆盖掉原有文件!
\n\n"; 45 | } 46 | appmenu(); 47 | appfooter(); 48 | ?> -------------------------------------------------------------------------------- /view.php: -------------------------------------------------------------------------------- 1 | \n>>>上级目录
\n";//输出当前目录信息 18 | $filedata = glob("$path"."*");//获取原始目录数组 19 | if(empty($filedata)){//判断目录是否为空 20 | echo "该目录为空,或无访问权限!"; 21 | }else{ 22 | $path=mb_convert_encoding($path,'UTF-8',$system_coding);//将目录由系统编码转换为UTF-8编码 23 | $filedata=array_coding_to_utf8($filedata,$system_coding);//转换文件数组 24 | foreach ($filedata as $id => $filename) {//历遍数组 25 | $filename_old=mb_convert_encoding($filename,$system_coding,'UTF-8');//将文件名转换为系统编码 26 | $urlfilename=rawurlencode($filename_old);//由系统编码转换为url编码 27 | $filetype = filetype($filename_old);//获取文件类型呢 28 | $filesize=newfilesize($filename_old);//以自定义的函数获取文件大小 29 | $id = $id + 1;//文件id由1开始排列 30 | $perms = substr(sprintf('%o', fileperms($filename_old)), -4);//获取文件权限 31 | if ($filetype == 'dir')echo "$id <目录> $filename 权限:$perms
\n";//判断为目录时输出的内容 32 | if ($filetype == 'file'){ 33 | $pathinfo=pathinfo($filename_old);//获取文件信息 34 | $fileext=@$pathinfo['extension'];//获取文件后缀 35 | $modify_time=date("Ymd.H:i.s",filemtime($filename_old));//获取文件最后修改时间 36 | $creat_time=date("Ymd.H:i.s",filectime($filename_old));//获取文件创建时间 37 | if(in_array($fileext,$imagearray)){//判断是否为图片 38 | echo "$id <$fileext"."图像> $filename($filesize下载 查看 权限:$perms
\n   修改:$modify_time 创建:$creat_time
\n"; 39 | }else{ 40 | echo "$id <$fileext"."文件> $filename($filesize下载 阅读 权限:$perms
\n   修改:$modify_time 创建:$creat_time
\n"; 41 | } 42 | } 43 | if ($filetype != 'dir' && $filetype != 'file') {//加入一个啥都不是的文件判断 44 | echo "$id <未知文件> $filename($filesize) 权限:$perms
\n"; 45 | } 46 | } 47 | } 48 | appmenu(); 49 | $runtime->stop();//页面执行时间停止 50 | echo "
页面执行时间: ".$runtime->spent()."秒.\n"; 51 | appfooter(); 52 | ?> -------------------------------------------------------------------------------- /js/IMG_MAINJS.js: -------------------------------------------------------------------------------- 1 | $(function(){ 2 | $("input:button,input:submit,input:reset").addClass("boton"); 3 | $("input:text, input:password, textarea, select").addClass("combo"); 4 | $('img').ToolTip({className:'tooltip',position:'mouse',delay: 200}); 5 | $("#top_logo").click(function(){window.location='./'}); 6 | if($.browser.msie==false){$("#top_menu a").hover(function(){$(this).animate({opacity: 1,height:"30px",marginTop:"-5px",color:"#ffffff",lineHeight:"30px"},150);},function(){$(this).animate({opacity:0.8,height:"25px",marginTop:"0px",color:"#ecf2f8",lineHeight:"25px"},100);});} 7 | $("#searchval1").data('oval',$("#searchval1").val()); 8 | $("#searchval7").data('oval',$("#searchval7").val()); 9 | $("#searchval8").data('oval',$("#searchval8").val()); 10 | $("#searchval1, #searchval7, #searchval8").focus(function(){$(this).val("");$(this).addClass("focus");}); 11 | $("#searchval1").blur(function(){if($(this).val()=='') $(this).val($(this).data('oval'));$(this).removeClass("focus");}); 12 | $("#searchval7").blur(function(){if($(this).val()=='') $(this).val($(this).data('oval'));$(this).removeClass("focus");}); 13 | $("#searchval8").blur(function(){if($(this).val()=='') $(this).val($(this).data('oval'));$(this).removeClass("focus");}); 14 | $("#searchByDomain").click(function(){$("form#formds").trigger("submit");}); 15 | $("#searchByUser").click(function(){$("form#formus").trigger("submit");}); 16 | $("#searchval1").keypress(function(){if (e.which==13){$("form#formus").trigger("submit");}}); 17 | $("#searchval8").keypress(function(){if (e.which==13){$("form#formus").trigger("submit");}}); 18 | $("a,input:button,input:submit,input:reset").click(function(){$(this).blur()}); 19 | $("a,input:button,input:submit,input:reset").focus(function(){$(this).blur()}); 20 | $("table.list").each(function(){$(this).find("tr:first td:contains('Advanced Search')").parent().remove();}); 21 | $(".checkAll").click(function(){$("table.list").find("input:checkbox").attr("checked",$(this).attr("checked")); }); 22 | $("table.list").each(function(){$(this).attr("cellspacing","0");$(this).find("tr:not(:first) td.listtitle,tr:eq(1) td.listtitle").removeClass("listtitle").addClass("footer");}); 23 | $("table.list tr td.list,table.list tr td.list2").parent().addClass("trList"); 24 | $("table.list tr td.list,table.list tr td.list2").parent().hover(function(){ $(this).addClass("hover"); },function(){ $(this).removeClass("hover"); }); 25 | $("#changeLang").change(function(){var lang = $(this).val();if(lang!=''){$.ajax({url:'HTM_AJAX_CHANGE_LANG',data:'lang='+lang,type:'GET',dataType:"json",success: function(data){if(data.error==0){location.reload();}else{alert("Error while changin language");}}});}}); 26 | $(".randpass").click(function(){$("input[name='passwd'],input[name='passwd2'],.visiblepass").val(randPass());$(".pster .box").removeClass("s0 s1 s2 s4 s5").addClass("s3");$(".pster").find("span").text("Medium");}); 27 | $("body").find("input[name='passwd2']").wrap('
'); 28 | $("body").find(".pster").append('
Strength:
'); 29 | $("input[name='passwd']").bind("keyup change",function(){$(".visiblepass").val("");var d=new Array();d[0]="Very Weak";d[1]="Very Weak";d[2]="Weak";d[3]="Medium";d[4]="Good";d[5]="Strong";var s=passwordStrength($(this).val());$(".pster .box").removeClass("s0 s1 s2 s3 s4 s5").addClass("s"+s);$(".pster").find("span").text(d[s]);}); 30 | }); 31 | function TB_load(){$("#pageloading:hidden").slideDown("fast");} 32 | function TB_unload(){$("#pageloading:visible").slideUp("fast");} 33 | function getPage(page, destination){$.ajax({type: "get", url: page, dataType: 'html', success: function(html){$("#"+destination).html(html);}});} 34 | function passwordStrength(password){ 35 | var score=0;if(password.length>6){score++;}if((password.match(/[a-z]/) ) && ( password.match(/[A-Z]/))){score++;} 36 | if(password.match(/\d+/)){score++;}if(password.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/)){score++;}if(password.length>12){score++;}return score; 37 | } 38 | function randPass(){ 39 | charsl="abcdefghijklmnopqrstuvwxyz";charsu="ABCDEFGHIJKLMNOPQRSTUVWXYZ";nums="1234567890";simb="!.-_@#$+/"; 40 | pass=""; 41 | i=Math.floor(Math.random()*26); pass += charsl.charAt(i); 42 | i=Math.floor(Math.random()*26); pass += charsu.charAt(i); 43 | i=Math.floor(Math.random()*26); pass += charsu.charAt(i); 44 | i=Math.floor(Math.random()*10); pass += nums.charAt(i); 45 | i=Math.floor(Math.random()*10); pass += nums.charAt(i); 46 | i=Math.floor(Math.random()*9); pass += simb.charAt(i); 47 | i=Math.floor(Math.random()*26); pass += charsl.charAt(i); 48 | i=Math.floor(Math.random()*10); pass += nums.charAt(i); 49 | return pass; 50 | } 51 | 52 | 53 | -------------------------------------------------------------------------------- /js/IMG_TOOLTIP.js: -------------------------------------------------------------------------------- 1 | /* 2 | * Interface elements for jQuery - http://interface.eyecon.ro 3 | * 4 | * Copyright (c) 2006 Stefan Petre 5 | * Dual licensed under the MIT (MIT-LICENSE.txt) 6 | * and GPL (GPL-LICENSE.txt) licenses. 7 | */ 8 | eval(function(p,a,c,k,e,d){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('4.z={2b:8(e){5 x=0;5 y=0;5 d=e.1y;5 1B=H;6(4(e).a(\'L\')==\'1e\'){5 1q=d.V;5 1s=d.o;1B=Z;d.V=\'20\';d.L=\'21\';d.o=\'1E\'}5 3=e;1l(3){x+=3.1Z+(3.1o&&!4.1U.1T?g(3.1o.1R)||0:0);y+=3.24+(3.1o&&!4.1U.1T?g(3.1o.1V)||0:0);3=3.1Y}3=e;1l(3&&3.22&&3.22.1W()!=\'f\'){x-=3.11||0;y-=3.J||0;3=3.2A}6(1B==Z){d.L=\'1e\';d.o=1s;d.V=1q}c{x:x,y:y}},2D:8(3){5 x=0,y=0;1l(3){x+=3.1Z||0;y+=3.24||0;3=3.1Y}c{x:x,y:y}},1h:8(e){5 w=4.a(e,\'2E\');5 h=4.a(e,\'2C\');5 C=0;5 D=0;5 d=e.1y;6(4(e).a(\'L\')!=\'1e\'){C=e.1F;D=e.1I}A{5 1q=d.V;5 1s=d.o;d.V=\'20\';d.L=\'21\';d.o=\'1E\';C=e.1F;D=e.1I;d.L=\'1e\';d.o=1s;d.V=1q}c{w:w,h:h,C:C,D:D}},2L:8(3){c{C:3.1F||0,D:3.1I||0}},2J:8(e){5 h,w,S;6(e){w=e.1f;h=e.1d}A{S=9.p;w=1X.1L||1g.1L||(S&&S.1f)||9.f.1f;h=1X.1O||1g.1O||(S&&S.1d)||9.f.1d}c{w:w,h:h}},23:8(e){5 t,l,w,h,X,N;6(e&&e.2I.1W()!=\'f\'){t=e.J;l=e.11;w=e.1J;h=e.1K;X=0;N=0}A{6(9.p&&9.p.J){t=9.p.J;l=9.p.11;w=9.p.1J;h=9.p.1K}A 6(9.f){t=9.f.J;l=9.f.11;w=9.f.1J;h=9.f.1K}X=1g.1L||9.p.1f||9.f.1f||0;N=1g.1O||9.p.1d||9.f.1d||0}c{t:t,l:l,w:w,h:h,X:X,N:N}},2o:8(e,W){5 3=4(e);5 t=3.a(\'2n\')||\'\';5 r=3.a(\'2m\')||\'\';5 b=3.a(\'2k\')||\'\';5 l=3.a(\'2q\')||\'\';6(W)c{t:g(t)||0,r:g(r)||0,b:g(b)||0,l:g(l)};A c{t:t,r:r,b:b,l:l}},2v:8(e,W){5 3=4(e);5 t=3.a(\'2u\')||\'\';5 r=3.a(\'2t\')||\'\';5 b=3.a(\'2r\')||\'\';5 l=3.a(\'2s\')||\'\';6(W)c{t:g(t)||0,r:g(r)||0,b:g(b)||0,l:g(l)};A c{t:t,r:r,b:b,l:l}},2N:8(e,W){5 3=4(e);5 t=3.a(\'1V\')||\'\';5 r=3.a(\'3a\')||\'\';5 b=3.a(\'3b\')||\'\';5 l=3.a(\'1R\')||\'\';6(W)c{t:g(t)||0,r:g(r)||0,b:g(b)||0,l:g(l)||0};A c{t:t,r:r,b:b,l:l}},1w:8(1a){5 x=1a.36||(1a.3d+(9.p.11||9.f.11))||0;5 y=1a.37||(1a.3c+(9.p.J||9.f.J))||0;c{x:x,y:y}},1x:8(u,1D){1D(u);u=u.34;1l(u){4.z.1x(u,1D);u=u.2U}},2S:8(u){4.z.1x(u,8(3){2d(5 I 2O 3){6(2P 3[I]===\'8\'){3[I]=G}}})},2Q:8(3,1b){5 B=4.z.23();5 1z=4.z.1h(3);6(!1b||1b==\'2W\')4(3).a({14:B.t+((1S.1Q(B.h,B.N)-B.t-1z.D)/2)+\'R\'});6(!1b||1b==\'31\')4(3).a({12:B.l+((1S.1Q(B.w,B.X)-B.l-1z.C)/2)+\'R\'})},2Z:8(3,2h){5 2i=4(\'2G[@1j*="1i"]\',3||9),1i;2i.28(8(){1i=j.1j;j.1j=2h;j.1y.2Y="2X:30.33.32(1j=\'"+1i+"\')"})}};[].25||(2V.2R.25=8(v,n){n=(n==G)?0:n;5 m=j.35;2d(5 i=n;i\');4(\'#1c\').a({o:\'1E\',2z:2B,L:\'1e\'});4.7.E=Z}c j.28(8(){6(4.I(j,\'F\')){j.q={o:/14|1t|12|2e|1v/.2H(k.o)?k.o:\'1t\',K:k.K?k.K:H,16:k.16?k.16:H,Y:k.Y&&k.Y.2j==2g?k.Y:H,10:k.10&&k.10.2j==2g?k.10:H};5 3=4(j);3.19(\'2K\',4.7.1r);3.19(\'1A\',4.7.1A)}})}};4.2l.2w=4.7.2f;',62,200,'|||el|jQuery|var|if|iTooltip|function|document|css||return|es||body|parseInt|||this|options||||position|documentElement|tooltipCFG||pos||nodeEl|||||iUtil|else|clientScroll|wb|hb|helper|title|null|false|attr|scrollTop|className|display|current|ih|ny|nx|pointer|px|de|div|focused|visibility|toInteger|iw|onShow|true|onHide|scrollLeft|left|break|top||delay|mousemove|jEl|bind|event|axis|tooltipHelper|clientHeight|none|clientWidth|self|getSize|png|src|case|while|href|hide|currentStyle|oldTitle|oldVisibility|show|oldPosition|bottom|html|mouse|getPointer|traverseDOM|style|windowSize|focus|restoreStyles|tooltipURL|func|absolute|offsetWidth|get|hidefocused|offsetHeight|scrollWidth|scrollHeight|innerWidth|helperSize|unbind|innerHeight|id|max|borderLeftWidth|Math|opera|browser|borderTopWidth|toLowerCase|window|offsetParent|offsetLeft|hidden|block|tagName|getScroll|offsetTop|indexOf|apply|tooltipTitle|each|blur|mouseout|getPosition|filteredPosition|for|right|build|Function|emptyGIF|images|constructor|marginBottom|fn|marginRight|marginTop|getMargins|switch|marginLeft|paddingBottom|paddingLeft|paddingRight|paddingTop|getPadding|ToolTip|default|fadeOut|zIndex|parentNode|3000|height|getPositionLite|width|append|img|test|nodeName|getClient|mouseover|getSizeLite|fadeIn|getBorder|in|typeof|centerEl|prototype|purgeEvents|http|nextSibling|Array|vertically|progid|filter|fixPNG|DXImageTransform|horizontally|AlphaImageLoader|Microsoft|firstChild|length|pageX|pageY|extend|replace|borderRightWidth|borderBottomWidth|clientY|clientX'.split('|'),0,{})) 9 | -------------------------------------------------------------------------------- /list.php: -------------------------------------------------------------------------------- 1 | function ck(b)\n{\nvar input = document.getElementsByTagName(\"input\");\nfor (var i=0;i"; 18 | } 19 | if (!@file_exists($path)) {//判断路径情况 20 | echo "该路径\"$path\"不存在或无访问权限!"; 21 | appmenu(); 22 | appfooter(); 23 | exit; 24 | } 25 | $lastpath=rawurlencode(dirname($path));//转换上级目录为url编码 26 | echo "当前目录:".mb_convert_encoding($path,'UTF-8',$system_coding)."
\n>>>上级目录
\n"; 27 | $filedata = glob("$path"."*"); 28 | if(empty($filedata)){ 29 | echo "该目录为空,或无访问权限!"; 30 | }else{ 31 | $path=mb_convert_encoding($path,'UTF-8',$system_coding);//转换为UTF-8编码路径 32 | $filedata=array_coding_to_utf8($filedata,$system_coding);//转换为UTF-8数组 33 | asort($filedata); 34 | if ($action == 'delete' || $action == 'rename' || $action=='chmod') { 35 | echo "\n\n\n
\n";//输出表单部分 36 | foreach ($filedata as $id => $filename) { 37 | $filename_old=mb_convert_encoding($filename,$system_coding,'UTF-8');//转换为原始文件名 38 | $urlfilename=rawurlencode($filename_old);//原始文件名的url编码 39 | $filetype = filetype($filename_old);//文件类型 40 | if ($action=='chmod')$perms = '('.substr(sprintf('%o', fileperms($filename_old)), -4).')';//如果动作为修改权限则赋值给变量,否则为空 41 | else $perms=null; 42 | $id = $id + 1; 43 | if ($filetype == 'dir') {//判断类型 44 | echo "$id  <目录>$filename$perms
\n"; 45 | }else{ 46 | $filesize = newfilesize($filename_old); 47 | echo "$id  <$filetype"."文件>$filename($filesize)$perms
\n"; 48 | } 49 | } 50 | echo ''."\n"; 51 | } 52 | if ($action == 'unzip') { 53 | echo "选择ZIP文件:
\n\n"; 54 | foreach ($filedata as $id => $filename) { 55 | $filename_old=mb_convert_encoding($filename,$system_coding,'UTF-8'); 56 | $urlfilename=rawurlencode($filename_old); 57 | $filetype = filetype($filename_old); 58 | $id = $id + 1; 59 | if ($filetype == 'dir') { 60 | $filename=$filename."/"; 61 | echo "$id <目录> $filename
\n"; 62 | } 63 | if ($filetype == 'file'){ 64 | $pathinfo=pathinfo($filename_old); 65 | if (@$pathinfo['extension']=='zip'){ 66 | $filesize = newfilesize($filename_old); 67 | echo "$id <ZIP>$filename($filesize)
\n"; 68 | } 69 | } 70 | } 71 | echo "输入要解压到的目录:\n \n"; 72 | } 73 | if ($action == 'newfile' || $action == 'newdir' || $action == 'urldl' || $action == 'upfile' || $action=='zip') { 74 | if($action=='zip')echo "选择你要压缩文件所在目录:
\n"; 75 | echo "\n"; 76 | foreach ($filedata as $id => $filename) { 77 | $filename_old=mb_convert_encoding($filename,$system_coding,'UTF-8'); 78 | $urlfilename=rawurlencode($filename_old); 79 | $id = $id + 1; 80 | if (filetype($filename_old) == 'dir') { 81 | echo "$id$filename
\n"; 83 | } 84 | } 85 | echo "0 $path(当前目录)
\n"; 86 | if ($action == 'newfile')echo "新文件名:
\n\n"; 87 | if ($action == 'zip')echo "ZIP路径及文件:
\n\n"; 88 | if ($action == 'newdir')echo "文件夹数量(MAX=$max_up_number):
\n\n"; 89 | if ($action == 'urldl')echo "大小限制:".round($httpdownmax/1024/1024,2)."M
\n网址:
\n文件名(选填):
\n\n"; 90 | if ($action == 'upfile')echo "文件数量:
\n\n"; 91 | } 92 | if($action=='copy'){ 93 | echo "\n"; 94 | foreach ($filedata as $id => $filename) { 95 | $filename_old=mb_convert_encoding($filename,$system_coding,'UTF-8'); 96 | $urlfilename=rawurlencode($filename_old); 97 | $id = $id + 1; 98 | if (filetype($filename_old) == 'dir') { 99 | echo "$id$filename
\n"; 101 | } 102 | } 103 | echo "0 $path(当前目录)
\n"; 104 | echo "选择你要复制到的文件目录 \n"; 105 | } 106 | if($action=='xchmod'){ 107 | echo "选择你要修改权限的目录:
该操作会进行递归修改,只支持目录
\n\n"; 108 | foreach ($filedata as $id => $filename) { 109 | $filename_old=mb_convert_encoding($filename,$system_coding,'UTF-8'); 110 | $urlfilename=rawurlencode($filename_old."/"); 111 | $id = $id + 1; 112 | if (is_dir($filename_old)) { 113 | echo "$id$filename
\n"; 114 | } 115 | } 116 | echo "文件权限:
\n目录权限:
\n显示列表:是\n
\n\n"; 117 | } 118 | if ($action == 'modify') { 119 | echo "\n"; 120 | foreach ($filedata as $id => $filename) { 121 | $filename_old=mb_convert_encoding($filename,$system_coding,'UTF-8'); 122 | $urlfilename=rawurlencode($filename_old); 123 | $id+=1; 124 | if (is_dir($filename_old))echo "$id <目录> $filename/
\n"; 125 | else echo "$id $filename(".newfilesize($filename_old).")
\n"; 126 | } 127 | echo "选择文件编码类型:"; 128 | codinglist();//输出一个编码列表 129 | echo " \n"; 130 | } 131 | } 132 | appmenu(); 133 | $runtime->stop(); 134 | echo "
页面执行时间: ".$runtime->spent()."秒.\n"; 135 | appfooter(); 136 | ?> 137 | -------------------------------------------------------------------------------- /function.php: -------------------------------------------------------------------------------- 1 | \n$appname"."$info"."$info2". "\n\n

$appname"."$info"."$info2


\n"; 6 | if ($time < 10 && $url !="") { 7 | echo "\n\n"; 8 | exit; 9 | } 10 | } 11 | 12 | function appfooter() { 13 | #输出页尾 14 | global $appname;//定义两个全局变量 15 | global $version; 16 | echo "
\n

©2011 loveyu.org $appname($version) All Rights Reserved.

\n"; 17 | exit; 18 | } 19 | 20 | function hostpath() { 21 | #获取当前目录网址 22 | $host = $_SERVER['SERVER_NAME'];//获取服务器名 23 | $path = $_SERVER['SCRIPT_NAME'];//页面脚本相对服务器路径 24 | $path = dirname($path);//去除文件名 25 | if ($path == "/" || $path=="\\")$path = "";//判断为根目录的情况,如果是的就输出空 26 | $urlpath = "http://"."$host"."$path"."/";//获取网址 27 | 28 | return $urlpath; 29 | } 30 | function rootpath() { 31 | #获取当前页面的绝对目录 32 | $path = $_SERVER['SCRIPT_FILENAME'];//获取文件绝对目录 33 | $path = dirname($path); 34 | if ($path == "/" || $path=="\\")$path = ""; 35 | $rootpath = "$path"."/"; 36 | return $rootpath; 37 | } 38 | function dirinfo($path){ 39 | $filedata = glob("$path"."/*"); 40 | $d=0; 41 | if(is_array($filedata)){ 42 | foreach($filedata as $id => $name){ 43 | if(is_dir($name))$d+=1; 44 | @$i+=1; 45 | } 46 | } 47 | $dirinfo=array(); 48 | $dirinfo['dir']=$d; 49 | $dirinfo['file']=@$i-$d; 50 | return $dirinfo; 51 | } 52 | 53 | function newfilesize($fname) { 54 | #判断文件大小增强 55 | if(!is_dir($fname))$size = filesize($fname); 56 | else $size=0; 57 | if ($size == 0) $newsize = 0; 58 | if ($size < 1024 && $size > 0)$newsize = $size."B"; 59 | if ($size >= 1024 && $size < 1048576)$newsize = round($size /(1024),2)."KB"; 60 | if ($size >= 1048576 && $size < 1073741824)$newsize = round($size / (1024 * 1024),2)."MB"; 61 | if ($size >= 1073741824 && $size < 1099511627776)$newsize = round($size /(1024 * 1024 * 1024),2)."GB"; 62 | if ($size >= 1099511627776)$newsize = round($size / (1024 * 1024 * 1024 *1024),2)."TB"; 63 | return $newsize; 64 | } 65 | 66 | function CleanDir($dir) 67 | #清空目录并返回列表 68 | { 69 | global $system_coding;//定义全局变量系统编码 70 | $handle = opendir($dir);//打开指定文件夹 71 | while ($file = readdir($handle)) { 72 | if (($file == ".") || ($file == "..")) 73 | continue; 74 | if (is_dir("$dir/$file")) { 75 | CleanDir("$dir/$file"); 76 | if (rmdir("$dir/$file")) 77 | echo "删除目录\"".mb_convert_encoding("$dir/$file",'UTF-8',$system_coding)."\" 成功!
"; 78 | else 79 | echo "删除目录\"".mb_convert_encoding("$dir/$file",'UTF-8',$system_coding)."\"失败!
"; 80 | } else { 81 | if (unlink("$dir/$file")) 82 | echo "删除文件\"".mb_convert_encoding("$dir/$file",'UTF-8',$system_coding)."\"成功!
"; 83 | else 84 | echo "删除文件\"".mb_convert_encoding("$dir/$file",'UTF-8',$system_coding)."\"失败!
"; 85 | } 86 | } 87 | closedir($handle);//关闭打开的文件夹 88 | } 89 | 90 | function codinglist($coding='UTF-8') { 91 | #输出一个编码选择框 92 | $s = "selected=\"selected\""; 93 | echo "\n"; 102 | } 103 | function bmtxt($t) { 104 | ##引用自hu60,将文本以html源方式输出 105 | $t = str_replace(array("\r","\n"),array(' ',' '),htmlspecialchars($t,ENT_QUOTES,"utf-8")); 106 | /* 107 | $tns=array(); 108 | $n=count($tns); 109 | for($a=$n-1;$a>0;$a=$a-2) 110 | { 111 | $b=$a-1; 112 | $t=preg_replace($tns[$a],$tns[$b],$t); 113 | } 114 | */ 115 | return $t; 116 | } 117 | 118 | function array_coding_to_utf8($array,$coding) { 119 | #将数组编码转换为utf-8 120 | if(empty($array)) return array();//判断是否为空数组,如果是的直接返回空数组 121 | $new_array = array(); 122 | foreach ($array as $id => $name) { 123 | $utf8_id = mb_convert_encoding($id,'UTF-8',$coding); 124 | $utf8_name = mb_convert_encoding($name,'UTF-8',$coding); 125 | $new_array[$utf8_id]=$utf8_name; 126 | } 127 | return $new_array; 128 | } 129 | function appmenu() { 130 | echo "\n\n"."
\n"."首页 首页切换 执行代码 查看文件 上传文件 退出\n"; 131 | } 132 | function httpdown($fn,$url) { 133 | #远程下载函数 134 | global $httpdownmax;//定义全局变量 135 | $max = $httpdownmax; 136 | $fp = @fopen($fn,'w'); 137 | if (!$fp) 138 | return false; 139 | if (!preg_match('!'.'^http://!i',$url)) 140 | $url = 'http://'.$url; 141 | $dp = fopen($url,'rb'); 142 | if (!$dp) 143 | return false; 144 | for ($size = 0; !feof($dp); $size +=1024) { 145 | $ok = fwrite($fp,fread($dp,1024)); 146 | if ($size > $max or !$ok) { 147 | fclose($dp); 148 | fclose($fp); 149 | unlink($fn); 150 | return false; 151 | } 152 | } 153 | fclose($dp); 154 | fclose($fp); 155 | return $size; 156 | } 157 | function xCopy_dir($source, $destination, $child=1){ 158 | //url http://hi.baidu.com/lyjnd321/blog/item/dbcdb216459f3259f2de3220.html 159 | //用法: 160 | // xCopy("feiy","feiy2",1):拷贝feiy下的文件到 feiy2,包括子目录 161 | // xCopy("feiy","feiy2",0):拷贝feiy下的文件到 feiy2,不包括子目录 162 | 163 | if(!is_dir($source)){ 164 | return 0; 165 | } 166 | if(!is_dir($destination)){ 167 | mkdir($destination,0755); 168 | } 169 | $handle=dir($source); 170 | while($entry=$handle->read()) { 171 | if(($entry!=".")&&($entry!="..")){ 172 | if(is_dir($source.'/'.$entry)){ 173 | if($child)xCopy_dir($source.'/'.$entry,$destination.'/'.$entry,$child); 174 | }else{ 175 | copy($source.'/'.$entry,$destination.'/'.$entry); 176 | } 177 | } 178 | } 179 | return true; 180 | } 181 | function addFileToZip($path,$zip){ 182 | global $system_coding;//定义全局变量的系统编码 183 | $handler = opendir($path); 184 | while( ($filename = readdir($handler)) !== false ){ 185 | if($filename != "." && $filename != ".."){ 186 | if(is_dir($path."/".$filename)){//判断读到的数据是否为文件夹,如果是的就重复执行函数 187 | addFileToZip($path."/".$filename, $zip); 188 | }else{ 189 | $zip->addFile($path."/".$filename); 190 | $new=mb_convert_encoding("$path/$filename",'UTF-8',$system_coding);//转换 191 | echo "$new > 成功
\n"; 192 | } 193 | } 194 | } 195 | @closedir($path); 196 | } 197 | function Xchmod($path,$filemod,$dirmod,$show='0',$re){ 198 | global $system_coding; 199 | $filemod1=octdec($filemod); 200 | $dirmod1=octdec($dirmod); 201 | $path2=mb_convert_encoding($path,'UTF-8',$system_coding); 202 | if(!is_dir($path)){ 203 | if(!chmod($path,$filemod1)){ 204 | echo "文件 $path2 修改权限为$filemod 失败!
\n"; 205 | }else{ 206 | if ($show=='1') 207 | echo "文件 $path2 修改权限为$filemod 成功!
\n"; 208 | } 209 | }else{ 210 | if(!chmod($path,$dirmod1)){ 211 | echo "目录 $path2 修改权限为$dirmod 失败!
\n"; 212 | }else{ 213 | if ($show=='1') 214 | echo "目录 $path2 修改权限为$dirmod 成功!
\n"; 215 | } 216 | $handle=dir($path); 217 | if($re=='yes'){ 218 | while($entry=$handle->read()) { 219 | if(($entry!=".")&&($entry!="..")){ 220 | Xchmod($path.'/'.$entry,$filemod,$dirmod,$show,$re); 221 | } 222 | } 223 | } 224 | } 225 | } 226 | ?> -------------------------------------------------------------------------------- /js/IMG_JS_CHARTS.js: -------------------------------------------------------------------------------- 1 | if(typeof infosoftglobal == "undefined") var infosoftglobal = new Object(); 2 | if(typeof infosoftglobal.FusionChartsUtil == "undefined") infosoftglobal.FusionChartsUtil = new Object(); 3 | infosoftglobal.FusionCharts = function(swf, id, w, h, debugMode, registerWithJS, c, scaleMode, lang, detectFlashVersion, autoInstallRedirect){ 4 | if (!document.getElementById) { return; } 5 | this.initialDataSet = false; 6 | this.params = new Object(); 7 | this.variables = new Object(); 8 | this.attributes = new Array(); 9 | if(swf) { this.setAttribute('swf', swf); } 10 | if(id) { this.setAttribute('id', id); } 11 | w=w.toString().replace(/\%$/,"%25"); 12 | if(w) { this.setAttribute('width', w); } 13 | h=h.toString().replace(/\%$/,"%25"); 14 | if(h) { this.setAttribute('height', h); } 15 | if(c) { this.addParam('bgcolor', c); } 16 | this.addParam('quality', 'high'); 17 | this.addParam('allowScriptAccess', 'always'); 18 | this.addVariable('chartWidth', w); 19 | this.addVariable('chartHeight', h); 20 | debugMode = debugMode ? debugMode : 0; 21 | this.addVariable('debugMode', debugMode); 22 | this.addVariable('DOMId', id); 23 | registerWithJS = registerWithJS ? registerWithJS : 0; 24 | this.addVariable('registerWithJS', registerWithJS); 25 | scaleMode = scaleMode ? scaleMode : 'noScale'; 26 | this.addVariable('scaleMode', scaleMode); 27 | lang = lang ? lang : 'EN'; 28 | this.addVariable('lang', lang); 29 | this.detectFlashVersion = detectFlashVersion?detectFlashVersion:1; 30 | this.autoInstallRedirect = autoInstallRedirect?autoInstallRedirect:1; 31 | this.installedVer = infosoftglobal.FusionChartsUtil.getPlayerVersion(); 32 | if (!window.opera && document.all && this.installedVer.major > 7) { 33 | infosoftglobal.FusionCharts.doPrepUnload = true;}} 34 | infosoftglobal.FusionCharts.prototype = { 35 | setAttribute: function(name, value){ 36 | this.attributes[name] = value; }, 37 | getAttribute: function(name){ 38 | return this.attributes[name]; }, 39 | addParam: function(name, value){ 40 | this.params[name] = value; }, 41 | getParams: function(){ 42 | return this.params; }, 43 | addVariable: function(name, value){ 44 | this.variables[name] = value; }, 45 | getVariable: function(name){ 46 | return this.variables[name]; }, 47 | getVariables: function(){ 48 | return this.variables; }, 49 | getVariablePairs: function(){ 50 | var variablePairs = new Array(); 51 | var key; 52 | var variables = this.getVariables(); 53 | for(key in variables){variablePairs.push(key +"="+ variables[key]); } 54 | return variablePairs; 55 | }, getSWFHTML: function() { 56 | var swfNode = ""; 57 | if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { 58 | swfNode = ' 0){ swfNode += 'flashvars="'+ pairs +'"'; } 64 | swfNode += '/>'; 65 | } else { 66 | swfNode = ''; 67 | swfNode += ''; 68 | var params = this.getParams(); 69 | for(var key in params) { 70 | swfNode += ''; 71 | } 72 | var pairs = this.getVariablePairs().join("&"); 73 | if(pairs.length > 0) {swfNode += '';} 74 | swfNode += ""; 75 | } 76 | return swfNode; }, 77 | setDataURL: function(strDataURL){ 78 | if (this.initialDataSet==false){ 79 | this.addVariable('dataURL',strDataURL); 80 | this.initialDataSet = true; 81 | }else{ 82 | var chartObj = infosoftglobal.FusionChartsUtil.getChartObject(this.getAttribute('id')); 83 | if (!chartObj.setDataURL) 84 | {__flash__addCallback(chartObj, "setDataURL");} 85 | chartObj.setDataURL(strDataURL);}}, 86 | encodeDataXML: function(strDataXML){ 87 | var regExpReservedCharacters=["\\$","\\+"]; 88 | var arrDQAtt=strDataXML.match(/=\s*\".*?\"/g); 89 | if (arrDQAtt){ 90 | for(var i=0;i= 0){ 151 | var axo = 1; 152 | var counter = 3; 153 | while(axo) { 154 | try { 155 | counter++; 156 | axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+ counter); 157 | PlayerVersion = new infosoftglobal.PlayerVersion([counter,0,0]); 158 | } catch (e) { 159 | axo = null; 160 | } 161 | } 162 | } else { 163 | try{ 164 | var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7"); 165 | }catch(e){ 166 | try { 167 | var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6"); 168 | PlayerVersion = new infosoftglobal.PlayerVersion([6,0,21]); 169 | axo.AllowScriptAccess = "always"; 170 | } catch(e) { 171 | if (PlayerVersion.major == 6) { 172 | return PlayerVersion; 173 | } 174 | } 175 | try { 176 | axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash"); 177 | } catch(e) {} 178 | } 179 | if (axo != null) { 180 | PlayerVersion = new infosoftglobal.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(",")); 181 | } 182 | } 183 | return PlayerVersion; 184 | } 185 | infosoftglobal.PlayerVersion = function(arrVersion){ 186 | this.major = arrVersion[0] != null ? parseInt(arrVersion[0]) : 0; 187 | this.minor = arrVersion[1] != null ? parseInt(arrVersion[1]) : 0; 188 | this.rev = arrVersion[2] != null ? parseInt(arrVersion[2]) : 0; 189 | } 190 | 191 | infosoftglobal.FusionChartsUtil.cleanupSWFs = function() { 192 | var objects = document.getElementsByTagName("OBJECT"); 193 | for (var i = objects.length - 1; i >= 0; i--) { 194 | objects[i].style.display = 'none'; 195 | for (var x in objects[i]) { 196 | if (typeof objects[i][x] == 'function') { 197 | objects[i][x] = function(){}; 198 | } 199 | } 200 | } 201 | } 202 | if (infosoftglobal.FusionCharts.doPrepUnload) { 203 | if (!infosoftglobal.unloadSet) { 204 | infosoftglobal.FusionChartsUtil.prepUnload = function() { 205 | __flash_unloadHandler = function(){}; 206 | __flash_savedUnloadHandler = function(){}; 207 | window.attachEvent("onunload", infosoftglobal.FusionChartsUtil.cleanupSWFs); 208 | } 209 | window.attachEvent("onbeforeunload", infosoftglobal.FusionChartsUtil.prepUnload); 210 | infosoftglobal.unloadSet = true; 211 | } 212 | } 213 | if (!document.getElementById && document.all) { document.getElementById = function(id) { return document.all[id]; }} 214 | if (Array.prototype.push == null) { Array.prototype.push = function(item) { this[this.length] = item; return this.length; }} 215 | infosoftglobal.FusionChartsUtil.getChartObject = function(id) 216 | { 217 | var chartRef=null; 218 | if (navigator.appName.indexOf("Microsoft Internet")==-1) { 219 | if (document.embeds && document.embeds[id]) 220 | chartRef = document.embeds[id]; 221 | else 222 | chartRef = window.document[id]; 223 | } 224 | else { 225 | chartRef = window[id]; 226 | } 227 | if (!chartRef) 228 | chartRef = document.getElementById(id); 229 | 230 | return chartRef; 231 | } 232 | infosoftglobal.FusionChartsUtil.updateChartXML = function(chartId, strXML){ 233 | var chartObj = infosoftglobal.FusionChartsUtil.getChartObject(chartId); 234 | chartObj.SetVariable("_root.dataURL",""); 235 | chartObj.SetVariable("_root.isNewData","1"); 236 | chartObj.SetVariable("_root.newData",strXML); 237 | chartObj.TGotoLabel("/", "JavaScriptHandler"); 238 | } 239 | var getChartFromId = infosoftglobal.FusionChartsUtil.getChartObject; 240 | var updateChartXML = infosoftglobal.FusionChartsUtil.updateChartXML; 241 | var FusionCharts = infosoftglobal.FusionCharts; -------------------------------------------------------------------------------- /da.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | <?php echo $appname; ?> 5 | 6 | 7 | 8 | 9 | 10 | 13 | 14 | 15 |
16 |
17 | 18 |
19 |
20 |
21 | 主页 | 登出 22 |
23 | 欢迎访问 loveyu.org 24 |
25 | 26 |
27 |
28 |
29 | 主页 30 | 密码 31 | 执行代码 32 | 原始面板 33 | 发送邮件 34 | 首页切换 35 |
36 |
37 |
38 |
39 |
40 | 该路径\"$path\"不存在或无访问权限!"; 45 | }else{ 46 | $nopross=null; 47 | } 48 | $lastpath=rawurlencode(dirname($path));//获取上级目录名,并转换为url编码 49 | $filedata = glob("$path"."*");//获取原始目录数组 50 | $path=mb_convert_encoding($path,'UTF-8',$system_coding);//将目录由系统编码转换为UTF-8编码 51 | $filedata=@array_coding_to_utf8($filedata,$system_coding);//转换文件数组 52 | $imagearray=array('jpg','JPG','jpeg','JPEG','gif','GIF','png','PNG','bmp','BMP','RGB','rgb');//建立一个图片后缀数组 53 | $textarray=array('php','js','css','asp','txt','php5','sh','bat','c','html','htm','conf','config','wml','xhtml','xhtm','log','ini','inc','con','cfg','jsp','phtml','java','xml','bsh','py','pm','pl','sql','vb','vbs','tex','nfo');//建立一个图片后缀数组 54 | ?> 55 |
文件管理» 文件管理 » 56 | $name){ 60 | if($name!="/"){ 61 | echo "$name/"; 65 | } 66 | } 67 | echo $nopross 68 | ?>
69 | 70 |
71 | 72 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | $filename) {//历遍数组 125 | $filename_old=mb_convert_encoding($filename,$system_coding,'UTF-8');//将文件名转换为系统编码 126 | $urlfilename=rawurlencode($filename_old);//由系统编码转换为url编码 127 | $filetype = filetype($filename_old);//获取文件类型呢 128 | $perms = substr(sprintf('%o', fileperms($filename_old)), -4);//获取文件权限 129 | if (PHP_OS!='WIN32' && PHP_OS!='WINNT'){ 130 | $fileowner=@posix_getpwuid(@fileowner($filename_old)); 131 | $filegroup=@posix_getpwuid(@filegroup($filename_old)); 132 | } 133 | if($filetype=='dir'){?> 134 | 135 | 136 | 137 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 148 | 149 | $filename) {//历遍数组 151 | $filename_old=mb_convert_encoding($filename,$system_coding,'UTF-8');//将文件名转换为系统编码 152 | $urlfilename=rawurlencode($filename_old);//由系统编码转换为url编码 153 | $filetype = filetype($filename_old);//获取文件类型呢 154 | $perms = substr(sprintf('%o', fileperms($filename_old)), -4);//获取文件权限 155 | $newfilesize=newfilesize($filename_old); 156 | $pathinfo=pathinfo($filename_old);//获取文件信息 157 | $fileext=@$pathinfo['extension'];//获取文件后缀 158 | if (PHP_OS!='WIN32' && PHP_OS!='WINNT'){ 159 | $fileowner=@posix_getpwuid(@fileowner($filename_old)); 160 | $filegroup=@posix_getpwuid(@filegroup($filename_old)); 161 | } 162 | if($filetype!='dir'){?> 163 | 168 | 169 | 上次修改: 170 | 171 | 上次创建: 172 | " class="trList"> 173 | 174 | 175 | 176 | 177 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 214 | 215 |
高级搜索
Directory../ 返回上级
DirectoryDIR '.$dirinfo['dir']?>压缩
重命名 | 复制 | 删除
File解压 | 编辑 | 查看 | 查看图片 | 181 | 压缩 | ">发送
182 | 重命名 | 复制 | 183 | 删除 184 |
216 | 217 |
218 | 219 | 220 | 221 | 222 | 223 | 228 | 229 | 230 | 231 | 232 | 233 | 238 | 239 | 240 | 241 | 255 | 256 | 257 | 265 | 266 |
文件系统工具
创建文件夹 224 | 225 | 226 | 227 |
创建文件 234 | 235 | 236 | 237 |
242 |
243 | 244 | 当前目录操作: | 245 | 246 | | 247 | | 248 | 249 | | 250 | | 251 | 252 | 253 |
254 |
258 |
259 | 260 | 网址: | 261 | 文件名(选填): | 262 | 263 |
264 |
267 | 268 |
使用说明: 爱怎么用就怎么用,具体的我也写糊涂了!
269 |
270 | 277 | 278 | 279 |
280 |
281 |
282 | loveyu.org 更新 283 |
284 |
285 |
286 | 287 | 293 | 294 | -------------------------------------------------------------------------------- /js/style.css: -------------------------------------------------------------------------------- 1 | body,td,th {font-family: Tahoma, Helvetica, Arial;font-size: 12px;color: #333333;} 2 | body {background-color: #aaa; margin: 0px;height:100%;} 3 | a { color: #004F9D; text-decoration: none;} 4 | a:hover { text-decoration: none;color: #A82200;} 5 | form { margin: 0; } 6 | .cleft { clear: left; } 7 | .cright { clear: right; } 8 | .cf { clear: both; } 9 | .tip { 10 | font-family: Tahoma, Arial, Verdana; 11 | font-size: 11px; 12 | color: #333333; 13 | background-color: #FDFBEC; 14 | padding-top: 8px; 15 | padding-right: 8px; 16 | padding-bottom: 8px; 17 | padding-left: 35px; 18 | border: 1px dotted #F8CE6D; 19 | background-image: url(/IMG_TIPS.gif); 20 | background-repeat: no-repeat; 21 | background-position: 8px 5px; 22 | } 23 | .succ { 24 | margin: 10px 0; 25 | padding: 10px; 26 | font-weight: bold; 27 | color: #0d5500; 28 | border: 1px solid #0d5500; 29 | background-color: #f9ffea; 30 | } 31 | div#mail_frame { 32 | width: 1000px; 33 | text-align: left; 34 | background-color: #fff; 35 | position: relative; 36 | } 37 | div#main_contents { 38 | border: 1px solid #777; 39 | } 40 | div#main_top { 41 | background-image: url(IMG_SKIN_HEADER_BG.gif); 42 | background-color: #174270; 43 | background-repeat: repeat-x; 44 | height: 90px; 45 | border-left: 1px solid #222; 46 | border-right: 1px solid #222; 47 | font-family: Verdana, Helvetica, Tahoma; 48 | cursor: default; 49 | } 50 | div#top_logo { 51 | background-repeat: no-repeat; 52 | height: 60px; 53 | width: 300px; 54 | margin-left: 25px; 55 | background-position: left top; 56 | cursor: pointer; 57 | } 58 | div#top_logo.highlight { 59 | border: 1px dotted #fffda8; 60 | background-position: -1px -1px; 61 | height: 58px !important; 62 | width: 298px !important; 63 | } 64 | div#top_user { 65 | height: 45px; 66 | width: 300px; 67 | display: block; 68 | float: right; 69 | color: #8aaec5; 70 | padding-right: 40px; 71 | padding-top: 10px; 72 | text-align: right; 73 | font-size: 11px; 74 | line-height: 20px; 75 | } 76 | .langbox select { 77 | font-size: 11px; 78 | border: 1px solid #226dba; 79 | background-color: #24578a; 80 | color: #c7e7fa; 81 | margin-left: 10px; 82 | } 83 | .langbox { 84 | font-size: 0.1px; 85 | color: #23568a; 86 | } 87 | div#top_user a { 88 | color: #fff; 89 | text-decoration: underline; 90 | } 91 | div#top_user a:hover { 92 | color: #fff; 93 | text-decoration: none; 94 | } 95 | div#main_bottom { 96 | background-image: url(IMG_FOOTER_BG.gif); 97 | background-color: #174270; 98 | background-repeat: repeat-x; 99 | height: 40px; 100 | border-left: 1px solid #222; 101 | border-right: 1px solid #222; 102 | border-bottom: 1px solid #222; 103 | vertical-align: middle; 104 | text-align: center; 105 | color: #fff; 106 | line-height: 40px; 107 | font-size: 11px; 108 | font-family: Verdana, Helvetica, Tahoma; 109 | } 110 | div#main_bottom a { 111 | color: #fff; 112 | text-decoration: underline; 113 | } 114 | div#level_menu { 115 | float: right; 116 | display: block; 117 | height: 25px; 118 | width: 200px; 119 | text-align: right; 120 | padding-right: 40px; 121 | color: #16416e; 122 | font-size: 0.001em; 123 | } 124 | div#level_menu a, div#top_menu a { 125 | -moz-border-radius: 4px 4px 0 0; 126 | -khtml-border-radius: 4px 4px 0 0; 127 | -webkit-border-radius: 4px 4px 0 0; 128 | border-radius: 4px 4px 0 0; 129 | line-height: 25px; 130 | vertical-align: middle; 131 | color: #cad9e8; 132 | font-weight: bold; 133 | opacity: .8; 134 | -moz-opacity:.8; 135 | background-color: #44678c; 136 | background-repeat: no-repeat; 137 | height: 25px; 138 | diplay: block; 139 | font-size: 11px; 140 | } 141 | div#level_menu a { 142 | float: right; 143 | width: 30px; 144 | background-position: center center; 145 | margin-left: 6px; 146 | } 147 | div#top_menu { 148 | float: left; 149 | dispaly: block; 150 | height: 25px; 151 | width: 625px; 152 | text-align: left; 153 | padding-left: 30px; 154 | } 155 | div#top_menu a { 156 | float: left; 157 | background-repeat: no-repeat; 158 | background-position: 10px center; 159 | text-indent: 23px; 160 | margin-right: 6px; 161 | padding: 0 10px; 162 | } 163 | div#level_menu a:hover { 164 | opacity: 1; 165 | -moz-opacity:1; 166 | background-color: #4a6d93; 167 | color: #ecf2f8; 168 | height: 28px; 169 | margin-top: -3px; 170 | line-height: 28px; 171 | } 172 | div#level_menu a.lladmin { background-image: url(IMG_LV_BT_ADMIN.gif); } 173 | div#level_menu a.llreseller { background-image: url(IMG_LV_BT_RESELLER.gif); } 174 | div#level_menu a.lluser { background-image: url(IMG_LV_BT_USER.gif); } 175 | 176 | div#top_menu a.lhome { background-image: url(IMG_MENU_HOME.gif); } 177 | div#top_menu a.lwmail { background-image: url(IMG_MENU_WEBMAIL.gif); } 178 | div#top_menu a.lfiles { background-image: url(IMG_MENU_FILEMAN.gif); } 179 | div#top_menu a.lpass { background-image: url(IMG_MENU_PASSWORD.gif); } 180 | div#top_menu a.lhelp { background-image: url(IMG_MENU_HELP.gif); } 181 | div#leftPanel { 182 | display: block; 183 | float: left; 184 | width: 190px; 185 | padding: 10px 15px 10px 9px; 186 | } 187 | div#rightPanel { 188 | display: block; 189 | float: left; 190 | width: 770px; 191 | padding: 10px 10px 25px 0; 192 | } 193 | div#centerPanel { 194 | padding: 10px 10px 25px 10px; 195 | } 196 | .table100 table { 197 | width: 100%; 198 | } 199 | .table75 table { 200 | width: 75%; 201 | } 202 | .table50 table { 203 | width: 50%; 204 | } 205 | div#pageloading { 206 | -moz-border-radius: 0 0 4px 4px; 207 | -khtml-border-radius: 0 0 4px 4px; 208 | -webkit-border-radius: 0 0 4px 4px; 209 | border-radius: 0 0 4px 4px; 210 | position: absolute; 211 | width: 200px; 212 | left: 420px; 213 | font-size: 11px; 214 | color: #aac0d6; 215 | padding: 5px 0 5px 0; 216 | text-indent: 26px; 217 | font-weight: bold; 218 | background-image: url(IMG_TOP_LOAD); 219 | background-position: left center; 220 | background-repeat: no-repeat; 221 | top: 1px; 222 | } 223 | .tooltip { 224 | max-width: 250px; 225 | padding: 5px; 226 | border: 1px solid #4a4a4a; 227 | background-color: #525252; 228 | color: #fff; 229 | font-size: 11px; 230 | } 231 | .combot, table.config .selectclass { 232 | border: 1px solid #888; 233 | font-size: 11px; 234 | } 235 | /* user item ******************************/ 236 | /* user item ******************************/ 237 | .buttons-box a:link, .buttons-box a:active, .buttons-box a:visited, 238 | a.micon:link, a.micon:active, a.micon:visited, 239 | .panelBox a:link, .panelBox a:active, .panelBox a:visited { 240 | font: 11px Tahoma, Arial, Helvetica, sans-serif; 241 | text-align: center; 242 | display: block; 243 | width: 85px !important; 244 | width: 95px; 245 | height: 60px !important; 246 | height: 70px; 247 | margin: 6px 0; 248 | color: #555; 249 | text-decoration: none; 250 | padding: 5px 3px 3px 5px; 251 | float: left; 252 | } 253 | .buttons-box a:hover, .panelBox a:hover, a.micon:hover { 254 | color: #005fc8; 255 | } 256 | .buttons-box span.dis { 257 | font: 11px Tahoma, Arial, Helvetica, sans-serif; 258 | text-align: center; 259 | display: block; 260 | width: 85px !important; 261 | width: 95px; 262 | height: 60px !important; 263 | height: 70px; 264 | margin: 6px 0; 265 | color: #888; 266 | text-decoration: none; 267 | padding: 5px 3px 3px 5px; 268 | float: left; 269 | } 270 | .buttons-box span.dis img { 271 | -moz-opacity:.4; 272 | opacity:.4; 273 | 274 | width: 32px; 275 | height: 32px; 276 | border: none; 277 | } 278 | .buttons-box a img, .panelBox a img, a.micon img { 279 | width: 32px; 280 | height: 32px; 281 | border: none; 282 | } 283 | .buttons-box { 284 | border: 1px solid #ddd; 285 | display: block; 286 | border-bottom: none; 287 | border-left: none; 288 | border-right: none; 289 | margin-bottom: 20px; 290 | } 291 | .buttons-box legend { 292 | font: bold 12px Tahoma, Arial, Helvetica, sans-serif; 293 | color:#000; 294 | padding: 0 6px 9px 6px; 295 | background-color: #fff; 296 | margin-left: -10px; 297 | } 298 | /* ********** ******************************/ 299 | .panelBox { 300 | margin-bottom: 15px; 301 | -moz-border-radius: 9px 9px 0px 0px; 302 | -khtml-border-radius: 9px 9px 0px 0px; 303 | -webkit-border-radius: 9px 9px 0px 0px; 304 | border-radius: 9px 9px 0px 0px; 305 | background-color: #ffffff; 306 | padding: 0; 307 | background-repeat: repeat-x; 308 | background-image: url(IMG_PBOX_BG.gif); 309 | background-position: center 27px; 310 | border: 1px solid #ccc; 311 | border-top: none; 312 | } 313 | .panelBox .title { 314 | background-position: right center; 315 | background-repeat: repeat-x; 316 | background-image: url(IMG_PBOX_BGR.gif); 317 | background-color: #165d8c; 318 | color: #fff; 319 | height: 27px; 320 | margin: 0 -1px 6px -1px; 321 | -moz-border-radius: 9px 0px 9px 0px; 322 | -khtml-border-radius: 9px 0px 9px 0px; 323 | -webkit-border-radius: 9px 0px 9px 0px; 324 | border-radius: 9px 0px 9px 0px; 325 | } 326 | .panelBox .title span { 327 | background-position: left top; 328 | background-repeat: no-repeat; 329 | background-image: url(IMG_PBOX_BGL.gif); 330 | line-height: 27px; 331 | font-weight: bold; 332 | font-size: 11px; 333 | color: #fff; 334 | display: block; 335 | float: left; 336 | padding: 0 6px 0 25px; 337 | -moz-border-radius: 9px 0px 9px 0px; 338 | -khtml-border-radius: 9px 0px 9px 0px; 339 | -webkit-border-radius: 9px 0px 9px 0px; 340 | border-radius: 9px 0px 9px 0px; 341 | } 342 | .panelBox form, .panelBox ul { 343 | margin: 0 3px; 344 | } 345 | .panelBox .input { 346 | width: 130px; 347 | font-size: 11px; 348 | color: #888; 349 | border: 1px solid #888; 350 | height: 14px; 351 | margin-right: 10px; 352 | padding: 2px 3px; 353 | margin: 0 3px 0 0; 354 | } 355 | .panelBox .input.focus, .panelBox .input:focus { 356 | color: #000; 357 | } 358 | .panelBox #searchByUser, .panelBox #searchByDomain { 359 | cursor: pointer; 360 | vertical-align: -6px; 361 | } 362 | .panelBox ul { 363 | margin: 0 3px; 364 | padding: 0; 365 | } 366 | .panelBox ul li { 367 | background-image: url(IMG_DOT_L.gif); 368 | background-position: 2px center; 369 | background-repeat: no-repeat; 370 | list-style: none; 371 | list-style-type: none; 372 | line-height: 18px; 373 | display: block; 374 | text-indent: 18px; 375 | padding: 2px 0; 376 | margin-bottom: 2px; 377 | border-bottom: 1px solid #eee; 378 | font-size: 11px; 379 | position: relative; 380 | } 381 | .panelBox ul li span { 382 | font-weight: bold; 383 | margin-right: 10px; 384 | color: #555; 385 | } 386 | .panelBox ul li img.r { 387 | position: absolute; 388 | top: 2px; 389 | left: 150px; 390 | } 391 | .usagebar { 392 | margin: 2px 0 4px 18px; 393 | width: 161px; 394 | height: 14px; 395 | } 396 | .usagebar .out { 397 | display: block; 398 | height: 14px; 399 | width: 130px; 400 | background-image: url(/IMG_BARUSAGE0.gif); 401 | margin: 0; 402 | float:left; 403 | } 404 | .usagebar .in { 405 | background-image: url(/IMG_BARUSAGE1.gif); 406 | display: block; 407 | height: 14px; 408 | background-position: left; 409 | } 410 | .usagebar .per { 411 | font-size: 10px; 412 | color: #444; 413 | margin-top: -3px; 414 | display: block; 415 | float:right; 416 | text-indent: 0px; 417 | } 418 | .minusagebar { 419 | width: 45px; 420 | height: 14px; 421 | } 422 | .minusagebar.pop { 423 | float: left; 424 | margin-right: 8px; 425 | } 426 | .minusagebar .out { 427 | display: block; 428 | height: 14px; 429 | width: 45px; 430 | background-image: url(/IMG_MINBARUSAGE0.gif); 431 | margin: 0; 432 | float:left; 433 | } 434 | .minusagebar .in { 435 | background-image: url(/IMG_MINBARUSAGE1.gif); 436 | display: block; 437 | height: 14px; 438 | background-position: left; 439 | } 440 | .minusagebar.red .in { 441 | background-image: url(/IMG_MINBARUSAGE2.gif); 442 | display: block; 443 | height: 14px; 444 | background-position: left; 445 | } 446 | /*****************************************************************/ 447 | table.list, table.list td { 448 | /* border-collapse: collapse; */ 449 | border-spacing: 0; 450 | } 451 | table.list { 452 | border: 4px solid #e8e8e8; 453 | background-color: #fff; 454 | } 455 | table.list a.toptext { 456 | color: #777; 457 | font-size: 11px; 458 | } 459 | table.list a.toptext:hover { 460 | text-decoration: underline; 461 | } 462 | table.list td.listtitle { 463 | background-image: url(IMG_TITLE_TABLE.gif); 464 | font-size: 11px; 465 | white-space: nowrap; 466 | line-height: 25px; 467 | padding: 0 6px 0 0; 468 | height: 25px; 469 | color: #000; 470 | border-top: 1px solid #d8d8d8; 471 | border-bottom: 1px solid #d8d8d8; 472 | font-weight: bold; 473 | border-bottom: 1px solid #005a9d; 474 | } 475 | table.list td input, table.list td select, table.list td textarea { 476 | font-size: 11px; 477 | } 478 | table.list td.listtitle input.checkAll { 479 | margin-right: -3px; 480 | } 481 | table.list td.listtitle a { 482 | display: block; 483 | line-height: 25px; 484 | padding: 0 9px 0 6px; 485 | } 486 | table.list td.listtitle b a { 487 | background-image: url(IMG_COLSORT.gif); 488 | background-position: right center; 489 | background-repeat: no-repeat; 490 | } 491 | table.list td.listtitle a { 492 | color: #000; 493 | } 494 | table.list td.list2, table.list td.list, table.list td.listwrap { 495 | border-bottom: 1px solid #bed8e7; 496 | color: #444; 497 | font-size: 11px; 498 | padding: 4px 5px; 499 | background-color: #fff; 500 | } 501 | table.list td.bold { 502 | font-weight: bold; 503 | } 504 | table.list td.raquot { 505 | background-image: url(IMG_DOT_L.gif); 506 | background-position: 3px center; 507 | background-repeat: no-repeat; 508 | text-indent: 14px; 509 | } 510 | table.list td.listwrap { 511 | white-space: wrap; 512 | } 513 | .evenodd table.list td.list { 514 | border-bottom: 1px solid #fff; 515 | background-color: #fff; 516 | } 517 | .evenodd table.list td.list2 { 518 | border-bottom: 1px solid #fff; 519 | background-color: #eef5f9; 520 | } 521 | table.list tr.Suspended td.list2, table.list tr.Suspended td.list { 522 | background-color: #fff3f3 ! important; 523 | color: #e00; 524 | } 525 | table.list tr.Suspended td.list2 a, table.list tr.Suspended td.list a { 526 | color: #e00; 527 | } 528 | table.list tr.Suspended:hover td.list2, table.list tr.Suspended:hover td.list, table.list tr.Suspended:hover td.listwrap { 529 | background-color: #ffeaea ! important; 530 | } 531 | table.list td.list2 img.userSuspended, 532 | table.list td.list img.userSuspended, 533 | table.list td.list2 img.usernoSuspended, 534 | table.list td.list img.usernoSuspended { 535 | margin-right: 8px; 536 | cursor: pointer; 537 | } 538 | table.list td.list2 a, table.list td.list a { 539 | color: #005a9d; 540 | } 541 | table.list td.reseller, table.list td.user, table.list td.admin { 542 | background-image: url(IMG_LIST_RESELLER.gif); 543 | background-position: 3px center; 544 | background-repeat: no-repeat; 545 | text-indent: 14px; 546 | } 547 | table.list td.user { background-image: url(IMG_LIST_USER.gif);} 548 | table.list td.reseller { background-image: url(IMG_LIST_RESELLER.gif);} 549 | table.list td.admin { background-image: url(IMG_LIST_ADMIN.gif);} 550 | 551 | table.list tr.Suspended td.admin, 552 | table.list tr.Suspended td.user, 553 | table.list tr.Suspended td.reseller { 554 | background-image: url(IMG_LIST_SUSPENDED.gif); 555 | } 556 | table.list td.list2 a:hover, table.list td.list a:hover { 557 | color: #005a9d; 558 | text-decoration: underline; 559 | } 560 | table.list tr.hover td.list2, 561 | table.list tr.hover td.list, 562 | table.list tr:hover td.list2, 563 | table.list tr:hover td.list { 564 | background-color: #f2f2f2; 565 | } 566 | table.list .footer { 567 | font-size: 11px; 568 | background-image: url(IMG_FOOTER_TABLE.gif); 569 | background-repeat: repeat-x; 570 | background-position: left top; 571 | background-color: #fcfcfc; 572 | } 573 | table.list .footer .boton, input.boton { 574 | font-size: 11px; 575 | -moz-border-radius: 3px; 576 | -khtml-border-radius: 3px; 577 | -webkit-border-radius: 3px; 578 | border-radius: 3px; 579 | border: 1px solid #717171; 580 | background-image: url(IMG_LIST_BOTON.gif); 581 | padding: 2px 8px; 582 | } 583 | table.list .footer .boton.small, input.boton.small { 584 | font-size: 10px ! important; 585 | padding: 0px 8px ! important; 586 | } 587 | /* config table ******************************/ 588 | label { 589 | vertical-align: 3px; 590 | margin-left: 5px; 591 | } 592 | table.config { 593 | border: 1px solid #ccc; 594 | background-color: #f8f8f8; 595 | font-size: 11px; 596 | color: #333; 597 | padding: 3px; 598 | } 599 | table.config thead td { 600 | font-weight: bold; 601 | color: #666; 602 | height: 23px; 603 | padding: 2px 6px; 604 | border-bottom: 1px solid #d94600; 605 | font-size: 11px; 606 | vertical-align: middle; 607 | margin-bottom: 4px; 608 | } 609 | table.config tbody td, table.config tbody th { 610 | font-size: 11px; 611 | height: 24px; 612 | padding: 2px 3px; 613 | vertical-align: middle; 614 | border-bottom: 1px solid #ddd; 615 | } 616 | table.config tbody tr.clear td { 617 | height: auto; 618 | border: none ! important; 619 | } 620 | table.config tbody th { 621 | font-weight: bold; 622 | color: #777; 623 | text-align: left; 624 | } 625 | table.config tfoot td { 626 | padding: 4px; 627 | text-align: right; 628 | border-top: 1px solid #c0c0c0; 629 | background-image: url(IMG_FOOTER_TABLE.gif); 630 | background-repeat: repeat-x; 631 | } 632 | /* config table ******************************/ 633 | /* left options ******************************/ 634 | .left_options a:link, .left_options a:active, .left_options a:visited { 635 | font: 11px Tahoma, Arial, Helvetica, sans-serif; 636 | text-align: center; 637 | display: block; 638 | width: 85px !important; 639 | width: 95px; 640 | height: 60px !important; 641 | height: 70px; 642 | margin: 6px 0; 643 | color: #555; 644 | text-decoration: none; 645 | padding: 5px 3px 3px 5px; 646 | float: left; 647 | } 648 | .left_options a:hover { 649 | color: #005fc8; 650 | } 651 | .left_options a img { 652 | width: 32px; 653 | height: 32px; 654 | border: none; 655 | } 656 | .left_options div.title { 657 | font-weight: bold; 658 | color: #000; 659 | padding: 5px 0; 660 | text-indent: 25px; 661 | border-bottom: 1px solid #ccc; 662 | background-image: url(IMG_PLUS16.gif); 663 | background-position: left center; 664 | background-repeat: no-repeat; 665 | } 666 | /* ************* ******************************/ 667 | .pageTit { 668 | display: block; 669 | margin-bottom: 10px; 670 | *margin-bottom: 4px; 671 | font-size: 11px; 672 | color: #999; 673 | } 674 | .pageTit span { 675 | font-size: 14px; 676 | color: #000; 677 | font-weight: bold; 678 | text-indent: 25px; 679 | background-image: url(IMG_TIT_ARROW.gif); 680 | background-position: left center; 681 | background-repeat: no-repeat; 682 | display: block; 683 | padding: 3px 0 4px 0; 684 | border-bottom: 1px solid #ccc; 685 | margin-bottom: 3px; 686 | } 687 | /* ************* ******************************/ 688 | .graph { 689 | border: 1px solid #b0b0b0; 690 | pagging: 1px; 691 | -moz-border-radius: 7px; 692 | -khtml-border-radius: 7px; 693 | -webkit-border-radius: 7px; 694 | border-radius: 7px; 695 | } 696 | .graph .leyend { 697 | font-size: 11px; 698 | color: #444; 699 | margin: 2px 10px 3px 0; 700 | } 701 | .graph .leyends { 702 | float:left; 703 | margin: 15px 5px 5px 60px; 704 | border: 1px solid #ccc; 705 | background-color: #f6f6f6; 706 | padding: 10px; 707 | -moz-border-radius: 4px; 708 | -khtml-border-radius: 4px; 709 | -webkit-border-radius: 4px; 710 | border-radius: 4px; 711 | } 712 | .graph .leyend span { 713 | margin-right: 8px; 714 | height: 6px; 715 | width: 15px; 716 | font-size: 4px; 717 | vertical-align: 2px; 718 | } 719 | .graph .leyend span img { 720 | height: 4px; 721 | width: 15px; 722 | } 723 | /* ************* ******************************/ 724 | .bk_container { 725 | border: 1px solid #ccc; 726 | padding: 3px; 727 | background-color: #f6f6f6; 728 | } 729 | .bk_container .title { 730 | font-weight: bold; 731 | color: #000; 732 | padding: 4px; 733 | border-bottom: 1px solid #d94600; 734 | } 735 | .bk_container .cont { 736 | border: 1px solid #ccc; 737 | margin-top: 3px; 738 | background-color: #fff; 739 | padding: 15px 5px; 740 | } 741 | .topsel { 742 | font-size: 11px; 743 | padding: 3px 2px; 744 | border: 1px solid #ddd; 745 | background-color: #f6f6f6; 746 | margin: 4px 0; 747 | } 748 | .topsel select, .iplistx select { 749 | font-size: 11px; 750 | border: 1px solid #999; 751 | } 752 | .iplistx select { 753 | width: 185px; 754 | } 755 | .opt_hover { 756 | text-decoration: underline; 757 | } 758 | .opt_selected { 759 | color: #0006ff; 760 | } 761 | .pster input { word-spacing: nowrap; } 762 | .pster input { 763 | float: left; 764 | display: block; 765 | margin-right: 6px; 766 | } 767 | .pster .box { 768 | float: left; 769 | display: block; 770 | height: 17px; 771 | font-size: 9px !important; 772 | } 773 | .pster .box .bar { 774 | display: block; 775 | border: 1px solid #999; 776 | height: 4px; 777 | width: 100px; 778 | background-color: #fff; 779 | } 780 | .pster .s0 span { content: "Very Weak"; } 781 | .pster .s1 span { content: "Very Weak"; } 782 | .pster .s2 span { content: "Weak"; } 783 | .pster .s3 span { content: "Medium"; } 784 | .pster .s4 span { content: "Good"; } 785 | .pster .s5 span { content: "Strong"; } 786 | .pster .box .bar div { height: 4px;} 787 | .pster .s0 .bar div { background-color: #f00; width: 2px;} 788 | .pster .s1 .bar div { background-color: #f00; width: 20px;} 789 | .pster .s2 .bar div { background-color: #f24800; width: 40px;} 790 | .pster .s3 .bar div { background-color: #ffc600; width: 60px;} 791 | .pster .s4 .bar div { background-color: #ecff06; width: 80px;} 792 | .pster .s5 .bar div { background-color: #32df00; width: 100px;} 793 | div#result, div#result2 { 794 | margin-top: 60px; 795 | margin-left: 100px; 796 | margin-right: 100px; 797 | font-weight: bold; 798 | color: #000; 799 | font-size: 14px; 800 | padding-left: 40px; 801 | padding-top: 5px; 802 | padding-bottom: 13px; 803 | } 804 | div#resultDetails, div#resultDetails2 { 805 | margin-top: 15px; 806 | margin-bottom: 100px; 807 | margin-left: 100px; 808 | text-weight: normal; 809 | color: #333; 810 | font-size: 12px; 811 | padding-left: 40px; 812 | } 813 | div#result.error { 814 | background-image: url(IMG_RES_ERROR.gif); 815 | background-position: left top; 816 | background-repeat: no-repeat; 817 | } 818 | div#result.succ2 { 819 | background-image: url(IMG_RES_SUCC.gif); 820 | background-position: left top; 821 | background-repeat: no-repeat; 822 | } 823 | .smsg { 824 | margin: 10px 0; 825 | padding: 4px; 826 | border: 1px solid #ccc; 827 | background-color: #f8ffd9; 828 | color: #365e00; 829 | } 830 | .visiblepass { 831 | color: #dd4800; 832 | width: 80px; 833 | background-color: #f8f8f8; 834 | border: 1px solid #f8f8f8; 835 | font-size: 11px; 836 | margin-left: 10px; 837 | } 838 | .pagerText { 839 | padding: 2px 3px; 840 | vertical-align: center; 841 | display: inline-block; 842 | margin-bottom: 4px; 843 | border: 1px solid #5a86b4; 844 | background-color: #eef3f8; 845 | } 846 | -------------------------------------------------------------------------------- /class.smtp.php: -------------------------------------------------------------------------------- 1 | smtp_conn = 0; 89 | $this->error = null; 90 | $this->helo_rply = null; 91 | 92 | $this->do_debug = 0; 93 | } 94 | 95 | ///////////////////////////////////////////////// 96 | // CONNECTION FUNCTIONS 97 | ///////////////////////////////////////////////// 98 | 99 | /** 100 | * Connect to the server specified on the port specified. 101 | * If the port is not specified use the default SMTP_PORT. 102 | * If tval is specified then a connection will try and be 103 | * established with the server for that number of seconds. 104 | * If tval is not specified the default is 30 seconds to 105 | * try on the connection. 106 | * 107 | * SMTP CODE SUCCESS: 220 108 | * SMTP CODE FAILURE: 421 109 | * @access public 110 | * @return bool 111 | */ 112 | public function Connect($host, $port = 0, $tval = 30) { 113 | // set the error val to null so there is no confusion 114 | $this->error = null; 115 | 116 | // make sure we are __not__ connected 117 | if($this->connected()) { 118 | // already connected, generate error 119 | $this->error = array("error" => "Already connected to a server"); 120 | return false; 121 | } 122 | 123 | if(empty($port)) { 124 | $port = $this->SMTP_PORT; 125 | } 126 | 127 | // connect to the smtp server 128 | $this->smtp_conn = @fsockopen($host, // the host of the server 129 | $port, // the port to use 130 | $errno, // error number if any 131 | $errstr, // error message if any 132 | $tval); // give up after ? secs 133 | // verify we connected properly 134 | if(empty($this->smtp_conn)) { 135 | $this->error = array("error" => "Failed to connect to server", 136 | "errno" => $errno, 137 | "errstr" => $errstr); 138 | if($this->do_debug >= 1) { 139 | echo "SMTP -> ERROR: " . $this->error["error"] . ": $errstr ($errno)" . $this->CRLF . '
'; 140 | } 141 | return false; 142 | } 143 | 144 | // SMTP server can take longer to respond, give longer timeout for first read 145 | // Windows does not have support for this timeout function 146 | if(substr(PHP_OS, 0, 3) != "WIN") 147 | socket_set_timeout($this->smtp_conn, $tval, 0); 148 | 149 | // get any announcement 150 | $announce = $this->get_lines(); 151 | 152 | if($this->do_debug >= 2) { 153 | echo "SMTP -> FROM SERVER:" . $announce . $this->CRLF . '
'; 154 | } 155 | 156 | return true; 157 | } 158 | 159 | /** 160 | * Initiate a TLS communication with the server. 161 | * 162 | * SMTP CODE 220 Ready to start TLS 163 | * SMTP CODE 501 Syntax error (no parameters allowed) 164 | * SMTP CODE 454 TLS not available due to temporary reason 165 | * @access public 166 | * @return bool success 167 | */ 168 | public function StartTLS() { 169 | $this->error = null; # to avoid confusion 170 | 171 | if(!$this->connected()) { 172 | $this->error = array("error" => "Called StartTLS() without being connected"); 173 | return false; 174 | } 175 | 176 | fputs($this->smtp_conn,"STARTTLS" . $this->CRLF); 177 | 178 | $rply = $this->get_lines(); 179 | $code = substr($rply,0,3); 180 | 181 | if($this->do_debug >= 2) { 182 | echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '
'; 183 | } 184 | 185 | if($code != 220) { 186 | $this->error = 187 | array("error" => "STARTTLS not accepted from server", 188 | "smtp_code" => $code, 189 | "smtp_msg" => substr($rply,4)); 190 | if($this->do_debug >= 1) { 191 | echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '
'; 192 | } 193 | return false; 194 | } 195 | 196 | // Begin encrypted connection 197 | if(!stream_socket_enable_crypto($this->smtp_conn, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) { 198 | return false; 199 | } 200 | 201 | return true; 202 | } 203 | 204 | /** 205 | * Performs SMTP authentication. Must be run after running the 206 | * Hello() method. Returns true if successfully authenticated. 207 | * @access public 208 | * @return bool 209 | */ 210 | public function Authenticate($username, $password) { 211 | // Start authentication 212 | fputs($this->smtp_conn,"AUTH LOGIN" . $this->CRLF); 213 | 214 | $rply = $this->get_lines(); 215 | $code = substr($rply,0,3); 216 | 217 | if($code != 334) { 218 | $this->error = 219 | array("error" => "AUTH not accepted from server", 220 | "smtp_code" => $code, 221 | "smtp_msg" => substr($rply,4)); 222 | if($this->do_debug >= 1) { 223 | echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '
'; 224 | } 225 | return false; 226 | } 227 | 228 | // Send encoded username 229 | fputs($this->smtp_conn, base64_encode($username) . $this->CRLF); 230 | 231 | $rply = $this->get_lines(); 232 | $code = substr($rply,0,3); 233 | 234 | if($code != 334) { 235 | $this->error = 236 | array("error" => "Username not accepted from server", 237 | "smtp_code" => $code, 238 | "smtp_msg" => substr($rply,4)); 239 | if($this->do_debug >= 1) { 240 | echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '
'; 241 | } 242 | return false; 243 | } 244 | 245 | // Send encoded password 246 | fputs($this->smtp_conn, base64_encode($password) . $this->CRLF); 247 | 248 | $rply = $this->get_lines(); 249 | $code = substr($rply,0,3); 250 | 251 | if($code != 235) { 252 | $this->error = 253 | array("error" => "Password not accepted from server", 254 | "smtp_code" => $code, 255 | "smtp_msg" => substr($rply,4)); 256 | if($this->do_debug >= 1) { 257 | echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '
'; 258 | } 259 | return false; 260 | } 261 | 262 | return true; 263 | } 264 | 265 | /** 266 | * Returns true if connected to a server otherwise false 267 | * @access public 268 | * @return bool 269 | */ 270 | public function Connected() { 271 | if(!empty($this->smtp_conn)) { 272 | $sock_status = socket_get_status($this->smtp_conn); 273 | if($sock_status["eof"]) { 274 | // the socket is valid but we are not connected 275 | if($this->do_debug >= 1) { 276 | echo "SMTP -> NOTICE:" . $this->CRLF . "EOF caught while checking if connected"; 277 | } 278 | $this->Close(); 279 | return false; 280 | } 281 | return true; // everything looks good 282 | } 283 | return false; 284 | } 285 | 286 | /** 287 | * Closes the socket and cleans up the state of the class. 288 | * It is not considered good to use this function without 289 | * first trying to use QUIT. 290 | * @access public 291 | * @return void 292 | */ 293 | public function Close() { 294 | $this->error = null; // so there is no confusion 295 | $this->helo_rply = null; 296 | if(!empty($this->smtp_conn)) { 297 | // close the connection and cleanup 298 | fclose($this->smtp_conn); 299 | $this->smtp_conn = 0; 300 | } 301 | } 302 | 303 | ///////////////////////////////////////////////// 304 | // SMTP COMMANDS 305 | ///////////////////////////////////////////////// 306 | 307 | /** 308 | * Issues a data command and sends the msg_data to the server 309 | * finializing the mail transaction. $msg_data is the message 310 | * that is to be send with the headers. Each header needs to be 311 | * on a single line followed by a with the message headers 312 | * and the message body being seperated by and additional . 313 | * 314 | * Implements rfc 821: DATA 315 | * 316 | * SMTP CODE INTERMEDIATE: 354 317 | * [data] 318 | * . 319 | * SMTP CODE SUCCESS: 250 320 | * SMTP CODE FAILURE: 552,554,451,452 321 | * SMTP CODE FAILURE: 451,554 322 | * SMTP CODE ERROR : 500,501,503,421 323 | * @access public 324 | * @return bool 325 | */ 326 | public function Data($msg_data) { 327 | $this->error = null; // so no confusion is caused 328 | 329 | if(!$this->connected()) { 330 | $this->error = array( 331 | "error" => "Called Data() without being connected"); 332 | return false; 333 | } 334 | 335 | fputs($this->smtp_conn,"DATA" . $this->CRLF); 336 | 337 | $rply = $this->get_lines(); 338 | $code = substr($rply,0,3); 339 | 340 | if($this->do_debug >= 2) { 341 | echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '
'; 342 | } 343 | 344 | if($code != 354) { 345 | $this->error = 346 | array("error" => "DATA command not accepted from server", 347 | "smtp_code" => $code, 348 | "smtp_msg" => substr($rply,4)); 349 | if($this->do_debug >= 1) { 350 | echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '
'; 351 | } 352 | return false; 353 | } 354 | 355 | /* the server is ready to accept data! 356 | * according to rfc 821 we should not send more than 1000 357 | * including the CRLF 358 | * characters on a single line so we will break the data up 359 | * into lines by \r and/or \n then if needed we will break 360 | * each of those into smaller lines to fit within the limit. 361 | * in addition we will be looking for lines that start with 362 | * a period '.' and append and additional period '.' to that 363 | * line. NOTE: this does not count towards limit. 364 | */ 365 | 366 | // normalize the line breaks so we know the explode works 367 | $msg_data = str_replace("\r\n","\n",$msg_data); 368 | $msg_data = str_replace("\r","\n",$msg_data); 369 | $lines = explode("\n",$msg_data); 370 | 371 | /* we need to find a good way to determine is headers are 372 | * in the msg_data or if it is a straight msg body 373 | * currently I am assuming rfc 822 definitions of msg headers 374 | * and if the first field of the first line (':' sperated) 375 | * does not contain a space then it _should_ be a header 376 | * and we can process all lines before a blank "" line as 377 | * headers. 378 | */ 379 | 380 | $field = substr($lines[0],0,strpos($lines[0],":")); 381 | $in_headers = false; 382 | if(!empty($field) && !strstr($field," ")) { 383 | $in_headers = true; 384 | } 385 | 386 | $max_line_length = 998; // used below; set here for ease in change 387 | 388 | while(list(,$line) = @each($lines)) { 389 | $lines_out = null; 390 | if($line == "" && $in_headers) { 391 | $in_headers = false; 392 | } 393 | // ok we need to break this line up into several smaller lines 394 | while(strlen($line) > $max_line_length) { 395 | $pos = strrpos(substr($line,0,$max_line_length)," "); 396 | 397 | // Patch to fix DOS attack 398 | if(!$pos) { 399 | $pos = $max_line_length - 1; 400 | $lines_out[] = substr($line,0,$pos); 401 | $line = substr($line,$pos); 402 | } else { 403 | $lines_out[] = substr($line,0,$pos); 404 | $line = substr($line,$pos + 1); 405 | } 406 | 407 | /* if processing headers add a LWSP-char to the front of new line 408 | * rfc 822 on long msg headers 409 | */ 410 | if($in_headers) { 411 | $line = "\t" . $line; 412 | } 413 | } 414 | $lines_out[] = $line; 415 | 416 | // send the lines to the server 417 | while(list(,$line_out) = @each($lines_out)) { 418 | if(strlen($line_out) > 0) 419 | { 420 | if(substr($line_out, 0, 1) == ".") { 421 | $line_out = "." . $line_out; 422 | } 423 | } 424 | fputs($this->smtp_conn,$line_out . $this->CRLF); 425 | } 426 | } 427 | 428 | // message data has been sent 429 | fputs($this->smtp_conn, $this->CRLF . "." . $this->CRLF); 430 | 431 | $rply = $this->get_lines(); 432 | $code = substr($rply,0,3); 433 | 434 | if($this->do_debug >= 2) { 435 | echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '
'; 436 | } 437 | 438 | if($code != 250) { 439 | $this->error = 440 | array("error" => "DATA not accepted from server", 441 | "smtp_code" => $code, 442 | "smtp_msg" => substr($rply,4)); 443 | if($this->do_debug >= 1) { 444 | echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '
'; 445 | } 446 | return false; 447 | } 448 | return true; 449 | } 450 | 451 | /** 452 | * Sends the HELO command to the smtp server. 453 | * This makes sure that we and the server are in 454 | * the same known state. 455 | * 456 | * Implements from rfc 821: HELO 457 | * 458 | * SMTP CODE SUCCESS: 250 459 | * SMTP CODE ERROR : 500, 501, 504, 421 460 | * @access public 461 | * @return bool 462 | */ 463 | public function Hello($host = '') { 464 | $this->error = null; // so no confusion is caused 465 | 466 | if(!$this->connected()) { 467 | $this->error = array( 468 | "error" => "Called Hello() without being connected"); 469 | return false; 470 | } 471 | 472 | // if hostname for HELO was not specified send default 473 | if(empty($host)) { 474 | // determine appropriate default to send to server 475 | $host = "localhost"; 476 | } 477 | 478 | // Send extended hello first (RFC 2821) 479 | if(!$this->SendHello("EHLO", $host)) { 480 | if(!$this->SendHello("HELO", $host)) { 481 | return false; 482 | } 483 | } 484 | 485 | return true; 486 | } 487 | 488 | /** 489 | * Sends a HELO/EHLO command. 490 | * @access private 491 | * @return bool 492 | */ 493 | private function SendHello($hello, $host) { 494 | fputs($this->smtp_conn, $hello . " " . $host . $this->CRLF); 495 | 496 | $rply = $this->get_lines(); 497 | $code = substr($rply,0,3); 498 | 499 | if($this->do_debug >= 2) { 500 | echo "SMTP -> FROM SERVER: " . $rply . $this->CRLF . '
'; 501 | } 502 | 503 | if($code != 250) { 504 | $this->error = 505 | array("error" => $hello . " not accepted from server", 506 | "smtp_code" => $code, 507 | "smtp_msg" => substr($rply,4)); 508 | if($this->do_debug >= 1) { 509 | echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '
'; 510 | } 511 | return false; 512 | } 513 | 514 | $this->helo_rply = $rply; 515 | 516 | return true; 517 | } 518 | 519 | /** 520 | * Starts a mail transaction from the email address specified in 521 | * $from. Returns true if successful or false otherwise. If True 522 | * the mail transaction is started and then one or more Recipient 523 | * commands may be called followed by a Data command. 524 | * 525 | * Implements rfc 821: MAIL FROM: 526 | * 527 | * SMTP CODE SUCCESS: 250 528 | * SMTP CODE SUCCESS: 552,451,452 529 | * SMTP CODE SUCCESS: 500,501,421 530 | * @access public 531 | * @return bool 532 | */ 533 | public function Mail($from) { 534 | $this->error = null; // so no confusion is caused 535 | 536 | if(!$this->connected()) { 537 | $this->error = array( 538 | "error" => "Called Mail() without being connected"); 539 | return false; 540 | } 541 | 542 | $useVerp = ($this->do_verp ? "XVERP" : ""); 543 | fputs($this->smtp_conn,"MAIL FROM:<" . $from . ">" . $useVerp . $this->CRLF); 544 | 545 | $rply = $this->get_lines(); 546 | $code = substr($rply,0,3); 547 | 548 | if($this->do_debug >= 2) { 549 | echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '
'; 550 | } 551 | 552 | if($code != 250) { 553 | $this->error = 554 | array("error" => "MAIL not accepted from server", 555 | "smtp_code" => $code, 556 | "smtp_msg" => substr($rply,4)); 557 | if($this->do_debug >= 1) { 558 | echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '
'; 559 | } 560 | return false; 561 | } 562 | return true; 563 | } 564 | 565 | /** 566 | * Sends the quit command to the server and then closes the socket 567 | * if there is no error or the $close_on_error argument is true. 568 | * 569 | * Implements from rfc 821: QUIT 570 | * 571 | * SMTP CODE SUCCESS: 221 572 | * SMTP CODE ERROR : 500 573 | * @access public 574 | * @return bool 575 | */ 576 | public function Quit($close_on_error = true) { 577 | $this->error = null; // so there is no confusion 578 | 579 | if(!$this->connected()) { 580 | $this->error = array( 581 | "error" => "Called Quit() without being connected"); 582 | return false; 583 | } 584 | 585 | // send the quit command to the server 586 | fputs($this->smtp_conn,"quit" . $this->CRLF); 587 | 588 | // get any good-bye messages 589 | $byemsg = $this->get_lines(); 590 | 591 | if($this->do_debug >= 2) { 592 | echo "SMTP -> FROM SERVER:" . $byemsg . $this->CRLF . '
'; 593 | } 594 | 595 | $rval = true; 596 | $e = null; 597 | 598 | $code = substr($byemsg,0,3); 599 | if($code != 221) { 600 | // use e as a tmp var cause Close will overwrite $this->error 601 | $e = array("error" => "SMTP server rejected quit command", 602 | "smtp_code" => $code, 603 | "smtp_rply" => substr($byemsg,4)); 604 | $rval = false; 605 | if($this->do_debug >= 1) { 606 | echo "SMTP -> ERROR: " . $e["error"] . ": " . $byemsg . $this->CRLF . '
'; 607 | } 608 | } 609 | 610 | if(empty($e) || $close_on_error) { 611 | $this->Close(); 612 | } 613 | 614 | return $rval; 615 | } 616 | 617 | /** 618 | * Sends the command RCPT to the SMTP server with the TO: argument of $to. 619 | * Returns true if the recipient was accepted false if it was rejected. 620 | * 621 | * Implements from rfc 821: RCPT TO: 622 | * 623 | * SMTP CODE SUCCESS: 250,251 624 | * SMTP CODE FAILURE: 550,551,552,553,450,451,452 625 | * SMTP CODE ERROR : 500,501,503,421 626 | * @access public 627 | * @return bool 628 | */ 629 | public function Recipient($to) { 630 | $this->error = null; // so no confusion is caused 631 | 632 | if(!$this->connected()) { 633 | $this->error = array( 634 | "error" => "Called Recipient() without being connected"); 635 | return false; 636 | } 637 | 638 | fputs($this->smtp_conn,"RCPT TO:<" . $to . ">" . $this->CRLF); 639 | 640 | $rply = $this->get_lines(); 641 | $code = substr($rply,0,3); 642 | 643 | if($this->do_debug >= 2) { 644 | echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '
'; 645 | } 646 | 647 | if($code != 250 && $code != 251) { 648 | $this->error = 649 | array("error" => "RCPT not accepted from server", 650 | "smtp_code" => $code, 651 | "smtp_msg" => substr($rply,4)); 652 | if($this->do_debug >= 1) { 653 | echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '
'; 654 | } 655 | return false; 656 | } 657 | return true; 658 | } 659 | 660 | /** 661 | * Sends the RSET command to abort and transaction that is 662 | * currently in progress. Returns true if successful false 663 | * otherwise. 664 | * 665 | * Implements rfc 821: RSET 666 | * 667 | * SMTP CODE SUCCESS: 250 668 | * SMTP CODE ERROR : 500,501,504,421 669 | * @access public 670 | * @return bool 671 | */ 672 | public function Reset() { 673 | $this->error = null; // so no confusion is caused 674 | 675 | if(!$this->connected()) { 676 | $this->error = array( 677 | "error" => "Called Reset() without being connected"); 678 | return false; 679 | } 680 | 681 | fputs($this->smtp_conn,"RSET" . $this->CRLF); 682 | 683 | $rply = $this->get_lines(); 684 | $code = substr($rply,0,3); 685 | 686 | if($this->do_debug >= 2) { 687 | echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '
'; 688 | } 689 | 690 | if($code != 250) { 691 | $this->error = 692 | array("error" => "RSET failed", 693 | "smtp_code" => $code, 694 | "smtp_msg" => substr($rply,4)); 695 | if($this->do_debug >= 1) { 696 | echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '
'; 697 | } 698 | return false; 699 | } 700 | 701 | return true; 702 | } 703 | 704 | /** 705 | * Starts a mail transaction from the email address specified in 706 | * $from. Returns true if successful or false otherwise. If True 707 | * the mail transaction is started and then one or more Recipient 708 | * commands may be called followed by a Data command. This command 709 | * will send the message to the users terminal if they are logged 710 | * in and send them an email. 711 | * 712 | * Implements rfc 821: SAML FROM: 713 | * 714 | * SMTP CODE SUCCESS: 250 715 | * SMTP CODE SUCCESS: 552,451,452 716 | * SMTP CODE SUCCESS: 500,501,502,421 717 | * @access public 718 | * @return bool 719 | */ 720 | public function SendAndMail($from) { 721 | $this->error = null; // so no confusion is caused 722 | 723 | if(!$this->connected()) { 724 | $this->error = array( 725 | "error" => "Called SendAndMail() without being connected"); 726 | return false; 727 | } 728 | 729 | fputs($this->smtp_conn,"SAML FROM:" . $from . $this->CRLF); 730 | 731 | $rply = $this->get_lines(); 732 | $code = substr($rply,0,3); 733 | 734 | if($this->do_debug >= 2) { 735 | echo "SMTP -> FROM SERVER:" . $rply . $this->CRLF . '
'; 736 | } 737 | 738 | if($code != 250) { 739 | $this->error = 740 | array("error" => "SAML not accepted from server", 741 | "smtp_code" => $code, 742 | "smtp_msg" => substr($rply,4)); 743 | if($this->do_debug >= 1) { 744 | echo "SMTP -> ERROR: " . $this->error["error"] . ": " . $rply . $this->CRLF . '
'; 745 | } 746 | return false; 747 | } 748 | return true; 749 | } 750 | 751 | /** 752 | * This is an optional command for SMTP that this class does not 753 | * support. This method is here to make the RFC821 Definition 754 | * complete for this class and __may__ be implimented in the future 755 | * 756 | * Implements from rfc 821: TURN 757 | * 758 | * SMTP CODE SUCCESS: 250 759 | * SMTP CODE FAILURE: 502 760 | * SMTP CODE ERROR : 500, 503 761 | * @access public 762 | * @return bool 763 | */ 764 | public function Turn() { 765 | $this->error = array("error" => "This method, TURN, of the SMTP ". 766 | "is not implemented"); 767 | if($this->do_debug >= 1) { 768 | echo "SMTP -> NOTICE: " . $this->error["error"] . $this->CRLF . '
'; 769 | } 770 | return false; 771 | } 772 | 773 | /** 774 | * Get the current error 775 | * @access public 776 | * @return array 777 | */ 778 | public function getError() { 779 | return $this->error; 780 | } 781 | 782 | ///////////////////////////////////////////////// 783 | // INTERNAL FUNCTIONS 784 | ///////////////////////////////////////////////// 785 | 786 | /** 787 | * Read in as many lines as possible 788 | * either before eof or socket timeout occurs on the operation. 789 | * With SMTP we can tell if we have more lines to read if the 790 | * 4th character is '-' symbol. If it is a space then we don't 791 | * need to read anything else. 792 | * @access private 793 | * @return string 794 | */ 795 | private function get_lines() { 796 | $data = ""; 797 | while($str = @fgets($this->smtp_conn,515)) { 798 | if($this->do_debug >= 4) { 799 | echo "SMTP -> get_lines(): \$data was \"$data\"" . $this->CRLF . '
'; 800 | echo "SMTP -> get_lines(): \$str is \"$str\"" . $this->CRLF . '
'; 801 | } 802 | $data .= $str; 803 | if($this->do_debug >= 4) { 804 | echo "SMTP -> get_lines(): \$data is \"$data\"" . $this->CRLF . '
'; 805 | } 806 | // if 4th character is a space, we are done reading, break the loop 807 | if(substr($str,3,1) == " ") { break; } 808 | } 809 | return $data; 810 | } 811 | 812 | } 813 | 814 | ?> -------------------------------------------------------------------------------- /js/img.js: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery JavaScript Library v1.3.2 3 | * http://jquery.com/ 4 | * 5 | * Copyright (c) 2009 John Resig 6 | * Dual licensed under the MIT and GPL licenses. 7 | * http://docs.jquery.com/License 8 | * 9 | * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) 10 | * Revision: 6246 11 | */ 12 | (function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
","
"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); 13 | /* 14 | * Sizzle CSS Selector Engine - v0.9.3 15 | * Copyright 2009, The Dojo Foundation 16 | * Released under the MIT, BSD, and GPL Licenses. 17 | * More information: http://sizzlejs.com/ 18 | */ 19 | (function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); --------------------------------------------------------------------------------