﻿var userAgent = navigator.userAgent.toLowerCase();
var is_webtv = userAgent.indexOf('webtv') != -1;
var is_kon = userAgent.indexOf('konqueror') != -1;
var is_mac = userAgent.indexOf('mac') != -1;
var is_saf = userAgent.indexOf('applewebkit') != -1 || navigator.vendor == 'Apple Computer, Inc.';
var is_opera = userAgent.indexOf('opera') != -1 && opera.version();
var is_moz = (navigator.product == 'Gecko' && !is_saf) && userAgent.substr(userAgent.indexOf('firefox') + 8, 3);
var is_ns = userAgent.indexOf('compatible') == -1 && userAgent.indexOf('mozilla') != -1 && !is_opera && !is_webtv && !is_saf;
var is_ie = (userAgent.indexOf('msie') != -1 && !is_opera && !is_saf && !is_webtv) && userAgent.substr(userAgent.indexOf('msie') + 5, 3);
var isIe=(window.ActiveXObject)?true:false;
with(navigator){if(appName=="Microsoft Internet Explorer"){ieNo=parseInt(appVersion.split(" ")[3])}} //IE版本
function $(id,win){var elem;if(typeof win==='undefined') win=window;elem=(typeof(id)=="string")?win.document.getElementById(id):elem=id;return elem;}
function $c(className,node,tagName){
 var classElements=new Array();
 if(node==null){node=document}
 if(tagName==null){tagName='*'}
 var els=node.getElementsByTagName(tagName);
 var elsLen=els.length;
 var pattern=new RegExp("(^|\\s)"+className+"(\\s|$)");
 for(ii=0,jj=0;ii<elsLen;ii++){if(pattern.test(els[ii].className)){classElements[jj]=els[ii];jj++}}
 return classElements
}
function $ce(tagName, doc){if(typeof doc==='undefined') doc=document;var newElem=doc.createElement(tagName);return newElem;}
function in_array(needle, haystack){
  if(typeof needle=='string'){for(var i in haystack){if(haystack[i]==needle){return true}}}
  return false;
}


function observe(element, name, observer, useCapture){useCapture=useCapture||false;if(name=='keypress'&&((navigator.appVersion.indexOf('AppleWebKit')>0)||element.attachEvent)) name='keydown';if(!this.observers) this.observers=[];if(element.addEventListener){this.observers.push([element, name, observer, useCapture]);element.addEventListener(name, observer, useCapture);}else if(element.attachEvent){this.observers.push([element, name, observer, useCapture]);element.attachEvent('on' + name, observer);}}
function stopObserving(element, name, observer, useCapture){useCapture=useCapture||false;if(name=='keypress'&&((navigator.appVersion.indexOf('AppleWebKit')>0)||element.detachEvent)) name='keydown';if(element.removeEventListener){element.removeEventListener(name, observer, useCapture);}else if(element.detachEvent){element.detachEvent('on' + name, observer);}}
function pointerX(event){return event.pageX||(event.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft));}
function pointerY(event){return event.pageY||(event.clientY+(document.documentElement.scrollTop||document.body.scrollTop));}

function isEmail(Str){var reg=/^([a-z0-9+_]|\-|\.|\-)+@([\w|\-]+\.)+[a-z]{2,4}$/i;return reg.test(Str)}
String.prototype.isTel=function(){
  //"兼容格式: 国家代码(2到3位)-区号(2到3位)-电话号码(7到8位)-分机号(3位)"
  return (/^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,4}))?$/.test(Trim(this)));
}
String.prototype.isMobile=function(){  
  return (/^(?:13\d|15\d|18\d)-?\d{5}(\d{3}|\*{3})$/.test(Trim(this)));  
} 
//查找网页内宽度太大的图片进行缩放以及PNG纠正
function ReImgSize(){
  for(i=0;i<document.images.length;i++){
    if(document.all){
      if(document.images[i].width>750){
        document.images[i].width="750"
        document.images[i].outerHTML='<a href="'+document.images[i].src+'" target="_blank" title="在新窗口打开图片">'+document.images[i].outerHTML+'</a>'
      }
    }else{
      if(document.images[i].width>750){
        document.images[i].width="750"
        document.images[i].title="在新窗口打开图片"
        document.images[i].style.cursor="pointer"
        document.images[i].onclick=function(e){window.open(this.src)}
      }
    }
  }
}

//AccessKey 转换For IE Design By PuterJam
  var NKey=new Array()
  var KeyCode=new Array()
  var KeyInit=false
//======== keyCode ============
  KeyCode["1"]=49
  KeyCode["2"]=50
  KeyCode["3"]=51
  KeyCode["["]=219
  KeyCode["]"]=221
  KeyCode[","]=188
  KeyCode["."]=190
  var EKey="abcdefghijklmnopqrstuwvxyz"
  for (i=0;i<26;i++){
    KeyCode[EKey.substr(i,1)]=65+i
  }

//让Mozilla支持innerText
try{
  HTMLElement.prototype.__defineGetter__
  (
  "innerText",
  function(){
    var anyString="";
    var childS=this.childNodes;
    for(var i=0;i<childS.length;i++){
      if(childS[i].nodeType==1)
        anyString += childS[i].tagName=="BR" ? '\n' : childS[i].innerText;
      else if(childS[i].nodeType==3)
        anyString += childS[i].nodeValue;
    }
    return anyString;
  }
  ); 
}
catch(e){}



function Trim(str){return str.replace(/(^\s*)|(\s*$)/g, "")}
function LTrim(str){return str.replace(/(^\s*)/g,  "")}
function RTrim(str){return str.replace(/(\s*$)/g,  "")}
function AllTrim(str){return str.replace(/\s*/g,'')}
function Right(Str,n){return Str.substr(Str.length-n)}
function Left(Str,n){return Str.substr(0,n)}
function Mid(Str,Start,End){return Str.substring(Start,End)}

function CheckDate(str){
  var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; 
  var r = str.match(reg); 
  if(r==null)return false; 
  var d= new Date(r[1],r[3]-1,r[4],r[5],r[6],r[7]); 
  return (d.getFullYear()+"-"+(d.getMonth()+1)+"-"+d.getDate()+" "+d.getHours()+":"+d.getMinutes()+":"+d.getSeconds());
}


function GetMessageLength(){
	var oEditor=FCKeditorAPI.GetInstance('Content') ;
	var oDOM=oEditor.EditorDocument ;
	var iLength ;

	if ( document.all )		// If Internet Explorer.
	{
		iLength = oDOM.body.innerText.length ;
	}
	else					// If Gecko.
	{
		var r = oDOM.createRange() ;
		r.selectNodeContents( oDOM.body ) ;
		iLength = r.toString().length ;
	}
//	oEditor.InsertHtml('')
return iLength
}	



function FormatNumber(srcStr,nAfterDot){
var srcStr,nAfterDot,resultStr,nTen;if(srcStr==""){srcStr=0}
srcStr=""+srcStr+"";strLen=srcStr.length;dotPos=srcStr.indexOf(".",0);if(dotPos==-1){resultStr=srcStr+".";for(i=0;i<nAfterDot;i++){resultStr=resultStr+"0"}return resultStr}
else{if((strLen-dotPos-1)>=nAfterDot){nAfter=dotPos+nAfterDot+1;nTen=1;for(j=0;j<nAfterDot;j++){nTen=nTen*10}
  resultStr=""+Math.round(parseFloat(srcStr)*nTen)/nTen+"";rePos=resultStr.indexOf(".",0);if(rePos==-1){resultStr=resultStr+".";for(i=0;i<nAfterDot;i++){resultStr=resultStr+"0"}}
  reLen=resultStr.length-rePos-1;if(reLen<nAfterDot){for(i=0;i<nAfterDot-reLen;i++){resultStr=resultStr+"0"}}
  return resultStr}else{resultStr=srcStr;for(i=0;i<(nAfterDot-strLen+dotPos+1);i++){resultStr=resultStr+"0"}return resultStr}
}}
function limitLength(Str,byteLength,title,attribute){
  var newvalue=Str.value.replace(/[^\x00-\xff]/g,"**");
  var length=newvalue.length;
  attribute.innerHTML=length;
  //当填写的字节数小于设置的字节数
  if(length*1<=byteLength*1){return true}
  var limitDate=newvalue.substr(0,byteLength);
  var count=0;
  var limitvalue="";
  for(var i=0;i<limitDate.length;i++){var flat=limitDate.substr(i,1);if(flat=="*"){count++}}
  var size=0;
  var istar=newvalue.substr(byteLength*1-1,1);//校验点是否为“×”
  //if 基点是×; 判断在基点内有×为偶数还是奇数 
  if(count%2==0){
    //当为偶数时
    size=count/2+(byteLength*1-count);limitvalue=Str.value.substr(0,size);
  }else{
    //当为奇数时
    size=(count-1)/2+(byteLength*1-count);limitvalue=Str.value.substr(0,size);
  }
  alert(title + "最大输入" + byteLength + "个字节（相当于"+byteLength /2+"个汉字）！");
  Str.value=limitvalue;
  attribute.innerHTML=limitvalue.replace(/[^\x00-\xff]/g,"**").length
  return false
}
function toElement(evt){var toElement=document.all?window.event.srcElement:evt.target;return toElement}
function setInnerHtml(objName,dcontent){if($(objName)!=null){$(objName).innerHTML=dcontent}}

//ajax通用方法
function createXmlHttp(){if(window.ActiveXObject){xmlHttp=new ActiveXObject("Microsoft.XMLHTTP")}else if(window.XMLHttpRequest){xmlHttp=new XMLHttpRequest()}}
//插入上传附件
function addUploadItem(type,path){
  var oEditor=FCKeditorAPI.GetInstance('Content')
  type=type.toLowerCase()
  switch(type){
    case 'gif':
      oEditor.InsertHtml('<img src="'+path+'" alt="" /><br />')
      break;
    case 'jpg':
      oEditor.InsertHtml('<img src="'+path+'" alt="" /><br />')
      break;
    case 'png':
      oEditor.InsertHtml('<img src="'+path+'" alt="" /><br />')
      break;
    case 'bmp':
      oEditor.InsertHtml('<img src="'+path+'" alt="" /><br />')
      break;
    case 'jpeg':
      oEditor.InsertHtml('<img src="'+path+'" alt="" /><br />')
      break;
    case 'doc':
      oEditor.InsertHtml('<a href="'+path+'"><img src="/images/filetype/li/doc.gif" alt="" border="0" style="margin:0px 2px -4px 0px"/>点击下载此文件</a>')
      break;
    case 'xls':
      oEditor.InsertHtml('<a href="'+path+'"><img src="/images/filetype/li/xls.gif"" alt="" border="0" style="margin:0px 2px -4px 0px"/>点击下载此文件</a>')
      break;
    case 'ppt':
      oEditor.InsertHtml('<a href="'+path+'"><img src="/images/filetype/li/ppt.gif"" alt="" border="0" style="margin:0px 2px -4px 0px"/>点击下载此文件</a>')
      break;
    case 'rar':
      oEditor.InsertHtml('<a href="'+path+'"><img src="/images/filetype/li/rar.gif"" alt="" border="0" style="margin:0px 2px -4px 0px"/>点击下载此文件</a>')
      break;
    case 'zip':
      oEditor.InsertHtml('<a href="'+path+'"><img src="/images/filetype/li/zip.gif"" alt="" border="0" style="margin:0px 2px -4px 0px"/>点击下载此文件</a>')
      break;
    case 'mp3':
      oEditor.InsertHtml('<object classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95"  id="MediaPlayer" width="450" height="70"><param name=""howStatusBar" value="-1"><param name="AutoStart" value="False"><param name="Filename" value="'+path+'"></object>')
      break;
    case 'wma':
      oEditor.InsertHtml('<object classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95"  id="MediaPlayer" width="450" height="70"><param name=""howStatusBar" value="-1"><param name="AutoStart" value="False"><param name="Filename" value="'+path+'"></object>')
      break;
    case '.rm':
      oEditor.InsertHtml('<object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="400" height="300"><param name="SRC" value="'+path+'" /><param name="CONTROLS" VALUE="ImageWindow" /><param name="CONSOLE" value="one" /><param name="AUTOSTART" value="true" /><embed src="'+path+'" nojava="true" controls="ImageWindow" console="one" width="400" height="300"></object><br/><object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="400" height="32" /><param name="CONTROLS" value="StatusBar" /><param name="AUTOSTART" value="true" /><param name="CONSOLE" value="one" /><embed src="'+path+'" nojava="true" controls="StatusBar" console="one" width="400" height="24" /></object><br/><object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="400" height="32" /><param name="CONTROLS" value="ControlPanel" /><param name="AUTOSTART" value="true" /><param name="CONSOLE" value="one" /><embed src="'+path+'" nojava="true" controls="ControlPanel" console="one" width="400" height="24" autostart="true" loop="false" /></object>')
      break;
    case 'rmvb':
      oEditor.InsertHtml('<object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="400" height="300"><param name="SRC" value="'+path+'" /><param name="CONTROLS" VALUE="ImageWindow" /><param name="CONSOLE" value="one" /><param name="AUTOSTART" value="true" /><embed src="'+path+'" nojava="true" controls="ImageWindow" console="one" width="400" height="300"></object><br/><object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="400" height="32" /><param name="CONTROLS" value="StatusBar" /><param name="AUTOSTART" value="true" /><param name="CONSOLE" value="one" /><embed src="'+path+'" nojava="true" controls="StatusBar" console="one" width="400" height="24" /></object><br/><object classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA" width="400" height="32" /><param name="CONTROLS" value="ControlPanel" /><param name="AUTOSTART" value="true" /><param name="CONSOLE" value="one" /><embed src="'+path+'" nojava="true" controls="ControlPanel" console="one" width="400" height="24" autostart="true" loop="false" /></object>')
      break;
    case 'ra':
      oEditor.InsertHtml('<object classid="clsid:CFCDAA03-8BE4-11CF-B84B-0020AFBBCCFA" id="RAOCX" width="450" height="60"><param name="_ExtentX" value="6694"><param name="_ExtentY" value="1588"><param name="AUTOSTART" value="true"><param name="SHUFFLE" value="0"><param name="PREFETCH" value="0"><param name="NOLABELS" value="0"><param name="SRC" value="'+path+'"><param name="CONTROLS" value="StatusBar,ControlPanel"><param name="LOOP" value="0"><param name="NUMLOOP" value="0"><param name="CENTER" value="0"><param name="MAINTAINASPECT" value="0"><param name="BACKGROUNDCOLOR" value="#000000"><embed src="'+path+'" width="450" autostart="true" height="60"></embed></object>')
      break;
    case 'asf':
      oEditor.InsertHtml('<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,0,02,902" type="application/x-oleobject" standby="Loading..." width="400" height="300"><param name="FileName" VALUE="'+path+'" /><param name="ShowStatusBar" value="-1" /><param name="AutoStart" value="true" /><embed type="application/x-mplayer2" pluginspage="http://www.microsoft.com/Windows/MediaPlayer/" src="'+path+'" autostart="true" width="400" height="300" /></object>')
      break;
    case 'avi':
      oEditor.InsertHtml('<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,0,02,902" type="application/x-oleobject" standby="Loading..." width="400" height="300"><param name="FileName" VALUE="'+path+'" /><param name="ShowStatusBar" value="-1" /><param name="AutoStart" value="true" /><embed type="application/x-mplayer2" pluginspage="http://www.microsoft.com/Windows/MediaPlayer/" src="'+path+'" autostart="true" width="400" height="300" /></object>')
      break;
    case 'wmv':
      oEditor.InsertHtml('<object classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95" codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,0,02,902" type="application/x-oleobject" standby="Loading..." width="400" height="300"><param name="FileName" VALUE="'+path+'" /><param name="ShowStatusBar" value="-1" /><param name="AutoStart" value="true" /><embed type="application/x-mplayer2" pluginspage="http://www.microsoft.com/Windows/MediaPlayer/" src="'+path+'" autostart="true" width="400" height="300" /></object>')
      break;
    case 'swf':
      oEditor.InsertHtml('<object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="400" height="300"><param name="movie" value="'+path+'" /><param name="quality" value="high" /><param name="AllowScriptAccess" value="never" /><embed src="'+path+'" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="400" height="300" /></object>')
      break;
    default :
        oEditor.InsertHtml('<a href="'+path+'"><img src="/images/download.gif" alt="" border="0" style="margin:0px 2px -4px 0px"/>点击下载此文件</a>')
        break;
     }
}

if(window.attachEvent==null && HTMLElement.prototype.children==null){HTMLElement.prototype.__defineGetter__("children",function(){var ret =[];for (var i=0;this.childNodes!=null && i<this.childNodes.length; i++){if (this.childNodes[i].nodeType == 1){ret.push( this.childNodes[i])}}return ret})}
if(document.getElementById&&!document.all){HTMLElement.prototype.__defineGetter__("innerText", function(){  return this.textContent;});HTMLElement.prototype.__defineSetter__( "innerText", function(sText){ this.textContent=sText;})}
if(window.HTMLElement) {
    HTMLElement.prototype.__defineSetter__("outerHTML",function(sHTML){var r=this.ownerDocument.createRange();r.setStartBefore(this);var df=r.createContextualFragment(sHTML);this.parentNode.replaceChild(df,this);return sHTML;});
    HTMLElement.prototype.__defineGetter__("outerHTML",function(){var attr;var attrs=this.attributes;var str="<"+this.tagName.toLowerCase();for(var i=0;i<attrs.length;i++){attr=attrs[i];if(attr.specified)str+=" "+attr.name+'="'+attr.value+'"';}if(!this.canHaveChildren)return str+">";return str+">"+this.innerHTML+"</"+this.tagName.toLowerCase()+">";});
    HTMLElement.prototype.__defineGetter__("canHaveChildren",function(){
  switch(this.tagName.toLowerCase()){
            case "area":
            case "base":
         case "basefont":
            case "col":
            case "frame":
            case "hr":
            case "img":
            case "br":
            case "input":
            case "isindex":
            case "link":
            case "meta":
            case "param":
            return false;
        }
        return true;
     });
}
