//----------------------------------------------------------------
function setReadOnly(c,t){
if (t==true){c.setAttribute('readOnly','readOnly');c.style.backgroundColor="#eaeaea";
}else{c.removeAttribute('readOnly'); c.style.backgroundColor="#ffffff";}
}
//----------------------------------------------------------------
function addCUITdash(c, evt){
var inputKey = ''; var e = evt; 
if (_dom==3) { inputKey += event.keyCode; var e = window.event;}
else if (_dom==1) { inputKey += evt.charCode; }
else { inputKey += evt.which; }
if (inputKey==8 && (c.value.length==2 || c.value.length==11)) c.value=c.value.substr(0,c.value.length-1 );
var a = c.value.split ("-").join(""); 
if ( a.length > 10 ){c.value = a.substr(0,2) + "-" + a.substr(2,8) + "-" + a.substr(10,1);}
else if ( a.length > 1 ){c.value = a.substr(0,2) + "-" + a.substr(2); }
}
//----------------------------------------------------------------
function validateNumKeyCUITn(evt,nn){
var inputKey = ''; var e = evt; 
if (_dom==3) { inputKey += event.keyCode; var e = window.event;}
else if (_dom==1) { inputKey += evt.charCode; }
else { inputKey += evt.which; }
if((inputKey>47 && inputKey<58 ) || (nn=="nueva" && (inputKey==110 || inputKey==117 || inputKey==101  || inputKey==118 || inputKey==97))) return;
if (e.stopPropagation) {e.stopPropagation();e.preventDefault();}else{e.cancelBubble = true;e.returnValue = false;}
return false;}
//----------------------------------------------------------------
function addCUITndash(c, evt){ nn="nueva";
if(c.value!=nn.substr(0,c.value.length)){
var inputKey = ''; var e = evt; 
if (_dom==3) { inputKey += event.keyCode; var e = window.event;}
else if (_dom==1) { inputKey += evt.charCode; }
else { inputKey += evt.which; }
if (inputKey==8 && (c.value.length==2 || c.value.length==11)) c.value=c.value.substr(0,c.value.length-1 );
var a = c.value.split ("-").join(""); 
if ( a.length > 10 ){c.value = a.substr(0,2) + "-" + a.substr(2,8) + "-" + a.substr(10,1);}
else if ( a.length > 1 ){c.value = a.substr(0,2) + "-" + a.substr(2); }}
}
//----------------------------------------------------------------
function validaCuit(c){
dc = d.bol_cuit;
if (c.toLowerCase()=="nueva"){setReadOnly(d.bol_entidad,false);SH('S','iva_tipo'); return true;}
numero = new String(c); var ok = 1; var validos = "0123456789-";
for (i=0;i<numero.length;i++){if (validos.indexOf(numero.charAt(i)) == "-1") ok = 0;}
if(numero.charAt(2)!="-" || numero.charAt(11)!="-") ok = 0;
if (ok == 0) {alert("Debe ingresar el CUIT\ncon el formato 99-99999999-9"); dc.focus(); return false;}
c = c.replace("-", ""); c = c.replace("-", "");
if (c.length!=11){
if (c.length>11){msg = " más.\n";}else{msg = " menos.\n";}
alert(" Ha ingresado " + Math.abs(c.length - 11) + " dígito(s) de "+msg);
dc.focus(); return false;
}
var vf = "5,4,3,2,7,6,5,4,3,2,0";
var VectorFactor= vf.split(",");
var VectorCuit = new Array();
var Sumatoria = 0;
for (i=0; i<=10; i++){ VectorCuit[i] = c.charAt(i);}
for (i=0; i<=10; i++){ Sumatoria = Sumatoria + VectorCuit[i] * VectorFactor[i]; }
var	Resto = Sumatoria % 11;
if (Resto==0) {DigVerif = 0;}	else {DigVerif = 11 - Resto; if (DigVerif==10) DigVerif = 9}
if (DigVerif!=VectorCuit[10]){alert("CUIT inválido! \nDígito verificador correcto: "+DigVerif); dc.focus(); return false; }
return true;}

//----------------------------------------------------------------
function validateNoAcute(evt){
var inputKey = ''; var e = evt; 
if (_dom==3) { inputKey += event.keyCode; var e = window.event;}
else if (_dom==1) { inputKey += evt.charCode; }
else { inputKey += evt.which; }
if((inputKey>64 && inputKey<91) || (inputKey>96 && inputKey<123) || inputKey==32 || inputKey==220 || inputKey==252 || inputKey==209 || inputKey==241) return; 
if (e.stopPropagation) {e.stopPropagation();e.preventDefault();}else{e.cancelBubble = true;e.returnValue = false;}
return false;
}
Array.prototype.inArray = function (value) {
	var i;
	for (i=0; i < this.length; i++) {
		if (this[i] === value) {
			return true;
		}
	}
	return false;
};

//---------------------------------------------------------------- 
//help
function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	}
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
		EventCache.add(obj, type, fn);
	}
	else {
		obj["on"+type] = obj["e"+type+fn];
	}
}
	
var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				item[0][item[1]] = null;
			};
		}
	};
}();
addEvent(window,'unload',EventCache.flush);


//----------------------------------------------------------------
function isDate(p_Expression){
return !isNaN(new Date(p_Expression));}
//----------------------------------------------------------------
function dateAdd(p_Interval, p_Number, p_Date){
if(!isDate(p_Date)){return "fecha inválida: '" + p_Date + "'";}
if(isNaN(p_Number)){return "número inválido: '" + p_Number + "'";}

p_Number = new Number(p_Number);
var dt = new Date(p_Date);
switch(p_Interval.toLowerCase()){
case "yyyy": {// year
dt.setFullYear(dt.getFullYear() + p_Number);break;}
case "q": {// quarter
dt.setMonth(dt.getMonth() + (p_Number*3));break;}
case "m": {// month
dt.setMonth(dt.getMonth() + p_Number);break;}
case "y":// day of year
case "d":// day
case "w": {// weekday
dt.setDate(dt.getDate() + p_Number);break;}
case "ww": {// week of year
dt.setDate(dt.getDate() + (p_Number*7));break;}
case "h": {// hour
dt.setHours(dt.getHours() + p_Number);break;}
case "n": {// minute
dt.setMinutes(dt.getMinutes() + p_Number);break;}
case "s": {// second
dt.setSeconds(dt.getSeconds() + p_Number);break;}
case "ms": {// second
dt.setMilliseconds(dt.getMilliseconds() + p_Number);break;}
default: {
return "intervalo inválido: '" + p_Interval + "'";}
}
return dt;
}
//----------------------------------------------------------------
function weekdayName(p_Date, p_abbreviate){
if(!isDate(p_Date)){return "fecha inválida: '" + p_Date + "'";}
var dt = new Date(p_Date);
var retVal = dt.toString().split(' ')[0];
var retVal = Array('Domingo','Lunes','Martes','Miércoles','Jueves','Viernes','Sábado')[dt.getDay()];
if(p_abbreviate==true){retVal = retVal.substring(0, 3)}// abbr to 1st 3 chars
return retVal;
}
//----------------------------------------------------------------
function monthName(p_Date, p_abbreviate){
if(!isDate(p_Date)){return "invalid date: '" + p_Date + "'";}
var dt = new Date(p_Date);
var retVal = Array('Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agost','Septiembre','Octubre','Noviembre','Diciembre')[dt.getMonth()];
if(p_abbreviate==true){retVal = retVal.substring(0, 3)}// abbr to 1st 3 chars
return retVal;
}
//----------------------------------------------------------------
function datePart(p_Interval, p_Date, p_firstdayofweek, p_firstweekofyear){
if(!isDate(p_Date)){return "fecha inválida: '" + p_Date + "'";}

var dtPart = new Date(p_Date);
switch(p_Interval.toLowerCase()){
case "yyyy": return dtPart.getFullYear();
case "q": return parseInt(dtPart.getMonth()/3)+1;
case "m": return dtPart.getMonth()+1;
case "y": return dateDiff("y", "1/1/" + dtPart.getFullYear(), dtPart);// day of year
case "d": return dtPart.getDate();
case "w": return dtPart.getDay();// weekday
case "ww":return dateDiff("ww", "1/1/" + dtPart.getFullYear(), dtPart);// week of year
case "h": return dtPart.getHours();
case "n": return dtPart.getMinutes();
case "s": return dtPart.getSeconds();
case "ms":return dtPart.getMilliseconds();// millisecond// 
default: return "intervalo inválido: '" + p_Interval + "'";
}
}
//----------------------------------------------------------------
function dateDiff(p_Interval, p_Date1, p_Date2, p_firstdayofweek, p_firstweekofyear){
if(!isDate(p_Date1)){return "fecha inválida: '" + p_Date1 + "'";}
if(!isDate(p_Date2)){return "fecha inválida: '" + p_Date2 + "'";}
var dt1 = new Date(p_Date1);
var dt2 = new Date(p_Date2);

var iDiffMS = dt2.valueOf() - dt1.valueOf();
var dtDiff = new Date(iDiffMS);
var nYears  = dt2.getUTCFullYear() - dt1.getUTCFullYear();
var nMonths = dt2.getUTCMonth() - dt1.getUTCMonth() + (nYears!=0 ? nYears*12 : 0);
var nQuarters = parseInt(nMonths/3);
var nMilliseconds = iDiffMS;
var nSeconds = parseInt(iDiffMS/1000);
var nMinutes = parseInt(nSeconds/60);
var nHours = parseInt(nMinutes/60);
var nDays  = parseInt(nHours/24);
var nWeeks = parseInt(nDays/7);

// return requested difference
var iDiff = 0;
switch(p_Interval.toLowerCase()){
case "yyyy": return nYears;
case "q": return nQuarters;
case "m": return nMonths;
case "y": // day of year
case "d": return nDays;
case "w": return nDays;
case "ww":return nWeeks;// week of year// 
case "h": return nHours;
case "n": return nMinutes;
case "s": return nSeconds;
case "ms":return nMilliseconds;// millisecond
default: return "intervalo inválido: '" + p_Interval + "'";
}
}
//----------------------------------------------------------------
function OW(page,winName,width,height,options) { var posTop = screen.availHeight / 2 - (height / 2) - 30; var posLeft = screen.availWidth / 2 - (width / 2); var ventana = window.open(page,winName,"width=" + width + ", height=" + height + ", status=no, top=" + posTop + ", left=" + posLeft + ", " + options); ventana.focus(); }
//----------------------------------------------------------------
var activeDialog = 0;
function OpenDialog(strURL, properties) {
window.onfocus = WindowFocus; activeDialog = window.open(strURL, "dialog", properties);return true;
}
//----------------------------------------------------------------
function WindowFocus(event) {
if (activeDialog) { try {activeDialog.focus(); }
catch (e) { activeDialog = 0; }
}}
//----------------------------------------------------------------
function blink(c){if (c!=''){eval(c+".innerHTML='<img src=/media/img/orange_arrow_blink.gif width=6 height=9 border=0 vspace=2>'")}} function blinkOff(c){if (c!=''){eval(c+".innerHTML='<img src=/media/img/nada.gif width=6 height=9 border=0 vspace=2>'")}}

