/*--------------------------------------------------------------------
Basic Javascript Sheet - Frontoffice

Version: 1.0
Copyright: 2008, dicode® VOF - understanding internet
W: www.dicode.nl
E: info@dicode.nl
T: 0570-750680
--------------------------------------------------------------------*/

/* Global
--------------------------------------------------------------------*/

/* remove url dotted border */
$(document).ready(function() {
	
	var arr = document.getElementsByTagName('a');
	for(i = 0; i < arr.length; i++)
		arr[i].onfocus = new Function("this.blur()");
	
	var arr = document.getElementsByTagName('input');
	for(i = 0; i < arr.length; i++)
		if(arr[i].className == 'button')
			arr[i].onfocus = new Function("this.blur()");
			
	//FormElements.init();

	$('.popupwindow').each( function(index) {
		$(this).popupwindow({ front : {
			height:768,
			width:1024,
			toolbar:1,
			scrollbars:1,
			status:1,
			resizable:1,
			left:0,
			top:0,
			center:1,
			createnew:0,
			location:1,
			menubar:1
		} });
	});

    $('img.hover').each(function() {
        if ($(this).attr('src').match(/-on\.(.+)$/i)) {
            $(this).removeClass('hover');
        }
    });

    $('img.hover').hover(function() {
        s = $(this).attr('src').replace(/\.([^.]+)$/i, '-on.$1');
        $(this).attr('src', s);
    }, function() {
        s = $(this).attr('src').replace(/-on\.([^.]+)$/i, '.$1');
        $(this).attr('src', s);
    });

	$('*').ifixpng();
    
});

$(document).ready(function() {
	
	getRules();
	getAmount();	
	addTwitter();
});

var $lockScroll = false;
var $lockFinish = false;

function getPreviousRule() {
		var $ruleId = $('div.rule:first').attr('id').replace('id_msg_', '');

		if( ! $lockScroll ) {
			$lockScroll = true;
			$lockFinish = true;
	
			$.getJSON($.sprintf('%sxmlhttp/_rules.php?id=%d&n=-1', siteurl, $ruleId),
				function(data) {
					
					if( data.length > 0 ) {
							$msgId = data[0].commentid;
						
							if( $ruleId == $msgId ) {
								//Geen vorige
								
							} else {
								$first = true;
							}
					}
		
					$lockFinish = false;
				});

		}
}

function getNextRule() {
		var $ruleId = $('div.rule:first').attr('id').replace('id_msg_', '');

		if( ! $lockScroll ) {
			$lockScroll = true;
			$lockFinish = true;

			$.getJSON($.sprintf('%sxmlhttp/_rules.php?id=%d&n=1', siteurl, $ruleId),
				function(data) {
					
					if( data.length > 0 ) {
							$msgId = data[0].commentid;
	
							if( $ruleId == $msgId ) {
								$msgId = 0;
							}
							$first = true;
					}

					$lockFinish = false;
				});
				
		}

}

var $locked = false;
var $a = 0;
var $msgId = 0;
var $first = true;
var $gotoLast = false;

function getRules() {

//	if( $a > 1 ) return;
//	
//	$a++;

	if( ! $locked && !$lockFinish ) {
		$locked = true;

		var $rules = $('div.rule');

		$.getJSON($.sprintf('%sxmlhttp/_rules.php?id=%d', siteurl, $msgId),
			function(data) {
				if( $msgId == 0 ) {
					$('#id_letterbottom').fadeOut();
					$('#scrolldown').fadeOut();
					$('#id_letterlast').fadeOut();
					
				} else {
					$('#id_letterbottom').fadeIn();
					$('#scrolldown').fadeIn();
					$('#id_letterlast').fadeIn();
				}
				
				$.each($('div.rule'), function(index, item) {
					
					var $found = false;
					for( var i = 0; i < data.length; i++ ) {
						if( $(item).attr('id') == $.sprintf('id_msg_%d', data[i].commentid) ) {
							$found = true;
							i = data.length
						}
					}
					
					if( ! $found ) {
						//alert('not found');
						$(item).remove();
					}
					
				});


				for( var i = 0; i < data.length; i++ ) {
					if( ! $($.sprintf('#id_msg_%d', data[i].commentid)).length ) {
						addRule(data[i].commentid, data[i].rule1, data[i].rule2, data[i].name, data[i].date);
					}
				}
				
				if( $first )
					$first = false;

				$gotoLast = false;

				if( data.length )
					$('#id_loadrules').remove();
		
				$locked = false;
				
				$lockScroll = false;
			});
		
	}

	setTimeout("getRules()", 1000);	
}

function gotoLast() {
	$msgId = 0;
	$gotoLast = true;
}

function getPreviousElement( $id ) {
	
	if( $('div.rule', $('#id_rules')).length ) {
		var $tId = parseInt($('div.rule:last', $('#id_rules')).attr('id').replace('id_msg_', ''));
		
		if( $tId < $id ) {
			// De toe te voegen regel is nieuwer dan de laatste regel
			return $('div.rule:last', $('#id_rules'));
		} else {
			// De laatste regel is nieuwer dan de toe te voegen regel
			
			var $curr = $('div.rule:last', $('#id_rules'));
			while( $($curr.prev()).length ) {
				$tId = parseInt($($curr, $('#id_rules')).attr('id').replace('id_msg_', ''));

				if( $tId < $id )
					return $curr;
				
				$curr = $curr.prev();	
			}
			
			return $('#id_rules');
			
		}
		
	} else
		return $('#id_rules');
}

function addRule($cId, $rule1, $rule2, $name, $date) {

	var $parent = getPreviousElement($cId);

	var $div = document.createElement('div');
	$div.id = $.sprintf('id_msg_%d', $cId);
	$($div).addClass('rule');
	
	$($div).html($.sprintf('%s<br/>%s<br/><span>Door: <b>%s</b>, %s</span>', $rule1, $rule2, $name, $date));

	if( ! $first && ! $gotoLast  ) {
		$($div).addClass('highlight');
		$($div).append('<div class="added">Zojuist<br/>toegevoegd!</div>');
	}

	$div.style.display = $.browser.version == '8.0' ? 'block' : 'none';


	if( $($parent).attr('id') == 'id_rules' )
		$($parent).prepend($($div));
	else
		$($parent).after($($div));
	
	if( ! $first && ! $gotoLast )
		$($div).fadeIn('slow', function() {
			$($div).animate({ backgroundColor: "white" }, 5000);
			$('div.added', $div).animate({ color: "white" }, 5000, function() {
				$(this).remove();
			});
		});
	else
		$($div).fadeIn('slow');

}

function getAmount() {
	$.get( $.sprintf("%sxmlhttp/aantal/", siteurl), function(data) {
		$('span', $('#teller')).html(data);
		setTimeout("getAmount()", 5000);	
	});
}

function limitChars(textid, limit) {
	var text = $($.sprintf('#%s', textid)).val(); 
	var textlength = text.length;
	
	if(textlength > limit) {
		$($.sprintf('#%s', textid)).val(text.substr(0,limit));
		return false;
	} else {
		return true;
	}
}

String.prototype.parseURL = function() {
	return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(url) {
		return url.link(url).replace('<a', '<a rel="fullfront"');
	});
};

String.prototype.parseUsername = function() {
	return this.replace(/[@]+[A-Za-z0-9-_]+/, function(u) {
		var username = u.replace("@","")
		return u.link("http://twitter.com/"+username).replace('<a', '<a rel="fullfront"');
	});
};

String.prototype.parseHashtag = function() {
	return this.replace(/[#]+[A-Za-z0-9-_]+/, function(t) {
		var tag = t.replace("#","%23")
		return t.link("http://search.twitter.com/search?q="+tag).replace('<a', '<a rel="fullfront"');
	});
};

function addTwitter() {
	$.jTwitter('sintgedicht', 1, function(userdata){
		var $start = 0;
		var $total = $('tr.tweet').length;
		$.each(userdata.reverse(), function(i,item){
			
			var $date = new Date();
			var $curr = new Date(item.created_at);
			var $one_hour = 1000*60*60;
			var $one_day = 1000*60*60*24;
			var $tmp = '';
			
			if(  ( Math.ceil($date.getTime() - $curr.getTime()) / $one_hour ) < 24 )
				$tmp = $.sprintf('%d hour ago', Math.ceil($date.getTime() - $curr.getTime()) / $one_hour );
			else if(  ( Math.ceil($date.getTime() - $curr.getTime()) / $one_hour ) >= 24 && ( Math.ceil($date.getTime() - $curr.getTime()) / $one_hour ) < 48 )
				$tmp = '1 day ago';
			else
				$tmp = $.sprintf('%d days ago', Math.ceil($date.getTime() - $curr.getTime()) / $one_day );

			$tmp = $.sprintf('%d:%d', $date.getHours(), $date.getMinutes());


			if( $('#twittercontent').html() != $.sprintf('%s <div>sintgedicht, %s</div>', item.text.parseURL().parseUsername().parseHashtag(), $tmp) )
				$('#twittercontent').html($.sprintf('%s <div>sintgedicht, %s</div>', item.text.parseURL().parseUsername().parseHashtag(), $tmp));
			
		});
		$("#twittercontent a").each( function(index) {
			var myprofiles = {
						fullfront: {
							height:768,
							width:1024,
							toolbar:1,
							scrollbars:1,
							status:1,
							resizable:1,
							left:0,
							top:0,
							center:1,
							createnew:0,
							location:1,
							menubar:1
						}
					};			
			$(this).popupwindow(myprofiles);
		});

		setTimeout("addTwitter()", 10000);	

	});
}

function createTwitterRow( $content ) {
	
	var $tr = document.createElement('tr');
	
	var $td = document.createElement('td');

	$td.colSpan = 2;
	
	$($td).addClass('line');
	$($td).append($.sprintf('<img src="%simages/img_line-small.jpg" alt="" />', siteurl));
	
	$($tr).append($td);

	$('#twittercontent').prepend($tr);
	
	$tr = document.createElement('tr');
	$td = document.createElement('td');

	$($td).append($.sprintf('<img src="%simages/icn_chat.jpg" alt="" />', siteurl));
	
	$($tr).append($td);
	
	$td = document.createElement('td');
	$($td).addClass('content');
	$($td).html($content);
	
	$($tr).append($td);
	
	$('#twittercontent').prepend($tr);
	
	
}