var photovoteData =
{
	"service": "http://msnemx.msn.com/PhotoVote/", 
	"stockVoteCss": "http://entimg.msn.com/i/PhotoVote/css/us/photovotestock.css",  
	"customVoteCss": "http://entimg.msn.com/i/PhotoVote/css/us/photovotedefault.css",
	"stockGalleryCss": "http://entimg.msn.com/i/PhotoVote/css/us/photovotegallery.css",
	"spacesLink": "http://msnemx.msn.com/ToolsA/BlogEpisode.aspx", 
	"customGalleryCss": null,
	"customGalleryCssIE": null,
	"customGalleryCssFireFox": null,
	"customGalleryCssSafari": null,
	"facebookLink": "http://www.facebook.com/sharer.php",
	"blankImage": "http://entimg.msn.com/i/PhotoVote/images/c.gif", 
	"showMoreLink": "http://entertainment.msn.com",
	"imageTitle": "View Full Photo Gallery",
	"enterName": "Enter your first name",
	"question": "What question do you want to ask?",
	"create": "Create your poll",
	"answers": [ "Answer A", "Answer B", "Answer C" ],
	"answerDefaultText": [ "<Enter a funny observation.>", "<Enter a confession.>", "<Enter a comparison to a friend.>" ],
	"mailSubject": "Tell me what you think!",
	"mailBody": "I saw this cool photo on MSN Entertainment and created a fun question about it. Take a look at the photo and vote your answer. #link#",
	"createdThanks": "Thanks for creating your very own custom voting poll on MSN!",
	"createdThanksName": "Thanks for creating your very own custom voting poll on MSN, #name#!",
	"checkVote": "Check out your custom poll!",
	"rssFeed": "RSS feed of your current results",
	"addBookmark": "Bookmark your custom poll!",
	"addFacebook": "Add this poll to your Facebook!",
	"addSpaces": "Add this poll to your Live Spaces!",
	"spacesDesc": "Check out my poll on MSN!",
	"greetVote": "Your friend wants to ask you:",
	"greetVoteName": "Your friend #name# wants to ask you:",
	"cast": "Cast your vote!",
	"viewResults": "View current results",
	"reportAbuse": "Report abuse",
	"reportAbuseThanks": "Your request has been submitted.",
	"greetResults": "Here is what your friends think:",
	"greetResultsName": "Here is what your friends think:",
	"learnHeader": "Learn how to",
	"learnText": "Create your own photo poll!",
	"close": "Close",
	"showMore": "Show me more photos!",
	"showGallery": "Show me more photos!",
	"disclaimerHeader": "Disclaimer: ",
	"disclaimerText": "You agree your poll questions and responses will comply with the Microsoft <a href='http://tou.live.com/en-us/default.aspx' target='_new'>Terms of Use</a> and <a href='http://entimg.msn.com/i/PhotoVote/legal/codeofconduct.html' target='_new'>Code of Conduct</a>.  Microsoft is not responsible for the content or activities in any of these user created surveys.",
	"disclaimerHeaderVote": "Disclaimer: ",
	"disclaimerTextVote": "Microsoft is not responsible for the content or activities in any of these user created polls.<br /><br /><a href='http://tou.live.com/en-us/default.aspx' target='_new'>Terms of Use</a><br /><br /><a href='http://entimg.msn.com/i/PhotoVote/legal/codeofconduct.html' target='_new'>Code of Conduct</a>",
	"noQuestion": "Please enter a question",
	"questionTooLong": "Question text too long.",
	"noAnswers": "Please enter at least two answers",
	"noAnswer": "Please select an answer",
	"cantCreate": "The vote cannot be created",
	"cantFind": "The vote you have requested is no longer available",
	"cantVote": "The vote cannot be posted",
	"nameDefaultText": "<Optional.>",
	"returnTracking": "&ocid=aafreturn",
	"questionDefaultText": "<A fun and unusual question will get more interesting results from your friends.>"
	
};

var photovoteVoteHolder = null;
var photovoteLearn = null;
var photovoteTemp = null;
var photovoteVoted = false;
var photovoteNextTag = null;
var photovoteNextIndex = null;

var photovoteQuery = new Object();
{
	var args = location.search ? location.search.substr(1).toLowerCase().split("&") : new Array();
	for (var i = 0; i < args.length; ++i)
	{
		var strs = args[i].split("=");
		if (strs.length >= 2)
		{
			photovoteQuery[strs[0]] = strs[1];
		}
	}
}

function photovoteTrim(str)
{
	if (!str)
	{
		return "";
	}
	
	var i = 0; 
	while ((i < str.length) && (str.charAt(i) == ' '))
	{	
		i++; 
	}
	var j = str.length - 1;
	while ((j > i) && (str.charAt(j) == ' '))
	{	
		j--;	
	}
	return str.substring(i, j + 1);
}

function photovoteGetCookie(name)
{
	if (!document.cookie)
	{
		return null;
	}
	var n = document.cookie.indexOf(name + "="); 
	if (n < 0)
	{
		return null;
	}
	var v = n + name.length + 1;
	var e = document.cookie.indexOf(";", v); 
	if (e < 0)
	{
		e = document.cookie.length;
	}
	return unescape(document.cookie.substring(v, e)); 
}

function photovoteSetCookie(name, value, days, path, domain, isSecure)
{
	if (days)
	{
		days = new Date((new Date()).getTime() + (days * 1000 * 60 * 60 * 24));
	}
	document.cookie =
		name + "=" + escape(value) + 
		(days ? ";expires=" + days.toGMTString() : "") + 
		(path ? ";path=" + path : "") + 
		(domain ? ";domain=" + domain : "") + 
		(isSecure ? ";secure" : ""); 
}
		
function photovoteCanBookmark()
{
	if ((typeof window.sidebar == "object") && (typeof window.sidebar.addPanel == "function"))
	{
		return true;
	}
	if (typeof window.external == "object")
	{
		return true;
	}
	return false;
}

function photovoteAddBookmark(name, url)
{
	if (!url)
	{
		url = location.href;
	}
	if (!name)
	{
		name = url;
	}
	if ((typeof window.sidebar == "object") && (typeof window.sidebar.addPanel == "function"))
	{
		try
		{
			window.sidebar.addPanel(name, url, "");	
		}
		catch (e)
		{
		}
	}
	else if (typeof window.external == "object")
	{
		window.external.addFavorite(url, name);			
	}
}

function photovoteAddEventHandler(element, eventName, handler)
{
	if (!element || !eventName || !handler)
	{
		return;
	}
	
	if (element.attachEvent)
	{
		element.attachEvent("on" + eventName, handler);
	}
	else
	{
		element.addEventListener(eventName, handler, false);
	}
}

function photovoteGetBaseUrl(query, ignore)
{
	var url = location.href.substr(0, location.href.length - location.search.length);
	var data = "";
	var gotOne = false;
	for (var x in query)
	{
		if ((x != "pv") && (x != "voteid") && (x != "voteerror") && (x != ignore))
		{
			if (gotOne)
			{
				data += "&";
			}	
			gotOne = true;
			data += x + "=" + escape(query[x]);
		}
	}
	
	var ret = new Object();
	ret.url = url;
	ret.data = data;
	return ret;
}

function photoVoteEscapeHtml(str)
{
	if (!photovoteTemp)
	{
		photovoteTemp = document.createElement("div");
	}	
	photovoteTemp.innerHTML = "";
	var text = document.createTextNode(str);
	photovoteTemp.appendChild(text);
	return photovoteTemp.innerHTML;
}

function photovoteCreateAsk(isHot)
{
	var parsed = photovoteGetBaseUrl(photovoteQuery);
	var url = parsed.url + "?";
	if (parsed.data)
	{
		url += parsed.data + "&";
	}
	url += "pv=create";
	var str;
	if (isHot)
	{
		str = '<a href="' + url + '"><div class="PhotoVoteAskImageCss" style="cursor:pointer;" title="Ask A Friend"><!-- --></div></a>';
	}
	else
	{
		str = '<div class="PhotoVoteFormImageCss"><!-- --></div>';
	}

	var div = document.createElement("div");
	div.innerHTML = str;
	photovoteVoteHolder.appendChild(div);
}

function photovoteCreateForm(imageUrl)
{
	
	
	var parsed = photovoteGetBaseUrl(photovoteQuery);
    var argsVote = parsed.data ? parsed.data + "&pv=vote" : "pv=vote";
    var argsCreated = parsed.data ? parsed.data + "&pv=created" : "pv=created";
	var str = 
 	'<form method="post" style="border:none;margin:0;padding:0;" action="' + photovoteData.service + 'CreateVote.aspx">' +
	'<input type="hidden" name="encoding" value="page" />' +
	'<input type="hidden" name="photo" value="' + imageUrl + '"/>' +
	'<input type="hidden" name="friendly" value="true"/>' +
	'<input type="hidden" name="voteUrl" value="' + parsed.url + '"/>' +            
	'<input type="hidden" name="voteData" value="' + argsVote + '"/>' +
	'<input type="hidden" name="userPage" value="' + parsed.url + '"/>' +            
	'<input type="hidden" name="userData" value="' + argsCreated + '"/>' +
	'<input type="hidden" name="subject" value="' + photovoteData.mailSubject + '" />' +
	'<input type="hidden" name="body" value="' + photovoteData.mailBody + '" />' +
	'<div class="PhotoVotePromptCss">' + photovoteData.question + '</div>' +
	'<div class="PhotoVoteLongBackCss"><textarea id="PhotoVoteQuestion" name="question" class="PhotoVoteLongEditDefaultCss" wrap="soft" style="background:transparent;" onfocus="createFormFieldOnFocus(this.id)">' + photovoteData.questionDefaultText + '</textarea></div>';
	
	var answerLength = 0;
	
	if(photovoteData.answers.length == photovoteData.answerDefaultText.length || photovoteData.answers.length < photovoteData.answerDefaultText.length)
	{
	    answerLength = photovoteData.answers.length;
	}
	else if(photovoteData.answers.length > photovoteData.answerDefaultText.length)
	{
	    answerLength = photovoteData.answerDefaultText.length;
	}
	
	for (var i = 0; i < answerLength; ++i)
	{
		str += 
		'<div class="PhotoVotePromptCss">' + photovoteData.answers[i] + '</div>' + 
		'<div class="PhotoVoteShortBackCss"><input type="text" id="PhotoVoteAnswer' + i + '" name="answer' + i + '" maxLength="255" class="PhotoVoteShortEditDefaultCss" value="' + photovoteData.answerDefaultText[i] + '" onfocus="createFormFieldOnFocus(this.id)" /></div>';
	}
	str += '<div id="PhotoVoteNamePrompt" class="PhotoVotePromptCss">' + photovoteData.enterName + '</div>' + 
	'<div class="PhotoVoteShortBackCss"><input id="PhotoVoteName" type="text" name="name" class="PhotoVoteShortEditDefaultCss" maxLength="15" value="' + photovoteData.nameDefaultText + '" onfocus="createFormFieldOnFocus(this.id)" /></div>';
	
	str += 
	'<input type="submit" class="PhotoVoteCreateCss" onclick="return photovoteVerify();" value="" title="' + photovoteData.create + '" style="cursor:pointer;" />' +
	'</form>';

	var div = document.createElement("div");
	div.innerHTML = str;
	photovoteVoteHolder.appendChild(div);
	
	
	
	
}

function createFormFieldOnFocus(theID)
{
    passedElement = document.getElementById(theID);
    
    theNodeName = passedElement.nodeName.toUpperCase();
        
    if(theNodeName == "INPUT")
    {
       if(passedElement.className != "PhotoVoteShortEditCss")
       {
            passedElement.value = "";
            passedElement.className = "PhotoVoteShortEditCss";
       }
    }
    else
    {
       if(passedElement.className != "PhotoVoteLongEditCss")
       {
            passedElement.value = "";
            passedElement.className = "PhotoVoteLongEditCss";
       }
    }
}

function photovoteLoadData()
{
	var voteId = photovoteQuery["voteid"];
	if (!voteId)
	{	
		var parsed = photovoteGetBaseUrl(photovoteQuery);
		var url = parsed.url;
		if (parsed.data)
		{
			url += "?" + parsed.data;
		}
		location.replace(url);
		return;
	}

	var url = photovoteData.service + "RetrieveVote.aspx?voteId=" + voteId + "&callback=photovoteHandleData&encoding=json";
	var ss = document.createElement("script");
	ss.type = "text/javascript";
	ss.src = url;
	document.getElementsByTagName("head")[0].appendChild(ss);
}

function photovoteCreateThanks(data)
{
	var parsed = photovoteGetBaseUrl(photovoteQuery);
	var voteUrl = parsed.url + "?";
	if (parsed.data)
	{
		voteUrl += parsed.data + "&";
	}
	voteUrl += "voteId=" + data.voteId + "&pv=vote";
	var rssUrl = photovoteData.service + "RetrieveVote.aspx?voteId=" + data.voteId + "&encoding=rss";
	var facebookUrl = photovoteData.facebookLink + "?u=" + escape(voteUrl);
	var facebookScript = "javascript:window.open('" + facebookUrl + "', 'photovoteFacebook', 'toolbar=0,status=0,width=626,height=436'); return false;";
	var spacesUrl = photovoteData.spacesLink + "?ti=" + escape(document.title) + "&url=" + escape(voteUrl);
	var bookmarkScript = "javascript:photovoteAddBookmark('" + document.title + "', '" + voteUrl + "'); return false;";
	if (photovoteData.spacesDesc)
	{
		spacesUrl += "&d=" + escape(photovoteData.spacesDesc);
	}
	
	var thanks;
	
	if (data.name)
	{		
		thanks = photovoteData.createdThanksName.replace("#name#", photoVoteEscapeHtml(unescape(data.name)));
	}
	else
	{	
		thanks = photovoteData.createdThanks;
	}
	var str =
	'<div class="PhotoVoteGreetCss">' + thanks + '</div>';
	if (photovoteData.checkVote)
	{
		str +=
		'<div class="PhotoVoteLinkCss"><a href="' + voteUrl + '">' + photovoteData.checkVote + '</a></div>';
	}
	if (photovoteData.addFacebook)
	{
		str += 
		'<div class="PhotoVoteLinkCss"><a href="' + facebookUrl + '" onclick="' + facebookScript + '">' + photovoteData.addFacebook + '</a></div>';
	}
	if (photovoteData.addSpaces)
	{
		str +=
		'<div class="PhotoVoteLinkCss"><a href="' + spacesUrl + '" target="photovoteSpaces">' + photovoteData.addSpaces + '</a></div>';
	}
	if (photovoteData.rssFeed)
	{
		str +=
		'<div class="PhotoVoteLinkCss"><a href="' + rssUrl + '">' + photovoteData.rssFeed + '</a></div>';
	}
	if (photovoteData.addBookmark && photovoteCanBookmark())
	{
		str +=
		'<div class="PhotoVoteLinkCss"><a href="' + voteUrl + '" onclick="' + bookmarkScript + '">' + photovoteData.addBookmark + '</a></div>';
	}

    
	var div = document.createElement("div");
	div.innerHTML = str;
	photovoteVoteHolder.appendChild(div);	
}

function photovoteCreateShowMore(isGallery)
{
	var url = photovoteData.showMoreLink;
	if (photovoteNextTag)
	{
		var parsed = photovoteGetBaseUrl(photovoteQuery, photovoteNextTag);
		url = parsed.url;
		var ch = "?";
		if (parsed.data)
		{
			url += ch + parsed.data;
			ch = "&";
		}
		if (photovoteNextIndex)
		{
			url += ch + photovoteNextTag + "=" + photovoteNextIndex;
		}		
	}
	
	var str;
	if (!!document.all) 
	{
		str = '<div class="' + (isGallery ? "PhotoVoteShowGalleryCss" : "PhotoVoteShowMoreCss") + '"><a href="' + url + '"><div style="position:relative; cursor:pointer; width:100%; height:100%;" title="' + (isGallery ? photovoteData.showGallery : photovoteData.showMore) + '"><!-- --></div></a></div>';
	}
	else
	{
		str = '<div class="' + (isGallery ? "PhotoVoteShowGalleryCss" : "PhotoVoteShowMoreCss") + '" style="overflow:hidden;"><a href="' + url + '"><div style="cursor:pointer; width:100%; height:100%;font-size:100px;" title="' + (isGallery ? photovoteData.showGallery : photovoteData.showMore) + '">&nbsp;<br>&nbsp;</div></a></div>';
	}
	var div = document.createElement("div");
	div.innerHTML = str;
	photovoteVoteHolder.appendChild(div);
}

function photovoteCreateDisclaimer(data,whichPage)
{   
    if(whichPage)
    {   
        switch(whichPage)
        {
            case "vote":
                var str = '<div class="PhotoVoteDisclaimerCss"><span class="PhotoVoteDisclaimerHeaderCss">' + photovoteData.disclaimerHeaderVote + '</span><span class="PhotoVoteDisclaimerTextCss">' + photovoteData.disclaimerTextVote + '</span></div>';
                break
            
            default:
                var str = '<div class="PhotoVoteDisclaimerCss"><span class="PhotoVoteDisclaimerHeaderCss">' + photovoteData.disclaimerHeader + '</span><span class="PhotoVoteDisclaimerTextCss">' + photovoteData.disclaimerText + '</span></div>';
        }
        
    }
    
    else
    {
	    var str = '<div class="PhotoVoteDisclaimerCss"><span class="PhotoVoteDisclaimerHeaderCss">' + photovoteData.disclaimerHeader + '</span><span class="PhotoVoteDisclaimerTextCss">' + photovoteData.disclaimerText + '</span></div>';
	}
	
	
	if (data)
	{
		var abuseUrl = photovoteData.service + "ReportAbuse.aspx?voteId=" + data.voteId;
		str += '<div class="PhotoVoteAbuseCss"><a href="' + abuseUrl + '" onclick="photovoteReportAbuse(\'' + data.voteId + '\'); return false;">' + photovoteData.reportAbuse + '</a></div>';
	}
	var div = document.createElement("div");
	div.innerHTML = str;
	photovoteVoteHolder.appendChild(div);
}

function photovoteCreateVote(data)
{
	var parsed = photovoteGetBaseUrl(photovoteQuery);
	var greet;
	if (data.name)
	{		
		greet = photovoteData.greetVoteName.replace("#name#", photoVoteEscapeHtml(unescape(data.name)));	 
	}
	else
	{
		 greet = photovoteData.greetVote;
		    
	}
	
    var argsResults = parsed.data ? parsed.data + "&pv=results" : "pv=results";

	var str =
	'<div class="PhotoVoteGreetCss">' + greet + '</div>' +
	'<div class="PhotoVotePromptCss">' + photoVoteEscapeHtml(unescape(data.question)) + '</div>' +
	'<form id="PhotoVoteForm" method="post" action="' + photovoteData.service + 'PostVote.aspx" style="padding:0px; margin:0px">' + 
	'<input type="hidden" name="encoding" value="page" />' +
	'<input type="hidden" name="voteId" value="' + data.voteId + '" />' +
	'<input type="hidden" name="userPage" value="' + parsed.url + '"/>' +            
	'<input type="hidden" name="userData" value="' + argsResults + '"/>';
	
	for (var i = 0; i < data.answers.length; ++i)
	{
		str += '<div class="PhotoVoteOptionCss"><input id="PhotoVoteAnswer' + i + '" type="radio" class="PhotoVoteOptionButtonCss" onchange="photovoteVoted=true;" name="answer" value="' + i + '"/>' + photoVoteEscapeHtml(unescape(data.answers[i])) + '</div>';
	}
	var resultsUrl = parsed.url + "?";
	if (parsed.data)
	{
		resultsUrl += parsed.data + "&";
	}
	resultsUrl += "voteId=" + data.voteId + "&pv=results";
	str += 
	'<div class="PhotoVoteCastVoteBackground">' + 
	'<div class="PhotoVotePostDivCss"><div class="PhotoVotePostCss"><input type="submit" class="PhotoVotePostCss" onclick="return photovoteVerify();" value="" title="' + photovoteData.cast + '" style="cursor:pointer;" /></div></div>' +
	'<div class="PhotoVoteResultsCss"><a href="' + resultsUrl + '">' + photovoteData.viewResults + '</a></div>' +
	'</div></form>';
	var div = document.createElement("div");
	div.innerHTML = str;
	photovoteVoteHolder.appendChild(div);
	
	
}

function photovoteCreateResults(data)
{
	var greet;
	if (data.name)
	{		
		greet = photovoteData.greetResultsName.replace("#name#", photoVoteEscapeHtml(unescape(data.name)));
	}
	else
	{
		greet = photovoteData.greetResults;
	}
	
	var str =
	'<div class="PhotoVoteGreetCss">' + greet + '</div>' +
	'<div class="PhotoVotePromptCss">' + photoVoteEscapeHtml(unescape(data.question)) + '</div>' +
	'<div><div class="PhotoVoteResultsBarSection">';
	
	var total = 0;
	for (var i = 0; i < data.results.length; ++i)
	{
		total += data.results[i];
	}
	if (!total)
	{
		total = 1;
	}
	for (var i = 0; i < data.answers.length; ++i)
	{
		var percent = parseInt((data.results[i] * 100 / total) + 0.5);
			
		str += 
		'<div class="PhotoVoteAnswerTextCss">' + photoVoteEscapeHtml(unescape(data.answers[i])) + '</div>' + 
		'<table cellpadding="0" cellspacing="0" class="PhotoVoteResultsBarWidth"><tr>' +
		'<td style="width:' + percent + '%"><div class="PhotoVoteResultsBarOutline"><div class="PhotoVoteResultsBarCss"><!-- --></div></div></td>' +
		'<td style="width:' + (100 - percent) + '%"><div class="PhotoVoteNumberCss">' + data.results[i] + '</div></td>' +
		'</tr></table>';
		
	}
	str += '</div><div class="PhotoVoteSpacingCss"><!-- --></div>';
	var div = document.createElement("div");
	div.innerHTML = str;
	photovoteVoteHolder.appendChild(div);
}

function photovoteCreateLearn()
{
	var url = "javascript:photovoteHelp(true)";
	var str;
	if (!!document.all)
	{
		str =
 		'<table cellpadding="0"><tr><td class="PhotoVoteLearnImageCss" rowSpan=2><a href="' + url + '"><div style="cursor:pointer; width:100%; height:100%;" title="' + photovoteData.learnHeader + '"><!-- --></div></a></td>';
	}
	else
	{
		str =
 		'<table cellpadding="0"><tr><td rowSpan=2><div class="PhotoVoteLearnImageCss" style="overflow:hidden;"><a href="' + url + '"><div style="cursor:pointer; width:100%; height:100%; font-size:100px;" title="' + photovoteData.learnHeader + '">&nbsp;<br>&nbsp;</div></a></div></td>';
	}
	str +=
	'<td class="PhotoVoteLearnHeaderCss"><a href="' + url + '">' + photovoteData.learnHeader + '</a></td>' + 
	'</tr><tr>' +
	'<td class="PhotoVoteLearnTextCss">' + photovoteData.learnText + '</td>' + 
	'</tr></table>';

	var div = document.createElement("div");
	div.innerHTML = str;
	photovoteVoteHolder.appendChild(div);
}

function photovoteHelp(show)
{
	if (!photovoteLearn)
	{
		var isVote = photovoteQuery.pv != "results";
		
		photovoteLearn = document.createElement("div");
		photovoteLearn.zIndex = -1;
		photovoteLearn.className = isVote ? "PhotoVoteLearnIntroCss" : "PhotoVoteLearnStepsCss";
		photovoteLearn.style.display = "none";
		photovoteLearn.innerHTML = str;
		document.body.appendChild(photovoteLearn); 

		var str = "";
		if ((!!document.all) && (typeof(document.body.style.maxHeight) == "undefined")) 
		{		
			var bg = photovoteLearn.currentStyle["backgroundImage"];
			if (bg)
			{
				if ((bg.substr(0, 5) == 'url("') && (bg.substr(bg.length - 2, 2) == '")'))
				{
					bg = bg.substr(5, bg.length - 7);
				}
				else
				{
					bg = null;
				}
			}
			if (bg)
			{
				photovoteLearn.style.backgroundImage = 'url(' + photovoteData.blankImage + ')';
				str = 
				'<img src="' + photovoteData.blankImage + '" style="width:100%; height:100%; filter=progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + bg + '\', sizingMethod=\'scale\')"/>';
			}
		}
		str += 
		'<a class="PhotoVoteLearnCloseCss" href="javascript:photovoteHelp(false);" title=' + photovoteData.close + '></a>';
		
		if (isVote)
		{
			str +=
			'<div class="PhotoVoteLearnClose2Css"><a href="javascript:photovoteHelp(false);"><div class="PhotoVoteLearnClose2BackCss" style="cursor:pointer;"></div></a></div>';
		}

		photovoteLearn.innerHTML = str;
	}
	
	photovoteLearn.style.display = show ? "block" : "none";
}

function photovoteReportAbuse(voteId)
{
	var url = photovoteData.service + "ReportAbuse.aspx?voteId=" + voteId + "&callback=photovoteHandleReported&encoding=json";
	var ss = document.createElement("script");
	ss.type = "text/javascript";
	ss.src = url;
	document.getElementsByTagName("head")[0].appendChild(ss);
}

function photovoteHandleReported()
{
	if (photovoteData.reportAbuseThanks)
	{
		alert(photovoteData.reportAbuseThanks);
	}
	
	var parsed = photovoteGetBaseUrl(photovoteQuery);
	var url = parsed.url;
	if (parsed.data)
	{
		url += "?" + parsed.data;
	}
	location.replace(url);
}

function photovoteVerify()
{
            if (photovoteQuery.pv == "create")
            {
                        var enteredName = document.getElementById("PhotoVoteName");
                        if(enteredName.className == "PhotoVoteShortEditDefaultCss")
                        {                            
                            createFormFieldOnFocus(enteredName.id);                            
                        }
                        else
                        {
                            enteredName.value = escape(enteredName.value);
                        }                        
                                     
                        var question = document.getElementById("PhotoVoteQuestion");
                        question.value = escape(photovoteTrim(question.value));                        
                        
                        if(question.className == "PhotoVoteLongEditDefaultCss")
                        {
                            question.value = "";
                        }
                                               
                        if (!question.value)          
                        {
                                    alert(photovoteData.noQuestion);
                                    question.focus();
                                    return false;
                        }           
                        if (question.value.length > 255)
                        {
                                    alert(photovoteData.questionTooLong);
                                    question.focus();
                                    return false;
                        }
                        
                        var firstEmpty = null;
                        var count = 0;
                        var values = new Array();
                        for (var i = 0; i < photovoteData.answers.length; ++i)
                        {                                    
                                    
                                    var answer = document.getElementById("PhotoVoteAnswer" + i);
                                    values[count] = photovoteTrim(answer.value);
                                    
                                    if(answer.className == "PhotoVoteShortEditDefaultCss")
                                    {
                                        values[count] = "";
                                    }
                                                                                                         
                                    if (values[count])
                                    {
                                         count++;
                                    }
                                    else if (!firstEmpty)
                                    {
                                         firstEmpty = answer;
                                    }
                        }
                        if (count < 2)
                        {
                                    alert(photovoteData.noAnswers);
                                    firstEmpty.focus();
                                    return false;
                        }
                        
                        for (var i = 0; i < values.length; ++i)
                        {
                                    var answer = document.getElementById("PhotoVoteAnswer" + i);
                                    answer.value = escape(values[i]);
                        }
                        
                        for (var i = values.length; i < photovoteData.answers.length; ++i)
                        {
                                    var answer = document.getElementById("PhotoVoteAnswer" + i);
                                    answer.value = "";
                        }
            }
            else
            {
                        for (var i = 0; i < photovoteData.answers.length; ++i)
                        {    
                            if (!photovoteVoted)
                            {
                                        alert(photovoteData.noAnswer);
                                        document.getElementById("PhotoVoteAnswer0").focus();
                                        return false;
                            }
                        }    
            }
            
            return true;
}


function photovoteHandleData(data, error)
{
	if (error)
	{
		if (photovoteQuery["pv"] == "created")
		{
			alert(photovoteData.cantCreate);
			
		}
		else
		{
			alert(photovoteData.cantFind);
		}
		var parsed = photovoteGetBaseUrl(photovoteQuery);
		var url = parsed.url;
		if (parsed.data)
		{
			url += "?" + parsed.data;
		}
		location.replace(url);
		return;
	}
	
	if (photovoteQuery["pv"] == "created")
	{
		photovoteCreateThanks(data);
		photovoteCreateShowMore(false);
		photovoteCreateDisclaimer();
	}
	else if (photovoteQuery["pv"] == "vote")
	{
		photovoteCreateVote(data);
		photovoteCreateShowMore(true);
		photovoteCreateDisclaimer(data,"vote");
	}
	else if (photovoteQuery["pv"] == "results")
	{
		photovoteCreateResults(data);
		//photovoteCreateLearn();
		photovoteCreateShowMore(true);
		photovoteCreateDisclaimer(data,"vote");
	}

	photovoteVoteHolder.style.display = "block";
}

function photovoteCreatePanel(holder, image, inOnLoad)
{
	var pv = photovoteQuery["pv"];
	var parsed = photovoteGetBaseUrl(photovoteQuery);
	
	if (photovoteQuery["voteerror"])
	{
		if (pv == "created")
		{
			alert(photovoteData.cantCreate);
			
		}
		else
		{
			alert(photovoteData.cantVote);
		}
		var url = parsed.url;
		if (parsed.data)
		{
			url += "?" + parsed.data;
		}
		location.replace(url);
		return;
	}
	
	if (!holder || !image)
	{
		return;
	}

	photovoteVoteHolder = holder;
	if (pv)
	{
		if (pv == "create")
		{
			photovoteCreateAsk(false);
			photovoteCreateForm(image.src);
			photovoteCreateDisclaimer();
			photovoteVoteHolder.style.display = "block";
			//<cookie monster> if (!photovoteGetCookie("photovoteSeenIntro"))
			//<cookie monster> {
			//<cookie monster>      photovoteSetCookie("photovoteSeenIntro", "true", 14);
				
			//<cookie monster>  	if (inOnLoad)
			//<cookie monster>  	{
			//<cookie monster>  		setTimeout("photovoteHelp(true);", 100);
			//<cookie monster>  	}
			//<cookie monster>  	else
			//<cookie monster>  	{
			//<cookie monster>  		photovoteAddEventHandler(window, "load", function() { setTimeout("photovoteHelp(true);", 100); });
			//<cookie monster>  	}
			//<cookie monster> }
		}
		else if (pv == "created")
		{
			photovoteCreateAsk(false);
			photovoteLoadData();
		}
		else if ((pv == "vote") || (pv == "results"))
		{
			photovoteHideHeaders();
			image.title = photovoteData.imageTitle;
			image.parentNode.title = photovoteData.imageTitle;
			var url = parsed.url;
			
			if (parsed.data)
			{
				url += "?" + parsed.data;
			}
					
			if(url.indexOf("?") == -1)
		        photovoteData.returnTracking="?ocid=aafreturn";
		        
			image.parentNode.href = url + photovoteData.returnTracking;
			//photovoteCreateAsk(false);
			photovoteLoadData();
		}
		else
		{
			var url = parsed.url;
			if (parsed.data)
			{
				url += "?" + parsed.data;
			}
			location.replace(url);
			return;
		}
	}
	else
	{
		photovoteCreateAsk(true);
		photovoteVoteHolder.style.display = "block";
	}
}

function photogalleryFindPhoto(photoHolder)
{
            if (!photoHolder)
            {
                        return null;
            }

            var imgs = photoHolder.getElementsByTagName("img");
            if (!imgs || (imgs.length < 1))
            {
                        return null;
            }

            var img = null;
            for (var i = 0; i < imgs.length; ++i)
            {
                        if (imgs[i].parentNode.tagName.toLowerCase() == "a")
                        {
                                    img = imgs[i];
                        }
                        else if ((imgs[i].parentNode.tagName.toLowerCase() == "td") && (imgs[i].parentNode.className.toLowerCase() == "tp10 bp10"))
                        {
                                    img = imgs[i];    
                        }
            }

                
            return img;
}


function photogalleryStripParam2(href, param, prefix)
{
	var h = href.toLowerCase();
	var i = h.indexOf("" + prefix + param + "=");
	if (i >= 0)
	{
		var h2 = h.substr(i + 1 + param.length + prefix.length);
		var j = h2.indexOf("&");
		if (j >= 0)
		{
			return href.substr(0, i + 1) + href.substr(i + j + 2 + param.length + prefix.length);
		}
		return href.substr(0, i);
	}
	return href;
}

function photogalleryStripParam(href)
{
	href = photogalleryStripParam2(href, "pv", "?");
	href = photogalleryStripParam2(href, "pv", "&");
	href = photogalleryStripParam2(href, "voteid", "?");
	href = photogalleryStripParam2(href, "voteid", "&");
	return href;
}

function photogalleryFixAnchors(img)
{
    photovoteNextTag = "photoidx";
    var photoidx = photovoteQuery[photovoteNextTag];
    if (!photoidx)
    {
                photoidx = 0;
    }

    var anchors = document.getElementsByTagName("a");
    for (var i = 0; i < anchors.length; ++i)
    {
        anchors[i].href = photogalleryStripParam(anchors[i].href);
        if (photovoteNextIndex == null)
        {
            var href = anchors[i].href.toLowerCase();
            if (href.substr(0, 7) != "mailto:")
            {
                var j = href.indexOf(photovoteNextTag + "=");
                if (j >= 0)
                {
                    var str = href.substr(j + photovoteNextTag.length + 1);
                    try
                    {
                        var k = parseInt(str);
                        
                        if (k > photoidx)
                        {
                                    photovoteNextIndex = k;                                    
                        }
                                                
                    }
                    catch (e)
                    {
                    }
                }
            }
        }
    }
    
    if (img && img.parentNode.nodeName.toLowerCase() != "a")
    {
        var parsed = photovoteGetBaseUrl(photovoteQuery);
	    var url = parsed.url + "?";
	    if (parsed.data)
	    {
		    url += parsed.data;
		}
		
		var lastPictureAnchor = document.createElement("a");
		lastPictureAnchor.href = url;
		
		img.parentNode.insertBefore(lastPictureAnchor,img.parentNode.firstChild);
    			            
		img.parentNode.firstChild.appendChild(img.parentNode.childNodes[1]);
		
    }
}


function photovoteFind(element, type, index)
{
	if (!element || !element.childNodes)
	{
		return null;
	}
	
	for (var i = 0; i < element.childNodes.length; ++i)
	{
		if (typeof(element.childNodes[i]) == "object")
		{
			if (element.childNodes[i].tagName && (element.childNodes[i].tagName.toLowerCase() == type))
			{
				if (!index)
				{
					return element.childNodes[i];
				}
				index--;
			}
		}
	}
	
	return null;
}

function photovoteAddCss(cssFile)
{
	if (!cssFile)
	{
		return;
	}
	var lc = cssFile.toLowerCase();
	for (var i = 0; i < document.styleSheets.length; ++i)
	{
		var ss = document.styleSheets[i];
		if (ss.href && (ss.href.toLowerCase() == lc))
		{
			return;
		}
	}

	var ss = document.createElement("link");
	ss.rel= "stylesheet";
	ss.type= "text/css";
	ss.media = "screen";
	ss.href = cssFile;
	document.getElementsByTagName("head")[0].appendChild(ss);
}

function photovoteRemoveCss(ss)
{
	if (!ss)
	{
		return;
	}
	
	if (document.all)  
	{
		ss.disabled = true;
	}
	else if ((navigator.userAgent.toLowerCase().indexOf("safari") < 0) && ss.deleteRule)   
	{
		try
		{
			while (true)
			{
				ss.deleteRule(0);
			}
		}
		catch (e)
		{
		}
	}
	else
	{
		for (var i = 0; i < ss.cssRules.length; ++i)
		{
			var r = ss.cssRules[i];
			var s = r.style;
			var args = s.cssText.split(";");
			for (var j = 0; j < args.length; ++j)
			{
				if (args[j])
				{
					var strs = args[j].split(":");
					if (strs.length > 0)
					{
						var p = photovoteTrim(strs[0]);
						if (p)
						{
							s.setProperty(p, null);
						}
					}
				}
			}
		}
	}
}

function photovoteHideHeaders()
{
	var header = document.getElementById("PhotoGalleryHeader");
	if (header)
	{
		header.style.display = "none";
	}
	
	var links = photovoteFind(photovoteFind(photovoteFind(document.getElementById("PhotoGalleryPhoto"), "table", 1), "tbody"), "tr");
	if (links)
	{
		links.style.display = "none";
	}	
}

function photovoteFixOverrides()
{
	if (window["photovoteDataOverride"])
	{
		for (var x in photovoteDataOverride)
		{
			photovoteData[x] = photovoteDataOverride[x];
		}
	}
}

function photovoteFixStyles()
{
	if ((photovoteQuery["pv"] == "vote") || (photovoteQuery["pv"] == "results"))
	{
		var url = location.href;
	    if(url.indexOf("?") == -1){
	        photovoteData.returnTracking="?ocid=aafreturn"
	    }
		
		var imageDiv = document.createElement("div");
	    imageDiv.id = "infoContainer";
	    document.getElementById("PhotoGalleryPhoto").appendChild(imageDiv);	
	    var newBanner = document.createElement("div");
	    newBanner.id = "photoBanner";
	    var newBannerLink = document.createElement("a");
	    newBannerLink.href = location.href + photovoteData.returnTracking;
	    newBanner.appendChild(newBannerLink);
	    newBannerLink.appendChild(document.createTextNode(photovoteData.imageTitle));
	    document.getElementById("PhotoGalleryPhoto").insertBefore(newBanner,document.getElementById("PhotoGalleryPhoto").firstChild);
	    	
		var tdList = document.getElementsByTagName("td");
	    if (tdList)
	    {
		        for (var j = 0; j < tdList.length; ++j) 
		        {
			        if (tdList[j].className && tdList[j].className.toLowerCase() == "photogalleryinfocss")
			        {
				        tdList[j].style.display = "none";
				        document.getElementById("infoContainer").innerHTML = tdList[j].innerHTML;
				        document.getElementById("PhotoGalleryVote").style.marginTop = "68px";	
				        break;
			        }
		        }
        }
		
		for (var i = 0; i < document.styleSheets.length; ++i)
		{
			var ss = document.styleSheets[i];
			if (ss.title == "PhotoGalleryStyle")
			{
				photovoteRemoveCss(ss);
			}
		}

		if (photovoteData.stockGalleryCss)
		{
			photovoteAddCss(photovoteData.stockGalleryCss);
		}
		if (photovoteData.stockVoteCss)
		{
			photovoteAddCss(photovoteData.stockVoteCss);
		}
	}
	else
	{
		var customCss = photovoteData.customGalleryCss;
		if (!!document.all)
		{
			if (photovoteData.customGalleryCssIE)
			{
				customCss = photovoteData.customGalleryCssIE;
			}	
		}
		else if (navigator.userAgent.toLowerCase().indexOf("safari") < 0)   
		{
			if (photovoteData.customGalleryCssFireFox)
			{
				customCss = photovoteData.customGalleryCssFireFox;
			}	
		}
		else
		{
			if (photovoteData.customGalleryCssSafari)
			{
				customCss = photovoteData.customGalleryCssSafari;
			}	
		}

		if (customCss)
		{
			photovoteAddCss(customCss);
		}
		
		if (photovoteData.customVoteCss)
		{
			photovoteAddCss(photovoteData.customVoteCss);
		}
	}
}

function writeUrl(){
    var galleryUrl = location.href;
    var newUrl;

    if(galleryUrl.indexOf("aafreturn") !=-1){
	    newUrl = galleryUrl.replace("ocid=aafreturn","");
	    location.assign(newUrl);
    }
}

if (window.attachEvent)
{
	window.attachEvent("onload", writeUrl);
}
else
{
	window.addEventListener("load", writeUrl, false);
}

function photogalleryStart()
{
	var img = photogalleryFindPhoto(document.getElementById("PhotoGalleryPhoto"));
	
	photovoteFixOverrides();
	photovoteFixStyles();
	photogalleryFixAnchors(img); 
	photovoteCreatePanel(document.getElementById("PhotoGalleryVote"), img);
}