function detectMacXFF() {
	var userAgent = navigator.userAgent.toLowerCase();
	if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) {
		return true;
	}
}

var Nav = new Object();
Object.extend(Nav, {
	useCurrentData: false,
	section: "home",
	
	goTo: function(section, height, speed) {
		this.section = section;
		
		if (Nav.useCurrentData) {
			var pos = Position.cumulativeOffset($("Header"));
			Element.setStyle($("PortfolioNav"), { "left": pos[0] + "px", "top" : pos[1] + "px"});
			setTimeout(function() { 
				$("PortfolioNav").className = "";
				
				if (!detectMacXFF()) {
					Element.setOpacity($("PortfolioNav"), 0);
					new Effect.Appear($("PortfolioNav"), { duration: 1 });
				}
			}, document.all ? 3000 : 7000);
			Nav.useCurrentData = false;
		} else {
			// tamanio actual de la caja de contenidos
			var ini_content_height = parseFloat(Element.getStyle("Content", "height") || $("Content").offsetHeight);
			Element.setStyle("Content", { "height" : ini_content_height + "px" });

			var af = function() {
				var img = new Image();
				img.src = "/web/images/loader.gif";
				img.className = "AlignCenter";
								
				var _cnt = $("Header");
				while (_cnt.childNodes[0] != null) _cnt.removeChild(_cnt.firstChild);
				
				var _prt = $("PortfolioNav");
				if (_prt !== null) _prt.parentNode.removeChild(_prt);
				
				var _cnt = $("Content");
				while (_cnt.childNodes[0] != null) _cnt.removeChild(_cnt.firstChild);
				_cnt.appendChild(img);
				
				var percent = 100 * height / parseFloat(Element.getStyle("Header", "height"));
				
				// tamanio final de la caja de contenidos
				var end_content_height = parseFloat(ini_content_height) + parseFloat(Element.getStyle("Header", "height")) - parseFloat(height);
				var content_percent = 100 * end_content_height / ini_content_height;
				
				setTimeout(function() {
					new Effect.Parallel(
						[ new Effect.Scale(
							"Header", 
							percent, 
							{
								sync: true, 
								scaleX: false, 
								scaleContent: false
							}
						),
						
						new Effect.Scale(
							"Content", 
							content_percent, 
							{
								sync: true, 
								scaleX: false, 
								scaleContent: false
							}
						)
					], { 
						duration: document.all ? 0.2 : 1.2,
						afterFinish: function() {
							Nav.load(section);
						}
					});
				}, percent > 100 ? 10 : document.all ? 1000 : 2500);
			};
			
			if (!detectMacXFF()) {
				new Effect.Fade($("Content").firstChild, { duration: 1, afterFinish: af});
			} else {
				af();
			}
		}
	},
	
	load: function(section) {
		var me = this;
		var url = "";
		
		switch(section) {
			case "about":
				url = "/web/aboutus.php";
				$("SwfHeader").style.height = "440px";
				break;
			case "services":
				url = "/web/services.php";
				$("SwfHeader").style.height = "515px";
				break;
			case "portfolio":
				url = "/web/portfolio.php";
				$("SwfHeader").style.height = "515px";
				break;
			case "lab":
				url = "/web/lab.php";
				$("SwfHeader").style.height = "400px";
				break;
			case "contact":
				url = "/web/contact.php";
				$("SwfHeader").style.height = "385px";
				break;
		}
				
		var _req = new Requester("POST");
		_req.request(url, "asXML=1",
			function(dc) {
				document.title = $Value(dc.getElementsByTagName("title")[0]);
				var doc = Element.importToDocument(dc.getElementsByTagName("body")[0], true);
				var _elem = $Att(doc, "id", "Content").firstChild;
				
				var _cnt = $("Content");
				while (_cnt.childNodes[0] != null) _cnt.removeChild(_cnt.firstChild);
				_cnt.appendChild(_elem);
				
				if (!detectMacXFF()) {
					// Element.setStyle(_elem, { position: "relative", "z-index": 1001 });
					Element.setOpacity(_elem, 0);
					new Effect.Appear(_elem, { duration: 1 });
				}
				
				if (section == "portfolio") {
					setTimeout(function() {
						if (!Nav || Nav.section == "portfolio") {
							var _elem = $Att(doc, "id", "PortfolioNav");
							var _cnt = document.getElementsByTagName("body")[0];
							_cnt.appendChild(_elem);
	
							var pos = Position.cumulativeOffset($("Header"));
							Element.setStyle(_elem, { position: "absolute", left: pos[0] + "px", top : pos[1] + "px"});
							
							if (!detectMacXFF()) {
								// Element.setStyle(_elem, { "z-index": 1001 });
								Element.setOpacity(_elem, 0);
								new Effect.Appear(_elem, { duration: 1, afterFinish: function() { if (doc["onload_event"]) eval(doc["onload_event"]); }});
							} else {
								if (doc["onload_event"]) eval(doc["onload_event"]);
							}
						}
					}, 4000);
				} else {
					if (doc["onload_event"]) eval(doc["onload_event"]);
				}
			}
		);
	},
	
	project: function(url) {
		if ($('Over')) hide('Over');
		
		var _req = new Requester("POST");
		_req.request(url, "asXML=1",
			function(dc) {
				var script = dc.getElementsByTagName("script");
				if (document.all) {
					eval($Value(script[9]));
				} else {
					for(var i=0; i<script.length; i++) {
						if (script[i].getAttribute("id") == "images") {
							eval($Value(script[i]));
						}
					}
				}
				
				document.title = $Value(dc.getElementsByTagName("title")[0]);
				doc = Element.importToDocument(dc.getElementsByTagName("body")[0], true);
				setTimeout(function() {
					var _prt = $("PortfolioNav");
					if (_prt !== null) _prt.parentNode.removeChild(_prt);
		
					var _elem = $Att(doc, "id", "PortfolioNav");
					var _cnt = document.getElementsByTagName("body")[0];
					_cnt.appendChild(_elem);

					var pos = Position.cumulativeOffset($("Header"));
					Element.setStyle(_elem, { position: "absolute", left: pos[0] + "px", "top" : pos[1] + "px"});
					
					if (!detectMacXFF()) {
						// Element.setStyle(_elem, { "z-index": 1001 });
						Element.setOpacity(_elem, 0);
						new Effect.Appear(_elem, { duration: 1, afterFinish: function() { if (doc["onload_event"]) eval(doc["onload_event"]); }});
					} else {
						if (doc["onload_event"]) eval(doc["onload_event"]);
					}
				}, 10);
			}
		);
	},
	
	submitContact: function() {
		error = "";
		submit = true;
	
		if (!$("name").value)			error += "\t- First Name.\n";
		if (!$("lastname").value)		error += "\t- Last Name.\n";
	
		if (!isEmail($("email").value)) error += "\t- E-Mail.\n";
		if (!$("comments").value)		error += "\t- Comments.\n";
	
		if (!error.length) {
			var _req = new Requester("POST");
			_req.request("/web/contact.php", "asXML=1&name=" + $("name").value + "&lastname=" + $("lastname").value + "&email=" + $("email").value + "&comments=" + $("comments").value + "&company=" + $("company").value,
				function(doc) {
					alert("Your e-mail has been sent. Thank you for contacting us.");
				}
			);
		} else {
			alert("Please, fill the following fields :\n" + error);
		}
	}
});