1 /*
  2 js_main
  3 js_main.js
  4 By Newtenberg Publicaciones Digitales Limitada.
  5 */
  6 var _ie=document.all ? 1 : 0;
  7 var _ns4=document.layers ? 1 : 0;
  8 var _dom=document.getElementById ? 1 : 0;
  9 
 10 function getElement(n, doc) {
 11 	var p,i,obj;
 12 	if(!doc) doc=document;
 13 	if(_dom) obj=doc.getElementById(n);
 14 	if(!obj) {
 15 		if(_ie) obj = doc.all[n]
 16 		if(!obj) for(i=0;i<doc.forms.length;i++) obj=doc.forms[i][n];
 17 		if(!obj && doc.layers) for(i=0;i<doc.layers.length;i++) obj=getElement(n,doc.layers[i].document);
 18 	}
 19 	return obj;
 20 }
 21 
 22 function getValue(obj) {
 23 	if(obj.length) {
 24 		var resp='';
 25 		for(var i=0;i < obj.length;i++) {
 26 			if((obj[i] && obj[i].checked) || (obj.options && obj.options[i].selected)) {
 27 				if(resp!='') resp+=',';
 28 				resp+=obj.options ? obj.options[i].value : obj[i].value;
 29 			}
 30 		}
 31 		return resp;
 32 	} else {
 33 		return obj.value;
 34 	}
 35 }
 36 
 37 function setValue(obj,value,concat) {
 38 	var use_default=(arguments.length>1)?arguments[1]:false;
 39 	if(isArray(obj)&&(typeof(obj.type)=="undefined")){
 40 		for(var i=0;i<obj.length;i++){
 41 			setSingleFieldValue(obj[i],value,concat);
 42 		}
 43 	} else {
 44 		setSingleFieldValue(obj,value,concat);
 45 	}
 46 }
 47 
 48 function setSingleFieldValue(obj,value,concat) {
 49 	switch(obj.type){
 50 		case 'radio': 
 51 		case 'checkbox': 
 52 			if(obj.value==value) {
 53 				obj.checked=true;return true;
 54 			} else {
 55 				obj.checked=false;return false;
 56 			}
 57 		case 'text': 
 58 		case 'hidden': 
 59 		case 'textarea': 
 60 		case 'password': 
 61 			if(concat == true) {
 62 				obj.value= obj.value + '' + value;
 63 			}
 64 			else {
 65 				obj.value=value;
 66 			}
 67 			return true;
 68 		case 'select-one': 
 69 		case 'select-multiple': 
 70 			var option = obj.options;
 71 			for(var i=0; i<option.length; i++){
 72 				if(option[i].value==value){
 73 					option[i].selected=true;
 74 				}
 75 			}
 76 			return true;
 77 	}
 78 	return false;
 79 }
 80 
 81 function isArray(obj){
 82 	return(typeof(obj.length)=="undefined")?false:true;
 83 }
 84 
 85 function changeImage(imgname,link,doc) {
 86 	if(!doc) doc=document;
 87 	if(imgname) {
 88 		var img=getElement(imgname,doc);
 89 		if(img) {
 90 			img.lastsrc=img.src;
 91 			doc.lastimg=img;
 92 			img.src=link;
 93 		}
 94 	} else {
 95 		if( doc.lastimg ) {
 96 			if( doc.lastimg.lastsrc ) doc.lastimg.src=doc.lastimg.lastsrc;
 97 		}
 98 	}
 99 }
100 
101 function toStringDate(format,y,m,d,h,mi,s) {
102 	if(y=='' || m=='' || d=='') {
103 		return '';
104 	}
105 	y*=1; m*=1; d*=1; h*=1; mi*=1; s*=1;
106 	if(y==0 && m==0 && d==0 && h==0 && mi==0 && s==0) {
107 		return '';
108 	}
109 	if(format == 'ISO') {
110 		m+=1;
111 		var r =  y2k(y) + '-' + padout(m) + '-' + padout(d);
112 		if(h!=0 && mi!=0 && s!=0) {
113 			r += ' ' + padout(h) + ':' + padout(mi) + ':' + padout(s);
114 		}
115 		return r;
116 	} else {
117 		// unixtime
118 		h+=4;
119 		var ut=Date.UTC(y,m,d,h,mi,s,0);
120 		ut*=1;
121 		ut/=1000;       
122 		return '' + ut;
123 	}
124 }
125 
126 function parseURL(prop,doc) {
127 	var result = Object();
128 	if(!prop || prop=='') prop='hash';
129 	if(!doc) doc=document;
130 	if(doc.location[prop].length > 0) {
131 		hs=doc.location[prop].substring(1, doc.location[prop].length);
132 		var hsa=hs.split("&");
133 		for(var i=0; i<=hsa.length - 1; i++) {
134 			var left=hsa[i].substring(0, hsa[i].indexOf("="));
135 			if(left!='') {
136 				var right=hsa[i].substring(hsa[i].indexOf("=") + 1, hs.length);
137 				if(isNaN(right)) {
138 					right='"' + right + '"';
139 				}
140 				if(right!="") right=" = " + unescape(right);
141 				eval("result[unescape(left)] " + right);
142 			}
143 		}
144 	}
145 	return result;
146 }
147 
148 function y2k(number) { return (number < 1000) ? number + 1900 : number; }
149 function padout(number) { return (number < 10) ? '0' + number : number; }
150 function makeArray0() { for (i = 0; i<makeArray0.arguments.length; i++) this[i] = makeArray0.arguments[i]; }
151 
152 var monthName = new makeArray0('Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio','Agosto','Septiembre','Octubre','Noviembre','Diciembre');
153 var monthDays = new makeArray0(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
154 var weekdayShortName = new makeArray0('Dom','Lun','Mar','Mi�','Jue','Vie','S�b');
155 
156 function getHTMLDateSelector(basename,Month,Year) {
157 	var output = '';
158 	output += '<form name="Cal"><table bgcolor="#C0C0C0" border="0"><tr><td align="left" width="100%">';
159 	output += '<font color="#0000BB" face="Arial" size="+1">' + monthName[Month] + ' ' + Year + '<\/font><\/td><td width="50%" align="right">';
160 	output += '<select name="Month" onChange="changeMonth();">';
161 	for(m=0; m<12; m++) {
162 		if(m==Month) output += '<option value="' + m + '" selected>' + monthName[m] + '<\/option>';
163 		else output += '<option value="' + m + '">'          + monthName[m] + '<\/option>';
164 	}
165 	output += '<\/select><select name="Year" onChange="changeYear();">';
166 	for(y=1900; y<2101; y++) {
167 		if(y==Year) output += '<option value="' + y + '" selected>' + y + '<\/option>'; else output += '<option value="' + y + '">'          + y + '<\/option>';
168 		}
169 	output += '<\/select><\/td><\/tr><tr><td align="center" colspan="2">';
170 	firstDay = new Date(Year,Month,1);
171 	startDay = firstDay.getDay();
172 	if(((Year % 4 == 0) && (Year % 100 != 0)) || (Year % 400 == 0))
173 		monthDays[1] = 29; 
174 	else
175 		monthDays[1] = 28;
176 	output += '<table cellspacing="0" cellpadding="0" border="1" bordercolordark="#FFFFFF" bordercolorlight="#C0C0C0"><tr>';
177 	for (i=0; i<7; i++)
178 		output += '<td width="50" align="center" valign="middle"><font size="-1" color="#000000" face="arial"><b>' + weekdayShortName[i] +'<\/b><\/font><\/td>';
179 	output += '<\/tr><tr align="center" valign="middle">';
180 	var column = 0;
181 	var lastMonth = Month - 1;
182 	if(lastMonth == -1) lastMonth = 11;
183 	for(i=0; i<startDay; i++, column++)
184 		output += '<td width="50" height="30"><font size="-1" color="#808080" face="arial">' + (monthDays[lastMonth]-startDay+i+1) + '<\/font><\/td>';
185 	for(i=1; i<=monthDays[Month]; i++, column++) {
186 		output += '<td width="50" height="30">' + '<a href="javascript:changeDay(' + i + ')"><font size="-1" face="arial" color="#0000ff">' + i + '<\/font><\/a>' +'<\/td>';
187 		if (column == 6) {
188 			output += '<\/tr><tr align="center" valign="middle">';
189 			column = -1;
190 		}
191 	}
192 	if(column > 0) {
193 		for(i=1; column<7; i++, column++)
194 			output +=  '<td width="50" height="30"><font size="-1" color="#808080" face="arial">' + i + '<\/font><\/td>';
195 	}
196 	output += '<\/tr><\/table><\/form><\/td><\/tr><\/table>';
197 	output +='<script type="text/javascript">';
198 	output += " function changeDay(day) { opener." + basename + "Day = day + ''; opener." + basename + "restart(); self.close; } ";
199 	output += " function changeMonth() { opener." + basename + "Month = document.Cal.Month.options[document.Cal.Month.selectedIndex].value + ''; opener." + basename + "NewCalWindow(true); } ";
200 	output += " function changeYear() { opener." + basename + "Year = document.Cal.Year.options[document.Cal.Year.selectedIndex].value + ''; opener." + basename + "NewCalWindow(true); } ";
201 	output +='<\/script>';
202 	return output;
203 }
204