dojo.require('actijscore.parser');

dojo.provide('holdings');

dojo.declare('holdings', null, 
{
	domNode: null,
	arrLinksList: [],
	arrLinks: [],
	
	mainElement : {},

	constructor: function(params, srcNodeRef)
	{
		this.arrLinks = [];
		this.domNode = srcNodeRef;
		
		this.mainElement = dojo.query('div.jsMainRealisation', this.domNode)[0];
		
		this.arrUlLiList = dojo.query('ul.list li', this.domNode);
		
		
		this.arrUlLiList.forEach(dojo.hitch(this, function(domElem)
		{
			var aquery = dojo.query('a', domElem);
			for (var i=0;i<aquery.length;i++){
				this.arrLinks.push(new holdings_link({objHoldings: this}, aquery[i]));
			}
		}));
		
		//TO DELETE
		Gholdings = this;
	},

	destroy: function()
	{
		var objLink;
		while ((objLink = this.arrLinks.pop()) != undefined)
		{
			dojo.destroy(objLink);
		}
	}
	
});

dojo.provide('holdings_link');

dojo.declare('holdings_link', null, 
{
	arrHandler: [],
	domNode: null,
	objHoldings: null,

	constructor: function(params, srcNodeRef)
	{
		this.arrHandler = [];
		this.domNode = srcNodeRef;
		this.objHoldings = params.objHoldings;
		var handler = dojo.connect(this.domNode, 'click', this, this.onClick);
		this.arrHandler.push(handler);
	},

	destroy: function()
	{
		var h;
		while ((h = this.arrHandler.pop()) != undefined)
		{
			dojo.disconnect(h);
		}
	},

	onClick: function(e)
	{
		var realisation_id;
		var uri = this.domNode.href.split('?')[1];
		
		var arrParams = uri.split('&');
		
		for (var i =0; i<arrParams.length; i++){
			var arrParam = arrParams[i].split('=');
			if (arrParam[0] == "realisation_id"){
				realisation_id = arrParam[1];
				break;
			}
		}
		if (realisation_id){
			var arrParts = this.domNode.href.split('/');
			arrParts = arrParts.slice(0, arrParts.length - 1);
			this.strAjaxHref = arrParts.join('/');
			this.strAjaxHref += '/actiajaxcore/call/realisation/(realisation_id)/'+realisation_id;
			console.log(this.strAjaxHref);
			var ctx = this;
			dojo.xhrPost({
				url : this.strAjaxHref,
				load : function(data) {
					console.log(data);
					ctx.objHoldings.mainElement.innerHTML = data;

				}
			});
			
			dojo.stopEvent(e);
		}

	}


});

actiJSCoreParser.addDefinition(".jsHoldings", holdings, {});
