// Anime Theme download script

var ie = !!document.all
var dom = !!(ie || self.HTMLElement)
var search_str

var time = new Date()
var hours = time.getHours()
var minutes = time.getMinutes()

function generateTime(tz_offset) {
  var h = hours + time.getTimezoneOffset() / 60 + tz_offset
  if (h > 23)
    h -= 24
  else if (h < 0)
    h += 24

  var sign
  if (h < 12)
    sign = "AM"
  else {
    sign = "PM"
    h -= 12
  }

  return " (your current time in this server's time zone is " + h + ":" + minutes + " " + sign + ")"
}

var servers = []

servers[0] = [
  'cgi-bin/dl.cgi?mirror=1&src=',
  '<li>LIMITED connections and daily bandwidth</li>\n'
+ '<li>Around 40% daily chance to connect per IP</li>\n'
+ '<li>NO retry or resume within the same day</li>\n'
]

servers[1] = [
  'http://animetheme.ffhnet.com/',
  '<li>Limited connections</li>\n'
+ '<li>1 connection per IP</li>\n'
]

servers[5] = [
  'cgi-bin/ikonboard/download.cgi?src=',
  '<li>Numerous connections</li>\n'
+ '<li><strong>NEAR 100% UP-TIME</strong></li>\n'
+ '<li><strong>FAST and STABLE</strong></li>\n'
+ '<li><a href="atp_members/atp_signup.html">(EXCLUSIVE to Anime Theme Premier members)</a></li>\n'
]

servers[7] = [
  'javascript:alert(\'Not yet available...\')',
  '<li>(No public download server is currently available for this download. If you '
+ 'own a server with at least 500MB of space and would like to help, please '
+ '<a href="mailto:webmaster@animetheme.com">email me</a>.)</li>\n'
]

servers[8] = [
  'http://animetheme.shells.nl/',
  '<li>Limited connections</li>\n'
+ '<li>1 connection per IP</li>\n'
]

servers[9] = [
  'cgi-bin/dl.cgi?src=',
  '<li>LIMITED connections and daily bandwidth</li>\n'
+ '<li>Around 40% daily chance to connect per IP</li>\n'
+ '<li>NO retry or resume within the same day</li>\n'
]

var isMultipleMirror

function generateMirrorList(mirror_list) {
  if (mirror_list.length > 1)
    isMultipleMirror = true

  var HTML =
  '<CENTER>\n'
+ '<TABLE width=95% border=1>\n'

  for (var i = 0; i < mirror_list.length; i++) {
    var m = mirror_list[i][0]
    var f = mirror_list[i][1]

    var s = servers[m]

    var dl_text = (m == 5) ? '<strong>(Click to go to the download page)</strong>' : 'Download Mirror ' + (i+1) + ' (' + ((/ftp/.test(s[0])) ? 'FTP' : 'HTTP') + ')'
    HTML +=
  '<TR valign=center><TD align=center width=40%>\n'
+ '<a href="' + s[0] + f + '">' + dl_text + '</a>\n'
+ '</TD>\n'
+ '<TD>\n'
+ '<ul>\n'
+ s[1] + '\n'
+ '</ul>\n'
+ '</TD></TR>\n'
  }

  HTML +=
  '</TABLE>\n'
+ '<TABLE width=80%><TR><TD><b><i>\n'
+ '<p>NOTE: I\'m in desperate need of MORE mirrors for this download! If you '
+ 'own a server with at least 500MB of space and would like to help, please '
+ '<a href="mailto:webmaster@animetheme.com">email me</a>!</p>\n'
+ '</i></b></TD></TR></TABLE>\n'
+ '</CENTER>\n'

  return HTML
}

function generateTextAd() {
  var vote_HTML
  if (/vote=yes/.test(document.cookie))
    vote_HTML = ""
  else {
    vote_HTML =
  '<li><a target=_blank href="http://www.anime100.com/cgi-bin/rank/rankem.cgi?id=anitheme" onClick="document.cookie=\'vote=yes\'">Click '
+ 'here to vote for Anime Theme at Anime100.com!</a> Help make this site HOT! ^_^</li>\n'
  }

  var cat = (/\/(ff|chrono)/.test(self.location.href)) ? 1 : 0
  if (Math.random() < 0.2)
    cat = (cat) ? 0 : 1

  var HTML = ""

  var ad_free_ATPM_HTML = (no_ads) ? '' : '<li>Ad-FREE browsing? INSTANT download? Join <a href="atp_members/atp_signup.html">Anime Theme Premier Membership</a> and support us!</li>\n'

  return HTML + ad_free_ATPM_HTML + vote_HTML
}

var content = ""
var download = ""

function generateDownload() {

var ATPM_download

if (self.target) {
  ATPM_download = true
}
else {
  var url = self.location.href
  var q = url.indexOf("?")
  if (q == -1) {
    document.write('<h2 align=center>This page requires a search string.</h2>')
    return
  }

  search_str = url.substring(q+1, url.length)
  self.target = (/url=([^\&]+)/i.test(search_str)) ? decodeURIComponent(RegExp.$1) : search_str
}

var current_domain = self.location.protocol + '//' + self.location.host
var isSameDomain = ((target.indexOf(current_domain) != -1) || (/\/(gallery|theme)/i.test(target)))
var notTempDownload = !(/animetheme\.com\/temp\//i.test(target))

// Turn links down

var down_exp, down_msg
// down_exp =
down_msg = ""

// End

if (down_exp && down_exp.test(target))
  download = down_msg

if (/(movie)\.animetheme/i.test(target)) {
  content +=
  '<li>Download restrictions apply to these servers. Please follow the rules '
+ 'stated for the servers, or you may be banned from downloading anything '
+ 'from these servers again.</li>\n'
}

if (/\.(jpg|gif|png)/i.test(target)) {
  if (/gallery\.animetheme/i.test(target)) {
    target = target.replace(/^.+\.com/i, "_gallery")
  }

  if (!download) {
    download =
  '<center><img name=Img src="' + target + '"></center>\n'
  }
}
else {
  target = target.replace(/\.zp$/i, ".zip").replace(/.7z\.(\d{3})z$/, ".7z.$1").replace(/\.rr$/i, ".rar")
  var filename = target.replace(/^.+\//, "")

  var relative_url = target.replace(/^.+\.com\//i, "")

if (!/dl\.cgi/i.test(target)) {
if (/(game|theme)\.animetheme/i.test(target))
  target = "_downloads/theme/" + relative_url

else if (/ffx2.+mpg|ffx_mtv_xvid\.avi/i.test(target))
  download = generateMirrorList([[5,relative_url],[7,""]])

else if (/movie\.animetheme/i.test(target))
  download = generateMirrorList([[5,relative_url],[9,relative_url]])

else 
  download = down_msg
}

  if (!download) {
    var DL_html
    if (/sidebar|sys_ani_|SA_EQP/.test(target)) {
      var DL_delay_base, DL_delay_var
      if (/^at_/.test(filename)) {
        DL_delay_base = 3
        DL_delay_var = 2
      }
      else {
        DL_delay_base = 5
        DL_delay_var = 10
      }

      DL_html = ''

if (/SA_EQP/.test(target)) {
  DL_delay_base = 10
  DL_delay_var = 10

  var preview_path = target.replace(/preview_only\//, "").replace(/SA_EQP/, "SA_EQP/previews").replace(/\.\w+$/, "")

  DL_html +=
//  '<div style="position:relative; width:100%; text-align:center">\n' +
  '<div style="position:relative; text-align:left">\n'
+ '<img src="' + preview_path + '_max.jpg" id="SA_EQP_preview_max" style="position:absolute; filter:alpha(opacity=0); opacity:0" onload="SA_EQP_preview()">\n'
+ '<img src="' + preview_path + '_base.jpg">\n'
+ '</div>\n'
//+ '</div>\n'
}

      if (/preview_only/.test(target)) {
        DL_html +=
  '<h1>(Download coming soon!)</h1>\n'
      }
      else {
        var DL_delay = (ATPM) ? 1 : Math.floor(Math.random() * (DL_delay_var + 1)) + DL_delay_base

        DL_html +=
  '<h1 id="HDL_loading">Retrieving download link &nbsp;<img align=absmiddle src="_ajax-loader_bert2.gif"></h1>\n'
+ '<h1 id="HDL_content" style="display:none"><a href="' + target + '">Download "' + filename + '"!</a></h1>\n'
+ '<script>setTimeout("document.getElementById(\'HDL_loading\').style.display=\'none\'; document.getElementById(\'HDL_content\').style.display=\'inline\';", ' + DL_delay + ' * 1000)</scr' + 'ipt>\n'
      }
	}
    else {
      DL_html =
  '<h1 id="HDL_content"><a href="' + target + '">Download "' + filename + '"!</a></h1>\n'
    }

    download =
  '<TABLE width=100% height=150><TR><TD align=center valign=center>\n'
+ DL_html
+ '</TD></TR></TABLE>\n'
  }

  if (notTempDownload) {
    if (isSameDomain && !/sidebar/.test(target) && /\.zip/.test(target)) {
      content +=
  '<li>Don\'t know how to install or use this desktop download? '
+ '<a href="/icocur.html" onClick="return dl(this)">Click here!</a></li>\n'
    }
  }
}

if (!isSameDomain && !isMultipleMirror) {
  content =
  '<li>If the above download/image is broken, '
+ '<a href="mailto:webmaster@animetheme.com?subject=Broken Download&body=' + target + '">'
+ 'click here</a> to notify me.</li>\n'
+ content
}

content =
  generateTextAd()
+ content
+ '<li><a href="mailto:webmaster@animetheme.com">Email me</a> if you have any '
+ 'questions regarding the above download/image.</li>\n'

  document.write(download)
}

function generateContent() {
  document.write('<div id=MainUL><ul>\n' + content + '</ul></div>\n')
}

function dl(target) {
  if (!opener)
    return true

  opener.location = target.href
  setTimeout("self.close()",0)
  return false
}


// Misc START
function SA_EQP_preview() {
  setInterval('SA_EQP_preview_loop()', 100)
}

var SA_EQP_preview_opacity = 0
var SA_EQP_preview_opacity_sign = 1
function SA_EQP_preview_loop() {
  SA_EQP_preview_opacity += 10 * SA_EQP_preview_opacity_sign
  if ((SA_EQP_preview_opacity >= 100) || (SA_EQP_preview_opacity <= 0))
    SA_EQP_preview_opacity_sign *= -1

  try {
    var d = document.getElementById("SA_EQP_preview_max")
    if (d.filters)
      d.filters[0].opacity = SA_EQP_preview_opacity
    else
      d.style.opacity = SA_EQP_preview_opacity/100
  }
  catch (err) {}
}
// END


var first_error = true

function error(msg, filename, line) {
  if (first_error) {
    if (line && /unspecified|callee/i.test(msg))
      return true
    if (confirm("An error has occurred in the script on this page.\n\nLine: " + line + "\nError: " + msg + "\n\n" + "Press OK to send me an automatic bug report, or press CANCEL to continue."))
      window.open("mailto:webmaster@animetheme.com?body=" + window.location.href + "%0A" + filename + "%0A" + line + "%0A" + msg + "%0A" + navigator.appName + " " + navigator.appVersion)
    first_error = false
  }
  return true
}

window.onerror = error

document.write(
  '<STYLE>\n'
+ 'BODY 	  { font-family:Verdana, Arial, Times New Roman; font-size:14px; margin:10px }\n'
+ '#MainUL LI { font-family:Verdana, Arial, Times New Roman; font-size:14px; padding-top:10px; padding-bottom:10px }\n'
+ 'LI { padding-top:3px; padding-bottom:3px }\n'
+ 'P { padding:10px }\n'
+ '</STYLE>'
)


