
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;
		});
	}
	
	// zebra table
	if ($chk($$('zebra'))) {
		var zTables = new ZebraTables('zebra');
	}
	
	// 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,margin:0});
				}
			});
		});
	}
	
	if ($chk($('milkbox'))) {
		milkbox.setAutoPlay([
			{gallery:'zoom', autoSize:true, autoplay:true, delay:5}
		]);
	}
	
	if ($chk($('antispam'))) {
		$('antispam').dispose();
	}
	
	// unique_pop
	enable_pop('unique_pop', 'u_pop');
	
});

var enable_pop = function(div, link) {
	if ($chk($(div))) {
		var UPop = new Fx.Slide(div, {duration: 2000, transition: Fx.Transitions.Pow.easeOut});
		UPop.hide();
		if ($chk($$('.'+link))) {
			$$('.'+link).addEvent('click', function(e){
				e.stop();
				var req = new Request.HTML({
					method: 'get', 
					url: this.get('href'),
					update: $(div),
					onRequest: function() {
						UPop.show().hide();
					},
					onComplete: function() {
						UPop.toggle();
						window.scrollTo(0, 0);
					}
				}).send();
			});
		}
	}
}

var disabling = function(name) {
	document.getElementsByName(name).disabled = 1;
}

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');
}

