/*
*
* CNMSubmitAjaxParams
*
*
*
*/
function CNMSubmitAjaxParams(ids,cnmaction,id_capa, extra_props)
{
	var str = "";
	var ret = "";

	str = CNMGetParams(ids);

	str += CNMACTION+"="+cnmaction;

	ret =  CNMSubmitAjax(str,id_capa, extra_props);

	return ret;
}

/*
*
* CNMCNBSubmitAjaxForm
*
*
*/
function CNMSubmitAjaxForm(fobj,output, extra_props)
{
  	var arguments = CNMGetFormValues(fobj);

	var ret = CNMSubmitAjax(arguments,output, extra_props);

	return ret;
}

/*
*
* CNMCNBSubmitAjaxForm2
*
*  con jquey.form.js --> perfecto para enviar info con files
*
*/
function CNMSubmitAjaxForm2(fobj,output, extra_props)
{
	var options =
	{
        url: CNMCONTROLLER,
        beforeSubmit:  CNMWaitWindowStart(),  // pre-submit callback
        success:       function (xml_http_request, msg)
   						{
   							CNMWaitWindowStop();
   							ret =  CNMParseAjaxResponse(xml_http_request, msg, output, extra_props);
   							return ret;
   						}


        // other available options:
        //url:       url         // override for form's 'action' attribute
        //type:      type        // 'get' or 'post', override for form's 'method' attribute
        //dataType:  null        // 'xml', 'script', or 'json' (expected server response type)
        //clearForm: true        // clear all form fields after successful submit
        //resetForm: true        // reset the form after successful submit

        // $.ajax options can be used here too, for example:
        //timeout:   3000

    };
    var id = '#'+fobj.id;
    $(id).ajaxSubmit(options);
    return false;
}

function CNMWaitWindowStart()
{
	document.body.style.cursor = 'wait';
	
	if(BLOCK_IMAGE.length>0)
	{
		$.blockUI.defaults.overlayCSS.opacity = '0';
		$.blockUI({ message:"<img width='20px' src='"+BLOCK_IMAGE+"'></img>"});
		 
	}
}

function CNMWaitWindowStop()
{
	if(BLOCK_IMAGE.length>0)
	{
		$.unblockUI();
		
	}
	
	document.body.style.cursor = 'default';
}


/*
*
* CNMSubmitAjax
*
*
*/
function CNMSubmitAjax(arguments,id_capa, extra_props)
{
	var ret;
	var _msg="";
	$.ajax
	(
		{
   			type: "POST",
   			url: CNMCONTROLLER,
   			cache: false,
			dataType :"html",
   			async: ASYNC,
   			data: arguments,
   			beforeSend: CNMWaitWindowStart(),

   			error:  function (o,msg,eoerror)
   					{
	   					CNMShowAjaxError(o,msg,eoerror);
   					},
   			success: function (msg)
   					 {
   					 	_msg=msg;
   					 	CNMWaitWindowStop();

   					 },
   			complete:function (xml_http_request)
   			{
   				ret =  CNMParseAjaxResponse(xml_http_request, _msg, id_capa, extra_props);
   				return ret;
   			}
 		}
 	);
}

/*
*
* CNMShowAjaxError
*
*
*/
function CNMShowAjaxError(o,msg,eoerror)
{
	CNMWaitWindowStop();
	alert('Error al contactar con el servidor:'+msg+"Desc:"+o.responseText());
}

/*
*
* CNMParseAjaxResponse
*
*
*/
function CNMParseAjaxResponse(xml_http_request, result, output, extra_props)
{
	  var ret="";

	  var type_response = CNMGetTypeOfAjaxResponse(xml_http_request, result);


	  switch(type_response)
	  {
	  		case CNMAJAXRESPONSE:
	  							  var xmlobject = CNMStringToXML(result);
  		  						  ret=CNMDisplayCNMAjaxResponse(xmlobject, output, extra_props);
	  							  break;

	  		case XHTML:			  ret = CNMDisplayXHTMLResponse(result);
	  							  break;

	  		case PXHTML:		  ret = CNMDisplayPXHTMLResponse(result, output, extra_props);
	  							  break;

	  		case TEXT:			  ret = CNMDisplayPXHTMLResponse(result, output);
	  							  break;
	  }

	  return ret;
}

function CNMDisplayCNMAjaxResponse(xmlobject, client_output, extra_props)
{
	var ret="";
	var cnm_ajax_response = xmlobject.getElementsByTagName("CNMAjaxResponse");
  	var cnmat = cnm_ajax_response.item(0);
  	
  	var cnmat_text = "";
  	
  	if ($.browser.msie)
	{
  		cnmat_text = cnmat.text;	
	}
  	else
  	{
  		cnmat_text = cnmat.textContent;
  	}
  	
	var server_output = cnmat.attributes.getNamedItem("display").value;

	switch(server_output)
	{
		case "inner":	
						CNMSetInnerHTML(client_output, cnmat_text);
						ret = client_output;
						break;

		case "formerrors":  if (FORMERRORS == "default")
							{
								CNMManageFormErrors(xmlobject);
							}
							else
							{
								manageFormErrors(xmlobject);
							}
							break;

		case "alert":		alert(cnmat_text);
							break;

		case "nocontent":
							break;

		case "exception":	var cadena=cnmat_text;
							alert(cadena);
							break;

		case "value":		CNMSetInnerHTML(client_output, cnmat_text);
							ret = client_output;
							break;

		case "body":		CNMXHtmlBodyWrite(cnmat_text);
							break;

		default:		  	CNMSetInnerHTML(server_output, cnmat_text);
							ret = server_output;
						  	break;
	}

	return ret;
}

function CNMDisplayXHTMLResponse(response)
{
	var output="page";

	CNMStringBodyWrite(response);

	return output;
}

function CNMDisplayPXHTMLResponse(response, output, extra_props)
{
	if(output == 'popup')
    {
		var newpopup = window.open('','',extra_props);
        newpopup.document.write(result);
		newpopup.document.close();
    }
	else if(output == CNMMODALPOPUP)
    {
     	CNMShowModalPopUp(response, extra_props);
	}
    else
    {
    	CNMSetInnerHTML(output, response);
    }

	return output;
}

function CNMGetTypeOfAjaxResponse(xml_http_request, result)
{
	//Posibles tipos: CNMAjaxResponse, XHTML completo o trozo de XHTML (PXHTML), o texto (TXT)

	if ( (result.indexOf("<CNMAjaxResponse") != -1 ) && (result.indexOf("</CNMAjaxResponse>") > 0 ) )
	{
		return CNMAJAXRESPONSE;
	}

	//Veamos si se puede convertir a XML
	var xmlobject = CNMStringToXML(result);

	if (xmlobject!=null)
	{
		//Cpnvertimos a JQuery
		var rxml = $(xmlobject);
		
		//Leemeos si hay tag body
		
		if ($.browser.msie)
		{
			if (result.indexOf("<body") >=0 )
			{
				return XHTML;
			}
		}
		else if (rxml.find("body").html() != null)
		{
			return XHTML;
		}
		return PXHTML;
	}
	else
	{
		if (result.indexOf("<body") >=0 )
		{
			return XHTML;
		}
		else
		{
			return TEXT;
		}
	}
}


/**
*  CNMManageFormErrors
*
*  Manejo por defecto de errores de formulario
*
*
*/
function CNMManageFormErrors(xml)
{
	var cnmat = xml.getElementsByTagName("CNMAjaxResponse").item(0);

	var formElements = cnmat.getElementsByTagName("form_element");

	for (i=0; i < formElements.length; i++)
	{
		//Obtenemos id
		var id = formElements.item(i).attributes.getNamedItem("id").value.toLowerCase();

		//Obtenemos elemento con ese id
		var ele = document.getElementById(id);

		if (ele == null)
		{
			//alert('Error: Elemento con ID:'+ id + ' No existe');
			continue;
		}

		//Obtenemos ret
		var ret = formElements.item(i).attributes.getNamedItem("ret").value;

		if (ele.className == null)
		{
			alert('Error: Elemento con ID:'+ id + ' No tiene class');
			return;
		}

		//Borramos elemento de error previo si lo hubiera
		var error_element = document.getElementById(id+"_error");
		if (error_element!=null)
		{
			$(error_element).remove();
		}

		if (ret == 'ERROR')
		{
			//Errror retornado por server
			var error_text="";
						
			if ($.browser.msie)
			{
				error_text = formElements.item(i).text;
			
			}
			else
			{
				error_text = formElements.item(i).textContent;
			}
			
			//Creamos span con id = id_name+_error
			var error_str = "<span class='"+FORMERRORS_CSS_ERROR_MSG+"' id='"+id+"_error'>";
			error_str = error_str + error_text +"</span>";

			//Insertamos tras el input o select
			$(ele).after(error_str);

			//Establecemos class error indicativo en elemento
			ele.className=FORMERRORS_CSS_INPUT_ERROR;

			//Establecemos alt
			ele.title=error_text;
		}
		else
		{
			//Establecemos clase normal
			ele.className=FORMERRORS_CSS_INPUT_NORMAL;
		}
	}
}

/**
* Tipos de respuesta del servidor
*/

//CNMAjaxResponse
var CNMAJAXRESPONSE=1;
//XHTML completo
var XHTML=2;
//XHTML parcial
var PXHTML=3;
//Texto
var TEXT=4;
//Binary
var BINARY=5;

/*
*
* CNMGetParams
* Devuelve String de la forma PARAMETRO=VALOR&PARAMETRO=VALOR a partir de los id's indicados
*
*
*/
function CNMGetParams(ids)
{
	var str = "";

	if ( ids!=null)
	{
		for (i=0;i < ids.length; i++)
		{
			//Si se encuantra '=' significara que no nos pasa el id , nos pasa el par parámetro / valor
			if (ids[i].indexOf('=')>0)
			{
				index = ids[i].indexOf('=');
				param = ids[i].substring(0,index);
				value = CNMUnEscape(ids[i].substring( eval (index+1) ));
			}
			else
			{
				var id = ids[i].toLowerCase();
				param = (document.getElementById(id)).name;
				value = CNMUnEscape(document.getElementById(id).value);
			}

	 		str += param+ "=" + value + "&";
		}
	}

	return str;

}
/*
*
*  CNMGetFormValues
*
*
*
*/
function CNMGetFormValues(fobj)
{
    var str = "";
    var valueArr = null;
    var val = "";
    var cmd = "";

	for(var i = 0;i < fobj.elements.length;i++)
  	{
    	switch(fobj.elements[i].type)
        {
             case "hidden":
                      str += fobj.elements[i].name + "=" + CNMUnEscape(fobj.elements[i].value) + "&";
                       break;

        	 case "text":
        	               str += fobj.elements[i].name + "=" + CNMUnEscape(fobj.elements[i].value) + "&";
              	           break;

			 case "radio":
        	 				if (fobj.elements[i].checked)
        	 			    {
        	               		str += fobj.elements[i].name + "=" + CNMUnEscape(fobj.elements[i].value) + "&";
        	 			    }
             	           break;

         	 case "password":
                 			  str += fobj.elements[i].name + "=" + CNMUnEscape(fobj.elements[i].value) + "&";
		                      break;

             case "select-one":

             		  if (fobj.elements[i].selectedIndex!=-1)
             		  {
	             		  var eselected = fobj.elements[i].options[fobj.elements[i].selectedIndex];
    	         		  var value = eselected.value;
             		  }
             		  else
             		  {
             		 	  var value="";
             		  }

                      str += fobj.elements[i].name + "=" + value + "&";
                      break;

        	 case "checkbox":
        	               str += fobj.elements[i].name + "=" + CNMUnEscape(fobj.elements[i].value) + "&";
              	           break;


        	 case "textarea":
        	 				str += fobj.elements[i].name + "=" + CNMUnEscape(fobj.elements[i].value) + "&";
              	            break;


        }

	}

    str = str.substr(0,(str.length - 1));

  	return str;
}

/*
*
* CNMSubmitParams
*
* Envia los parametros indicados id's o parametro=valor al controller y con la cnmaction
* indicada
*
*
*/

function CNMSubmitParams(ids, cnm_action, new_window, window_name, new_window_props)
{
	var action = CNMCONTROLLER;

	if (new_window!=null && new_window==true)
	{
		//Parseamos parámetros
		var str = CNMGetParams(ids);

		//Añadimos action
		str += CNMACTION+"=" + cnm_action;

		var url = action +'?'+str;
		window.open(url,window_name,new_window_props);
	}
	else
	{
		$(document.body).append("<form name='cform' id='cform' action='"+action+"' method='POST'>");
		
		if (ids != null)
		{
			//Recorremos id's y creamos formulario dinámicamente para enviarlo
			for (i=0;i < ids.length; i++)
			{
				//Si se encuantra '=' significara que no nos pasa el id , nos pasa el par parámetro / valor
				if (ids[i].indexOf('=')>0)
				{
					index = ids[i].indexOf('=');
					param = ids[i].substring(0,index);
					value = CNMUnEscape(ids[i].substring( eval (index+1) ));
				}
				else
				{
					param = (document.getElementById(ids[i])).name;
					value = CNMUnEscape(param.value);
				}

				$(document.cform).append("<input type='hidden' name='"+param+"' value='"+value+"'/>");
			}
		}


		$(document.cform).append("<input type='hidden' name='"+CNMACTION+"' value='"+cnm_action+"'/>");

		CNMSubmitFormId('cform');
	}
}


/*
*
* CNMSubmitCNMAction
*
*
*
*/
function CNMSubmitCNMAction(cnm_action, new_window, window_name, new_window_props)
{
	return CNMSubmitParams(null, cnm_action, new_window, window_name, new_window_props);
}


/*
*
* setValue
*
*
*
*/
function setValue(eid, value)
{
	document.getElementById(eid).value=value;
}

function setFormValue(form_name, form_element_id, value)
{
	document[form_name][form_element_id].value=value;
}



/*
*
* getValue
*
*
*
*/
function getValue(eid)
{
	return document.getElementById(eid).value;
}

/**
* CNMSetInnerHTML
*/

function CNMSetInnerHTML(id, html)
{
	html = jQuery.trim(html);

	if (id.indexOf('.value')>0)
	{
		index = id.indexOf('.value');
		var id_name = id.substring(0,index);

		var ele = document.getElementById(id_name);

		if (ele == null)
		{
			var msg ="Element : " + id_name +" no exist";
			alert('no existe');
			alert(msg);
			return;
		}

		ele.value = html;
	}
	else
	{
		var ele = document.getElementById(id);

		if (ele == null)
		{
			var msg ="Element : " + id +" no exist";
			alert('no existe');
			alert(msg);
			return;
		}

		if ($.browser.msie)
		{
			$('#'+id).html(html);	
		}
		else
		{
			ele.innerHTML = html;	
		}
	}
}

function CNMStringBodyWrite(str)
{
	var result = str;
	//Trimeamos
	result=$.trim(result);

	 
	//Leemeos head y body
	if ($.browser.msie)
	{
		document.open();
		document.write(result);
		document.close();
	}
	else
	{
		document.open();
		document.write(result);
		document.close();
/*		
		var xmlobject = CNMStringToXML(result);
	
		//Pasamos a XML
		//var r = parser.parseFromString(result, "text/xml");

		//Cpnvertimos a JQuery
		var rxml = $(xmlobject);
	
		var head = rxml.find("head").html();
		var body = rxml.find("body").html();
		$(document.body).html(body);
*/		
	}

	//Pintamos
	//$(document.head).html(head);  --> Error a investigar
}

function CNMXHtmlBodyWrite(html)
{
	//Cpnvertimos a JQuery
	var rxml = $(html);

	//Leemeos head y body
	var head = rxml.find("head").html();
	var body = rxml.find("body").html();


	//Pintamos
	//$(document.head).html(head);  --> Error a investigar

    $(document.body).html(body);

}

function setSelectOption(id, valor)
{
	var element = document.getElementById(id);

	for (i=0; i < element.options.length ; i ++)
	{

		if (element.options[i].value == valor)
		{
			element.selectedIndex = i;
			break;
		}

	}
}

function enableInputId(id)
{
	var element = document.getElementById(id);
	element.disabled=false;
}

function disableInputId(id)
{
	var element = document.getElementById(id);
	element.disabled=true;
}



function CNMStringToXML(s)
{
	s = jQuery.trim(s);
    var doc=null;

    var doc;

    if (window.ActiveXObject)
    {
        doc = new ActiveXObject('Microsoft.XMLDOM');
        doc.async = 'false';
        doc.loadXML(s);
    }
    else
    {
        doc = (new DOMParser()).parseFromString(s, 'text/xml');
    }

    return (doc && doc.documentElement && doc.documentElement.tagName!= 'parsererror') ? doc : null;
}

/*
*
* CNMSetCSSPropertyValue
*
*
*
*/
function CNMSetCSSPropertyValue(id, prop, value)
{
	var div = document.getElementById(id);
	$(div).css(prop,value);
}

/*
*
* CNMGetCSSPropertyValue
*
*
*
*/
function CNMGetCSSPropertyValue(id,prop)
{
	var div = document.getElementById(id);
	var value = $(div).css(prop);
	return value;
}


/*
*
* CNMGetFontSize
*
*
*
*/
function CNMGetFontSize(id)
{
	var div = document.getElementById(id);

	var sizepx = $(div).css("font-size");

	var index = sizepx.indexOf('px');
	var size = sizepx.substring(0,index);
	size = parseFloat(size);

	return size;
}


/*
*
* CNMSetFontSize
*
*
*
*/
function CNMSetFontSize(id, size)
{
	var div = document.getElementById(id);

	var new_size = parseFloat(size);

	$(div).css("font-size",new_size+"px");
}

/*
*
* CNMGetLineHeight
*
*
*
*/
function CNMGetLineHeight(id)
{
	var div = document.getElementById(id);

	var linehpx = $(div).css("line-height");

	var index = linehpx.indexOf('px');
	var lineh = linehpx.substring(0,index);
	lineh = parseFloat(lineh);

	return lineh;
}

/*
*
* CNMSetLineHeight
*
*
*
*/
function CNMSetLineHeight(id, lineh)
{
	var div = document.getElementById(id);

	var new_lineh = parseFloat(lineh);

	$(div).css("line-height",new_lineh+"px");

}

/*
*
* CNMIncreaseFontSize
*
*
*
*/
function CNMIncreaseFontSize(id,step)
{
	var size = CNMGetFontSize(id);
	var new_size = parseFloat(size);
	new_size = eval (new_size+step);
	CNMSetFontSize(id,new_size);
}

/*
*
* CNMDecreaseFontSize
*
*
*
*/
function CNMDecreaseFontSize(id,step)
{
	var size = CNMGetFontSize(id);
	var new_size = parseFloat(size);
	new_size = eval (new_size-step);
	CNMSetFontSize(id,new_size);
}

/*
*
* CNMIncreaseLineHeight
*
*
*
*/
function CNMIncreaseLineHeight(id,step)
{
	var lineh = CNMGetLineHeight(id);
	var new_lineh = parseFloat(lineh);
	new_lineh = eval (new_lineh+step);
	CNMSetLineHeight(id,new_lineh);
}

/*
*
* CNMDecreaseLineHeight
*
*
*
*/
function CNMDecreaseLineHeight(id,step)
{
	var lineh = CNMGetLineHeight(id);
	var new_lineh = parseFloat(lineh);
	new_lineh = eval (new_lineh-step);
	CNMSetLineHeight(id,new_lineh);
}


/*********************************************************************************
*
*       COOKIES
*
*
**********************************************************************************/


/*
*
* CNMSetCookie
*
*  name, value  - cookie name & value
*  expires      - cookie expiration date (defaults to end of current session)
*  path, domain - cookie path & domain (defaults to document's path & domain)
*  secure       - cookie sent only over secure connection
*
*  example CALLS:
*
*  setCookie("counter", "1");
*  setCookie("counter", "1", Date("January 01, 2010 00:00:01"));
*  setCookie("counter", "1", undefined, '/');
*
*/
function CNMSetCookie(name, value, expires, path, domain, secure)
{
  document.cookie =
    name+"="+escape(value)+
    (expires ? "; expires="+expires.toGMTString() : "")+
    (path    ? "; path="   +path   : "")+
    (domain  ? "; domain=" +domain : "")+
    (secure  ? "; secure" : "");
}

/*
*
* CNMSetCookieLT
*
*  name, value  - cookie name & value
*  lifetime - cookie lifetime in seconds
*  path, domain - cookie path & domain (defaults to document's path & domain)
*  secure       - cookie sent only over secure connection
*
*
*/
function CNMSetCookieLT(name, value, lifetime, path, domain, secure)
{
  if (lifetime) lifetime = new Date(Date.parse(new Date())+lifetime*1000);
  CNMSetCookie(name, value, lifetime, path, domain, secure);
}

/*
*
*  CNMGetCookie
*
*
*/
function CNMGetCookie(name)
{
  var cookie, offset, end;
  cookie  = " "+document.cookie;
  offset  = cookie.indexOf(" "+name+"=");
  if (offset == -1) return undefined;
  offset += name.length+2;
  end     = cookie.indexOf(";", offset)
  if (end    == -1) end = cookie.length;
  return unescape(cookie.substring(offset, end));
}

/*
*
*  CNMDelCookie
*
*
*/
function CNMDelCookie(name, path, domain)
{
  if (CNMGetCookie(name))
  {
   	 setCookie(name, "", new Date("January 01, 2000 00:00:01"), path, domain);
  }
}

function CNMUnEscape(value)
{
  	if ($.browser.msie)
	{
  		return escape(value);
	}
  	else
  	{
  		return unescape(value);
  	}

}

/***************************
*
****************************/
function CNMNumericInput(field, event, negative_symbol)
{
	var key = CNMEventGetKeyCode(event);

	// Was key that was pressed a numeric character (0-9) or backspace (8) or negative symbol? 
	if ( key > 47 && key < 58 || key == 8 || key == 0 || key == 46)
	{
		//Hemos de evitar el simbolo negativo??
		if (key == 45 && negative_symbol == false)
		{
			CNMEventPrevent(event);
			return
		}

		
		return;
	}

	// if so, do nothing   else
	// otherwise, discard character
	CNMEventPrevent(event);

}

function CNMDecimalInput(field, event, negative_symbol, max_fraction_digits)
{
	var key = CNMEventGetKeyCode(event);

	// Was key that was pressed a numeric character (0-9) or backspace (8) or 46 decimal point ? or negative (45)
	if ( key > 47 && key < 58 || key == 8 || key == 0 || key == 46 || key == 45)
	{
	
		//Hemos de evitar el simbolo negativo??
		if (key == 45 && negative_symbol == false)
		{
			CNMEventPrevent(event);
			return
		}

		
		//Si es un punto, chequeamos que no haya otro anterior
		if (key == 46)
		{
			if (field.value.indexOf(".") != -1)
			{
				//Prevenimos
				CNMEventPrevent(event);
				
				//Además hemos de ver si se ha alcanzado el máximo número de digitos decimales
				
				
				return;
			}
		}
		
		return;
	}
	CNMEventPrevent(event);

}

function CNMControlMaxSizeTextArea(field, maxlimit)
{
	if (field.value.length > maxlimit)
	{
		field.value = field.value.substring(0, maxlimit);
	}
}


function CNMEventGetKeyCode(event)
{
	var key;

	if (window.event)
		   key = event.keyCode;
	else
		   key = event.which;

	return key;
}

function CNMEventPrevent(event)
{
	if (window.event)
	{
		 //IE
		window.event.returnValue = null;
	}
	else
	{
		 //Firefox
		event.preventDefault();
	}
}

function CNMSetDate(id)
{
	var ele = document.getElementById(id);

	var inputId = 'img_date_'+id;

	Calendar.setup
	(
		{
			inputField:id,
			ifFormat:"%d/%m/%Y",
			showsTime      :    false,
			singleClick    :    true,
			button: inputId,
			onUpdate:function(cal)
			{
				CNMSetDateParts(id,cal)
			},

			showsTime:false
		}
    );
}

function CNMSetDateParts(id,cal)
{
		var date = cal.date;



		var selectMonth = document.getElementById(id+'_MONTH');
		selectMonth.value = date.getMonth()+1;

		if (selectMonth.value.length == 1)
		{
			selectMonth.value = '0'+ selectMonth.value;
		}

		var selectDay = document.getElementById(id+'_DAY');
		selectDay.value = date.getDate();

		if (selectDay.value.length == 1)
		{
			selectDay.value = '0'+ selectDay.value;
		}


		var selectYear = document.getElementById(id+'_YEAR');
		selectYear.value = date.getFullYear();

		var ele = document.getElementById(id);
}

function CNMFillerDateDay(id)
{
	var ele_id = document.getElementById(id+'_DAY');
	var ele_value = ele_id.value;
	if (ele_value.length==1)
	{
		ele_value = '0'+ele_value;
		document.getElementById(id+'_DAY').value=ele_value;
	}
	CNMFillerDate(id);
}

function CNMFillerDateMonth(id)
{
	var ele_id = document.getElementById(id+'_MONTH');
	var ele_value = ele_id.value;
	if (ele_value.length==1)
	{
		ele_value = '0'+ele_value;
		document.getElementById(id+'_MONTH').value=ele_value;
	}
	CNMFillerDate(id);
}

function CNMFillerDateYear(id)
{
	var ele_id = document.getElementById(id+'_YEAR');
	var ele_value = ele_id.value;
	if (ele_value.length==2)
	{
		ele_value = '20'+ele_value;
		document.getElementById(id+'_YEAR').value=ele_value;
	}

	CNMFillerDate(id);
}

function CNMFillerDate(id)
{
	var ele_id = document.getElementById(id);

	var ele_day = document.getElementById(id+'_DAY');
	var ele_month = document.getElementById(id+'_MONTH');
	var ele_year = document.getElementById(id+'_YEAR');

	var ele_value = ele_day.value +'/' + ele_month.value + '/' + ele_year.value;

	document.getElementById(id).value=ele_value;
}

var CNMMODALPOPUP="cnmmodalpopup";
var CNMMODALPOPUP_CONTAINER="cnmmodalpopup_container";
var CNMMODALPOPUP_BODY="cnmmodalpopup_body";


/**
* CNMShowModalPopUp
*
* content: contenido a mostrar dentro,
* window_properties: propiedades (x=100;y=100;w=100;h=100)
*
*
*
**/
function CNMShowModalPopUp(content, window_properties)
{

	var div_modal = document.getElementById(CNMMODALPOPUP);

	if (div_modal == null)
	{
		var msg ="Element : cnmmodalpopup no exist";
		alert(msg);
		return;
	}


	if (window_properties!=null && window_properties.length>0)
	{
		//Buscamos propiedades de pantalla
		var wprops = window_properties.split(";");
		var index;

		index=wprops[0].indexOf('=');
		index = eval(index+1);
		var x = wprops[0].substring(index);

		index=wprops[1].indexOf('=');
		index = eval(index+1);
		var y = wprops[1].substring(index);

		index=wprops[2].indexOf('=');
		index = eval(index+1);
		var w = wprops[2].substring(index);

		index=wprops[3].indexOf('=');
		index = eval(index+1);
		var h = wprops[3].substring(index);

		//alert('wproperties: x:'+x+' y:'+y+' w:'+w+' h:'+h);

		//Establecemos propiedades
		CNMSetCSSPropertyValue(CNMMODALPOPUP_CONTAINER,'width',w+"px");
		CNMSetCSSPropertyValue(CNMMODALPOPUP_CONTAINER,'height',h+"px");
		CNMSetCSSPropertyValue(CNMMODALPOPUP_CONTAINER,'left',x+"px");
		CNMSetCSSPropertyValue(CNMMODALPOPUP_CONTAINER,'top',y+"px");

	}

	//Pintamos contenido
	document.getElementById(CNMMODALPOPUP_BODY).innerHTML = content;


	//Visualizamos
	div_modal.style.display = "block";


	window.onscroll = function ()
	{
		 div_modal.style.top = document.body.scrollTop;
	};

    div_modal.style.top = document.body.scrollTop;

}

/**
* CNMHideModalPopUp
*
*
*
*
*
*
**/
function CNMHideModalPopUp()
{
	document.getElementById(CNMMODALPOPUP).style.display = "none";
	document.getElementById(CNMMODALPOPUP_BODY).innerHTML = "";
}


