/////
// start rewrite lanugage dropdown
////////////////////////////////////
rewriteQuickfinder = function(){
	if(document.getElementById && document.getElementById('quickfinder')) {
		this.Node = document.getElementById('quickfinder').getElementsByTagName('form')[0];
		this.Wrapper = document.getElementById('quickfinder');
		this.Options = this.Node.getElementsByTagName('option');
		this.Label = document.createElement("span");
			this.LabelText = document.createTextNode(this.Node.title);
			this.Label.appendChild(this.LabelText);
		this.Label
		this.NewList = document.createElement("ul");
		for(i=0; i < this.Options.length; i++) {
			newLi = document.createElement("li");
				if(i == 0) {
					newLi.className = "first";
				}else if(i == this.Options.length-1) {
					newLi.className = "last";
				}
				newLiLink = document.createElement("a");
					newLiLink.href = this.Options[i].value;
					newLinkText = document.createTextNode(this.Options[i].text);
					newLiLink.appendChild(newLinkText);
				newLi.appendChild(newLiLink);
			this.NewList.appendChild(newLi);
		}
		this.Wrapper.replaceChild(this.Label, this.Node);
		this.Wrapper.appendChild(this.NewList);
		this.Wrapper.className = "";
		this.Wrapper.onmouseover = function() {
			this.className += " mgHover";
			this.getElementsByTagName('ul')[0].style.display = "block";
		}
		this.Wrapper.onmouseout = function() {
			this.className = "";
			this.getElementsByTagName('ul')[0].style.display = "none";
		}
		this.Wrapper.onmouseout();
	}
};



/////
// getelementybyclassname
////////////////////////////////////
document.getElByClass = function(className, tagName)
{
 var elementsByClassName = [];
 if (this.getElementsByTagName)
 {
  var elements = (tagName) ? this.getElementsByTagName(tagName) : this.all || this.getElementsByTagName('*');
  for (var i = 0, ii = elements.length; i < ii; i++)
  {
   var element = elements[i];
   var elementClassName = element.className;
   var elementHasClassName = false;
   if (className == elementClassName)
   {
    elementHasClassName = true;
   }
   else if (elementClassName.indexOf(' ') != -1)
   {
    var elementClassNames = elementClassName.split(' ');
    for (var k = 0, kk = elementClassNames.length; k < kk; k++)
    {
     if (className == elementClassNames[k])
     {
      elementHasClassName = true;
      break;
     }
    }
   }
   if (elementHasClassName)
   {
    elementsByClassName.push(element);
   }
  }
 }
 return elementsByClassName;
};


/////
// newsticker in prototype by bartleme
////////////////////////////////////
// Create namespace
if (at == undefined) var at = {};
if (at.bartelme == undefined) at.bartelme = {};

// Newsticker Class
at.bartelme.newsticker = Class.create();
at.bartelme.newsticker.prototype = {
	initialize: function()
	{
		// Get elements
		this.interval = 8000;
		this.container = $("ticker");
    if (!this.container)
		{
			return false;
		}
		this.messages  = $A(this.container.getElementsByTagName("li"));
		this.number_of_messages = this.messages.length;
		if(this.number_of_messages == 1) {
			return false;
		}else if(this.number_of_messages == 0) {
		  this.showError();
			return false;
		}
		this.current_message = 0;
		this.previous_message = null;
		// Create toggle button (disabled) 
		/*
		this.toggle_button = document.createElement("a");
		this.toggle_button.href = "#";
		this.toggle_button.id = "togglenewsticker";
		this.toggle_button.innerHTML = "Toggle";
		Event.observe(this.toggle_button, "click", this.toggle.bindAsEventListener(this), false);
		this.container.appendChild(this.toggle_button);
		*/
		this.hideMessages();
		this.showMessage();
		// Install timer
		this.timer = setInterval(this.showMessage.bind(this), this.interval);
  	},
	showMessage: function()
	{
		Effect.Appear(this.messages[this.current_message]);
		setTimeout(this.fadeMessage.bind(this), this.interval-2000);
		if (this.current_message < this.number_of_messages-1)
		{
			this.previous_message = this.current_message;
			this.current_message = this.current_message + 1;
		} else {
			this.current_message = 0;
			this.previous_message = this.number_of_messages - 1;
		}
	},
	fadeMessage: function()
	{
		Effect.Fade(this.messages[this.previous_message]);
	},
	hideMessages: function()
	{
		this.messages.each(function(message)
		{
			Element.hide(message);
		})
	},
	/*
	toggle: function()
	{
		Effect.BlindUp(this.container, 1000);
	},
	*/
	showError: function()
	{
		if (this.container.getElementsByTagName("ul").length == 0)
		{
			this.list = document.createElement("ul");
			this.container.appendChild(this.list);
		} else {
			this.list = this.container.getElementsByTagName("ul")[0];
		}
		this.errorMessage = document.createElement("li");
		this.errorMessage.className = "error";
		this.errorMessage.innerHTML = "Could not retrieve data";
		this.list.appendChild(this.errorMessage);
	}
}


/////
// link rewriter (and functions) for barrier free iFrame links
////////////////////////////////////
loadIframeLink = function() {
  host = location.href.split("#")[0];
  vars = location.href.split("#")[1];
  if(vars) {
    if($('iframelink')) {
      frametarget = vars.split("frametarget=")[1];
      allowed = false;
      for (i = 0; i < arrAllowedUrls.length; i++) {
        if (frametarget.indexOf(arrAllowedUrls[i])==0) {
          allowed = true;
          break;
        }
      }
      if (allowed) {
        $('iframelink').writeAttribute('src',frametarget);
        $('iframelink').focus();
      }else {
        alert("The entered URL is not allowed.")
        return false;
      }
    }else{
      alert('There is no target iFrame for this Link on this page');
    }
  }    
}

compareLinkAndLocationAndLoad = function(event) {
  var el = event.element();
  el.addClassName('clicked');
  link = el.href.split("#")[0] ? el.href.split("#")[0] : el.href;
  if((location.href == link) || (location.href.split("#")[0] == link)) {
    setTimeout(loadIframeLink,400); // delay needed for setting the #-url params
  }
};

var linkRewriter = Class.create();
linkRewriter.prototype = {
    initialize: function(ctrl) {
        this.ctrl = ctrl;
    		this.linksToRw = $$('#content a([href*=#iframelink])');
    		this.rewriteLinks();
    },
  	rewriteLinks: function()
  	{
  	  this.linksToRw.each(function (el) {
        rewrittenlocation = el.href.split("opener=")[1] + "#iframelink|frametarget=" + el.href.split("#")[0];
        el.href = rewrittenlocation;
        el.observe('click', compareLinkAndLocationAndLoad);
      });
  	}
}

/////////
// add a reset button to powermail file upload
//////////////////////
clearFileInput=function(raw_id)
{ 
    
    var input_id=raw_id.match(/uid\d+/);
    var oldInput = document.getElementById(input_id); 
     
    var newInput = document.createElement("input"); 
     
    newInput.type = "file"; 
    newInput.id = oldInput.id; 
    newInput.name = oldInput.name; 
    newInput.className = oldInput.className;  
    // copy any other relevant attributes
    newInput.size = oldInput.size; 
    newInput.tabIndex = oldInput.tabIndex; 

    oldInput.parentNode.replaceChild(newInput, oldInput); 
}


