//////////////////////////////////////////////////////////////////////////////////
// BLIND DOWN FLASH MESSAGE
//////////////////////////////////////////////////////////////////////////////////
function check_flash() {
  if ($('flash')) { 
    $('flash').show();
    // new Effect.BlindDown('flash', {duration:.5});
    setTimeout("Effect.SlideUp('flash', {duration:.5})", 3000);
  }
}
Event.observe(window,"load",check_flash);


//////////////////////////////////////////////////////////////////////////////////
// CLEANUP FOR HTML IN INPLACE_EDITOR
//////////////////////////////////////////////////////////////////////////////////
Object.extend(Ajax.InPlaceEditor.prototype, {
    onLoadedExternalText: function(transport) {
        Element.removeClassName(this.form, this.options.loadingClassName);
        this.editField.disabled = false;
        this.editField.value = transport.responseText;
        Field.scrollFreeActivate(this.editField);
    }
});
Object.extend(Ajax.InPlaceEditor.prototype, {
    getText: function() {
        return this.element.childNodes[0] ? this.element.childNodes[0].nodeValue : '';
    }
});

//////////////////////////////////////////////////////////////////////////////////
// GIF ANIM FOR FILE UPLOAD
//////////////////////////////////////////////////////////////////////////////////
var loaderhtml = "<div class='loader'></div>";
var loaded=false;
var theform;

function hideFormFields() {
  var form = theform;
  form.getInputs().each(function(n) { 
    switch(n.readAttribute('type')) {
      case 'file':
        if ( BrowserDetect.browser != "Explorer") {
          new Insertion.After(n,loaderhtml);
        }
        n.hide();
        break;
      case 'submit':
        n.disable();
        n.value="Submitting...";
        n.style.fontStyle="Italic";
        break;
    }
  });
}

Event.observe(window,"load",function(n1){
 if(!loaded) {
  Element.getElementsBySelector(document, 'form').each(function(form){
    if (!form.readAttribute("onsubmit")) {
      // form.writeAttribute("onsubmit","return false;");
      Event.observe(form,"submit",function(myevent) {
        theform=form;
        if (/AppleWebKit|MSIE/.test(navigator.userAgent)) {
          new Ajax.Request("/ping/close", { asynchronous:false });
        }
        // form.submit();
        if ( BrowserDetect.browser != "Safari") {
          hideFormFields();
        }
      });
    }
  });
  // fix for firefox not showing the loading gif if it wasn't loaded/viewable yet
  if ( BrowserDetect.browser != "Explorer") {
    var objBody = document.getElementsByTagName("body").item(0);
    new Insertion.After(objBody.immediateDescendants().last(),loaderhtml);
    // new Insertion.After(Element.getElementsBySelector(document, 'body').eachimmediateDescendants().last(),loaderhtml);
    objBody.immediateDescendants().last().hide();
  }

//////////////////////////////////////////////////////////////////////////////////
// TOGGLER
//////////////////////////////////////////////////////////////////////////////////

  Element.getElementsBySelector(document, '.toggle').each(function(x){
    var legend = x.descendants().first();
    var title = legend.innerHTML;
    // legend.id = title+'_legend';
    var rnd = Math.random();
  	var rnd_key = String (rnd).substr(1,6);
    legend.id = rnd_key;
    var legid = legend.id;
    var hider = "<span id='"+legid+"_hider' class='toggle_hider'><a href='#' id='"+legid+"_hider_link'>"+title+"</a></span>";
    var shower = "<a href='#' class='toggle_shower' id='"+legid+"_shower'>"+title+"</a>";
    legend.innerHTML = shower;
    x.hide();
    // x.id = title+"_toggle";
    new Insertion.After(x,hider);
    Event.observe($(legid+"_hider_link"),"click",function(y){
      x.show();
      new Effect.Highlight(x);
      $(legid+"_hider").hide();
    })
    Event.observe($(legid+"_shower"),"click",function(y){
      x.hide();
      $(legid+"_hider").show();
    })
	});


  loaded=true;
}
});


//////////////////////////////////////////////////////////////////////////////////
// CALLBACK DURING SORT TO HANDLE PADDING ON LAST ELEMENT IN LIST
//////////////////////////////////////////////////////////////////////////////////
function update_sort_classes(id, count, options) {
  var selector = (options && options["selector"]) ? options["selector"] : "div";
  var first = (options && options["first"]) ? options["first"] : false;
  var index=0;
  $(id).getElementsBySelector(selector).each(function(n) {
    if (first) {
      if (index % count == 0) {
        n.addClassName('first');
      } else {
        n.removeClassName('first');
      }
    } else {
      if ((index+1) % count == 0) {
        n.addClassName('last');
      } else {
        n.removeClassName('last');
      }
    }
    index++;
  });
  // if ($('gallery-list-first')) {
  //   $('gallery-list-first').src = $(id).getElementsBySelector('div')[0].getElementsBySelector("img")[0].src.gsub(/tiny/,"display");
  // }
}

function toggleDivs(select, divclass) {
    Element.getElementsBySelector(document, 'div.'+divclass).each(function(x){
      x.hide();
    });
    if ($(divclass+'-'+select.value)) {
      $(divclass+'-'+select.value).show();
    }
}

//////////////////////////////////////////////////////////////////////////////////
// TURN EXTERNAL LINKS INTO NEW WINDOWS
//////////////////////////////////////////////////////////////////////////////////
function handleExternalLinks() { // function makes sure that external links open in new window
	var hostName = window.location.hostname;
  Element.getElementsBySelector(document, 'a').each(function(link){
		if(link.href.indexOf('http://') == 0 && link.href.indexOf(hostName) == -1 ) {
			var curTitle = (link.getAttribute("title")) ? link.getAttribute("title") + " - ": "";
			link.setAttribute("target", "_blank");
			if (curTitle != "opens in new window - ") {
			  link.setAttribute("title",  curTitle + "opens in new window");
		  }
		}
  });
}
Event.observe(window,"load",handleExternalLinks); 
