var login;

function look(div, val){
	document.getElementById(div).innerHTML = val;
}

// Возвращает высоту доступного в окне браузера пространства
function getlnsideWindowHeight() {
	if (window.innerHeight) {
		return window.innerHeight;
	} else {
		return document.body.parentElement.clientHeight;
	}
	return 0;
}
function getlnsideWindowWidth() {
	if (window.innerWidth) {
		return window.innerWidth;
	} else {
		return document.body.parentElement.clientWidth;
	}
	return 0;
}

///seek///
var search,
	search_in = false;
function seeker(val, box){
	if(val.indexOf("@")!= -1 && val.indexOf(":")!= -1){
		var coords,
			i;
		coords = val.replace(/:/, "&");
		coords = coords.replace(/:/, "&");
		coords = coords.slice(3);
		for (i=map.level; i>val.charAt(1); i--) {
			map.zoom = map.zoom / 2;
		}
		map.level = val.charAt(1);
		map.zooming();
		map.update();
		map.UpdateSize();
		map.setCenter(coords,1);

	}else{
		search = val;
		search_in = box;
		if (search_in) {
			map.getObjects();
		}
		else {
			hideCatList(true);
		}
	}

}
function resetSeeker(){
	document.seek.seek.value = "";
	document.seek.box.checked = false;
	search = '';
	search_in = false;
	map.getObjects();
}
//this.setCenter(initx+"&"+inity)


//show-hide info/////


var frameInfo = {
	infodiv : document.getElementById("info"),
	content : document.getElementById("content"),
	textinfo : document.getElementById("textinfo"),
	title : document.getElementById("title"),
	icons : document.getElementById("title").getElementsByTagName("img"),
	overmapHeight : document.getElementById("overmap").style.height,
	restored : false
};


function hideinfo(s){
	if(frameInfo.restored && !s){	
		document.getElementById("overmap").style.height = frameInfo.overmapHeight;
		frameInfo.infodiv.style.height = "140px";
		frameInfo.content.style.height = "112px";
		map.deltabot = 140;
		frameInfo.icons[0].style.display = "block";
		frameInfo.icons[1].style.display = "block";
		frameInfo.icons[2].style.display = "none";
	    frameInfo.icons[3].style.display = "block";

		if(mini){mini.showMe();}

		document.getElementById("coords").style.display = "block";
		map.resizeWin();
		return;
	}
    if(map.deltabot == 140 || s){
		frameInfo.infodiv.style.height = "27px";
		frameInfo.content.style.display = "none";
		map.deltabot = 27;
		frameInfo.icons[0].style.display = "none";
		frameInfo.icons[1].style.display = "block";
		frameInfo.icons[2].style.display = "none";
	    frameInfo.icons[3].style.display = "block";
	}
    else if(map.deltabot == 232){
		frameInfo.infodiv.style.height = "140px";
		frameInfo.content.style.height = "112px";
		map.deltabot = 140;
		frameInfo.icons[0].style.display = "block";
		frameInfo.icons[1].style.display = "block";
		frameInfo.icons[2].style.display = "none";
	    frameInfo.icons[3].style.display = "block";
	}
		if(mini){
			mini.showMe();
		}

		document.getElementById("coords").style.display = "block";
	frameInfo.restored = false;
	map.resizeWin();
  }
function showinfo(){	
	frameInfo.restored = false;
	if(map.deltabot == 27){
		frameInfo.infodiv.style.height = "140px";
		frameInfo.content.style.display = "block";
		frameInfo.content.style.height = "112px";
		map.deltabot = 140;
		frameInfo.icons[0].style.display = "block";
		frameInfo.icons[1].style.display = "block";
		frameInfo.icons[2].style.display = "none";
		frameInfo.icons[3].style.display = "block";
	}
    else if(map.deltabot == 140){
		frameInfo.infodiv.style.height = "232px";
		frameInfo.content.style.height = "204px";
		map.deltabot = 232;
		frameInfo.icons[0].style.display = "block";
		frameInfo.icons[1].style.display = "none";
		frameInfo.icons[2].style.display = "block";
	    frameInfo.icons[3].style.display = "block";
	}
	if(mini){
		mini.showMe();
	}
		
	document.getElementById("coords").style.display = "block";
	map.resizeWin();
}
function restore(){
	frameInfo.infodiv.style.position = "relative";
	frameInfo.content.style.display = "block";
	frameInfo.infodiv.style.height = getlnsideWindowHeight()-101+"px";
	frameInfo.infodiv.style.backgroundColor = "#282826";
	frameInfo.infodiv.style.zIndex = 100;	
	frameInfo.content.style.height = getlnsideWindowHeight()-129+"px";
//	document.getElementById("mini").style.display = "none";
	document.getElementById("coords").style.display = "none";

	mini.hide();
	map.deltabot = getlnsideWindowHeight()-101;
	map.resizeWin();
//	document.getElementById("overmap").style.height = 0;
//	document.getElementById("overmap").style.display = "none";
//	alert(parseInt(frameInfo.overmapHeight))
//	frameInfo.infodiv.style.marginTop = "-500px";//"-"+parseInt(frameInfo.overmapHeight)+"px";
	frameInfo.icons[0].style.display = "block";
	frameInfo.icons[1].style.display = "none";
	frameInfo.icons[2].style.display = "block";
    frameInfo.icons[3].style.display = "none";
	frameInfo.restored = true;
	return false;
}

function resizeBrowser(){
	if (frameInfo.restored) {
		frameInfo.infodiv.style.height = getlnsideWindowHeight() - 101 + "px";
		frameInfo.content.style.height = getlnsideWindowHeight() - 129 + "px";
		map.deltabot = getlnsideWindowHeight() - 101;
		map.resizeWin();
	}
}

function message(text,p){
	var messageBox = document.getElementById("message");
	messageBox.style.left = (map.scrmapw/2) - (map.deltaleft/2) - (messageBox.offsetWidth/2)+"px";
	messageBox.style.top = (map.scrmaph/2) - (map.deltatop/2) - (messageBox.offsetHeight/2)+"px";
 /*	messageBox.getElementsByTagName("p")[0].style.backgroundColor = "#FEFEFE";
	messageBox.getElementsByTagName("p")[0].style.color = "#000";
	messageBox.getElementsByTagName("p")[0].innerHTML = text;   */
	messageBox.getElementsByTagName("div")[1].innerHTML = text;
	document.getElementById("xx").style.display = "inline";
	if (navigator.appName.indexOf('Microsoft') != -1) {
		document.getElementById("cox").style.display = "none";
	}
	if(p==1){
		document.getElementById("xx").style.display = "none";
		if (navigator.appName.indexOf('Microsoft') != -1) {
			document.getElementById("cox").style.display = "inline";
		}
	}
   //	<a class="but" onclick="this.parentNode.style.display = 'none'">закрыть</a>
	messageBox.style.display = "block";
}

function getMistake(id){
	formas.show('mis', id);
}

function getObjLink(div){
	var id,str;
	
	id = div.getElementsByTagName("p")[0].innerHTML.substr(4);

	if (checkFlash()) {
		str = ["<span title='Скопировать ссылку в буфер'>Ссылка на объект: <object id='clip' classid='clsid:d27cdb6e-ae6d-11cf-96b8-444553540000' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0' width='162' height='16'><param name='allowScriptAccess' value='sameDomain' /><param name='flashvars' value='url=http://", location.host, "/?object=", id,"%26l=",map.level,"'><param name='allowFullScreen' value='false' /><param name='movie' value='/images/clipboard.swf' /><param name='quality' value='high' /><embed src='/images/clipboard.swf' quality='high' width='162' height='16' flashvars='url=http://", location.host, "/?object=", id, "%26l=",map.level,"' allowScriptAccess='sameDomain' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' /></object></span>"].join("");
	}else{
		str = "Ссылка на объект<p style='background-color:#fff;color:#000;text-align:center;'>http://"+location.host+"/?object="+id+"&amp;l="+map.level+"</p>";
	}
	message(str);
}

/////voting/////////
function givevote(i){	
	var id,ids;
	id = document.getElementById('title').getElementsByTagName('p')[0].innerHTML;
	id = parseInt(id.slice(4),10);
	ids = Get_Cookie('vote');
	if(ids!==null){
		if(ids.match(id)===null){
			ids+=","+id;
            message(words.goodvote);			
			}
		else{
            message(words.badvote);
			return;
			}
        }
	else{
		ids = id;
		}
	setcookie("vote",ids);
	showObjectId(id, i);
}
function voteinit(){
	var vote0,
		vote1,
		i;
	vote0 = document.getElementById("vote0");
	vote1 = document.getElementById("vote1");
	if (vote0 === null || vote1 === null) {
		return;
	}
	votes0 = vote0.getElementsByTagName("div");
	votes1 = vote1.getElementsByTagName("div");
	for (i=0; i<votes0.length; i++){
		votes0[i].onmouseover = flashvotes;
		votes0[i].onclick = function(){givevote(this.id);};
	}
}

function showObjectId(id_object, vote){	
	var url,
		func;
	if (!id_object) {
		return;
	}
	document.getElementById("objLink").style.display = "inline";
	load_start('content');
	url = "/objects/id/"+id_object+"/";
	if (typeof(vote) != 'undefined') {
		url = url + "/?vote=" + vote;
	}
	func = function(responseText, responseJS){
		document.getElementById('content').innerHTML = responseText;
		document.getElementById('title').getElementsByTagName('h3')[0].innerHTML = responseJS.adress;
		document.getElementById('title').getElementsByTagName('p')[0].innerHTML = "ID: "+responseJS.id;
		if (map.deltabot == 27) {
			showinfo();
		}
	 	voteinit();
	};
	loadHTML(url, func);
	/*если в строке "+" открыть окно*/
	if (window.location.href.indexOf("+") > 0) {
		restore();
	}
	return false;
}

var votes;
function setcookie(name,value){
	var today,expires,expires_date;
	today = new Date();
	today.setTime(today.getTime());
	expires = 1000 * 60 * 60 * 24 * 365;
	expires_date = new Date( today.getTime() + (expires) );
	document.cookie = name + "=" + escape(value) + ";expires=" + expires_date;
}


function Get_Cookie(name){
	var start,end,len;
	
	start = document.cookie.indexOf(name + "=");
	len = start + name.length + 1;
	if ((!start) && (name != document.cookie.substring(0, name.length))) {
		return null;
	}
	if (start == -1) {
		return null;
	}
	end = document.cookie.indexOf(";", len);
	if (end == -1) {
		end = document.cookie.length;
	}
	return unescape(document.cookie.substring(len, end));
}

function flashvotes(){
	var i,k;
	for (i=0; i<votes0.length; i++){
		votes1[i].style.backgroundColor = "#6F6F6F";
	}
	for (k=0; k<this.id.charAt(1); k++){
		votes1[k].style.backgroundColor = "#ccc";
	}
}

////////////////////


//var all = new Main();
//all.show();


var count = 1;

/*if (!window.XMLHttpRequest) {
	count = 1;
}*/

var zoom = new Zoom(count);

var cursor = new Cursor();

var cats = [];

for (var key in icons) {
	cats[key] = new Icon(icons[key]);
	cats[key].create();
}
//var catList = new CatList();
//catList.show();

// выводим кол-во объектов
try {
	if (objects_count) {
		var count_div = document.createElement("p");
		count_div.id = 'allobj';
		document.getElementById("catlist").appendChild(count_div);
		count_div.innerHTML = "всего объектов в базе: " + objects_count;
	}
}catch(e){}


document.boxes.photos.checked = (Get_Cookie('photos') === null)? show_photos : (Get_Cookie('photos') === 'true');
document.boxes.stickers.checked = (Get_Cookie('stickers') === null)? show_stickers : (Get_Cookie('stickers') === 'true');
document.boxes.pans.checked = (Get_Cookie('pans') === null)? show_pans : (Get_Cookie('pans') === 'true');



//document.boxes.photos.checked = (Get_Cookie('photos')=='true') ? true : false;
//document.boxes.stickers.checked = (Get_Cookie('stickers')=='true') ? true: false;

var map = new Map("overmap", constants.max_coord_x - constants.min_coord_x, (constants.max_coord_y - constants.min_coord_y), 400);
map.resizeWin();
map.show();

hideinfo(1);


var mini = new MiniMap(150,150);
mini.show();

var zoomer = new Zoomer(10,10);
zoomer.create();

var contextmenu = new ContextMenu();
contextmenu.create();

var formas = new Form();

var allinfo = new Info();

//var curtime  = setInterval("cursor.check()",500);

//map.getObjects();   // при загрузке страници вызвается в map.setCenter;


BannerTimer("ban2",2);
BannerTimer('ban3',3);
BannerTimer('ban4',1);

function detectEvent(e) {
	var evt = e || window.event;
	if(evt.keyCode==16){
		map.map.onclick = map.right;
	}
}

document.onkeydown = detectEvent;

/* Initialization code. колесо мыши*/
if (window.addEventListener) {
	document.getElementById("overmap").addEventListener('DOMMouseScroll', zoom.wheel, false);
}
document.getElementById("overmap").onmousewheel = document.getElementById("overmap").onmousewheel = zoom.wheel;


function thisMovie(movieName) {
        if (navigator.appName.indexOf("Microsoft") != -1) {
            return window[movieName];
        } else {
            return document[movieName];
        }
    } 
function copyToClipboard(text2copy) {
	thisMovie("clipboard").sendToActionScript(text2copy);
}

	if(typeof(marker) != "undefined"){
 /*		var allnfo = []
		allnfo.name = marker.name;
		allnfo.author = marker.author;
		allnfo.dsc = marker.dsc;
		allnfo.date = marker.date;       */

        var allnfo = {name:marker.name, author:marker.author, dsc:marker.dsc, date:marker.date};
		map.setCenter(marker.x+"&"+marker.y);
		map.createMark(marker.x, marker.y, allnfo);
	}
	
	if(typeof(object_info) != "undefined"){
		//var allnfo = object_info
		//allnfo.category = object_info.category.split(",");
	//	map.setCenter(object_info.x+"&"+object_info.y);	

		showObjectId(object_info.id);
		//map.createObject(object_info.x,object_info.y,allnfo)
	}
	if (typeof(pan_info) != "undefined") {	
		
		var allnfo = [];

		allnfo.id_pan = pan_info.id;
		allnfo.name = pan_info.name;
		allnfo.author = pan_info.author;
		allnfo.dsc = pan_info.dsc;
		allnfo.email = pan_info.email;
		allnfo.date = pan_info.date;
		allnfo.img_small = pan_info.img_small;
		allnfo.width = pan_info.w;
		allnfo.height = pan_info.h;
		allnfo.type = pan_info.type;
		allnfo.img_big = pan_info.img_big;
		allnfo.img_big_noflash = pan_info.img_big_noflash;
		allnfo.img_biggest = pan_info.img_biggest;
		allnfo.last = pan_info.last;
		allnfo.img_count = pan_info.num_view;	
		
		
	//	map.addpan(pan_info["x"],pan_info["y"],allnfo);
		allinfo.setInfo(allnfo.id_pan, allnfo);
		allinfo.panBig();
	}
	if (typeof(photo_info) != "undefined") {
		
		var allnfo = [];	

		allnfo.id_photo = photo_info.id;
		allnfo.name = photo_info.name;
		allnfo.author = photo_info.author;
		allnfo.dsc = photo_info.dsc;
		allnfo.date = photo_info.date;
		allnfo.img_big = photo_info.img_big;
		allnfo.img_biggest = photo_info.img_biggest
		allnfo.img_count = photo_info.num_view;			
		
	//	map.addpan(pan_info["x"],pan_info["y"],allnfo);
		allinfo.setInfo(allnfo.photo_info, allnfo);
		allinfo.photoBig();
	}

//showObjectId(721);

function M(){
		var D = "undefined",
		S = "Shockwave Flash",
		W = "ShockwaveFlash.ShockwaveFlash",
		q = "application/x-shockwave-flash",
		R = "SWFObjectExprInst",
		x = "onreadystatechange",
		O = window,
		r = "object",
        aa = typeof document.getElementById != D && typeof document.getElementsByTagName != D && typeof document.createElement != D, 
		ah = navigator.userAgent.toLowerCase(), 
		Y = navigator.platform.toLowerCase(), 
		ae = Y ? /win/.test(Y) : /win/.test(ah), 
		ac = Y ? /mac/.test(Y) : /mac/.test(ah), 
		af = /webkit/.test(ah) ? parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, X = !+"\v1", 
		ag = [0, 0, 0], 
		ab = null;
		
        if (typeof navigator.plugins != D && typeof navigator.plugins[S] == r) {
            ab = navigator.plugins[S].description;
            if (ab && !(typeof navigator.mimeTypes != D && navigator.mimeTypes[q] && !navigator.mimeTypes[q].enabledPlugin)) {
                T = true;
                X = false;
                ab = ab.replace(/^.*\s+(\S+\s+\S+$)/, "$1");
                ag[0] = parseInt(ab.replace(/^(.*)\..*$/, "$1"), 10);
                ag[1] = parseInt(ab.replace(/^.*\.(.*)\s.*$/, "$1"), 10);
                ag[2] = /[a-zA-Z]/.test(ab) ? parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0
            }
        }
        else {
            if (typeof O.ActiveXObject != D) {
                try {
                    var ad = new ActiveXObject(W);
                    if (ad) {
                        ab = ad.GetVariable("$version");
                        if (ab) {
                            X = true;
                            ab = ab.split(" ")[1].split(",");
                            ag = [parseInt(ab[0], 10), parseInt(ab[1], 10), parseInt(ab[2], 10)]
                        }
                    }
                } 
                catch (Z) {
                }
            }
        }
        return {
            pv: ag,
            ie: X
        }
    }


function checkFlash(){
	var Y = M().pv,
		X = [9,0,45];
    X[0] = parseInt(X[0], 10);
    X[1] = parseInt(X[1], 10) || 0;
    X[2] = parseInt(X[2], 10) || 0;
    return (Y[0] > X[0] || (Y[0] == X[0] && Y[1] > X[1]) || (Y[0] == X[0] && Y[1] == X[1] && Y[2] >= X[2])) ? true : false
}

