// --------------------------------------------------------
/*
 * Metadata - jQuery plugin for parsing metadata from elements
 *
 * Copyright (c) 2006 John Resig, Yehuda Katz, J�örn Zaefferer, Paul McLanahan
 *
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 *
 * Revision: $Id: jquery.metadata.js 3640 2007-10-11 18:34:38Z pmclanahan $
 *
 */
(function($) {

$.extend({
  metadata : {
    defaults : {
      type: 'class',
      name: 'metadata',
      cre: /({.*})/,
      single: 'metadata'
    },
    setType: function( type, name ){
      this.defaults.type = type;
      this.defaults.name = name;
    },
    get: function( elem, opts ){
      var settings = $.extend({},this.defaults,opts);
      // check for empty string in single property
      if ( !settings.single.length ) settings.single = 'metadata';
      
      var data = $.data(elem, settings.single);
      // returned cached data if it already exists
      if ( data ) return data;
      
      data = "{}";
      
      var getData = function(data) {
        if(typeof data != "string") return data;
        
        if( data.indexOf('{') < 0 ) {
          data = eval("(" + data + ")");
        }
      }
      
      var getObject = function(data) {
        if(typeof data != "string") return data;
        
        data = eval("(" + data + ")");
        return data;
      }
      
      if ( settings.type == "html5" ) {
        var object = {};
        $( elem.attributes ).each(function() {
          var name = this.nodeName;
          if(name.match(/^data-/)) name = name.replace(/^data-/, '');
          else return true;
          object[name] = getObject(this.nodeValue);
        });
      } else {
        if ( settings.type == "class" ) {
          var m = settings.cre.exec( elem.className );
          if ( m )
            data = m[1];
        } else if ( settings.type == "elem" ) {
          if( !elem.getElementsByTagName ) return;
          var e = elem.getElementsByTagName(settings.name);
          if ( e.length )
            data = $.trim(e[0].innerHTML);
        } else if ( elem.getAttribute != undefined ) {
          var attr = elem.getAttribute( settings.name );
          if ( attr )
            data = attr;
        }
        object = getObject(data.indexOf("{") < 0 ? "{" + data + "}" : data);
      }
      
      $.data( elem, settings.single, object );
      return object;
    }
  }
});

$.fn.metadata = function( opts ){
  return $.metadata.get( this[0], opts );
};

})(jQuery);


// --------------------------------------------------------
// mediaqueries support for css-styleshit used via <link rel="stylesheet" />
/**
 * @author alexander.farkas
 * @version 1.1.4
 * modified by HEV
 */
(function($){
    $.testMediaQuery = function(str){
        var date = new Date().getTime(), styleS, div = $('<div class="testMediaQuery' + date + '"></div>').css({
            visibility: 'hidden',
            position: 'absolute'
        }).appendTo('body'), style = document.createElement('style');
        style.setAttribute('type', 'text/css');
    	style.setAttribute('media', str);
        style = $(style).prependTo('head');
        styleS = document.styleSheets[0];
        if (styleS.cssRules || styleS.rules) {
            if (styleS.insertRule) {
                styleS.insertRule('.testMediaQuery' + date + ' {display:none !important;}', styleS.cssRules.length);
            } else if (styleS.addRule) {
                styleS.addRule('.testMediaQuery' + date, 'display:none');
            }
        }
        var ret = div.css('display') === 'none';
        div.remove();
        style.remove();
        return ret;
    };
    $.arrayInString = function(str, arr){
        var ret = -1;
        $.each(arr, function(i, item){
			if (str.indexOf(item) != -1) {
                ret = i;
                return false;
            }
        });
        return ret;
    };
    $.enableMediaQuery = (function(){
        var styles = [], styleLinks, date = new Date().getTime(), sourceStylesShouldBeDisabled = false;
        function parseMedia(link){
            var medias = link.getAttribute('media'), 
				pMin = /\(\s*min-width\s*:\s*(\d+)px\s*\)/, 
				pMax = /\(\s*max-width\s*:\s*(\d+)px\s*\)/, 
				resMin, 
				resMax, 
				supportedMedia = ['handheld', 'all', 'screen', 'projection', 'tty', 'tv', 'print'], 
				curMedia, 
	            mediaString = [];
	            medias = (!medias) ? ['all'] : medias.split(',');
			
            for (var i = 0, len = medias.length; i < len; i++) {
				curMedia = $.arrayInString(medias[i], supportedMedia);
                if (curMedia != -1) {
                    curMedia = supportedMedia[curMedia];
                    if (!resMin) {
                        resMin = pMin.exec(medias[i]);
                        if (resMin) {
                            resMin = parseInt(resMin[1], 10);
                        }
                    }
                    if (!resMax) {
                        resMax = pMax.exec(medias[i]);
                        if (resMax) {
                            resMax = parseInt(resMax[1], 10);
                        }
                    }
                    mediaString.push(curMedia);
                }
            }
			if (resMin || resMax) {
				styles.push({
					obj: link,
					min: resMin,
					max: resMax,
					medium: mediaString.join(',')
				});
			}
        }
        return {
            init: function(){
                if (!styleLinks) {
                    styleLinks = $('link[rel*=style]').each(function(){
                        parseMedia(this);
                    });
                    sourceStylesShouldBeDisabled = $.browser.webkit;
                    $.enableMediaQuery.adjust();
                    $(window).bind('resize.mediaQueries', $.enableMediaQuery.adjust);
                }
            },
            adjust: function(){
                var width = $(window).width();
                $('link.insertStyleforMedia' + date).remove();
				
                for (var i = 0, len = styles.length; i < len; i++) {
										if (!styles[i].obj.disabled && sourceStylesShouldBeDisabled)
										{
											styles[i].obj.setAttribute("disabledByMediaQueries", true);
											styles[i].obj.disabled = true;
										}
                
                    if ((!styles[i].obj.disabled || styles[i].obj.getAttribute("disabledByMediaQueries")) && ((!(styles[i].min && styles[i].min > width) && !(styles[i].max && styles[i].max < width)) || (!styles[i].max && !styles[i].min))) {
                        var n = styles[i].obj.cloneNode(true);
                        n.disabled = false;
                        n.setAttribute('media', styles[i].medium);
                        n.className = 'insertStyleforMedia' + date;
                        document.getElementsByTagName("head")[0].appendChild(n);
                    }
                }
            }
        };
    })();
    
    if ($.browser.webkit || ($.browser.msie && parseFloat($.browser.version, 10) < 8) || ($.browser.mozilla && parseFloat($.browser.version, 10) < 1.9)) {
        try {
			$.enableMediaQuery.init();
        } catch (e) {}
    }
    $(function(){
		if ($.testMediaQuery('all') && !$.testMediaQuery('only all')) {
            $.enableMediaQuery.init();
        }
    });
})(jQuery);


// --------------------------------------------------------
// slide by slide switching with fading
/* 2010 Hubsoft.com && SebringCreative.com (written by Jason Sebring, mail@jasonsebring.com) - Dual licensed under the MIT and GPL licenses. */
(function($){$.fn.dumbCrossFade=function(settings){var publicAccessorLabel='dumbCrossFade.publicAccessor';var configLabel='dumbCrossFade.config';if(typeof(this.data(publicAccessorLabel))!=='undefined'&&this.data(publicAccessorLabel)!==null){var pa=this.data(publicAccessorLabel);var cg=this.data(configLabel);var args=Array.prototype.slice.apply(arguments);if(args.length>0){if(typeof(args[0])==='object'){if(settings)$.extend(cg,settings);var args=Array.prototype.slice.apply(arguments);if(args.length>1){args=args.slice(1,args.length);}else{pa.start();return this;}}if(arguments.length===1){pa[arguments[0]]();}else if(arguments.length>1){var args=Array.prototype.slice.apply(arguments);args=args.slice(1,args.length);pa[arguments[0]].apply(this,args);}}return this;}var config={'slideType':'slidehorizontal','index':0,'showTime':5000,'transitionTime':1000,'doHoverPause':true,'maxZIndex':100,'slideChange':null,'direction':'forward','fadeInOut':false},timeOut=null,itemArray=[],blockAnimation=false,lastIndexRequest=-1,$self=this
$window=$(window),$body=$('body');if(settings)$.extend(config,settings);function cancelSlideShow(){if(timeOut!==null){window.clearTimeout(timeOut);timeOut=null;}}function doSlideShowNow(){if(blockAnimation){if(arguments.length>0){lastIndexRequest=arguments[0];}return;}var currentIndex=config.index;var nextIndex=(arguments.length>0)?arguments[0]:(config.index>=itemArray.length-1)?0:config.index+1;if(config.direction==='backward'){if(currentIndex===0){nextIndex=itemArray.length-1;}else{nextIndex=currentIndex-1;}}if(currentIndex==nextIndex){return;}var $f=itemArray[currentIndex].show(),$n=itemArray[nextIndex];blockAnimation=true;doneF=function(){$f.hide();if(config.fadeInOut){$f.css({'opacity':'1.0'});$n.css({'opacity':'1.0'});}blockAnimation=false;if(lastIndexRequest!=-1){doSlideShowNow(lastIndexRequest);lastIndexRequest=-1;}};$f.css('z-index',(config.maxZIndex-1)+'');$n.css('z-index',config.maxZIndex+'');switch(config.slideType){case'slidehorizontal':var pos=$f.position(),width=$f.width(),adjustX='-='+width;if(config.direction==='forward'){$n.css({'left':(parseInt(pos.left)+width)+'px'});}else{$n.css({'left':(parseInt(pos.left)-width)+'px'});adjustX='+='+width;}if(config.fadeInOut){$n.css({'opacity':'0','display':'block'});$f.animate({'left':adjustX,'opacity':'0'},config.transitionTime,'swing');$n.animate({'left':adjustX,'opacity':'1.0'},config.transitionTime,'swing',doneF);}else{$n.show();$f.animate({'left':adjustX},config.transitionTime,'swing');$n.animate({'left':adjustX},config.transitionTime,'swing',doneF);}break;case'slidevertical':var pos=$f.position(),height=$f.height(),adjustY='-='+height;if(config.direction==='forward'){$n.css({'top':(parseInt(pos.top)+height)+'px','display':'block'});}else{$n.css({'top':(parseInt(pos.top)-height)+'px','display':'block'});adjustY='+='+height;}if(config.fadeInOut){$n.css({'opacity':'0','display':'block'});$f.animate({'top':adjustY,'opacity':'0'},config.transitionTime,'swing');$n.animate({'top':adjustY,'opacity':'1.0'},config.transitionTime,'swing',doneF);}else{$n.show();$f.animate({'top':adjustY},config.transitionTime);$n.animate({'top':adjustY},config.transitionTime,doneF);}break;case'fade':$n.fadeIn(config.transitionTime,doneF);break;}if(config.slideChange!==null){config.slideChange(nextIndex);}config.index=nextIndex;}function doSlideShow(){cancelSlideShow();timeOut=window.setTimeout(function(){doSlideShowNow();doSlideShow();},config.showTime);}$self.each(function(){(itemArray.length===config.index)?$(this).show():$(this).hide();if(itemArray.length===0){if(config.doHoverPause){$(this).parent().hover(function(){cancelSlideShow();},function(){cancelSlideShow();doSlideShow();});}}itemArray[itemArray.length]=$(this);});var publicAccessor={'jump':function(index){cancelSlideShow();doSlideShowNow(index);return publicAccessor;},'start':function(){$self.children().hide();itemArray[config.index].show();config.direction='forward';doSlideShow();},'stop':function(){cancelSlideShow();},'next':function(){config.direction='forward';cancelSlideShow();doSlideShowNow();},'previous':function(){config.direction='backward';cancelSlideShow();doSlideShowNow();}};this.data(publicAccessorLabel,publicAccessor);this.data(configLabel,config);doSlideShow();return this;};})(jQuery);


// --------------------------------------------------------
/*
 * jQuery Corners 0.3
 * Copyright (c) 2008 David Turnbull, Steven Wittens
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 */
jQuery.fn.corners=function(C){var N="rounded_by_jQuery_corners";var V=B(C);var F=false;try{F=(document.body.style.WebkitBorderRadius!==undefined);var Y=navigator.userAgent.indexOf("Chrome");if(Y>=0){F=false}}catch(E){}var W=false;try{W=(document.body.style.MozBorderRadius!==undefined);var Y=navigator.userAgent.indexOf("Firefox");if(Y>=0&&parseInt(navigator.userAgent.substring(Y+8))<3){W=false}}catch(E){}return this.each(function(b,h){$e=jQuery(h);if($e.hasClass(N)){return }$e.addClass(N);var a=/{(.*)}/.exec(h.className);var c=a?B(a[1],V):V;var j=h.nodeName.toLowerCase();if(j=="input"){h=O(h)}if(F&&c.webkit){K(h,c)}else{if(W&&c.mozilla&&(c.sizex==c.sizey)){M(h,c)}else{var d=D(h.parentNode);var f=D(h);switch(j){case"a":case"input":Z(h,c,d,f);break;default:R(h,c,d,f);break}}}});function K(d,c){var a=""+c.sizex+"px "+c.sizey+"px";var b=jQuery(d);if(c.tl){b.css("WebkitBorderTopLeftRadius",a)}if(c.tr){b.css("WebkitBorderTopRightRadius",a)}if(c.bl){b.css("WebkitBorderBottomLeftRadius",a)}if(c.br){b.css("WebkitBorderBottomRightRadius",a)}}function M(d,c){var a=""+c.sizex+"px";var b=jQuery(d);if(c.tl){b.css("-moz-border-radius-topleft",a)}if(c.tr){b.css("-moz-border-radius-topright",a)}if(c.bl){b.css("-moz-border-radius-bottomleft",a)}if(c.br){b.css("-moz-border-radius-bottomright",a)}}function Z(k,n,l,a){var m=S("table");var i=S("tbody");m.appendChild(i);var j=S("tr");var d=S("td","top");j.appendChild(d);var h=S("tr");var c=T(k,n,S("td"));h.appendChild(c);var f=S("tr");var b=S("td","bottom");f.appendChild(b);if(n.tl||n.tr){i.appendChild(j);X(d,n,l,a,true)}i.appendChild(h);if(n.bl||n.br){i.appendChild(f);X(b,n,l,a,false)}k.appendChild(m);if(jQuery.browser.msie){m.onclick=Q}k.style.overflow="hidden"}function Q(){if(!this.parentNode.onclick){this.parentNode.click()}}function O(c){var b=document.createElement("a");b.id=c.id;b.className=c.className;if(c.onclick){b.href="javascript:";b.onclick=c.onclick}else{jQuery(c).parent("form").each(function(){b.href=this.action});b.onclick=I}var a=document.createTextNode(c.value);b.appendChild(a);c.parentNode.replaceChild(b,c);return b}function I(){jQuery(this).parent("form").each(function(){this.submit()});return false}function R(d,a,b,c){var f=T(d,a,document.createElement("div"));d.appendChild(f);if(a.tl||a.tr){X(d,a,b,c,true)}if(a.bl||a.br){X(d,a,b,c,false)}}function T(j,i,k){var b=jQuery(j);var l;while(l=j.firstChild){k.appendChild(l)}if(j.style.height){var f=parseInt(b.css("height"));k.style.height=f+"px";f+=parseInt(b.css("padding-top"))+parseInt(b.css("padding-bottom"));j.style.height=f+"px"}if(j.style.width){var a=parseInt(b.css("width"));k.style.width=a+"px";a+=parseInt(b.css("padding-left"))+parseInt(b.css("padding-right"));j.style.width=a+"px"}k.style.paddingLeft=b.css("padding-left");k.style.paddingRight=b.css("padding-right");if(i.tl||i.tr){k.style.paddingTop=U(j,i,b.css("padding-top"),true)}else{k.style.paddingTop=b.css("padding-top")}if(i.bl||i.br){k.style.paddingBottom=U(j,i,b.css("padding-bottom"),false)}else{k.style.paddingBottom=b.css("padding-bottom")}j.style.padding=0;return k}function U(f,a,d,c){if(d.indexOf("px")<0){try{console.error("%s padding not in pixels",(c?"top":"bottom"),f)}catch(b){}d=a.sizey+"px"}d=parseInt(d);if(d-a.sizey<0){try{console.error("%s padding is %ipx for %ipx corner:",(c?"top":"bottom"),d,a.sizey,f)}catch(b){}d=a.sizey}return d-a.sizey+"px"}function S(b,a){var c=document.createElement(b);c.style.border="none";c.style.borderCollapse="collapse";c.style.borderSpacing=0;c.style.padding=0;c.style.margin=0;if(a){c.style.verticalAlign=a}return c}function D(b){try{var d=jQuery.css(b,"background-color");if(d.match(/^(transparent|rgba\(0,\s*0,\s*0,\s*0\))$/i)&&b.parentNode){return D(b.parentNode)}if(d==null){return"#ffffff"}if(d.indexOf("rgb")>-1){d=A(d)}if(d.length==4){d=L(d)}return d}catch(a){return"#ffffff"}}function L(a){return"#"+a.substring(1,2)+a.substring(1,2)+a.substring(2,3)+a.substring(2,3)+a.substring(3,4)+a.substring(3,4)}function A(h){var a=255;var d="";var b;var e=/([0-9]+)[, ]+([0-9]+)[, ]+([0-9]+)/;var f=e.exec(h);for(b=1;b<4;b++){d+=("0"+parseInt(f[b]).toString(16)).slice(-2)}return"#"+d}function B(b,d){var b=b||"";var c={sizex:5,sizey:5,tl:false,tr:false,bl:false,br:false,webkit:true,mozilla:true,transparent:false};if(d){c.sizex=d.sizex;c.sizey=d.sizey;c.webkit=d.webkit;c.transparent=d.transparent;c.mozilla=d.mozilla}var a=false;var e=false;jQuery.each(b.split(" "),function(f,j){j=j.toLowerCase();var h=parseInt(j);if(h>0&&j==h+"px"){c.sizey=h;if(!a){c.sizex=h}a=true}else{switch(j){case"no-native":c.webkit=c.mozilla=false;break;case"webkit":c.webkit=true;break;case"no-webkit":c.webkit=false;break;case"mozilla":c.mozilla=true;break;case"no-mozilla":c.mozilla=false;break;case"anti-alias":c.transparent=false;break;case"transparent":c.transparent=true;break;case"top":e=c.tl=c.tr=true;break;case"right":e=c.tr=c.br=true;break;case"bottom":e=c.bl=c.br=true;break;case"left":e=c.tl=c.bl=true;break;case"top-left":e=c.tl=true;break;case"top-right":e=c.tr=true;break;case"bottom-left":e=c.bl=true;break;case"bottom-right":e=c.br=true;break}}});if(!e){if(!d){c.tl=c.tr=c.bl=c.br=true}else{c.tl=d.tl;c.tr=d.tr;c.bl=d.bl;c.br=d.br}}return c}function P(f,d,h){var e=Array(parseInt("0x"+f.substring(1,3)),parseInt("0x"+f.substring(3,5)),parseInt("0x"+f.substring(5,7)));var c=Array(parseInt("0x"+d.substring(1,3)),parseInt("0x"+d.substring(3,5)),parseInt("0x"+d.substring(5,7)));r="0"+Math.round(e[0]+(c[0]-e[0])*h).toString(16);g="0"+Math.round(e[1]+(c[1]-e[1])*h).toString(16);d="0"+Math.round(e[2]+(c[2]-e[2])*h).toString(16);return"#"+r.substring(r.length-2)+g.substring(g.length-2)+d.substring(d.length-2)}function X(f,a,b,d,c){if(a.transparent){G(f,a,b,c)}else{J(f,a,b,d,c)}}function J(k,z,p,a,n){var h,f;var l=document.createElement("div");l.style.fontSize="1px";l.style.backgroundColor=p;var b=0;for(h=1;h<=z.sizey;h++){var u,t,q;arc=Math.sqrt(1-Math.pow(1-h/z.sizey,2))*z.sizex;var c=z.sizex-Math.ceil(arc);var w=Math.floor(b);var v=z.sizex-c-w;var o=document.createElement("div");var m=l;o.style.margin="0px "+c+"px";o.style.height="1px";o.style.overflow="hidden";for(f=1;f<=v;f++){if(f==1){if(f==v){u=((arc+b)*0.5)-w}else{t=Math.sqrt(1-Math.pow(1-(c+1)/z.sizex,2))*z.sizey;u=(t-(z.sizey-h))*(arc-w-v+1)*0.5}}else{if(f==v){t=Math.sqrt(1-Math.pow((z.sizex-c-f+1)/z.sizex,2))*z.sizey;u=1-(1-(t-(z.sizey-h)))*(1-(b-w))*0.5}else{q=Math.sqrt(1-Math.pow((z.sizex-c-f)/z.sizex,2))*z.sizey;t=Math.sqrt(1-Math.pow((z.sizex-c-f+1)/z.sizex,2))*z.sizey;u=((t+q)*0.5)-(z.sizey-h)}}H(z,o,m,n,P(p,a,u));m=o;var o=m.cloneNode(false);o.style.margin="0px 1px"}H(z,o,m,n,a);b=arc}if(n){k.insertBefore(l,k.firstChild)}else{k.appendChild(l)}}function H(c,a,e,d,b){if(d&&!c.tl){a.style.marginLeft=0}if(d&&!c.tr){a.style.marginRight=0}if(!d&&!c.bl){a.style.marginLeft=0}if(!d&&!c.br){a.style.marginRight=0}a.style.backgroundColor=b;if(d){e.appendChild(a)}else{e.insertBefore(a,e.firstChild)}}function G(c,o,l,h){var f=document.createElement("div");f.style.fontSize="1px";var a=document.createElement("div");a.style.overflow="hidden";a.style.height="1px";a.style.borderColor=l;a.style.borderStyle="none solid";var m=o.sizex-1;var j=o.sizey-1;if(!j){j=1}for(var b=0;b<o.sizey;b++){var n=m-Math.floor(Math.sqrt(1-Math.pow(1-b/j,2))*m);if(b==2&&o.sizex==6&&o.sizey==6){n=2}var k=a.cloneNode(false);k.style.borderWidth="0 "+n+"px";if(h){k.style.borderWidth="0 "+(o.tr?n:0)+"px 0 "+(o.tl?n:0)+"px"}else{k.style.borderWidth="0 "+(o.br?n:0)+"px 0 "+(o.bl?n:0)+"px"}h?f.appendChild(k):f.insertBefore(k,f.firstChild)}if(h){c.insertBefore(f,c.firstChild)}else{c.appendChild(f)}}};


// --------------------------------------------------------
// switch element src attribute depending on window width
// version 1.0, 2010-03-31
// written by HEV
(function($)
{
	var _srcSwitcher =
		{
			processImage:
				function(element, commonOptions)
				{
					var $this = $(element);

					// build element specific options
					var options =
						{
							common: $.extend(true, {}, commonOptions),
							local:
								{
									path: "",
									smallerSrc: "",
									srcByGreaterWidth: []
								}
						};
					if ($.metadata)
					{
						options.local =
							$.extend(
								true,
								options.local,
								$this.metadata(
									{
										type: 'attr',
										name: 'srcSwitcher'
									})
								);
					}
					else if ($.meta)
					{
						options.local = $.extend(true, options.local, $this.data());
					}

					// correct src attribute
					if (!(options.local.srcByGreaterWidth instanceof Array) || options.local.srcByGreaterWidth.Length <= 0)
						return;
						
					var width = $(window).width();
					
					var src = options.local.smallerSrc;
					for(var i = 0; i < options.local.srcByGreaterWidth.length; i++)
					{
						var limit = options.local.srcByGreaterWidth[i];
						
						for (var greaterWidth in limit) {
							greaterWidth = Number(greaterWidth);
							if (!isNaN(greaterWidth))
								break;
						}

						if (!isNaN(greaterWidth) && width > greaterWidth)
							src = limit[greaterWidth];
					}
					
					element.setAttribute("src", String([options.local.path, src].join("/")));
				},
			init:
				function()
				{
					$("*[src][srcSwitcher]").srcSwitcher();
					$(window).bind('resize.srcSwitcher', function() { $("*[src][srcSwitcher]").srcSwitcher(); });
				}
		};

	$.srcSwitcher =
	{
		defaultOptions: {}
	};

	$.fn.srcSwitcher =
		function(options)
		{
			var localOptions = $.extend(true, {}, $.srcSwitcher.defaultOptions, options);

			return this.each(function()
			{
				var element = this;
				
				if (element.getAttribute('src') && element.getAttribute('srcSwitcher'))
				{
					_srcSwitcher.processImage(element, localOptions);
//					$(window)
//						.bind(
//							'resize.srcSwitcher',
//							function() {
//								_srcSwitcher.processImage(element, localOptions);
//							}
//							);
				}
			});
		};

	//Initialization Code
	$(function()
	{
		_srcSwitcher.init();
	});

})(jQuery);


// --------------------------------------------------------
// switch element background url depending on window width
// version 1.0, 2010-03-31
// written by HEV
(function($)
{
	var _backgroundUrlSwitcher =
		{
			processElement:
				function(element, commonOptions)
				{
					var $this = $(element);

					// build element specific options
					var options =
						{
							common: $.extend(true, {}, commonOptions),
							local:
								{
									path: "",
									smallerBackgroundUrl: "",
									backgroundUrlByGreaterWidth: []
								}
						};
					if ($.metadata)
					{
						options.local =
							$.extend(
								true,
								options.local,
								$this.metadata(
									{
										type: 'attr',
										name: 'backgroundUrlSwitcher'
									})
								);
					}
					else if ($.meta)
					{
						options.local = $.extend(true, options.local, $this.data());
					}

					// correct backgroundUrl attribute
					if (!(options.local.backgroundUrlByGreaterWidth instanceof Array) || options.local.backgroundUrlByGreaterWidth.Length <= 0)
						return;
						
					var width = $(window).width();
					
					var backgroundUrl = options.local.smallerBackgroundUrl;
					for(var i = 0; i < options.local.backgroundUrlByGreaterWidth.length; i++)
					{
						var limit = options.local.backgroundUrlByGreaterWidth[i];
						
						for (var greaterWidth in limit)
						{
							greaterWidth = Number(greaterWidth);
							if (!isNaN(greaterWidth))
								break;
						}

						if (!isNaN(greaterWidth) && width > greaterWidth)
							backgroundUrl = limit[greaterWidth];
					}
					
					$(element).css("background-image", String("url(" + options.local.path + "/" + backgroundUrl + ")"));
				},
			init:
				function()
				{
					$("*[backgroundUrlSwitcher]").backgroundUrlSwitcher();
					$(window).bind('resize.backgroundUrlSwitcher', function() { $("*[backgroundUrlSwitcher]").backgroundUrlSwitcher(); });
				}
		};

	$.backgroundUrlSwitcher =
	{
		defaultOptions: {}
	};

	$.fn.backgroundUrlSwitcher =
		function(options)
		{
			var localOptions = $.extend(true, {}, $.backgroundUrlSwitcher.defaultOptions, options);

			return this.each(function()
			{
				var element = this;
				
				if (element.getAttribute('backgroundUrlSwitcher'))
					_backgroundUrlSwitcher.processElement(element, localOptions);
			});
		};

	//Initialization Code
	$(function()
	{
		_backgroundUrlSwitcher.init();
	});

})(jQuery);


// --------------------------------------------------------
// settings panel header correction
// written by HEV
function correctSettingsHeader()
{
	var headerId = "settingsHeader";
	var headerAsColumnId = "settingsHeaderAsColumn";

	var header = document.getElementById(headerId);
	
	if ($.browser.msie || !header)
		return false;
		
	var styleDeclaration = window.getComputedStyle && window.getComputedStyle(header, null);
	var ruleValue = "";
	if (styleDeclaration)
	{
		ruleValue = 
			styleDeclaration.getPropertyValue("-moz-transform")
			|| styleDeclaration.getPropertyValue("-webkit-transform")
			|| styleDeclaration.getPropertyValue("-o-transform")
			|| "";
	
		if ("" == ruleValue)
		{
			var text = $(header).text();
			var newHtml = "<div id=\"" + headerAsColumnId + "\">";
			for (var i = 0; i < text.length; i++ )
					newHtml += "<span>" + text[i] + "</span> ";
			newHtml += "</div>";

			$(header).parent().prepend(newHtml);
			$(header).remove();
			
			return true;
		}
	}
	
	return false;
}


// --------------------------------------------------------
// page-by-page navigation support
// written by HEV

function getSelectedPage(element, urlList)
{
	if (element == null || urlList == null || !$.isArray(urlList) || urlList.length == 0)
		return null;
	
	var selection = null;
	var currentUrl = "" + location.pathname+location.search.toLowerCase();
	
	for (var i = 0; i < urlList.length; i++)
	{
		url = urlList[i].toLowerCase();
		if (currentUrl.indexOf(url) == 0)
		{
			if (null == selection || url.indexOf(selection.toLowerCase()) == 0)
				selection = urlList[i];
		}
	}
	
	if ("/" == selection)
	{
		if (location.pathname != "/" && location.pathname.toLowerCase() != "/default.aspx")
			selection = null;
	}
	
	return selection;
}

function setPrevPage(element, urlList)
{
	if (element == null)
		return;

	var selection = getSelectedPage(element, urlList);
	var url = null;
	if (null != selection)
	{
	
		for (var i = 1; i < urlList.length; i++)
		{
			if (selection == urlList[i])
			{
				url = urlList[i-1];
				break;
			}
		}
	}

	if (null != url)
		element.href = url;
	else
		element.style.visibility = "hidden";
}

function setNextPage(element, urlList)
{
	if (element == null)
		return;

	var selection = getSelectedPage(element, urlList);
	var url = null;
	if (null != selection)
	{
	
		for (var i = 0; i < urlList.length - 1; i++)
		{
			if (selection == urlList[i])
			{
				url = urlList[i+1];
				break;
			}
		}
	}

	if (null != url)
		element.href = url;
	else
		element.style.visibility = "hidden";
}


// --------------------------------------------------------
// Conver each two table rows into "box"
function convertColumnsTableToBoxes(boxesAreaElement,  boxTypeName)
{
	if (null == boxesAreaElement)
		return;

	$("> table", boxesAreaElement).each(
		function()
		{
			var table = $(this);
			var boxes = [];
			var position = 0;
			
			$("> tbody > tr", table).each(
				function()
				{
					var td = $("> td", this).first();

					if (position % 2 == 0)
						boxes.push({ anchorName: "", header: "", content: "" });

					if ("" == boxes[boxes.length - 1].anchorName)
					{
						var bookmarks = $("a:empty[name]", td);
						if (null != bookmarks && bookmarks.length > 0 && null != bookmarks[0].name)
						{
							boxes[boxes.length - 1].anchorName = bookmarks[0].name;
							bookmarks.first().remove();
						}
					}

					if (position % 2 == 0)
					{
						var h3 = $("h3", td);
						var header = $.trim(td.html());
						if ("" == header || (null != h3 && h3.length > 0))
							boxes[boxes.length - 1].header = header;
						else
							boxes[boxes.length - 1].header = "<h3>" + header + "</h3>";
					}
					else
						boxes[boxes.length - 1].content = $.trim(td.html());
					
					position++;
				}
				)
			
			for(var i = boxes.length - 1; i >= 0; i--)
			{
				var boxHtml = "";
				boxHtml += "<div class=\"" + boxTypeName + "BoxPlaceholder clearfix\">";
				boxHtml += "<div class=\"" + boxTypeName + "Box\">";

				if ("" != boxes[i].anchorName)
					boxHtml += "<a name=\"" + boxes[i].anchorName + "\"></a>";

				if ("" != boxes[i].header)
				{
					boxHtml += "<div class=\"headerBox\">";
					boxHtml += boxes[i].header;
					boxHtml += "</div>";
				}

				boxHtml += "<div class=\"content clearfix\">" + boxes[i].content + "</div>"; 					 
				
				boxHtml += "</div>";
				boxHtml += "</div>";
				
				table.after(boxHtml);
			}

			table.remove();
		}
		);
}


// --------------------------------------------------------
// Bitrix abilities support
// written by Bitrix team

function SetPrintCSS(isPrint)
{
	var link;

	if (document.getElementsByTagName)
		link = document.getElementsByTagName('link');
	else if (document.all)
		link = document.all.tags('link');
	else
		return;

	for (var index=0; index < link.length; index++)
	{
		if (!link[index].title || link[index].title != 'print')
			continue;

		if (isPrint)
		{
			link[index].disabled = false;
			link[index].rel = "stylesheet";
		}
		else
		{
			link[index].disabled = true;
			link[index].rel = "alternate stylesheet";
		}
	}
}

function AddToBookmark()
{
	var title = window.document.title;
	var url = window.document.location;

	if (window.sidebar)
	{
		window.sidebar.addPanel(title, url, "");
	}
	/*else if(window.opera)
	{
		var a = document.createElement("A");
		a.rel = "sidebar";
		a.target = "_search";
		a.title = title;
		a.href = url;
		a.click();
	}*/
	else if(document.all)
	{
		window.external.AddFavorite(url, title);
	}
	else
	{
		alert("Для добавления страницы в Избранное нажмите Ctrl+D");
	}
	
	return false;
}

function BackToDesignMode()
{
	if (document.all)
		window.location.href = window.location.href.replace('#print','');
	else
		SetPrintCSS(false);

	return false;
}

if (document.location.hash == '#print')
	SetPrintCSS(true);

if (window.jsAjaxUtil)
{
	// show ajax visuality
	jsAjaxUtil.ShowLocalWaitWindow = function (TID, cont, bShadow)
	{
		if (typeof cont == 'string' || typeof cont == 'object' && cont.constructor == String)
			var obContainerNode = document.getElementById(cont);
		else
			var obContainerNode = cont;
		
		if (obContainerNode.getBoundingClientRect)
		{
			var obRect = obContainerNode.getBoundingClientRect();
			var obWndSize = jsAjaxUtil.GetWindowSize();

			var arContainerPos = {
				left: obRect.left + obWndSize.scrollLeft, 
				top: obRect.top + obWndSize.scrollTop, 
				right: obRect.right + obWndSize.scrollLeft, 
				bottom: obRect.bottom + obWndSize.scrollTop
			};
		}
		else
			var arContainerPos = jsAjaxUtil.GetRealPos(obContainerNode);
		
		var container_id = obContainerNode.id;
		
		if (!arContainerPos) return;

		var obWaitMessage = document.body.appendChild(document.createElement('DIV'));
		obWaitMessage.id = 'wait_' + container_id + '_' + TID;
		obWaitMessage.className = 'waitwindow';
		
		var div_top = arContainerPos.top + 5;
		if (div_top < document.body.scrollTop) div_top = document.body.scrollTop + 5;
		
		obWaitMessage.style.top = div_top + 'px';
		obWaitMessage.style.left = (arContainerPos.right - 200) + 'px';
		obWaitMessage.innerHTML = 'Загрузка...';
		
		if(jsAjaxUtil.IsIE())
		{
			var frame = document.createElement("IFRAME");
			frame.src = "javascript:''";
			frame.id = 'waitframe_' + container_id + '_' + TID;
			frame.className = "waitwindow";
			frame.style.width = obWaitMessage.offsetWidth + "px";
			frame.style.height = obWaitMessage.offsetHeight + "px";
			frame.style.left = obWaitMessage.style.left;
			frame.style.top = obWaitMessage.style.top;
			document.body.appendChild(frame);
		}
		
		function __Close(e)
		{
			if (!e) e = window.event
			if (!e) return;
			if (e.keyCode == 27)
			{
				jsAjaxUtil.CloseLocalWaitWindow(TID, cont);
				jsEvent.removeEvent(document, 'keypress', __Close);
			}
		}
		
		jsEvent.addEvent(document, 'keypress', __Close);
	}
}
