function showTopNotify(txt) {
	if (ReadCookie('gWire_userId') != '' && 
	    ReadCookie('gWire_userId') != null) { 
		document.write('<style type="text/css">#navBar {display:block} #header {background-image:url(/img/header.png)} #searchDiv {display:block} #logo_link {display:block} </style>');
	} else {
		document.getElementById('top_notify').style.display = "block";
		document.getElementById('top_text').innerHTML= txt;	
		document.write('<style type="text/css">.featured_title {margin:-15px 0 0 0!important} #content_bg {background-position: 0 55px}</style><!--[if lt IE 7]><style type="text/css">.featured_title {margin:-5px 0 0 0!important} #content_bg {background-position: 0 55px}</style><![endif]-->');
	}
}

function moderatePost(action, feedItemId, eventId, url, username, count) {
    msgParams = {
        moderated_action: action,
        eventId: eventId,
        feedItemId: feedItemId,
        username: username,
        url: url,
        count: count,
        ajax_request: true
    }
    eventTweetDiv = document.getElementById('eventTweet' + count);
    eventTweetURL = document.getElementById('eventTweetURL' + count);
    eventTweetImg = document.getElementById('eventTweetImg' + count);
    eventTweet = new GenericMessage('/script/moderate/index.php',msgParams);
    eventTweet.onResponse = function(response) {
        if(action=='approve') {
            eventTweetDiv.className = 'event_tweet event_tweet_approve';
            eventTweetImg.alt = 'Un-Approve';
            eventTweetImg.src = '/img/removeBtn_med.png';
            eventTweetURL.title = 'Remove/Unapprove this post';
            eventTweetURL.setAttribute('onclick',"moderatePost('delete','"+feedItemId+"','"+eventId+"','"+url+"','"+username+"','"+count+"')");
        } else {
            eventTweetDiv.className = 'event_tweet event_tweet_delete';
            eventTweetImg.alt = 'Approve';
            eventTweetImg.src = '/img/approveBtn_med.png';
            eventTweetURL.title = 'Approve this post';
            eventTweetURL.setAttribute('onclick',"moderatePost('approve','"+feedItemId+"','"+eventId+"','"+url+"','"+username+"','"+count+"')");
        }
    }
    eventTweet.send();
}

function updateStatus() {
    var msg = document.getElementById('message').value;
    if(document.getElementById('post_btn').className == 'orange_update_btn' || document.getElementById('post_btn').className == 'purple_update_btn') {
        document.getElementById('post_btn').className = 'grayed_update_btn';
    } else {
        document.getElementById('post_btn').className = 'grayed_btn';
    }
    document.getElementById('post_btn').setAttribute('onclick','');
    document.getElementById('message').setAttribute('disabled','true');
    if (msg=="") {
        return false;
    }
    replyId = "";
    if (document.getElementById('msg_reply_to_status_id') != null) {
        replyId = document.getElementById('msg_reply_to_status_id').value;
    }

    msgParams = {
        eventId: document.getElementById('eventId').value,
        eventName: document.getElementById('eventName').value,
        url: document.getElementById('url').value,
        message: escape(msg),
        msg_in_reply_to_status_id: replyId
    }
    if((msg.substring(0, 2) == "DM") || (msg.substring(0, 2) == "dm")) {
        direct_message = new GenericMessage('/script/twitter/directmsg/index.php',msgParams);
        direct_message.onResponse = function(response) {
            document.getElementById('message').value = document.getElementById('tinkurl').innerHTML;
            document.getElementById('message').removeAttribute('disabled');
            if(response.responseText.indexOf("pass:") != -1) {
                var passIndex = response.responseText.indexOf("pass:");
                msg = response.responseText.substr((passIndex + 5));
                showLatest("Your direct message has been sent to @" + msg);
            } else {
                showLatest(response.responseText, "<b>Twitter Error:</b>");
            }
        }
        direct_message.send();
    } else {
        message = new GenericMessage('/script/postmsg/ajax.php',msgParams);

        message.onResponse = function(response) {
            postContent = document.getElementById("allPosts").innerHTML;
            document.getElementById("allPosts").innerHTML = response.responseText + postContent;
            document.getElementById('message').value = document.getElementById('tinkurl').innerHTML;
            document.getElementById('message').removeAttribute('disabled');
            showLatest(msg);
            setTimeout(function() {hideMyTweet();}, 10000);
            if($('#allPosts > .event_tweet').length >= 20)  {
                $('#leftCol').css("height", "auto");
            }
        }
        message.send();
    }
    //doUserOptions();
    limitText('message','wordCount',140);
    if (document.getElementById('tweet_label') != null) {
        document.getElementById('tweet_label').innerHTML = "What are you doing?";
    }
    document.getElementById('wordCount').innerHTML = "140";
}

function hideMyTweet() {
    $('.my_tweet').fadeOut("fast", function() {
        $('.my_tweet').prev().remove();
        $('.my_tweet').removeClass("my_tweet");
    });
}

function changeBtn(val, readonly) {
 	if (document.getElementById('message').value==val || $('#message').val().length > 140) {
        document.getElementById('post_btn').className = 'grayed_btn';
        document.getElementById('post_btn').onclick = function() {};
        if($('#message').val().length > 140) {
            $('#wordCount').addClass("red").addClass("bold");
        }
	} else {
        document.getElementById('post_btn').className = 'orange_btn';
        if(!readonly) {
            document.getElementById('post_btn').onclick = function() {updateStatus();};
        }
        $('#wordCount').removeClass();
	}
}

function changeBtnEventDetail(val, readonly, votable) {
    votable = typeof(votable) != 'undefined' ? votable : false;
    if (votable && ($('#message').val().search(/vote/i) != -1) && ($('#message').val().search(/#140conf/i) != -1) && $('#message').val().length <= 140) {
        $('#post_btn').removeClass().addClass("purple_update_btn");
        $('#post_btn').html("VOTE");
        document.getElementById('post_btn').onclick = function() {updateStatus();};
        $('#wordCount').removeClass();
    } else if ($('#message').val()==val || $('#message').val().length > 140) {
        $('#post_btn').removeClass().addClass("grayed_update_btn");
        $('#post_btn').html("update");
        document.getElementById('post_btn').onclick = function() {};
        if($('#message').val().length > 140) {
            $('#wordCount').addClass("red").addClass("bold");
        }
	} else {
        $('#post_btn').removeClass().addClass("orange_update_btn");
        $('#post_btn').html("update");
        if(!readonly) {
            document.getElementById('post_btn').onclick = function() {updateStatus();};
        }
        $('#wordCount').removeClass();
	}
}

function showLatest(post, prefix) {
	if(prefix) {
        document.getElementById('latest_post').innerHTML = prefix + " " + post;
    } else {
        document.getElementById('latest_post').innerHTML = "<b>Latest:</b> " + post;
    }
	document.getElementById('latest').style.display="block";
}

function ReadCookie(cookieName) {
    var theCookie=""+document.cookie;
    var ind=theCookie.indexOf(cookieName);
    if (ind==-1 || cookieName=="") return ""; 
    var ind1=theCookie.indexOf(';',ind);
    if (ind1==-1) ind1=theCookie.length; 
    return unescape(theCookie.substring(ind+cookieName.length+1,ind1));
}

function getCookie(c_name) {
    if(document.cookie.length>0) {
        c_start = document.cookie.indexOf(c_name + "=");
        if (c_start != -1) {
            c_start = c_start + c_name.length+1;
            c_end = document.cookie.indexOf(";",c_start);
            if (c_end == -1) c_end = document.cookie.length;
            return unescape(document.cookie.substring(c_start,c_end));
        }
    }
    return "";
}

function limitText(limitField, limitCountId, limitNum) {
	//limitNum = limitNum-1;
    var wCount = document.getElementById(limitCountId);
    var field = document.getElementById(limitField);
    var count = limitNum - field.value.length;
    var user = "";

    var tweetLabelText = "What are you doing?";
    if(typeof defaultTweetLabelText != 'undefined') {
        tweetLabelText = defaultTweetLabelText;
    }

    wCount.innerHTML = count; //(count >= 0) ? count+1 : 0;
    if(parseInt(wCount.innerHTML) > 140) {
        gTextLimit = 140; // if user erases DM, reset global text limit to 140.
        // reset the display to 140 - count
        wCount.innerHTML = 140 - field.value.length;
    }
    if ((field.value.length) > limitNum){
		//field.value = field.value.substr(0,limitNum+1);
    }
    if((field.value.length) == 0) {
        if(document.getElementById('tweet_label')) {
            document.getElementById('tweet_label').innerHTML = tweetLabelText;
        }
        if(document.getElementById('postForm')) {
            document.getElementById('postForm').action = "/script/postmsg"
        }
    }
    if((field.value.substring(0, 2) == "DM") || (field.value.substring(0, 2) == "dm")) {
        if( field.value.indexOf(" ", 3) > 0 ) {
            name = field.value.substring(3, field.value.indexOf(" ", 3));
        }else if( field.value.indexOf(" ") < 3 ) {
            name = field.value.substr(3);
        } 
        document.getElementById('tweet_label').innerHTML = "Direct Message&nbsp;" + name;
        document.getElementById('postForm').action = "/script/twitter/directmsg";
    }

    if(field.value.substring(0, 1) == "@") {
        if( field.value.indexOf(" ", 1) > 0 ) {
            name = field.value.substring(1, field.value.indexOf(" ", 1));
        }else if( field.value.indexOf(" ") < 1 ) {
            name = field.value.substr(1);
        }
        document.getElementById('tweet_label').innerHTML = "Reply to&nbsp;" + name;
    }
}

function setColumn() {
	if (document.getElementById("rightCol")) {
		var lC = document.getElementById("leftCol");
		var rC = document.getElementById("rightCol");
		var lH = lC.offsetHeight;
		var rH = rC.offsetHeight;

        if (lC.currentStyle) {
            var lc_padding = lC.currentStyle["paddingTop"];
            var rc_padding = rC.currentStyle["paddingTop"];
        } else if (window.getComputedStyle) {
            var lc_padding = document.defaultView.getComputedStyle(lC,null).getPropertyValue("padding-top");
            var rc_padding = document.defaultView.getComputedStyle(rC,null).getPropertyValue("padding-top");
        }

        lc_padding = lc_padding.substr(0, lc_padding.indexOf("px", 0));
        rc_padding = rc_padding.substr(0, rc_padding.indexOf("px", 0));

        lH -= lc_padding;
        rH -= rc_padding;

		if (lH > rH) {
			rC.style.height =  lH + "px";
		} else {
			lC.style.height =  rH + "px";
		}
	}
}

/**
 * This function always sets the right column to the height of the left column.
 * This is used after the page has loaded and while an event refreshes posts, the left column may
 * grow and shrink as the size of the posts varies.  This way the right column always stays the same height as the left.
 */
function setRightColumn() {
	if (document.getElementById("rightCol")) {
		var lC = document.getElementById("leftCol");
		var rC = document.getElementById("rightCol");
		var lH = lC.offsetHeight;

        rC.style.height =  lH + "px";
	}
}

/*
	Developed by Robert Nyman, http://www.robertnyman.com
	Code/licensing: http://code.google.com/p/getelementsbyclassname/
*/

var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};

// XXX ORIG
/*function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}*/


function showUserOptions(el) {
    if(ReadCookie("twitter_username") != "" && ReadCookie("twitter_username") != $(el).find(".content > a:first").html()) {
        $(el).find(".content > div[id*='userOptions']").css("display", "block");
    }
    $(el).find(".userOptionsContainer").show();
    $(el).addClass("tweet_hover");
}

function hideUserOptions(el) {
    $(el).find(".userOptionsContainer").hide();
    $(el).removeClass("tweet_hover");
}

function showTrash(el) {
    $(el).find(".trash").toggleClass("show");
}

function hideTrash(el) {
    $(el).find(".trash").toggleClass("show");
}

function showFollowUpdate(el, updateText, doTimeout) {
    var t = $('.followUpdate');
    t[0].style.display = 'block';
    t[0].innerHTML = updateText;
    if(doTimeout) {
        window.setTimeout(function() {t[0].style.display = 'none';t[0].innerHTML = "";}, 2500);
    }
}

function showReadOnly(e) {
	var posx = 0;
	var posy = 0;
	if (!e) var e = window.event;
	if (e.pageX || e.pageY) 	{
		posx = e.pageX;
		posy = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
		posx = e.clientX + document.body.scrollLeft
			+ document.documentElement.scrollLeft;
		posy = e.clientY + document.body.scrollTop
			+ document.documentElement.scrollTop;
	}
	// set absolute positioned message div to x, y 
	document.getElementById('readOnlyMsg').style.top =  posy + "px";
	document.getElementById('readOnlyMsg').style.left =  posx + "px";
	document.getElementById('readOnlyMsg').style.display = 'block';
	document.getElementById('readOnlyMsg').innerHTML = "We are currently tinkering with the system, that feature is unavailable. Please try again later!";
	setTimeout('document.getElementById("readOnlyMsg").style.display = "none"', 5000);
}

function highlightSignUpButton() {
    var position = $('.signup_btn').position();
    var pos_top = position.top + $('.signup_btn').height();
    var pos_left = position.left;
    document.getElementById('readOnlyMsg').style.top =  pos_top + "px";
	document.getElementById('readOnlyMsg').style.left =  pos_left + "px";
	document.getElementById('readOnlyMsg').style.display = 'block';
	document.getElementById('readOnlyMsg').innerHTML = '<div style="margin:15px;font-weight:bold;">Sign up for a Tinker account to create events!</div>';
	setTimeout('document.getElementById("readOnlyMsg").style.display = "none"', 5000);
}

function toggleSignIn() {
    if(document.getElementById("signInPopup").style.display != "block") {
        document.getElementById("signInPopup").style.display = "block";
        document.getElementById("signInArrowDown").style.display = "none";
        document.getElementById("signInArrowUp").style.display = "inline";
    } else {
        document.getElementById("signInPopup").style.display = "none";
        document.getElementById("signInArrowDown").style.display = "inline";
        document.getElementById("signInArrowUp").style.display = "none";
    }
}

function updateCategories() {
    var elSel = document.getElementById('categories');
	for (i = elSel.length - 1; i>=0; i--) {
      elSel.remove(i);
    }
	cat = document.getElementById('categoriesType').value;
	for (var name in allCats[cat]) {
		if (name.isPrototypeOf(allCats[cat]) == false) {    
			var elOptNew = document.createElement('option');
			elOptNew.text = allCats[cat][name];
			elOptNew.value = name;
			try {
			  elSel.add(elOptNew, null); // standards compliant; doesn't work in IE
			}
			catch(ex) {
			  elSel.add(elOptNew); // IE only
			}
		}
	}
}


function updateCategoriesInFeatured(username) {
    var cats = document.getElementById('categories');
    cat = document.getElementById('categoriesType').value;
    cats.innerHTML = '';
    for (var name in allCats[cat]) {
		if (name.isPrototypeOf(allCats[cat]) == false) {
			cats.innerHTML += "<a href='/featured/"+ username + "/?category=" + name + "'>"+
			allCats[cat][name] + "</a>";
		}
    }
    cats.innerHTML += "<a class='more_link' href='/featured/?category=All'>See all</a><br class='all'/>";
}

function updatePeopleCategories() {
    var elSel = document.getElementById('professions');
	for (i = elSel.length - 1; i>=0; i--) {
      elSel.remove(i);
    }
	p = document.getElementById('profType').value;
	for (var name in profs[p]) {
		if (name.isPrototypeOf(profs[p]) == false) {    
			var elOptNew = document.createElement('option');
			elOptNew.text = profs[p][name];
			elOptNew.value = name;
			try {
			  elSel.add(elOptNew, null); // standards compliant; doesn't work in IE
			}
			catch(ex) {
			  elSel.add(elOptNew); // IE only
			}
		}
	}
}

function sendPostMessage(msg) {
    //alert(msg);
    document.getElementById('post_tweet').value = msg;
    document.getElementById('post_tweet_form').submit();
}

function doUserOptions(name, type, tweet, elem) {
    var post_label;
    var post_tweet;
    var is_my_page = true;  // This is my page with a status update box. Otherwise need to redirect for most cases.

    if( ((document.getElementById('updateStatus')) && (document.getElementById('updateStatus').style.display != "block")) || ((document.getElementById('home_tweet')) && (document.getElementById('home_tweet').style.display != "block")) ) {
        is_my_page = false;
    }

    if(is_my_page) {
        document.getElementById('message').value = ''; //clear message box
        var labelTxt = "What are you doing?";
        var label = document.getElementById('tweet_label');
        var prefixLen = 0;
        var prefix = "";
        var textLimit = 140;
    }

    switch (type) {
        case ('directmsg') :
            if(is_my_page) {
                label.innerHTML = "Direct Message&nbsp;" + name;
                prefix = "DM " + name + " ";
                textLimit += prefix.length;
                document.getElementById('message').value = prefix;
                document.getElementById('postForm').action = "/script/twitter/directmsg";
                document.getElementById('message').focus();
            } else {
                post_label = "Direct Message&nbsp;" + name;
                post_tweet = "DM " + name + " ";
                document.getElementById('post_tweet').value = post_tweet;
                document.getElementById('post_label').value = post_label;
                document.getElementById('post_dm').value = name;
                document.getElementById('post_tweet_form').submit();
            }
            break;
        case ('retweet') :
            if(is_my_page) {
                label.innerHTML = "Retweet";
                prefix = "RT @" + name + ": ";
                document.getElementById('message').value = prefix + tweet;
                document.getElementById('message').focus();
                //changeBtn('');
            } else {
                post_label = "Retweet";
                post_tweet = "RT @" + name + ": " + tweet;
                document.getElementById('post_tweet').value = post_tweet;
                document.getElementById('post_label').value = post_label;
                document.getElementById('post_dm').value = "";
                document.getElementById('post_tweet_form').submit();
            }
            break;
        case ('reply') :
            if(is_my_page) {
                label.innerHTML = "Reply to " + name;
                prefix = "@" + name + " ";
                document.getElementById('message').value = prefix;
                document.getElementById('msg_reply_to_status_id').value = tweet;
                document.getElementById('message').focus();
            } else {
                post_label = "Reply to " + name;
                post_tweet = "@" + name + " ";
                document.getElementById('post_tweet').value = post_tweet;
                document.getElementById('post_label').value = post_label;
                document.getElementById('post_dm').value = "";
                document.getElementById('reply_to_status_id').value = tweet;
                document.getElementById('post_tweet_form').submit();
            }
            break;
        case ('follow') :
            var updateText = "";
            var msgParams = {
              'dst_username': name
            }

            if(is_my_page) {
                document.getElementById('latest_post').innerHTML = "";
                showLatest("Checking your <i>friendship</i> with " + name + "...", "<b>Update: </b>");
            } else {
                showFollowUpdate(elem.parentNode.parentNode, "Checking your <i>friendship</i> with " + name + "...", false);
            }

            var message = new GenericMessage('/script/twitter/destroyorcreatefriendship/',msgParams);

            message.onResponse = function(response) {
                if(response.responseText == "created") {
                    updateText = "You are now <b>following</b> " + name;
                } else if(response.responseText == "destroyed") {
                    updateText = "You are <b>no longer</b> following " + name;
                } else {
                    updateText = response.responseText.replace("error: ", "");
                }
                if(is_my_page) {
                    showLatest(updateText, "<b>Update: </b>");
                } else {
                    showFollowUpdate(elem.parentNode.parentNode, updateText, true);
                }
            }
            message.send();
            break;
        case ('vote') :
            if(is_my_page) {
                label.innerHTML = "Vote for " + name;
                prefix = "#140conf VOTE @" + name + " ";
                document.getElementById('message').value = prefix + " " + $.trim(message_tinkerInUrl);
                document.getElementById('msg_reply_to_status_id').value = tweet;
                document.getElementById('message').focus();
                changeBtnEventDetail('', false, true);
            }
            break;
        default:
            if(is_my_page) {
                label.innerHTML = labelTxt;
                document.getElementById('message').value = '';
                limitText('message','wordCount',textLimit);
                document.getElementById('message').focus();
            }
    }
    
    if(is_my_page) {
        gTextLimit = textLimit; // set the global text limit on the page
        prefixLen = prefix.length;
        limitText('message','wordCount',textLimit);
        if($('.home_tweet').length > 0) {
            if($(window).scrollTop() > $('.home_tweet').position().top) {
                window.scroll(0,$('.home_tweet').position().top);
            }
        } else if($('.formWrapper').length > 0) {
            if($(window).scrollTop() > $('.formWrapper').position().top) {
                window.scroll(0,$('.formWrapper').position().top);
            }
        }
    }
}


function checkEnter(e, twitterlogin){ //e is event object passed from function invocation
    var characterCode //literal character code will be stored in this variable

    //if(!e) e=window.event;
    //characterCode = e.keycode ? e.keycode : e.which;
    characterCode=e.keyCode? e.keyCode : e.charCode

    if(characterCode == 13){ //if generated character code is equal to ascii 13 (if enter key)
        if(twitterlogin) {
            emanLogin();
        } else {
            document.forms['loginForm'].submit() //submit the form
        }
    return false
    }
    else{
    return true
    }
}

function eKey(e, func) {
    var Ucode=e.keyCode? e.keyCode : e.charCode
    if (Ucode == 13) eval(func);
}

function toggleRefreshList() {
    if(document.getElementById('refreshSelection').style.display == '') {
        document.getElementById('refreshSelection').style.display = 'block';
    } else if(document.getElementById('refreshSelection').style.display == 'none') {
        document.getElementById('refreshSelection').style.display = 'block';
    } else if(document.getElementById('refreshSelection').style.display == 'block') {
        document.getElementById('refreshSelection').style.display = 'none';
    }
}

function toggleGroupsList() {
    if(document.getElementById('groupsDropDown').style.display == '') {
        document.getElementById('groupsDropDown').style.display = 'block';
    } else if(document.getElementById('groupsDropDown').style.display == 'none') {
        document.getElementById('groupsDropDown').style.display = 'block';
    } else if(document.getElementById('groupsDropDown').style.display == 'block') {
        document.getElementById('groupsDropDown').style.display = 'none';
    }
}

var gUpdatePosts;
function changeRefresh(elem, speed) {
    if(parseInt(speed)) {
        autorefresh = speed;
    } else if(speed == "rt") {
        speed = 3000;
    } else if(speed == "pause") {
        speed = 0;
    }
    autorefresh = speed;
    //$('#refreshSelection > ul > li > *').removeClass("current");
    var refresh_children = document.getElementById('refreshSelection').childNodes;
    for (var i in refresh_children) {
        if(refresh_children[i].nodeType == 1) {
            refresh_ul_children = refresh_children[i].childNodes;
            for(var y in refresh_ul_children) {
                if(refresh_ul_children[y].nodeType == 1) {
                    refresh_li_children = refresh_ul_children[y].childNodes;
                    for(var z in refresh_li_children) {
                        if(refresh_li_children[z].nodeType == 1) {
                            refresh_li_children[z].className = "pointer";
                        }
                    }
                }
            }
            break;
        }
    }
    elem.className = "pointer current";
    clearInterval(gUpdatePosts);
    if(speed > 0) {
        updatePosts();
        gUpdatePosts = window.setInterval("updatePosts()",parseInt(autorefresh));
    }
    window.setTimeout(function() {
        toggleRefreshList();
    }, 200);
}

function relative_time(time_value) {
    var parsed_date = Date.parse(time_value);
    //var parsed_date = time_value;
    if(isNaN(parsed_date)) {
        parsed_date = new Date( time_value *1000);
        parsed_date = parsed_date.toLocaleString();
    }
    if(isNaN(parsed_date)) {
        return(time_value);
    }
    
    var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
    var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
    

    if (delta < 5) {
        return 'less than 5 seconds ago';
    } else if (delta < 10) {
        return 'less than 10 seconds ago';
    } else if (delta < 20) {
        return 'less than 20 seconds ago';
    } else if (delta < 40) {
        return 'half a minute ago';
    } else if (delta < 60) {
        return 'less than a minute ago';
    } else if(delta < 120) {
        return 'about a minute ago';
    } else if(delta < 3600) { 
        return (parseInt(delta / 60)).toString() + ' minutes ago';
    } else if(delta < 5400) { // 5400
        return 'about an hour ago';
    } else if(delta < 86400) { // 86400
        if((delta/3600) < 2) {
            return '1 hour ago';
        }
        return (parseInt(delta / 3600)).toString() + ' hours ago';
    } else if(delta < (48*60*60)) { //172800
        return '1 day ago';
    } else if(delta < 2592000){
        return (parseInt(delta / (60*60*24))).toString() + ' days ago';
    } else if(delta < 4003900) {
        return 'about a month ago';
    } else if(delta < 311004000){
        return (parseInt(delta / (60*60*24*30))).toString() + ' months ago';
    } else {
        return (parseInt(delta / (60*60*24*30*12))).toString() + ' years ago';
    }
}

function fixPostTimes() {
    var time = new Date();
    //console.log("relative time to now: " + relative_time(time));



    $.each($('#allPosts > .event_tweet'), function() {
        var myDate = new Date( $(this).find('.original_time:first').html() *1000);
        //console.log("myDate: " + myDate.toGMTString()+" :: "+myDate.toLocaleString());
        //console.log($(this).find('.time > a:first').html() + " :: relative to now: " + relative_time(myDate.toLocaleString()));
        $(this).find('.time > a:first').html(relative_time(myDate.toLocaleString()));
    });
}

function showMoreUserInfo(el, username) {
    var boxIsHidden = true;
    if($(el).hasClass("more_info_arrows")) {
        if($(el).hasClass("down")) {
            boxIsHidden = false;
        }
        $(el).toggleClass("down");
    } else {
        if($(el).siblings(".more_info_arrows").hasClass("down")) {
            boxIsHidden = false;
        }
        $(el).siblings(".more_info_arrows").toggleClass("down");
    }

    if($(el).siblings(".more_info_arrows_voted").hasClass("down")) {
        $(el).siblings(".more_info_arrows_voted").removeClass("down");
        $(el).parents(".event_tweet").find(".more_user_info_voted").slideUp("fast", function () {
            showMoreUserInfoBox();
        });
    } else {
         showMoreUserInfoBox();
    }
    
    function showMoreUserInfoBox() {
        if(boxIsHidden) {
            var html = buildMoreInfoHTML(username);
            if($(el).parents(".event_tweet").find(".more_user_info").length == 0) {
                $(el).parents(".event_tweet").append(html);
            }
            $(el).parents(".event_tweet").find(".more_user_info").slideDown("slow");
            if($(el).parents(".event_tweet").find(".more_user_info > .user_desc").html() == "") {
                $.getJSON("http://twitter.com/users/show/" + username + ".json?callback=?", function(data) {
                    $(el).parents(".event_tweet").find(".more_user_info > .user_desc").html(data.description);
                    $(el).parents(".event_tweet").find(".more_user_info > #loader").remove();

                    if($(el).parents(".event_tweet").find(".more_user_info > .user_post:first > .user_text").html() == "") {
                        $.getJSON("http://twitter.com/statuses/user_timeline/" + username + ".json?count=2&callback=?", function(data) {
                            $(el).parents(".event_tweet").find(".more_user_info > .user_post:first > .user_text").html(data[0].text);
                            $(el).parents(".event_tweet").find(".more_user_info > .user_post:first > .user_img > img").attr("src", data[0].user.profile_image_url);
                            $(el).parents(".event_tweet").find(".more_user_info > .user_post:first > .user_post_time").html('<a target="_blank" href="http://www.twitter.com/' + data[0].user.screen_name + '/statuses/' + data[0].id + '">' + relative_time(data[0].created_at) + '</a>');
                            $(el).parents(".event_tweet").find(".more_user_info > .user_post:first > .user_post_source").html("&nbsp;from " + data[0].source);

                            $(el).parents(".event_tweet").find(".more_user_info > .user_post:last > .user_text").html(data[1].text);
                            $(el).parents(".event_tweet").find(".more_user_info > .user_post:last > .user_img > img").attr("src", data[1].user.profile_image_url);
                            $(el).parents(".event_tweet").find(".more_user_info > .user_post:last > .user_post_time").html('<a target="_blank" href="http://www.twitter.com/' + data[1].user.screen_name + '/statuses/' + data[1].id + '">' + relative_time(data[1].created_at) + '</a>');
                            $(el).parents(".event_tweet").find(".more_user_info > .user_post:last > .user_post_source").html("&nbsp;from " + data[1].source);
                        });
                    }
                });
            }
        } else {
            $(el).parents(".event_tweet").find(".more_user_info").slideUp("fast");
        }
    }
}
function showWhoVoted(el, username) {
    var boxIsHidden = true;
    if($(el).hasClass("more_info_arrows_voted")) {
        if($(el).hasClass("down")) {
            boxIsHidden = false;
        }
        $(el).toggleClass("down");
    } else {
        if($(el).siblings(".more_info_arrows_voted").hasClass("down")) {
            boxIsHidden = false;
        }
        $(el).siblings(".more_info_arrows_voted").toggleClass("down");
    }

    if($(el).siblings(".more_info_arrows").hasClass("down")) {
        $(el).siblings(".more_info_arrows").removeClass("down");
        $(el).parents(".event_tweet").find(".more_user_info").slideUp("fast", function () {
            showWhoVotedBox();
        });
    } else {
         showWhoVotedBox();
    }
    

    function showWhoVotedBox() {
        if(boxIsHidden) {
            if($(el).parents(".event_tweet").find(".more_user_info_voted").length == 0) {
                $(el).parents(".event_tweet").append('<div style="display:block" class="more_user_info_voted"></div>');
            }
            $(el).parents(".event_tweet").find(".more_user_info_voted").slideDown("slow");
   
            $.get("/script/getposts/getWhoVoted.php", { event_id: e_id, to_user: '@' + username, r: Math.random() },
                function(data) {
                    $(el).parents(".event_tweet").find(".more_user_info_voted").html(data);
                }
            );
        } else {
            $(el).parents(".event_tweet").find(".more_user_info_voted").slideUp("fast");
        }
    }
}

function getWhoVotedPage(el, e_id, e_page, username) {
    $.get("/script/getposts/getWhoVoted.php", { event_id: e_id, to_user: username, page: e_page, r: Math.random() },
        function(data) {
            $(el).parents(".more_user_info_voted").html(data);
        }
    );
}

function buildMoreInfoHTML(username) {
    var html = "";
    html += '<div style="display:none" class="more_user_info"><img id="loader" src="/img/ajax-loader.gif" />';
    html += '<div class="user_desc"></div>';
    html += '<div class="user_post"><div class="user_img"><img src="" height="48" width="48"/></div><div class="user_text"></div><br style="line-height:1px;"/><div class="user_post_time"></div><div class="user_post_source"></div><br clear="all"/></div>';
    html += '<div class="user_post"><div class="user_img"><img src="" height="48" width="48"/></div><div class="user_text"></div><br style="line-height:1px;"/><div class="user_post_time"></div><div class="user_post_source"></div><br clear="all"/></div>';
//    html += '<div class="rfloat" style="font-weight:bold">To vote tweet #140conf VOTE @' + username + '</div><br clear="all"/>';
    html += '</div>';

    return html;
}

function buildWhoVotedHTML(username) {
    var html = "";
    html += '<div style="display:none" class="more_user_info_voted"><img id="loader" src="/img/ajax-loader.gif" />';
    html += '<div class="user_desc"></div>';
    html += '<div class="user_post"><div class="user_img"><img src="" height="48" width="48"/></div><div class="user_text"></div><br style="line-height:1px;"/><div class="user_post_time"></div><div class="user_post_source"></div><br clear="all"/></div>';
    html += '<div class="user_post"><div class="user_img"><img src="" height="48" width="48"/></div><div class="user_text"></div><br style="line-height:1px;"/><div class="user_post_time"></div><div class="user_post_source"></div><br clear="all"/></div>';
//    html += '<div class="rfloat" style="font-weight:bold">To vote tweet #140conf VOTE @' + username + '</div><br clear="all"/>';
    html += '</div>';

    return html;
}

function getQueryVariable(variable) {
    var query = window.location.search.substring(1);
    var vars = query.split("&");
    for (var i=0;i<vars.length;i++) {
        var pair = vars[i].split("=");
        if (pair[0] == variable) {
            return pair[1];
        }
    }
    return "";
}

function onProfileImgError(source) {
    source.src = "/img/twitter_default_profile_" + Math.floor(Math.random()*8) + "_normal.png";
    // disable onerror to prevent endless loop
    source.onerror = "";
    return true;
}

function showSearchVideo(code, scrollTo) {
    document.getElementById('media_viewer').style.display = "block";
    document.getElementById('media_viewer').innerHTML = code;
    document.getElementById('leftCol').style.height = "auto";

    if(scrollTo == "none") {
        return;
    }
    
    scroll(0,0);
}

function showEventDetailVideo(code, scrollTo) {
    document.getElementById('media_viewer').style.display = "block";
    document.getElementById('media_viewer').innerHTML = code;

    if(scrollTo == "none") {
        alert('returned');
        return;
    }
    
    var scrollTop = document.body.scrollTop;
    if (scrollTop == 0)
    {
        if (window.pageYOffset)
            scrollTop = window.pageYOffset;
        else
            scrollTop = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0;
    }
    if(scrollTop > 500) {
        scroll(0, 500);
    }
}

function showEventDetailPhoto(url) {
    document.getElementById('media_viewer').style.display = "block";
    document.getElementById('media_viewer').innerHTML = '<img src="' + url + '" height="256" border="0"/>'
    var scrollTop = document.body.scrollTop;
    if (scrollTop == 0)
    {
        if (window.pageYOffset)
            scrollTop = window.pageYOffset;
        else
            scrollTop = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0;
    }
    if(scrollTop > 500) {
        scroll(0, 500);
    }
}

function getNominees(e_id, pageNum, letter) {
    var selected = $("#nominees_sort option:selected").val();
    var o_by, o_dir, ltr;

    if(typeof pageNum == "undefined") {
        pageNum = 1;
    } 
    
    switch (selected) {
        case "alpha_az":
            o_by = "username";
            o_dir = "asc";
            if(typeof letter == "undefined") {
                letter = "#";
            }
            ltr = letter;
            break;
        case "alpha_za":
            o_by = "username";
            o_dir = "desc";
            if(typeof letter == "undefined") {
                letter = "z";
            }
            ltr = letter;
            break;
        case "votes_most":
            o_by = "vote_total";
            o_dir = "desc";
            ltr = "";
            break;
        case "votes_least":
            o_by = "vote_total";
            o_dir = "asc";
            ltr = "";
            break;
        case "valid_most":
            o_by = "(vote_total-retweet_count-dupe_count)";
            o_dir = "desc";
            ltr = "";
            break;
        case "valid_least":
            o_by = "(vote_total-retweet_count-dupe_count)";
            o_dir = "asc";
            ltr = "";
            break;
        default:
            o_by = "(vote_total-retweet_count-dupe_count)";
            o_dir = "desc";
            ltr = "";
            break;
    }

    $.get("/script/getposts/getNominees.php", { event_id: e_id, order_by: o_by, order_dir: o_dir, page: pageNum, letter: ltr },
        function(data) {
            $("#allPosts").html(data);
        }
    );
}

function rotateTrends() {
    var current = $('#event_trends_boxes').find(".current_trend_box");
    if(current.siblings().length != 0) {
        current.fadeOut("fast", function() {
            current.removeClass("current_trend_box");
            current.css("display", "none");
            if(current.next().length > 0) {
                current = current.next();
            } else {
                current = current.siblings(":first");
            }
            current.fadeIn("fast", function () {
                current.addClass("current_trend_box");
            });
        });
    }
}
