<%
/******************************************************************************
 * 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.*,
							   com.edeal.frontline.navigation.FlRequest,
							   java.util.*"%>
<%@taglib uri="http://www.e-deal.com/taglib/fl" prefix="fl" %>
<jsp:useBean class="com.edeal.frontline.SLABean" id="SLA" scope="request"/>
<%
final org.apache.commons.logging.Log logger = org.apache.commons.logging.LogFactory.getLog(getClass());
FlRequest flRequest = new FlRequest(request);
FlContext context = null;
context = flRequest.getContext();
DataDictionary dico = context.getDataDictionary();
String copy = Utils.getRequestParameter(context, request, "fromcopy");
String msgModelQuery = "MsgType:RefVal = 'MODELE'";

if (copy != null && copy.equals("1")) {
	SLA.setSlaID(null);
	
	try {
		String code = SLA.getSlaCode();
		SLA.setSlaCode(code+"_");
	}
	catch (FieldNotInitializedException fnie){
	}
	
	try {
		String label = SLA.getSlaLabel();
		SLA.setSlaLabel(label+" (copie) ");
	}
	catch (FieldNotInitializedException fnie) {
	}
}

String slaID = null;
try {
	slaID = SLA.getSlaID();
}
catch (FieldNotInitializedException fnie) {
}

%>
<script language="javascript">
	function doSubmit() {
		var f = document.forms[0];
		
		if (f.SlaLabel.value == '') {
			alert('<fl:getMessage code="M60BF" alt="Veuillez saisir le libellé." js="true"/>');
			f.SlaLabel.focus();		
		}
		else if (f.SlaCode.value == '') {
			alert('<fl:getMessage code="M60BE" alt="Veuillez saisir le code." js="true"/>');
			f.SlaCode.focus();		
		}
		else
			f.submit();
	}

	function doSelectField(field) {
		var f = document.forms[0];
		
		if (f.SlaObjID.value == '') {
			alert('<fl:getMessage code="L656C" alt="Veuillez choisir l\\\'objet associé" js="true"/>');
			return;
		}
		
		var query = '';
		
		if (field == 'SlaMainFields') {
			var fields = new Array();
			for (var  i = 1; i <=3; i++) { 
				var fldID = f.elements['SlaField' + i].value;
				
				if (fldID)
					fields.push('\'' + fldID + '\'');
			}
			
			if (fields.length == 0) {
				alert('<fl:getMessage code="L656D" alt="Veuillez choisir au moins un champ associé" js="true"/>');
				return;
			}
			else
				query = 'FldID in (' + fields.join(', ') + ')';
		}
		
		var objID = f.SlaObjID.value;		
		window.open('<fl:webapp/>/select.fl?type=Field&field=' + field + '&query='+ encodeURIComponent(query ? query : 'FldObjID=\'' + objID + '\'|FldDisplay <> null'), 'SelectField', 'menubar=no,status=no,toolbar=no,scrollbars=yes,resizable=yes,width=500,height=500');
	}

	function checkHolidays() {
		var f = document.forms[0];
		var multivalSeparator = f.$$multivalSeparator ? f.$$multivalSeparator.value : '|';
		var value = f.SlaHolidays.value;
		
		if (!value)
			return;
			
		var holidays = value.split(multivalSeparator);
		var errors = new Array();
		var goodValues = new Array();
		
		for (var i = 0; i < holidays.length; i++) {
			var formattedDate = checkDate(holidays[i], dateFormatIn, dateFormatOut);
			
			if (formattedDate)
				goodValues[goodValues.length] = formattedDate;
			else
				errors[errors.length] = holidays[i];
		}
		
		if (errors.length > 0)
			window.alert('<fl:getMessage code="L657A" alt="Le format des dates suivantes est incorrect. Veuillez corriger." js="true"/>\n' + errors.join('\n'));
		
		f.SlaHolidays.value = goodValues.join(multivalSeparator);
	}
</script>

<fl:form action="/save_sla.fl" bean="SLA" multivalSeparator=";">
	<fl:bigTabs objectTitle="<%= Utils.getMessage(session, \"L655C\", false, true, \"SLA\") %>" ou="<%= \"/edit_sla.fl?id=\" + slaID %>">
	<input type="hidden" name="id" value="<fl:getProperty name="SLA" property="SlaID" alt=""/>">
	
		<table class="container" cellpadding="0">
			<tr>
				<td colspan="3">
					<table class="container" cellpadding="0">
						<tr class="fieldline">
							<td class="labelTitreFiche">
								<fl:label field="SlaLabel" labelClassName="titreFiche"/>
							</td>
							<td class="fieldTitreFiche">
								<fl:input property="SlaLabel" mandatoryMsgCode="M60A2"/>
							</td>
						</tr>
					</table>
				</td>
			</tr>
			<tr class="ligne_separation"><td colspan="3"></td></tr>
			<tr>
				<td class="column2">
					<table class="container" cellpadding="0">
						<fl:fieldEdit property="SlaCode" mandatoryMsgCode="M60CE" unicityMsgCode="M60CE"/>
						<fl:fieldEdit property="SlaObjID"/>					
						<fl:fieldEdit property="SlaTzoID"/>
						<tr>
							<td class="dataLabel"><fl:getMessage code="L655F" alt="Champs associés"/></td>
							<td class="dataValue">
								<table class="container">
									<tr>
										<td><fl:input property="SlaField1" autocomplete="on" selectUrl="javascript:doSelectField('SlaField1');"/></td>
									</tr>
									<tr>
										<td><fl:input property="SlaField2" autocomplete="on" selectUrl="javascript:doSelectField('SlaField2');"/></td>
									</tr>
									<tr>
										<td><fl:input property="SlaField3" autocomplete="on" selectUrl="javascript:doSelectField('SlaField3');"/></td>
									</tr>
								</table>
							</td>
						</tr>
						<fl:fieldEdit property="SlaMsgAlarm" query="<%= msgModelQuery %>" />
						<fl:fieldEdit property="SlaMsgFinalAlert" query="<%= msgModelQuery %>" />
						<fl:fieldEdit property="SlaMsgDelay" query="<%= msgModelQuery %>" />
						<fl:fieldEdit property="SlaMsgDelayAlert" query="<%= msgModelQuery %>" />
						<fl:fieldEdit property="SlaMsgOver" query="<%= msgModelQuery %>" />
						<fl:fieldEdit property="SlaMsgOverAlert" query="<%= msgModelQuery %>" />
						<fl:fieldEdit property="SlaUrl" query="<%= msgModelQuery %>" />
					</table>
				</td>
				<td class="separation"><div class="separation"></div></td>
				<td class="column2">
					<table class="container" cellpadding="0">
						<fl:fieldEdit property="SlaSssID"/>
						<fl:fieldEdit property="SlaJouID"/>	
						<fl:fieldEdit property="SlaBeginHour"/>
						<fl:fieldEdit property="SlaEndHour"/>
							
						<tr>
							<td class="dataLabel"><fl:getMessage code="L6562" alt="Jours fériés"/></td>
							<td class="dataValue">
								<textarea id="SlaHolidays" name="SlaHolidays" class="input text" style="width:99%" onblur="checkHolidays()"><fl:getProperty name="SLA" property="SlaHolidays" alt="" edit="true" separator=";"/></textarea>
								<span class="comment"><fl:getMessage code="L202E" alt="Séparer les valeurs multiples par des points virgules"/></span>
							</td>
						</tr>					
					</table>
				</td>
			</tr>
		</table>
	</fl:bigTabs>
</fl:form>
