/**
 * opener - "open or close" element defined by id = itemID;
 */
function opener( itemID )
{
	var item = document.getElementById( itemID );
	if( item.style.display == 'none' )
		item.style.display = 'block';
	else 
		item.style.display = 'none';
}

/**
Opens full screen window with given location
*/
function fullScreenWin(location) {
var szer = screen.width;
var wys = screen.height;
//if (wyzej==null) wyzej='';
var okno=window.open(location,"window","HEIGHT="+wys+",WIDTH="+szer+",status=1,menubar=0,scrollbars=yes,resizable=yes");
}


/**
 * linkQuestion - this function load page determined by address if question is confirmed;
 */
function linkQuestion( address, question )
{
	if( (question && window.confirm(question) == true) || !question )
		window.location.href = address ? address : '#';
}

/**
 * SendRequest - this function run system in the background, result of execution can be presented in element describe by id = dest;
 */
function SendRequest( objName, objMethod, objParam, dest )
{
    var req = mint.Request();
	var act = JSCONST_ACTIONS ? JSCONST_ACTIONS +':' : '';

	var requestAction = act + objName +','+ objMethod +',' + objParam;
	var requestPage = JSCONST_PATH +"index.php?page="+ JSCONST_PAGEID +'/'+ JSCONST_PAGEPARAMS +"&lang="+ JSCONST_LANGID +"&actions="+ requestAction;
	
	if( dest == null ) req.Send( requestPage );
	else req.Send( requestPage, dest );			
}

/**
 * 
 */
function price( price )
{
	var priceString = price.toString();
	var point = priceString.indexOf('.');

	if( point == -1 )
		return priceString +'.00';
	else if( point == priceString.lenght - 2 )
		return priceString +'0';
	return priceString;
}

function loader_action(reciever,name,params)
{
	xajax_action(reciever,name,params);
}

/**
 * getDateTime -
 */
function getDateTime( data )
{
	var dateY = data.substring(0, 4);
	var dateM = data.substring(5, 7);
	var dateD = data.substring(8, 10);
	//alert(data+' '+dateY+'/'+dateM+'/'+dateD+' '+data.substring(0, 4)+'/'+data.substring(5, 7)+'/'+data.substring(8, 10));
	var date = new Date( dateY, dateM-1, dateD );
	var time = date.getTime();

	var ret  = time.toString() == 'NaN' ? getDateTime( (new Date()).print("%Y-%m-%d") ) : time;
	
	return ret;
}

//cross-browser event handling
var xb =
{
   evtHash: [],

   ieGetUniqueID: function(_elem)
   {
      if (_elem === window) { return 'theWindow'; }
      else if (_elem === document) { return 'theDocument'; }
      else { return _elem.uniqueID; }
   },
   
   addEvent: function(_elem, _evtName, _fn, _useCapture)
   {
      if (typeof _elem.addEventListener != 'undefined')
      { _elem.addEventListener(_evtName, _fn, _useCapture); }
      else if (typeof _elem.attachEvent != 'undefined')
      {
         var key = '{FNKEY::obj_' + xb.ieGetUniqueID(_elem) +
               '::evt_' + _evtName + '::fn_' + _fn + '}';
         var f = xb.evtHash[key];
         if (typeof f != 'undefined')
            { return; }
            
         f = function()
         {
            _fn.call(_elem);
         };
         
         xb.evtHash[key] = f;
         _elem.attachEvent('on' + _evtName, f);

         // attach unload event to the window to clean up possibly IE memory leaks
         window.attachEvent('onunload', function()
         {
            _elem.detachEvent('on' + _evtName, f);
         });
         
         key = null;
         //f = null;   /* DON'T null this out, or we won't be able to detach it */
      }
      else
         { _elem['on' + _evtName] = _fn; }
   },
   
   removeEvent: function(_elem, _evtName, _fn, _useCapture)
   {
      if (typeof _elem.removeEventListener != 'undefined')
         { _elem.removeEventListener(_evtName, _fn, _useCapture); }
      else if (typeof _elem.detachEvent != 'undefined')
      {
         var key = '{FNKEY::obj_' + xb.ieGetUniqueID(_elem) +
               '::evt' + _evtName + '::fn_' + _fn + '}';
         var f = xb.evtHash[key];
         if (typeof f != 'undefined')
         {
            _elem.detachEvent('on' + _evtName, f);
            delete xb.evtHash[key];
         }
         
         key = null;
         //f = null;   /* DON'T null this out, or we won't be able to detach it */
      }
   }
};
