var initListeners = new Array();
var forms;
var comments;
var loginUrl;
var formUrl;
var currentUser = null;
var messages = {};	
var votes = {};
var authForm;
var holder;
var authRedirect = document.location.href;
var xmlParser = new XMLParser();
var activePlayer = null;
	
function flashPlayerInstalled(){
	var playerVersion = deconcept.SWFObjectUtil.getPlayerVersion();
	return playerVersion.major >= 8;
}	
	
	
function init(){
	forms = Form.init();
	for(var i = 0; i < initListeners.length; i++)
		initListeners[i]();
	comments = {};
	var cs = $(".comments-block");
	$(".comments-block").each(function(i, item){
		item = $(item);
		var id = item.attr("id");
		comments[id] = new Comments(id);
		comments[id].init();
		$("#" + id + "-form .close-button").click(function(){
			comments[id].closeForm();
			return false;
		});
		
	});
}

function adminVote(id){
	var vote = $("#" + id);
	$(".vote-admin", vote).click(function(){
		var val = $("[@name=raiting]", vote).val();
		var type  = $("[@name=type]", vote).val();
		var voting = $("[@name=voting]", vote).val();
		var url = $(this).attr("href") + "?vote=" + val + "&voting=" + voting + "&type=" + type;
		$.get(url);
		votes[id].setRaiting(val);
		return false;
	});
}

function onAddComment(data, fields)
{
	var id = fields.id.replace("-form", "");
	var parentId = 0;
	var d = data.comment[0];
	if(d.parentId != undefined)
		parentId = d.parentId;
	var screen = d.screen == "true";
	var awatarId = 0;
	if(d.awatar){
		var obj = d.awatar[0].resizes[0].map;
		for(var i = 0; i < obj.length; i++)
		if(obj[i].name == "awatarBig"){
			awatarId = obj[i].imageResize[0].id;
		}
	}
	var data = {onAdd:true, id:d.id, parentId:parentId, text: d.text, count:d.count, date:new Date(), screen:screen, login:d.login, owner:d.userId, displayName:d.displayName, voting:d.votingId, vote:d.vote, raiting:d.raiting, awatarId:awatarId, online:d.online};
	comments[id].initEmptyBlock(data);
	$("textarea", $("#" + id + "-form")).val("");
	forms[id + "-form"].loadingSwitch(false);
}

function getMessage(m){
	return messages[m];
}

function getBodyScrollTop(){
	return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
}

function getClientHeight(){
	return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientHeight:document.body.clientHeight;
}

function getClientCenterY(){
	return parseInt(getClientHeight()/2)+getBodyScrollTop();
}

function openPopUp(url,w,h){
	if($.browser.msie)
    	window.open(url,'_blank','width='+(w + 18)+',height='+h+',copyhistory=no,directories=no,menubar=no,location=no,resizable=no,scrollbars=yes');
    else
    	window.open(url,'_blank','width='+(w)+',height='+h+',copyhistory=no,directories=no,menubar=no,location=no,resizable=no,scrollbars=yes');
    return false;
}


function openUrl(url, width, height, scroll){
	if(!scroll)
		window.open(url, 'page', 'width=' + width + ',height=' + height + ',copyhistory=no,directories=no,menubar=no,location=no,resizable=no,scrollbars=no');
	else
		window.open(url, 'page', 'width=' + width + ',height=' + height + ',copyhistory=no,directories=no,menubar=no,location=no,resizable=no,scrollbars=yes');
}

function checkIE()
{
	return $.browser.msie;
}

function checkFirefox()
{
	return $.browser.mozilla ;
}

$.fn.offsetTop = function() {
	var e = this.get(0);
	if(!e.offsetParent) return e.offsetTop;
	return e.offsetTop + $(e.offsetParent).offsetTop();
};

$.fn.offsetLeft = function() {
	var e = this.get(0);
	if(!e.offsetParent) return e.offsetLeft;
	return e.offsetLeft + $(e.offsetParent).offsetLeft();
};

function getDate(d){
	var day = "" + d.getDate();
	if(day.length == 1)
		day = "0" + day;
	var month = "" + (d.getMonth() + 1);
	if(month.length == 1)
		month = "0" + month;
	return day + "." + month + "." + d.getFullYear();
}

function initHolder()
{
	holder = new Holder();
}

function initAuth()
{
	$("#autoriz").click(function(){
		initAuthPanel();
		return false;
	});
}
function initSearch(){
	$("#search").click(function(){
		holder.setContent("searchPanel");
		holder.afterInit = searchTag;
		holder.show();
		holder.initClose();
		return false;
	});
	
}
function initAuthPanel()
{
	delete authForm;
	holder.setContent("authPanelContainer");
	holder.afterInit = initAuthForm;
	holder.show();
	holder.initClose();
}

function initAuthForm()
{
	var c = holder.getContent();
	$(".auth", c).attr("id", "authForm");
	$("#remember", c).attr("id", "rmbr");
	var authForm = new Form("authForm");
}

function searchTag(){
	var c = holder.getContent();
	$("#blogsc", c).attr("id", "blc");
	$("#photosc", c).attr("id", "phc");
	$(".ok-button", c).click(function(){
		if ($("[@name=searchText]", c).val()!='')
		{
			//document.location.href = '/' + $(":checked", c).val() + '/tags/' + $("[@name=searchText]", c).val();
			document.location.href = '/blogs/tags/' + $("[@name=searchText]", c).val();
		}
		else{ 
			$(".error-messege", c).css({visibility:"visible"});
		}	
		return false;
	});
}

function openPopUp(url,w,h)
{
	if($.browser.msie)
    	window.open(url,'_blank','width='+(w + 18)+',height='+h+',copyhistory=no,directories=no,menubar=no,location=no,resizable=no,scrollbars=yes');
    else
    	window.open(url,'_blank','width='+(w)+',height='+h+',copyhistory=no,directories=no,menubar=no,location=no,resizable=no,scrollbars=yes');
    return false;
}

function deleteImage(url, target){
	$.get(url);
	$("#" + target + " img").attr("src", '/media/images/pix.gif');
}

function initSlideShow(){
	/*
	$(".slideShow").each(function(i, item){
		var str = $.trim($(".annotation" ,$(item)).html());
		if(str != "")
		{
			var ids = str.split(",");
			var count = ids.length - 1;
			if(count < 0)
				return;	
			var img = $("img" ,$(this));
			var interval = Math.floor(img.width()/count);
			var def = img.attr("src");
			img.bind("mousemove", {def:def}, function(e){
				var n = Math.floor((e.clientX - img.offsetLeft()) / interval);
				if(n > count - 1)
					n = count - 1;
				if(!isNaN(ids[n]))
				{
					var a = img.attr("src").split("/");
					var id = a[a.length - 1].replace(".jpg", "");
					if(id != ids[n])
					{
						img.attr("src", "/media/images/uploaded/" + ids[n] + ".jpg");
					}
				}
			});
			img.bind("mouseout",{def:def}, function(e){
				img.attr("src", e.data.def);
			});
		}
	});
	*/
}

function overMenu(){
	$(".bigMenu").each(function(i, item){
		$("img", item).mouseover(function(){
			$(item).css({display: "none"});
			$(item).next().css({display: "block"});
		});
	});
	$(".bigMenuActive").each(function(i, item){
		$("img", item).mouseout(function(){
			$(item).css({display: "none"});
			$(item).prev().css({display: "block"});
		});
	});
}

function addMultiPost(url, onHandler){$.get(url, onHandler);}

function sendRequest(url, onHandler){$.get(url, onHandler);}

function createUploader(container, targetId, url, callback){
	var so = new SWFObject("/media/flash/uploader.swf", "uploaderSWF" + container, "150", "10", "8", "#fff");
	so.addParam("wmode", "opaque");
	so.addVariable("targetId", targetId);
	so.addVariable("uploadUrl", url);
	so.addVariable("callBack", callback);
	so.addVariable("maxFileSize", 600*1024*1024);
	so.addVariable("color1", "0xdddddd");
	so.addVariable("color2", "0x999999");
	so.addVariable("color3", "0xcccccc");
	so.addVariable("browseHandler", "browse");
	so.addVariable("cancelHandler", "onCancelUpload");
	so.addVariable("multi", false);
	so.write(container);
	var b = $("#" + container + "_button");
	b.append("<img src='/media/images/buttons/upload_file.jpg' alt='' class='uploadbutton' />");
	var img = $("img", b);
	img.click(function(){
		var o = document.getElementById("uploaderSWF" + container);
		o.browse();
	});
}

function createPlayer(container, postVideo, type){
	var url = "/embed/video";
	if(type == "multi")
		url = "/embed/multi/video";
	if(type == "crossover")
		url = "/embed/crossover/video";
	var so = new SWFObject("/media/flash/videoplayer.swf?version=2", "playerVideoSWF" + container, "391", "330", "8", "#FFFFFF");
	so.addParam("wmode", "opaque");
	so.addParam("allowFullScreen", "true");
	so.addVariable("dataUrl", url + '?id=' + postVideo)
	so.addVariable("musicPlayer", "false")
	so.addVariable("embedPlayer", "false")
	so.write(container);
}

function sendRequest(url, data, callback){
	if(callback != null)
		$.get(url, data, callback);
	else
		$.get(url, data);
}

function onPlayerEvent(stop, id){
	var item = document.getElementById(id);
	if(activePlayer == null)
	{
		activePlayer = item;
		return;
	}
	if(!stop)
	{
		activePlayer.stopFromJava();
		activePlayer = item;
	}
}

function playCallBack(id){
	onPlayerEvent(false, id);
}

function stopCallBack(id){
	onPlayerEvent(true, id);
}

function creatMiniPlayer(container, c, w){
	var con = $("." + c, $("#" + container));
	con.each(function(i, item){
		item = $(item);
		var img = $("img",item);
		if(img.attr("src") != "/media/images/na.gif"){
			item.click(function(){
				var img = $("img" ,item);
				var src = img.attr("src")=="/media/images/play.gif"?"/media/images/stop.gif":"/media/images/play.gif";
				$(".buttonPlay").attr("src", "/media/images/play.gif");
				img.attr("src", src);
				var duration = $("input[@name=duration]", item).val();
				var link = $("input[@name=link]", item).val();
				if(activePlayer != null)
					activePlayer.empty();
				if(src=="/media/images/stop.gif")
					inpFlash($(".miniplayer",item).attr("id"), {duration: duration, link: link}, w);
				else
					$(".miniplayer",item).empty()
				activePlayer = $(".miniplayer",item);
				return false;
			});
		}
	});
}

function creatMiniPlayerIndex(container, c){
	var con = $("." + c, $("#" + container));
	con.each(function(i, item){
		item = $(item);
		var img = $("img",item)
		item.click(function(){
			var img = $("img" ,item);
			var src = img.attr("src")=="/media/images/play.jpg"?"/media/images/stop.jpg":"/media/images/play.jpg";
			$(".buttonPlay").attr("src", "/media/images/play.jpg");
			img.attr("src", src);
			var duration = $("input[@name=duration]", item).val();
			var link = $("input[@name=link]", item).val();
			if(activePlayer != null)
				activePlayer.empty();
			if(src=="/media/images/stop.jpg")
				inpFlash2("miniplayerMain", {duration: duration, link: link});
			else
				$("#miniplayerMain").empty()
			activePlayer = $("#miniplayerMain");
			return false;
		});
	});
}
	
function inpFlash(id, obj, w){
	var so = new SWFObject("/media/flash/miniplayer.swf", "miniplayerSWF" + id, "100%", "2", "8", "#ddd");
	so.addParam("wmode", "opaque");
	so.addVariable("link", obj.link);
	so.addVariable("autoPlay", "true");
	so.addVariable("w", w);
	so.addVariable("title", "a");
	so.addVariable("id", "miniplayerSWF" + id);
	so.addVariable("duration", obj.duration);
	so.addVariable("playCallBack", "playCallBack");
	so.addVariable("stopCallBack", "stopCallBack");
	so.write(id);
}

function inpFlash2(id, obj){
	var so = new SWFObject("/media/flash/miniplayer.swf", "miniplayerSWF" + id, "1", "1", "8", "#ffffff");
	so.addParam("wmode", "opaque");
	so.addVariable("link", obj.link);
	so.addVariable("autoPlay", "true");
	so.addVariable("title", "");
	so.addVariable("w", 0);
	so.addVariable("id", "miniplayerSWF" + id);
	so.addVariable("duration", obj.duration);
	so.addVariable("playCallBack", "playCallBack");
	so.addVariable("backgroundColor", "#ffffff");
	so.addVariable("progressColor", "#ffffff");
	so.addVariable("stopCallBack", "stopCallBack");
	so.write(id);
}

function onTrackClick(event){
	if(!confirm("Вы действительно хотите удалить?"))
		return false;
	var url = event.data.url;
	var refreshUrl = event.data.refreshUrl;
	var postId = event.data.postId;
	$.get(url, function(){
		document.location.href = document.location.href;
	});
	return false;
}

function initCompetionTracks(parentId, type, url, refreshUrl){
	$("[@class^=delete-"+type+"-]").each(function(){
		var id = $(this).attr("class");
		id = id.replace("delete-"+type+"-", "");
		$(this).attr("href", refreshUrl);
		$(this).bind("click", {url: url + "?id=" + id+"&postId="+ parentId, refreshUrl: refreshUrl, postId: parentId}, onTrackClick);
	});
}

