package org.apache.jsp.js;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.jsp.*;
import com.edeal.frontline.*;
import java.util.*;

public final class calendar_jsp extends org.apache.jasper.runtime.HttpJspBase
    implements org.apache.jasper.runtime.JspSourceDependent {

  private static final JspFactory _jspxFactory = JspFactory.getDefaultFactory();

  private static java.util.List _jspx_dependants;

  static {
    _jspx_dependants = new java.util.ArrayList(1);
    _jspx_dependants.add("/WEB-INF/taglib.tld");
  }

  private org.apache.jasper.runtime.TagHandlerPool _005fjspx_005ftagPool_005ffl_005fwebapp_005fnobody;

  private javax.el.ExpressionFactory _el_expressionfactory;
  private org.apache.AnnotationProcessor _jsp_annotationprocessor;

  public Object getDependants() {
    return _jspx_dependants;
  }

  public void _jspInit() {
    _005fjspx_005ftagPool_005ffl_005fwebapp_005fnobody = org.apache.jasper.runtime.TagHandlerPool.getTagHandlerPool(getServletConfig());
    _el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory();
    _jsp_annotationprocessor = (org.apache.AnnotationProcessor) getServletConfig().getServletContext().getAttribute(org.apache.AnnotationProcessor.class.getName());
  }

  public void _jspDestroy() {
    _005fjspx_005ftagPool_005ffl_005fwebapp_005fnobody.release();
  }

  public void _jspService(HttpServletRequest request, HttpServletResponse response)
        throws java.io.IOException, ServletException {

    PageContext pageContext = null;
    HttpSession session = null;
    ServletContext application = null;
    ServletConfig config = null;
    JspWriter out = null;
    Object page = this;
    JspWriter _jspx_out = null;
    PageContext _jspx_page_context = null;


    try {
      response.setContentType("text/html");
      pageContext = _jspxFactory.getPageContext(this, request, response,
      			null, true, 8192, true);
      _jspx_page_context = pageContext;
      application = pageContext.getServletContext();
      config = pageContext.getServletConfig();
      session = pageContext.getSession();
      out = pageContext.getOut();
      _jspx_out = out;


/******************************************************************************
 * Copyright (c) 2000-2004 e-Deal
 *
 * e-Deal S.A.
 * 55 rue Brillat Savarin
 * 75013 Paris
 * France
 *
 * T: +33 (0)1 53 80 80 30
 * F: +33 (0)1 73 01 69 77
 * http://www.e-deal.com
 * 
 * La diffusion de ce code source sous quelque forme que ce soit sans
 * l'autorisation de E-DEAL est interdite.
 *
 * Vous êtes autorisés à modifier ce code source uniquement pour votre usage
 * propre et sous réserve que les mentions de copyright demeurent intactes.
 *
 * Ce code est fourni en l'état. Aucune garantie d'aucune sorte, explicite ou
 * implicite n'est donnée. En aucun cas E-DEAL ne pourra être tenu pour
 * responsable des dommages pouvant résulter de l'utilisation de ce code
 * source.
 ******************************************************************************/


 	response.setContentType("application/x-javascript");
	FlLocale userLocale = (FlLocale.getInstance(session));
	String dateFormat = "dd/MM/yyyy";
	try {
		dateFormat = userLocale.getDateFormat().toPattern();
	} catch (Exception e) {
		dateFormat = "dd/MM/yyyy";
	}

      out.write('\n');
      out.write("\n");
      out.write("function openCalendar(field, dateFormat) {\n");
      out.write("\tvar found=0;\n");
      out.write("\tvar pos=-1;\n");
      out.write("\twhile (found == 0) {\n");
      out.write("\t\tpos++;\n");
      out.write("\t\tif (document.forms[pos]) {\n");
      out.write("\t\t\tif (document.forms[pos] == field.form) {\n");
      out.write("\t\t\t\tfound = 1;\n");
      out.write("\t\t\t}\n");
      out.write("\t\t}\n");
      out.write("\n");
      out.write("\t\tif (pos > 20) {\n");
      out.write("\t\t\tpos = -1;\n");
      out.write("\t\t\tfound = 1;\n");
      out.write("\t\t}\n");
      out.write("\t}\n");
      out.write("\t\n");
      out.write("\tvar curDateStr = \"\";\n");
      out.write("\tvar curDate = parseDate((dateFormat ? dateFormat : \"");
      out.print( dateFormat );
      out.write("\"), field.value);\n");
      out.write("\tif (curDate != null) {\n");
      out.write("\t\tcurDateStr = \"&calyear=\" + curDate[0] + \"&calmonth=\" + curDate[1];\n");
      out.write("\t}\n");
      out.write("\tvar winDateSel = window.open(\"");
      if (_jspx_meth_fl_005fwebapp_005f0(_jspx_page_context))
        return;
      out.write("/common/calendar/calendar_popup.jsp?fn=\" + field.name + \"&fp=\" + pos + (dateFormat ? \"&df=\" + dateFormat : \"\") + curDateStr, \"DateSelector\", \"menubar=no,toolbar=no,scrollbars=auto,resizable=yes,width=250,height=280\");\n");
      out.write("}\n");
      out.write("\n");
      out.write("function strReplace(pStr, pKey, pValue) {\n");
      out.write("\treturn pStr.split(pKey).join(pValue);\n");
      out.write("}\n");
      out.write("\n");
      out.write("function removeLeadingZeros(inStr) {\n");
      out.write("\tvar res = inStr;\n");
      out.write("\twhile (res.length > 0 && res.substring(0,1) == \"0\") {\n");
      out.write("\t\tres = res.substring(1);\n");
      out.write("\t}\n");
      out.write("\treturn res;\n");
      out.write("}\n");
      out.write("\n");
      out.write("function parseDate(patern, value) {\t\n");
      out.write("\tvar yk = \"yyyy\";\n");
      out.write("\tvar yp = patern.indexOf(yk);\n");
      out.write("\tif (yp == -1) {\n");
      out.write("\t\tyk = \"yyy\";\n");
      out.write("\t\typ = patern.indexOf(yk);\n");
      out.write("\t}\n");
      out.write("\tif (yp == -1) {\n");
      out.write("\t\tyk = \"yy\";\n");
      out.write("\t\typ = patern.indexOf(yk);\n");
      out.write("\t}\n");
      out.write("\t\n");
      out.write("\tvar mk = \"MM\"\n");
      out.write("\tvar mp = patern.indexOf(mk);\n");
      out.write("\tif (mp == -1) {\n");
      out.write("\t\tmk = \"M\";\n");
      out.write("\t\tmp = patern.indexOf(mk);\n");
      out.write("\t}\n");
      out.write("\t\n");
      out.write("\tvar dk = \"dd\"\n");
      out.write("\tvar dp = patern.indexOf(dk);\n");
      out.write("\tif (dp == -1) {\n");
      out.write("\t\tdk = \"d\";\n");
      out.write("\t\tdp = patern.indexOf(dk);\n");
      out.write("\t}\n");
      out.write("\t\n");
      out.write("\tif (yp == -1 || mp == -1 || dp == -1) {\n");
      out.write("\t\treturn null;\n");
      out.write("\t}\n");
      out.write("\t\n");
      out.write("\tvar yi=0, mi=0, di=0;\n");
      out.write("\tif (yp < mp && mp < dp) {\n");
      out.write("\t\tyi = 1; mi = 2; di = 3;\n");
      out.write("\t} else if (mp < yp && yp < dp) {\n");
      out.write("\t\tyi = 2; mi = 1; di = 3;\n");
      out.write("\t} else if (yp < dp && dp < mp) {\n");
      out.write("\t\tyi = 1; mi = 3; di = 2;\n");
      out.write("\t} else if (dp < yp && yp < mp) {\n");
      out.write("\t\tyi = 2; mi = 3; di = 1;\n");
      out.write("\t} else if (mp < dp && dp < yp) {\n");
      out.write("\t\tyi = 3; mi = 1; di = 2;\n");
      out.write("\t} else if (dp < mp && mp < yp) {\n");
      out.write("\t\tyi = 3; mi = 2; di = 1;\n");
      out.write("\t}\n");
      out.write("\t\n");
      out.write("\tvar strRegExp = patern;\n");
      out.write("\tstrRegExp = strReplace(strRegExp, \"\\\\\", \"\\\\\\\\\");\n");
      out.write("\tstrRegExp = strReplace(strRegExp, \"/\", \"\\\\/\");\n");
      out.write("\tstrRegExp = strReplace(strRegExp, \"*\", \"\\\\*\");\n");
      out.write("\tstrRegExp = strReplace(strRegExp, \"+\", \"\\\\+\");\n");
      out.write("\tstrRegExp = strReplace(strRegExp, \"?\", \"\\\\?\");\n");
      out.write("\tstrRegExp = strReplace(strRegExp, \".\", \"\\\\.\");\n");
      out.write("\tstrRegExp = strReplace(strRegExp, dk, \"([\\\\d.]+)\");\n");
      out.write("\tstrRegExp = strReplace(strRegExp, mk, \"([\\\\d.]+)\");\n");
      out.write("\tstrRegExp = strReplace(strRegExp, yk, \"([\\\\d.]+)\");\n");
      out.write("\t\n");
      out.write("\tvar regexpr, yvt, mvt, dvt;\n");
      out.write("\teval(\"regexpr = /\" + strRegExp + \"/\");\n");
      out.write("\tyvt = value.replace(regexpr, \"$\"+yi);\n");
      out.write("\tmvt = value.replace(regexpr, \"$\"+mi);\n");
      out.write("\tdvt = value.replace(regexpr, \"$\"+di);\n");
      out.write("\t\n");
      out.write("\tif (yvt == value || mvt == value || dvt == value) {\n");
      out.write("\t\treturn null;\n");
      out.write("\t}\n");
      out.write("\t\n");
      out.write("\tvar yv, mv, dv;\n");
      out.write("\tyv = parseInt(removeLeadingZeros(yvt));\n");
      out.write("\tmv = parseInt(removeLeadingZeros(mvt));\n");
      out.write("\tdv = parseInt(removeLeadingZeros(dvt));\n");
      out.write("\n");
      out.write("\n");
      out.write("\tif (isNaN(dv) || isNaN(mv) || isNaN(yv)) {\n");
      out.write("\t\treturn null;\n");
      out.write("\t}\n");
      out.write("\t\n");
      out.write("\treturn new Array(yv, mv, dv);\n");
      out.write("}\n");
    } catch (Throwable t) {
      if (!(t instanceof SkipPageException)){
        out = _jspx_out;
        if (out != null && out.getBufferSize() != 0)
          try { out.clearBuffer(); } catch (java.io.IOException e) {}
        if (_jspx_page_context != null) _jspx_page_context.handlePageException(t);
        else log(t.getMessage(), t);
      }
    } finally {
      _jspxFactory.releasePageContext(_jspx_page_context);
    }
  }

  private boolean _jspx_meth_fl_005fwebapp_005f0(PageContext _jspx_page_context)
          throws Throwable {
    PageContext pageContext = _jspx_page_context;
    JspWriter out = _jspx_page_context.getOut();
    //  fl:webapp
    com.edeal.frontline.WebappTag _jspx_th_fl_005fwebapp_005f0 = (com.edeal.frontline.WebappTag) _005fjspx_005ftagPool_005ffl_005fwebapp_005fnobody.get(com.edeal.frontline.WebappTag.class);
    _jspx_th_fl_005fwebapp_005f0.setPageContext(_jspx_page_context);
    _jspx_th_fl_005fwebapp_005f0.setParent(null);
    int _jspx_eval_fl_005fwebapp_005f0 = _jspx_th_fl_005fwebapp_005f0.doStartTag();
    if (_jspx_th_fl_005fwebapp_005f0.doEndTag() == javax.servlet.jsp.tagext.Tag.SKIP_PAGE) {
      _005fjspx_005ftagPool_005ffl_005fwebapp_005fnobody.reuse(_jspx_th_fl_005fwebapp_005f0);
      return true;
    }
    _005fjspx_005ftagPool_005ffl_005fwebapp_005fnobody.reuse(_jspx_th_fl_005fwebapp_005f0);
    return false;
  }
}
