var flashID = 'principal';
var sActiveLI = '';
var myLightWindow;
var iCreateIFrame = typeof(iCreateIFrame)!='undefined' ? iCreateIFrame : 1;

var iQuizQuestionNo = 0;
var iQuizBarWidth = 0;
var iQuizPos = -1;

var sRedirectLink = '';

var sLabelQuizNextButton;
var sQuizMessageSelectAnswer;
var sQuizTitleCorrectAnswers;
var sQuizLabelCloseButton;
var sQuizTitleResults;
var sQuizLabelShowResults;
var sQuizLabelRetest;
var sQuizResultText;
var sQuizResultsSharePrefix;
var sQuizResultsShareEmail;
var sQuizResultsShareURLTitle;
var sQuizResultsShareURL;
var iQuizScoreLogosCount = 5;
var sLinkTipAFriend;

var oNewWindow = null;

function checkFlashVersion()
{

	if ( typeof(DetectFlashVer)!='undefined' )
	{
		if ( !DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision) )
		{
			$j('body').prepend($j('<p class="flash-wrong">'+sLabelWrongFlashMessage.replace('YY', requiredMajorVersion+'.'+requiredMinorVersion+'.'+requiredRevision).replace('XX', '<a href="http://www.adobe.com/go/getflash/" target="_blank">'+sLabelHere+'</a>')+'</p>'));
		}
	}

}

function showQuizResults()
{

	if ( !$j('.tx-myquizpoll-pi1 > .results').length ) return;

	//clone the DIV outside the parent
	$j('.tx-myquizpoll-pi1').after($j('.tx-myquizpoll-pi1 > .results').clone().removeClass().addClass('tx-myquizpoll-pi1-results'));

	//remove unneeded TAGs
	$j('.tx-myquizpoll-pi1 > .results').remove();
	$j('.tx-myquizpoll-pi1 > form').remove();

	//number the answers
	$j('.tx-myquizpoll-pi1-results .tx_myquizpoll_pi1-title').each(function(i){
		$j(this).prepend((i+1)+'. ');
	});

	quizCalculateResult();
	quizBuldResultsPage();

	//style a little the output	
	$j('.tx-myquizpoll-pi1-results b').each(function(){
		$j(this).parents('div.tx_myquizpoll_pi1-answer').addClass('tx_myquizpoll_pi1-answer-bold');
		$j(this).remove();
	});

	//add the results title
	$j('.tx-myquizpoll-pi1-results').prepend($j('<h2>'+sQuizTitleCorrectAnswers+'</h2>'));
	$j('.tx-myquizpoll-pi1-results').append($j('<input type="button" class="close_btn" name="close_btn" value="'+sQuizLabelCloseButton+'" />'));
	$j('.tx-myquizpoll-pi1-results input.close_btn').click(function(){
		$j('.tx-myquizpoll-pi1-results').css('display', 'none');
	});

}

function quizCalculateResult()
{

	iAllAnswers = $j('.tx-myquizpoll-pi1-results .tx_myquizpoll_pi1-question').length;
	iBadAnswers = $j('.tx-myquizpoll-pi1-results b i').length;
	iScore = iAllAnswers-iBadAnswers;

}

function quizBuldResultsPage()
{

	iRatio = iAllAnswers/iQuizScoreLogosCount;
	iEmoticonID = Math.floor(iScore/iRatio)+(iScore%iRatio || iScore==0 ? 1 : 0);
	sResultText = sQuizResultText.replace('XX', iScore).replace('YY', iAllAnswers);

	$j('.tx-myquizpoll-pi1').append($j('<h1>'+sQuizTitleResults+'</h1>'));
	$j('.tx-myquizpoll-pi1').append($j('<div class="result-quiz emoticon-'+iEmoticonID+'">'+sResultText+'</div>'));
	$j('.tx-myquizpoll-pi1').append($j('<div class="result-quiz-share"><a href="#" class="twitter">'+sQuizResultsSharePrefix+' Twitter</a><a href="#" class="myspace">'+sQuizResultsSharePrefix+' MySpace</a><a href="#" class="facebook">'+sQuizResultsSharePrefix+' Facebook</a><a href="#" class="email">'+sQuizResultsShareEmail+'</a></div>'));
	$j('.tx-myquizpoll-pi1').append($j('<div class="buttons"><input type="button" class="retest_btn" name="retest_btn" value="'+sQuizLabelRetest+'" /><input type="button" class="show_results_btn" name="show_results_btn" value="'+sQuizLabelShowResults+'" /></div>'));
	$j('.tx-myquizpoll-pi1 input.show_results_btn').click(function(){
		$j('.tx-myquizpoll-pi1-results').css('display', 'block');
	});
	$j('.tx-myquizpoll-pi1 input.retest_btn').click(function(){
		window.location.href = window.location.href;
	});
	$j('.tx-myquizpoll-pi1 .result-quiz-share a').click(function(){
		shareSolution([sQuizResultsShareURLTitle, sQuizResultsShareURL+(sQuizResultsShareURL.indexOf('?')==-1 ? '?' : '&')+'score='+iScore+'|'+iAllAnswers+'|'+iEmoticonID, $j(this).attr('class')]);
		return false;
	});

}

function quizCheckAnswered()
{

	return $j('.tx_myquizpoll_pi1-qitem:eq('+iQuizPos+') input[checked="true"]').length ? true : false;

}

function nextQuizQuestion()
{

	if ( iQuizPos>=0 && !quizCheckAnswered() )
	{
		alert(sQuizMessageSelectAnswer);
		return;
	}

	$j('.tx_myquizpoll_pi1-qitem:eq('+(iQuizPos++)+')').css('display', 'none');
	$j('.tx_myquizpoll_pi1-qitem:eq('+iQuizPos+')').css('display', 'block');

	if ( iQuizPos<iQuizQuestionNo )
	{
//		iBGPos = Math.ceil((iQuizBarWidth/iQuizQuestionNo)*(iQuizQuestionNo-iQuizPos));
//		$j('.tx-myquizpoll-pi1 .progress-bar').css('background-position', iBGPos+'px 0%');
		iBGPos = Math.ceil((iQuizBarWidth/iQuizQuestionNo)*(iQuizPos+1));
		$j('.tx-myquizpoll-pi1 .progress-bar').css('width', iBGPos+'px');
		$j('.progress-number').html((iQuizPos+1)+' / '+iQuizQuestionNo);
	}
	else if ( iQuizPos )
	{
		$j('.tx-myquizpoll-pi1 .next_btn').css('display', 'none');
		$j('.tx-myquizpoll-pi1 form').submit();
	}

}

function createQuiz()
{

	$j('.tx_myquizpoll_pi1-submit').before('<div class="progress-number"></div><div class="progress-bar-bg"></div><div class="progress-bar"></div>');
	$j('.tx_myquizpoll_pi1-submit').before('<input type="button" class="next_btn" name="next_btn" value="'+sLabelQuizNextButton+'" />');
	$j('.tx-myquizpoll-pi1 .next_btn').click(function(){
		nextQuizQuestion();
		return false;
	});

	iQuizQuestionNo = $j('.tx_myquizpoll_pi1-qitem').length;

	// create labels from the question answer texts
	$j('.tx_myquizpoll_pi1-answer').each(function(i){
		objTemp = $j(this).clone();
		objTemp.find('input').remove();
		objLabel = '<label for="quiz-answer-id'+i+'">'+$j.trim(objTemp.html())+'</label>';
		objNew = $j('<div>').append($j(this).find('input:eq(0)').attr('id', 'quiz-answer-id'+i).clone()).html();
		$j(this).html(objNew+objLabel);
	});

	if ($j.browser.msie)
	{
		iQuizBarWidth = Math.abs(parseInt($j('.tx-myquizpoll-pi1 .progress-bar').css('background-position-x')));
		$j('.tx_myquizpoll_pi1-answer input').css('margin-top', '-4px');
	}
	else
	{
		iQuizBarWidth = Math.abs(parseInt($j('.tx-myquizpoll-pi1 .progress-bar').css('background-position')));
	}

	iQuizBarWidth = Math.abs(parseInt($j('.tx-myquizpoll-pi1 .progress-bar').css('width')));
	$j('.tx-myquizpoll-pi1 .progress-bar').css('width', '0');

	nextQuizQuestion();
	showQuizResults();

}

function shareSolution(aParams)
{

	sTitle = encodeURIComponent(aParams[0]);
	sURL = encodeURIComponent(aParams[1]);
	sType = aParams[2];
	//defining the links
	sLink_facebook ='http://www.facebook.com/sharer.php?u='+sURL+'&t='+sTitle;
	sLink_myspace = 'http://www.myspace.com/Modules/PostTo/Pages/?u='+sURL+'&t='+sTitle;
	sLink_twitter = 'http://twitter.com/home?status='+sTitle+' '+sURL;
	sLink_digg = 'http://digg.com/submit?phase=2&url='+sURL+'&title='+sTitle+'&bodytext=';
	sLink_blogger = 'http://www.blogger.com/blog_this.pyra?t=&u='+sURL+'&n='+sTitle;
	sLink_delicious = 'http://del.icio.us/post?partner=addthis&url='+sURL+'&title='+sTitle+'&notes=';
	sLink_stumbleupon = 'http://www.stumbleupon.com/submit?url='+sURL+'&title='+sTitle;

	if ( !(sType=='email') && !(sType=='emailfriend') )
	{
		eval('sLink = sLink_'+sType);
	}

	switch(sType){
		case "email":
		case "emailfriend":
			sLink = sLinkTipAFriend+'?tipUrl='+sURL+'&iframe=true&width=500&height=250';

			if ( typeof($j.prettyPhoto.open)!='function' )
			{
				$j('<a href="'+sLink+'">'+sTitle+'</a>').prettyPhoto({
					animationSpeed: 'normal',
					padding: 40,
					opacity: 0.90,
					showTitle: false,
					allowresize: true,
					theme: 'light_rounded',
					hideflash: true,
					modal: false
				});
			}

			$j.prettyPhoto.open(sLink);

			break;
		default:
			sLink = (sRedirectLink!='' ? sRedirectLink+'?redirectto='+escape(sLink) : sLink);
			oNewWindow = window.open(sLink, '', 'statusbar=1, toolbar=0, location=1, menubar=0, resizable=dissalow, height=650, width=1024, scrollbars=1');
			break;
	}

}

function showType(categories)
{

	if ( (obj=$j('#'+flashID))!=null )
	{
		obj.get(0).showType(categories);
	}

}

function showTag(keyword)
{

	if ( (obj=$j('#'+flashID))!=null )
	{
		obj.get(0).showTag(keyword);
	}

}

function buildSolutionsByCategory()
{
/*
	$j('.columns-top ul.categories > li').each(function(i){
		sTitleCateg = $j(this).find('a:eq(0)').html();
		iCountCateg = $j(this).find('ul.subcategories li');
		iCountCateg = iCountCateg!=null ? iCountCateg.length : 0;
		$j(this).addClass('form-elem');
		$j(this).html($j('<input type="checkbox" value="'+sTitleCateg+'" checked="checked" id="categ'+i+'" /><label for="categ'+i+'">'+sTitleCateg+'</label><span class="counter">('+iCountCateg+')</span>'));
		$j(this).click(function(){
			var iChecked = 0;
			var aCategories = new Array();

			$j('.columns-top ul.categories > li input').each(function(){
				iChecked += $j(this).attr('checked') ? 1 : 0;
			});

			if ( iChecked==0 ) return false;

			$j('.columns-top ul.categories input[type="checkbox"]').each(function(){
				if ( $j(this).attr('checked') )
				{
					aCategories.push($j(this).attr('value').replace('&amp;', '&').replace('&amp;', '&'));
				}
			});

			showType(aCategories);
		});

		if ( $j.browser.msie )
		{
			$j(this).find('input').css('margin-top', '0');
		}
	});
*/
	$j('.columns-top ul.categories > li > a').each(function(){
		iCountCateg = $j(this).parents('li').find('ul.subcategories li').length;
		$j(this).append($j('<span class="counter">('+iCountCateg+')</span>'));
		$j(this).attr('href', '#').click(function(){
			clearSelectedCategories();
			$j(this).addClass('active');
			sCategory = $j(this).html();
			sCategory = sCategory.substring(0, sCategory.indexOf('<span'));
			sCategory = $j(this).attr('class').indexOf('active')>-1 ? sCategory.replace('&amp;', '&').replace('&amp;', '&') : '';
			showType([sCategory]);

			return false;
		});
	});

}

function clearSelectedCategories()
{

	$j('.columns-top ul.categories > li > a').removeClass('active');
	$j('.columns-top ul.keywords > li').removeClass('active');

}

function buildSolutionsByKeyword()
{

	var bHidden = 0;
	var iIndexHideComma = -1;
	var iPrevTop = -1;
	var iPrevLeft = -1;
	var iPrevWidth = -1;
	posTD = $j('.top-container .columns-top td.c3').position();

	if ( $j('a.all').length==0 ) return;

	$j('a.all').css('display', 'block').click(function(){ return false; });
	var posLinkAll = $j('a.all').position();
	posLinkAll.top += $j('a.all').height()+2; //empiric value 2 to work in FF, IE

	$j('.columns-top ul.keywords > li').each(function(i){
		posLink = $j(this).position();
		linkWidth = $j(this).width();
		linkHeight = $j(this).height();

		iPrevTop = iPrevTop==-1 ? posLink.top : iPrevTop; 
		iPrevLeft = iPrevLeft==-1 ? posLink.left : iPrevLeft; 
		iPrevWidth = iPrevWidth==-1 ? linkWidth : iPrevWidth; 

		if ( !bHidden && iPrevTop==posLink.top && iPrevLeft>posLink.left )
		{
			posLink.left = iPrevLeft+iPrevWidth+parseInt($j(this).css('padding-right'));
		}

		if ( bHidden || posLinkAll.top < posLink.top || (posLink.left <= posLinkAll.left && posLinkAll.left <= (posLink.left+linkWidth) && posLink.top <= posLinkAll.top && posLinkAll.top <= (posLink.top+linkHeight)) )
		{
			iIndexHideComma = !bHidden ? (i-1) : iIndexHideComma;
			bHidden = 1;
			$j(this).addClass('hidden');
		}
		
		$j(this).click(function(){
			if ( sActiveLI!=$(this).html() )
			{
				$j('.columns-top ul.keywords > li').removeClass('active');
				sActiveLI = $(this).html();
			}

			sKeyword = '';
			$j(this).toggleClass('active');

			if ( $j(this).attr('class')=='active' )
			{
				sKeyword = $j(this).find('a:eq(0)').html().replace('&amp;', '&').replace('&amp;', '&');
			}

			showTag(sKeyword);

			return false;
		});

		iPrevTop = posLink.top; 
		iPrevLeft = posLink.left; 
		iPrevWidth = linkWidth; 
	});

	$j('a.all').css('display', 'none');

	if ( iIndexHideComma > 0 && (obj = $j('.columns-top ul.keywords > li:eq('+iIndexHideComma+')'))!=null )
	{
		obj.html(obj.html().substr(0, obj.html().length-1));
	}

	return false;
}

function initIFrame()
{

	$j("html").css('background', "transparent");
	$j("html").css('overflow', "hidden"); //needed for Safari vertical scrollbar
	$j("div.top-container").remove();
	$j("div.content-coverflow").remove();
	$j('div.main-container').css('padding', '0');
	$j('div.container').css('padding', '0');
	$j('div.container').css('background-image', 'none');
	
	$j(top.document).find("div.content").fadeIn(function(){
		$j(top.document).find('iframe#frmt').css('height', ($j('div.main-container').height()+20)+'px');;
		$j(top.document).find('iframe#frmt').css('margin', '0 -55px 0 -56px');;
	});
	
}

function createHordes()
{

	if ( $j('.tx-srfeuserregister-pi1 form').length==0 )
	{
		$j('.horde').remove();
		return false;
	}

	var sAjaxURL = 'http://101-solutions.org/fileadmin/templates/101-solutions/inc/hordes.php';

	$j('.horde .tx-srfeuserregister-pi1 select.hordes').change(function(){
		$j('input#tx-srfeuserregister-pi1-tx_feusershordes_horde').attr('value', $j(this).attr('value'));
	});
	
	$j('.horde .tx-srfeuserregister-pi1 input#hordes').keyup(function(){
		sValue = $j(this).attr('value');
		$j.ajax({
			url: sAjaxURL,
			data: {'search_horde':sValue},
			dataType: 'html',
			beforeSend: function(){
			},
			success: function(sHTML){
				iID = parseInt(sHTML);

				if ( iID==0 || isNaN(iID) )
				{
					iID = 0;
					$j('.horde .tx-srfeuserregister-pi1 input#hordes').parents('dd').find('span.info').html('');
				}
				else
				{
					$j('.horde .tx-srfeuserregister-pi1 input#hordes').parents('dd').find('span.info').html('found it');
				}
				
				$j('input#tx-srfeuserregister-pi1-tx_feusershordes_horde').attr('value', iID);
			}
		});
	});
	
	$j('.horde .tx-srfeuserregister-pi1-submit').click(function(){
		sValue = $j('.horde input#horde_name').attr('value');

		if ( sValue=='' )
		{
			alert('Input a horde name!');

			return false;
		}

		if ( sValue.indexOf('|')>=0 )
		{
			alert('| not allowed in horde name!');

			return false;
		}

		$j.ajax({
			url: sAjaxURL,
			data: {'new_horde':sValue},
			dataType: 'html',
			beforeSend: function(){
			},
			success: function(sHTML){
				iID = sHTML.substr(0, sHTML.indexOf('|'));
				sTitle = sHTML.substr(sHTML.indexOf('|')+1);

				if ( sTitle=='' ) return false;

				alert(sTitle+' was added in Horde list');
				$j('.horde .tx-srfeuserregister-pi1 input#hordes').attr('value', sTitle);
				
				$j('.horde .tx-srfeuserregister-pi1 select.hordes').append($j('<option value="'+iID+'">'+sTitle+'</option>'));

				iNowHorde = $j('input#tx-srfeuserregister-pi1-tx_feusershordes_horde').attr('value');

				if ( parseInt(iNowHorde)==0 || isNaN(parseInt(iNowHorde)) )
				{
					$j('input#tx-srfeuserregister-pi1-tx_feusershordes_horde').attr('value', iID);
				}
			}
		});

		return false;
	});

}

function applyFunctionalityWidgetShare()
{
var $obj = null;

	if ( ($obj=$j('.widget-code')).length==0 )	return;

	iLanguage = typeof(iLanguage)=='undefined' ? 0 : iLanguage;
	$obj.find('.right .html-code textarea').focus(function(){
		$j(this).select();
	}).mouseup(function(e){
		e.preventDefault();
	});
	$obj.find('.right .language input').click(function(){
		sLang = $j(this).val();
		$obj.find('.right .html-code textarea').hide();
		$objCode = $obj.find('.right .html-code textarea#widget-code-'+sLang);
		$objCode.show();
		sCode = $objCode.val();
	});
	$obj.find('.right .language input:eq('+iLanguage+')').click().attr('checked', 'checked');

}

function doInit()
{

	applyFunctionalityWidgetShare();

	if(window == top)
	{
		checkFlashVersion();
		buildSolutionsByCategory();
		buildSolutionsByKeyword();
		createQuiz();
		createHordes();

		if ( iCreateIFrame )
		{
			var frmHREF = '';

			if ( $j("div.content").html().replace('<!--TYPO3SEARCH_begin-->', '').replace('<!--TYPO3SEARCH_end-->', '').replace(/ /gi, '')!='' )
			{
				frmHREF = window.location.href+(window.location.href.indexOf('?')==-1 ? '?' : '&')+'iframed=1';
			}

			var frm = $j("div.content").html("<iframe name='frmt' id='frmt' width='980' height='600' frameborder='0' scrolling='no' border='0' style='background:transparent none; border: 0px solid; margin-left:-22px;' allowtransparency='true' src='"+frmHREF+"'></iframe>").hide();

			if ( frmHREF!='' )
			{
				setTimeout(function(){frmt.location.href = frmHREF;},500);
			}
		}
	}
	else
	{
		initIFrame();
	}

/*
	$j('a').each(function(indx,elem){
		var lnk = $j(elem);
		var strPos = lnk.attr('href').indexOf('101-solutions.org');
		if (strPos == 7 || strPos == 11) {
			lnk.attr("target","frmt");
		} else {
			lnk.attr("target","_blank");
		}
	});
*/
	
}

var $j = jQuery;
$j(document).ready(doInit);
