﻿document.domain = "jinti.com";
function FadeAlert() {
  this.AlertBoxId = "Alert";
  this.AlertBodyId = "";
  this.AlertBox = null;
  this.AlertBody = null;
  this.Timer = 10;
  this.SetInv = null;
  this.i = 0;
  this.Message = "";
  this.IsFloat = false;
  this.AlwaysMiddle = false;
  this.CreateBackground = false;
  this.BackgroundColor = "#000";
  this.BackgroundAlpha = 1;
  this.tempDiv = null;
  this.Follow = false;
  this.FollowObject = null;
  this.FollowObjectTop = 0;
  this.FollowObjectLeft = 0;  
  this.FollowObjectRight = 0;
  this.AlertBoxDisplay = "inline";
  this.Right = false;

  if (typeof arguments[0] == "number" || typeof arguments[0] == "string") this.AlertBoxId = arguments[0];
  if (typeof arguments[1] == "number") this.Timer = arguments[1];
  if (typeof arguments[2] == "boolean") this.IsFloat = arguments[2];
  if (typeof arguments[3] == "boolean") this.CreateBackground = arguments[3];
  if (typeof arguments[4] == "boolean") this.Follow = arguments[4];

  var Fobj = this;

  Fobj.Tools = {
    clientWidth: function() {
      return document.compatMode == "CSS1Compat" ? document.documentElement.clientWidth: document.body.clientWidth
    },
    clientHeight: function() {
      return document.compatMode == "CSS1Compat" ? document.documentElement.clientHeight: document.body.clientHeight
    }
  }

  Fobj.ShowAlertBoxInv = function() {
    if (typeof arguments[0] == "number" || typeof arguments[0] == "string") Fobj.Message = arguments[0];
    if (typeof arguments[1] == "number") this.FollowObjectTop = arguments[1];
    if (typeof arguments[2] == "number") this.FollowObjectLeft = arguments[2];

    Fobj.AlertBox = Fobj.$(Fobj.AlertBoxId);
    Fobj.AlertBody = Fobj.$(Fobj.AlertBodyId);

    if (!Fobj.AlertBody) Fobj.AlertBody = Fobj.AlertBox;

    if (Fobj.AlertBox) {
      Fobj.i = 0;
      Fobj.XSetCss(Fobj.AlertBox, {
        display: Fobj.AlertBoxDisplay,
        filter: "alpha(opacity=0)",
        opacity: "0"
      });

      if (Fobj.AlertBody && Fobj.Message != "") Fobj.AlertBody.innerHTML = Fobj.Message;

      if (Fobj.CreateBackground) {
        if (Fobj.tempDiv == null) Fobj.tempDiv = Fobj.XCreateElement("div");

        if (Fobj.BackgroundAlpha > 9) {
          TempAlpha = 1;
        } else {
          TempAlpha = "0." + Fobj.BackgroundAlpha;
        }

        var CssParms = {
          position: "absolute",
          background: Fobj.BackgroundColor,
          left: "0px",
          top: "0px",
          filter: "alpha(opacity=" + Fobj.BackgroundAlpha + "0)",
          opacity: TempAlpha,
          zIndex: 99
        };
        Fobj.XSetCss(Fobj.tempDiv, CssParms);
        Fobj.MaskScreen(Fobj.tempDiv);
      }

      if (Fobj.Follow && Fobj.FollowObject != null) {
        var LeftFix = 0;        
        var TopFix = 2 + Fobj.FollowObject.offsetHeight;

        if (TopFix > (Fobj.Tools.clientHeight() - Fobj.FollowObject.offsetTop)) TopFix = -(2 + Fobj.AlertBox.offsetHeight);
        if (Fobj.AlertBox.offsetWidth > (Fobj.Tools.clientWidth() - Fobj.FollowObject.offsetLeft)) LeftFix = -(Fobj.AlertBox.offsetWidth - Fobj.FollowObject.offsetWidth);
        
        if(Fobj.Right){
            Fobj.XSetCss(Fobj.AlertBox, {
            position: "absolute",
            top: Fobj.getposOffset(Fobj.FollowObject, "top") + TopFix + Fobj.FollowObjectTop + "px",
            right: Fobj.getposOffset(Fobj.FollowObject, "right") + LeftFix + Fobj.FollowObjectRight + "px"
          });
        }
        else{
          Fobj.XSetCss(Fobj.AlertBox, {
            position: "absolute",
            top: Fobj.getposOffset(Fobj.FollowObject, "top") + TopFix + Fobj.FollowObjectTop + "px",
            left: Fobj.getposOffset(Fobj.FollowObject, "left") + LeftFix + Fobj.FollowObjectLeft + "px"
          });
        }
      }

      if (Fobj.IsFloat) {
        Fobj.XSetCss(Fobj.AlertBox, {
          position: "absolute",
          zIndex: "100"
        });
        Fobj.LocationCenter(Fobj.AlertBox);
      }

      window.onresize = function() {
        if (Fobj.CreateBackground) Fobj.MaskScreen(Fobj.tempDiv);
        if (Fobj.IsFloat && Fobj.AlwaysMiddle) Fobj.LocationCenter(Fobj.AlertBox);
      }

      window.onscroll = function() {
        if (Fobj.CreateBackground) Fobj.MaskScreen(Fobj.tempDiv);
        if (Fobj.IsFloat && Fobj.AlwaysMiddle) Fobj.LocationCenter(Fobj.AlertBox);
      }
      Fobj.Start();
    }
  }

  Fobj.XCreateElement = function(tagName, tagParent, attrs) {
    if (tagName && arguments.length < 2) {
      tagParent = document.body;
    }
    var oTemp = document.createElement(tagName);
    if (attrs && attrs.constructor == Object) {
      for (var o in attrs) {
        oTemp.setAttribute(o, attrs[o]);
      }
    }
    tagParent.appendChild(oTemp);
    return oTemp;
  }

  Fobj.XSetCss = function(obj, cssArgs) {
    if (arguments.length == 2) {
      if (cssArgs.constructor == Object) {
        for (var o in cssArgs) {
          if (obj.style[o] != "undefiend") obj.style[o] = cssArgs[o];
        }
      }
      if (cssArgs.constructor == Array && cssArgs.length == 2) obj.style[cssArgs[0]] = cssArgs[1];
    }
  }

  Fobj.getposOffset = function(overlay, offsettype) {
    var totaloffset = (offsettype == "left") ? overlay.offsetLeft: overlay.offsetTop;
    var parentEl = overlay.offsetParent;

    while (parentEl != null) {
      totaloffset = (offsettype == "left") ? totaloffset + parentEl.offsetLeft: totaloffset + parentEl.offsetTop;
      parentEl = parentEl.offsetParent;
    }
    return totaloffset;
  }

  Fobj.Start = function() {
    Fobj.i = 0;
    clearInterval(Fobj.SetInv);
    if (Fobj.Timer > 0) {
      Fobj.SetInv = setInterval(function() {
        Fobj.ShowAlertBox()
      },
      Fobj.Timer);
    } else {
      Fobj.XSetCss(Fobj.AlertBox, {
        filter: "alpha(opacity=100)",
        opacity: "10"
      });
    }
  }

  Fobj.ShowAlertBox = function() {
    Fobj.i++;
    if (Fobj.i < 10) {
      Fobj.XSetCss(Fobj.AlertBox, {
        filter: "alpha(opacity=" + Fobj.i + "0)",
        opacity: "0." + Fobj.i
      });
    } else if (Fobj.i == 10) {
      Fobj.XSetCss(Fobj.AlertBox, {
        filter: "alpha(opacity=100)",
        opacity: "10"
      });
    } else {
      clearInterval(Fobj.SetInv);
    }
  }

  Fobj.Close = function() {
    if (Fobj.CreateBackground) {
      if (Fobj.tempDiv != null) {
        Fobj.tempDiv.parentNode.removeChild(Fobj.tempDiv);
        Fobj.tempDiv = null;
      }
    }

    if (Fobj.AlertBox) {
      Fobj.i = 10;
      clearInterval(Fobj.SetInv);
      if (Fobj.Timer > 0) {
        Fobj.SetInv = setInterval(function() {
          Fobj.CloseAlertBox()
        },
        Fobj.Timer);
      } else {
        Fobj.XSetCss(Fobj.AlertBox, {
          display: "none",
          filter: "alpha(opacity=0)",
          opacity: "0"
        });
      }
    }
  }

  Fobj.CloseAlertBox = function() {
    Fobj.i--;
    if (Fobj.i > 0) {
      Fobj.XSetCss(Fobj.AlertBox, {
        filter: "alpha(opacity=" + Fobj.i + "0)",
        opacity: "0." + Fobj.i
      });
    } else if (Fobj.i == 0) {
      Fobj.XSetCss(Fobj.AlertBox, {
        display: "none",
        filter: "alpha(opacity=0)",
        opacity: "0"
      });
    } else {
      clearInterval(Fobj.SetInv);
    }
  }

  Fobj.MaskScreen = function(element) {
    if (!element) return null;
    document.body.style.height = "100%";
    var scrollW = Math.max(document.body.scrollWidth, document.documentElement.scrollWidth);
    var scrollH = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
    scrollH = Math.max(scrollH, Math.max(document.body.clientHeight, document.documentElement.clientHeight));

    if (element.tagName.toLowerCase() == 'iframe') {
      element.width = scrollW + "px";
      element.height = scrollH + "px";
    } else {
      element.style.width = scrollW + "px";
      element.style.height = scrollH + "px";
    }
    return element;
  }

  Fobj.LocationCenter = function(element) {
    if (!element) return null;
    document.body.style.height = "100%";
    var w = element.offsetWidth;
    var h = element.offsetHeight;
    var x = document.documentElement ? document.documentElement.clientWidth: document.body.clientWidth;
    x = x == 0 ? document.body.clientWidth: x;
    var y = document.documentElement ? document.documentElement.clientHeight: document.body.clientHeight;
    y = y == 0 ? document.body.clientHeight: y;
    var t = document.documentElement ? document.documentElement.scrollTop: document.body.scrollTop;
    t = t == 0 ? document.body.scrollTop: t;
    var l = document.documentElement ? document.documentElement.scrollLeft: document.body.scrollLeft;
    l = l == 0 ? document.body.scrollLeft: l;

    element.style.top = (y - h) / 2 + t + 'px';
    element.style.left = (x - w) / 2 + l + 'px';

    return element;
  }

  Fobj.$ = function(id) {
    return document.getElementById(id);
  }
  
  String.prototype.format = function(){
    var template = this;
    if(arguments.length>0){
      for(var i=0;i<arguments.length;i++){
        var reg = "/\{("+i+")\}/ig";
        template = template.replace(eval(reg), arguments[i]);
      }
    }
    return template;
  }
}

var FAlert = new FadeAlert();
var btnTemlate = '<a class="smallABtn m_l5" href="{0}" onclick="{1}"><span>{2}</span></a>';

function InfoBox(Json){
  var tempDiv = FAlert.$(Json.id)
  
  if (!tempDiv) tempDiv = FAlert.XCreateElement("div", document.body, {id:Json.id});
  tempDiv.className = "borderW2";

  FAlert.AlertBoxId = Json.id;
  FAlert.Timer = 0;
  FAlert.IsFloat = true;
  FAlert.AlwaysMiddle = true;
  FAlert.CreateBackground = true;
  FAlert.BackgroundColor = "#000";
  FAlert.BackgroundAlpha = 1;
  FAlert.Follow = false;
  FAlert.Message = FormateAlert(Json);
  FAlert.ShowAlertBoxInv();  
}

function FormateAlert(AlertJosn){
  var AlertTmplate = '<div class="clew">'
  + '<b class="clewclose"{#MarkEvent}><a id="AlertCloseBtn" href="javascript:;">x</a></b>'
  + '<h2 id="AlertTitle">{#AlertTitle}</h2>'
  + '<div class="borderS" id="AlertContext">{#AlertContext}</div>'
  + '<div class="xgkcsm text_center" id="buttonbox">{#AlertButton}</div>'
  + '</div>';
  
  var MessageTmplate = '<div class="clew">'
  + '<b class="clewclose"{#MarkEvent}><a id="AlertCloseBtn" href="javascript:;">x</a></b>'
  + '<p id="AlertContext">{#AlertContext}</p>'
  + '<span id="buttonbox">{#AlertButton}</span>'
  + '</div>';
  
  var Result = AlertTmplate;
  if(AlertJosn.id=="Message")Result = MessageTmplate
      
  Result = Result.replace("{#AlertTitle}",AlertJosn.title).replace("{#AlertContext}",AlertJosn.content).replace("{#AlertButton}",AlertJosn.button).replace("{#MarkEvent}",AlertJosn.markevent);    
  
  return Result;
}

function AntiSpam_Win(AntiSpamPath, Channel, PostUserID, ItemID, Category, AreaID, RequestURL, ItemTitle){
  var src = "{0}?Channel={1}&PostUserID={2}&ItemID={3}&Category={4}&AreaID={5}&RequestURL={6}&ItemTitle={7}".format(AntiSpamPath, parseInt(Channel), parseInt(PostUserID), parseInt(ItemID), parseInt(Category), parseInt(AreaID), RequestURL, ItemTitle);
  var StrBuilder = '<iframe id="AntiSpam_Iframe" name="AntiSpam_Iframe" src="{0}" width="440" height="20" marginwidth="0" marginheight="0" scrolling="no" frameborder="no"></iframe>'.format(src);

  var Button = "";//btnTemlate.format("javascript:;","FAlert.Close();", "确 定") + btnTemlate.format("javascript:;","FAlert.Close();", "取 消")
  
  var Json = {id:"Alert",title:"我要举报",content:StrBuilder,button:Button,markevent:"onclick=\"FAlert.Close();\""};
  InfoBox(Json);
  iFrameReload("AntiSpam_Iframe");
}

function SendEmail_Win(AntiSpamPath, ID, Category, AreaID){
  var src = "{0}?ID={1}&Category={2}&AreaID={3}".format(AntiSpamPath, parseInt(ID), parseInt(Category), parseInt(AreaID));
  var StrBuilder = '<iframe id="SendEmail_Iframe" name="SendEmail_Iframe" src="{0}" width="440" height="20" marginwidth="0" marginheight="0" scrolling="no" frameborder="no"></iframe>'.format(src);
  
  var Button = "";
  
  var Json = {id:"Alert",title:"发送邮件",content:StrBuilder,button:Button,markevent:"onclick=\"FAlert.Close();\""};
  InfoBox(Json);
  iFrameReload("SendEmail_Iframe");
}

var ifram_ads_right = FAlert.$("ifram_ads_right");
if(ifram_ads_right){
  ifram_ads_right.src = "http://sale.jinti.com/iframe/ads_right.html";
  //iFrameReload("ifram_ads_right");
}

function iFrameReload(IframeID){
  var Obj = FAlert.$(IframeID);
  if(Obj){
    window.self[IframeID].location = Obj.src;
  }
}

if(FAlert.$("floatads_r")&&FAlert.$("floatads_l")){
  var floatAds = {
    dofloat:function(Json){
      var adsfalt = new FadeAlert();
      adsfalt.AlertBoxId = Json.id;
      adsfalt.Timer = 0;
      adsfalt.IsFloat = false;
      adsfalt.AlwaysMiddle = false;
      adsfalt.CreateBackground = false;
      adsfalt.Follow = true;
      adsfalt.FollowObject = document.body;
      adsfalt.Right = Json.isright;
      adsfalt.FollowObjectTop = 400;
      adsfalt.Message = Json.text;
      adsfalt.ShowAlertBoxInv();      
      adsfalt = null;
    },
    loadAds:function(adsFileName, adsBoxId, isright){
      var adsTempate = '<embed src="http://s2.jtimg.com/sale/city/swf/{0}.swf" quality="high" width="100" height="270" wmode="transparent"></embed><span id="adcloseright_{0}" onclick="floatAds.close();">x</span>'.format(adsFileName);
      var Json = {id:adsBoxId,text:adsTempate,isright:isright};
      floatAds.dofloat(Json);
    },
    close:function(){
      FAlert.$("floatads_r").style.display='none';
      FAlert.$("floatads_l").style.display='none';
    }
  }
  
  floatAds.loadAds("adright", "floatads_r", true);
  floatAds.loadAds("adleft", "floatads_l", false);
  
  FAlert.$("floatads_r").style.top = "150px";
  FAlert.$("floatads_l").style.top = "150px";
  
  if(FAlert.$("adcloseright_adright")&&FAlert.$("adcloseright_adleft")){
    var csstxt = "border: 1px solid #EBB101;color: #EBB101;cursor: pointer;font-family:Verdana;font-size: 12px;font-weight: bold;height: 10px;line-height: 8px;position: absolute;right: 0;text-align: center;top: 0;width: 10px;";
    FAlert.$("adcloseright_adleft").style.cssText = csstxt;
    FAlert.$("adcloseright_adright").style.cssText = csstxt;
  }
}

