var sEdit = 'log_content';
var efBrowesr = browserDetect();
var picArray = new Array('gif','jpeg','bmp','jpg');
var efWeb = "";//http://www.eforum.com.cn/pic/
function $(_sId){return document.getElementById(_sId)}
function browserDetect() {
	var efUA = navigator.userAgent.toLowerCase();
	var efIE = efUA.indexOf("msie");
	var efOpera = efUA.indexOf("opera");
	var efMoz = efUA.indexOf("gecko");
	if (efIE != -1) {
		nIeVer = parseFloat(efUA.substr(efIE + 5));
		if (nIeVer >= 6) {
			return "ie6";
		} else if (nIeVer >= 5.5) {
			return "ie55";
		} else if (nIeVer >= 5 ) {
			return "ie5";
		}
	}
	
	if (efOpera != -1) {
		return "opera";
	}
	
	if (efMoz != -1) {
		return "moz";
	}
	
	return "other";
}

function isIE(){
	return efBrowesr.indexOf("ie") > -1;
}
function isFF(){
	return efBrowesr.indexOf("moz") > -1;
}
//新增附件
var attachNew = new Array();
function getFileNameFromPath(path){
  var lastnum=path.lastIndexOf("\\");
  var filename=path.substring(lastnum,path.length);
  return filename;
}
//浏览一个文件
function initUpload(obj,efId){
  if(isIE()){
    $("demopic"+efId).src = _contextPath+"/eb/template/OsaccBlog/images/clear.gif"
	$("demopic"+efId).style.filter="";
  }
  if(obj.value==""){
	return;
  }
  if (checkPic(obj))
  {
    if(isIE()){
	  var wh = getImageWh($("attach"+efId).value,180,120);
	  $("demopic"+efId).src=_contextPath+"/eb/template/OsaccBlog/images/clear.gif";
	  $("demopic"+efId).style.filter='progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod="scale",src="file:///' + obj.value +'"';
	  $("demopic"+efId).style.width=wh['w']+"px"
      $("demopic"+efId).style.height=wh['h']+"px";
    }
	$("demopic"+efId).alt=obj.value.substr(obj.value.lastIndexOf('\\')+1);
  } else {
	  if(!isFF()){
        var fileType = getFileType(obj);
        $("demopic"+efId).src  = efWeb + fileType + ".gif";
	  }
  }
  $("demopic"+efId).title = obj.value.substr(obj.value.lastIndexOf('\\')+1);
  if (attachNew.toString().indexOf(efId) < 0){
    attachNew.push(efId);
  }
  $('attach_new').value = attachNew;
}
/**
 *点击删除按钮删除input file 的value值
 */
function removeImage(num){
 	$("file"+num).value="";
	$("demopic"+num).title="资源剪切板";
	clearFileInput($('selectfile'+num));
	if(attachNew.toString().indexOf(num)>=0){
	var tempArr =new Array();

	var item=attachNew.pop();
		while(item!=num){
			tempArr.push(item);
			item=attachNew.pop();
		}
	}

  	attachNew.concat(tempArr);
	$('attach_new').value = attachNew;
    initUpload($("file"+num),num);
}
//检查是否是图片 ： 支持 jpeg gif bmp 
function checkPic(obj){
	var fileType = getFileType(obj);
	return (picArray.toString().indexOf(fileType) >= 0) ;
}

function getFileType(obj){
  return obj.value.substr(obj.value.lastIndexOf('.')+1).toLowerCase();
}
//增加到文章中
function addArticle(efId){
  var oEditor = FCKeditorAPI.GetInstance("log_content");
  if (oEditor.EditMode==FCK_EDITMODE_WYSIWYG){
    oEditor.InsertHtml('<img id="###'+efId+'###" _fcksavedurl="###'+efId+'###" width="400" height="400" onload="imgOnload(this,400,400)" onclick="javascript:zoom(this)" src="'+$('selectfile'+efId).value+'" style="cursor:pointer;" alt="点击查看大图"/>');
  }
}

function checkInsertID(efId){
  //已经插入；
  if (attachment.toString().indexOf(efId) >= 0){
    return false;
  } else {
    attachment.push(efId);
    return true;
  }
}
 /**
  *清空input file 的value值
  */
function clearFileInput(file){
	var form=document.createElement('form');
	document.body.appendChild(form);
	//记住file在旧表单中的的位置
	var pos=file.nextSibling;
	
	form.appendChild(file);

	form.reset();
	
	pos.parentNode.insertBefore(file,pos);
	document.body.removeChild(form);
}	
function insertHTML(_sStr) {
	var oRng;
	var oEdit;
	oEdit = $(sEdit);
    oEdit.focus();
	if (isIE()) {
		oRng = oEdit.document.selection.createRange();
		oRng.text += _sStr;
	} else {
		oEdit.value = oEdit.value.substring(0, oEdit.selectionStart) + _sStr + oEdit.value.substring(oEdit.selectionEnd, oEdit.value.length);
	}
}

//删除
function clearSelect(efId){
  if (confirm("您确认删除吗？"))
  { 
    deleteUpload(efId);
  }
/*
	var oEdit;
  var str = $(sEdit).value.replace(new RegExp("\\[upload\\]###资源" + efId + "###\\[/upload\\]"),"");
  //alert($(sEdit).value);
  $(sEdit).value = str;
  $("filePath" + efId).value = "";
	$('form' + efId).reset();
	$("filetitle" + efId).value = "";
	$("picShow" + efId).innerHTML = "<span style='color:#7f7f7f'>资源剪切板</span>";
  */
}

function deleteUpload(efId){
  $('uploadPhotoDIV').removeChild($("upload"+efId));
   //已上传资源
}

var uploadIndex = 1;

function getEfId(){
  return uploadIndex ++;
}

function newUpload(){
  //TODO 检查上传组件的数量
  if( maxUpload < $('uploadPhotoDIV').childNodes.length){
    alert("您不允许在上传了");
    return ;
  }
  //TODO 如果第一个用户还没有选择，则不增加
  $('uploadPhotoDIV').insertBefore(getUploadElement(getEfId()),$('uploadPhotoDIV').childNodes.item(0));
}


function getUploadElement(efId){
  var div = document.createElement("div");
  div.id="upload" + efId;
  div.className="upload";
  var copyDiv ;
  if($('attach_needinsert'))
	copyDiv = $('tpluploadinsert#no#').innerHTML;
  else
	copyDiv = $('tplupload#no#').innerHTML;
  var Reg = /#no#/g;
  div.innerHTML = copyDiv.replace(Reg,efId);
  //定义 上传 图片预览框的大小；
  div.style.width="184px";
  return div;
}

//获取用户选定的图片 在预览框中 应该被显示的大小
function getImageWh(src,width,height){
  if($('img_hidden') && $('img_hidden').filters){

    $('img_hidden').filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = 'image';
    try {
      $('img_hidden').filters.item("DXImageTransform.Microsoft.AlphaImageLoader").src = src;
    } catch (e) {
      return null;
    }

    var wh = {'w' : $('img_hidden').offsetWidth, 'h' : $('img_hidden').offsetHeight};
    $('img_hidden').style.width = '10px';
    $('img_hidden').style.height = '10px';
    $('img_hidden').filters.item("DXImageTransform.Microsoft.AlphaImageLoader").sizingMethod = 'scale';
    if(wh['w'] <= 1 || wh['h'] <= 1){
      return {'w' : width, 'h' : height};
    }
    if(wh['w'] >= width || wh['h'] >= height) {
      wh = getAttachImageWh(wh['w'], wh['h'],width,height);
    }
    return wh;
  }
  return null;
}
function getAttachImageWh(w, h, twidth, theight){
  twidth = !twidth ? thumbwidth : twidth;
  theight = !theight ? thumbheight : theight;
  var x_ratio = twidth / w;
  var y_ratio = theight / h;
  var wh = new Array();
  if((x_ratio * h) < theight) {
    wh['h'] = Math.ceil(x_ratio * h);
    wh['w'] = twidth;
  } else {
    wh['w'] = Math.ceil(y_ratio * w);
    wh['h'] = theight;
  }
  return wh;
}


//不失帧加载图片
function imgOnload(obj1,canvas_width,canvas_height){
    var obj = obj1;
    var src_width = GetImageWidth(obj);
    var src_height =GetImageHeight(obj);

    var widthScale =  src_width / canvas_width;
	  var heightScale = src_height / canvas_height;
  
    if (widthScale >= 1 || heightScale >= 1) {
      //哪边差的小，以哪边为基准放大
      if (widthScale < heightScale) {
        obj.style.width = (src_width / heightScale)+'px';
        obj.style.height = canvas_height+'px';
      } else {
        obj.style.width = canvas_width+'px';
        obj.style.height = (src_height / widthScale)+'px';
      }
    }else {
     /* if(widthScale > heightScale) {
        obj.width = canvas_width;
        obj.height = src_height / widthScale;
        } else {
        obj.width = src_width / heightScale;
        obj.height = canvas_height;
      }*/
        obj.width = src_width;
        obj.height = src_height;
    }
}

var OriginImage=new Image();
function GetImageWidth(oImage)
{
  if(OriginImage.src!=oImage.src)OriginImage.src=oImage.src;
  return OriginImage.width;
}
function GetImageHeight(oImage)
{
  if(OriginImage.src!=oImage.src)OriginImage.src=oImage.src;
  return OriginImage.height;
}

 /**
  *几张图片轮流显示
  *pic		要显示的图片的地址,多张图片用 "|" 分隔
  *link		对应图片点击跳转的地址,多个地址用 "|" 分隔
  *text		对应图片的hint,多个hint用 "|" 分隔
  *width	显示范围的宽
  *height	显示范围的高
  *itv		图片变换间隔
  *spd		滤镜效果的速度
  *name		OspodSlide实例的名字
  */
function OspodSlide(pic,link,text,width,height,itv,spd,name){
  var interval = itv;//图片变换间隔
  var duration = spd;//滤镜效果的速度
  var xsImgWidth = width;//保存图片长和宽
  var xsImgHeight = height
  var xsName = name;
  var pics =pic;
  var link = link;
  var texts = text;
  var xsImgs = new Array();//图片路径
  var xsImgLinks = new Array();//图片链接
  var xsImgTexts = new Array();//图片说明

  var transitions = new Array;//滤镜
  transitions[0] = "progid:DXImageTransform.Microsoft.Fade(duration="+duration/50+")";
  transitions[1] = "progid:DXImageTransform.Microsoft.GradientWipe(duration="+duration/50+")";
  transitions[2] = "progid:DXImageTransform.Microsoft.Pixelate(maxSquare=10,duration="+duration/50+")";
  transitions[3] = "progid:DXImageTransform.Microsoft.Barn(function=15, duration="+duration/50+")";
  var transition_count = transitions.length;
  var timerId = -1;
  var curImg = 0;//初始图片为curImg+1的图片

  this.init = function(){
      xsImgs = pics.split("|");
      xsImgLinks = link.split("|");
      xsImgTexts = texts.split("|");
      document.write("<style type=\"text/css\">#"+xsName+"area { width:" + xsImgWidth + "px; height:" + xsImgHeight + "px; overflow: hidden; margin: 0 auto; text-align: center; vertical-align:middle;display: table-cell;} #"+xsName+"earea img {*margin-top:expression((parentElement.parentElement.offsetHeight-this.offsetHeight)/2);}</style>")
      document.write("<div id=\""+xsName+"area\">")
      if (xsImgs.length != 0) {
        document.write("<a href=\"" + xsImgLinks[0] + "\" target=\"_blank\"><img border=\"0\" title=\"" + xsImgTexts[0] + "\" src=\"" + xsImgs[0] + "\" width=" + xsImgWidth + " height=" + xsImgHeight + "\" onload=\"imgOnload(this," + xsImgWidth + "," + xsImgHeight + ");\" /><\/a>")
      }
      document.write("<\/div>")
      window.setTimeout(xsName+".play()", interval)//刷新页面后变换图片的时间
  }

  this.changeSlide = function(){
    if (document.all){//如果是firefox浏览器 不使用滤镜，单纯替换图片
      var do_transition = Math.floor(Math.random() * transition_count);//取随机滤镜
      document.getElementById(xsName+'area').style.filter=transitions[do_transition];
      document.getElementById(xsName+'area').filters[0].Apply();
    }
    if (xsImgs.length !=0) {
      var slideImage = "<a href=\"" + xsImgLinks[curImg] + "\" target=\"_blank\"><img border=\"0\" title=\"" + xsImgTexts[curImg] + "\" src=\"" + xsImgs[curImg] + "\" width=" + xsImgWidth + " height=" + xsImgHeight + "\" onload=\"imgOnload(this," + xsImgWidth + "," + xsImgHeight + ");\" /><\/a>";
      document.getElementById(xsName+'area').innerHTML = slideImage ;
      if (document.all) {
        document.getElementById(xsName+'area').filters[0].Play();
      }
    }
  }

  this.forward = function(){
    curImg++;
    if (curImg >= xsImgs.length) {
      curImg = 0;
    }
    this.changeSlide();
  }

  this.play = function(){
    if (timerId == -1) 
    timerId = window.setInterval(xsName+'.forward();', interval);
  }

  this.init();
}

function regImg(e,src,loadStr){//e:this;src:图片路径;loadStr:图片加载时显示的文字或者图片路径;
  if(!window.imgHash) window.imgHash = new Object();
  var a = imgHash[src];
  e.onerror=null;
  var loaddiv = document.createElement('div')
  //loaddiv.style.height=loadHeight;
  //loaddiv.style.lineHeight=loadHeight;
  loaddiv.innerHTML = loadStr;
  e.parentNode.appendChild(loaddiv);
  
  if(a==null) {
      e.style.display="none";
      loaddiv.style.display="block";
      a=[];
      a[0]=new Image();
      a[1]=e;
      a[0].onload=function(){setImges(a,loaddiv)};
      a[0].src=src;
  }else{
      if(a[0].readyState=="complete")
        e.src=src;
      else{
        e.style.display="none";
        a[a.length]=e;
      }
  }
}

var _st = window.setTimeout; //重载window.setTimeout
window.setTimeout = function(fRef, mDelay) { 
  if(typeof fRef == 'function'){ 
     var argu = Array.prototype.slice.call(arguments,2); 
     var f = (function(){ fRef.apply(null, argu); }); 
     return _st(f, mDelay); 
  } 
  return _st(fRef,mDelay); 
} 

function setImges(a,loaddiv){
  a[1].src=a[0].src;
  //alert("load");
  window.setTimeout(showImges,500,a,loaddiv)
}



function showImges(a,loaddiv){
    a[1].style.display="";
    a[1].parentNode.removeChild(loaddiv);
}




