function setHeight(divElement, newHeight) {
	if (isSafari()) {
		divElement.style.height = newHeight + "px";
	} else if (isInternetExplorer()) {
		divElement.style.height = newHeight;
	} else if (isFireFox()) {
		divElement.style.height = newHeight + "px";
	}
}

function isFireFox() {
	if (parseInt(navigator.appVersion) > 3) {
	        if (navigator.appName == "Netscape") {
	        	return true;
	        }
	}
	return false;
}

function isInternetExplorer() {
	if (parseInt(navigator.appVersion) > 3) {
	        if (navigator.appName.indexOf("Microsoft") != -1) {
	        	return true;
	        }
	}
	return false;
}

function isSafari() {
	if (parseInt(navigator.appVersion) > 3) {
		if (navigator.appVersion.indexOf("Safari") != -1) {
			if (navigator.appName == "Netscape") {
				return true;
			}
		}
	}
	return false;
}

/* --- Crea las ventanas flotantes --- */
function doLoading(message, buttonText, dayNames, monthNames) {
	createLoadingDiv(message);
	createFloatingDiv(buttonText);
	gsDayNames = dayNames;
	gsMonthNames = monthNames;
}
/* ----------------------------------- */

/* --- Funciones para el historial javascript --- */
function getSectionName(page) {
	if (page.startsWith('/')) {
		return page.substring(1);
	} else {
		return 'index';
	}
}

function formatTitle(page) {
	var title = "Portal del PIT-CNT";
	if (page == '/index') return title + " - Inicio";
	if (page.startsWith('/historia')) return title + " - Historia";
	if (page.startsWith('/estatuto')) return title + " - Estatuto";
	if (page.startsWith('/estructura')) return title + " - Estructura Organizacional";
	if (page.startsWith('/mesa')) return title + " - Mesa Representativa";
	if (page.startsWith('/secretaria')) return title + " - Secretar\u00EDas Ejecutivas y Departamentos";
	if (page.startsWith('/negociacion')) return title + " - Negociaci\u00F3n colectiva";
	if (page == '/cuestaDuarte') return title + " - Cuesta Duarte";
	if (page == '/noticias') return title + " - Noticias";
	if (page == '/imagenes') return title + " - Galer\u00EDa de Imagenes";
	if (page == '/videos') return title + " - Videos";
	if (page == '/consultas') return title + " - Consultas";
	if (page == '/enlaces') return title + " - Enlaces";
	if (page == '/actas') return title + " - Actas";
	if (page == '/entrevistas') return title + " - Entrevistas";
	return title;
}

function handleChange(event) {
	var title = event.path;
	var page = event.path;
	var parameters = event.parameters;

	if (event.path == '/') {
    	page = '/index';
    } else if (event.path == '/noticias') {
		page = '/list';
		parameters['tipo'] = 'noticias';
		parameters['pag'] = '1';
	} else if (event.path == '/cuestaDuarte') {
		page = '/list';
		parameters['tipo'] = 'cuestaDuarte';
		parameters['pag'] = '1';
	} else if (event.path == '/actas') {
		page = '/list';
		parameters['tipo'] = 'actas';
		parameters['pag'] = '1';
	} else if (event.path == '/entrevistas') {
		page = '/list';
		parameters['tipo'] = 'entrevistas';
		parameters['pag'] = '1';
    } else if (event.path == '/imagenes') {
		page = '/list';
		parameters['tipo'] = 'imagenes';
		parameters['pag'] = '1';
	} else if (event.path == '/videos') {
		page = '/list';
		parameters['tipo'] = 'videos';
		parameters['pag'] = '1';
	}

	if (page == '/list' || page == '/detail') {
		title = '/' + parameters['tipo'];
	}
	changePage(page, parameters);

	changeSelectedMenu(getEnglishCode(title));
    SWFAddress.setTitle(formatTitle(title));
}

function changePage(page, parameters) {
	var sectionName = '';
	var thePage = '';
	var params = '';

	if (page == '/detail') {
	    sectionName = parameters['tipo'];
		var type = 'images';
		if (sectionName == 'noticias') {
			type = 'news';
		}
	    thePage = '/front/' + type + '/seeDetail.do';
	    params = 'ID=' + parameters['ID'];
	} else if (page == '/list') {
		var elementsPerPage = 10;
		var categoryString = "";
		var pageNumber = 1;

		sectionName = parameters['tipo'];
		if (sectionName == 'imagenes') {
			thePage = '/front/images/gallery.do';
			elementsPerPage = 9;
			if (parameters['cat'] != undefined && parameters['cat'] != 0 && parameters['cat'] != "") {
				categoryString = "&imageCategory=" + parameters['cat'];
			}
		} else if (sectionName == 'videos') {
			thePage = '/front/videos/gallery.do';
			elementsPerPage = 1;
		} else {
			if (sectionName == 'cuestaDuarte') {
				thePage = '/front/news/cuestaDuarte.do';
			} else if (sectionName == 'actas') {
				thePage = '/front/news/records.do';
			} else if (sectionName == 'entrevistas') {
				thePage = '/front/news/interviews.do';
			} else {
				thePage = '/front/news/list.do';
			}

			if (parameters['cat'] != undefined && parameters['cat'] != 0 && parameters['cat'] != "") {
				categoryString = "&newsCategory=" + parameters['cat'];
			}
		}

		if (parameters['pag'] != undefined) {
			pageNumber = parameters['pag'];
		}

		params = 'elementsPerPage=' + elementsPerPage + "&page=" + pageNumber + categoryString;
	} else {
		sectionName = getSectionName(page);
		thePage = getTheRealPage(page);

		for (var p in parameters) {
			params += (params == '' ? '' : '&') + p + '=' + parameters[p];
		}
	}


	updatePage(thePage, 'dynamicContent', params);
}

function getTheRealPage(page) {
	if (page.startsWith('/historia')) {
		var item = ((page.substring('/historia'.length).length > 0) ? page.substring('/historia'.length + 1) : 'index');
		item = item.replace('10moCongreso', '10congress');
		item = item.replace('9noCongreso', '9congress');
		item = item.replace('8voCongreso', '8congress');
		item = item.replace('7moCongreso', '7congress');
		item = item.replace('1mayo', 'mayFirst');
		if (item == '10congress' || item == '9congress' || item == '8congress' || item == '7congress') {
			item += '/index';
		}
		return '/front/history/' + item + '.vm';
	} else if (page.startsWith('/estatuto')) {
		return '/front/statute/index.vm';
	} else if (page.startsWith('/estructura')) {
		return '/front/structure/index.vm';
	} else if (page.startsWith('/negociacion')) {
		var group = ((page.substring('/negociacion'.length).length > 0) ? page.substring('/negociacion'.length + 1) : 'group1');
		group = group.replace('grupo', 'group');
		return '/front/negociation/' + group + '.vm';
	} else if (page.startsWith('/mesa')) {
		var type = ((page.substring('/mesa'.length).length > 0) ? page.substring('/mesa'.length + 1) : 'index');
		type = type.replace('alternos', 'alternates');
		type = type.replace('suplentes', 'alternates2');
		type = type.replace('comision', 'comision');
		type = type.replace('plenarios', 'plenaries');
		type = type.replace('otros', 'others');
		return '/front/representative/' + type + '.vm';
	} else if (page.startsWith('/secretaria')) {
		var depto = ((page.substring('/secretaria'.length).length > 0) ? page.substring('/secretaria'.length + 1) : 'index');
		if (depto != 'index') {
			depto = depto.replace('genero', 'gender');
			depto = depto.replace('jovenes', 'young');
			depto = depto.replace('juridico', 'legal');
			depto = depto.replace('saludLaboral', 'workingHealth');
			depto = depto.replace('salud', 'health');
			depto = depto.replace('desarrolloProductivo', 'productive');
			depto = depto.replace('trabajadoresPublicos', 'public');
			return '/front/documents/' + depto + '.do';
		} else {
			return '/front/secretary/index.vm';
		}
	} else if (page.startsWith('/consultas')) {
		return '/front/queries/add.do';
	} else if (page.startsWith('/enlaces')) {
		return '/front/links/list.do';
	} else {
		return '/front' + page + '.vm';
	}
}

function updatePage(page, contentToUpdate, parameters, doOnload) {
    var options = createOptions('POST', parameters);
	if (doOnload != undefined) {
		options.onComplete = appear;
	}

    updateContentWithOptions(page, contentToUpdate, options);
}

function appear(xhr, value) {
	var content = document.getElementById('dynamicContent');
    if (typeof value == 'undefined') value = 0;
    if (value > 1) return;
    var property = content.filters ? 'filter' : 'opacity';
    content.style[property] = content.filters ? 'alpha(opacity=' + value*100 + ')' : value;
    setTimeout(function () {appear(xhr, value + .1)} , 100);
}

SWFAddress.addEventListener(SWFAddressEvent.CHANGE, handleChange);

var currentSelectedMenu = null;
function changeSelectedMenu(code) {
	if (currentSelectedMenu != null) {
		document.getElementById(currentSelectedMenu).className = "leftMenuListItem";
	}
	currentSelectedMenu = code;
	document.getElementById(code).className += " selected";
}
/* ---------------------------------------------- */

/* --- Funciones particulares del front --- */
function goTo(code, page) {
	if (code == 'news' || code == 'cuestaDuarte' || code == 'records' || code == 'interviews' || code == 'imageGallery' || code == 'videos' || code == 'queries' || page == undefined) {
		SWFAddress.setValue(getSpanishCode(code));
	} else {
		SWFAddress.setValue(getSpanishCode(code) + page);
	}
}

function getSpanishCode(code) {
	if (code == 'index') return '/';
	if (code == 'history') return 'historia';
	if (code == 'statute') return 'estatuto';
	if (code == 'structure') return 'estructura';
	if (code == 'representative') return 'mesa';
	if (code == 'secretary') return 'secretaria';
	if (code == 'negociation') return 'negociacion';
	if (code == 'news') return 'noticias';
	if (code == 'imageGallery') return 'imagenes';
	if (code == 'videos') return 'videos';
	if (code == 'queries') return 'consultas';
	if (code == 'links') return 'enlaces';
	if (code == 'records') return 'actas';
	if (code == 'interviews') return 'entrevistas';
	return code;
}

function getEnglishCode(code) {
	if (code == '/') return 'index';
	if (code.startsWith('/historia')) return 'history';
	if (code.startsWith('/estatuto')) return 'statute';
	if (code.startsWith('/estructura')) return 'structure';
	if (code.startsWith('/mesa')) return 'representative';
	if (code.startsWith('/secretaria')) return 'secretary';
	if (code.startsWith('/negociacion')) return 'negociation';
	if (code.startsWith('/cuestaDuarte')) return 'cuestaDuarte';
	if (code.startsWith('/noticias')) return 'news';
	if (code.startsWith('/videos')) return 'videos';
	if (code.startsWith('/imagenes')) return 'imageGallery';
	if (code.startsWith('/consultas')) return 'queries';
	if (code.startsWith('/enlaces')) return 'links';
	if (code.startsWith('/actas')) return 'records';
	if (code.startsWith('/entrevistas')) return 'interviews';
	return code;
}

function seeDetail(type, id) {
	//updateFloatingContent(page, 'POST', 'ID=' + id);
	SWFAddress.setValue('detail?tipo=' + type + '&ID=' + id);
}

function downloadDocument(name) {
	window.open("/front/documents" + name, "documento");
}

function loadList(type, currentPage, categorySelect) {
	var page = 1;
	var categoryString = "";

	if (categorySelect != undefined) {
		var selectedCategory = categorySelect.options[categorySelect.selectedIndex].value;
		if (selectedCategory != "") {
			categoryString = "&cat=" + selectedCategory;
		}
	} else {
		if (currentPage != undefined) {
			page = currentPage;
		}
	}

	//var parameters = 'type=' + type + '&elementsPerPage=' + elementsPerPage + "&page=" + page + categoryString;
	var parameters = 'tipo=' + type + "&pag=" + page + categoryString;
	SWFAddress.setValue('list?' + parameters);
}

function clearForm(prefix, attributes)
{
	for (var i = 0; i < attributes.length; i++) {
		document.getElementById(prefix + attributes[i]).value = '';
	}
}
/* ---------------------------------------- */

/* --- Funciones para mover las noticias --- */
var doMove;
var useMove;

function evaluateMoving(containerId, originalId, repeatedId) {
	var container = document.getElementById(containerId);
	var original = document.getElementById(originalId);
	var repeated = document.getElementById(repeatedId);

	if (original.clientHeight > container.clientHeight) {
		repeated.style.display = '';
		original.style.borderBottom = '1px solid #000000';
		doMove = true;
		useMove = true;
		move(containerId);
	} else {
		doMove = false;
		useMove = false;
	}
}

function stopMoving() {
	doMove = false;
}

function continueMoving(container) {
	if (useMove) {
		doMove = true;
		move(container);
	}
}

function move(containerId) {
	var container = document.getElementById(containerId);
	if (doMove) {
		container.scrollTop = container.scrollTop + 1;

		if (container.scrollHeight == container.scrollTop + container.clientHeight) {
			container.scrollTop = 0;
		}

		setTimeout("move('" + containerId + "');", 50);
	}
}

/* ----------------------------------------- */

//--- FUNCIONES DE FECHAS PARA CALENDARIOS ---
// a global month names array
var gsDayNames = new Array();
var gsMonthNames = new Array();

// Agrego la función de formato al tipo Date
Date.prototype.format = function(f)
{
    if (!this.valueOf()) {
		return '&nbsp;';
	}

    var d = this;
	return f.replace(/(yyyy|yy|mmmm|mmm|mm|dddd|ddd|dd|hh|nn|ss|a\/p)/gi,
        function($1)
        {
            switch ($1.toLowerCase())
            {
            case 'yyyy': return d.getFullYear();
			case 'yy':	 return String(d.getFullYear()).substring(2, 4);
            case 'mmmm': return gsMonthNames[d.getMonth()];
            case 'mmm':  return gsMonthNames[d.getMonth()].substr(0, 3);
            case 'mm':   return (d.getMonth() + 1).zf(2);
            case 'dddd': return gsDayNames[d.getDay()];
            case 'ddd':  return gsDayNames[d.getDay()].substr(0, 3);
            case 'dd':   return d.getDate().zf(2);
            case 'hh':   return d.getHours().zf(2);
            case 'nn':   return d.getMinutes().zf(2);
            case 'ss':   return d.getSeconds().zf(2);
            case 'a/p':  return d.getHours() < 12 ? 'a' : 'p';
            }
        }
    );
}

//Agrega ceros hasta tener el formato deseado
Number.prototype.zf = function(zeros)
{
	var n = this;
	var formattedNumber = "";
	var count = 1;
	for (i = 1; i < zeros; i++) count = count * 10;
	while ((n < count) && (count > 1)) {
		formattedNumber = "0" + formattedNumber;
		count = count / 10;
	}
	formattedNumber = formattedNumber + n;
	return formattedNumber;
}

// Recibe una fecha en formato dd-MM-yyyy y la imprime con el patron recibido por parametro
function printDay(date, pattern, content)
{
	var split = date.split("-");
	var today = new Date(split[2], split[1] - 1, split[0]);

	if (content != undefined) {
		document.getElementById(content).innerHTML = today.format(pattern);
		return "";
	} else {
		return today.format(pattern);
	}
}
//--------------------------------------------