function ge(e){return document.getElementById(e)}
IE6 = navigator.userAgent.search("MSIE 6") > -1 ? true : false;

/*view3dcolor = document.getElementById('css').href.search('classic-global.css') > 0 ? '#333333' : '#f4e8cf';*/
skin = document.getElementById('css').href;
if (skin.search('classic-global.css') > 0) {
  view3dcolor = '#333333';
} else if (skin.search('parchment-global.css') > 0) {
  view3dcolor = '#f4e8cf';
} else if (skin.search('thottbot-global.css') > 0) {
  view3dcolor = '#ffffff';
} else {
  view3dcolor = '#202020';
}

function attachMenuDrop() {
  if (navigator.userAgent.search("MSIE 6") > -1 && navigator.userAgent.search("MSIE 7") == -1) {
    $('li.has-sub').hover(function() {menuDrop(this,1)}, function() {menuDrop(this)});
    $('#menu_horiz > li.has-sub').hover(function() {hideads();menuDrop(this,1)}, function() {menuDrop(this);restoreads()});
  } else {
    $('#menu_horiz > li.has-sub').hover(function() {hideads()}, function() {restoreads()});
  }
}

function menuDrop(li,v) {
  if (v==1) {
    li.className += ' hov';
  } else {
    li.className = li.className.replace(/\b ?hov\b/, '');
  }
}

function showTab(t) {
  var id = t.id.replace(/tab(.*)/, "$1");
  for(var i=0; i < 10; i++){
    var th = document.getElementById('tab'+i);
    if (th && i != id) {
      document.getElementById('tabcont'+i).style.display = 'none';
      th.className = '';
    }
  }
  document.getElementById('tab' + id).className = 'cur';
  document.getElementById('tabcont' + id).style.display = 'block';

  if (IE6 == true) fixTables();
}

/* 3D Viewer Stuff */

function getFlashMovie(movieName) {
  var isIE = navigator.appName.indexOf("Microsoft") != -1;
  return (isIE) ? window[movieName] : document[movieName];
}

function view3dHideSetup() {
  document.getElementById('menu_horiz').onmouseover=function(){document.getElementById('view3d').style.visibility = 'hidden';}
  document.getElementById('menu_horiz').onmouseout=function(){document.getElementById('view3d').style.visibility = 'visible';}
  document.getElementById('network').onmouseover=function(){menuDrop(this,1);document.getElementById('view3d').style.visibility = 'hidden';}
  document.getElementById('network').onmouseout=function(){menuDrop(this,1);document.getElementById('view3d').style.visibility = 'visible';}
}

function view3d(viewer) {
  modelviewer = viewer.innerHTML;
  var box = document.getElementById('view3d');
  if (modelviewer == 'Close 3D') {
    box.style.display = 'none';
    document.getElementById('view3d-Controls').style.display = 'none';
    document.getElementById('view3d-Switcher').innerHTML = '<span id="view3d-Flash"><a href="javascript:;" onclick="view3d(this)">Flash</a></span><span> | </span><span id="view3d-Java"><a href="javascript:;" onclick="view3d(this)">Java</a></span>';
    document.getElementById('display3ddetails').style.display = 'none'; // Temp for testing.
  } else {
    var other = modelviewer == 'Flash' ? 'Java' : 'Flash';
    document.getElementById('view3d-'+modelviewer).innerHTML = '<b class="selected">'+modelviewer+'</b>';
    document.getElementById('view3d-'+other).innerHTML = '<a href="javascript:;" onclick="view3d(this)">'+other+'</a>';
    document.getElementById('view3d-Controls').style.display = 'block';
    var race = document.getElementById('view3d-Race');
    current3drace = race.options[race.selectedIndex].value; // Items that require being displayed on a model (e.g. chest armor) are forced on a model.
    if (typeof(current3dgender) == 'undefined') {
      current3dgender = 'Female';
    }
    if (current3drace != 'none' && current3drace != 'pinned') {
      current3dhasplayer = 1;
      if (modelviewer == 'Flash') {
        box.innerHTML = build3dFlash(current3drace+current3dgender.toLowerCase());
      } else {
        box.innerHTML = build3dJava(current3drace+current3dgender);
      }
      var other = current3dgender == 'Female' ? 'Male' : 'Female';
      document.getElementById('view3d-'+current3dgender).innerHTML = '<b class="selected">'+current3dgender+'</b>';
      document.getElementById('view3d-'+other).innerHTML = '<a href="javascript:;" onclick="update3d(this)">'+other+'</a>';
      document.getElementById('view3d-Gender').style.visibility = 'visible';
    } else if (current3drace == 'pinned') {
      current3dhasplayer = 1;
      if (modelviewer == 'Flash') {
        box.innerHTML = build3dFlash(current3drace+current3dgender.toLowerCase());
      } else {
        box.innerHTML = build3dJava(current3drace+current3dgender);
      }
    } else {
      current3dhasplayer = 0;
      if (modelviewer == 'Flash') {
        box.innerHTML = build3dFlash();
      } else {
        box.innerHTML = build3dJava();
      }
    }
    box.style.display = 'block';
  }
}

function update3d(update) {
  var update = update.innerHTML;
  if (update == 'Female' || update == 'Male') {
    var other = update == 'Female' ? 'Male' : 'Female';
    document.getElementById('view3d-'+update).innerHTML = '<b class="selected">'+update+'</b>';
    document.getElementById('view3d-'+other).innerHTML = '<a href="javascript:;" onclick="update3d(this)">'+other+'</a>';
    current3dgender = update;
    update3dValues();
  } else {
    var racelist = document.getElementById('view3d-Race');
    var newrace = racelist.options[racelist.selectedIndex].value;
    if (newrace != current3drace || (newrace != 'none' && current3dhasplayer == 0)) {
      if (newrace == 'none' && current3dhasplayer == 1) {
        current3dhasplayer = 0;
        document.getElementById('view3d-Gender').style.visibility = 'hidden';
        update3dValues();
      } else if (newrace == 'pinned') {
        current3dhasplayer = 1;
        current3drace = newrace;
        document.getElementById('view3d-Gender').style.visibility = 'hidden';
        update3dValues();
      } else if (newrace != 'none') {
        current3dhasplayer = 1;
        current3drace = newrace;
        var other = current3dgender == 'Female' ? 'Male' : 'Female';
        document.getElementById('view3d-'+current3dgender).innerHTML = '<b class="selected">'+current3dgender+'</b>';
        document.getElementById('view3d-'+other).innerHTML = '<a href="javascript:;" onclick="update3d(this)">'+other+'</a>';
        document.getElementById('view3d-Gender').style.visibility = 'visible';
        update3dValues();
      }
    }
  }
}

function update3dValues() {
  var update = current3drace+current3dgender.toLowerCase();
  var box = document.getElementById('view3d');
  if (current3dhasplayer == 1) {
    if (modelviewer == 'Flash') {
      if(typeof(modelloaded) != 'undefined' && modelloaded == 1){
//        getFlashMovie("modelviewer").setCharacter(update);
        box.innerHTML = build3dFlash(update);
      }else{
        box.innerHTML = build3dFlash(update);
      }
    } else {
      if(typeof(modelloaded) != 'undefined' && modelloaded == 1){
        document.ModelViewer.getSubApplet().setModel(16, update);
      }else{
        box.innerHTML = build3dJava(update);
      }
    }
  } else {
    if (modelviewer == 'Flash') {
      box.innerHTML = build3dFlash();
    } else {
      box.innerHTML = build3dJava();
    }
  }
}

function build3dFlash(update) {
  if (current3dhasplayer == 1){
    var model = update;
    if (typeof(slot) != 'undefined' && slot != 0) {
      equip = slot+','+momname;
      if (model.substr(0,6) == 'pinned') equip = pinnedequiplist+equip;
    } else if (typeof(slot) == 'undefined' && typeof(equip) != 'undefined' && model.substr(0,6) == 'pinned') {
      equip = pinnedequiplist+equip;
    }
    if (model.substr(0,6) == 'pinned') model = pinnedmodel;
    var displaymodeltype = 16;
    modelloaded = 1;
  }else{
    var model = momname;
    var displaymodeltype = modeltype;
    modelloaded = 0;
    equip = '';
  }
  var ret = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"\n' +
  '  id="viewer2R1" width="600" height="400"\n' +
  '  codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">\n' +
  '  <param name="movie" value="http://common.allakhazam.com/wow3d/ModelView.swf?'+Math.random()+'" />\n' +
  '  <param name="quality" value="high" />\n' +
  '  <param name="bgcolor" value="'+view3dcolor+'" />\n' +
//  '  <param name="wmode" value="transparent" />\n' + // Fixes menus but causes major performance issues and buggy mouse clicks
  '  <param name="allowScriptAccess" value="sameDomain" />\n' +
  '  <param name="FlashVars" value="contentPath=http://common.allakhazam.com/wow3d/&model=' + model + '&modelType=' + displaymodeltype + '&equipList=' + equip + '">\n' +
  '  <embed src="http://common.allakhazam.com/wow3d/ModelView.swf?'+Math.random()+'" quality="medium" bgcolor="'+view3dcolor+'"\n' +
  '    width="600" height="400" name="modelviewer"\n' +
  '    flashvars="contentPath=http://common.allakhazam.com/wow3d/&model=' + model + '&modelType=' + displaymodeltype + '&equipList=' + equip + '"\n' +
  '    allowScriptAccess="sameDomain"\n' +
  '    type="application/x-shockwave-flash"\n' +
//  '    wmode="transparent"\n' + // Fixes menus but causes major performance issues and buggy mouse clicks
  '    pluginspage="http://www.adobe.com/go/getflashplayer">\n' +
  '  </embed>\n' +
  '</object>';

  return ret;
}

function build3dJava(update) {
  if (current3dhasplayer == 1){
    var model = update;
    if (typeof(slot) != 'undefined' && slot != 0) {
      equip = slot+','+momname;
      if (model.substr(0,6) == 'pinned') equip = pinnedequiplist+equip;
    } else if (typeof(slot) == 'undefined' && typeof(equip) != 'undefined' && model.substr(0,6) == 'pinned') {
      equip = pinnedequiplist+equip;
    }
    if (model.substr(0,6) == 'pinned') model = pinnedmodel;
    var displaymodeltype = 16;
    modelloaded = 1;
  }else{
    var model = momname;
    var displaymodeltype = modeltype;
    modelloaded = 0;
    equip = '';
  }
  var ret = '<applet id="ModelViewer" name="ModelViewer"\n' +
  '  code="org.jdesktop.applet.util.JNLPAppletLauncher"\n' +
  '  width="600"\n' +
  '  height="400"\n' +
  '  archive="http://common.allakhazam.com/wow3d/applet-launcher.jar,http://download.java.net/media/jogl/builds/archive/jsr-231-webstart-current/jogl.jar,http://download.java.net/media/gluegen/webstart/gluegen-rt.jar,http://download.java.net/media/java3d/webstart/release/vecmath/latest/vecmath.jar,http://common.allakhazam.com/wow3d/ModelView510.jar">\n' +
  '  <param name="codebase_lookup" value="false">\n' +
  '  <param name="cache_option" value="no">\n' +
  '  <param name="subapplet.classname" value="modelview.ModelViewerApplet">\n' +
  '  <param name="subapplet.displayname" value="Model Viewer Applet">\n' +
  '  <param name="progressbar" value="true">\n' +
  '  <param name="jnlpNumExtensions" value="1">\n' +
  '  <param name="jnlpExtension1" value="http://download.java.net/media/jogl/builds/archive/jsr-231-webstart-current/jogl.jnlp">\n' +
  '  <param name="contentPath" value="http://common.allakhazam.com/wow3d/">\n' +
  '  <param name="model" value="' + model + '">\n' +
  '  <param name="modelType" value="' + displaymodeltype + '">\n';
  if (equip.length > 0)
    ret += '  <param name="equipList" value="' + equip + '">\n';
  ret += '  <param name="bgColor" value="'+view3dcolor+'">\n' +
  '</applet>';

  return ret;
}

function togglePlusMinus (t) {
  var label = document.getElementById(t + 'label');
  var action = label.className;
  if (action == 'minusplus') {
    document.getElementById(t+'cont').style.display = 'none';
    label.className = 'plusminus';
  } else {
    document.getElementById(t+'cont').style.display = '';
    label.className = 'minusplus';
  }
}

/* Old Allakhazam Javascript */

function hideAds () {
  var b = document.getElementById('bannerMain');
  var t = document.getElementById('towerRt');
  var c = document.getElementById('ad300');
  if (b) {
    b.style.visibility = 'hidden';
  }
  if (t) {
    t.style.visibility = 'hidden';
  }
  if (c) {
    c.style.visibility = 'hidden';
  }
}

function restoreAds () {
  var b = document.getElementById('bannerMain');
  var t = document.getElementById('towerRt');
  var c = document.getElementById('ad300');
  if (b) {
    b.style.visibility = 'visible';
  }
  if (t) {
    t.style.visibility = 'visible';
  }
  if (c) {
    c.style.visibility = 'visible';
  }
}
