//////////////////////////////
//  Unicredit specialities  //
//////////////////////////////

/*ROTATING BANNER*/

if (typeof(__bannerContainer)=='undefined')
{
    __bannerContainer=new Array();
}

function rotateBanner(containerID)
{        
    __bannerContainer[containerID]['theBanner']++;
    if (__bannerContainer[containerID]['theBanner'] >= __bannerContainer[containerID]['BannerOrder'].length)
    {
        __bannerContainer[containerID]['theBanner'] = 0;
    }
    putBanner(containerID);
    if (__bannerContainer[containerID]['BannerObjects'].length > 1) // only if more than one
        {
        setTimeout("rotateBanner('" + containerID + "');", __bannerContainer[containerID]['interval']*1000);
        }
    return true;
}
    
function putBanner(containerID)
{
    the = __bannerContainer[containerID]['theBanner'];
    idx = __bannerContainer[containerID]['BannerOrder'][the];
    id = __bannerContainer[containerID]['BannerIds'][idx];
    
    if(typeof(__bannerContainer[containerID]['lastShown'])=='undefined' || 
      (__bannerContainer[containerID]['lastShown']) != id) // only if realy changed
        {                  
        document.getElementById(containerID).innerHTML = __bannerContainer[containerID]['BannerObjects'][idx];    
        __bannerContainer[containerID]['lastShown'] = id;
        /*if(___banner_backendurl.indexOf('?')>=0)
           {   
               burl = ___banner_backendurl + '&banner_id='+id.toString();
           }
           else
           {
               burl = ___banner_backendurl + '?banner_id='+id.toString();
           }
	*/ 
        //Http.get({ url: burl,cache: Http.Cache.GetNoCache, callback: function(){} });
        } 
    return true;
}

/*TOOLBAR*/
/*
Módosítások az eredetihez képest: contentRoot, ami minden backgroundhoz kell
*/
var UCTmoving=false;
var contentRoot = '/^toolbar/';
var UCToolbar={    
	openTool:function(e,params){
		if(params==null) params="";
		if(!UCTmoving){
			if(!$('UCT-bg')){
				var tool_shadow1 = Builder.node('div',{className:'UCT-sh1'});
				var tool_shadow2 = Builder.node('div',{className:'UCT-sh2'});
				var tool_shadow3 = Builder.node('div',{className:'UCT-sh3'});
				var tool_shadow4 = Builder.node('div',{className:'UCT-sh4'});
				var tool_shadow5 = Builder.node('div',{className:'UCT-sh5'});
				var tool_contShad = Builder.node('div',{className:'contShad',id:'contShad'});
				var tool_cont = Builder.node('div',{id:'UCT-cont'});
				var tool_bg = Builder.node('div',{className:'UCT-bg',id:'UCT-bg'});		
				var tool_btnClose = Builder.node('div', {id:'btnClose'});
				var tool_btnCloseHref = Builder.node('a',{id:'btnCloseA',onclick:'UCToolbar.closeTool(this);',href:'javascript:void(0);'},'CLOSE');
				tool_contShad.appendChild(tool_shadow1);
				tool_contShad.appendChild(tool_shadow2);
				tool_contShad.appendChild(tool_shadow3);
				tool_contShad.appendChild(tool_shadow4);
				tool_contShad.appendChild(tool_shadow5);
				$('UCToolbar').appendChild(tool_contShad);
				tool_bg.appendChild(tool_cont);
				$('UCToolbar').appendChild(tool_bg);
				$$('div.UCTCont')[0].getElementsByTagName('UL')[0].className = "open";
				$('UCToolbar').style.background = 'url('+contentRoot+'i/bgTool.jpg) top center no-repeat #98000E';
				$('UCT-bg').style.display = "none";
				$$('A.UCT-t').each(function(a){a.target="UCTFrame"});
				UCTmoving=true;
				new Effect.SlideDown('UCT-bg', {duration:.6,afterFinishInternal:function(){
					var tool_iframe = Builder.node('iframe',{
						src:e.href+params,
						id:'UCTFrame',
						name:'UCTFrame',
						height:'230',
						width:'990',
						frameborder:'0',
						marginwidth:'0',
						marginheight:'0',
						align:'middle',
						scrolling:'no',
						allowtransparency:'true'
					});
					$('UCT-cont').appendChild(tool_iframe);
					UCTmoving=false;
				}});
				tool_btnClose.appendChild(tool_btnCloseHref);
				$('UCTClose').appendChild(tool_btnClose);
				$('btnClose').style.display = "none";
				new Effect.Appear($('btnClose'),{duration:.6});
				e.className = "t on";
				e.parentNode.className="on";
			}else{
				$$('A.t').each(
					function(b){
						b.className = "t";
						b.parentNode.className="";
					}
				);
				e.className = "t on";
				e.parentNode.className = "on";
				$('UCTFrame').style.height="232px";
				$('UCT-bg').style.height="232px";
				$('UCTFrame').src = e.href+params;
			}
		}
	},
	closeTool:function(){
		UCTmoving=true;
		Element.remove('UCTFrame');
		new Effect.SlideUp('UCT-bg',{
			duration:.8,
			afterFinishInternal:function(){
				$$('div.UCTCont')[0].style.display = "block";
				Element.remove('UCT-bg');
				$('UCToolbar').style.background = 'url('+contentRoot+'i/tb_bg.gif) #E6E6E6 repeat-x bottom left';
				var li=$('menuTool').getElementsByTagName('LI');
				for (var i=0; i<li.length; i++) {
					li[i].className="";
					li[i].firstChild.className = "t";
				};
				Element.remove('contShad');
				$$('div.UCTCont')[0].getElementsByTagName('UL')[0].className = "";
				UCTmoving=false;
			}
		});
		new Effect.Fade($('btnClose'),{
			duration:.5,
			afterFinishInternal: function(){
				Element.remove($('btnClose'));
		}});
	},
	showWWL:function(){
		new Effect.Morph($('UCT-bg'),{style:'height:470px',duration:.5,afterFinishInternal: function(){
			$('UCTFrame').src="http://www.unicreditgroup.eu/ucg-content/en/inc/worldwide.htm"
		}});
		$('UCTFrame').style.height="470px"
		$('UCT-cont').style.height="470px"
	}
}

/*MENU BLOCK*/

var contentMenuContents = new Array();
var isContentOpened = new Array();

function openContentMenu(menuLayerID)
{
	document.getElementById(menuLayerID + '_layer').innerHTML = contentMenuContents[menuLayerID];
	isContentOpened[menuLayerID] = true;
}
function closeContentMenu(menuLayerID)
{
	document.getElementById(menuLayerID + '_layer').innerHTML = '<img src="/^images/spacer.gif" width="1" height="1">';
	isContentOpened[menuLayerID] = false;
}
function clickContentMenu(menuLayerID)
{
	if (isContentOpened[menuLayerID] == true)
	{
		closeContentMenu(menuLayerID);
	}
	else
	{
		openContentMenu(menuLayerID);
	}
}

/* 
    XmlHttpRequest Wrapper
    Version 1.3.0
    29 Jul 2005 
    adamv.com/dev/
    1.2.2 > 1.3.0 Zoltan Zorgo, added request header support
*/

var Http = {
    ReadyState: {
        Uninitialized: 0,
        Loading: 1,
        Loaded:2,
        Interactive:3,
        Complete: 4
    },
        
    Status: {
        OK: 200,
        
        Created: 201,
        Accepted: 202,
        NoContent: 204,
        
        BadRequest: 400,
        Forbidden: 403,
        NotFound: 404,
        Gone: 410,
        
        ServerError: 500
    },
        
    Cache: {
        Get: 1,
        GetCache: 2,
        GetNoCache: 3,
        FromCache: 4
    },
    
    Method: {Get: "GET", Post: "POST", Put: "PUT", Delete: "DELETE"},
    
    enabled: false,
    logging: false,
    _get: null, // Reference to the XmlHttpRequest object
    _cache: new Object(),
    
    Init: function(){
        Http._get = Http._getXmlHttp()
        Http.enabled = (Http._get != null)
        Http.logging = (window.Logging != null);
    },
    
    _getXmlHttp: function(){
    /*@cc_on @*//*@if (@_jscript_version >= 5)
        try { return new ActiveXObject("Msxml2.XMLHTTP"); } 
        catch (e) {} 
        try { return new ActiveXObject("Microsoft.XMLHTTP"); } 
        catch (e) {} 
    @end @*/
        try { return new XMLHttpRequest();}
        catch (e) {}

        return null;
    },

/*
    Params:
        url: The URL to request. Required.
        cache: Cache control. Defaults to Cache.Get.
        callback: onreadystatechange function, called when request is completed. Optional.
        method: HTTP method. Defaults to Method.Get.
*/
    get: function(params, callback_args){   
        if (!Http.enabled) throw "Http: XmlHttpRequest not available.";
        
        var url = params.url;
        if (!url) throw "Http: A URL must be specified";
                
        var cache = params.cache || Http.Cache.Get;
        var method = params.method || Http.Method.Get;
        var callback = params.callback;
        var requestHeader = params.header || null;
        
        if ((cache == Http.Cache.FromCache) || (cache == Http.Cache.GetCache))
        {
            var in_cache = Http.from_cache(url, callback, callback_args)

            if (Http.logging){
                Logging.log(["Http: URL in cache: " + in_cache]);
            }

            if (in_cache || (cache == Http.Cache.FromCache)) return in_cache;
        }
        
        if (cache == Http.Cache.GetNoCache)
        {
            var sep = (-1 < url.indexOf("?")) ? "&" : "?"   
            url = url + sep + "__=" + encodeURIComponent((new Date()).getTime());
        }
    
        // Only one request at a time, please
        if ((Http._get.readyState != Http.ReadyState.Uninitialized) && 
            (Http._get.readyState != Http.ReadyState.Complete)){
            this._get.abort();
            
            if (Http.logging){
                Logging.log(["Http: Aborted request in progress."]);
            }
        }
        
        Http._get.open(method, url, true);

        if (requestHeader){
            for(var field in requestHeader){
                Http._get.setRequestHeader(field, requestHeader[field]);
            }
        }

        Http._get.onreadystatechange =  function() {
            if (Http._get.readyState != Http.ReadyState.Complete) return;
            
            if (Http.logging){
                Logging.log(["Http: Returned, status: " + Http._get.status]);
            }

            if ((cache == Http.Cache.GetCache) && (Http._get.status == Http.Status.OK)){
                Http._cache[url] = Http._get.responseText;
            }
            
            if (callback_args == null) callback_args = new Array();

            var cb_params = new Array();
            cb_params.push(Http._get);
            for(var i=0;i<callback_args.length;i++)
                cb_params.push(callback_args[i]);
                
            callback.apply(null, cb_params);
        }
        
        if(Http.logging){
            Logging.log(["Http: Started\n\tURL: " + url + "\n\tMethod: " + method + "; Cache: " + Hash.keyName(Http.Cache,cache)])
        }
        
        Http._get.send(params.body || null);
    },
    
    from_cache: function(url, callback, callback_args){
        var result = Http._cache[url];
        
        if (result != null) {
            var response = new Http.CachedResponse(result)
            
            var cb_params = new Array();
            cb_params.push(response);
            for(var i=0;i<callback_args.length;i++)
                cb_params.push(callback_args[i]);
                            
            callback.apply(null, cb_params);
                
            return true
        }
        else
            return false
    },
    
    clear_cache: function(){
        Http._cache = new Object();
    },
    
    is_cached: function(url){
        return Http._cache[url]!=null;
    },
    
    CachedResponse: function(response) {
        this.readyState = Http.ReadyState.Complete
        this.status = Http.Status.OK
        this.responseText = response
    }   
}

Http.Init()

function json_response(response){
    var js = response.responseText;
    try{
        return eval(js); 
    } catch(e){
        if (Http.logging){
            Logging.logError(["json_response: " + e]);
        }
        else{
            alert("Error: " + e + "\n" + js);
        }
        return null;
    }
}

function getResponseProps(response, header){
    try {
        var s = response.getResponseHeader(header || 'X-Ajax-Props');
        if (s==null || s=="")
            return new Object()
        else
            return eval("o="+s)
    } catch (e) { return new Object() }
}