$(document).ready(function(){
    $loadUri=$('meta[name=the_uri]').attr('content');
    $('img.post_preview_img_excerpt').each(function(){
        loadImage(this,$loadUri);
    });
	$("#accordion").accordion({ header: "h3" });
	$('.popup').popupWindow({ 

				height:500, 

				width:800, 

				top:50, 

				left:50 

			});	
	$(" .addtoCalendar ul ").css({display: "none"}); // Opera Fix
	
	$(" .addtoCalendar li").hover(function(){
			$(this).css({position: "relative"});
			$(this).find('ul:first').css({visibility: "visible",display: "none"}).slideToggle(400);
			},function(){
			$(this).css({position: "static"});
			$(this).find('ul:first').css({visibility: "hidden"});
			});
			
		

    
    
  
    $('#navigation').superfish({
        delay:0,
        animation:{
            opacity:'show',
            height:'show'
        },
        autoArrows:true,
        anchorClass:'sf-with-ul',
        arrowClass:'sf-sub-indicator',
        dropShadows:false,
        disableHI:true,
        onInit:function(){},
        onBeforeShow:function(){},
        onShow:function(){},
        onHide:function(){}
    });
$('#widget_holder ul li a').removeAttr('title')
    $('#navigation li a').removeAttr('title')
  

function recent_blog_not_ie(){
    $('#recent_blog').cycle({
        fx:'blindY',
        speed:'slow',
        next:'#recent_blog_down',
        prev:'#recent_blog_up',
        pause:1,
        sync:1,
        cleartypeNoBg:true
    });
}

//lava_lamp_menu();
$('.single_page_modifier a[href$=jpg], .single_page_modifier a[href$=gif], .single_page_modifier a[href$=png], .single_page_modifier a[href$=bmp]').addClass('pretty_photo');
$('.pretty_photo').prettyPhoto();



var loader=$('<div id="loader"><span>Sending Message...</span></div>')
.appendTo('#form_result')
.hide();
$("#contact_form").validate({
    rules:{
        input_name:'required',
        input_email:{
            required:true,
            email:true
        },
        input_subject:'required',
        textarea_message:'required'
    },
    messages:{
        input_name:'Name is required',
        input_email:{
            required:'Email is required',
            email:'Invalid email format'
        },
        input_subject:'Please specify a subject',
        textarea_message:'Message is empty'
    },
    errorElement:'span',
    errorClass:'error_message',
    errorPlacement:function(error,element){
        error.appendTo(element.parent('span').prev('label'));
    },
    submitHandler:function(form){
        $(form).ajaxSubmit({
            beforeSubmit:function(){
                $('#contact_form').hide(500);
                $('#quick_contact').hide(500);
                loader.show(500);
            },
            success:function(){
                loader.hide(500);
            },
            target:'#form_result2'
        });
    }
});
$("#quick_contact").validate({
    rules:{
        input_name:'required',
        input_email:{
            required:true,
            email:true
        },
        input_subject:'required',
        textarea_message:'required'
    },
    messages:{
        input_name:'Name is required',
        input_email:{
            required:'Email is required',
            email:'Invalid email format'
        },
        textarea_message:'Message is empty'
    },
    errorElement:'span',
    errorClass:'error_message',
    errorPlacement:function(error,element){
        error.appendTo(element.parent('li'));
    },
    submitHandler:function(form){
        $(form).ajaxSubmit({
            beforeSubmit:function(){
                $('#contact_form').hide(500);
                $('#quick_contact').hide(500);
                loader.show(500);
            },
            success:function(){
                loader.hide(500);
            },
            target:'#form_result'
        });
    }
});
$('.fx_button_hover, #respond #submit, #contact_form #id_send2').hover(function(){
    $(this).css('background-position','left bottom');
},function(){
    $(this).css('background-position','left top');
});
$('.fx_button_hover2').hover(function(){
    $(this).css('background-position','left top');
},function(){
    $(this).css('background-position','left bottom');
});
if($.browser.msie){
    $version=parseInt($.browser.version);
    if(($version==6)&&($version==7)){
        $('.comment_main').find('.comment_reply').show();
    }
    else{
        comment_reply_hover();
    }
}
else{
    comment_reply_hover();
}
function comment_reply_hover(){
    $('.comment_main').hover(function(){
        $(this).find('.comment_reply').show();
    },function(){
        $(this).find('.comment_reply').hide();
    });
}
$('.fx_input_field').focus(function(){
    if(this.value==this.defaultValue){
        $(this).css('color','#eee');
        this.value='';
    }
    if(this.value!=this.defaultValue){
        this.select();
    }
});
$('.fx_input_field').blur(function(){
    if($.trim(this.value)==''){
        this.value=(this.defaultValue?this.defaultValue:'');
        $(this).css("color","#777");
    }
});
$('#respond input, #respond textarea').focus(function(){
    $(this).addClass('on_focus_respond');
});
$('#respond input, #respond textarea').blur(function(){
    $(this).removeClass('on_focus_respond');
});
$('#search_listings_button, #search_listings_button_refine').click(function(){
    $('#search_listings').show(300);
    $(this).hide(300);
});
$('#search_listings_close').click(function(){
    $('#search_listings').hide(300);
    $('#search_listings_button').show(300);
    $('#search_listings_button_refine').show(300);
});
$('#icon_email_this').click(function(){
    mailpage();
    return false;
});





});
function loadImage($currentImage,$temp_uri){
    $loadImgUrl=$temp_uri+'/images/ajax-loader2.gif';
    $curImgWidth=$($currentImage).attr('width');
    $curImgHeight=$($currentImage).attr('height');
    $curImgSrc=$($currentImage).attr('src');
    $curImgClass=$($currentImage).attr('class');
    $curImgID=$($currentImage).attr('id');
    $($currentImage).wrap('<div class="pre_load_holder"></div>');
    $($currentImage).parent().css({
        'width':$curImgWidth,
        'height':$curImgHeight,
        'background-image':'url('+$loadImgUrl+')',
        'background-position':'center center',
        'background-repeat':'no-repeat',
        'background-color':'#fff'
    }).attr({
        'class':$curImgClass
    });
    $($currentImage).hide();
    var img=new Image();
    $(img)
    .load(function(){
        $(this).hide();
        $($currentImage).parent().replaceWith(this);
        $(this).fadeIn();
    })
    .attr({
        'src':$curImgSrc,
        'class':$curImgClass,
        'width':$curImgWidth,
        'height':$curImgHeight,
        'id':$curImgID
    });
}
$(function(){
    $('.smooth_scroll a').click(function(){
        if(location.pathname.replace(/^\//,'')==this.pathname.replace(/^\//,'')
            &&location.hostname==this.hostname){
            var $target=$(this.hash);
            $target=$target.length&&$target||$('[name='+this.hash.slice(1)+']');
            if($target.length){
                var targetOffset=$target.offset().top;
                $('html,body').animate({
                    scrollTop:targetOffset
                },1000);
                return false;
            }
        }
    });
});
function zebra_table($object){
    $($object+' tbody tr:nth-child(odd)').addClass('odd');
    $($object+' tbody tr').hover(function(){
        $(this).addClass('trover');
    },function(){
        $(this).removeClass('trover');
    })
    }
function lava_lamp_menu(){
    $('#lava ul li').addClass('put_lava');
    $('#lava ul li li, #lava ul#rss_and_links li').removeClass('put_lava');
    var style='easeOutElastic';
    if($('#lava li.put_lava').hasClass('current_page_item')||$('#lava li.put_lava').hasClass('current_page_ancestor')){
        var default_left=Math.round($('#lava li.current_page_item, #lava li.current_page_ancestor').offset().left-$('#lava').offset().left);
        var default_width=$('#lava li.current_page_item, #lava li.current_page_ancestor').width();
    }
    else{
        var default_left=-15;
        var default_width=0;
    }
    $('#lava ul li ul').prepend('<li class="dropdown_top"></li>');
    $('#lava ul li ul').append('<li class="dropdown_bottom png_fix"></li>');
    $('#lava ul li ul li:last-child').prev().addClass('last');
    //$('#lava li.current_page_item a:first, #lava li.current_page_ancestor a:first').css('color','#eee');
    $('#lava .put_lava').hover(function(){
        //$('#lava .put_lava').find('a:first').css('color','#000');
        //$(this).find('a:first').css('color','#eee');
    });
    $('#lava #nav_home').click(function(){
        $('#lava').css('overflow','hidden');
    });
    $('#lava #nav_home').mouseover(function(){
        $('#lava').css('overflow','hidden');
    });
    $('#lava .sf-with-ul').mouseover(function(){
        $('#lava').css('overflow','visible');
    });
    $('#box').css({
        left:default_left
    });
    $('#box .head').css({
        width:default_width
    });
    $('#lava li.put_lava').hover(function(){
        $('#box').show();
        left=Math.round($(this).offset().left-$('#lava').offset().left);
        width=$(this).width();
        $('#box').stop(false,true).animate({
            left:left
        },{
            duration:1500,
            easing:style
        });
        $('#box .head').stop(false,true).animate({
            width:width
        },{
            duration:1500,
            easing:style
        });
    }).click(function(){
        $('#lava li').removeClass('current_page_item');
        $(this).addClass('current_page_item');
    });
    $('#lava').mouseleave(function(){
        if($('#lava li.put_lava').is('.current_page_item, .current_page_ancestor')){
            var leftx=Math.round($('#lava li.current_page_item, #lava li.current_page_ancestor').offset().left-$('#lava').offset().left);
            var widthx=$('#lava li.current_page_item, #lava li.current_page_ancestor').width();
            $('#lava').css('overflow','hidden');
            $('#box').stop(false,true).animate({
                left:leftx
            },{
                duration:1500,
                easing:style
            });
            $('#box .head').stop(false,true).animate({
                width:widthx
            },{
                duration:1500,
                easing:style
            });
            $('.put_lava').find('a:first').css('color','#000');
            $('#lava li.current_page_item a:first, #lava li.current_page_ancestor a:first').css('color','#eee');
        }else{
            $('.put_lava').find('a:first').css('color','#000');
            $('#box').hide();
        }
    });
$('#lava #box').css('display','block');
adjust_height('.column_left_home .post_preview .post_preview_content');
}
function ds_twitter($username,$qty,$appendItTo){
    $.getJSON('http://twitter.com/status/user_timeline/'+$username+'.json?count='+$qty+'&callback=?',function(data){
        $($appendItTo).prepend('<div class="tweet twitt_text_holder"></div>');
        $.each(data,function(index,item){
            $('.twitt_text_holder').append('<div class="twitt_item">'+item.text.linkify()+'</div>');
            $('#tab-footer-1 .footer_twitter_follow a').attr('href','http://twitter.com/'+item.user.screen_name);
        });
    });
    function relative_time(time_value){
        var values=time_value.split(" ");
        time_value=values[1]+" "+values[2]+", "+values[5]+" "+values[3];
        var parsed_date=Date.parse(time_value);
        var relative_to=(arguments.length>1)?arguments[1]:new Date();
        var delta=parseInt((relative_to.getTime()-parsed_date)/1000);
        delta=delta+(relative_to.getTimezoneOffset()*60);
        var r='';
        if(delta<60){
            r='a minute ago';
        }else if(delta<120){
            r='couple of minutes ago';
        }else if(delta<(45*60)){
            r=(parseInt(delta/60)).toString()+' minutes ago';
        }else if(delta<(90*60)){
            r='an hour ago';
        }else if(delta<(24*60*60)){
            r=''+(parseInt(delta/3600)).toString()+' hours ago';
        }else if(delta<(48*60*60)){
            r='1 day ago';
        }else{
            r=(parseInt(delta/86400)).toString()+' days ago';
        }
        return r;
    }
    String.prototype.linkify=function(){
        return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/,function(m){
            return m.link(m);
        });
    };

}
function ds_flickr($username,$qty,$appendItTo,$type){
    $type?$type='groups_pool':$type='photos_public';
    $.getJSON('http://api.flickr.com/services/feeds/'+$type+'.gne?id='+$username+'&lang=en-us&format=json&jsoncallback=?',flickrCallBack);
    function flickrCallBack(data){
        $.each(data.items,function(index,item){
            $('<img/>').attr('src',item.media.m).appendTo($appendItTo)
            .wrap('<div class="flickr-thumb"><a href="'+item.link+'" ></a></div>');
            return(index!=($qty-1));
        });
        $('#footer_flickr .flickr-thumb img').stop(false,true).animate({
            opacity:0.50
        },1000,function(){});
        $('#footer_flickr .flickr-thumb img').hover(function(){
            $(this).stop(false,true).animate({
                opacity:1
            },500,function(){});
        },function(){
            $(this).stop(false,true).animate({
                opacity:0.50
            },500,function(){});
        });
        $('#tab-footer-2 .footer_flickr_viewmore a').attr('href','http://flickr.com/'+$type.substring(0,6)+'/'+$username);
    }
}
function adjust_height($object){
    var $modHeight=new Number()
    var $tempHeight=new Array()
    var $x=new Number()
    $($object).each(function(){
        $tempHeight[$x]=$(this).innerHeight();
        $x++;
    });
    $modHeight=getMax($tempHeight);
    $($object).each(function(){
        $(this).height($modHeight);
    });
    function getMax(array){
        return Math.max.apply(Math,array);
    };

}
function mailpage()
{
    mail_str='mailto:?subject=Check out the '+document.title;
    mail_str+='&body=I thought you might be interested in the '+document.title;
    mail_str+='. You can view it at, '+location.href;
    location.href=mail_str;
}
$.easing['jswing']=$.easing['swing'];
$.extend($.easing,{
    def:'easeOutQuad',
    swing:function(x,t,b,c,d){
        return $.easing[$.easing.def](x,t,b,c,d);
    },
    easeInQuad:function(x,t,b,c,d){
        return c*(t/=d)*t+b;
    },
    easeOutQuad:function(x,t,b,c,d){
        return-c*(t/=d)*(t-2)+b;
    },
    easeInOutQuad:function(x,t,b,c,d){
        if((t/=d/2)<1)return c/2*t*t+b;
        return-c/2*((--t)*(t-2)-1)+b;
    },
    easeInCubic:function(x,t,b,c,d){
        return c*(t/=d)*t*t+b;
    },
    easeOutCubic:function(x,t,b,c,d){
        return c*((t=t/d-1)*t*t+1)+b;
    },
    easeInOutCubic:function(x,t,b,c,d){
        if((t/=d/2)<1)return c/2*t*t*t+b;
        return c/2*((t-=2)*t*t+2)+b;
    },
    easeInQuart:function(x,t,b,c,d){
        return c*(t/=d)*t*t*t+b;
    },
    easeOutQuart:function(x,t,b,c,d){
        return-c*((t=t/d-1)*t*t*t-1)+b;
    },
    easeInOutQuart:function(x,t,b,c,d){
        if((t/=d/2)<1)return c/2*t*t*t*t+b;
        return-c/2*((t-=2)*t*t*t-2)+b;
    },
    easeInQuint:function(x,t,b,c,d){
        return c*(t/=d)*t*t*t*t+b;
    },
    easeOutQuint:function(x,t,b,c,d){
        return c*((t=t/d-1)*t*t*t*t+1)+b;
    },
    easeInOutQuint:function(x,t,b,c,d){
        if((t/=d/2)<1)return c/2*t*t*t*t*t+b;
        return c/2*((t-=2)*t*t*t*t+2)+b;
    },
    easeInSine:function(x,t,b,c,d){
        return-c*Math.cos(t/d*(Math.PI/2))+c+b;
    },
    easeOutSine:function(x,t,b,c,d){
        return c*Math.sin(t/d*(Math.PI/2))+b;
    },
    easeInOutSine:function(x,t,b,c,d){
        return-c/2*(Math.cos(Math.PI*t/d)-1)+b;
    },
    easeInExpo:function(x,t,b,c,d){
        return(t==0)?b:c*Math.pow(2,10*(t/d-1))+b;
    },
    easeOutExpo:function(x,t,b,c,d){
        return(t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b;
    },
    easeInOutExpo:function(x,t,b,c,d){
        if(t==0)return b;
        if(t==d)return b+c;
        if((t/=d/2)<1)return c/2*Math.pow(2,10*(t-1))+b;
        return c/2*(-Math.pow(2,-10*--t)+2)+b;
    },
    easeInCirc:function(x,t,b,c,d){
        return-c*(Math.sqrt(1-(t/=d)*t)-1)+b;
    },
    easeOutCirc:function(x,t,b,c,d){
        return c*Math.sqrt(1-(t=t/d-1)*t)+b;
    },
    easeInOutCirc:function(x,t,b,c,d){
        if((t/=d/2)<1)return-c/2*(Math.sqrt(1-t*t)-1)+b;
        return c/2*(Math.sqrt(1-(t-=2)*t)+1)+b;
    },
    easeInElastic:function(x,t,b,c,d){
        var s=1.70158;
        var p=0;
        var a=c;
        if(t==0)return b;
        if((t/=d)==1)return b+c;
        if(!p)p=d*.3;
        if(a<Math.abs(c)){
            a=c;
            var s=p/4;
        }
        else var s=p/(2*Math.PI)*Math.asin(c/a);
        return-(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;
    },
    easeOutElastic:function(x,t,b,c,d){
        var s=1.70158;
        var p=0;
        var a=c;
        if(t==0)return b;
        if((t/=d)==1)return b+c;
        if(!p)p=d*.3;
        if(a<Math.abs(c)){
            a=c;
            var s=p/4;
        }
        else var s=p/(2*Math.PI)*Math.asin(c/a);
        return a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b;
    },
    easeInOutElastic:function(x,t,b,c,d){
        var s=1.70158;
        var p=0;
        var a=c;
        if(t==0)return b;
        if((t/=d/2)==2)return b+c;
        if(!p)p=d*(.3*1.5);
        if(a<Math.abs(c)){
            a=c;
            var s=p/4;
        }
        else var s=p/(2*Math.PI)*Math.asin(c/a);
        if(t<1)return-.5*(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;
        return a*Math.pow(2,-10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p)*.5+c+b;
    },
    easeInBack:function(x,t,b,c,d,s){
        if(s==undefined)s=1.70158;
        return c*(t/=d)*t*((s+1)*t-s)+b;
    },
    easeOutBack:function(x,t,b,c,d,s){
        if(s==undefined)s=1.70158;
        return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b;
    },
    easeInOutBack:function(x,t,b,c,d,s){
        if(s==undefined)s=1.70158;
        if((t/=d/2)<1)return c/2*(t*t*(((s*=(1.525))+1)*t-s))+b;
        return c/2*((t-=2)*t*(((s*=(1.525))+1)*t+s)+2)+b;
    },
    easeInBounce:function(x,t,b,c,d){
        return c-$.easing.easeOutBounce(x,d-t,0,c,d)+b;
    },
    easeOutBounce:function(x,t,b,c,d){
        if((t/=d)<(1/2.75)){
            return c*(7.5625*t*t)+b;
        }else if(t<(2/2.75)){
            return c*(7.5625*(t-=(1.5/2.75))*t+.75)+b;
        }else if(t<(2.5/2.75)){
            return c*(7.5625*(t-=(2.25/2.75))*t+.9375)+b;
        }else{
            return c*(7.5625*(t-=(2.625/2.75))*t+.984375)+b;
        }
    },
easeInOutBounce:function(x,t,b,c,d){
    if(t<d/2)return $.easing.easeInBounce(x,t*2,0,c,d)*.5+b;
    return $.easing.easeOutBounce(x,t*2-d,0,c,d)*.5+c*.5+b;
}
});
;
(function($){
    $.fn.superfish=function(op){
        var sf=$.fn.superfish,c=sf.c,$arrow=$(['<span class="',c.arrowClass,'"></span>'].join('')),over=function(){
            var $$=$(this),menu=getMenu($$);
            clearTimeout(menu.sfTimer);
            $$.showSuperfishUl().siblings().hideSuperfishUl();
        },out=function(){
            var $$=$(this),menu=getMenu($$),o=sf.op;
            clearTimeout(menu.sfTimer);
            menu.sfTimer=setTimeout(function(){
                o.retainPath=($.inArray($$[0],o.$path)>-1);
                $$.hideSuperfishUl();
                if(o.$path.length&&$$.parents(['li.',o.hoverClass].join('')).length<1){
                    over.call(o.$path);
                }
            },o.delay);
    },getMenu=function($menu){
        var menu=$menu.parents(['ul.',c.menuClass,':first'].join(''))[0];
        sf.op=sf.o[menu.serial];
        return menu;
    },addArrow=function($a){
        $a.addClass(c.anchorClass).append($arrow.clone());
    };

    return this.each(function(){
        var s=this.serial=sf.o.length;
        var o=$.extend({},sf.defaults,op);
        o.$path=$('li.'+o.pathClass,this).slice(0,o.pathLevels).each(function(){
            $(this).addClass([o.hoverClass,c.bcClass].join(' '))
            .filter('li:has(ul)').removeClass(o.pathClass);
        });
        sf.o[s]=sf.op=o;
        $('li:has(ul)',this)[($.fn.hoverIntent&&!o.disableHI)?'hoverIntent':'hover'](over,out).each(function(){
            if(o.autoArrows)addArrow($('>a:first-child',this));
        })
        .not('.'+c.bcClass)
        .hideSuperfishUl();
        var $a=$('a',this);
        $a.each(function(i){
            var $li=$a.eq(i).parents('li');
            $a.eq(i).focus(function(){
                over.call($li);
            }).blur(function(){
                out.call($li);
            });
        });
        o.onInit.call(this);
    }).each(function(){
        var menuClasses=[c.menuClass];
        if(sf.op.dropShadows&&!($.browser.msie&&$.browser.version<7))menuClasses.push(c.shadowClass);
        $(this).addClass(menuClasses.join(' '));
    });
};

var sf=$.fn.superfish;
sf.o=[];
sf.op={};

sf.IE7fix=function(){
    var o=sf.op;
    if($.browser.msie&&$.browser.version>6&&o.dropShadows&&o.animation.opacity!=undefined)
        this.toggleClass(sf.c.shadowClass+'-off');
};

sf.c={
    bcClass:'sf-breadcrumb',
    menuClass:'sf-js-enabled',
    anchorClass:'sf-with-ul',
    arrowClass:'sf-sub-indicator',
    shadowClass:'sf-shadow'
};

sf.defaults={
    hoverClass:'sfHover',
    pathClass:'overideThisToUse',
    pathLevels:1,
    delay:800,
    animation:{
        opacity:'show'
    },
    speed:'normal',
    autoArrows:true,
    dropShadows:true,
    disableHI:false,
    onInit:function(){},
    onBeforeShow:function(){},
    onShow:function(){},
    onHide:function(){}
};

$.fn.extend({
    hideSuperfishUl:function(){
        var o=sf.op,not=(o.retainPath===true)?o.$path:'';
        o.retainPath=false;
        var $ul=$(['li.',o.hoverClass].join(''),this).add(this).not(not).removeClass(o.hoverClass)
        .find('>ul').hide().css('visibility','hidden');
        o.onHide.call($ul);
        return this;
    },
    showSuperfishUl:function(){
        var o=sf.op,sh=sf.c.shadowClass+'-off',$ul=this.addClass(o.hoverClass)
        .find('>ul:hidden').css('visibility','visible');
        sf.IE7fix.call($ul);
        o.onBeforeShow.call($ul);
        $ul.animate(o.animation,o.speed,o.easing,function()

        {
            sf.IE7fix.call($ul);
            o.onShow.call($ul);
        });
        return this;
    }
});
})(jQuery);
(function($){
    $.fn.hoverIntent=function(f,g){
        var cfg={
            sensitivity:7,
            interval:100,
            timeout:0
        };

        cfg=$.extend(cfg,g?{
            over:f,
            out:g
        }:f);
        var cX,cY,pX,pY;
        var track=function(ev){
            cX=ev.pageX;
            cY=ev.pageY;
        };

        var compare=function(ev,ob){
            ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);
            if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){
                $(ob).unbind("mousemove",track);
                ob.hoverIntent_s=1;
                return cfg.over.apply(ob,[ev]);
            }else{
                pX=cX;
                pY=cY;
                ob.hoverIntent_t=setTimeout(function(){
                    compare(ev,ob);
                },cfg.interval);
            }
        };

    var delay=function(ev,ob){
        ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);
        ob.hoverIntent_s=0;
        return cfg.out.apply(ob,[ev]);
    };

    var handleHover=function(e){
        var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;
        while(p&&p!=this){
            try{
                p=p.parentNode;
            }catch(e){
                p=this;
            }
        }
    if(p==this){
        return false;
    }
    var ev=$.extend({},e);
    var ob=this;
    if(ob.hoverIntent_t){
        ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);
    }
    if(e.type=="mouseover"){
        pX=ev.pageX;
        pY=ev.pageY;
        $(ob).bind("mousemove",track);
        if(ob.hoverIntent_s!=1){
            ob.hoverIntent_t=setTimeout(function(){
                compare(ev,ob);
            },cfg.interval);
        }
    }else{
    $(ob).unbind("mousemove",track);
    if(ob.hoverIntent_s==1){
        ob.hoverIntent_t=setTimeout(function(){
            delay(ev,ob);
        },cfg.timeout);
    }
}
};

return this.mouseover(handleHover).mouseout(handleHover);
};

})(jQuery);
(function($){
    var ver="2.74";
    if($.support==undefined){
        $.support={
            opacity:!($.browser.msie)
            };

}
function debug(s){
    if($.fn.cycle.debug){
        log(s);
    }
}
function log(){
    if(window.console&&window.console.log){
        window.console.log("[cycle] "+Array.prototype.join.call(arguments," "));
    }
}
$.fn.cycle=function(options,arg2){
    var o={
        s:this.selector,
        c:this.context
        };

    if(this.length===0&&options!="stop"){
        if(!$.isReady&&o.s){
            log("DOM not ready, queuing slideshow");
            $(function(){
                $(o.s,o.c).cycle(options,arg2);
            });
            return this;
        }
        log("terminating; zero elements found by selector"+($.isReady?"":" (DOM not ready)"));
        return this;
    }
    return this.each(function(){
        var opts=handleArguments(this,options,arg2);
        if(opts===false){
            return;
        }
        if(this.cycleTimeout){
            clearTimeout(this.cycleTimeout);
        }
        this.cycleTimeout=this.cyclePause=0;
        var $cont=$(this);
        var $slides=opts.slideExpr?$(opts.slideExpr,this):$cont.children();
        var els=$slides.get();
        if(els.length<2){
            log("terminating; too few slides: "+els.length);
            return;
        }
        var opts2=buildOptions($cont,$slides,els,opts,o);
        if(opts2===false){
            return;
        }
        var startTime=opts2.continuous?10:getTimeout(opts2.currSlide,opts2.nextSlide,opts2,!opts2.rev);
        if(startTime){
            startTime+=(opts2.delay||0);
            if(startTime<10){
                startTime=10;
            }
            debug("first timeout: "+startTime);
            this.cycleTimeout=setTimeout(function(){
                go(els,opts2,0,!opts2.rev);
            },startTime);
        }
    });
};

function handleArguments(cont,options,arg2){
    if(cont.cycleStop==undefined){
        cont.cycleStop=0;
    }
    if(options===undefined||options===null){
        options={};

}
if(options.constructor==String){
    switch(options){
        case"stop":
            cont.cycleStop++;
            if(cont.cycleTimeout){
            clearTimeout(cont.cycleTimeout);
        }
        cont.cycleTimeout=0;
        $(cont).removeData("cycle.opts");
            return false;
        case"toggle":
            cont.cyclePause=(cont.cyclePause===1)?0:1;
            return false;
        case"pause":
            cont.cyclePause=1;
            return false;
        case"resume":
            cont.cyclePause=0;
            if(arg2===true){
            options=$(cont).data("cycle.opts");
            if(!options){
                log("options not found, can not resume");
                return false;
            }
            if(cont.cycleTimeout){
                clearTimeout(cont.cycleTimeout);
                cont.cycleTimeout=0;
            }
            go(options.elements,options,1,1);
        }
        return false;
        case"prev":case"next":
            var opts=$(cont).data("cycle.opts");
            if(!opts){
            log('options not found, "prev/next" ignored');
            return false;
        }
        $.fn.cycle[options](opts);
            return false;
        default:
            options={
            fx:options
        };

}
return options;
}else{
    if(options.constructor==Number){
        var num=options;
        options=$(cont).data("cycle.opts");
        if(!options){
            log("options not found, can not advance slide");
            return false;
        }
        if(num<0||num>=options.elements.length){
            log("invalid slide index: "+num);
            return false;
        }
        options.nextSlide=num;
        if(cont.cycleTimeout){
            clearTimeout(cont.cycleTimeout);
            cont.cycleTimeout=0;
        }
        if(typeof arg2=="string"){
            options.oneTimeFx=arg2;
        }
        go(options.elements,options,1,num>=options.currSlide);
        return false;
    }
}
return options;
}
function removeFilter(el,opts){
    if(!$.support.opacity&&opts.cleartype&&el.style.filter){
        try{
            el.style.removeAttribute("filter");
        }catch(smother){}
    }
}
function buildOptions($cont,$slides,els,options,o){
    var opts=$.extend({},$.fn.cycle.defaults,options||{},$.metadata?$cont.metadata():$.meta?$cont.data():{});
    if(opts.autostop){
        opts.countdown=opts.autostopCount||els.length;
    }
    var cont=$cont[0];
    $cont.data("cycle.opts",opts);
    opts.$cont=$cont;
    opts.stopCount=cont.cycleStop;
    opts.elements=els;
    opts.before=opts.before?[opts.before]:[];
    opts.after=opts.after?[opts.after]:[];
    opts.after.unshift(function(){
        opts.busy=0;
    });
    if(!$.support.opacity&&opts.cleartype){
        opts.after.push(function(){
            removeFilter(this,opts);
        });
    }
    if(opts.continuous){
        opts.after.push(function(){
            go(els,opts,0,!opts.rev);
        });
    }
    saveOriginalOpts(opts);
    if(!$.support.opacity&&opts.cleartype&&!opts.cleartypeNoBg){
        clearTypeFix($slides);
    }
    if($cont.css("position")=="static"){
        $cont.css("position","relative");
    }
    if(opts.width){
        $cont.width(opts.width);
    }
    if(opts.height&&opts.height!="auto"){
        $cont.height(opts.height);
    }
    if(opts.startingSlide){
        opts.startingSlide=parseInt(opts.startingSlide);
    }
    if(opts.random){
        opts.randomMap=[];
        for(var i=0;i<els.length;i++){
            opts.randomMap.push(i);
        }
        opts.randomMap.sort(function(a,b){
            return Math.random()-0.5;
        });
        opts.randomIndex=0;
        opts.startingSlide=opts.randomMap[0];
    }else{
        if(opts.startingSlide>=els.length){
            opts.startingSlide=0;
        }
    }
    opts.currSlide=opts.startingSlide=opts.startingSlide||0;
var first=opts.startingSlide;
$slides.css({
    position:"absolute",
    top:0,
    left:0
}).hide().each(function(i){
    var z=first?i>=first?els.length-(i-first):first-i:els.length-i;
    $(this).css("z-index",z);
});
$(els[first]).css("opacity",1).show();
removeFilter(els[first],opts);
if(opts.fit&&opts.width){
    $slides.width(opts.width);
}
if(opts.fit&&opts.height&&opts.height!="auto"){
    $slides.height(opts.height);
}
var reshape=opts.containerResize&&!$cont.innerHeight();
if(reshape){
    var maxw=0,maxh=0;
    for(var j=0;j<els.length;j++){
        var $e=$(els[j]),e=$e[0],w=$e.outerWidth(),h=$e.outerHeight();
        if(!w){
            w=e.offsetWidth;
        }
        if(!h){
            h=e.offsetHeight;
        }
        maxw=w>maxw?w:maxw;
        maxh=h>maxh?h:maxh;
    }
    if(maxw>0&&maxh>0){
        $cont.css({
            width:maxw+"px",
            height:maxh+"px"
            });
    }
}
if(opts.pause){
    $cont.hover(function(){
        this.cyclePause++;
    },function(){
        this.cyclePause--;
    });
}
if(supportMultiTransitions(opts)===false){
    return false;
}
var requeue=false;
options.requeueAttempts=options.requeueAttempts||0;
$slides.each(function(){
    var $el=$(this);
    this.cycleH=(opts.fit&&opts.height)?opts.height:$el.height();
    this.cycleW=(opts.fit&&opts.width)?opts.width:$el.width();
    if($el.is("img")){
        var loadingIE=($.browser.msie&&this.cycleW==28&&this.cycleH==30&&!this.complete);
        var loadingFF=($.browser.mozilla&&this.cycleW==34&&this.cycleH==19&&!this.complete);
        var loadingOp=($.browser.opera&&((this.cycleW==42&&this.cycleH==19)||(this.cycleW==37&&this.cycleH==17))&&!this.complete);
        var loadingOther=(this.cycleH==0&&this.cycleW==0&&!this.complete);
        if(loadingIE||loadingFF||loadingOp||loadingOther){
            if(o.s&&opts.requeueOnImageNotLoaded&&++options.requeueAttempts<100){
                log(options.requeueAttempts," - img slide not loaded, requeuing slideshow: ",this.src,this.cycleW,this.cycleH);
                setTimeout(function(){
                    $(o.s,o.c).cycle(options);
                },opts.requeueTimeout);
                requeue=true;
                return false;
            }else{
                log("could not determine size of image: "+this.src,this.cycleW,this.cycleH);
            }
        }
    }
return true;
});
if(requeue){
    return false;
}
opts.cssBefore=opts.cssBefore||{};

opts.animIn=opts.animIn||{};

opts.animOut=opts.animOut||{};

$slides.not(":eq("+first+")").css(opts.cssBefore);
if(opts.cssFirst){
    $($slides[first]).css(opts.cssFirst);
}
if(opts.timeout){
    opts.timeout=parseInt(opts.timeout);
    if(opts.speed.constructor==String){
        opts.speed=$.fx.speeds[opts.speed]||parseInt(opts.speed);
    }
    if(!opts.sync){
        opts.speed=opts.speed/2;
    }while((opts.timeout-opts.speed)<250){
        opts.timeout+=opts.speed;
    }
}
if(opts.easing){
    opts.easeIn=opts.easeOut=opts.easing;
}
if(!opts.speedIn){
    opts.speedIn=opts.speed;
}
if(!opts.speedOut){
    opts.speedOut=opts.speed;
}
opts.slideCount=els.length;
opts.currSlide=opts.lastSlide=first;
if(opts.random){
    opts.nextSlide=opts.currSlide;
    if(++opts.randomIndex==els.length){
        opts.randomIndex=0;
    }
    opts.nextSlide=opts.randomMap[opts.randomIndex];
}else{
    opts.nextSlide=opts.startingSlide>=(els.length-1)?0:opts.startingSlide+1;
}
if(!opts.multiFx){
    var init=$.fn.cycle.transitions[opts.fx];
    if($.isFunction(init)){
        init($cont,$slides,opts);
    }else{
        if(opts.fx!="custom"&&!opts.multiFx){
            log("unknown transition: "+opts.fx,"; slideshow terminating");
            return false;
        }
    }
}
var e0=$slides[first];
if(opts.before.length){
    opts.before[0].apply(e0,[e0,e0,opts,true]);
}
if(opts.after.length>1){
    opts.after[1].apply(e0,[e0,e0,opts,true]);
}
if(opts.next){
    $(opts.next).bind(opts.prevNextEvent,function(){
        return advance(opts,opts.rev?-1:1);
    });
}
if(opts.prev){
    $(opts.prev).bind(opts.prevNextEvent,function(){
        return advance(opts,opts.rev?1:-1);
    });
}
if(opts.pager){
    buildPager(els,opts);
}
exposeAddSlide(opts,els);
return opts;
}
function saveOriginalOpts(opts){
    opts.original={
        before:[],
        after:[]
    };

    opts.original.cssBefore=$.extend({},opts.cssBefore);
    opts.original.cssAfter=$.extend({},opts.cssAfter);
    opts.original.animIn=$.extend({},opts.animIn);
    opts.original.animOut=$.extend({},opts.animOut);
    $.each(opts.before,function(){
        opts.original.before.push(this);
    });
    $.each(opts.after,function(){
        opts.original.after.push(this);
    });
}
function supportMultiTransitions(opts){
    var i,tx,txs=$.fn.cycle.transitions;
    if(opts.fx.indexOf(",")>0){
        opts.multiFx=true;
        opts.fxs=opts.fx.replace(/\s*/g,"").split(",");
        for(i=0;i<opts.fxs.length;i++){
            var fx=opts.fxs[i];
            tx=txs[fx];
            if(!tx||!txs.hasOwnProperty(fx)||!$.isFunction(tx)){
                log("discarding unknown transition: ",fx);
                opts.fxs.splice(i,1);
                i--;
            }
        }
        if(!opts.fxs.length){
        log("No valid transitions named; slideshow terminating.");
        return false;
    }
}else{
    if(opts.fx=="all"){
        opts.multiFx=true;
        opts.fxs=[];
        for(p in txs){
            tx=txs[p];
            if(txs.hasOwnProperty(p)&&$.isFunction(tx)){
                opts.fxs.push(p);
            }
        }
        }
    }
if(opts.multiFx&&opts.randomizeEffects){
    var r1=Math.floor(Math.random()*20)+30;
    for(i=0;i<r1;i++){
        var r2=Math.floor(Math.random()*opts.fxs.length);
        opts.fxs.push(opts.fxs.splice(r2,1)[0]);
    }
    debug("randomized fx sequence: ",opts.fxs);
}
return true;
}
function exposeAddSlide(opts,els){
    opts.addSlide=function(newSlide,prepend){
        var $s=$(newSlide),s=$s[0];
        if(!opts.autostopCount){
            opts.countdown++;
        }
        els[prepend?"unshift":"push"](s);
        if(opts.els){
            opts.els[prepend?"unshift":"push"](s);
        }
        opts.slideCount=els.length;
        $s.css("position","absolute");
        $s[prepend?"prependTo":"appendTo"](opts.$cont);
        if(prepend){
            opts.currSlide++;
            opts.nextSlide++;
        }
        if(!$.support.opacity&&opts.cleartype&&!opts.cleartypeNoBg){
            clearTypeFix($s);
        }
        if(opts.fit&&opts.width){
            $s.width(opts.width);
        }
        if(opts.fit&&opts.height&&opts.height!="auto"){
            $slides.height(opts.height);
        }
        s.cycleH=(opts.fit&&opts.height)?opts.height:$s.height();
        s.cycleW=(opts.fit&&opts.width)?opts.width:$s.width();
        $s.css(opts.cssBefore);
        if(opts.pager){
            $.fn.cycle.createPagerAnchor(els.length-1,s,$(opts.pager),els,opts);
        }
        if($.isFunction(opts.onAddSlide)){
            opts.onAddSlide($s);
        }else{
            $s.hide();
        }
    };

}
$.fn.cycle.resetState=function(opts,fx){
    fx=fx||opts.fx;
    opts.before=[];
    opts.after=[];
    opts.cssBefore=$.extend({},opts.original.cssBefore);
    opts.cssAfter=$.extend({},opts.original.cssAfter);
    opts.animIn=$.extend({},opts.original.animIn);
    opts.animOut=$.extend({},opts.original.animOut);
    opts.fxFn=null;
    $.each(opts.original.before,function(){
        opts.before.push(this);
    });
    $.each(opts.original.after,function(){
        opts.after.push(this);
    });
    var init=$.fn.cycle.transitions[fx];
    if($.isFunction(init)){
        init(opts.$cont,$(opts.elements),opts);
    }
};

function go(els,opts,manual,fwd){
    if(manual&&opts.busy&&opts.manualTrump){
        $(els).stop(true,true);
        opts.busy=false;
    }
    if(opts.busy){
        return;
    }
    var p=opts.$cont[0],curr=els[opts.currSlide],next=els[opts.nextSlide];
    if(p.cycleStop!=opts.stopCount||p.cycleTimeout===0&&!manual){
        return;
    }
    if(!manual&&!p.cyclePause&&((opts.autostop&&(--opts.countdown<=0))||(opts.nowrap&&!opts.random&&opts.nextSlide<opts.currSlide))){
        if(opts.end){
            opts.end(opts);
        }
        return;
    }
    if(manual||!p.cyclePause){
        var fx=opts.fx;
        curr.cycleH=curr.cycleH||$(curr).height();
        curr.cycleW=curr.cycleW||$(curr).width();
        next.cycleH=next.cycleH||$(next).height();
        next.cycleW=next.cycleW||$(next).width();
        if(opts.multiFx){
            if(opts.lastFx==undefined||++opts.lastFx>=opts.fxs.length){
                opts.lastFx=0;
            }
            fx=opts.fxs[opts.lastFx];
            opts.currFx=fx;
        }
        if(opts.oneTimeFx){
            fx=opts.oneTimeFx;
            opts.oneTimeFx=null;
        }
        $.fn.cycle.resetState(opts,fx);
        if(opts.before.length){
            $.each(opts.before,function(i,o){
                if(p.cycleStop!=opts.stopCount){
                    return;
                }
                o.apply(next,[curr,next,opts,fwd]);
            });
        }
        var after=function(){
            $.each(opts.after,function(i,o){
                if(p.cycleStop!=opts.stopCount){
                    return;
                }
                o.apply(next,[curr,next,opts,fwd]);
            });
        };

        if(opts.nextSlide!=opts.currSlide){
            opts.busy=1;
            if(opts.fxFn){
                opts.fxFn(curr,next,opts,after,fwd);
            }else{
                if($.isFunction($.fn.cycle[opts.fx])){
                    $.fn.cycle[opts.fx](curr,next,opts,after);
                }else{
                    $.fn.cycle.custom(curr,next,opts,after,manual&&opts.fastOnEvent);
                }
            }
        }
    opts.lastSlide=opts.currSlide;
if(opts.random){
    opts.currSlide=opts.nextSlide;
    if(++opts.randomIndex==els.length){
        opts.randomIndex=0;
    }
    opts.nextSlide=opts.randomMap[opts.randomIndex];
}else{
    var roll=(opts.nextSlide+1)==els.length;
    opts.nextSlide=roll?0:opts.nextSlide+1;
    opts.currSlide=roll?els.length-1:opts.nextSlide-1;
}
if(opts.pager){
    $.fn.cycle.updateActivePagerLink(opts.pager,opts.currSlide);
}
}
var ms=0;
if(opts.timeout&&!opts.continuous){
    ms=getTimeout(curr,next,opts,fwd);
}else{
    if(opts.continuous&&p.cyclePause){
        ms=10;
    }
}
if(ms>0){
    p.cycleTimeout=setTimeout(function(){
        go(els,opts,0,!opts.rev);
    },ms);
}
}
$.fn.cycle.updateActivePagerLink=function(pager,currSlide){
    $(pager).each(function(){
        $(this).find("a").removeClass("activeSlide").filter("a:eq("+currSlide+")").addClass("activeSlide");
    });
};

function getTimeout(curr,next,opts,fwd){
    if(opts.timeoutFn){
        var t=opts.timeoutFn(curr,next,opts,fwd);
        while((t-opts.speed)<250){
            t+=opts.speed;
        }
        debug("calculated timeout: "+t+"; speed: "+opts.speed);
        if(t!==false){
            return t;
        }
    }
    return opts.timeout;
}
$.fn.cycle.next=function(opts){
    advance(opts,opts.rev?-1:1);
};

$.fn.cycle.prev=function(opts){
    advance(opts,opts.rev?1:-1);
};

function advance(opts,val){
    var els=opts.elements;
    var p=opts.$cont[0],timeout=p.cycleTimeout;
    if(timeout){
        clearTimeout(timeout);
        p.cycleTimeout=0;
    }
    if(opts.random&&val<0){
        opts.randomIndex--;
        if(--opts.randomIndex==-2){
            opts.randomIndex=els.length-2;
        }else{
            if(opts.randomIndex==-1){
                opts.randomIndex=els.length-1;
            }
        }
        opts.nextSlide=opts.randomMap[opts.randomIndex];
}else{
    if(opts.random){
        if(++opts.randomIndex==els.length){
            opts.randomIndex=0;
        }
        opts.nextSlide=opts.randomMap[opts.randomIndex];
    }else{
        opts.nextSlide=opts.currSlide+val;
        if(opts.nextSlide<0){
            if(opts.nowrap){
                return false;
            }
            opts.nextSlide=els.length-1;
        }else{
            if(opts.nextSlide>=els.length){
                if(opts.nowrap){
                    return false;
                }
                opts.nextSlide=0;
            }
        }
    }
}
if($.isFunction(opts.prevNextClick)){
    opts.prevNextClick(val>0,opts.nextSlide,els[opts.nextSlide]);
}
go(els,opts,1,val>=0);
return false;
}
function buildPager(els,opts){
    var $p=$(opts.pager);
    $.each(els,function(i,o){
        $.fn.cycle.createPagerAnchor(i,o,$p,els,opts);
    });
    $.fn.cycle.updateActivePagerLink(opts.pager,opts.startingSlide);
}
$.fn.cycle.createPagerAnchor=function(i,el,$p,els,opts){
    var a;
    if($.isFunction(opts.pagerAnchorBuilder)){
        a=opts.pagerAnchorBuilder(i,el);
    }else{
        a='<a href="#">'+(i+1)+"</a>";
    }
    if(!a){
        return;
    }
    var $a=$(a);
    if($a.parents("body").length===0){
        var arr=[];
        if($p.length>1){
            $p.each(function(){
                var $clone=$a.clone(true);
                $(this).append($clone);
                arr.push($clone[0]);
            });
            $a=$(arr);
        }else{
            $a.appendTo($p);
        }
    }
    $a.bind(opts.pagerEvent,function(e){
    e.preventDefault();
    opts.nextSlide=i;
    var p=opts.$cont[0],timeout=p.cycleTimeout;
    if(timeout){
        clearTimeout(timeout);
        p.cycleTimeout=0;
    }
    if($.isFunction(opts.pagerClick)){
        opts.pagerClick(opts.nextSlide,els[opts.nextSlide]);
    }
    go(els,opts,1,opts.currSlide<i);
    return false;
});
if(opts.pagerEvent!="click"){
    $a.click(function(){
        return false;
    });
}
if(opts.pauseOnPagerHover){
    $a.hover(function(){
        opts.$cont[0].cyclePause++;
    },function(){
        opts.$cont[0].cyclePause--;
    });
}
};

$.fn.cycle.hopsFromLast=function(opts,fwd){
    var hops,l=opts.lastSlide,c=opts.currSlide;
    if(fwd){
        hops=c>l?c-l:opts.slideCount-l;
    }else{
        hops=c<l?l-c:l+opts.slideCount-c;
    }
    return hops;
};

function clearTypeFix($slides){
    function hex(s){
        s=parseInt(s).toString(16);
        return s.length<2?"0"+s:s;
    }
    function getBg(e){
        for(;e&&e.nodeName.toLowerCase()!="html";e=e.parentNode){
            var v=$.css(e,"background-color");
            if(v.indexOf("rgb")>=0){
                var rgb=v.match(/\d+/g);
                return"#"+hex(rgb[0])+hex(rgb[1])+hex(rgb[2]);
            }
            if(v&&v!="transparent"){
                return v;
            }
        }
        return"#ffffff";
}
$slides.each(function(){
    $(this).css("background-color",getBg(this));
});
}
$.fn.cycle.commonReset=function(curr,next,opts,w,h,rev){
    $(opts.elements).not(curr).hide();
    opts.cssBefore.opacity=1;
    opts.cssBefore.display="block";
    if(w!==false&&next.cycleW>0){
        opts.cssBefore.width=next.cycleW;
    }
    if(h!==false&&next.cycleH>0){
        opts.cssBefore.height=next.cycleH;
    }
    opts.cssAfter=opts.cssAfter||{};

    opts.cssAfter.display="none";
    $(curr).css("zIndex",opts.slideCount+(rev===true?1:0));
    $(next).css("zIndex",opts.slideCount+(rev===true?0:1));
};

$.fn.cycle.custom=function(curr,next,opts,cb,speedOverride){
    var $l=$(curr),$n=$(next);
    var speedIn=opts.speedIn,speedOut=opts.speedOut,easeIn=opts.easeIn,easeOut=opts.easeOut;
    $n.css(opts.cssBefore);
    if(speedOverride){
        if(typeof speedOverride=="number"){
            speedIn=speedOut=speedOverride;
        }else{
            speedIn=speedOut=1;
        }
        easeIn=easeOut=null;
    }
    var fn=function(){
        $n.animate(opts.animIn,speedIn,easeIn,cb);
    };

    $l.animate(opts.animOut,speedOut,easeOut,function(){
        if(opts.cssAfter){
            $l.css(opts.cssAfter);
        }
        if(!opts.sync){
            fn();
        }
    });
if(opts.sync){
    fn();
}
};

$.fn.cycle.transitions={
    fade:function($cont,$slides,opts){
        $slides.not(":eq("+opts.currSlide+")").css("opacity",0);
        opts.before.push(function(curr,next,opts){
            $.fn.cycle.commonReset(curr,next,opts);
            opts.cssBefore.opacity=0;
        });
        opts.animIn={
            opacity:1
        };

        opts.animOut={
            opacity:0
        };

        opts.cssBefore={
            top:0,
            left:0
        };

}
};

$.fn.cycle.ver=function(){
    return ver;
};

$.fn.cycle.defaults={
    fx:"fade",
    timeout:4000,
    timeoutFn:null,
    continuous:0,
    speed:1000,
    speedIn:null,
    speedOut:null,
    next:null,
    prev:null,
    prevNextClick:null,
    prevNextEvent:"click",
    pager:null,
    pagerClick:null,
    pagerEvent:"click",
    pagerAnchorBuilder:null,
    before:null,
    after:null,
    end:null,
    easing:null,
    easeIn:null,
    easeOut:null,
    shuffle:null,
    animIn:null,
    animOut:null,
    cssBefore:null,
    cssAfter:null,
    fxFn:null,
    height:"auto",
    startingSlide:0,
    sync:1,
    random:0,
    fit:0,
    containerResize:1,
    pause:0,
    pauseOnPagerHover:0,
    autostop:0,
    autostopCount:0,
    delay:0,
    slideExpr:null,
    cleartype:!$.support.opacity,
    cleartypeNoBg:false,
    nowrap:0,
    fastOnEvent:0,
    randomizeEffects:1,
    rev:0,
    manualTrump:true,
    requeueOnImageNotLoaded:true,
    requeueTimeout:250
};

})(jQuery);
(function($){
    $.fn.cycle.transitions.none=function($cont,$slides,opts){
        opts.fxFn=function(curr,next,opts,after){
            $(next).show();
            $(curr).hide();
            after();
        };

};

$.fn.cycle.transitions.scrollUp=function($cont,$slides,opts){
    $cont.css("overflow","hidden");
    opts.before.push($.fn.cycle.commonReset);
    var h=$cont.height();
    opts.cssBefore={
        top:h,
        left:0
    };

    opts.cssFirst={
        top:0
    };

    opts.animIn={
        top:0
    };

    opts.animOut={
        top:-h
        };

};

$.fn.cycle.transitions.scrollDown=function($cont,$slides,opts){
    $cont.css("overflow","hidden");
    opts.before.push($.fn.cycle.commonReset);
    var h=$cont.height();
    opts.cssFirst={
        top:0
    };

    opts.cssBefore={
        top:-h,
        left:0
    };

    opts.animIn={
        top:0
    };

    opts.animOut={
        top:h
    };

};

$.fn.cycle.transitions.scrollLeft=function($cont,$slides,opts){
    $cont.css("overflow","hidden");
    opts.before.push($.fn.cycle.commonReset);
    var w=$cont.width();
    opts.cssFirst={
        left:0
    };

    opts.cssBefore={
        left:w,
        top:0
    };

    opts.animIn={
        left:0
    };

    opts.animOut={
        left:0-w
        };

};

$.fn.cycle.transitions.scrollRight=function($cont,$slides,opts){
    $cont.css("overflow","hidden");
    opts.before.push($.fn.cycle.commonReset);
    var w=$cont.width();
    opts.cssFirst={
        left:0
    };

    opts.cssBefore={
        left:-w,
        top:0
    };

    opts.animIn={
        left:0
    };

    opts.animOut={
        left:w
    };

};

$.fn.cycle.transitions.scrollHorz=function($cont,$slides,opts){
    $cont.css("overflow","hidden").width();
    opts.before.push(function(curr,next,opts,fwd){
        $.fn.cycle.commonReset(curr,next,opts);
        opts.cssBefore.left=fwd?(next.cycleW-1):(1-next.cycleW);
        opts.animOut.left=fwd?-curr.cycleW:curr.cycleW;
    });
    opts.cssFirst={
        left:0
    };

    opts.cssBefore={
        top:0
    };

    opts.animIn={
        left:0
    };

    opts.animOut={
        top:0
    };

};

$.fn.cycle.transitions.scrollVert=function($cont,$slides,opts){
    $cont.css("overflow","hidden");
    opts.before.push(function(curr,next,opts,fwd){
        $.fn.cycle.commonReset(curr,next,opts);
        opts.cssBefore.top=fwd?(1-next.cycleH):(next.cycleH-1);
        opts.animOut.top=fwd?curr.cycleH:-curr.cycleH;
    });
    opts.cssFirst={
        top:0
    };

    opts.cssBefore={
        left:0
    };

    opts.animIn={
        top:0
    };

    opts.animOut={
        left:0
    };

};

$.fn.cycle.transitions.slideX=function($cont,$slides,opts){
    opts.before.push(function(curr,next,opts){
        $(opts.elements).not(curr).hide();
        $.fn.cycle.commonReset(curr,next,opts,false,true);
        opts.animIn.width=next.cycleW;
    });
    opts.cssBefore={
        left:0,
        top:0,
        width:0
    };

    opts.animIn={
        width:"show"
    };

    opts.animOut={
        width:0
    };

};

$.fn.cycle.transitions.slideY=function($cont,$slides,opts){
    opts.before.push(function(curr,next,opts){
        $(opts.elements).not(curr).hide();
        $.fn.cycle.commonReset(curr,next,opts,true,false);
        opts.animIn.height=next.cycleH;
    });
    opts.cssBefore={
        left:0,
        top:0,
        height:0
    };

    opts.animIn={
        height:"show"
    };

    opts.animOut={
        height:0
    };

};

$.fn.cycle.transitions.shuffle=function($cont,$slides,opts){
    var i,w=$cont.css("overflow","visible").width();
    $slides.css({
        left:0,
        top:0
    });
    opts.before.push(function(curr,next,opts){
        $.fn.cycle.commonReset(curr,next,opts,true,true,true);
    });
    if(!opts.speedAdjusted){
        opts.speed=opts.speed/2;
        opts.speedAdjusted=true;
    }
    opts.random=0;
    opts.shuffle=opts.shuffle||{
        left:-w,
        top:15
    };

    opts.els=[];
    for(i=0;i<$slides.length;i++){
        opts.els.push($slides[i]);
    }
    for(i=0;i<opts.currSlide;i++){
        opts.els.push(opts.els.shift());
    }
    opts.fxFn=function(curr,next,opts,cb,fwd){
        var $el=fwd?$(curr):$(next);
        $(next).css(opts.cssBefore);
        var count=opts.slideCount;
        $el.animate(opts.shuffle,opts.speedIn,opts.easeIn,function(){
            var hops=$.fn.cycle.hopsFromLast(opts,fwd);
            for(var k=0;k<hops;k++){
                fwd?opts.els.push(opts.els.shift()):opts.els.unshift(opts.els.pop());
            }
            if(fwd){
                for(var i=0,len=opts.els.length;i<len;i++){
                    $(opts.els[i]).css("z-index",len-i+count);
                }
                }else{
            var z=$(curr).css("z-index");
            $el.css("z-index",parseInt(z)+1+count);
        }
        $el.animate({
            left:0,
            top:0
        },opts.speedOut,opts.easeOut,function(){
            $(fwd?this:curr).hide();
            if(cb){
                cb();
            }
        });
    });
};

opts.cssBefore={
    display:"block",
    opacity:1,
    top:0,
    left:0
};

};

$.fn.cycle.transitions.turnUp=function($cont,$slides,opts){
    opts.before.push(function(curr,next,opts){
        $.fn.cycle.commonReset(curr,next,opts,true,false);
        opts.cssBefore.top=next.cycleH;
        opts.animIn.height=next.cycleH;
    });
    opts.cssFirst={
        top:0
    };

    opts.cssBefore={
        left:0,
        height:0
    };

    opts.animIn={
        top:0
    };

    opts.animOut={
        height:0
    };

};

$.fn.cycle.transitions.turnDown=function($cont,$slides,opts){
    opts.before.push(function(curr,next,opts){
        $.fn.cycle.commonReset(curr,next,opts,true,false);
        opts.animIn.height=next.cycleH;
        opts.animOut.top=curr.cycleH;
    });
    opts.cssFirst={
        top:0
    };

    opts.cssBefore={
        left:0,
        top:0,
        height:0
    };

    opts.animOut={
        height:0
    };

};

$.fn.cycle.transitions.turnLeft=function($cont,$slides,opts){
    opts.before.push(function(curr,next,opts){
        $.fn.cycle.commonReset(curr,next,opts,false,true);
        opts.cssBefore.left=next.cycleW;
        opts.animIn.width=next.cycleW;
    });
    opts.cssBefore={
        top:0,
        width:0
    };

    opts.animIn={
        left:0
    };

    opts.animOut={
        width:0
    };

};

$.fn.cycle.transitions.turnRight=function($cont,$slides,opts){
    opts.before.push(function(curr,next,opts){
        $.fn.cycle.commonReset(curr,next,opts,false,true);
        opts.animIn.width=next.cycleW;
        opts.animOut.left=curr.cycleW;
    });
    opts.cssBefore={
        top:0,
        left:0,
        width:0
    };

    opts.animIn={
        left:0
    };

    opts.animOut={
        width:0
    };

};

$.fn.cycle.transitions.zoom=function($cont,$slides,opts){
    opts.before.push(function(curr,next,opts){
        $.fn.cycle.commonReset(curr,next,opts,false,false,true);
        opts.cssBefore.top=next.cycleH/2;
        opts.cssBefore.left=next.cycleW/2;
        opts.animIn={
            top:0,
            left:0,
            width:next.cycleW,
            height:next.cycleH
            };

        opts.animOut={
            width:0,
            height:0,
            top:curr.cycleH/2,
            left:curr.cycleW/2
            };

    });
opts.cssFirst={
    top:0,
    left:0
};

opts.cssBefore={
    width:0,
    height:0
};

};

$.fn.cycle.transitions.fadeZoom=function($cont,$slides,opts){
    opts.before.push(function(curr,next,opts){
        $.fn.cycle.commonReset(curr,next,opts,false,false);
        opts.cssBefore.left=next.cycleW/2;
        opts.cssBefore.top=next.cycleH/2;
        opts.animIn={
            top:0,
            left:0,
            width:next.cycleW,
            height:next.cycleH
            };

    });
opts.cssBefore={
    width:0,
    height:0
};

opts.animOut={
    opacity:0
};

};

$.fn.cycle.transitions.blindX=function($cont,$slides,opts){
    var w=$cont.css("overflow","hidden").width();
    opts.before.push(function(curr,next,opts){
        $.fn.cycle.commonReset(curr,next,opts);
        opts.animIn.width=next.cycleW;
        opts.animOut.left=curr.cycleW;
    });
    opts.cssBefore={
        left:w,
        top:0
    };

    opts.animIn={
        left:0
    };

    opts.animOut={
        left:w
    };

};

$.fn.cycle.transitions.blindY=function($cont,$slides,opts){
    var h=$cont.css("overflow","hidden").height();
    opts.before.push(function(curr,next,opts){
        $.fn.cycle.commonReset(curr,next,opts);
        opts.animIn.height=next.cycleH;
        opts.animOut.top=curr.cycleH;
    });
    opts.cssBefore={
        top:h,
        left:0
    };

    opts.animIn={
        top:0
    };

    opts.animOut={
        top:h
    };

};

$.fn.cycle.transitions.blindZ=function($cont,$slides,opts){
    var h=$cont.css("overflow","hidden").height();
    var w=$cont.width();
    opts.before.push(function(curr,next,opts){
        $.fn.cycle.commonReset(curr,next,opts);
        opts.animIn.height=next.cycleH;
        opts.animOut.top=curr.cycleH;
    });
    opts.cssBefore={
        top:h,
        left:w
    };

    opts.animIn={
        top:0,
        left:0
    };

    opts.animOut={
        top:h,
        left:w
    };

};

$.fn.cycle.transitions.growX=function($cont,$slides,opts){
    opts.before.push(function(curr,next,opts){
        $.fn.cycle.commonReset(curr,next,opts,false,true);
        opts.cssBefore.left=this.cycleW/2;
        opts.animIn={
            left:0,
            width:this.cycleW
            };

        opts.animOut={
            left:0
        };

    });
opts.cssBefore={
    width:0,
    top:0
};

};

$.fn.cycle.transitions.growY=function($cont,$slides,opts){
    opts.before.push(function(curr,next,opts){
        $.fn.cycle.commonReset(curr,next,opts,true,false);
        opts.cssBefore.top=this.cycleH/2;
        opts.animIn={
            top:0,
            height:this.cycleH
            };

        opts.animOut={
            top:0
        };

    });
opts.cssBefore={
    height:0,
    left:0
};

};

$.fn.cycle.transitions.curtainX=function($cont,$slides,opts){
    opts.before.push(function(curr,next,opts){
        $.fn.cycle.commonReset(curr,next,opts,false,true,true);
        opts.cssBefore.left=next.cycleW/2;
        opts.animIn={
            left:0,
            width:this.cycleW
            };

        opts.animOut={
            left:curr.cycleW/2,
            width:0
        };

    });
opts.cssBefore={
    top:0,
    width:0
};

};

$.fn.cycle.transitions.curtainY=function($cont,$slides,opts){
    opts.before.push(function(curr,next,opts){
        $.fn.cycle.commonReset(curr,next,opts,true,false,true);
        opts.cssBefore.top=next.cycleH/2;
        opts.animIn={
            top:0,
            height:next.cycleH
            };

        opts.animOut={
            top:curr.cycleH/2,
            height:0
        };

    });
opts.cssBefore={
    left:0,
    height:0
};

};

$.fn.cycle.transitions.cover=function($cont,$slides,opts){
    var d=opts.direction||"left";
    var w=$cont.css("overflow","hidden").width();
    var h=$cont.height();
    opts.before.push(function(curr,next,opts){
        $.fn.cycle.commonReset(curr,next,opts);
        if(d=="right"){
            opts.cssBefore.left=-w;
        }else{
            if(d=="up"){
                opts.cssBefore.top=h;
            }else{
                if(d=="down"){
                    opts.cssBefore.top=-h;
                }else{
                    opts.cssBefore.left=w;
                }
            }
        }
    });
opts.animIn={
    left:0,
    top:0
};

opts.animOut={
    opacity:1
};

opts.cssBefore={
    top:0,
    left:0
};

};

$.fn.cycle.transitions.uncover=function($cont,$slides,opts){
    var d=opts.direction||"left";
    var w=$cont.css("overflow","hidden").width();
    var h=$cont.height();
    opts.before.push(function(curr,next,opts){
        $.fn.cycle.commonReset(curr,next,opts,true,true,true);
        if(d=="right"){
            opts.animOut.left=w;
        }else{
            if(d=="up"){
                opts.animOut.top=-h;
            }else{
                if(d=="down"){
                    opts.animOut.top=h;
                }else{
                    opts.animOut.left=-w;
                }
            }
        }
    });
opts.animIn={
    left:0,
    top:0
};

opts.animOut={
    opacity:1
};

opts.cssBefore={
    top:0,
    left:0
};

};

$.fn.cycle.transitions.toss=function($cont,$slides,opts){
    var w=$cont.css("overflow","visible").width();
    var h=$cont.height();
    opts.before.push(function(curr,next,opts){
        $.fn.cycle.commonReset(curr,next,opts,true,true,true);
        if(!opts.animOut.left&&!opts.animOut.top){
            opts.animOut={
                left:w*2,
                top:-h/2,
                opacity:0
            };

    }else{
        opts.animOut.opacity=0;
    }
    });
opts.cssBefore={
    left:0,
    top:0
};

opts.animIn={
    left:0
};

};

$.fn.cycle.transitions.wipe=function($cont,$slides,opts){
    var w=$cont.css("overflow","hidden").width();
    var h=$cont.height();
    opts.cssBefore=opts.cssBefore||{};

    var clip;
    if(opts.clip){
        if(/l2r/.test(opts.clip)){
            clip="rect(0px 0px "+h+"px 0px)";
        }else{
            if(/r2l/.test(opts.clip)){
                clip="rect(0px "+w+"px "+h+"px "+w+"px)";
            }else{
                if(/t2b/.test(opts.clip)){
                    clip="rect(0px "+w+"px 0px 0px)";
                }else{
                    if(/b2t/.test(opts.clip)){
                        clip="rect("+h+"px "+w+"px "+h+"px 0px)";
                    }else{
                        if(/zoom/.test(opts.clip)){
                            var top=parseInt(h/2);
                            var left=parseInt(w/2);
                            clip="rect("+top+"px "+left+"px "+top+"px "+left+"px)";
                        }
                    }
                }
        }
}
}
opts.cssBefore.clip=opts.cssBefore.clip||clip||"rect(0px 0px 0px 0px)";
var d=opts.cssBefore.clip.match(/(\d+)/g);
var t=parseInt(d[0]),r=parseInt(d[1]),b=parseInt(d[2]),l=parseInt(d[3]);
opts.before.push(function(curr,next,opts){
    if(curr==next){
        return;
    }
    var $curr=$(curr),$next=$(next);
    $.fn.cycle.commonReset(curr,next,opts,true,true,false);
    opts.cssAfter.display="block";
    var step=1,count=parseInt((opts.speedIn/13))-1;
    (function f(){
        var tt=t?t-parseInt(step*(t/count)):0;
        var ll=l?l-parseInt(step*(l/count)):0;
        var bb=b<h?b+parseInt(step*((h-b)/count||1)):h;
        var rr=r<w?r+parseInt(step*((w-r)/count||1)):w;
        $next.css({
            clip:"rect("+tt+"px "+rr+"px "+bb+"px "+ll+"px)"
            });
        (step++<=count)?setTimeout(f,13):$curr.css("display","none");
    })();
});
opts.cssBefore={
    display:"block",
    opacity:1,
    top:0,
    left:0
};

opts.animIn={
    left:0
};

opts.animOut={
    left:0
};

};

})(jQuery);
;
(function($){
    var ua=navigator.userAgent;
    var moz=$.browser.mozilla&&/gecko/i.test(ua);
    var webkit=$.browser.safari&&/Safari\/[5-9]/.test(ua);
    var expr=$.browser.msie&&(function(){
        var div=document.createElement('div');
        try{
            div.style.setExpression('width','0+0');
            div.style.removeExpression('width');
        }
        catch(e){
            return false;
        }
        return true;
    })();
    function sz(el,p){
        return parseInt($.css(el,p))||0;
    };

    function hex2(s){
        var s=parseInt(s).toString(16);
        return(s.length<2)?'0'+s:s;
    };

    function gpc(node){
        for(;node&&node.nodeName.toLowerCase()!='html';node=node.parentNode){
            var v=$.css(node,'backgroundColor');
            if(v=='rgba(0, 0, 0, 0)')
                continue;
            if(v.indexOf('rgb')>=0){
                var rgb=v.match(/\d+/g);
                return'#'+hex2(rgb[0])+hex2(rgb[1])+hex2(rgb[2]);
            }
            if(v&&v!='transparent')
                return v;
        }
        return'#ffffff';
    };

    function getWidth(fx,i,width){
        switch(fx){
            case'round':
                return Math.round(width*(1-Math.cos(Math.asin(i/width))));
            case'cool':
                return Math.round(width*(1+Math.cos(Math.asin(i/width))));
            case'sharp':
                return Math.round(width*(1-Math.cos(Math.acos(i/width))));
            case'bite':
                return Math.round(width*(Math.cos(Math.asin((width-i-1)/width))));
            case'slide':
                return Math.round(width*(Math.atan2(i,width/i)));
            case'jut':
                return Math.round(width*(Math.atan2(width,(width-i-1))));
            case'curl':
                return Math.round(width*(Math.atan(i)));
            case'tear':
                return Math.round(width*(Math.cos(i)));
            case'wicked':
                return Math.round(width*(Math.tan(i)));
            case'long':
                return Math.round(width*(Math.sqrt(i)));
            case'sculpt':
                return Math.round(width*(Math.log((width-i-1),width)));
            case'dog':
                return(i&1)?(i+1):width;
            case'dog2':
                return(i&2)?(i+1):width;
            case'dog3':
                return(i&3)?(i+1):width;
            case'fray':
                return(i%2)*width;
            case'notch':
                return width;
            case'bevel':
                return i+1;
        }
    };

$.fn.corner=function(options){
    if(this.length==0){
        if(!$.isReady&&this.selector){
            var s=this.selector,c=this.context;
            $(function(){
                $(s,c).corner(options);
            });
        }
        return this;
    }
    return this.each(function(index){
        var $this=$(this);
        var o=[options||'',$this.attr($.fn.corner.defaults.metaAttr)||''].join(' ').toLowerCase();
        var keep=/keep/.test(o);
        var cc=((o.match(/cc:(#[0-9a-f]+)/)||[])[1]);
        var sc=((o.match(/sc:(#[0-9a-f]+)/)||[])[1]);
        var width=parseInt((o.match(/(\d+)px/)||[])[1])||10;
        var re=/round|bevel|notch|bite|cool|sharp|slide|jut|curl|tear|fray|wicked|sculpt|long|dog3|dog2|dog/;
        var fx=((o.match(re)||['round'])[0]);
        var edges={
            T:0,
            B:1
        };

        var opts={
            TL:/top|tl|left/.test(o),
            TR:/top|tr|right/.test(o),
            BL:/bottom|bl|left/.test(o),
            BR:/bottom|br|right/.test(o)
            };

        if(!opts.TL&&!opts.TR&&!opts.BL&&!opts.BR)
            opts={
                TL:1,
                TR:1,
                BL:1,
                BR:1
            };

        if($.fn.corner.defaults.useNative&&fx=='round'&&(moz||webkit)&&!cc&&!sc){
            if(opts.TL)
                $this.css(moz?'-moz-border-radius-topleft':'-webkit-border-top-left-radius',width+'px');
            if(opts.TR)
                $this.css(moz?'-moz-border-radius-topright':'-webkit-border-top-right-radius',width+'px');
            if(opts.BL)
                $this.css(moz?'-moz-border-radius-bottomleft':'-webkit-border-bottom-left-radius',width+'px');
            if(opts.BR)
                $this.css(moz?'-moz-border-radius-bottomright':'-webkit-border-bottom-right-radius',width+'px');
            return;
        }
        var strip=document.createElement('div');
        strip.style.overflow='hidden';
        strip.style.height='1px';
        strip.style.backgroundColor=sc||'transparent';
        strip.style.borderStyle='solid';
        var pad={
            T:parseInt($.css(this,'paddingTop'))||0,
            R:parseInt($.css(this,'paddingRight'))||0,
            B:parseInt($.css(this,'paddingBottom'))||0,
            L:parseInt($.css(this,'paddingLeft'))||0
            };

        if(typeof this.style.zoom!=undefined)this.style.zoom=1;
        if(!keep)this.style.border='none';
        strip.style.borderColor=cc||gpc(this.parentNode);
        var cssHeight=$.curCSS(this,'height');
        for(var j in edges){
            var bot=edges[j];
            if((bot&&(opts.BL||opts.BR))||(!bot&&(opts.TL||opts.TR))){
                strip.style.borderStyle='none '+(opts[j+'R']?'solid':'none')+' none '+(opts[j+'L']?'solid':'none');
                var d=document.createElement('div');
                $(d).addClass('jquery-corner');
                var ds=d.style;
                bot?this.appendChild(d):this.insertBefore(d,this.firstChild);
                if(bot&&cssHeight!='auto'){
                    if($.css(this,'position')=='static')
                        this.style.position='relative';
                    ds.position='absolute';
                    ds.bottom=ds.left=ds.padding=ds.margin='0';
                    if(expr)
                        ds.setExpression('width','this.parentNode.offsetWidth');else
                        ds.width='100%';
                }
                else if(!bot&&$.browser.msie){
                    if($.css(this,'position')=='static')
                        this.style.position='relative';
                    ds.position='absolute';
                    ds.top=ds.left=ds.right=ds.padding=ds.margin='0';
                    if(expr){
                        var bw=sz(this,'borderLeftWidth')+sz(this,'borderRightWidth');
                        ds.setExpression('width','this.parentNode.offsetWidth - '+bw+'+ "px"');
                    }
                    else
                        ds.width='100%';
                }
                else{
                    ds.position='relative';
                    ds.margin=!bot?'-'+pad.T+'px -'+pad.R+'px '+(pad.T-width)+'px -'+pad.L+'px':(pad.B-width)+'px -'+pad.R+'px -'+pad.B+'px -'+pad.L+'px';
                }
                for(var i=0;i<width;i++){
                    var w=Math.max(0,getWidth(fx,i,width));
                    var e=strip.cloneNode(false);
                    e.style.borderWidth='0 '+(opts[j+'R']?w:0)+'px 0 '+(opts[j+'L']?w:0)+'px';
                    bot?d.appendChild(e):d.insertBefore(e,d.firstChild);
                }
                }
            }
        });
};

$.fn.uncorner=function(){
    if(moz||webkit)
        this.css(moz?'-moz-border-radius':'-webkit-border-radius',0);
    $('div.jquery-corner',this).remove();
    return this;
};

$.fn.corner.defaults={
    useNative:true,
    metaAttr:'data-corner'
};

})(jQuery);
(function($){
    $.extend({
        tabs:{
            remoteCount:0
        }
    });
$.fn.tabs=function(initial,settings){
    if(typeof initial=='object')settings=initial;
    settings=$.extend({
        initial:(initial&&typeof initial=='number'&&initial>0)?--initial:0,
        disabled:null,
        bookmarkable:$.ajaxHistory?true:false,
        remote:false,
        spinner:'Loading&#8230;',
        hashPrefix:'remote-tab-',
        fxFade:null,
        fxSlide:null,
        fxShow:null,
        fxHide:null,
        fxSpeed:'normal',
        fxShowSpeed:null,
        fxHideSpeed:null,
        fxAutoHeight:false,
        onClick:null,
        onHide:null,
        onShow:null,
        navClass:'tabs-nav',
        selectedClass:'tabs-selected',
        disabledClass:'tabs-disabled',
        containerClass:'tabs-container',
        hideClass:'tabs-hide',
        loadingClass:'tabs-loading',
        tabStruct:'div'
    },settings||{});
    $.browser.msie6=$.browser.msie&&($.browser.version&&$.browser.version<7||/MSIE 6.0/.test(navigator.userAgent));
    function unFocus(){
        scrollTo(0,0);
    }
    return this.each(function(){
        var container=this;
        var nav=$('ul.'+settings.navClass,container);
        nav=nav.size()&&nav||$('>ul:eq(0)',container);
        var tabs=$('a',nav);
        if(settings.remote){
            tabs.each(function(){
                var id=settings.hashPrefix+(++$.tabs.remoteCount),hash='#'+id,url=this.href;
                this.href=hash;
                $('<div id="'+id+'" class="'+settings.containerClass+'"></div>').appendTo(container);
                $(this).bind('loadRemoteTab',function(e,callback){
                    var $$=$(this).addClass(settings.loadingClass),span=$('span',this)[0],tabTitle=span.innerHTML;
                    if(settings.spinner){
                        span.innerHTML='<em>'+settings.spinner+'</em>';
                    }
                    setTimeout(function(){
                        $(hash).load(url,function(){
                            if(settings.spinner){
                                span.innerHTML=tabTitle;
                            }
                            $$.removeClass(settings.loadingClass);
                            callback&&callback();
                        });
                    },0);
                });
            });
        }
        var containers=$('div.'+settings.containerClass,container);
        containers=containers.size()&&containers||$('>'+settings.tabStruct,container);
        nav.is('.'+settings.navClass)||nav.addClass(settings.navClass);
        containers.each(function(){
            var $$=$(this);
            $$.is('.'+settings.containerClass)||$$.addClass(settings.containerClass);
        });
        var hasSelectedClass=$('li',nav).index($('li.'+settings.selectedClass,nav)[0]);
        if(hasSelectedClass>=0){
            settings.initial=hasSelectedClass;
        }
        if(location.hash){
            tabs.each(function(i){
                if(this.hash==location.hash){
                    settings.initial=i;
                    if(($.browser.msie||$.browser.opera)&&!settings.remote){
                        var toShow=$(location.hash);
                        var toShowId=toShow.attr('id');
                        toShow.attr('id','');
                        setTimeout(function(){
                            toShow.attr('id',toShowId);
                        },500);
                    }
                    unFocus();
                    return false;
                }
            });
    }
    if($.browser.msie){
        unFocus();
    }
    containers.filter(':eq('+settings.initial+')').show().end().not(':eq('+settings.initial+')').addClass(settings.hideClass);
        $('li',nav).removeClass(settings.selectedClass).eq(settings.initial).addClass(settings.selectedClass);
        tabs.eq(settings.initial).trigger('loadRemoteTab').end();
        if(settings.fxAutoHeight){
        var _setAutoHeight=function(reset){
            var heights=$.map(containers.get(),function(el){
                var h,jq=$(el);
                if(reset){
                    if($.browser.msie6){
                        el.style.removeExpression('behaviour');
                        el.style.height='';
                        el.minHeight=null;
                    }
                    h=jq.css({
                        'min-height':''
                    }).height();
                }else{
                    h=jq.height();
                }
                return h;
            }).sort(function(a,b){
                return b-a;
            });
            if($.browser.msie6){
                containers.each(function(){
                    this.minHeight=heights[0]+'px';
                    this.style.setExpression('behaviour','this.style.height = this.minHeight ? this.minHeight : "1px"');
                });
            }else{
                containers.css({
                    'min-height':heights[0]+'px'
                    });
            }
        };

    _setAutoHeight();
        var cachedWidth=container.offsetWidth;
        var cachedHeight=container.offsetHeight;
        var watchFontSize=$('#tabs-watch-font-size').get(0)||$('<span id="tabs-watch-font-size">M</span>').css({
        display:'block',
        position:'absolute',
        visibility:'hidden'
    }).appendTo(document.body).get(0);
        var cachedFontSize=watchFontSize.offsetHeight;
        setInterval(function(){
        var currentWidth=container.offsetWidth;
        var currentHeight=container.offsetHeight;
        var currentFontSize=watchFontSize.offsetHeight;
        if(currentHeight>cachedHeight||currentWidth!=cachedWidth||currentFontSize!=cachedFontSize){
            _setAutoHeight((currentWidth>cachedWidth||currentFontSize<cachedFontSize));
            cachedWidth=currentWidth;
            cachedHeight=currentHeight;
            cachedFontSize=currentFontSize;
        }
    },50);
}
var showAnim={},hideAnim={},showSpeed=settings.fxShowSpeed||settings.fxSpeed,hideSpeed=settings.fxHideSpeed||settings.fxSpeed;
if(settings.fxSlide||settings.fxFade){
    if(settings.fxSlide){
        showAnim['height']='show';
        hideAnim['height']='hide';
    }
    if(settings.fxFade){
        showAnim['opacity']='show';
        hideAnim['opacity']='hide';
    }
}else{
    if(settings.fxShow){
        showAnim=settings.fxShow;
    }else{
        showAnim['min-width']=0;
        showSpeed=1;
    }
    if(settings.fxHide){
        hideAnim=settings.fxHide;
    }else{
        hideAnim['min-width']=0;
        hideSpeed=1;
    }
}
var onClick=settings.onClick,onHide=settings.onHide,onShow=settings.onShow;
tabs.bind('triggerTab',function(){
    var li=$(this).parents('li:eq(0)');
    if(container.locked||li.is('.'+settings.selectedClass)||li.is('.'+settings.disabledClass)){
        return false;
    }
    var hash=this.hash;
    if($.browser.msie){
        $(this).trigger('click');
        if(settings.bookmarkable){
            $.ajaxHistory.update(hash);
            location.hash=hash.replace('#','');
        }
    }else if($.browser.safari){
    var tempForm=$('<form action="'+hash+'"><div><input type="submit" value="h" /></div></form>').get(0);
    tempForm.submit();
    $(this).trigger('click');
    if(settings.bookmarkable){
        $.ajaxHistory.update(hash);
    }
}else{
    if(settings.bookmarkable){
        location.hash=hash.replace('#','');
    }else{
        $(this).trigger('click');
    }
}
});
tabs.bind('disableTab',function(){
    var li=$(this).parents('li:eq(0)');
    if($.browser.safari){
        li.animate({
            opacity:0
        },1,function(){
            li.css({
                opacity:''
            });
        });
    }
    li.addClass(settings.disabledClass);
});
if(settings.disabled&&settings.disabled.length){
    for(var i=0,k=settings.disabled.length;i<k;i++){
        tabs.eq(--settings.disabled[i]).trigger('disableTab').end();
    }
    };

tabs.bind('enableTab',function(){
    var li=$(this).parents('li:eq(0)');
    li.removeClass(settings.disabledClass);
    if($.browser.safari){
        li.animate({
            opacity:1
        },1,function(){
            li.css({
                opacity:''
            });
        });
    }
});
tabs.bind('click',function(e){
    var trueClick=e.clientX;
    var clicked=this,li=$(this).parents('li:eq(0)'),toShow=$(this.hash),toHide=containers.filter(':visible');
    if(container['locked']||li.is('.'+settings.selectedClass)||li.is('.'+settings.disabledClass)||typeof onClick=='function'&&onClick(this,toShow[0],toHide[0])===false){
        this.blur();
        return false;
    }
    container['locked']=true;
    if(toShow.size()){
        if($.browser.msie&&settings.bookmarkable){
            var toShowId=this.hash.replace('#','');
            toShow.attr('id','');
            setTimeout(function(){
                toShow.attr('id',toShowId);
            },0);
        }
        var resetCSS={
            display:'',
            overflow:'',
            height:''
        };

        if(!$.browser.msie){
            resetCSS['opacity']='';
        }
        function switchTab(){
            if(settings.bookmarkable&&trueClick){
                $.ajaxHistory.update(clicked.hash);
            }
            toHide.animate(hideAnim,hideSpeed,function(){
                $(clicked).parents('li:eq(0)').addClass(settings.selectedClass).siblings().removeClass(settings.selectedClass);
                toHide.addClass(settings.hideClass).css(resetCSS);
                if(typeof onHide=='function'){
                    onHide(clicked,toShow[0],toHide[0]);
                }
                if(!(settings.fxSlide||settings.fxFade||settings.fxShow)){
                    toShow.css('display','block');
                }
                toShow.animate(showAnim,showSpeed,function(){
                    toShow.removeClass(settings.hideClass).css(resetCSS);
                    if($.browser.msie){
                        toHide[0].style.filter='';
                        toShow[0].style.filter='';
                    }
                    if(typeof onShow=='function'){
                        onShow(clicked,toShow[0],toHide[0]);
                    }
                    container['locked']=null;
                });
            });
        }
        if(!settings.remote){
            switchTab();
        }else{
            $(clicked).trigger('loadRemoteTab',[switchTab]);
        }
    }else{
    alert('There is no such container.');
}
var scrollX=window.pageXOffset||document.documentElement&&document.documentElement.scrollLeft||document.body.scrollLeft||0;
var scrollY=window.pageYOffset||document.documentElement&&document.documentElement.scrollTop||document.body.scrollTop||0;
setTimeout(function(){
    window.scrollTo(scrollX,scrollY);
},0);
this.blur();
    return settings.bookmarkable&&!!trueClick;
});
if(settings.bookmarkable){
    $.ajaxHistory.initialize(function(){
        tabs.eq(settings.initial).trigger('click').end();
    });
}
});
};

var tabEvents=['triggerTab','disableTab','enableTab'];
for(var i=0;i<tabEvents.length;i++){
    $.fn[tabEvents[i]]=(function(tabEvent){
        return function(tab){
            return this.each(function(){
                var nav=$('ul.tabs-nav',this);
                nav=nav.size()&&nav||$('>ul:eq(0)',this);
                var a;
                if(!tab||typeof tab=='number'){
                    a=$('li a',nav).eq((tab&&tab>0&&tab-1||0));
                }else if(typeof tab=='string'){
                    a=$('li a[@href$="#'+tab+'"]',nav);
                }
                a.trigger(tabEvent);
            });
        };

    })(tabEvents[i]);
}
$.fn.activeTab=function(){
    var selectedTabs=[];
    this.each(function(){
        var nav=$('ul.tabs-nav',this);
        nav=nav.size()&&nav||$('>ul:eq(0)',this);
        var lis=$('li',nav);
        selectedTabs.push(lis.index(lis.filter('.tabs-selected')[0])+1);
    });
    return selectedTabs[0];
};

})(jQuery);
;
(function($){
    $.fn.ajaxSubmit=function(options){
        if(!this.length){
            log('ajaxSubmit: skipping submit process - no element selected');
            return this;
        }
        if(typeof options=='function')
            options={
                success:options
            };

        var url=$.trim(this.attr('action'));
        if(url){
            url=(url.match(/^([^#]+)/)||[])[1];
        }
        url=url||window.location.href||'';
        options=$.extend({
            url:url,
            type:this.attr('method')||'GET',
            iframeSrc:/^https/i.test(window.location.href||'')?'javascript:false':'about:blank'
            },options||{});
        var veto={};

        this.trigger('form-pre-serialize',[this,options,veto]);
        if(veto.veto){
            log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');
            return this;
        }
        if(options.beforeSerialize&&options.beforeSerialize(this,options)===false){
            log('ajaxSubmit: submit aborted via beforeSerialize callback');
            return this;
        }
        var a=this.formToArray(options.semantic);
        if(options.data){
            options.extraData=options.data;
            for(var n in options.data){
                if(options.data[n]instanceof Array){
                    for(var k in options.data[n])
                        a.push({
                            name:n,
                            value:options.data[n][k]
                            });
                    }
                else
                    a.push({
                        name:n,
                        value:options.data[n]
                        });
            }
            }
    if(options.beforeSubmit&&options.beforeSubmit(a,this,options)===false){
        log('ajaxSubmit: submit aborted via beforeSubmit callback');
        return this;
    }
    this.trigger('form-submit-validate',[a,this,options,veto]);
    if(veto.veto){
        log('ajaxSubmit: submit vetoed via form-submit-validate trigger');
        return this;
    }
    var q=$.param(a);
    if(options.type.toUpperCase()=='GET'){
        options.url+=(options.url.indexOf('?')>=0?'&':'?')+q;
        options.data=null;
    }
    else
        options.data=q;
    var $form=this,callbacks=[];
    if(options.resetForm)callbacks.push(function(){
        $form.resetForm();
    });
    if(options.clearForm)callbacks.push(function(){
        $form.clearForm();
    });
    if(!options.dataType&&options.target){
        var oldSuccess=options.success||function(){};

        callbacks.push(function(data){
            $(options.target).html(data).each(oldSuccess,arguments);
        });
    }
    else if(options.success)
        callbacks.push(options.success);
    options.success=function(data,status){
        for(var i=0,max=callbacks.length;i<max;i++)
            callbacks[i].apply(options,[data,status,$form]);
    };

    var files=$('input:file',this).fieldValue();
    var found=false;
    for(var j=0;j<files.length;j++)
        if(files[j])
            found=true;var multipart=false;
    if((files.length&&options.iframe!==false)||options.iframe||found||multipart){
        if(options.closeKeepAlive)
            $.get(options.closeKeepAlive,fileUpload);else
            fileUpload();
    }
    else
        $.ajax(options);
    this.trigger('form-submit-notify',[this,options]);
    return this;
    function fileUpload(){
        var form=$form[0];
        if($(':input[name=submit]',form).length){
            alert('Error: Form elements must not be named "submit".');
            return;
        }
        var opts=$.extend({},$.ajaxSettings,options);
        var s=$.extend(true,{},$.extend(true,{},$.ajaxSettings),opts);
        var id='jqFormIO'+(new Date().getTime());
        var $io=$('<iframe id="'+id+'" name="'+id+'" src="'+opts.iframeSrc+'" />');
        var io=$io[0];
        $io.css({
            position:'absolute',
            top:'-1000px',
            left:'-1000px'
        });
        var xhr={
            aborted:0,
            responseText:null,
            responseXML:null,
            status:0,
            statusText:'n/a',
            getAllResponseHeaders:function(){},
            getResponseHeader:function(){},
            setRequestHeader:function(){},
            abort:function(){
                this.aborted=1;
                $io.attr('src',opts.iframeSrc);
            }
        };

    var g=opts.global;
    if(g&&!$.active++)$.event.trigger("ajaxStart");
    if(g)$.event.trigger("ajaxSend",[xhr,opts]);
    if(s.beforeSend&&s.beforeSend(xhr,s)===false){
        s.global&&$.active--;
        return;
    }
    if(xhr.aborted)
        return;
    var cbInvoked=0;
    var timedOut=0;
    var sub=form.clk;
    if(sub){
        var n=sub.name;
        if(n&&!sub.disabled){
            options.extraData=options.extraData||{};

            options.extraData[n]=sub.value;
            if(sub.type=="image"){
                options.extraData[name+'.x']=form.clk_x;
                options.extraData[name+'.y']=form.clk_y;
            }
        }
    }
setTimeout(function(){
    var t=$form.attr('target'),a=$form.attr('action');
    form.setAttribute('target',id);
    if(form.getAttribute('method')!='POST')
        form.setAttribute('method','POST');
    if(form.getAttribute('action')!=opts.url)
        form.setAttribute('action',opts.url);
    if(!options.skipEncodingOverride){
        $form.attr({
            encoding:'multipart/form-data',
            enctype:'multipart/form-data'
        });
    }
    if(opts.timeout)
        setTimeout(function(){
            timedOut=true;
            cb();
        },opts.timeout);
    var extraInputs=[];
    try{
        if(options.extraData)
            for(var n in options.extraData)
                extraInputs.push($('<input type="hidden" name="'+n+'" value="'+options.extraData[n]+'" />')
                    .appendTo(form)[0]);$io.appendTo('body');
        io.attachEvent?io.attachEvent('onload',cb):io.addEventListener('load',cb,false);
        form.submit();
    }
    finally{
        form.setAttribute('action',a);
        t?form.setAttribute('target',t):$form.removeAttr('target');
        $(extraInputs).remove();
    }
},10);
var domCheckCount=50;
function cb(){
    if(cbInvoked++)return;
    io.detachEvent?io.detachEvent('onload',cb):io.removeEventListener('load',cb,false);
    var ok=true;
    try{
        if(timedOut)throw'timeout';
        var data,doc;
        doc=io.contentWindow?io.contentWindow.document:io.contentDocument?io.contentDocument:io.document;
        var isXml=opts.dataType=='xml'||doc.XMLDocument||$.isXMLDoc(doc);
        log('isXml='+isXml);
        if(!isXml&&(doc.body==null||doc.body.innerHTML=='')){
            if(--domCheckCount){
                cbInvoked=0;
                setTimeout(cb,100);
                return;
            }
            log('Could not access iframe DOM after 50 tries.');
            return;
        }
        xhr.responseText=doc.body?doc.body.innerHTML:null;
        xhr.responseXML=doc.XMLDocument?doc.XMLDocument:doc;
        xhr.getResponseHeader=function(header){
            var headers={
                'content-type':opts.dataType
                };

            return headers[header];
        };

        if(opts.dataType=='json'||opts.dataType=='script'){
            var ta=doc.getElementsByTagName('textarea')[0];
            if(ta)
                xhr.responseText=ta.value;
            else{
                var pre=doc.getElementsByTagName('pre')[0];
                if(pre)
                    xhr.responseText=pre.innerHTML;
            }
        }
    else if(opts.dataType=='xml'&&!xhr.responseXML&&xhr.responseText!=null){
        xhr.responseXML=toXml(xhr.responseText);
    }
    data=$.httpData(xhr,opts.dataType);
}
catch(e){
    ok=false;
    $.handleError(opts,xhr,'error',e);
}
if(ok){
    opts.success(data,'success');
    if(g)$.event.trigger("ajaxSuccess",[xhr,opts]);
}
if(g)$.event.trigger("ajaxComplete",[xhr,opts]);
if(g&&! --$.active)$.event.trigger("ajaxStop");
if(opts.complete)opts.complete(xhr,ok?'success':'error');
setTimeout(function(){
    $io.remove();
    xhr.responseXML=null;
},100);
};

function toXml(s,doc){
    if(window.ActiveXObject){
        doc=new ActiveXObject('Microsoft.XMLDOM');
        doc.async='false';
        doc.loadXML(s);
    }
    else
        doc=(new DOMParser()).parseFromString(s,'text/xml');
    return(doc&&doc.documentElement&&doc.documentElement.tagName!='parsererror')?doc:null;
};

};

};

$.fn.ajaxForm=function(options){
    return this.ajaxFormUnbind().bind('submit.form-plugin',function(){
        $(this).ajaxSubmit(options);
        return false;
    }).bind('click.form-plugin',function(e){
        var target=e.target;
        var $el=$(target);
        if(!($el.is(":submit,input:image"))){
            var t=$el.closest(':submit');
            if(t.length==0)
                return;
            target=t[0];
        }
        var form=this;
        form.clk=target;
        if(target.type=='image'){
            if(e.offsetX!=undefined){
                form.clk_x=e.offsetX;
                form.clk_y=e.offsetY;
            }else if(typeof $.fn.offset=='function'){
                var offset=$el.offset();
                form.clk_x=e.pageX-offset.left;
                form.clk_y=e.pageY-offset.top;
            }else{
                form.clk_x=e.pageX-target.offsetLeft;
                form.clk_y=e.pageY-target.offsetTop;
            }
        }
    setTimeout(function(){
        form.clk=form.clk_x=form.clk_y=null;
    },100);
    });
};

$.fn.ajaxFormUnbind=function(){
    return this.unbind('submit.form-plugin click.form-plugin');
};

$.fn.formToArray=function(semantic){
    var a=[];
    if(this.length==0)return a;
    var form=this[0];
    var els=semantic?form.getElementsByTagName('*'):form.elements;
    if(!els)return a;
    for(var i=0,max=els.length;i<max;i++){
        var el=els[i];
        var n=el.name;
        if(!n)continue;
        if(semantic&&form.clk&&el.type=="image"){
            if(!el.disabled&&form.clk==el){
                a.push({
                    name:n,
                    value:$(el).val()
                    });
                a.push({
                    name:n+'.x',
                    value:form.clk_x
                    },{
                    name:n+'.y',
                    value:form.clk_y
                    });
            }
            continue;
        }
        var v=$.fieldValue(el,true);
        if(v&&v.constructor==Array){
            for(var j=0,jmax=v.length;j<jmax;j++)
                a.push({
                    name:n,
                    value:v[j]
                    });
        }
        else if(v!==null&&typeof v!='undefined')
            a.push({
                name:n,
                value:v
            });
    }
    if(!semantic&&form.clk){
        var $input=$(form.clk),input=$input[0],n=input.name;
        if(n&&!input.disabled&&input.type=='image'){
            a.push({
                name:n,
                value:$input.val()
                });
            a.push({
                name:n+'.x',
                value:form.clk_x
                },{
                name:n+'.y',
                value:form.clk_y
                });
        }
    }
return a;
};

$.fn.formSerialize=function(semantic){
    return $.param(this.formToArray(semantic));
};

$.fn.fieldSerialize=function(successful){
    var a=[];
    this.each(function(){
        var n=this.name;
        if(!n)return;
        var v=$.fieldValue(this,successful);
        if(v&&v.constructor==Array){
            for(var i=0,max=v.length;i<max;i++)
                a.push({
                    name:n,
                    value:v[i]
                    });
        }
        else if(v!==null&&typeof v!='undefined')
            a.push({
                name:this.name,
                value:v
            });
    });
    return $.param(a);
};

$.fn.fieldValue=function(successful){
    for(var val=[],i=0,max=this.length;i<max;i++){
        var el=this[i];
        var v=$.fieldValue(el,successful);
        if(v===null||typeof v=='undefined'||(v.constructor==Array&&!v.length))
            continue;
        v.constructor==Array?$.merge(val,v):val.push(v);
    }
    return val;
};

$.fieldValue=function(el,successful){
    var n=el.name,t=el.type,tag=el.tagName.toLowerCase();
    if(typeof successful=='undefined')successful=true;
    if(successful&&(!n||el.disabled||t=='reset'||t=='button'||(t=='checkbox'||t=='radio')&&!el.checked||(t=='submit'||t=='image')&&el.form&&el.form.clk!=el||tag=='select'&&el.selectedIndex==-1))
        return null;
    if(tag=='select'){
        var index=el.selectedIndex;
        if(index<0)return null;
        var a=[],ops=el.options;
        var one=(t=='select-one');
        var max=(one?index+1:ops.length);
        for(var i=(one?index:0);i<max;i++){
            var op=ops[i];
            if(op.selected){
                var v=op.value;
                if(!v)
                    v=(op.attributes&&op.attributes['value']&&!(op.attributes['value'].specified))?op.text:op.value;
                if(one)return v;
                a.push(v);
            }
        }
    return a;
}
return el.value;
};

$.fn.clearForm=function(){
    return this.each(function(){
        $('input,select,textarea',this).clearFields();
    });
};

$.fn.clearFields=$.fn.clearInputs=function(){
    return this.each(function(){
        var t=this.type,tag=this.tagName.toLowerCase();
        if(t=='text'||t=='password'||tag=='textarea')
            this.value='';
        else if(t=='checkbox'||t=='radio')
            this.checked=false;
        else if(tag=='select')
            this.selectedIndex=-1;
    });
};

$.fn.resetForm=function(){
    return this.each(function(){
        if(typeof this.reset=='function'||(typeof this.reset=='object'&&!this.reset.nodeType))
            this.reset();
    });
};

$.fn.enable=function(b){
    if(b==undefined)b=true;
    return this.each(function(){
        this.disabled=!b;
    });
};

$.fn.selected=function(select){
    if(select==undefined)select=true;
    return this.each(function(){
        var t=this.type;
        if(t=='checkbox'||t=='radio')
            this.checked=select;
        else if(this.tagName.toLowerCase()=='option'){
            var $sel=$(this).parent('select');
            if(select&&$sel[0]&&$sel[0].type=='select-one'){
                $sel.find('option').selected(false);
            }
            this.selected=select;
        }
    });
};

function log(){
    if($.fn.ajaxSubmit.debug&&window.console&&window.console.log)
        window.console.log('[$.form] '+Array.prototype.join.call(arguments,''));
};

})(jQuery);
(function($){
    $.extend($.fn,{
        validate:function(options){
            if(!this.length){
                options&&options.debug&&window.console&&console.warn("nothing selected, can't validate, returning nothing");
                return;
            }
            var validator=$.data(this[0],'validator');
            if(validator){
                return validator;
            }
            validator=new $.validator(options,this[0]);
            $.data(this[0],'validator',validator);
            if(validator.settings.onsubmit){
                this.find("input, button").filter(".cancel").click(function(){
                    validator.cancelSubmit=true;
                });
                if(validator.settings.submitHandler){
                    this.find("input, button").filter(":submit").click(function(){
                        validator.submitButton=this;
                    });
                }
                this.submit(function(event){
                    if(validator.settings.debug)event.preventDefault();
                    function handle(){
                        if(validator.settings.submitHandler){
                            if(validator.submitButton){
                                var hidden=$("<input type='hidden'/>").attr("name",validator.submitButton.name).val(validator.submitButton.value).appendTo(validator.currentForm);
                            }
                            validator.settings.submitHandler.call(validator,validator.currentForm);
                            if(validator.submitButton){
                                hidden.remove();
                            }
                            return false;
                        }
                        return true;
                    }
                    if(validator.cancelSubmit){
                        validator.cancelSubmit=false;
                        return handle();
                    }
                    if(validator.form()){
                        if(validator.pendingRequest){
                            validator.formSubmitted=true;
                            return false;
                        }
                        return handle();
                    }else{
                        validator.focusInvalid();
                        return false;
                    }
                });
        }
        return validator;
    },
    valid:function(){
        if($(this[0]).is('form')){
            return this.validate().form();
        }else{
            var valid=true;
            var validator=$(this[0].form).validate();
            this.each(function(){
                valid&=validator.element(this);
            });
            return valid;
        }
    },
    removeAttrs:function(attributes){
        var result={},$element=this;
        $.each(attributes.split(/\s/),function(index,value){
            result[value]=$element.attr(value);
            $element.removeAttr(value);
        });
        return result;
    },
    rules:function(command,argument){
        var element=this[0];
        if(command){
            var settings=$.data(element.form,'validator').settings;
            var staticRules=settings.rules;
            var existingRules=$.validator.staticRules(element);
            switch(command){
                case"add":
                    $.extend(existingRules,$.validator.normalizeRule(argument));
                    staticRules[element.name]=existingRules;
                    if(argument.messages)settings.messages[element.name]=$.extend(settings.messages[element.name],argument.messages);
                    break;
                case"remove":
                    if(!argument){
                    delete staticRules[element.name];
                    return existingRules;
                }
                var filtered={};

                $.each(argument.split(/\s/),function(index,method){
                    filtered[method]=existingRules[method];
                    delete existingRules[method];
                });
                return filtered;
            }
        }
        var data=$.validator.normalizeRules($.extend({},$.validator.metadataRules(element),$.validator.classRules(element),$.validator.attributeRules(element),$.validator.staticRules(element)),element);
    if(data.required){
        var param=data.required;
        delete data.required;
        data=$.extend({
            required:param
        },data);
    }
    return data;
}
});
$.extend($.expr[":"],{
    blank:function(a){
        return!$.trim(""+a.value);
    },
    filled:function(a){
        return!!$.trim(""+a.value);
    },
    unchecked:function(a){
        return!a.checked;
    }
});
$.validator=function(options,form){
    this.settings=$.extend({},$.validator.defaults,options);
    this.currentForm=form;
    this.init();
};

$.validator.format=function(source,params){
    if(arguments.length==1)return function(){
        var args=$.makeArray(arguments);
        args.unshift(source);
        return $.validator.format.apply(this,args);
    };

    if(arguments.length>2&&params.constructor!=Array){
        params=$.makeArray(arguments).slice(1);
    }
    if(params.constructor!=Array){
        params=[params];
    }
    $.each(params,function(i,n){
        source=source.replace(new RegExp("\\{"+i+"\\}","g"),n);
    });
    return source;
};

$.extend($.validator,{
    defaults:{
        messages:{},
        groups:{},
        rules:{},
        errorClass:"error",
        validClass:"valid",
        errorElement:"label",
        focusInvalid:true,
        errorContainer:$([]),
        errorLabelContainer:$([]),
        onsubmit:true,
        ignore:[],
        ignoreTitle:false,
        onfocusin:function(element){
            this.lastActive=element;
            if(this.settings.focusCleanup&&!this.blockFocusCleanup){
                this.settings.unhighlight&&this.settings.unhighlight.call(this,element,this.settings.errorClass,this.settings.validClass);
                this.errorsFor(element).hide();
            }
        },
    onfocusout:function(element){
        if(!this.checkable(element)&&(element.name in this.submitted||!this.optional(element))){
            this.element(element);
        }
    },
onkeyup:function(element){
    if(element.name in this.submitted||element==this.lastElement){
        this.element(element);
    }
},
onclick:function(element){
    if(element.name in this.submitted)this.element(element);
    else if(element.parentNode.name in this.submitted)this.element(element.parentNode)
        },
highlight:function(element,errorClass,validClass){
    $(element).addClass(errorClass).removeClass(validClass);
},
unhighlight:function(element,errorClass,validClass){
    $(element).removeClass(errorClass).addClass(validClass);
}
},
setDefaults:function(settings){
    $.extend($.validator.defaults,settings);
},
messages:{
    required:"This field is required.",
    remote:"Please fix this field.",
    email:"Please enter a valid email address.",
    url:"Please enter a valid URL.",
    date:"Please enter a valid date.",
    dateISO:"Please enter a valid date (ISO).",
    number:"Please enter a valid number.",
    digits:"Please enter only digits.",
    creditcard:"Please enter a valid credit card number.",
    equalTo:"Please enter the same value again.",
    accept:"Please enter a value with a valid extension.",
    maxlength:$.validator.format("Please enter no more than {0} characters."),
    minlength:$.validator.format("Please enter at least {0} characters."),
    rangelength:$.validator.format("Please enter a value between {0} and {1} characters long."),
    range:$.validator.format("Please enter a value between {0} and {1}."),
    max:$.validator.format("Please enter a value less than or equal to {0}."),
    min:$.validator.format("Please enter a value greater than or equal to {0}.")
    },
autoCreateRanges:false,
prototype:{
    init:function(){
        this.labelContainer=$(this.settings.errorLabelContainer);
        this.errorContext=this.labelContainer.length&&this.labelContainer||$(this.currentForm);
        this.containers=$(this.settings.errorContainer).add(this.settings.errorLabelContainer);
        this.submitted={};

        this.valueCache={};

        this.pendingRequest=0;
        this.pending={};

        this.invalid={};

        this.reset();
        var groups=(this.groups={});
        $.each(this.settings.groups,function(key,value){
            $.each(value.split(/\s/),function(index,name){
                groups[name]=key;
            });
        });
        var rules=this.settings.rules;
        $.each(rules,function(key,value){
            rules[key]=$.validator.normalizeRule(value);
        });
        function delegate(event){
            var validator=$.data(this[0].form,"validator");
            validator.settings["on"+event.type]&&validator.settings["on"+event.type].call(validator,this[0]);
        }
        $(this.currentForm).delegate("focusin focusout keyup",":text, :password, :file, select, textarea",delegate).delegate("click",":radio, :checkbox, select, option",delegate);
        if(this.settings.invalidHandler)$(this.currentForm).bind("invalid-form.validate",this.settings.invalidHandler);
    },
    form:function(){
        this.checkForm();
        $.extend(this.submitted,this.errorMap);
        this.invalid=$.extend({},this.errorMap);
        if(!this.valid())$(this.currentForm).triggerHandler("invalid-form",[this]);
        this.showErrors();
        return this.valid();
    },
    checkForm:function(){
        this.prepareForm();
        for(var i=0,elements=(this.currentElements=this.elements());elements[i];i++){
            this.check(elements[i]);
        }
        return this.valid();
    },
    element:function(element){
        element=this.clean(element);
        this.lastElement=element;
        this.prepareElement(element);
        this.currentElements=$(element);
        var result=this.check(element);
        if(result){
            delete this.invalid[element.name];
        }else{
            this.invalid[element.name]=true;
        }
        if(!this.numberOfInvalids()){
            this.toHide=this.toHide.add(this.containers);
        }
        this.showErrors();
        return result;
    },
    showErrors:function(errors){
        if(errors){
            $.extend(this.errorMap,errors);
            this.errorList=[];
            for(var name in errors){
                this.errorList.push({
                    message:errors[name],
                    element:this.findByName(name)[0]
                    });
            }
            this.successList=$.grep(this.successList,function(element){
                return!(element.name in errors);
            });
        }
        this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors();
    },
    resetForm:function(){
        if($.fn.resetForm)$(this.currentForm).resetForm();
        this.submitted={};

        this.prepareForm();
        this.hideErrors();
        this.elements().removeClass(this.settings.errorClass);
    },
    numberOfInvalids:function(){
        return this.objectLength(this.invalid);
    },
    objectLength:function(obj){
        var count=0;
        for(var i in obj)count++;return count;
    },
    hideErrors:function(){
        this.addWrapper(this.toHide).hide();
    },
    valid:function(){
        return this.size()==0;
    },
    size:function(){
        return this.errorList.length;
    },
    focusInvalid:function(){
        if(this.settings.focusInvalid){
            try{
                $(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus();
            }catch(e){}
        }
    },
findLastActive:function(){
    var lastActive=this.lastActive;
    return lastActive&&$.grep(this.errorList,function(n){
        return n.element.name==lastActive.name;
    }).length==1&&lastActive;
},
elements:function(){
    var validator=this,rulesCache={};

    return $([]).add(this.currentForm.elements).filter(":input").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function(){
        !this.name&&validator.settings.debug&&window.console&&console.error("%o has no name assigned",this);
        if(this.name in rulesCache||!validator.objectLength($(this).rules()))return false;
        rulesCache[this.name]=true;
        return true;
    });
},
clean:function(selector){
    return $(selector)[0];
},
errors:function(){
    return $(this.settings.errorElement+"."+this.settings.errorClass,this.errorContext);
},
reset:function(){
    this.successList=[];
    this.errorList=[];
    this.errorMap={};

    this.toShow=$([]);
    this.toHide=$([]);
    this.currentElements=$([]);
},
prepareForm:function(){
    this.reset();
    this.toHide=this.errors().add(this.containers);
},
prepareElement:function(element){
    this.reset();
    this.toHide=this.errorsFor(element);
},
check:function(element){
    element=this.clean(element);
    if(this.checkable(element)){
        element=this.findByName(element.name)[0];
    }
    var rules=$(element).rules();
    var dependencyMismatch=false;
    for(method in rules){
        var rule={
            method:method,
            parameters:rules[method]
            };

        try{
            var result=$.validator.methods[method].call(this,element.value.replace(/\r/g,""),element,rule.parameters);
            if(result=="dependency-mismatch"){
                dependencyMismatch=true;
                continue;
            }
            dependencyMismatch=false;
            if(result=="pending"){
                this.toHide=this.toHide.not(this.errorsFor(element));
                return;
            }
            if(!result){
                this.formatAndAdd(element,rule);
                return false;
            }
        }catch(e){
        this.settings.debug&&window.console&&console.log("exception occured when checking element "+element.id
            +", check the '"+rule.method+"' method",e);
        throw e;
    }
    }
    if(dependencyMismatch)return;
if(this.objectLength(rules))this.successList.push(element);
return true;
},
customMetaMessage:function(element,method){
    if(!$.metadata)return;
    var meta=this.settings.meta?$(element).metadata()[this.settings.meta]:$(element).metadata();
    return meta&&meta.messages&&meta.messages[method];
},
customMessage:function(name,method){
    var m=this.settings.messages[name];
    return m&&(m.constructor==String?m:m[method]);
},
findDefined:function(){
    for(var i=0;i<arguments.length;i++){
        if(arguments[i]!==undefined)return arguments[i];
    }
    return undefined;
},
defaultMessage:function(element,method){
    return this.findDefined(this.customMessage(element.name,method),this.customMetaMessage(element,method),!this.settings.ignoreTitle&&element.title||undefined,$.validator.messages[method],"<strong>Warning: No message defined for "+element.name+"</strong>");
},
formatAndAdd:function(element,rule){
    var message=this.defaultMessage(element,rule.method),theregex=/\$?\{(\d+)\}/g;
    if(typeof message=="function"){
        message=message.call(this,rule.parameters,element);
    }else if(theregex.test(message)){
        message=$.format(message.replace(theregex,'{$1}'),rule.parameters);
    }
    this.errorList.push({
        message:message,
        element:element
    });
    this.errorMap[element.name]=message;
    this.submitted[element.name]=message;
},
addWrapper:function(toToggle){
    if(this.settings.wrapper)toToggle=toToggle.add(toToggle.parent(this.settings.wrapper));
    return toToggle;
},
defaultShowErrors:function(){
    for(var i=0;this.errorList[i];i++){
        var error=this.errorList[i];
        this.settings.highlight&&this.settings.highlight.call(this,error.element,this.settings.errorClass,this.settings.validClass);
        this.showLabel(error.element,error.message);
    }
    if(this.errorList.length){
        this.toShow=this.toShow.add(this.containers);
    }
    if(this.settings.success){
        for(var i=0;this.successList[i];i++){
            this.showLabel(this.successList[i]);
        }
        }
        if(this.settings.unhighlight){
    for(var i=0,elements=this.validElements();elements[i];i++){
        this.settings.unhighlight.call(this,elements[i],this.settings.errorClass,this.settings.validClass);
    }
    }
    this.toHide=this.toHide.not(this.toShow);
this.hideErrors();
this.addWrapper(this.toShow).show();
},
validElements:function(){
    return this.currentElements.not(this.invalidElements());
},
invalidElements:function(){
    return $(this.errorList).map(function(){
        return this.element;
    });
},
showLabel:function(element,message){
    var label=this.errorsFor(element);
    if(label.length){
        label.removeClass().addClass(this.settings.errorClass);
        label.attr("generated")&&label.html(message);
    }else{
        label=$("<"+this.settings.errorElement+"/>").attr({
            "for":this.idOrName(element),
            generated:true
        }).addClass(this.settings.errorClass).html(message||"");
        if(this.settings.wrapper){
            label=label.hide().show().wrap("<"+this.settings.wrapper+"/>").parent();
        }
        if(!this.labelContainer.append(label).length)this.settings.errorPlacement?this.settings.errorPlacement(label,$(element)):label.insertAfter(element);
    }
    if(!message&&this.settings.success){
        label.text("");
        typeof this.settings.success=="string"?label.addClass(this.settings.success):this.settings.success(label);
    }
    this.toShow=this.toShow.add(label);
},
errorsFor:function(element){
    var name=this.idOrName(element);
    return this.errors().filter(function(){
        return $(this).attr('for')==name
        });
},
idOrName:function(element){
    return this.groups[element.name]||(this.checkable(element)?element.name:element.id||element.name);
},
checkable:function(element){
    return/radio|checkbox/i.test(element.type);
},
findByName:function(name){
    var form=this.currentForm;
    return $(document.getElementsByName(name)).map(function(index,element){
        return element.form==form&&element.name==name&&element||null;
    });
},
getLength:function(value,element){
    switch(element.nodeName.toLowerCase()){
        case'select':
            return $("option:selected",element).length;
        case'input':
            if(this.checkable(element))return this.findByName(element.name).filter(':checked').length;
            }
            return value.length;
},
depend:function(param,element){
    return this.dependTypes[typeof param]?this.dependTypes[typeof param](param,element):true;
},
dependTypes:{
    "boolean":function(param,element){
        return param;
    },
    "string":function(param,element){
        return!!$(param,element.form).length;
    },
    "function":function(param,element){
        return param(element);
    }
},
optional:function(element){
    return!$.validator.methods.required.call(this,$.trim(element.value),element)&&"dependency-mismatch";
},
startRequest:function(element){
    if(!this.pending[element.name]){
        this.pendingRequest++;
        this.pending[element.name]=true;
    }
},
stopRequest:function(element,valid){
    this.pendingRequest--;
    if(this.pendingRequest<0)this.pendingRequest=0;
    delete this.pending[element.name];
    if(valid&&this.pendingRequest==0&&this.formSubmitted&&this.form()){
        $(this.currentForm).submit();
        this.formSubmitted=false;
    }else if(!valid&&this.pendingRequest==0&&this.formSubmitted){
        $(this.currentForm).triggerHandler("invalid-form",[this]);
        this.formSubmitted=false;
    }
},
previousValue:function(element){
    return $.data(element,"previousValue")||$.data(element,"previousValue",{
        old:null,
        valid:true,
        message:this.defaultMessage(element,"remote")
        });
}
},
classRuleSettings:{
    required:{
        required:true
    },
    email:{
        email:true
    },
    url:{
        url:true
    },
    date:{
        date:true
    },
    dateISO:{
        dateISO:true
    },
    dateDE:{
        dateDE:true
    },
    number:{
        number:true
    },
    numberDE:{
        numberDE:true
    },
    digits:{
        digits:true
    },
    creditcard:{
        creditcard:true
    }
},
addClassRules:function(className,rules){
    className.constructor==String?this.classRuleSettings[className]=rules:$.extend(this.classRuleSettings,className);
},
classRules:function(element){
    var rules={};

    var classes=$(element).attr('class');
    classes&&$.each(classes.split(' '),function(){
        if(this in $.validator.classRuleSettings){
            $.extend(rules,$.validator.classRuleSettings[this]);
        }
    });
return rules;
},
attributeRules:function(element){
    var rules={};

    var $element=$(element);
    for(method in $.validator.methods){
        var value=$element.attr(method);
        if(value){
            rules[method]=value;
        }
    }
    if(rules.maxlength&&/-1|2147483647|524288/.test(rules.maxlength)){
    delete rules.maxlength;
}
return rules;
},
metadataRules:function(element){
    if(!$.metadata)return{};

    var meta=$.data(element.form,'validator').settings.meta;
    return meta?$(element).metadata()[meta]:$(element).metadata();
},
staticRules:function(element){
    var rules={};

    var validator=$.data(element.form,'validator');
    if(validator.settings.rules){
        rules=$.validator.normalizeRule(validator.settings.rules[element.name])||{};

}
return rules;
},
normalizeRules:function(rules,element){
    $.each(rules,function(prop,val){
        if(val===false){
            delete rules[prop];
            return;
        }
        if(val.param||val.depends){
            var keepRule=true;
            switch(typeof val.depends){
                case"string":
                    keepRule=!!$(val.depends,element.form).length;
                    break;
                case"function":
                    keepRule=val.depends.call(element,element);
                    break;
            }
            if(keepRule){
                rules[prop]=val.param!==undefined?val.param:true;
            }else{
                delete rules[prop];
            }
        }
    });
$.each(rules,function(rule,parameter){
    rules[rule]=$.isFunction(parameter)?parameter(element):parameter;
});
$.each(['minlength','maxlength','min','max'],function(){
    if(rules[this]){
        rules[this]=Number(rules[this]);
    }
});
$.each(['rangelength','range'],function(){
    if(rules[this]){
        rules[this]=[Number(rules[this][0]),Number(rules[this][1])];
    }
});
if($.validator.autoCreateRanges){
    if(rules.min&&rules.max){
        rules.range=[rules.min,rules.max];
        delete rules.min;
        delete rules.max;
    }
    if(rules.minlength&&rules.maxlength){
        rules.rangelength=[rules.minlength,rules.maxlength];
        delete rules.minlength;
        delete rules.maxlength;
    }
}
if(rules.messages){
    delete rules.messages
    }
    return rules;
},
normalizeRule:function(data){
    if(typeof data=="string"){
        var transformed={};

        $.each(data.split(/\s/),function(){
            transformed[this]=true;
        });
        data=transformed;
    }
    return data;
},
addMethod:function(name,method,message){
    $.validator.methods[name]=method;
    $.validator.messages[name]=message!=undefined?message:$.validator.messages[name];
    if(method.length<3){
        $.validator.addClassRules(name,$.validator.normalizeRule(name));
    }
},
methods:{
    required:function(value,element,param){
        if(!this.depend(param,element))return"dependency-mismatch";
        switch(element.nodeName.toLowerCase()){
            case'select':
                var val=$(element).val();
                return val&&val.length>0;
            case'input':
                if(this.checkable(element))return this.getLength(value,element)>0;default:
                return $.trim(value).length>0;
        }
    },
remote:function(value,element,param){
    if(this.optional(element))return"dependency-mismatch";
    var previous=this.previousValue(element);
    if(!this.settings.messages[element.name])this.settings.messages[element.name]={};

    previous.originalMessage=this.settings.messages[element.name].remote;
    this.settings.messages[element.name].remote=previous.message;
    param=typeof param=="string"&&{
        url:param
    }||param;
    if(previous.old!==value){
        previous.old=value;
        var validator=this;
        this.startRequest(element);
        var data={};

        data[element.name]=value;
        $.ajax($.extend(true,{
            url:param,
            mode:"abort",
            port:"validate"+element.name,
            dataType:"json",
            data:data,
            success:function(response){
                validator.settings.messages[element.name].remote=previous.originalMessage;
                var valid=response===true;
                if(valid){
                    var submitted=validator.formSubmitted;
                    validator.prepareElement(element);
                    validator.formSubmitted=submitted;
                    validator.successList.push(element);
                    validator.showErrors();
                }else{
                    var errors={};

                    var message=(previous.message=response||validator.defaultMessage(element,"remote"));
                    errors[element.name]=$.isFunction(message)?message(value):message;
                    validator.showErrors(errors);
                }
                previous.valid=valid;
                validator.stopRequest(element,valid);
            }
        },param));
    return"pending";
}else if(this.pending[element.name]){
    return"pending";
}
return previous.valid;
},
minlength:function(value,element,param){
    return this.optional(element)||this.getLength($.trim(value),element)>=param;
},
maxlength:function(value,element,param){
    return this.optional(element)||this.getLength($.trim(value),element)<=param;
},
rangelength:function(value,element,param){
    var length=this.getLength($.trim(value),element);
    return this.optional(element)||(length>=param[0]&&length<=param[1]);
},
min:function(value,element,param){
    return this.optional(element)||value>=param;
},
max:function(value,element,param){
    return this.optional(element)||value<=param;
},
range:function(value,element,param){
    return this.optional(element)||(value>=param[0]&&value<=param[1]);
},
email:function(value,element){
    return this.optional(element)||/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(value);
},
url:function(value,element){
    return this.optional(element)||/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value);}
,date:function(value,element){return this.optional(element)||!/Invalid|NaN/.test(new Date(value));}
,dateISO:function(value,element){return this.optional(element)||/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(value);}
,number:function(value,element){return this.optional(element)||/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(value);}
,digits:function(value,element){return this.optional(element)||/^\d+$/.test(value);}
,creditcard:function(value,element){if(this.optional(element))return"dependency-mismatch";if(/[^0-9-]+/.test(value))return false;var nCheck=0,nDigit=0,bEven=false;value=value.replace(/\D/g,"");for(var n=value.length-1;n>=0;n--){var cDigit=value.charAt(n);var nDigit=parseInt(cDigit,10);if(bEven){if((nDigit*=2)>9)nDigit-=9;}nCheck+=nDigit;bEven=!bEven;}return(nCheck%10)==0;}
,accept:function(value,element,param){param=typeof param=="string"?param.replace(/,/g,'|'):"png|jpe?g|gif";return this.optional(element)||value.match(new RegExp(".("+param+")$","i"));}
,equalTo:function(value,element,param){var target=$(param).unbind(".validate-equalTo").bind("blur.validate-equalTo",function(){$(element).valid();});return value==target.val();}}});$.format=$.validator.format;})(jQuery);;(function($){var ajax=$.ajax;var pendingRequests={};$.ajax=function(settings){settings=$.extend(settings,$.extend({},$.ajaxSettings,settings));var port=settings.port;if(settings.mode=="abort"){if(pendingRequests[port]){pendingRequests[port].abort();}return(pendingRequests[port]=ajax.apply(this,arguments));}return ajax.apply(this,arguments);};})(jQuery);;(function($){$.each({focus:'focusin'
    ,blur:'focusout'},function(original,fix){$.event.special[fix]={setup:function(){if($.browser.msie)return false;this.addEventListener(original,$.event.special[fix].handler,true);}
    ,teardown:function(){if($.browser.msie)return false;this.removeEventListener(original,$.event.special[fix].handler,true);}
    ,handler:function(e){arguments[0]=$.event.fix(e);arguments[0].type=fix;return $.event.handle.apply(this,arguments);}};});$.extend($.fn,{delegate:function(type,delegate,handler){return this.bind(type,function(event){var target=$(event.target);if(target.is(delegate)){return handler.apply(target,arguments);}});}
    ,triggerEvent:function(type,target){return this.triggerHandler(type,[$.event.fix({type:type
    ,target:target})]);}})})(jQuery);
