
	var isIE = (navigator.appName == "Microsoft Internet Explorer");
	var isFF = (!isIE && !(navigator.appVersion.indexOf("MSIE")>-1));
	var isOPR = (navigator.userAgent.indexOf("Opera")!=-1);
	var isIE6 = navigator.userAgent.indexOf("MSIE 6.0") >= 0;
	var isIE7 = navigator.userAgent.indexOf("MSIE 7.0") >= 0;
	var isIE8 = navigator.userAgent.indexOf("MSIE 8.0") >= 0;
	if (isOPR || isIE7) { isIE = false; }

	var xPos;
	var yPos;
	

	$(document).ready(function() {
	
		$('#menu li').hover(
			function() {
				if ($(this).hasClass('active')) return;
				$(this).addClass('hovered').find('ul.submenu').css({zIndex: '2'});
				},
				
			function() { 
				if ($(this).hasClass('active')) return; 
				$(this).removeClass('hovered');
				}
			) 
		
	});
	
	
	var prevComment;
	var prevCommentIH;
	var answerForm = '';
	function commentAnswer(parent_id, object, object_id)
		{
		document.getElementById('new_comment_form').style.display = 'none';

		if (prevComment)
			{
			prevComment.innerHTML = prevCommentIH;
			}

		prevComment = document.getElementById('answer_'+parent_id);
		prevCommentIH = document.getElementById('answer_'+parent_id).innerHTML;

		answerForm = '<form target="server" action="comment.zv.tree.work.html" method="post">\r\n';
		answerForm += '<textarea id="comment_text_'+parent_id+'" name="data[text]"></textarea><span class="err" id="err_comment_'+parent_id+'"></span<br /><input type="button" onclick="addTreeComment(\''+object+'\','+object_id+','+parent_id+')" value="ответить" /> <input type="button" onclick="prevComment.innerHTML = prevCommentIH; return false;" value="отмена" />\r\n';
		answerForm += '</form>';
		document.getElementById('answer_'+parent_id).innerHTML = answerForm;
		return false;
		}

	
	function loadComments(object,object_id,last_seen,page)
		{
		lookup({
			url: '/api/comments.load.api.php',
			values: 'object='+object+'&object_id='+object_id+'&commentsPage='+page+'&last_seen='+last_seen,
			postFunction: function(transport)
				{
				document.getElementById('comments_div').innerHTML = transport.responseText;
				}
			});
		}
	
	function getComments(id)
		{
		document.getElementById('comments').innerHTML = '<img alt="загрузка" src="http://im1.zv.innovaterussia.ru/images_ir/loader.gif" />';
		lookup({
			url: '/api/gallery.comments.api.php',
			values: 'id='+id,
			postFunction: function(transport)
				{
				document.getElementById('comments').innerHTML = transport.responseText;
				}
			});
		}
	
	function delComments()
		{
		document.getElementById('comments').innerHTML = '';
		}
	
	
	function delComment(id)
		{
		lookup({
			url: '/work/comment.work.html',
			values: 'action=del&id='+id,
			postFunction: function(transport)
				{
				document.getElementById('c_'+id).parentNode.removeChild(document.getElementById('c_'+id));
				}
			});
		}
	
	
	function addTreeComment(object,id,parent_id)
		{
		document.getElementById('err_comment_'+parent_id).style.display = 'none';
		if (!/[A-zА-я0-9()]/.exec(document.getElementById('comment_text_'+parent_id).value))
			{
			document.getElementById('err_comment_'+parent_id).innerHTML = 'Вы ничего не написали!';
			document.getElementById('err_comment_'+parent_id).style.display = 'block';
			document.getElementById('comment_text_'+parent_id).focus();
			return false;
			}
		request = 'action=add&data[parent_id]='+parent_id+'&data[object]='+object+'&data[object_id]='+id+'&data[text]='+encodeURIComponent(document.getElementById('comment_text_'+parent_id).value);
		document.getElementById('new_comment_'+parent_id).style.display = 'block';
		document.getElementById('answer_'+parent_id).innerHTML = prevCommentIH;
		document.getElementById('new_comment_'+parent_id).innerHTML = '<img id="cLoad" src="http://im1.zv.innovaterussia.ru/images_ir/loader.gif" />';
		lookup({
			url: '/work/comment.zv.tree.work.html',
			values: request,
			postFunction: function(transport)
				{
				document.getElementById('cLoad').parentNode.removeChild(document.getElementById('cLoad'));
	
				newObject = document.createElement("div");
				newObject.innerHTML = transport.responseText;
				newObject.style.marginLeft = '0';
				document.getElementById('c_'+parent_id).insertBefore(newObject, document.getElementById('new_comment_'+parent_id));
				}
			});
		}
	
	function addTreeRootComment(object,id)
		{
		document.getElementById('err_comment').style.display = 'none';
		if (!/[A-zА-я0-9()]/.exec(document.getElementById('comment_text').value))
			{
			document.getElementById('err_comment').innerHTML = 'Вы ничего не написали!';
			document.getElementById('err_comment').style.display = 'block';
			document.getElementById('comment_text').focus();
			return false;
			}
		request = 'action=add&data[object]='+object+'&data[object_id]='+id+'&data[text]='+encodeURIComponent(document.getElementById('comment_text').value);
		document.getElementById('new_comment').style.display = 'block';
		coms = document.getElementById('new_comment').innerHTML;
		document.getElementById('new_comment').innerHTML = coms+'<img id="cLoad" src="/images/comment-loader.gif" />';
		lookup({
			url: '/work/comment.zv.tree.work.html',
			values: request,
			postFunction: function(transport)
				{
				document.getElementById('cLoad').style.display = 'none';
	
				document.getElementById('new_comment').innerHTML = coms + transport.responseText;
				document.getElementById('new_comment').style.display = 'block';
	
				newObject = document.createElement("div");
				newObject.id = 'tmp_new_comment';
				newObject.style.display = 'none';
				document.getElementById('new_comment').parentNode.insertBefore(newObject, document.getElementById('before_nah'));
				document.getElementById('comment_text').value = '';
				//tinyMCE.getInstanceById('comment_text').setContent('');
				document.getElementById('new_comment').id = '';
				document.getElementById('tmp_new_comment').id = 'new_comment';
	
			//	document.getElementById('comment_form').style.display = 'none';
				if (document.getElementById('no_comments'))
					{
					document.getElementById('no_comments').style.display = 'none';
					}
				}
			});
		}
	
	
	// Комплитар
	function $A(C){if(!C){return[]}if(C.toArray){return C.toArray()}var B=C.length||0,A=new Array(B);while(B--){A[B]=C[B]}return A}Object.extend=function(A,C){for(var B in C){A[B]=C[B]}return A};Object.extend(Object,{inspect:function(A){try{if(Object.isUndefined(A)){return"undefined"}if(A===null){return"null"}return A.inspect?A.inspect():A.toString()}catch(B){if(B instanceof RangeError){return"..."}throw B}},toQueryString:function(A){return $H(A).toQueryString()},toHTML:function(A){return A&&A.toHTML?A.toHTML():String.interpret(A)},keys:function(A){var B=[];for(var C in A){B.push(C)}return B},values:function(B){var A=[];for(var C in B){A.push(B[C])}return A},isElement:function(A){return A&&A.nodeType==1},isArray:function(A){return A&&A.constructor===Array},isHash:function(A){return A instanceof Hash},isFunction:function(A){return typeof A=="function"},isString:function(A){return typeof A=="string"},isNumber:function(A){return typeof A=="number"},isUndefined:function(A){return typeof A=="undefined"}});var Class={create:function(){var E=null,D=$A(arguments);if(Object.isFunction(D[0])){E=D.shift()}function A(){this.initialize.apply(this,arguments)}Object.extend(A,Class.Methods);A.superclass=E;A.subclasses=[];if(E){var B=function(){};B.prototype=E.prototype;A.prototype=new B;E.subclasses.push(A)}for(var C=0;C<D.length;C++){A.addMethods(D[C])}if(!A.prototype.initialize){A.prototype.initialize=function(){}}A.prototype.constructor=A;return A}};Class.Methods={addMethods:function(G){var C=this.superclass&&this.superclass.prototype;var B=Object.keys(G);if(!Object.keys({toString:true}).length){B.push("toString","valueOf")}for(var A=0,D=B.length;A<D;A++){var F=B[A],E=G[F];if(C&&Object.isFunction(E)&&E.argumentNames().first()=="$super"){var H=E,E=Object.extend((function(I){return function(){return C[I].apply(this,arguments)}})(F).wrap(H),{valueOf:function(){return H},toString:function(){return H.toString()}})}this.prototype[F]=E}return this}};

	function getElementPosition(obj)
		{
		var elem = obj
	
		var l = 0;
		var t = 0;
	
		while (elem)
	   		{
	       	l += elem.offsetLeft;
	      	t += elem.offsetTop;
	     	elem = elem.offsetParent;
	   		}
	   	obj.l = l;
	   	obj.t = t;
		}
		
	var Autocompleter = { }
	Autocompleter = Class.create({
  		initialize: function(element, url) {

    		var autocompleter = this;

			this.id = element;
			this.selected = null;
			this.lis = new Array;
			this.input = null;
			this.url = url;
			this.focused = false;

			autocompleter.ac = {};

			this.input = document.getElementById(this.id);
			//document.getElementById(this.id).autocomplete = 'off';
			this.input.onkeyup = function(event) { if (!this.value && document.getElementById('ac_'+this.id) && !autocompleter.focused) { document.getElementById('ac_'+this.id).style.display='none'; } autocompleter.autocomplete(autocompleter, event, this); return false };
			this.input.onblur = function() { if (document.getElementById('education')) cloneEdu(document.getElementById('education')); if (document.getElementById('ac_'+this.id)) document.getElementById('ac_'+this.id).style.display = 'none' };
			this.input.onfocus = function(event) { if (this.value == '') autocompleter.acFocus(autocompleter, this, event) }
    		this.initialized = true;
		  },

		autocomplete: function(autocompleter, event, obj) {
			//document.getElementById('test').innerHTML += this.selected + '<br />';
			event = event || window.event;
			//obj.autocomplete = 'off';

			if ((event.keyCode != 40 && event.keyCode != 38 && event.keyCode != 13) && obj.value)
			    {
			    autocompleter.focused = false;
				obj.onkeydown = function(event) { autocompleter.autocompleteNavigation(autocompleter,event) }

			    lookup({
			    url:'/api/'+autocompleter.url,
			    values:'query='+encodeURIComponent(obj.value),
			    postFunction: function(transport)
			    	{
			    	if (!document.getElementById('ac_'+obj.id))
			    	    {
			    	    newAC = document.createElement('span')
			    	    newAC.id = 'ac_'+obj.id;
			    	    newAC.className = 'autocompliter';
			    	    newAC.style.position = 'absolute';
			    	    newAC.style.zIndex = '20';


			    		document.getElementsByTagName('body')[0].appendChild(newAC);
			    		autocompleter.ac = newAC;
			    	    }
					getElementPosition(obj);
					autocompleter.ac.style.top = obj.t + obj.offsetHeight + 'px';
					autocompleter.ac.style.left = obj.l + 'px';
			    	autocompleter.ac.style.display = 'block';
			    	autocompleter.ac.innerHTML = transport.responseText;
			    	//document.getElementById('test').innerHTML = newAC.innerHTML;
			    	autocompleter.lis = document.getElementById(autocompleter.ac.id).getElementsByTagName('a');
			    	autocompleter.selected = null;
			    	for (i=0; i<autocompleter.lis.length; i++)
			    	    {
			    		//document.getElementById('test').innerHTML += this.lis[i]+'<br />'
			    		autocompleter.lis[i].num = i;
			    		autocompleter.lis[i].onmousedown = function() { obj.value = this.innerHTML.replace(/<small>(.*?)<\/small>/i,''); obj.value = obj.value.replace(/<(.*?)>/ig,''); if (document.getElementById(obj.id+'_id')) {document.getElementById(obj.id+'_id').value=this.id;} document.getElementById('ac_'+obj.id).style.display = 'none'; }
			    		autocompleter.lis[i].onmouseover = function() { if (autocompleter.selected) { autocompleter.selected.className = ''; } autocompleter.selected = this; this.className = 'active' }
			    		autocompleter.lis[i].onmouseout = function() { this.className = '' }
			    	    }
			    	//alert(autocompleter.lis)
			    	}
			    	});
			    }
			},

		autocompleteNavigation: function(autocompleter,event)
		    {
			event = event || window.event;

		    if (event.keyCode == 40)
		    	{
		    	if (event.preventDefault)
		    		event.preventDefault();
		    	else
		    		event.returnValue = false;

		    	if (!autocompleter.selected && this.lis.length>0)
		    		{
		    		autocompleter.selected = this.lis[0];
		    		autocompleter.lis[0].className = 'active';
		    		}
		    	else
		    		{
		    		autocompleter.selected.className = '';
		    		if (autocompleter.selected.num != autocompleter.lis.length-1 )
		    			autocompleter.selected = autocompleter.lis[autocompleter.selected.num+1];
		    		else
		    			autocompleter.selected = autocompleter.lis[0];

		    		autocompleter.selected.className = 'active';
		    		}
		    	}

		    if (event.keyCode == 38)
		    	{
		    	if (event.preventDefault)
		    		event.preventDefault();
		    	else
		    		event.returnValue = false;

		    	if (!autocompleter.selected)
		    		{
		    		autocompleter.selected = autocompleter.lis[autocompleter.lis.length-1];
		    		autocompleter.lis[autocompleter.lis.length-1].className = 'active';
		    		}
		    	else
		    		{
		    		autocompleter.selected.className = '';
		    		if (autocompleter.selected.num != 0)
		    			autocompleter.selected = autocompleter.lis[autocompleter.selected.num-1];
		    		else
		    			autocompleter.selected = autocompleter.lis[autocompleter.lis.length-1]

		    		autocompleter.selected.className = 'active';
		    		}
		    	}

		    if (event.keyCode == 13)
		    	{
		    	if (event.preventDefault)
		    		event.preventDefault();
		    	else
		    		event.returnValue = false;

		    	autocompleter.input.value = autocompleter.selected.innerHTML.replace(/<small>(.*?)<\/small>/i,'');
		    	autocompleter.input.value = autocompleter.input.value.replace(/<(.*?)>/ig,'');
		    	autocompleter.ac.style.display = 'none';
		    	if (document.getElementById(autocompleter.input.id+'_id')) document.getElementById(autocompleter.input.id+'_id').value=autocompleter.selected.id;
		    	}
		    },

		acFocus: function(autocompleter, obj, event)
			{
			autocompleter.focused = true;
			obj.onkeydown = function(event) { autocompleter.autocompleteNavigation(autocompleter,event) }

    	    lookup({
    	    url:'/api/'+autocompleter.url,
    	    values:'empty=true',
    	    postFunction: function(transport)
    	    	{

    	    	if (!document.getElementById('ac_'+obj.id))
    	    	    {
    	    	    newAC = document.createElement('span')
    	    	    newAC.id = 'ac_'+obj.id;
    	    	    newAC.className = 'autocompliter';
    	    	    newAC.style.position = 'absolute';
    	    	    newAC.style.zIndex = '20';


    	    		document.getElementsByTagName('body')[0].appendChild(newAC);
    	    		autocompleter.ac = newAC;
    	    	    }

				getElementPosition(obj);
				autocompleter.ac.style.top = obj.t + obj.offsetHeight + 'px';
				autocompleter.ac.style.left = obj.l + 'px';
    	    	autocompleter.ac.style.display = 'block';
    	    	autocompleter.ac.innerHTML = transport.responseText;
    	    	//document.getElementById('test').innerHTML = newAC.innerHTML;
    	    	autocompleter.lis = document.getElementById(autocompleter.ac.id).getElementsByTagName('a');
    	    	autocompleter.selected = null;
    	    	for (i=0; i<autocompleter.lis.length; i++)
    	    	    {
    	    		//document.getElementById('test').innerHTML += this.lis[i]+'<br />'
    	    		autocompleter.lis[i].num = i;
    	    		autocompleter.lis[i].onmousedown = function() { obj.value = this.innerHTML.replace(/<small>(.*?)<\/small>/i,''); obj.value = obj.value.replace(/<(.*?)>/ig,''); if (document.getElementById(obj.id+'_id')) {document.getElementById(obj.id+'_id').value=this.id;} document.getElementById('ac_'+obj.id).style.display = 'none'; }
    	    		autocompleter.lis[i].onmouseover = function() { if (autocompleter.selected) { autocompleter.selected.className = ''; } autocompleter.selected = this; this.className = 'active' }
    	    		autocompleter.lis[i].onmouseout = function() { this.className = '' }
    	    	    }
    	    	//alert(autocompleter.lis)
    	    	}
    	    	});

			}
		});
	
	
	
	function processCompanyFilter()
		{
		companyList = document.getElementById('filter').getElementsByTagName('input');
		selectedCompanies = new Array;
		j=0;
		for (i=0; i<companyList.length; i++)
			{
			if (companyList[i].checked)
				{
				selectedCompanies[j] = companyList[i].value;
				j++;
				}
			}
		companyFilter = '/competitions/type_';
		if (selectedCompanies.length == 0)
			{
			alert('Необходимо выбрать хотя бы одну тему');
			return false;
			}
		else
			{
			companyFilter += selectedCompanies.join(',');
			if ($('search'))
				{
			    if($('search').value) companyFilter += '/search_'+$('search').value;
				}
			location.href = companyFilter;
			}	
		}

	function processCompanyEndFilter()
		{
		companyList = document.getElementById('filter').getElementsByTagName('input');
		selectedCompanies = new Array;
		j=0;
		for (i=0; i<companyList.length; i++)
			{
			if (companyList[i].checked)
				{
				selectedCompanies[j] = companyList[i].value;
				j++;
				}
			}
		companyFilter = '/competitions/competitions_end/type_';
		if (selectedCompanies.length == 0)
			{
			alert('Необходимо выбрать хотя бы одну тему');
			return false;
			}
		else
			{
			companyFilter += selectedCompanies.join(',');
			if ($('search'))
				{
			    if($('search').value) companyFilter += '/search_'+$('search').value;
				}
			location.href = companyFilter;
			}	
		}

	
	function proveOrder(id,status)
		{	
		switch (status){
			case 'recived':
				text = 'получена';
				classN = 'bolt';
				break;
			case 'approved':
				text = 'одобрена';
				classN = 'prooved';
				break;
			case 'failed':
				text = 'отклонена';
				classN = 'bolt';
				break;
			case 'winner':
				text = 'победитель';
				classN = 'prooved';
				break;
		}
		
		//document.getElementById('sp_'+id).className = class;
		//document.getElementById('sp_'+id).innerHTML = text;
		if (document.getElementById('changeStatusSuccess_'+id))
			document.getElementById('changeStatusSuccess_'+id).display = 'none';
		
		if (document.getElementById('change_status_success_'+id))
			document.getElementById('change_status_success_'+id).innerHTML = '<img alt="загрузка" src="http://im1.zv.innovaterussia.ru/data/zv/images/co_pl.gif" />';
		
		if (document.getElementById('status_'+id))
			{
			document.getElementById('status_'+id).className = classN;
			document.getElementById('status_'+id).innerHTML = text + ' <em>(<a href="#" onclick="showStatusChange(this, document.getElementById(\'changeStatus_'+id+'\')); return false;">изменить</a>)</em>';
			}
		
		var url = 'id='+id+'&status='+status;
		if(document.getElementById('comm_'+id) && document.getElementById('comm_'+id).value)
		    url += '&comment='+document.getElementById('comm_'+id).value;
		
		lookup({url:'/api/co.order.api.php', values:url, postFunction: function() { 
					if (document.getElementById('changeStatusSuccess_'+id)) document.getElementById('changeStatusSuccess_'+id).style.display = 'block'; 
					if (document.getElementById('change_status_success_'+id))
						{
						document.getElementById('change_status_success_'+id).innerHTML = 'Изменения сохранены!';
						setTimeout(function() { document.getElementById('change_status_success_'+id).innerHTML = '' }, 2000);
						}
					}
				});
		if (document.getElementById('changeStatus_'+id))
			setTimeout(function() { document.getElementById('changeStatus_'+id).style.display = 'none'; }, 2000);
		}
		
		
	var prevStatusForm;
	function showStatusChange(obj, showObj)
		{
		if (prevStatusForm)
			prevStatusForm.style.display = 'none';
		
		document.getElementById('changeStatusSuccess_'+showObj.id.replace('changeStatus_','')).style.display = 'none';
		
		getElementPosition(obj);
		getElementPosition(document.getElementById('left_colomn'));
		
		showObj.style.top = obj.t + 'px';
			
		showObj.style.display = 'block';
		
		if ((parseInt(showObj.style.top)+parseInt(showObj.offsetHeight) > (document.getElementById('left_colomn').t + document.getElementById('left_colomn').offsetHeight)))
			{
			showObj.style.top = (document.getElementById('left_colomn').offsetHeight + document.getElementById('left_colomn').t) - showObj.offsetHeight + 'px';
			}
		
		prevStatusForm = showObj;
		}

	
	function reloadCapcha()
		{
		var dateObj = new Date();
		document.getElementById('capcha_img').src = '/api/capcha.api.php?reload='+dateObj.getTime();
		}
		
	//аякс
	function getHTTP()
		{
		var xmlhttp;
		/*@cc_on
		@if (@_jscript_version >= 5)
			try
				{
				xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
				}
			catch (e)
				{
				try
					{
					xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
					}
				catch (E)
					{
					xmlhttp = false;
					}
				}
		@else
			xmlhttp = false;
		@end @*/
		if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
			{
			try
				{
				xmlhttp = new XMLHttpRequest();
				}
			catch (e)
				{
				xmlhttp = false;
				}
			}
		return xmlhttp;
		}

	function lookup(lookupSettings)
		{
		if (!lookupSettings) lookupSettings = new Object();

		if (!lookupSettings.values)   lookupSettings.values   = '';
		if (!lookupSettings.dest)  lookupSettings.dest = false;
		if (!lookupSettings.cache) lookupSettings.cache = false;
		if (!lookupSettings.postFunction)   lookupSettings.postFunction   = '';


		if (lookupSettings.url)
			{
			if (lookupSettings.cache && cacheStore[lookupSettings.url+'?'+lookupSettings.values])
				{
				try { document.getElementById(lookupSettings.dest).innerHTML = cacheStore[lookupSettings.url+'?'+lookupSettings.values].responseText }
				catch (e) { }
				if (lookupSettings.postFunction) lookupSettings.postFunction(cacheStore[lookupSettings.url+'?'+lookupSettings.values]);
				}
			else
				{
				this.working = false;
				if (!this.working && (this.http = getHTTP()))
					{
					var http = this.http;
					this.http.open("POST", lookupSettings.url, true);
					this.http.onreadystatechange = function()
						{
						if (http.readyState == 4)
							{
							if (lookupSettings.cache)
								{
								cacheStore[lookupSettings.url+'?'+lookupSettings.values] = http;
								}
							try { destObj = document.getElementById(lookupSettings.dest).innerHTML = http.responseText }
							catch (e) { }
							if (lookupSettings.postFunction) lookupSettings.postFunction(http);
							this.working = false;
							this.http = false;
							}
						}
					this.working = true;
					this.http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
					this.http.send(lookupSettings.values);
					}
				}
			}
		}

