﻿//minify code here http://www.minifyjavascript.com/

/*	SWFObject v2.2 <http://code.google.com/p/swfobject/> 
is released under the MIT License <http://www.opensource.org/licenses/mit-license.php> 
*/
var swfobject = function () { var D = "undefined", r = "object", S = "Shockwave Flash", W = "ShockwaveFlash.ShockwaveFlash", q = "application/x-shockwave-flash", R = "SWFObjectExprInst", x = "onreadystatechange", O = window, j = document, t = navigator, T = false, U = [h], o = [], N = [], I = [], l, Q, E, B, J = false, a = false, n, G, m = true, M = function () { var aa = typeof j.getElementById != D && typeof j.getElementsByTagName != D && typeof j.createElement != D, ah = t.userAgent.toLowerCase(), Y = t.platform.toLowerCase(), ae = Y ? /win/.test(Y) : /win/.test(ah), ac = Y ? /mac/.test(Y) : /mac/.test(ah), af = /webkit/.test(ah) ? parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, X = ! +"\v1", ag = [0, 0, 0], ab = null; if (typeof t.plugins != D && typeof t.plugins[S] == r) { ab = t.plugins[S].description; if (ab && !(typeof t.mimeTypes != D && t.mimeTypes[q] && !t.mimeTypes[q].enabledPlugin)) { T = true; X = false; ab = ab.replace(/^.*\s+(\S+\s+\S+$)/, "$1"); ag[0] = parseInt(ab.replace(/^(.*)\..*$/, "$1"), 10); ag[1] = parseInt(ab.replace(/^.*\.(.*)\s.*$/, "$1"), 10); ag[2] = /[a-zA-Z]/.test(ab) ? parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0 } } else { if (typeof O.ActiveXObject != D) { try { var ad = new ActiveXObject(W); if (ad) { ab = ad.GetVariable("$version"); if (ab) { X = true; ab = ab.split(" ")[1].split(","); ag = [parseInt(ab[0], 10), parseInt(ab[1], 10), parseInt(ab[2], 10)] } } } catch (Z) { } } } return { w3: aa, pv: ag, wk: af, ie: X, win: ae, mac: ac} } (), k = function () { if (!M.w3) { return } if ((typeof j.readyState != D && j.readyState == "complete") || (typeof j.readyState == D && (j.getElementsByTagName("body")[0] || j.body))) { f() } if (!J) { if (typeof j.addEventListener != D) { j.addEventListener("DOMContentLoaded", f, false) } if (M.ie && M.win) { j.attachEvent(x, function () { if (j.readyState == "complete") { j.detachEvent(x, arguments.callee); f() } }); if (O == top) { (function () { if (J) { return } try { j.documentElement.doScroll("left") } catch (X) { setTimeout(arguments.callee, 0); return } f() })() } } if (M.wk) { (function () { if (J) { return } if (!/loaded|complete/.test(j.readyState)) { setTimeout(arguments.callee, 0); return } f() })() } s(f) } } (); function f() { if (J) { return } try { var Z = j.getElementsByTagName("body")[0].appendChild(C("span")); Z.parentNode.removeChild(Z) } catch (aa) { return } J = true; var X = U.length; for (var Y = 0; Y < X; Y++) { U[Y]() } } function K(X) { if (J) { X() } else { U[U.length] = X } } function s(Y) { if (typeof O.addEventListener != D) { O.addEventListener("load", Y, false) } else { if (typeof j.addEventListener != D) { j.addEventListener("load", Y, false) } else { if (typeof O.attachEvent != D) { i(O, "onload", Y) } else { if (typeof O.onload == "function") { var X = O.onload; O.onload = function () { X(); Y() } } else { O.onload = Y } } } } } function h() { if (T) { V() } else { H() } } function V() { var X = j.getElementsByTagName("body")[0]; var aa = C(r); aa.setAttribute("type", q); var Z = X.appendChild(aa); if (Z) { var Y = 0; (function () { if (typeof Z.GetVariable != D) { var ab = Z.GetVariable("$version"); if (ab) { ab = ab.split(" ")[1].split(","); M.pv = [parseInt(ab[0], 10), parseInt(ab[1], 10), parseInt(ab[2], 10)] } } else { if (Y < 10) { Y++; setTimeout(arguments.callee, 10); return } } X.removeChild(aa); Z = null; H() })() } else { H() } } function H() { var ag = o.length; if (ag > 0) { for (var af = 0; af < ag; af++) { var Y = o[af].id; var ab = o[af].callbackFn; var aa = { success: false, id: Y }; if (M.pv[0] > 0) { var ae = c(Y); if (ae) { if (F(o[af].swfVersion) && !(M.wk && M.wk < 312)) { w(Y, true); if (ab) { aa.success = true; aa.ref = z(Y); ab(aa) } } else { if (o[af].expressInstall && A()) { var ai = {}; ai.data = o[af].expressInstall; ai.width = ae.getAttribute("width") || "0"; ai.height = ae.getAttribute("height") || "0"; if (ae.getAttribute("class")) { ai.styleclass = ae.getAttribute("class") } if (ae.getAttribute("align")) { ai.align = ae.getAttribute("align") } var ah = {}; var X = ae.getElementsByTagName("param"); var ac = X.length; for (var ad = 0; ad < ac; ad++) { if (X[ad].getAttribute("name").toLowerCase() != "movie") { ah[X[ad].getAttribute("name")] = X[ad].getAttribute("value") } } P(ai, ah, Y, ab) } else { p(ae); if (ab) { ab(aa) } } } } } else { w(Y, true); if (ab) { var Z = z(Y); if (Z && typeof Z.SetVariable != D) { aa.success = true; aa.ref = Z } ab(aa) } } } } } function z(aa) { var X = null; var Y = c(aa); if (Y && Y.nodeName == "OBJECT") { if (typeof Y.SetVariable != D) { X = Y } else { var Z = Y.getElementsByTagName(r)[0]; if (Z) { X = Z } } } return X } function A() { return !a && F("6.0.65") && (M.win || M.mac) && !(M.wk && M.wk < 312) } function P(aa, ab, X, Z) { a = true; E = Z || null; B = { success: false, id: X }; var ae = c(X); if (ae) { if (ae.nodeName == "OBJECT") { l = g(ae); Q = null } else { l = ae; Q = X } aa.id = R; if (typeof aa.width == D || (!/%$/.test(aa.width) && parseInt(aa.width, 10) < 310)) { aa.width = "310" } if (typeof aa.height == D || (!/%$/.test(aa.height) && parseInt(aa.height, 10) < 137)) { aa.height = "137" } j.title = j.title.slice(0, 47) + " - Flash Player Installation"; var ad = M.ie && M.win ? "ActiveX" : "PlugIn", ac = "MMredirectURL=" + O.location.toString().replace(/&/g, "%26") + "&MMplayerType=" + ad + "&MMdoctitle=" + j.title; if (typeof ab.flashvars != D) { ab.flashvars += "&" + ac } else { ab.flashvars = ac } if (M.ie && M.win && ae.readyState != 4) { var Y = C("div"); X += "SWFObjectNew"; Y.setAttribute("id", X); ae.parentNode.insertBefore(Y, ae); ae.style.display = "none"; (function () { if (ae.readyState == 4) { ae.parentNode.removeChild(ae) } else { setTimeout(arguments.callee, 10) } })() } u(aa, ab, X) } } function p(Y) { if (M.ie && M.win && Y.readyState != 4) { var X = C("div"); Y.parentNode.insertBefore(X, Y); X.parentNode.replaceChild(g(Y), X); Y.style.display = "none"; (function () { if (Y.readyState == 4) { Y.parentNode.removeChild(Y) } else { setTimeout(arguments.callee, 10) } })() } else { Y.parentNode.replaceChild(g(Y), Y) } } function g(ab) { var aa = C("div"); if (M.win && M.ie) { aa.innerHTML = ab.innerHTML } else { var Y = ab.getElementsByTagName(r)[0]; if (Y) { var ad = Y.childNodes; if (ad) { var X = ad.length; for (var Z = 0; Z < X; Z++) { if (!(ad[Z].nodeType == 1 && ad[Z].nodeName == "PARAM") && !(ad[Z].nodeType == 8)) { aa.appendChild(ad[Z].cloneNode(true)) } } } } } return aa } function u(ai, ag, Y) { var X, aa = c(Y); if (M.wk && M.wk < 312) { return X } if (aa) { if (typeof ai.id == D) { ai.id = Y } if (M.ie && M.win) { var ah = ""; for (var ae in ai) { if (ai[ae] != Object.prototype[ae]) { if (ae.toLowerCase() == "data") { ag.movie = ai[ae] } else { if (ae.toLowerCase() == "styleclass") { ah += ' class="' + ai[ae] + '"' } else { if (ae.toLowerCase() != "classid") { ah += " " + ae + '="' + ai[ae] + '"' } } } } } var af = ""; for (var ad in ag) { if (ag[ad] != Object.prototype[ad]) { af += '<param name="' + ad + '" value="' + ag[ad] + '" />' } } aa.outerHTML = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"' + ah + ">" + af + "</object>"; N[N.length] = ai.id; X = c(ai.id) } else { var Z = C(r); Z.setAttribute("type", q); for (var ac in ai) { if (ai[ac] != Object.prototype[ac]) { if (ac.toLowerCase() == "styleclass") { Z.setAttribute("class", ai[ac]) } else { if (ac.toLowerCase() != "classid") { Z.setAttribute(ac, ai[ac]) } } } } for (var ab in ag) { if (ag[ab] != Object.prototype[ab] && ab.toLowerCase() != "movie") { e(Z, ab, ag[ab]) } } aa.parentNode.replaceChild(Z, aa); X = Z } } return X } function e(Z, X, Y) { var aa = C("param"); aa.setAttribute("name", X); aa.setAttribute("value", Y); Z.appendChild(aa) } function y(Y) { var X = c(Y); if (X && X.nodeName == "OBJECT") { if (M.ie && M.win) { X.style.display = "none"; (function () { if (X.readyState == 4) { b(Y) } else { setTimeout(arguments.callee, 10) } })() } else { X.parentNode.removeChild(X) } } } function b(Z) { var Y = c(Z); if (Y) { for (var X in Y) { if (typeof Y[X] == "function") { Y[X] = null } } Y.parentNode.removeChild(Y) } } function c(Z) { var X = null; try { X = j.getElementById(Z) } catch (Y) { } return X } function C(X) { return j.createElement(X) } function i(Z, X, Y) { Z.attachEvent(X, Y); I[I.length] = [Z, X, Y] } function F(Z) { var Y = M.pv, X = Z.split("."); X[0] = parseInt(X[0], 10); X[1] = parseInt(X[1], 10) || 0; X[2] = parseInt(X[2], 10) || 0; return (Y[0] > X[0] || (Y[0] == X[0] && Y[1] > X[1]) || (Y[0] == X[0] && Y[1] == X[1] && Y[2] >= X[2])) ? true : false } function v(ac, Y, ad, ab) { if (M.ie && M.mac) { return } var aa = j.getElementsByTagName("head")[0]; if (!aa) { return } var X = (ad && typeof ad == "string") ? ad : "screen"; if (ab) { n = null; G = null } if (!n || G != X) { var Z = C("style"); Z.setAttribute("type", "text/css"); Z.setAttribute("media", X); n = aa.appendChild(Z); if (M.ie && M.win && typeof j.styleSheets != D && j.styleSheets.length > 0) { n = j.styleSheets[j.styleSheets.length - 1] } G = X } if (M.ie && M.win) { if (n && typeof n.addRule == r) { n.addRule(ac, Y) } } else { if (n && typeof j.createTextNode != D) { n.appendChild(j.createTextNode(ac + " {" + Y + "}")) } } } function w(Z, X) { if (!m) { return } var Y = X ? "visible" : "hidden"; if (J && c(Z)) { c(Z).style.visibility = Y } else { v("#" + Z, "visibility:" + Y) } } function L(Y) { var Z = /[\\\"<>\.;]/; var X = Z.exec(Y) != null; return X && typeof encodeURIComponent != D ? encodeURIComponent(Y) : Y } var d = function () { if (M.ie && M.win) { window.attachEvent("onunload", function () { var ac = I.length; for (var ab = 0; ab < ac; ab++) { I[ab][0].detachEvent(I[ab][1], I[ab][2]) } var Z = N.length; for (var aa = 0; aa < Z; aa++) { y(N[aa]) } for (var Y in M) { M[Y] = null } M = null; for (var X in swfobject) { swfobject[X] = null } swfobject = null }) } } (); return { registerObject: function (ab, X, aa, Z) { if (M.w3 && ab && X) { var Y = {}; Y.id = ab; Y.swfVersion = X; Y.expressInstall = aa; Y.callbackFn = Z; o[o.length] = Y; w(ab, false) } else { if (Z) { Z({ success: false, id: ab }) } } }, getObjectById: function (X) { if (M.w3) { return z(X) } }, embedSWF: function (ab, ah, ae, ag, Y, aa, Z, ad, af, ac) { var X = { success: false, id: ah }; if (M.w3 && !(M.wk && M.wk < 312) && ab && ah && ae && ag && Y) { w(ah, false); K(function () { ae += ""; ag += ""; var aj = {}; if (af && typeof af === r) { for (var al in af) { aj[al] = af[al] } } aj.data = ab; aj.width = ae; aj.height = ag; var am = {}; if (ad && typeof ad === r) { for (var ak in ad) { am[ak] = ad[ak] } } if (Z && typeof Z === r) { for (var ai in Z) { if (typeof am.flashvars != D) { am.flashvars += "&" + ai + "=" + Z[ai] } else { am.flashvars = ai + "=" + Z[ai] } } } if (F(Y)) { var an = u(aj, am, ah); if (aj.id == ah) { w(ah, true) } X.success = true; X.ref = an } else { if (aa && A()) { aj.data = aa; P(aj, am, ah, ac); return } else { w(ah, true) } } if (ac) { ac(X) } }) } else { if (ac) { ac(X) } } }, switchOffAutoHideShow: function () { m = false }, ua: M, getFlashPlayerVersion: function () { return { major: M.pv[0], minor: M.pv[1], release: M.pv[2]} }, hasFlashPlayerVersion: F, createSWF: function (Z, Y, X) { if (M.w3) { return u(Z, Y, X) } else { return undefined } }, showExpressInstall: function (Z, aa, X, Y) { if (M.w3 && A()) { P(Z, aa, X, Y) } }, removeSWF: function (X) { if (M.w3) { y(X) } }, createCSS: function (aa, Z, Y, X) { if (M.w3) { v(aa, Z, Y, X) } }, addDomLoadEvent: K, addLoadEvent: s, getQueryParamValue: function (aa) { var Z = j.location.search || j.location.hash; if (Z) { if (/\?/.test(Z)) { Z = Z.split("?")[1] } if (aa == null) { return L(Z) } var Y = Z.split("&"); for (var X = 0; X < Y.length; X++) { if (Y[X].substring(0, Y[X].indexOf("=")) == aa) { return L(Y[X].substring((Y[X].indexOf("=") + 1))) } } } return "" }, expressInstallCallback: function () { if (a) { var X = c(R); if (X && l) { X.parentNode.replaceChild(l, X); if (Q) { w(Q, true); if (M.ie && M.win) { l.style.display = "block" } } if (E) { E(B) } } a = false } } } } ();

// HTML Truncator for jQuery by Henrik Nyh <http://henrik.nyh.se> 2008-02-28. Free to modify and redistribute with credit.
(function ($) { var trailing_whitespace = true; $.fn.truncate = function (options) { var opts = $.extend({}, $.fn.truncate.defaults, options); $(this).each(function () { var content_length = $.trim(squeeze($(this).text())).length; if (content_length <= opts.max_length) return; var actual_max_length = opts.max_length - opts.more.length; -4; var truncated_node = recursivelyTruncate(this, actual_max_length); var full_node = $(this).hide(); truncated_node.insertAfter(full_node); findNodeForMore(truncated_node).append('... <a href="#show more content">' + opts.more + '</a>'); findNodeForLess(full_node).append('&nbsp;<a href="#show less content">' + opts.less + '</a>'); truncated_node.find('a:last').click(function () { truncated_node.hide(); full_node.show(); return false }); full_node.find('a:last').click(function () { truncated_node.show(); full_node.hide(); return false }) }) }; $.fn.truncate.defaults = { max_length: 100, more: '…more', less: 'less' }; function recursivelyTruncate(node, max_length) { return (node.nodeType == 3) ? truncateText(node, max_length) : truncateNode(node, max_length) }; function truncateNode(node, max_length) { var node = $(node); var new_node = node.clone().empty(); var truncatedChild; node.contents().each(function () { var remaining_length = max_length - new_node.text().length; if (remaining_length == 0) return; truncatedChild = recursivelyTruncate(this, remaining_length); if (truncatedChild) new_node.append(truncatedChild) }); return new_node }; function truncateText(node, max_length) { var text = squeeze(node.data); if (trailing_whitespace) text = text.replace(/^ /, ''); trailing_whitespace = !!text.match(/ $/); var text = text.slice(0, max_length); text = $('<div/>').text(text).html(); return text }; function squeeze(string) { return string.replace(/\s+/g, ' ') }; function findNodeForMore(node) { var $node = $(node); var last_child = $node.children(":last"); if (!last_child) return node; var display = last_child.css('display'); if (!display || display == 'inline') return $node; return findNodeForMore(last_child) }; function findNodeForLess(node) { var $node = $(node); var last_child = $node.children(":last"); if (last_child && last_child.is('p')) return last_child; return node } })(jQuery);

/**
 * jQuery.ScrollTo - Easy element scrolling using jQuery.
 * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
 * Dual licensed under MIT and GPL.
 * Date: 5/25/2009
 * @author Ariel Flesler
 * @version 1.4.2
 *
 * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
 */
(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);

//mousewheel
/*! Copyright (c) 2009 Brandon Aaron (http://brandonaaron.net)
 * 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://adomas.org/javascript-mouse-wheel/ for some pointers.
 * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
 *
 * Version: 3.0.2
 * 
 * Requires: 1.2.2+
 */
(function(b){function d(a){var f=[].slice.call(arguments,1),e=0;a=b.event.fix(a||window.event);a.type="mousewheel";if(a.wheelDelta)e=a.wheelDelta/120;if(a.detail)e=-a.detail/3;f.unshift(a,e);return b.event.handle.apply(this,f)}var c=["DOMMouseScroll","mousewheel"];b.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=c.length;a;)this.addEventListener(c[--a],d,false);else this.onmousewheel=d},teardown:function(){if(this.removeEventListener)for(var a=c.length;a;)this.removeEventListener(c[--a],d,false);else this.onmousewheel=null}};b.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery);

 /* jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
  * Copyright © 2008 George McGinley Smith
 * All rights reserved.
 */
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('h.i[\'1a\']=h.i[\'z\'];h.O(h.i,{y:\'D\',z:9(x,t,b,c,d){6 h.i[h.i.y](x,t,b,c,d)},17:9(x,t,b,c,d){6 c*(t/=d)*t+b},D:9(x,t,b,c,d){6-c*(t/=d)*(t-2)+b},13:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t+b;6-c/2*((--t)*(t-2)-1)+b},X:9(x,t,b,c,d){6 c*(t/=d)*t*t+b},U:9(x,t,b,c,d){6 c*((t=t/d-1)*t*t+1)+b},R:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t*t+b;6 c/2*((t-=2)*t*t+2)+b},N:9(x,t,b,c,d){6 c*(t/=d)*t*t*t+b},M:9(x,t,b,c,d){6-c*((t=t/d-1)*t*t*t-1)+b},L:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t*t*t+b;6-c/2*((t-=2)*t*t*t-2)+b},K:9(x,t,b,c,d){6 c*(t/=d)*t*t*t*t+b},J:9(x,t,b,c,d){6 c*((t=t/d-1)*t*t*t*t+1)+b},I:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t*t*t*t+b;6 c/2*((t-=2)*t*t*t*t+2)+b},G:9(x,t,b,c,d){6-c*8.C(t/d*(8.g/2))+c+b},15:9(x,t,b,c,d){6 c*8.n(t/d*(8.g/2))+b},12:9(x,t,b,c,d){6-c/2*(8.C(8.g*t/d)-1)+b},Z:9(x,t,b,c,d){6(t==0)?b:c*8.j(2,10*(t/d-1))+b},Y:9(x,t,b,c,d){6(t==d)?b+c:c*(-8.j(2,-10*t/d)+1)+b},W:9(x,t,b,c,d){e(t==0)6 b;e(t==d)6 b+c;e((t/=d/2)<1)6 c/2*8.j(2,10*(t-1))+b;6 c/2*(-8.j(2,-10*--t)+2)+b},V:9(x,t,b,c,d){6-c*(8.o(1-(t/=d)*t)-1)+b},S:9(x,t,b,c,d){6 c*8.o(1-(t=t/d-1)*t)+b},Q:9(x,t,b,c,d){e((t/=d/2)<1)6-c/2*(8.o(1-t*t)-1)+b;6 c/2*(8.o(1-(t-=2)*t)+1)+b},P:9(x,t,b,c,d){f s=1.l;f p=0;f a=c;e(t==0)6 b;e((t/=d)==1)6 b+c;e(!p)p=d*.3;e(a<8.w(c)){a=c;f s=p/4}m f s=p/(2*8.g)*8.r(c/a);6-(a*8.j(2,10*(t-=1))*8.n((t*d-s)*(2*8.g)/p))+b},H:9(x,t,b,c,d){f s=1.l;f p=0;f a=c;e(t==0)6 b;e((t/=d)==1)6 b+c;e(!p)p=d*.3;e(a<8.w(c)){a=c;f s=p/4}m f s=p/(2*8.g)*8.r(c/a);6 a*8.j(2,-10*t)*8.n((t*d-s)*(2*8.g)/p)+c+b},T:9(x,t,b,c,d){f s=1.l;f p=0;f a=c;e(t==0)6 b;e((t/=d/2)==2)6 b+c;e(!p)p=d*(.3*1.5);e(a<8.w(c)){a=c;f s=p/4}m f s=p/(2*8.g)*8.r(c/a);e(t<1)6-.5*(a*8.j(2,10*(t-=1))*8.n((t*d-s)*(2*8.g)/p))+b;6 a*8.j(2,-10*(t-=1))*8.n((t*d-s)*(2*8.g)/p)*.5+c+b},F:9(x,t,b,c,d,s){e(s==u)s=1.l;6 c*(t/=d)*t*((s+1)*t-s)+b},E:9(x,t,b,c,d,s){e(s==u)s=1.l;6 c*((t=t/d-1)*t*((s+1)*t+s)+1)+b},16:9(x,t,b,c,d,s){e(s==u)s=1.l;e((t/=d/2)<1)6 c/2*(t*t*(((s*=(1.B))+1)*t-s))+b;6 c/2*((t-=2)*t*(((s*=(1.B))+1)*t+s)+2)+b},A:9(x,t,b,c,d){6 c-h.i.v(x,d-t,0,c,d)+b},v:9(x,t,b,c,d){e((t/=d)<(1/2.k)){6 c*(7.q*t*t)+b}m e(t<(2/2.k)){6 c*(7.q*(t-=(1.5/2.k))*t+.k)+b}m e(t<(2.5/2.k)){6 c*(7.q*(t-=(2.14/2.k))*t+.11)+b}m{6 c*(7.q*(t-=(2.18/2.k))*t+.19)+b}},1b:9(x,t,b,c,d){e(t<d/2)6 h.i.A(x,t*2,0,c,d)*.5+b;6 h.i.v(x,t*2-d,0,c,d)*.5+c*.5+b}});',62,74,'||||||return||Math|function|||||if|var|PI|jQuery|easing|pow|75|70158|else|sin|sqrt||5625|asin|||undefined|easeOutBounce|abs||def|swing|easeInBounce|525|cos|easeOutQuad|easeOutBack|easeInBack|easeInSine|easeOutElastic|easeInOutQuint|easeOutQuint|easeInQuint|easeInOutQuart|easeOutQuart|easeInQuart|extend|easeInElastic|easeInOutCirc|easeInOutCubic|easeOutCirc|easeInOutElastic|easeOutCubic|easeInCirc|easeInOutExpo|easeInCubic|easeOutExpo|easeInExpo||9375|easeInOutSine|easeInOutQuad|25|easeOutSine|easeInOutBack|easeInQuad|625|984375|jswing|easeInOutBounce'.split('|'),0,{}))

//library
function swapImage(imgId) { $("#" + imgId).hover(function () { this.src = this.src.replace("_off", "_on") }, function () { this.src = this.src.replace("_on", "_off") }) }; function cDbl(tNumber) { var nReturn; tNumber = tNumber.toString(); tNumber = tNumber.replace(/\,/g, ""); tNumber = tNumber.replace(/\$/g, ""); nNumber = parseFloat(tNumber); if (isNaN(nNumber)) nReturn = 0; else nReturn = nNumber; return nReturn }; function zFormat(ptData, ptType) { var tReturn; if (ptType == "$") { ptData = cDbl(ptData); tReturn = formatNumber(ptData, "#,##0.00") } else if (ptType == "I") { ptData = cDbl(ptData); tReturn = formatNumber(ptData, "#,##0") } else if (ptType == "C") { ptData = cDbl(ptData); tReturn = formatNumber(ptData, "0") }; return (tReturn) }; var separator = ","; var decpoint = "."; var percent = "%"; var currency = "$"; function formatNumber(number, format, print) { if (print) document.write("formatNumber(" + number + ", \"" + format + "\")<br>"); if (number - 0 != number) return null; var useSeparator = format.indexOf(separator) != -1; var usePercent = format.indexOf(percent) != -1; var useCurrency = format.indexOf(currency) != -1; var isNegative = (number < 0); number = Math.abs(number); if (usePercent) number *= 100; format = strip(format, separator + percent + currency); number = "" + number; var dec = number.indexOf(decpoint) != -1; var nleftEnd = (dec) ? number.substring(0, number.indexOf(".")) : number; var nrightEnd = (dec) ? number.substring(number.indexOf(".") + 1) : ""; dec = format.indexOf(decpoint) != -1; var sleftEnd = (dec) ? format.substring(0, format.indexOf(".")) : format; var srightEnd = (dec) ? format.substring(format.indexOf(".") + 1) : ""; if (srightEnd.length < nrightEnd.length) { var nextChar = nrightEnd.charAt(srightEnd.length) - 0; nrightEnd = nrightEnd.substring(0, srightEnd.length); if (nextChar >= 5) nrightEnd = "" + ((nrightEnd - 0) + 1); while (srightEnd.length > nrightEnd.length) { nrightEnd = "0" + nrightEnd }; if (srightEnd.length < nrightEnd.length) { nrightEnd = nrightEnd.substring(1); nleftEnd = (nleftEnd - 0) + 1 } } else { for (var i = nrightEnd.length; srightEnd.length > nrightEnd.length; i++) { if (srightEnd.charAt(i) == "0") nrightEnd += "0"; else break } }; sleftEnd = strip(sleftEnd, "#"); while (sleftEnd.length > nleftEnd.length) { nleftEnd = "0" + nleftEnd }; if (useSeparator) nleftEnd = separate(nleftEnd, separator); var output = nleftEnd + ((nrightEnd != "") ? "." + nrightEnd : ""); output = ((useCurrency) ? currency : "") + output + ((usePercent) ? percent : ""); if (isNegative) { output = (useCurrency) ? "(" + output + ")" : "-" + output }; return output }; function strip(input, chars) { var output = ""; for (var i = 0; i < input.length; i++) { if (chars.indexOf(input.charAt(i)) == -1) output += input.charAt(i) }; return output }; function separate(input, separator) { input = "" + input; var output = ""; for (var i = 0; i < input.length; i++) { if (i != 0 && (input.length - i) % 3 == 0) output += separator; output += input.charAt(i) }; return output }; function OpenWindow(page, width, height) { OpenWin = this.open(page, "", "width=" + width + ",height=" + height + ",status=no,toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes") };

//map
function MetroMap() { this.center; this.locations; this.dba; this.mapzoom, this.map; this.infoWindow = new google.maps.InfoWindow(); this.currentMarker = new google.maps.Marker(); var that = this; google.maps.event.addListener(this.infoWindow, 'closeclick', function () { that.map.panTo(that.currentMarker.getPosition()) }) }; MetroMap.prototype.init = function () { var latlng = new google.maps.LatLng(this.center.Latitude, this.center.Longitude); var myOptions = { zoom: this.mapzoom, center: latlng, mapTypeControl: true, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.DROPDOWN_MENU }, navigationControl: true, navigationControlOptions: { style: google.maps.NavigationControlStyle.SMALL }, mapTypeId: google.maps.MapTypeId.TERRAIN }; this.map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); this.setMarkers() }; MetroMap.prototype.setMarkers = function () { for (var i = 0; i < this.locations.length; i++) { var project = this.locations[i]; if (project.Latitude != 0) { var myLatLng = new google.maps.LatLng(project.Latitude, project.Longitude); var pin; var pinshadow; if (project.PinStyle == 'straight') { pin = new google.maps.MarkerImage('/images/mapmarkers/pin_straight.png', new google.maps.Size(13, 26), new google.maps.Point(0, 0), new google.maps.Point(6, 26)); pinshadow = new google.maps.MarkerImage('/images/mapmarkers/pin_straight_shadow.png', new google.maps.Size(24, 15), new google.maps.Point(0, 0), new google.maps.Point(0, 15)) }; if (project.PinStyle == 'left') { pin = new google.maps.MarkerImage('/images/mapmarkers/pin_left.png', new google.maps.Size(17, 25), new google.maps.Point(0, 0), new google.maps.Point(14, 25)); pinshadow = new google.maps.MarkerImage('/images/mapmarkers/pin_left_shadow.png', new google.maps.Size(14, 16), new google.maps.Point(0, 0), new google.maps.Point(0, 16)) }; if (project.PinStyle == 'right') { pin = new google.maps.MarkerImage('/images/mapmarkers/pin_right.png', new google.maps.Size(17, 25), new google.maps.Point(0, 0), new google.maps.Point(0, 25)); pinshadow = new google.maps.MarkerImage('/images/mapmarkers/pin_right_shadow.png', new google.maps.Size(27, 11), new google.maps.Point(0, 0), new google.maps.Point(0, 11)) }; var marker = new google.maps.Marker({ position: myLatLng, map: this.map, icon: pin, shadow: pinshadow, title: project.ProjectName + ' - ' + project.PriceRangeFrom, zIndex: i }); var that = this; var map = this.map; var loc = this.locations; google.maps.event.addListener(marker, 'click', function () { that.infoWindow.setContent(loc[this.zIndex].Info); that.infoWindow.setPosition(this.getPosition()); that.currentMarker = this; that.infoWindow.open(map) }); google.maps.event.addListener(this.map, 'click', function () { that.infoWindow.close() }) } } }; MetroMap.prototype.zoomInToProject = function (projectId) { var that = this; var location = getLocationByProjectId(projectId); var newMapCenter = new google.maps.LatLng(location.Latitude, location.Longitude); if (newMapCenter != '(0, 0)') { this.map.setCenter(newMapCenter); this.map.setZoom(14) }; this.infoWindow.setContent(location.Info); this.infoWindow.setPosition(newMapCenter); this.infoWindow.open(this.map); function getLocationByProjectId(projectId) { for (var i = 0; i < that.locations.length; i++) { if (that.locations[i].ProjectId == projectId) { return that.locations[i] } } } }; MetroMap.prototype.resetMap = function () { var newMapCenter = new google.maps.LatLng(this.center.Latitude, this.center.Longitude); if (newMapCenter != '(0, 0)') { this.map.setCenter(newMapCenter); this.map.setZoom(9) }; this.infoWindow.close() }; function mapZoomInToProject(mapNumber) { MM.zoomInToProject(mapNumber) }; function resetMap() { MM.resetMap() };

//ui
function displayPageMessage() { if ($("#hfPageMessage").val() != '') { $.fancybox($("#hfPageMessage").val(), { 'autoDimensions': false, 'width': 300, 'height': 200 }); $("#hfPageMessage").val('') } };
function displayPageMessage2(message) { $.fancybox(message, { 'autoDimensions': false, 'width': 300, 'height': 200 }); $("#hfPageMessage").val('') };

jQuery.fn.photogallery = function (images) { var scrollindex = 0; var selectedindex = 0; var prevselectedindex = 0; var intervalID; var initSelectedIndex = 0; if (images.length > 0) { var i = 0; $(images).each(function () { $("#photogallery .thumbnails ul").append("<li><a><img src='" + $(this)[0].thumburl + "' /></a></li>"); if ($(this)[0].isbase) { initSelectedIndex = i }; i += 1 }); setSelected('init') } else { $("#photogallery").css("display", "none") }; $("#photogallery .thumbnails ul li").click(function () { var index = $("#photogallery .thumbnails ul li").index(this); selectedindex = index; scrollindex = index; setSelected("=") }); $("#scrollup").click(function () { setSelected("-") }); $("#scrolldown").click(function () { setSelected("+") }); function setSelected(direction) { var galLen = $("#photogallery .thumbnails ul li").length; if (direction == "+") { selectedindex += 1; scrollindex += 1; if (selectedindex >= galLen) { selectedindex = 0; scrollindex = 0 } }; if (direction == "-") { scrollindex -= 1; selectedindex -= 1; if (selectedindex < 0) { selectedindex = galLen - 1; scrollindex = galLen - 1 } }; if (direction == "init") { scrollindex = initSelectedIndex; selectedindex = initSelectedIndex }; $("#photogallery .thumbnails ul li img").eq(prevselectedindex).removeClass("selected"); prevselectedindex = selectedindex; $("#photogallery .mainimage").hide(); $("#photogallery .mainimage").attr("src", images[selectedindex].url); $("#photogallery .caption").text(images[selectedindex].caption); $("#photogallery .mainimage").fadeIn("slow"); $("#photogallery .thumbnails ul li img").eq(selectedindex).addClass("selected"); $("#photogallery .thumbnails ul").scrollTo($("#photogallery .thumbnails ul li").eq(scrollindex), 100); $("#photogallery .mainimageFancybox").attr("href", images[selectedindex].url); $("#photogallery .fbmainimage").remove(); var i = 0; $(images).each(function () { if (selectedindex != i) { $("#photogallery").append("<a class='fbmainimage' href='" + $(this)[0].url + "' rel='fbmainimage'></a>") } i += 1 }) } };

jQuery.fn.SetupPortfolioButtons = function () { return this.each(function () { var portfolioitemid = $(this).attr("portfolioitemid"); var id = $(this).attr("id"); if (portfolioitemid == '') { $(this).attr("src", "/images/portfolio-add.png") } else { $(this).attr("src", "/images/portfolio-remove.png") } $("#" + id).live('click', function () { var id = $(this).attr("id"); var portfolioitemid = $(this).attr("portfolioitemid"); var jobnumber = $(this).attr("jobnumber"); var plannumber = $(this).attr("plannumber"); var priceseriesid = $(this).attr("priceseriesid"); var communityid = $(this).attr("communityid"); if (portfolioitemid == undefined) { portfolioitemid = "" } if (jobnumber == undefined) { jobnumber = "" } if (plannumber == undefined) { plannumber = "" } if (priceseriesid == undefined) { priceseriesid = "" } if (communityid == undefined) { communityid = "" } $.ajax({ type: "POST", url: "/ajax/PortfolioItemUpdate.aspx?portfolioitemId=" + portfolioitemid + "&jobnumber=" + jobnumber + "&plannumber=" + plannumber + "&priceseriesid=" + priceseriesid + "&communityid=" + communityid, dataType: "json", cache: false, success: function (output) { $("#" + id).attr("src", "/images/portfolio-" + output.image + ".png"); if (output.newportfolioitemid != "" && output.newportfolioitemid != "0") { $("#" + id).attr("portfolioitemid", output.newportfolioitemid) } else { $("#" + id).attr("portfolioitemid", "") } displayPageMessage2(output.message) } }) }) }) };

//Portfolio
$(function () {
  $(".portfoliobutton").SetupPortfolioButtons();
  $("#txtPortfolioLoginEmail").focus(function () { var default_value = "Email"; if ($(this).val() == default_value) { $(this).val('') } });
  $("#txtPortfolioLoginEmail").blur(function () { var default_value = "Email"; if ($(this).val() == '') { $(this).val(default_value) } });
  $("#txtPortfolioLoginPasswordPreview").focus(function () { $('#txtPortfolioLoginPasswordPreview').hide(); $('#txtPortfolioLoginPassword').show(); $('#txtPortfolioLoginPassword').focus() });
  $("#txtPortfolioLoginPassword").blur(function () { if ($('#txtPortfolioLoginPassword').val() == '') { $('#txtPortfolioLoginPassword').hide(); $('#txtPortfolioLoginPasswordPreview').show() } });
  $("#btnPortfolioLogin").click(function () { var email = $("#txtPortfolioLoginEmail").val(); var password = $("#txtPortfolioLoginPassword").val(); $.ajax({ type: "POST", url: "/ajax/PortfolioLoginOut.aspx?type=login&email=" + email + "&password=" + password, dataType: "json", cache: false, success: function (output) { if (output.status == "success") { $("#divLogin").hide(); $("#divlogindetails").show(); $("#lblUserName").html(output.username) } else { $("#txtPortfolioLoginPassword").val(""); displayPageMessage2('The email address or password is incorrect. Please try again or use the "Forgot Password" link below. <br /><br /><p class="center"><a href="/portfoliopassword">Forgot Password?</a></p><p class="center"><a href="/portfolioregister">Register</a></p>') } } }) });
});

function portfolioLogout() { $.ajax({ type: "POST", url: "/ajax/PortfolioLoginOut.aspx?type=logout", dataType: "json", cache: false, success: function (output) { if (output.status == "success") { $("#divLogin").show(); $("#divlogindetails").hide(); $("#lblUserName").html(""); $("#txtPortfolioLoginEmail").val(""); $("#txtPortfolioLoginPassword").val(""); $("#txtPortfolioLoginEmail").val("Email"); $("#txtPortfolioLoginPassword").hide(); $("#txtPortfolioLoginPasswordPreview").show() } else { displayPageMessage2("Logout failed. Please try again.") } } }); $(".portfoliobutton").SetupPortfolioButtons() };

//Fix Home Modules Titles
$(function () { var padHomemoduleheader = false; $("h3.homemoduleheader").each(function () { if ($(this).css("height") != "21px") { padHomemoduleheader = true } }); if (padHomemoduleheader == true) { $("h3.homemoduleheader").each(function () { if ($(this).css("height") == "21px") { $(this).css("padding-bottom", "25px") } else if ($(this).css("height") == "42px") { } else { $(this).css("padding-bottom", "10px") } }) } else { $("h3.homemoduleheader").each(function () { $(this).css("padding-bottom", "10px") }); }; });

//Ecosmart menu
$(function () { $("#ecosmartmenulink").mouseover(function () { $("#ecosmartmenu").css("display", "block") }); $("#ecosmartmenu").mouseover(function () { $("#ecosmartmenu").css("display", "block") }).mouseout(function () { $("#ecosmartmenu").css("display", "none") }); $("#ecosmartmenulinkwil").mouseover(function () { $("#ecosmartmenuwil").css("display", "block") }); $("#ecosmartmenuwil").mouseover(function () { $("#ecosmartmenuwil").css("display", "block") }).mouseout(function () { $("#ecosmartmenuwil").css("display", "none") }) });

//phto gallery
$(function () { $("a.galleryimageslink").click(function () { var titleShow = ($(this).attr("showtitle") !== 'false'); var imageList = []; $("galleryimage").each(function () { var pURL = $(this).attr("url"); var pTitle = $(this).attr("title"); var image = { "href": pURL, "title": pTitle }; imageList.push(image) }); $.fancybox(imageList, { "type": "image", "padding": 20, "showImageNumbers": true, "titleShow": titleShow }); }); });

//Promotions
jQuery.fn.SetupPromotions = function () { return this.each(function () { var url = $(this).attr("url"); var onclick = $(this).attr("onclick"); if (url != undefined) { var target = $(this).attr("target"); $(this).wrap("<a href='" + url + "' target='" + target + "' />") }; if (onclick != undefined) { $(this).css("cursor", "pointer") } }) }; $(function () { $(".promotion").SetupPromotions() }); function OpenPromoWindow(page, width, height) { OpenWin = this.open(page, "", "width=" + width + ",height=" + height + ",status=no,toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes"); return false };

//FancyBox
/*
* FancyBox - jQuery Plugin
* Simple and fancy lightbox alternative
*
* Examples and documentation at: http://fancybox.net
* 
* Copyright (c) 2008 - 2010 Janis Skarnelis
*
* Version: 1.3.1 (05/03/2010)
* Requires: jQuery v1.3+
*
* Dual licensed under the MIT and GPL licenses:
*   http://www.opensource.org/licenses/mit-license.php
*   http://www.gnu.org/licenses/gpl.html
*/
(function ($) {
  var tmp, loading, overlay, wrap, outer, inner, close, nav_left, nav_right, selectedIndex = 0, selectedOpts = {}, selectedArray = [], currentIndex = 0, currentOpts = {}, currentArray = [], ajaxLoader = null, imgPreloader = new Image(), imgRegExp = /\.(jpg|gif|png|bmp|jpeg)(.*)?$/i, swfRegExp = /[^\.]\.(swf)\s*$/i, loadingTimer, loadingFrame = 1, start_pos, final_pos, busy = false, shadow = 20, fx = $.extend($('<div/>')[0], { prop: 0 }), titleh = 0, isIE6 = !$.support.opacity && !window.XMLHttpRequest, fancybox_abort = function () {
    loading.hide(); imgPreloader.onerror = imgPreloader.onload = null; if (ajaxLoader) { ajaxLoader.abort(); }
    tmp.empty();
  }, fancybox_error = function () { $.fancybox('<p id="fancybox_error">The requested content cannot be loaded.<br />Please try again later.</p>', { 'scrolling': 'no', 'padding': 20, 'transitionIn': 'none', 'transitionOut': 'none' }); }, fancybox_get_viewport = function () { return [$(window).width(), $(window).height(), $(document).scrollLeft(), $(document).scrollTop()]; }, fancybox_get_zoom_to = function () {
    var view = fancybox_get_viewport(), to = {}, margin = currentOpts.margin, resize = currentOpts.autoScale, horizontal_space = (shadow + margin) * 2, vertical_space = (shadow + margin) * 2, double_padding = (currentOpts.padding * 2), ratio; if (currentOpts.width.toString().indexOf('%') > -1) { to.width = ((view[0] * parseFloat(currentOpts.width)) / 100) - (shadow * 2); resize = false; } else { to.width = currentOpts.width + double_padding; }
    if (currentOpts.height.toString().indexOf('%') > -1) { to.height = ((view[1] * parseFloat(currentOpts.height)) / 100) - (shadow * 2); resize = false; } else { to.height = currentOpts.height + double_padding; }
    if (resize && (to.width > (view[0] - horizontal_space) || to.height > (view[1] - vertical_space))) { if (selectedOpts.type == 'image' || selectedOpts.type == 'swf') { horizontal_space += double_padding; vertical_space += double_padding; ratio = Math.min(Math.min(view[0] - horizontal_space, currentOpts.width) / currentOpts.width, Math.min(view[1] - vertical_space, currentOpts.height) / currentOpts.height); to.width = Math.round(ratio * (to.width - double_padding)) + double_padding; to.height = Math.round(ratio * (to.height - double_padding)) + double_padding; } else { to.width = Math.min(to.width, (view[0] - horizontal_space)); to.height = Math.min(to.height, (view[1] - vertical_space)); } }
    to.top = view[3] + ((view[1] - (to.height + (shadow * 2))) * 0.5); to.left = view[2] + ((view[0] - (to.width + (shadow * 2))) * 0.5); if (currentOpts.autoScale === false) { to.top = Math.max(view[3] + margin, to.top); to.left = Math.max(view[2] + margin, to.left); }
    return to;
  }, fancybox_format_title = function (title) {
    if (title && title.length) { switch (currentOpts.titlePosition) { case 'inside': return title; case 'over': return '<span id="fancybox-title-over">' + title + '</span>'; default: return '<span id="fancybox-title-wrap"><span id="fancybox-title-left"></span><span id="fancybox-title-main">' + title + '</span><span id="fancybox-title-right"></span></span>'; } }
    return false;
  }, fancybox_process_image_numbers = function () { if (currentOpts.showImageNumbers) { $("#fancy-bg-n").html(currentIndex + 1 + ' of ' + currentArray.length); } else { $("#fancy-bg-n").html(''); } }, fancybox_process_title = function () {
    var title = currentOpts.title, titlec = 'fancybox-title-' + currentOpts.titlePosition; $('#fancybox-title').remove(); titleh = 0; if (currentOpts.titleShow === false) { return; }
    title = $.isFunction(currentOpts.titleFormat) ? currentOpts.titleFormat(title, currentArray, currentIndex, currentOpts) : fancybox_format_title(title); if (!title || title === '') { return; }
    $('<div id="fancybox-title" class="' + titlec + '" />').css({ 'width': final_pos.width }).html(title).appendTo('body'); switch (currentOpts.titlePosition) { case 'inside': titleh = $("#fancybox-title").outerHeight(true) - currentOpts.padding; final_pos.height += titleh; break; case 'over': $('#fancybox-title').css('bottom', currentOpts.padding); break; default: $('#fancybox-title').css('bottom', $("#fancybox-title").outerHeight(true) * -1); break; }
    $('#fancybox-title').appendTo(outer).hide();
  }, fancybox_set_navigation = function () {
    $(document).unbind('keydown.fb').bind('keydown.fb', function (e) { if (e.keyCode == 27 && currentOpts.enableEscapeButton) { e.preventDefault(); $.fancybox.close(); } else if (e.keyCode == 37) { e.preventDefault(); $.fancybox.prev(); } else if (e.keyCode == 39) { e.preventDefault(); $.fancybox.next(); } }); if ($.fn.mousewheel) {
      wrap.unbind('mousewheel.fb'); if (currentArray.length > 1) {
        wrap.bind('mousewheel.fb', function (e, delta) {
          e.preventDefault(); if (busy || delta === 0) { return; }
          if (delta > 0) { $.fancybox.prev(); } else { $.fancybox.next(); }
        });
      }
    }
    if (!currentOpts.showNavArrows) { return; }
    if ((currentOpts.cyclic && currentArray.length > 1) || currentIndex !== 0) { nav_left.show(); }
    if ((currentOpts.cyclic && currentArray.length > 1) || currentIndex != (currentArray.length - 1)) { nav_right.show(); }
  }, fancybox_preload_images = function () {
    var href, objNext; if ((currentArray.length - 1) > currentIndex) { href = currentArray[currentIndex + 1].href; if (typeof href !== 'undefined' && href.match(imgRegExp)) { objNext = new Image(); objNext.src = href; } }
    if (currentIndex > 0) { href = currentArray[currentIndex - 1].href; if (typeof href !== 'undefined' && href.match(imgRegExp)) { objNext = new Image(); objNext.src = href; } }
  }, _finish = function () {
    inner.css('overflow', (currentOpts.scrolling == 'auto' ? (currentOpts.type == 'image' || currentOpts.type == 'iframe' || currentOpts.type == 'swf' ? 'hidden' : 'auto') : (currentOpts.scrolling == 'yes' ? 'auto' : 'visible'))); if (!$.support.opacity) { inner.get(0).style.removeAttribute('filter'); wrap.get(0).style.removeAttribute('filter'); }
    $('#fancybox-title').show(); if (currentOpts.hideOnContentClick) { inner.one('click', $.fancybox.close); }
    if (currentOpts.hideOnOverlayClick) { overlay.one('click', $.fancybox.close); }
    if (currentOpts.showCloseButton) { close.show(); }
    fancybox_set_navigation(); $(window).bind("resize.fb", $.fancybox.center); if (currentOpts.centerOnScroll) { $(window).bind("scroll.fb", $.fancybox.center); } else { $(window).unbind("scroll.fb"); }
    if ($.isFunction(currentOpts.onComplete)) { currentOpts.onComplete(currentArray, currentIndex, currentOpts); }
    busy = false; fancybox_preload_images();
  }, fancybox_draw = function (pos) { var width = Math.round(start_pos.width + (final_pos.width - start_pos.width) * pos), height = Math.round(start_pos.height + (final_pos.height - start_pos.height) * pos), top = Math.round(start_pos.top + (final_pos.top - start_pos.top) * pos), left = Math.round(start_pos.left + (final_pos.left - start_pos.left) * pos); wrap.css({ 'width': width + 'px', 'height': height + 'px', 'top': top + 'px', 'left': left + 'px' }); width = Math.max(width - currentOpts.padding * 2, 0); height = Math.max(height - (currentOpts.padding * 2 + (titleh * pos)), 0); inner.css({ 'width': width + 'px', 'height': height + 'px' }); if (typeof final_pos.opacity !== 'undefined') { wrap.css('opacity', (pos < 0.5 ? 0.5 : pos)); } }, fancybox_get_obj_pos = function (obj) { var pos = obj.offset(); pos.top += parseFloat(obj.css('paddingTop')) || 0; pos.left += parseFloat(obj.css('paddingLeft')) || 0; pos.top += parseFloat(obj.css('border-top-width')) || 0; pos.left += parseFloat(obj.css('border-left-width')) || 0; pos.width = obj.width(); pos.height = obj.height(); return pos; }, fancybox_get_zoom_from = function () {
    var orig = selectedOpts.orig ? $(selectedOpts.orig) : false, from = {}, pos, view; if (orig && orig.length) { pos = fancybox_get_obj_pos(orig); from = { width: (pos.width + (currentOpts.padding * 2)), height: (pos.height + (currentOpts.padding * 2)), top: (pos.top - currentOpts.padding - shadow), left: (pos.left - currentOpts.padding - shadow) }; } else { view = fancybox_get_viewport(); from = { width: 1, height: 1, top: view[3] + view[1] * 0.5, left: view[2] + view[0] * 0.5 }; }
    return from;
  }, fancybox_show = function () {
    loading.hide(); if (wrap.is(":visible") && $.isFunction(currentOpts.onCleanup)) { if (currentOpts.onCleanup(currentArray, currentIndex, currentOpts) === false) { $.event.trigger('fancybox-cancel'); busy = false; return; } }
    currentArray = selectedArray; currentIndex = selectedIndex; currentOpts = selectedOpts; inner.get(0).scrollTop = 0; inner.get(0).scrollLeft = 0; if (currentOpts.overlayShow) {
      if (isIE6) { $('select:not(#fancybox-tmp select)').filter(function () { return this.style.visibility !== 'hidden'; }).css({ 'visibility': 'hidden' }).one('fancybox-cleanup', function () { this.style.visibility = 'inherit'; }); }
      overlay.css({ 'background-color': currentOpts.overlayColor, 'opacity': currentOpts.overlayOpacity }).unbind().show();
    }
    final_pos = fancybox_get_zoom_to(); fancybox_process_image_numbers(); fancybox_process_title(); if (wrap.is(":visible")) { $(close.add(nav_left).add(nav_right)).hide(); var pos = wrap.position(), equal; start_pos = { top: pos.top, left: pos.left, width: wrap.width(), height: wrap.height() }; equal = (start_pos.width == final_pos.width && start_pos.height == final_pos.height); inner.fadeOut(currentOpts.changeFade, function () { var finish_resizing = function () { inner.html(tmp.contents()).fadeIn(currentOpts.changeFade, _finish); }; $.event.trigger('fancybox-change'); inner.empty().css('overflow', 'hidden'); if (equal) { inner.css({ top: currentOpts.padding, left: currentOpts.padding, width: Math.max(final_pos.width - (currentOpts.padding * 2), 1), height: Math.max(final_pos.height - (currentOpts.padding * 2) - titleh, 1) }); finish_resizing(); } else { inner.css({ top: currentOpts.padding, left: currentOpts.padding, width: Math.max(start_pos.width - (currentOpts.padding * 2), 1), height: Math.max(start_pos.height - (currentOpts.padding * 2), 1) }); fx.prop = 0; $(fx).animate({ prop: 1 }, { duration: currentOpts.changeSpeed, easing: currentOpts.easingChange, step: fancybox_draw, complete: finish_resizing }); } }); return; }
    wrap.css('opacity', 1); if (currentOpts.transitionIn == 'elastic') {
      start_pos = fancybox_get_zoom_from(); inner.css({ top: currentOpts.padding, left: currentOpts.padding, width: Math.max(start_pos.width - (currentOpts.padding * 2), 1), height: Math.max(start_pos.height - (currentOpts.padding * 2), 1) }).html(tmp.contents()); wrap.css(start_pos).show(); if (currentOpts.opacity) { final_pos.opacity = 0; }
      fx.prop = 0; $(fx).animate({ prop: 1 }, { duration: currentOpts.speedIn, easing: currentOpts.easingIn, step: fancybox_draw, complete: _finish });
    } else { inner.css({ top: currentOpts.padding, left: currentOpts.padding, width: Math.max(final_pos.width - (currentOpts.padding * 2), 1), height: Math.max(final_pos.height - (currentOpts.padding * 2) - titleh, 1) }).html(tmp.contents()); wrap.css(final_pos).fadeIn(currentOpts.transitionIn == 'none' ? 0 : currentOpts.speedIn, _finish); }
  }, fancybox_process_inline = function () {
    tmp.width(selectedOpts.width); tmp.height(selectedOpts.height); if (selectedOpts.width == 'auto') { selectedOpts.width = tmp.width(); }
    if (selectedOpts.height == 'auto') { selectedOpts.height = tmp.height(); }
    fancybox_show();
  }, fancybox_process_image = function () { busy = true; selectedOpts.width = imgPreloader.width; selectedOpts.height = imgPreloader.height; $("<img />").attr({ 'id': 'fancybox-img', 'src': imgPreloader.src, 'alt': selectedOpts.title }).appendTo(tmp); fancybox_show(); }, fancybox_start = function () {
    fancybox_abort(); var obj = selectedArray[selectedIndex], href, type, title, str, emb, selector, data; selectedOpts = $.extend({}, $.fn.fancybox.defaults, (typeof $(obj).data('fancybox') == 'undefined' ? selectedOpts : $(obj).data('fancybox'))); title = obj.title || $(obj).title || selectedOpts.title || ''; if (obj.nodeName && !selectedOpts.orig) { selectedOpts.orig = $(obj).children("img:first").length ? $(obj).children("img:first") : $(obj); }
    if (title === '' && selectedOpts.orig) { title = selectedOpts.orig.attr('alt'); }
    if (obj.nodeName && (/^(?:javascript|#)/i).test(obj.href)) { href = selectedOpts.href || null; } else { href = selectedOpts.href || obj.href || null; }
    if (selectedOpts.type) { type = selectedOpts.type; if (!href) { href = selectedOpts.content; } } else if (selectedOpts.content) { type = 'html'; } else if (href) { if (href.match(imgRegExp)) { type = 'image'; } else if (href.match(swfRegExp)) { type = 'swf'; } else if ($(obj).hasClass("iframe")) { type = 'iframe'; } else if (href.match(/#/)) { obj = href.substr(href.indexOf("#")); type = $(obj).length > 0 ? 'inline' : 'ajax'; } else { type = 'ajax'; } } else { type = 'inline'; }
    selectedOpts.type = type; selectedOpts.href = href; selectedOpts.title = title; if (selectedOpts.autoDimensions && selectedOpts.type !== 'iframe' && selectedOpts.type !== 'swf') { selectedOpts.width = 'auto'; selectedOpts.height = 'auto'; }
    if (selectedOpts.modal) { selectedOpts.overlayShow = true; selectedOpts.hideOnOverlayClick = false; selectedOpts.hideOnContentClick = false; selectedOpts.enableEscapeButton = false; selectedOpts.showCloseButton = false; }
    if ($.isFunction(selectedOpts.onStart)) { if (selectedOpts.onStart(selectedArray, selectedIndex, selectedOpts) === false) { busy = false; return; } }
    tmp.css('padding', (shadow + selectedOpts.padding + selectedOpts.margin)); $('.fancybox-inline-tmp').unbind('fancybox-cancel').bind('fancybox-change', function () { $(this).replaceWith(inner.children()); }); switch (type) {
      case 'html': tmp.html(selectedOpts.content); fancybox_process_inline(); break; case 'inline': $('<div class="fancybox-inline-tmp" />').hide().insertBefore($(obj)).bind('fancybox-cleanup', function () { $(this).replaceWith(inner.children()); }).bind('fancybox-cancel', function () { $(this).replaceWith(tmp.children()); }); $(obj).appendTo(tmp); fancybox_process_inline(); break; case 'image': busy = false; $.fancybox.showActivity(); imgPreloader = new Image(); imgPreloader.onerror = function () { fancybox_error(); }; imgPreloader.onload = function () { imgPreloader.onerror = null; imgPreloader.onload = null; fancybox_process_image(); }; imgPreloader.src = href; break; case 'swf': str = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="' + selectedOpts.width + '" height="' + selectedOpts.height + '"><param name="movie" value="' + href + '"></param>'; emb = ''; $.each(selectedOpts.swf, function (name, val) { str += '<param name="' + name + '" value="' + val + '"></param>'; emb += ' ' + name + '="' + val + '"'; }); str += '<embed src="' + href + '" type="application/x-shockwave-flash" width="' + selectedOpts.width + '" height="' + selectedOpts.height + '"' + emb + '></embed></object>'; tmp.html(str); fancybox_process_inline(); break; case 'ajax': selector = href.split('#', 2); data = selectedOpts.ajax.data || {}; if (selector.length > 1) { href = selector[0]; if (typeof data == "string") { data += '&selector=' + selector[1]; } else { data.selector = selector[1]; } }
        busy = false; $.fancybox.showActivity(); ajaxLoader = $.ajax($.extend(selectedOpts.ajax, { url: href, data: data, error: fancybox_error, success: function (data, textStatus, XMLHttpRequest) { if (ajaxLoader.status == 200) { tmp.html(data); fancybox_process_inline(); } } })); break; case 'iframe': $('<iframe id="fancybox-frame" name="fancybox-frame' + new Date().getTime() + '" frameborder="0" hspace="0" scrolling="' + selectedOpts.scrolling + '" src="' + selectedOpts.href + '"></iframe>').appendTo(tmp); fancybox_show(); break;
    }
  }, fancybox_animate_loading = function () {
    if (!loading.is(':visible')) { clearInterval(loadingTimer); return; }
    $('div', loading).css('top', (loadingFrame * -40) + 'px'); loadingFrame = (loadingFrame + 1) % 12;
  }, fancybox_init = function () {
    if ($("#fancybox-wrap").length) { return; }
    $('#aspnetForm').append(tmp = $('<div id="fancybox-tmp"></div>'), loading = $('<div id="fancybox-loading"><div></div></div>'), overlay = $('<div id="fancybox-overlay"></div>'), wrap = $('<div id="fancybox-wrap"></div>')); if (!$.support.opacity) { wrap.addClass('fancybox-ie'); loading.addClass('fancybox-ie'); }
    outer = $('<div id="fancybox-outer"></div>').append('<div class="fancy-bg" id="fancy-bg-n"></div><div class="fancy-bg" id="fancy-bg-ne"></div><div class="fancy-bg" id="fancy-bg-e"></div><div class="fancy-bg" id="fancy-bg-se"></div><div class="fancy-bg" id="fancy-bg-s"></div><div class="fancy-bg" id="fancy-bg-sw"></div><div class="fancy-bg" id="fancy-bg-w"></div><div class="fancy-bg" id="fancy-bg-nw"></div>').appendTo(wrap); outer.append(inner = $('<div id="fancybox-inner"></div>'), close = $('<a id="fancybox-close"></a>'), nav_left = $('<a href="javascript:;" id="fancybox-left"><span class="fancy-ico" id="fancybox-left-ico"></span></a>'), nav_right = $('<a href="javascript:;" id="fancybox-right"><span class="fancy-ico" id="fancybox-right-ico"></span></a>')); close.click($.fancybox.close); loading.click($.fancybox.cancel); nav_left.click(function (e) { e.preventDefault(); $.fancybox.prev(); }); nav_right.click(function (e) { e.preventDefault(); $.fancybox.next(); }); if (isIE6) { overlay.get(0).style.setExpression('height', "document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'"); loading.get(0).style.setExpression('top', "(-20 + (document.documentElement.clientHeight ? document.documentElement.clientHeight/2 : document.body.clientHeight/2 ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop )) + 'px'"); outer.prepend('<iframe id="fancybox-hide-sel-frame" src="javascript:\'\';" scrolling="no" frameborder="0" ></iframe>'); }
  }; $.fn.fancybox = function (options) {
    $(this).data('fancybox', $.extend({}, options, ($.metadata ? $(this).metadata() : {}))).unbind('click.fb').bind('click.fb', function (e) {
      e.preventDefault(); if (busy) { return; }
      busy = true; $(this).blur(); selectedArray = []; selectedIndex = 0; var rel = $(this).attr('rel') || ''; if (!rel || rel === '' || rel === 'nofollow') { selectedArray.push(this); } else { selectedArray = $("a[rel=" + rel + "], area[rel=" + rel + "]"); selectedIndex = selectedArray.index(this); }
      fancybox_start(); return false;
    }); return this;
  }; $.fancybox = function (obj) {
    if (busy) { return; }
    busy = true; var opts = typeof arguments[1] !== 'undefined' ? arguments[1] : {}; selectedArray = []; selectedIndex = opts.index || 0; if ($.isArray(obj)) {
      for (var i = 0, j = obj.length; i < j; i++) { if (typeof obj[i] == 'object') { $(obj[i]).data('fancybox', $.extend({}, opts, obj[i])); } else { obj[i] = $({}).data('fancybox', $.extend({ content: obj[i] }, opts)); } }
      selectedArray = jQuery.merge(selectedArray, obj);
    } else {
      if (typeof obj == 'object') { $(obj).data('fancybox', $.extend({}, opts, obj)); } else { obj = $({}).data('fancybox', $.extend({ content: obj }, opts)); }
      selectedArray.push(obj);
    }
    if (selectedIndex > selectedArray.length || selectedIndex < 0) { selectedIndex = 0; }
    fancybox_start();
  }; $.fancybox.showActivity = function () { clearInterval(loadingTimer); loading.show(); loadingTimer = setInterval(fancybox_animate_loading, 66); }; $.fancybox.hideActivity = function () { loading.hide(); }; $.fancybox.next = function () { return $.fancybox.pos(currentIndex + 1); }; $.fancybox.prev = function () { return $.fancybox.pos(currentIndex - 1); }; $.fancybox.pos = function (pos) {
    if (busy) { return; }
    pos = parseInt(pos, 10); if (pos > -1 && currentArray.length > pos) { selectedIndex = pos; fancybox_start(); }
    if (currentOpts.cyclic && currentArray.length > 1 && pos < 0) { selectedIndex = currentArray.length - 1; fancybox_start(); }
    if (currentOpts.cyclic && currentArray.length > 1 && pos >= currentArray.length) { selectedIndex = 0; fancybox_start(); }
    return;
  }; $.fancybox.cancel = function () {
    if (busy) { return; }
    busy = true; $.event.trigger('fancybox-cancel'); fancybox_abort(); if (selectedOpts && $.isFunction(selectedOpts.onCancel)) { selectedOpts.onCancel(selectedArray, selectedIndex, selectedOpts); }
    busy = false;
  }; $.fancybox.close = function () {
    if (busy || wrap.is(':hidden')) { return; }
    busy = true; if (currentOpts && $.isFunction(currentOpts.onCleanup)) { if (currentOpts.onCleanup(currentArray, currentIndex, currentOpts) === false) { busy = false; return; } }
    fancybox_abort(); $(close.add(nav_left).add(nav_right)).hide(); $('#fancybox-title').remove(); wrap.add(inner).add(overlay).unbind(); $(window).unbind("resize.fb scroll.fb"); $(document).unbind('keydown.fb'); function _cleanup() {
      overlay.fadeOut('fast'); wrap.hide(); $.event.trigger('fancybox-cleanup'); inner.empty(); if ($.isFunction(currentOpts.onClosed)) { currentOpts.onClosed(currentArray, currentIndex, currentOpts); }
      currentArray = selectedOpts = []; currentIndex = selectedIndex = 0; currentOpts = selectedOpts = {}; busy = false;
    }
    inner.css('overflow', 'hidden'); if (currentOpts.transitionOut == 'elastic') {
      start_pos = fancybox_get_zoom_from(); var pos = wrap.position(); final_pos = { top: pos.top, left: pos.left, width: wrap.width(), height: wrap.height() }; if (currentOpts.opacity) { final_pos.opacity = 1; }
      fx.prop = 1; $(fx).animate({ prop: 0 }, { duration: currentOpts.speedOut, easing: currentOpts.easingOut, step: fancybox_draw, complete: _cleanup });
    } else { wrap.fadeOut(currentOpts.transitionOut == 'none' ? 0 : currentOpts.speedOut, _cleanup); }
  }; $.fancybox.resize = function () {
    var c, h; if (busy || wrap.is(':hidden')) { return; }
    busy = true; c = inner.wrapInner("<div style='overflow:auto'></div>").children(); h = c.height(); wrap.css({ height: h + (currentOpts.padding * 2) + titleh }); inner.css({ height: h }); c.replaceWith(c.children()); $.fancybox.center();
  }; $.fancybox.center = function () { busy = true; var view = fancybox_get_viewport(), margin = currentOpts.margin, to = {}; to.top = view[3] + ((view[1] - ((wrap.height() - titleh) + (shadow * 2))) * 0.5); to.left = view[2] + ((view[0] - (wrap.width() + (shadow * 2))) * 0.5); to.top = Math.max(view[3] + margin, to.top); to.left = Math.max(view[2] + margin, to.left); wrap.css(to); busy = false; }; $.fn.fancybox.defaults = { padding: 10, margin: 20, opacity: false, modal: false, cyclic: false, scrolling: 'auto', width: 560, height: 340, autoScale: true, autoDimensions: true, centerOnScroll: false, ajax: {}, swf: { wmode: 'transparent' }, hideOnOverlayClick: true, hideOnContentClick: false, overlayShow: true, overlayOpacity: 0.7, overlayColor: '#000000', titleShow: true, titlePosition: 'outside', titleFormat: null, showImageNumbers: false, transitionIn: 'fade', transitionOut: 'fade', speedIn: 300, speedOut: 300, changeSpeed: 300, changeFade: 'fast', easingIn: 'swing', easingOut: 'swing', showCloseButton: true, showNavArrows: true, enableEscapeButton: true, onStart: null, onCancel: null, onComplete: null, onCleanup: null, onClosed: null }; $(document).ready(function () { fancybox_init(); });
})(jQuery);
