var rAccordion = new Class({
	
	initialize: function(container, toggleClass, elementClass, options){
		this.container = container;
		this.tClass = toggleClass;
		this.eClass = elementClass;
		this.options = options;
		this.selector = '#' + this.container + ' > .';
		this.makeAccordion();
	},
	
	makeAccordion: function(){
		new Accordion(
			$$(this.selector+this.tClass),
			$$(this.selector+this.eClass),
			this.options
		).addEvents({
			// The onActive and onComplete events added to the stack here to
			// attempt to address some of the css issues.
			'onActive': function(toggle){
				if(toggle.getParent().getStyle('height') != 0)
					toggle.getParent().setStyle('height', '');
			},
			'onComplete': function(a){
				if ($defined(a)) {
					var height = 0;
					a.getParent().getChildren().each(function(e){
						height = height + e.offsetHeight;
					});
					if(height != a.getParent().offsetHeight && a.getParent().offsetHeight != 0)
						a.getParent().setStyle('height','');
				}
			}
		});
		this.selector += this.eClass + ' > .';
		if($defined($$(this.selector)[0]))
			this.makeAccordion();
	}
	
});

function strstr( haystack, needle, bool ) {
    var pos = 0;
    haystack += '';
    pos = haystack.indexOf( needle );
    if( pos == -1 ){
        return false;
    } else{
        if( bool ){
            return haystack.substr( 0, pos );
        } else{
            return haystack.slice( pos );
        }
    }
}

var OpenLinks = new Class({
	initialize: function(file_extensions,override_targets,target,no_class) {
		$$('a').each(function(el) {
			//check each href for case-insensitive file extensions
			var str = el.get('href');
			if (str != null) {
				var ext = str.substring(str.lastIndexOf('.') + 1,str.length);
				if((strstr(str, 'http') || file_extensions.contains(ext.toLowerCase())) && ((override_targets || !el.get('target')) && !el.hasClass(no_class)))
				{
					el.setProperty('target',target ? target : '_blank');
				}
			}
		});
	}
});

/* classes */
var ZebraTables = new Class({
	//initialization
	initialize: function(table_class) {
		//add table shading
		$$('table.' + table_class + ' tr').each(function(el,i) {
			//do regular shading
			var _class = i % 2 ? 'even' : 'odd'; el.addClass(_class);
			//do mouseover
			el.addEvent('mouseenter',function() { if(!el.hasClass('highlight')) { el.addClass('mo').removeClass(_class); } });
			//do mouseout
			el.addEvent('mouseleave',function() { if(!el.hasClass('highlight')) { el.removeClass('mo').addClass(_class); } });
			//do click
			el.addEvent('click',function() {
				//click off
				if(el.hasClass('highlight'))
				{
					el.removeClass('highlight').addClass(_class);
				}
				//click on
				else
				{
					el.removeClass(_class).removeClass('mo').addClass('highlight');
				}
			});
		});
	}
});

window.addEvent('domready', function() {
	
	var olinks = new OpenLinks(['doc','pdf','xls','jpg','gif','png', 'pps', 'ppt', 'zip', 'swf', 'gif', 'doc'],1,'_blank','no-target');
	
	if ($chk($('captcha_img'))) {
		$('reload_captcha').addEvent('click', function(e){
			reload_captcha();
			return false;
		});
	}
	
	var myMenu = new MenuMatic({stretchMainMenu:true,matchWidthMode:true,orientation:'horizontal',opacity:80,fixHasLayoutBug:true});
	
	// tree
	if ($chk($('tree'))) {
		new rAccordion('tree', 'rtoggle', 'relement', {
			alwaysHide: true,
			opacity: false,
			onActive: function(e){
				e.addClass('active');
			},
			onBackground: function(e){
				e.removeClass('active');
			}
		});
	}
	
	// resize images
	if ($chk($$('div.block'))) {
		$$('div.block').each(function(box){
			box.getElements('img').each(function(el) { 
				var img = el.getDimensions();
				var parent = el.getParent();
				var main = parent.getDimensions();
				if (main.width < img.width) {
					main.width = main.width - ((parent.getStyle('padding').toInt() + 1) * 2);
					ratio = img.height / img.width;       		   
					el.setProperties({width: main.width,height: main.width * ratio});
				}
			});
		});
	}
	
	
	// zebra table
	if ($chk($$('zebra'))) {
		var zTables = new ZebraTables('zebra');
	}
	
	ajaxed('carter', 'cart');
	
	if ($chk($('cartform'))) {
		new FormCheck('cartform');
	}
});

var ajaxed = function(which, to_update) {
	if ($chk($$('.'+which))) {
		$$('.'+which).addEvent('click', function(e){
			e.stop();
			var req = new Request.HTML({
				method: 'get', 
				url: this.get('href'),
				update: $(to_update)
			}).send();
		});
	}
}

var submitform = function(id_form, id_container) {
	var APop = new Fx.Slide(id_container);
	var req = new Request.HTML({
		method: 'post',
		url: $(id_form).get('action'),
		data: $(id_form),
		update: $(id_container),
		onComplete: function() {
			APop.hide().show();
		}
	}).send();
}

var close_pop = function(id_pop) {
	var Pop = new Fx.Slide(id_pop);
	Pop.toggle();
}

/* contacts */
var c = 0
var reload_captcha = function() {
	c = c + 1;
	var src = $('reload_captcha').get('href');
	$('captcha_img').dispose();
	
	var newcha = new Element('img', {
		'id': 'captcha_img',
		'src': src + '/' + c,
		'alt': 'captcha'
    });
	newcha.inject('cha', 'top');
}




