/*
 * General triggered behaviour on document load
 * (c)2005-2008 Mangrove BV
 */
var general_rules = {
    '#onestat_placeholder' : function() {
        var d=document;
        var sid=this.getClassParameter('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+'" >';
    },
		'#analytics_placeholder':function(){
		var sid=this.getClassParameter('sid');
		pageTracker = _gat._getTracker(sid);
		pageTracker._trackPageview();
	},
    '.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 = this.getClassParameters();
        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.zoomImage:click' : function(e) {

        /**
         * Event:  click
         * Action: open a zoomed in image
         */
        var images = this.select('img');
        var params = this.getClassParameters();
        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.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.faq_cat:click' : function(e) {
        /**
         * Event:  click
         * Action: 1. close all faq categories 
         * Action: 2. open the clicked category
         */
        var all_faqs = $$('.faqs');
        all_faqs.each (function(e){
            e.removeClassName('open');
        });   
        var params = Element.getClassParameters(this);
        Element.addClassName('faq_cat_'+ params.categoryID,'open');
        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.submit:click' : 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;
    },
    'a.link:click' : function(el){
        parts = this.id.match(/^(\w+)\_(\d+)$/);
        //alert(this.id+' {length:'+this.id.length+'}');
        if (parts!= null && parts[2] != null) {
            var ul_folder = $('ul_'+parts[2]);
            var li_folder = $('li_'+parts[2]);
            if(Element.hasClassName(ul_folder,'folder_inactive')){
                Element.addClassName(ul_folder,'folder_active');
                Element.removeClassName(ul_folder,'folder_inactive');
                Element.addClassName(li_folder,'folder_active');
                Element.removeClassName(li_folder,'folder_inactive');
            } else {
                Element.addClassName(ul_folder,'folder_inactive');
                Element.removeClassName(ul_folder,'folder_active');
                Element.addClassName(li_folder,'folder_inactive');
                Element.removeClassName(li_folder,'folder_active');
            }
            return false;
        }
        return true;
    }
  
}
Event.addBehavior(hyperlink_rules);

/**
 * Behaviour rules for form elements
 */

var form_rules = {
    'form.overlabel' : function() {
        Element.addClassName(this,'overlabel-apply');
        Element.removeClassName(this,'overlabel');

        var labels = this.getElementsByTagName('label');

        if (labels) {
            for (i=0;i<labels.length;i++) {

                Event.observe(labels[i],'click', function(e) {
                    var me = Event.findElement(e,'LABEL');
                    var field;
                    if (me.htmlFor) {
                        field = $(me.htmlFor);
                    } else {
                        field = $(me.getAttribute('for'));
                    }
                    if (field) {
                        field.focus();
                    }
                }, false);

                var field;

                if (labels[i].htmlFor) {
                    field = $(labels[i].htmlFor);
                } else {
                    field = $(labels[i].getAttribute('for'));
                }
                if (field.value != '') {
                    labels[i].style.textIndent = '-10000px';
                }
                Event.observe(field,'focus', function(e) {
                    var me = Event.element(e);
                    var label = $(me.id + '_label');
                    if (label) {
                        label.style.textIndent = '-10000px';
                    }
                }, false);
                Event.observe(field,'blur', function(e) {
                    var me = Event.element(e);
                    var label = $(me.id + '_label');
                    if (label) {
                        if (me.value == '') {
                            label.style.textIndent = '0px';
                        }
                    }
                }, false);
            }
        }
    },
    'form.auto_submit' : function(e) {
      this.submit();
    },
    'select.auto_submit:change' : function(e) {
      this.form.submit();
    },
    /**
     * 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' : 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' : 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');
            }
        }
    },
    '.default_value:blur' : function(e) {
        /**
         * Event:  blur
         * Action:
         *   - when empty set default value
         */
        if(this.value == ''){
            var params = Element.getClassParameters(this);
            if(params.default_value != ''){
                this.value = params.default_value;
                Element.addClassName(this,'auto_clear');
            } 
        }
    },
    '.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' : 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' : 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');
            }
        }
    }
}
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 FCK_rules = {
    '.FCK' : function(e) {
        /**
         * Event:  click
         * Action: open a popup window
         */
        var params = Element.getClassParameters(this);

        var oFCKeditor = new FCKeditor(this.id ) ;
        if (params.height) {
            oFCKeditor.Height = params.height;
        }            
        if (params.width) {
            oFCKeditor.Width = params.width;
        }
        if (params.toolbarset) {
            oFCKeditor.ToolbarSet = params.toolbarset;
        }
        if (params.basehref) {
            oFCKeditor.Config["BaseHref"] = params.basehref;
        }
        if (params.templates) {
            oFCKeditor.Config["TemplatesXmlPath"] = params.templates;
        }
        if (params.styles) {
            oFCKeditor.Config["StylesXmlPath"] = params.styles;
        }
        if (params.browser) {
            oFCKeditor.Config["LinkBrowser"] = true;
            oFCKeditor.Config["ImageBrowser"] = true;
            oFCKeditor.Config["FlashBrowser"] = true;
        }
        oFCKeditor.ReplaceTextarea(this.id) ;
    }
}
Event.addBehavior(FCK_rules);

var flash_rules = {
	'#flash-header-home': function(e) {
		var FO = {
			data: "/flash/header.swf",
      width: "990",
      height: "208",
			xi: "false",
      version: "7.0.0",
			params: {
				menu: "false",
				allowfullscreen: "false",
				wmode: "transparent"
			},
			attributes: {
	
			},
			flashvars: {
				home: "true"
			}
		};
		swfobject.embedSWF(FO.data, this.id, FO.width, FO.height, FO.version, FO.xi, FO.flashvars, FO.params, FO.attributes);
	},
	'#flash-header': function(e) {
		var FO = {
			data: "/flash/header.swf",
      width: "990",
      height: "208",
			xi: "false",
      version: "7.0.0",
			params: {
				menu: "false",
				allowfullscreen: "false",
				wmode: "transparent"
			},
			attributes: {
	
			},
			flashvars: {
				home: "false"
			}
    };
		swfobject.embedSWF(FO.data, this.id, FO.width, FO.height, FO.version, FO.xi, FO.flashvars, FO.params, FO.attributes);
	},
	'#flash-video-2': function(e){
		var version = "10.0.0";
		swfobject.registerObject(this.id, version);
	}
}
Event.addBehavior(flash_rules);