/**
 * (c) 2005 Primary Brokers S.A. - http://www.primary.com.ar/
 */

        var generator = new Generator();
        var productManager=top.x.productManager;
        var orderManager=top.x.orderManager;
        var eventHandler=top.x.eventHandler;
        var userManager=top.x.userManager;
        var debug=top.x.debug;
        var refreshData=top.x.refreshData;
        var refreshQuote=top.x.refreshQuote;
        var refreshRisk=top.x.refreshRisk;
        var refreshSubs=top.x.refreshSubs;
        var sendRefreshTo=top.x.sendRefreshTo;
        var sendReloadAccount=top.x.sendReloadAccount;
        var toggleDebug=top.x.toggleDebug;
        var hit=top.x.hit;
        var take=top.x.take;
        var iTags=top.x.iTags;
        var pstatus=top.x.pstatus;
        var size=top.x.size;
        var propHandler=null;
        var generatorTimeout=300;
	var brokerManager=top.x.brokerManager;
	var PL=top.x.PL;

	var ErrorRaro = "Pepe no es un error";
	
	function statusDisconnected(){
		try {
			var event = new top.x.PushletEvent();
			event.put(iTags.TYPE, iTags.DISCONNECTED);
			eventHandler.updateListeners(event);
		} catch(err) {
			//alert("Error grave al desconectarse: " + err);
		}
	}
	/**
	 * Se asegura que el estado de login/logout de Webstream sea igual que el de Xoops
	 * Debe ser llamada una vez que la propagacion de variables entre frames esta comprobada.
	 */
	function checkLogin() {
                if (sessionUser!=null && sessionId != null && userManager.loggedin != 1) {
			pstatus("checkLogin: xoops logged / pushlet not. Fixing..");
			// Si es broker, tengo que avisarle al usermanager.
			userManager.isbroker=isbroker;
			userManager.market=brokerMarket;
			userManager.brokerID=brokerID;
                        userManager.login(sessionUser,sessionId);
			generatorTimeout=3500;
                } else if (userManager.loggedin ==1 && sessionId==null) {
			pstatus("checkLogin: xoops not logged / pushlet logged. Fixing..");
                        userManager.logout();
			setTimeout("top.x.connect()",500);
			generatorTimeout=3500;
		}
        }

	/**
	 * Se asegura que la propagacion de variables de un frame a otro
	 * sea la correcta.
	 */
	function checkPropagation() {
		try {
		// Este if es para el IE porque no tira error en el try del siguente if! :D
		//if (productManager == undefined){ 
				//clearInterval(propHandler);
                                //setTimeout("restartPushlet()",5000);
		//		alert('caca nene');
				//return;
		//} 
		if (productManager == undefined || productManager == null) {
			try{
        		productManager=top.x.productManager;
        		eventHandler=top.x.eventHandler;
        		userManager=top.x.userManager;
        		orderManager=top.x.orderManager;
        		debug=top.x.debug;
        		refreshData=top.x.refreshData;
        		toggleDebug=top.x.toggleDebug;
        		hit=top.x.hit;
        		take=top.x.take;
        		iTags=top.x.iTags;
        		pstatus=top.x.pstatus;
        		size=top.x.size;
			// El frame de webstream recien se esta cargando.
			// Le doy tiempo al generador.
			generatorTimeout=3500;
			if (productManager == undefined ){
				clearInterval(propHandler);
				setTimeout("restartPushlet()",5000);
			}
			}catch (err){
				clearInterval(propHandler);
				setTimeout("restartPushlet()",5000);
			}
		} else if (top.x.listenAckID){
			pstatus("checkPropagation: propagated!!");
			checkLogin();
			clearInterval(propHandler);
			propHandler=null;
			pstatus("checkPropagation: iniciando Generator con timeout=" + generatorTimeout);
			setTimeout("generator.startGenerators()",generatorTimeout);
		} else {
			pstatus("checkPropagation: not yet!");
			clearInterval(propHandler);
                        setTimeout("restartPushlet()",10000);

		}
		}catch(err){alert(err);}
	}

function addZero(vNumber){ 
    return ((vNumber < 10) ? "0" : "") + vNumber 
  } 

function formatDate(vDate, vFormat){ 
    var vDay                      = addZero(vDate.getDate()); 
    var vMonth            = addZero(vDate.getMonth()+1); 
    var vYearLong         = addZero(vDate.getFullYear()); 
    var vYearShort        = addZero(vDate.getFullYear().toString().substring(3,4)); 
    var vYear             = (vFormat.indexOf("yyyy")>-1?vYearLong:vYearShort) 
    var vHour             = addZero(vDate.getHours()); 
    var vMinute           = addZero(vDate.getMinutes()); 
    var vSecond           = addZero(vDate.getSeconds()); 
    var vDateString       = vFormat.replace(/dd/g, vDay).replace(/MM/g, vMonth).replace(/y{1,4}/g, vYear) 
    vDateString           = vDateString.replace(/hh/g, vHour).replace(/mm/g, vMinute).replace(/ss/g, vSecond) 
    return vDateString 
  } 
	function markUpdated(id) {
		try {
			getRawObject(id).parentNode.className="updated";
		} catch (err) {
		}
	}
	
	function markNormal(id) {
		try {
			getRawObject(id).parentNode.className="normal";
		} catch (err) {
		}
	}
	
	function markStyle(id,style) {
                try {
                        getRawObject(id).parentNode.className=style;
                } catch (err) {
                }
        }

