	gzindex = 1;
	
	var global_cifi_name = '';
	var global_root_dir = './images/cms';
	var global_selected_filename = new Array();
	
	function getAbsoluteLocation(obj)
	{
		var pX = 0;
		var pY = 0;
		var oParent = obj.offsetParent; 

		while (oParent)
		{
			pX += oParent.offsetLeft;
			pY += oParent.offsetTop;
			oParent = oParent.offsetParent; 
		}

		return { x: pX + obj.offsetLeft, y: pY + obj.offsetTop }
	}
	
	function cifi_generate_select(cifi_name, images_arr, def, is_parted, parted_dir) {
		if("undefined" == typeof cifi_upload_text) {
			cifi_upload_text = "";
		}
        
		basedef = def;
		global_selected_filename[cifi_name] = basedef;
		
        if(def.search("/") != -1) {
            var def_arr = def.split("/");
		    def = def_arr[def_arr.length - 1];
        }      
		
		if(parted_dir) {
			var parted_js = " onclick=\"javascript: cifi_loadExtraImages(this, '" + parted_dir + "');\"";
		} else {
			var parted_js = "";
			parted_dir = is_parted;
		}
		
		form_html = "";
		form_html += "<table cellspacing='0' cellpadding='0' border='0' style='border: #FFF 1px solid;width:100%'><tr>"+
		"<td><a href='#' onclick=\"show_images_browser('cifi_select_" + cifi_name + "', '" + cifi_name + "', '" + parted_dir + "'); return false;\"><img src='/images/cms/search_icon.png' align='absmiddle' /></a> "+
		"<select id='cifi_select_" + cifi_name + "' name='select_" + cifi_name + "' style='width: 70%'" + parted_js + ">\n";

		if (def) {
			form_html += "<option value=''></option>\n";
		}

		form_html += "<option value='"+basedef+"' selected>"+def+"</option>\n";
		
		if(def == "NEW") {
			file_obj = document.getElementById("cifi_file_" + cifi_name);
			file_path = file_obj.value;

			fn_arr = file_path.split("\\");
			file_name = fn_arr[fn_arr.length - 1];
			form_html += "<option value='" + file_path + "' selected>» " + file_name + "</option>\n";
		}
		
		if (images_arr.length == 0) {
			form_html += "\t<option value=''>"+getLabel('js-imgbrowser-dirempty')+"</option>\n";
		}
		
		for(i = 0; i < images_arr.length; i++) {
			is_checked = "";

			if(images_arr[i] == def) {
				is_checked = " selected";
			}
			form_html += "\t<option value='" + images_arr[i]['full'] + "'" + is_checked + ">" + images_arr[i]['filename'] + "</option>\n";
		}

		form_html += "</select></td>\n";
		form_html += "<input type=\"hidden\" name=\"data[]\" value=\"\" />";
		form_html += "<!-- <td>&nbsp;<a href='#' onclick='javascript: cifi_swap(\"" + cifi_name + "\"); return false;' class=\"ftext_upl\">" + cifi_upload_text + "</a></td> --></tr></table>";

		return form_html;

	}

	function cifi_generate(cifi_name, images_arr, def, is_parted, parted_dir) {
		this.parted_dir = parted_dir;

		off_left = 80;
		off_top = 3;
		off_left_sel = 32;

		//getting main div
		main_div = document.getElementById("cifi_mdiv_" + cifi_name);
		if(!main_div)
			return false;

		//let's generate interface
		form_html = "";

		form_html += "<div id='cifi_sdiv_" + cifi_name + "' style='display: none'>\n";
		form_html += "<input type='file' id='cifi_file_" + cifi_name + "' name='pics[" + cifi_name + "]' onchange=\"javascript: cifi_file_changed('" + cifi_name + "', this, cifi_images_arr_" + cifi_name + ")\" size=\"50\">\n";
		form_html += "</div>\n";

		form_html += "<div class='cifi' id='cifi_ssdiv_" + cifi_name + "'>\n";
		form_html += cifi_generate_select(cifi_name, images_arr, def, is_parted, parted_dir);
		form_html += "</div>\n";

		//insert into main div
		main_div.innerHTML = form_html;

	}

	function cifi_getPath(cifi_name) {
		res = "";
		sobj = document.getElementById("cifi_select_" + cifi_name);
		src = sobj.options[sobj.selectedIndex].value;

		if(!src)
			return false;

		upld_value = document.getElementById("cifi_file_" + cifi_name).value;

		if(upld_value.substr(upld_value.length - src.length, src.length) == src) {
			return upld_value;
		}

		return src;
	}
	
	function cifi_loadExtraImages(selectObj, dir) {
		
		if (document.getElementById("image_browser") != null) close_images_browser ();
		
		selectObj.onclick = function () {};
		var cifi_name = selectObj.name;
		var scriptObj = document.createElement("script");
		scriptObj.charset = "utf-8";
		scriptObj.src = "/content/json_load_files/" + cifi_name + "/?def=" + selectObj.value + "&dir=" + dir;
		
		selectObj.innerHTML = "<option>"+getLabel('js-cifi-load')+"</option>";
		document.body.appendChild(scriptObj);
	}
	
	function cifi_loadExtraImages_alternative(cifi_name, filename, dir) {
		
		if (document.getElementById("img_browser") != null) close_images_browser ();
		
		document.getElementById('cifi_select_'+cifi_name).onclick = function () {};
		var scriptObj = document.createElement("script");
		scriptObj.charset = "utf-8";
		scriptObj.src = "/content/json_load_files/select_" + cifi_name + "/?def=" + filename + "&dir=" + dir;
		
		document.getElementById('cifi_select_'+cifi_name).innerHTML = "<option>"+getLabel('js-cifi-load')+"</option>";
		document.body.appendChild(scriptObj);
		
	}

	
function show_images_browser (element, elementName, headerDir) {
	
	global_cifi_name = elementName;
	
	global_root_dir = "./images/cms/data";
	if (elementName == "menu_pic_a") global_root_dir = "./images/cms/menu";
	if (elementName == "menu_pic_ua") global_root_dir = "./images/cms/menu";
	if (elementName == "header_pic") global_root_dir = "./images/cms/headers";
	
	currentDir = headerDir;
	currentDir = substr (currentDir, global_root_dir.length+1, currentDir.length)
	
	if (document.getElementById("img_browser") != null) close_images_browser ();
	
	var selectElement = document.getElementById (element);
	var bounds = getBounds(document.getElementById (element));
	var y = (bounds.top + document.body.scrollTop - 255) + 'px';
	var x = bounds.left + 'px';
	
	var popup = document.createElement ("div");
	
	popup.id = "img_browser";
	popup.style.top = y;
	popup.style.left = x;
	popup.innerHTML = "<span style='display:none;'><iframe width='1' height='1' name='upl_frame' src='about:blank'></iframe></span>"+
		"<form action='/admin/content/json_mini_browser/' method='post' enctype='multipart/form-data' target='upl_frame'>"+
		"<table width='100%' height='100%' cellpadding='0' cellspacing='0'>"+
			"<tr>"+
				"<td colspan='2' id='title'>" + getLabel("js-imgbrowser-title") + "<a href='javascritp:void(0);' style='position:relative; right:-137px;' onclick='close_images_browser(); return false;'>x</a></td>"+
			"</tr><tr>"+
				"<td colspan='2' style='padding:5px'>" + getLabel("js-imgbrowser-currentlabel") + ": <span id='now_folder' style='font-weight:bold'>./images/cms</span></td>"+
			"</tr><tr>"+
				"<td width='60%' style='padding:5px'><div id='cifi_browser' /></td>"+
				"<td align='center' style='padding:5px'><div id='browser_preview' /></td>"+
			"</tr><tr>"+
				"<td style='padding:5px'>"+
					"<input type='hidden' name='dir' value='"+global_root_dir+"' />"+
					"<input type='hidden' name='reload_dirname' id='reload_dirname' value='' />"+
			"</tr><tr>"+
				"<td style='padding:5px'>"+
					"<input type='file' style='width:100%;border:0px;' name='pics[pic]' />"+
				"</td><td style='padding:5px'>"+
					"&nbsp;&nbsp;&nbsp; <input align='absmiddle' type='submit' value='"+getLabel('js-imgbrowser-uploadimage')+"' name='upload_file' style='border:0px;height:16px;width:117px;background:transparent url(/images/cms/img_button.png) no-repeat;font-size:7pt' />"+
				"</td>"+
			"</tr><tr>"+
				"<td style='padding:5px'>"+
					"<input type='text' style='width:100%;' name='dirname' />"+
				"</td><td style='padding:5px'>"+
					"&nbsp;&nbsp;&nbsp; <input align='absmiddle' type='submit' name='crate_dir' value='"+getLabel('js-imgbrowser-createdir')+"' style='border:0px;height:16px;width:117px;background:transparent url(/images/cms/img_button.png) no-repeat;font-size:7pt' />"+
				"</td>"+
			"</tr>"+
		"</table>";
	
	document.body.appendChild (popup);
	
	cifi_load_images (base64encode(currentDir));
	
}

function cifi_load_finished (oRequest) {
	
	cifi_hide_loader ();
	
	var new_string = "";
	
	var default_dir = "./images/cms/data";
	if (global_cifi_name == "menu_pic_ua") default_dir = "./images/cms/menu";
	if (global_cifi_name == "menu_pic_a") default_dir = "./images/cms/menu";
	if (global_cifi_name == "header_pic") default_dir = "./images/cms/headers";
	
	if (oRequest.length == 1) {
		new_string += '<p align="center">' + getLabel("js-imgbrowser-dirempty") + '</p>';
	}
	
	for (i = 0; i < oRequest.length; i++) {
		var file = oRequest[i].file_info;
		
		var thumb_path = file['full_path'] + "/" + file['name'];
		thumb_path = thumb_path.replace ("./", "");
		
		if (file['type'] == "dir") {
			if (file['full_path'] + '/' + file['src'] != default_dir + '/') new_string += '<a href="javascript:void(0)" onmouseover="close_thumb()" onclick="cifi_load_images(\''+base64encode(file['src'])+'\'); return false;"><img src="/images/cms/folder.png" align="absmiddle"> '+file['name']+'</a>';
		} else {
			
			var abs_path = file['full_path']+'/'+file['name'];
			var relative_path = substr (abs_path, default_dir.length+1, abs_path.length)
			var class_name = '';
			
			if (global_selected_filename[global_cifi_name] == relative_path) class_name = 'selected';
			
			new_string += '<a href="javascript:void(0)" class="'+class_name+'" onmouseover="cifi_show_thumb(\''+thumb_path+'\');" onclick="javascript: cifi_loadExtraImages_alternative(\''+global_cifi_name+'\', \''+relative_path+'\', \''+file['full_path']+'\'); return false;"><img src="/images/cms/image.png" align="absmiddle"> '+file['name']+'</a>';
		}
	}
	
	document.getElementById('now_folder').innerHTML = oRequest[0].file_info['full_path'];
	document.getElementById('cifi_browser').innerHTML = new_string;
}

function cifi_load_images (path) {
	cifi_show_loader ();
	
	document.getElementById ('reload_dirname').value = path;
	
	jsonRequestsController.getInstance().sendRequest("/admin/content/json_load_zip_folder/?rootpath=" + global_root_dir + "&filetypes=gif,jpg,png,bmp&dirpath="+path, cifi_load_finished);
}

function cifi_show_thumb (path) {
	if (path == '') return false;
	if (document.getElementById ('cifi_thumb') != null) document.getElementById ('browser_preview').removeChild (document.getElementById ('cifi_thumb'));
	
	var pathParts = path.split (".");
	var name = pathParts[0]+"_sl_100_100";
	var ext = pathParts[1];
	
	if (ext == "jpg" || ext == "gif" || ext == "png" || ext == "bmp" || ext == "jpeg") {
		var img = document.createElement ("img");
		img.id = "cifi_thumb";
		img.src = "/images/autothumbs/"+name+"."+ext;
		document.getElementById ('browser_preview').appendChild (img);
	}
}

function close_thumb () {
	if (document.getElementById ('cifi_thumb') != null) document.getElementById ('browser_preview').removeChild (document.getElementById ('cifi_thumb'));
}


function cifi_show_loader () {
	document.getElementById('cifi_browser').innerHTML = '';
	document.getElementById('cifi_browser').style.background = 'white url(/images/cms/loading.gif) no-repeat center center';
}
function cifi_hide_loader () {
	document.getElementById('cifi_browser').style.background = 'white';
}

function close_images_browser () {
	document.body.removeChild (document.getElementById("img_browser"));
}

function getBounds(element)
{
  var left = element.offsetLeft;
  var top = element.offsetTop;
  for (var parent = element.offsetParent; parent; parent = parent.offsetParent)
  {
    left += parent.offsetLeft - parent.scrollLeft;
    top += parent.offsetTop - parent.scrollTop
  }
  return {left: left, top: top, width: element.offsetWidth, height: element.offsetHeight};
}

function base64encode(sStr) {
	var sWinChrs = 'АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя'
	var sBase64Chrs  = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
	var arrBase64  = sBase64Chrs.split('')

	var a = new Array();
	var i = 0;
	for(i=0; i<sStr.length; i++ ) {
		var cch=sStr.charCodeAt(i)
		if (cch>127) {
			cch=sWinChrs.indexOf(sStr.charAt(i))+163; if(cch<163) continue; 
		}
		a.push(cch)
	};
	var s=Array(), lPos = a.length - a.length % 3
	for (i=0; i<lPos; i+=3) {
		var t=(a[i]<<16)+(a[i+1]<<8)+a[i+2]
		s.push(arrBase64[(t>>18)&0x3f]+arrBase64[(t>>12)&0x3f]+arrBase64[(t>>6)&0x3f]+arrBase64[t&0x3f] )
	}
	switch (a.length-lPos) {
		case 1 : var t=a[lPos]<<4; s.push(arrBase64[(t>>6)&0x3f]+arrBase64[t&0x3f]+'=='); break
		case 2 : var t=(a[lPos]<<10)+(a[lPos+1]<<2); s.push(arrBase64[(t>>12)&0x3f]+arrBase64[(t>>6)&0x3f]+arrBase64[t&0x3f]+'='); break
	}
	return s.join('')
}

function substr( f_string, f_start, f_length ) {    // Return part of a string
    if(f_start < 0) {
        f_start += f_string.length;
    }
 
    if(f_length == undefined) {
        f_length = f_string.length;
    } else if(f_length < 0){
        f_length += f_string.length;
    } else {
        f_length += f_start;
    }
 
    if(f_length < f_start) {
        f_length = f_start;
    }
 
    return f_string.substring(f_start, f_length);
}

/* OLD FOR FILE UPLOAD */

	function old_cifi_generate(cifi_name, images_arr, def, is_parted, parted_dir) {
		this.parted_dir = parted_dir;

		off_left = 80;
		off_top = 3;
		off_left_sel = 32;

		//getting main div
		main_div = document.getElementById("cifi_mdiv_" + cifi_name);
		if(!main_div)
			return false;

		//let's generate interface
		form_html = "";

		form_html += "<div id='cifi_sdiv_" + cifi_name + "' style='display: none'>\n";
		form_html += "<input type='file' id='cifi_file_" + cifi_name + "' name='pics[" + cifi_name + "]' onchange=\"javascript: cifi_file_changed('" + cifi_name + "', this, cifi_images_arr_" + cifi_name + ")\" size=\"50\">\n";
		form_html += "</div>\n";

		form_html += "<div class='cifi' id='cifi_ssdiv_" + cifi_name + "'>\n";
		form_html += old_cifi_generate_select(cifi_name, images_arr, def, is_parted, parted_dir);
		form_html += "</div>\n";

		//insert into main div
		main_div.innerHTML = form_html;

	}
	
	function old_cifi_generate_select(cifi_name, images_arr, def, is_parted, parted_dir) {
		if("undefined" == typeof cifi_upload_text) {
			cifi_upload_text = "";
		}
        
        if(def.search("/") != -1) {
            var def_arr = def.split("/");
            def = def_arr[def_arr.length - 1];
        }        
		
		if(parted_dir) {
			var parted_js = " onclick=\"javascript: old_cifi_loadExtraImages(this, '" + parted_dir + "');\"";
		} else {
			var parted_js = "";
		}

		form_html = "";
		form_html += "<table cellspacing='0' cellpadding='0' border='0' style='border: #FFF 1px solid;width:100%'><tr><td style='width:70%'><select id='cifi_select_" + cifi_name + "' name='select_" + cifi_name + "' style='width:100%'" + parted_js + ">\n";

		form_html += "<option value='"+def+"'>"+def+"</option>\n";
		if(def == "NEW") {
			file_obj = document.getElementById("cifi_file_" + cifi_name);
//			file_path = file_obj.value;

			fn_arr = file_path.split("\\");
			file_name = fn_arr[fn_arr.length - 1];
			form_html += "<option value='" + file_name + "' selected>» " + file_name + "</option>\n";
		}


		for(i = 0; i < images_arr.length; i++) {
			is_checked = "";

			if(images_arr[i] == def) {
				is_checked = " selected";
			}
			form_html += "\t<option value='" + images_arr[i] + "'" + is_checked + ">" + images_arr[i] + "</option>\n";
		}

		form_html += "</select></td>\n";
		form_html += "<td>&nbsp;<a href='#' onclick='javascript: cifi_swap(\"" + cifi_name + "\"); return false;' class=\"ftext_upl\">" + cifi_upload_text + "</a></td></tr></table>";

		return form_html;

	}
	
	function old_cifi_loadExtraImages(selectObj, dir) {
		selectObj.onclick = function () {};
		var cifi_name = selectObj.name;
		var scriptObj = document.createElement("script");
		scriptObj.charset = "utf-8";
		scriptObj.src = "/content/old_json_load_files/" + cifi_name + "/?def=" + selectObj.value + "&dir=" + dir;
		
		selectObj.innerHTML = "<option>"+getLabel('js-cifi-load')+"</option>";
		document.body.appendChild(scriptObj);
	}
	
	function cifi_swap(cifi_name) {
		
		var is_ie = Prototype.Browser.IE


		d1 = document.getElementById('cifi_sdiv_' + cifi_name);
		d2 = document.getElementById('cifi_ssdiv_' + cifi_name);


		if(d1.style.display == '') {
			d1.style.display = 'none';
			d2.style.display = '';
		} else {
			d1.style.display = '';
			d2.style.display = 'none';
		}
		
	}

	function cifi_file_changed(cifi_name, file_obj, images_arr) {
		file_path = file_obj.value;
		if(!file_path)
			return false;
		else {
			cifi_swap(cifi_name);
			old_cifi_regenerate_select(cifi_name, images_arr, "NEW");
			
		}
	}
	
	function old_cifi_regenerate_select(cifi_name, images_arr, def) {
		select_html = old_cifi_generate_select(cifi_name, images_arr, def, this.parted_dir);
		sobj = document.getElementById("cifi_ssdiv_" + cifi_name);
		if(sobj)
			sobj.innerHTML = select_html;

		
	}
	
	
