package eu.dnetlib.enabling.ui;


import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.velocity.Template;
import org.apache.velocity.context.Context;
import org.springframework.beans.factory.annotation.Required;


public class GenericMainServlet extends MainServlet {

	public GenericMainServlet() throws ServletException {
		super();
	}

	/**
	 * 
	 */
	private static final long serialVersionUID = 1107492922142943611L;

	/**
	 * URL linked by logo img
	 */
	private String logoHref;
	/**
	 * logo img
	 */
	private String logoImg;
	
	
	
	@Override
	public Template handleRequest(HttpServletRequest request, HttpServletResponse response, Context context) throws Exception {
		String base = (request.getContextPath().split("\\/"))[1];

		String sessionId = "";
		Cookie[] cookies = request.getCookies();
		if (cookies != null) {
			for (Cookie c : cookies) {
				if (c.getName().equals("session")) {
					sessionId =  c.getValue();
				}
			}
		}

		String basedir = "/" + base + "/" + gwtModule;
		context.put("LOGOHREF", logoHref);
		if (logoImg.startsWith("http://")) {
			context.put("LOGOIMG", logoImg);
		} else {
			context.put("LOGOIMG", basedir + "/img/" + logoImg) ;
		}
		context.put("TITLE", title);
		context.put("BASEDIR", basedir);

		if ((sessionId == "")||(sessionManager.isValidSession(sessionId))) {
			context.put("DRIVERAPPCONTEXT", "/" + base);
			context.put("GWTJS", gwtModule + ".nocache.js");
			return getVelocityEngine().getTemplate(template);
		}

		
		return getVelocityEngine().getTemplate("eu/dnetlib/enabling/ui/velocity/sessionexpired.html.vm");
	}

	public String getLogoHref() {
		return logoHref;
	}

	@Required
	public void setLogoHref(String logoHref) {
		this.logoHref = logoHref;
	}

	public String getLogoImg() {
		return logoImg;
	}

	@Required
	public void setLogoImg(String logoImg) {
		this.logoImg = logoImg;
	}


}
