//all pages

/*log*/
function log(a,a1,a2,a3,a4,a5,a6,a7) {
 window.console && window.console.log && window.console.log(a,a1,a2,a3,a4,a5,a6,a7);
}
$.browser.msie6 = $.browser.msie && /MSIE 6\.0/i.test(window.navigator.userAgent) && !/MSIE 7\.0/i.test(window.navigator.userAgent);

function trJs(o){
	o.className += ' js';
}
var bodyLoaded;
window.onload = function(){setTimeout(function() {bodyLoaded = true;}, 0);}

function initOnLoad(els,loadFunction) {  
	var sElementName,oElement;
	sel = new Array();

	for (ii in els){

		sElementName = els[ii];
		oElement = (sElementName == "body") ? document[sElementName] : 
		document.getElementById(sElementName); 

		if(oElement != null && typeof(oElement) != "undefined") {
			loadFunction(oElement); 
		}else{
			sel.push(els[ii])
		}
	}

	if(!bodyLoaded && sel.length) { setTimeout(function() {initOnLoad(sel,loadFunction); }, 0); }
}


initOnLoad(['path-in','fade-menu'],trJs);

document.write('<style type="text/css">\
.voting-res input{position:absolute;top:0;z-index:-99}\
.form-voting .submit{display:none;}'+
( $.browser.msie6 ? '\
.bl1 #fade-menu{display:block;}\
.def-a .sub{display:none!important;}\
' : '' ) + '</style>')



jQuery(document).ready(function() {

	initNavi()
	formsInit();
	
	var alt = $('*[title!=\'\']').find('img').removeAttr('alt').end()
	alt = alt.add('img[alt!=\'\']')
	
	initAlter2(alt,false,false)

})
/**
 * Настойка форм
 */
function formsInit($o,dopFunc){
	
	var f = $o ? $o :$('form');

	if(!f.length) return;

	f.find('.failed:first input').trigger('focus');

	var $defs = f.find('.f_labeled');
	var $defsEls = $('input:last,textarea',$defs);
	var $defsLabl = $('label',$defs);

//	$defsEls.blur()
//	$defsEls.bind('focus',focusFunc).bind('blur',blurFunc)
//	.each(initFunc)
//	$defsLabl.bind('click',function(){
//		$(this).next().children().children().focus()
//	})

	f.bind('submit', function(e){

		var ths = this;

		// Валидация перед отправкой
		
		var obj = $(this).find('input,textarea');
		var rq,sO;
		
		var req = obj.filter('.req');
	
		for(ii= 0; ii< obj.length;ii++){
			sO = obj.eq(ii);
			rq = sO.hasClass('req') ? !sO[0].value.length : false;
			if(checkErrors(sO[0],e,rq )) return false;
			
			//log(ii,obj.lenght,ii == obj.lenght-1 , !f[0].error , dopFunc , typeof dopFunc == 'function')
			if(ii == obj.length-1 && !this.error && dopFunc && typeof dopFunc == 'function'){
			//	log(dopFunc,f)
				dopFunc(this)
				return false;
			}
		
		}
	/*	req.each(function(){
			checkErrors(this,e,!this.value.length,req )
		})

		if(!f[0].error){
			obj.not(req).each(function(){
				checkErrors(o,e,true,obj.not(req))
			})
		}*/
//return false;
	});

	function checkErrors(o,e,dop){
			
			if(dop || checkDef(o)){
				initError(o,e)
				return true;
			}else{
				clearError(o)
			}
	}


	function checkDef(o){

		var reMail = /^[0-9A-Za-z_\-\.]+@(?:[0-9A-Za-z\-]+\.)+[A-Za-z]{2,6}$/;
		var rePhone = /^[0-9]{3}[\- ]?[0-9]{2}[\- ]?[0-9]{2}$/;
		var rePhone2 = /\d{3}/;

		if((/m+a+i+l/).test(o.id) && ( o.value.length && !reMail.test(o.value)))
		{
			return true;
		}
		else if( o.id =='phone2' && ( o.value.length && !rePhone2.test(o.value) ))
		{
			return true;
		}
		else if( o.id =='phone' && ( o.value.length &&  !rePhone.test(o.value)) || (document.getElementById('phone2') && document.getElementById('phone2').value.length && !o.value.length ))
		{
			
			return true;
		}
	//	return ((/m+a+i+l/).test(o.id) && !reMail.test(o.value)) ||
//		( o.id =='phone2' && ( o.value.length && !rePhone2.test(o.value) || (document.getElementById('phone').value.length && o.value.length ) )) ||
//		( o.id =='phone' && ( o.value.length &&  !rePhone.test(o.value)))		
 	}

	function initFunc(){
		if(this.value){$(this).parent().parent().prev().hide()}
	}
	function blurFunc(){
		if(!this.value){$(this).parent().parent().prev().show()}
	}
	function focusFunc(){
		$(this).parent().parent().prev().hide()		
	}

	function initError(o,e){
		$(o).trigger('focus').parents('b').addClass('failed')//.attr('title',$(o).parent().parent().prev().text());
		$(o).parents('form')[0].error = true;
		e.preventDefault();
	}
	function clearError(o){
		$(o).parents('b').removeClass('failed')//.removeAttr('title')
		$(o).parents('form')[0].error = false;
	}
}


	function initNavi(){
		var navi = $('#path-in');
		if(!navi.length)return;
		
		var sel = navi.find('li').removeClass('def-a').find('.sel')
		
		sel.each(function(){
			this.sub = $(this).next()
			
			if(!this.sub.length){
				
				sel = sel.not(this)
				return;
			};
	
			
			$(this).addClass('pseudo').bind('click',function(e){
				var li = $(this).parents('li')
				if(isInBlock(this.sub,document.body.tmClick)){
					document.body.tmClick = false;
					return false;
				} 
		
				if(li.hasClass('active')){
					li.removeClass('active').parent().parent().removeClass('jsZindex')
				}else{

					if(e.originalEvent || this.enabled){
						this.enabled = false;
						this.sub.css({visibility:'hidden'})
						li.addClass('active').parent().parent().addClass('jsZindex')

						this.sub.css({
							//left:-( ( this.sub.width()-$(this).width() )/2 ) + ($(this).offset().left - $('#path-in').offset().left +10),
							left: '100%',
							marginLeft: -this.sub.width(),
							visibility:'visible',
							width:$.browser.msie6 ? this.sub.width() : 'auto'
							})
					}
					li.siblings().removeClass('active')
				}
			
				return false;
			})
			
			
		})

		if(sel.length)
			$('#outwrap').bind('click',function(e){
				document.body.tmClick = {x:e.pageX,y:e.pageY}
				sel.filter('.active > *').trigger('click')
			})

		function isInBlock(sub,tmClick){
			
			if(!tmClick) return false;

			var tmX,tmY,ofs;
			ofs = {
				l:sub.offset().left,
				t:sub.offset().top,
				w:sub.width(),
				h:sub.height()
			}
			
			tmX = ofs.l + ofs.w >= tmClick.x && ofs.l <= tmClick.x;
			tmY = ofs.t + ofs.h >= tmClick.y && ofs.t <= tmClick.y;

			return tmX && tmY;
		}
				

	}


//alter
function initAlter2(objs,marT,spec){

	marT = marT ? marT : 40;
	objs.each(function(){

		this.stitle=this.title ? this.title : this.alt;
		this.title = '';
		this.alt = '';
	})
	
	objs.not('.noalt').bind('mouseover',sowAlter).bind('mouseout',hideAlter)

	if(!this.Alter){
		this.Alter = $('<div id="libalter" style="display:none;">\
										<div class="pl-wr"><div class="pl p0"><div class="c">Книги</div><i></i></div><i class="b arr"></i></div>\
								</div>')
	
		$('body').append(Alter)
		this.Alter[0].sub = false;
	
	}

	function sowAlter(){
				
				$('.c:first',window.Alter).html(this.stitle)
				window.Alter.css({visibility:'hidden',left:0}).show()
	
				var vals = getCurOffset(this);
	
				this.subalter = vals;
	
				window.Alter[0].vis = true
	
				window.Alter.css({
					top:vals.top,
					left:vals.left,
					visibility:'visible'
				}).show()
				$('.arr',window.Alter).css({marginLeft:vals.arr})
	
	}
	
	function getCurOffset(liO){
	
		var arr,top,left,
		setter = window.Alter,
		liOffset = $(liO).offset(),
		tmSize = {w:setter.width(),h:setter.height()},
		bodyWidth = document.documentElement.clientWidth || document.body.clientWidth;

		tmOffset = {
			left: $(liO).hasClass('c-alt') ? liOffset.left + $(liO).width()/2 - 23  : liOffset.left + 5,
			top: liOffset.top - marT
		};
		
		if( !(liO.clientHeight || liO.innerHeight)){
			var chh = $(liO).children().eq(0);
			tmOffset.top = chh.length? $(liO).children().offset().top -40 : tmOffset.top;
		}
	
		if(tmOffset.left + tmSize.w + 10 > bodyWidth){
			left = bodyWidth - (tmSize.w + 5)
			arr = liOffset.left - left ;
			arr = arr > tmSize.w -40 ? -9999 : arr;
		}else if(tmOffset.left < 5){
			left = 5;
			arr = 0;
			arr = liOffset.left + tmSize.w - 10 < 40 ? - 999 : arr;
		}else{
			left  = tmOffset.left;
			arr = 'auto';
		}
		return {top:tmOffset.top,left:left,arr:arr,w:tmSize.w,h:tmSize.h}
	}
	


}
function hideAlter(){
	$('#libalter').hide()
}



