/**********************************************************************************************************************************************************************************************************************/
function GetLocalidades()
{
	var ddlLocalidad = document.getElementById('ddlLocalidad');
	
	VaciarComboConEncabezado(ddlLocalidad);
	GetLocalidadesxProvincia(ddlLocalidad);
	
	ddlLocalidad = null;
}
/**********************************************************************************************************************************************************************************************************************/
function VaciarComboConEncabezado(elemento)
{
	while (elemento.options.length > 1)
	{
		for (i=1; i<elemento.options.length; i++)
		{
			elemento.options.remove(1);
		}
	}
}
/**********************************************************************************************************************************************************************************************************************/
function GetLocalidadesxProvincia(elemento)
{
	if (document.getElementById('ddlProvincia'))
	{
		if (document.getElementById('ddlProvincia').selectedIndex == -1)
		{
			return;
		}
	}
	else
	{
		return;
	}

	var xmlHTTP = CrearXMLHTTP();
	
	if (xmlHTTP != null)
	{
		xmlHTTP.open ('Post','Post.aspx?Id=1&IdProvincia=' + document.getElementById('ddlProvincia')[document.getElementById('ddlProvincia').selectedIndex].value, true);
		xmlHTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xmlHTTP.onreadystatechange = function()
									 {
										if (xmlHTTP.readyState == 4)
										{
											if (xmlHTTP.status == 200)
											{
												if (xmlHTTP.responseText != '')
												{
													var Resultado;
													Resultado = xmlHTTP.responseText.split('|&*&|');
													
													if (Resultado[0] == '0') //Si no existe error
													{
														var Respuesta;
														var Items;

														Respuesta = Resultado[1].split('|&-&|');
														
														if (elemento)
														{
															for (i=0; i<Respuesta.length; i++)
															{
																Items = Respuesta[i].split('|&+&|');
																elemento.options[i+1] = new Option(Items[1],Items[0]);
															}
														}

														Respuesta = null;
														Items = null;
														
														SeleccionarLocalidad();
													}
													else //Si se produjo un error
													{
														
													}
													
													Resultado = null;
												}
											}
											else
											{
																								
											}
										}
									}
		if (xmlHTTP.readyState == 4)
		{
			return;
		}
		xmlHTTP.send(null);
	}
}
/**********************************************************************************************************************************************************************************************************************/
function CrearXMLHTTP()
{
	var xmlHttp = null;
	
	if (window.ActiveXObject) 
	{
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else 
	{
		if (window.XMLHttpRequest)
		{
			xmlHttp = new XMLHttpRequest();
		}
	}
	
	return xmlHttp;
}
/**********************************************************************************************************************************************************************************************************************/
function OnLoadFocus(formulario,objeto)
{
	document.forms[formulario].item(objeto).focus();
}
/**********************************************************************************************************************************************************************************************************************/
function SubmitPage(Boton)
{
	if (event.keyCode == 13)
	{
		document.all(Boton).click();
		event.returnValue = false;
	}
}
/**********************************************************************************************************************************************************************************************************************/
function pickDate(Src)
{ 
	window.open("Controles/Calendar/CalendarPopUp.aspx?src=" + Src,"_blank", "height=290, width=250, left=100, top=100, " +  "location=no,	menubar=no, resizable=no, " + "scrollbars=no, titlebar=no, toolbar=no", true);
}
/**********************************************************************************************************************************************************************************************************************/
function check_date(field){
	var checkstr = "0123456789";
	var DateField = field;
	var Datevalue = "";
	var DateTemp = "";
	var seperator = "/";
	var day;
	var month;
	var year;
	var leap = 0;
	var err = 0;
	var i;
	var DateReverse = "";
	err = 0;
	DateValue = DateField.value;
	// separo los dias meses años
	Pasada=0;
	Unidad="";
		/* Delete all chars except 0..9 */
		for (i = 0; i < DateValue.length; i++) {
		if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
			Unidad += DateValue.substr(i,1);
		}
		else {
		// encontré un separador
		// hago un pad de la unidad para completarlo en 2
			Pasada++;
			if (Pasada<=2) {
			Unidad = "00" + Unidad; 
			Unidad = Unidad.substr(Unidad.length-2,2); 
			DateTemp+= Unidad; 
			Unidad="";
			}
		}
		}
	if (Unidad.length==1){
		Unidad = "00" + Unidad; 
		Unidad = Unidad.substr(Unidad.length-2,2); 
	}   
	DateTemp += Unidad;
	if (Pasada==1){
		//falta el año
		FechaActual= new Date()
		DateTemp+= FechaActual.getFullYear();
	}
	DateValue = DateTemp;
	/* Always change date to 8 digits - string*/
	/* if year is entered as 2-digit / always assume 20xx */
	if (DateValue.length == 6) {
		DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2); }
	if (DateValue.length != 8) {
		err = 19;}
	/* year is wrong if year = 0000 */
	year = DateValue.substr(4,4);
	if (year == 0) {
		err = 20;
	}
	/* Validation of month*/
	month = DateValue.substr(2,2);
	if ((month < 1) || (month > 12)) {
		err = 21;
	}
	/* Validation of day*/
	day = DateValue.substr(0,2);
	if (day < 1) {
		err = 22;
	}
	/* Validation leap-year / february / day */
	if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
		leap = 1;
	}
	if ((month == 2) && (leap == 1) && (day > 29)) {
		err = 23;
	}
	if ((month == 2) && (leap != 1) && (day > 28)) {
		err = 24;
	}
	/* Validation of other months */
	if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
		err = 25;
	}
	if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
		err = 26;
	}
	/* if 00 ist entered, no error, deleting the entry */
	if ((day == 0) && (month == 0) && (year == 00)) {
		err = 0; day = ""; month = ""; year = ""; seperator = "";
	}
	/* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
	if (err == 0) {
		DateField.value = day + seperator + month + seperator + year;
	}
	/* Error-message if err != 0 */
	else {
		alert("La fecha es incorrecta");
		DateField.select();
		DateField.focus();
	}
}
/**********************************************************************************************************************************************************************************************************************/
function ValidarCUIT(obCUIT)
{
 var lcCUIT;
 var lcBloque1;
 var lcBloque2;
 tcCUIT=obCUIT.value

 lcCUIT = Trim(ChrTran(tcCUIT,ChrTran(tcCUIT,"1234567890",""),""));

 if (parseFloat(lcCUIT) == 0)
 { 
    return false;
 }
  
 if (lcCUIT.length == 11)
 {
    if (ValidarDigitoCuit(lcCUIT))
    {
		obCUIT.value = lcCUIT.substr(0,2) + "-" + lcCUIT.substr(2,8) + "-" + lcCUIT.substr(10,1)
		return true;
	}
	else
	{
		document.getElementById('lblNota').innerHTML = 'El C.U.I.T. ingresado es erróneo.';
		document.getElementById('txtCUIT').focus();
		return false;
	}
}
else
{
    if (lcCUIT == '')
    {
		return false;
	}
	
	document.getElementById('lblNota').innerHTML = 'C.U.I.T. incorrecto.';
	document.getElementById('txtCUIT').focus();
	return false;
   }
}
/**********************************************************************************************************************************************************************************************************************/	
function ValidarDigitoCuit(tcBloque)
{
  var Pond = '234567';
  var lnSuma = 0;
  var lnLargo = tcBloque.length;
  var ln; 
  var lcDigito = tcBloque.substr(lnLargo-1, 1);
  var lcBloque = tcBloque.substr(0, lnLargo - 1);
  var Acumulador = 0;

  for (ln = 1; ln < lnLargo; ln++)
  {
	operando1 = parseFloat(lcBloque.substr(lnLargo - ln - 1, 1));
	Acumulador = (Acumulador > 5 ? 0 : Acumulador) + 1;
	operando2 = parseFloat(Pond.substr( Acumulador-1, 1));
	lnSuma += (operando1 * operando2);
   }
 
   if ((lnSuma % 11) == 0)
   {
       //si el resto es 0 entonces el digito tiene que ser 0
        return (lcDigito == '0');
   }
   else
   {
       ultDigito = String(11 - (lnSuma % 11));
       return (lcDigito == ultDigito.substr( ultDigito.length - 1 ,1))
   }
}
/**********************************************************************************************************************************************************************************************************************/	
function ChrTran(Cad1,Cad2,Cad3)
{
    var Result = "";
    var i;
    var c;
    var p;

    for (i = 0; i < Cad1.length; i++)
    {
		c = Cad1.substr( i, 1);
		p = Cad2.indexOf(c) ;
		Result += ((p == -1) ? c : Cad3.substr(p, 1));
    }
    
   return  Result;
}
/**********************************************************************************************************************************************************************************************************************/	
function Currency(obj)
	{
		
		if(obj.valant != obj.value){
			val = obj.value
			largo = val.length
			val = val.split("")
			val2 = ''
			val3=''
			val4=''
			for(r=0;r<val.length;r++){
				val2 += val[r]	
			}
			for(x=0;x<val2.length;x++)
				{
				if(val2.charAt(x).charCodeAt()==36)
					{val2 = val2.replace(val2.charAt(x),"")}
				if(parseInt(val2.charAt(x).charCodeAt())==46)
					{
					val3=val2.split(".")
					
					if (val3.length>2)
						{
						for(s=0;s<val3.length;s++)
							{
							if (val4=='')
								{
															
								val4=val3[s] + "."
								}
							else
								{								
								
								val4=val4 + val3[s]
								}	
							}
						val2=val4;
						obj.value = val2;
						obj.valant = val2;						
						return;
						}
					else
						{
								val3=val2.split(".")

									for(z=0;z<val3[0].length;z++){
										if(val3[0].charAt(z).charCodeAt()==36)
											{val3[0] = val3[0].replace(val3[0].charAt(z),"")}										
										if(isNaN(val3[0].charAt(z))){
											if (val3[0].charAt(z).charCodeAt()!=40 && val3[0].charAt(z).charCodeAt()!=41 && val3[0].charAt(z).charCodeAt()!=43 && val3[0].charAt(z).charCodeAt()!=42)
												{
												if (val3[0].charAt(0).charCodeAt()==45)
													{
													if (val3[0].charAt(z).charCodeAt()==45)
														{
														letra = new RegExp(val3[0].charAt(z),"g")
														val3[0] = "-" + val3[0].replace(letra,"")
														}
													else
														{
														letra = new RegExp(val3[0].charAt(z),"g")
														val3[0] = val3[0].replace(letra,"")
														}
													}
												else
													{

														letra = new RegExp(val3[0].charAt(z),"g")
														val3[0] = val3[0].replace(letra,"")

													}
												}
											else
												{

													val3[0] = val3[0].replace(val3[0].charAt(z),"") 

												}	
											}

										}	
								
									for(z=0;z<val3[1].length;z++){
										if(val3[1].charAt(z).charCodeAt()==36)
											{val3[1] = val3[1].replace(val3[1].charAt(z),"")}
										if(isNaN(val3[1].charAt(z))){
											if (val3[1].charAt(z).charCodeAt()!=40 && val3[1].charAt(z).charCodeAt()!=41 && val3[1].charAt(z).charCodeAt()!=43 && val3[1].charAt(z).charCodeAt()!=42)
												{
												letra = new RegExp(val3[1].charAt(z),"g")
												val3[1] = val3[1].replace(letra,"")
												}
											else
												{
												val3[1] = val3[1].replace(val3[1].charAt(z),"") 
												}	
											}

										}														
						val2=val3[0] + "." + val3[1];
						obj.value = val2;
						obj.valant = val2;							
						return;
						}
					}
				
				
				}
				

				if (parseInt(val2.charAt(0).charCodeAt())!=45 && val2.length==1)
					{ 
					for(z=0;z<val2.length;z++){
						if(isNaN(val2.charAt(z))){
							if (val2.charAt(z).charCodeAt()!=40 && val2.charAt(z).charCodeAt()!=41 && val2.charAt(z).charCodeAt()!=43 && val2.charAt(z).charCodeAt()!=42)
								{
									letra = new RegExp(val2.charAt(z),"g")
									val2 = val2.replace(letra,"")
	
								}
							else
								{
									val2 = val2.replace(val2.charAt(z),"") 
								}	
							}
						}
					}
				else
					{
					for(z=1;z<val2.length;z++){
						if(isNaN(val2.charAt(z))){
							if (val2.charAt(z).charCodeAt()!=40 && val2.charAt(z).charCodeAt()!=41 && val2.charAt(z).charCodeAt()!=43 && val2.charAt(z).charCodeAt()!=42)
								{
								if (parseInt(val2.charAt(0).charCodeAt())==45)
									{
										if (parseInt(val2.charAt(z).charCodeAt())==45)
											{
											letra = new RegExp(val2.charAt(z),"g")
											val2 ="-" + val2.replace(letra,"")
											}
										else
											{
											letra = new RegExp(val2.charAt(z),"g")
											val2 = val2.replace(letra,"")									
											}	
									}
								else
									{
									letra = new RegExp(val2.charAt(z),"g")
									val2 =val2.replace(letra,"")
									}							
								}
							else
								{
								if (parseInt(val2.charAt(0).charCodeAt())==45)
									{
									val2 = val2.replace(val2.charAt(z),"") }
								else
									{
									if (parseInt(val2.charAt(z).charCodeAt())==45)
										{
										val2 ="-" + val2.replace(val2.charAt(z),"") 
										}
									else
										{
										val2 = val2.replace(val2.charAt(z),"") 
										}	
									}
								}	
							}
						}				
					}	
			
			obj.value = val2;
			obj.valant = val2;
			}	

	}
/**********************************************************************************************************************************************************************************************************************/
function ValCurrency(obj)
{
	if (isNaN(obj.value))
	{
		obj.value='0.00';
	}
	else
	{
		obj.value= NFormatCurrency(obj.value);
	}
}
/**********************************************************************************************************************************************************************************************************************/
function Seleccion(obj)
{
	obj.maxlength = '51';
	
	if(!window.showModalDialog)
	{ 
		window.top.captureEvents(Event.KEYPRESS);
		window.onBlur = obj.select();
	}
	else	
	{
		window.event.srcElement.select();
	} 
}
/**********************************************************************************************************************************************************************************************************************/
function NFormatCurrency(Expression)
{
	var iNumDecimals = 2;
	var dbInVal = Expression;
	var bNegative = false;
	var iInVal = 0;
	var strInVal
	var strWhole = '', strDec = '';
	var strTemp = '', strOut = '';
	var iLen = 0;

	if (dbInVal < 0)
	{
		bNegative = true;
		dbInVal *= -1;
	}

	dbInVal = dbInVal * Math.pow(10, iNumDecimals)
	iInVal = parseInt(dbInVal);
	if ((dbInVal - iInVal) >= .5)
	{
		iInVal++;
	}
	strInVal = iInVal + "";
	strWhole = strInVal.substring(0, (strInVal.length - iNumDecimals));
	strDec = strInVal.substring((strInVal.length - iNumDecimals), strInVal.length);
	while (strDec.length < iNumDecimals)
	{
		strDec = "0" + strDec;
	}
	iLen = strWhole.length;
	if (iLen >= 3)
	{
		while (iLen > 0)
		{
			strTemp = strWhole.substring(iLen - 3, iLen);
			if (strTemp.length == 3)
			{
				strOut =  strTemp + strOut;
				iLen -= 3;
			}
			else
			{
				strOut = strTemp + strOut;
				iLen = 0;
			}
		}
		if (strOut.substring(0, 1) == ",")
		{
			strWhole = strOut.substring(1, strOut.length);
		}
		else
		{
			strWhole = strOut;
		}
	}
	if (bNegative)
	{
		return "-" + strWhole + "." + strDec;
	}
	else
	{
		return strWhole + "." + strDec;
	}
}
/**********************************************************************************************************************************************************************************************************************/	
function Integer(obj)
{
	if(obj.value.length > 0) 
	{
		obj.value = obj.value.replace(/[^\d]+/g, ''); 
	}
}
/**********************************************************************************************************************************************************************************************************************/
function IsNumeric(strString)
{
	var strValidChars = "0123456789.,";
	var strChar;
	var blnResult = true;

	for (i = 0; i < strString.length && blnResult == true; i++)
	{
		strChar = strString.charAt(i);
		if (strValidChars.indexOf(strChar) == -1)
		{
			blnResult = false;
		}
	}
    
	return blnResult;
}
/**********************************************************************************************************************************************************************************************************************/
function IsInteger(strString)
{
	var strValidChars = "0123456789";
	var strChar;
	var blnResult = true;

	for (i = 0; i < strString.length && blnResult == true; i++)
	{
		strChar = strString.charAt(i);
		if (strValidChars.indexOf(strChar) == -1)
		{
			blnResult = false;
		}
	}
    
	return blnResult;
}
/**********************************************************************************************************************************************************************************************************************/
// Esta funcion recibe 2 string con fechas del formato:
// dd/mm/yyyy y las compara. Devuelve True si strDate1 > strDate2
// si no False. 
function DateChronology(strDate1, strDate2)
{
	var bResponse;

	var vMin = '0';
	var vHour = '0';
	var vDay;
	
	if (strDate1 != "")
	{       //Cargo el 1 Date
			var Array1 = strDate1.split('/');
			var vMonth=Array1[1];
			var vYear = Array1[2];
			vDay=Array1[0];
			
			var dDate1 = new Date(vYear, vMonth, vDay, vHour, vMin);
	}

	if (strDate2!="")
	{       //Cargo el 2 Date
			Array1 = strDate2.split('/');
			vMin = '0';
			vHour = '0';
			vDay = '0';

			vMonth=Array1[1];
			vYear = Array1[2];
			vDay=Array1[0];

			var dDate2 = new Date(vYear, vMonth, vDay, vHour, vMin);
	}
	
	if ((strDate1=="")||(strDate2==""))
	{
		bResponse = true;
	}
	else
	{
		bResponse = (dDate1 <= dDate2);
	}

	return (bResponse);
}
/**********************************************************************************************************************************************************************************************************************/
function ValidarEmail(email)
{
	var filter=/^[A-Za-z][A-Za-z0-9_]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/;
	
	if (filter.test(email))
	{
		return true;
	}
	else
	{
		return false;
	}
}
/**********************************************************************************************************************************************************************************************************************/
function ValidarCaracteres(email)
{
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
  
  for (var i=0; i < email.length; i++)
  {
    var letter = email.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1)
    {
		continue;
	}
    parsed = false;
    break;
  }
  
  return parsed;
}
/**********************************************************************************************************************************************************************************************************************/
function read_querystring()
{
   var a_out = new Object();
   var s_loc = String(location.href);

	if(s_loc.indexOf('?')>0)
	{
		var p;
		var s_query = s_loc.substr(s_loc.indexOf('?')+1);
		var a_query = s_query ? s_query.split('&') : new Array();

		for(var i=0; i<a_query.length; i++)
		{
			p = a_query[i].split('=');
			a_out[p[0]] = p[1].replace(/\+/g, ' ');
		}
	}
	
   return a_out;
}
/**********************************************************************************************************************************************************************************************************************/
function LTrim(String)
{
	var i = 0;
	var j = String.length - 1;

	if (String == null)
	{
		return (false);
	}

	for (i = 0; i < String.length; i++)
	{
		if (String.substr(i, 1) != ' ' && String.substr(i, 1) != '\t')
		{
			break;
		}
	}

	if (i <= j)
	{
		return (String.substr(i, (j+1) - i));
	}
	else
	{
		return ('');
	}
}
/**********************************************************************************************************************************************************************************************************************/
function RTrim(String)
{
	var i = 0;
	var j = String.length - 1;

	if (String == null)
	{
		return (false);
	}

	for(j = String.length - 1; j >= 0; j--)
	{
		if (String.substr(j, 1) != ' ' && String.substr(j, 1) != '\t')
		{
			break;
		}
	}

	if (i <= j)
	{
		return (String.substr(i, (j+1)-i));
	}
	else
	{
		return ('');
	}
}
/**********************************************************************************************************************************************************************************************************************/
function Trim(String)
{
	if (String == null)
	{
		return (false);
	}

	return RTrim(LTrim(String));
}
/**********************************************************************************************************************************************************************************************************************/
