var Ayz = Ayz || {};

Ayz.AjaxTabs = new Class({
	Implements: [Options, Events],
	/*

	*/
	options: {
		startIndex: 0,
		cookieName: ""
	},	
	initialize: function(tabs, contentBox, options){
		this.setOptions(options);
		this.tabs = $$("#" + tabs +' li');
		this.tabsA = $$("#" + tabs + ' a');
		this.contentBox = $(contentBox);
		this.createTabs();
		if(this.options.cookieName != "" && getCookie(this.options.cookieName) != null){
			this.activateTab(getCookie(this.options.cookieName));
		}
		else{
			this.activateTab(this.options.startIndex);
		}
		return this;
	},
	createTabs: function(){
		this.tabsA.each(function(tab,index){
			tab.addEvent('click', function(event){ 
				event.stop();
				this.activateTab(index);
				//this.stop();
			}.bind(this));
		 }.bind(this));
	},
	activateTab: function(index,url,force){
		index = parseInt(index);
		if(this.currentTab != undefined && this.currentTab != null && this.currentTab != index ){
			this.tabs[this.currentTab].removeClass("active");
		}
		
		if(this.currentTab != index || force == true){
			this.currentTab = index;
			this.tabs[this.currentTab].addClass("active");
			
			var contentBox = this.contentBox;
			
			contentBox.innerHTML = "";
			contentBox.removeClass('tabContent');
			contentBox.addClass('tabContentLoading');
			
			function requestComplete(result){
				contentBox.removeClass('tabContentLoading');
				contentBox.addClass('tabContent');
				contentBox.innerHTML = result;
			}

			if(url == undefined || url == ""){url = this.tabsA[this.currentTab].href;}
			var request = new Request({url: url, method: "get", onSuccess: requestComplete, evalScripts: true, noCache: true});
			request.send();

			//this.contentBox.load(this.tabsA[this.currentTab].href);
			
			if(this.options.cookieName != ""){
				setCookie(this.options.cookieName, this.currentTab)
			}
		}
	}
});

Ayz.ScrollObject = new Class({
 
	options : {
		duration: 300,
		transition: 'sine:out',
		link: 'chain'
	},
 
	initialize : function(id,options){
		this.fixed = $(id);
		this.options = options ? options : this.options;
 
		this.offset = this.fixed.getPosition().y;
		this.fx = new Fx.Morph(this.fixed, this.options);
		//this.fx = new Fx.CSS(this.fixed, 'top', this.options);
 
		window.addEvent('scroll',this.scrolled.bind(this));
	},
 
	scrolled : function(){
		this.fx.cancel();		
		this.fx.start({'top': [this.fixed.style.top, this.offset + window.getScrollTop()]});
	}
});


Ayz.SlidingText = new Class({
	Implements: [Options, Events],
	/*

	*/
	options: {
		autoOpen: false,
		toggleOpenCloseVisibility: true
	},
	initialize: function(textID, openID, closeID, changeFunc, options){
		this.setOptions(options);

		this.textBox = $(textID);
		this.openBtn = $(openID);
		this.closeBtn = $(closeID);

		var slideFX = new Fx.Slide(this.textBox);
		this.textBox.style.display = "none";

		this.openBtn.addEvent('click', function(e){
			e.stop();
			$(textID).style.display = "block";
			$(openID).style.display = "none";
			$(closeID).style.display = "inline";
			slideFX.slideIn();
		});
	
		this.closeBtn.addEvent('click', function(e){
			e.stop();
			$(openID).style.display = "inline";	
			$(closeID).style.display = "none";
			slideFX.slideOut();
		});
		
		if(this.options.autoOpen == false){
			slideFX.hide();	
		}
		
		options = this.options;
		
		slideFX.addEvent('complete', function(){

			if(options.toggleOpenCloseVisibility){
				if(slideFX.open){

				}
				else{
					$(textID).style.display = "none";
				}
			}
			changeFunc();
		});
	}
});


Ayz.LegalSlider = new Class({
	Implements: [Options, Events],
	/*
	*/
	options: {
		autoOpen: false
	},
	initialize: function(textID, openID, closeID, changeFunc, options){
		this.setOptions(options);

		this.textBox = $(textID);
		this.openBtn = $(openID);
		this.closeBtn = $(closeID);

		var slideFX = new Fx.Slide(this.textBox);
		this.textBox.style.display = "none";

		this.openBtn.addEvent('mouseover', function(e){
			e.stop();
			slideFX.slideIn();
		});

		this.closeBtn.addEvent('mouseout', function(e){
			e.stop();
			slideFX.slideOut();
		});

		if(this.options.autoOpen == false){
			slideFX.hide();	
		}

		options = this.options;

		slideFX.addEvent('complete', function(){
			changeFunc();
		});
	}
});
