// $Id: marinanet-app.js,v 1.16 2007/07/10 14:31:46 vasilji Exp $

// namespace shortcuts & definitions
var $C = YAHOO.util.Connect;
var $D = YAHOO.util.Dom;
var $E = YAHOO.util.Event;

var MarinaNet = window.MarinaNet || {};

MarinaNet = {
	/*
		lang: null,
		llang: null,
		context: null,
		id: null,
	*/
	
	changeSearchTab: function(obj) {
		var type = obj.href.substr(obj.href.indexOf('#')+1);
		var uri = '/async/searchform.htm';
		var params = '?lang='+this.lang+'&type='+type;
		
		// get content container
		var list = obj;
		while (list && (list.nodeName.toLowerCase()!='ul' && list.nodeName.toLowerCase()!='ol'))
			list = list.parentNode;

		var container = document.getElementById(list.id.replace(/-tabs/,'')+'-content');
		
		// loading anim container
		var loader = obj;
		while (loader && loader.nodeName.toLowerCase()!='li')
			loader = loader.parentNode;

		// fetch data
		if (type!=null && container!=null)
			Utils.fetchPage(uri+params, container, loader, function() { Forms.setCurrentDates(document.getElementById('searchform'), 'dateFrom', 'dateTo') });
	
		// change active tab
		Gui.selectTab(obj);
	},
	
	langSelect: function() {
		$D.setStyle('languages', 'display', 'block'); 
	},

	langHide: function() {
		$D.setStyle('languages', 'display', 'none'); 
	},
	
	getResultsPage: function(obj) {
		var resultsPage = obj.options[obj.selectedIndex].getAttribute('url');
		var form = document.getElementsByTagName('form');
		form[0].setAttribute('action', resultsPage);
	},
	
	cloneField: function(occurence, klass) {
		var nodesBefore = $D.getElementsByClassName(klass);
		var cloningNode = nodesBefore[0];
		var nodeParent = cloningNode.parentNode;
		
		if(nodesBefore.length > 1) {
			for(var i = 1; i < nodesBefore.length; i++) {
				nodeParent.removeChild(nodesBefore[i]);
			}
		}
		
		for(var i=1; i <= occurence; i++) {
			var clone = cloningNode.cloneNode(true);
			
			// enumerating for attributes - IE doesn't play nice with get/setAttribute('for')
			var label4select = clone.getElementsByTagName('label')[0];
			var label4input = clone.getElementsByTagName('label')[1];
			label4select.attributes['for'].value += i;
			label4input.attributes['for'].value += i;

			var sel = clone.getElementsByTagName('select')[0];
			var inputChkbox = clone.getElementsByTagName('input')[0];
			var inputHidden = clone.getElementsByTagName('input')[1];
			
			// enumerating controls' ids			
			sel.setAttribute('id', sel.getAttribute('id') + i);
			inputChkbox.setAttribute('id', inputChkbox.getAttribute('id') + i);
			
			// enumerating label text content
			var tmp = label4select.firstChild.nodeValue.split(' ');
			var lblText = tmp[0] + (' ' + i + ': ');
			clone.getElementsByTagName('label')[0].firstChild.nodeValue = lblText;
			
			// enumerating name attribute for select
			var selectName = sel.getAttribute('name').split('1_');
			sel.setAttribute('name', selectName[0] + i  + '_' + selectName[1]);
			
			// enumerating name attribute for hidden input
			var hiddenName = inputHidden.getAttribute('name');
			inputHidden.setAttribute('name', hiddenName.substring(0, hiddenName.length - 1) + i);
			
			nodeParent.insertBefore(clone, cloningNode);
		}
		
		nodeParent.removeChild(cloningNode);
	},
	
	setDateTo: function(idFrom, idTo, days) {
		var selectedDate = new Date(document.getElementById(idFrom+'-yearControl').value,document.getElementById(idFrom+'-monthControl').value,document.getElementById(idFrom+'-dayControl').value);	
		var dateTo = new Date(selectedDate.getTime() + 1000*60*60*24 * days);
		document.getElementById(idTo+'-yearControl').value = dateTo.getFullYear();
		document.getElementById(idTo+'-monthControl').value = dateTo.getMonth();
		document.getElementById(idTo+'-dayControl').value = dateTo.getDate();
		
		this.updateDays(idFrom, idTo);
	},
	
	updateDays: function (idFrom, idTo) {
		var selectedDate = new Date(document.getElementById(idFrom+'-yearControl').value, document.getElementById(idFrom+'-monthControl').value, document.getElementById(idFrom+'-dayControl').value);	
		var dateTo = new Date(document.getElementById(idTo+'-yearControl').value, document.getElementById(idTo+'-monthControl').value, document.getElementById(idTo+'-dayControl').value);	
		
		if (document.getElementById('days')) {
			document.getElementById('days').value = (dateTo - selectedDate) / (1000*60*60*24);
		}
	}
	
}