
function trackAction(url)	{
  //try {pageTracker._trackPageview(url);return true;}
  try {_gaq.push(['_link', url]);return true;}
  catch (err) { return false;}
}
function gouserhomePopup(nick)	{
	opener.location= '/user/' + nick;
	window.close();
}

function golocationFromPopup(l)	{
	opener.location= l;
	window.close();
}

function gouserhomeSmooth(nick)	{
	parent.document.location= '/user/' + nick;
	parent.TB_remove();
}
function addFavoriteUser(l, usr_id) {
  return addFavoriteUser(l, usr_id, 'msg_response');
}
function addFavoriteUser(l, usr_id, div_name) {
	var url='/common/ASYNC_adduserfavorite';
	trackAction(url);
	l.slideIn();
	log = $(div_name).empty().addClass('ajax-loading');

	var ajax = new Ajax(url, {
	update: log,
	method: 'post',
	data: 'usr_id=' + usr_id,
	evalResponse: true,
	onComplete: function() { // when complete, we remove the spinner
	log.removeClass('ajax-loading');

	if (result != 'OK')       {
		$(div_name).addClass('response_error');
	}       else    {
		$(div_name).addClass('response_ok');
	}
	$(div_name).innerHTML = message;

	var fader = new Fx.Style(div_name, 'opacity', { duration:3000 });
	fader.start(0, 1).chain(function() {
		this.start.delay(1000, this, [0.0]);
	}).chain(function() {
		l.slideOut();
		if (result != 'ERROR')       {						
			document.location.reload();
		}
	});
	}
	});
	ajax.request();
}

function addFavoriteContent(l, cnt_id, div_name) {
	var url='/common/ASYNC_addcontentfavorite';
     trackAction(url);
	l.slideIn();
	log = $(div_name).empty().addClass('ajax-loading');
	
	var ajax = new Ajax(url, {
	update: log,
	method: 'post',
	data: 'cnt_id=' + cnt_id,
	evalResponse: true,
	onComplete: function() { // when complete, we remove the spinner
	log.removeClass('ajax-loading');

	if (result != 'OK')       {
		$(div_name).addClass('response_error');
	}       else    {
		$(div_name).addClass('response_ok');
	}
	$(div_name).innerHTML = message;

	var fader = new Fx.Style(div_name, 'opacity', { duration:2000 });
	fader.start(0, 1).chain(function() {
		this.start.delay(500, this, [0.0]);
	}).chain(function() {
		l.slideOut();	
		if (result != 'ERROR')       {
			//l.slideOut();			
			document.location.reload();
		}
	});
	}
	});
	ajax.request();
}

function addFavoriteMuseum(l, mus_id, div_name) {
	var url='/common/ASYNC_addmuseumtofavorites';
     trackAction(url);
	l.slideIn();
	log = $(div_name).empty().addClass('ajax-loading');
	var ajax = new Ajax(url, {
	update: log,
	method: 'post',
	data: 'mus_id=' + mus_id,
	evalResponse: true,
	onComplete: function() { // when complete, we remove the spinner
	log.removeClass('ajax-loading');
	if (result != 'OK')       {
		setDivResponseState(div_name, false);
	}       else    {
		setDivResponseState(div_name, true);
	}
	$(div_name).innerHTML = message;

	var fader = new Fx.Style(div_name, 'opacity', { duration:2000 });
	fader.start(0, 1).chain(function() {
		this.start.delay(500, this, [0.0]);
	}).chain(function() {
		l.slideOut();			
		if (result != 'ERROR')       {			
			document.location.reload();
		}
	});
	}
	});
	ajax.request();
}
function addFavoriteGallery(l, gal_id) {
  return addFavoriteGallery(l, gal_id, 'a_response');
}
function addFavoriteGallery(l, gal_id, div_name) {
	var url='/common/ASYNC_addgallerytofavorites';
     trackAction(url);
	l.slideIn();
	log = $(div_name).empty().addClass('ajax-loading');

	var ajax = new Ajax(url, {
	update: log,
	method: 'post',
	data: 'gal_id=' + gal_id,
	evalResponse: true,
	onComplete: function() { // when complete, we remove the spinner
	log.removeClass('ajax-loading');
	if (result != 'OK')       {
		setDivResponseState(div_name, false);
	}       else    {
		setDivResponseState(div_name, true);
	}
	$(div_name).innerHTML = message;

	var fader = new Fx.Style(div_name, 'opacity', { duration:2000 });
	fader.start(0, 1).chain(function() {
		this.start.delay(500, this, [0.0]);
	}).chain(function() {
		l.slideOut();			
		if (result != 'ERROR')       {			
			document.location.reload();
		}
	});
	}
	});
	ajax.request();
}

function updateFriendState(usr_id, state) {
		if (state)
		 	url= '/common/ASYNC_acceptfriend?usr_id=' + usr_id;
		else
			url= '/common/ASYNC_denyfriend?usr_id=' + usr_id;
		trackAction(url);
		log = $('msg_response').empty().addClass('ajax-loading');
		$('msg_response').setStyle('display', 'block');
						
		var ajax = new Ajax(url, {
		update: log,
		method: 'get',
		evalResponse: true,
		onComplete: function() { // when complete, we remove the spinner
		log.removeClass('ajax-loading');
		if (result != 'OK')       {
			$('msg_response').setStyle('color', 'red');
			$('msg_response').setStyle('border-color', 'red');
		}       else    {
			$('msg_response').setStyle('color', 'green');
			$('msg_response').setStyle('border-color', 'green');
		}
		$('msg_response').innerHTML = message;
	
		var fader = new Fx.Style('msg_response', 'opacity', { duration:2000 });
		fader.start(0, 1).chain(function() {
			this.start.delay(500, this, [0.0]);
		}).chain(function() {
			if (result != 'ERROR')       {
				
				document.location.reload();
			}
		});
		}
		});
		ajax.request();
}

function rateExhibition(l, exp_id, rate) {

	var url= '/common/ASYNC_rateexhibition';
     trackAction(url);
	l.slideIn();
	log = $('msg_response').empty().addClass('ajax-loading');
	$('msg_response').setStyle('display', 'block');
						
	var ajax = new Ajax(url, {
	update: log,
	method: 'post',
	data: 'exp_id=' + exp_id + '&rate=' +rate,
	evalResponse: true,
	onComplete: function() { // when complete, we remove the spinner
	log.removeClass('ajax-loading');
	if (result != 'OK')       {
		$('msg_response').setStyle('color', 'red');
		$('msg_response').setStyle('border-color', 'red');
	}       else    {
		$('msg_response').setStyle('color', 'green');
		$('msg_response').setStyle('border-color', 'green');
	}
	$('msg_response').innerHTML = message;
	
	var fader = new Fx.Style('msg_response', 'opacity', { duration:1500 });
	fader.start(0, 1).chain(function() {
		this.start.delay(500, this, [0.0]);
	}).chain(function() {
		l.slideOut();
		if (result != 'ERROR')       {				
			document.location.reload();
		}
	});
	}
	});
	ajax.request();
}

function rateArtwork(l, cnt_id, rate) {

	var url= '/common/ASYNC_rateartwork';
     trackAction(url);
	l.slideIn();
	log = $('rating_log').empty().addClass('ajax-loading');
	$('rating_log').setStyle('display', 'block');
						
	var ajax = new Ajax(url, {
	update: log,
	method: 'post',
	data: 'cnt_id=' + cnt_id + '&rate=' +rate,
	evalResponse: true,
	onComplete: function() { // when complete, we remove the spinner
	log.removeClass('ajax-loading');
	if (result != 'OK')       {
		$('rating_log').setStyle('color', 'red');
		$('rating_log').setStyle('border-color', 'red');
	}       else    {
		$('rating_log').setStyle('color', 'green');
		$('rating_log').setStyle('border-color', 'green');
	}
	$('rating_log').innerHTML = message;
	
	var fader = new Fx.Style('rating_log', 'opacity', { duration:1500 });
	fader.start(0, 1).chain(function() {
		this.start.delay(500, this, [0.0]);
	}).chain(function() {
		l.slideOut();
		if (result != 'ERROR')       {				
			document.location.reload();
		}
	});
	}
	});
	ajax.request();
}

function rateUser(l, usr_id, rate) {
  return rateUser(l, usr_id, rate, 'msg_response');
}

function rateUser(l, usr_id, rate, div_name) {
	var url= '/common/ASYNC_rateuser';
     trackAction(url);
	l.slideIn();
	log = $(div_name).empty().addClass('ajax-loading');
	$(div_name).setStyle('display', 'block');
						
	var ajax = new Ajax(url, {
	update: log,
	method: 'post',
	data: 'usr_id=' + usr_id + '&rate=' +rate,
	evalResponse: true,
	onComplete: function() { // when complete, we remove the spinner
	log.removeClass('ajax-loading');
	if (result != 'OK')       {
		$(div_name).addClass('response_error');
	}       else    {
		$(div_name).addClass('response_ok');
	}
	$(div_name).innerHTML = message;
	
	var fader = new Fx.Style(div_name, 'opacity', { duration:1500 });
	fader.start(0, 1).chain(function() {
		this.start.delay(500, this, [0.0]);
	}).chain(function() {
		l.slideOut();
		if (result != 'ERROR')       {				
			document.location.reload();
		}
	});
	}
	});
	ajax.request();
}

function rateGallery(l, gal_id, rate) {
  return rateGallery(l, gal_id, rate, 'a_response');
}
function rateGallery(l, gal_id, rate, div_name) {

	var url= '/common/ASYNC_rategallery';
     trackAction(url);
	l.slideIn();
	log = $(div_name).empty().addClass('ajax-loading');
	$(div_name).setStyle('display', 'block');

	var ajax = new Ajax(url, {
	update: log,
	method: 'post',
	data: 'gal_id=' + gal_id + '&rate=' +rate,
	evalResponse: true,
	onComplete: function() { // when complete, we remove the spinner
	log.removeClass('ajax-loading');
	if (result != 'OK')       {
		setDivResponseState(div_name, false);		
	}       else    {
		setDivResponseState(div_name, true);
	}
	$(div_name).innerHTML = message;
	
	var fader = new Fx.Style(div_name,  'opacity', { duration:1500 });
	fader.start(0, 1).chain(function() {
		this.start.delay(500, this, [0.0]);
	}).chain(function() {
		l.slideOut();
		if (result != 'ERROR')       {				
			document.location.reload();
		}
	});
	}
	});
	ajax.request();
}

function setDivResponseState(div_name, ok)	{
  if (ok == true)	{
	$(div_name).removeClass('response_error');
	$(div_name).addClass('response_ok');
  }	else	{
	$(div_name).removeClass('response_ok');
	$(div_name).addClass('response_error');
  }
}

function rateMuseum(l, mus_id, rate) {

	var url= '/common/ASYNC_ratemuseum';
     trackAction(url);
	l.slideIn();
	log = $('msg_response').empty().addClass('ajax-loading');
	$('msg_response').setStyle('display', 'block');
						
	var ajax = new Ajax(url, {
	update: log,
	method: 'post',
	data: 'mus_id=' + mus_id + '&rate=' +rate,
	evalResponse: true,
	onComplete: function() { // when complete, we remove the spinner
	log.removeClass('ajax-loading');
	if (result != 'OK')       {
		$('msg_response').setStyle('color', 'red');
		$('msg_response').setStyle('border-color', 'red');
	}       else    {
		$('msg_response').setStyle('color', 'green');
		$('msg_response').setStyle('border-color', 'green');
	}
	$('msg_response').innerHTML = message;
	
	var fader = new Fx.Style('msg_response', 'opacity', { duration:1500 });
	fader.start(0, 1).chain(function() {
		this.start.delay(500, this, [0.0]);
	}).chain(function() {
		l.slideOut();
		if (result != 'ERROR')       {				
			document.location.reload();
		}
	});
	}
	});
	ajax.request();
}

function deletePrivateMessage(prm_id) {
		
		url= '/common/ASYNC_deleteprivatemessage';
		trackAction(url);
		//alert(url);return;
		log = $('msg_response').empty().addClass('ajax-loading');
		document.location= '#header';
		$('msg_response').setStyle('display', 'block');
						
		var ajax = new Ajax(url, {
		update: log,
		method: 'post',
		data: 'prm_id=' + prm_id,
		evalResponse: true,
		onComplete: function() { // when complete, we remove the spinner
		log.removeClass('ajax-loading');
		if (result != 'OK')       {
			$('msg_response').setStyle('color', 'red');
			$('msg_response').setStyle('border-color', 'red');
		}       else    {
			$('msg_response').setStyle('color', 'green');
			$('msg_response').setStyle('border-color', 'green');
		}
		$('msg_response').innerHTML = message;
	
		var fader = new Fx.Style('msg_response', 'opacity', { duration:2000 });
		fader.start(0, 1).chain(function() {
			this.start.delay(500, this, [0.0]);
		}).chain(function() {
			if (result != 'ERROR')       {				
				document.location.reload();
			}
		});
		}
		});
		ajax.request();
}

function selectCountryCombo(comboName, cou_id)	{
	var s_cou= $(comboName);
                for(index = 0; index < s_cou.length; index++) {
                        if(s_cou[index].value == cou_id)      {
                                s_cou.selectedIndex = index;
				return;
                        }
                }
}
function selectComboByValue(comboName, v)	{
	return selectCountryCombo(comboName, v);
}
function shakeNews(myn_id)	{
		url= '/common/ASYNC_shakenews';
		trackAction(url);
		//alert(url);return;
		var l_element= 'vote_response_' + myn_id;
		log = $(l_element).empty().addClass('ajax-loading');
		$(l_element).setStyle('display', 'block');
						
		var ajax = new Ajax(url, {
		update: log,
		method: 'post',
		data: 'myn_id=' + myn_id,
		evalResponse: true,
		onComplete: function() { // when complete, we remove the spinner
			log.removeClass('ajax-loading');
			
			if (result != 'OK')       {
				$(l_element).setStyle('color', '#303030');
				
			}       else    {								
				$(l_element).setStyle('color', '#505050');
				printVotesNews(myn_id);
			}
			$(l_element).innerHTML = message;							
		}
		});
		ajax.request();
}

function printVotesNews(myn_id)	{
		url= '/common/ASYNC_getvotesnews';
		trackAction(url);
		//alert(url);return;
		var l_element= 'vote_counter_' + myn_id;
		log = $(l_element).empty();//.addClass('ajax-loading');
		$(l_element).setStyle('display', 'block');
						
		var ajax = new Ajax(url, {
		update: log,
		method: 'post',
		data: 'myn_id=' + myn_id,
		evalResponse: true,
		onComplete: function() { // when complete, we remove the spinner
			//log.removeClass('ajax-loading');
			if (result != 'OK')       {
			}       else    {
				$(l_element).innerHTML = message;				

			}							
		}
		});
		ajax.request();
}
function parse_url (str, component) {
    // *     example 1: parse_url('http://username:password@hostname/path?arg=value#anchor');
    // *     returns 1: {scheme: 'http', host: 'hostname', user: 'username', pass: 'password', path: '/path', query: 'arg=value', fragment: 'anchor'}
  try {
    var  o   = {
        strictMode: false,
        key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],
        q:   {
            name:   "queryKey",
            parser: /(?:^|&)([^&=]*)=?([^&]*)/g
        },
        parser: {
            strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,
            loose:  /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/\/?)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ // Added one optional slash to post-protocol to catch file:/// (should restrict this)
        }
    };
    
    var m   = o.parser[o.strictMode ? "strict" : "loose"].exec(str),
    uri = {},
    i   = 14;
    while (i--) {uri[o.key[i]] = m[i] || "";}

    switch (component) {case 'URL_SCHEME': return uri.protocol;
        case 'URL_HOST': return uri.host;
        case 'URL_PORT': return uri.port;
        case 'URL_USER': return uri.user;
        case 'URL_PASS': return uri.password;
        case 'URL_PATH': return uri.path;
        case 'URL_QUERY': return uri.query;
        case 'URL_FRAGMENT': return uri.anchor;
        default:
            var retArr = {};
            if (uri.protocol !== '') {retArr.scheme=uri.protocol;}
            if (uri.host !== '') {retArr.host=uri.host;}
            if (uri.port !== '') {retArr.port=uri.port;}
            if (uri.user !== '') {retArr.user=uri.user;}
            if (uri.password !== '') {retArr.pass=uri.password;}
            if (uri.path !== '') {retArr.path=uri.path;}
            if (uri.query !== '') {retArr.query=uri.query;}
            if (uri.anchor !== '') {retArr.fragment=uri.anchor;}
            return retArr;
    }
  } catch (err) {return '';}
}

function buildFormRequest(form_name, t_lang, slide, div_name)	{
	buildFormRequest(form_name, t_lang, slide, div_name, '', '');
}
function buildFormRequest(form_name, t_lang, slide, div_name, url, location_id)	{
	var validator= new fValidator(form_name, {lang: t_lang});
	
	$(form_name).addEvent('submit', function(e) {					
		new Event(e).stop();
	if (validator._onSubmit(e) )    {
		
		if (location_id!='')
			document.location= location_id;
		////tinyMCE.triggerSave(true,true);
		try {
		$(form_name).SubmitButton.disabled=true;		
		$(form_name).SubmitButton.addClass('bdisabled');
		} catch (e) {}
		
		trackAction( parse_url($(form_name).action, 'URL_PATH'));

		//$('submit').disabled= true;
		//$('submit').addClass('bdisabled');
		
		slide.slideIn();				
		log = $(div_name).empty().addClass('ajax-loading');
		
		this.send({ onComplete: function(resp) {
			if(!$defined(resp)) return;
			log.removeClass('ajax-loading');						
			var myresponse = Json.evaluate(resp);
						
			if (myresponse.result == 'ERROR')       {
				$(div_name).setStyle('color', 'red');
				$(div_name).setStyle('border-color', 'red');
				$(div_name).innerHTML = myresponse.result + "<br/>" + myresponse.message;
			}       else    {
				$(div_name).setStyle('color', 'green');
				$(div_name).innerHTML = myresponse.result + "<br/>" + myresponse.message;
			}
			if (myresponse.result != 'ERROR')	{
				var fader = new Fx.Style(div_name, 'opacity', { duration:3000 });
				fader.start(0, 1).chain(function() {
					this.start.delay(500, this, [0.0]);
				}).chain(function() {
					if (myresponse.result != 'ERROR')	{
								slide.slideOut();
						if (url == '')
							document.location.reload();
						else
							document.location= url;
					}
					}
				);
			}					
		}});
		try {
		$(form_name).SubmitButton.disabled=false;
		$(form_name).SubmitButton.removeClass('bdisabled');
		} catch (e) {}
		//$('submit').disabled= false;
		//$('submit').removeClass('bdisabled');
	}
	});
	
}
function toggleDiv(link_id, div_id)	{
	toggleDiv(link_id, div_id, false);
}

function toggleDiv(link_id, div_id, open)	{
	var div= $(div_id);
	if (!open)
		div.setStyle('display', 'none');
	var toggler= $(link_id);
	toggler.addEvent('click', function(e){
		e = new Event(e);
		 div= $(div_id);
		div.setStyle('display', (div.getStyle('display') == 'block') ? 'none' : 'block');
		e.stop();	});
}
function loadBlockActions(action_id, type_id, from, to)	{
	loadBlockActions(action_id, type_id, from, to, true);
}
function loadBlockActions(action_id, type_id, from, to, request)	{
	var div_name= 'a_container_' + action_id;
	var a_toggler= 'adivtoggler_' + action_id;
	var div= $(div_name);
	var toggler= $(a_toggler);
		
	if (request || div.getStyle('display')=='none' )	{
		
		if (request)	{ //GET
			
			div.empty();
			div.addClass('ajax-loading');
			try {
			var url= '/common/ASYNC_getfriendsactions?action=' + action_id + '&type=' + type_id +'&f=' + from +'&size=' +to;
		     trackAction(url);
			var request = new Json.Remote(url, {method: "get",
				onComplete: function(resp) {
					if(!$defined(resp)) return;
					$(div_name).removeClass('ajax-loading');
					$(div_name).empty();
					$(div_name).innerHTML= resp.data;
					//document.location= '#anchor_' + action_id;
				}
			}).send();
			} catch (e) {}			
		}		
		div.setStyle('display', 'block');
	}	else	{
		div.setStyle('display', 'none');
	} 
		
}

function loadActionContents(div_name, resp)	{
	div_name.innerHTML= resp.data;
	//div_name.innerHTML= resp.pagination;
}

function initializeImask()	{
	return new iMask({  
	onFocus: function(obj) {  
		obj.setStyles({"background-color":"#ff8", border:"1px solid #880"});  
	},  
	
	onBlur: function(obj) {  
		obj.setStyles({"background-color":"#fff", border:"1px solid #ccc"});  
	},  
	
	onValid: function(event, obj) {  
		obj.setStyles({"background-color":"#8f8", border:"1px solid #080"});  
	},  
	
	onInvalid: function(event, obj) {  
		if(!event.shift) {  
		obj.setStyles({"background-color":"#f88", border:"1px solid #800"});  
		}  
	}  
	});
}