/* panorama360 - plugin for jQuery
 * Copyright (c) 2011 Minimalistic Studio (http://minimalisticstudio.com/)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 * Thanks to: http://www.openstudio.fr for the initial idea.
 * Version: 1.0
 */
 (function(a){a.fn.panorama360=function(c){this.each(function(){var f={start_position:0,image_width:0,image_height:0,mouse_wheel_multiplier:50,drag_factor:20,bind_resize:true};if(c){a.extend(f,c)}var l=a(this);var i=l.children(".panorama-container");var o=i.children("img:first");if(f.image_width<=0&&f.image_height<=0){f.image_width=parseInt(o.data("width"));f.image_height=parseInt(o.data("height"));if(!(f.image_width)||!(f.image_height)){return}}var h=f.image_height/f.image_width;var g=parseInt(l.height());var j=parseInt(g/h);var k=o.attr("usemap");var p;var n=false;var m=0;o.removeAttr("usemap").css("left",0).clone().css("left",j+"px").insertAfter(o);i.css({"margin-left":"-"+f.start_position+"px",width:(j*2)+"px",height:(g)+"px"});l.mousedown(function(q){if(!n){n=true;m=q.clientX}a(this).addClass("grab");q.preventDefault();return false}).mouseup(function(){n=false;m=0;a(this).removeClass("grab");return false}).mousemove(function(q){if(!n){return false}var r=-parseInt((m-q.clientX)/f.drag_factor);if((r>10)||(r<10)){b(i,j,r)}return false}).bind("mousewheel",function(q,r){delta=Math.ceil(Math.sqrt(Math.abs(r))),delta=r<0?-delta:delta;b(i,j,delta*f.mouse_wheel_multiplier);return false}).bind("contextmenu",d);if(k){a("map[name="+k+"]").children("area").each(function(){switch(a(this).attr("shape").toLowerCase()){case"rect":var q=a(this).attr("coords").split(",");$area1=a("<a class='area' href='"+a(this).attr("href")+"' title='"+a(this).attr("alt")+"'</a>");i.append($area1.data("stitch",1).data("coords",q));i.append($area1.clone().data("stitch",2).data("coords",q));break}});a("map[name="+k+"]").remove();p=i.children(".area");p.mouseup(d).mousemove(d).mousedown(d);e(p,f.image_height,g,j)}if(f.bind_resize){a(window).resize(function(){g=parseInt(l.height());j=parseInt(g/h);i.css({width:(j*2)+"px",height:(g)+"px"});o.css("left",0).next().css("left",j+"px");if(k){e(p,f.image_height,g,j)}})}});function d(f){f.preventDefault();return false}function b(i,f,h){var g=parseInt(i.css("marginLeft"))+h;if(g>0){g=-f}if(g<-f){g=0}i.css("marginLeft",g+"px")}function e(g,f,j,h){var i=j/f;g.each(function(){area_coord=a(this).data("coords");stitch=a(this).data("stitch");switch(stitch){case 1:a(this).css({left:(area_coord[0]*i)+"px",top:(area_coord[1]*i)+"px",width:((area_coord[2]-area_coord[0])*i)+"px",height:((area_coord[3]-area_coord[1])*i)+"px",});break;case 2:a(this).css({left:(h+parseInt(area_coord[0])*i)+"px",top:(area_coord[1]*i)+"px",width:((area_coord[2]-area_coord[0])*i)+"px",height:((area_coord[3]-area_coord[1])*i)+"px",});break}})}}})(jQuery);
