Event.addBehavior.reassignAfterAjax = true;
/**
 * General triggered behaviour on document load
 */
var general_rules = {
    '#onestat_placeholder' : function() {
        var d=document;
        var sid=Element.getClassParameter(this,'sid');
        var CONTENTSECTION="";
        var CUSTOMDATA="";
        var osp_URL=d.URL;
        var osp_Title=d.title;
        var t=new Date();
        var p="http"+(d.URL.indexOf('https:')==0?'s':'')+"://stat.onestat.com/stat.aspx?tagver=2&sid="+sid;
        p+="&url="+escape(osp_URL);
        p+="&ti="+escape(osp_Title);
        p+="&section="+escape(CONTENTSECTION);
        p+="&custom="+escape(CUSTOMDATA);
        p+="&rf="+escape(document.referrer);
        p+="&tz="+escape(t.getTimezoneOffset());
        p+="&ch="+escape(t.getHours());
        p+="&js=1";
        p+="&ul="+escape(navigator.appName=="Netscape"?navigator.language:navigator.userLanguage);
        if(osp_URL!=d.URL) p+="&ol="+escape(d.URL);
        if(typeof(screen)=="object"){
           p+="&sr="+screen.width+"x"+screen.height;p+="&cd="+screen.colorDepth;
           p+="&jo="+(navigator.javaEnabled()?"Yes":"No");
        }
        this.innerHTML='<img id="ONESTAT_TAG" width="1" height="1" src="'+p+'" >';
    },
    '.hilite_keywords' : function() {
       var hiliter = new KeywordHiliter("ajax.php",this);
       hiliter.options.elementTag = 'ABBR';
       hiliter.fetchKeywords();
    },
    '.no_javascript' : function() {
      this.hide();
    },
    '.show_no_javascript' : function() {
      this.show();
    }
}
Event.addBehavior(general_rules);


/**
 * Rules for hyperlink behaviour
 */
var hyperlink_rules = {
    'a.void:click' : function(e) {
      return false;
    },

    'a.popup:click' : function(e) {

        /**
         * Event:  click
         * Action: open a popup window
         */
        var params = Element.getClassParameters(this);
        var width = params.width || 684;
        var height = params.height || 350;
        var top = params.top || 200;
        var left = params.left || '50%';
        window.open(this.href,
            'PopUp',
            'width=' + width + ',height=' + height + ',top=' + top + ',left=' + left + ',scrollbars=0,status=no,resizable=0,toolbar=0,titlebar=0,menubar=0,location=0');
        return false;
    },

    'a.external:click' : function(e) {

        /**
         * Event:  click
         * Action: open a new window
         */
        if (!e.ctrlKey && !e.altKey && !e.shiftKey) {
          window.open(this.href);
          return false;
        }
    },

    'a.status:mouseover' : function(e) {

        /**
         * Event:  mouseover
         * Action: display the hyperlinks title in the status bar
         */
        window.status=this.title;
        return true;
    },

    'a.status:mouseout' : function(e) {

        /**
         * Event:  mouseout
         * Action: clear the status bar
         */
        window.status='';
        return true;
    },

    'a.switch:click': function(e) {
        /**
         * Event:  click
         * Action: show / hide the tab with the same ID minus "_switch"
         */
        var c = $(this.id.replace('_switch',''));
        var content = $(c.id + '_content');
        if (c) {
          c.toggle();
        }
        return false;
    },

    'a.tabswitch:click' : function(e) {
        /**
        * Event: click
        * Action: hide related div, show related div's related element
        */
        var container = $(this.getAttribute('rel'));
        if(container) {
          var other = $(container.getAttribute('rel'));
          if (other) {
            container.addClassName('hide');
            other.removeClassName('hide');
          }
        }
        return false;
    },
    'a.faq:click' : function(e) {
        /**
         * Event:  click
         * Action: 1. close all answers 
         * Action: 2. open the answer on the clicked question
         */
        var all_answers = $$('.answer');
        all_answers.each (function(e){
            e.removeClassName('open');
        });   
        var params = Element.getClassParameters(this);
        Element.addClassName('faq_'+ params.faqID,'open');
        return false;
    },
    'a.submit' : function(e) {
        /**
        * Event: click
        * Action: submit the form given as a param. (used by captcha)
        */
        var params = Element.getClassParameters(this);
        var form = $(params.form);
        if (form){
          form.submit();
        }
        return false;
    }
}
Event.addBehavior(hyperlink_rules);

/**
 * Behaviour rules for form elements
 */

var form_rules = {
    'form.auto_submit' : function(e) {
      this.submit();
    },
    'select.auto_submit:change' : function(e) {
      this.form.submit();
    },
    'form.external:submit' : function(e) {

        /**
         * Event:  click
         * Action: open a new window
         */
        if (!e.ctrlKey && !e.altKey && !e.shiftKey) {
          //window.open(this.action);
          //return false;
        }
    },
    /**
     * Event:  blur
     * Action: convert field value to upper case
     */
    'input.auto_upper:blur' : function(e) {
      this.value = this.value.toUpperCase();
    },

    /**
     * Event:  change
     * Action: convert field value to upper case
     */
    'input.auto_upper:change' : function(e) {
      this.value = this.value.toUpperCase();
    },

    'input.auto_blur:focus, textarea.auto_blur:focus' : function(e) {

      /**
       * Event:  focus
       * Action:
       *   - replace field's classname from "_off" to "_on"
       *   - if labeled, replace label's classname from "_off" to "_on"
       *   - if label is image, replace image with "_hover" version
       */
        this.className = this.className.replace('_off','_on');
        var fieldLabel = $(this.id + '_label');
        if (fieldLabel) {
            fieldLabel.className = fieldLabel.className.replace('_off','_on');
            var image = fieldLabel.getElementsByTagName('img')[0];
            if (image) {
                image.src = image.src.replace('_normal','_hover');
            }
        }
    },
    'input.auto_blur:blur, textarea.auto_blur:blur' : function(e) {

        /**
         * Event:  blur
         * Action:
         *   - replace field's classname from "_on" to "_off"
         *   - if labeled, replace label's classname from "_on" to "_off"
         *   - if label is image, replace image with "_normal" version
         */
        this.className = this.className.replace('_on','_off');
        var fieldLabel = $(this.id + '_label');
        if (fieldLabel) {
              fieldLabel.className = fieldLabel.className.replace('_on','_off');
            var image = fieldLabel.getElementsByTagName('img')[0];
            if (image) {
                image.src = image.src.replace('_hover','_normal');
            }
        }
    },
    '.auto_clear:focus' : function(e) {

        /**
         * Event:  focus
         * Action:
         *   - clear value
         *   - remove auto_clear class
         */
        if (Element.hasClassName(this,'auto_clear')) {
            this.value='';
        }
        Element.removeClassName(this,'auto_clear');
    },
    'input.auto_blur_multiple:focus, textarea.auto_blur_multiple:focus' : function(el) {

      /**
       * This is the multiple variant of auto_blur. It will highlight the
       * label of replace the image. The id of the label must be the same
       * as the id of the field, minus the last underscore and digits.
       * Now you can do those fancy multiple fields with one label :)
       */
        this.className = this.className.replace('_off','_on');
        var fieldLabel = $(this.id.sub(/_\d+$/, '') + '_label');
        if (fieldLabel) {
            fieldLabel.className = fieldLabel.className.replace('_off','_on');
            var image = fieldLabel.getElementsByTagName('img')[0];
            if (image) {
                image.src = image.src.replace('_normal','_hover');
            }
        }
    },
    'input.auto_blur_multiple:blur, textarea.auto_blur_multiple:blur' : function(el) {
        this.className = this.className.replace('_on','_off');
        var fieldLabel = $(this.id.sub(/_\d+$/, '') + '_label');
        if (fieldLabel) {
            fieldLabel.className = fieldLabel.className.replace('_on','_off');
            var image = fieldLabel.getElementsByTagName('img')[0];
            if (image) {
                image.src = image.src.replace('_hover','_normal');
            }
        }
    },
    'input.rollover:mouseover' : function(el) {

        /**
         * Event:  mouseover
         * Action:
         *   - if not "active", replace classname by "_hover" classname
         *   - if type is "image", replace image by "_hover" version
         */
        if (!Element.hasClassName(this,'active')) {
            this.className = this.className.replace('_normal','_hover');
            if (this.type == 'image') {
                this.src = this.src.replace('_normal','_hover');
            }
        }
    },
    'input.rollover:mouseout' : function(e) {
        /**
         * Event:  mouseout
         * Action:
         *   - replace classname by "_hover" classname
         *   - if type is "image", replace image by "_hover" version
         */
        if (!Element.hasClassName(this,'active')) {
            this.className = this.className.replace('_hover','_normal');
            if (this.type == 'image') {
                this.src = this.src.replace('_hover','_normal');
            }
        }
    },
	'input.vacature_filter:click' : function(e) {
        /**
         * Event:  click
         * Action:
         *   - if labeled, replace label's classname from "_on" to "_off" or backwards
         *   - renew resultset with an ajax call
         */
        var fieldLabel = $(this.id + '_label');
        if (this.checked){
            this.className = this.className.replace('_off','_on');
            if (fieldLabel) {
                fieldLabel.className = fieldLabel.className.replace('_off','_on');
            }
        } else {
            this.className = this.className.replace('_on','_off');
            if (fieldLabel) {
                fieldLabel.className = fieldLabel.className.replace('_on','_off');
                Element.removeClassName(fieldLabel,'active');
            }
        }
    }
}
Event.addBehavior(form_rules);

var rollover_rules = {
    'img.rollover:mouseover' : function(el) {
      /**
       * Event:  mouseover
       * Action: show hover version
       */
      this.src = this.src.replace('_normal','_hover');
      return false;
    },
    'img.rollover:mouseout' : function(el) {
      /**
       * Event:  mouseout
       * Action: show normal version
       */
      this.src = this.src.replace('_hover','_normal');
      return false;
    }
}
Event.addBehavior(rollover_rules);

var flash_rules = {
    '#header_flash' : function() {
			var menu = $('menu');
      if (menu) {
        var menuitems = $('menu').getElementsByTagName('A');
        var flashvars = "menu_total=" + menuitems.length;
        $A(menuitems).each (function (el, index){
          var itemnr = index+1;
          flashvars += "&menu_name" + itemnr + "=" + escape(el.title);
          flashvars += "&menu_url" + itemnr + "=" + escape(el.href);
          if(el.id == 'menu_active'){
            flashvars += "&menu_active=" + itemnr;
          }
        });
		    flashvars += "&palette=" + Element.getClassParameter(this,"palette");
				
				flashvars += "&assistant_total=" + Element.getClassParameter(this,"total_assistants");
				var i=1;
				while (i<=Element.getClassParameter(this,"total_assistants")) {
          flashvars += "&assistant_name" + i + "=" + Element.getClassParameter(this,"name"+i);
					flashvars += "&assistant_url" + i + "=" + Element.getClassParameter(this,"url"+i);
					i=i+1;
				};
				
      }
      var FO = {
        movie:"/flash/header_home.swf",
        width:"952",
        height:"505",
        menu:"false",
        id: "flash_header_home",
        flashvars: flashvars,
        xi:"false",
        majorversion:"9",
        build:"0",
        wmode:"transparent",
        allowscriptaccess:"sameDomain",
        allowfullscreen:"false"
      };
      UFO.create(FO, this.id);
    },
    '#menu' : function() {
      var menuitems = this.getElementsByTagName('A');
      var flashvars = "total=" + menuitems.length;
      $A(menuitems).each (function (el, index){
        var itemnr = index+1;
        flashvars += "&name" + itemnr + "=" + escape(el.title);
        flashvars += "&url" + itemnr + "=" + escape(el.href);
        if(el.id == 'menu_active'){
          flashvars += "&active=" + itemnr;
        }
      });
      flashvars += "&palette=" + Element.getClassParameter(this,"palette");
	  
      var FO = {
        movie:"/flash/header_next.swf",
        width:"546",
        height:"388",
        menu:"false",
        id: "flash_header_next",
        flashvars: flashvars,
        xi:"false",
        majorversion:"9",
        build:"0",
        wmode:"transparent"
      };
      UFO.create(FO, this.id);
    }
}
Event.addBehavior(flash_rules);

var change_hover_rules = {
    'a.change_hover:mouseover' : function(el) {
        /**
         * Event:  mouseover
         * Action: show message
         */
        var params = Element.getClassParameters(this);
        // adjustments for FF3 - backwards compatible for IE and FF2
        //var notes = document.getElementsByClassName(params.selection);
        var notes = $$('.' + params.selection);
        notes.each (function(e){
            if (!e.hasClassName('hidden')){
                e.addClassName('hidden');
            }
        });
               
        var note = $(params.selectionID);
        //alert(note.id);
        note.removeClassName('hidden');
        
        if (params.restore){
        var orgnotes = $$('.'+params.restore);
            orgnotes.each (function(e){
                e.removeClassName('hidden');
            });                 
        }        
        if (params.hide){
            $(params.hide).addClassName('hidden');
        }
        return false;
    },
    'a.news_hover:mouseover' :function(e){
        var notes = $$('.active');
        notes.each (function(e){
                e.removeClassName('active');
        });       
        this.addClassName('active');
    }
}
Event.addBehavior(change_hover_rules);
