// GLOBAL DEFAULT NUMBER VALUES CHILEAN FORMATvar num_format = "cl";var num_format_tmp = "";var currency = "PESOS";var currency_tmp = "";var num_dec_sep = ","; //decimal separatorvar num_dec_sep_tmp = ""; var num_dec_force = false;var num_tho_sep = "."; //thousands separatorvar num_tho_sep_tmp = ".";var num_dec_qty = 2; //decimal quantity to showvar num_dec_qty_tmp = 0;var num_max_val = 100000000000; //maximun number allowedvar num_max_val_fix = true;var num_max_val_tmp = 0;var get_number_errmsg = "";// END GLOBAL DEFAULT NUMBER VALUES CHILEAN FORMAT// GLOBAL DEFAULT DATE FORMATvar date_format = "cl";// END GLOBAL DEFAULT DATE FORMATvar radio_sel_item = null;var debug_value = false;var BrowserDetect;var menu_ids = new Array;var menu_cat_ids = new Array;var gallery_current_pos = 0;var ns4 = false;var op5 = false;function switch_menu_display(menuid){	open_ele = false;	if (menuid>=0){		obj = get_object("menuid_" + menuid);			if (obj.style.display=="none") open_ele = true;	}		for (i=0; i<menu_ids.length; i++){				obj = get_object("menuid_" + menu_ids[i]);		obj.style.display = "none";			}		if (open_ele){		obj = get_object("menuid_" + menuid);			obj.style.display = "";	}	//alert(menu_ids.length);		}function switch_menu_cat_display(menucatid){	switch_menu_display(-1);	open_ele = false;	obj = get_object("menucatid_" + menucatid);		if (obj.style.display=="none") open_ele = true;		for (i=0; i<menu_cat_ids.length; i++){				obj = get_object("menucatid_" + menu_cat_ids[i]);		obj.style.display = "none";			}		if (open_ele){		obj = get_object("menucatid_" + menucatid);			obj.style.display = "";	}	//alert(menu_ids.length);		}function manage_category(menuid, manage_type, value){		objForm = get_object("menuform_" + menuid);	objForm.manage_type.value = manage_type;		if (manage_type=="sort"){		objForm.sort_to.value = value;		return true;	}		if (manage_type=="delete"){		if (confirm("Confirme que quiere eliminar este elemento")) return true;		else return false;	}		return false;	}function show_image_popup(filename,folder){		if(isUndefined(folder)) folder = "galleries";		var url = "image_view.php?name=" + filename + "&folder=" + folder;		newWin = window.open(url,'iv','toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=yes,width=600,height=550,top=10,left=10');	newWin.focus();}function get_object(theid){	the_obj = document.getElementById(theid);	return the_obj;}function scrollGallery(direction){		gallery = document.getElementById("cont_gallery");	gallery_table_width = parseInt(getElementWidth("table_gallery"));	gallery_div_width = parseInt(gallery.style.width)+9;			if (direction=="left" && gallery_current_pos>0){		gallery.scrollLeft = gallery.scrollLeft - gallery_div_width;				}		right_extra = Math.abs(gallery_table_width - gallery_current_pos);	//alert(val);		if (direction=="right" && right_extra>100){		gallery.scrollLeft = gallery.scrollLeft + gallery_div_width;					}		gallery_current_pos = gallery.scrollLeft + gallery_div_width;	//alert(gallery_table_width + "\n" + gallery_current_pos);	}function getElementHeight(Elem) {	if (ns4) {		var elem = getObjNN4(document, Elem);		return elem.clip.height;	} else {		if(document.getElementById) {			var elem = document.getElementById(Elem);		} else if (document.all){			var elem = document.all[Elem];		}		if (op5) { 			xPos = elem.style.pixelHeight;		} else {			xPos = elem.offsetHeight;		}		return xPos;	} }function getElementWidth(Elem) {	if (ns4) {		var elem = getObjNN4(document, Elem);		return elem.clip.width;	} else {		if(document.getElementById) {			var elem = document.getElementById(Elem);		} else if (document.all){			var elem = document.all[Elem];		}		if (op5) {			xPos = elem.style.pixelWidth;		} else {			xPos = elem.offsetWidth;		}		return xPos;	}}function getStyle(oElm, strCssRule){	var strValue = "";	if(document.defaultView && document.defaultView.getComputedStyle){		strValue = document.defaultView.getComputedStyle(oElm, "").getPropertyValue(strCssRule);	}	else if(oElm.currentStyle){		strCssRule = strCssRule.replace(/\-(\w)/g, function (strMatch, p1){			return p1.toUpperCase();		});		strValue = oElm.currentStyle[strCssRule];	}	return strValue;}	//this function returns a number as a field value or just the value depending//on the argument data typefunction get_number(thedata) { //thedata could be a field or a number	var isField;		var retval = 0;	get_number_errmsg = ""; //resets error msg each time flow gets in	if (isObject(thedata)){		isField = true;		num_val = thedata.value;	}else{		isField = false;		num_val = thedata;	}		dec_qty = num_dec_qty;	//formats the value removing some characters	var regexp = / /g;	num_val = num_val.replace(regexp,""); // remove spaces	if (num_format=="cl"){		var regexp = /\./g;		num_val = num_val.replace(regexp,""); //remove dots			var regexp = /,/g;		num_val = num_val.replace(regexp,"."); //replace comma per dot	}else{		var regexp = /,/g;		num_val = num_val.replace(regexp,""); // remove commas	}	//end formats the value 		var num_val2 = parseFloat(num_val);	if (num_val != "") {		var doubledec = /\.\./g; // check for double decimals		var singledec = /\./g; // check for multiple single decimals		var singleCount = 0;		singleResult = num_val.match(singledec);		if (singleResult) { singleCount=singleResult.length }		if (num_val.match(doubledec) || singleCount>1 || isNaN(num_val2)){			retval = 0;			get_number_errmsg = "nan";		} else {			if (num_val2 >= num_max_val) {				if (num_max_val_fix){					retval = num_max_val-1;				}else{					retval = 0;				}				get_number_errmsg = "overloaded";			}else{				num_val2 = round_number(num_val2);			}			if (isNaN(num_val2)) num_val2 = 0;			retval = num_val2;		}	}	if (isField){		thedata.value = retval;	}	return retval;}function round_number(num_val){	//alert(num_val);		var str = "" + Math.round(eval(num_val) * Math.pow(10,num_dec_qty));	while (str.length <= num_dec_qty) { str = "0" + str; }	var decPoint = str.length - num_dec_qty;	if (num_dec_qty > 0) { // format number with decimal		decPart = str.substring(decPoint,str.length);		decPartZero = "";		for(i=1;i<=num_dec_qty;i++) decPartZero = decPartZero + "0";		if (!num_dec_force && (decPart==decPartZero)){			num_val = str.substring(0,decPoint);		}else{			num_val = str.substring(0,decPoint) + "." + decPart;		}	}else{		num_val = str.substring(0,decPoint);	}		return num_val;}function format_number(num_val, hide_thousands_sep){		fn = num_val;		if (isUndefined(hide_thousands_sep) || !hide_thousands_sep){		fn = format_us(num_val);	}		if (num_format=="cl"){		var regexp = /\./g;		fn = fn.replace(regexp,";"); //replace dot per semi-colon			var regexp = /,/g;		fn = fn.replace(regexp,"."); //replace comma per dot		var regexp = /\;/g;		fn = fn.replace(regexp,","); //replace semi-colon per comma			}	return fn;	}function format_us(SS){	var T='', S=String(SS), L=S.length-1, C, j, P = S.indexOf('.')-1;	if (P<0) P=L;		for (j=0; j<=L; j++) {		T+=C=S.charAt(j);		if ((j < P) && ((P-j)%3 == 0) && (C != '-')) T+=',';	}	return T;}function get_date(thedata,strict){ //thedata could be a field or a number	var isField;	if (isObject(thedata)){		isField = true;		value = thedata.value;	}else{		isField = false;		value = thedata;	}	value = new String(value);	if (value.length<1){		if (isField) thedata.value = "";		return false; //si no hay string sale	}	value = value.replace(/\//gi, "-");	//se reemplazan / por -	tmp = value.split("-");		if (tmp.length!=3){		if (isField) thedata.value = "";		return false; //sale si no hay 3 elementos en el string	}	if (date_format=="cl"){		dia = parseInt(get_number(tmp[0])); mes = parseInt(get_number(tmp[1])); anio = parseInt(get_number(tmp[2]));		}else if(date_format=="us"){		mes = parseInt(get_number(tmp[0])); dia = parseInt(get_number(tmp[1])); anio = parseInt(get_number(tmp[2]));		}		//se corrige un eventual uso de menos digitos en el anio	tmpanio = new String(anio);	if (tmpanio.length==1) anio = parseInt("200"+anio); if (tmpanio.length==2) anio = parseInt("20"+anio);		db_user_date = new String(anio + "-" + mes + "-" + dia).substr(0);		//se genera un objeto date para procesar la fecha	proc_date = new Date(anio,mes-1,dia);	db_proc_date = new String(proc_date.getFullYear() + "-" + (proc_date.getMonth()+1) + "-" + proc_date.getDate()).substr(0);		if (strict==true || isUndefined(strict)){		if (db_user_date!=db_proc_date){			if (isField) thedata.value = "";			return false;		}	}else{		anio = proc_date.getFullYear(); mes = (proc_date.getMonth()+1); dia = proc_date.getDate();	}		dia = new String(dia); mes = new String(mes); anio = new String(anio);	if (dia.length==1) dia = "0" + dia; if (mes.length==1) mes = "0" + mes;		if (date_format=="cl"){		ret_date = dia + "-" + mes + "-" + anio;	}else if(date_format=="us"){		ret_date = mes + "-" + dia + "-" + anio;	}	if (isField){		thedata.value = ret_date;	}		return ret_date;	}//FUNCION QUE DEVUEVLE LA HORA EN FORMATO 24hrsfunction get_time(thedata,ampm,strict){ //thedata could be a field or a number	if (isObject(thedata)){		isField = true;		value = thedata.value;	}else{		isField = false;		value = thedata;	}		if (!isUndefined(ampm)) ampm = new String(ampm).toLowerCase();	else ampm = "";		value = new String(value);	if (value.length<1){		if (isField) thedata.value = "";		return false; //si no hay string sale	}		tmp = value.split(":");		if (tmp.length!=2){		if (isField) thedata.value = "";		return false; //sale si no hay 2 elementos en el string	}	horas = parseInt(get_number(tmp[0])); minutos = parseInt(get_number(tmp[1]));		if (!isNumber(horas) || !isNumber(minutos)){		if (isField) thedata.value = "";		return false; //si no hay string sale	}		//formateo de AM-PM	if (ampm=="am"){		if (horas==12) horas=0;		}	if (ampm=="pm"){		if (horas!=12){			horas = horas + 12;			}	}		if (horas<0 || horas>23 || minutos<0 || minutos>60){		if (isField) thedata.value = "";		return false; //si no hay string sale	}		horas = new String(horas); minutos = new String(minutos);	if (horas.length==1) horas = "0" + horas; if (minutos.length==1) minutos = "0" + minutos;		ret_date = new String(horas + ":" + minutos).substr(0);		if (isField){		thedata.value = ret_date;	}		return ret_date;	}function get_diff_hours(value,round_value){	ms_per_hour = 60000 * 60;	dh = value / ms_per_hour;		if (!isUndefined(round_value) && round_value==true){		dhInt = parseInt(dh);		if (dhInt!=dh){			fr_part_sum = 0;			fr_part = dh - dhInt;			if (fr_part>0 && fr_part<0.25) fr_part_sum = 0.0;			if (fr_part>=0.25 && fr_part<0.75) fr_part_sum = 0.5;			if (fr_part>=0.75 && fr_part<1) fr_part_sum = 1.0;			dh = dhInt + fr_part_sum;		}			}			return dh;}function radio_disabled(obj_name){	var obj = document.getElementsByName(obj_name);		if (!isObject(obj)) return false;	num = obj.length;		for (i=0;i<num;i++){		obj[i].disabled = true;	}	}function radio_enabled(obj_name){	var obj = document.getElementsByName(obj_name);		if (!isObject(obj)) return false;	num = obj.length;		for (i=0;i<num;i++){		obj[i].disabled = false;	}}function radio_readonly(obj_name){	var obj = document.getElementsByName(obj_name);		if (!isObject(obj)) return false;	num = obj.length;		for (i=0;i<num;i++){		if (obj[i].checked){			selindex = i;		}	}	obj[selindex].checked = true;		radio_sel_item = selindex;	if (BrowserDetect.browser=="Explorer" && !isNull(radio_sel_item)){		document.focus();			}}function radio_readonly_restore(obj_name){	if (BrowserDetect.browser=="Explorer" && !isNull(radio_sel_item)){		obj[radio_sel_item].checked = true;				}	return false;}function radio_get_value(ctrl){		if (isUndefined(ctrl.length) && ctrl.type=="radio"){		ctrlname = ctrl.name;		frm = ctrl.form;		frmname = frm.name;		eval("ctrl = document." + frmname + "." + ctrlname + ";");	}		for(i=0;i<ctrl.length;i++)		if(ctrl[i].checked) return ctrl[i].value;		return "";}function basename(path, suffix) {    // http://kevin.vanzonneveld.net    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)    // +   improved by: Ash Searle (http://hexmen.com/blog/)    // +   improved by: Lincoln Ramsay    // +   improved by: djmix    // *     example 1: basename('/www/site/home.htm', '.htm');    // *     returns 1: 'home'     var b = path.replace(/^.*[\/\\]/g, '');    if (typeof(suffix) == 'string' && b.substr(b.length-suffix.length) == suffix){        b = b.substr(0, b.length-suffix.length);    }    return b;}function isAlien(a) {   return isObject(a) && typeof a.constructor != 'function';}function isArray(a) {    return isObject(a) && a.constructor == Array;}function isBoolean(a) {    return typeof a == 'boolean';}function isEmpty(o) {    var i, v;    if (isObject(o)) {        for (i in o) {            v = o[i];            if (isUndefined(v) && isFunction(v)) {                return false;            }        }    }    return true;}function isFunction(a) {    return typeof a == 'function';}function isNull(a) {    return typeof a == 'object' && !a;}function isNumber(a) {    return typeof a == 'number' && isFinite(a);}function isObject(a) {    return (a && typeof a == 'object') || isFunction(a);}function isString(a) {    return typeof a == 'string';}function isUndefined(a) {    return typeof a == 'undefined';}String.prototype.trim = function() {	return this.replace(/^\s+|\s+$/g,"");}String.prototype.ltrim = function() {	return this.replace(/^\s+/,"");}String.prototype.rtrim = function() {	return this.replace(/\s+$/,"");}String.prototype.reverse = function() {    var s = "";    var i = this.length;    while (i>0) {        s += this.substring(i-1,i);        i--;    }    return s;}var BrowserDetect = {	init: function () {		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";		this.version = this.searchVersion(navigator.userAgent)			|| this.searchVersion(navigator.appVersion)			|| "an unknown version";		this.OS = this.searchString(this.dataOS) || "an unknown OS";	},	searchString: function (data) {		for (var i=0;i<data.length;i++)	{			var dataString = data[i].string;			var dataProp = data[i].prop;			this.versionSearchString = data[i].versionSearch || data[i].identity;			if (dataString) {				if (dataString.indexOf(data[i].subString) != -1)					return data[i].identity;			}			else if (dataProp)				return data[i].identity;		}	},	searchVersion: function (dataString) {		var index = dataString.indexOf(this.versionSearchString);		if (index == -1) return;		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));	},	dataBrowser: [		{ 	string: navigator.userAgent,			subString: "OmniWeb",			versionSearch: "OmniWeb/",			identity: "OmniWeb"		},		{			string: navigator.vendor,			subString: "Apple",			identity: "Safari"		},		{			prop: window.opera,			identity: "Opera"		},		{			string: navigator.vendor,			subString: "iCab",			identity: "iCab"		},		{			string: navigator.vendor,			subString: "KDE",			identity: "Konqueror"		},		{			string: navigator.userAgent,			subString: "Firefox",			identity: "Firefox"		},		{			string: navigator.vendor,			subString: "Camino",			identity: "Camino"		},		{		// for newer Netscapes (6+)			string: navigator.userAgent,			subString: "Netscape",			identity: "Netscape"		},		{			string: navigator.userAgent,			subString: "MSIE",			identity: "Explorer",			versionSearch: "MSIE"		},		{			string: navigator.userAgent,			subString: "Gecko",			identity: "Mozilla",			versionSearch: "rv"		},		{ 		// for older Netscapes (4-)			string: navigator.userAgent,			subString: "Mozilla",			identity: "Netscape",			versionSearch: "Mozilla"		}	],	dataOS : [		{			string: navigator.platform,			subString: "Win",			identity: "Windows"		},		{			string: navigator.platform,			subString: "Mac",			identity: "Mac"		},		{			string: navigator.platform,			subString: "Linux",			identity: "Linux"		}	]};BrowserDetect.init();