var PERMISION_DENIED = 403;
var PAGE_NOT_FOUND = 404;
var hx_loading ="<table border='0' cellspacing='0' width='100%' height='100%' ><tr><td align='center' valign='middle'><img src='http://imgs.heeloo.net/spinner_mac.gif' border='0' height='22px'/></td></tr></table>";
var hx_loading2 ="<table border='0' cellspacing='0' width='100%' height='100px'><tr><td align='center' valign='middle'><img src='http://imgs.heeloo.net/spinner_small.gif' border='0'/></td></tr></table>";

Array.prototype.add = function(val){
	var arr = this;
	this[this.length] = val;
}

Array.prototype.toHString = function(){
	var arr  = this;
	var str = "";
	for (var i=0;i<arr.length ;i++ )	{
			str += arr[i];
			if (i<arr.length-1) str += ", ";
	}
	return str;
}

Array.prototype.toVString = function(){
    var arr  = this;
    var str = "";
    for (var i=0;i<arr.length ;i++ )    {
            str += arr[i];
            if (i<arr.length-1) str += ",";
    }
    return str;
}

Array.prototype.toXString = function(){
	var arr  = this;
	var str = "";
	for (var i=0;i<arr.length ;i++ )	{
			str += encodeURIComponent(arr[i]);
			str += ";";
	}
	return str;
}

Array.prototype.toAString = function(){
	var arr  = this;
	var str = "";
	for (var i=0;i<arr.length ;i++ )	{
			str +=arr[i].label + " , ";
	}
	return str;
}

Array.prototype.remove2 = function(val){
	var arr = this;
	var tarr = new Array();
	if (arr.has(val)){
		for (var i = 0 ;i < arr.length ;i ++ ){
		if (arr[i].indexOf(val)==-1){
			tarr[tarr.length] = arr[i];
		}
		}
	}
	arr = tarr;
	return tarr;
}

Array.prototype.remove = function(val){
	var arr = this;
	var tarr = new Array();
	if (arr.contains(val)){
		for (var i = 0 ;i < arr.length ;i ++ ){
		if (arr[i] != val){
			tarr[tarr.length] = arr[i];
		}
		}
	}
	arr = tarr;
	return tarr;
}

Array.prototype.contains = function(val){
	var arr = this;
	for (var ixx=0;ixx<arr.length ;ixx++ ){
		if (arr[ixx] == val) return true;
	}
	return false;
}

Array.prototype.has = function(val){
	var arr = this;
	for (var ixx=0;ixx<arr.length ;ixx++ ){
		if (arr[ixx].indexOf(val)>-1) return true;
	}
	return false;
}

Array.prototype.unique = function () {
	var r = new Array();
	o:for(var i = 0, n = this.length; i < n; i++)
	{
		for(var x = 0, y = r.length; x < y; x++)
		{
			if(r[x]==this[i])
			{
				continue o;
			}
		}
		r[r.length] = this[i];
	}
	return r;
}

String.prototype.trim = function(){
	var val = this;
	while (val.substring(0,1) == " "){
			val = val.substring(1);
	}	
	while (val.substring(val.length-1,val.length) == " " ){
		val = val.substring(0,val.length-1);
	}	
	return val;
}

String.prototype.firstUpperCase = function(){
	var val = this;
	val = val.substring(0,1).toUpperCase()+val.substring(1);
	return val;
}

String.prototype.count = function(l){
	var k =0;
	var val = this;
	while (val.indexOf(l)>-1){
			k++;
			val = val.substring(val.indexOf(l)+l.length);
	}
	return k;
}

String.prototype.startsWith = function(chr){
	if (this.substring(0,chr.length) == chr) return true;
	else return false;
}

String.prototype.endsWith = function(chr){;
	if (this.substring(this.length-chr.length,this.length) == chr){
		 return true;
	}else{
		return false;
	}
}

try{
	if (!top._modalDialogs)	top._modalDialogs = new Array();
}catch(e){}

try{
	if (!top._zIndex) top._zIndex = 5000;
}catch(e){}

function Map(linkItems) {
    this.current = undefined;
    this.size = 0;

    if(linkItems === false)
        this.disableLinking();
}

Map.noop = function() {
    return this;
};

Map.illegal = function() {
    throw new Error("illegal operation for maps without linking");
};

// map initialisation from existing object
// doesn't add inherited properties if not explicitly instructed to:
// omitting foreignKeys means foreignKeys === undefined, i.e. == false
// --> inherited properties won't be added
Map.from = function(obj, foreignKeys) {
    var map = new Map;

    for(var prop in obj) {
        if(foreignKeys || obj.hasOwnProperty(prop))
            map.put(prop, obj[prop]);
    }

    return map;
};

Map.prototype.disableLinking = function() {
    this.link = Map.noop;
    this.unlink = Map.noop;
    this.disableLinking = Map.noop;
    this.next = Map.illegal;
    this.key = Map.illegal;
    this.value = Map.illegal;
    this.removeAll = Map.illegal;

    return this;
};

// overwrite in Map instance if necessary
Map.prototype.hash = function(value) {
    return (typeof value) + ' ' + (value instanceof Object ?
        (value.__hash || (value.__hash = ++arguments.callee.current)) :
        value.toString());
};

Map.prototype.hash.current = 0;

// --- mapping functions

Map.prototype.get = function(key) {
    var item = this[this.hash(key)];
    return item === undefined ? undefined : item.value;
};

Map.prototype.put = function(key, value) {
    var hash = this.hash(key);

    if(this[hash] === undefined) {
        var item = { key : key, value : value };
        this[hash] = item;

        this.link(item);
        ++this.size;
    }
    else this[hash].value = value;

    return this;
};

Map.prototype.remove = function(key) {
    var hash = this.hash(key);
    var item = this[hash];

    if(item !== undefined) {
        --this.size;
        this.unlink(item);

        delete this[hash];
    }

    return this;
};

// only works if linked
Map.prototype.removeAll = function() {
    while(this.size)
        this.remove(this.key());

    return this;
};

// --- linked list helper functions

Map.prototype.link = function(item) {
    if(this.size == 0) {
        item.prev = item;
        item.next = item;
        this.current = item;
    }
    else {
        item.prev = this.current.prev;
        item.prev.next = item;
        item.next = this.current;
        this.current.prev = item;
    }
};

Map.prototype.unlink = function(item) {
    if(this.size == 0)
        this.current = undefined;
    else {
        item.prev.next = item.next;
        item.next.prev = item.prev;
        if(item === this.current)
            this.current = item.next;
    }
};

// --- iterator functions - only work if map is linked

Map.prototype.next = function() {
    this.current = this.current.next;
};

Map.prototype.key = function() {
    return this.current.key;
};

Map.prototype.value = function() {
    return this.current.value;
};

var xg = new xg_coreInterface();
var win = new xg_windowInterface();
var _xg_hasMenuBar = false;


function xg_coreInterface(){
	this.coreLocation = "/";
	this.serverLocation = "/";
	this.version = 1.0;
	this.document = new xgDocumentInterface;
	this.event = new xgEventsInterface;
	this.browser = new xgBrowserInterface;
	this.tabs = new xgTabsInterface;
	this.util = new xgUtilInterface;
	this.window = new xg_windowInterface;
	this.internal	=new xg_InternalInterface;
	this.setVar = xg_setInternalVar;
	this.error		= new xgErrorInterface;
	this.closeApp = xg_closeApp;
	this.app = new xg_appInterface;
	this.alert = xgi_alert;
	this.confirm = xgi_confirm;
	this.playSound = xgi_playSound;
	this._soundObject = null;
	this.setValue =xgi_setValue;
	this.setClassName = xgi_setClassName;
	this.setFocus = xgi_setFocus;
	this.getValue = xgi_getValue;
	this.getSelected = xgi_getSelected;
	this.setSelected = xgi_setSelected;
	this.setVisible = xgi_setVisible;
	this.getVisible = xgi_getVisible;
	this.setPos = xgi_setPos;
	this.setSize = xgi_setSize;
	this.setWidth = xgi_setWidth;
	this.setDisplay = xgi_setDisplay;
	this.setReadOnly = xgi_setReadOnly;
	this.getChild	= xgi_getChild;
	this.xhr	=	new XMLRequestResponse;
	this.getForm = xg_getParamsFromForm;
	this.getFormV = xg_getParamsFromFormValidated;
	this.verifyForm = xg_verifyForm;
	this.showFormProblems = xg_showFormProblems;
	this.param		=xg_getParameter;
	this.obj = xg_getObj;
	this.createObj = xg_createObj;
	this._lddlg = null;
	this.loading = xg_loading;
	this.hide = xg_hideloading;
    this.errorBox = xg_errorBox;
	this.validate = xg_regexpvalidate;
    this.validatePass = xg_isValidPass;
    this.validateUsername = xg_isValidUser;
    this._errorBox = null;
    this.isTablet       = false;
    this.prepareForWeb = xg_toweb;

    var ua = window.navigator.userAgent.toString().toLowerCase();

           if (ua.indexOf("ipad")>-1){
            this.isTablet = true;
        }
}

function xg_toweb(str){
    str = replaceStr(str,"~ap;","'");
    str = replaceStr(str,"~amp;","&");
    str = replaceStr(str,"\'","'");
    return str;
}

function xg_closeApp(){
	try{
	window.external.closeApp();
	}catch(e){
		window.close();
	}
}

function xg_appInterface(){
		this.showAbout = xg_appInterface_showabout;
}

function xg_appInterface_showabout(av){
		try{
			window.external.showAbout(av);
		}catch(e){}
}

function xg_windowInterface(){
	this.showModal = _xgWIShowModal;
	this.showInner = _xgWIShowInner;
	this.open	=_xgWIOpen;
	this.close	= _xgWIClose;
	this.setReturnValue = _xgWIsetReturnValue;
	this.setReturnSecondValue = _xgWIsetReturnSecondValue;
	this.resizeCurrentModalWindow = _xgWIResizeModalWindow;
	this.moveCurrentModalWindow	= _xgWIMoveModalWindow;
}

function Dimension(){
	this.width = -1;
	this.height = -1;
}

function xgDocumentInterface(){
	this.currentTab = 0;
	this.screenWidth = 0;
	this.screenHeight = 0;
	this.createElement = _xgDICreateElement;
	this.createPopup   = _xgDICreatePopup;
}

function xgEventsInterface(){
	this.button							= null;
	this.srcElement					= null;
	this.srcElementId				= null;
	this.keyCode						=null;
	this.currentX						=null;
	this.currentY						=null;
	this.evt								=null;
	this.cancel							=false;
}

function xgTabsInterface(){
	this.currentTab = 0;
	this.currentObject ;
	this.objLength = 0;
	this.add	 = xgTabsInterface_addElement;
	this.elems = new Array();
}

function xg_InternalInterface(){
	this.getTagFile	= xg_IIgetTagFile;

}

function xg_IIgetTagFile(){
	var url = window.location.href;
	var res = xg.util.url.getFile(url);
	if (res.indexOf("?")>-1){
		res= res.substring(0,res.indexOf("?"));	
		}
	res = replaceStr(res,".","_");
	return res;
}
function xgBrowserInterface(){

	this.sName = new String();
	this.Name = new String();
	this.Version = new String();
	this.Platform= new String();
	this.OS = new String();

	internal_detectBrowser(this);

	function internal_detectBrowser(_browser){
		_browser.Name=window.navigator.appName;
		_browser.Version=window.navigator.appVersion;
		_browser.Platform=window.navigator.platform;
		_browserUA=window.navigator.userAgent;

    	if ((_browserUA.indexOf("Netscape")>=0)&&(parseFloat(_browser.Version)>4)){
			_browser.sName="ns";
            _browser.Name="Netscape";
          }
		
		if (_browserUA.indexOf("Apple")>-1){
			_browser.sName = "sf";
			_browser.Name = "Safari";
		}else
        if ((_browserUA.indexOf("Gecko")>=0)&&(_browserUA.indexOf("Netscape")==-1)&&(parseFloat(_browser.Version)>4)){
			_browser.sName="mo";       
            _browser.Name="Mozilla";
         }else
        if ((_browserUA.indexOf("Gecko")>=0)&&(_browserUA.indexOf("Firefox")>-1)&&(parseFloat(_browser.Version)>4)){
			_browser.sName="ff";       
            _browser.Name="FireFox";
          }
          if ((_browser.Name.indexOf("Internet Explorer")>=0)){
			  _browser.sName="ie";
          }
		  if ((_browser.Name.indexOf("Konqueror")>=0)){
			  _browser.sName="q";
          }
          if ((_browserUA.indexOf("Opera")>=0)){
			  _browser.sName="opera";
          }
		  if (_browser.Platform=="Win32"){
              _browser.OperatingSystem="Windows";
          }
          if ((_browser.Platform.indexOf("X")>=0)||(_browser.Platform.indexOf("x")>=0)){
			  _browser.OperatingSystem="linux";
          }
	}

}

function xgTabsInterface_addElement(elem){
	this.elems[this.elems.length] =elem;
}

//document.onmousewheel=function(){
	//return false;
//}




document.onkeydown = function(evt){
		if (typeof(event) != "undefined") evt = event;

	if (xg.browser.sName == "ie")	{
		xg.event.keyCode = event.keyCode;
		xg.event.srcElement = event.srcElement;
	}else{
		xg.event.keyCode = evt.keyCode;
		xg.event.srcElement = evt.target;
	}
		var _target = evt.srcElement? evt.srcElement : evt.target;
	xg.event.srcElement = _target;
	if ((xg.event.keyCode == 27) || (xg.event.keyCode == 9)){
		VerifyOpenObjectsOnKey();
	}
}



function xgURLInterface(){
	this.get						=xgURLInterface_get;
	this.getFile					= xgURLInterface_getFile;
	this.getFileName		=xgURLInterface_getFileName;
	this.getFileExtension = xgURLInterface_getFileExtension;
}

function xgURLInterface_getFile(url){
	url = replaceStr(url,"\\","/");
	while (url.indexOf("/")>-1)	{
		url = url.substring(url.indexOf("/")+1);
	}
	return url;
}

function xgURLInterface_get(url){
	var name = xg.util.url.getFile(url);
	url = url.substring(0,url.indexOf(name));
	return url;
}

function xgURLInterface_getFileExtension(url){
	url = xg.util.url.getFile(url);
	url = url.substring(url.indexOf(".")+1);
	return url;
}

function xgURLInterface_getFileName(url){
	url = xg.util.url.getFile(url);
	url = url.substring(0,url.indexOf("."));
	return url;
}

function xgUtilInterface(){
	this.setOpacity = xgUtilInterface_setOpacity;
	this.setDisable = xgUtilInterface_setDisable;
	this.setEnable = xgUtilInterface_setEnable;
	this.getLeft		= xgUtilInterface_getLeft;
	this.getTop = xgUtilInterface_getTop;
	this.removeFromArray			=xgUtilInterface_removeFromArray;
	this.showBlackScreen = xgUtilInterface_showbs;
	this.hideBlackScreen = xgUtilInterface_hidebs;
	this.calculateTextSize = xgUtilInterface_calculateTextSize;
	this.setTextWidth = xgUtilInterface_setTextWidth;
	this.generateContainer = xgUtilInterface_generateContainer;
	this.convertDate = xgUtilInterface_convertDate;
	this.getDateFromFormat = xgUtilInterface_getDateFromFormat;
	this.getSQLDate		=xgUtilInterface_getSQLDate;
	this.getTime				=xgUtilInterface_getTime;
	this.url				= new xgURLInterface;
	this.parse2HTML = xgUtilInterface_parse2HTML;
	this.parse2Text	=xgUtilInterface_parse2Text;
	this.hasParent			=xgUtilInterface_hasparent;
	this.isNumber			=xgUtilInterface_isNumber;
	this.isLetter				=xgUtilInterface_isLetter;
	this.formatLong		=xgUtilInterface_formatLong;
	this.unselectable							=xgUtilInterface_unselectable;
	this._blackScreen		;
	
	this.v_scrollWidth = 20;
	this.h_scrollHeight = 20;

}

function xgUtilInterface_showbs(){
	if (!this._blackScreen){
		_xgcreateBs();
	}
	this._blackScreen.style.visibility = "visible";
}

function xgUtilInterface_hidebs(){
	if (this._blackScreen){
		this._blackScreen.style.visibility = "hidden";
	}else{
		try{
			top._bs.style.visibility = "hidden";
		}catch(e){}
	}
}

function xgUtilInterface_setOpacity(_surface,opacityProcent){
	if (_surface == null) return;

	if (xg.browser.sName == "ie"){
		_surface.style.filter = "progid:DXImageTransform.Microsoft.Alpha(Opacity="+opacityProcent+")";
		return false;
	}
		_surface.style.MozOpacity ="0."+opacityProcent;
		//filter: alpha(opacity=70);
		_surface.style.opacity = "0."+opacityProcent;
}

function xgUtilInterface_setDisable(_surface){
	if (xg.browser.sName == "ie"){
		_surface.style.filter = "progid:DXImageTransform.Microsoft.Alpha(Opacity=40)";
		return false;
	}
	if (xg.browser.sName == "opera")
	{
		_surface.style.visibility = "hidden";
		return false;
	}
		_surface.style.MozOpacity="0.40";

}

function xgUtilInterface_setEnable(_surface){
	if (xg.browser.sName == "ie"){
		_surface.style.filter = "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
		return false;
	}
	if (xg.browser.sName == "opera")
	{
		_surface.style.visibility = "visible";
		return false;
	}
		_surface.style.MozOpacity="0.99";

}

function xgUtilInterface_getLeft(_object){
	var nLeft = 0;
	while (_object.offsetParent)
	{
		nLeft += _object.offsetLeft;
		_object = _object.offsetParent;
	}
	return nLeft;
}

function xgUtilInterface_getTop(_object){
 	var nTop = 0;
 	while (_object.offsetParent)
 	{
 		nTop += _object.offsetTop;
 		_object = _object.offsetParent;
 	}
 	return nTop;
	}

function xgUtilInterface_generateContainer(obj){
	var temphtml = "<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\" width=\"100%\" height=\"100%\">";
	temphtml+="<tr><td valign=\"middle\">";
	temphtml+="<span class=\""+obj.LabelClassName+"\">";
	temphtml+=obj.Label;
	temphtml+="</span>";
	temphtml+="</td></tr>";
	temphtml+="</table>";
	return temphtml;
}

function xgUtilInterface_setTextWidth(text,cclass,width){
		if (width < 5){
			return "";
		}
		while (xg.util.calculateTextSize(text,cclass).Width > width){
			text = text.substring(0,text.length-4)+"...";
		}
		return text;
}

function xgUtilInterface_calculateTextSize(text,textclass){
	try{
		text=replaceStr(text,"-","a");
		text=replaceStr(text,"[","a");
		text=replaceStr(text,"]","a");
		text=replaceStr(text,"@","a");
		text=replaceStr(text," ","&nbsp;");

		var textcont = document.createElement("DIV");
		if (xg.browser.sName == "ie"){
			document.body.insertBefore(textcont);
		}else{
			document.body.appendChild(textcont);
		}
		textcont.className = textclass;
		textcont.style.position ="absolute";
		textcont.style.left = 30;
		textcont.style.top = 30;
		textcont.style.width =0;
		textcont.style.height =0;
		textcont.style.overflow = "hidden";
		textcont.style.border = "solid black 1px";
		textcont.innerHTML = text;
		var dims = new xgUtilInterface_Dimensions();
			dims.Width = textcont.scrollWidth;
			dims.Height = textcont.scrollHeight;
		document.body.removeChild(textcont);
	}catch(e){
		
	}
		return dims;
}

function xgUtilInterface_unselectable(obj,skip){
	if (typeof(skip) == "undefined") skip=true;
	var tags = "div,table,td,tr,span,";
	var cedit = 0;
	if (obj.contentEditable == "true") cedit = 1;

	if (!skip){
			if (cedit == 0){
			obj.unselectable = "on";
			obj.style.webkitUserSelect ="text";
			obj.style.mozUserSelect = "-moz-none";
			}
	
	}
		obj.style.cursor = "default";
		if (cedit == 0){
		for (var i=0;i<obj.childNodes.length ;i++){
				var tagName = obj.childNodes[i].tagName;
				if (typeof(tagName) != "undefined" && tags.indexOf(tagName.toLowerCase()+",")>-1){	
						xg.util.unselectable(obj.childNodes[i],false);		
				}
		}
		}

}

function xgUtilInterface_Dimensions(){
		this.Width  = -1;
		this.Height = -1;
}
if (xg.browser.sName == "ie"){
		xg.util.v_scrollWidth =19;
}
if (xg.browser.sName =="ns"){
		xg.util.v_scrollWidth = 16;
}
if (xg.browser.sName == "ff")
{
	xg.util.v_scrollWidth = 20;
}

function xgUtilInterface_hasparent(object,parentId){

	if (!object) return false;

	var parent = object.parentNode;
	while (parent){
		if (parent.id == parentId){
			return true;
		}
		parent = parent.parentNode;
	}

	return false;
}

function xgUtilInterface_isNumber(kc){
	if ( (kc>47) && (kc<58) ) return true;
	if ( (kc>95) && (kc<106) ) return true;
	return false;
}
function xgUtilInterface_isLetter(kc){
	if (((kc<48) || (kc>57)) && ((kc<94) || (kc>105))) return true;
	return false;
}
function xgUtilInterface_formatLong(value,type){
	var nv = value;
	var _type = type;
	if (_type.indexOf("[")>-1){
		_format = _type.substring(_type.indexOf("[")+1,_type.indexOf("]"));
		_type = _type.substring(0,_type.indexOf("["));
	}
	if (_type == "long")	{
		var ni = _format.substring(0,_format.indexOf("."));
		var nz = _format.substring(_format.indexOf(".")+1);

	}
	return nv;
}

function xgUtilInterface_removeFromArray(arr,index){
		var na = new Array();
		var k=0;
		for (var i=0;i<arr.length ;i++ ){
			if (i != index){
				na[k] = arr[i];
				k++
			}
		}
	return na;
}

function _xgWIShowInner(title,_url,xWidth,xHeight,xL,xT,_skin){
		var _win = new xgWindow2();
		top.window._activeModal = _win;
		top.window._activeModal.returnValue = "-1";
		_win.showInner(_url,xWidth,xHeight,xL,xT,_skin);
		
		return _win;
}

function _xgWIShowModal(title,_url,xWidth,xHeight,xL,xT,_skin){

		var _win = new xgWindow2();
		top.window._activeModal = _win;
		top.window._activeModal.returnValue = "-1";
		_win.showModal(_url,xWidth,xHeight,xL,xT,_skin);
		
		return _win;
}




function moveActiveModalWindow(x,y){
		var frm = xg.util._blackScreen._iframe;
		frm.style.left = x;
		frm.style.top =y;
}

function setReturnValueForModalWindow(val){
	try{
	xg.util._blackScreen._iframe.returnValue = val;
	}catch(e){
		top._bs._iframe.returnValue = val;
	}
}


function resizeActiveModalWindow(w,h){
		var frm = xg.util._blackScreen._iframe;
		frm.style.width = w;
		frm.style.height = h;
}







function _xgWIsetReturnValue(val){
		if (top._modalDialogs){
				for (var i=0;i<top._modalDialogs.length ;i++ ){
					var obj = top._modalDialogs[i];
					if (obj.src == window.location){
							obj.returnValue = val;
							break;
					}
				}
		}
}

function _xgWIsetReturnSecondValue(val){
		if (top._modalDialogs){
				for (var i=0;i<top._modalDialogs.length ;i++ ){
					var obj = top._modalDialogs[i];
					if (obj.src == window.location){
							obj.returnSecondValue = val;
							break;
					}
				}
		}
}
function _xgWIResizeModalWindow(w,h){
	window.parent.resizeActiveModalWindow(w,h);
}

function _xgWIMoveModalWindow(x,y){
	window.parent.moveActiveModalWindow(x,y);
}

function _xgWIClose(){
		var _html = "";
		if (top._modalDialogs){
				for (var i=0;i<top._modalDialogs.length ;i++ ){
					var obj = top._modalDialogs[i];
					_html+=window.location+"" + "-"+obj.src+"\n";
					if (obj.src == window.location){
							obj.close();
							break;
					}
				}
		}
	//		alert(_html);
}

function getDialogWithID(_id){
		if (top._modalDialogs){
				for (var i=0;i<top._modalDialogs.length ;i++ ){
					var obj = top._modalDialogs[i];
					if (obj.fid ==_id){
						return obj;
					}
				}
		}
	return null;
}

function _xgWIOpen(str,target,info,method){

	if (!info) info = "";
	if (!method)  method = "GET";
	if (method.toLowerCase() == "get"){
			var xw = window.open(str,target,info);
			xw.focus();	 

	}else{
		//extracting parameters
		var paramstr;
		var webpage = "";
		var _form = document.createElement("FORM");

		if (xg.browser.sName == "ie"){
				document.body.insertBefore(_form);
		}else{
			document.body.appendChild(_form);
			}
			_form.style.border="none";
			_form.style.backgroundColor = "transparent";
//			_form.style.overflow="hidden";
			_form.style.position = "absolute";
			_form.style.left = 0;
			_form.style.top=0;
//			_form.style.width=1;
//			_form.style.height =1;
			
		if (str.indexOf("?")>-1){
			webpage = str.substring(0,str.indexOf("?"));
			paramstr = str.substring(str.indexOf("?")+1);
			var params = new Array();
			var params_value = new Array();

			var i=0;
			while (paramstr.indexOf("&")>-1){
				try{
				var tempstr = paramstr.substring(0,paramstr.indexOf("&"));
				params[i]=tempstr.substring(0,tempstr.indexOf("="));
				params_value[i] = tempstr.substring(tempstr.indexOf("=")+1);
				paramstr = paramstr.substring(paramstr.indexOf("&")+1);
				}catch(e){
					//alert(e);
					return;
				}
				i++;
			}//while
			params[i]=paramstr.substring(0,paramstr.indexOf("="));
			params_value[i] = paramstr.substring(paramstr.indexOf("=")+1);
			var _html = "";
		for (i=0;i<params.length ;i++ ){
			_html+="<input type=\"text\" name=\""+params[i]+"\" value=\""+params_value[i]+"\">";
		}
		_form.innerHTML=_html;
		}else{
			webpage = str;
		}
		_form.action = webpage;
		_form.target = target;
		_form.method = "POST";
		_form.submit();
		document.body.removeChild(_form);
	}
	return xw;
}

function xg_setInternalVar(varname,varvalue,actionFunction){
		if ((!varname) || (!varvalue))
		{
			alert("setVar() Error!   insufficient parameters!");
			return;
		}
		alert(varname+";"+varvalue+";"+actionFunction);

}

function xgUtilInterface_parse2Text(str){
	str = repaceStr(str,"<b>"," ");
	str = replaceStr(str,"</b>"," ");
	str =replaceStr(str,"<br>","\n");
	return str;
}
function xgUtilInterface_parse2HTML(str){
	str = replaceStr(str,"&lt;","<");
	str = replaceStr(str,"&gt;",">");
	str = replaceStr(str,"$lt;","&lt;");
	str = replaceStr(str,"$gt;","&gt;");
	str = replaceStr(str,"$qout;","&quot;");
	return str;
}

function fDate(){
		this.Day = 1;
		this.Month = 1;
		this.Year = 1900;
		this.Mins = 0;
		this.Secs = 0;
		this.Hours = 0;
}



function xgUtilInterface_getTime(){
	var result ="";
	var d= new Date();
	result = d.getHours()+":"+d.getMinutes();
	return result;

}


function xgUtilInterface_getSQLDate(){
	var result ="";
	var d= new Date();
	result = d.getFullYear()+"-"+(parseInt(d.getMonth())+1)+"-"+d.getDate()+" "+d.getHours()+":"+d.getMinutes()+":00";
	return result;
}

function xgUtilInterface_getDateFromFormat(value,_f){
	var result = new fDate();
		var _y=-1;var _m=-1;var _d=-1;var _h="00";var _M="00";var _s="00";
		if (_f == "date"){
			try{_y=value.substring(0,4);}catch(e){}
			try{_m=value.substring(5,7);}catch(e){}
			try{_d=value.substring(8,10);}catch(e){}
			result.Day = _d;
			result.Month = _m;
			result.Year = _y;
		} // 'date'
		else	if (_f == "datetime"){
				try{_y=value.substring(0,4);}catch(e){}
				try{_m=value.substring(5,7);}catch(e){}
				try{_d=value.substring(8,10);}catch(e){}
				try{
					var tmp = value;
					if (value.indexOf(":")>-1){
						_h=value.substring(value.indexOf(" "),value.indexOf(":"));
						tmp = tmp.substring(tmp.indexOf(":")+1);
						_M = tmp.substring(0,tmp.indexOf(":"));
						_s = tmp.substring(tmp.indexOf(":")+1);
					}else{
						_h = 0;_s=0;_M=0;
					}
					result.Day = _d;
					result.Month = _m;
					result.Year = _y;
					result.Secs = _s;
					result.Mins = _M;
					result.Hours = _h;
				}
				catch(e){}
		}// 'datetime'
		else if (_f == "xgdate"){
				try{_y=value.substring(0,4);}catch(e){}
				try{_m=value.substring(5,7);}catch(e){}
				try{_d=value.substring(8,10);}catch(e){}
				try{
					var tmp = value;
					if (value.indexOf(":")>-1){
						_h=value.substring(value.indexOf(" "),value.indexOf(":"));
						tmp = tmp.substring(tmp.indexOf(":")+1);
						_M = tmp.substring(0,tmp.indexOf(":"));
						_s = tmp.substring(tmp.indexOf(":")+1);
					}else{
						_h = 0;_s=0;_M=0;
					}
					result.Day = _d;
					result.Month = _m;
					result.Year = _y;
					result.Secs = _s;
					result.Mins = _M;
					result.Hours = _h;
				}
				catch(e){}
		}//xgdate
		else if (_f == "foxdate"){
			try{_m = value.substring(4,7)}catch(e){}
			if(_m == "Dec") _m = 12;
			else 
				if (_m == "Nov") _m = 11;
			else 
				if (_m =="Oct") _m = 10;
			else 
				if (_m == "Sep") _m = 9;
			else 
				if (_m == "Aug") _m = 8;
			else 
				if (_m == "Jul") _m = 7;
			else 
				if (_m=="Jun") _m = 6;
			else 
				if (_m == "May") _m = 5;
			else 
				if (_m == "Apr") _m = 4;
			else 
				if (_m == "Mar") _m = 3;
			else 
				if (_m == "Feb") _m = 2;
			else  _m =1;

			try{_d = value.substring(8,10);}catch(e){}
			try{_y = value.substring(25,29);}catch(e){}
					result.Day = parseInt(_d);
					result.Month = _m;
					result.Year = parseInt(_y);
					result.Secs = _s;
					result.Mins = _M;
					result.Hours = _h;

		}		
		if (result.Day == "00"){
				result.Day = "01";
		}
		if (result.Month == "00"){
				result.Month = "01";
		}
		if (result.Year == "0000"){
			result.Year = "1900";
		}
		return result;

}

function xgUtilInterface_convertDate(value,_f){
	var result = "";
	var daysName = new Array("Duminica","Luni","Marti","Miercuri","Joi","Vineri","Sambata");
	 var monthName =	new Array("Ian","Feb","Mar","Apr","Mai","Iun","Iul","Aug","Sept","Oct","Nov","Dec");
		
		if (_f == "foxdate") _f = "datetime";
		var _y=-1;var _m=-1;var _d=-1;var _h="00";var _M="00";var _s="00";
		if (_f == "date"){
			try{_y=value.substring(0,4);}catch(e){}
			try{_m=value.substring(5,7);}catch(e){}
			try{_d=value.substring(8,10);}catch(e){}
			result = _y+"-"+_m+"-"+_d;
		} // 'date'
		else	if (_f == "datetime"){
				try{
					myDate = new Date(value);
					_y = myDate.getYear();
					_m = myDate.getMonth();
					_d = myDate.getDate();
					_h = myDate.getHours();
					_M = myDate.getMinutes();
					_s = myDate.getSeconds();
					if (_m < 10){ _m = "0"+_m}
					if (_d < 10){ _d = "0"+_d}
					if (_h < 10){ _h = "0"+_h}
					if (_M < 10){ _M = "0"+_M}
					if (_s < 10){ _s = "0"+_s}
					result = _y+"-"+_m+"-"+_d+" "+_h+":"+_M+":"+_s;	
					return result;
				}catch(e){
				}
				try{_y=value.substring(0,4);}catch(e){}
				try{_m=value.substring(5,7);}catch(e){}
				try{_d=value.substring(8,10);}catch(e){}
				try{
					var tmp = value;
					if (value.indexOf(":")>-1){
						_h=value.substring(value.indexOf(" "),value.indexOf(":"));
						tmp = tmp.substring(tmp.indexOf(":")+1);
						_M = tmp.substring(0,tmp.indexOf(":"));
						_s = tmp.substring(tmp.indexOf(":")+1);
					}else{
						_h = 0;_s=0;_M=0;
					}
					result = _y+"-"+_m+"-"+_d+" "+_h+":"+_M+":"+_s;	
				}
				catch(e){}
		}// 'datetime'
		else if (_f == "xgdate"){
				try{_y=value.substring(0,4);}catch(e){}
				try{_m=value.substring(5,7);}catch(e){}
				try{_d=value.substring(8,10);}catch(e){}
				try{
					var tmp = value;
					if (value.indexOf(":")>-1){
						_h=value.substring(value.indexOf(" "),value.indexOf(":"));
						tmp = tmp.substring(tmp.indexOf(":")+1);
						_M = tmp.substring(0,tmp.indexOf(":"));
						_s = tmp.substring(tmp.indexOf(":")+1);
					}else{
						_h = 0;_s=0;_M=0;
					}
					result = _d+"/"+_m+"/"+_y;
				}
				catch(e){}
		}
		else { // user defined format
			try{ _y=value.substring(0,4);}catch(e){}
			try{_m=value.substring(5,7);}catch(e){}
			try{_d=value.substring(8,10);}catch(e){}
			result = _f;
			var _Mo = 0;
			if (_m){
				_Mo = monthName[parseFloat(_m)-1];
			}else{
			}
			result = result.replace("%d",_d);
			result = result.replace("%m",_m);
			result = result.replace("%M",_Mo);
			result = result.replace("%y",_y);
		}//format prdefinit
	

		return result;
}

function code_clickOn(obj){
	var parent = obj.parentNode.parentNode.parentNode.parentNode.parentNode;
	parent.style.overflow = "hidden";
	if (obj.innerText == "-")	{
			parent.normalHeight = parent.offsetHeight;
			parent.normalWidth = parent.offsetWidth;
			parent.style.height = 25;
			parent.style.width = 200;
			obj.innerText = "+";
	}else{
		  parent.style.height = parent.normalHeight;
		  parent.style.width = parent.normalWidth;
		  obj.innerText = "-";
	}
}

function code_mouseOn(obj){
	obj.className = "xg_code_plus_on";
}

function code_mouseOff(obj){
	obj.className = "xg_code_plus";
}

function xgErrorInterface(){
	this.add				= xgei_add;
	this.errStr			=new Array();
	this.errNo			=new Array();
	this.errStarter	=new Array();
	this.check			=xgei_check;
}

function xgei_add(errorStarter,errorNo,errorString){
	this.errStarter[this.errStarter.length] = errorStarter;
	this.errNo[this.errNo.length] = errorNo;
	this.errStr[this.errStr.length] = errorString;
	if ( document.readyState == "complete"){
		this.check();
	}
}

function xgei_check(){
	if (this.errStr.length>0){
		window.status =  "Error on Page";
		var errorurl = xg.coreLocation+"error.xgs";
		var x = screen.availWidth/2-200;
		var y = screen.availHeight/2-100 ;
		var win = xg.window.showModal('Consola de erori',errorurl,450,320,x,100);
		if (r=="@logs"){
			var loc = window.location.href;
			var toploc = top.location.href;
			var site="";
			if (loc!=toploc){
				site = toploc+"@subpage="+loc+"@target="+window.name;
			}else{
				site=loc;
			}
			xg.window.open(xg.serverLocation+"xam/admin/logs.xgs?site="+site,"_parent","","_POST");
		}
	}
}


//***************************** document interface ***************

function _xgDICreateElement(parent,element,dleft,dtop,dwidth,dheight,dCN){
	var obj = document.createElement(element);
	if (xg.browser.sName == "ie"){
		parent.insertBefore(obj);
	}else{
		parent.appendChild(obj);
	}
	obj.style.position = "absolute";
	obj.style.left = dleft;
	obj.style.top = dtop;
	obj.style.width = dwidth;
	obj.style.height = dheight;
	obj.className = dCN;
	return obj;
}	

function _xgDICreatePopup(left,top,width,height){
	var popup = new xgDIPopup();
	popup.Draw(left,top,width,height);
	return popup;
}


function _xgcreateBs(){
	var bs = top.window.document.createElement("DIV");
	top.window.document.body.appendChild(bs);
	var _height = top.window.document.body.clientHeight;
	var _width = top.window.document.body.clientWidth;
	
	if (parseInt(top.window.document.body.scrollWidth) > _width) _width = top.window.document.body.scrollWidth;
	if (parseInt(top.window.document.body.scrollHeight) > _height) _height = top.window.document.body.scrollHeight;


	bs.style.position = "absolute";bs.style.left = 0;bs.style.top=0;bs.style.width=_width;
	bs.style.height=_height;
	bs.style.backgroundImage="url("+xg.coreLocation+"/imgs/shadows/25white.png)";
	bs.style.zIndex = 10000;
	bs.style.visibility = "hidden";
	bs.style.overflow = "hidden";
	top._bs[top._bs.length] = bs;
	//alert(top._bs.length);
	xg.util._blackScreen = top._bs;
}


function convertToRo(str){
	str = replaceStr(str,"S~","&#x15E;");
	str = replaceStr(str,"s~","&#x15F;");
	str = replaceStr(str,"t~","&#x163;");
	str = replaceStr(str,"a^","&acirc;");
	str = replaceStr(str,"a~","&#x103;");
	str = replaceStr(str,"A~"," &#x102;");
	str = replaceStr(str,"I^"," &Icirc;");
	str = replaceStr(str,"i^","&icirc;");

	return str;
}

function convertFromRo(str){
		str = replaceStr(str,"&#254;","t~");
		str = replaceStr(str,"\u0163","t~");
		str = replaceStr(str,"\u00fe","t~");
		str = replaceStr(str,"&#355;","t~");
		str = replaceStr(str,"\u0103","a~");
		str = replaceStr(str,"%CE","I^");
		str = replaceStr(str,"\u015F","s~");
		str = replaceStr(str,"\u015E","S~");
		str = replaceStr(str,"\u0162","T~");
		str = replaceStr(str,"%E2","a^");
		str = replaceStr(str,"%C2","A^");
		str = replaceStr(str,"%EE","i^");
		str = replaceStr(str,"\0102","A~");
	str = replaceStr(str,"&#x15E;","S");
	str = replaceStr(str,"&#x15F;","s");
	str = replaceStr(str,"&#x163;","t");
	str = replaceStr(str,"&acirc;","�");
	str = replaceStr(str,"&#x103;","a");
	str = replaceStr(str," &#x102;","A");
	str = replaceStr(str," &Icirc;","�");
	str = replaceStr(str,"&icirc;","�");
	str = replaceStr(str,"&nbsp;"," ");
	var v = str;
for (var i=0;i<v.length ;i++ )	{
			var chr = String(v.substring(i,i+1));
			if (v.charCodeAt(i) == 355){
					//am t~
					str = replaceStr(str,v.charAt(i),"t~");
			}else
			if (v.charCodeAt(i)==354){
					//am T~
					str = replaceStr(str,v.charAt(i),"T~");
			}else
			if (v.charCodeAt(i) == 351){
				//am s~
					str = replaceStr(str,v.charAt(i),"s~");
			}else
			if (v.charCodeAt(i) == 350){
				//am S~
				str = replaceStr(str,v.charAt(i),"S~");
			}else
			if (v.charCodeAt(i) == 259){
				//am a~
				str = replaceStr(str,v.charAt(i),"a~");
			}else
			if (v.charCodeAt(i) == 258){
				//am A~
				str = replaceStr(str,v.charAt(i),"A~");
			}else
			if (v.charCodeAt(i) == 238){
				//am i^
				str = replaceStr(str,v.charAt(i),"i^");
			}else
			if (v.charCodeAt(i) == 206){
				//am I^
				str = replaceStr(str,v.charAt(i),"I^");
			}else
			if (v.charCodeAt(i) == 226){
				//am a^
				str = replaceStr(str,v.charAt(i),"a^");
			}else
			if (v.charCodeAt(i) == 206){
				//am A^
				str = replaceStr(str,v.charAt(i),"A^");
			}
		}
	return str;
}

function removeAllTags(str){
	//caut inainte
	var mystr = "";
	var k =0;
	while (str.indexOf("<")>-1){
	
	if (str.indexOf("<")>-1){
		 mystr += str.substring(0,str.indexOf("<"));
		str = str.substring(str.indexOf("<")+1);
		if (str.indexOf("/>")>-1){
			str = str.substring(str.indexOf("/>")+2);
		}else
		if (str.indexOf(">")>-1){
			str = str.substring(str.indexOf(">")+1);
		}
	}
	k++;	
}
	if (k==0 && mystr.length == 0) mystr = str;
	return mystr;
}



//xg interface

function xgi_createSoundObject(){
}

function xgi_playSound(_url){
}

function xgi_alert(mess){
	var y = document.body.clientHeight;
	y = y/2-150;
	var win = xg.window.showModal("",xg.coreLocation+"alert.xgs?txt="+mess,300,150,0,y,"black");
}

function xgi_confirm(mess){
	var y = document.body.clientHeight;
	y = y/2-150;
	var win = xg.window.showModal("",xg.coreLocation +"confirm.xgs?txt="+mess,400,150,0,y,"black");
	return win;
}

Array.prototype.removeAt = function(){
	
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function verifyForAcceptedChars(str){
		var myChars = "qwertyuiopasdfghjklzxcvbnm1234567890-._";
		for (var i=0;i<str.length ;i++ ){
				var chr = str.substring(i,i+1);
				if (myChars.indexOf(chr)==-1){
						return false;
				}
		}

		return true;
}


function xgi_setClassName(objid,value){
	var obj =document.getElementById(objid);
	obj.className = value;
}

function xgi_setValue(objid,value,color){
		var obj = document.getElementById(objid);
		if (obj == null) return;
		if (obj.tagName == "INPUT"){
				obj.value = value;
				if (color){
					obj.style.color = color;
				}
		}else
		if (obj.tagName == "DIV" || obj.tagName == "SPAN"){
			obj.innerHTML = value;
		}else
			if (obj.tagName == "SELECT"){
				for (var i = 0;i<obj.length ;i++ ){
					if (obj[i].value == value){
							obj[i].selected = true;
							break;
					}
				}
			}else
				if (obj.tagName == "IMG"){
					obj.src = value;
		}else
			if (obj.tagName == "TEXTAREA"){
				obj.value = value;
			}

}


function xgi_setSelected(objid,value){
		var obj = document.getElementById(objid);
		if (obj.tagName == "SELECT"){
	for (var i = 0;i<obj.length ;i++ ){
					if (obj[i].innerHTML == value){
							obj[i].selected = true;
							break;
					}
	}
		}

}

function xgi_getSelected(objid){
		var obj = document.getElementById(objid);
		if (obj.tagName == "INPUT"){
			 return obj.value;
		}else
		if (obj.tagName == "DIV" || obj.tagName == "SPAN"){
			return obj.innerHTML;
		}else
			if (obj.tagName == "SELECT"){
				for (var i = 0;i<obj.length ;i++ ){
					if (obj[i].selected == true){
							return obj[i].innerHTML;
					}
				}
			}

}

function xgi_setFocus(objid){
	var obj = document.getElementById(objid);
	obj.focus();
}


function xgi_getValue(objid,value){
		var obj = document.getElementById(objid);
		if (obj == null){
				alert("not found "+objid);
			return -1;
		}
		
		if (obj.tagName == "TEXTAREA"){
				return obj.value;
		}
	
		if (obj.tagName == "INPUT"){	
			if (obj.type == "text" || obj.type == "hidden"){
					return obj.value;
			}else
				if (obj.type == "checkbox"){
					if (obj.checked) return 1;
					else return 0;
				}else{
				return obj.value;
				}
		}else
			if (obj.tagName == "DIV" || obj.tagName == "SPAN")
			{
				return obj.innerHTML;
			}
		else if (obj.tagName == "SELECT"){
				return obj.value;
		}
}


function xgi_setPos(objid,x,y){
	var obj = document.getElementById(objid);
	obj.style.left = parseInt(x);
	obj.style.top = parseInt(y);
}

function xgi_setSize(objid,w,h){
	var obj = document.getElementById(objid);
	obj.style.width = parseInt(w);
	obj.style.height = parseInt(h);
}


function xgi_setWidth(objid,w){
	var obj = document.getElementById(objid);
	obj.style.width = parseInt(w);
}

function xgi_setVisible(objid,vis){
	var obj = document.getElementById(objid);
    if (obj == null){
        try{
            console.log("object "+objid +" is null");
            return;
        }catch(e){}
    }
	if (vis){
			obj.style.visibility = "visible";
	}else{
		obj.style.visibility = "hidden";
	}
}

function xgi_getVisible(objid){
	var obj = document.getElementById(objid);
	if (obj.style.visibility == "visible"){
			return true;
	}else{
			return false;
	}
}

function xgi_setDisplay(objid,dis){
	var obj = document.getElementById(objid);
	if (obj == null) {
		console.log(" obj["+objid+"] don't exists");
		return;
	} 
	obj.style.display = dis;
}

function xgi_setReadOnly(objid,ro){
	var obj = document.getElementById(objid);
	if (obj.tagName == "INPUT"){
			obj.readOnly = ro;
	}
}

function xgi_getChild(parent,tagName){
	for (var i=0;i<parent.childNodes.length ;i++ ){
		if(parent.childNodes.item(i).tagName == tagName){
			return parent.childNodes.item(i);
		}
	}
	return -1;
}


function XMLRequestResponse(){
		this.get							=xrr_doGet;
		this.post							= xrr_doPost;
		this.tryToParse				=xrr_parse;
		this.parse						=xrr_parseXML;
		this.onfailed					=xrr_onfailed;
}


function xrr_doGet(url,onloadf,onfailedf){
	var req ;
	req = false;
	var contentType = "application/x-www-form-urlencoded; charset=utf-8";

    if(window.XMLHttpRequest && !(window.ActiveXObject)) {
    	try {
			req = new XMLHttpRequest();
        } catch(e) {
			req = false;
        }
    // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
       	try {
        	req = new ActiveXObject("Microsoft.XMLHTTP");
      	} catch(e) {
        	try {
          		req = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch(e) {
          		req = false;
        	}
		}
    }
	if(req) {


		req.onreadystatechange = function(){			
			//alert(req.readyState + " : " +req.status);
            if (xg.browser.sName != "ie" && req.readyState == 2 && req.status == 503){
                    xg.errorBox();
             }else
				if (req.readyState == 4) {
						if (req.status == 403 || req.status== 404 || req.status == 500){
							if (onfailedf) onfailedf(req.status);
							else xg.xhr.onfailed(req.status,url);
						}

						if (req.status == 0){
							if (onfailedf) onfailedf(PERMISION_DENIED);
							else xg.xhr.onfailed(PERMISION_DENIED,url);
			
						}
				        if (req.status == 200) {
							onloadf(xg.xhr.tryToParse(req.responseText));
						}
				}
		}
		req.open("GET", url, true);
        try{
			req.setRequestHeader("x-heeloo-ajax","true");
            req.setRequestHeader('Content-type', contentType);
			if (req.overrideMimeType) req.overrideMimeType(contentType);
		}catch(ex){}
		try{

		req.send();
		}catch(ex){
			if (onfailedf) onfailedf(PERMISION_DENIED);
			else xg.xhr.onfailed(PERMISION_DENIED,url);
			
		}
	}
	
	return req;
}//doget

function xg_getParameter(url,param){ //# get a parameter from a URL . \\ Example : url: http://inwx.de/domain/list/#page = 2 \\ Usage: i_getParameter("page",url);
	var myvalue = null;
	url = replaceStr(url,"%23","#");

	if ( typeof (param) == "undefined"){
			if (url.indexOf("#")>-1){
				myvalue = url.substring(url.indexOf("#")+1);
			}
	}else{
	if ( url.indexOf("#"+param)>-1 ) {
			myvalue = url.substring(url.indexOf("#"+param+"=")+param.length+2);
		  if (myvalue.indexOf("#")>-1) myvalue = myvalue.substring(0,myvalue.indexOf("#"));
	}
	}
	return myvalue;
}


function xrr_doPost(url,onloadf,onfailedf,hl_operation_id){
var req ;
var contentType = "application/x-www-form-urlencoded; charset=utf-8";

	req = false;

    if(window.XMLHttpRequest && !(window.ActiveXObject)) {
    	try {
			req = new XMLHttpRequest();
        } catch(e) {
			req = false;
        }
    // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
       	try {
        	req = new ActiveXObject("Microsoft.XMLHTTP");
      	} catch(e) {
        	try {
          		req = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch(e) {
          		req = false;
        	}
		}
    }
	if(req) {
		isBusy = true;

		req.onreadystatechange = function(){
          
          	if (req.readyState == 1){
					try{
						if (onfailedf) onfailedf(req.status);
							else xg.xhr.onfailed(req.status,url);
					}catch(e){}
				}else
              if (xg.browser.sName != "ie" && req.readyState == 2 && req.status == 503){
                  xg.errorBox();
              }else
				if (req.readyState == 4) {
                   		if (req.status == 403 || req.status== 404 || req.status == 500){
						   
							if (onfailedf) onfailedf(req.status);
							else xg.xhr.onfailed(req.status,url);
						}
						if (req.status == 0){				
							if (onfailedf) onfailedf(PERMISION_DENIED);
							else xg.xhr.onfailed(PERMISION_DENIED,url);
						}
				        if (req.status == 200) {
 							onloadf(xg.xhr.tryToParse(req.responseText));
						}
				}
		}
		
		var params = "";
		if (url.indexOf("?")>-1){
			params = url.substring(url.indexOf("?")+1);
			url = url.substring(0,url.indexOf("?"));
		}

		try{
		req.open("POST", url, true);
		req.setRequestHeader("x-heeloo-version","0.9");
            req.setRequestHeader("x-heeloo-ajax","true");
		try{
			req.setRequestHeader("x-heeloo-opid",hl_operation_id);
		}catch(e){alert(e);}
	try{
	req.setRequestHeader('Content-type', contentType);
	if (req.overrideMimeType) req.overrideMimeType(contentType);
	}catch(e){}
		req.send(params);
		}catch(e){
							if (onfailedf) onfailedf(PERMISION_DENIED);
							else xg.xhr.onfailed(PERMISION_DENIED,url);
			
		}
	}

	return req;
}//dopost

function xrr_onfailed(err,url){
	if (err == 403){
		try{
			console.log(err);
		}catch(E){
		}
		top.window.location.reload();
	}else
	if (err == 404){
	    if ((myServer.indexOf("heeloo.")>-1) && url.startsWith("/apps")) {
                        	    var dlg = new xgDialog(myServer+"/apps/procs/404.html",400,200);
                        	    dlg.skin = "black";
                        	    dlg.create(null);
                        	    dlg.show();
                        	    
                        	    dlg.onclose = function(){
                        	        dlg.destroy();
                        	    }
	   }else{
        	    // window.open(myServer+"/errors/404/","_self");
	}
	}
}

function xrr_parseXML(xmltext){
	try{
		var parser = new XMLParser();
	parser.parse(xmltext);
	
	var doc = parser.doc;
	var root = doc.getDocumentElement();
	if (root.tagName == "result" || root.tagName == "error" || root.tagName == "folder" || root.tagName == "fprops" || root.tagName == "r"){
		var _html = "";
		var obj = new Object();
		for (var i=0;i<root.childNodes.length ;i++ ){
			var value ="";
			try{
				value = root.childNodes[i].firstChild.nodeValue;
			}catch(e){}
			value = replaceStr(value,"'","`");
			value = replaceStr(value,'\n','');
			try{
				eval("obj."+root.childNodes[i].tagName + "='"+value+"';");
			}catch(E){
			}
	}

		return obj;
	}else{
		return root;
	}
	}catch(e){
	}
	
	return xmltext;
}

function xrr_parse(xmltext){
	
	return xmltext;
	try{
		var parser = new XMLParser();
	parser.parse(xmltext);
	
	var doc = parser.doc;
	var root = doc.getDocumentElement();
	if (root.tagName == "error"){
		var reson = root.getElementsByTagName("code");
		var code = reson[0].firstChild.nodeValue;
		return code;
	}else{
		return root;
	}
	}catch(e){
		
	}
	
	return xmltext;
}

function xg_showFormProblems(form){
	if (typeof(form) == "string") form = xg.obj(form);
	var res = true;
	
	var size = form.childNodes.length;
	
	for (var i=0;i<size ;i++ ){
			var obj = form.childNodes[i];
		if (obj.tagName == "INPUT" && obj.name){
			if (obj.parentNode.style.display != "none" && obj.required && obj.value.trim().length == 0){
				obj.style.border = "solid red 2px";
                console.log(obj.className);
                if (obj.className.length == 0){
                    console.log(obj.parentNode.className);
                }
			}
		}
		
		if (obj != null && obj.childNodes.length > 0 && obj.tagName != "SELECT"){
			   xg.showFormProblems(obj);
        }
	}
}



function xg_verifyForm(form){
	if (typeof(form) == "string") form = xg.obj(form);
	var res = true;
	
	var size = form.childNodes.length;
	
	for (var i=0;i<size ;i++ ){
			var obj = form.childNodes[i];
		if (obj.tagName == "INPUT" && obj.name){
			if (obj.parentNode.style.display != "none" && obj.required && obj.value.trim().length == 0){
				return false;
			}else{
				
			}
		}else
		if (obj != null && obj.childNodes.length > 0 && obj.tagName != "SELECT"){
			   res = xg.verifyForm(obj);
			   if (res == false){
			   	return false;
			   }
        }
	}
	return res;	
}

function xg_getParamsFromFormValidated(form){
	if (typeof(form) == "string") form = xg.obj(form);
	
	var formIsOk = xg.verifyForm("main_div");
	
	if (!formIsOk){
		xg.showFormProblems("main_div");
		return null;
	}else{
		return xg.getForm(form);
	}
	
}

function xg_getParamsFromForm(form){
	if (typeof(form) == "string") form = xg.obj(form);
	var str = "";
	
	
	var size = form.childNodes.length;
	
	for (var i=0;i<size ;i++ ){
			var obj = form.childNodes[i];
			try{
			}catch(e){}
			if (obj != null && obj.tagName == "INPUT" && obj.type.toLowerCase() != "submit" && obj.type.toLowerCase() != "button" && obj.tagName != "OPTION" && obj.name ){
			    
				if (obj.type == "checkbox"){
					str += obj.name +"="+ ( (obj.checked)? 1:0 )+"&";
					if (obj.name.indexOf("dag_")>-1 && obj.name.indexOf("_required")>-1 && obj.value.trim().length == 0){ return null;}
				}else
				    if (obj.name.indexOf("dag_")>-1 && obj.name.indexOf("_required")>-1 && obj.value.trim().length == 0){ return null;}
				      
				 str += obj.name + "="+encodeURIComponent(obj.value)+"&";
				
			}
			
			if (obj != null && obj.tagName == "TEXTAREA" && obj.name){
			    if (obj.name.indexOf("dag_")>-1 && obj.name.indexOf("_required")>-1 && obj.value.trim().length == 0){ return null;}
					 str += obj.name + "="+encodeURIComponent(obj.value)+"&";
			}
			
			if (obj != null && obj.tagName == "SELECT" && obj.name){
				str+=obj.name+"="+encodeURIComponent(obj.value)+"&";
				if (obj.name.indexOf("dag_")>-1 && obj.name.indexOf("_required")>-1 && obj.value.trim().length == 0){ return null;}
			}
			
			if (obj != null && obj.childNodes.length > 0 && obj.tagName != "SELECT"){
			       var res2 = xg.getForm(obj);
                if (res2 == null) return null;
                str+=res2;
			}
	}

	return str;
}

function xg_getObj(objid){ //# get an element = document.getElementById()
	return document.getElementById(objid);
}

function xg_createObj(objTag,floating){
	if (typeof(floating) == "undefined") floating="";
	var _myobj = null;
	
	if (floating.length > 0){
		if (xg.browser.sName == "ie"){
			_myobj = document.createElement("<"+objTag+" style='floating:"+floating+"'>");
		}else{
			_myobj = document.createElement(objTag);
			_myobj.style.float = floating;
			_myobj.style.display = "inline-block";
		}
	}else{
		_myobj = document.createElement(objTag);
	}
	
	_myobj.style.position = "absolute";
	return _myobj;
}


var xgcddo = null;
var xgcddoX = -1;
var xgcddoY = -1;
var _movable = false;
var xgdnd_move = false;
var xgdnd_mobject = null;
var xgdnd_k = 0;
var hl_cdnd = null;
var hl_cdndplus = null;
var xgdnd_lasttrg =null;
var xgdnd_orderable = false;
var xgdnd_orderable_type = null;
var xgdnd_orderable_parent = null;
var xgdnd_hiddenParentObject = null;

var xgdnd_startObjectDND = null;
var xgdnd_isDND = false;


function hl_executeDND(from,to){
	alert("xg-core dnd:"+from+":"+to);
}

function hl_executeOrder(from,to){
	alert("xg-core order :"+from.id+" to "+to.id);
}

function xgdnd_searchForDND(trg){
	
	if (typeof(trg.id) != "undefined" && (trg.id.indexOf("_moveable_")>-1 || trg.id.indexOf("_target_dnd_")>-1 || trg.id.indexOf("hx_div_")>-1)) return trg;
	while (trg.parentNode){
		var parent = trg.parentNode;
		if (typeof(parent.id) != "undefined" && (parent.id.indexOf("_moveable_")>-1 || trg.id.indexOf("_target_dnd_")>-1  || trg.id.indexOf("hx_div_")>-1)){
			return parent;
			break;
		}
		trg = parent;
	}
	return trg;
}

document.onmousedown = function(evt){
	
	if (typeof(event) != "undefined") evt = event;
	var _target = evt.srcElement? evt.srcElement : evt.target;
	xg.event.srcElement = _target;
	xg.event.ctrlKey = evt.ctrlKey;
	if (hl_cdnd == null) hl_cdnd = document.getElementById("hx_dndcontainer");
	if (xg.browser.sName == "ie") evt =event;
		if (typeof(allPopups) != "undefined" && !xg.event.cancel){
			for (var i=0;i<allPopups.length;i++ ){
						var mypopup = allPopups[i];
								
								if (mypopup.visible == true){
								
									if (evt.clientX ==0 && evt.clientY ==0){ //for non IE browsers
								
										return;
									}

									var _left = parseInt(mypopup._msurface.style.left);
									var _top = parseInt(mypopup._msurface.style.top);
									var _width = parseInt(mypopup._msurface.style.width);
									var _height = parseInt(mypopup._msurface.style.height);
									var mx = evt.pageX;
									var my = evt.pageY;
									if (xg.browser.sName == "ie"){
											mx = evt.x;
											my = evt.y;
									}
									if (mx > _left && my > _top && (mx < _left+_width) && (my < _top+_height) ){
										//is inside of the container

									}else{
										mypopup.hide();
									}
								}// if _newLoginD/visibility
								
					}
	}else{
		if (xg.event.cancel) xg.event.cancel = false;
	}
	

if (typeof(dialog) != "undefined"){
		var dlg = dialog.getDParent(_target);
		if (dlg != null){
			xgcddo = dlg.dlg;
			var mx = evt.pageX;
			var my = evt.pageY;
			if (xg.browser.sName == "ie"){
					mx = evt.x;
					my = evt.y;
			}
			xgcddoX = mx- xg.util.getLeft(dlg.dlg);
			xgcddoY = my - xg.util.getTop(dlg.dlg);
		}
}
	
	//I want to move stuff :)
		xgdnd_move = true;
		var _target = evt.srcElement? evt.srcElement : evt.target;
	  		_target = xgdnd_searchForDND(_target);
      	if (typeof(_target.id) == "undefined") return;
		
		xg.event.currentX = evt.pageX;
		xg.event.currentY = evt.pageY;
		xg.event.evt = evt;
		if (xg.browser.sName == "ie"){
			xg.event.currentX = evt.clientX;
			xg.event.currentY = evt.clientY;
		}

if (_target.id.indexOf("_moveable_")>-1 || _target.id.indexOf("_orderable_")>-1){
			_movable = true;
			xgdnd_mobject = _target;
			xgdnd_startObjectDND = xgdnd_mobject;
			var _myid = _target.id;
			_myid = _myid.substring(_myid.lastIndexOf("_")+1);

			var _defImg = document.getElementById("_file_moveable_img_"+_myid);
			var _id = _target.id;
			var _type = _id.substring(_id.indexOf("$")+1,_id.indexOf("!",_id.indexOf("$")));
			var _src= _id.substring(_id.lastIndexOf("!")+1);
			try{
				dnd_startDragging(hl_cdnd,_target);
			}catch(E){
			}

            xgdnd_orderable_type = null;
			hl_cdnd.className = "";
			
			if (_target.id.indexOf("_orderable_")>-1){
				try{
                    hl_cdnd.className = "dnd_target_app";

					hl_cdnd.style.backgroundImage = _target.style.backgroundImage;
					hl_cdnd.style.width = parseInt(_target.style.width)+"px";
					hl_cdnd.style.height = parseInt(_target.style.height)+"px";
					hl_cdnd.style.backgroundPosition = "0px 42px";
                    hl_cdnd.style.backgroundColor ="transparent";

					xgdnd_orderable = true;
					
                    if (_type.length>0){
                    		xgdnd_orderable_type = _type;
                        		if (_type == "image"){
                        			hl_cdnd.className = "dnd_target_app";
                        		hl_cdnd.style.backgroundPosition = "center center";
                        		hl_cdnd.style.backgroundColor = "white";
                        		hl_cdnd.style.border = "solid white 2px";
                        }else
                        if (_type == "file"){
                        	hl_cdnd.className = "dnd_target_file";
                        		hl_cdnd.style.width="10px";
                        		hl_cdnd.innerHTML = _target.innerHTML;
							//console.log(hl_cdnd.scrollWidth);
                        		hl_cdnd.style.width = hl_cdnd.scrollWidth;
                        		hl_cdnd.style.height = _target.offsetHeight;
                        }
                    }
				}catch(E){
				}
			}else
			if (_type=="image" || _type == "movie"){
				hl_cdnd.className = "dnd_target";
				hl_cdnd.style.backgroundColor = "white";
				hl_cdnd.innerHTML = "";
				hl_cdnd.style.backgroundImage  = "url('"+_src+"')";
				hl_cdnd.style.width = 150;
				hl_cdnd.style.height = 100;				
			}else
			if (_type == "music"){
				hl_cdnd.style.backgroundColor = "black";
				hl_cdnd.style.color = "white";
				hl_cdnd.style.padding = "5px";
				hl_cdnd.innerHTML = "<img src='http://filetypes.heeloo.net/music.mp3' border='0' align='left' width='22'/>"+_target.innerHTML;
				hl_cdnd.style.width = 200;
				hl_cdnd.style.height = 20;
				hl_cdnd.style.backgroundImage="none";
			}else
			if (_type == "file"){
				hl_cdnd.style.color = "white";
				hl_cdnd.style.padding = "5px";
				hl_cdnd.style.width = "150px";
				var ext = _src;
				if (ext.indexOf("/")>-1) ext = ext.substring(ext.lastIndexOf("/")+1);
				hl_cdnd.innerHTML = "<img src='http://filetypes.heeloo.net/"+ext+"' border='0' align='left' width='22'/>"+_target.innerHTML;
				hl_cdnd.style.height = "22px";
				hl_cdnd.style.backgroundImage="url('http://imgs.heeloo.net/shadows/75black.png')";
			}else
			if (_type == "email"){
				hl_cdnd.innerHTML = "<img src='http://imgs.heeloo.net/mail/bgmes.png' border='0'/>";
				hl_cdnd.style.height="32px";
				hl_cdnd.style.backgroundImage="none";
			}else
			if (_type == "friend"){
				hl_cdnd.innerHTML = "<img src='http://imgs.heeloo.net/mail/user.png' border='0'/>";
				hl_cdnd.style.height="32px";
				hl_cdnd.style.backgroundImage="none";

			}
			else{
				//console.log("email");

			}
			

			//xg.util.setOpacity(hl_cdnd,90);
			hl_cdnd.unselectable="on";
			hl_cdnd.style.visibility = "visible";
				var mx = evt.pageX;
			var my = evt.pageY;
			if (xg.browser.sName == "ie"){
					mx = evt.x;
					my = evt.y;
			}
			xgcddoX = mx- xg.util.getLeft(_target);
			xgcddoY = my - xg.util.getTop(_target);
			

			//xgdnd_isDND = true;
	}
	
	try{
			xg.document.onmousedown(evt);
	}catch(ex){
	}
}

document.onmouseup = function(e){
	xgcddo = null;
	xgdnd_move = false;
	xgdnd_mobject = null;
	_movable = false;
	if (!xgdnd_isDND){
	    xgdnd_orderable = false;
	 return;
	}
    showMultiSelect();
	xgdnd_k=0;
	if (xgdnd_startObjectDND == null) {xgdnd_orderable = false; return};
	if (hl_cdndplus != null) hl_cdndplus.style.visibility = "hidden";
	try{
		hl_cdnd.style.visibility = "hidden";
		var trg = document.elementFromPoint(parseInt(hl_cdnd.style.left)-2,parseInt(hl_cdnd.style.top)+16);
		if (trg == null) return;
		if (trg.id == "hl_div_myapps"){
		  //myapps 
		    var ot = xg.obj("_apps_order_tr");
		    if (ot.style.display != "none"){
                var last = ot.previousSibling;
                var parent = xgdnd_startObjectDND.parentNode;
                parent.insertBefore(xgdnd_startObjectDND,ot);
                xgdnd_startObjectDND.style.display = "block";
                xgdnd_startObjectDND.style.visibility = "visible";
                ot.style.display = "none";

                    if (typeof(hl_executeOrder) != "undefined"){
                      hl_executeOrder(xgdnd_startObjectDND,last);
                    }
                   
                   
                 xgdnd_startObjectDND = null;
                    
                    xgdnd_orderable = false;
                    hl_cdnd.style.left = -200;
                    hl_cdnd.style.top = -200;

                return;
            }
		}
		
		if (trg != null && trg.id.indexOf("_target_dnd_")>-1 || trg.id.indexOf("hx_img_")>-1 || trg.id.indexOf("_order_tr")>-1 || trg.id.indexOf("_orderable_")>-1){
          	if (xgdnd_orderable){
					 xgdnd_clearDND();
                  var mytrg = null;
                 // console.log("!!!!!! "+trg.id);
					 if (trg.id.indexOf("_target_dnd")==-1){
					    xgdnd_startObjectDND.style.visibility = "visible";
					    xgdnd_startObjectDND.style.display = "block";
	                  xgdnd_orderable_parent.style.display = "inline-block";
                    		var pp = xgdnd_ot.parentNode;
                    		 mytrg = xgdnd_ot.nextSibling.firstChild;
                         //console.log("mytrg:"+mytrg + " : "+mytrg.id);
                            pp.insertBefore(xgdnd_orderable_parent,xgdnd_ot);
                       xgdnd_redoSource();
                       xgdnd_rot();
                      }else{
                      	xgdnd_rot();
                      }
	                if (typeof(hl_executeOrder) != "undefined"){
	                    if (trg.id.indexOf("_apps_order_tr")>-1) {
                                  hl_executeOrder(xgdnd_startObjectDND,mytrg);
                         }else{
                                if (trg.id.indexOf("_target_dnd")>-1){
                                		try{
                                			xgdnd_startobjectDND.style.display = "none";
                                			xgdnd_hiddenParentObject.style.display = "none";
                                			xgdnd_orderable_parent.style.display = "none";
                                		}catch(e){
                                			//console.log(e);
                                		}
                                		hl_executeDND(xgdnd_startObjectDND,trg);
                                		xgdnd_isDND = false;
                                		xgdnd_orderable = false;
                                		dnd_checkChildMFC();
                                		//return;
                                }else{
                                    //console.log('4');
                                    moveMultiSelect();
                                		hl_executeOrder(xgdnd_startObjectDND,mytrg);
                                }
                         }
                    }else{
                    try{
                    if (trg.id.indexOf("_order_tr")>-1) {
                       //console.log(5);
                        var mytrg = trg.lastSibling;
                        moveMultiSelect();
                        hl_executeOrder(xgdnd_startObjectDND,mytrg);
                    }
                    }catch(e){
                    }
                    }
                     xgdnd_isDND = false;
                    xgdnd_startObjectDND = null;

                    xgdnd_orderable = false;
                    hl_cdnd.style.left = -200;
                    hl_cdnd.style.top = -200;
              		xgdnd_clearDND();
	                return;
				
			}else{
               // console.log(" I'm in this case is not orderable!!!");
			try{
				trg.onmouseout();
			}catch(e){}
			}

			if (xgdnd_orderable){
					if (trg.id.indexOf("_order_tr")>-1) {
					    var mytrg = trg.lastSibling;
                        hl_executeOrder(xgdnd_startObjectDND,mytrg);
					}
			}else{
						hl_executeDND(xgdnd_startObjectDND,trg);
			}
		}else{
		    xgdnd_startObjectDND.style.visibility = "visible";
            xgdnd_startObjectDND.style.display = "inline-block";
			xgdnd_hiddenParentObject.style.visibility = "visible";
			xgdnd_hiddenParentObject.style.display = "inline-block";
			xgdnd_clearDND();

            if (xgdnd_orderable_type != null){
                xgdnd_orderable_parent.style.visibility = "visible";
                xgdnd_orderable_parent.style.display = "inline-block";
            }
            
			if (xgdnd_startObjectDND.id.indexOf("_orderable_")>-1){
			}
			
		}

		xgdnd_isDND = false;
		xgdnd_startObjectDND = null;

		xgdnd_orderable = false;
		hl_cdnd.style.left = -200;
		hl_cdnd.style.top = -200;
	}catch(Ex){
	}
xgdnd_orderable = false;
xgdnd_rot();
	try{
		xg.document.onmouseup(e);
	}catch(ex){
	}
}

function dnd_checkChildMFC(){
	if (mfc.childNodes.length == 1){
		_selectFolder(myFolder);
	}
}

function xgdnd_redoSource(){
	try{
	  xgdnd_startObjectDND.style.visibility = "visible";
	xgdnd_startObjectDND.style.display = "inline-block";
	  if (xgdnd_orderable_parent != null){
	  		xgdnd_orderable_parent.style.visibility = "visible";
			xgdnd_orderable_parent.style.display = "inline-block";
			}
	}catch(e){
	//	console.log(e);
	}
}

function xgdnd_clearDND(){
	 hl_cdnd.style.backgroundPosition = "center center";
	 hl_cdnd.style.backgroundImage = "none";
	 hl_cdnd.style.left = "-300px";
	 hl_cdnd.style.top = "-300px";
}

function xgdnd_rot(){
       if (xgdnd_ot != null){
   try{
       var parent = xgdnd_ot.parentNode;
       parent.removeChild(xgdnd_ot);
   }catch(e){
   }
xgdnd_ot = null;
xgdnd_orderable_parent = null;

}
}

document.onmousemove = function(evt){

	if (hl_cdndplus == null) hl_cdndplus  = document.getElementById("hx_dndplusimg");

	if (xg.browser.sName == "ie") evt =event;
		if (evt == null){
			
			return;
		}

		xg.event.currentX = evt.pageX;
		xg.event.currentY = evt.pageY;
		xg.event.evt = evt;
		if (xg.browser.sName == "ie"){
			xg.event.currentX = evt.clientX;
			xg.event.currentY = evt.clientY;
		}

		var _target = evt.srcElement? evt.srcElement : evt.target;
			var mx = evt.pageX;
			var my = evt.pageY;
			
			if (xgdnd_move){
					xgdnd_k++;
			}

	if (xgdnd_move && _movable && xgdnd_k > 5){
		xgdnd_isDND = true;
		hl_cdnd.style.left = evt.clientX-23;
		hl_cdnd.style.top = evt.clientY - 20;
		var trg = document.elementFromPoint(parseInt(hl_cdnd.style.left)-2,parseInt(hl_cdnd.style.top)+16);
		
		if (trg == null) return;
		
		hl_cdndplus.style.visibility = "hidden"
		
		trg = xgdnd_searchForDND(trg);
		if (typeof(trg.id) == "undefined") {
			hl_cdndplus.style.visibility = "hidden"
			hl_cdndplus.style.left = "-150px";
			hl_cdndplus.style.top = "-150px";
			return;
		}
		if (xgdnd_orderable){
				if (xgdnd_startObjectDND.id.indexOf("_orderable_")>-1){
                    if (xgdnd_orderable_type == null){
						if (xgdnd_startObjectDND.style.visibility != "hidden") xgdnd_startObjectDND.style.visibility = "hidden";
                    }else{
                        try{
                        var parent = xgdnd_startObjectDND.parentNode.offsetParent.parentNode.parentNode;

                        if (parent.style.visibility != "hidden"){
                             xgdnd_startObjectDND.style.visibility = "hidden";
                             //xgdnd_startobjectDND.style.display = "none";
                             parent.style.visibility = "hidden";
                             xgdnd_hiddenParentObject = parent;
                            hideMultiSelect();
                        }
                        }catch(e){}
                    }
				}
		}
		try{
			dnd_moving(mx-xgcddoX,my-xgcddoY);
		}catch(e){
		
		}
	
		
		if ((trg.id.indexOf("_target_dnd_")>-1 || trg.id.indexOf("hx_div_")>-1) || (trg.id.indexOf("_moveable")>-1 && trg.id.indexOf("_orderable_")>-1)){
			try{
				dnd_dragging(trg);
			}catch(E){
			}
			var scrollTop = 0;
			try{
				scrollTop = trg.parentNode.parentNode.parentNode.scrollTop;
			}catch(Ex){}

			
			
			var _left = parseInt(xg.util.getLeft(trg)-32);
			var _top = xg.util.getTop(trg)-scrollTop;
			if (trg.id.indexOf("hx_div_")>-1){
				_left = parseInt(xg.util.getLeft(trg));
				_top = xg.util.getTop(trg);
			}
			
					var sameparent = trg.parentNode === xgdnd_startObjectDND.parentNode;
		            if (xgdnd_orderable_type != null){
		                var trg_parent =  trg.parentNode.offsetParent.parentNode.parentNode;
		                if (xgdnd_orderable_parent == null){
		                    var dnd_parent =  xgdnd_startObjectDND.parentNode.offsetParent.parentNode.parentNode;
		                    xgdnd_orderable_parent = dnd_parent;
		                }
		                //trg.style.border = "solid green 1px";
		                 sameparent = trg_parent.parentNode === xgdnd_orderable_parent.parentNode;
		            }else{
		                xgdnd_orderable_parent = xgdnd_startObjectDND;
		            }
            		
	        		
				if (!xgdnd_orderable || (xgdnd_orderable && sameparent)){
				        if (!xgdnd_orderable){
						  hl_cdndplus.style.left = _left+"px";
						  hl_cdndplus.style.top = _top+"px";
						  hl_cdndplus.style.visibility = "visible";
						}
						if (xgdnd_orderable && sameparent){
                            xg_dnd_slitFromTrg(trg);
						}
						try{
							trg.onmouseover();
						}catch(e){}
						if (xgdnd_lasttrg != null && xgdnd_lasttrg != trg){
							try{
								xgdnd_lasttrg.onmouseout();
							}catch(e){}
						}
						xgdnd_lasttrg = trg;
				}else{
					hl_cdndplus.style.left = (_left+10)+"px";
					hl_cdndplus.style.top = _top+"px";
					hl_cdndplus.style.visibility = "visible";

				}
		}else{
			hl_cdndplus.style.visibility = "hidden";
			if (xgdnd_lasttrg != null){
				try{
					xgdnd_lasttrg.onmouseout();
				}catch(e){}
				xgdnd_lasttrg = null;
			}
		}
	}
	
		if (xgcddo != null){

			if (xg.browser.sName == "ie"){
					mx = evt.x;
					my = evt.y;
			}
			var _xgcleft = mx-xgcddoX;
			var _xgctop = my-xgcddoY;
			xgcddo.style.left = _xgcleft+"px";
			xgcddo.style.top = _xgctop +"px";
			xgcddo.style.pointer = "default";
		}
		
		if (typeof(allPopups) != "undefined"){
		for (var i=0;i<allPopups.length;i++ ){
						var mypopup = allPopups[i];
								
								if (mypopup.visible == true){
								
									if (evt.clientX ==0 && evt.clientY ==0){ //for non IE browsers
								
										return;
									}

									var _left = parseInt(mypopup._msurface.style.left);
									var _top = parseInt(mypopup._msurface.style.top);
									var _width = parseInt(mypopup._msurface.style.width);
									var _height = parseInt(mypopup._msurface.style.height);
									var mx = evt.pageX;
									var my = evt.pageY;
									if (xg.browser.sName == "ie"){
											mx = evt.x;
											my = evt.y;
									}
									if (mx > _left && my > _top && (mx < _left+_width) && (my < _top+_height) ){
										//is inside of the container
										mypopup.mouseIn = true;

									}else{
										mypopup.mouseIn = false;
									}
								}// if _newLoginD/visibility
								
					}
	
	}


	try{
		xg.document.onmousemove(evt);
	}catch(ex){
	}
}


document.onclick = function(evt){
	if (xg.browser.sName == "ie") evt =event;

						
		try{
			document_onclick(evt);
		}catch(ex){
		}


}

var xgdnd_ot = null;

function xg_dnd_slitFromTrg(trg){
    var otstr = "_apps_order_tr";
    if (xgdnd_orderable_type != null){
        trg = trg.parentNode.offsetParent.parentNode.parentNode;
        otstr = "_image_order_tr";
    }

    var parent = trg.parentNode;
    var ns = trg.nextSibling;
    if (ns == null) return;

    if (ns.id.indexOf(otstr)==-1){
        if (xgdnd_ot != null){
            try{
                parent.removeChild(xgdnd_ot);
            }catch(e){}
                 xgdnd_ot = null;
            }

            var ot = document.createElement("DIV");
            if (xg.browser.sName == "ie" ) ot = document.createElement("<DIV style='float:left'></DIV>");
            if (xgdnd_orderable_type == null){
                ot.className = "apps_ot";
            }else{
            		if (xgdnd_orderable_type == "image") ot.className = "file_ph";
            		if (xgdnd_orderable_type =="file") {
            			ot.style.width = "100%";
            			ot.style.height = "40px";
            			ot.style.border = "dotted silver 2px";
            		}
            }
            ot.id = otstr;
             ot.style.float = "left";
            parent.insertBefore(ot,ns);
            ot.style.display = "inline-block";
            xgdnd_ot = ot;
           // ot.style.width = "1px";
            if (xgdnd_orderable_type != null){
                ot.style.backgroundColor = "white";
                }else{
                	ot.style.width = "40px";
            }
        if (xgdnd_orderable_type != null){
        try{
            xgdnd_orderable_parent.style.display = "none";
           // myparent.style.overflow = "hidden";
            //myparent.style.width = "1px";
        }catch(Exception){

        }
        }else{
            xgdnd_startObjectDND.style.display = "none";
        }

          //  xg_dnd_resizeOt();
    }else{

    }

}

function moveMultiSelect(){
   if (!mf_multiselect) return;
    try{
    var rid = xgdnd_startObjectDND.id;
    rid = rid.substring(10);
    rid = rid.substring(0,rid.indexOf("_"));

    var objid = "_container_"+rid;
    var parent = xg.obj(objid).parentNode;
    var append = true;

    if (parent.nextSibling != null){
        parent = parent.nextSibling;
        append = false;
    }


    if (mf_multiselect){
        for (var i=0;i<selectedObjects.length;i++){
            var obj = selectedObjects[i];
            if (obj.id != objid){
                if (!append){
                mfc.insertBefore(obj.parentNode,parent);
                }else{
                    mfc.appendChild(obj.parentNode);
                }
               // obj.style.float = "inline-block";
            }
        }
    }
    }catch(Ex){
        console.log(Ex);
    }
}

function hideMultiSelect(){
    if (typeof(mf_multiselect) != "undefined" && mf_multiselect){
        for (var i=0;i<selectedObjects.length;i++){
            var obj = selectedObjects[i];
            if (obj.style.visibility != "hidden"){
                obj.style.visibility = "hidden";
                obj.style.width = "1px";
                obj.style.height = "1px";
            }
        }
    }
}

function showMultiSelect(){
    if (typeof(mf_multiselect) != "undefined" && mf_multiselect){
        for (var i=0;i<selectedObjects.length;i++){
            var obj = selectedObjects[i];
                obj.style.visibility = "visible";
            obj.style.width = "150px";
            obj.style.height = "150px";
        }
    }
}

function xg_dnd_resizeOt(){
    var otstr = "_apps_order_tr";
    var max = 40;
    var step = 5;

      if (xgdnd_orderable_type != null){
          max = 150;
          otstr = "_image_order_tr";
          step = 10;
        }

         var ot = xg.obj(otstr);
         var w = parseInt(parseFloat(ot.style.width));

         if (w < max){
             w+=step;
            ot.style.width = w+"px";  
            window.setTimeout("xg_dnd_resizeOt()",1);
         }else{
         }
}

 function i_cancelBubeling(evt){
		if (xg.browser.sName == "ie") evt = event;
		try{
		 evt.cancelBubble = true;
		if (evt.stopPropagation) evt.stopPropagation();
		}catch(e){}
 }


 function nothing(){}
 function donothing() {}

function prepareStr(str){
	str = replaceStr(str,"~ap;","'");
	str = replaceStr(str,"~amp;","&");
	
	return str;
}

function i_mouseInside(obj){
	var _left = xg.util.getLeft(obj);
	var _top = xg.util.getTop(obj);
	var _width = parseFloat(obj.offsetWidth);
	var _height = parseFloat(obj.offsetHeight);
	var result = false;

	var db = xg.obj("doc_background");
	_top = _top - db.scrollTop;
	//console.log(xg.event.currentX + " | " +_left +":"+_width );
//	console.log(xg.event.currentY + " | " +_top +" : "+_height);
//	console.log("---------");
	if (xg.event.currentX > _left && xg.event.currentX <= parseInt(_left+_width) && xg.event.currentY >= _top && xg.event.currentY <= (_top+_height-10)){
		
		result = true;
	}
	return result;
}

function xg_setOpacity(level,id) {
var element = xg.obj(id);
if (element == null) return;
  element.style.opacity = level;
  element.style.MozOpacity = level;
  element.style.KhtmlOpacity = level;
  element.style.filter = "alpha(opacity=" + (level * 100) + ");";
}

var xg_fade_duration = 300;  /* 1000 millisecond fade = 1 sec */
var xg_fade_steps = 20;       /* number of opacity intervals   */
var xg_fade_delay = 5000;     /* 5 sec delay before fading out */

function xg_fadeIn(id){
	var o = xg.obj(id);
	
  for (i = 0; i <= 1; i += (1 / xg_fade_steps)) {
    setTimeout("xg_setOpacity(" + i + ",'"+id+"')", i * xg_fade_duration);
  }
}

function xg_fadeOut(id) {
  for (i = 0; i <= 1; i += (1 / xg_fade_steps)) {
    setTimeout("xg_setOpacity(" + (1 - i) + ",'"+id+"')", i * xg_fade_duration);
  }
}

function xg_installReorder(parent,positon){
	for (var i = 0;i< parent.childNodes.length; i++){
		var child = parent.childNodes[i];
		child.style.border = "solid white 1px";
		if (child.id){
			child.orderable = true;
			child._order = i;
			child.title = child.id;
		}
	}
}

//xg_installErrorBox();

function xg_installErrorBox(){
    if (typeof(xgDialog) == "undefined"){
        window.setTimeout("xg_installErrorBox()",300);
        return;
    }
    xg._errorBox = new xgDialog(myServer+"/procs/loading.html?m=Internal Error. Server may be down.Please send by.<br/><small>We appologize for inconvenience.</small>",400,200,null,null);
    xg._errorBox.skin = "red";
    xg._errorBox.create(null);
    //xg.errorBox();
}


function xg_errorBox(){
    this._errorBox.show();
}

function xg_loading(message){
		if (this._lddlg == null){
			var dlg= new xgDialog(myServer+"/apps/procs/loading.html?m="+encodeURIComponent(message),300,100,null,null);
			dlg.skin = "black";
			dlg.hideClose = true;
			dlg.create(null);
			this._lddlg = dlg;
		}

		dlg.show();
	
}

function xg_hideloading(time){
	if (typeof(time)=="undefined"){
	if (this._lddlg != null){
		this._lddlg.close();
		this._lddlg.destroy();
		this._lddlg = null;
	}
	}else{
		window.setTimeout("xg.hide()",time*1000);
	}
}	

function xg_regexpvalidate(str,type){
var email_reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
   
   if (type == "email" || type == "mail"){
		   if(email_reg.test(str) == false) {
				     return false;
			}else{
				return true;
			}
   }
}

function xg_isValidPass(str){
    var reg = /((?=.*\d)(?=.*[a-z_\x81-\xFF])(?=.*[@#$%]).{6,20})/;
    if (reg.test(str) == false){
        return false;
    }else{
        return true;
    }
}

function xg_isValidUser(str){
       var reg = /^([a-zA-Z0-9_\x81-\xFF])*$/;
    if (reg.test(str) == false){
        return false;
    }else{
        return true;
    }
}

function hx_message(msg){
	var temp = "<table border='0' width='100%' height='100px'>";
	temp += "<tr><td align='center' valign='middle'>";
	temp+="<big><i>"+msg+"</i></big>";
	temp +="</td></tr></table>";
	return temp;
}
