function showSmModal(me,cfg)
{
	me.css('top',($(document).scrollTop()+150)+'px');
	cfg.onSize=function (me)
	{
		var doc=$(document);
		me.css('top',
			$(document).scrollTop()+($(window).height() - me.height() )/2
			);
	}

}
function msgBox(text,arg2)
{
	var params=
		{
			button:'OK',
			btnWidth:'25px'
		};
	params=jQuery.extend(params,arg2)

	var back=$('.uploadPhotosGrayBg');
	var block;
	var removeAll=function ()
	{back.hide();block.hide();}
	block=$('.msgBoxTop');
	if(back.length==0)
	{
		back=$('<div class="uploadPhotosGrayBg"></div>'+
'<div class="msgBoxWrapper"><div class="msgBoxWrapper2"><div class="msgBoxBottom"></div>'+
'<div class="msgBoxTop"></div></div></div>');
		$('body').append(back);
		back=$('.uploadPhotosGrayBg');
		back.css('opacity',50/100);

		block=$('.msgBoxTop');
		$('.uploadPhotosGrayBg').click(removeAll);
	}
	else
	{back.show();block.show();}
	if(typeof(text)=='Object')
	{
		block.empty().append(text);
	}
	else
		block.html(text);
	if(params.fixed)
		$('.msgBoxWrapper').css({
			position:'fixed',
			top:params.fixed
			});
	else
		$('.msgBoxWrapper').css({
			position:'fixed',
			top:'250px'
			});

	if(params.css)
		block.css(params.css);
	var b=block.find('.msgBoxButton');
	if(!b.length)
	{
		block.append('<div class="msgBoxButton" style="width:'+params.btnWidth+'">'+
			params.button+'</div>')
	}
	$('.msgBoxTop .msgBoxButton').click(
			function(){removeAll(); return false;} );
	b.text(params.button);
}
ajaxInterestSender = function(obj,id,stateGo){
	var oData={
			'sys':'userInter',
	    	'id'    : id,
	    	'st'   : ((stateGo==true)?1:0)
		};
    jQuery.get (
		"/yesno.php",
		oData,
	    function (s)
		{
			s=jQuery.trim(s);
			if (s.length)
			{
			//alert(s);
			}
		}
	);
}

jsMenuScroll = function(){
	var jsMenuScrolling = function(delta, scrollTable){
		if ( delta > 0 ){
			if( parseInt(scrollTable.css('left')) >= -50 ){
				scrollTable.css({'left': '0px'});
			}else{
				scrollTable.css({'left':  ( parseInt(scrollTable.css('left')) + 50 ) + 'px' });
			}
		}else{
			if( parseInt(scrollTable.css('left')) <= 620 - scrollTable.width() + 50 ){
				scrollTable.css({'left': (620 - scrollTable.width())+'px'});
			}else{
				scrollTable.css({'left':  ( parseInt(scrollTable.css('left')) - 50 ) + 'px' });
			}
		}
		return false;
	}
	var scrollPane = $('.scroll-pane');
	scrollPane.wrap('<div class="jScrollPaneContainer"></div>').prepend('<span class="jScrollArrowLeft"></span>').append('<span class="jScrollArrowRight"></span>');
	var jScrollPaneContainer = scrollPane.parent();
	var scrollTable = scrollPane.find('table');
	jScrollPaneContainer.find('span.jScrollArrowLeft').click(function(){ jsMenuScrolling(1, scrollTable) });
	jScrollPaneContainer.find('span.jScrollArrowRight').click(function(){ jsMenuScrolling(-1, scrollTable) });
	//scrollTable.mousewheel(function(){  });
	scrollPane.bind('mousewheel', function(event, delta) {
		jsMenuScrolling(delta, scrollTable);
		return false;
	});
}
jsMetroScroll = function(){
	var maxHeight=400;
	var step=50;
	var object; // чего крутим
	var container; // внутри чего
	object = $('.metroList');

	var func = function(delta){
		if(object.css('top')=='auto')
		{
			object.css({'top': '0px'});
		}
		if ( delta >= 0 ){
			if( parseInt(object.css('top')) >=0   ){
				object.css({'top': '0px'});
			}else{
				object.css({'top':  ( parseInt(object.css('top')) + step ) + 'px' });
			}
		}else{ // едем вниз - увеличиваем смещение
			if( parseInt(object.css('top')) <= maxHeight - object.height() - step ){
				object.css({'top': (maxHeight - object.height() - step  )+'px'});
			}else{
				object.css({'top':  ( parseInt(object.css('top')) - step ) + 'px' });
			}
		}
		return false;
	}
	object
	 .css({'position':'relative'})
	 .wrap('<div style="max-height:'+maxHeight+'px; overflow:hidden;"class="jScrollPaneContainer"></div>');
	container = object.parent();
	container
	 .before('<div class="jScrollArrowUp" style="height:20px;"><img style="left:-4px;top:8px;position:relative;" src="/images/upbutt.png" style="position:relative;top:4px;"></div>')
	 .after('<div class="jScrollArrowDown"><img style="left:-4px;top:5px;position:relative;" src="/images/downbutt.png"></div>');

	container.prev('div.jScrollArrowUp')
	 .click(function(){ func(2); })
//	 .find('a').click(function(){ func(1);return false; })
	;
	container.next('div.jScrollArrowDown')
	 .click(function(){ func(-2); })
//	 .find('a').click(function(){ func(-1); return false; })
	;
	var fw=function(event, delta)
	{
		event.stopImmediatePropagation();
		event.stopPropagation();
		event.preventDefault();
		func(delta);
		return false;
	};
	object.parent().bind('mousewheel', fw);
	object.bind('mousewheel', fw);
}
function array_search( needle, haystack, argStrict ) {
    // Searches the array for a given value and returns the corresponding key if successful
    //
    // version: 903.421
    // discuss at: http://phpjs.org/functions/array_search
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: Brett Zamir
    // +   bugfixed by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: array_search('zonneveld', {firstname: 'kevin', middle: 'van', surname: 'zonneveld'});
    // *     returns 1: 'surname'

	var strict = !!argStrict;
    var key = '';

    for(key in haystack){
        if( (strict && haystack[key] === needle) || (!strict && haystack[key] == needle) ){
            return key;
        }
    }

    return false;
}
function monthDays(date)
{
	if((date.getMonth() == 3) || (date.getMonth() == 5) || (date.getMonth() == 8) || (date.getMonth() == 10))
		return 30;
	if(date.getMonth()  == 1)
	{
		if ((date.getYear()%4 == 0)&&( (date.getYear()%100 != 0) || (date.getYear()%400 == 0) ))
			return 29;
	   	else
			return 28;
	}
  	return 31;
}

function makeErrorBox(on,s)
{
	initVmTooltip(s);
	var e=on.offset();
	e.pageX=e.left+on.width()/3;
	e.pageY=e.top;
	moveVmTooltip(e);
	setTimeout(
function(){$('#vmTooltip').css({left: '-10000px', top: '-10000px'});},5000);
}
function validateRegForm()
{


	var err=true;
	var errMsg={};
	errMsg.my_addr='Вы ошиблись при вводе названия станции';
	function onError(name,val,def,msg)
	{
		err=false;
		var on=$('#'+name);
		on.css('background-color','pink');
		if(errMsg[name])
		{
			var s=errMsg[name];
			makeErrorBox(on,s);
		}else if(msg!=undefined)
		{
			makeErrorBox(on,msg);
		}
		return def;
	}
	function onPreCheck(name)
	{
		$('#'+name).css('background-color','');
	}
	var arr=validate;
	var r;
	var ret={};
	for(var i in arr)
	{
		var obj=$('#'+i);
		var v;
		if(obj.length==0)
			continue;
		v=obj.val();
		onPreCheck(i);
		switch(arr[i].type)
		{
		case 'bool':
//			$ret[$name]=(int)$v>0?true:($v=='on')?true:($v=='true')?true:false;
			r=v;
			break;
		case 'int':
			r=parseInt(v);
			if(isNaN(r))
			{
				r=0;
			}
			if(arr[i]['in'] instanceof Array )
			{
				if(false===array_search(r, arr[i]['in'],false))
					r=onError(i,r,arr[i]['def']);
			}
			else if( typeof(arr[i]['funcJS']) == 'string' )
			{
				//alert(i+' '+typeof(obj)+' '+v+' '+arr[i]['funcJS']);
				var func;
				eval('func= function (t,ret){'+arr[i]['funcJS']+ ' return false;}');
				var tmp=new Array(); tmp[0]=r;
				if(func(tmp,ret))
					r=tmp[0];
				else
					r=onError(i,r,arr[i]['def'],tmp[1]);
			}
			break;
		case 'string':
			r=v.toString();
			if(arr[i]['in'] instanceof Array )
			{
				if(false===array_search(r, arr[i]['in'],false))
					r=onError(i,r,arr[i]['def']);
			}
			else if(arr[i]['more_chars']!= undefined)
			{
				if(v.length<arr[i]['more_chars'])
				r=onError(i,r,arr[i]['def'],'Слишком короткое значение');
			}
			if( typeof(arr[i]['funcJS']) == 'string' )
			{
				//alert(i+' '+typeof(obj)+' '+v+' '+arr[i]['funcJS']);
				var func;
				eval('func= function (t,ret){'+arr[i]['funcJS']+' return false;}');
				var tmp=new Array(); tmp[0]=r;
				if(func(tmp,ret))
					r=tmp[0];
				else
					r=onError(i,r,arr[i]['def'],tmp[1]);
			}
			break;
		}
		ret[i]=r;
		//obj.val(r);
	}
	return err;
}

ajaxIwillgoSender = function(idEvent, stateGo,span,other,counter){
	var oData={
			'sys':'events',
	    	'id'    : idEvent,
	    	'st'   : ((stateGo==true)?1:-1)
		};
	var obj=span;
	var oth=other;
	var cntr=counter;
	obj.addClass("go");
	oth.removeClass("go");
    jQuery.get (
		"/yesno.php",
		oData,
	    function (s)
		{
	       	//$this._loading (e, false);
			s=jQuery.trim(s);
			if (s.length)
			{
				if(s>=0)
				{
					cntr.text(s);
				}
			}
		}
	);
}
var isRegistred=false;

function writeRegistredOnly(){
//alert("!");
window.location='/join.php';
}

function initCalendar(f,b,i)
{

	Zapatec.Calendar.setup({
		firstDay          : 1,
		weekNumbers       : true,
		showOthers        : true,
		showsTime         : true,
		timeFormat        : "24",
		step              : 2,
		range             : [2009.03, 2099.12],
		electric          : false,
		singleClick       : true,
		inputField        : ""+f+i,
		button            : ""+b+i,
		ifFormat          : "%Y-%m-%d %H:%M:%S",
		daFormat          : "%Y/%m/%d",
		align             : "Br"
	});
}

function renumber(t,f,i){
	var t2=t.find('#'+f+i);
	t2.attr("id", ''+f+(i+1));
	return t2;
}

function clone_block(cl)
{
	var t=$('.'+cl+':last');
	var t2=t;
	t=t.clone(true);
	t.insertAfter(t2);
}
function new_inter(obj)
{
	var v=$(obj).val();
	if($('.search_inter').parent().find('select[value='+v+']').size()>1)
		return;
	if($('.search_inter').parent().find('select[value=0]').size()>0)
		return;
	if(v>0)
		clone_block('search_inter');
}


function makeBox(objPos,content)
{
var fb=$("#flyBox");
var ofs=$(objPos).offset()
	fb.css('left',$(objPos).parent().parent().offset().left+5)
	.css('top',ofs.top+$(objPos).parent().height())
	.css('width',$(objPos).parent().parent().width());
	fb.html(content);
	fb.toggle();
}

function pasteToLiveJournal(obj)
{
	var text='';
	if(ev_main_photo.length>0)
		text='<img src="'+ev_main_photo+'" align="right" title="Рейтинг:&nbsp;1&nbsp;из&nbsp;5" />';
	text=text+
	'<p style="background: white; margin:0; padding:0;">'+
	'<a href="'+thisURL+'" style="background: white;">'+
	ev_name+'</a></p>';
	makeBox(obj,'<TEXTAREA  style="width:100%; height:60px;">'+text+'</TEXTAREA>');
}

/* vmTooltip */
moveVmTooltip = function(e){
	var vmTooltip = $('#vmTooltip');
	var vmtWidth = vmTooltip.width();
	var vmtHeight = vmTooltip.height();
	var screenWidth = $(document).width();
	var screenHeight = $(document).height();
	var realLeft, realTop;

	if ( vmtWidth+e.pageX+20 > screenWidth){
		realLeft = screenWidth - vmtWidth - 20;
	}else{
		realLeft = e.pageX+20;
	}
	if ( vmtHeight+e.pageY+20 > screenHeight){
		realTop = screenHeight - vmtHeight - 20;
	}else{
		realTop = e.pageY+20;
	}
	$('#vmTooltip').css({left: realLeft+'px', top: realTop+'px'});
}
initVmTooltip = function(titleText){
	$('#vmTooltipContent').html(titleText);
	var vmTooltipAngle = (Math.PI / 180) * 18;
	var vmTooltip = $('#vmTooltip');
	var vmtLeft = $('#vmTooltip .vmtLeft');
	var vmtRight = $('#vmTooltip .vmtRight');
	var vmTooltipContent = document.getElementById('vmTooltipContent');
	if(!vmTooltipContent)
		return;
	// a = c * tg(A)
	var vmtLeftWidth = Math.round( vmTooltipContent.offsetHeight * Math.tan (vmTooltipAngle) );
	var vmtRightWidth = vmtLeftWidth + 15;
	vmtLeft.css({width: vmtLeftWidth+'px', left: '-'+vmtLeftWidth+'px'});
	vmtRight.css({width: vmtRightWidth+'px', right: '-'+vmtRightWidth+'px'});
	if ($.browser.msie && ( parseInt($.browser.version) <= 6 )){
		vmtLeft.css({height: vmTooltipContent.offsetHeight+'px'});
		vmtRight.css({height: vmTooltipContent.offsetHeight+'px'});
		$('#vmTooltip .wrapFalseBg').css({height: vmTooltipContent.offsetHeight+'px'});
		$('#vmTooltip .vmtContentWrap').css({width: vmTooltipContent.offsetWidth+'px'});
	}
}
/* vmTooltip */
/**
 *
 * @access public
 * @return void
 **/
function reloadVmTooltip()
{
	$('.fInfoImg img[title]')
	.each(function(){
		var defaultTitle = $(this).attr('title');
		$(this).removeAttr('title')
		 .addClass('has-title')
		 .mouseover(function(e){
			initVmTooltip(defaultTitle);
			moveVmTooltip(e);
			$(this).mousemove(moveVmTooltip);
		}).mouseout(function(e){
			$('#vmTooltip').css({left: '-10000px', top: '-10000px'});
			$(this).unbind('mousemove');
		});
	});
	/* vmTooltip */

	jQuery(".eventA")
	 .add(".infoDateTime")
	 .add(".place").each(function(){
		var defaultTitle = $(this).attr('title2');
		if(defaultTitle==undefined)
		{
//			alert(this.tagName+' '+$(this).attr('class'));
			return;
		}
		$(this).removeAttr('title2')
		 .addClass('has-title')
		 .mouseover(function(e){
			initVmTooltip(defaultTitle);
			moveVmTooltip(e);
			$(this).mousemove(moveVmTooltip);
		}).mouseout(function(e){
			$('#vmTooltip').css({left: '-10000px', top: '-10000px'});
			$(this).unbind('mousemove');
		});
	});
}
function initCommentPager()
{
	var o=$('.ev_cmts_pager');
	if(!o.length)
		return;
	if(! $('#data').length)
		return;
	var pl=( $('#data').attr('link')=='/places.php' );

	var data=
	{
		url:$('#data').attr('link')
	};
	if(pl)
	{
		data.act='getCmt';
		data.id=$('#data').attr('pl-id');
	}
	else
	{
		data.action='getCmt';
		data.id=ev_id;
	}

	data.onComplete=function (s)
	{
		var o=$('.comment-wrapper');
		o.children('.comment-place').remove();
		o.children('.comment-shift').remove();
		o.find('.block-title2').after(s);
	};
	$('.ev_cmts_pager a').bind('click',data,pagerClick);
}
function mainInitGo()
{
	$('.rss-feed > a').click(function(){$('.rss-feed > .rss-box').toggle();  return false;});
	$('.rss-feed > .rss-box a').click(function(){$('.rss-feed > .rss-box').hide(); return true});
	$("div.iwillgo>span.block>a").click(function(){return false;});
	$("div.iwillgo_click>span.block>a").click(
		function(){
			if(!isRegistred)
			{
				writeRegistredOnly();
				return false;
			}
		var t = jQuery(this);
		var idEvent =0;
		idEvent = jQuery(t).parents("div.iwillgo").attr("id").substr(3);
		var other=jQuery(t).parents("div.iwillgo").find("span.block").filter(".go");
		var counter=t.parents("div.iwillgo").find("a.strong");
		if(counter.length==0)
		{
			counter=t.parents("div.iwillgo").children("strong");
		}

		var span=jQuery(t).parents("span.block");
		if(span.hasClass('go'))
			return false;

		if ( span.hasClass('true') ){
			var formwrap=span.find('.formWrapper');
			if(formwrap.length)
			{
				if(span.hasClass('go'))
					formwrap.hide();
				else
				{
					var enable=false;
					formwrap.find('form').find('textarea').click(
						function()
						{
						$(this).val('');
						$(this).unbind('click');
						enable=true;
						}
					);
					formwrap.find('.closeButton').click(function(){formwrap.hide(); });
					formwrap.find('form').submit(
						function()
						{
							if(!enable)
								return false;
							var f=$('form[name=cmt-post-reply]');
							var v=$(this).find('textarea').val();
							if(v.length<3)
								return false;
							f.find('textarea').val(v);
							f.find('input[name=CmtParent]').val(0);
							oCmtsEvents.submitComment(f.get(0));
							formwrap.hide();
							return false;
						}
					);

					formwrap.show();
				}
			}
			ajaxIwillgoSender(idEvent, true,span,other,counter);
		}else{
			ajaxIwillgoSender(idEvent, false,span,other,counter);
		}
		return false;
	});
}
function mainInitFunction (){

	jQuery(".interests-line>.item>a").click(
		function (){
			var t=jQuery('#people_form');
			t.find("input").val(jQuery(this).attr('href'));
			t.submit();
			return false;
		}
	);

	$("div.lichkaInterests>span.block>a").click(
		function (){
			var t=jQuery(this).parents("span.block");
			var idEvent = parseInt(t.attr("inter"));
			ajaxInterestSender(t,idEvent,!t.hasClass('go'));
			t.toggleClass('go');
			return false;
		}
	);

	mainInitGo();
//	jQuery("span.getreg a").toggle(function(){
//		jQuery("#getRegistration").css({"display":"block"});
//		jQuery(this).css({"text-decoration":"none"});
//		jQuery("#hdwe45384").css({"display":"inline"});
//		jQuery(".enterSite").css({"display":"none"});
//		return false;
//	}, function(){
//		jQuery("#getRegistration").css({"display":"none"});
//		jQuery(this).css({"text-decoration":"underline"});
//		jQuery("#hdwe45384").css({"display":"none"});
//		jQuery(".enterSite").css({"display":"block"});
//		return false;
//	});
	jQuery("input.clearme").focus(function(){
		if ( jQuery(this).attr("value") == jQuery(this).attr("title") ){
			jQuery(this).attr({"value": ""});
		}
		jQuery(this).css({"background": "white"});
	});
	jQuery("input.clearme").blur(function(){
		if ( jQuery(this).attr("value") == "" ){
			jQuery(this).attr({"value": jQuery(this).attr("title")});
		}
	});
	reloadVmTooltip();
	insertPlayer();
	jsMenuScroll();
	jsMetroScroll();
	initCommentPager();


	$('.info-wrapper .block-title3 img')
	.add('.wrap-column-1 .block-title2 img')
	.mouseover(function(e){
			initVmTooltip("Кликните чтобы открыть весь список");
			moveVmTooltip(e);
			$(this).mousemove(moveVmTooltip);
		}).mouseout(function(e){
			$('#vmTooltip').css({left: '-10000px', top: '-10000px'});
			$(this).unbind('mousemove');
		});

	var showTextBox=function()
	{
		var o=$(this);
		var to=$('.page-main > div.wrap-columns-type3');
		if(to.length==1)
		{
			to=to.children('.wrap-column-1');
		}
		else
		{
			to=$('.page-main > .wrap-columns-type2');
		}
		$.get('/ajax.php',{act:'get_text',data:o.attr('id')},
		function (s){to.html(s);$(document).scrollTop(to.scrollTop() );},
		'html'
		);
		return false;
	};
	$('a#footer-about-us')
	.add('a#footer-contacts')
	 .click(showTextBox);

	/* betaIcon */
	$('#betaTooltipWrap').hover(function(){
		$('#betaTooltipWrap #betaTooltip').fadeIn(400);
	}, function(){
		$('#betaTooltipWrap #betaTooltip').hide();
	})
	/* betaIcon */
}
$(document).ready(mainInitFunction);
