// INFO rounded shapes auto-builder
// TODO refactor with mootools
var RSB = {
	build : function(vpos,hpos) {
		if (!document.getElementById || !document.createElement || !document.appendChild) return false;
		var oElement, oOuter, oI1, oI2, tempId, i, j, vElements, hElements, vRegexp, hRegexp;
		vElements = document.getElementsByTagName('*');
		vRegexp = new RegExp("(^|\\s)foto-shape"+(vpos!=null?'-'+vpos+'tabs':'')+"(\\s|$)");
		hRegexp = new RegExp("(^|\\s)foto-shape"+(hpos!=null?'-'+hpos+'tab':'')+"(\\s|$)");
		for (i=0; i<vElements.length; i++) {
			oElement = vElements[i];
			if (vRegexp.test(oElement.className)) {
				if(vpos==null && hpos==null) {
					hElements = new Array(oElement);
				}
				else {
					hElements = oElement.getElementsByTagName('*');
				}
				for (j=0; j<hElements.length; j++) {
					oElement = hElements[j];
					if (hRegexp.test(oElement.className)) {
						oOuter = document.createElement('div');
						oOuter.className = oElement.className.replace(hRegexp, '$1foto-shape'+(hpos!=null?'-'+hpos+'tab':'')+'$2');
						if (oElement.getAttribute("id")) {
							tempId = oElement.id;
							oElement.removeAttribute('id');
							oOuter.setAttribute('id', '');
							oOuter.id = tempId;
						}
						oElement.className = 'foto-shape-content';
						oElement.parentNode.replaceChild(oOuter, oElement);
						oI1 = document.createElement('div');
						oI1.className = 'foto-shape-middle';
						oOuter.appendChild(oI1);
						oI2 = document.createElement('div');
						oI2.className = 'foto-shape-innermiddle';
						oI1.appendChild(oI2);
						oI2.appendChild(oElement);
						if(vpos != 'bottom') {
							RSB.insertTop(oOuter);
						}
						if(vpos != 'top') {
							RSB.insertBottom(oOuter);
						}
						if(vpos != null && $(oOuter).getElements('a').length > 0) {
							RSB.addHighlightEvent(oOuter);
						}
					}
				}
			}
		}
	},
	insertTop : function(obj) {
		var oOuter, oInner;
		oOuter=document.createElement("div");
		oOuter.className="foto-shape-top";
	    oInner=document.createElement("div");
	    oOuter.appendChild(oInner);
		obj.insertBefore(oOuter,obj.firstChild);
	},
	insertBottom : function(obj) {
		var oOuter, oInner;
		oOuter=document.createElement("div");
		oOuter.className="foto-shape-bottom";
	    oInner=document.createElement("div");
	    oOuter.appendChild(oInner);
		obj.appendChild(oOuter);
	},
	addHighlightEvent : function(obj) {
		obj.addEvent('mouseover', function() {
			obj.set('class', obj.get('class') + '-over');
		});
		obj.addEvent('mouseout', function() {
			obj.set('class', obj.get('class').substring(0, obj.get('class').length-5));
		});
	}
};





window.addEvent('domready', function() {
	// INFO rounded shapes auto-builder initialization
	RSB.build('top', 'left');
	RSB.build('top', 'right');
	RSB.build('bottom', 'left');
	RSB.build('bottom', 'right');
	RSB.build();

	
	// INFO make status div auto-hidden and nicely positionned
	var status = $('foto-status');
	status.dispose().inject($('menu'), 'after');
	if($defined(status)) {
		var collapse = $('collapse').dispose();
		var isCollapsed = false;
		collapse.addEvent('click', function() {
			$clear(timer);
			if(isCollapsed) {
				collapse.getElement('img').set('src', collapse.getElement('img').get('src').replace('more', 'less'));
				status.getElements('div.foto-shape-content DIV').reveal();
			}
			else {
				collapse.getElement('img').set('src', collapse.getElement('img').get('src').replace('less', 'more'));
				status.getElements('div.foto-shape-content div').dissolve();
				collapse.reveal();
			}
			isCollapsed = !isCollapsed;
		});
		if($chk($(status).getElement('DIV.foto-shape-content').get('html').trim())) {
			status.reveal();
		}
		collapse.inject($(status).getElement('div.foto-shape-content'), 'top').reveal();
		function delayed() {
			collapse.fireEvent('click');
		};
		timer = delayed.delay(30000, status);
	}
	
	
	// INFO focus hilighting for input fields
	$each($$(
			'input',
			'select',
			'textarea'
		), function(e) {new InputFocus(e);});

	
	// INFO google analytics
	try {
		var pageTracker = _gat._getTracker("UA-7447391-1");
		pageTracker._trackPageview();
	} catch(err) {}
	
	
	// INFO find a nicer place for my beloved mojizu
	$('footer-mojizu').dispose().inject($('foto'), 'after');
});
