function BrowserOP() {
	this.browserIsOpera = false;
	this.browserIsIE = false;
	this.browserIsFirefox = false;
	this.fullVersion = 0;
	this.version = 0;

	if (!this.detectOpera())
		if (!this.detectFirefox())
			this.detectIE();
}

BrowserOP.prototype.isOpera = function() {
	return this.browserIsOpera;
}

BrowserOP.prototype.isFirefox = function() {
	return this.browserIsFirefox;
}

BrowserOP.prototype.isIE = function() {
	return this.browserIsIE;
}

BrowserOP.prototype.getVersion = function() {
	return this.version;
}

BrowserOP.prototype.getFullVersion = function() {
	return this.fullVersion;
}

//return true if the "value" parameter is total number 
// 123 - true
// 1,2 - false
// abcd - false
BrowserOP.prototype.ValidateTotalNumber = function(value) {
	var regExp = new RegExp("^[0-9]+$");
	return regExp.test(value);
}

BrowserOP.prototype.detectFirefox = function() {
	if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)) {
		this.browserIsFirefox = true;
		this.fullVersion = new Number(RegExp.$1);
		this.version = Math.floor(this.fullVersion);
		return true;
	} else {
		this.browserIsFirefox = false;
		return false;
	}
}

BrowserOP.prototype.detectIE = function() {
	if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
		this.browserIsIE = true;
		this.fullVersion = new Number(RegExp.$1);
		this.version = Math.floor(this.fullVersion);
		return true;
	} else {
		this.browserIsIE = false;
		return false;
	}
}

BrowserOP.prototype.detectOpera = function() {
	if (/Opera[\/\s](\d+\.\d+)/.test(navigator.userAgent)) {
		this.browserIsOpera = true;
		this.fullVersion = new Number(RegExp.$1);
		this.version = Math.floor(this.fullVersion);
		return true;
	} else {
		this.browserIsOpera = false;
		return false;
	}
}

BrowserOP.prototype.getURLParam = function(paramName) {
	paramName = paramName.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
	var regexS = "[\\?&]" + paramName + "=([^&#]*)";
	var regex = new RegExp(regexS);
	var results = regex.exec(window.location.href);
	if (results == null)
		return "";
	else
		return results[1];
}

BrowserOP.prototype.isEditMode = function() {
	if (this.getURLParam('edit') == 'yes')
		return true;
	else
		return false;
}

BrowserOP.prototype.activeEditableElements = function() {
	//this.addStyle('bodyid',"filter:alpha(opacity=50);-moz-opacity:.50;opacity:.50;");

}

BrowserOP.prototype.hideElement = function(elementId) {
	var elem = document.getElementById(elementId);
	if (elem)
		elem.style.display = 'none';
}
BrowserOP.prototype.showElement = function(elementId) {
	var elem = document.getElementById(elementId);
	if (elem)
		elem.style.display = 'block';
}

BrowserOP.prototype.createDIV = function(elementId, display) {
	var newdiv = document.createElement('div');
	newdiv.setAttribute('id', elementId);
	document.body.appendChild(newdiv);
	if (display)
		this.showElement(elementId);
}

BrowserOP.prototype.removeDIV = function(elementId) {
	var elem = document.getElementById(elementId);
	if (elem) {
		this.hideElement(elementId);
		elem.parentNode.removeChild(elem);
	}
}

BrowserOP.prototype.EditItemOn = function() {

	var e = window.event;
	e.cancelBubble = true;

	if (this) {
		var tagtype = this.nodeName.toUpperCase();
		var editid = 'edit_' + this.id;
		var OBrowser = new BrowserOP();
		if (document.getElementById('edit_' + this.id)) {

		} else {
			OBrowser.removeDIV('edit');
			OBrowser.createDIV('edit', true);

			var elementparts = this.id.split("|");
			if (elementparts[elementparts.length - 2] == 'IMG') {
				var xmlEdytor = new XMLOP('edit', 'data/index.xml',
						'data/editimage.xsl');
				pars = new Array(2);
				pars[0] = new Array(1);
				pars[1] = new Array(1);

				pars[0][0] = 'parID';
				pars[1][0] = this.id;

				xmlEdytor.displayResult(pars);
				return false;
			}
			if (elementparts[elementparts.length - 2] == 'URL') {
				var xmlEdytor = new XMLOP('edit', 'data/index.xml',
						'data/editurl.xsl');
				pars = new Array(2);
				pars[0] = new Array(1);
				pars[1] = new Array(1);

				pars[0][0] = 'parID';
				pars[1][0] = this.id

				xmlEdytor.displayResult(pars);
				return false;
			}
		}
		//glueElements(document.getElementById('edytor'),item,document.getElementById('MiddleContent'));
		// alert(targ.id);
	}
}

BrowserOP.prototype.EditItemOff = function() {
	if (this) {
		var tagtype = this.nodeName.toUpperCase();
		var editid = 'edit_' + this.id;
		var OBrowser = new BrowserOP();
		OBrowser.hideElement('edit');
	}
}

/*
 elemId - id of element 
 actionType - defines what do we edit: "LINK", "IMG", "HTMLEditor"
 buttonPosition - defines on which site button should appear: "left" or "right"
 default is to: "left"
 proposedPathToSaveFiles - path to propose for user to save files to.
 defaultly it is build basing on elemId (path to page images folder)

 */
BrowserOP.prototype.selectEditableelement = function(elemId, actionType,
		buttonPosition, proposedPathToSaveFiles, proposedImageSize) {

	if (arguments.length < 3 || buttonPosition == '') {
		buttonPosition = 'left';
	}
	if (arguments.length < 4 || proposedPathToSaveFiles == '') {
		proposedPathToSaveFiles = mako_getPathToProposedImageFolder(elemId);
	}

	var htmlitem = document.getElementById(elemId);

	buttonIsVisible = false;

	var obj = document.getElementById(elemId);
	var x = 0;
	var y = 0;
	var w = 0;
	var h = 0;
	x = Ext.get(elemId).getX();
	y = Ext.get(elemId).getY();
	w = Ext.get(elemId).getWidth();
	h = Ext.get(elemId).getHeight();

	var borderDiv = document.getElementById('Border' + elemId);
	if (borderDiv) {
		var el = Ext.get('Border' + elemId);
		// el.remove();
		el.setX(x);
		el.setY(y);
		el.setWidth(w);
		el.setHeight(h);

		elButton = Ext.get('Button' + elemId);
		if (elButton) {
			switch (buttonPosition) {
			case 'left':
				elButton.setX(x);
				elButton.setY(y - 21);
				break;
			case 'right':
				elButton.setX(x + w);
				elButton.setY(y - 21);
				break;
			case 'bottomLeft':
				elButton.setX(x);
				elButton.setY(y + h);
				break;
			case 'bottomRight':
				elButton.setX(x + w);
				elButton.setY(y + h);
				break;
			} //END:switch(buttonPosition){
		}

		// var buttonDiv =  Ext.get('Button' + elemId)
		// if(buttonDiv) {
		// buttonDiv.setX(0);
		// buttonDiv.setY(y);
		// }

		return;
	}

	myEl = new Ext.Element(document.createElement('div'));

	Ext.getBody().appendChild(myEl.dom);
	myEl.dom.id = 'Border' + elemId;
	myEl.setStyle('position', 'absolute');
	myEl.setStyle('border', '1px');
	myEl.setStyle('borderStyle', 'solid');
	myEl.setStyle('borderColor', '#FF0000');

	// alert(w);
	myEl.setX(x);
	myEl.setY(y);
	myEl.setWidth(w);
	myEl.setHeight(h);

	var borderDiv = document.getElementById('Border' + elemId);
	// borderDiv.onclick= function(){
	// htmlitem.openEditForm();
	// }

	borderDiv.onmouseout = function() {
		obj.onmouseout();
	}
	borderDiv.onmouseover = function() {
		obj.onmouseover();
	}

	obj.onmouseover = function() {
		var e = window.event;
		e.cancelBubble = true;
		var el = Ext.get('Button');

		var obj = document.getElementById(elemId);
		var x = 0;
		var y = 0;
		var w = 0;
		var h = 0;
		x = Ext.get(elemId).getX();
		y = Ext.get(elemId).getY();
		w = Ext.get(elemId).getWidth();
		h = Ext.get(elemId).getHeight();

		if (el) {
			el.remove();
		}

		buttonDiv = new Ext.Element(document.createElement('div'));

		Ext.getBody().appendChild(buttonDiv.dom);
		buttonDiv.dom.id = 'Button' + elemId;
		buttonDiv.setStyle('position', 'absolute');
		buttonDiv.setStyle('z-index', '1000');

		// alert(w);
		// buttonDiv.setX(x);
		// buttonDiv.setY(y-21);

		var e = window.event;
		e.cancelBubble = true;
		var buttonObject = new Ext.Button( {
			renderTo : buttonDiv,
			text : 'Edit',
			id : 'Button'
		});

		switch (buttonPosition) {
		case 'left':
			buttonDiv.setX(x);
			buttonDiv.setY(y - 21);
			break;
		case 'right':
			buttonDiv.setX(x + w - buttonDiv.getWidth());
			buttonDiv.setY(y - 21);
			break;
		case 'bottomLeft':
			buttonDiv.setX(x);
			buttonDiv.setY(y + w);
			break;
		case 'bottomRight':
			buttonDiv.setX(x + w - buttonDiv.getWidth());
			buttonDiv.setY(y + w);
			break;
		} //END:switch(buttonPosition){

		buttonObject.getEl().dom.onmouseover = function() {
			buttonIsVisible = true;
		};

		buttonObject.getEl().dom.onclick = function() {
			borderDiv.onclick();
		};

		buttonObject.getEl().dom.onmouseout = function() {
			buttonIsVisible = false;
			obj.onmouseout();
		};
	}

	obj.onmouseout = function() {
		var e = window.event;
		e.cancelBubble = true;
		var el = Ext.get('Button');

		resizeTask = new Ext.util.DelayedTask( function() {
			if (el) {
				if (buttonIsVisible == false) {
					el.remove();
				}
			}
		});
		resizeTask.delay(1000);
	}

	Ext.QuickTips.init();
	Ext.form.Field.prototype.msgTarget = 'side';
	borderDiv.onclick = function() {

		var e = window.event;
		e.cancelBubble = true;

		var editForm = '';
		var windowObj = '';
		var htmlEditorObj = '';
		var centerPanel = '';
		var southPanel = '';
		Mako.editFormsArray = Array();
		Mako.editFormsArray2 = Array();

		switch (actionType) {
		//#############################################################################################################                                          
		case 'IMG':
			/*
			Mako.editIMGTabPanel - holds refference to TabPanel to edit IMG
			Mako.filesListComboBox - holds refference to ComboBox with list of files to choice
			Mako.IMGPanel - holds refference to panel where the preview image is shown
			Mako.editFormsArray = Array(); // holds refferences to forms in
											// tabs of TabPanel
			 */

			// new file
			Mako.editFormsArray[0] = new Ext.form.FormPanel( {
				frame : true,
				method : 'POST',
				mako_i : 0, //used to define index of this Tab
				title : transEdit_newFile,
				labelAlign : 'right',
				labelWidth : 190,
				width : 440,

				items : [
						new Ext.form.Hidden( {
							name : 'actionType',
							id : 'actionTypeId1',
							value : actionType
						}),
						new Ext.form.Hidden( {
							name : 'editedElementPath',
							id : 'editedElementPathId1',
							value : elemId
						}),
						{
							xtype : 'hidden',
							name : 'sourceOfFile',
							value : 'new'
						},
						new Ext.form.Hidden( {
							name : 'imageFilePathHidden',
							id : 'imageFilePathHiddenId1'
						}),
						new Ext.form.TextField( {
							fieldLabel : transEdit_imageFile,
							allowBlank : false,
							blankText : transAddModelForm_thisFieldIsRequired,
							name : 'imageFilePath',
							id : 'imageFilePathId1',
							inputType : 'file',
							width : 192,
							height : 24
						}),
						{
							xtype : 'textfield',
							fieldLabel : transEdit_proposedPathToSaveFile,
							name : 'proposedPathToSaveFiles',
							value : proposedPathToSaveFiles,
							width : 190
						},
						new Ext.form.Label( {
							text : (proposedImageSize == undefined ? ''
									: trans_EditProposedSize + ': '
											+ proposedImageSize)
						})

				]
			});

			Mako.editFormsArray[0].addListener('beforeaction',
					mako_addEntitiesToFormFields);

			// existing file
			Mako.editFormsArray[1] = new Ext.form.FormPanel(
					{
						frame : true,
						method : 'POST',
						mako_i : 1, //used to define index of this Tab
						title : transEdit_existingFile,
						labelAlign : 'right',
						labelWidth : 90,
						width : 440,

						items : [
								new Ext.form.Hidden( {
									name : 'actionType',
									id : 'actionTypeId2',
									value : actionType
								}),
								new Ext.form.Hidden( {
									name : 'editedElementPath',
									id : 'editedElementPathId2',
									value : elemId
								}),
								{
									xtype : 'hidden',
									name : 'sourceOfFile',
									value : 'existing'
								},
								Mako.filesListComboBox = new Ext.form.ComboBox(
										{
											fieldLabel : transEdit_selectFile,
											width : 380,
											name : 'pathToImgFromRoot', //path in format: 'images/imageName.jpg'
											listClass : 'textAlignLeft',
											triggerAction : 'all',
											loadingText : transEdit_loading,
											editable : false,
											displayField : 'text',
											valueField : 'value',
											lazyInit : false,
											mode : 'remote',
											store : new Ext.data.JsonStore(
													{
														//baseParams : {combo: 'loadlist', interexter: 'Interior'},
														method : 'POST',
														autoLoad : true,
														enableCaching : false,
														url : mako_getPathToRoot(elemId) + 'adminPanel/getFilesList_Json.asp',
														root : 'files',
														fields : [ 'text',
																'value' ]
													}),
											listeners : {
												select : function(combo,
														record, index) {
													document
															.getElementById('previewIMG').src = mako_getPathToRoot(elemId)
															+ combo.getValue();
												}
											}
										}),
								Mako.IMGPanel = new Ext.Panel(
										{
											xtype : 'panel',
											style : 'padding: 10px;',
											html : '<img id="previewIMG" src="' + mako_getPathToRoot(elemId) + 'images/common/spacer.gif" width="200" />'
										})

						]
					});

			Mako.editFormsArray[1].addListener('beforeaction',
					mako_addEntitiesToFormFields);

			Mako.editIMGTabPanel = new Ext.TabPanel( {
				plain : true, //remove the header border
				activeItem : 0,
				defaults : {
					bodyStyle : 'padding:15px'
				},
				items : Mako.editFormsArray
			});

			Mako.editIMGTabPanel.on('tabchange', function(activatedPanelObj) {
				///activatedPanelObj.getActiveTab().doLayout(true);

					// assign active form to variable editForm
					editForm = Mako.editFormsArray[activatedPanelObj
							.getActiveTab().mako_i];

					// Mako.filesListComboBox.store.load({
					// callback: function(record, options, success){
					// Mako.filesListComboBox.expand();
					// Mako.filesListComboBox.select(0);
					// //document.getElementById('previewIMG').src =
					// mako_getPathToRoot(elemId) + record[0].get('value');
					// }
					// });
				});

			windowObj = new Ext.Window( {
				title : '',
				closable : true,
				width : 540,
				height : 350,
				plain : true,
				layout : 'fit',
				items : Mako.editIMGTabPanel
			});

			// assign active form (first one in the beggining) to variable
			// editForm
			editForm = Mako.editFormsArray[0];

			break;
		// #############################################################################################################
		case 'IMGFlash':

			Mako.switchForm = new Ext.Panel( {
				frame : true,
				columnWidth : .4,
				layout : 'form',
				labelAlign : 'right',
				labelWidth : 110,
				height : 65,

				items : [ {
					xtype : 'radio',
					ctCls : 'textAlignLeft',
					style : 'margin: 3px 0px 0px 0px;',
					fieldLabel : imageLabel,
					name : 'imageType',
					id : 'imageType',
					value : 'image',
					inputValue : 'image',
					listeners : {
						check : function(checkboxObj, checkedVal) {
							if (checkedVal) {
								//checked is image, so disable width/height settings
					Ext.getCmp('flashWidth').disable();
					Ext.getCmp('flashHeight').disable();
				} else {
					Ext.getCmp('flashWidth').enable();
					Ext.getCmp('flashHeight').enable();
				} //END: if(checkedVal){

				} //END: check: function(checkboxObj, checkedVal){
				}
				}, {
					xtype : 'radio',
					ctCls : 'textAlignLeft',
					style : 'margin: 3px 0px 0px 0px;',
					fieldLabel : flashLabel,
					name : 'imageType',
					value : 'flash',
					inputValue : 'flash'
				} ]
			}); // END: var Mako.switchForm = new Ext.form.FormPanel({

			Mako.flashSizeForm = new Ext.Panel( {
				frame : true,
				columnWidth : .6,
				layout : 'form',
				labelAlign : 'right',
				labelWidth : 150,

				items : [ {
					xtype : 'textfield',
					name : 'flashWidth',
					id : 'flashWidth',
					allowBlank : false,
					blankText : transEdit_editModelImagesEmptyPath,
					validator : function(value) {
						if (value.match(/^[0-9]+$/) == null) {
							return onlyNumbersAreAllowed;
						} else {
							return true;
						}
					},
					fieldLabel : transEdit_width
				}, {
					xtype : 'textfield',
					name : 'flashHeight',
					id : 'flashHeight',
					allowBlank : false,
					blankText : transEdit_editModelImagesEmptyPath,
					validator : function(value) {
						if (value.match(/^[0-9]+$/) == null) {
							return onlyNumbersAreAllowed;
						} else {
							return true;
						}
					},
					fieldLabel : transEdit_height
				} ]
			}); // END: var Mako.flashSizeForm = new Ext.form.FormPanel({

			editForm = new Ext.form.FormPanel( {
				frame : true,
				method : 'POST',
				layout : 'column',

				items : [ {
					xtype : 'hidden',
					name : 'actionType',
					id : 'actionTypeId',
					value : actionType
				}, {
					xtype : 'hidden',
					name : 'editedElementPath',
					id : 'editedElementPathId',
					value : elemId
				}, {
					xtype : 'hidden',
					name : 'filePath',
					id : 'filePath_hiddenField'
				}, {
					xtype : 'hidden',
					name : 'propFilePath',
					id : 'propFilePath_hiddenField'
				}, Mako.switchForm, Mako.flashSizeForm ]
			}); // END: editForm = new Ext.form.FormPanel({

			editForm
					.addListener('beforeaction', function(formObj, action) {
						if (action.type == 'submit') {
							if (!Mako.fileSelectorObj.ValidatePanels()) {
								return false;
							}
							for ( var i = 0; i < Mako.fileSelectorObj
									.GetPanelData().length; i++) { //this loop should iterate only once
								var tempFilePath = Mako.fileSelectorObj
										.GetPanelData()[i].filePath;
								if (tempFilePath.indexOf(':') == -1) {
									//it is existing file
							tempFilePath = tempFilePath.substring(3,
									tempFilePath.length); // cut off '../'
							// from beggining
						}
						Ext.getCmp('filePath_hiddenField').setValue(
								tempFilePath);
						Ext
								.getCmp('propFilePath_hiddenField')
								.setValue(
										Mako.fileSelectorObj.GetPanelData()[i].propFilePath);
					}
				}
			}		); // END: editForm.addListener('beforeaction',
			// function(formObj, action){

			windowObj = new Ext.Window( {
				title : '',
				closable : true,
				width : 540,
				height : 369,
				plain : true,
				items : [ {
					xtype : 'panel',
					bodyStyle : 'border: 0px; background: transparent;',
					id : 'fileSelectorPanel'
				}, editForm ]
			});

			windowObj
					.addListener(
							'show',
							function(formObj) {
								Ext.Ajax
										.request( {
											method : 'POST',
											url : mako_getPathToRoot(elemId) + 'data/index.asp',

											success : function(response) {
												Mako.Runner
														.run(transEdit_pleaseWait);

												var editedElementNode = response.responseXML
														.selectNodes(elemId
																.replace(
																		/\|/gi,
																		'/'))[0];

												// build tab panel
												var existingFilePath = editedElementNode
														.selectNodes('path')[0].text
														.replace(
																new RegExp(
																		mako_getPathToRoot(
																				elemId)
																				.replace(
																						/\./gi,
																						'\\.'),
																		'gi'),
																'');

												Mako.fileSelectorObj = new MakoTabPanel();
												var fileSelectorPanel = Mako.fileSelectorObj
														.CreateTabPanel(
																proposedPathToSaveFiles,
																existingFilePath,
																mako_getPathToRoot(elemId));

												// add listener to drop down
												// list
												Mako.fileSelectorObj.existingFileDropDown.store
														.addListener(
																'load',
																function() {
																	if (Mako.Runner) {
																		Mako.Runner
																				.stop();
																	}
																});

												Ext.getCmp('fileSelectorPanel')
														.add(fileSelectorPanel);
												Ext.getCmp('fileSelectorPanel')
														.doLayout();

												// set form field values
												Ext
														.getCmp('flashWidth')
														.setValue(
																editedElementNode
																		.selectNodes('width')[0].text);
												Ext
														.getCmp('flashHeight')
														.setValue(
																editedElementNode
																		.selectNodes('height')[0].text);

												if (editedElementNode
														.getAttribute('isFlash') == 'true') {
													Ext.getCmp('imageType')
															.setValue('flash');
												} else {
													Ext.getCmp('imageType')
															.setValue('image');
													Ext.getCmp('flashWidth')
															.disable();
													Ext.getCmp('flashHeight')
															.disable();
												}

											},
											failure : function() {
												alert('Request faild, load data, IMGFlash')
											}
										});
							});

			break;
		// #############################################################################################################                             
            case 'IFRAME':

                //building subPath to 'linkX' element (cuts off first two nodes "root|site")
                //used for mapping in creating editForm
                var elemIdArray = elemId.split('|');
                var elemIdSubPath = '';
                for (var i = 2; i < elemIdArray.length; i++) {
                    elemIdSubPath += elemIdArray[i];
                    if ((i + 1) != elemIdArray.length) {
                        //add slash if it is not last element
                        elemIdSubPath += '/';
                    }
                } //END: for(var i = 2; i<elemIdArray.length; i++){



                //new file
                Mako.editFormsArray[0] = new Ext.Panel({
                    frame: true,
                    method: 'POST',
                    mako_i: 0, //used to define index of this Tab
                    title: iframeFirstTab,
                    labelAlign: 'left',
                    labelWidth: 200,
                    width: 440,
                    layout: 'form',

                    items: [
                                        new Ext.form.Hidden({
                                            name: 'actionType',
                                            id: 'actionTypeId',
                                            value: actionType
                                        }), new Ext.form.Hidden({
                                            name: 'editedElementPath',
                                            id: 'editedElementPathId',
                                            value: elemId
                                        }),
                                         {
                                             xtype: 'textfield',
                                             fieldLabel: transEdit_URLAddress,
                                             name: 'IFrameAdress',
                                             id: 'IFrameAdress',
                                             allowBlank: false,
                                             blankText: transAddModelForm_thisFieldIsRequired,
                                             width: 250
                                         }
                                        , {
                                            xtype: 'textfield',
                                            fieldLabel: transEdit_IFrameWidth,
                                            name: 'IFrameWidth',
                                            id: 'IFrameWidth',
                                            width: 250,
                                            allowBlank: false,
                                            blankText: transAddModelForm_thisFieldIsRequired,
                                            validator: function(value) { return OBrowser.ValidateTotalNumber(value) },
                                            invalidText: transEdit_IFrameWidthHeigthError
                                        }
										, {
										    xtype: 'textfield',
										    fieldLabel: transEdit_IFrameHeigth,
										    name: 'IFrameHeigth',
										    id: 'IFrameHeigth',
										    width: 250,
										    allowBlank: false,
										    blankText: transAddModelForm_thisFieldIsRequired,
										    validator: function(value) { return OBrowser.ValidateTotalNumber(value) },
										    invalidText: transEdit_IFrameWidthHeigthError
										}
                                      ]
                });


                //existing file
                Mako.editFormsArray[1] = new Ext.Panel({
                    frame: true,
                    method: 'POST',
                    mako_i: 1, //used to define index of this Tab
                    title: iframeSecondTab,
                    labelAlign: 'right',
                    labelWidth: 90,
                    width: 440,
                    layout: 'form',

                    items: [
                                        Mako.filesListComboBox = new Ext.form.ComboBox({
                                            fieldLabel: transEdit_selectFile,
                                            width: 380,
                                            name: 'pathToImgFromRoot', //path in format: 'images/imageName.jpg'
                                            listClass: 'textAlignLeft',
                                            triggerAction: 'all',
                                            loadingText: transEdit_loading,
                                            editable: false,
                                            displayField: 'text',
                                            valueField: 'value',
                                            lazyInit: false,
                                            mode: 'remote',
                                            store: new Ext.data.JsonStore({
                                                //baseParams : {combo: 'loadlist', interexter: 'Interior'},
                                                method: 'POST',
                                                autoLoad: true,
                                                enableCaching: false,
                                                url: mako_getPathToRoot(elemId) + 'adminPanel/getMinisitesList_Json.asp',
                                                root: 'files',
                                                fields: ['text', 'value']
                                            }),
                                            listeners: {
                                                select: function(combo, record, index) {
                                                document.getElementById('IFrameAdress').value = mako_getPathToRoot(elemId) + combo.getValue();
                                                }
                                            }
                                        })

                                      ]
                });



                Mako.editIMGTabPanel = new Ext.TabPanel({
                    plain: true,  //remove the header border
                    activeItem: 0,
                    height: 200,
                    defaults: { bodyStyle: 'padding:15px' },
                    items: Mako.editFormsArray
                });


                editForm = new Ext.form.FormPanel({
                    frame: true,
                    method: 'POST',
                    //title: transAddModelForm_title,
                    labelAlign: 'right',
                    labelWidth: 210,
                    width: 440,
                    items: Mako.editIMGTabPanel
                });

                windowObj = new Ext.Window({
                    title: iframeEditorWindowTitle,
                    closable: true,
                    width: 550,
                    height: 300,
                    resizable: false,
                    plain: true,
                    layout: 'fit',
                    items: editForm
                });


                windowObj.addListener('activate', function(formObj) {
                    Ext.Ajax.request({
                        method: 'POST',
                        url: mako_getPathToRoot(elemId) + 'data/index.asp',

                        success: function(response) {
                        var iframeNode = response.responseXML.selectNodes("root/site/" + elemIdSubPath)[0]; 
                        editForm.findById('IFrameAdress').setValue(iframeNode.text);
                        editForm.findById('IFrameWidth').setValue(iframeNode.getAttribute("Width"));
                        editForm.findById('IFrameHeigth').setValue(iframeNode.getAttribute("Heigth"));
                           // editForm.findById('textSecondLineId').setValue(iframeNode.selectNodes('secondLine')[0].text);
                        },
                        failure: function() {
                            alert('Request faild')
                        }
                    });
                });

                editForm.addListener('beforeaction', mako_addEntitiesToFormFields);


                break;
		// #############################################################################################################
		case 'LINK':

			//building subPath to 'linkX' element (cuts off first two nodes "root|site")
			// used for mapping in creating editForm
			var elemIdArray = elemId.split('|');
			var elemIdSubPath = '';
			for ( var i = 2; i < elemIdArray.length; i++) {
				elemIdSubPath += elemIdArray[i];
				if ((i + 1) != elemIdArray.length) {
					//add slash if it is not last element
					elemIdSubPath += '/';
				}
			} //END: for(var i = 2; i<elemIdArray.length; i++){

			editForm = new Ext.form.FormPanel( {
				frame : true,
				method : 'POST',
				//title: transAddModelForm_title,
				labelAlign : 'right',
				labelWidth : 155,
				width : 440,

				reader : new Ext.data.XmlReader( {
					record : 'site'
				}, [ {
					name : 'URLText',
					mapping : elemIdSubPath
				}, //mapping is for example: 'pages/index/link1'
						{
							name : 'URLAddress',
							mapping : elemIdSubPath + '@target'
						} //mapping is for example: 'pages/index/link1@target'
						]),

				items : [ new Ext.form.FieldSet( {
					title : 'FieldSet',
					autoHeight : true,
					defaultType : 'textfield',
					items : [ new Ext.form.Hidden( {
						name : 'actionType',
						id : 'actionTypeId',
						value : actionType
					}), new Ext.form.Hidden( {
						name : 'editedElementPath',
						id : 'editedElementPathId',
						value : elemId
					}), {
						fieldLabel : transEdit_URLText,
						name : 'URLText',
						width : 190
					}, {
						fieldLabel : transEdit_URLAddress,
						name : 'URLAddress',
						width : 190
					} ]
				}) ]
			});

			windowObj = new Ext.Window( {
				title : '',
				closable : true,
				width : 440,
				height : 350,
				plain : true,
				layout : 'fit',
				items : editForm
			});

			editForm.addListener('beforeaction', mako_addEntitiesToFormFields);

			windowObj.addListener('activate', function(formObj) {
				editForm.getForm().load( {
					url : mako_getPathToRoot(elemId) + 'data/index.asp'
				});
			});
			break;
		// #############################################################################################################
		case 'IMGLink':
			/*
			Mako.editIMGTabPanel - holds refference to TabPanel to edit IMG
			Mako.filesListComboBox - holds refference to ComboBox with list of files to choice
			Mako.IMGPanel - holds refference to panel where the preview image is shown
			Mako.editFormsArray = Array(); // holds refferences to forms in
											// tabs of TabPanel
			 */

			// building subPath to 'linkX' element (cuts off first two nodes
			// "root|site")
			// used for mapping in creating editForm
			var elemIdArray = elemId.split('|');
			var elemIdSubPath = '';
			for ( var i = 2; i < elemIdArray.length; i++) {
				elemIdSubPath += elemIdArray[i];
				if ((i + 1) != elemIdArray.length) {
					//add slash if it is not last element
					elemIdSubPath += '/';
				}
			} //END: for(var i = 2; i<elemIdArray.length; i++){

			urlTargetStore = new Ext.data.SimpleStore( {
				fields : [ 'text', 'value' ],
				data : [ [ '_blank', '_blank' ], [ '_parent', '_parent' ],
						[ '_self', '_self' ], [ '_top', '_top' ] ]
			})

			var comboUrlTargetType = new Ext.form.ComboBox( {
				store : urlTargetStore,
				displayField : 'text',
				typeAhead : true,
				width : 255,
				id : 'targetWindow',
				editable : false,
				fieldLabel : 'URL Target',
				mode : 'local',
				triggerAction : 'all',
				listClass : 'textAlignLeft',
				selectOnFocus : true
			});

			// comboGroups.store.addListener("load", function(){

			// }

			Mako.editIMGTabPanel = new Ext.TabPanel( {
				plain : true, //remove the header border
				activeItem : 0,
				defaults : {
					bodyStyle : 'margin-left:105px'
				},
				items : [ Mako.editFormsArray ]
			});

			// new file
			Mako.editFormsArray[0] = new Ext.Panel( {
				frame : true,
				method : 'POST',
				mako_i : 0, //used to define index of this Tab
				title : transEdit_newFile,
				labelAlign : 'right',
				labelWidth : 200,
				width : 440,
				layout : 'form',

				items : [
						{
							xtype : 'hidden',
							name : 'sourceOfFile',
							value : 'new'
						},
						new Ext.form.Hidden( {
							name : 'imageFilePathHidden',
							id : 'imageFilePathHiddenId1'
						}),
						new Ext.form.TextField( {
							fieldLabel : transEdit_imageFile,
							allowBlank : false,
							blankText : transAddModelForm_thisFieldIsRequired,
							name : 'imageFilePath',
							id : 'imageFilePathId1',
							inputType : 'file',
							width : 272,
							height : 24
						}),
						{
							xtype : 'textfield',
							fieldLabel : transEdit_proposedPathToSaveFile,
							name : 'proposedPathToSaveFiles',
							value : proposedPathToSaveFiles,
							width : 270
						},
						new Ext.form.Label( {
							text : (proposedImageSize == undefined ? ''
									: trans_EditProposedSize + ': '
											+ proposedImageSize)
						})

				]
			});

			// existing file
			Mako.editFormsArray[1] = new Ext.Panel(
					{
						frame : true,
						method : 'POST',
						mako_i : 1, //used to define index of this Tab
						title : transEdit_existingFile,
						labelAlign : 'right',
						labelWidth : 90,
						width : 440,
						layout : 'form',

						items : [
								{
									xtype : 'hidden',
									name : 'sourceOfFile',
									value : 'existing'
								},
								Mako.filesListComboBox = new Ext.form.ComboBox(
										{
											fieldLabel : transEdit_selectFile,
											width : 380,
											name : 'pathToImgFromRoot', //path in format: 'images/imageName.jpg'
											listClass : 'textAlignLeft',
											triggerAction : 'all',
											loadingText : transEdit_loading,
											editable : false,
											displayField : 'text',
											valueField : 'value',
											lazyInit : false,
											mode : 'remote',
											store : new Ext.data.JsonStore(
													{
														//baseParams : {combo: 'loadlist', interexter: 'Interior'},
														method : 'POST',
														autoLoad : true,
														enableCaching : false,
														url : mako_getPathToRoot(elemId) + 'adminPanel/getFilesList_Json.asp',
														root : 'files',
														fields : [ 'text',
																'value' ]
													}),
											listeners : {
												select : function(combo,
														record, index) {
													document
															.getElementById('previewIMG').src = mako_getPathToRoot(elemId)
															+ combo.getValue();
												}
											}
										}),
								Mako.IMGPanel = new Ext.Panel(
										{
											xtype : 'panel',
											style : 'padding: 10px;',
											html : '<img id="previewIMG" src="' + mako_getPathToRoot(elemId) + 'images/common/spacer.gif" width="200" />'
										})

						]
					});

			Mako.editIMGTabPanel = new Ext.TabPanel( {
				plain : true, //remove the header border
				activeItem : 0,
				height : 200,
				defaults : {
					bodyStyle : 'padding:15px'
				},
				items : Mako.editFormsArray
			});

			editForm = new Ext.form.FormPanel( {
				frame : true,
				method : 'POST',
				//title: transAddModelForm_title,
				labelAlign : 'right',
				labelWidth : 210,
				width : 440,

				reader : new Ext.data.XmlReader( {
					record : 'site'
				}, [ {
					name : 'URLAddress',
					mapping : elemIdSubPath + '/link' + '@target'
				}, {
					name : 'targetWindow',
					mapping : elemIdSubPath + '/link' + '@targetWindow'
				}

				]),

				items : [ Mako.editIMGTabPanel, new Ext.form.FieldSet( {
					title : transEdit_linkProperties,
					autoHeight : true,
					defaultType : 'textfield',
					items : [ new Ext.form.Hidden( {
						name : 'actionType',
						id : 'actionTypeId',
						value : actionType
					}), new Ext.form.Hidden( {
						name : 'editedElementPath',
						id : 'editedElementPathId',
						value : elemId
					}), {
						xtype : 'checkbox',
						checked : false,
						style : 'margin-top: 5px;',
						fieldLabel : transEdit_isLink,
						name : 'isLink',
						id : 'isLink'
					}, comboUrlTargetType, {
						fieldLabel : transEdit_URLAddress,
						name : 'URLAddress',
						id : 'URLAddress',
						width : 270
					}

					]
				}) ]
			});

			windowObj = new Ext.Window( {
				title : '',
				closable : true,
				width : 550,
				height : 450,
				plain : true,
				layout : 'fit',
				items : [ editForm ]
			});

			Mako.editIMGTabPanel.on('tabchange', function(activatedPanelObj) {
				//assign active form to variable editForm
					// editForm =
					// Mako.editFormsArray[activatedPanelObj.getActiveTab().mako_i];
					switch (activatedPanelObj.getActiveTab().mako_i) {
					case 0:
						Ext.getCmp('imageFilePathId1').allowBlank = true;
						break;
					case 1:
						Ext.getCmp('imageFilePathId1').allowBlank = true;
						break;
					}
				});

			editForm.addListener('beforeaction', mako_addEntitiesToFormFields);

			editForm
					.addListener(
							'actioncomplete',
							function(formObj, action) {
								if (action.type == 'load') {
									if ((Ext.getCmp('URLAddress').getValue() == '#')
											|| (Ext.getCmp('URLAddress')
													.getValue() == 'javascript:;')) {
										Ext.getCmp('isLink').setValue('0');
									} else {
										Ext.getCmp('isLink').setValue('1');
									}
								}
							});

			windowObj.addListener('activate', function(formObj) {
				editForm.getForm().load( {
					url : mako_getPathToRoot(elemId) + 'data/index.asp'
				});
			});

			break;
		// #############################################################################################################
		case 'HTMLEditor':

			//building subPath to 'linkX' element (cuts off first two nodes "root|site")
			// used for mapping in creating editForm
			var elemIdArray = elemId.split('|');
			var elemIdSubPath = '';
			for ( var i = 2; i < elemIdArray.length; i++) {
				elemIdSubPath += elemIdArray[i];
				if ((i + 1) != elemIdArray.length) {
					//add slash if it is not last element
					elemIdSubPath += '/';
				}
			} //END: for(var i = 2; i<elemIdArray.length; i++){

			editForm = new Ext.form.FormPanel( {
				frame : true,
				method : 'POST',
				//title: transAddModelForm_title,
				labelAlign : 'right',
				labelWidth : 155,

				reader : new Ext.data.XmlReader( {
					record : 'site'
				}, [ {
					name : 'HTMLTextHidden',
					mapping : elemIdSubPath
				} //mapping is for example: 'pages/t3_1/text1'
						]),

				items : [ new Ext.form.Hidden( {
					name : 'actionType',
					id : 'actionTypeId',
					value : actionType
				}), new Ext.form.Hidden( {
					name : 'editedElementPath',
					id : 'editedElementPathId',
					value : elemId
				}), new Ext.form.Hidden( {
					name : 'HTMLTextHidden',
					id : 'HTMLTextHiddenId'
				}) ]

			});

			htmlEditorObj = new Ext.form.HtmlEditor( {
				name : 'HTMLText',
				id : 'HTMLTextId',
				width : 600,
				height : 300
			})

			centerPanel = new Ext.Panel( {
				layout : 'fit',
				plain : true,
				split : true,
				region : 'center',
				items : htmlEditorObj

			});

			southPanel = new Ext.Panel( {
				layout : 'fit',
				plain : true,
				split : true,
				height : 100,
				minSize : 75,
				maxSize : 250,
				region : 'south',
				items : editForm
			});

			windowObj = new Ext.Window( {
				title : '',
				closable : true,
				width : 600,
				height : 400,
				plain : true,
				layout : 'border',
				items : [ centerPanel, southPanel

				]
			});

			windowObj.addListener('activate', function(Obj) {
				editForm.getForm().load( {
					url : mako_getPathToRoot(elemId) + 'data/index.asp'
				});
			});

			editForm.addListener('actioncomplete', function(formObj, action) {
				if (action.type == 'load') {
					var formItems = formObj.items.items;
					htmlEditorObj.setValue(formItems[2].getValue());
				}
				return true;
			});

			editForm.addListener('beforeaction', function(formObj, action) {
				if (action.type == 'submit') {
					var formItems = formObj.items.items;
					formItems[2].setValue(htmlEditorObj.getValue());
				}
			});

			editForm.addListener('beforeaction', mako_addEntitiesToFormFields);

			break; // HTMLEditor
		// #############################################################################################################
		case 'SCREENSAVER':

			//building subPath to 'screensaverX' element (cuts off first two nodes "root|site")
			// used for mapping in creating editForm
			// after loop elemIdSubPath is like:
			// 'dirs/cars/dirs/clio/pages/clio_screensavers/screensaver1'
			var elemIdArray = elemId.split('|');
			var elemIdSubPath = '';
			for ( var i = 2; i < elemIdArray.length; i++) {
				elemIdSubPath += elemIdArray[i];
				if ((i + 1) != elemIdArray.length) {
					//add slash if it is not last element
					elemIdSubPath += '/';
				}
			} //END: for(var i = 2; i<elemIdArray.length; i++){

			editForm = new Ext.form.FormPanel(
					{
						frame : true,
						method : 'POST',
						//title: transAddModelForm_title,
						labelAlign : 'right',
						labelWidth : 135,
						width : 440,

						reader : new Ext.data.XmlReader(
								{
									record : 'site'
								},
								[
										{
											name : 'resolution1',
											mapping : elemIdSubPath + '/linkToFile1/@size'
										}, //mapping is for example: 'dirs/cars/dirs/clio/pages/clio_screensavers/screensaver1/linkToFile1/@size'
										{
											name : 'URLText1',
											mapping : elemIdSubPath + '/linkToFile1'
										},
										{
											name : 'resolution2',
											mapping : elemIdSubPath + '/linkToFile2/@size'
										},
										{
											name : 'URLText2',
											mapping : elemIdSubPath + '/linkToFile2'
										} ]),

						items : [
								new Ext.form.Hidden( {
									name : 'actionType',
									id : 'actionTypeId',
									value : actionType
								}),
								new Ext.form.Hidden( {
									name : 'editedElementPath',
									id : 'editedElementPathId',
									value : elemId
								}),

								//(Img) file
								{ //new
									xtype : 'hidden',
									name : 'sourceOfImgFile',
									id : 'sourceOfImgFileId'
								},
								{
									xtype : 'hidden',
									name : 'imageFilePathHidden',
									id : 'imageFilePathHiddenId'
								},
								{
									xtype : 'hidden',
									name : 'proposedPathToSaveImageFile',
									id : 'proposedPathToSaveImageFileId'
								},
								{ //existing
									xtype : 'hidden',
									name : 'pathToImgFromRoot',
									id : 'pathToImgFromRootId'
								},

								//(File1) file
								{ //new
									xtype : 'hidden',
									name : 'sourceOfFile1',
									id : 'sourceOfFile1Id'
								},
								{
									xtype : 'hidden',
									name : 'screensaverFile1PathHidden',
									id : 'screensaverFile1PathHiddenId'
								},
								{
									xtype : 'hidden',
									name : 'proposedPathToSaveFile1',
									id : 'proposedPathToSaveFile1Id'
								},
								{ //existing
									xtype : 'hidden',
									name : 'pathToFile1FromRoot',
									id : 'pathToFile1FromRootId'
								},

								//(File2) file
								{ //new
									xtype : 'hidden',
									name : 'sourceOfFile2',
									id : 'sourceOfFile2Id'
								},
								{
									xtype : 'hidden',
									name : 'screensaverFile2PathHidden',
									id : 'screensaverFile2PathHiddenId'
								},
								{
									xtype : 'hidden',
									name : 'proposedPathToSaveFile2',
									id : 'proposedPathToSaveFile2Id'
								},
								{ //existing
									xtype : 'hidden',
									name : 'pathToFile2FromRoot',
									id : 'pathToFile2FromRootId'
								},

								{
									layout : 'column',
									items : [
											{
												xtype : 'panel',
												columnWidth : .45,
												bodyStyle : 'border: 0px; background: transparent;',
												id : 'fileSelectorImgPanel'
											},
											//Mako.editSCREENSAVERImgTabPanel, 
											{
												columnWidth : .01
											},
											{
												columnWidth : .54,
												layout : 'form',
												items : [
														new Ext.form.FieldSet(
																{
																	title : transEdit_file1,
																	autoHeight : true,
																	style : 'margin-bottom: 22px;',
																	defaultType : 'textfield',
																	items : [
																			{
																				fieldLabel : transEdit_resolution,
																				name : 'resolution1',
																				width : 190
																			},
																			{
																				fieldLabel : transEdit_URLText,
																				name : 'URLText1',
																				width : 190
																			},
																			{
																				xtype : 'panel',
																				columnWidth : .45,
																				bodyStyle : 'border: 0px; background: transparent;',
																				id : 'fileSelectorFile1Panel'
																			}
																	//, Mako.editSCREENSAVERFile1TabPanel
																	]
																}),
														new Ext.form.FieldSet(
																{
																	title : transEdit_file2,
																	autoHeight : true,
																	defaultType : 'textfield',
																	items : [
																			{
																				fieldLabel : transEdit_resolution,
																				name : 'resolution2',
																				width : 190
																			},
																			{
																				fieldLabel : transEdit_URLText,
																				name : 'URLText2',
																				width : 190
																			},
																			{
																				xtype : 'panel',
																				columnWidth : .45,
																				bodyStyle : 'border: 0px; background: transparent;',
																				id : 'fileSelectorFile2Panel'
																			}
																	//, Mako.editSCREENSAVERFile2TabPanel
																	]
																}) ]
											} ]
								}, {
									layout : 'column',
									items : [ {
										columnWidth : .45,
										layout : 'form'
									}, {
										columnWidth : .01
									}, {
										columnWidth : .54,
										layout : 'form'
									} ]
								} ]
					});

			editForm.addListener('beforeaction', mako_addEntitiesToFormFields);

			editForm
					.addListener('beforeaction', function(formObj, action) {
						if (action.type == 'submit') {
							if (!Mako.fileSelectorImgObj.ValidatePanels()) {
								return false;
							}
							if (!Mako.fileSelectorFile1Obj.ValidatePanels()) {
								return false;
							}
							if (!Mako.fileSelectorFile2Obj.ValidatePanels()) {
								return false;
							}

							//(img) file
							for ( var i = 0; i < Mako.fileSelectorImgObj
									.GetPanelData().length; i++) { //this loop should iterate only once
								var tempFilePath = Mako.fileSelectorImgObj
										.GetPanelData()[i].filePath;
								if (tempFilePath.indexOf(':') == -1) {
									//it is existing file
									tempFilePath = tempFilePath.substring(3,
											tempFilePath.length); // cut off
									// '../'
									// from
									// beggining
									Ext.getCmp('sourceOfImgFileId').setValue(
											'existing');
									Ext.getCmp('pathToImgFromRootId').setValue(
											mako_toEntities(tempFilePath));
								} else {
									//it is new file
									Ext.getCmp('sourceOfImgFileId').setValue(
											'new');
									Ext
											.getCmp('imageFilePathHiddenId')
											.setValue(
													mako_toEntities(tempFilePath));
									Ext
											.getCmp(
													'proposedPathToSaveImageFileId')
											.setValue(
													mako_toEntities(Mako.fileSelectorImgObj
															.GetPanelData()[i].propFilePath));
								}
							}

							//(File1) file
							for ( var i = 0; i < Mako.fileSelectorFile1Obj
									.GetPanelData().length; i++) { //this loop should iterate only once
								var tempFilePath = Mako.fileSelectorFile1Obj
										.GetPanelData()[i].filePath;
								if (tempFilePath.indexOf(':') == -1) {
									//it is existing file
									tempFilePath = tempFilePath.substring(3,
											tempFilePath.length); // cut off
									// '../'
									// from
									// beggining
									Ext.getCmp('sourceOfFile1Id').setValue(
											'existing');
									Ext
											.getCmp('pathToFile1FromRootId')
											.setValue(
													mako_toEntities(tempFilePath));
								} else {
									//it is new file
									Ext.getCmp('sourceOfFile1Id').setValue(
											'new');
									Ext
											.getCmp(
													'screensaverFile1PathHiddenId')
											.setValue(
													mako_toEntities(tempFilePath));
									Ext
											.getCmp('proposedPathToSaveFile1Id')
											.setValue(
													mako_toEntities(Mako.fileSelectorFile1Obj
															.GetPanelData()[i].propFilePath));
								}
							}

							//(File2) file
							for ( var i = 0; i < Mako.fileSelectorFile2Obj
									.GetPanelData().length; i++) { //this loop should iterate only once
								var tempFilePath = Mako.fileSelectorFile2Obj
										.GetPanelData()[i].filePath;
								if (tempFilePath.indexOf(':') == -1) {
									//it is existing file
									tempFilePath = tempFilePath.substring(3,
											tempFilePath.length); // cut off
									// '../'
									// from
									// beggining
									Ext.getCmp('sourceOfFile2Id').setValue(
											'existing');
									Ext
											.getCmp('pathToFile2FromRootId')
											.setValue(
													mako_toEntities(tempFilePath));
								} else {
									//it is new file
									Ext.getCmp('sourceOfFile2Id').setValue(
											'new');
									Ext
											.getCmp(
													'screensaverFile2PathHiddenId')
											.setValue(
													mako_toEntities(tempFilePath));
									Ext
											.getCmp('proposedPathToSaveFile2Id')
											.setValue(
													mako_toEntities(Mako.fileSelectorFile2Obj
															.GetPanelData()[i].propFilePath));
								}
							}
						}
					}); // END: editForm.addListener('beforeaction',
			// function(formObj, action){

			windowObj = new Ext.Window( {
				title : '',
				closable : true,
				width : 700,
				height : 544,
				plain : true,
				layout : 'fit',
				items : editForm
			});

			windowObj.addListener('activate', function(Obj) {
				editForm.getForm().load( {
					url : mako_getPathToRoot(elemId) + 'data/index.asp'
				});
			});

			windowObj
					.addListener(
							'show',
							function(formObj) {
								Mako.Runner.run(transEdit_pleaseWait);
								Mako.Runner.SCREENSAVER_imgLoaded = false;
								Mako.Runner.SCREENSAVER_file1Loaded = false;
								Mako.Runner.SCREENSAVER_file2Loaded = false;
								Ext.Ajax
										.request( {
											method : 'POST',
											url : mako_getPathToRoot(elemId) + 'data/index.asp',

											success : function(response) {
												//Mako.Runner.run(transEdit_pleaseWait);

												var editedElementNode = response.responseXML
														.selectNodes(elemId
																.replace(
																		/\|/gi,
																		'/'))[0];

												// build tab panel (Img)
												var existingImgPath = editedElementNode
														.selectNodes('img1')[0].text
														.replace(
																new RegExp(
																		mako_getPathToRoot(
																				elemId)
																				.replace(
																						/\./gi,
																						'\\.'),
																		'gi'),
																'');

												Mako.fileSelectorImgObj = new MakoTabPanel();
												var fileSelectorImgPanel = Mako.fileSelectorImgObj
														.CreateTabPanel(
																proposedPathToSaveFiles,
																existingImgPath,
																mako_getPathToRoot(elemId),
																'', true);
												fileSelectorImgPanel.height = 474; // height
												// of
												// TabPanel
												Mako.fileSelectorImgObj.existingFileDropDown.width = 260; // width
												// of
												// dropDownList
												// Mako.fileSelectorImgObj.newFilePanel.labelWidth
												// = 80; //default nwe file
												// label width
												Mako.fileSelectorImgObj.proposedFilePathTextField.width = 168; // proposed
												// path
												// field
												// width
												Mako.fileSelectorImgObj.newFileTextField.fieldLabel = transEdit_imageFile; // new
												// file
												// field
												// label
												Mako.fileSelectorImgObj.newFileTextField.width = 170; // new
												// file
												// field
												// width

												// add listener to drop down
												// list
												Mako.fileSelectorImgObj.existingFileDropDown.store
														.addListener(
																'load',
																function() {
																	Mako.Runner.SCREENSAVER_imgLoaded = true;
																	if (Mako.Runner.SCREENSAVER_imgLoaded
																			&& Mako.Runner.SCREENSAVER_file1Loaded
																			&& Mako.Runner.SCREENSAVER_file2Loaded) {
																		Mako.Runner
																				.stop();
																	}
																});

												Ext
														.getCmp(
																'fileSelectorImgPanel')
														.add(
																fileSelectorImgPanel);
												Ext.getCmp(
														'fileSelectorImgPanel')
														.doLayout();

												// build tab panel (File1)
												var existingFile1Path = editedElementNode
														.selectNodes('linkToFile1')[0]
														.getAttribute('href')
														.replace(
																new RegExp(
																		mako_getPathToRoot(
																				elemId)
																				.replace(
																						/\./gi,
																						'\\.'),
																		'gi'),
																'');

												Mako.fileSelectorFile1Obj = new MakoTabPanel();
												var fileSelectorFile1Panel = Mako.fileSelectorFile1Obj
														.CreateTabPanel(
																proposedPathToSaveFiles,
																existingFile1Path,
																mako_getPathToRoot(elemId),
																'', false);
												fileSelectorFile1Panel.height = 120; // height
												// of
												// TabPanel
												fileSelectorFile1Panel.style = 'margin-top: 20px;'; // style
												// of
												// TabPanel
												Mako.fileSelectorFile1Obj.existingFileDropDown.width = 320; // width
												// of
												// dropDownList
												Mako.fileSelectorFile1Obj.newFilePanel.labelWidth = 105; // default
												// nwe
												// file
												// label
												// width
												Mako.fileSelectorFile1Obj.proposedFilePathTextField.width = 188; // proposed
												// path
												// field
												// width
												Mako.fileSelectorFile1Obj.newFileTextField.fieldLabel = transEdit_screensaverFile; // new
												// file
												// field
												// label
												Mako.fileSelectorFile1Obj.newFileTextField.width = 192; // new
												// file
												// field
												// width

												// add listener to drop down
												// list
												Mako.fileSelectorFile1Obj.existingFileDropDown.store
														.addListener(
																'load',
																function() {
																	Mako.Runner.SCREENSAVER_file1Loaded = true;
																	if (Mako.Runner.SCREENSAVER_imgLoaded
																			&& Mako.Runner.SCREENSAVER_file1Loaded
																			&& Mako.Runner.SCREENSAVER_file2Loaded) {
																		Mako.Runner
																				.stop();
																	}
																});

												Ext
														.getCmp(
																'fileSelectorFile1Panel')
														.add(
																fileSelectorFile1Panel);
												Ext
														.getCmp(
																'fileSelectorFile1Panel')
														.doLayout();

												// build tab panel (File2)
												var existingFile2Path = editedElementNode
														.selectNodes('linkToFile2')[0]
														.getAttribute('href')
														.replace(
																new RegExp(
																		mako_getPathToRoot(
																				elemId)
																				.replace(
																						/\./gi,
																						'\\.'),
																		'gi'),
																'');

												Mako.fileSelectorFile2Obj = new MakoTabPanel();
												var fileSelectorFile2Panel = Mako.fileSelectorFile2Obj
														.CreateTabPanel(
																proposedPathToSaveFiles,
																existingFile2Path,
																mako_getPathToRoot(elemId),
																'', false);
												fileSelectorFile2Panel.height = 120; // height
												// of
												// TabPanel
												fileSelectorFile2Panel.style = 'margin-top: 20px;'; // style
												// of
												// TabPanel
												Mako.fileSelectorFile2Obj.existingFileDropDown.width = 320; // width
												// of
												// dropDownList
												Mako.fileSelectorFile2Obj.newFilePanel.labelWidth = 105; // default
												// nwe
												// file
												// label
												// width
												Mako.fileSelectorFile2Obj.proposedFilePathTextField.width = 188; // proposed
												// path
												// field
												// width
												Mako.fileSelectorFile2Obj.newFileTextField.fieldLabel = transEdit_screensaverFile; // new
												// file
												// field
												// label
												Mako.fileSelectorFile2Obj.newFileTextField.width = 192; // new
												// file
												// field
												// width

												// add listener to drop down
												// list
												Mako.fileSelectorFile2Obj.existingFileDropDown.store
														.addListener(
																'load',
																function() {
																	Mako.Runner.SCREENSAVER_file2Loaded = true;
																	if (Mako.Runner.SCREENSAVER_imgLoaded
																			&& Mako.Runner.SCREENSAVER_file1Loaded
																			&& Mako.Runner.SCREENSAVER_file2Loaded) {
																		Mako.Runner
																				.stop();
																	}
																});

												Ext
														.getCmp(
																'fileSelectorFile2Panel')
														.add(
																fileSelectorFile2Panel);
												Ext
														.getCmp(
																'fileSelectorFile2Panel')
														.doLayout();

												/*
												 * //set form field values
												 * Ext.getCmp('flashWidth').setValue(editedElementNode.selectNodes('width')[0].text);
												 * Ext.getCmp('flashHeight').setValue(editedElementNode.selectNodes('height')[0].text);
												 * 
												 * if(editedElementNode.getAttribute('isFlash') ==
												 * 'true'){
												 * Ext.getCmp('imageType').setValue('flash');
												 * }else{
												 * Ext.getCmp('imageType').setValue('image');
												 * Ext.getCmp('flashWidth').disable();
												 * Ext.getCmp('flashHeight').disable(); }
												 */
											},
											failure : function() {
												if (Mako.Runner) {
													Mako.Runner.stop();
												}
												alert('Request faild, load data, SCREENSAVER')
											}
										});
							});

			break;
		// #############################################################################################################
		case 'FlashVideo':

			newVideoTabPanel = new MakoTabPanel();
			pathtoroot = mako_getPathToRoot(elemId);

			if (proposedImageSize == undefined) {
				proposedImageSize = '625x433';
			}
			videoTabPanel = newVideoTabPanel.CreateTabPanel('', '', pathtoroot,
					proposedImageSize);

			var elemIdArray = elemId.split('|');
			var elemIdSubPath = '';
			for ( var i = 2; i < elemIdArray.length; i++) {
				elemIdSubPath += elemIdArray[i];
				if ((i + 1) != elemIdArray.length) {
					//add slash if it is not last element
					elemIdSubPath += '/';
				}
			} //END: for(var i = 2; i<elemIdArray.length; i++){ 

			editForm = new Ext.form.FormPanel( {
				frame : true,
				method : 'POST',
				//title: transEdit_flashVideoWindowTitle,
				labelAlign : 'center',
				labelWidth : 190,
				hidden : true,
				width : 500,
				defaultType : 'textfield',

				items : [ new Ext.form.Hidden( {
					name : 'actionType',
					id : 'actionTypeId',
					value : actionType
				}), new Ext.form.Hidden( {
					name : 'editedElementPath',
					id : 'editedElementPathId',
					value : elemId
				}), new Ext.form.TextField( {
					name : 'flashVideoFilePathHidden',
					id : 'flashVideoFilePathHiddenId',
					allowBlank : false
				// value:'C:\\Documents and
						// Settings\\blazej.grzelinski\\Pulpit\\5.jpg'
						}), new Ext.form.Hidden( {
					name : 'proposedPathToSaveFlashVideoFile',
					id : 'proposedPathToSaveFlashVideoFileId',
					value : proposedPathToSaveFiles
				}), {
					id : "hiddenWidth",
					fieldLabel : transEdit_width,
					name : 'width',
					width : 190
				}, {
					id : "hiddenHeight",
					fieldLabel : transEdit_height,
					name : 'height',
					width : 190
				} ]
			});

			editFormNotSubmited = new Ext.form.FormPanel( {
				frame : true,
				layout : 'form',
				labelWidth : 150,
				defaultType : 'textfield',

				reader : new Ext.data.XmlReader( {
					record : 'site'
				}, [ {
					name : 'flashWidth',
					mapping : elemIdSubPath + '/width'
				}, {
					name : 'flashHeight',
					mapping : elemIdSubPath + '/height'
				} ]),

				items : [ videoTabPanel, {
					xtype : 'label',
					text : 'Video properies',
					labelStyle : 'font-size:12x; width:190px'
				}, {
					id : "videoWidth",
					fieldLabel : transEdit_width,
					labelStyle : 'font-size:11px; width:190px',
					name : 'flashWidth',
					width : 190

				}, {
					id : "videoHeight",
					fieldLabel : transEdit_height,
					labelStyle : 'font-size:11px; width:190px',
					name : 'flashHeight',
					width : 190
				} ]
			})

			editForm.addListener('beforeaction', function() {

				newVideoTabPanel.ValidatePanels();
				Ext.getCmp('hiddenWidth').setValue(
						Ext.getCmp('videoWidth').getValue());
				Ext.getCmp('hiddenHeight').setValue(
						Ext.getCmp('videoHeight').getValue());
				Ext.getCmp('flashVideoFilePathHiddenId').setValue(
						newVideoTabPanel.GetPanelData()[0].filePath);
			});

			editForm.addListener('beforeaction', mako_addEntitiesToFormFields);

			windowObj = new Ext.Window( {
				title : transEdit_flashVideoWindowTitle,
				closable : true,
				width : 540,
				height : 400,
				plain : true,
				layout : 'fit',
				items : [ editFormNotSubmited, editForm ]
			});

			windowObj.addListener('activate', function(formObj) {

				editFormNotSubmited.getForm().load( {
					url : mako_getPathToRoot(elemId) + 'data/index.asp'
				});
				// alert(mako_getPathToRoot(elemId)+'data/index.asp');
				});

			break;
		// #############################################################################################################
		case 'FLASHTitle':

			//building subPath to 'linkX' element (cuts off first two nodes "root|site")
			// used for mapping in creating editForm
			var elemIdArray = elemId.split('|');
			var elemIdSubPath = '';
			for ( var i = 2; i < elemIdArray.length; i++) {
				elemIdSubPath += elemIdArray[i];
				if ((i + 1) != elemIdArray.length) {
					//add slash if it is not last element
					elemIdSubPath += '/';
				}
			} //END: for(var i = 2; i<elemIdArray.length; i++){

			editForm = new Ext.form.FormPanel( {
				frame : true,
				method : 'POST',
				//title: transAddModelForm_title,
				labelAlign : 'right',
				labelWidth : 155,
				width : 440,

				reader : new Ext.data.XmlReader( {
					record : 'site'
				}, [ {
					name : 'textFirstLine',
					mapping : elemIdSubPath + '/firstLine'
				}, //mapping is for example: 'pages/index/flashTitle1/firstLine'
						{
							name : 'textSecondLine',
							mapping : elemIdSubPath + '/secondLine'
						} //mapping is for example: 'pages/index/flashTitle1/secondLine'
						]),

				items : [ new Ext.form.FieldSet( {
					title : transEdit_firstLine,
					autoHeight : true,
					defaultType : 'textfield',
					items : [ new Ext.form.Hidden( {
						name : 'actionType',
						id : 'actionTypeId',
						value : actionType
					}), new Ext.form.Hidden( {
						name : 'editedElementPath',
						id : 'editedElementPathId',
						value : elemId
					}), {
						fieldLabel : transEdit_text,
						name : 'textFirstLine',
						width : 190
					} ]
				}), new Ext.form.FieldSet( {
					title : transEdit_secondLine,
					autoHeight : true,
					defaultType : 'textfield',
					items : [ {
						fieldLabel : transEdit_text,
						name : 'textSecondLine',
						width : 190
					} ]
				}) ]
			});

			windowObj = new Ext.Window( {
				title : '',
				closable : true,
				width : 440,
				height : 350,
				plain : true,
				layout : 'fit',
				items : editForm
			});

			editForm.addListener('beforeaction', mako_addEntitiesToFormFields);

			windowObj.addListener('activate', function(formObj) {
				editForm.getForm().load( {
					url : mako_getPathToRoot(elemId) + 'data/index.asp'
				});
			});
			break;
		// #############################################################################################################
		case 'FLASHHeader':

			var siteId = mako_getSiteId(elemId);
			var XPathToFlashHeaderNode = mako_getXPathToFlashHeaderNode(siteId
					.replace(/\|/g, '/')) + '/flashHeader';

			editForm = new Ext.form.FormPanel( {
				frame : true,
				method : 'POST',
				//title: transAddModelForm_title,
				labelAlign : 'right',
				labelWidth : 155,
				width : 440,

				items : [ new Ext.form.FieldSet( {
					title : transEdit_firstLine,
					autoHeight : true,
					defaultType : 'textfield',
					items : [ new Ext.form.Hidden( {
						name : 'actionType',
						id : 'actionTypeId',
						value : actionType
					}), new Ext.form.Hidden( {
						name : 'editedElementPath',
						id : 'editedElementPathId',
						value : XPathToFlashHeaderNode.replace(/\//g, '|')
					}), {
						fieldLabel : transEdit_text,
						name : 'textFirstLine',
						id : 'textFirstLineId',
						width : 190
					} ]
				}), new Ext.form.FieldSet( {
					title : transEdit_secondLine,
					autoHeight : true,
					defaultType : 'textfield',
					items : [ {
						fieldLabel : transEdit_text,
						name : 'textSecondLine',
						id : 'textSecondLineId',
						width : 190
					} ]
				}) ]
			});

			windowObj = new Ext.Window( {
				title : '',
				closable : true,
				width : 440,
				height : 350,
				plain : true,
				layout : 'fit',
				items : editForm
			});

			editForm.addListener('beforeaction', mako_addEntitiesToFormFields);

			windowObj
					.addListener(
							'activate',
							function(formObj) {
								Ext.Ajax
										.request( {
											method : 'POST',
											url : mako_getPathToRoot(elemId) + 'data/index.asp',

											success : function(response) {
												var flashHeaderNode = response.responseXML
														.selectNodes(XPathToFlashHeaderNode)[0];
												editForm
														.findById(
																'textFirstLineId')
														.setValue(
																flashHeaderNode
																		.selectNodes('firstLine')[0].text);
												editForm
														.findById(
																'textSecondLineId')
														.setValue(
																flashHeaderNode
																		.selectNodes('secondLine')[0].text);
											},
											failure : function() {
												alert('Request faild')
											}
										});
							});
			break;
		// #############################################################################################################

		case 'FocusItem':
			/*
			Mako.editIMGTabPanel - holds refference to TabPanel to edit IMG
			Mako.filesListComboBox - holds refference to ComboBox with list of files to choice
			Mako.IMGPanel - holds refference to panel where the preview image is shown
			Mako.editFormsArray = Array(); // holds refferences to forms in
											// tabs of TabPanel
			 */

			// building subPath to 'linkX' element (cuts off first two nodes
			// "root|site")
			// used for mapping in creating editForm
			var elemIdArray = elemId.split('|');
			var elemIdSubPath = '';
			for ( var i = 2; i < elemIdArray.length; i++) {
				elemIdSubPath += elemIdArray[i];
				if ((i + 1) != elemIdArray.length) {
					//add slash if it is not last element
					elemIdSubPath += '/';
				}
			} //END: for(var i = 2; i<elemIdArray.length; i++){

			//new file
			Mako.editFormsArray[0] = new Ext.Panel( {
				frame : true,
				method : 'POST',
				mako_i : 0, //used to define index of this Tab
				title : transEdit_newFile,
				labelAlign : 'top',
				labelWidth : 200,
				width : 250,
				layout : 'form',

				items : [ new Ext.form.Hidden( {
					name : 'imageFilePathHidden',
					id : 'imageFilePathHiddenId1'
				}), new Ext.form.TextField( {
					fieldLabel : transEdit_focusItemLinkImageFile,
					allowBlank : true,
					blankText : transAddModelForm_thisFieldIsRequired,
					name : 'imageFilePath',
					id : 'imageFilePathId1',
					inputType : 'file',
					width : 200,
					height : 24
				}), {
					xtype : 'textfield',
					fieldLabel : transEdit_focusItemLinkImagePath,
					name : 'proposedPathToSaveFiles',
					value : proposedPathToSaveFiles,
					width : 200
				}, new Ext.form.Label( {
					text : trans_EditProposedSize + ': 156x87'
				})

				]
			});

			// existing file
			Mako.editFormsArray[1] = new Ext.Panel(
					{
						frame : true,
						method : 'POST',
						mako_i : 1, //used to define index of this Tab
						title : transEdit_existingFile,
						labelAlign : 'top',
						labelWidth : 90,
						width : 250,
						layout : 'form',

						items : [
								{
									xtype : 'hidden',
									name : 'imgPathHidden',
									id : 'imgPathHiddenId',
									value : ''
								},
								Mako.filesListComboBox = new Ext.form.ComboBox(
										{
											fieldLabel : transEdit_focusItemSelectLinkImageFile,
											width : 230,
											name : 'pathToImgFromRoot', //path in format: 'images/imageName.jpg'
											id : 'pathToImgFromRootId', //path in format: 'images/imageName.jpg'
											listClass : 'textAlignLeft',
											triggerAction : 'all',
											loadingText : transEdit_loading,
											editable : false,
											displayField : 'text',
											valueField : 'value',
											lazyInit : false,
											mode : 'remote',
											store : new Ext.data.JsonStore(
													{
														//baseParams : {combo: 'loadlist', interexter: 'Interior'},
														method : 'POST',
														autoLoad : true,
														enableCaching : false,
														url : mako_getPathToRoot(elemId) + 'adminPanel/getFilesList_Json.asp',
														root : 'files',
														fields : [ 'text',
																'value' ]
													}),
											listeners : {
												select : function(combo,
														record, index) {
													document
															.getElementById('previewIMG').src = mako_getPathToRoot(elemId)
															+ combo.getValue();
												}

											}
										}),
								Mako.IMGPanel = new Ext.Panel(
										{
											xtype : 'panel',
											style : 'padding: 10px;',
											html : '<img id="previewIMG" src="' + mako_getPathToRoot(elemId) + 'images/common/spacer.gif" width="200" />'
										})

						]
					});

			// new file
			Mako.editFormsArray2[0] = new Ext.Panel( {
				frame : true,
				method : 'POST',
				mako_i : 0, //used to define index of this Tab
				title : transEdit_newFile,
				labelAlign : 'top',
				labelWidth : 200,
				width : 250,
				layout : 'form',

				items : [ new Ext.form.Hidden( {
					name : 'imageFileBigPathHidden',
					id : 'imageFileBigPathHiddenId1'
				}), new Ext.form.TextField( {
					fieldLabel : transEdit_focusItemBigImageFile,
					allowBlank : true,
					blankText : transAddModelForm_thisFieldIsRequired,
					name : 'imageFileBigPath',
					id : 'imageFileBigPathId1',
					inputType : 'file',
					width : 200,
					height : 24
				}),

				{
					xtype : 'textfield',
					fieldLabel : transEdit_focusItemBigImagePath,
					width : 200,
					name : 'proposedPathToSaveFilesBig',
					value : proposedPathToSaveFiles
				}, new Ext.form.Label( {
					text : trans_EditProposedSize + ': 407x179'
				})

				]
			});

			// existing file
			Mako.editFormsArray2[1] = new Ext.Panel(
					{
						frame : true,
						method : 'POST',
						mako_i : 1, //used to define index of this Tab
						title : transEdit_existingFile,
						labelAlign : 'top',
						labelWidth : 90,
						width : 250,
						layout : 'form',

						items : [
								{
									xtype : 'hidden',
									name : 'imgPathBigHidden',
									id : 'imgPathBigHiddenId',
									value : ''
								},
								Mako.filesListComboBox = new Ext.form.ComboBox(
										{
											fieldLabel : transEdit_focusItemSelectBigImageFile,
											width : 230,
											name : 'pathToImgFromRootBig', //path in format: 'images/imageName.jpg'
											id : 'pathToImgFromRootBigId', //path in format: 'images/imageName.jpg'
											listClass : 'textAlignLeft',
											triggerAction : 'all',
											loadingText : transEdit_loading,
											editable : false,
											displayField : 'text',
											valueField : 'value',
											lazyInit : false,
											mode : 'remote',
											store : new Ext.data.JsonStore(
													{
														//baseParams : {combo: 'loadlist', interexter: 'Interior'},
														method : 'POST',
														autoLoad : true,
														enableCaching : false,
														url : mako_getPathToRoot(elemId) + 'adminPanel/getFilesList_Json.asp',
														root : 'files',
														fields : [ 'text',
																'value' ]
													}),
											listeners : {
												select : function(combo,
														record, index) {
													document
															.getElementById('previewIMGBig').src = mako_getPathToRoot(elemId)
															+ combo.getValue();
												}
											}
										}),
								Mako.IMGPanel = new Ext.Panel(
										{
											xtype : 'panel',
											style : 'padding: 10px;',
											html : '<img id="previewIMGBig" src="' + mako_getPathToRoot(elemId) + 'images/common/spacer.gif" width="200" />'
										}) ]
					});

			Mako.editIMGTabPanel = new Ext.TabPanel( {
				plain : true, //remove the header border
				layoutOnTabChange : true,
				border : false,
				activeItem : 0,
				height : 190,
				region : 'center',
				defaults : {
					bodyStyle : 'padding:10px;'
				},
				items : Mako.editFormsArray
			});

			Mako.editIMGTabPanel2 = new Ext.TabPanel( {
				plain : true, //remove the header border
				layoutOnTabChange : true,
				border : false,
				activeItem : 0,
				height : 190,
				region : 'center',
				defaults : {
					bodyStyle : 'padding:10px'
				},
				items : Mako.editFormsArray2
			});

			htmlEditorObj = new Ext.form.HtmlEditor( {
				name : 'HTMLText',
				id : 'HTMLTextId'
			})

			textPanel = new Ext.Panel( {
				title : '&nbsp;&nbsp;&nbsp;' + transEdit_focusItemMainText,
				style : 'text-align:left;',
				layout : 'fit',
				plain : true,
				split : true,
				region : 'center',
				height : 160,
				items : htmlEditorObj
			});

			Mako.editIMGTabPanels = new Ext.Panel( {
				layout : 'column',
				plain : true,
				split : true,
				region : 'center',
				items : [ {
					xtype : 'hidden',
					name : 'source',
					id : 'source',
					value : 'existing'
				}, {
					xtype : 'hidden',
					name : 'sourceBig',
					id : 'sourceBig',
					value : 'existing'
				}, {
					columnWidth : .5,
					items : Mako.editIMGTabPanel
				}, {
					columnWidth : .5,
					items : Mako.editIMGTabPanel2
				} ]
			});

			var indexXmlObj = GetIndexXmlObject(mako_getPathToRoot(elemId)
					+ "data/index.xml");
			var XmlColorsNodes = indexXmlObj
					.selectNodes("root/site/Colors/color");
			var XmlColors = Array();
			for (i = 0; i < XmlColorsNodes.length; i++) {
				XmlColors[i] = XmlColorsNodes[i].text.toUpperCase();
			}

			editForm = new Ext.form.FormPanel(
					{
						frame : true,
						method : 'POST',
						/*region: 'center',*/
						// title: transAddModelForm_title,
						labelAlign : 'right',
						labelWidth : 210,
						width : 540,
						height : 342,
						reader : new Ext.data.XmlReader(
								{
									record : 'site'
								},
								[
										{
											name : 'LinkText',
											mapping : elemIdSubPath + '/LinkText'
										},
										{
											name : 'Title',
											mapping : elemIdSubPath + '/title'
										},
										{
											name : 'Subtitle',
											mapping : elemIdSubPath + '/subtitle'
										},
										{
											name : 'HTMLTextHidden',
											mapping : elemIdSubPath + '/text'
										},
										{
											name : 'imgPathHiddenId',
											mapping : elemIdSubPath + '/img'
										},
										{
											name : 'imgPathBigHiddenId',
											mapping : elemIdSubPath + '/imgBig'
										},
										{
											name : 'backgroundColor',
											mapping : elemIdSubPath.substr(0,
													elemIdSubPath
															.lastIndexOf('/')) + '/focusItemsBackgroundColor'
										} ]),

						items : [
								Mako.editIMGTabPanels,
								new Ext.form.FieldSet(
										{
											title : transEdit_focusItemProperties,
											autoHeight : true,
											defaultType : 'textfield',

											items : [
													new Ext.form.Hidden( {
														name : 'actionType',
														id : 'actionTypeId',
														value : actionType
													}),
													new Ext.form.Hidden(
															{
																name : 'editedElementPath',
																id : 'editedElementPathId',
																value : elemId
															}),
													{
														fieldLabel : transEdit_focusItemLinkText,
														name : 'LinkText',
														id : 'LinkText',
														width : 270
													},
													{
														fieldLabel : transEdit_focusItemTitle,
														name : 'Title',
														id : 'Title',
														width : 270
													},
													{
														fieldLabel : transEdit_focusItemSubtitle,
														name : 'Subtitle',
														id : 'Subtitle',
														width : 270
													},
													new Ext.ux.ColorField(
															{
																fieldLabel : transEdit_backgroundColor,
																name : 'backgroundColor',
																width : 255,
																colors : XmlColors,
																allowBlank : false
															}),
													new Ext.form.Hidden(
															{
																name : 'HTMLTextHidden',
																id : 'HTMLTextHiddenId'
															}) ]
										}) ]
					});

			windowObj = new Ext.Window( {
				title : transEdit_focusWindowTitle,
				closable : true,
				resizable : false,
				width : 555,
				height : 589,
				plain : true,
				tbar : [ {
					xtype : 'label',
					text : trans_toDisableItem
				} ],
				/*layout: 'form',*/
				items : [ editForm, textPanel ]
			});

			Mako.editIMGTabPanel.on('tabchange', function(activatedPanelObj) {
				//assign active form to variable editForm
					// editForm =
					// Mako.editFormsArray[activatedPanelObj.getActiveTab().mako_i];
					switch (activatedPanelObj.getActiveTab().mako_i) {
					case 0:
						Ext.getCmp('imageFilePathId1').allowBlank = false;
						Ext.getCmp('source').setValue('new');
						break;
					case 1:
						Ext.getCmp('imageFilePathId1').allowBlank = true;
						Ext.getCmp('source').setValue('existing');
						break;
					}
					//alert (Ext.getCmp('source').getValue())
				});
			Mako.editIMGTabPanel2.on('tabchange', function(activatedPanelObj) {
				//assign active form to variable editForm
					// editForm =
					// Mako.editFormsArray[activatedPanelObj.getActiveTab().mako_i];
					switch (activatedPanelObj.getActiveTab().mako_i) {
					case 0:
						Ext.getCmp('imageFileBigPathId1').allowBlank = false;
						Ext.getCmp('sourceBig').setValue('new');
						break;
					case 1:
						Ext.getCmp('imageFileBigPathId1').allowBlank = true;
						Ext.getCmp('sourceBig').setValue('existing');
						break;
					}
					//alert (Ext.getCmp('source').getValue())
				});

			editForm.addListener('beforeaction', function(formObj, action) {
				if (action.type == 'submit') {
					editForm.findById('HTMLTextHiddenId').setValue(
							htmlEditorObj.getValue());
				}
			});

			editForm.addListener('beforeaction', mako_addEntitiesToFormFields);

			editForm
					.addListener(
							'actioncomplete',
							function(formObj, action) {
								if (action.type == 'load') {
									htmlEditorObj.setValue(editForm.findById(
											'HTMLTextHiddenId').getValue());

									Mako.editIMGTabPanel.setActiveTab(1);
									Mako.editIMGTabPanel2.setActiveTab(1);

									var tempPath = editForm
											.findById('imgPathHiddenId')
											.getValue()
											.replace(
													new RegExp('\\.\\./', 'gi'),
													'');
									editForm.findById('pathToImgFromRootId')
											.setValue(tempPath);
									document.getElementById('previewIMG').src = mako_getPathToRoot(elemId)
											+ editForm.findById(
													'pathToImgFromRootId')
													.getValue();

									tempPath = editForm
											.findById('imgPathBigHiddenId')
											.getValue()
											.replace(
													new RegExp('\\.\\./', 'gi'),
													'');
									editForm.findById('pathToImgFromRootBigId')
											.setValue(tempPath);
									document.getElementById('previewIMGBig').src = mako_getPathToRoot(elemId)
											+ editForm.findById(
													'pathToImgFromRootBigId')
													.getValue();

									Mako.Runner.stop();
								}
								return true;
							});

			windowObj.addListener('activate', function(formObj) {
				editForm.getForm().load( {
					url : mako_getPathToRoot(elemId) + 'data/index.asp'
				});
			});

			windowObj.addListener('show', function() {
				Mako.Runner.run(transEdit_pleaseWait);
			});

			break;
		// #############################################################################################################

		// #############################################################################################################
		case 'FlashSpots':
			var siteId = mako_getSiteId(elemId);
			var XPathToFlashSpots = siteId.replace(/\|/g, '/') + '/flashSpots';
			var XPathToFlashSpotsParent = siteId.replace(/\|/g, '/');

			var fmSpots = Ext.form;

			var spotsCm = new Ext.grid.ColumnModel( [ {
				id : 'DealerText',
				width : 230,
				header : flashHostSpotsColumn1title,
				dataIndex : 'DisplayText',
				css : 'background-color: #f3faf8; vertical-align:middle;',
				align : 'center',
				sortable : false,
				editor : new fmSpots.TextField( {
					value : '',
					allowBlank : true
				})
			}, {
				header : flashHostSpotsColumn2title,
				width : 230,
				dataIndex : 'URLAddress',
				sortable : false,
				hideable : true,

				css : 'background-color: #f3faf8; vertical-align:middle;',
				editor : new fmSpots.TextField( {
					value : '',
					allowBlank : false
				})
			} ]);

			var spots = Ext.data.Record.create( [ {
				name : 'DisplayText',
				type : 'string'
			}, {
				name : 'URLAddress',
				type : 'string'
			} ]);

			var spotsStore = new Ext.data.SimpleStore( {
				fields : [ 'DisplayText', 'URLAddress' ],
				autoLoad : false
			});

			spotsGrid = new Ext.grid.EditorGridPanel( {
				store : spotsStore,
				cm : spotsCm,
				header : true,
				title : 'Edit links',
				headerAsText : true,
				hideHeaders : false,
				enableColumnHide : false,
				width : 480,
				height : 250,
				frame : true,
				clicksToEdit : 1,
				listeners : {
					'afteredit' : function(curObj) {
					}
				}
			});

			var titleText = new Ext.form.TextField( {
				fieldLabel : 'Flash title',
				width : 350,
				inputType : 'text'
			});

			var subTitleText = new Ext.form.TextField( {
				fieldLabel : 'Flash subtitle',
				width : 350,
				inputType : 'text'
			});

			var fieldsPanel = new Ext.form.FormPanel( {
				width : 500,
				height : 70,
				frame : true,
				layout : 'form',
				items : [ titleText, subTitleText ]
			})

			var windowObj = new Ext.Window(
					{
						title : flashHostSpotsEditorTitle,
						width : 500,
						height : 400,
						resizable : false,
						closable : false,
						modal : true,
						plain : true,
						buttonAlign : 'right',
						listeners : {
							'close' : function(p) {
								clickedDealer = 0;
							}
						},
						items : [ fieldsPanel, spotsGrid ],
						buttons : [
								{
									xtype : 'button',
									text : saveButton,
									handler : function() {

										PostXml = new ActiveXObject(
												"Msxml2.DOMDocument.3.0");
										root = PostXml
												.createElement("flashSpots");
										spots = PostXml.createElement("spots");
										title = PostXml.createElement("title");
										subTitle = PostXml
												.createElement("subTitle");

										title.text = titleText.getValue();
										subTitle.text = subTitleText.getValue();

										root.appendChild(title);
										root.appendChild(subTitle);
										root.appendChild(spots);

										for ( var i = 0; i < spotsStore
												.getCount(); i++) {

											dispText = spotsStore.getAt(i).get(
													'DisplayText');
											urlAddr = spotsStore.getAt(i).get(
													'URLAddress');

											childElement = PostXml
													.createElement("spot");

											childElement.text = dispText;
											childElement.setAttribute("url",
													urlAddr);
											spots.appendChild(childElement);

										}

										Ext.Ajax
												.request( {
													params : {
														xmlData : mako_toEntities(root.xml),
														editedElementPath : XPathToFlashSpotsParent
													},
													method : 'POST',
													url : mako_getPathToRoot(elemId) + 'data/saveXMLAddition.asp',
													success : function(response) {
														if (response.responseText != "") {
															Ext.MessageBox
																	.show( {
																		title : invalidLink_MessageBoxTitle,
																		msg : "File with the name "
																				+ response.responseText
																				+ " already exist",
																		buttons : Ext.MessageBox.OK,
																		icon : 'ext-mb-error'
																	});
															return;
														} else {
															windowObj.close();

														}
														window.location
																.reload(true);
													},
													failure : function() {
														alert("faild")
													}
												});
									}

								}, {
									xtype : 'button',
									text : closeButton,
									handler : function() {
										windowObj.close();

									}
								} ]
					});

			// editForm.addListener('beforeaction',
			// mako_addEntitiesToFormFields);

			// windowObj.addListener('activate', function(formObj) {
			Ext.Ajax
					.request( {
						method : 'POST',
						url : mako_getPathToRoot(elemId) + 'data/index.asp',

						success : function(response) {
							var flashSpotsNode = response.responseXML
									.selectNodes(XPathToFlashSpots + '/spots')[0];
							titleText
									.setValue(response.responseXML
											.selectNodes(XPathToFlashSpots + '/title')[0].text);
							subTitleText
									.setValue(response.responseXML
											.selectNodes(XPathToFlashSpots + '/subTitle')[0].text);

							for ( var i = flashSpotsNode.childNodes.length - 1; i >= 0; i--) {
								var p = new spots(
										{
											DisplayText : flashSpotsNode.childNodes[i].text,
											URLAddress : flashSpotsNode.childNodes[i]
													.getAttribute("url")
										});
								spotsStore.insert(0, p);
							}
						},
						failure : function() {
							alert('Request faild')
						}
					});
			// });

			windowObj.show();
			break;
		// #############################################################################################################

		} //END: switch(actionType){

		//windowObj.buttonAlign = 'center';
		var submit = windowObj
				.addButton( {
					text : transEdit_save,
					handler : function() {
						try {
							editForm
									.getForm()
									.submit(
											{
												url : mako_getPathToRoot(elemId) + 'data/saveXML.asp',

												success : function(form, action) {
													document.location = (window.location.href
															.indexOf('#') == -1 ? window.location.href
															: window.location.href
																	.replace(
																			new RegExp(
																					'#',
																					'gi'),
																			''));
													// windowObj.close();

												},
												failure : function(form, action) {
													if (action.result) {
														if (action.result.alertMsg) {
															Ext.Msg
																	.alert(
																			'',
																			action.result.errorMsg);
														}
													} else {
														try {
															Ext.Msg
																	.alert(
																			'',
																			'Save in browser.js failed<br />' + action.response.responseText);
														} catch (e) {
														}
													}
												}
											});
						} catch (o) {

						}

					}
				});
		windowObj.addButton( {
			id : 'closeButton',
			text : 'Close',
			handler : function() {
				windowObj.close()
			}
		});

		var spot = new Ext.Spotlight( {
			easing : 'easeOut',
			duration : .3
		});

		windowObj.addListener('beforeclose', function(panelObj) {
			spot.hide();
		});

		windowObj.show(this);

		spot.show(windowObj.getEl());

		return false;
	}; // END: htmlitem.onclick= function(){

	// htmlitem.onclick= this.EditItemOn;
} //END: BrowserOP.prototype.selectEditableelement = function(elemId, actionType){

BrowserOP.prototype.getByID = function(elemid) {
	return document.getElementById(elemid);
}
BrowserOP.prototype.addStyle = function(el, s) {
	if (typeof (el) == 'string') {
		el = document.getElementById(el);
	}
	var st = s.split(';');
	for ( var i = 0; i < st.length; i++) {
		var stl = st[i].split(':');
		if (stl.length == 2) {
			stl[0] = stl[0].replace(/^\s*|\s*$/g, "");
			stl[1] = stl[1].replace(/^\s*|\s*$/g, "");
			stl[1] = stl[1].replace(/'/g, "\"");
			tmpStl = stl[0].split('-');
			stl[0] = tmpStl[0];
			for ( var j = 1; j < tmpStl.length; j++) {
				stl[0] += tmpStl[j].charAt(0).toUpperCase()
						+ tmpStl[j].substr(1).toLowerCase();
			}
			delete tmpStl;
			if (stl[0].length > 3) {
				eval('el.style.' + stl[0] + ' = \'' + stl[1] + '\';');
			}
		}
	}
	return false;
}

BrowserOP.prototype.glueElements = function(obj, referenceobj, container) {
	if (container) {
		var contype = typeof container;
		if (contype == 'object') {
			obj.style.top = (this.getAbsY(referenceobj)
					+ referenceobj.offsetHeight - container.scrollTop + 'px');
			obj.style.left = (this.getAbsX(referenceobj) - container.scrollLeft + 'px');
		} else {
			obj.style.top = (this.getAbsY(referenceobj)
					+ referenceobj.offsetHeight + 'px');
			obj.style.left = (this.getAbsX(referenceobj) + 'px');
		}
		return;
	} else {
		obj.style.left = (this.getAbsX(referenceobj) + 'px');
		obj.style.top = (this.getAbsY(referenceobj) + referenceobj.offsetHeight + 'px');
		obj.style.width = (referenceobj.style.width);
	}

}
BrowserOP.prototype.getAbsX = function(elt) {
	return (elt.x) ? elt.x : this.getAbsPos(elt, "Left");
}
BrowserOP.prototype.getAbsY = function(elt) {
	return (elt.y) ? elt.y : this.getAbsPos(elt, "Top");
}
BrowserOP.prototype.getAbsPos = function(elt, which) {
	iPos = 0;
	while (elt != null) {
		iPos += elt["offset" + which];
		elt = elt.offsetParent;
	}
	return iPos;
}

var OBrowser = new BrowserOP();
