/*  File: basic.js          */

/********************************
  the following routines require
	jquery.js
	jquery.tools.js
	date.format.js
*********************************/

// extend browser object to define IE6
$.browser.msie6 = $.browser.msie && /MSIE 6\.0/i.test(window.navigator.userAgent) && !/MSIE 7\.0/i.test(window.navigator.userAgent);

// extend browser object to define IE7
$.browser.msie7 = $.browser.msie && /MSIE 7\.0/i.test(window.navigator.userAgent);


// pre-popopulate forms function
function formPrePop(obj)
{
	obj.find('.pre_pop > input, .pre_pop > textarea').each(function() {
		var label = $(this).prev('label').text();
		if ($(this).val() == '')
		{
			$(this).val(label);
			$(this).focus(function() {
				var tmp_val = $(this).val();
				if (tmp_val == label) {
					$(this).val("");
				}
			});
			$(this).blur(function() {
				var tmp_val = $(this).val();
				if (tmp_val == "" || tmp_val == null) {
					$(this).val(label);
				}
			});
		}
	});
}


// extend jquery with google feed function
(function($){$.extend({jGFeed:function(url,fnk,num,key){if(url==null){return false;}var gurl="http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&callback=?&q="+url;if(num!=null){gurl+="&num="+num;}if(key!=null){gurl+="&key="+key;}$.getJSON(gurl,function(data){if(typeof fnk=="function"){fnk.call(this,data.responseData.feed);}else{return false;}});}});})(jQuery);


(function($) {

	// extend jquery with get twitter rss feed function
	$.fn.getTwitterRssFeed = function(options) {
		var defaults = {
			'url' : '',
			'title' : '',
			'content_tag' : '',
			'number' : 1
		};
		var options = $.extend(defaults, options);
		var num = parseInt(options.number);
		var obj = null;
		return this.each(function()
		{
			obj = $(this);
			$.jGFeed(options.url, function(feeds) {
				// console.log(feeds);
				// check for errors
				if (!feeds)
				{
					obj.html('<strong>'+title+'</strong>: Error accessing the feed.');
					return false;
				}
				var html_output = '';
				for (var i = 0; i < feeds.entries.length; i++)
				{
					var entry = feeds.entries[i];
					switch(options.content_tag) {
						case 'title':
							var content = entry.title;
							break;
						case 'content':
							var content = entry.content;
							break;
						default:
							var content = entry.contentSnippet;
							break;
					}
					content = content.replace(/^sunpower:/ig, '');
					content = content.replace(/(http:\/\/)(\S*)/g, '<a href="$1$2">$1$2</a>');
					var link_tar = '';
					var link = (entry.link != '') ? ' <a href="'+ entry.link +'"'+ link_tar +'>More &gt;</a>' : '';
					var format_date = dateFormat(entry.publishedDate, 'h:MM TT mmm dS');
					html_output += '<div class="item"><a href="'+entry.link+'">#SunPower:</a>' + content + '<div class="date">' + format_date + ' via web</div></div>';
					obj.html(html_output);
				}
				// init ticker
				var par = obj.parents('.twitter_ticker');
				par.find('.ticker').scrollable({
					size: 1,
					circular: true
				});
			}, num, 'ABQIAAAAipJWvOEUUwc35NRJ4PqS4hQt9LMlI5zAxwbaEAfyNDSO-oaIDBTze5So5wx51Cbt72i_T4frrqz5Cg');
		});
	};

})(jQuery)


// document onload routines
$(document).ready(function() {

	// init galleries
	$('.gallery').each(function() {
		var gallery_nav = $(this).find('.nav a');
		gallery_nav.bind('click', function() {
			var idx = gallery_nav.index(this);
			gallery_nav.parents('.gallery').find('.image').hide()
			gallery_nav.parents('.gallery').find('.image:eq('+idx+')').show()
			$(this).siblings().removeClass('selected');
			$(this).addClass('selected');
			return false;
		});
	});

	$('.twitter_ticker .items').getTwitterRssFeed({
		//url : 'http://twitter.com/statuses/user_timeline/135618949.rss',
		url : 'http%3A%2F%2Fstage2.mediaroom.com%2Fsunpowercorp%2Findex.php%3Fs%3D15556%26pagetemplate%3Drss',
		content_tag : 'contentSnippet',
		number : 5
	});

	// init form styling
	$('form .text input[type="text"], form .text input[type="password"], form .text textarea').addClass('input_text');
	$('input[type="button"], input[type="submit"], button').addClass('button');

	// init form pre-populate
	$('form').each(function() {
		formPrePop($(this));
	});

	// sync main column height
	$('.sync_height').css('height', $('#sidebar').height())

	// init overlays
	$('.overlay_trigger').overlay({
		mask: {
			color: '#000',
			opacity: 0.8
		},
		onBeforeLoad: function() {
			if ($.browser.msie6) { $('select').hide(); }
			var wrap = this.getOverlay().find('.overlay_content');
			if (this.getTrigger().hasClass('image_overlay')) {
				wrap.addClass('image_detail');
				wrap.html($('<img>').attr('src', this.getTrigger().attr('href')));
			} else {
				wrap.load(this.getTrigger().attr('href'));
			}
		},
		onLoad: function() {
			var wrap = this.getOverlay().find('.overlay_content');
			if (this.getTrigger().hasClass('image_overlay')) {
				var wrap_w = wrap.width();
				var img_w = wrap.find('img').width();
				var m_adj = (wrap_w - img_w)/2;
				wrap.css({width: img_w, marginLeft: m_adj})
			}
		},
		onClose: function() {
			if ($.browser.msie6) { $('select').show(); }
		}
	});
	
	
	$('.flash_overlay_trigger').overlay({
		mask: {
			color: '#000',
			opacity: 0.8
		},
		top: 45,
		onBeforeLoad: function() {
			if ($.browser.msie6) { $('select').hide(); }
			var wrap = this.getOverlay().find('.overlay_content');
			if (this.getTrigger().hasClass('image_overlay')) {
				wrap.addClass('image_detail');
				wrap.html($('<img>').attr('src', this.getTrigger().attr('href')));
			} else {
				wrap.load(this.getTrigger().attr('href'));
			}
		},
		onLoad: function() {
			var wrap = this.getOverlay().find('.overlay_content');
			if (this.getTrigger().hasClass('image_overlay')) {
				var wrap_w = wrap.width();
				var img_w = wrap.find('img').width();
				var m_adj = (wrap_w - img_w)/2;
				wrap.css({width: img_w, marginLeft: m_adj})
			}
		},
		onClose: function() {
			if ($.browser.msie6) { $('select').show(); }
		}
	});
	
	$('.enlarge_thumb_wrap .mask, .video_thumb_wrap .mask').click(function() {
		$(this).prev('.overlay_trigger').trigger('click');
	});

});

