// JavaScript Document

var year_list_index = 0;
var year_list_count = 0;

var review_list_index = 0;
var review_list_count = 0;

var animation_in_progress = false;

var years_per_page = 10;

document.observe('dom:loaded', function(e)
{
	
	if (window.location.hash.length > 1) {
			var string = location.hash.substring(1);
			var year = false;
			year = MyStringHandler.extractYear(string);
	} 
	
	var flag = false;
	
	if(year)
		$$('#year_select_wrapper ul li').each(function(e) { if(e.title == year) { flag = true; } });
	
	if($('selected_year'))
	{
		$$('#year_select_wrapper ul li').invoke('observe', 'click', changeFrontPageYear);

		if(flag)
		{
			changeFrontPageYearTo(year);
		}
		else
		{
			/*
			If no year is selected, randomize the year
			*/
			var yearArr = new Array();
			
			$$('#year_select_wrapper ul li').each(function(e) { yearArr.push(parseInt(e.title)); });
			var random_year = Math.floor((yearArr[yearArr.length - 1] - yearArr[0] - 1)*Math.random()) +  yearArr[0];
			changeFrontPageYearTo(random_year);
		}
	}
	
	if($('user_selected_year'))
	{
		if($('year_select_wrapper').down('li'))
		{
			$$('#year_select_wrapper ul li').invoke('observe', 'click', changeUserPageYear);
			if(flag)
				changeUserPageYearTo(year);
			else
				changeUserPageYearTo($('year_select_wrapper').down('li').title);
		}
	}
	
	if($('arrow_right'))
		$('arrow_right').observe('click', scrollYearsRight);
	if($('arrow_left'))
		$('arrow_left').observe('click', scrollYearsLeft);
	if($('search_wrapper'))
		$('search_wrapper').down('input[type=text]').observe('focus', function(e) { if(this.value == 'Nimimerkki') this.clear(); });
	if($('login_wrapper').down('input[type=password]'))
		$('login_wrapper').down('input[type=text]').observe('focus', function(e) { if(this.value == 'Nimimerkki') this.clear(); });
	if($('login_wrapper').down('input[type=password]'))
			changePasswordToText($('login_wrapper').down('input[type=password]'));
	
	$$('#delete_profile_button').invoke('observe','click', showProfileDeleteLink);
	
	$$('#modify_profile_form').invoke('observe','submit', storeProfileData);
	$$('#change_profile_image').invoke('observe','click', showProfileImageUploadForm);
	
	$$('#create_story').invoke('observe','click', showCreateNewStoryForm);

	$$('#create_review').invoke('observe','click', showCreateNewReviewForm);
	
	$$('#create_comparison').invoke('observe','click', showCreateNewComparisonForm);
	
	$$('#stories ul li span.muokkaa_button').invoke('observe', 'click', fetchStoryForm);

	$$('#comparisons ul li span.muokkaa_button').invoke('observe', 'click', fetchComparisonForm);
	
	$$('#reviews ul li span.muokkaa_button').invoke('observe', 'click', fetchReviewForm);
	
	$$('.validate_me').each(function(e) { new Validation(e, { useTitles: true }) });
	
	observeLimitText();
	
	$$('.thank').each(function(e) { new Effect.Appear(e); } );
	
	// $$('.comparison_open').invoke('observe', 'click', comparisonOpen); // NOT WORKING!
	
	// $$('.review_open').invoke('observe', 'click', reviewOpen); // NOT WORKING
	
	$$('.delete_story').invoke('observe', 'click', deleteStory);

	$$('.delete_comparison').invoke('observe', 'click', deleteComparison); // NOT WORKING
	
	$$('.delete_review').invoke('observe', 'click', deleteReview); // NOT WORKING
	
	$$('.tabs').each(function(tab_group){
		new Control.Tabs(tab_group);
	});

	// selectedYear = $('year_select_wrapper').down('ul').down('li').down('a');
	if($('year_select_wrapper'))
	{
		year_list_count = Math.ceil($('year_select_wrapper').down('ul').childElements().length / years_per_page);
//		alert(Math.ceil($('year_select_wrapper').down('ul').childElements().length / 10));
	}
	Qtracker.track('loading_icon');
	attachModalWindowEvents();
	initFileUploads();
});

initFileUploads = function() {
	var str = '<div class="fakefile"><input /><img src="images/file_input_field_bg.png" alt="" /></div>';
	$$('input').each(function(x)
	{
		if (x.type == 'file' && x.up('.fileinputs') && !x.next('div.fakefile'))
		{
			x.up('.fileinputs').insert(str);
			x.observe('change', function(e) { this.next('div.fakefile').down('input').value = this.value; });
		}
	});
}

attachModalWindowEvents = function(e)
{
	// alert('attachModalWindowEvents called');
	Qcomment.observeComments('.comments');
	$$('.modal_window').each(function(e) {
		// alert(e.className);
		ReviewStoryWindow.attach(e, function(e) { Cufon.replace('#tdcontent .cufon'); $$('.store_vote_with_ajax').invoke('observe', 'click', storeVote) } );
	});
}

storeRandomImageVote = function(e)
{
	Event.stop(e);
	var el = this;
	var url = this.href;
	/*
	var selected_year = $('year_select_wrapper').down('.selected').up('li').title;
	var params = { year_id: selected_year };
	*/
	// the url should be something that stores the vote and then returns a new randomly selected review image
	new Ajax.Request(url, {
		/* params: params, */
		method: 'get', onComplete: function(e) {
			// $('selected_year_user_image').innerHTML = e.responseText;
			var params = { year_id: $('year_select_wrapper').down('.selected').up('li').title };
			new Ajax.Updater($('selected_year_user_image'), 'templates/etusivu/get_random_review_image.php',
			{
				parameters: params,
				onComplete: function(e)
				{
					Cufon.replace('#selected_year_user_image .cufon');
					attachRandomImageVoteEvents();
				}
			});
		}
	});
}

storeVote = function(e)
{
	Event.stop(e);
	var el = this;
	var url = this.href;
	new Ajax.Request(url, {
		method: 'get', onSuccess: function(e) {
			// alert('Kiitos mielipiteestäsi!');
			var a = document.body.down('.opened_by_tdwindow');
			if(a.down('.percentage_hot'))
				a.down('.percentage_hot').innerHTML = e.responseText;
			ReviewStoryWindow.closeWindow(e, function() { new Effect.Shake(a); });
		}
	});
}

var selectedYear;

changeFrontPageYear = function(e)
{
	Event.stop(e);
	
	var id = parseInt(this.title);
	
	selectedYear.removeClassName('selected');
	Cufon.replace(selectedYear);
	
	this.down('a').addClassName('selected');
	Cufon.replace(this.down('a'));
	selectedYear = this.down('a');
	window.location.hash = '#year=' + id;
	
	var params = { id: id };
	if($('years_page'))
		new Ajax.Updater('selected_year', 'templates/vuodet/get_years_page_year.php', { parameters: params, onComplete: finishYearPageYearSelect });
	else
		new Ajax.Updater('selected_year', 'templates/etusivu/get_front_page_year.php',
		{
			parameters: params, onComplete: function(e)
			{
				// attachModalWindowEvents();
				attachRandomImageVoteEvents(); // this function already contains a call to atachModalWindowsEvents()
				Cufon.replace('#selected_year .cufon');
			}
		});
}

moveContainerToYear = function(year)
{
	var count = 0;
	var i = 0;
	$$('#year_select_wrapper ul li').each(function(e)
	{
		if(e.title == year)
		{
			count = i;
		}
		i++;
	});
	//alert(count);
	var page = Math.ceil((count  + 1) / years_per_page);
	//alert(page);
	// 756
	var w = $('year_select_wrapper').down('li').getWidth() * years_per_page;
	var left = -(w * (page - 1)) + 'px';
	//alert(left);
	$('year_select_wrapper').down('ul').setStyle({ left: left });
	year_list_index = page - 1;
}

changeFrontPageYearTo = function(year)
{
	moveContainerToYear(year);
	$$('#year_select ul li').each(function(e) { if(e.title == year) el = e; });
	
	el.down('a').addClassName('selected');
	Cufon.replace(el.down('a'));
	selectedYear = el.down('a');
	
	var id = year;
	var params = { id: id };
	if($('years_page'))
	{
		new Ajax.Updater('selected_year', 'templates/vuodet/get_years_page_year.php', { parameters: params, onComplete: finishYearPageYearSelect });
	}
	else
	{
		new Ajax.Updater('selected_year', 'templates/etusivu/get_front_page_year.php', { parameters: params, onComplete: function(e)
		{ 
			// attachModalWindowEvents();
			attachRandomImageVoteEvents();
			attachVoteEvents();
			Cufon.replace('#selected_year .cufon');
		} });
	}
}

attachRandomImageVoteEvents = function()
{
	// alert('attaching random image events');
	$$('.store_random_image_vote_with_ajax').invoke('stopObserving', 'click', storeRandomImageVote);
	$$('.store_random_image_vote_with_ajax').invoke('observe', 'click', storeRandomImageVote);
	attachModalWindowEvents();
}

attachVoteEvents = function()
{
	//alert('jee');
	$$('.store_vote_with_ajax').invoke('stopObserving', 'click', storeVote);
	$$('.store_vote_with_ajax').invoke('observe', 'click', storeVote);
}

changeUserPageYear = function(e)
{
	Event.stop(e);
	var year_id = parseInt(this.title);
	var user_id = parseInt(this.down('a').title);
	
	window.location.hash = '#year=' + year_id;
	
	selectedYear.removeClassName('selected');
	Cufon.replace(selectedYear);
	
	this.down('a').addClassName('selected');
	Cufon.replace(this.down('a'));
	selectedYear = this.down('a');
	
	var params = { year_id: year_id, user_id: user_id };
	new Ajax.Updater('user_selected_year', 'templates/profiilit/get_user_page_year.php',
	{ 
		parameters: params,
		onComplete: function(e)
		{
			Cufon.replace('#user_selected_year .cufon');
			attachReviewScrollingEvents();
			attachStoryScrollingEvents();
			attachModalWindowEvents();
		}
	});
}

changeUserPageYearTo = function(year)
{
	var year_id = year;
	var user_id = $$('#year_select_wrapper ul li a')[0].title;
	$$('#year_select_wrapper ul li').each(function(e) { if(e.title == year_id) selectedYear = e.down('a'); });
	
	selectedYear.addClassName('selected');
	Cufon.replace(selectedYear);
	
	var params = { year_id: year_id, user_id: user_id };
	new Ajax.Updater('user_selected_year', 'templates/profiilit/get_user_page_year.php',
	{
		parameters: params,
		onComplete: function(e)
		{
			
			Cufon.replace('#user_selected_year .cufon');
			attachReviewScrollingEvents();
			attachStoryScrollingEvents();
			attachModalWindowEvents();
		}
	});
}

attachReviewScrollingEvents = function()
{
	review_list_index = 0;
	if($('reviews') == null)
		return;

	review_list_count = Math.ceil($('reviews').down('ul').childElements().length / 6);
	// alert(review_list_count);
	$('reviews_left_arrow').stopObserving('click');
	$('reviews_left_arrow').observe('click', function(e)
	{
		if(review_list_index > 0)
		{
			new Effect.Move(this.up('div').down('ul'), { x: 756, afterFinish: function(e) { review_list_index--; } });
		}
	});
	$('reviews_right_arrow').stopObserving('click');
	$('reviews_right_arrow').observe('click', function(e)
	{
		if((review_list_index + 1) < review_list_count)
		{
			new Effect.Move(this.up('div').down('ul'), { x: -756, afterFinish: function(e) { review_list_index++; }  });
		}
	});
}

attachStoryScrollingEvents = function()
{
	if($('stories'))
	{
		story_list_index = 0;
		story_list_count = Math.ceil($('stories').down('ul').childElements().length / 3);
		// alert(review_list_count);
		if($('stories_left_arrow'))
		{
			$('stories_left_arrow').stopObserving('click');
			$('stories_left_arrow').observe('click', function(e)
			{
				if(story_list_index > 0)
				{
					new Effect.Move(this.up('div').down('ul'), { x: 816, afterFinish: function(e) { story_list_index--; } });
				}
			});
		}
		
		if($('stories_right_arrow'))
		{
			$('stories_right_arrow').stopObserving('click');
			$('stories_right_arrow').observe('click', function(e)
			{
				if((story_list_index + 1) < story_list_count)
				{
					new Effect.Move(this.up('div').down('ul'), { x: -816, afterFinish: function(e) { story_list_index++; }  });
				}
			});
		}
	}
}

finishYearPageYearSelect = function(e)
{ 
	Cufon.replace('#selected_year .cufon');
	attachYearsPageEvents();
}

attachYearsPageEvents = function()
{
	//alert('attaching');
	if($('stories_right_arrow'))
	{
		$('reviews_left_arrow').stopObserving('click', yearsPageStoriesRight);
		$('stories_right_arrow').observe('click', yearsPageStoriesRight);
	}
	
	if($('stories_left_arrow'))
	{
		$('reviews_left_arrow').stopObserving('click', yearsPageStoriesLeft);
		$('stories_left_arrow').observe('click', yearsPageStoriesLeft);
	}
	
	if($('reviews_right_arrow'))
	{
		$('reviews_left_arrow').stopObserving('click', yearsPageReviewsRight);
		$('reviews_right_arrow').observe('click', yearsPageReviewsRight);
	}
	
	if($('reviews_left_arrow'))
	{
		$('reviews_left_arrow').stopObserving('click', yearsPageReviewsLeft);
		$('reviews_left_arrow').observe('click', yearsPageReviewsLeft);
	}
	
	resetYearsPageIndexes();
	// attachModalWindowEvents();
	attachVoteEvents();
	attachRandomImageVoteEvents();
}

resetYearsPageIndexes = function()
{
	years_page_reviews_index = 0;
	years_page_stories_index = 0;
}

var years_page_reviews_index = 0;

yearsPageReviewsLeft = function(e)
{
	// alert('move right');
	if(years_page_reviews_index > 0 && animation_in_progress == false)
	{
		animation_in_progress = true;
		var list = $('reviews_frame').down('ul');
		new Effect.Move(list,
		{
			x: 756, afterFinish: function(e)
			{
				years_page_reviews_index--;
				animation_in_progress = false;
			}
		});
	}
}

yearsPageReviewsRight = function(e)
{
	// alert('move right');
	if(animation_in_progress == false)
	{
		
		animation_in_progress = true;
		var visible_per_page = 6;
		var params;
		// Count the number of reviews currently fetched
		var list = $('reviews_frame').down('ul');
		var c = list.childElements().length;
		// alert(c);
		var year_id = $('year_select_wrapper').down('.selected').up('li').title;
		var from = (years_page_reviews_index + 1) * visible_per_page;
		var not_in = new Array();
		$$('#reviews_frame ul li').each(function(e) { not_in.push(parseInt(e.title)); });
		not_in = MyStringHandler.implode(",", not_in);
		
		var params = { from: from, amount: visible_per_page, year_id: year_id, not_in: not_in };
		// Check if the data has already been fetched!
		var pages_currently_loaded = Math.ceil(c / visible_per_page);
		// alert(pages_currently_loaded);
		if((pages_currently_loaded - 1) == years_page_reviews_index) // the data hasn't been loaded yet, so let's make an ajax call to fetch the data
		{
			new Ajax.Updater({ success: list }, 'templates/vuodet/get_reviews.php',
			{
				insertion: 'bottom',
				parameters: params,
				onSuccess: function(e)
				{
					new Effect.Move(list,
					{
						x: -756, afterFinish: function(e)
						{
							years_page_reviews_index++;
							animation_in_progress = false;
							attachModalWindowEvents();
						}
					});
				},
				onFailure: function(e)
				{
					animation_in_progress = false;
				}
			});
		}
		else
		{
			new Effect.Move(list,
			{
				x: -756, afterFinish: function(e)
				{
					years_page_reviews_index++;
					animation_in_progress = false;
				}
			});
		}
	}
}

var years_page_stories_index = 0;

yearsPageStoriesRight = function(e)
{
	if(animation_in_progress == false)
	{
		animation_in_progress = true;
		var visible_per_page = 3;
		var params;
		// Count the number of stories currently fetched
		var list = $('stories_frame').down('ul');
		var c = list.childElements().length;
		// alert(c);
		var year_id = $('year_select_wrapper').down('.selected').up('li').title;
		var not_in = new Array();
		$$('#stories_frame ul li').each(function(e) { not_in.push(parseInt(e.title)); });
		not_in = MyStringHandler.implode(",", not_in);
		var params = { from: (years_page_stories_index + 1) * visible_per_page, amount: visible_per_page, year_id: year_id, not_in: not_in };
		var pages_currently_loaded = Math.ceil(c / visible_per_page);
		// alert(pages_currently_loaded);
		if((pages_currently_loaded - 1) == years_page_stories_index) // the data hasn't been loaded yet, so let's make an ajax call to fetch the data
		{
			new Ajax.Updater({ success: list }, 'templates/vuodet/get_stories.php',
			{
				insertion: 'bottom',
				parameters: params,
				onSuccess: function(e)
				{
					new Effect.Move(list,
					{
						x: -816, afterFinish: function(e)
						{
							years_page_stories_index++;
							animation_in_progress = false;
							attachModalWindowEvents();
						}
					});
				},
				onFailure: function(e)
				{
					animation_in_progress = false;
				}
			});
		}
		else
		{
			new Effect.Move(list,
			{
				x: -816, afterFinish: function(e)
				{
					years_page_stories_index++;
					animation_in_progress = false;
				}
			});
		}
	}
}

yearsPageStoriesLeft = function(e)
{
	if(years_page_stories_index > 0 && animation_in_progress == false)
	{
		animation_in_progress = true;
		var list = $('stories_frame').down('ul');
		new Effect.Move(list,
		{
			x: 816, afterFinish: function(e)
			{
				years_page_stories_index--;
				animation_in_progress = false;
			}
		});
	}
}


/*
changeSelectedYear = function(el)
{
	el.removeClassName('selected');
	_this.down('a').addClassName('selected');
	Cufon.replace(_this.down('a')); }
}
*/
deleteStory = function(e)
{
	Event.stop(e);
	if(confirm('Haluatko varmasti tuhota kyseisen tarinan?'))
	{
		var _this = this;
		var id = this.up('li').title;
		var params = { id: id };
		var url = 'templates/rekisteroityminen/delete_story.php';
		new Ajax.Request(url, { parameters: params, onSuccess: _this.up('li').remove() });
	}
}


deleteComparison = function(e)
{
	Event.stop(e);
	if(confirm('Haluatko varmasti tuhota kyseisen vertailun?'))
	{
		var _this = this;
		var id = this.up('li').title;
		var params = { id: id };
		var url = 'templates/rekisteroityminen/delete_comparison.php';
		new Ajax.Request(url, { parameters: params, onSuccess: _this.up('li').remove() });
	}
}

deleteReview = function(e)
{
	Event.stop(e);
	if(confirm('Haluatko varmasti tuhota kyseisen arvostelun?'))
	{
		var _this = this;
		var id = this.up('li').title;
		var params = { id: id };
		var url = 'templates/rekisteroityminen/delete_review.php';
		new Ajax.Request(url, { parameters: params, onSuccess: _this.up('li').remove() });
	}
}

storeProfileData = function(e) {
	Event.stop(e);
	if($('password_change').value == $('password_check').value) {
		$('modify_profile_form').request({ onSuccess: function(e) { $('info_box').innerHTML = 'Tietosi tallennettu'; $('info_box').show(); $('info_box').highlight(); } });
	} else {
		var content = 'Salasanat eivät ole samat!';
		$('info_box').innerHTML = content;
		$('info_box').show();
		$('info_box').highlight();
	}
}


scrollYearsRight = function(e)
{
	// alert(year_list_count + " " + year_list_index + " " + animation_in_progress);
	if(year_list_count > (year_list_index + 1) && animation_in_progress == false)
	{
		animation_in_progress = true;
		var el = $('year_select_wrapper').down('ul');
		var w = $('year_select_wrapper').down('li').getWidth() * years_per_page;
		new Effect.Move(el, { x: -w, afterFinish: function(e) { year_list_index++; animation_in_progress = false; } });
	}
}

scrollYearsLeft = function(e)
{
	if((year_list_index - 1) >= 0 && animation_in_progress == false)
	{
		animation_in_progress = true;
		var el = $('year_select_wrapper').down('ul');
		var w = $('year_select_wrapper').down('li').getWidth() * years_per_page;
		new Effect.Move(el, { x: w, afterFinish: function(e) { year_list_index--; animation_in_progress = false; } });
	}
}

changePasswordToText = function(e)
{
	var name = e.name;
	e.remove();
	var content = ' <input type="text" name=' + name + ' value="Salasana" id="replaced_password" />';
	$('login_wrapper').down('input[type=text]').insert({ after: content });
	$('replaced_password').observe('focus', changeTextToPassword);
}

changeTextToPassword = function(e)
{
	var name = this.name;
	this.remove();
	var content = ' <input type="password" name=' + name + ' value="" id="replaced_text" />';
	$('login_wrapper').down('input[type=text]').insert({ after: content });
	Form.Element.focus('replaced_text');
}

showProfileDeleteLink = function(e)
{
	Event.stop(e);
	$('settings_content').hide();
	$('delete_profile_wrapper').show();
	$('delete_profile_wrapper').highlight();
	$('delete_profile_button').hide();
}

	showProfileImageUploadForm = function(e) {
	Event.stop(e);
	$('profile_image_wrapper').hide();
	$('upload_profile_image_form_wrapper').show();
}

showCreateNewStoryForm = function(e) {
	Event.stop(e);
	
	if($('create_new_story_form').visible())
	{
		$('create_new_story_form').hide();
		$('story_form_wrapper').hide();
		$$('.stories_list').invoke('show');
		this.innerHTML = 'Luo uusi tarina';
		
	}
	else if($('update_story_form') && $('update_story_form').visible())
	{
		$('update_story_form').hide();
		$('story_form_wrapper').hide();
		$$('.stories_list').invoke('show');
		$('create_story').innerHTML = 'Luo uusi tarina';

	}
	else
	{
		$('create_new_story_form').show();
		$('story_form_wrapper').hide();
		$$('.stories_list').invoke('hide');
		this.innerHTML = 'Näytä tarinat';
	}
}

showCreateNewReviewForm = function(e) {
	Event.stop(e);
	
	if($('create_new_review_form').visible())
	{
		$('create_new_review_form').hide();
		$('review_form_wrapper').hide();
		$$('.reviews_list').invoke('show');
		this.innerHTML = 'Luo uusi kuva';
		
	}
	else if($('update_review_form') && $('update_review_form').visible())
	{
		$('update_review_form').hide();
		$('review_form_wrapper').hide();
		$$('.reviews_list').invoke('show');
		$('create_review').innerHTML = 'Luo uusi kuva';

	}
	else
	{
		$('create_new_review_form').show();
		$('review_form_wrapper').hide();
		$$('.reviews_list').invoke('hide');
		this.innerHTML = 'Näytä kuvat';
	}
}

showCreateNewComparisonForm = function(e) {
	Event.stop(e);
	if($('create_new_comparison_form').visible())
	{
		$('create_new_comparison_form').hide();
		$('comparison_form_wrapper').hide();
		$$('.comparisons_list').invoke('show');
		this.innerHTML = 'Luo uusi vertailu';
		
	}
	else if($('update_comparison_form') && $('update_comparison_form').visible())
	{
		$('update_comparison_form').hide();
		$('comparison_form_wrapper').hide();
		$$('.comparisons_list').invoke('show');
		this.innerHTML = 'Luo uusi vertailu';
	}
	else
	{
		$('create_new_comparison_form').show();
		$('comparison_form_wrapper').hide();
		$$('.comparisons_list').invoke('hide');
		this.innerHTML = 'Näytä vertailut';
	}
}

fetchStoryForm = function(e)
{
	var comp_id = parseInt(this.up('li').title);
	// getTMqs('www.tyylituomari.fi/arvostelu/' + comp_id, 'www.tyylituomari.fi arvostelu ' + comp_id, 'forma_fi', 'fi', 'UTF-8', tmsec);
	var url = 'templates/rekisteroityminen/fetch_story.php';
	new Ajax.Updater($('story_form_wrapper'), url, {
		parameters: { id: comp_id },
		method: 'post',
		onComplete: function(e) {
//			$$('.delete_review_image').invoke('observe', 'click', deleteReviewImage);
			$('story_form_wrapper').show();
			$('create_new_story_form').hide();
			$$('.stories_list').invoke('hide');
			$('create_story').innerHTML = 'Näytä tarinat';
//			observeLimitText();
		}
	} );
}

fetchComparisonForm = function(e)
{
	var comp_id = Number(this.up('li').title);
	// getTMqs('www.tyylituomari.fi/vertailu/' + comp_id, 'www.tyylituomari.fi vertailu ' + comp_id, 'forma_fi', 'fi', 'UTF-8', tmsec);
	var url = 'templates/rekisteroityminen/fetch_comparison.php';
	new Ajax.Updater($('comparison_form_wrapper'), url, {
		parameters: { id: comp_id },
		method: 'post',
		onComplete: function(e) {
			$$('.delete_comparison_image').invoke('observe', 'click', deleteComparisonImage);
			$('comparison_form_wrapper').show();
			$('create_new_comparison_form').hide();
			$$('.comparisons_list').invoke('hide');
			$('create_comparison').innerHTML = 'Näytä vertailut';
			observeLimitText();
		}
	} );
}

fetchReviewForm = function(e)
{
	var comp_id = parseInt(this.up('li').title);
	// getTMqs('www.tyylituomari.fi/arvostelu/' + comp_id, 'www.tyylituomari.fi arvostelu ' + comp_id, 'forma_fi', 'fi', 'UTF-8', tmsec);
	var url = 'templates/rekisteroityminen/fetch_review.php';
	new Ajax.Updater($('review_form_wrapper'), url, {
		parameters: { id: comp_id },
		method: 'post',
		onComplete: function(e) {
			$$('.delete_review_image').invoke('observe', 'click', deleteReviewImage);
			$('review_form_wrapper').show();
			$('create_new_review_form').hide();
			$$('.reviews_list').invoke('hide');
			$('create_review').innerHTML = 'Näytä arvostelut';
			observeLimitText();
		}
	} );
}

deleteReviewImage = function(e)
{
	this.up('div').insert({ 'after': '<input type="hidden" name="delete_this_id[]" value="' + this.title + '" />' } );
	this.up('div').insert({ 'after': '<div class="fileinputs"><input type="file" name="files[]" class="required" title="Kuva on pakollinen" /></div>'} );
	this.remove();
	$$('.validate_me').each(function(e) { new Validation(e, { useTitles: true }) });
	initFileUploads();
		
}

Array.prototype.in_array = function ( obj ) {
	var len = this.length;
	for ( var x = 0 ; x < len ; x++ ) {
		if ( this[x] == obj ) return true;
	}
	return false;
}

function StringHandler()
{
}

StringHandler.prototype = {
	initialize: function() {
		// void main(void) AGAIN!
	},
	extractId : function(str) {
		var m;
		//alert(str);
		reg = new RegExp("(&id=){1}([^&]*)","gi");
		m = reg.exec(str);
		//alert(m[0] + "\n" + m[1] + "\n" + m[2] + "\n" + m[3]);
		return m[2];
	},
	extractYear : function(str) {
		var m;
		//alert(str);
		var reg = new RegExp("(year=){1}([0-9]*)","gi");
		m = reg.exec(str);
		
		if(m != null)
			return m[2];
		else
			return false;
	},
	extractType : function (str) {
		var m;
		//alert(str);
		reg = new RegExp("(vote_type=){1}([^&]*)","gi");
		m = reg.exec(str);
		//alert(m[0] + "\n" + m[1] + "\n" + m[2] + "\n" + m[3]);
		return m[2];
	},
	extractPage : function (str) {
		var m;
		//alert(str);
		reg = new RegExp("(page=){1}([^&]*)","gi");
		m = reg.exec(str);
		//alert(m[0] + "\n" + m[1] + "\n" + m[2] + "\n" + m[3]);
		return m[2];
	},
	extractArticleType : function (str) {
		var m;
		reg = new RegExp("http://[^/]*/{1}[^/]*/{1}([A-Za-z]+)","gi");
		m = reg.exec(str);
		// alert(match[0] + "\n" + match[1] + "\n" + match[2] + "\n" + match[3]);
		return m[1];
	},
	implode: function(glue, arr)
	{
		var flag = false;
		var ret_str = "";
		arr.each(function(a)
		{
			if(flag == true)
				ret_str += glue;
			ret_str += a;
			flag = true;
		});
		return ret_str;
	}
};

observeLimitText = function()
{
	$$('#comparisons textarea').invoke('stopObserving', 'keypress', limitText);
	$$('#comparisons textarea').invoke('observe', 'keypress', limitText);
	
	$$('#reviews textarea').invoke('stopObserving', 'keypress', limitText);
	$$('#reviews textarea').invoke('observe', 'keypress', limitText);
}

limitText = function(e)
{
	var limit = 250
	if(!this.previous('div') || this.previous('div').className != 'limit')
	{
		var content = '<div class="limit" style="display: none;">' + (limit - this.value.length) + '</div>';
		this.insert({before: content});
		new Effect.Appear(this.previous('div'));
	}
	if(this.value.length > limit)
	{
		this.value = this.value.substring(0, limit);
	}
	this.previous('div').update(limit - this.value.length);
}

// var carousel = new Carousel();
var MyStringHandler = new StringHandler();
