/* CONFIGURATION AREA */
/*
	browsers:
		IE - Microsoft Internet Explorer
		FF - FireFox
		Safari - Safari browser
		Opera - Opera browser
		all - includes IE, FF, Opera and Safari
		
	parentId:
		any existing Id attribute 
	tagName:
		any valid tag name
	tagPosition:
		all - all inner elements 
		children - first level children only
	className:
		any valid class name
*/
var browsers = 'all';
var config = {
	hovers: new Array(
		{
			parentId:'subscribe',
			tagName:'li',
			tagPosition:'children',
			className:'hover'
		}
	)
};

/* CODE AREA */

/* hovers */

var initHovers = function()
{
	for (var index in config.hovers){
		var conf = config.hovers[index];
		var topLevelElement = document.getElementById(conf.parentId);
		if (topLevelElement){
			var subElements = topLevelElement.getElementsByTagName(conf.tagName);
			for (var i = 0; i < subElements.length; i++){
				if (conf.tagPosition == 'all' || (conf.tagPosition == 'children' && subElements[i].parentNode.id == conf.parentId))
				{
					subElements[i].configIndex = index;
					subElements[i].onmouseover = function(){
						this.className += ' ' + config.hovers[this.configIndex].className;
					};
					subElements[i].onmouseout = function(){
						this.className = this.className.replace(config.hovers[this.configIndex].className,'');
					};
				}
			}
		}
	}
}

/* common */

var currentState = {};

var opera = window.opera;
var safari = navigator.appVersion.indexOf("Safari") != -1;
var ie = document.all && !window.opera;
var ff = navigator.userAgent.indexOf("Firefox") != -1;
var drag = null;
var slide_me = null;
var addEventEasy = function(browsers,event,initMethod)
{
	if (opera && (browsers.match(/Opera/) || browsers.match(/all/))) {
		window.addEventListener(event, initMethod, false);
	} else if (safari && (browsers.match(/Safari/) || browsers.match(/all/))) {
		window.addEventListener(event, initMethod, false);
	} else if (ie && (browsers.match(/IE/) || browsers.match(/all/))) {
		window.attachEvent("on" + event, initMethod);
	} else if (ff && (browsers.match(/FF/) || browsers.match(/all/))) {
		window.addEventListener(event, initMethod, false);
	} else if (!ie && !ff && !safari && !opera) {
		if (window.addEventListener){
			window.addEventListener(event, initMethod, false);
		}
		else if (window.attachEvent){
			window.attachEvent("on" + event, initMethod);
		}
	} 
}

addEventEasy(browsers,'load',initHovers);
var initScroller = function(){
	var scroller = $$('.scroll-bar div.scroll').pop();
		
	if (scroller){
		var knob = scroller.getElement('span');
		knob.setStyle('cursor', 'pointer');
		var content = $$('.box-scroll').pop();			
		var steps = content.getScrollSize().y - content.getSize().y;
		//var fx = new SmoothScroll(content);	
		if (steps<=0) {
			scroller.setStyle('display', 'none');
			return;
		}
		
		var slider = new Slider(scroller, knob , {
			steps: steps,
			mode : 'vertical',
			onChange: function(step){				
				content.scrollTo(0,step);
			}
		});	
		$$(content,scroller).addEvent('mousewheel', function(e){	
			e = new Event(e).stop();
			var step = slider.step - e.wheel * 30;	
			slider.set(step);					
		});
		
		var button_top = $$('#sroll_top').pop();
		var button_bottom = $$('#sroll_bottom').pop();
		/*
		button1.addEvent('click', function(e){
			(new Event(e)).stop();
			fx.scrollTo(block1.getLeft(),block1.getTop());
		});*/
		button_top.addEvent('click',function(e){
			slider.set(slider.step-10);
		});
		
		button_top.addEvent('mousedown',function(e){
			drag = (function(){slider.set(slider.step-8)}).periodical(50);
		});
		
		button_bottom.addEvent('mousedown',function(e){
			drag = (function(){slider.set(slider.step+8)}).periodical(50);
		});
		
		$$(button_bottom,button_top).addEvent('mouseup',function(e){
			$clear(drag);
		});
		
		$$(button_bottom,button_top).addEvent('mouseout',function(e){
			$clear(drag);
		});
		
		button_bottom.addEvent('click',function(e){
			slider.set(slider.step+10);
		});
		
		$$('a').each( function(item, index){
			var aid = item.getProperty('id');
			
			if(!aid) return;
			
				item.addEvent('click',function(e){
					$clear(slide_me);
					elem_dest = $( String(this.getProperty('id')).replace('to_', '') );
						if(elem_dest)
						{
							slide_me = (function(){
								dest_point = parseInt(elem_dest.getTop());
								if((dest_point>36) && (dest_point<58))
								{
									slider.set(slider.step+(dest_point-47))
									$clear(slide_me);
									return;
								}
								else
								{
									slider_step=(dest_point>47)?10:-10;
									
									if((slider.step+slider_step)>steps)
									{
										$clear(slide_me);
										return;
									}
									slider.set(slider.step+slider_step);
								}

							}).periodical(1);
						}	
					});
		});
		
			var searchString = new String(document.location);
			if(!searchString.test('jumpto'))
			return;
			var parts = searchString.split('jumpto=');
			var elem_dst_id = parts[1];
			elem_dst = $(elem_dst_id);
			if(elem_dst)
			{
				slide_me = (function(){
					dest_point = parseInt(elem_dst.getTop());
					if((dest_point>36) && (dest_point<58))
					{
						slider.set(slider.step+(dest_point-47))
						$clear(slide_me);
						return;
					}
					else
					{
						slider_step=(dest_point>47)?10:-10;
						
						if((slider.step+slider_step)>steps)
						{
							$clear(slide_me);
							return;
						}
						slider.set(slider.step+slider_step);
					}
		
				}).periodical(1);
			}
	}
}
var initPage = function(){
	
	$$('div.sf_div').each(function(elem,key){
		elem.addEvent('mouseover',function(){
			this.addClass('sf_div_hover');
		});
		
		elem.addEvent('mouseout',function(){
			this.removeClass('sf_div_hover');
		});
		
		elem.addEvent('click',function(){
			window.location.href = this.getFirst().getProperty('href'); 
		});
	})
	
}

window.addEvent('domready',initPage);
window.addEvent('load',initScroller);

//window.addEvent('domready',function() { new SmoothScroll({ duration: 1800 }); });