var Site = {	
	start: function(){
		Site.createColapsable('.colapsable',false);
		Site.createColapsable('.colapsed',true);
		Site.createTable();
		Site.setEmployeesAreaHeight();
	},
	
	createColapsable:function(selector, collapsed){
		var list = $$(selector);
		list.each(function (elem,i){
			var header = elem.getElement("h3");
			var colapsable = elem.getElement(".colapsable-part");
			colapsable.set("style","display:block");			
			elem.slidefx = new Fx.Slide(colapsable);
			if(collapsed){
				elem.slidefx.hide();
			} else {
				elem.getParents()[0].oppenedBox = elem;
			}
			elem.slidefx.addEvent('complete', function() {
				//elem.getElement('h3').set('class',elem.slidefx.open?"dotted-border":"dotted-border-yellow");
				elem.set('class',elem.slidefx.open?"colapsable":"colapsed");
				/*if(elem.slidefx.open);
					elem.getParents()[0].oppenedBox = elem;*/
			});
			header.onclick = function(){
			var parent = elem.getParents()[0];
				if(parent.oppenedBox && !elem.slidefx.open && elem != parent.oppenedBox){
					parent.oppenedBox.slidefx.slideOut();
					parent.oppenedBox = elem;
				}
				elem.slidefx.toggle();
			};
		});
	},

	createTable:function(){
		var rows = $$('.employeesList tbody tr');
		if(rows.length == 0) return;
		var highlight = function(){ 
			this.getElements("td").setStyles({ backgroundColor:"#98b54e", color:"#FFFFFF"});
		} 
		var unhighlight = function(){
			if(Site.selectedRow == this) {
				this.getElements("td").setStyles({ backgroundColor:"#c3c1b9", color:"#FFFFFF"});
				this.getElements("td a").setStyles({ color:"#FFFFFF"});
			} else {
				this.getElements("td").setStyles({ backgroundColor:"#FFFFFF", color:"#C2C3C3"});				
				this.getElements("td a").setStyles({ color:"#C2C3C3"});				
			}
		}
		
		var img = $('employeeImage');
		
		Site.DefaultImageSRC = img.src;
		
//		rows.addEvent('mouseover', highlight);
		rows.addEvent('mouseout', unhighlight);
		rows.addEvent('click', function(){
			if(Site.selectedRow) {
				Site.selectedRow.getElements("td").setStyles({ backgroundColor:"#FFFFFF", color:"#c2c3c3"});
				Site.selectedRow.getElements("td a").setStyles({ color:"#c2c3c3"});
			}
			Site.selectedRow = this;
			Site.selectedRow.getElements("td").setStyles({ backgroundColor:"#c3c1b9", color:"#FFFFFF"});
			Site.selectedRow.getElements("td a").setStyles({ color:"#FFFFFF"});
		});
		rows.addEvent('mouseover', function(){
			this.getElements("td").setStyles({ backgroundColor:"#98b54e", color:"#FFFFFF"});
			this.getElements("td a").setStyles({ color:"#FFFFFF"});

			var imgsrc = this.getElement("td.spacer b").innerHTML;
			var loading_imgsrc = imgsrc ? imgsrc : Site.DefaultImageSRC;

			Asset.image(loading_imgsrc, {
				onload: function(){
					img.setStyles({height: this.height, width: this.width}).set('src', this.src);
				}
			});
		});
		
		//rows.setStyle("display","none");
		
		var backArrow = $$('.emplyeeGroupsSelector img.backArrow')[0];
		var forwardArrow = $$('.emplyeeGroupsSelector img.forwardArrow')[0];
		var groups = $$('.emplyeeGroupHolder div');
		Site.GroupsMaximum = groups.length-1;
		Site.GroupCurrent = 0;
		
		backArrow.addEvent('click', function (){
			Site.tableRefresh(-1);
		});
		backArrow.setStyle('cursor','pointer');
		forwardArrow.addEvent('click', function (){
			Site.tableRefresh(1);
		});
		forwardArrow.setStyle('cursor','pointer');
		Site.tableRefresh(0);
	},
	
	tableRefresh:function(dir){
		var newIndex = Site.GroupCurrent+dir;
		if( newIndex > Site.GroupsMaximum) newIndex = 0;
		if( newIndex < 0) newIndex = Site.GroupsMaximum;
		var groups = $$('.emplyeeGroupHolder div');
		groups[Site.GroupCurrent].setStyle("display","none");
		groups[newIndex].setStyle("display","block");
		$$('.employeesList tbody tr').setStyle("display","none");
		Site.GroupCurrent = newIndex;
		$$('.employeesList tbody tr.'+groups[newIndex].id).setStyle("display",'');
		$('employeeImage').src = Site.DefaultImageSRC;
	},

	setEmployeesAreaHeight:function(){
	
	if ($('employees'))
	{
		var currentHeight = $('employees').getSize().y;
		var groups = $$('.emplyeeGroupHolder div');
		var tdHeight = 20;
		var areaHeight = 0;
		var imgMarginTop = parseInt($$('.employees .img-container img').getStyle('margin-top'));
		var groupSelectorHeight = $$('.employees .emplyeeGroupsSelector')[0].getSize().y;

		groups.each(function(value, key){
			var categoryID = value.id;
			var categoryList = $$('.employeesList .'+categoryID);
			var groupHeight = 0;
			var imageHeight = $('employeeImage').getSize().y;
			var catHeight = 0;

			if (categoryList[0] && categoryList[0].getSize() && categoryList[0].getSize().y > 0)
			{
				tdHeight = categoryList[0].getSize().y;

				if (Browser.Engine.presto)
				{
					tdHeight += parseInt(categoryList[0].getElement('td').getStyle('border-bottom'));
				}//end_if
			}//end_if

			groupHeight = $$('.employeesList .'+categoryID).length*tdHeight;

			categoryList.each(function(value_cat, key_cat){
				var imgPath = value_cat.getElements('.spacer b')[0].get('html');

				Asset.image(imgPath, {
					onload: function(){
						if (this.height > imageHeight)
						{
							imageHeight = this.height;
						}//end_if
					}
				});
			});

			if (imageHeight>groupHeight) groupHeight = imageHeight;

			catHeight = groupHeight+imgMarginTop+groupSelectorHeight;

			if (catHeight > areaHeight)
			{
				areaHeight = catHeight;
			}//end_if
		});

		obj = $$('.employees .emplyeeGroupsSelector')[0];
		areaHeight += (Browser.Engine.trident ? parseInt(obj.getStyle('padding-top')) : 0);
		emplSizeX = $('employees').getElement('.container').getSize().x;
		emplPosX = $('employees').getElement('.container').getPosition().x;
		emplPosY = $('employees').setStyles({height: areaHeight}).getPosition().y+(Browser.Engine.trident ? parseInt($$('body').getStyle('margin-top')) : 0);
		emplGrpPosY = obj.getPosition().y+(Browser.Engine.trident ? parseInt($$('body').getStyle('margin-top'))-parseInt(obj.getStyle('padding-top')) : 0);
		paddingTop = 2*emplPosY+areaHeight-emplGrpPosY-groupSelectorHeight+1+(Browser.Engine.trident4 ? 3 : 0);
		obj.setStyles({'top':paddingTop, 'left':emplPosX, 'width':emplSizeX});
	}//end_if

	}
	
};

window.addEvent('domready', Site.start);


