(function($) {

	$(document).ready(function(){
		$(this).loadProductImages();
      
	});
	
	$.fn.loadProductImages = function(){
		$(".preloading").load(function(){
			$(this).fadeIn(600);
		})

		$(".preloading").each(function(){
			$(this).attr("src",YAHOO.urlProcessing.processUrl($(this).attr("href")));
		});
	}

	/**
	 * Init popUp for service info
	 */
	$.fn.initServiecInfoPopup = function(){
		$(this).click(function(event){
			event.stopImmediatePropagation();
			event.stopPropagation();
			event.preventDefault();
			windowType = $(this).attr("isPseudo");
			if(windowType == "true")
			{
				placeHolder = $(this).attr("placeHolder");
				$(placeHolder).empty();
				
				popup.showPopup($(this).attr("popupId"),'c-t',[0,100],$(this).attr("header"));
				
				$(placeHolder).append("<div class='loading_p'></div>");
				$(placeHolder).load($(this).attr("href") + " " + $(this).attr("placeHolder") + ">div",
						function(){
					       $(placeHolder).initializePopup();
				         });
			}
			else{
				YAHOO.popup.open($(this).attr("href"),'',820,460,'location=no,status=no,toolbar=no,menubar=no,resizable=no,scrollbars=no');
			}
			return false;
		});
	}

	/**
	 * Inits all Info widgets
	 */
	$.fn.initializePopup = function(){
		$(".mailControl").click(function(event){
			event.stopImmediatePropagation();
			if($(".emailSendInfo").is(":visible"))
			   $(".emailSendInfo").fadeOut(50);
			else
			{
				$(".emailSendInfo>input:eq(0)").css("display","");
				$(".emailSendInfo>span:eq(0)").css("display","none");
				$(".emailSendInfo>a:eq(0)").css("display","");
				$(".emailSendInfo").fadeIn(50);
			}
		})
		$("#tabs").tabs({ selected: 0 });
		$('#tabs').bind('tabsshow', function(event, ui){
			if(ui.panel.id == "location-tab"){
				
				if($(".infoMapContainer").length == 1)
				{
					//Choose map
					if($(".infoMapContainer").attr("isGoogle") == "false")
					{
						if(typeof YMaps !== 'undefined'){
						  $(".infoMapContainer").showYandexMap(null,{
							     x:$(".infoMapContainer").attr("latitude"),
							     y:$(".infoMapContainer").attr("longitude")},1,{x:0,y:0},12);
						}
					}
					else{
					    $(".infoMapContainer").showGoogleMap(null,{
							     x:$(".infoMapContainer").attr("latitude"),
							     y:$(".infoMapContainer").attr("longitude")},1,{x:0,y:0},9);
					}
				}
			}
			return true;
		});
		var onMouseOutOpacity = 0.67;
		//Gallery opacity
		$('#thumbs ul.thumbs li').opacityrollover({
			mouseOutOpacity:   onMouseOutOpacity,
			mouseOverOpacity:  1.0,
			fadeSpeed:         'fast',
			exemptionSelector: '.selected'
		});
        //Gallery
		try{
			$('#thumbs').galleriffic({
				numThumbs: 20,
				controlsContainerSel:'#controls',
				nextPageLinkText:'',
				captionContainerSel:'#caption',
				prevPageLinkText:'',
				imageContainerSel:'#gallery',
				onSlideChange: function(prevIndex, nextIndex) {
				  this.find('ul.thumbs').children()
					.eq(prevIndex).fadeTo('fast', onMouseOutOpacity).end()
					.eq(nextIndex).fadeTo('fast', 1.0);
			    },
			    onPageTransitionOut: function(callback) {
				  this.fadeTo('fast', 0.0, callback);
			    },
			    onPageTransitionIn: function() {
				  this.fadeTo('fast', 1.0);
			    }
	        });
		}
		catch (e) {
			//Add catch block to process gallery errors
		}
		//Process image url
		$("#mT>img:eq(0)",$(this)).attr("src", YAHOO.urlProcessing.processUrl( $("#mT>img:eq(0)",$(this)).attr("src") ));
		
		//Process send pdf by email

		$(".emailSendInfo>a:eq(0)",$(this)).click(function(event) {
			event.stopImmediatePropagation();
			mail = $(this).prev();
			if($(mail).validateEmail())
			{
				$.get($(this).attr("href")+"&email="+$(mail).val(),function(){
					$(".emailSendInfo>input:eq(0)").css("display","none");
					$(".emailSendInfo>span:eq(0)").css("display","block");
					$(".emailSendInfo>a:eq(0)").css("display","none");
				});
				
			}
			return false;
		});
		
	}
	
	$.fn.validateEmail = function() {
		   var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
		   var address = $(this).val();
		   if(reg.test(address) == false) {
		      $(this).css("border","1px solid red");
		      return false;
		   }
		   else{
			   $(this).css("border","");
			   return true;
		   }
	}
	
	/**
	 * Opacity settings
	 */
	var defaultsOpacityrollover = {
			mouseOutOpacity:   0.67,
			mouseOverOpacity:  1.0,
			fadeSpeed:         'fast',
			exemptionSelector: '.selected'
	};
	
	/**
	 * Opacity handler for gallery
	 */
	$.fn.opacityrollover = function(settings) {
			// Initialize the effect
			$.extend(this, defaultsOpacityrollover, settings);

			var config = this;

			function fadeTo(element, opacity) {
				var $target = $(element);
				
				if (config.exemptionSelector)
					$target = $target.not(config.exemptionSelector);	
				
				$target.fadeTo(config.fadeSpeed, opacity);
			}

			this.css('opacity', this.mouseOutOpacity)
				.hover(
					function () {
						fadeTo(this, config.mouseOverOpacity);
					},
					function () {
						fadeTo(this, config.mouseOutOpacity);
					});

			return this;
   };
	
})(jQuery);



