/*  File: basic.js          */

/********************************
  the following routines require
    jquery.js
    jquery.tools.js
    jquery.jqtransform.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);

// extend jquery with synchronize height function
(function($){$.fn.syncHeight=function(settings){var max=0;var browser_id=0;var property=[['min-height','0px'],['height','1%']];if($.browser.msie&&$.browser.version<7){browser_id=1;}
$(this).each(function(){$(this).css(property[browser_id][0],property[browser_id][1]);var val=$(this).height();if(val>max){max=val;}});$(this).each(function(){$(this).css(property[browser_id][0],max+'px');});return this;};})(jQuery);

// 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);


// 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);
				}
			});
		}
	});
}


// sample ajax form function
function findInstallerForm()
{
	// submit via ajax
	$.post(
		'ajax_form_results.html',
		function(data) {
			if (data) {
				// rebuild sidebar html
				$('.find_installer_results').html(data);
			} else {
				// display error
			}
		}
	);
}


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

	// init find installer ajax example
	$('.find_installer_form input[type="submit"]').click(function() {
		findInstallerForm(this);
		return false;
	});

	// 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 fancy form styling
	if($('.fancy_form form').jqTransform()){
		$('.fancy_form form').jqTransform();
	}

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

	// init header util nav
	$('#header_util_nav .nav .nav_item').hover(function() {
		$(this).addClass('open');
		$(this).removeClass('closed');
	}, function() {
		$(this).removeClass('open');
		$(this).addClass('closed');
	});

	// init top nav
	$('#top_nav .nav > li > a').addClass('nav_1_link');
	$('#top_nav .nav ul li:first-child').addClass('first');
	$('#top_nav .nav ul ul').prev('a').append('<span class="child_indicator"> &raquo;</span>');

	// init slideshows
	if (!$('#home_page').length)
	{
		$('.slideshow').each(function() {
			if ($(this).find('.slide').length == 1) {
				$(this).scrollable({
					size: 1,
					items: '.slides'
				});
			} else {
				$(this).scrollable({
					size: 1,
					circular: true,
					items: '.slides'
				}).autoscroll({
					interval: 6000
				}).navigator({
					idPrefix: 'nav_item_'
				});
			}
		});
	}

	// 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;
		});
	});

	// init collapsible modules
	$('.collapsible').each(function(index) {
		var parent = $(this).parent();
		$(this).find('.module_title').click(function() {
			// animate modules
			parent.find('.collapsible:not(:eq('+index+')) .module_content').slideUp();
			$(this).next('.module_content').slideDown();
			// hilite selected module
			parent.find('.collapsible').removeClass('selected');
			$(this).parents('.collapsible').addClass('selected'); /* todo IE8 fix required */
			return false;
		});
	});

	// init filters
	$('.filter .trigger').click(function() {
		$(this).next('.options').toggle();
		return false;
	});

	// init expandable block triggers
	$('.expandable_block .trigger_more').click(function() {
		$(this).parents('.expandable_teaser').slideUp();
		$(this).parents('.expandable_teaser').next('.expandable_detail').slideDown();
		return false;
	});
	$('.expandable_block .trigger_less').click(function() {
		$(this).parents('.expandable_detail').slideUp();
		$(this).parents('.expandable_detail').prev('.expandable_teaser').slideDown();
		return false;
	});

	// 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'));
			}
		},
		onClose: function() {
			if ($.browser.msie6) { $('select').show(); }
			var wrap = this.getOverlay().find('.overlay_content');
			wrap.removeClass('image_detail');
		}
	});
	
	//BIJU Changes for Vertical Overlay
		
		$('.overlay_trigger_vertical').overlay({
				mask: {
					color: '#000',
					opacity: 0.8
				},
				onBeforeLoad: function() {
					if ($.browser.msie6) { $('select').hide(); }
					var wrap = this.getOverlay().find('.overlay_content_vertical');
					if (this.getTrigger().hasClass('image_overlay_vertical')) {
						wrap.addClass('image_detail');
						wrap.html($('<img>').attr('src', this.getTrigger().attr('href')));
					} else {
						wrap.load(this.getTrigger().attr('href'));
					}
				},
				onClose: function() {
					if ($.browser.msie6) { $('select').show(); }
					var wrap = this.getOverlay().find('.overlay_content_vertical');
					wrap.removeClass('image_detail');
				}
		});
		
	//BIJU Changes for Vertical Overlay

	// BIJU Flag Overlay
	$('.flag_overlay_trigger').overlay({
		mask: {
			color: '#000',
			opacity: 0.8
		},
		onBeforeLoad: function() {
			if ($.browser.msie6) { $('select').hide(); }
			var wrap = this.getOverlay().find('.flag_overlay_content');
			if (this.getTrigger().hasClass('flag_image_overlay')) {
				wrap.addClass('image_detail');
				wrap.html($('<img>').attr('src', this.getTrigger().attr('href')));
			} else {
				wrap.load(this.getTrigger().attr('href'));
			}
		},
		onClose: function() {
			if ($.browser.msie6) { $('select').show(); }
			var wrap = this.getOverlay().find('.flag_overlay_content');
			wrap.removeClass('image_detail');
		}
	});
	// BIJU Flag Overlay

	$('.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 {
				if(this.getTrigger().attr('href')!='#')
				{
					wrap.load(this.getTrigger().attr('href'));
				}else 
				{	
					wrap.stopPropagation()
				}
			}
		},
		onClose: function() {
			if ($.browser.msie6) { $('select').show(); }
			var wrap = this.getOverlay().find('.overlay_content');
			wrap.removeClass('image_detail');
		}
	});

	
	// init tooltips
	$('.tooltip_trigger').each(function() {
		var tip_data = $(this).attr('rel').split('|');
		var tip_html = '<div class="inner row"><div class="left">'+tip_data[1]+'</div><div class="right"><a class="button" href="#'+tip_data[0]+'">Read Glossary Term</a><a class="button" href="#'+tip_data[0]+'">Email Term</a><a class="button button_bookmark" href="#'+tip_data[0]+'">Bookmark </a></div></div>';
		$(this).tooltip({
			position: 'top right',
			offset: [7, -14],
			onBeforeShow: function(){
				this.getTip().html(tip_html);
			}
		});
	});

	// sync columns
	$('.main_sync').syncHeight();
	$('.content_sync').syncHeight();

	// set external links
	// $('a[href^="http"]').each(function () {
	// 	if(this.href.indexOf(location.hostname) == -1) {
	// 		$(this).attr('target', '_blank');
	// 		$(this).addClass('external');
	// 	}
	// });

	// hacks for ie
	if ($.browser.msie)
	{
		$('#main_sidebar .module_group:last-child, #main_sidebar .module:last-child').addClass('last_module');
	}

	// hacks for ie6
	if ($.browser.msie6)
	{
		$('#main_nav .nav .open + li a').addClass('no_border');
		$('#top_nav .nav ul li:first-child > a').addClass('first');
		$('#top_nav .nav li').hover(function() {
			$(this).children('a, ul').addClass('hover');
		}, function() {
			$(this).children('a, ul').removeClass('hover');
		});
	}

});

