var oServerConnect = new Object() ;

//request to server
oServerConnect.connectToServer=function(url_str, param_object, getter_func){
	var time_value=new Date().getTime();
	
	JsHttpRequest.query(
            url_str+"&time="+time_value, // backend
			param_object,
			getter_func,
            true //disable caching
        );
}

function show_medium(gallery_img_id){
	//3. Изменяем описание
	var text_obj=document.getElementById('title_div');
	if(text_obj!=null){
		text_obj.innerHTML="загрузка изображения...";
	}
	
	var paramObject=new Object();
	paramObject.gallery_img_id=gallery_img_id;
	
	oServerConnect.connectToServer("get_medium_prop.php?folder=jkjk", paramObject, show_medium_request);
}

function show_medium_request(result, errors){
	if(errors.length>0){
		alert(errors);
		return 0;
	}
	if(result["error"]!=null ? result["error"].length>0 : false) alert(result["error"]);
	else{
		//1. Заменяем картинку
		var img_obj=document.getElementById('medium_img');
		img_obj.src=result["img_ref"];
		img_obj.width=result["width"];
		img_obj.height=result["height"];
		//2. Изменяем размеры слоя
		
		//3. Изменяем описание
		var text_obj=document.getElementById('title_div');
		if(text_obj!=null){
			text_obj.innerHTML=result["title"];
		}
		
		//4. Изменяем размер слоя
		var div_obj=document.getElementById('for_medium_img');
		div_obj.style.width=result["width"];
		div_obj.style.height=result["height"];
		
		//5. Изменяем ссылку на открытие большого фото
		//javascript: open_popup('show_img.php?filepath=/elektro_e/gallery/project/DSC00311Truboprov_transport_Ek.jpg', 'gallery/project/DSC00296_.jpg', 400, 374)
		var ref_obj=document.getElementById('show_big_ref');
		ref_obj.href="javascript: open_popup('show_img.php?filepath="+result['img_big_ref']+"', '', "+result['big_width']+", "+result['big_height']+");";
	}
}

/***************************************************************************/
// 			Функции для навигации по галерее
/***************************************************************************/
function gallery_navig(gallery_item_id, menu_id){
	var paramObject=new Object();
	paramObject.gallery_item_id=gallery_item_id;
	paramObject.menu_id=menu_id;
	paramObject.get_type="gallery_navigation";
	
	oServerConnect.connectToServer("get_data.php?folder=jkjk", paramObject, get_navig);
}

function get_navig(result, errors){
	if(errors.length>0){
		alert(errors);
		return 0;
	}
	
	if(result==null) return 0;
	
	if(result["error"]!=null ? result["error"].length>0 : false) alert(result["error"]);
	else{
		var cont_obj=document.getElementById("gallery_navig");
		cont_obj.innerHTML='';
		
		var prev_txt=document.createTextNode("\u2190");
		var next_txt=document.createTextNode("\u2192");
		var ref_obj=document.createElement("a");
		var bold_obj=document.createElement("strong");
		
		if(result['prev_id'].toString().length>0 || result['next_id'].toString().length>0){
			//если не один элемент
			//ссылка на предыдущий
			if(result['prev_id'].toString().length>0){
				var cur_obj=ref_obj.cloneNode(true);
				cur_obj.setAttribute("href", result['ref']+result['prev_id']+"/");
				cur_obj.setAttribute("title", result['prev_text']);
				
				cur_obj.appendChild(prev_txt);
				
				cont_obj.appendChild(cur_obj);
			}else cont_obj.appendChild(prev_txt);
			
			//текмст про текущий
			cont_obj.appendChild(document.createTextNode(" "+result['img_text']+" "));
			
			var cur_node=bold_obj.cloneNode(true);
			cur_node.appendChild(document.createTextNode(result['cur_index']));
			cont_obj.appendChild(cur_node);
			
			var cur_node=bold_obj.cloneNode(true);
			cont_obj.appendChild(document.createTextNode(" "+result['from_text']+" "));
			
			var cur_node=bold_obj.cloneNode(true);
			cur_node.appendChild(document.createTextNode(result['all_count']));
			cont_obj.appendChild(cur_node);
			
			cont_obj.appendChild(document.createTextNode(" "));
			
			//ссылка на предыдущий
			if(result['next_id'].toString().length>0){
				var cur_obj=ref_obj.cloneNode(true);
				cur_obj.setAttribute("href", result['ref']+result['next_id']+"/");
				cur_obj.setAttribute("title", result['next_text']);
				
				cur_obj.appendChild(next_txt);
				
				cont_obj.appendChild(cur_obj);
			}else cont_obj.appendChild(next_txt);
			
			cont_obj.appendChild(document.createTextNode(" \u00a0\u00a0 "));
		}
		
		//ссылка на галерею
		var cur_obj=ref_obj.cloneNode(true);
		cur_obj.setAttribute("href", result['ref']);
		
		cur_obj.appendChild(document.createTextNode(result['return_text']));
		cont_obj.appendChild(cur_obj);
	}
}

/***************************************************************************/
// 			Функции для навигации по новостям
/***************************************************************************/
function news_navig(news_id, menu_id){
	var paramObject=new Object();
	paramObject.news_id=news_id;
	paramObject.menu_id=menu_id;
	paramObject.get_type="news_navigation";
	
	oServerConnect.connectToServer("get_data.php?folder=jkjk", paramObject, get_navig);
}

/***************************************************************************/
// 			Функции для навигации по объектам сущности
/***************************************************************************/
function _obj_list_navig(obj_id, obj_list_id, menu_id){
	var paramObject=new Object();
	paramObject.obj_id=obj_id;
	paramObject.obj_list_id=obj_list_id;
	paramObject.menu_id=menu_id;
	if(_obj_list_navig.arguments.length>3){
		paramObject.razdel_str=_obj_list_navig.arguments[3];
	}
	paramObject.get_type="_obj_list_navigation";
	
	oServerConnect.connectToServer("get_data.php?folder=jkjk", paramObject, get_navig);
}

/***************************************************************************/
// 			Функции для сохранения нажатия на ссылку
/***************************************************************************/
function check_email(txt){
	if(txt.length<1) return false;
	if(txt.indexOf('.')==-1) return false;
	dog=txt.indexOf('@'); 
	if(dog==-1) return false;
	if((dog < 1) || (dog > txt.length - 5)) return false;
	if((txt.charAt(dog-1)=='.') || (txt.charAt(dog+1)=='.')) return false;
	return true;
}

function was_click(ref_o){
	if(!SAVE_REF_CLICK) return 0;
	
	if(was_click.arguments.length>1) bln_need_email=was_click.arguments[1];
	else bln_need_email=0;
	
	var mail_str="";
	var ref_href;
	try{
		ref_href=ref_o.getAttribute("href");
	}catch(err){}
	
	if(bln_need_email){
		//уберем ссылку
		if(was_click.arguments.length<3) ref_o.setAttribute("href", SITE_ADD_URL+"access_error/");
		
		//надо цануть мыло
		mail_str=prompt("Для получения этого файла необходимо оставить свой e-mail!");
		
		//проверим
		if(!check_email(mail_str)){
			alert("Вы ввели некорректный e-mail! В доступе к файлу отказано.");
			
			if(was_click.arguments.length<3){
				//устанавливаем обратную замену ссылки
				var id_str=new Date().getTime();
				ref_o.setAttribute("id", id_str);
				setTimeout("return_original_ref('"+ref_href+"', '"+id_str+"')", 200, ref_href);
			}
			return 0;
		}
		else{
			if(was_click.arguments.length<3) ref_o.setAttribute("href", ref_href);
		}
	}
	
	var paramObject=new Object();
	
	if(was_click.arguments.length<3){
		paramObject.ref=ref_href;
		paramObject.ref_is_original=1;//ссылка в натуральном виде
	}else{
		paramObject.ref=was_click.arguments[2];
		paramObject.ref_is_original=0;//ссылка уже запомнилась в таблице sec_ref
	}
	
	paramObject.get_type="save_ref_click";
	paramObject.email=mail_str;
		
	oServerConnect.connectToServer("get_data.php?folder=jkjk", paramObject, was_click_get);
}

function return_original_ref(){
	if(return_original_ref.arguments.length<2) return 0;
	
	var ref_str=return_original_ref.arguments[0];
	var id_str=return_original_ref.arguments[1];
	
	var ref_o=document.getElementById(id_str);
	ref_o.setAttribute("href", ref_str);
	ref_o.removeAttribute("id");
}

function was_click_get(result, errors){
	if(errors.length>0){
		alert(errors);
		return 0;
	}
	if(result["error"]!=null ? result["error"].length>0 : false) alert(result["error"]);
	if(result["message"]!=null ? result["message"].length>0 : false) alert(result["message"]);
}

/******************************************************************************************************/
// 			Функции для отображения дерева объектов сущности с использованием AJAX
/******************************************************************************************************/
var _TREE_HREF_SUFFIX="_ref";
var _TREE_DIV_SUFFIX="_div";

function show_razdel_child(razdel_id){
	//обращаемся к серверу за данными
	var cur_ref=document.getElementById(razdel_id+_TREE_HREF_SUFFIX);
	//if(cur_ref.innerHTML!="+"){
	if(cur_ref.getAttribute("status")==null ? false : cur_ref.getAttribute("status")=="open"){
		cur_ref.innerHTML="<img src=\"i/plus.gif\">";
		cur_ref.setAttribute("status", "close");
		//чистим дочерний слой
		var cur_div=document.getElementById(razdel_id+_TREE_DIV_SUFFIX);
		cur_div.innerHTML='';
		return 1;
	}
	
	//1. Берем ID раздела
	var paramObject=new Object();
	paramObject.razdel_id=razdel_id;
	
	paramObject.get_type="_obj_razdel";
	paramObject.menu_id=document.getElementById("tree_catalog_menu_id").value;
	
	oServerConnect.connectToServer("get_data.php?folder=jkjk", paramObject, get_show_razdel_child);
}

function get_show_razdel_child(result, errors){
	if(errors.length>0){
		alert(errors);
		return 0;
	}
	if(result["error"]!=null ? result["error"].length>0 : false) alert(result["error"]);
	
	//if(result['razdel_count']==0 && result['item_count']==0){ alert('');}
	
	//меняем значки
	var cur_ref=document.getElementById(result["razdel_id"]+_TREE_HREF_SUFFIX);
	if(cur_ref.getAttribute("status")==null ? true : cur_ref.getAttribute("status")=="close"){
		cur_ref.innerHTML="<img src=\"i/minus.gif\">";
		cur_ref.setAttribute("status", "open");
		
		//чистим дочерний слой
		var cur_div=document.getElementById(result["razdel_id"]+_TREE_DIV_SUFFIX);
		cur_div.innerHTML='';
	}
	
	//вставляем данные
	// 1. По разделам
	cur_div.innerHTML+=result['razdel'];
	
	// 2. По элементам
	cur_div.innerHTML+=result['item'];
}
