/*
 * quickView
 * Examples and documentation at: http://
 * Version: 1.0.1 (05/01/2011)
 * Copyright © 2011 
 * Licensed under the MIT License: http://en.wikipedia.org/wiki/MIT_License
 * Requires: jQuery v1.4.4+
*/
;(function($) {

	$.fn.quickView = function( options ){

		var _this = $(this);
		
		var defaults = {	
			'initItemTime' : 200,
			'autoSearchSource' : false,
			'source':{}
		};
		
		var options = $.extend( {}, defaults, options );

		_this.each(function(i,o){
			
			var mouseover = false;
			var livetime = null;
			
			$(o).mouseover(function(){
				var _this = $(this);
				mouseover = true;
				
				livetime = setTimeout( function(){
				
				if( mouseover )
				{
					quickView( _this );
					mouseover = false;
				}
					clearTimeout( livetime );
				}, options.initItemTime);
				
			}).mouseout(function(){
				mouseover = false;
				clearTimeout( livetime );
			}).click(function(){quickView( $(this) );});
		});
		
		function quickView( obj )
		{
			// Source
			if( !options.autoSearchSource )
			{
				var _item = obj.parent().parent();
				var _item_title = $("li.descr h2", _item).text(); //
				var _item_title_a_href = $("li.descr h2 a", _item).attr("href");
				var _item_description = $("li.descr div.d", _item).html();
				var _item_horizMenu = $("li.descr ul.horizMenu", _item);
				var _item_availabilityin = $("li.descr div.availabilityin", _item).text(); //
	
				var _item_img = "pmidimages/"+$("li.image a.i img", _item).attr("src").split("pthumbs\/")[1];
				var _item_starRating = $("li.image ul.star-rating", _item);
				var _item_bt_wrReview = $("li.image div.review a", _item);
				
				var _item_price = $("li.price p.price span", _item).text();
				var _item_bt_addtocart = $("li.price button.addtocart, li.price button.inquire", _item);
				var _item_bt_wishlist = $("li.price .scrollbutton a", _item).attr("href");
				var _item_breadcrumbs = $("#content .breadcrumbs div").html();
			
			}
			else
			{
				var _item_title = options.source.title; //
				var _item_title_a_href = options.source.title_a_href;
				var _item_description = options.source.description;
				var _item_horizMenu = options.source.horizMenu;
				var _item_availabilityin = options.source.availabilityin; //
	
				var _item_img = options.source.img;
				var _item_starRating = options.source.starRating;
				var _item_bt_wrReview = options.source.wrReview;
				
				var _item_price = options.source.price;
				var _item_bt_addtocart = options.source.addtocart;
				var _item_bt_wishlist = options.source.wishlist;
				//var _item_breadcrumbs = options.source.breadcrumbs;
			}
			
			// Main 
			
			obj.addClass("scrollbutton_addtocart_selected");
			
			var main = $('<div id="quick_view_box"><p class="title"><span class="t"></span> <span class="in">In Stock</span></p><div class="breadcrumbs"></div><div class="fl_l"><a href="" class="i"><img src="" alt="" /></a><ul class="star-rating"></ul><div class="scrollbutton wrrev"><div class="scrollbutton_c"><div class="scrollbutton scrollbutton_face bt_write_review"><div class="scrollbutton_c"><p class="write_review">3 reviews</p></div><div class="outcor"></div></div></div><div class="outcor"></div></div></div><div class="fl_r"><div class="d"></div><ul class="horizMenu"></ul><div class="linesep"></div><div class="priceline"><p></p><button type="button" class="addtocart"><div></div></button></div><div class="linesep"></div><div class="scrollbutton scrollbutton_face addtowish"><div class="scrollbutton_c"><p><a href="templates/wishlist_signin_init.asp?prodid=">Add to Wishlist</a></p></div><div class="outcor"></div></div><div class="scrollbutton scrollbutton_face vmore"><div class="scrollbutton_c"><p><a href="templates/wishlist_signin_init.asp?prodid=">View More</a></p></div><div class="outcor"></div></div></div><div class="close"></div></div>').hide().prependTo('body');
			
			var availabilityin = $("span.in", main).text( _item_availabilityin );
			var title = $("span.t", main).text( _item_title ); //
			
			if( _item_breadcrumbs )
				var breadcrumbs = $(".breadcrumbs", main).html( _item_breadcrumbs );
				
			var imgA = $(".fl_l a.i", main).attr("href", _item_title_a_href );
			var img = $("img", imgA).attr("src", _item_img ).load(function(){
				main.css({
				"position":"absolute",
				"top":( $(window).height() - main.height() ) / 2 + $(window).scrollTop() + "px",
				"left":( $(window).width() - main.width() )/ 2 + "px"
				}).fadeIn();
				obj.removeClass("scrollbutton_addtocart_selected");
			});

			var starRating = $(".fl_l .star-rating", main).html( _item_starRating.html() );//
			var bt_wrReview = $(".fl_l .wrrev", main);
			
			var bt_wrReviewCaption = $(".write_review", bt_wrReview).text( _item_bt_wrReview.text() );//
			
			var description = $(".fl_r div.d", main).html( _item_description );
			var horizMenu = $(".fl_r ul.horizMenu", main).html( _item_horizMenu.html() ); //
			
			var bt_addtocart = $(".fl_r div.priceline button.addtocart", main).click(function(){
					main.fadeOut();
					_item_bt_addtocart.trigger("click");
			});
			
			var bt_addtowish = $(".fl_r div.addtowish a", main).attr("href",_item_bt_wishlist);
			var bt_vmore = $(".fl_r div.vmore a", main).attr("href",_item_title_a_href);
			
			if( _item_price == "" || _item_price == "$0.00" )
			{
				bt_addtocart.addClass("inquire");
				$(".fl_r div.priceline", main).addClass("priceline_inquire");
				_item_bt_addtocart.unbind("click").click(function(){
					$.iLightBox( "templates/form_need_more_info.html", {iframe:true,width:475,height:450})
				});
			}
			else
			{
				var price = $(".fl_r div.priceline p", main).text( _item_price ); //
			}
			
			var bt_close = $(".close", main).click(function(){
				main.fadeOut().remove();
			});

			main.mouseleave(function(){
				var _this = $(this);
				bt_close.trigger("click");
			}).css({
				"position":"absolute",
				"top":( $(window).height() - main.height() ) / 2 + $(window).scrollTop() + "px",
				"left":( $(window).width() - main.width() )/ 2 + "px"
			});

		}

	};
})(jQuery);
