// data variable
var Data = {
	html : {},
	current : {
		url : window.location.href
	}
};



/************************
* viewPrompt(view,icon,msg)
* function for show/hide help window(prompt)
* @params
* view[bool] - true : show, false : hide
* icon[html obj] - icon object(usually "this")
* msg{id,head,text}[obj] - message params, id - bound parameter
*
* Example:
* viewPrompt(true,this,{id : 'msg', head : 'this is head', text : 'message content'})
* viewPrompt(false,this,{id : 'msg'})
*/
function viewPrompt(view,icon,msg)
{
	if(view)
	{
		$(icon).addClassName('i16_info_over');
		if(!$(msg.id))
		{
			new Insertion.Bottom($$('body')[0], ('<div id="' + msg.id + '" class="tooltip" style="display : none;"><h2>' + msg.head + '</h2><p>' + msg.text + '</p></div>'));
			$(msg.id).setStyle({position : 'absolute'});
		};
		$(msg.id).setStyle({
			right : (($$('body')[0].clientWidth - $(icon).cumulativeOffset()[0]) +'px'),
			top : ($(icon).cumulativeOffset()[1]+icon.offsetHeight+'px')
		});
		$(msg.id).show();
	}
	else
	{
		$(icon).removeClassName('i16_info_over');
		$(msg.id).hide();
	};
}

function getGetParam(name)
{
	var p = location.search.substr(1,location.search.length).split('&');
	var val = '';
	var params = {};
	for (var i=0;i<p.length;i++) {
		var o = p[i].split('=');
		params[o[0]] = o[1];
		if(name == o[0])
		{
			val = o[1];
		};
	}
	//alert(params);
	return(val);
}

function getLang()
{
	var langs = {
		'ru' : true,
		'en' : true
	};
	var lang = location.href.split('/')[3];
	lang = langs[lang] ? lang:'ru';
	return(lang);
}

function getQueryString(qs) 
{
	var params = {};
	
	if (qs == null) qs = location.search.substring(1, location.search.length);
	if (qs.length == 0) return(params);

	qs = qs.replace(/\+/g, ' ');
	var args = qs.split('&'); // parse out name/value pairs separated via &
	
	// split out each name=value pair
	for (var i = 0; i < args.length; i++) {
		var pair = args[i].split('=');
		var name = decodeURIComponent(pair[0]);
		
		params[name] = (pair.length==2) ? decodeURIComponent(pair[1]) : name;
	}
	return(params);
}

function toQueryString(params)
{
	var string = ''
	if(typeof params == 'object')
	{
		for(var key in params)
		{
			string += encodeURIComponent(key)+'='+encodeURIComponent(params[key])+'&';
		}
		string = ((string.length > 0) ? string.substr(0,(string.length-1)):'');
	};
	return(string);
}

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

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

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

function getBodyScrollLeft()
{
  return self.pageXOffset || (document.documentElement && document.documentElement.scrollLeft) || (document.body && document.body.scrollLeft);
}

function getFullOffsetTop(id)
{
	// moving on page to top of legend
	var t = 0;
	var elem = $(id);
	while(elem)
	{
		t += elem.offsetTop;  
		elem = elem.offsetParent;  
	}
	return(t);
}

// standard scripts for AJax-page
function ajaxPrepare(type)
{
	pageState(type);
	
	// load page state by hash
	Event.observe(window, 'load', function() {
		pageState(type);
		setInterval(function(){ if(Data.current.url != window.location.href){ Data.current.url = window.location.href; pageState(type); }; },1000);
	});
}

/************
***** Hash
*****/
// return params object
function getHashParams()
{
	var params = {};
	
	var url = window.location.href;
	var hash_pos = url.indexOf("#");
	if(url.indexOf('#') > 0)
	{
		var hash = url.substr(url.indexOf('#')+1);
		params = getQueryString(hash);
	};
	return(params);
}

// set hash(params strings)
// params - object
function setHashParams(params)
{
	window.location.hash = toQueryString(params);
	Data.current.url = window.location.href;
}




/** Load flash movie */
function loadMovie(ins_id)
{
	swfobject.embedSWF('/swf/player/player.swf?random='+Math.random(), ins_id, '100%', '362', '9.0.0', false, {'xmlpath' : '/swf/player/player.xml?random='+Math.random(), 'fname' : 'updatePromoText'}, {wmode : 'opaque'}, {style : 'color : #ffffff!important;'});
}

function updatePromoText(text)
{
	$('promo_text').update(text);
}

/***** Check Form */
//(/[а-яё]/i.test($(login_id).value))
function checkForm(params)
{
	// check special fields
	if(params.elm)
	{
		if($(params.elm).hasClassName('email'))
		{
			var reg = /^([a-z0-9_\-]+\.)*[a-z0-9_\-]+@([a-z0-9][a-z0-9\-]*[a-z0-9]\.)+[a-z]{2,4}$/i;
			if(!reg.test(params.elm.value))
			{
				$(params.elm).setStyle({color : 'red'}).addClassName('false');
			};
		};
		
		if($(params.elm).hasClassName('url'))
		{
			var reg = /^(https?:\/\/)?(([0-9a-z_!~*'().&=+$%-]+:)?[0-9a-z_!~*'().&=+$%-]+@)?(([0-9]{1,3}\.){3}[0-9]{1,3}|([0-9a-z_!~*'()-]+\.)*([0-9a-z][0-9a-z-]{0,61})+[0-9a-z]\.[a-z]{2,6})(:[0-9]{1,4})?((\/?)|(\/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+\/?)$/i;
			if((params.elm.value != 'http://') && !reg.test(params.elm.value))
			{
				$(params.elm).setStyle({color : 'red'}).addClassName('false');
			};
		};
	};
	
	
	//{formId : 'form_requestion', submitId : 'fr_submit'}
	var flag = true;
	$$('#'+params.formId+' input.required').each(function(elm){
		if($(elm).hasClassName('url'))
		{
			flag = (((elm.value.length > 0) && (elm.value != 'http://')) ? flag:false);
		}
		else
		{
			flag = ((elm.value.length > 0) ? flag:false);
		};
		
		if($(elm).hasClassName('false'))
		{
			flag = false;
		};
	});
	
	$$('#'+params.formId+' select.required').each(function(elm){
		if(!elm.options[elm.selectedIndex].value)
		{
			flag = false;
		};
	});
	
	$(params.submitId).disabled = !flag;
	return(flag);
}


/******
* sendForm(params)
* send data on GET/POST method(default GET)
* 
* @param
* params - object {}
* params.type - form type, value = agency/advertisers
* params.formId - form id
* params.action - url for ajax request (example : '/netcat/add.php')
* params.bodyId - form visual section id
* params.msgId - message box id
* params.method - post/get
* 
*/
function sendForm(params)
{	
	if(!checkForm({formId : params.formId, submitId : 'fr_submit'}))
	{
		return(false);
	};
	
	// example
	//params {formId : 'form_requestion', action : '/netcat/add.php', bodyId : 'form_requestion_body', msgId : 'form_requestion_msg'}
	var urlparams = '';
	$$('#'+params.formId+' input').each(function(elm){
		urlparams += ((urlparams.length > 0) ? '&':'')+(elm.name ? elm.name:elm.id)+'='+encodeURIComponent(elm.value);
	});
	// add data from select
	$$('#'+params.formId+' select').each(function(elm){
		urlparams += ((urlparams.length > 0) ? '&':'')+(elm.name ? elm.name:elm.id)+'='+encodeURIComponent(elm.options[elm.selectedIndex].value);
	});
	
	if(params.type)
	{
		urlparams += '&form_type='+params.type;
	};
	
	var url = params.action+'?'+urlparams;
	
	new Ajax.Request(url, {
	  method: 'get',
	  onSuccess: function(transport) {
		if (transport.responseText.length > 0)
		{
			$(params.bodyId).hide();
			$(params.msgId).show();
			
			// add ending zero px, update start zero px
			if($('px_stat_reg'))
			{
				$('px_stat_reg').update('<img src="http://ad.adriver.ru/cgi-bin/rle.cgi?sid=92675&sz=app_done&bt=21&pz=0&rnd=418119712" border="0" width="1" height="1" />');
			};
			
			$$('#'+params.formId+' input').each(function(elm){
				if(elm.type=='text')
				{
					if($(elm).hasClassName('url'))
					{
						elm.value = 'http://';
					}
					else
					{
						elm.value = '';
					};
				};
			});
		}
		else
		{
			// error
		};
	  }
	});
}

function sendRequest(params)
{	
	// example
	//params {formId : 'form_requestion', action : '/netcat/add.php', successFunction : function(){...}}
	var urlparams = '';
	$$('#'+params.formId+' input').each(function(elm){
		urlparams += ((urlparams.length > 0) ? '&':'')+(elm.name ? elm.name:elm.id)+'='+encodeURIComponent(elm.value);
	});
	$$('#'+params.formId+' textarea').each(function(elm){
		urlparams += ((urlparams.length > 0) ? '&':'')+(elm.name ? elm.name:elm.id)+'='+encodeURIComponent(elm.value);
	});
	
	var url = params.action+'?'+urlparams;
	
	new Ajax.Request(url, {
	  method: 'get',
	  onSuccess: function(transport) {
		if ((transport.responseText.length > 0) && params.successFunction)
		{
			params.successFunction();
		};
	  }
	});
}


/* AJAX */
/*****************
**** viewNews
***/
function getLastNews(id,cc,sub)
{
	cc = cc ? parseInt(cc):0;
	sub = sub ? parseInt(sub):0;
	
	new Ajax.Request('/ajax/get_last_news.php?lang='+getLang()+'&cc='+cc+'&sub='+sub, {
		method: 'get',
		onSuccess: function(data) {
			if($(id))
			{
				$(id).update(data.responseText);
			};
		}
	});
}

function getLastVacancy(id,cc,sub)
{
	cc = cc ? parseInt(cc):0;
	sub = sub ? parseInt(sub):0;
	
	new Ajax.Request('/ajax/get_last_vacancy.php?lang='+getLang()+'&cc='+cc+'&sub='+sub, {
		method: 'get',
		onSuccess: function(data) {
			if($(id))
			{
				$(id).update(data.responseText);
			};
		}
	});
}

function getLastMassMedia(head_id,body_id,date_id)
{
	if($(head_id)
		&& $(body_id)
		&& $(date_id))
	{
		new Ajax.Request('/ajax/get_last_mass_media.php?lang='+getLang(), {
			method: 'get',
			onSuccess: function(data) {
				if(data.responseText)
				{
					new Ajax.Request('/ajax/get_current_date.php?lang='+getLang(), {
						method: 'get',
						onSuccess: function(data2) {
							$(head_id).show();
							$(body_id).update(data.responseText);
							$(date_id).update(data2.responseText);
						}
					});
				};
			}
		});
	};
}

function getLastSM(head_id,body_id,refresh)
{
	// refresh cache, yes or no
	refresh = refresh ? '1':'0';
	new Ajax.Request('/ajax/get_last_sm.php?refresh='+refresh+'&lang='+getLang(), {
		method: 'get',
		onSuccess: function(data) {
			if($(body_id) && $(head_id))
			{
				$(head_id).show();
				$(body_id).update(data.responseText);
			};
		}
	});
}

/*****************
**** view ajax elements
***/
// for ajax news, demand,...
// prefix = news,demand
function viewElement(prefix,id)
{
	var link_id = prefix+'_link_' + id;
	var body_id = prefix+'_body_' + id;
	if($(link_id) && $(body_id))
	{
		$(prefix+'_head').update($(link_id).innerHTML);
		$(prefix+'_body').update($(body_id).innerHTML);
	};
}

// load head and body lib element
function libElement(id,cc,sub,catalogue)
{
	id = (id ? parseInt(id):0);
	
	// update head
	new Ajax.Request('/ajax/get_obj_field.php?f=Name&id='+id+'&cc='+cc+'&sub='+sub+'&catalogue='+catalogue, {
		method: 'get',
		onSuccess: function(data) {
			$('el_head').update(data.responseText);
			
			// set tooltips
			if(tooltip){tooltip.research();};
		}
	});
	
	// update body
	new Ajax.Request('/ajax/get_obj_field.php?f=TextFull&id='+id+'&cc='+cc+'&sub='+sub+'&catalogue='+catalogue, {
		method: 'get',
		onSuccess: function(data) {
			$('el_body').update(data.responseText);
			
			// set tooltips
			if(tooltip){tooltip.research();};
		}
	});
	
	if(id)
	{
		setHashParams({el : id});
	};
}

// load head and body lib element
function getVacancy(id,cc,sub,catalogue)
{
	id = (id ? parseInt(id):0);
	
	// update head
	new Ajax.Request('/ajax/get_obj_field.php?f=Name&id='+id+'&cc='+cc+'&sub='+sub+'&catalogue='+catalogue, {
		method: 'get',
		onSuccess: function(data) {
			$('vacancy_head').update(data.responseText);
		}
	});
	
	// update body
	new Ajax.Request('/ajax/get_obj_field.php?f=TextFull&id='+id+'&cc='+cc+'&sub='+sub+'&catalogue='+catalogue, {
		method: 'get',
		onSuccess: function(data) {
			$('vacancy_body').update(data.responseText);
		}
	});
	
	if(id)
	{
		setHashParams({vacancy : id});
	};
}

// load head and body lib element
function getRequirement(id,cc,sub,catalogue)
{
	id = (id ? parseInt(id):0);
	
	// update head
	new Ajax.Request('/ajax/get_obj_field.php?f=Name&id='+id+'&cc='+cc+'&sub='+sub+'&catalogue='+catalogue, {
		method: 'get',
		onSuccess: function(data) {
			$('requirement_head').update(data.responseText);
			
			// set tooltips
			if(tooltip){tooltip.research();};
		}
	});
	
	// update body
	new Ajax.Request('/ajax/get_obj_field.php?f=TextFull&id='+id+'&cc='+cc+'&sub='+sub+'&catalogue='+catalogue, {
		method: 'get',
		onSuccess: function(data) {
			$('requirement_body').update(data.responseText);
			
			// set tooltips
			if(tooltip){tooltip.research();};
		}
	});
	
	if(id)
	{
		setHashParams({r : id});
	};
}

// load head and body lib element
function getFaq(id)
{
	id = (id ? parseInt(id):0);
	
	//alert($$('div.article-list dl dd div.faq_body')[0]);
	
	if(id && $('faq_body_'+id) && $('faq_head_'+id))
	{
		$('faq_content').innerHTML = '<h1 class="first">'+$('faq_head_'+id).innerHTML+'</h1><div>'+$('faq_body_'+id).innerHTML+'</div>';
		
		setHashParams({faq : id});
	}
	else
	{
		var faq_heads = $$('div.article-list dl dd div.faq_head');
		var faq_bodies = $$('div.article-list dl dd div.faq_body');
		var faq_content = '';
		
		for(var i=0; i<faq_heads.length; i++)
		{
			faq_content += '<h1 class="'+(i>0 ? '':'first')+'">'+faq_heads[i].innerHTML+'</h1><div>'+faq_bodies[i].innerHTML+'</div>';
		}
		$('faq_content').innerHTML = faq_content;
	};
}

/*******************
******** page state loader
***/
function pageState(type)
{
	var params = getHashParams();
	// old segments
	if(type == 'segment')
	{
		audienceLegendReset();
		if(params.cat)
		{
			var li1 = 'legend1_li';
			var li2 = 'legend2_li';
			
			// choose cat on menu
			if($(li1+params.cat)) { $(li1+params.cat).addClassName('selected').setStyle({backgroundColor : $(li1+params.cat).getStyle('borderLeftColor')}); };
			if($(li2+params.cat)) { $(li2+params.cat).addClassName('selected').setStyle({backgroundColor : $(li2+params.cat).getStyle('borderLeftColor')}); };
			
			// update name of page
			if($$('#'+(li2+params.cat)+' span.name') &&
				$$('#'+(li2+params.cat)+' span.name')[0])
			{
				var cat_name = $$('#'+(li2+params.cat)+' span.name')[0].innerHTML;
				
				var category_name = 'Категория &#171;'+cat_name+'&#187;';
				if(getLang()=='en'){category_name = '"'+cat_name+'" category';};
				$('category_name').update(category_name);
			};
			
			// load or update diagram
			loadFlash2('oneCategoryFlash',params.cat);
			
			// update category segments details section
			audienceSegmentCatDetails(params.cat);
			
			// update segments section
			new Ajax.Request('/ajax/audience_getsegments.php?id='+params.cat+'&lang='+getLang(), {
				method: 'get',
				onSuccess: function(data) {
					$('segments_list').update(data.responseText);
					
					// select segment
					if(params.segm)
					{
						audienceSegmentInfoFull(params.segm);
					}
					else
					{
						// reset info text
						ASInfoCardUpdateVert();
					};
				}
			});
			
			$('card1').hide();
			$('card2').show();
		}
		else
		{
			if(params.segm)
			{
				ASInfoCardUpdate(params.segm);
				// moving on page to top of legend
				scrollTo(0,getFullOffsetTop('legend1'));
			}
			else
			{
				ASInfoCardUpdate();
			};
			
			$('card1').show();
			$('card2').hide();
		};
	}
	// new segments
	else if(type == 'segments')
	{
		if(params.segment && $('sub_legend_item_'+params.segment))
		{
			$$('#legend .legend_subitem_container').each(function(elm){ if(elm.down('span#'+'sub_legend_item_'+params.segment)){elm.show();}});
			audienceLegendSubItemClick(params.segment,$('sub_legend_item_'+params.segment));
		};
	}
	else if(type == 'channels')
	{
		$$('#channels ul li').each(function(elm){elm.removeClassName('selected');});
	
		if($('channel_'+params.channel))
		{
			$('channel_'+params.channel).addClassName('selected');
		};
		
		sitesChannelFormatLoad(params.channel);
		sitesChannelInfoLoad(params.channel);
		
		// update current channel id box
		$('current_channel').update(params.channel);
		
		// update diagramm
		loadFlash4('flash4',params.channel);
	}
	else if(type == 'mediaplans')
	{
		$$('#legend li').each(function(elm){elm.removeClassName('selected').setStyle({backgroundColor : ''});});
		
		if($('legend_'+params.plan))
		{
			$('legend_'+params.plan).addClassName('selected').setStyle({backgroundColor : $('legend_'+params.plan).getStyle('borderLeftColor')});
		};
		
		// update info
		mediaplansInfoUpdate(params.plan);
	}
	else if(type == 'reklamarket')
	{
		if(!params.cat && params.site)
		{
			// get category id by site id
			new Ajax.Request('/ajax/sites_getreklcatbysite.php?id='+params.site, {
				method: 'get',
				onSuccess: function(data) {
					sitesReklLegClick(data.responseText);
				}
			});
		}
		else
		{
			sitesReklLegClick(params.cat);
		};
	};
}


/**************
**** formats
***/
function formatsBarsLoad(data)
{
	//data{id,type,format,maxmin,nf,bar_name}
	new Ajax.Updater(data.id, '/ajax/formats_getlist.php?lang='+getLang(), {
		method: 'get',
		parameters : data,
		insertion: Insertion.Top
	});
}

/**************
**** example banners
***/
function bannerExample(id,format)
{
	new Ajax.Request('/ajax/get_banners_code.php?format='+format, {
		method: 'get',
		onSuccess: function(data) {
			$(id).update(data.responseText);
		}
	});
}

/**************
**** mediaplans
***/
function mediaplansLegend(page_id)
{
	new Ajax.Request('/ajax/mediaplans_getlegend.php?page_id='+page_id, {
		method: 'get',
		onSuccess: function(data) {
			$('legend').update(data.responseText);
		}
	});
	$('legendloader').remove();
}

function mediaplansLegendOver(id,el)
{
	$$('#'+el.parentNode.id+' li').each(function(elm){elm.removeClassName('over')});
	if(parseInt(id) > 0)
	{
		$(el).addClassName('over');
	};
}

function mediaplansLegendClick(id,el)
{
	$$('#'+el.parentNode.id+' li').each(function(elm){
		elm.removeClassName('selected').setStyle({backgroundColor : ''});
	});
	$(el).addClassName('selected').setStyle({backgroundColor : $(el).getStyle('borderLeftColor')});
	
	// update info
	mediaplansInfoUpdate(id);
	
	// update url hash
	setHashParams({plan : id});
}

// update info
function mediaplansInfoUpdate(id)
{
	if(id)
	{
		new Ajax.Request('/ajax/mediaplans_getinfo.php?id='+id+'&data_msg=44&about_msg=47', {
			method: 'get',
			onSuccess: function(data) {
				$('mediaplans_info').update(data.responseText);
				
				if(/KHTML/.test(navigator.userAgent) && /Apple/.test(navigator.userAgent))
				{
					setTimeout('$(\'content\').update($(\'content\').innerHTML);',0);
				};
			}
		});
	}
	else
	{
		$('mediaplans_info').update($('mediaplans_info_def').innerHTML);
		
		if(/KHTML/.test(navigator.userAgent) && /Apple/.test(navigator.userAgent))
		{
			setTimeout('$(\'content\').update($(\'content\').innerHTML);',0);
		};
	};
}

/**************
**** sites
***/
function loadFlash3(ins_id)
{
	swfobject.embedSWF('/images/soloway/soloway_info.swf', ins_id, '350', '375', '9.0.0', false, {
		'id' : '3',
		'mainXMLName' : encodeURIComponent('/xml/soloway_info3.xml?random='+Math.random()+'&lang='+getLang()),
		'hName' : 'sitesMainOver',
		'fName' : 'sitesMainClick'
	}, {wmode : 'opaque'}, {style : 'color : #ffffff!important;'});
}

function sitesMainOver(name)
{
	// name = channels, netvision or admarket, from id in XML
	$$('#legend li').each(function(elm){elm.removeClassName('over')});
	if($('legend_'+name))
	{
		$('legend_'+name).addClassName('over');
	};
	
	if($('flash3').hover)
	{
		$('flash3').hover(name);
	};
}

function sitesMainClick(name,el_id)
{
	var links = {
		channels : ($('legend_channels') ? $('legend_channels').readAttribute('tourl'):''),
		netvision : ($('legend_netvision') ? $('legend_netvision').readAttribute('tourl'):''),
		admarket : ($('legend_admarket') ? $('legend_admarket').readAttribute('tourl'):'')
	};
	
	if(links[name])
	{
		var hash = '';
		if(name == 'channels')
		{
			hash = '#channel='+el_id;
		}
		else if (name == 'admarket')
		{
			hash = '#site='+el_id;
		};
		window.location.href = links[name]+hash;
	}
}


function loadFlash4(ins_id,ch_id)
{
	if($(ins_id).switchIt)
	{
		$(ins_id).switchIt(ch_id ? (ch_id+''):'0');
		$('jstest').update(ch_id ? (ch_id+'') : '0');
	}
	else
	{
		swfobject.embedSWF('/images/soloway/soloway_info.swf', ins_id, '340', '375', '9.0.0', false, {
			'id' : '4',
			'mainXMLName' : encodeURIComponent('/xml/soloway_info4.xml?random='+Math.random()+'&lang='+getLang()),
			'hName' : 'sitesChannelOver',
			'fName' : 'sitesChannelClick',
			'currentSelection' : (ch_id ? (ch_id + ''):'')
		}, {wmode : 'opaque'}, {style : 'color : #ffffff!important;'});
	};
}


function sitesChannelFormatLoad(id)
{
	id = id ? id:0;
	
	// get formats controls status
	var f_params = '';
	$$('#formats input').each(function(input){
		f_params = f_params + '&' + input.id + '=' + (input.checked ? 1:0);
	});
	
	// update formats
	new Ajax.Request('/ajax/sites_getchannelsformats.php?id='+id+(f_params ? f_params:'&first=1')+'&lang='+getLang(), {
		method: 'get',
		onSuccess: function(data) {
			$('formats').update(data.responseText);
		}
	});
}


function sitesChannelInfoLoad(id)
{
	id = id ? id:0;
	
	// get formats controls status
	var f_params = '';
	$$('#formats input').each(function(input){
		f_params = f_params + '&' + input.id + '=' + (input.checked ? 1:0);
	});
	
	// update info card
	if(id)
	{
		// get channel world
		new Ajax.Request('/ajax/get_i18n.php?k='+'Channel'+'&lang='+getLang(), {
			method: 'get',
			onSuccess: function(data) {
				var channel = data.responseText;
				
				// get channle name
				new Ajax.Request('/ajax/sites_getchannelsname.php?id='+id+'&lang='+getLang(), {
					method: 'get',
					onSuccess: function(data) {
						var headText = ((getLang() == 'ru') ? (channel+' &laquo;'+data.responseText+'&raquo;'):(/*'"'+*/data.responseText/*+'" '+channel.toLowerCase()*/));
						$('channel_info_head').update(headText);
					}
				});
			}
		});
		
		new Ajax.Request('/ajax/sites_getchannelinfo.php?id='+id+f_params+'&lang='+getLang()+'&open_area='+getGetParam('open_area'), {
			method: 'get',
			onSuccess: function(data) {
				$('channel_info_body').update(data.responseText);
			}
		});
	}
	else
	{
		$('channel_info_head').update($('channel_info_head_def').innerHTML);
		$('channel_info_body').update($('channel_info_body_def').innerHTML);
	};
}

function sitesChannelOver(id)
{
	$$('#channels ul li').each(function(elm){elm.removeClassName('over');});
	if($('channel_'+id))
	{
		$('channel_'+id).addClassName('over');
	};
	
	if($('flash4').hover)
	{
		$('flash4').hover(id);
	};
}

function sitesChannelClick(id,switchIt)
{
	$$('#channels ul li').each(function(elm){elm.removeClassName('selected');});
	
	if($('channel_'+id))
	{
		$('channel_'+id).addClassName('selected');
	};
	
	// update formats
	sitesChannelFormatLoad(id);
	// update info card
	sitesChannelInfoLoad(id);
	
	// update current channel id box
	$('current_channel').update(id);
	
	// update diagramm
	if(switchIt)
	{
		loadFlash4('flash4',id)
	};
	
	// update url hash
	setHashParams({channel : id});
}

function sitesChannelFormatClick(elid)
{
	if($(elid))
	{
		$(elid).checked = !$(elid).checked;
		$($(elid).parentNode.parentNode).toggleClassName('selected');
	};
	
	// get formats controls status
	sitesChannelInfoLoad($('current_channel').innerHTML);
	
	// update diagramm
	if($(elid) && $('flash4').turnFormat)
	{
		var flag = ($(elid).checked ? '1':'0');
		var format_name = '';
		if($(elid).id == 'format_1')
		{
			format_name = 'rich';
		}
		else if($(elid).id == 'format_2')
		{
			format_name = 'pop';
		}
		else if($(elid).id == 'format_3')
		{
			format_name = 'top';
		}
		else if($(elid).id == 'format_4')
		{
			format_name = 'tease';
		};
		$('flash4').turnFormat(format_name+flag);
	};
}


function loadFlash5(ins_id)
{
	swfobject.embedSWF('/images/soloway/soloway_info.swf', ins_id, '315', '190', '9.0.0', false, {
		'id' : '5',
		'mainXMLName' : '/xml/soloway_info5.xml?random='+Math.random(),
		'hName' : 'sitesReklFlashOver',
		'fName' : 'sitesReklFlashClick'
	}, {wmode : 'opaque'}, {style : 'color : #ffffff!important;'});
}

function sitesReklFlashOver(cat_id,site_id)
{
	cat_id = cat_id ? cat_id : 0;
	sitesReklLegOver(cat_id);
}


function sitesReklFlashClick(cat_id,site_id)
{
	sitesReklLegClick(cat_id);
}

function sitesReklLegClick(id)
{
	$$('#legend li').each(function(elm){
		elm.removeClassName('selected').setStyle({backgroundColor : ''});
	});
	
	if(id)
	{
		if($('cat_'+id))
		{
			$('cat_'+id).addClassName('selected').setStyle({backgroundColor : $('cat_'+id).getStyle('borderLeftColor')});
			$('current_cat').update(id);
		};
		
		// update url hash
		setHashParams({cat : id});
	};
	
	// update info
	sitesReklCatInfo(id);
}

function sitesReklLegOver(id)
{
	if($('cat_'+id))
	{
		$('cat_'+id).addClassName('over');
	}
	else
	{
		$$('#legend li').each(function(elm){elm.removeClassName('over');});
	};
}

function loadSitesReklLegend(elid,update)
{
	update = update ? true:false;
	
	var f_params = '';
	if(update)
	{
		$$('#formats input').each(function(input){
			f_params = f_params + ((f_params.length > 0) ? '&':'?') + input.id + '=' + (input.checked ? 1:0);
		});
		
		if($('current_cat'))
		{
			f_params = f_params + ((f_params.length > 0) ? '&':'?') + 'current_cat=' + $('current_cat').innerHTML;
		};
	};
	
	new Ajax.Request('/ajax/sites_getrekllegend.php'+f_params+(f_params ? '&':'?')+'lang='+getLang(), {
		method: 'get',
		onSuccess: function(data) {
			$(elid).update(data.responseText);
		}
	});
}

function sitesReklFormatClick(elid)
{
	if($(elid))
	{
		$(elid).checked = !$(elid).checked;
		$($(elid).parentNode.parentNode).toggleClassName('selected');
	};
	
	// get formats controls status
	var f_params = '';
	$$('#formats input').each(function(input){
		f_params = f_params + '&' + input.id + '=' + (input.checked ? 1:0);
	});
	
	// update info
	sitesReklCatInfo($('current_cat').innerHTML);
	
	// update legend
	loadSitesReklLegend('legend_lis',true);
	
	// update diagramm
	if($(elid) && $('flash5').turnFormat)
	{
		var flag = ($(elid).checked ? '1':'0');
		var format_name = '';
		if($(elid).id == 'format_1')
		{
			format_name = 'rich';
		}
		else if($(elid).id == 'format_2')
		{
			format_name = 'pop';
		}
		else if($(elid).id == 'format_3')
		{
			format_name = 'top';
		}
		else if($(elid).id == 'format_4')
		{
			format_name = 'tease';
		};
		$('flash5').turnFormat(format_name+flag);
	};
}



function sitesReklCatInfo(id)
{
	if(parseInt(id) > 0)
	{
		// update head
		// get channel world
		new Ajax.Request('/ajax/get_i18n.php?k='+'sites_category'+'&lang='+getLang(), {
			method: 'get',
			onSuccess: function(data) {
				var sites_category = data.responseText;
				
				// get category name
				new Ajax.Request('/ajax/sites_getreklcathead.php?id='+parseInt(id)+'&lang='+getLang(), {
					method: 'get',
					onSuccess: function(data) {
						var headText = ((getLang() == 'ru') ? (sites_category+' &laquo;'+data.responseText+'&raquo;'):('"'+data.responseText+'" '+sites_category.toLowerCase()));
						$('info_cat_head').update(headText);
					}
				});
			}
		});
		
		// get formats controls status
		var f_params = '';
		$$('#formats input').each(function(input){
			f_params = f_params + '&' + input.id + '=' + (input.checked ? 1:0);
		});
		
		// update info
		new Ajax.Request('/ajax/sites_getreklcatinfo.php?id='+id+f_params+'&lang='+getLang(), {
			method: 'get',
			onSuccess: function(data) {
				$('info_cat_body').update(data.responseText);
			}
		});
	}
	else
	{
		$('info_cat_head').update($('info_cat_head_def').innerHTML);
		$('info_cat_body').update($('info_cat_body_def').innerHTML);
	};
}



function loadFlash6(ins_id)
{
	swfobject.embedSWF('/images/soloway/soloway_info.swf', 'flash6', '260', '250', '9.0.0', false, {
		'id' : '6',
		'mainXMLName' : '/xml/soloway_info4.xml?random='+Math.random(),
		'fName' : 'sitesEconomDiagramClick'
	}, {wmode : 'opaque'}, {style : 'color : #ffffff!important;'});
}



function sitesEconomFormatClick(elid)
{
	if($(elid))
	{
		$(elid).checked = !$(elid).checked;
		$($(elid).parentNode.parentNode).toggleClassName('selected');
	};
	
	// update data(display formats info) container
	$$('#formats input').each(function(input){
		if($('df_' + input.id) 
			&& parseInt($('df_' + input.id).innerHTML) 
			&& !input.checked)
		{
			$('df_' + input.id).update('0');
		};
	});
	
	// update info
	sitesEconomUpdateInfo();
	
	// update diagramm
	if($(elid) && $('flash6').turnFormat)
	{
		$('flash6').turnFormat('rich' + ($('format_1').checked ? '1':'0'));
		$('flash6').turnFormat('pop' + ($('format_2').checked ? '1':'0'));
		$('flash6').turnFormat('top' + ($('format_3').checked ? '1':'0'));
		$('flash6').turnFormat('tease' + ($('format_4').checked ? '1':'0'));
	};
}

function sitesEconomDiagramClick(params)
{//alert(params);
	// update data(display formats info) container
	// reset...
	$$('#formats input').each(function(input){
		if($('df_' + input.id))
		{
			$('df_' + input.id).update('0');
		};
	});
	// set true flags if true parameters
	// .......
	
	var ids = [1,2,3,4]; // test
	for(var i=0; i < params.toArray().length; i++)
	{
		if((params.toArray()[i] == '1')
			&& $('format_'+ids[i])
			&& $('format_'+ids[i]).checked)
		{
			$('df_format_'+ids[i]).update('1');
		};
	};
	
	// update info
	sitesEconomUpdateInfo();
}

function sitesEconomUpdateInfo()
{
	// get formats controls status
	var f_params = '';
	var formats_str = '';
	$$('#formats input').each(function(input){
		if($('df_' + input.id))
		{
			if(parseInt($('df_' + input.id).innerHTML))
			{
				f_params = f_params + ((f_params.length > 0) ? '&':'') + input.id + '=' + parseInt($('df_' + input.id).innerHTML);
				formats_str = formats_str + ((formats_str.length > 0) ? ', ':'') + $(input.parentNode).innerHTML.stripTags();
			};
			
		};
	});
	
	if(f_params.length > 0)
	{
		new Ajax.Request('/ajax/get_i18n.php?k='+'sites_use'+'&lang='+getLang(), {
			method: 'get',
			onSuccess: function(data) {
				$('info_head').update(data.responseText+' ' + formats_str);
			}
		});
		
		new Ajax.Request('/ajax/sites_geteconominfo.php?'+f_params+(f_params ? '&':'?')+'lang='+getLang()+'&open_area='+getGetParam('open_area'), {
			method: 'get',
			onSuccess: function(data) {
				$('info_body').update(data.responseText);
			}
		});
	}
	else
	{
		$('info_head').update($('info_head_def').innerHTML);
		$('info_body').update($('info_body_def').innerHTML);
	};
}



function sitesOdnPrice(id)
{
	if(id)
	{
		new Ajax.Request('/ajax/sites_getodn_price.php?lang='+getLang(), {
			method: 'get',
			onSuccess: function(data) {
				$(id).update(data.responseText);
			}
		});
	}
}



/**************
**** audience
***/
function audienceViewCategory(id,name,lang)
{
	var lang = getLang();
	
	// update name and legend
	var category_name = 'Категория &#171;'+name+'&#187;';
	if(lang=='en'){category_name = '"'+name+'" category';};
	$('category_name').update(category_name);
	$('legend2_li'+id).addClassName('selected').setStyle({backgroundColor : $('legend2_li'+id).getStyle('borderLeftColor')});
	
	// load or update diagram
	loadFlash2('oneCategoryFlash',id);
	
	// update segments section
	new Ajax.Request('/ajax/audience_getsegments.php?id='+id+'&lang='+encodeURIComponent(lang), {
		method: 'get',
		onSuccess: function(data) {
			$('segments_list').update(data.responseText);
		}
	});
	
	// update category segments details section
	audienceSegmentCatDetails(id);
	
	// reset info text
	ASInfoCardUpdateVert();
	
	$('card1').hide();
	$('card2').show();
}

function loadFlash2(ins_id,cat_id)
{
	if($(ins_id).switchIt)
	{
		$(ins_id).switchIt(cat_id);
	}
	else
	{
		$('jstest').update('random='+Math.random()+'&lang='+getLang());
		swfobject.embedSWF('/images/soloway/soloway_info.swf', ins_id, '340', '344', '9.0.0', false, {
			'id' : '2',
			'mainXMLName' : encodeURIComponent('/xml/soloway_info1.xml?random='+Math.random()+'&lang='+getLang()),
			'fName' : 'audienceSegmentInfoFull',
			'hName' : 'audienceSegmentOver',
			'initId' : cat_id
		}, {wmode : 'opaque'}, {style : 'color : #ffffff!important;'});
	};
}

// update category segments details section
function audienceSegmentCatDetails(id,lang)
{
	var lang =  getLang();
	
	new Ajax.Request('/ajax/audience_category_pricelist.php?id='+id+'&lang='+encodeURIComponent(lang), {
		method: 'get',
		onSuccess: function(data) {
			$('price_card').update(data.responseText);
		}
	});
	
	new Ajax.Request('/ajax/audience_category_area.php?id='+id+'&lang='+encodeURIComponent(lang), {
		method: 'get',
		onSuccess: function(data) {
			$('area_card').update(data.responseText);
		}
	});
	
	new Ajax.Request('/ajax/audience_category_odn.php?id='+id+'&lang='+encodeURIComponent(lang), {
		method: 'get',
		onSuccess: function(data) {
			$('odn_card').update(data.responseText);
		}
	});
}

// for click by segment on diagram number 1
function audienceSegmentInfo(id)
{
	// update info card
	ASInfoCardUpdate(id);
	
	// moving on page to top of legend
	scrollTo(0,getFullOffsetTop('legend1'));
	
	// update url hash
	setHashParams({segm : id});
}

// Audiense Segment - info card update or set default value(help)
function ASInfoCardUpdate(id)
{
	if(id)
	{
		// save default value(help)
		if(!Data.html.ASInfoCardUpdate)
		{
			Data.html.ASInfoCardUpdate = {
				head : $('segment_info_head').innerHTML,
				body : $('segment_info_body').innerHTML
			};
		};
		
		new Ajax.Request('/ajax/audience_segmentname.php?id='+id+'&lang='+getLang(), {
			method: 'get',
			onSuccess: function(data) {
				$('segment_info_head').update(data.responseText);
			}
		});
		new Ajax.Request('/ajax/audience_segmentinfo.php?id='+id+'&lang='+getLang(), {
			method: 'get',
			onSuccess: function(data) {
				$('segment_info_body').update(data.responseText);
			}
		});
	}
	else
	{
		if(Data.html.ASInfoCardUpdate)
		{
			$('segment_info_head').update(Data.html.ASInfoCardUpdate.head);
			$('segment_info_body').update(Data.html.ASInfoCardUpdate.body);
		};
	};
}

// Audiense Segment - info card update or set default value(help)
function ASInfoCardUpdateVert(id)
{
	if(id)
	{
		// save default value(help)
		if(!Data.html.ASInfoCardUpdateVert)
		{
			Data.html.ASInfoCardUpdateVert = {
				head : $('segment_info_vert_head').innerHTML,
				body : $('segment_info_vert_body').innerHTML
			};
		};
		
		// get head
		var segm_name  = $('segment_menu_elm'+id).innerHTML;
		$('segment_info_vert_head').update(segm_name);
		
		// ajax request for get information
		new Ajax.Request('/ajax/audience_segmentinfo_vert.php?id='+id+'&lang='+getLang(), {
			method: 'get',
			onSuccess: function(data) {
				$('segment_info_vert_body').update(data.responseText);
			}
		});
	}
	else
	{
		// set default value(help)
		if(Data.html.ASInfoCardUpdateVert)
		{
			$('segment_info_vert_head').update(Data.html.ASInfoCardUpdateVert.head);
			$('segment_info_vert_body').update(Data.html.ASInfoCardUpdateVert.body);
		};
	};
}

function audienceSegmentInfoFull(id)
{
	$$('#segments_list li').each(function(elm){elm.removeClassName('selected');});
	if($('segment_menu_elm'+id))
	{
		$('segment_menu_elm'+id).addClassName('selected');
		ASInfoCardUpdateVert(id);
	};
	
	// update url hash
	var params = getHashParams();
	params.segm = id;
	setHashParams(params);
}

function audienceSegmentOver(id)
{
	$$('#segments_list li').each(function(elm){elm.removeClassName('over');});
	
	if($('oneCategoryFlash').hover)
	{
		$('oneCategoryFlash').hover(id+'');
	};
	
	if((parseInt(id) > 0) && $('segment_menu_elm' + id))
	{
		$('segment_menu_elm' + id).addClassName('over');
	};
}

function audienceMainFlashLoad(ins_id)
{
	swfobject.embedSWF('/images/soloway/soloway_info.swf', ins_id, '620', '300', '9.0.0', false, {
		'id' : '1',
		'mainXMLName' : encodeURIComponent('/xml/soloway_info1.xml?random='+Math.random()+'&lang='+getLang()),
		'fName' : 'audienceSegmentInfo',
		'hName' : 'audienceOverLegend'
	}, {wmode : 'opaque'}, {style : 'color : #ffffff!important;'});
}

function audienceOverLegend(id)
{
	var ulid = 'legend1';
	var elid = ulid + '_li' + id;
	
	$$('#'+ulid+' li').each(function(elm){elm.removeClassName('over');});
	
	if($('allCategoryFlash').hover1)
	{
		$('allCategoryFlash').hover1(id+'');
	};
	
	if($(elid))
	{
		$(elid).addClassName('over');
	};
}

function audienceOverLegend2(id)
{
	var ulid = 'legend2';
	var elid = ulid + '_li' + id;
	
	$$('#'+ulid+' li').each(function(elm){elm.removeClassName('over');});
	
	if($(elid))
	{
		$(elid).addClassName('over');
	};
}

function audienceLegendClick(id,el,lang)
{
	var lang = lang ? lang:'ru';
	
	audienceLegendReset();
	
	$(el).addClassName('selected').setStyle({backgroundColor : $(el).getStyle('borderLeftColor')});
	audienceViewCategory(id,$$('#'+$(el).id+' span.name')[0].innerHTML,lang);
	
	// update url hash
	setHashParams({cat : id});
}

// reset legend
function audienceLegendReset()
{
	$$('#legend1 li').each(function(elm){
		elm.removeClassName('selected').setStyle({backgroundColor : ''});
	});
	$$('#legend2 li').each(function(elm){
		elm.removeClassName('selected').setStyle({backgroundColor : ''});
	});
}


/******* audience ******/
function audienceLegendLoad(container_id)
{
	new Ajax.Request('/ajax/audience_getlegend.php?ulid=legend', {
		method: 'get',
		onSuccess: function(data) {
			new Insertion.Bottom($(container_id), data.responseText);
			
			// ajax prepare
			ajaxPrepare('segments');
		}
	});
}

function audienceLegendOver(legend_id, el)
{
	$$('#'+legend_id+' span.legend_item').each(function(elm){elm.removeClassName('over');});
	
	if(el)
	{
		$(el).addClassName('over');
	};
}

function audienceLegendItemSwitch(id,lang)
{
	var lang = lang ? lang:'ru';
	
	if($('legend_subitem_container_'+id).visible())
	{
		$('legend_subitem_container_'+id).hide();
	}
	else
	{
		$('legend_subitem_container_'+id).show()
	};
}

function audienceLegendSubItemClick(id,el)
{
	$$('#legend span.legend_item').each(function(elm){elm.removeClassName('selected');});
	$(el).addClassName('selected');
	
	// ajax request for get information
	new Ajax.Request('/ajax/audience_segment_card.php?id='+id+'&lang='+getLang(), {
		method: 'get',
		onSuccess: function(data) {
			$('audience_segment_card').update(data.responseText);
		}
	});
	
	// update url hash
	setHashParams({segment : id});
}


/** Search result **/
function loadSearchResult()
{
	if(!$('search_result_page') || ($('search_result_page').value == 'end')) {return(false);};
	
	var h = $$('html')[0].getHeight(); // html height
	var dh = document.viewport.getHeight(); // display height
	var sh = document.viewport.getScrollOffsets()[1]; // scroll height
	var R = 0.3 // load result after scrolled page more than display height with rate from bottom
	
	if((h - (dh + sh)) < R*dh)
	{
		var search_result_page = parseInt($('search_result_page').value);
		$('search_result_page').remove();
		
		new Ajax.Request('/ajax/search_result.php?query_string='+encodeURIComponent($('search_string').value)+'&p='+(search_result_page+1), {
			method: 'get',
			onSuccess: function(data) {
				if($('search_list'))
				{
					new Insertion.Bottom($('search_list'), data.responseText);
				};
			}
		});
	};
}
/** /Search result **/
