var Site = function() {

	return {
		imgRoot : '',

		init : function() {

			if (Browser.Engine.trident4) {
				$$('body').addClass('IE6');
			} else if (Browser.Engine.trident5) {
				$$('body').addClass('IE7');
			} else if (Browser.Engine.gecko) {
				$$('body').addClass('FF');
			}

			
			var myrules = {
				'form#frm' : function(element) {
					$(element).addEvent('submit', function(evt) {
					    if(this.getElement('input[type="text"]').value.trim() == "Username")
					    {
					        alert("Please enter Username.");
					        return false;
					    }
					    
					    if(this.getElement('input[type="text"]').value.trim() == "")
					    {
					        alert("Please enter Username.");
					        return false;
					    }
					    
					    if(this.getElement('input[type="password"]').value.trim() == "Password")
					    {
					        alert("Please enter Password.");
					        return false;
					    }
					    
					    if(this.getElement('input[type="password"]').value.trim() == "")
					    {
					        alert("Please enter Password.");
					        return false;
					    }
					    
					});
				}
			};

			Behaviour.register(myrules);
		},

		makeRound : function(element, outCls, removeCls) {

			var roundDiv = new Element('div', {
				'class' : outCls
			});

			var ml = new Element('div', {
				'class' : 'ml'
			});
			var mr = new Element('div', {
				'class' : 'mr'
			});
			var mc = new Element('div', {
				'class' : 'mc'
			});

			var tl = new Element('div', {
				'class' : 'tl'
			});
			var tr = new Element('div', {
				'class' : 'tr'
			});
			var tc = new Element('div', {
				'class' : 'tc'
			});

			var bl = new Element('div', {
				'class' : 'bl'
			});
			var br = new Element('div', {
				'class' : 'br'
			});
			var bc = new Element('div', {
				'class' : 'bc'
			});

			element.removeClass(removeCls);

			roundDiv.wraps(ml.wraps(mr.wraps(mc.wraps(element))));
			tl.wraps(tr.wraps(tc.inject(ml, 'before')));
			bl.wraps(br.wraps(bc.inject(ml, 'after')));
		}
	};
}();

if (typeof(Sfx) == 'undefined') {
	Sfx = {};
	Sfx.Controls = {};
}

/*** Home Tabs ***/
Sfx.Controls.HomeTab = Class( {
	Implements : [Events, Options],

	options : {

	},

	initialize : function(hostEle, options) {
		this.setOptions(options);

		this.hostEle = $(hostEle);

		this.currentTab = -1;
		this.buildTabs();
	},

	buildTabs : function() {
		this.tabHead = $(this.hostEle.getElement('.tab-head'));
		this.tabHeads = this.tabHead.getElements("a");

		this.tabBody = $(this.hostEle.getElement('.tab-body'));
		this.tabPages = this.tabBody.getElements('.tab-page');

		this.setTabHead();
		this.setTabBody();

		this.select(0);
	},

	setTabHead : function() {

		var opts = this.options;
		var clickEvt = this.onTabHeadClick.bind(this);

		this.tabHeads.each(function(ele) {
			$(ele).removeClass('selected');
			$(ele).addEvent('click', clickEvt);
		});
	},

	setTabBody : function() {

		var opts = this.options;

		this.tabPages.each(function(ele) {
			$(ele).fade('hide');
		});
	},

	select : function(index) {

		var opts = this.options;

		if (this.currentTab != -1) {
			$(this.tabHeads[this.currentTab]).removeClass('selected');
			$(this.tabPages[this.currentTab]).fade('out');
		}

		this.currentTab = index;

		$(this.tabHeads[this.currentTab]).addClass('selected');
		$(this.tabPages[this.currentTab]).fade('in')
	},

	onTabHeadClick : function(evt) {
		evt.stop();
		evt.stopPropagation();

		var ele = $(evt.target);

		var index = this.tabHeads.indexOf(ele);

		this.select(index);
	}
});

Sfx.Controls.TextFocus = Class( {
	Implements : [Events, Options],

	options : {

	},

	initialize : function(txts, options) {
		this.setOptions(options);

		this.txts = $$(txts);

		this.bindEvents();
	},

	bindEvents : function() {

		this.txts.addEvent('focus', function(evt) {

			if (this.value == this.title) {
				this.value = '';
				this.removeClass('info');
			}
		});

		this.txts.addEvent('blur', function(evt) {
			if (this.value == '') {
				this.value = this.title;
				this.addClass('info');
			}
		});
	}
});

Sfx.Controls.FAQ = Class( {
	Implements : [Events, Options],

	options : {

	},

	initialize : function(options) {
		this.setOptions(options);

		this.questions = $$('.faq-question');
		this.answers = $$('.faq-answer');

		if (this.answers)
			this.answers.slide('out');

		this.bindEvents();
	},

	bindEvents : function() {

		if (this.questions) {
			this.questions.addEvent('click', this.questionClick.bind(this));
		}
	},

	questionClick : function(evt) {
		var ele = $(evt.target);

		var index = this.questions.indexOf(ele);

		this.answers[index].slide('toggle');
	}
});

window.addEvent('domready', function() {
	Site.init();	

	if ($('home-tabs')) {
		var cc = new Sfx.Controls.HomeTab('home-tabs');
	}
	
	new Sfx.Controls.TextFocus('.textbox');
	new Sfx.Controls.FAQ();
	
	Behaviour.apply();
});