jQuery.noConflict();


/**
   * Ready
*/

	jQuery(document).ready(function() {

		jQuery("nav").pk_menu();
		jQuery(".pk_zoom_icon, .pk_play_icon, .pk_page_icon, .pk_link_icon").pk_image_rollover();
		
 
        jQuery("a[data-prettyPhoto^='prettyPhoto']").prettyPhoto({
            default_width:800,
            default_height:450,
            allow_resize: true,
            autoplay_slideshow: false,
            slideshow: 5000,
            opacity: 0.8,
            theme: 'dark_square'
        });
		
        pkFixPixels();

	});


/**
   * PK Menu
*/

	(function($) {
		$.fn.pk_menu = function(options) {
			var defaults = {
				speedIn: 400,
				speedOut: 100
			};
		
			var settings = $.extend({}, defaults, options);
		
			return this.each(function () {
				var $root = $(this);
				var $lists = $("ul", this);
				var $buttons = $lists.find("ul").parent();
				
				$("ul", $root).each(function() {
     				$("li:last-child", this).addClass("last");
   				});

				function showMenu($element) {

					if(jQuery.browser.msie && parseInt(jQuery.browser.version) < 9) {
						$element.css({ "visibility" : "visible" }).show();
					} else {
						$element.css({ "visibility" : "visible" }).fadeIn(settings.speedIn);
					}

				}
 
    			function hideMenu($element, $current) {
   
    				if(jQuery.browser.msie && parseInt(jQuery.browser.version) < 9) {
						$element.hide();
					} else {
						$element.fadeOut(settings.speedIn, function() {
    						$element.hide();
    					});
					}

    			}

				$buttons.each(function() {
					var $btn = $(this);

					$btn.click(function() {
						var $targetul = $(this).find("ul:first");
						$targetul.hide();
					});

					$btn.hoverIntent(function() {

						var $targetul = $(this).find("ul:first");
						showMenu($targetul);

					}, function() {

						var $targetul = $(this).find("ul:first");
						hideMenu($targetul, $(this));

					});
				});
			});
		};
	})(jQuery);


/**
   * PK Twitter
*/

	(function($) {
		$.fn.pk_twitter = function(options) {
			var defaults = {
				user: "parkerandkent",
				count: 1
			};
	
			var settings = $.extend({}, defaults, options);
		
			String.prototype.linkify = function() {
				return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(m) {
					return m.link(m);
				});
			};
		
			function get_time(time_value) {

	  			var values = time_value.split(" ");
	  			time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
	 			var parsed_date = Date.parse(time_value);
	  			var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
	  			var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
	  			delta = delta + (relative_to.getTimezoneOffset() * 60);
	  
	  			var r = '';
	  			if (delta < 60) {
					r = 'a minute ago';
	  			} else if(delta < 120) {
					r = 'couple of minutes ago';
	  			} else if(delta < (45*60)) {
					r = (parseInt(delta / 60)).toString() + ' minutes ago';
	 			} else if(delta < (90*60)) {
					r = 'an hour ago';
	  			} else if(delta < (24*60*60)) {
					r = '' + (parseInt(delta / 3600)).toString() + ' hours ago';
	  			} else if(delta < (48*60*60)) {
					r = '1 day ago';
	  			} else {
					r = (parseInt(delta / 86400)).toString() + ' days ago';
	  			}
	  
	  			return r;

			};
		
			return this.each(function () {
				var $root = $(this);
			
				$.getJSON('http://twitter.com/status/user_timeline/' + settings.user + '.json?count=' + settings.count + '&callback=?', function(data){
					$root.find("li").remove();
					$.each(data, function(index, item){
						$root.append('<li>' + item.text.linkify() + '<small>' + get_time(item.created_at) + '</small></li>');
					});
				});
			});
		}
	})(jQuery);


/**
   * PK Image Rollover
*/

	(function($) {
		$.fn.pk_image_rollover = function() {
			return this.each(function() {
				var root = $(this);

				root.hover(function() {
					if(jQuery.browser.msie && parseInt(jQuery.browser.version) < 9) {

						$(".pk_image_button_overlay", this).show();

					} else {

						$(".pk_image_button_overlay", this).css("display" , "none").stop(true, true).fadeIn(400);

					}
				}, function() {
					if(jQuery.browser.msie && parseInt(jQuery.browser.version) < 9) {

						$(".pk_image_button_overlay", this).hide();

					} else {

						$(".pk_image_button_overlay", this).css("display" , "block").stop(true, true).fadeOut(400);
					}
				});
			});
		};
	})(jQuery);


/**
   * PK Preloader
*/

	(function($) {
		$.fn.pk_preloader = function(options) {
			var defaults = {
				delay:400,
				speedIn:400,
				beforeLoading: function(){},
				afterLoading: function(){}
			};

			var settings = $.extend({}, defaults, options);

			return this.each(function() {
				var root = $(this);

				settings.beforeLoading.call(this);

				root.css({ "opacity" : 0, "visibility" : "hidden" });

				function showImage(image) {

					if(image.data.url != undefined) { image = image.data.url; }

					if(settings.delay <= 0) {

						image.css({ "visibility" : "visible" }).animate({ "opacity" : 1 }, settings.speedIn, function() { 
							settings.afterLoading.call(this);
						});

					} else {

						setTimeout(function() {
							image.css({ "visibility" : "visible" }).animate({ "opacity" : 1 }, settings.speedIn, function() { 
								settings.afterLoading.call(this);
							});
						}, settings.delay);
					
					}

				}

				if(this.complete == true) {

					showImage(root);

				} else {

					root.bind("error load", { url:root }, showImage);
					if($.browser.opera) { root.trigger("load"); }

				}

			});
		};
	})(jQuery);


/**
   * PK Contact Form
*/

	(function($) {
		$.fn.pk_contact_form = function(options) {
			var defaults = {
				sendMail:"php/sendMail.php",
				timer:4000,
				speedIn:400,
				speedOut:400
			};
		
			var settings = $.extend({}, defaults, options);
		
			return this.each(function () {
				var root = $(this);
				var button_send = $("input[type=submit]", root);
				var interval = undefined;
			
				function showResponse(message, type, timer) {

					if(interval) {
						clearInterval(interval);
						$(".pk_message_box", root).remove();
					}

					button_send.before('<div class="pk_message_box"><div class="pk_message_box_content_wrapper"><div class="pk_message_box_content"></div></div></div>');

					(type == "error") ? $(".pk_message_box", root).addClass("pk_error_box") : $(".pk_message_box", root).addClass("pk_success_box");

					$(".pk_message_box_content", root).html("<p>" + message + "</p>");
					$(".pk_message_box_content", root).css({ "padding-top" : "5px", "padding-bottom" : "5px" });
					$(".pk_message_box_content_wrapper", root).css({ "background-position" : "9px 2px" });
					$(".pk_message_box", root).css({ "display" : "none", "margin-bottom" : "10px"});
					$(".pk_message_box", root).fadeIn(settings.speedIn, function() {
						interval = setInterval(hideResponse, timer);
					});

				}
			
				function hideResponse() {

					clearInterval(interval);
					$(".pk_message_box", root).fadeOut(settings.speedOut, function() {
						$(".pk_message_box", root).remove();
					});

				}
			
				root.submit(function() {

					$.ajax({
						type: "POST",
						url: settings.sendMail,
						data: $(this).serialize(),
						success: function(output) {
							root.find(".pk_form_success, .pk_form_error").remove();
							root.append(output).children(".pk_form_success, .pk_form_error").hide();

							if($("p", root).attr('class') == 'pk_form_success') {
								$("input[type=text], input[type=email], textarea", root).val('');
								showResponse($(".pk_form_success", root).text(), "success", settings.timer * 2);
							} else {
								showResponse($(".pk_form_error", root).text(), "error", settings.timer);
							}
						}

					});

					return false;
				});
			});
		}
	})(jQuery);


/**
   * PK Fix Pixels
*/

	function pkFixPixels() {
		
		if((jQuery.browser.msie && jQuery.browser.version >= 9) || jQuery.browser.webkit == true) {
			jQuery("input[type=submit], button").css("padding-bottom", "0px");
		}
		
	}


/**
* hoverIntent is similar to jQuery's built-in "hover" function except that
* instead of firing the onMouseOver event immediately, hoverIntent checks
* to see if the user's mouse has slowed down (beneath the sensitivity
* threshold) before firing the onMouseOver event.
* 
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+
* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
* 
* hoverIntent is currently available for use in all personal or commercial 
* projects under both MIT and GPL licenses. This means that you can choose 
* the license that best suits your project, and use it accordingly.
* 
* // basic usage (just like .hover) receives onMouseOver and onMouseOut functions
* $("ul li").hoverIntent( showNav , hideNav );
* 
* // advanced usage receives configuration object only
* $("ul li").hoverIntent({
*	sensitivity: 7, // number = sensitivity threshold (must be 1 or higher)
*	interval: 100,   // number = milliseconds of polling interval
*	over: showNav,  // function = onMouseOver callback (required)
*	timeout: 0,   // number = milliseconds delay before onMouseOut function call
*	out: hideNav    // function = onMouseOut callback (required)
* });
* 
* @param  f  onMouseOver function || An object with configuration options
* @param  g  onMouseOut function  || Nothing (use configuration options object)
* @author    Brian Cherne <brian@cherne.net>
*/
	(function($) {
		$.fn.hoverIntent = function(f,g) {
			var cfg = {
				sensitivity: 7,
				interval: 100,
				timeout: 200
			};
			cfg = $.extend(cfg, g ? { over: f, out: g } : f );

			var cX, cY, pX, pY;
			var track = function(ev) {
				cX = ev.pageX;
				cY = ev.pageY;
			};

			var compare = function(ev,ob) {
				ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
				if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) {
					$(ob).unbind("mousemove",track);
					ob.hoverIntent_s = 1;
					return cfg.over.apply(ob,[ev]);
				} else {
					pX = cX; pY = cY;
					ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval );
				}
			};

			var delay = function(ev,ob) {
				ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
				ob.hoverIntent_s = 0;
				return cfg.out.apply(ob,[ev]);
			};

			var handleHover = function(e) {
				var p = (e.type == "mouseover" ? e.fromElement : e.toElement) || e.relatedTarget;
				while ( p && p != this ) { try { p = p.parentNode; } catch(e) { p = this; } }
				if ( p == this ) { return false; }

				var ev = jQuery.extend({},e);
				var ob = this;

				if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); }

				if (e.type == "mouseover") {
					pX = ev.pageX; pY = ev.pageY;
					$(ob).bind("mousemove",track);
					if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );}
				} else {
					$(ob).unbind("mousemove",track);
					if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );}
				}
			};

			return this.mouseover(handleHover).mouseout(handleHover);
		};
	})(jQuery);


/**
 * jQuery Plugin to obtain touch gestures from iPhone, iPod Touch and iPad, should also work with Android mobile phones (not tested yet!)
 * Common usage: wipe images (left and right to show the previous or next image)
 * 
 * @author Andreas Waltl, netCU Internetagentur (http://www.netcu.de)
 * @version 1.1.1 (9th December 2010) - fix bug (older IE's had problems)
 * @version 1.1 (1st September 2010) - support wipe up and wipe down
 * @version 1.0 (15th July 2010)
 */
(function($) { 
   $.fn.touchwipe = function(settings) {
     var config = {
    		min_move_x: 20,
    		min_move_y: 20,
 			wipeLeft: function() { },
 			wipeRight: function() { },
 			wipeUp: function() { },
 			wipeDown: function() { },
			preventDefaultEvents: true
	 };
     
     if (settings) $.extend(config, settings);
 
     this.each(function() {
    	 var startX;
    	 var startY;
		 var isMoving = false;

    	 function cancelTouch() {
    		 this.removeEventListener('touchmove', onTouchMove);
    		 startX = null;
    		 isMoving = false;
    	 }	
    	 
    	 function onTouchMove(e) {
    		 if(config.preventDefaultEvents) {
    			 e.preventDefault();
    		 }
    		 if(isMoving) {
	    		 var x = e.touches[0].pageX;
	    		 var y = e.touches[0].pageY;
	    		 var dx = startX - x;
	    		 var dy = startY - y;
	    		 if(Math.abs(dx) >= config.min_move_x) {
	    			cancelTouch();
	    			if(dx > 0) {
	    				config.wipeLeft();
	    			}
	    			else {
	    				config.wipeRight();
	    			}
	    		 }
	    		 else if(Math.abs(dy) >= config.min_move_y) {
		    			cancelTouch();
		    			if(dy > 0) {
		    				config.wipeDown();
		    			}
		    			else {
		    				config.wipeUp();
		    			}
		    		 }
    		 }
    	 }
    	 
    	 function onTouchStart(e)
    	 {
    		 if (e.touches.length == 1) {
    			 startX = e.touches[0].pageX;
    			 startY = e.touches[0].pageY;
    			 isMoving = true;
    			 this.addEventListener('touchmove', onTouchMove, false);
    		 }
    	 }    	 
    	 if ('ontouchstart' in document.documentElement) {
    		 this.addEventListener('touchstart', onTouchStart, false);
    	 }
     });
 
     return this;
   };
 
 })(jQuery);


/*
Supersized - Fullscreen Slideshow jQuery Plugin
Version 3.0 - Core
By Sam Dunn (www.buildinternet.com // www.onemightyroar.com)
Version: supersized.3.0.js
Website: www.buildinternet.com/project/supersized
*/

(function($) {
	//Resize image on ready or resize
	$.fn.supersized = function() {
		var options = $.extend($.fn.supersized.defaults, $.fn.supersized.options);
		$.currentSlide = 0;
		
		//Set current image
		if(options.showbackground == true) {
			$("<img/>").attr("src", options.slides[$.currentSlide].image).appendTo("#supersized");
		}
		
		$(window).bind("load", function() {
			
			$('#loading').hide();
			$('#supersized').fadeIn('fast');	
			$('#supersized').resizenow();
			
		});
				
		$(document).ready(function() {
			$('#supersized').resizenow(); 
		});

		$(window).bind("resize", function() {
    		$('#supersized').resizenow(); 
		});
		
		$('#supersized').hide();
	};
	
	//Adjust image size
	$.fn.resizenow = function() {
		var t = $(this);
		var options = $.extend($.fn.supersized.defaults, $.fn.supersized.options);
		
		if(options.fullbackground == false) {
			$('#pk_background_wrapper').css({ "top" : "40px", "height" : $(window).height() - 80 + "px" });
		}

	  	return t.each(function() {
	  		
			//Define image ratio
			var ratio = options.startheight/options.startwidth;
			
			//Gather browser and current image size
			var imagewidth = t.width();
			var imageheight = t.height();
			var browserwidth = $(window).width();
			var browserheight = $(window).height();
			var offset;

			//Resize image to proper ratio
			if ((browserheight/browserwidth) > ratio) {
				
			    t.height(browserheight);
			    t.width(browserheight / ratio);
			    t.children().height(browserheight);
			    t.children().width(browserheight / ratio);
			} else {
				
			    t.width(browserwidth);
			    t.height(browserwidth * ratio);
			    t.children().width(browserwidth);
			    t.children().height(browserwidth * ratio);
			    
			}
			
			if (options.vertical_center == 1) {
				t.children().css('left', (browserwidth - t.width())/2);
				t.children().css('top', (browserheight - t.height())/2);
			}
			
			return false;
		});
	};
		
	$.fn.supersized.defaults = { 
			startwidth: 4,  
			startheight: 3,
			vertical_center: 1,
			showbackground:true,
			fullbackground:false
	};
	
})(jQuery);

