window.defaultNum=5 //kolichectvo blokov sprava po umolchaniyu
window.noSelects = false; //zagrujat dekorativnie select

function initAfterAjax(ajax_id) {

}

Ajax.Responders.register({
  onComplete: function() { EventSelectors.assign(rulesDefault);}
})

function openImage(url,image_x,image_y)
{
    X_pos = (screen.width/2)-(image_x/2);
    Y_pos = (screen.height/2)-(image_y/2);
    window.open(url,'imagewin','scrollbars=no,resizable=no,left='+X_pos+',top='+Y_pos+',width='+image_x+',height='+image_y);
}

/* DOM-ready watcher by brothercake, http://www.brothercake.com/site/resources/scripts/domready/ */
function domFunction(f, a) {
	var n = 0;
	var t = setInterval(function() {
		var c = true;
		n++;
		if (typeof document.getElementsByTagName != 'undefined' && (document.getElementsByTagName('body')[0] != null || document.body != null)) {
			c = false;
			if (typeof a == 'object') {
				for (var i in a) {
					if ((a[i] == 'id' && document.getElementById(i) == null) || (a[i] == 'tag' && document.getElementsByTagName(i).length < 1) ) {
						c = true;
						break;
					}
				}
			}
			if (!c) { f(); clearInterval(t); }
		}
		if (n >= 60) {
			clearInterval(t);
		}
	}, 250);
};

/**
 * Select boxes replacer
 * by ZeT, http://zet.od.ua
 * version 0.5.2007-02-02
 *
 * based on http://www.easy-designs.net/articles/replaceSelect2/
 */
var Sbr = {
	init: function(id) {
		this.last = false;
		this.trigger = false;

		if (id && (form = document.getElementById(id))) {
			this.s = form.getElementsByTagName('select');
		} else {
			this.s = document.getElementsByTagName('select');
		}
    this.sCount = this.s.length;
		for (var i=0; i<this.sCount; i++) {
		  if (!this.s[i].multiple) {
  			if (!this.s[i].id) {
  				this.s[i].id = 'select_'+i;
  			}
  			this.run(this.s[i], i);
 			}
		}
	},

	run: function(obj, counter) {
		// building faux select structure
		var fauxSel = document.createElement('dl');
		fauxSel.className = obj.className ? obj.className + ' sbrWrap' : 'sbrWrap';
		obj.className = 'selReplaced';
		var selArr = document.createElement('span');
		selArr.className="sel-arrow";		
		selArr.onclick = function() {	
			var dlEl = $(this).next('.sbrWrap');
			var selectElement = $(this).next('select');
			if (dlEl.childNodes[1].className == 'sbrOptsCol') {
				selectElement.onfocus();
				Sbr.last.className = 'sbrOptsCol';
				Sbr.last = dlEl.childNodes[1];
				Sbr.trigger = false;
				document.onclick = function() { if (Sbr.trigger) Sbr.last.className = 'sbrOptsCol'; Sbr.trigger = true; }
				dlEl.childNodes[1].className = 'sbrOptsExp';
			} else {
				Sbr.lastObjId = false;
				document.onclick = function() {	}
				dlEl.childNodes[1].className = 'sbrOptsCol';
			}
			if (dlEl.childNodes[0].className == '') {
				dlEl.nextSibling.focus();
			}
		}
		fauxSel.onclick = function() {	
			var selectElement = this.nextSibling;
			if (this.childNodes[1].className == 'sbrOptsCol') {
				selectElement.onfocus();
				Sbr.last.className = 'sbrOptsCol';
				Sbr.last = this.childNodes[1];
				Sbr.trigger = false;
				document.onclick = function() { if (Sbr.trigger) Sbr.last.className = 'sbrOptsCol'; Sbr.trigger = true; }
				this.childNodes[1].className = 'sbrOptsExp';
			} else {
				Sbr.lastObjId = false;
				document.onclick = function() {	}
				this.childNodes[1].className = 'sbrOptsCol';
			}
			if (this.childNodes[0].className == '') {
				this.nextSibling.focus();
			}
		}

		var curOpt = document.createElement('dt');
		curOpt.className = '';
		fauxSel.appendChild(curOpt);
		var optsWrap = document.createElement('dd');
		optsWrap.className = 'sbrOptsCol';
		fauxSel.appendChild(optsWrap);
		var optsList = document.createElement('ul');
		optsWrap.appendChild(optsList);
		optsList.style.zIndex = fauxSel.style.zIndex = 1000-counter;

		var opts = obj.options;
		var selectedOpt = (!obj.selectedIndex) ? 0 : obj.selectedIndex;
		for (var i=0; i<opts.length; i++) {
			var li = document.createElement('li');
			var txt = opts[i].text ? document.createTextNode(opts[i].text) : document.createTextNode('blank option');
			li.appendChild(txt);
			li.title = opts[i].title;
			li.selIndex = i;
			li.selectID = obj.id;
			li.onclick = function() {
				Sbr.selectMe(this);
			}
			if (i == selectedOpt) {
				li.className = 'sbrSelected';
				curOpt.appendChild(txt.cloneNode(false));
			}
			if (window.attachEvent) {
				li.onmouseover = function() {
					this.className += ' hover';
				}
				li.onmouseout = function() {
					this.className = this.className.replace(new RegExp(" hover\\b"), '');
				}
			}
			optsList.appendChild(li);
		}
		obj.oldonfocus = obj.onfocus;
		obj.onfocus = function() {
			if (this.oldonfocus) this.oldonfocus();
			this.previousSibling.childNodes[0].className = 'sbrFocused';
		}
		obj.oldonblur = obj.onblur;
		obj.onblur = function() {
			if (this.oldonblur) this.oldonblur();
			this.previousSibling.childNodes[0].className = '';
		}
		obj.oldonchange = obj.onchange;
		obj.onchange = function() {
			if(obj.previous == undefined) {
				obj.previous = obj.value;
			} else {
				if(obj.previous == obj.value) {
					return;
				} else {
					obj.previous = obj.value;
				}
			}
			//alert("Change");
			if (this.oldonchange) this.oldonchange();
			var idx = this.selectedIndex;
			var ul = this.previousSibling.childNodes[1].childNodes[0];
			Sbr.selectMe(ul.childNodes[idx],1);
		}
		obj.onkeypress = obj.onchange;
		obj.parentNode.insertBefore(selArr,obj);
		obj.parentNode.insertBefore(fauxSel,obj);
	},

	selectMe: function(liObj) {
		var selectElement = liObj.parentNode.parentNode.parentNode.nextSibling;
		var lis = liObj.parentNode.getElementsByTagName('li');
		for (var i=0; i<lis.length; i++) {
			if (lis[i] != liObj) {
				lis[i].className = '';
				lis[i].onclick = function() {
					Sbr.selectMe(this);
				}
			} else {
				this.setVal(liObj.selectID, liObj.selIndex);
				liObj.className = 'sbrSelected';
				var curOpt = liObj.parentNode.parentNode.parentNode.childNodes[0];
				curOpt.removeChild(curOpt.childNodes[0]);
				curOpt.appendChild(liObj.childNodes[0].cloneNode(false));
				if(arguments[1] != 1){
					selectElement.onchange();
				}
			}
		}
	},

	setVal: function(objID, val) {
		var obj = document.getElementById(objID);
		obj.selectedIndex = val;
	}
}


/* hides 'splash' div and sets cookie 'cms_splash_screen' about it */
function hideSplash() {
	expires = 365; // days

	var today = new Date();
	//today.setTime( today.getTime() );
	var expires_date = new Date( today.getTime() + (expires * 1000 * 60 * 60 * 24) );
	document.cookie = 'cms_splash_screen=1' + ';expires=' + expires_date.toGMTString();

	$('splash_out').style.display = 'none';
	$('splash').style.display = 'none';

}
/**
*@package EnvisioNext javascript library
*@subpackage Popup static window
*@copyright (C) 2007 EnvisioNext.com  <support@EnvisioNext.com>
*@author Anton Zavidov <anton.zavidov@envisionext.com.ua>
*/

//Base class
var popUpWindow = {
	// Init popuphandler
	// This function must be run after load document
	init : function()
	{
		var popups = $$(".tooltip");
		for(var i=0; i<popups.length; i++){
			var activePopUpElement = this.find(popups[i],"prev");
			if(activePopUpElement)
			{
				Event.observe(activePopUpElement,'click',this.open);
			}
		}
	},
	// Find handler object
	find : function(element,mode)
	{
		var prev = true;
		clas = (mode == "prev")? "popup" : "tooltip";
		while(element.className != clas && prev == true) {
			if((mode == "prev" && element.previousSibling) || (mode != "prev" && element.nextSibling)){
				element = (mode == "prev")? element.previousSibling : element.nextSibling;
			} else {
				prev = false;
				return false;
			}
		}
		return element;
	},
	// Open/Close popup window
	open : function()
	{
		element = (navigator.appName == "Microsoft Internet Explorer")?Event.element(event):this;
		var popUp = popUpWindow.find(element, "next");
		if(popUp)
		{
			if(popUp.style.display == "" || popUp.style.display == "none")
			{
				popUp.style.display = "block";
			} else {
				popUp.style.display = "none";
			}
		}
	},
	// Close popup window if clicked 'close'
	closePopUp : function(element)
	{
		element.parentNode.parentNode.style.display = "none";
	}
}


// Debug Window
var dbw = function(element)
{
	var d="";
	for(f in element) {
		try
		{
			d+=f+"="+element(f)+"\n";
		} 
		catch(e)
		{
			continue;
		}
	}
	myW = open("", "displayWindow", "status=no,toolbar=no,menubar=yes");
	myW.document.open();
	myW.document.write("<html><body><textarea style='width: 500px; heigth: 500px'>"+d+"</textarea></body></html>");
	myW.document.close();
	
}

/**
*@package EnvisioNext javascript library
*@subpackage Cookies
*@copyright (C) 2007 EnvisioNext.com  <support@EnvisioNext.com>
*@author Anton Zavidov <anton.zavidov@envisionext.com.ua>
*/
var setSettings = function(name, value)
{
	document.cookie = name + "=" + escape(value) +
      	"; expires=Mon, 01-Jan-2017 00:00:00 GMT" +
      	"; path=/";
}
var getSettings = function(name)
{
	var cookie = " " + document.cookie;
	var search = " " + name + "=";
	var setStr = null;
   	var offset = 0;
    var end = 0;
    if (cookie.length > 0)
	{
		offset = cookie.indexOf(search);
		if (offset != -1)
		{
			offset += search.length;
			end = cookie.indexOf(";", offset)
			if (end == -1)
			{
				end = cookie.length;
			}
			setStr = unescape(cookie.substring(offset, end));
		}
	}
	return(setStr);
}

function bodyHeight() { 
	var body = $('container');
	if (body && body != "undefined") {
		body.style.height = 'auto';
		var winHeight = (document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight);
		body.style.height = body.offsetHeight > winHeight ? 'auto' : winHeight + 'px';
	} 
};
Event.observe(window, 'resize', bodyHeight, false);

//***********************************************************************/
//***********************************************************************/
//***********************************************************************/
function playMovie(flvObj)
{	var format = getSettings("tabs");
	var playerVars = {
			en_flash_xml: flvObj
	};
	
	var params = { menu: "false",wmode:"opaque", allowScriptAccess:"always", allowFullScreen:"true", allownetworking:"all", bgcolor:"#000000"};
	var attributes = { };
	
	if (format == "hd") {
		if($("playerholder").offsetHeight != 572) $("playerholder").style.height = "572px";
		swfobject.embedSWF(window.designUrl + "/web/tmpl/1/intro/scenes_player.swf", "en_flash_videoholder", "960", "572", "10", "expressInstall.swf", playerVars, params, attributes);
	} else{		
		if($("playerholder").offsetHeight != 481) $("playerholder").style.height = "481px";
		swfobject.embedSWF(window.designUrl + "/web/tmpl/1/intro/scenes_player.swf", "en_flash_videoholder", "600", "481", "10", "expressInstall.swf", playerVars, params, attributes);
	}
}

//********************************************************************************/
//********************************************************************************/
//********************************************************************************/
//**********************************rotator.js*************************************/
//********************************************************************************/
//********************************************************************************/
//********************************************************************************/
//images must have unique id, class="thumb" or "latest_img", urls array is taken from sibling span
var thumbs_arr=new Array();
var urls=new Array();
var flagToChange=false;	
var timer=null;	
var primaryImageUrl; 

var rotator = {
  onover: function(event) {
	var elt=Event.element(event);	//img tag 
	primaryImageUrl=elt.src;
	if (elt.hasClassName("thumb")){
		flagToChange=true;
		urls=elt.next().innerHTML.split(",");	//taking urls array from sibling span element
		urls.invoke('strip');
		for(var j=0;j<8;j++){ 		   			// preloading images
			if (urls[j]) {
				thumbs_arr[j]=new Image();
				thumbs_arr[j].src=urls[j];
			}
			//if (j==1)alert(thumbs_arr[j].src);
		}
		if (flagToChange) changepic(-1,elt.id);
	}
  },
  
   onout: function(event) {
		var elt=Event.element(event);
		if (elt.hasClassName("thumb")){
			flagToChange=false;
			clearTimeout(timer);
			elt.src=primaryImageUrl;
		}
  }	
};

function rotatorsInit(){
	var elts=document.getElementsByClassName('thumb');
	elts=$$("img.thumb");
	if (elts){
		for(var i=0; i<elts.length; i++){
			Event.observe(elts[i], 'mouseover', rotator.onover.bindAsEventListener(rotator));
			Event.observe(elts[i], 'mouseout', rotator.onout.bindAsEventListener(rotator));
		}
	}
}

function changepic(i,idImg) {
i = (i>=7) ? 0 : ++i;
/*if (i>=7) {i=0;}
else {i++;}	*/
if (thumbs_arr[i].complete) {	  //check if img is loaded
	if(thumbs_arr[i].naturalWidth != 0)
	{
		$(idImg).src=thumbs_arr[i].src;		
		if (flagToChange){
			timer=setTimeout("changepic("+i+",'"+idImg+"')",500);
		}
		else {
			$(idImg).src=primaryImageUrl;//thumbs_arr[0].src;	
			clearTimeout(timer);
		}
	}
} 
else {
	if (flagToChange){			// if img isn't loaded, refresh function
		timer=setTimeout("changepic("+i+",'"+idImg+"')",20);
	}
}
}

//***********************************************************************/
//***********************************************************************/
//***********************************************************************/
/*send Content Error*/
function sendContentError(obj) {
	var obj = obj || new Object();
	var data = {
		code : obj.code || 404,
		url : obj.url || null
	}
	var frame = document.createElement('iframe');
	with (frame) {
		src = document.location.protocol + '//' + document.location.host + '/logError/contentError.html?code=' + data.code + (data.url ? '&url='+escape(data.url) : '');
		with (style) {
			position = 'absolute';
			top = '-10000px';
			left = '-10000px';
			width = '0';
			height = '0';
			visibility = 'hidden';
		}
		var handler = function(){document.body.removeChild(frame);};
		if (document.addEventListener) addEventListener('load', handler, false)
		else attachEvent('onload', handler);
	}
	document.body.appendChild(frame);
}


//********************************************************************************/
//********************************************************************************/
//********************************************************************************/
//*********************************  CUSTOM RADIOS  ******************************/
//********************************************************************************/
//********************************************************************************/
//********************************************************************************/


function customRadio(){
	$$('.radiobox input').each(function(link) {
		if (link.checked) {
			link.previous().style.visibility = "visible";
		}
		else {
			link.previous().style.visibility = "hidden";
		}
		Event.observe(link, 'click', function() {
			$$('input[name="' + link.getAttribute('name') + '"]').each(function(el) {
				el.previous().style.visibility = "hidden";
			});
			link.previous().style.visibility = "visible";
		});
	});
}

//*****************************************************************************************/
//*****************************************************************************************/
//*****************************************************************************************/

function init() {	
	setTimeout(function(){
		bodyHeight();
		rotatorsInit();
		customRadio();
		if (typeof(Tabs) != "undefined"){
			Tabs.init();
		}		
		Sbr.init();
	},50);
}

/***************User Votes****************/
userVoteRating = {
	userId : 0,
	images : {},
	totalVotes : [],
	userVotes : [],
	init : function(params) {
		if (!this.inited) {
			this.loadedImages = {};
			for (var i in this.images) {
				this.loadedImages[i] = {};
				for (var j in this.images[i]) {
					this.loadedImages[i][j] = new Image();
					this.loadedImages[i][j].src = this.images[i][j];
				}
			}
			this.inited = true;
		}
		this.totalVotes[params.id] = params.total;
		this.userVotes[params.id] = params.user;
		$$('.votes_'+params.id).each(function(box){
			box.select('a').invoke('stopObserving').invoke('observe','mouseover',this.over.bindAsEventListener(this,params)).invoke('observe','mouseout',this.out.bindAsEventListener(this,box,params)).invoke('observe','click',this.click.bindAsEventListener(this,params));
			this.update(box,params);
		}.bind(this));
	},
	update : function(box,params) {
		var type = box.down('a').rel.blank() ? 'default' : box.down('a').rel;
		box.select('img').each(function(img,index){
			if (index <= this.totalVotes[params.id]-1) img.src = this.images[type]['active'];
			else img.src = this.images[type]['inactive'];
			if (index <= this.userVotes[params.id]-1) img.className = 'userSelected';
			else img.className = 'userNotSelected';
		}.bind(this));
	},
	over : function(event,params) {
		if (!params.allow) return;
		var link = Event.findElement(event,'a'.toUpperCase()), links = link.up().select('a'), currentIndex = links.indexOf(link), type = link.rel.blank() ? 'default' : link.rel;
		links.each(function(link,index){
			var img = link.down('img');
			if (index <= currentIndex) {
				img.src = this.images[type]['user'] ? this.images[type]['user'] : this.images[type]['active'];
				img.className = 'userSelected';
			}
			else {
				img.src = this.images[type]['inactive'];
				img.className = 'userNotSelected';
			}
		}.bind(this));
	},
	out : function(event,box,params) {
		if (!params.allow) return;
		this.update(box,params);
	},
	click : function(event,params) {
		if (this.userId <= 0) return;
		Event.stop(event);
		if (params.disable || !params.allow) {
			if (params.disable) document.location.href = '/bs.php?Bs_cid='+params.id+(/\?/.test(document.location.href) ? '&'+document.location.href.split('?')[1] : '');
			return
		}
		var link = Event.findElement(event,'a'.toUpperCase()), links = link.up().select('a'), index = links.indexOf(link);
		new Ajax.Request('uservotes.php?', this.ajaxOptions(params,index+1,link.up()));
	},
	getValues : function(text,id) {
		var div = document.createElement('div');
		div = $(div);
		div.setStyle({
			position : 'absolute',
			top : '-30000px',
			left : '-30000px',
			visibility : 'hidden'
		});
		div = document.body.appendChild(div);
		div.update(text);
		var values = {total:$F($('voteTotal_'+id)),user:$F($('voteUser_'+id)),count:$F($('votesCount_'+id))};
		document.body.removeChild(div);
		return values;
	},
	ajaxOptions : function(params,vote,box) {
		return {
			method: 'post',
			postBody: 'mode_ajax=true&UserVotes_action=userVote&UserVotes_cid='+params.id+'&UserVotes_vote='+vote,
			onSuccess: function(t) {
				if (typeof clearCache == 'function') clearCache();
				var values = this.getValues(t.responseText,params.id);
				this.totalVotes[params.id] = values.total;
				this.userVotes[params.id] = values.user;
				this.update(box,params);
				try {$('userVotesCount_'+params.id).update(values.count);} catch(e) {}
			}.bind(this),
			onFailure: function(t) {
			}
		}
	}
}
/***************User Votes END****************/
