var il = null;

jQuery(document).ready(function(){
	switcher_init();
})

function switcher_init(){
	
	var s = new mySwitcher(
		[
			{ sControl: '#show-short', sObject: ".short" },
			{ sControl: '#show-extend', sObject: ".extend" }
		],
		isSwitch
	);
	s.init();
	initInnerLine();
}

function isSwitch(status, before){
	switch(status){
		case '.short':
			if(before)
				il.hide();
			break;
		case '.extend':
			if(!before){
				if(!il){
					il = new myLines("#Lines");	
					il.init();
				}
				il.show();
			}
			break;
	}
	if(!before){
		updateNavigation(status)
	}
	
}

function initInnerLine(){
	if(jQuery("#content-layout .full").length != 0){
		il = new myLines("#Lines");
		il.init();
		il.show();
	}
}

function myLines(sObject){
	this.oCnt = jQuery(sObject);
	this.lines = new Array();
}

myLines.prototype = {

	init: function(){
		var _my = this;
		
		jQuery("#content span.line").each(function(){
			_my.lines.push({ base: this});
		})
		
		this.createLine();
		
		jQuery(window).resize(function(){
			_my.draw();
		})
	},
	
	createLine: function(){
		for (var i=0; i < this.lines.length; i++) {
			var l = jQuery(document.createElement("div"));
			l.appendTo(this.oCnt).addClass("line");
			
			this.lines[i].line = l;
		};
	},
	
	show: function(){
		this.draw();
		
		for (var i=0; i < this.lines.length; i++) {
			this.lines[i].line.css({ opacity: 0 }).show().animate({ opacity: 1 }, 500);
		}
	}, 
	
	hide: function(){
		for (var i=0; i < this.lines.length; i++) {
			this.lines[i].line.css({ opacity: 1 }).animate({ opacity: 0 }, 500, function(){
				jQuery(this).hide();
			});
		}
	},
	
	draw: function(){
		for (var i=0; i < this.lines.length; i++) {

			var _my = this;
			var _ofs = this.getOffset(this.lines[i].base);
			
			if(this.matchClass(this.lines[i].base, 'start')){
				this.lines[i].line.css({ left: 0, top: _ofs.top+Math.ceil(_ofs.height/2), width: _ofs.left-5 })
			}

			if(this.matchClass(this.lines[i].base, 'end')){
				this.lines[i].line.css({ left: _ofs.left+5, top: _ofs.top+Math.ceil(_ofs.height/2), width: _my.oCnt.width()-_ofs.left-5 })
			}
			
		}
	},
	
	matchClass: function(oObject, sClass){
		if(oObject.className.indexOf(sClass) != -1)
			return true
		else
			return false
	},
	
	getOffset: function(oObject){
		var oLine = jQuery(oObject); 
		var ofs = oLine.offset();
		return { left: ofs.left, top: ofs.top, height: oLine.height() }
		
	}
	
	
}