
/***** Banner functions ******/

function loadBanners(banner_array) {
  for(i=0;i<banner_array.length;i++) {
    var this_banner = banner_array[i];
    var this_div = this_banner + '_div';
    var url = 'includes/banner.php?bannerloadtype=ajax&location=' + this_banner;

    //do a quick check to prevent the downloading banner from loading if it's hidden
    var loadthisbanner = 0;
    if(this_banner == "downloading") {
      if(document.getElementById('downloadingnotice') && document.getElementById('downloadingnotice').style.display == "block") {
        loadthisbanner = 1;
      } else {
        loadthisbanner = 0;
      }
    } else if(document.getElementById(this_div)) {
      loadthisbanner = 1;
    }

    if(loadthisbanner == 1) {      
      var divid = document.getElementById(this_div);

      //do ajax call
      if (window.XMLHttpRequest) { // Mozilla, Safari, ...
        httpRequest = new XMLHttpRequest();
        if (httpRequest.overrideMimeType) {
          httpRequest.overrideMimeType('text/x-json');
        }
      } else if (window.ActiveXObject) { // IE
        try {
          httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
          try {
            httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
          } catch (e) {
          }
        }
      }

      if (!httpRequest) {
        //Giving up :( Cannot create an XMLHTTP instance
        return false;
      }

      httpRequest.open('GET', url, true); //set to false for syncronous request

      httpRequest.onreadystatechange = function(this_div) { 
        if (httpRequest.readyState == 4) {
          if(httpRequest.status == 200) {
          
            if(httpRequest.responseText) {
              eval("var banner_output = " + httpRequest.responseText + ";");
      
              if(banner_output['type'] == 'swf') {
                output = '<embed src="' + banner_output['file'] + '" width="' + banner_output['width'] + '" height="' + banner_output['height'] + '" scale="noscale" bgcolor="ffffff" type="application/x-shockwave-flash" allowFullScreen="false" allowScriptAccess="always" allowNetworking="all" pluginspage="http://www.adobe.com/go/getflashplayer"></embed></div>';
              } else if(banner_output['type'] == 'embed') {
                output = banner_output['href'];
              } else {
                output = '<a href="' + banner_output['href'] + '" target=\"_blank\"><img src="' + banner_output['file'] + '" alt="' + banner_output['alt_info'] + '" title="' + banner_output['alt_info'] + '" width="' + banner_output['width'] + '" height="' + banner_output['height'] + '" /></a>';
              }
            }
            
            divid.innerHTML = output;
          } else {
            //There was a problem with the request.
          }
        }
      };

      httpRequest.send('');
    }
  }
}




/***** Regular use functions *****/

function RoundVal(x) {
  return (Math.round(x*Math.pow(10,2)))/Math.pow(10,2)
}

function imposeMaxLength(Object, MaxLen) {
  if(Object.value.length > MaxLen)
   Object.value = Object.value.substring(0, MaxLen);
}

function clearText(thefield,orig_value){
  if(thefield.value == orig_value)
thefield.value = "";
}


function restoreText(thefield,orig_value){
  if(thefield.value == "")
thefield.value = orig_value;
}


function number_format(a, b, c, d) {
 //Made by Mathias Bynens <http://mathiasbynens.be/>

 a = Math.round(a * Math.pow(10, b)) / Math.pow(10, b);
 e = a + "";
 f = e.split(".");
 if (!f[0]) {
  f[0] = "0";
 }
 if (!f[1]) {
  f[1] = "";
 }
 if (f[1].length < b) {
  g = f[1];
  for (i=f[1].length + 1; i <= b; i++) {
   g += "0";
  }
  f[1] = g;
 }
 if(d != "" && f[0].length > 3) {
  h = f[0];
  f[0] = "";
  for(j = 3; j < h.length; j+=3) {
   i = h.slice(h.length - j, h.length - j + 3);
   f[0] = d + i +  f[0] + "";
  }
  j = h.substr(0, (h.length % 3 == 0) ? 3 : (h.length % 3));
  f[0] = j + f[0];
 }
 c = (b <= 0) ? "" : c;
 return f[0] + c + f[1];
}


/***** Display scripts ******/

function disableButton(objname) {
  if(thisbutton = document.getElementById(objname)) {
    thisbutton.disabled = true;
    thisbutton.style.opacity = 0.5;
    thisbutton.style.filter = 'alpha(opacity=50)';
  }
}


/***** Animation Scripts *****/

var timerlen = 5;
var slideAniLen = 250;
var timerID = new Array();
var startTime = new Array();
var obj = new Array();
var endHeight = new Array();
var moving = new Array();
var dir = new Array();

function slidedown(objname) {
  var thisdiv = document.getElementById(objname);

  if(moving[objname])
    return;

  if(thisdiv.className != "hide")
    return; // cannot slide down something that is already visible

  moving[objname] = true;
  dir[objname] = "down";
  
  thisdiv.style.opacity = 0;
  thisdiv.style.filter = 'alpha(opacity=0)';
  thisdiv.setAttribute("class", "show");
  thisdiv.setAttribute("className", "show");

  startslide(objname);
}


function slideup(objname) {
  var thisdiv = document.getElementById(objname);

  if(moving[objname])
    return;

  if(thisdiv.className == "hide")
    return; // cannot slide up something that is already hidden

  moving[objname] = true;
  dir[objname] = "up";

  thisdiv.style.opacity = 1;
  thisdiv.style.filter = '';

  startslide(objname);
}


function startslide(objname) {
  var thisdiv = document.getElementById(objname);

  obj[objname] = thisdiv;
  endHeight[objname] = parseInt(obj[objname].style.height);
  startTime[objname] = (new Date()).getTime();

  timerID[objname] = setInterval('slidetick(\'' + objname + '\');',timerlen);
}


function slidetick(objname){
  var thisdiv = document.getElementById(objname);
  var elapsed = (new Date()).getTime() - startTime[objname];

  if (elapsed > slideAniLen) {
    endSlide(objname)

  } else {
    var d =Math.round(elapsed / slideAniLen * endHeight[objname]);
    var f =elapsed / slideAniLen;

    if(dir[objname] == "up") {
      d = endHeight[objname] - d;
      f = 1 - f;
    }

    thisdiv.style.opacity = f;
    thisdiv.style.filter = 'alpha(opacity='+(f*100)+')';
  }

  return;
}


function endSlide(objname){
  var thisdiv = document.getElementById(objname);

  clearInterval(timerID[objname]);

  if(dir[objname] == "up"){
    thisdiv.setAttribute("class", "hide");
    thisdiv.setAttribute("className", "hide");

  } else {
    thisdiv.style.opacity = 1;
    thisdiv.style.filter = '';
  }

  delete(moving[objname]);
  delete(timerID[objname]);
  delete(startTime[objname]);
  delete(endHeight[objname]);
  delete(obj[objname]);
  delete(dir[objname]);
  delete(thisdiv);

  return;
}


/* Animated crossfade show/hide function */

function toggleSlide(objname){
  if(document.getElementById(objname).className == "hide"){
    // div is hidden, so let's slide down
    slidedown(objname);
  } else {
    // div is not hidden, so slide up
    slideup(objname);
  }
}


/* simple non-animated show/hide function */

function toggleDiv(divid) {
  if(document.getElementById(divid).className == "show"){
    document.getElementById(divid).setAttribute("class", "hide");
    document.getElementById(divid).setAttribute("className", "hide");
  } else {
    document.getElementById(divid).setAttribute("class", "show");
    document.getElementById(divid).setAttribute("className", "show");
  }
}


    
function signupSelect(type) {
  //flag the form with the signup type
  document.getElementById("signupform").type.value=type;

  //show/hide producer fields
  if(type == "producer") {
    slidedown("producersignup");
  } else {
    slideup("producersignup");
  }

  //update the background image to reflect the selected type
  document.getElementById("signupselect").setAttribute("class", "signupimg"+type);
  document.getElementById("signupselect").setAttribute("className", "signupimg"+type);
}


function selectUploadedfile(file_id, total_files, posted_file, ep_name) {
  j=0;

  for(i=1;i<=total_files;i++) {
    j++;

    if(j == 1) {
      new_class = "l1";
    } else {
      new_class = "l2";
      j=0;
    }

    document.getElementById('file' + i).setAttribute("class", new_class);
    document.getElementById('file' + i).setAttribute("className", new_class);
  }

  document.getElementById("file" + file_id).setAttribute("class","selected");
  document.getElementById("file" + file_id).setAttribute("className","selected");
  document.getElementById('posted_file').value= posted_file;
  document.getElementById('name').value= ep_name;
}




/* Page screen / Overlay functions */


function showScreenDiv(divid) {
  hideSelects();
  document.getElementById(divid).style.display="block";
  document.getElementById(divid).style.zIndex=9;
  document.getElementById('pagescreen').style.display="block";
  document.location.hash = "pagetop";
}


function hideScreenDiv(divid) {
  showSelects();
  document.getElementById(divid).style.display="none";
  document.getElementById('pagescreen').style.display="none";
  document.location.hash = "pagebody";
}


function hideSelects(){
  var elements = document.getElementsByTagName("select");
  for(i=0;i< elements.length;i++) {
    elements[i].style.visibility='hidden';
  }
}


function showSelects(){
  var elements = document.getElementsByTagName("select");
  for(i=0;i< elements.length;i++) {
    elements[i].style.visibility='visible';
  }
}


function copy(text2copy) {
  if (window.clipboardData) {
    window.clipboardData.setData("Text",text2copy);
  } else {
    var flashcopier = 'flashcopier';
    if(!document.getElementById(flashcopier)) {
      var divholder = document.createElement('div');
      divholder.id = flashcopier;
      document.body.appendChild(divholder);
    }
    document.getElementById(flashcopier).innerHTML = '';
    var divinfo = '<embed src="includes/_clipboard.swf" FlashVars="clipboard='+escape(text2copy)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
    document.getElementById(flashcopier).innerHTML = divinfo;
  }
}


function copyFieldData(divid) {
  var copy_field = document.getElementById(divid);

  copy_field.focus();
  copy_field.select();
  copy(copy_field.value);
}

