$(document).ready(function() {
	$('.loading-indicator').stop().animate({opacity: 0}, 100).css('z-index', -1);
	$('#blog-loading').css('height', $('#blogviewer').height());
	$('#masked1').css('height', $(document).height() - $('#masked').height());
	$('div#nav-menu-1 ul').clone().prependTo($('div#nav-menu-2, div#nav-menu-3, div#nav-menu-4, div#nav-menu-5'));
	$('a[rel^="prettyPhoto"]').prettyPhoto({theme:'facebook'});
	$(window).scroll(function() {
		$('#colormasked').css('height', ($(document).height() - 20));
		$('#background, .dirt').css('height', $(document).height() - 5);
		ie7();
	}).scroll();
	$(window).resize(function() { ie7(); });

	var $navmenu = $('div[class="navmenu"] ul');
	$navmenu.each(function(i) {
		switch (i) {
			case 0: $(this).children('li[class="menu_home"]').children('a').addClass('selected'); $('#c-home').attr('rel', 'nav-menu-' + (i + 1)); break;
			case 1: $(this).children('li[class="menu_about"]').children('a').addClass('selected'); $('#c-about').attr('rel', 'nav-menu-' + (i + 1)); break;
			case 2: $(this).children('li[class="menu_portfolio"]').children('a').addClass('selected'); $('#c-portfolio').attr('rel', 'nav-menu-' + (i + 1)); break;
			case 3: $(this).children('li[class="menu_blog"]').children('a').addClass('selected'); $('#c-blog').attr('rel', 'nav-menu-' + (i + 1)); break;
			case 4: $(this).children('li[class="menu_contact"]').children('a').addClass('selected'); $('#c-contact').attr('rel', 'nav-menu-' + (i + 1)); break;
		}
	});
	
	var $navmenu_items = $('div[class="navmenu"] ul li, #mainnav li');
	$navmenu_items.each(function() {
		$(this).bind('click', function(e) {
			e.preventDefault(); 

			var getHash = $(this).children('a').attr('href').split('#').pop();
			var offset = $('#' + getHash).offset();
			var start = $(this).parent().attr('id') == 'mainnav' ? 6 : parseInt($(this).parent().parent().attr('id').substring(9));
			var stop = parseInt($('#' + getHash).attr('rel').substring(9));
			var speed = 2000;
			var step = 250;

			if (start > stop) {
				speed += (start - stop) * step;
			} else {
				speed += (stop - start) * step;
			}

			offset.left = 0;

			switch ('#' + getHash) {
				case '#c-blog': offset.top = $('#c-blog').offset().top + 80; break;
				case '#c-home':	offset.top = $('#c-home').offset().top + 70; break;
			}

			$(document).scrollTo(offset, speed, { easing:'backEaseOut' });
			return false;
		});
		
		if ($(this).parent().attr('id') != 'mainnav') {
			$(this).children('a').hover(
				function() {
					if (!$(this).hasClass('selected')) {
						$(this).parent().parent().find('a[class="selected"]').addClass('blur');
					}
				},
				function() {
					$(this).parent().parent().find('a[class="selected blur"]').removeClass('blur');
				}
			);
		}
	});

	$('a[class="goto"]:not([rel^="ajax"])').each(function() {
		$(this).bind('click', function(e) {
			e.preventDefault(); 

			var getHash = $(this).attr('href').split('#').pop();
			var offset = $('#' + getHash).offset();
			var start = $(this).parents('div[id^="section-"]').attr('id');
			var stop = parseInt($('#' + getHash).attr('rel').substring(9));
			var speed = 2000;
			var step = 250;

			switch (start) {
				case 'section-home':		start = 1; break;
				case 'section-about':		start = 2; break;
				case 'section-portfolio':	start = 3; break;
				case 'section-blog':		start = 4; break;
				case 'section-contact':		start = 5; break;
			}

			if (start > stop) {
				speed += (start - stop) * step;
			} else {
				speed += (stop - start) * step;
			}

			offset.left = 0;

			switch ('#' + getHash) {
				case '#c-blog': offset.top = $('#c-blog').offset().top + 80; break;
				case '#c-home':	offset.top = $('#c-home').offset().top + 70; break;
			}

			$(document).scrollTo(offset, speed, { easing:'backEaseOut' });
			return false;
		});
	});

	$('.rated').each(function(i) {
		var formID = $(this).attr('id');
		var rateID = $('#' + formID + ' fieldset select').attr('class');
		//var rateID = $(this).children('select').attr('class');
		$(this).children().not('select').hide();
		$(this).stars({
			inputType: 'select',
			cancelShow: false,
			oneVoteOnly: false,
			starWidth: 20,
			callback: function(ui, type, value) {
				ui.disable();

				$.post('rating.php', {rate: value, id: rateID}, function(db) {
					setTimeout(function() {
						$('#' + formID).stars('select', Math.round(db.avg));
						ui.enable();
					}, 2000);
				}, 'json');
			}
		});
	});
	$('.blog-recent-paginate a').live('click', function(e) {
		e.preventDefault();
		var url = $(this).attr('href');
		var readurl = $(this).attr('href').replace(/list\-recent\/.+/, 'read/');
		
		$(document).scrollTo({left:0, top:$('#c-blog').offset().top + 80}, 1000, { easing:'backEaseOut' });

		$('#blog-loading').css('z-index', 9999).stop().animate({opacity: 1}, 2000, function() {
			$('#blogrecent').hide('drop', {direction: 'left'}, 1000);
			$.get(url, function(data) {
				$('#blogrecent').html(data);

				$('#blogrecent form.rated').each(function(i) {
					var formID = $(this).attr('id');
					//var rateID = $(this).children('select').attr('class');
					var rateID = $('#' + formID + ' fieldset select').attr('class');
					$(this).children().not('select').hide();
					$(this).stars({
						inputType: 'select',
						cancelShow: false,
						oneVoteOnly: false,
						starWidth: 20,
						callback: function(ui, type, value) {
							ui.disable();

							$.post('rating.php', {rate: value, id: rateID}, function(db) {
								setTimeout(function() {
									$('#' + formID).stars('select', Math.round(db.avg));
									ui.enable();
								}, 2000);
							}, 'json');
						}
					});
				});

				$('#blog_recent_' + $('#blog-recent-first').val()).hide();
				$('#blogrecent').show('drop', {direction: 'left'}, 1000);

				$.get(readurl + $('#blog-recent-first').val(), function(data) {
					$('#blogviewer').html(data);
					$('#blog-loading').css('height', $('#blogviewer').height());
					
					var formID = $('#blogviewer').find('form').attr('id');
					//var rateID = $('#blogviewer').find('form select').attr('class');
					var rateID = $('#' + formID + ' fieldset select').attr('class');
					$('#' + formID).children().not('select').hide();
					$('#' + formID).stars({
						inputType: 'select',
						cancelShow: false,
						oneVoteOnly: false,
						starWidth: 20,
						callback: function(ui, type, value) {
							ui.disable();

							$.post('rating.php', {rate: value, id: rateID}, function(db) {
								setTimeout(function() {
									$('#' + formID).stars('select', Math.round(db.avg));
									ui.enable();
								}, 2000);
							}, 'json');
						}
					});

					$('#blog-cur-id').val(rateID.replace('blog_', ''));
					$('#background').css('height', $(document).height() - $('#blog-loading').height());
					init_page();
				});
			});
		});

		return false;
	});
	$('.blog-readmore a, a[class="goto"][rel="ajaxBlog"]').live('click', function(e) {
		e.preventDefault();
		var url = $(this).attr('href');
		var curId = $('#blog-cur-id').val();
		var newId = url.split('/').pop();
		//var newId = ($(this).hasClass('goto')) ? 'blog_recent_' + url.split('/').pop() : $(this).parents('div[id^="blog_recent_"]').attr('id');
	
		$(document).scrollTo({left:0, top:$('#c-blog').offset().top + 80}, 1000, { easing:'backEaseOut' });
		if (newId != curId)	{
			$('#background').css('height', $(document).height() - $('#blogviewer').height());
		
			$('#' + newId).hide('drop', {direction: 'down'}, 1000);
			$('#blog_recent_' + curId).show('drop', {direction: 'down'}, 1000);

			$('#blog-loading').css('z-index', 9999).stop().animate({opacity: 1}, 2000, function() {
				$.get(url, function(data) {
					$('#blogviewer').html(data);
					$('#blog-loading').css('height', $('#blogviewer').height());
					
					var formID = $('#blogviewer').find('form').attr('id');
					//var rateID = $('#blogviewer').find('form select').attr('class');
					var rateID = $('#' + formID + ' fieldset select').attr('class');
					$('#' + formID).children().not('select').hide();
					$('#' + formID).stars({
						inputType: 'select',
						cancelShow: false,
						oneVoteOnly: false,
						starWidth: 20,
						callback: function(ui, type, value) {
							ui.disable();

							$.post('rating.php', {rate: value, id: rateID}, function(db) {
								setTimeout(function() {
									$('#' + formID).stars('select', Math.round(db.avg));
									ui.enable();
								}, 2000);
							}, 'json');
						}
					});

					$('#blog-cur-id').val(rateID.replace('blog_', ''));
					$('#background').css('height', $(document).height() - $('#blog-loading').height());
					init_page();
				});
			});
		}
		return false;
	});
	$('#section-contact form').bind('submit', function(e) {
		e.preventDefault();

		$('#contact-loading').css('z-index', 9999).stop().animate({opacity: 1}, 2000, function() {
			$.post($('#section-contact form').attr('action'), $('#section-contact form').serialize(), function(data) {
				$('#section-contact form').clearForm();
				if (data == 'OK') {
					alert('Contact form data has been submitted.');
				} else {
					alert('Error submitted contact data, please try again.');
				}
				$('.loading-indicator').stop().animate({opacity: 0}, 1500).css('z-index', -1);
			});
		});

		return false;
	});
	$('#portfolio_list ul li').hover(function() {
		$(this).children('.thumbnail').stop().fadeTo('slow', 1);
	}, function() {
		$(this).children('.thumbnail').fadeTo('slow', 0.5);
	}).hover();
	$('.thumb-1, .thumb-2').parent('a').hover(function() {
		$(this).children('[class^="thumb"]').addClass('hover');
	}, function() {
		$(this).children('[class^="thumb"]').removeClass('hover');
	}).hover();

	$('link[href$="blank.css"]').each(function(i) {
		switch (i) {
			case 0: $(this).attr('href', 'http://cdn.buataitom.com/buatoom/css/css3.text-shadow.css'); break;
			case 1: $(this).attr('href', 'http://cdn.buataitom.com/buatoom/css/css3.box-shadow.css'); break;
			case 2: $(this).attr('href', 'http://cdn.buataitom.com/buatoom/css/css3.border-radius.css'); break;
		}
	});

	init_page();

	function ie7() {
		if (jQuery.browser.msie && parseInt(jQuery.browser.version.substr(0,1)) == 7) {
			$('#c-home-ie7').css({top:$('#c-home').offset().top + 'px',left:$('#c-home').offset().left + 'px'});
			$('#c-about-ie7').css({top:$('#c-about').offset().top + 'px',left:$('#c-about').offset().left + 'px'});
			$('#c-portfolio-ie7').css({top:$('#c-portfolio').offset().top + 'px',left:$('#c-portfolio').offset().left + 'px'});
			$('#c-blog-ie7').css({top:$('#c-blog').offset().top + 'px',left:$('#c-blog').offset().left + 'px'});
			$('#c-contact-ie7').css({top:$('#c-contact').offset().top + 'px',left:$('#c-contact').offset().left + 'px'});
			$('.charactor').css('background', 'none');
		}
	}

	function init_page() {
		$('img').load(function() {
			$('#background, .dirt').css('height', $(document).height() - 5);
			$('#blog-loading').css('height', $('#blogviewer').height()).css('z-index', -1);
			ie7();
		});

		if ($(window).scrollTop() < 70) {
			$(document).scrollTo({left:0, top:$('#c-home').offset().top + 70});
		}

		$('#blogviewer .leavecomment form').unbind('submit').bind('submit', function(e) {
			e.preventDefault();

			$(document).scrollTo({left:0, top:$('#c-blog').offset().top + 80}, 1000, { easing:'backEaseOut' });
			$('#blog-loading').css('z-index', 9999).stop().animate({opacity: 1}, 2000, function() {
				$.post($('#blogviewer .leavecomment form').attr('action'), $('#blogviewer .leavecomment form').serialize(), function(data) {
					$('#blogviewer .leavecomment form').clearForm();
					$('#blogviewer .blogcomments').html(data);
					$('#blogviewer .blogmeta .blogtitle span span, #blog_recent_' + $('#blog-cur-id').val() + ' .blogtitle span span').text(number_format($('#blogviewer .blogcomments #show-comments .commentlist li').length));
					$('#blog-loading').css('height', $('#blogviewer').height());
					init_page();
				});
			});

			return false;
		});

		ie7();

		$('.loading-indicator').stop().animate({opacity: 0}, 100).css('z-index', -1);
		$('#background, .dirt').css('height', $(document).height() - 5);
		$('#colormasked').css('height', ($(document).height() - 20));
		$('#blog_recent_' + $('#blog-cur-id').val()).hide();
	}
});
function number_format(number, decimals, dec_point, thousands_sep) {
    var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 0 : decimals;
    var d = dec_point == undefined ? "." : dec_point;
    var t = thousands_sep == undefined ? "," : thousands_sep, s = n < 0 ? "-" : "";
    var i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
    return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
}
$.fn.clearForm = function() {
  return this.each(function() {
    var type = this.type, tag = this.tagName.toLowerCase();
    if (tag == 'form')
      return $(':input',this).clearForm();
    if (type == 'text' || type == 'password' || tag == 'textarea')
      this.value = '';
    else if (type == 'checkbox' || type == 'radio')
      this.checked = false;
    else if (tag == 'select')
      this.selectedIndex = -1;
  });
};