/** ADDEVENT
		face posibil addEvent(element, event, functie)
		
*****************************************************************************************/

function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}

var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				item[0][item[1]] = null;
			};
		}
	};
}();
addEvent(window,'unload',EventCache.flush);

/****************************************************************************************/



function $() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (arguments.length == 1)
			return element;
		elements.push(element);
	}
	return elements;
}


var IV = {
	
	forms : {
		init : function() {
			formJ = document.getElementById('pj');
			if (formJ.className == 'pre-hidden') {
				IV.misc.removeClass(formJ,'pre-hidden');
				IV.misc.addClass(formJ,'hidden');
			}
			
			formF = document.getElementById('pf');
			
			container = document.getElementById('forms-container');
			var nav = document.createElement("ul");
			nav.className = "form-switch";
			container.insertBefore(nav,formF);
			
			var pf = document.createElement("li");
			nav.appendChild(pf);
			
			var pflink = document.createElement("a");
			pflink.href = "#";
			if (formJ.className == 'hidden') {
				pflink.className = "activ";
			}
			pflink.id = "show-pf";
			pflink.innerHTML = "Persoana fizica";
			pf.appendChild(pflink);
			
			var pj = document.createElement("li");
			nav.appendChild(pj);
			
			var pjlink = document.createElement("a");
			pjlink.href = "#";
			if (formF.getAttribute('class') == 'hidden') {
				pjlink.className = 'activ';
			}
			pjlink.id = "show-pj";
			pjlink.innerHTML = "Persoana juridica";
			pj.appendChild(pjlink);
			
			pflink.onclick = function() {IV.forms.show('pf',this); return false;}
			pjlink.onclick = function() {IV.forms.show('pj',this); return false;}
			
		},
		
		show : function(id,starter) {
			if (starter.className == 'activ')
				return false;
				
			tohideid = (id == 'pj') ? 'pf' : 'pj';
			
			IV.misc.addClass(starter,"activ");
			closer = document.getElementById("show-" + tohideid);
			IV.misc.removeClass(closer, "activ");
			
			toshow = document.getElementById(id);
			IV.misc.removeClass(toshow,"hidden");
			tohide = document.getElementById(tohideid);
			IV.misc.addClass(tohide,"hidden");
		}
	},
	
	misc : {
		addClass : function(element, clname) {
			oldclass = element.className;
			if (oldclass.indexOf(clname) != -1) return;
			if (oldclass == "") {
				newclass = clname;
			} else {
				newclass = oldclass + " " + clname;
			}
			element.className = newclass;
		},
		
		removeClass : function(element, clname) {
			if (clname == "undefined") return;
			oldclass = element.className;
			newclass = "";
			classes = oldclass.split(" ");
			for (var i=0; i<classes.length; i++) {
				if (classes[i] != clname) {
					newclass += classes[i] + " ";
				}
			}
			if (newclass.charAt(newclass.length - 1) == " ") newclass = newclass.substring(0, newclass.length - 1);
			element.className = newclass;
		}
		
	}
}

/** EXTERNAL LINKS
				
*****************************************************************************************/

function openInNewWindow(e) {
	if (!e) var e = window.event;
	if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {
		return true;
	} else {
	    var newWindow = window.open(this.getAttribute('href'), '_blank');
		if (newWindow) {
			if (newWindow.focus) {
				newWindow.focus();
			}
			return false;
		}
		return true;
	}
}

/****************************************************************************************/

setup = function() {
	
	if (!document.getElementsByTagName) return;

	if (document.getElementById('forms-container')) IV.forms.init();
	
	if (document.getElementById && document.createElement && document.appendChild) {
		var links = document.getElementsByTagName('a');
		var link;
		for (var i = 0; i < links.length; i++) {
			link = links[i];
			// external links
			if (/\bextern\b/.exec(link.className)) {
				link.onclick = openInNewWindow;
			}
		}
	}
	
}

addEvent(window, 'load', setup);