/**
 * @fileoverview Zawiera funkcje narzędziowe przygotowane dla danego serwisu www.
 */

Import('myLib/http/ParamUrl.js');
Import('myLib/events/CreatorEvents.js');
Import('myLib/html/TagEdit.js');
Import('myLib/util/OpenFile.js');
Import('myLib/html/FontSize.js');
Import('myLib/util/Support.js');
Import('myLib/form/Form.js')
Import('myLib/layers/ThinMenu.js');
Import('myLib/native/String.js');

Service = {};

Service.queryString = '';

Service.openPrintVersion = function(){
	window.open('_view.php?' + Service.queryString);
};

Service.onLoad = function(newFunc){
	var evname = 'onload';
	if(typeof(window[evname]) == 'function')
		var oldFunc = window[evname];
	else
		var oldFunc = function(){};
	window[evname] = function(){
		oldFunc();
		newFunc();
	};
};

Service.getOpener = function(){
	if(document.opener)
		return document.opener;
	else
		return opener;
};

Service.refreshOpener = function(){
	var doc = Service.getOpener();
	//doc.history.go();
	doc.location.href = doc.location.href;
	window.close();
};

Service.refreshOpenerFrame = function(frameName){
	//var opener = Service.getOpener();
	var frame = opener.document.getElementById(frameName);
	var src = frame.src;
	var win = frame.contentWindow;
	win.document.location.href = src;
	window.close();
};

Service.getSuffix = function(fileName){
	var fileName = fileName.toLowerCase();
	var pos = fileName.lastIndexOf('.');
	return fileName.substring(pos + 1);
};

Service.checkPostcardForm = function(form, alertText){
	if(form['pocztowka_id'].value == 0){
		alert(alertText);
		return false;
	}
	else{
		return new CheckForm(form).emptyField('*');
	}
};

Service.openTextWindow = function(content, params){
	Support.openTextWindow(content, params);
};

Service.loadFilter = function(field){
	//field.title = 'WprowadĽ pierwsze litery szukanego elementu i wci¶nij enter';
	var f = function(e){
		var key = CreatorEvents.getKey(e);
		if(key == 0 || key == 13){
			location.href = new ParamUrl().toString({filter: field.value});
		}
	};
	field.onchange = f;
	field.onkeydown = f;
};

Service.tagEdit = function(field, params){
	var params = System.getValue(params, [TagEdit.B, TagEdit.BR]); //, TagEdit.LI
	var t = new TagEdit(params);
	t.styleClass = 'button1';
	t.addElement({label: 'edytuj', action: 'Service.tagEdit.openEditor(\'' + field + '\')'});
	t.showMenu(field);
};

/**
 * @private
 * @param	String
 * @return	void
 */
Service.tagEdit.openEditor = function(fieldName){
	var field = document.formula[fieldName];
	window.open('../../_editor.php?pole=' + field.name, '', 'width=700, height=500');
	//var path = '../../tinymce/broker.php?form='
	//+ field.form.name + '&field=' + field.name + '&status=read'
	//window.open(path, '', 'width=700, height=500');
};

/**
 * Wysyła podformularz.
 * @public
 * @param	String
 * @return	void
 */
Service.subSubmit = function(frameName, formName){
	var formName = System.getValue(formName, 0);
	var frame = document.getElementById(frameName);
	var src = frame.src;
	var win = frame.contentWindow;
	//alert(win.document.forms[formName]);
	if(typeof(win.document.forms[formName]) == 'object'){
		//parent[frameName].document.forms[formName].submit();
		win.document.forms[formName].submit();
	}
};

Service.pageViewerFile = '_view.php';

Service.pageViewer = function(urlParams, params){
	Service.openPage(Service.pageViewerFile + urlParams, params);
};

Service.openPage = function(file, params){
	var params = System.getValue(params, {});
	params['scrollbars'] = 'yes';
	Service.openSubEditor(file, params);
};

Service.openSubEditor = function(file, params){
	var p = {left: 100, top: 100, width: 700, height: 320};
	//var params = System.getValue(params, {width: 700, height: 320});
	//alert(file);
	for(var i in params){
		p[i] = params[i];
	}
	var of = new OpenFile();
	of.focus = false;
	of.showFile(file, p);
};

Service.openFile = function(file, params){
	var path = '';
	if(file.substring(0, 5) != '_plik'){
		path = '_plik.php?plik='; //../../
	}
	//alert(path + file);
	Service.open(path + file, OpenFile.REMOTE, params);
};

Service.openLocalFile = function(file, params){
	Service.open(file, OpenFile.JS, params);
};

Service.open = function(file, pathType, params){
	var of = new OpenFile(pathType);
	of.show(file, params);
};

Service.openImage = function(key, id, lang){
	var lang = System.getValue(lang, 1);
	var params = 'top=50, left=50, width=100, height=100';
	window.open('_open.php?' + key + '=' + id + '&lang=' + lang, '', params);
};

Service.openImageByName = function(file){
	Service.openImage('file', file);
};

Service.openImageById = function(id, lang){
	Service.openImage('id', id, lang);
};

Service.openViewer = function(file){
	//Service.openImage('file', Import.HOST_MAIN + '_open.php?file' + file);
	var f = Service.getSuffix(file);
	if(f == 'jpg' || f == 'jpeg' || f == 'gif' || f == 'png'){
		window.open(Import.HOST_MAIN + '_open.php?file=' + file, ''
		, 'top=50, left=50, width=100, height=100');
	}
	else{
		window.open(Import.HOST_MAIN + '_plik.php?plik=' + file);
	}
};

//---

Service.addFavorite = function(){
	Support.addFavorite();
};

Service.resizeFont = function(v){
	var fs = new FontSize();
	fs.resizeFont(v);
};

Service.insertHttp = function(field){
	Form.insertString(field, 'http://');
};

Service.insertPrefix = function(field){
	Form.insertString(field, '(+48) 042 ');
};

Service.insertText = function(field, text, isEmpty){
	Form.insertString(field, text, isEmpty);
};

Service.clearField = function(field, text){
	if(field.value == text){
		field.value = '';
	}
};

Service.sendForm = function(formName, fieldName){
	var formName = System.getString(formName, 'finder');
	var fieldName = System.getString(fieldName, 'value');
	var form = document.getElementById(formName);
	//var form = document.forms[formName];
	if(form.elements[fieldName].value.trim() != ''){
		form.submit();
	}
	return false;
};

//---

Service.thinShowId = 0;

Service.thinHideId = 0;

Service.showMenu = function(key){
	ThinMenu.show(key);
	if(key != 1)
		setTimeout('Service.setSelects(\'visible\')', ThinMenu.interval);
	else
		Service.thinShowId = setTimeout('Service.changeSelects(' + key + ', \'hidden\')', ThinMenu.interval);
};

Service.hideMenu = function(key){
	clearTimeout(Service.thinShowId);
	clearTimeout(Service.thinHideId);
	ThinMenu.hide();
	Service.thinHideId = setTimeout('Service.changeSelects(' + key + ', \'visible\')', ThinMenu.interval);
};

Service.changeSelects = function(key, value){
	if(key != 1){
		if(value == 'hidden'){
			Service.setSelects('visible');
		}
	}
	else{
		if(!ThinMenu.isVisible || value == 'hidden'){
			Service.setSelects(value);
		}
	}
};

Service.setSelects = function(value){
	var t = [
		'rezerwacjaLotu',
		'rezerwacjaHotelu',
		'rezerwacjaPrzewodnika'
	];
	for(var i = 0; i < t.length; i++){
		var element = document.getElementById(t[i]);
		if(element != null){
			element.style.visibility = value;
		}
	}
};

//---

Service.confirmDelete = function(href, text){
	if(typeof(text) == 'undefined'){
		var text = "Czy jeste¶ pewien?";
	}
	text += "\nJeżeli tak kliknij [OK], jeżli nie kliknij [Anuluj].";

	if(confirm(text)){
		document.location.href = href;
	}
};

//---

Service.openMapWindow = function(link, width, height){
	//alert(Config.ampAppendixWidth);
	var win = window.open(link, 'map', 'width=' + (parseInt(width) + Config.mapAppendixWidth) + ', height='
	+ (parseInt(height) + Config.mapAppendixHeight) + 'scrollbars=yes');
	//alert(win);
	win.focus();
};

Service.openResource = function(file){
	Service.openViewer(file);
};
