/*Variables*/
var menus = new Array();
menus[0] = new Menu("mainMenu", new Array("sobreSimples", "portafolio", "noticias", "contacto"));
menus[1] = new Menu("portafolioMenu", new Array("proyectosUrbanos", "interiores", "proyectosZonaEste", "residencias"));
menus[2] = new HistoryMenu();
var loaded = false;
var cursorOnImage = false;
var cursorOnNavigators = false;
var navigatorsFader = new Fader("navigatorsFader", "navigators");
var presentationImageFader = new Fader("presentationImageFader", "presentation_image");
var sidebarMenuFader = new Fader("sidebarMenuFader", "sidebarMenus");
var contentFader = new Fader("contentFader", "content");
sidebarMenuFader.opacity = 0;
/*Objects*/
function Menu(element, items) {
	this.id = menus.length;
	this.items = items;
	this.selected = "";
	this.prev = "";
	this.fader = new Fader("menus["+this.id+"].fader", element);
	this.fader.opacity = 0;
	
	this.has = function(id) {
		for (var i  = 0; i < items.length; i++) {
			if (this.items[i] == id) {
				return true;
			}
		}
		return false;
	}
	
	this.indexOf = function(id) {
		for (var i = 0; i < items.length; i++) {
			if (items[i] == id) {
				return i;
			}
		}
		return -1;
	}
	
	this.select = function(id) {
		this.prev = this.selected;
		this.selected = id;
	}
}
function HistoryMenu() {
	this.prev = "";
	this.selected = "";
}
function Fader(name, elementId) {
	this.id = "";
	this.name = name;
	this.interval = 10;
	this.proportion = 0;
	this.opacity = 100;
	this.elementId = elementId;
	this.action = "";
	this.setFade = function(proportion) {
		this.proportion = proportion;
		if (this.proportion != 0 && this.id == "") {
			this.fade();
		}
	}

	this.fade = function() {
		this.opacity += this.proportion;
		if (this.proportion > 0 && this.opacity > 100) {
			this.opacity = 100;
		} else if (this.proportion < 0 && this.opacity < 0) {
			this.opacity = 0;
		}
		opaque(element(this.elementId), this.opacity);
		if (this.opacity > 0 && this.opacity < 100 && this.proportion != 0) {
			this.id = setTimeout(this.name+".fade()", this.interval);
		} else {
			clearTimeout(this.id);
			this.id = "";
			this.proportion = 0;
			if (this.action != "") {
				eval(this.action);
				this.action = "";
			}
		}
	}
}
/*Santa's Helpers*/
function element(id) {
	return document.getElementById(id);
}
function style(id) {
	return document.getElementById(id).style;
}
function source(id) {
	return document.getElementById(id).src;
}
function verify(array, distance, stringCompare) {
	return (array[array.length+distance] == stringCompare);
}
function getMenu(id) {
	var menu;
	if (menus[0].has(id)) { 
		menu = menus[0];
	} else if (menus[1].has(id)) {
		menu = menus[1];
	}
	return menu;
}
function lastClicked(id) {
	return getMenu(id).selected;
}
/*Routines*/
function init() {
	preload();
	style("entrar_div").display = "block";
}
function entrar() {
	style("entrar_div").display = "none";
	style("resolucion").display = "none";
	style('sidebarMenus').display = 'block';
	sidebarMenuFader.setFade(10);
	mouseClick("sobreSimples");
}
/*Event Functions (old re-implementation)*/
function mouseOver(id) {
	var selected = lastClicked(id);
	if (id == null || id == selected) {
		return;
	}
	if (verify(source(id).split("/"), -2, "lineOverlay") == false) {
		element(id).src = "images/textos/colorOverlay/"+id+".gif";
	}
}

function mouseOut(id) {
	var selected = lastClicked(id);
	if (id == null || id == selected) {
		return;
	}
	if (verify(source(id).split("/"), -2, "lineOverlay") == false) {
		element(id).src = "images/textos/plain/"+id+".gif";
	}
}

function mouseClick(id) {
	if (id == null) {
		return;
	}
	var menu = getMenu(id);
	if (menu.selected != "") {
		element(menu.selected).src = "images/textos/plain/"+menu.selected+".gif";
	}
	menu.select(id);
	element(id).src = "images/textos/lineOverlay/"+id+".gif";
	go(id);
}
function mouseTextClick(id) {
	if (id == null) {
		return;
	}
	var menu = getMenu(id);
	if (menu.selected != "") {
		
	}
	menu.select(id);
	go(id);
}
/*Heavy Duty...de Rayovac*/
//Ajax | Cloro
function ajaxObject() {
	var request = null;
	if(window.XMLHttpRequest){
		request = new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		request = new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		element("content").innerHTML = "Lo sentimos, su browser no soporta ajax.  Por favor descargue un browser mas actualizado.  <br />Gracias";
	}
	return request;
}

function fill(file, place) {
	if (place == null) {
		place = "content"
	}

	var request = ajaxObject();
	
	request.onreadystatechange = function() {
		if(request.readyState == 4) {
			contentFader.action = "";
			style('loading').display = 'none';
			if (place == "content") {
				contentFader.setFade(10);
			}
			element(place).innerHTML = request.responseText;
			document.body.style.cursor = 'auto';
		}
	}
	if (place == "content") {
		contentFader.action = "style('loading').display = 'block';";
		contentFader.setFade(-10);
	}
	document.body.style.cursor = 'wait';
	request.open ("GET", file, true);
	request.send (null);
}
//Very Simple Preloader
function preload() {
	var i = 0;
	var image = new Array();
	image[0]="contacto";
	image[1]="interiores";
	image[2]="portafolio";
	image[3]="proyectosUrbanos";
	image[4]="proyectosZonaEste";
	image[5]="noticias";
	image[6]="residencias";
	image[7]="sobreSimples";
	
	for (i = 0; i <image.length; i++) {
		eval("var imageObjColor"+i+" = new Image();");
		eval("imageObjColor"+i+".src = 'images/textos/colorOverlay/"+image[i]+".gif';");
		
		eval("var imageObjLine"+i+" = new Image();");
		eval("imageObjLine"+i+".src = 'images/textos/lineOverlay/"+image[i]+".gif';");
	}
}
function go(id) {
	var menu = getMenu(id);
	if (menu) {
		switch (menu.id) {
			case 0:
				goMenu0();
			break;
			case 1:
				goMenu1();
			break;
			default:
				alert("Error!");
			break;
		}
	}
}
function goMenu0() {
	var selected = menus[0].selected;
	if (menus[0].prev == "portafolio" && menus[0].selected != "portafolio") {
		if (menus[1].selected != "") {
			style("portafolio"+(menus[1].indexOf(menus[1].selected)+1)).display = "none";
			element(menus[1].selected).src = "images/textos/plain/"+menus[1].selected+".gif";
			menus[1].selected = "";
			menus[1].prev = "";
		}
		if (menus[2].selected != "") {
			style(menus[2].selected).backgroundImage ="";
			style(menus[2].selected).backgroundColor = "";
		}
		menus[1].fader.action = "style('portafolioMenu').display = 'none';";
		menus[1].fader.setFade(-10);
	}
	switch (selected) {
		case "sobreSimples":
			fill("html/sobre.html");
		break;
		case "portafolio":
			style("portafolioMenu").display = "block";
			menus[1].fader.setFade(10);
		break;
		case "noticias":
			fill("php/wordpress/index.php");
		break;
		case "contacto":
			fill("html/contacto.html");
		break;
	}
}

function goMenu1() {
	if (menus[1].prev != "") {
		style("portafolio"+(menus[1].indexOf(menus[1].prev)+1)).display = "none";
	}
	style("portafolio"+(menus[1].indexOf(menus[1].selected)+1)).display = "block";
}
/*Presentation*/
function project(projectId) {
	menus[2].prev = menus[2].selected;
	menus[2].selected = "project"+projectId+"_link";
	
	if (menus[2].prev != "") {
		style(menus[2].prev).backgroundImage ="";
		style(menus[2].prev).backgroundColor = "";
	}
	style(menus[2].selected).backgroundImage ="url('images/selected.gif')";
	style(menus[2].selected).backgroundColor = "#bfbfbf";
	fill("php/project.php?id="+projectId);
}
function prepChangeImage(direction) {
	loaded = false;
	var count = element("count").value;
	var viewing = element("viewing").value;
	if (direction == "back") {
		viewing--;
		if (viewing == 0) {
			viewing = count;
		}
	} else if (direction == "forward") {
		viewing++;
		if (viewing > count) {
			viewing = 1;
		}
	}
	navigatorsFader.setFade(-10);
	presentationImageFader.action = "changeImage(" + viewing + "," + count + ")";
	presentationImageFader.setFade(-10);
}
function changeImage(viewing, count) {
	element("presentation_image").src = element("photo"+viewing).value;
	element("counter").innerHTML = viewing + "/" + count;
	element("viewing").value =viewing;
}
function imgLoaded(height, width) {
	loaded = true;
	//Navigators
	style("navigators").marginTop  = (height/-2) - 50 + "px";
	style("navigators").width = width + "px";
	style("maxim").left = (width/2) - 18 + "px";
	style("horizontalLine").top = (height + 15) + "px";
	style("presentation_image").visibility = "visible";
	presentationImageFader.setFade(10);
	checkNavigators();
}
function checkNavigators() {
	if (cursorOnImage == false && cursorOnNavigators == false || loaded == false) {
		navigatorsFader.setFade(-10);
	} else if (loaded == true) {
		style("navigators").visibility = "visible";
		navigatorsFader.setFade(10);
	}
}
/*Faders*/
//Opacity
function opaque(object, opacity) {
	/* helper function to deal specifically with images and the cross-browser differences in opacity handling */
	if (object.style) {
		if (object.style.MozOpacity!=null) {  
			/* Mozilla's pre-CSS3 proprietary rule */
			object.style.MozOpacity = (opacity/100);
		} else if (object.style.opacity!=null) {
			/* CSS3 compatible */
			object.style.opacity = (opacity/100);
		} else if (object.style.filter!=null) {
			/* IE's proprietary filter */
			object.style.filter = "alpha(opacity="+opacity+")";
		}
	}
}
function sendPostParameters(request, params) {
	request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	request.setRequestHeader("Content-length", params.length);
	request.setRequestHeader("Connection", "close");
	request.send(params);
}
function post(file, params) {
	var request = ajaxObject();
	
	request.onreadystatechange = function() {
		if(request.readyState == 4) {
			document.getElementById("content").innerHTML = request.responseText;
			document.body.style.cursor = 'auto';
			if (params.indexOf("categoria") != -1) {
				var category = (((params.split("categoria="))[1]).split("&"))[0];
				fill("proyectos.php?cat=" + category, "portafolio" + category);
			}
		}
	}
	request.open ("POST", file, true);
	sendPostParameters(request, params);
	document.body.style.cursor = 'wait';
}
function confirmDestroy(name) {
	return confirm("żEsta seguro que quiere eliminar el proyecto '" + name + "' ?");
}