BarISPage = function() {
    this.modulId = null;
    this.content = null;
    this.errors = new Array();
    this.windows = new Array();
    this.nParams = new NParams("");
}

BarISPage.MoNetModul = 5;
BarISPage.DealerModul = 4;
BarISPage.MyNetModul = 3;
BarISPage.CrmModul = 2;
BarISPage.BarNetModul = 1;


BarISError = function()
{
    this.type = '';
    this.message = '';
    this.time = null;
    this.name ='';
    this.adminMode=0;
}

BarISPage.extjsgrid = null
BarISPage.extjsgridgraf = null
BarISPage.extjsgridascx = new Array();


BarISPage.RefreshDataSource = function(result,context)
{
    barISPage.fireEvent('refreshDataSource');
}


BarISPage.OnAsyncOk = function(result,context)
{
    var typ = 'info';
    if(result.OK == false)    
        typ = 'alert';    
     myAlert(typ,result.Message,false)

}

BarISPage.OnAsyncFailed = function(result,context)
{
   myAlert('alert','Neúspešné vykonanie operacie na serveri',false)
}


BarISPage.Detail = function(content,nparams,showHeader)
{

	var url =  barISPage.getAspx() + '?copycontent=' + content;
	if( showHeader != true)
	    url  = url + '&hideHeader=True';
	if( nparams != null )
		url  = url + '&nparams=' + nparams;		
	var nparamsstring ='';	
	var windowName = 'DETAIL';
	var sirka = 1024;
	var vyska = 700;
	var resizable = 'yes';
	var scroll = 'no';
	MyWindowOpen(url,windowName,sirka,vyska,resizable,scroll)

}

BarISPage.ErrorMsg = function(message)
{
   if(Ext!=null)
   {
   Ext.MessageBox.show({
                                    title: 'SQL Error',
                                    msg: message,
                                    buttons: Ext.MessageBox.OK,
                                    icon: Ext.MessageBox.ERROR
                                })
   }
}

BarISPage.isdefined = function(object, variable)
{
    return (typeof(eval(object)[variable]) != 'undefined');
}

BarISPage.CollectPostData = function(el,splitName /*def false*/)
{
    
    if( typeof splitName === 'undefined'  || splitName == '')
        splitName = false;            
    var ret='';
    if( el != null )
    {   
        inputs = el.getElementsByTagName('INPUT');   
        var name ='';             
        for( var i = 0 ; i != inputs.length ; i++ )
        {            
            name = inputs[i].name;
            if( splitName)
             name = name.substr(name.lastIndexOf(':')+1);
            if( ( inputs[i].type == 'radio' || inputs[i].type == 'checkbox' )  && !inputs[i].checked )            
                continue;  
            ret += ';' + name + ';' + inputs[i].value            
        }                
        inputs = el.getElementsByTagName('SELECT');
        for( i = 0 ; i != inputs.length ; i++ )
        {
            name = inputs[i].name;
            if( splitName)
                name = name.substr(name.lastIndexOf(':')+1);
            ret += ';' + name + ';' + inputs[i].value            
        }
        ret = ret.substr(1);                         
    }
    return ret;
}

BarISPage.ModifyQuery = function(params)
{
	var url = unescape(location.search.substr(1).replace(/\+/g, " "))
	var param = url.split("&")
	var nparams = ""
	var urlParams = new Array()
	for(var n = 0; n < param.length; n++)
	{
		var temp = param[n].split("=")
		if(temp[0] == "nparams")
			nparams = temp[1].replace(/\'/g,"\\\'")
		else
			urlParams[temp[0]] = temp[1].replace(/\'/g,"\\\'")
	}
	var nparam = nparams.split(";")
	var pocet = nparam.length
	var nparamsArr = new Array()
	if(pocet > 1)
	for(n = 0; n < pocet; n+=2)
	{
		nparamsArr[nparam[n]] = nparam[n+1].replace(/\'/g,"\\\'")
	}
	for(n in params)
	{
		nparamsArr[n] = params[n]
	}

	url = "?"
	for(n in urlParams)
	{
		url += n + "=" + urlParams[n] + "&"
	}
	nparams = ""
	for(n in nparamsArr)
	{
		if(nparamsArr[n] != "")
			nparams += n + ";" + nparamsArr[n] + ";"
	}
	if(nparams.length > 0)
		url += "nparams=" + nparams

	return url.substr(0, url.length - 1)
}

BarisPageEventFunction = function()
{
    this.eventFunctionName = '';
    this.argsCount = 0;
    this.functionArgs = '';
}

BarISPage.prototype =
{
    init: function(pageId, pageName, adminMode, modulId) {
        this.content = pageId;
        this.adminMode = adminMode;
        this.name = pageName;
        this.modulId = modulId;
    },
    showInfo: function() {
        alert(this.content);
    },
    
    tryForward : function(fwdParams) {    
        Baris.Portal.CommonServices.CanAccessPage({ Content : fwdParams.content , NParams : fwdParams.nparams },barISPage.tryForwardSuccess);    
    },
    tryForwardSuccess : function(result)
    {    
        if( result.Message  != null )
        {
            myAlert('alert',result.Message);
            return;
        }
        else if( result.State == false )
        {
            if( fwdParams.AccessDeniedMessage != '' )            
                myAlert('alert',fwdParams.AccessDeniedMessage);
            else
                myAlert('alert','Nemáte prístup k tejto stránke');
        }
        if( result.State == true )
        {
            var fwdUrl = barISPage.getAspx() + '?content=' + result.Content;
            if( result.NParams != '')
                fwdUrl += fwdUrl +'&nparams=' + result.NParams;        
            window.location = fwdUrl;
        }    
    },   
    chainEvent: function(eventName, functionName) {
        if (arguments.length > 1) {
            var efargs = new Array();
            var argsc = 0;
            for (i = 2; i < arguments.length; i++) {
                efargs[i - 2] = arguments[i];
                argsc = i + 1;
            }
            try {
                var event = eval("this." + eventName);
                var eventFunction = new BarisPageEventFunction;
                eventFunction.eventFunctionName = functionName;
                eventFunction.functionArgs = efargs;
                var naslo = false
                for (var i = 0; i < event.length; i++) {
                    if (event[i].eventFunctionName == eventFunction.eventFunctionName) {
                        naslo = true;
                    }
                }
                if (naslo == false) {
                    event[event.length] = eventFunction;
                }
            }
            catch (Error) {
                var event = eval("this." + eventName + " = new Array();");
                var eventFunction = new BarisPageEventFunction;
                eventFunction.eventFunctionName = functionName;
                eventFunction.functionArgs = efargs;
                event[0] = eventFunction;

            }
        }

    },

    removeEvent: function(eventName, functionName) {
        var event = eval("this." + eventName);
        var tempEvent = new Array();
        if ((event != null) && (event["length"] != null) && (event.length > 0)) {
            for (var i = 0; i < event.length; i++) {
                if (event[i].eventFunctionName != functionName) {
                    tempEvent[tempEvent.length] = event[i];
                }
            }
            eval("this." + eventName + " = tempEvent");
        }

    },

    fireEvent: function(eventName, params) {
        try {
            var event = eval("this." + eventName)
            if (event == null) {
                return;
            }
            var eventCount = event.length;
            for (i = 0; i < eventCount; i++) {
                var eventF = event[i]
                var f = eventF.eventFunctionName + '('
                var first = true;
                for (j = 0; j < eventF.functionArgs.length; j++) {
                    if (!first) {
                        f = f + ', '
                    }
                    f = f + event[i].functionArgs[j]
                }
                if (params != null) {
                    f = f + Ext.util.JSON.encode(params);
                }
                f = f + ');'
                eval(f);
            }
        }
        catch (err) {
            //alert("Nastala chyba pri spusteni eventu");
        }

    },

    getAspx: function() {
        switch (this.modulId) {
            case BarISPage.MoNetModul:
                return 'mo.aspx';
                break;
            case BarISPage.DealerModul:
                return 'dealer.aspx';
                break;
            case BarISPage.MyNetModul:
                return 'mynet.aspx';
                break;
            case BarISPage.CrmModul:
                return 'intranet.aspx';
                break;
            case BarISPage.BarNetModul:
                return 'baris.aspx';
                break;
            default:
                return 'default.aspx';
                break;

        }

    },

    fireRefreshDataSource: function() {
        this.fireEvent('refreshDataSource')
    },

    fireLayoutChangedFn: function() {
        this.fireEvent('layoutChanged')
    },

    registerError: function(type, message) {
        if ((type != 'error') && (type != 'warning') && (type != 'notice')) {
            registerError('error', 'No error type ' + type + ' available. Check barispage.js for more info.')
        }
        var time = new Date();
        var error = new BarISError();
        error.type = type;
        error.message = message;
        error.time = time;
        this.errors[time.toString()] = error;
    },

    checkErrors: function() {
        var win = $get('errorDiv');
        var errorsWin = $get('errorDivTabsErrors');
        var warningsWin = $get('errorDivTabsWarnings');
        var noticesWin = $get('errorDivTabsNotices');
        if ((errorsWin == null) || (warningsWin == null) || (noticesWin == null) || (win == null)) {
            return;
        }

        errorsWin.innerHTML = "";
        warningsWin.innerHTML = "";
        noticesWin.innerHTML = "";

        for (index in this.errors) {
            if (this.errors[index].type == 'error') {
                errorsWin.innerHTML += this.errors[index].message
            }
            if (this.errors[index].type == 'warning') {
                warningsWin.innerHTML += this.errors[index].message
            }
            if (this.errors[index].type == 'notice') {
                noticesWin.innerHTML += this.errors[index].message
            }
        }

        win.style.visibility = "visible";
    }
}
/*
registerer events

layoutChanged - zmena rozlozenia panelov na stranke
refreshDataSource - nacitenie dat zo servera
dataLoaded - data boli nacitane zo zdroja
*/

/*
  error types:  
  notice
  warning
  error
*/

ItemIdes = function()
{
}

ItemIdes.commandImageId = 0;
ItemIdes.reportID = 0;


ExtJsGridButtons = function()
{
}

//tvar - cislo nalepky;id elementu;colset;image;altimage
ExtJsGridButtons.colset = new Array();