/**
 * Project include
 */
var __included = null;
function include(script)
{
	if (__included == null) {
		__included = new Array();
		var scripts = document.getElementsByTagName('script');
		for (var i=0; i<scripts.length; i++)
			__included[i] = scripts[i].getAttribute('src');
	}
	if (!inArray(__included, script)) {
		__included[__included.length] = SCRIPTS_PATH + script;
		/*var head = document.getElementsByTagName('head').item(0);
		var js = document.createElement('script');
		js.setAttribute('language', 'javascript');
		js.setAttribute('type', 'text/javascript');
		js.setAttribute('src', SCRIPTS_PATH + script);
		head.appendChild(js);*/
		document.writeln('<script src="'+SCRIPTS_PATH+script+'" type="text/javascript"></script>');
  }
}

/**
 * Project functions
 */
function BspButton(func, img, txt)
{
	var str = '<img src="' + img + '" />';
	if (txt != undefined)
		str += ' ' + txt;
	
	var btn = document.createElement('a');
	btn.href = 'javascript:;';
	btn.className = (txt == undefined ? 'btn' : 'ic_btn');
	btn.onclick = function() { return func(); }
	btn.innerHTML = str;
	
	return btn;
}
function BspModLoaded(mod)
{
	var mod_data = mod.getData();
	highlightRows("jsHovers", "row_over", "header", mod_data);
	//truncateCellsByCol("jsTruncateCells", "header", 4, mod_data);
	mod_doc = null;
	for (var i=0; i<mod_data.childNodes.length; i++) {
		mod_doc = mod_data.childNodes[i];
		if (mod_doc && mod_doc.nodeType != 3) break;
	}
	if (mod_doc && mod_data.offsetHeight < mod_doc.offsetHeight){
		mod_doc.style.width = (mod.getWidth()-18) + 'px';
		if (mod_doc.nodeName == 'DIV')
			mod_doc.style.paddingBottom = '50px';
		else
			mod_doc.style.marginBottom = '50px';
	}
}
function BspModHelp(url)
{
	var mod = ModWin.newInstance(300, 350);
	mod.setHeader('Help');
	mod.setFooter(BspButton(function() { mod.close(1); return false; }, 'http://www.balticseaportal.net/design/common/images/icons/ok.gif', 'OK'));
	mod.openURL(url);
	return false;
}
function BspModFileDetails(url)
{
	var mod = ModWin.newInstance(350, 350);
	mod.setHeader('File details');
	mod.setFooter(BspButton(function() { mod.close(1); return false; }, 'http://www.balticseaportal.net/design/common/images/icons/ok.gif', 'OK'));
	mod.openURL(url);
	return false;
}
function BspModUserDetails(url)
{
	var mod = ModWin.newInstance(350, 265);
	mod.setHeader('User businness card');
	mod.setFooter(BspButton(function() { mod.close(1); return false; }, 'http://www.balticseaportal.net/design/common/images/icons/ok.gif', 'OK'));
	mod.openURL(url);
	return false;
}
function BspModUserSelect(url)
{
	var mod = ModWin.newInstance(350, 350);
	mod.setHeader('Select responsible person');
	mod.onOpenURL = function() { BspModLoaded(this); }
	mod.onData = function(data) {
		setHTML('resp_pers', data[2] + ' (' + data[1] + ') &nbsp;');
		setValue('resp_pers_value', data[0]);
		this.close();
	}
	mod.setFooter(BspButton(function() { mod.close(1); return false; }, 'http://www.balticseaportal.net/design/common/images/icons/ok.gif', 'OK'));
	mod.openURL(url);
	return false;
}
function BspModTeamSelect(url, tblId)
{
	var mod = ModWin.newInstance(600, 400);
	mod.setHeader('Add team members');
	mod.onOpenURL = function() { BspModLoaded(this); }
	mod.onData = function(data) {
		if (!getElement("bsp_member" + data[0]))
			BspTeamAdd(data[0], data[1], data[2], '', tblId)
	}
	mod.setFooter(BspButton(function() { mod.close(1); return false; }, 'http://www.balticseaportal.net/design/common/images/icons/ok.gif', 'OK'));
	mod.openURL(url);
	return false;
}
function BspTeamAdd(id, username, name, note, tblId)
{
	var table = getElement(tblId);
	var r = table.insertRow(table.rows.length);
	r.id = "bsp_member" + id;
	r.insertCell(0).innerHTML = name; // name
	r.insertCell(1).innerHTML = '<input type="text" name="data[user][' + id + ']" style="width:99%;" value="' + note + '" />'; // responibilities
	r.insertCell(2).innerHTML = '<img src="http://www.balticseaportal.net/design/common/images/icons/remove.gif" class="hand" alt="remove" onclick="BspTeamRemove(this.parentNode.parentNode.rowIndex, \'' + tblId + '\');" />'; // tools
}
function BspTeamRemove(idx, tblId)
{
	getElement(tblId).deleteRow(idx)
}
function BspModFileSelect(url, tblId)
{
	var mod = ModWin.newInstance(600, 400);
	mod.setHeader('Add file');
	mod.setFooter(BspButton(function() { mod.close(1); return false; }, 'http://www.balticseaportal.net/design/common/images/icons/ok.gif', 'OK'));
	mod.onOpenURL = function() {
		BspModLoaded(this);
		var qu = new UploadForm('file', 'http://www.balticseaportal.net/bsp_file/save/', 'http://www.balticseaportal.net/bsp_file/jstest/', getElement('media_select_upload'), 'jsUploadId');
		qu.onsubmit = function() {
			return (
				checkEmpty(this.getInput(), 'Please select a file to upload') && 
				checkExtension(this.getInput(), new Array('PDF','DOC','XLS','PPT','ZIP','RAR','TXT','JPEG','JPG','GIF','PNG','RAW','MPG','MPEG','AVI'), 'Invalid file extension')
			);
		}
		qu.onprogress = function() {
			if (!this.mod) {
				var mod = ModWin.newInstance(120, 120, 'mod', 'upload_mod_bg', true, false);
				mod.setHeader('Uploading file...', false);
				mod.open('<div class="loading" style="margin:35px 0 0 52px;"></div>');
				this.mod = mod;
			}
		}
		qu.onupload = function(id) {
			ModWin.getInstance().close();
			ModWin.getInstance().openURL('http://www.balticseaportal.net/bsp_media/select/?id=214&mark=' + id);
		}
		qu.appendInput();
		
		var btn_div = document.createElement('div');
		btn_div.style.cssFloat = 'left';
		btn_div.style.paddingTop = '2px';
		btn_div.appendChild(BspButton(function() { qu.submit(); return false; }, 'http://www.balticseaportal.net/design/common/images/icons/ok.gif', 'UPLOAD'));
		qu.append(btn_div);
		
		qu.create();
	}
	mod.onData = function(data) {
		if (!getElement("bsp_file" + data[0])) {
			BspFileAdd(data[0], data[1], data[2], data[3], data[4], 0, tblId);
			this.close();
		}
	}
	mod.openURL(url);
	return false;
}
function BspFileAdd(id, name, description, type, owner, added_by, tblId)
{
	added_by = added_by || 0;
	
	var table = getElement(tblId);
	var r = table.insertRow(table.rows.length);
	r.id = "bsp_file" + id;
	
	r.insertCell(0).innerHTML = name + '<input type="hidden" name="data[media][' + id + ']" value="' + added_by + '" />';// file name
	r.insertCell(1).innerHTML = description;// description
	r.insertCell(2).innerHTML = type;// type
	r.insertCell(3).innerHTML = owner;// owner
	r.insertCell(4).innerHTML = '<img src="http://www.balticseaportal.net/design/common/images/icons/remove.gif" class="hand" alt="remove" onclick="BspFileRemove(this.parentNode.parentNode.rowIndex, \'' + tblId + '\')" />'; // tools
}
function BspFileRemove(id, tblId)
{
	getElement(tblId).deleteRow(id)
}
function BspModMemberSelect(url, cId)
{
	var mod = ModWin.newInstance(300, 350);
	mod.setHeader('Add team members');
	mod.onOpenURL = function() { BspModLoaded(this); }
	mod.onData = function(data) {
		if (!getElement("bsp_member" + data[0]))
			BspMemberAdd(data[0], data[1], cId)
	}
	mod.setFooter(BspButton(function() { mod.close(1); return false; }, 'http://www.balticseaportal.net/design/common/images/icons/ok.gif', 'OK'));
	mod.openURL(url);
	return false;
}
function BspMemberAdd(id, name, cId)
{
	var cont = getElement(cId);
	var el = document.createElement('div');
	var str = '';

	el.id = "bsp_member" + id;	
	/*if (cont.innerHTML)
		str += ', ';*/
	str += name + ' <img src="http://www.balticseaportal.net/design/common/images/icons/trash.gif" class="hand" onclick="BspMemberRemove(\'' + id + '\', \'' + cId + '\');" /><input type="hidden" name="data[user][]" value="' + id + '" />';
	el.innerHTML = str;
	
	//el.style.cssFloat = "left";
	cont.appendChild(el);
}
function BspMemberRemove(id, cId)
{
	var cont = getElement(cId);
	var el = getElement("bsp_member" + id);
	cont.removeChild(el);
}

/**
 * Project libraries
 */
var SCRIPTS_PATH = 'http://www.balticseaportal.net/scripts/';
var wysiwyg = 'FCKeditor';
/*if (wysiwyg == 'RTE')
	include('rte/richtext.js');*/

include('sniffer.js');
include('check.js');
//include('date.js');
include('behaviour.js');
include('modwin.js');
include('uploadform.js');
include('wysiwyg.js');

window.onload = function() {
	//truncateCellsByCol('jsTruncateCells', 'header', 4);
	highlightRows('jsHovers', 'row_over', 'header');
	if (typeof(small_calendar) != 'undefined')
		small_calendar();
}
window.onresize = function() {
	//truncateCellsRestore();
	//truncateCellsByCol('jsTruncateCells', 'header', 4);
}
