<%
/******************************************************************************
 * 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.
 *
 ******************************************************************************/
%><%@page session="true" import="com.edeal.frontline.*"%><%@ page import="org.apache.commons.fileupload.servlet.ServletFileUpload" %><%@ page import="com.edeal.frontline.navigation.FlRequest" %><%@taglib uri="http://www.e-deal.com/taglib/fl" prefix="fl" %>
<%
	final org.apache.commons.logging.Log logger = org.apache.commons.logging.LogFactory.getLog(getClass());
	FlRequest flRequest = new FlRequest(request);
	FlContext context = flRequest.getContext();
	boolean isMultipart = ServletFileUpload.isMultipartContent(request);
	String idColName = flRequest.getRequestParameterOrAttribute("IDColName");
	String fileNameColName = flRequest.getRequestParameterOrAttribute("FileNameColName");

%>
<jsp:useBean class="com.edeal.frontline.AttachmentBean" id="Attachment" scope="request"/>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<title><fl:getMessage code="L6043" alt="Gestion des fichiers attachés"/></title>
		<script language="javascript" type="text/javascript" src="<fl:webapp/>/js/utils.js"></script>

		<script type="text/javascript">
function formatFromWeb(){
	var w = window.top.opener;
	var f = w.document.forms[0];
	var fileNameField = f.<%= fileNameColName %>;
	var displayField = f.LeFichierAttache<%= idColName %>;

	var displayFieldTemp = "temp";

	// For each special char appearing multiple times within the string, try to
	// transcode the special char. If the resulting transcoded string is equals
	// to the string before the special char has been transcoded, stop looking for
	// this special char within the string. 
	
	while (displayField.value.indexOf("eacute") > 0) {
		displayFieldTemp = displayField.value;
		displayField.value = displayField.value.replace("&eacute;","é");
		if (displayFieldTemp === displayField.value) {
			break;
		}
	}
	
	while (displayField.value.indexOf("egrave") > 0)	{
		displayFieldTemp = displayField.value;
		displayField.value = displayField.value.replace("&egrave;","è");
		if (displayFieldTemp === displayField.value) {
			break;
		}
	}		
		
	while (displayField.value.indexOf("ecirc") > 0) {
		displayFieldTemp = displayField.value;
		displayField.value = displayField.value.replace("&ecirc;","ê");
		if (displayFieldTemp === displayField.value) {
			break;
		}
	}
			
	while (displayField.value.indexOf("euml") > 0) {
		displayFieldTemp = displayField.value;
		displayField.value = displayField.value.replace("&euml;","ë");
		if (displayFieldTemp === displayField.value) {
			break;
		}
	}
		
	while (displayField.value.indexOf("icirc") > 0) {
		displayFieldTemp = displayField.value;
		displayField.value = displayField.value.replace("&icirc;","î");
		if (displayFieldTemp === displayField.value) {
			break;
		}
	}	
		
	while (displayField.value.indexOf("iuml") > 0) {
		displayFieldTemp = displayField.value;
		displayField.value = displayField.value.replace("&iuml;","ï");
		if (displayFieldTemp === displayField.value) {
			break;
		}
	}	
								
	while (displayField.value.indexOf("ocirc") > 0) {
		displayFieldTemp = displayField.value;
		displayField.value = displayField.value.replace("&ocirc;","ô");
		if (displayFieldTemp === displayField.value) {
			break;
		}
	}
		
	while (displayField.value.indexOf("ouml") > 0) {
		displayFieldTemp = displayField.value;
		displayField.value = displayField.value.replace("&ouml;","ö");
		if (displayFieldTemp === displayField.value) {
			break;
		}
	}
		
	while (displayField.value.indexOf("ugrave") > 0) {
		displayFieldTemp = displayField.value;
		displayField.value = displayField.value.replace("&ugrave;","ù");
		if (displayFieldTemp === displayField.value) {
			break;
		}
	}
		
	while (displayField.value.indexOf("ucirc") > 0) {
		displayFieldTemp = displayField.value;
		displayField.value = displayField.value.replace("&ucirc;","û");
		if (displayFieldTemp === displayField.value) {
			break;
		}
	}
		
	while (displayField.value.indexOf("uuml") > 0) {
		displayFieldTemp = displayField.value;
		displayField.value = displayField.value.replace("&uuml;","ü");
		if (displayFieldTemp === displayField.value) {
			break;
		}
	}
		
	while (displayField.value.indexOf("agrave") > 0) {
		displayFieldTemp = displayField.value;
		displayField.value = displayField.value.replace("&agrave;","à");
		if (displayFieldTemp === displayField.value) {
			break;
		}
	}
		
	while (displayField.value.indexOf("acirc") > 0) {
		displayFieldTemp = displayField.value;
		displayField.value = displayField.value.replace("&acirc;","â");
		if (displayFieldTemp === displayField.value) {
			break;
		}
	}
		
	while (displayField.value.indexOf("auml") > 0) {
		displayFieldTemp = displayField.value;
		displayField.value = displayField.value.replace("&auml;","ä");
		if (displayFieldTemp === displayField.value) {
			break;
		}
	}
		
	while (displayField.value.indexOf("quot") > 0) {
		displayFieldTemp = displayField.value;
		displayField.value = displayField.value.replace("&quot;","\"");
		if (displayFieldTemp === displayField.value) {
			break;
		}
	}

	while (displayField.value.indexOf("gt") > 0) {
		displayFieldTemp = displayField.value;
		displayField.value = displayField.value.replace("&gt;",">");
		if (displayFieldTemp === displayField.value) {
			break;
		}
	}
	
	while (displayField.value.indexOf("lt") > 0) {
		displayFieldTemp = displayField.value;
		displayField.value = displayField.value.replace("&lt;","<");
		if (displayFieldTemp === displayField.value) {
			break;
		}
	}
		
	while (displayField.value.indexOf("ccedil") > 0) {
		displayFieldTemp = displayField.value;
		displayField.value = displayField.value.replace("&ccedil;","ç");
		if (displayFieldTemp === displayField.value) {
			break;
		}
	}

	while (displayField.value.indexOf("curren") > 0) {
		displayFieldTemp = displayField.value;
		displayField.value = displayField.value.replace("&curren;","¤");
		if (displayFieldTemp === displayField.value) {
			break;
		}
	}

	while (displayField.value.indexOf("pound") > 0) {
		displayFieldTemp = displayField.value;
		displayField.value = displayField.value.replace("&pound;","£");
		if (displayFieldTemp === displayField.value) {
			break;
		}
	}

	while (displayField.value.indexOf("micro") > 0) {
		displayFieldTemp = displayField.value;
		displayField.value = displayField.value.replace("&micro;","µ");
		if (displayFieldTemp === displayField.value) {
			break;
		}
	}

	while (displayField.value.indexOf("sect") > 0) {
		displayFieldTemp = displayField.value;
		displayField.value = displayField.value.replace("&sect;","§");
		if (displayFieldTemp === displayField.value) {
			break;
		}
	}
		
	while (displayField.value.indexOf("sup2") > 0) {
		displayFieldTemp = displayField.value;
		displayField.value = displayField.value.replace("&sup2;","²");
		if (displayFieldTemp === displayField.value) {
			break;
		}
	}
		
	while (displayField.value.indexOf("amp") > 0) {
		displayFieldTemp = displayField.value;
		displayField.value = displayField.value.replace("&amp;","&");
		if (displayFieldTemp === displayField.value) {
			break;
		}
	}
}

		function onLoadHandler(e) {
			var w = window.top.opener;
			var f = w.document.forms[0];
			var idField = f.<%= idColName %>;
			var fileNameField = f.<%= fileNameColName %>;
			var displayField = f.LeFichierAttache<%= idColName %>;
			var multivalSeparator = "|";
			if (f.$$multivalSeparator) {
				multivalSeparator = f.$$multivalSeparator.value;
			}
			if (idField) {
				idField.value = "<fl:getProperty name="Attachment" alt="" property="AttID"/>";								
			}
			if (displayField) {
				displayField.value = "<fl:getProperty name="Attachment" alt="" property="AttDesc"/>";				
				formatFromWeb();
			}
			if (fileNameField) {
				fileNameField.value = formatToJavascript("<fl:getProperty name="Attachment" alt="" property="AttDesc"/>");
			}
			try {
				if (w.do<%= idColName %>Change) {
					w.do<%= idColName %>Change();
				}
			} catch (error) {
			}
			window.close();
		}
		window.onload = onLoadHandler;
		</script>
	</head>

	<body>
		<fl:getMessage code="L6411" alt="Le fichier a été chargé."/>
	</body>
</html>
