diff --git a/application/default/controllers/HeiheController.php b/application/default/controllers/HeiheController.php
index 8077fd51..9c891309 100644
--- a/application/default/controllers/HeiheController.php
+++ b/application/default/controllers/HeiheController.php
@@ -7,6 +7,7 @@ class HeiheController extends DataController
{
parent::preDispatch();
$this->_helper->layout->setLayout('heihe');
+ $this->debug = 1;
}
function indexAction()
@@ -307,5 +308,483 @@ class HeiheController extends DataController
$this->view->metadata=$this->db->fetchAll($sql,array($this->limit,$offset));
$this->view->page=new Pagination($sum,$page,$this->limit);
$this->view->offset=$offset+1;
- }
+ }
+
+ /*
+ * submitAction() //数据汇交
+ *
+ * param string $ac //动作
+ * param int $id //数据模版ID
+ * param int $group //geonetwork页面跳转参数
+ *
+ * return view
+ */
+ function submitAction(){
+
+ $ac = $this->_getParam('ac');
+ $id = $this->_request->getParam('id');
+ $this->wdb=Zend_Db::factory($this->view->config->geonetwork);
+
+ $auth = Zend_Auth::getInstance();
+ if($auth->hasIdentity())
+ {
+ $user = $auth->getIdentity();
+ $u_id = $user->id;
+ $this->view->isadmin=false;
+ if ($user->usertype=='administrator') $this->view->isadmin=true;
+ }
+
+ if(empty($ac) || $ac == "index")
+ {
+ $this->_helper->viewRenderer('submit-index');
+ return true;
+ }
+
+ //新建元数据
+ if($ac == "newdata")
+ {
+
+ $do = $this->_getParam('do');
+
+ if(empty($do))
+ {
+ $this->_helper->viewRenderer('submit-newdata');
+
+ $keywords = $this->_request->getParam('q');
+ $sql="select id,(regexp_matches(data,'(.*)'))[1] as title,(owner-".$u_id.") as isowner from metadata where istemplate='y' and schemaid='iso19115'";
+ if(!empty($keywords))
+ {
+ $this->view->q = $keywords;
+ $search=new Search($keywords);
+ $where=$search->sql_expr(array("data"));
+ $sql.=' and '.$where;
+ }
+ $sql.=" order by changedate desc";
+ $sth = $this->wdb->prepare($sql);
+ $sth->execute();
+ $rows = $sth->fetchAll();
+
+ $paginator = Zend_Paginator::factory($rows);
+ $paginator->setCurrentPageNumber($this->_getParam('page'));
+ $paginator->setItemCountPerPage(10);
+ $paginator->setView($this->view);
+ Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml');
+ $this->view->paginator=$paginator;
+
+ return true;
+ }
+
+ if($do == "add")
+ {
+ $this->_helper->viewRenderer('submit-newdata-add');
+ $this->view->pageNav = "newdata-add";
+
+ $keywords = $this->_request->getParam('q');
+ $sql = "SELECT md.title,md.uuid,md.description,gn.id as gid FROM normalmetadata md
+ left join geonetworkmetadata gn on md.uuid=gn.uuid
+ WHERE gn.id is not null";
+ if(!empty($keywords))
+ {
+ $this->view->q = $keywords;
+ $search=new Search($keywords);
+ $where=$search->sql_expr(array("md.title","md.description"));
+ $sql.=' and '.$where;
+ }
+ $sql.=" order by md.ts_created desc";
+ $sth = $this->db->prepare($sql);
+ $sth->execute();
+ $rows = $sth->fetchAll();
+
+ $paginator = Zend_Paginator::factory($rows);
+ $paginator->setCurrentPageNumber($this->_getParam('page'));
+ $paginator->setItemCountPerPage(10);
+ $paginator->setView($this->view);
+ Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml');
+ $this->view->paginator=$paginator;
+
+ return true;
+ }
+ return true;
+ }//newdata
+
+ //未提交数据
+ if($ac == "unsubmit")
+ {
+ $do = $this->_getParam('do');
+
+ //未提交的数据列表
+ if(empty($do) || $do=="index")
+ {
+ $this->_helper->viewRenderer('submit-unsubmit');
+
+ $sql = "SELECT (regexp_matches(gn.data,'(.*)'))[1] as title,gn.id,gn.uuid FROM geonetworkmetadata gn
+ WHERE gn.uuid not in (select uuid from metadata) and gn.owner=?
+ order by gn.id desc
+ ";
+ $sth = $this->db->prepare($sql);
+ $sth->execute(array($u_id));
+ $rows = $sth->fetchAll();
+
+ $paginator = Zend_Paginator::factory($rows);
+ $paginator->setCurrentPageNumber($this->_getParam('page'));
+ $paginator->setItemCountPerPage(15);
+ $paginator->setView($this->view);
+ Zend_View_Helper_PaginationControl::setDefaultViewPartial('pagination_param.phtml');
+ $this->view->paginator=$paginator;
+
+ return true;
+ }//index
+
+ //提交
+ if($do=="commit")
+ {
+ $this->_helper->layout->disableLayout();
+ $this->_helper->viewRenderer->setNoRender();
+
+ $data = "";
+ try{
+ $id = $this->_request->getParam('id');
+ if(empty($id) || !is_numeric($id))
+ {
+ $data = array("error"=>"参数错误");
+ $this->jsonexit($data);
+ return true;
+ }
+
+ $changelog = $this->_request->getParam('changelog');
+
+ if(empty($changelog))
+ {
+ $data = array("error"=>'请输入变更信息');
+ $this->jsonexit($data);
+ return true;
+ }
+
+ // 1. 权限认定:当前用户必须和其owner相同
+ // 数据应当没有评审状态,没有作者信息
+ $sql="select gn.id from geonetworkmetadata gn
+ left join mdstatus s on gn.uuid=s.uuid
+ left join mdauthor a on s.uuid=a.uuid
+ where s.id is not null and a.id is not null and gn.id=?";
+ $sth=$this->db->prepare($sql);
+ $sth->execute(array($id));
+ $row=$sth->fetch();
+ if (!empty($row))
+ {
+ $data = array("error"=>'错误的入口');
+ $this->jsonexit($data);
+ return true;
+ }
+
+ $sql="select uuid,data as xml from metadata where id=? and owner=?";
+ $sth=$this->wdb->prepare($sql);
+ $sth->execute(array($id,$u_id));
+ $row=$sth->fetch();
+ if (empty($row))
+ {
+ $data = array("error"=>'无权限修改数据');
+ $this->jsonexit($data);
+ return true;
+ }else{
+ $uuid = $row['uuid'];
+ }
+
+ $messages = array();
+
+ // 保存数据作者信息
+ $sql="insert into mdauthor (uuid,userid,ts_activated,status) values(?,?,now(),1)";
+ $sth=$this->db->query($sql,array($row['uuid'],$u_id));
+
+ // 2. 保存变化记录 save changelog & userid for the latest version
+ $sql = "UPDATE mdversion SET changelog=?,userid=? WHERE id in (select id from mdversion where uuid=? order by ts_created desc limit 1)";
+ $this->db->query($sql,array($changelog,$u_id,$row['uuid']));
+
+ // 处理文件权限和数据信息
+ $ftp_user = "qherc".$u_id."upload";
+ $sql = "SELECT * FROM pureftp WHERE userid=? AND homedir LIKE ?";
+ $sth = $this->db->prepare($sql);
+ $sth->execute(array($ftp_user,'%'.$uuid.'%'));
+ $row1 = $sth->fetch();
+
+ if(!empty($row1['passwd']))
+ {
+ $old=umask(0);
+ $this->chmodr($row1['homedir'],0444);
+ umask($old);
+ }
+
+ $path = $row1['homedir'];
+
+ //delete dataset & datafile records
+ $sql="delete from dataset where uuid=?";
+ $sth = $this->db->prepare($sql);
+ $sth->execute(array($uuid));
+
+ $sql = "INSERT INTO dataset (uuid,path) VALUES (?,?) RETURNING id";
+ $sth = $this->db->prepare($sql);
+ $rs = $sth->execute(array($uuid,$path));
+
+ if(!$rs)
+ {
+ $messages[] = "元数据信息写入失败";
+ /*
+ $data = array("error"=>'元数据信息写入失败');
+ $this->jsonexit($data);
+ return true;
+ */
+ }
+
+ $temp = $sth->fetch(PDO::FETCH_ASSOC);
+
+ $dsid = $temp['id'];
+
+ $dir = new mydir();
+ $files=$dir->recursive($path);
+
+ foreach ($files as $k=>$v)
+ {
+ //$pathinfo = pathinfo($path.$v);
+ $filename = mb_substr($v,mb_strlen($path)+1);
+ $filesize = filesize($v);
+ $isdir=is_dir($v)?1:0;
+ $depth=substr_count($filename,"/")+1;
+ if (substr($filename,-1,1)=='/') $depth--;
+ //$this->chmodr($path.$v,0444);
+ $sql = "INSERT INTO datafile (dsid,filename,filesize,isdir,depth) VALUES (?,?,?,?,?)";
+ $sth = $this->db->prepare($sql);
+ $rs = $sth->execute(array($dsid,$filename,$filesize,$isdir,$depth));
+ if(!$rs)
+ {
+ $messages[] = "数据文件".$filename.'写入失败';
+ }
+ }
+
+
+ // 3. 保存数据评审状态
+ //导入元数据
+ $iso=new ISO19115();
+ $iso->saveDB($this->db,$row['xml']);
+ //进入评审库
+ $sql="insert into mdstatus (uuid,status,userid) values(?,?,?)";
+ $this->db->query($sql,array($uuid,0,$u_id));
+
+ //email to admin
+ $mail=new WestdcMailer($this->view->config->smtp);
+ $mail->setFrom($this->view->config->service->email,'数据服务组');
+ $mailtp=new EmailText($this->db,"metadata-new-admin",array(
+ 'user' => $user->username,
+ 'uuid' => $iso->uuid,
+ 'email'=> $user->email,
+ //元数据标题
+ 'title'=> $iso->resTitle,
+ ));
+ $mail->setBodyText($mailtp->getBody());
+ $mail->setSubject($mailtp->getSubject());
+ $mail->addTo($this->view->config->service->email);
+ $mail->send();
+
+ unset($mail);
+ unset($mailtp);
+ //email to author
+ $mail=new WestdcMailer($this->view->config->smtp);
+ $mail->setFrom($this->view->config->service->email,'数据服务组');
+ $mailtp=new EmailText($this->db,"metadata-new-author",array(
+ 'user' => $user->username,
+ 'uuid' => $iso->uuid,
+ 'email'=> $user->email,
+ //元数据标题
+ 'title'=> $iso->resTitle,
+ ));
+ $mail->setBodyText($mailtp->getBody());
+ $mail->setSubject($mailtp->getSubject());
+ $mail->addTo($user->email);
+ $mail->addCc($this->view->config->service->email);
+ @$mail->send();
+
+ $data = array("commited"=>1,"error"=>'该版本已经成功提交,请等待数据中心进一步处理!');
+ $this->jsonexit($data);
+ return true;
+ }catch(Exception $e) {
+ $msg = "提交失败,请确认权限后重试";
+ if($this->debug>0)
+ {$msg .= $e->getMessage();}
+ $data = array("error"=>$msg);
+ $this->jsonexit($data);
+ return true;
+ }
+ }//commit
+
+ return true;
+ }//unsubmit
+
+ //FTP
+ if($ac == "ftp")
+ {
+ $this->_helper->layout->disableLayout();
+ $this->_helper->viewRenderer->setNoRender();
+
+ $uuid = $this->_getParam('uuid');
+
+ $this->view->uuid = $uuid;
+
+ if(empty($uuid) || !preg_match("/^[0-9A-Za-z]{8}-[0-9A-Za-z]{4}-[0-9A-Za-z]{4}-[0-9A-Za-z]{4}-[0-9A-Za-z]{12}$/",$uuid))
+ {
+ $data = array(
+ 'error'=>"参数错误"
+ );
+ $this->jsonexit($data);
+ return true;
+ }
+
+ //ftp 用户名
+ $uname = 'qherc'.$userid.'upload';
+
+ //ftp路径
+ $homedir = "/home/wlx/qhhdata/upload/".$uuid."/";
+
+ $sql = "SELECT * FROM pureftp WHERE userid='$uname' ORDER BY pkid DESC";
+ $sth = $this->db->prepare($sql);
+ $sth->execute();
+ $row = $sth->fetch();
+
+ $old=umask(0);
+ @mkdir($homedir,0777);
+ umask($old);
+
+ if(!empty($row['pkid']))
+ {
+ if(preg_match("/.*".$uuid.".*/",$row['homedir']))
+ {
+ $data = array(
+ 'statu'=>1,
+ 'user'=>$row['userid'],
+ 'passwd'=>$row['passwd']
+ );
+
+ $this->jsonexit($data);
+ return true;
+
+ }else{
+ $uid = 1001;
+ $gid = 1001;
+
+ $passwd = $this->genRandomString(16);
+ $sql = "UPDATE pureftp SET passwd=?,uid=?,gid=?,homedir=? WHERE userid=?";
+ $sth = $this->db->prepare($sql);
+ $rs = $sth->execute(array($passwd,$uid,$gid,$homedir,$uname));
+ if($rs)
+ {
+ $data = array(
+ 'statu'=>1,
+ 'user'=>$uname,
+ 'passwd'=>$passwd
+ );
+ $this->jsonexit($data);
+ return true;
+ }else{
+ $data = array(
+ 'error'=>"FTP信息更新失败,请重试"
+ );
+ $this->jsonexit($data);
+ return true;
+ }
+ }
+ }
+
+ else{
+ $uid = 1001;
+ $gid = 1001;
+ $passwd = $this->genRandomString(16);
+
+ $sql = "INSERT INTO pureftp (userid,passwd,uid,gid,homedir) VALUES (?,?,?,?,?)";
+ $sth = $this->db->prepare($sql);
+ $rs = $sth->execute(array($uname,$passwd,$uid,$gid,$homedir));
+ if($rs)
+ {
+ $data = array(
+ 'statu'=>1,
+ 'user'=>$uname,
+ 'passwd'=>$passwd
+ );
+ $this->jsonexit($data);
+ return true;
+ }else{
+ $data = array(
+ 'error'=>"FTP信息更新失败,请重试"
+ );
+ $this->jsonexit($data);
+ return true;
+ }
+ }//end if
+
+ }//ftp
+
+ }//function submitAction()
+
+ function genRandomString($len)
+ {
+ $chars = array(
+ "a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k",
+ "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v",
+ "w", "x", "y", "z", "A", "B", "C", "D", "E", "F", "G",
+ "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R",
+ "S", "T", "U", "V", "W", "X", "Y", "Z", "0", "1", "2",
+ "3", "4", "5", "6", "7", "8", "9"
+ );
+ $charsLen = count($chars) - 1;
+
+ shuffle($chars); // 将数组打乱
+
+ $output = "";
+ for ($i=0; $i<$len; $i++)
+ {
+ $output .= $chars[mt_rand(0, $charsLen)];
+ }
+ return $output;
+ }
+
+ function chmodr($path, $filemode) {
+ if (!is_dir($path))
+ return chmod($path, $filemode);
+
+ $dh = opendir($path);
+ while (($file = readdir($dh)) !== false) {
+ if($file != '.' && $file != '..') {
+ $fullpath = $path.'/'.$file;
+ if(is_link($fullpath))
+ return FALSE;
+ elseif(!is_dir($fullpath) && !chmod($fullpath, $filemode))
+ return FALSE;
+ elseif(!$this->chmodr($fullpath, $filemode))
+ return FALSE;
+ }
+ }
+ closedir($dh);
+ if(chmod($path, $filemode))
+ return TRUE;
+ else
+ return FALSE;
+ }
+
+ //成为作者后的后继处理工作
+ private function author_first($uuid,$author)
+ {
+ $sql="insert into mdversion (xml,ts_created,uuid,changelog,userid)
+ select x.data,m.ts_created,?,?,? from metadata m left join xml x on m.id=x.id
+ left join mdversion v on m.uuid=v.uuid
+ where m.uuid=? and v.changelog is null";
+ $sth=$this->db->prepare($sql);
+ try
+ {
+ $sth->execute(array($uuid,'初始版本 version 1.0',$author,$uuid));
+ } catch(Exception $e){
+ // do nothing here.
+ // 说明之前已经有对应数据
+ }
+ $this->wdb=Zend_Db::factory($this->view->config->geonetwork);
+ $sql="update metadata set owner=? where uuid=?";
+ $sth=$this->wdb->prepare($sql);
+ $sth->execute(array($author,$uuid));
+ }
+
}
\ No newline at end of file
diff --git a/application/default/views/scripts/heihe/index.phtml b/application/default/views/scripts/heihe/index.phtml
index c0d2d06a..edb5daac 100755
--- a/application/default/views/scripts/heihe/index.phtml
+++ b/application/default/views/scripts/heihe/index.phtml
@@ -9,6 +9,7 @@ $this->headScript()->appendFile('/js/jquery-1.7.min.js');
$this->breadcrumb($this->config->title->heihe);
$this->breadcrumb()->setSeparator(' > ');
?>
+
\ No newline at end of file
diff --git a/application/default/views/scripts/heihe/submit-index.phtml b/application/default/views/scripts/heihe/submit-index.phtml
new file mode 100644
index 00000000..ccd9f04a
--- /dev/null
+++ b/application/default/views/scripts/heihe/submit-index.phtml
@@ -0,0 +1,44 @@
+headTitle($this->config->title->site);
+$this->headTitle($this->config->title->data);
+$this->headTitle()->setSeparator(' - ');
+$this->headLink()->appendStylesheet('/css/water.css');
+$this->breadcrumb('首页');
+$this->breadcrumb(''.$this->config->title->data.'');
+$this->breadcrumb(''.$this->config->title->heihe.'');
+$this->breadcrumb('新建元数据');
+$this->breadcrumb()->setSeparator(' > ');
+$this->headScript()->appendFile('/js/jquery-1.7.min.js');
+$this->headScript()->appendFile('/js/jquery.colorbox-min.js');
+$this->headLink()->appendStylesheet('/css/colorbox.css');
+?>
+
+
+
+ error)) {?>
+
error;?>
+
+
+
+
+
+
\ No newline at end of file
diff --git a/application/default/views/scripts/heihe/submit-newdata-add.phtml b/application/default/views/scripts/heihe/submit-newdata-add.phtml
new file mode 100644
index 00000000..30f5250b
--- /dev/null
+++ b/application/default/views/scripts/heihe/submit-newdata-add.phtml
@@ -0,0 +1,70 @@
+headTitle($this->config->title->site);
+$this->headTitle($this->config->title->data);
+$this->headTitle()->setSeparator(' - ');
+$this->headLink()->appendStylesheet('/css/water.css');
+$this->breadcrumb('首页');
+$this->breadcrumb(''.$this->config->title->data.'');
+$this->breadcrumb(''.$this->config->title->heihe.'');
+$this->breadcrumb('新建元数据');
+$this->breadcrumb()->setSeparator(' > ');
+$this->headScript()->appendFile('/js/jquery-1.7.min.js');
+$this->headScript()->appendFile('/js/jquery.colorbox-min.js');
+$this->headLink()->appendStylesheet('/css/colorbox.css');
+?>
+
+
+
+ error)) {?>
+
error;?>
+
+
+
+
+
根据已有元数据来创建数据
+
+
+
+ paginator)):
+ echo "
";
+ $autoindex=0;
+ foreach ($this->paginator as $item):
+ $autoindex++;
+ ?>
+ -
+
+ 【以此为模板新建
+ | 查看数据】
+ 400?$this->escape(mb_substr($item['description'],0,400,'UTF-8').'...'):$this->escape($item['description']); ?>
+
+ ";
+ endif; ?>
+
+
= $this->paginator; ?>
+
+
+
+
+
+
\ No newline at end of file
diff --git a/application/default/views/scripts/heihe/submit-newdata.phtml b/application/default/views/scripts/heihe/submit-newdata.phtml
new file mode 100644
index 00000000..a8bd32d0
--- /dev/null
+++ b/application/default/views/scripts/heihe/submit-newdata.phtml
@@ -0,0 +1,44 @@
+headTitle($this->config->title->site);
+$this->headTitle($this->config->title->data);
+$this->headTitle()->setSeparator(' - ');
+$this->headLink()->appendStylesheet('/css/water.css');
+$this->breadcrumb('首页');
+$this->breadcrumb(''.$this->config->title->data.'');
+$this->breadcrumb(''.$this->config->title->heihe.'');
+$this->breadcrumb('新建元数据');
+$this->breadcrumb()->setSeparator(' > ');
+$this->headScript()->appendFile('/js/jquery-1.7.min.js');
+$this->headScript()->appendFile('/js/jquery.colorbox-min.js');
+$this->headLink()->appendStylesheet('/css/colorbox.css');
+?>
+
+
+
+ error)) {?>
+
error;?>
+
+
+
+
+
+
\ No newline at end of file
diff --git a/application/default/views/scripts/heihe/submit-subnav.phtml b/application/default/views/scripts/heihe/submit-subnav.phtml
new file mode 100644
index 00000000..0552a9c7
--- /dev/null
+++ b/application/default/views/scripts/heihe/submit-subnav.phtml
@@ -0,0 +1,6 @@
+
\ No newline at end of file
diff --git a/application/default/views/scripts/heihe/submit-unsubmit.phtml b/application/default/views/scripts/heihe/submit-unsubmit.phtml
new file mode 100644
index 00000000..b8bbceba
--- /dev/null
+++ b/application/default/views/scripts/heihe/submit-unsubmit.phtml
@@ -0,0 +1,142 @@
+headTitle($this->config->title->site);
+$this->headTitle($this->config->title->data);
+$this->headTitle()->setSeparator(' - ');
+$this->headLink()->appendStylesheet('/css/water.css');
+$this->breadcrumb('首页');
+$this->breadcrumb(''.$this->config->title->data.'');
+$this->breadcrumb(''.$this->config->title->heihe.'');
+$this->breadcrumb('数据列表');
+$this->breadcrumb()->setSeparator(' > ');
+$this->headScript()->appendFile('/js/jquery-1.7.min.js');
+$this->headScript()->appendFile('/js/jquery.colorbox-min.js');
+$this->headLink()->appendStylesheet('/css/colorbox.css');
+?>
+
+
+
+
+
+ error)) {?>
+
error;?>
+
+
+
= $this->paginator; ?>
+
+
+
+
\ No newline at end of file
diff --git a/htdocs/css/heihemdview.css b/htdocs/css/heihemdview.css
index 1760ad98..be2584ae 100644
--- a/htdocs/css/heihemdview.css
+++ b/htdocs/css/heihemdview.css
@@ -72,22 +72,13 @@ ul{list-style-type: none;}
.clear-div{height:0px;overflow:hidden;}
#watermap{height:300px;width:300px;}
#window-outter {
- background:#3d3d3d none repeat scroll 0 0;
- border:1px solid #DDDDDD;
display:block;
position:absolute;
- width:960px;
- top:0;
}
#window-inner {
- top:-3px;
- left:-3px;
- background:#FFFFFF none repeat scroll 0 0;
- border:1px solid #555555;
font-weight:normal;
padding:2px;
position:relative;
- max-height:600px;
}
#window-closer-container {
top:2px;
@@ -98,7 +89,6 @@ ul{list-style-type: none;}
#window-content-container{
margin:10px;
padding:0;
- max-height:400px;
overflow:auto;
}
#window-loading {
diff --git a/htdocs/css/water.css b/htdocs/css/water.css
index 087a8390..a0a51614 100644
--- a/htdocs/css/water.css
+++ b/htdocs/css/water.css
@@ -1,105 +1,129 @@
-#divContent{margin:0 auto;padding:0;}
-/* water */
-#sidebar{margin:0;padding:0;width:220px;_margin-right:-3px;float:left;border-right:2px solid #ddd;background:#ddd;}
-#right{margin:0;padding:0;border-left:2px solid #ddd;margin-left:220px;}
-#leftnavi{margin:0;padding:0;}
-#leftnavi input{margin-left:5px;width:200px;border:1px solid #006;background: #ffc;}
-#intro {margin-top:10px;padding:0;padding-left:5px;}
-#intro p{text-indent:2em;}
-#intro img{padding:5px;}
-#intro h1{text-indent:2em;font-size:24px;}
-#intro li{white-space: normal;}
-/* used in water */
-.PageNavigation{padding-left:30px;}
-hr{border: none 0;border-bottom:1px dashed #ccc;height: 1px;width:100%;margin:0;padding:5px 0 5px 0;}
-li {white-space:nowrap;}
-#mdlist{}
-#mdlist span{width:80%;}
-#mdlist ol li{white-space:normal;}
-.t1highlight{background-color: #ccccff;}
-.t3highlight{background-color: #ccccff;}
-.t2highlight{background-color: #FFCCCC;}
-/* used in tag(keyword) */
-#links{position:relative;line-height:1.2;margin:0;}
+#divContent{margin:0 auto;padding:0;}
+/* water */
+#sidebar{margin:0;padding:0;width:220px;_margin-right:-3px;float:left;border-right:2px solid #ddd;background:#ddd;}
+#right{margin:0;padding:0;border-left:2px solid #ddd;margin-left:220px;}
+#leftnavi{margin:0;padding:0;}
+#leftnavi input{margin-left:5px;width:200px;border:1px solid #006;background: #ffc;}
+#intro {margin-top:10px;padding:0;padding-left:5px;}
+#intro p{text-indent:2em;}
+#intro img{padding:5px;}
+#intro h1{text-indent:2em;font-size:24px;}
+#intro li{white-space: normal;}
+/* used in water */
+.PageNavigation{padding-left:30px;}
+hr{border: none 0;border-bottom:1px dashed #ccc;height: 1px;width:100%;margin:0;padding:5px 0 5px 0;}
+li {white-space:nowrap;}
+#mdlist{}
+#mdlist span{width:80%;}
+#mdlist ol li{white-space:normal;}
+.t1highlight{background-color: #ccccff;}
+.t3highlight{background-color: #ccccff;}
+.t2highlight{background-color: #FFCCCC;}
+/* used in tag(keyword) */
+#links{position:relative;line-height:1.2;margin:0;}
#links ul{margin:0 0 0 10px;padding:0;}
#links ul li{margin:0;padding:0;display:inline;*float:left;padding-left:10px;background: url(/images/square.gif) no-repeat left center;}
#links ul li a{color:Navy; text-decoration:none;}
-#links ul li a:hover{color:Red;text-decoration:underline;}
-#links fieldset {border:dotted 1px;border-bottom:0;border-left:0;border-right:0;}
-ul{list-style-type: none;margin:2px 5px 2px 20px;}
-/* used in search*/
-.mditem{clear:left;text-indext:2em;padding:5px;}
-.mditem hr{clear:both;padding:0;}
-.thumb {float:left;padding-right:5px;height:220px;overflow:hidden;margin-left:5px;}
-
-#search{}
-.float{float:left;}
-/*hacks for ie7*/
-*:first-child+html .clear{width:100%;}
-
-/* used in search form */
-form{display:inline;float:left;}
-.tools{clear:right;}
-.tools ul{margin:0 15px auto;}
-.tools li{float:left;}
-.tools input{width:160px;font-size:13px;margin:0;padding:3px;border:1px solid #454138;}
-
-/* timemap */
-.info{width:200px;height:200px;}
-/* TAG */
-.mditem h2{text-indent:2em;}
-.mditem span{text-indent:2em;padding:10px;margin-left:5px;}
-
-.more {float:right;padding-right:20px;}
-
-#metacontent{clear:left;margin-left:10px;}
-
-#leftnav{margin-bottom:10px;clear:left;}
-#metacontent{float:left;}
+#links ul li a:hover{color:Red;text-decoration:underline;}
+#links fieldset {border:dotted 1px;border-bottom:0;border-left:0;border-right:0;}
+ul{list-style-type: none;margin:2px 5px 2px 20px;}
+/* used in search*/
+.mditem{clear:left;text-indext:2em;padding:5px;}
+.mditem hr{clear:both;padding:0;}
+.thumb {float:left;padding-right:5px;height:220px;overflow:hidden;margin-left:5px;}
+
+#search{}
+.float{float:left;}
+/*hacks for ie7*/
+*:first-child+html .clear{width:100%;}
+
+/* used in search form */
+form{display:inline;float:left;}
+.tools{clear:right;}
+.tools ul{margin:0 15px auto;}
+.tools li{float:left;}
+.tools input{width:160px;font-size:13px;margin:0;padding:3px;border:1px solid #454138;}
+
+/* timemap */
+.info{width:200px;height:200px;}
+/* TAG */
+.mditem h2{text-indent:2em;}
+.mditem span{text-indent:2em;padding:10px;margin-left:5px;}
+
+.more {float:right;padding-right:20px;}
+
+#metacontent{clear:left;margin-left:10px;}
+
+#leftnav{margin-bottom:10px;clear:left;}
+#metacontent{float:left;}
#features, #leftContainer{width:48%;float:left;margin-right:2%;clear:left;margin-bottom:10px;margin-left:10px;}
#latest, #services{width:48%;float:left;margin-bottom:10px;font-size:13px;}
#leftContainer{margin-top:5px;}
-
+
/*data_links*/
#links .title{background:#c7ddc7; padding: 5px 15px 5px;font-size: 16px; font-weight:bold;}
#links h3{clear:both;color: rgb(153, 0, 51);font-size: 14px;
background: url(/images/arrow_red_10x10.gif) no-repeat left top; padding-left: 13px;}
-#leftnav li,#tools li,#category li,#keyword li,#series li{padding-left: 10px;background: url(/images/square.gif) no-repeat left center;}
-.submit-group,.element-group{}
-
-#leftnav ul,#leftContainer ul{margin:0px; padding-left:0px;clear:left;}
-#leftnav ul li,#leftContainer ul li{float:left;}
-#tools ul li {float:left; padding-left:10px;}
-
-img{border:0px;}
-.summary{text-indent:2em;}
-.more{font-size: 11px;}
-
-dd,dt{float:left;margin:0;}
-
-#links dd {padding-bottom:5px;margin-left:15px;margin-top:-5px;}
-.note{font-size:10px;color:gray;}
-
-
-#series fieldset {border-bottom:0;}
-#category fieldset {border-bottom:0;}
-#detailxml {margin:10px;}
-#detailxml fieldset {clear:left;border:1px dotted; padding:10px;width:95%;}
-#detailxml ul {clear:left;width:95%;}
-#detailxml ul li {display:inline;float:left;}
-#detailxml .name {width:150px;text-align:left;float:left;color:red;}
-#detailxml .item{clear:left;margin-left:20px;}
-#detailxml .item p{padding-left:20px;}
-legend {margin-left:30px;background:#fff;}
-.strong {font:20px bold;color:red;}
-.thumbtitle{width:210px;margin-top:10px;padding-top:10px;}
-ol,ol li{list-style:decimal;margin-left:20px;}
-#heihe_ad h2{margin:20px;}
-#heihe_ad li{float:left;width:30%;}
-#heihelist img{min-width:200px;}
-#heihe_ad img.next{vertical-align: center;}
-#heihe_ad span{
- filter:alpha(opacity=50); -moz-opacity:0.5; opacity:0.5;
- background:#ffffff; margin-top:5px; padding-left:5px; position: absolute; width: 180px;
- font-size:12px;font-weight:bold;color:#00A9FF;white-space: normal;}
-.singleline img{height:20px;vertical-align:middle;}
\ No newline at end of file
+#leftnav li,#tools li,#category li,#keyword li,#series li{padding-left: 10px;background: url(/images/square.gif) no-repeat left center;}
+.submit-group,.element-group{}
+
+#leftnav ul,#leftContainer ul{margin:0px; padding-left:0px;clear:left;}
+#leftnav ul li,#leftContainer ul li{float:left;}
+#tools ul li {float:left; padding-left:10px;}
+
+img{border:0px;}
+.summary{text-indent:2em;}
+.more{font-size: 11px;}
+
+dd,dt{float:left;margin:0;}
+
+#links dd {padding-bottom:5px;margin-left:15px;margin-top:-5px;}
+.note{font-size:10px;color:gray;}
+
+
+#series fieldset {border-bottom:0;}
+#category fieldset {border-bottom:0;}
+#detailxml {margin:10px;}
+#detailxml fieldset {clear:left;border:1px dotted; padding:10px;width:95%;}
+#detailxml ul {clear:left;width:95%;}
+#detailxml ul li {display:inline;float:left;}
+#detailxml .name {width:150px;text-align:left;float:left;color:red;}
+#detailxml .item{clear:left;margin-left:20px;}
+#detailxml .item p{padding-left:20px;}
+legend {margin-left:30px;background:#fff;}
+.strong {font:20px bold;color:red;}
+.thumbtitle{width:210px;margin-top:10px;padding-top:10px;}
+ol,ol li{list-style:decimal;margin-left:20px;}
+#heihe_ad h2{margin:20px;}
+#heihe_ad li{float:left;width:30%;}
+#heihelist img{min-width:200px;}
+#heihe_ad img.next{vertical-align: center;}
+#heihe_ad span{
+ filter:alpha(opacity=50); -moz-opacity:0.5; opacity:0.5;
+ background:#ffffff; margin-top:5px; padding-left:5px; position: absolute; width: 180px;
+ font-size:12px;font-weight:bold;color:#00A9FF;white-space: normal;}
+.singleline img{height:20px;vertical-align:middle;}
+
+#tabs-controller {overflow:hidden;padding:5px 0;margin:5px 0px;}
+#tabs-controller ul li{float:left;padding:3px 10px;border:1px solid #93bee2;border-radius:5px;margin:0 5px;}
+#tabs-controller ul li:hover{background:#f1f8fe;}
+#tabs-controller ul li.active{background:#e8f4ff;}
+.box-shadow{
+ box-shadow:2px 2px 2px #ccc;
+ -webkit-box-shadow:2px 2px 2px #ccc;
+ -moz-box-shadow:2px 2px 2px #ccc;
+ filter: progid:DXImageTransform.Microsoft.Shadow(Strength=3, Direction=125, Color='#cccccc');
+ -ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Strength=3, Direction=125, Color='#cccccc')";
+}
+.text-shadow{
+ text-shadow:#ccc 2px 2px 2px;
+}
+
+#datalist{overflow:hidden;}
+#datalist ul li{margin:5px 0px;padding:5px 0px;background:#f6f6f6;border:1px solid #FFF;border-radius:3px;}
+#datalist ul li:hover,#datalist ul li:focus{border:1px solid #ccc;background:#fefefe;}
+#datalist ul li a{font-size:12px;}
+#datalist ul li a.title{font-size:14px;}
+#datalist ul li a.more{font-size:12px;}
+#datalist ul li p{text-indent:24px;font-size:12px;line-height:24px;}
+#datalist ul li p img {vertical-align:middle;}
\ No newline at end of file