// ****
function parseObject(_o)
{
  // ****
	var i;
	var s = new Array();

	// ****
	for(i in _o)
	{
		s.push(i + " = " + _o[i]);
	}
	
	// ****
	alert(s.join("\n"));
}

// ****
Array.prototype.containsValue  = function(_value)
{
	// ****
	var rValue = false;

	// ****
	var i;

	// ****
	for(i in this)
	{
		if(this[i] === _value)
		{
      rValue = true;
			break;
		}
	}
	
	// ****
	return rValue;
}

// ****	
Array.prototype.containsKey  = function(_value)
{
	// ****
	var rValue = false;

	// ****
	var i;

	// ****
	for(i in this)
	{
		if(i === _value)
		{
    rValue = true;
			break;
		}
	}

	// ****	
	return rValue;
}

// ****
function _repeat()
{
	// ****
	var rValue;

	// ****
	var numArgs = arguments.length;
	var tmp     = "";
	var str     = "";
	var pad     = new Array();
	var i;
	var iMax    = 1;

	// ****
	switch(numArgs)
	{
		case 1 :
			iMax = 1;
			str  = arguments[0].toString();
			break;
		case 2 :
			iMax = isNaN(arguments[0]) ? iMax : parseInt(arguments[0]);
			str  = arguments[1].toString();
			break;
	}

	// ****
	for(i = 0; i < iMax; i++)
	{
		pad.push(str)
	}

	// ****
	tmp    = pad.join("");
	rValue = tmp;

	// ****
	return rValue;
}

// ****
String.prototype.repeat = _repeat;

// ****
String.prototype.trim = function()
{
    // ****
	var rValue;
	
	// ****
	var re;
	var tmp;
	
	// **** 
	re  = /(^\s*)|(\s*$)/g;
	tmp = this.replace(re, "");
	
	// ****
	rValue = tmp;
	tmp    = null;
	
	// ****
	return rValue;
}

// ****
String.prototype.empty = function()
{
    // ****
	var rValue;
	
	// ****
	rValue = ((this == "") && (this.length == 0));
	
	// ****
	return rValue;
}

// *****
function _getSelectedOption(_o)
{
	// ****
	var rValue;
	
	// ****
	var i, iMax;
	
	// ****
	rValue = null;
	
	// ****
	if( _o.tagName.toUpperCase() == "SELECT")
	{
		// ****
		iMax = _o.options.length;
		
		// ****
		if( (iMax > 0) && (_o.selectedIndex > 0) )
		{
			rValue = _o.options[_o.selectedIndex];	
		}
	}
	
	// ****
	return rValue;	
}

// ****
String.prototype.noBlankChar = function()
{
    // ****
	var rValue = this;
	
	// ****
	re = /[ ]+/gi 
	
	// ****
	rValue = ( this.trim().empty() ) ? this : this.replace(re, "");
	
	// ****
	return rValue;
}

// ****
function _selectedValue(_o)
{
	// ****
	var rValue;
	
	// ****
	var option;
	
	// ****
	rValue = null;
	option = _getSelectedOption(_o);
	
	// ****
	if( isNotNull(option) )
	{
		rValue = option.value;
	}
	
	// ****
	return rValue;	
}

// ****
function _selectedText(_o)
{
	// ****
	var rValue;
	
	// ****
	var option;
	
	// ****
	rValue = null;
	option = _getSelectedOption(_o);
	
	// ****
	if( isNotNull(option) )
	{
		rValue = option.text;
	}
	
	// ****
	return rValue;	
}


// ****
function isNull(_o)
{
	// ****
	var rValue = true;
	
	// ****
	rValue = (_o === null);
	
	// ****
	return rValue;
}

// ****
function isNotNull(_o)
{
	// ****
	var rValue = true;

	// ****
	rValue = (!isNull(_o));

	// ****
	return rValue;
}

// ****
function getEl(_id)
{
	// ****
	var rValue = null;
	
	// ****
	var tmp;
	
	// ****
	tmp = window.document.getElementById(_id);
	
	// ****
	rValue = tmp;
	tmp    = null;
	
	// ****
	return rValue;
}

// ****
function getCol(_name)
{
	// ****
	var rValue = null;
	
	// ****
	var tmp;
	
	// ****
	tmp = window.document.getElementsByName(_name);
	tmp = (tmp.length > 0) ? tmp : null;
	
	// ****
	rValue = tmp;
	tmp    = null;
	
	// ****
	return rValue;
}

// ****
function getColByTagName(_name)
{
	// ****
	var rValue = null;

	// ****
	var tmp;

	// ****
	tmp = window.document.getElementsByTagName(_name);
	tmp = (tmp.length > 0) ? tmp : null;

	// ****
	rValue = tmp;
	tmp    = null;

	// ****
	return rValue;
}

// ****
function isValidFormatDate(_date)
{
	// ****;
	var rValue = false;
	
	// ****
	var re = /^(0?[1-9]|[12]\d|3[0-1])([/])(0?[1-9]|1[0-2])\2(20\d\d)$/;
	
	// ****
	_date  = _date.noBlankChar();
	rValue = (!_date.trim().empty() && re.test(_date) );
	
	// ****;
	return rValue;
}

// ****
function isBisextilDate(_month, _year)
{

	//****
	var rValue;
	
	//****
	var tmp;
	
	//****
	_month = parseInt(_month);
	_year  = parseInt(_year);
	tmp    = true;
	
	// ****
	if(_month == 2)
	{
		tmp = ((0 == (_year % 4)) && (0 != (_year % 100))) || (0 == (_year % 400));
		
	}
	
	// ****
	rValue = tmp;
	
	// ****
	return rValue;
}

// ****
function isValidDate(_date)
{
	// ****;
	var rValue = true;
	
	// ****
	var year;
	var month;
	var date;
	var isBisextilYear;
	var maxDateInMonth;
	
	// ****
	
	_date          = _date.noBlankChar().split("/");
	year           = parseInt(_date[2]);
	month          = parseInt(_date[1]) - 1;
	date           = parseInt(_date[0]);
	isBisextilYear = isBisextilDate(month, year);
	maxDateInMonth = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	
	// ****
	maxDateInMonth[1] = ( isBisextilYear ) ? maxDateInMonth[1] + 1 : maxDateInMonth[1];
	
	// ****
	rValue = (date > 0) && (date <= maxDateInMonth[month]);
	
	// ****;
	return rValue;
}

// ****
function isValidTel(_tel)
{
	// ****;
	var rValue = false;

	// ****
	var tel;
	var re;
	var isValidNumber;
	
	// ****
	tel           = _tel.noBlankChar();
	re            = /^([0-9]{10}|00[0-9]{11}|[+][0-9]{11})$/;
 	isValidNumber = re.test(tel);

	// ****
	rValue = isValidNumber;
    re     = null;
    
	// ****;
	return rValue;
}

// ***
function isValidCp(_val){

	// ****
	var rValue;

	// ****
	var re;

	// ****
	re     = /^[0-9]{5}$/;
	rValue = re.test(_val);

	// ****
	return rValue;
}

// ****
function isValidMel(_val){

	// ****
    var rValue;

    // ****
    var re;

    // ****
    re     = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,3}$/i;
    rValue = re.test(_val);


    // ****
    return rValue;
}

// ****
function countCheckeObject(_o)
{
	// ****
	var  rValue;

	// ****
	var i;
	var iMax;
	var n;

	// ****
	rValue = 0;
	n      = 0;

	if( isNotNull(_o) )
	{
		// ****
		iMax = _o.length;

		// ****
		for(i = 0; i < iMax; i++)
		{
			if( _o[i].checked )
			{
				n++;
			}
		}

		// ****
		rValue = n;
	}

	// ****
	return rValue;
}

// ****
function isInIntrevale(_o, _val)
{
	// ****
	var  rValue;

	// ****
	var re;
	var nbr;
	var intrevale;

	// ****
	re        = /\{0\}/g;
	nbr       = countCheckeObject(_o)
	intrevale = "(" + _val.replace(re, nbr) + ");";
	rValue    = eval(intrevale);

	// ****
	return rValue;
}

// ****
function isOneElmentChecked(_o)
{
	// ****
	var  rValue;

	// ****
	var i;
	var iMax;

	// ****
	rValue = false;

	// ****
	if( isNotNull(_o) )
	{
		// ****
		iMax = _o.length;

		// ****
		for(i = 0; i < iMax; i++)
		{
			if( _o[i].checked )
			{
				rValue = true;
				break;
			}
		}
	}

	// ****
	return rValue;
}

function isInt(_val)
{
     var rValue;

    // ****
    var re;

    // ****
    re     = /^\d+$/;
    rValue = re.test(_val);

	// ****
    return rValue;
}


// ****
function isDateAbove(_date)
{
	// ****;
	var rValue = true;

	// ****
	var d0;
	var d1;
	var year;
	var month;
	var date;
	var isBisextilYear;
	var maxDateInMonth;

	// ****
    _date = _date.noBlankChar().split("/");
	year  = parseInt(_date[2]);
	month = parseInt(_date[1]) - 1;
	date  = parseInt(_date[0]);
	d0    = new Date();
	d0    = new Date(d0.getFullYear(), d0.getMonth(), d0.getDate())
	d1    = new Date(year, month, date);
	/*
	alert(year + "\n" + month + "\n" + d0.getDate())
	alert(d0.getYear() + "\n" + d0.getMonth() + "\n" + date)
	alert(d1.getYear() + "\n" + d1.getMonth() + "\n" + d1.getDate())
	alert(Date.parse(d1) + "\n" + Date.parse(d0))*/
	// ****
    rValue =  (Date.parse(d1) >= Date.parse(d0));

	// ****;
	return rValue;
}


// ****
function openCalendar(_url, _name, _args)
{
	// ****
	var sUrl;
	var sNamee;
	var sConf;
	
	// ****
	
	
}


// ****
function fs(_uri, _name, _args)
{
	// ****
	OPOPUP = null;

	// ****
	var oPopup;
	var conf;
	var k;
	var tmp;
	var sUri;
	var sName;
	var sConf;


	// ****
	conf = new Array();
	tmp  = new Array();


	// ****
	conf["top"]         = 0;
	conf["left"]        = 0;
	conf["height"]      = 200;
	conf["width"]       = 390;
	conf["directories"] = 0;
	conf["location"]    = 0;
	conf["menubar"]     = 0;
	conf["resizable"]   = 0;
	conf["scrollbars"]  = 1;
	conf["status"]      = 0;
	conf["titlebar"]    = 0;
	conf["toolbar"]     = 0;

	// ****
	for(k in conf)
	{
		tmp.push(k + "=" + conf[k]);
	}

	// ****
	sUri  = _uri + "?" + _args.trim();
	sName = _name;
	sConf = tmp.join(",");

	// ****
	oPopup = window.open(sUri, sName, sConf);
	oPopup.focus();
}

