/**
* heisetreff.de scripts
*
* @project heisetreff.de
* @author felix.wahner@w3design.de
* @copyright w3design. GmbH
*
*/

/**
* ------------------------------------------------------------------------------
* @section domready functions
* ------------------------------------------------------------------------------
*/
$(document).ready(function() {
    
    /**
    * ------------------------------------------------------------------------------
    * @subsection browser fixes
    * ------------------------------------------------------------------------------
    */
    /* fixes IE zIndex stacking issues */
    if ($.browser.msie && ($.browser.version == "6.0" || $.browser.version == "7.0")) {
        var zIndexNumber = 1000;
	var IEdivs = $('#header div, #content_wrapper div');
	for(i=0,I=IEdivs.length;i<I;i++) {
	    $(IEdivs[i]).css('zIndex', zIndexNumber);  
                zIndexNumber--;  
	}
	$('#siteText').css('zIndex','2');
    }
        
    /**
    * ------------------------------------------------------------------------------
    * @subsection set page height for ads
    * ------------------------------------------------------------------------------
    */
	$contextAd = $('#contextAd');

	if($contextAd.length) {
	    var $adheight = $contextAd.height();
	    if($adheight>199) {
		    $('#content_wrapper').css("minHeight",$adheight-200);
	    }
	}
    
    /**
    * ------------------------------------------------------------------------------
    * @subsection socialshareprivacy
    * ------------------------------------------------------------------------------
    */
	$socialshareprivacy = $('#socialshareprivacy');

	if($socialshareprivacy.length) {
	    
	    var relAttr = $socialshareprivacy.attr('rel');
	    
	    //like either rel-Attr or facebook fan page
	    if( typeof relAttr !== 'undefined' && relAttr !== false ) {
		uri = relAttr;
	    } else {
		uri = 'http://www.facebook.com/heisemarktplatz';
	    }
		
	    $socialshareprivacy.socialSharePrivacy({
		uri : uri,
		css_path : '',
		services : {
		    facebook : {
			'status' : 'on',
			'action' : 'like',
			'dummy_img' : 'assets/js/socialshareprivacy/dummy_facebook_like.png'
		    }, 
		    twitter : {
			'status' : 'off'
		    },
		    gplus : {
			'status' : 'off'
		    }
		}
	    });
	    
	}
    
    /**
    * ------------------------------------------------------------------------------
    * @subsection header :: quicksearch
    * ------------------------------------------------------------------------------
    */

    /* hide quicksearch submit button */
    $('#searchFormQuick input[type=submit]').css('display','none');

    /* bind quicksearch submit events */
    $('#submitQuickSearch').click(function() {
            $('#searchFormQuick').submit();
            return false;
    });
    $("submitQuickSearch input").keypress(function (e) {  
        if ((e.which && e.which == 13) || (e.keyCode && e.keyCode == 13)) {  
            $('#searchFormQuick').submit();  
            return false;  
        } else {  
            return true;  
        }  
    });
    
    $twitterButton = $('#twitterButton');
    if($twitterButton.length>0) {
	var tweet = "";
	$twitterButton.data.isClicked = false;
	var longURL = decodeURI(document.location.href);
	$twitterButton.attr("target","_blank");
	var api_call = "http://api.bit.ly/shorten?"
			+"version=2.0.1"
			+"&longUrl="+longURL
			+"&login=heisemarktplatz"
			+"&apiKey=R_46c35605d0e35dabe57b2432e89c3295"
			+"&history=0"
			+"&format=json"
			+"&callback=?";
	$.getJSON(api_call, function(data){
	    if(data) {
		    var tweetLength = 140;
		    tweet += "heise-marktplatz: ";
		    var shortURL = " - " + data.results[longURL].shortUrl;
		    var charsLeft = parseInt(tweetLength,10) - parseInt(tweet.length,10) - parseInt(shortURL.length,10);
		    if(document.title.length>=charsLeft) {
			var tmpTitle = document.title.substr(0,charsLeft-5) + "[...]";
		    } else {
			var tmpTitle = document.title;
		    }
		    tweet += tmpTitle;
		    tweet += shortURL;
		    $twitterButton.data.isClicked = true;
		    $twitterButton
			.attr("href","http://twitter.com/home/?status=" + tweet);
	    }
	});

    }
    
    /**
    * ------------------------------------------------------------------------------
    * @subsection header :: special searches 
    * ------------------------------------------------------------------------------
    */
    	
    	// executed if special search category is changed by loading a special page (e.g. via header category navigation) 
    	
    	var expertSearchLoaded = false;
    
	$('#specialSearch > div > form div.moreDetails a').attr("href","javascript://")
	.click(function() {	
		if(!expertSearchLoaded) {				
			var parentFormClass = $(this).parent().parent().attr("class");
			var adCategory = parentFormClass.substring(0, parentFormClass.indexOf("Form"));
			adCategory = adCategory.replace("announcements","ads");
			var url_expertsearch = "undefined";			
			for(var i=0;i<expertsearchAJAXUrls.length;i++) {
				if(adCategory == expertsearchAJAXUrls[i].name) {
					url_expertsearch = expertsearchAJAXUrls[i].ajaxUrl;
					break;
				}
			}					
			if(typeof(url_expertsearch) != "undefined") {
				$(this).parent().after("<div id='content_expertSearch'></div>");
				$.getJSON(url_expertsearch,function(data) {
					handleException(data); 
					$('#content_expertSearch').html(data);					
					checkDatepicker();
					initExpertSearches();				
				});				
			}			
			expertSearchLoaded = true;
		}
		openCloseExpertSearch();
	});
	
	function openCloseExpertSearch() {
		$('#content_expertSearch').slideToggle("normal");	
		
		var adType = $('#specialSearch-announcement_type').val();
		adType = adType.replace("ads","announcements");
		var adTypeCaption = $('#searchNav li[class~=active] a span').text();
				
		if ($('#search_mode').val() == "advanced"){
			$('#search_mode').val("expert");
			$('#specialSearch-' + adType).unbind('submit')
						      .submit(function() {
						      		wiredminds.trackEvent('click/Suche/Expertensuche/' + adTypeCaption);
						      		return true;
						      });
		}
		else {
			$('#search_mode').val("advanced");
			$('#specialSearch-' + adType).unbind('submit')
						      .submit(function() {
						      		wiredminds.trackEvent('click/Suche/Spezialsuche/' + adTypeCaption);
						      		return true;
						      });
		}		
	}
	function checkDatepicker() {
		var datepicker_exists = (typeof($('#content_expertSearch').find('.datepicker').html()) == 'string') ? true : false;
		if(datepicker_exists) {
			$('#content_expertSearch input.datepicker').datepicker({		//expert search: events
				changeMonth: true,
				changeYear: true,
				showOn: 'both', buttonImage: 'assets/images/calendar.gif', buttonImageOnly: true, buttonText: 'Kalender'
			});
		}	
	}
	
    /**
    * ------------------------------------------------------------------------------
    * @subsection header :: category navigation
    * ------------------------------------------------------------------------------
    */
    
        var categoryNav =  $('#header .categories');
        var categoryNavList =  $('#header .categories > ul');
        // config for hoverIntent plugin (see below)
        var categoryConfig = {    
            sensitivity: 1,   
            interval: 70,  
            over: openCategories, 
            timeout: 400,
            out: closeCategories  
        };
        function openCategories() {
            categoryNavList.stop().fadeIn("normal");
        }
        function closeCategories() {
             categoryNavList.stop().fadeOut("fast");
        }  
        if($('body.home').length == 0) {
           categoryNav.hoverIntent(categoryConfig);
        } 
        /* fade subcategory listing in on hover */
        // config for hoverIntent plugin (see below)  
        var subCatConfig = {    
         sensitivity: 1,   
         interval: 70,  
         over: openSubCategories,    
         timeout: 400, 
         out: closeSubCategories   
        };
        function openSubCategories() {
            $(this)
            .animate({
                        paddingLeft : "37px"
                },{
                        duration : 300
                })
            .find("ul")
            .css("maxHeight",getSubCatHeight())
            .end()
            .find("div:first")
            .css("fontWeight","normal")
            .show("normal");
        }
        function closeSubCategories() {
            $(this)
            .animate(
                {
                    paddingLeft : "31px"
                },{
                     duration : 300
                }
            )
            .css("fontWeight","normal")
            .find("div:first")
            .fadeOut("fast");
        }
        function getSubCatHeight() {
            vpHeight = ($(window).height())-300;
            if((vpHeight) > 0 ){
                return vpHeight;
            } else {
                return auto;
            }
        }
        var mainCategories =  $('#header .categories > ul > li');
        mainCategories.hoverIntent(subCatConfig);




    /**
    * ------------------------------------------------------------------------------
    * @dropdowns
    * ------------------------------------------------------------------------------
    */
        // clear default text in textfields and input elements on focus
        initDropdowns();
    
    /**
    * ------------------------------------------------------------------------------
    * @subsubsection inputs
    * ------------------------------------------------------------------------------
    */
        // clear default text in textfields and input elements on focus  
        initInputFields();
    
 
    /**
    * ------------------------------------------------------------------------------
    * @subsubsection special searches
    * ------------------------------------------------------------------------------
    */
        // clear default text in textfields and input elements on focus  
        initSpecialSearches();      
 
    
    
    /**
    * ------------------------------------------------------------------------------
    * @subsubsection help layer contextColumn
    * ------------------------------------------------------------------------------
    */
    
    $('.helpLinks, .social-logon').find('a').attr('href', 'javascript://').click(function() {
	var url = getobjectUrl + '/' + encodeURI(this.rel);
	$.getJSON(url, function(data) {
	    htmlelement ="<div id='shadowboxHelpLayer' class='richtext'>" +
			 "<h1>" + data.headline + "</h1>" +
			 data.text +
			 "</div>";
	    Shadowbox.open({
		content:    htmlelement,
		player:     "html",
		height:     500,
		width:      600,
		options: {
			onClose: function() {
				delete htmlelement;
			}
		}
	    });
	});		        
	return false;
    });
    
    
    /**
    * ------------------------------------------------------------------------------
    * @subsubsection togglebox contextColumn
    * ------------------------------------------------------------------------------
    */
    
    $('.togglebox strong').click(function(){
	$(this)
	    .parent()
	    .parent()
	    .find('div.togglebox_content')
	    .toggle("normal")
	    .end()
	    .toggleClass("closed");
    });
    $('.togglebox p.more_options_link').click(function(){
	$(this)
	    .toggleClass("closed")
	    .parent()
	    .find('div.more_options')
	    .toggle("normal");
    }); 
	  	
    $('.togglebox .functions a.submit').attr('href', 'javascript://').click(function(){   	
        $('.toggleboxes_form').submit();
    });
    
    //reset form elements of current togglebox
    $('.togglebox .functions a.reset').click(function(e){   	
	var $currentTogglebox = $(this).closest('.togglebox_content');
	e.preventDefault();
	$(':input',$currentTogglebox).not(':button, :submit, :reset, :hidden')
	    .val('')
	    .removeAttr('checked')
	    .removeAttr('selected');
	    
	$currentTogglebox.find('.fakeDropdown').each(function() {
	    var id = $(this).attr('id');
	    clearDropdown($(this).attr('id'));
	    
	    $('.toggleboxes_form div[rel='+id+']').each(function() {
		resetDropdown($(this).attr('id'));
	    });
	});
	
	$('.toggleboxes_form').submit();
    });
    
    //reset all form elements
    $('#resetToggleboxesForm').click(function(e){   	
	e.preventDefault();
	$(':input','.toggleboxes_form').not(':button, :submit, :reset, :hidden')
	    .val('')
	    .removeAttr('checked')
	    .removeAttr('selected');
	    
	$('.toggleboxes_form').find('.fakeDropdown').each(function() { 
	    var id = $(this).attr('id');
	    clearDropdown($(this).attr('id'));
	    
	    $('.toggleboxes_form div[rel='+id+']').each(function() {
		resetDropdown($(this).attr('id'));
	    });
	});
	
	$('.toggleboxes_form').submit();
    });    

    /**
    * ------------------------------------------------------------------------------
    * @subsubsection location selection (map) on homepage
    * ------------------------------------------------------------------------------
    */
    
    if($('#selectCountry').length > 0) {
	$('#selectCountry li ul a').hover(
	    function(){
		$(this)
		.find('img')
		.animate({ width : "13px", height: "13px" },{ duration : 150 });
	    },
	    function(){
		$(this)
		.find('img')
		.animate({ width : "10px",height: "9px" },{ duration : 150 });
	    }
	)
    }

    /**
    * ------------------------------------------------------------------------------
    * @subsection register step2 (commercial, estateagent, private)
    * ------------------------------------------------------------------------------
    */
    	var $inputZipCodeRegistration = $('#postalcode');
	var $inputPlaceRegistration = $('#city');
	if($inputZipCodeRegistration.length > 0) {
	    $inputZipCodeRegistration.blur(function(){
		if($inputPlaceRegistration.val() == '') {
		    var paramCountry = $('#dropdown_country-hidden').val();
		    if(paramCountry == ''){
			var paramCountry = systemCountry; 
		    }
		    var paramZipCode = $(this).val();
		    
		    var placeURL = getplaceUrl + '/' + paramCountry + '/' + paramZipCode;
		    $.getJSON(placeURL, function(data) {
			handleException(data);
			
			if(data != null) {
			    $inputPlaceRegistration.val(data);
			}				
		    });
		}
	    });
	}

    /**
    * ------------------------------------------------------------------------------
    * @subsection place announcement
    * ------------------------------------------------------------------------------
    */
        /**
        * ------------------------------------------------------------------------------
        * @subsubsection placead_step2, editad_step2
        * ------------------------------------------------------------------------------
        */
	var $inputZipCode = $('#createAnnouncement-CityID');
	var $inputPlace = $('#createAnnouncement-City');
	if($inputZipCode.length > 0) {
	    $inputZipCode.blur(function(){
		if($inputPlace.val() == '') {
		    var paramCountry = $('#dropdown_country-hidden').val();
		    var paramZipCode = $(this).val();
		    
		    var placeURL = getplaceUrl + '/' + paramCountry + '/' + paramZipCode;
		    $.getJSON(placeURL, function(data) {
			handleException(data);
			
			if(data != null) {
			    $inputPlace.val(data);
			}				
		    });
		}
	    });
	}
	
        /**
        * ------------------------------------------------------------------------------
        * @subsubsection place announcement -step 3 (premium options)
        * ------------------------------------------------------------------------------
        */
        // calculate the price for premium options
        var currentPrice = 0;
	$adOptionsList = $('#announcement_options_list');
	if($adOptionsList.length>0) {
	    $adOptionsList.find('input[type=checkbox]').attr("checked",false).change(function(){
		 elPrice = parseFloat($(this).attr("rel").replace(",","."));
		 var $priceContainer = $('#priceComplete');
		 if($(this).attr("checked")) {
		     currentPrice = parseFloat(currentPrice) +elPrice;
		 } else {
		     currentPrice = parseFloat(currentPrice) - elPrice;
		 }
		 $priceContainer
		     .html((currentPrice + 0).toFixed(2).replace(".",",") + ' &euro;')
		     .parents('#announcement_options_total')
		     .highlightFade({
			     color : '#5c9ad2',
			     speed : 600
		     })
	    });
          
	}
       
 
    /**
    * ------------------------------------------------------------------------------
    * @subsubsection myheise
    * ------------------------------------------------------------------------------
    */
    
    /* Daten editieren toggle */
    $('.cancelButton,.editButton').click(function() {
	    var $this = $(this),
			parentContainer = $this.parents("fieldset"),
			contentData = parentContainer.find(".editdata_output"),
			contentForm = parentContainer.find(".editdata_input"),
			textField = contentForm.find('textarea'),
			countLines = textField.text() ? textField.text().split(/\n/g).length : false;
		
	    if($this.hasClass("editButton")) {
		
		contentData.fadeOut(function() {
			// Hoehe der textarea anpassen, falls vorhanden
			if ( countLines )
			{
				textField.css({'height' : countLines * textField.css('line-height').replace(/[a-zA-Z]/g, '') + 'px'});
			}
		    contentForm.fadeIn("def", function() {
			contentData.find(".success").remove();			
		    });
		});
		
	    } else if($this.hasClass("cancelButton")) {
		contentForm.fadeOut(function() {
		    contentData.fadeIn();
		});
	    }
            return false;
    });
    
    /* Account löschen */
    $('#deleteAccountButton').click(function() {
	if (confirm($('#deleteAccountButton').attr('title'))) {
    		window.location.href = unsignUrl;
	}
	return false;
    }); 
 
    /**
    * ------------------------------------------------------------------------------
    * @subsection suggest functions
    * ------------------------------------------------------------------------------
    */      
        // append containers for suggest functions
        if(!$.browser.msie) {
	    var suggestContainersCommon = $('<div id="suggest"></div><ul id="sresults" class="rounded-bottom"></ul><div id="suggestZIP"></div><ul id="sresultsZIP"></ul><div id="suggestZIPHeader"></div><ul id="sresultsZIPHeader"></ul>');
	} else {
	    var suggestContainersCommon = $('<div id="suggest"></div><ul id="sresults"></ul><div id="suggestZIP"></div><ul id="sresultsZIP"></ul><div id="suggestZIPHeader"></div><ul id="sresultsZIPHeader"></ul>');
	}
        $('body')
                .append(suggestContainersCommon);
		
        initSuggests();
          
    /**
    * ------------------------------------------------------------------------------
    * @subsection Datepicker
    * ------------------------------------------------------------------------------
    */
	$('.togglebox input.datepicker').datepicker({
		minDate: new Date(), // today
		changeMonth: true,
		changeYear: true,
		showOn: 'both', buttonImage: 'assets/images/calendar.gif', buttonImageOnly: true, buttonText: 'Kalender',
		onSelect: function(dateText, inst) { 
				var radioId = (inst.id == 'eventdate_eq') ? 'date_eq' : 'date_between';
				$('#' + radioId).attr('checked', true);										
			  }
	});
	
	$('#EventTimer input.datepicker').datepicker({		//Anzeigenaufgabe Veranstaltungen Step 2
		minDate: new Date(), // today
		changeMonth: true,
		changeYear: true,
		showOn: 'both', buttonImage: 'assets/images/calendar.gif', buttonImageOnly: true, buttonText: 'Kalender'
	});

	/**
	* ------------------------------------------------------------------------------
	* @subsection Set pager width
	* ------------------------------------------------------------------------------
	
	pagesUlArray = $("#pages").children("li");
	pagesWidth = 0;
	for(i=0; i<pagesUlArray.length; i++) {
		pagesWidth += pagesUlArray[i].offsetWidth + 4;	//4 = margin value of ul#pages li
	}
	pagesWidth += 102;	//102 = width of previous/next elements (a.page_link)	
	$("#pages_container").css("width",pagesWidth);
	*/

	/**
	* ------------------------------------------------------------------------------
	* @subsection Payment method selection
	* ------------------------------------------------------------------------------
	*/
	$(".payment_method fieldset div label, .payment_method fieldset div input").click(function() {
		$(this).parent().parent().find("div").removeClass("active");	
		$(this).parent().addClass("active");
	});
	
	/**
	* ------------------------------------------------------------------------------
	* @subsection breadcrump subcategory selection
	* ------------------------------------------------------------------------------
	*/
	$("#subcatfilter").find('a').each(function(i) {
		$(this).attr('href', $(this).parent().attr('title'));
		$(this).parent().removeAttr('title');
	});
	
	/**
	* ------------------------------------------------------------------------------
	* Min/Max validation for filter forms
	* ------------------------------------------------------------------------------
	*/
		
	var focusTimer = false;
	$("input[name$='[lte]'], input[name$='[gte]']").focus(function() {		
		$filterElement 	= $(this);
		filterType	= 'text';
		focusTimer 	= setInterval("validateIntervalFilter()", 500);	
	}).blur(function() {
		clearInterval(focusTimer);
		focusTimer 	= null;
		$filterElement 	= null;		
		filterType	= null;
	});
	
	/*
	if($contextAd.length) {
		$contextAd.data('originalPos',$contextAd.offset().top);
		$(window)
			.bind({
				scroll : scrollContextAd
			});
	}
	if($(window).scrollTop()>0) {
		scrollContextAd();
	}
	*/
});


/**
* ------------------------------------------------------------------------------
* @section window->ready functions
* ------------------------------------------------------------------------------
*/
$(window).load(function() {
    
    /**
    * ------------------------------------------------------------------------------
    * @subsubsection tooltips
    * ------------------------------------------------------------------------------
    */
        // add tooltip to help link classes 
        $('.social-logon a, #selectCountry li a, .helpLink a, .passwordstrengthHelp a')
        .tooltip({ 
            track: true, 
            delay: 200, 
            showURL: false, 
            showBody: " - ", 
            fade: 250 
        });
	
	$('.helpLink a, .passwordstrengthHelp a').click(function(e) {
	    e.preventDefault();
	});
	
	
	
});
/*
function scrollContextAd() {
	$contextAd.stop().animate({
		top : 	$contextAd.data('originalPos') + $(window).scrollTop() - 105
	},500)
}
*/

var $filterElement = null;
var filterType	   = null;
function validateIntervalFilter() {
	
	if (!$filterElement || !filterType) return;
	
	var formId = $filterElement.parents("form").attr('id');
	var baseName = $filterElement.attr('name').replace(/\[(l|g)te\]$/, '');	
	var $minFilter = $("#" + formId + " input[name='" + baseName + "[gte]']");
	var $maxFilter = $("#" + formId + " input[name='" + baseName + "[lte]']");
	if ($minFilter.size() != 1 || $maxFilter.size() != 1) return; // no min/max pair found
	
	var error = false;
	do {				
		var minVal = $minFilter.val();
		var maxVal = $maxFilter.val();			
		if (minVal.length == 0 || maxVal.length == 0) break; // unfilled elements
		
		if (minVal.match(/^\d+$/) && maxVal.match(/^\d+$/)) {	
			// check interval error		
			minVal = parseInt(minVal, 10);	
			maxVal = parseInt(maxVal, 10);
			if (minVal <= maxVal) break; // valid input	
			error = true;
			break;
		}if (minVal.match(/^\d{4}-\d{2}-\d{2}$/) && maxVal.match(/^\d{4}-\d{2}-\d{2}$/)) {			
			// check date interval error
			if (minVal <= maxVal) break; // valid input	
			error = true;
			break;
		} else {
			// format error
			error = true;
		}												
	} while (false);
	
	// validation highlighting
	if (error) {
		if (filterType == 'text') {
			$minFilter.addClass('intervalerror');
			$maxFilter.addClass('intervalerror');
		} else if (filterType == 'fakeDropdown') {
			$minFilter.parent().addClass('intervalerror');
			$maxFilter.parent().addClass('intervalerror');
		}
	} else {
		if (filterType == 'text') {
			$minFilter.removeClass('intervalerror');
			$maxFilter.removeClass('intervalerror');
		} else if (filterType == 'fakeDropdown') {
			$minFilter.parent().removeClass('intervalerror');
			$maxFilter.parent().removeClass('intervalerror');
		}
	}
}

function initSuggests() {
        $('#specialSearch-announcements_common-search, #searchForm_what')
                .suggest(suggestAjaxUrl,{dataContainer:'#suggest', attachObject:'#sresults'});
        $('#specialSearch .where input, #searchForm_where')
                .suggest(locSuggestAjaxUrl,{dataContainer:'#suggestZIPHeader', attachObject:'#sresultsZIPHeader'});  
        $('#city_postalcode')
                .suggest(locSuggestAjaxUrl,{dataContainer:'#suggestZIP', attachObject:'#sresultsZIP'});
}

    
function initInputFields(container) {
    if(typeof(container) == "undefined") {
            $("input.default,textarea.default").focus(function() {
                currentField = $(this);
                if(!currentField.hasClass('error')) {
                    currentField.highlightFade(
                        {
                            color : '#5c9ad2',
                            speed : 200
                        }
                    )
                    .css("borderColor","#5c9ad2");
                    if(currentField.attr('rel') != '' &&
                       currentField.attr("rel") == currentField.attr("value")) {
                       currentField.attr("value","");
                    }
                }
            });
            // restore default text in textfields and input elements on blur
            $("input.default,textarea.default").blur(function() {
                currentField = $(this);
                if(!currentField.hasClass('error')) {
                    if(currentField.attr("value") == '' &&
                       currentField.attr('rel') != '') {
                    	currentField.attr("value", currentField.attr('rel'));
                    }
                    $(this).css("borderColor","#979DAA");
                }
            });
    } else {
            pre = "";
            if($('.' + container).length > 0 || $('#' + container).length > 0) {
                    if($('.' + container).length > 0) {
                            pre = ".";
                    }
                    if($('#' + container).length > 0) {
                            pre = "#";
                    }                        
            } else {
                    return false;
            }
            $(pre + container + " input.default," + pre + container + " textarea.default").focus(function() {
                currentField = $(this);
                if(!currentField.hasClass('error')) {
                    currentField.highlightFade(
                        {
                            color : '#5c9ad2',
                            speed : 200
                        }
                    )
                    .css("borderColor","#5c9ad2");
                    if(currentField.attr("value") == this.defaultValue) {
                        currentField.attr("value","");
                    }
                }
            });
            // restore default text in textfields and input elements on blur
            $(pre + container + " input.default," + pre + container + " textarea.default").blur(function() {
                currentField = $(this);
                if(!currentField.hasClass('error')) {
                    if(currentField.attr("value") == '') {
                        currentField.attr("value",this.defaultValue);
                    }
                    $(this).css("borderColor","#979DAA");
                }
            });     
    }
}


/* initializes "fake dropdowns" (either on a specified container or - if no argument specified - on the whole document */
function initDropdowns(container) {
          
        if(typeof(container) != "undefined") {
            dropdownsOuter = $('#' + container + ' .fakeDropdown:not(.hasDropdown)');
        } else {
            dropdownsOuter = $('.fakeDropdown:not(.hasDropdown)');
        }
        
	for(k=0,K=dropdownsOuter.length;k<K;k++) {
            var currentEl = $(dropdownsOuter[k]);
	    //add class to avoid more then one initialization per dropdown
	    currentEl.addClass("hasDropdown");
	    
            var lis = currentEl.find("li");
            var liLength = lis.length;
            var hiddenFields = currentEl.find('input[type=hidden]');
	    
	    for(i=0,I=liLength;i<I;i++) {
                 var $currentLI = $(lis[i]);
		 if($currentLI.attr("title") == hiddenFields.val()) {
                    currentEl.find("span:first").html($currentLI.html());
                }
	    }  
            if(typeof(hiddenVal) != "undefined" && hiddenVal !="") {
                for(j=0,J=liLength;j<J;j++) {
                    var $currentLI = $(lis[j]);
                    if(hiddenVal == $currentLI.attr("title")) {
                        parentDiv.find("span:first").html($currentLI.html());
                        return false;
                    }	
                }
            }
	}
	
        // show uls in "fake dropdowns" on click or enter/downarrow
        dropdownsOuter
                .attr("tabindex","0")
                .click(function() {
                        openDropdown(this);
                })
                .keyup(function(e){
                        var $currentDropdown = $(this);
			if(e.keyCode == 13 || e.keyCode == 40) { // enter or downarrow: open dropdown
                                openDropdown(e.target);
                                return false;
                        }
                        else if(e.keyCode == 9 || e.keyCode == 27) { // tab or escape: close dropdown
                                fadeFakeDropdownsOut($currentDropdown);
                        }
			else if(e.keyCode >= 65 && e.keyCode <= 90 || e.keyCode >= 48 && e.keyCode <= 57)  { // a - z, 0 - 9
			    var keyChar = String.fromCharCode(e.keyCode).toLowerCase();
			    $currentDropdown.find('li').each(function(index) {
				var $currentLi = $(this);
				if($currentLi.attr('title') != '') {
				    var firstChar = $currentLi.text().charAt(0).toLowerCase();
				    if(firstChar == keyChar) {
					setDropdownValue($currentLi);
					
					if($.browser.msie && $.browser.version.substr(0,1)<=7) {
					    fadeFakeDropdownsOut($currentDropdown.attr('id'), true);
					} else {
					    fadeFakeDropdownsOut($currentDropdown);
					}
					return false;
				    }
				}
			    });
			}
                }); 
                
	$("div.fakeDropdown input[name$='[lte]'], input[name$='[gte]']").change(function() {		
		$filterElement 	= $(this);
		filterType	= 'fakeDropdown';
		validateIntervalFilter();
	})       
}

function openDropdown(el) {

        currentEl = $(el);
        if(!currentEl.hasClass("disabled")) {
                currentEl.find('li').unbind().click(function() {
                        setDropdownValue($(this));
                });
    		
		if($.browser.msie && $.browser.version.substr(0,1)<=7) {	// if IE6 or IE7
		
		    if($('#ieDDcontainer').length == 0) {
			$('body').append($('<div id="ieDDcontainer"></div>'));
		    }
		    
		    currentFakeId = "fake_" + currentEl.attr("id");
		    
		    //if the fake dropdown isn't open yet..
		    if($("#" + currentFakeId).length==0) {
			 var elPos = currentEl.offset();		    
			 
			 currentEl.find("ul")
			     .css("width",currentEl.width())
			     .clone(true)
			     .data("parentEl", currentEl)
			     .attr("id",currentFakeId)
			     .addClass('openDropdown')
			     .appendTo($('#ieDDcontainer'))
			     .css({
				 position : 'absolute',
				 zIndex : '9999',
				 left : elPos.left,
				 top : elPos.top+19
			     })
			     .fadeIn("normal",
				     function() {
					
					currentElId = currentEl.attr("id");
					
					 $(document).click(function(){
						fadeFakeDropdownsOut(currentElId, true);
						
					 }) 
				     }
			     );
		    }
		    
		} else {
		    currentEl
			     .find("ul")
			     .css("width",currentEl.width())
			     .fadeIn("normal",function callback() { 
				     $(document).click(function(){
					     fadeFakeDropdownsOut(el);
				     })     
			     }); 
		}
			
        } else {
                return false;
        }
}

function setDropdownValue(currentSelection) {	// current selection is li element
			
    //IE: the cloned UL stored the origin DIV in it's data
    ieULData = currentSelection.parents("ul:first").data("parentEl");
    
    if(!ieULData) {
	  var thisContainer = currentSelection.parents("div:first");
    } else {
	  var thisContainer = ieULData;
    }
    
    thisContainer
    .find('input[type=hidden]')
    .attr("value",currentSelection.attr("title")).
    change();    
    
    // look for observers
    $('div[rel*=' + thisContainer.attr('id') + ']').each(
	    // notify observers
	    function(i) {
		    resetDropdown(this.id);
	    }
    );		
    
    /* dropdowns which submit the form instantly */
    if(thisContainer.hasClass('onchange')) {
	currentSelection.parents('form:first').submit();
    } else {
	thisContainer
	.find('span')
	.html(currentSelection.html());
    }
}

/* resets a dropdown */
function clearDropdown(id) {   
	
	var $currentDropdown = $('#' + id);
	
	$currentDropdown.find('input[type=hidden]').val('');		// empty hidden field
	var firstLiText = $currentDropdown.find('ul li:first').text();
	$currentDropdown.find('span').text(firstLiText);
		       
}

/* resets a dependant dropdown */
function resetDropdown(id) {   
	
	var dependencies = $('#' + id).attr('rel').split(',');
	
	// check dependicies
	if (dependencies.length == 0) return;
	
	// reset option list
	$('#' + id)							// find container div
		  .addClass('disabled')					// add disabled class
		  .find('input[type=hidden]').val('').end()		// empty hidden field
		  .find('li').remove().end()				// clear li
		  .find('ul').html('<li title="">keine Auswahl</li>').end()	// insert default li
		  .parent().find('span').text('keine Auswahl').end();	// set span text		           
	
	// build ajax url	           
	var method = $('#' + id + ' ul:first').attr('rel');
	var url = dropDownAjaxUrl + '/' + id + '/' + encodeURI(method); 	
	
	// look-up selected values from dependencies	
	var parameter = '';
	if (method == 'subcats') {
		parameter = $('#' + dependencies[dependencies.length - 1]).find('input[type=hidden]').val();
		
		// check if all parameters are defined
		if (parameter.length == 0) return;
                
                // manually escape the (+) characters because encodeURI() doesn't do it ...
		url += '/' + encodeURI(parameter).replace(/\+/, '%2B');
	} else {		
		for (i = 0; i < dependencies.length; i++) {				
			
			parameter = $('#' + dependencies[i]).find('input[type=hidden]').val();
			
			//console.debug(dependencies[i] + ': ' + parameter);
			
			// check if all parameters are defined
			if (parameter.length == 0) return;
	                
	                // manually escape the (+) characters because encodeURI() doesn't do it ...
			url += '/' + encodeURI(parameter).replace(/\+/, '%2B');
		}
	}
	
	// perform json call
	$.getJSON(url, function(data) {
		
		handleException(data);
		
		// check if option list not empty	
		if (data['options'].length == 0) return;
				
		// rebuild option list
       		var ul = $('#' + data['id'] + ' ul[rel=' + data['method'] + ']');
       		var liList = ul.html();
       		for (i = 0; i < data['options'].length; i++) {
       			// check if option has explicite id
       			if (typeof(data['options'][i].id) != "undefined") {
       				liList += '<li title="' + data['options'][i].id + '">' + data['options'][i].attr + '</li>';
       			} else {
       				liList += '<li title="' + data['options'][i].attr + '">' + data['options'][i].attr + '</li>';
       			}
       		}
       		
       		// enable parent div
       		ul.html(liList).parent().removeClass('disabled');
	});
}

function fadeFakeDropdownsOut(el, isIE) {
    
    if(isIE) {  
	$('#fake_' + el).fadeOut("fast",function() {
	    $(this).remove();    
	});
    } else {
	$(el).find("ul").fadeOut("fast");
    }

    $(document).unbind("click");
}


/* get specialSearch by Ajax request and reinitialize input highlighting + fake-dropdowns */
function initSpecialSearches() {
    // display "fancy" buttons instead of normal submits
    
    var $currentSearchForm = $("#specialSearch form");
    if($currentSearchForm.length == 0) {
	$currentSearchForm = $('#searchForm');
    }
    var $currentSearchFormID = $currentSearchForm.attr("id");
    
    var newButton = $(fancyButton($currentSearchFormID))
                    .click(function(){
			$currentSearchForm.submit();
                    });
        $('#specialSearchSubmit, #searchFormSubmit')
            .css("display","none")
            .parent()
            .append(newButton);
	    
    
        /* re-initialize dropdowns */
        initDropdowns("specialSearch");
        /* re-initialize highlighting of and clearing of default values on text-inputs */
        initInputFields("specialSearch");
        /* re-initialize suggest functions for zip-codes */
        initSuggests();
        /* init tooltips for radius labels */
        $('.radius label')
        .tooltip({ 
            track: true, 
            delay: 200, 
            showURL: false, 
            showBody: " - ", 
            fade: 250 
        });
    
        /* fixes IE zIndex stacking issues */
        if ($.browser.msie && ($.browser.version == "6.0" || $.browser.version == "7.0")) {
            var zIndexNumber = 1000;
            $('#header div, .content_wrapper div, .content_wrapper .fakeDropdown ul').each(function() {
                    $(this).css('zIndex', zIndexNumber);
                    zIndexNumber--;
            });
        }  
}

/* get expertSearch by Ajax request and reinitialize input highlighting + fake-dropdowns */
function initExpertSearches() {   
        /* re-initialize dropdowns */
        initDropdowns("content_expertSearch");
        /* re-initialize highlighting of and clearing of default values on text-inputs */
        initInputFields("content_expertSearch");                
        
        /* fixes IE zIndex stacking issues */
        if ($.browser.msie && ($.browser.version == "6.0" || $.browser.version == "7.0")) {
            var zIndexNumber = 1000;
            $('#content_expertSearch div').each(function() {
                    $(this).css('zIndex', zIndexNumber);
                    zIndexNumber--;
            });
        }
}


// returns a "fancy" button depending on which detailsearch is open on page load
function fancyButton(el) {
    var button = "";
    switch(el) {
        case "specialSearch-all" : button += "<button id='fancyButton' class='specialSearch-fancy'>Jetzt finden!</button>";
            break;
        case "specialSearch-cars" : button += "<button id='fancyButton' class='specialSearch-fancy'>Fahreuge finden!</button>";
            break;
        case "specialSearch-events" : button += "<button id='fancyButton' class='specialSearch-fancy'>Veranstaltungen finden!</button>";
            break;
        case "specialSearch-estates" : button += "<button id='fancyButton' class='specialSearch-fancy'>Immobilien finden!</button>";
            break;
        case "specialSearch-contacts" : button += "<button id='fancyButton' class='specialSearch-fancy'>Kontakte finden!</button>";
            break;
        case "specialSearch-jobs" : button += "<button id='fancyButton' class='specialSearch-fancy'>Jobs finden!</button>";
            break;
	case "searchForm" : button += "<button id='fancyButton' class='searchForm-fancy'>Jobs finden!</button>";
            break;
        default :  button += "<button id='fancyButton' class='specialSearch-fancy'>Jetzt finden!</button>";
    }
    return(button);
}

/**
 * Regenerates a captcha image
 *
 * @param string	imgId		The id of the captcha image
 * @param string	renewUrl	The renew url
 */			       	
function renewCaptcha(imgId, renewUrl) {
    var now = new Date();
    $('#' + imgId).attr('src', renewUrl + '&amp;t=' + now.getTime());					       			
}


/**
* ------------------------------------------------------------------------------
* @section plugins + 3rd party scripts
* ------------------------------------------------------------------------------
*/

/**
 *  jQuery Plugin highlightFade (jquery.offput.ca/highlightFade)
 *  (c) 2006 Blair Mitchelmore (offput.ca) blair@offput.ca
 * @author          Blair Mitchelmore (blair@offput.ca)
 * @version         0.5
 */
jQuery.fn.highlightFade=function(b){var o=(b&&b.constructor==String)?{start:b}:b||{};var d=jQuery.highlightFade.defaults;var i=o['interval']||d['interval'];var a=o['attr']||d['attr'];var f={'linear':function(s,e,t,c){return parseInt(s+(c/t)*(e-s))},'sinusoidal':function(s,e,t,c){return parseInt(s+Math.sin(((c/t)*90)*(Math.PI/180))*(e-s))},'exponential':function(s,e,t,c){return parseInt(s+(Math.pow(c/t,2))*(e-s))}};var t=(o['iterator']&&o['iterator'].constructor==Function)?o['iterator']:f[o['iterator']]||f[d['iterator']]||f['linear'];if(d['iterator']&&d['iterator'].constructor==Function)t=d['iterator'];return this.each(function(){if(!this.highlighting)this.highlighting={};var e=(this.highlighting[a])?this.highlighting[a].end:jQuery.highlightFade.getBaseValue(this,a)||[255,255,255];var c=jQuery.highlightFade.getRGB(o['start']||o['colour']||o['color']||d['start']||[255,255,128]);var s=jQuery.speed(o['speed']||d['speed']);var r=o['final']||(this.highlighting[a]&&this.highlighting[a].orig)?this.highlighting[a].orig:jQuery.curCSS(this,a);if(o['end']||d['end'])r=jQuery.highlightFade.asRGBString(e=jQuery.highlightFade.getRGB(o['end']||d['end']));if(typeof o['final']!='undefined')r=o['final'];if(this.highlighting[a]&&this.highlighting[a].timer)window.clearInterval(this.highlighting[a].timer);this.highlighting[a]={steps:((s.duration)/i),interval:i,currentStep:0,start:c,end:e,orig:r,attr:a};jQuery.highlightFade(this,a,o['complete'],t)})};jQuery.highlightFade=function(e,a,o,t){e.highlighting[a].timer=window.setInterval(function(){var b=t(e.highlighting[a].start[0],e.highlighting[a].end[0],e.highlighting[a].steps,e.highlighting[a].currentStep);var c=t(e.highlighting[a].start[1],e.highlighting[a].end[1],e.highlighting[a].steps,e.highlighting[a].currentStep);var d=t(e.highlighting[a].start[2],e.highlighting[a].end[2],e.highlighting[a].steps,e.highlighting[a].currentStep);jQuery(e).css(a,jQuery.highlightFade.asRGBString([b,c,d]));if(e.highlighting[a].currentStep++>=e.highlighting[a].steps){jQuery(e).css(a,e.highlighting[a].orig||'');window.clearInterval(e.highlighting[a].timer);e.highlighting[a]=null;if(o&&o.constructor==Function)o.call(e)}},e.highlighting[a].interval)};jQuery.highlightFade.defaults={start:[255,255,128],interval:50,speed:400,attr:'backgroundColor'};jQuery.highlightFade.getRGB=function(c,d){var a;if(c&&c.constructor==Array&&c.length==3)return c;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return[parseInt(a[1]),parseInt(a[2]),parseInt(a[3])];else if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return[parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55];else if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return[parseInt("0x"+a[1]),parseInt("0x"+a[2]),parseInt("0x"+a[3])];else if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return[parseInt("0x"+a[1]+a[1]),parseInt("0x"+a[2]+a[2]),parseInt("0x"+a[3]+a[3])];else return jQuery.highlightFade.checkColorName(c)||d||null};jQuery.highlightFade.asRGBString=function(a){return"rgb("+a.join(",")+")"};jQuery.highlightFade.getBaseValue=function(e,a,b){var s,t;b=b||false;t=a=a||jQuery.highlightFade.defaults['attr'];do{s=jQuery(e).css(t||'backgroundColor');if((s!=''&&s!='transparent')||(e.tagName.toLowerCase()=="body")||(!b&&e.highlighting&&e.highlighting[a]&&e.highlighting[a].end))break;t=false}while(e=e.parentNode);if(!b&&e.highlighting&&e.highlighting[a]&&e.highlighting[a].end)s=e.highlighting[a].end;if(s==undefined||s==''||s=='transparent')s=[255,255,255];return jQuery.highlightFade.getRGB(s)};jQuery.highlightFade.checkColorName=function(c){if(!c)return null;switch(c.replace(/^\s*|\s*$/g,'').toLowerCase()){case'aqua':return[0,255,255];case'black':return[0,0,0];case'blue':return[0,0,255];case'fuchsia':return[255,0,255];case'gray':return[128,128,128];case'green':return[0,128,0];case'lime':return[0,255,0];case'maroon':return[128,0,0];case'navy':return[0,0,128];case'olive':return[128,128,0];case'purple':return[128,0,128];case'red':return[255,0,0];case'silver':return[192,192,192];case'teal':return[0,128,128];case'white':return[255,255,255];case'yellow':return[255,255,0]}};
/**
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+
* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
* 
* @param  f  onMouseOver function || An object with configuration options
* @param  g  onMouseOut function  || Nothing (use configuration options object)
* @author    Brian Cherne <brian@cherne.net>
*/
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout: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=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);
/* Copyright (c) 2007 Paul Bakaus (paul.bakaus@googlemail.com) and Brandon Aaron (brandon.aaron@gmail.com || http://brandonaaron.net)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 *
 * $LastChangedDate: 2007-08-12 22:47:23 -0500 (Sun, 12 Aug 2007) $
 * $Rev: 2669 $
 *
 * Version: 1.1
 */
(function($){var e=$.fn.height,width=$.fn.width;$.fn.extend({height:function(){if(!this[0])f();if(this[0]==window)if(($.browser.mozilla||$.browser.opera)&&$(document).width()>self.innerWidth)return self.innerHeight-j();else return self.innerHeight||$.boxModel&&document.documentElement.clientHeight||document.body.clientHeight;if(this[0]==document)return Math.max(document.body.scrollHeight,document.body.offsetHeight);return e.apply(this,arguments)},width:function(){if(!this[0])f();if(this[0]==window)if(($.browser.mozilla||$.browser.opera)&&$(document).height()>self.innerHeight)return self.innerWidth-j();else return self.innerWidth||$.boxModel&&document.documentElement.clientWidth||document.body.clientWidth;if(this[0]==document)if($.browser.mozilla){var a=self.pageXOffset;self.scrollTo(99999999,self.pageYOffset);var b=self.pageXOffset;self.scrollTo(a,self.pageYOffset);return document.body.offsetWidth+b}else return Math.max(document.body.scrollWidth,document.body.offsetWidth);return width.apply(this,arguments)},innerHeight:function(){if(!this[0])f();return this[0]==window||this[0]==document?this.height():this.is(':visible')?this[0].offsetHeight-g(this,'borderTopWidth')-g(this,'borderBottomWidth'):this.height()+g(this,'paddingTop')+g(this,'paddingBottom')},innerWidth:function(){if(!this[0])f();return this[0]==window||this[0]==document?this.width():this.is(':visible')?this[0].offsetWidth-g(this,'borderLeftWidth')-g(this,'borderRightWidth'):this.width()+g(this,'paddingLeft')+g(this,'paddingRight')},outerHeight:function(a){if(!this[0])f();a=$.extend({margin:false},a||{});return this[0]==window||this[0]==document?this.height():this.is(':visible')?this[0].offsetHeight+(a.margin?(g(this,'marginTop')+g(this,'marginBottom')):0):this.height()+g(this,'borderTopWidth')+g(this,'borderBottomWidth')+g(this,'paddingTop')+g(this,'paddingBottom')+(a.margin?(g(this,'marginTop')+g(this,'marginBottom')):0)},outerWidth:function(a){if(!this[0])f();a=$.extend({margin:false},a||{});return this[0]==window||this[0]==document?this.width():this.is(':visible')?this[0].offsetWidth+(a.margin?(g(this,'marginLeft')+g(this,'marginRight')):0):this.width()+g(this,'borderLeftWidth')+g(this,'borderRightWidth')+g(this,'paddingLeft')+g(this,'paddingRight')+(a.margin?(g(this,'marginLeft')+g(this,'marginRight')):0)},scrollLeft:function(a){if(!this[0])f();if(a!=undefined)return this.each(function(){if(this==window||this==document)window.scrollTo(a,$(window).scrollTop());else this.scrollLeft=a});if(this[0]==window||this[0]==document)return self.pageXOffset||$.boxModel&&document.documentElement.scrollLeft||document.body.scrollLeft;return this[0].scrollLeft},scrollTop:function(a){if(!this[0])f();if(a!=undefined)return this.each(function(){if(this==window||this==document)window.scrollTo($(window).scrollLeft(),a);else this.scrollTop=a});if(this[0]==window||this[0]==document)return self.pageYOffset||$.boxModel&&document.documentElement.scrollTop||document.body.scrollTop;return this[0].scrollTop},position:function(a){return this.offset({margin:false,scroll:false,relativeTo:this.offsetParent()},a)},offset:function(a,b){if(!this[0])f();var x=0,y=0,sl=0,st=0,elem=this[0],parent=this[0],op,parPos,elemPos=$.css(elem,'position'),mo=$.browser.mozilla,ie=$.browser.msie,oa=$.browser.opera,sf=$.browser.safari,sf3=$.browser.safari&&parseInt($.browser.version)>520,absparent=false,relparent=false,a=$.extend({margin:true,border:false,padding:false,scroll:true,lite:false,relativeTo:document.body},a||{});if(a.lite)return this.offsetLite(a,b);if(a.relativeTo.jquery)a.relativeTo=a.relativeTo[0];if(elem.tagName=='BODY'){x=elem.offsetLeft;y=elem.offsetTop;if(mo){x+=g(elem,'marginLeft')+(g(elem,'borderLeftWidth')*2);y+=g(elem,'marginTop')+(g(elem,'borderTopWidth')*2)}else if(oa){x+=g(elem,'marginLeft');y+=g(elem,'marginTop')}else if((ie&&jQuery.boxModel)){x+=g(elem,'borderLeftWidth');y+=g(elem,'borderTopWidth')}else if(sf3){x+=g(elem,'marginLeft')+g(elem,'borderLeftWidth');y+=g(elem,'marginTop')+g(elem,'borderTopWidth')}}else{do{parPos=$.css(parent,'position');x+=parent.offsetLeft;y+=parent.offsetTop;if(mo||ie||sf3){x+=g(parent,'borderLeftWidth');y+=g(parent,'borderTopWidth');if(mo&&parPos=='absolute')absparent=true;if(ie&&parPos=='relative')relparent=true}op=parent.offsetParent||document.body;if(a.scroll||mo){do{if(a.scroll){sl+=parent.scrollLeft;st+=parent.scrollTop}if(oa&&($.css(parent,'display')||'').match(/table-row|inline/)){sl=sl-((parent.scrollLeft==parent.offsetLeft)?parent.scrollLeft:0);st=st-((parent.scrollTop==parent.offsetTop)?parent.scrollTop:0)}if(mo&&parent!=elem&&$.css(parent,'overflow')!='visible'){x+=g(parent,'borderLeftWidth');y+=g(parent,'borderTopWidth')}parent=parent.parentNode}while(parent!=op)}parent=op;if(parent==a.relativeTo&&!(parent.tagName=='BODY'||parent.tagName=='HTML')){if(mo&&parent!=elem&&$.css(parent,'overflow')!='visible'){x+=g(parent,'borderLeftWidth');y+=g(parent,'borderTopWidth')}if(((sf&&!sf3)||oa)&&parPos!='static'){x-=g(op,'borderLeftWidth');y-=g(op,'borderTopWidth')}break}if(parent.tagName=='BODY'||parent.tagName=='HTML'){if(((sf&&!sf3)||(ie&&$.boxModel))&&elemPos!='absolute'&&elemPos!='fixed'){x+=g(parent,'marginLeft');y+=g(parent,'marginTop')}if(sf3||(mo&&!absparent&&elemPos!='fixed')||(ie&&elemPos=='static'&&!relparent)){x+=g(parent,'borderLeftWidth');y+=g(parent,'borderTopWidth')}break}}while(parent)}var c=h(elem,a,x,y,sl,st);if(b){$.extend(b,c);return this}else{return c}},offsetLite:function(a,b){if(!this[0])f();var x=0,y=0,sl=0,st=0,parent=this[0],offsetParent,a=$.extend({margin:true,border:false,padding:false,scroll:true,relativeTo:document.body},a||{});if(a.relativeTo.jquery)a.relativeTo=a.relativeTo[0];do{x+=parent.offsetLeft;y+=parent.offsetTop;offsetParent=parent.offsetParent||document.body;if(a.scroll){do{sl+=parent.scrollLeft;st+=parent.scrollTop;parent=parent.parentNode}while(parent!=offsetParent)}parent=offsetParent}while(parent&&parent.tagName!='BODY'&&parent.tagName!='HTML'&&parent!=a.relativeTo);var c=h(this[0],a,x,y,sl,st);if(b){$.extend(b,c);return this}else{return c}},offsetParent:function(){if(!this[0])f();var a=this[0].offsetParent;while(a&&(a.tagName!='BODY'&&$.css(a,'position')=='static'))a=a.offsetParent;return $(a)}});var f=function(){throw"Dimensions: jQuery collection is empty";};var g=function(a,b){return parseInt($.css(a.jquery?a[0]:a,b))||0};var h=function(a,b,x,y,c,d){if(!b.margin){x-=g(a,'marginLeft');y-=g(a,'marginTop')}if(b.border&&(($.browser.safari&&parseInt($.browser.version)<520)||$.browser.opera)){x+=g(a,'borderLeftWidth');y+=g(a,'borderTopWidth')}else if(!b.border&&!(($.browser.safari&&parseInt($.browser.version)<520)||$.browser.opera)){x-=g(a,'borderLeftWidth');y-=g(a,'borderTopWidth')}if(b.padding){x+=g(a,'paddingLeft');y+=g(a,'paddingTop')}if(b.scroll&&(!$.browser.opera||a.offsetLeft!=a.scrollLeft&&a.offsetTop!=a.scrollLeft)){c-=a.scrollLeft;d-=a.scrollTop}return b.scroll?{top:y-d,left:x-c,scrollTop:d,scrollLeft:c}:{top:y,left:x}};var i=0;var j=function(){if(!i){var a=$('<div>').css({width:100,height:100,overflow:'auto',position:'absolute',top:-1000,left:-1000}).appendTo('body');i=100-a.append('<div>').find('div').css({width:'100%',height:200}).width();a.remove()}return i}})(jQuery);
/*
 * jQuery Tooltip plugin 1.3
 *
 * http://bassistance.de/jquery-plugins/jquery-plugin-tooltip/
 * http://docs.jquery.com/Plugins/Tooltip
 *
 * Copyright (c) 2006 - 2008 JÃƒÆ’Ã‚Â¶rn Zaefferer
 *
 * $Id: jquery.tooltip.js 5741 2008-06-21 15:22:16Z joern.zaefferer $
 * 
 * Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 */
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}(';(8($){j e={},9,m,B,A=$.2u.2g&&/29\\s(5\\.5|6\\.)/.1M(1H.2t),M=12;$.k={w:12,1h:{Z:25,r:12,1d:19,X:"",G:15,E:15,16:"k"},2s:8(){$.k.w=!$.k.w}};$.N.1v({k:8(a){a=$.1v({},$.k.1h,a);1q(a);g 2.F(8(){$.1j(2,"k",a);2.11=e.3.n("1g");2.13=2.m;$(2).24("m");2.22=""}).21(1e).1U(q).1S(q)},H:A?8(){g 2.F(8(){j b=$(2).n(\'Y\');4(b.1J(/^o\\(["\']?(.*\\.1I)["\']?\\)$/i)){b=1F.$1;$(2).n({\'Y\':\'1D\',\'1B\':"2r:2q.2m.2l(2j=19, 2i=2h, 1p=\'"+b+"\')"}).F(8(){j a=$(2).n(\'1o\');4(a!=\'2f\'&&a!=\'1u\')$(2).n(\'1o\',\'1u\')})}})}:8(){g 2},1l:A?8(){g 2.F(8(){$(2).n({\'1B\':\'\',Y:\'\'})})}:8(){g 2},1x:8(){g 2.F(8(){$(2)[$(2).D()?"l":"q"]()})},o:8(){g 2.1k(\'28\')||2.1k(\'1p\')}});8 1q(a){4(e.3)g;e.3=$(\'<t 16="\'+a.16+\'"><10></10><t 1i="f"></t><t 1i="o"></t></t>\').27(K.f).q();4($.N.L)e.3.L();e.m=$(\'10\',e.3);e.f=$(\'t.f\',e.3);e.o=$(\'t.o\',e.3)}8 7(a){g $.1j(a,"k")}8 1f(a){4(7(2).Z)B=26(l,7(2).Z);p l();M=!!7(2).M;$(K.f).23(\'W\',u);u(a)}8 1e(){4($.k.w||2==9||(!2.13&&!7(2).U))g;9=2;m=2.13;4(7(2).U){e.m.q();j a=7(2).U.1Z(2);4(a.1Y||a.1V){e.f.1c().T(a)}p{e.f.D(a)}e.f.l()}p 4(7(2).18){j b=m.1T(7(2).18);e.m.D(b.1R()).l();e.f.1c();1Q(j i=0,R;(R=b[i]);i++){4(i>0)e.f.T("<1P/>");e.f.T(R)}e.f.1x()}p{e.m.D(m).l();e.f.q()}4(7(2).1d&&$(2).o())e.o.D($(2).o().1O(\'1N://\',\'\')).l();p e.o.q();e.3.P(7(2).X);4(7(2).H)e.3.H();1f.1L(2,1K)}8 l(){B=S;4((!A||!$.N.L)&&7(9).r){4(e.3.I(":17"))e.3.Q().l().O(7(9).r,9.11);p e.3.I(\':1a\')?e.3.O(7(9).r,9.11):e.3.1G(7(9).r)}p{e.3.l()}u()}8 u(c){4($.k.w)g;4(c&&c.1W.1X=="1E"){g}4(!M&&e.3.I(":1a")){$(K.f).1b(\'W\',u)}4(9==S){$(K.f).1b(\'W\',u);g}e.3.V("z-14").V("z-1A");j b=e.3[0].1z;j a=e.3[0].1y;4(c){b=c.2o+7(9).E;a=c.2n+7(9).G;j d=\'1w\';4(7(9).2k){d=$(C).1r()-b;b=\'1w\'}e.3.n({E:b,14:d,G:a})}j v=z(),h=e.3[0];4(v.x+v.1s<h.1z+h.1n){b-=h.1n+20+7(9).E;e.3.n({E:b+\'1C\'}).P("z-14")}4(v.y+v.1t<h.1y+h.1m){a-=h.1m+20+7(9).G;e.3.n({G:a+\'1C\'}).P("z-1A")}}8 z(){g{x:$(C).2e(),y:$(C).2d(),1s:$(C).1r(),1t:$(C).2p()}}8 q(a){4($.k.w)g;4(B)2c(B);9=S;j b=7(2);8 J(){e.3.V(b.X).q().n("1g","")}4((!A||!$.N.L)&&b.r){4(e.3.I(\':17\'))e.3.Q().O(b.r,0,J);p e.3.Q().2b(b.r,J)}p J();4(7(2).H)e.3.1l()}})(2a);',62,155,'||this|parent|if|||settings|function|current||||||body|return|||var|tooltip|show|title|css|url|else|hide|fade||div|update||blocked|||viewport|IE|tID|window|html|left|each|top|fixPNG|is|complete|document|bgiframe|track|fn|fadeTo|addClass|stop|part|null|append|bodyHandler|removeClass|mousemove|extraClass|backgroundImage|delay|strong|tOpacity|false|tooltipText|right||id|animated|showBody|true|visible|unbind|empty|showURL|save|handle|opacity|defaults|class|data|attr|unfixPNG|offsetHeight|offsetWidth|position|src|createHelper|width|cx|cy|relative|extend|auto|hideWhenEmpty|offsetTop|offsetLeft|bottom|filter|px|none|OPTION|RegExp|fadeIn|navigator|png|match|arguments|apply|test|http|replace|br|for|shift|click|split|mouseout|jquery|target|tagName|nodeType|call||mouseover|alt|bind|removeAttr|200|setTimeout|appendTo|href|MSIE|jQuery|fadeOut|clearTimeout|scrollTop|scrollLeft|absolute|msie|crop|sizingMethod|enabled|positionLeft|AlphaImageLoader|Microsoft|pageY|pageX|height|DXImageTransform|progid|block|userAgent|browser'.split('|'),0,{}));
/**
 * jQuery.ScrollTo - Easy element scrolling using jQuery.
 * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
 * Dual licensed under MIT and GPL.
 * Date: 5/25/2009
 * @author Ariel Flesler
 * @version 1.4.2
 *
 * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
 */
(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);
	
/*
 *	jquery.suggest 1.2 - 2007-08-21
 *	
 *  Original Script by Peter Vulgaris (www.vulgarisoip.com)
 *  Updates by Chris Schuld (http://chrisschuld.com/)
 *
 */
(function(a){a.suggest=function(o,g){var c=a(o).attr("autocomplete","off");var f;var n=false;var d=0;var q=[];var p=0;if(!g.attachObject){g.attachObject=a(document.createElement("ul")).appendTo("body")}f=a(g.attachObject);f.addClass(g.resultsClass);j();a(window).load(j).resize(j);c.blur(function(){setTimeout(function(){f.hide()},200)});try{f.bgiframe()}catch(s){}if(a.browser.mozilla){c.keypress(m)}else{c.keydown(m)}function j(){var e=c.offset();f.css({top:(e.top+o.offsetHeight)+"px",left:e.left+"px"})}function m(w){if((/27$|38$|40$/.test(w.keyCode)&&f.is(":visible"))||(/^13$|^9$/.test(w.keyCode)&&u())){if(w.preventDefault){w.preventDefault()}if(w.stopPropagation){w.stopPropagation()}w.cancelBubble=true;w.returnValue=false;switch(w.keyCode){case 38:k();break;case 40:t();break;case 9:case 13:r();break;case 27:f.hide();break}}else{if(c.val().length!=d){if(n){clearTimeout(n)}n=setTimeout(l,g.delay);d=c.val().length}}}function l(){var e=a.trim(c.val());if(e.length>=g.minchars){cached=v(e);if(cached){i(cached.items)}else{a.getJSON(g.source+encodeURI(e),function(w){handleException(w);if(w!=null){f.hide();i(w);h(e,w,w.length)}})}}else{f.hide()}}function v(w){for(var e=0;e<q.length;e++){if(q[e]["q"]==w){q.unshift(q.splice(e,1)[0]);return q[0]}}return false}function h(y,e,w){while(q.length&&(p+w>g.maxCacheSize)){var x=q.pop();p-=x.size}q.push({q:y,size:w,items:e});p+=w}function i(e){if(!e){return}if(!e.length){f.hide();return}var x="";for(var w=0;w<e.length;w++){if(typeof(e[w])!="object"){x+="<li rel="+escape(e[w])+">"+e[w]+"</li>"}else{if(e[w].zipcode===undefined){x+="<li rel="+escape(e[w].place)+">"+e[w].place+"</li>"}else{x+="<li rel="+escape(e[w].zipcode)+">"+e[w].zipcode+" ("+e[w].place+")</li>"}}}f.html(x).css("width",c.width()).show();f.children("li").mouseover(function(){f.children("li").removeClass(g.selectClass);a(this).addClass(g.selectClass)}).click(function(y){y.preventDefault();y.stopPropagation();r()})}function b(e,z){var w=[];var A=e.split(g.delimiter);for(var x=0;x<A.length;x++){var y=a.trim(A[x]).split(g.dataDelimiter);if(y.length>1){token=y[0];key=y[1]}else{token=y[0];key=""}if(token){token=token.replace(new RegExp(z,"ig"),function(B){return'<span class="'+g.matchClass+'">'+B+"</span>"});w[w.length]={value:token,key:key}}}return w}function u(){if(!f.is(":visible")){return false}var e=f.children("li."+g.selectClass);if(!e.length){e=false}return e}function r(){$currentResult=u();if($currentResult){var e=unescape($currentResult.attr("rel"));c.val(e);f.hide();if(a(g.dataContainer)){a(g.dataContainer).val(e.replace("s_",""))}if(g.onSelect){g.onSelect.apply(c[0])}c.focus()}}function t(){$currentResult=u();if($currentResult){$currentResult.removeClass(g.selectClass).next().addClass(g.selectClass)}else{f.children("li:first-child").addClass(g.selectClass)}}function k(){$currentResult=u();if($currentResult){$currentResult.removeClass(g.selectClass).prev().addClass(g.selectClass)}else{f.children("li:last-child").addClass(g.selectClass)}}};a.fn.suggest=function(c,b){if(!c){return}b=b||{};b.source=c;b.delay=b.delay||150;b.resultsClass=b.resultsClass||"ac_results";b.selectClass=b.selectClass||"ac_over";b.matchClass=b.matchClass||"ac_match";b.minchars=b.minchars||2;b.delimiter=b.delimiter||"\n";b.onSelect=b.onSelect||false;b.maxCacheSize=b.maxCacheSize||65536;b.dataDelimiter=b.dataDelimiter||"\t";b.dataContainer=b.dataContainer||"#SuggestResult";b.attachObject=b.attachObject||null;this.each(function(){new a.suggest(this,b)});return this}})(jQuery);    

/* Copyright (c) 2006 Brandon Aaron (http://brandonaaron.net)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 *
 * $LastChangedDate: 2007-07-21 18:44:59 -0500 (Sat, 21 Jul 2007) $
 * $Rev: 2446 $
 *
 * Version 2.1.1
 */
(function($){$.fn.bgIframe=$.fn.bgiframe=function(s){if($.browser.msie&&/6.0/.test(navigator.userAgent)){s=$.extend({top:'auto',left:'auto',width:'auto',height:'auto',opacity:true,src:'javascript:false;'},s||{});var a=function(n){return n&&n.constructor==Number?n+'px':n},html='<iframe class="bgiframe"frameborder="0"tabindex="-1"src="'+s.src+'"'+'style="display:block;position:absolute;z-index:-1;'+(s.opacity!==false?'filter:Alpha(Opacity=\'0\');':'')+'top:'+(s.top=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderTopWidth)||0)*-1)+\'px\')':a(s.top))+';'+'left:'+(s.left=='auto'?'expression(((parseInt(this.parentNode.currentStyle.borderLeftWidth)||0)*-1)+\'px\')':a(s.left))+';'+'width:'+(s.width=='auto'?'expression(this.parentNode.offsetWidth+\'px\')':a(s.width))+';'+'height:'+(s.height=='auto'?'expression(this.parentNode.offsetHeight+\'px\')':a(s.height))+';'+'"/>';return this.each(function(){if($('> iframe.bgiframe',this).length==0)this.insertBefore(document.createElement(html),this.firstChild)})}return this};})(jQuery);

/*
 * jQuery UI 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI
 */
jQuery.ui||(function(c){var i=c.fn.remove,d=c.browser.mozilla&&(parseFloat(c.browser.version)<1.9);c.ui={version:"1.7.2",plugin:{add:function(k,l,n){var m=c.ui[k].prototype;for(var j in n){m.plugins[j]=m.plugins[j]||[];m.plugins[j].push([l,n[j]])}},call:function(j,l,k){var n=j.plugins[l];if(!n||!j.element[0].parentNode){return}for(var m=0;m<n.length;m++){if(j.options[n[m][0]]){n[m][1].apply(j.element,k)}}}},contains:function(k,j){return document.compareDocumentPosition?k.compareDocumentPosition(j)&16:k!==j&&k.contains(j)},hasScroll:function(m,k){if(c(m).css("overflow")=="hidden"){return false}var j=(k&&k=="left")?"scrollLeft":"scrollTop",l=false;if(m[j]>0){return true}m[j]=1;l=(m[j]>0);m[j]=0;return l},isOverAxis:function(k,j,l){return(k>j)&&(k<(j+l))},isOver:function(o,k,n,m,j,l){return c.ui.isOverAxis(o,n,j)&&c.ui.isOverAxis(k,m,l)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(d){var f=c.attr,e=c.fn.removeAttr,h="http://www.w3.org/2005/07/aaa",a=/^aria-/,b=/^wairole:/;c.attr=function(k,j,l){var m=l!==undefined;return(j=="role"?(m?f.call(this,k,j,"wairole:"+l):(f.apply(this,arguments)||"").replace(b,"")):(a.test(j)?(m?k.setAttributeNS(h,j.replace(a,"aaa:"),l):f.call(this,k,j.replace(a,"aaa:"))):f.apply(this,arguments)))};c.fn.removeAttr=function(j){return(a.test(j)?this.each(function(){this.removeAttributeNS(h,j.replace(a,""))}):e.call(this,j))}}c.fn.extend({remove:function(){c("*",this).add(this).each(function(){c(this).triggerHandler("remove")});return i.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var j;if((c.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){j=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(c.curCSS(this,"position",1))&&(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}else{j=this.parents().filter(function(){return(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!j.length?c(document):j}});c.extend(c.expr[":"],{data:function(l,k,j){return !!c.data(l,j[3])},focusable:function(k){var l=k.nodeName.toLowerCase(),j=c.attr(k,"tabindex");return(/input|select|textarea|button|object/.test(l)?!k.disabled:"a"==l||"area"==l?k.href||!isNaN(j):!isNaN(j))&&!c(k)["area"==l?"parents":"closest"](":hidden").length},tabbable:function(k){var j=c.attr(k,"tabindex");return(isNaN(j)||j>=0)&&c(k).is(":focusable")}});function g(m,n,o,l){function k(q){var p=c[m][n][q]||[];return(typeof p=="string"?p.split(/,?\s+/):p)}var j=k("getter");if(l.length==1&&typeof l[0]=="string"){j=j.concat(k("getterSetter"))}return(c.inArray(o,j)!=-1)}c.widget=function(k,j){var l=k.split(".")[0];k=k.split(".")[1];c.fn[k]=function(p){var n=(typeof p=="string"),o=Array.prototype.slice.call(arguments,1);if(n&&p.substring(0,1)=="_"){return this}if(n&&g(l,k,p,o)){var m=c.data(this[0],k);return(m?m[p].apply(m,o):undefined)}return this.each(function(){var q=c.data(this,k);(!q&&!n&&c.data(this,k,new c[l][k](this,p))._init());(q&&n&&c.isFunction(q[p])&&q[p].apply(q,o))})};c[l]=c[l]||{};c[l][k]=function(o,n){var m=this;this.namespace=l;this.widgetName=k;this.widgetEventPrefix=c[l][k].eventPrefix||k;this.widgetBaseClass=l+"-"+k;this.options=c.extend({},c.widget.defaults,c[l][k].defaults,c.metadata&&c.metadata.get(o)[k],n);this.element=c(o).bind("setData."+k,function(q,p,r){if(q.target==o){return m._setData(p,r)}}).bind("getData."+k,function(q,p){if(q.target==o){return m._getData(p)}}).bind("remove",function(){return m.destroy()})};c[l][k].prototype=c.extend({},c.widget.prototype,j);c[l][k].getterSetter="option"};c.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(l,m){var k=l,j=this;if(typeof l=="string"){if(m===undefined){return this._getData(l)}k={};k[l]=m}c.each(k,function(n,o){j._setData(n,o)})},_getData:function(j){return this.options[j]},_setData:function(j,k){this.options[j]=k;if(j=="disabled"){this.element[k?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",k)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(l,m,n){var p=this.options[l],j=(l==this.widgetEventPrefix?l:this.widgetEventPrefix+l);m=c.Event(m);m.type=j;if(m.originalEvent){for(var k=c.event.props.length,o;k;){o=c.event.props[--k];m[o]=m.originalEvent[o]}}this.element.trigger(m,n);return !(c.isFunction(p)&&p.call(this.element[0],m,n)===false||m.isDefaultPrevented())}};c.widget.defaults={disabled:false};c.ui.mouse={_mouseInit:function(){var j=this;this.element.bind("mousedown."+this.widgetName,function(k){return j._mouseDown(k)}).bind("click."+this.widgetName,function(k){if(j._preventClickEvent){j._preventClickEvent=false;k.stopImmediatePropagation();return false}});if(c.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(c.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(l){l.originalEvent=l.originalEvent||{};if(l.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(l));this._mouseDownEvent=l;var k=this,m=(l.which==1),j=(typeof this.options.cancel=="string"?c(l.target).parents().add(l.target).filter(this.options.cancel).length:false);if(!m||j||!this._mouseCapture(l)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){k.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(l)&&this._mouseDelayMet(l)){this._mouseStarted=(this._mouseStart(l)!==false);if(!this._mouseStarted){l.preventDefault();return true}}this._mouseMoveDelegate=function(n){return k._mouseMove(n)};this._mouseUpDelegate=function(n){return k._mouseUp(n)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(c.browser.safari||l.preventDefault());l.originalEvent.mouseHandled=true;return true},_mouseMove:function(j){if(c.browser.msie&&!j.button){return this._mouseUp(j)}if(this._mouseStarted){this._mouseDrag(j);return j.preventDefault()}if(this._mouseDistanceMet(j)&&this._mouseDelayMet(j)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,j)!==false);(this._mouseStarted?this._mouseDrag(j):this._mouseUp(j))}return !this._mouseStarted},_mouseUp:function(j){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(j.target==this._mouseDownEvent.target);this._mouseStop(j)}return false},_mouseDistanceMet:function(j){return(Math.max(Math.abs(this._mouseDownEvent.pageX-j.pageX),Math.abs(this._mouseDownEvent.pageY-j.pageY))>=this.options.distance)},_mouseDelayMet:function(j){return this.mouseDelayMet},_mouseStart:function(j){},_mouseDrag:function(j){},_mouseStop:function(j){},_mouseCapture:function(j){return true}};c.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);;/*
 * jQuery UI Slider 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Slider
 *
 * Depends:
 *	ui.core.js
 */
(function(a){a.widget("ui.slider",a.extend({},a.ui.mouse,{_init:function(){var b=this,c=this.options;this._keySliding=false;this._handleIndex=null;this._detectOrientation();this._mouseInit();this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget ui-widget-content ui-corner-all");this.range=a([]);if(c.range){if(c.range===true){this.range=a("<div></div>");if(!c.values){c.values=[this._valueMin(),this._valueMin()]}if(c.values.length&&c.values.length!=2){c.values=[c.values[0],c.values[0]]}}else{this.range=a("<div></div>")}this.range.appendTo(this.element).addClass("ui-slider-range");if(c.range=="min"||c.range=="max"){this.range.addClass("ui-slider-range-"+c.range)}this.range.addClass("ui-widget-header")}if(a(".ui-slider-handle",this.element).length==0){a('<a href="#"></a>').appendTo(this.element).addClass("ui-slider-handle")}if(c.values&&c.values.length){while(a(".ui-slider-handle",this.element).length<c.values.length){a('<a href="#"></a>').appendTo(this.element).addClass("ui-slider-handle")}}this.handles=a(".ui-slider-handle",this.element).addClass("ui-state-default ui-corner-all");this.handle=this.handles.eq(0);this.handles.add(this.range).filter("a").click(function(d){d.preventDefault()}).hover(function(){if(!c.disabled){a(this).addClass("ui-state-hover")}},function(){a(this).removeClass("ui-state-hover")}).focus(function(){if(!c.disabled){a(".ui-slider .ui-state-focus").removeClass("ui-state-focus");a(this).addClass("ui-state-focus")}else{a(this).blur()}}).blur(function(){a(this).removeClass("ui-state-focus")});this.handles.each(function(d){a(this).data("index.ui-slider-handle",d)});this.handles.keydown(function(i){var f=true;var e=a(this).data("index.ui-slider-handle");if(b.options.disabled){return}switch(i.keyCode){case a.ui.keyCode.HOME:case a.ui.keyCode.END:case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:f=false;if(!b._keySliding){b._keySliding=true;a(this).addClass("ui-state-active");b._start(i,e)}break}var g,d,h=b._step();if(b.options.values&&b.options.values.length){g=d=b.values(e)}else{g=d=b.value()}switch(i.keyCode){case a.ui.keyCode.HOME:d=b._valueMin();break;case a.ui.keyCode.END:d=b._valueMax();break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(g==b._valueMax()){return}d=g+h;break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(g==b._valueMin()){return}d=g-h;break}b._slide(i,e,d);return f}).keyup(function(e){var d=a(this).data("index.ui-slider-handle");if(b._keySliding){b._stop(e,d);b._change(e,d);b._keySliding=false;a(this).removeClass("ui-state-active")}});this._refreshValue()},destroy:function(){this.handles.remove();this.range.remove();this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");this._mouseDestroy()},_mouseCapture:function(d){var e=this.options;if(e.disabled){return false}this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();var h={x:d.pageX,y:d.pageY};var j=this._normValueFromMouse(h);var c=this._valueMax()-this._valueMin()+1,f;var k=this,i;this.handles.each(function(l){var m=Math.abs(j-k.values(l));if(c>m){c=m;f=a(this);i=l}});if(e.range==true&&this.values(1)==e.min){f=a(this.handles[++i])}this._start(d,i);k._handleIndex=i;f.addClass("ui-state-active").focus();var g=f.offset();var b=!a(d.target).parents().andSelf().is(".ui-slider-handle");this._clickOffset=b?{left:0,top:0}:{left:d.pageX-g.left-(f.width()/2),top:d.pageY-g.top-(f.height()/2)-(parseInt(f.css("borderTopWidth"),10)||0)-(parseInt(f.css("borderBottomWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0)};j=this._normValueFromMouse(h);this._slide(d,i,j);return true},_mouseStart:function(b){return true},_mouseDrag:function(d){var b={x:d.pageX,y:d.pageY};var c=this._normValueFromMouse(b);this._slide(d,this._handleIndex,c);return false},_mouseStop:function(b){this.handles.removeClass("ui-state-active");this._stop(b,this._handleIndex);this._change(b,this._handleIndex);this._handleIndex=null;this._clickOffset=null;return false},_detectOrientation:function(){this.orientation=this.options.orientation=="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(d){var c,h;if("horizontal"==this.orientation){c=this.elementSize.width;h=d.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{c=this.elementSize.height;h=d.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}var f=(h/c);if(f>1){f=1}if(f<0){f=0}if("vertical"==this.orientation){f=1-f}var e=this._valueMax()-this._valueMin(),i=f*e,b=i%this.options.step,g=this._valueMin()+i-b;if(b>(this.options.step/2)){g+=this.options.step}return parseFloat(g.toFixed(5))},_start:function(d,c){var b={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){b.value=this.values(c);b.values=this.values()}this._trigger("start",d,b)},_slide:function(f,e,d){var g=this.handles[e];if(this.options.values&&this.options.values.length){var b=this.values(e?0:1);if((this.options.values.length==2&&this.options.range===true)&&((e==0&&d>b)||(e==1&&d<b))){d=b}if(d!=this.values(e)){var c=this.values();c[e]=d;var h=this._trigger("slide",f,{handle:this.handles[e],value:d,values:c});var b=this.values(e?0:1);if(h!==false){this.values(e,d,(f.type=="mousedown"&&this.options.animate),true)}}}else{if(d!=this.value()){var h=this._trigger("slide",f,{handle:this.handles[e],value:d});if(h!==false){this._setData("value",d,(f.type=="mousedown"&&this.options.animate))}}}},_stop:function(d,c){var b={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){b.value=this.values(c);b.values=this.values()}this._trigger("stop",d,b)},_change:function(d,c){var b={handle:this.handles[c],value:this.value()};if(this.options.values&&this.options.values.length){b.value=this.values(c);b.values=this.values()}this._trigger("change",d,b)},value:function(b){if(arguments.length){this._setData("value",b);this._change(null,0)}return this._value()},values:function(b,e,c,d){if(arguments.length>1){this.options.values[b]=e;this._refreshValue(c);if(!d){this._change(null,b)}}if(arguments.length){if(this.options.values&&this.options.values.length){return this._values(b)}else{return this.value()}}else{return this._values()}},_setData:function(b,d,c){a.widget.prototype._setData.apply(this,arguments);switch(b){case"disabled":if(d){this.handles.filter(".ui-state-focus").blur();this.handles.removeClass("ui-state-hover");this.handles.attr("disabled","disabled")}else{this.handles.removeAttr("disabled")}case"orientation":this._detectOrientation();this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue(c);break;case"value":this._refreshValue(c);break}},_step:function(){var b=this.options.step;return b},_value:function(){var b=this.options.value;if(b<this._valueMin()){b=this._valueMin()}if(b>this._valueMax()){b=this._valueMax()}return b},_values:function(b){if(arguments.length){var c=this.options.values[b];if(c<this._valueMin()){c=this._valueMin()}if(c>this._valueMax()){c=this._valueMax()}return c}else{return this.options.values}},_valueMin:function(){var b=this.options.min;return b},_valueMax:function(){var b=this.options.max;return b},_refreshValue:function(c){var f=this.options.range,d=this.options,l=this;if(this.options.values&&this.options.values.length){var i,h;this.handles.each(function(p,n){var o=(l.values(p)-l._valueMin())/(l._valueMax()-l._valueMin())*100;var m={};m[l.orientation=="horizontal"?"left":"bottom"]=o+"%";a(this).stop(1,1)[c?"animate":"css"](m,d.animate);if(l.options.range===true){if(l.orientation=="horizontal"){(p==0)&&l.range.stop(1,1)[c?"animate":"css"]({left:o+"%"},d.animate);(p==1)&&l.range[c?"animate":"css"]({width:(o-lastValPercent)+"%"},{queue:false,duration:d.animate})}else{(p==0)&&l.range.stop(1,1)[c?"animate":"css"]({bottom:(o)+"%"},d.animate);(p==1)&&l.range[c?"animate":"css"]({height:(o-lastValPercent)+"%"},{queue:false,duration:d.animate})}}lastValPercent=o})}else{var j=this.value(),g=this._valueMin(),k=this._valueMax(),e=k!=g?(j-g)/(k-g)*100:0;var b={};b[l.orientation=="horizontal"?"left":"bottom"]=e+"%";this.handle.stop(1,1)[c?"animate":"css"](b,d.animate);(f=="min")&&(this.orientation=="horizontal")&&this.range.stop(1,1)[c?"animate":"css"]({width:e+"%"},d.animate);(f=="max")&&(this.orientation=="horizontal")&&this.range[c?"animate":"css"]({width:(100-e)+"%"},{queue:false,duration:d.animate});(f=="min")&&(this.orientation=="vertical")&&this.range.stop(1,1)[c?"animate":"css"]({height:e+"%"},d.animate);(f=="max")&&(this.orientation=="vertical")&&this.range[c?"animate":"css"]({height:(100-e)+"%"},{queue:false,duration:d.animate})}}}));a.extend(a.ui.slider,{getter:"value values",version:"1.7.2",eventPrefix:"slide",defaults:{animate:false,delay:0,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null}})})(jQuery);;/*
 * jQuery UI Datepicker 1.7.2
 *
 * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT (MIT-LICENSE.txt)
 * and GPL (GPL-LICENSE.txt) licenses.
 *
 * http://docs.jquery.com/UI/Datepicker
 *
 * Depends:
 *	ui.core.js
 */
(function($){$.extend($.ui,{datepicker:{version:"1.7.2"}});var PROP_NAME="datepicker";function Datepicker(){this.debug=false;this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._datepickerShowing=false;this._inDialog=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass="ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],dateFormat:"mm/dd/yy",firstDay:0,isRTL:false};this._defaults={showOn:"focus",showAnim:"show",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,showMonthAfterYear:false,yearRange:"-10:+10",showOtherMonths:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"normal",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false};$.extend(this._defaults,this.regional[""]);this.dpDiv=$('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-helper-hidden-accessible"></div>')}$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",log:function(){if(this.debug){console.log.apply("",arguments)}},setDefaults:function(settings){extendRemove(this._defaults,settings||{});return this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase();var inline=(nodeName=="div"||nodeName=="span");if(!target.id){target.id="dp"+(++this.uuid)}var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{});if(nodeName=="input"){this._connectDatepicker(target,inst)}else{if(inline){this._inlineDatepicker(target,inst)}}},_newInst:function(target,inline){var id=target[0].id.replace(/([:\[\]\.])/g,"\\\\$1");return{id:id,input:target,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:inline,dpDiv:(!inline?this.dpDiv:$('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}},_connectDatepicker:function(target,inst){var input=$(target);inst.append=$([]);inst.trigger=$([]);if(input.hasClass(this.markerClassName)){return}var appendText=this._get(inst,"appendText");var isRTL=this._get(inst,"isRTL");if(appendText){inst.append=$('<span class="'+this._appendClass+'">'+appendText+"</span>");input[isRTL?"before":"after"](inst.append)}var showOn=this._get(inst,"showOn");if(showOn=="focus"||showOn=="both"){input.focus(this._showDatepicker)}if(showOn=="button"||showOn=="both"){var buttonText=this._get(inst,"buttonText");var buttonImage=this._get(inst,"buttonImage");inst.trigger=$(this._get(inst,"buttonImageOnly")?$("<img/>").addClass(this._triggerClass).attr({src:buttonImage,alt:buttonText,title:buttonText}):$('<button type="button"></button>').addClass(this._triggerClass).html(buttonImage==""?buttonText:$("<img/>").attr({src:buttonImage,alt:buttonText,title:buttonText})));input[isRTL?"before":"after"](inst.trigger);inst.trigger.click(function(){if($.datepicker._datepickerShowing&&$.datepicker._lastInput==target){$.datepicker._hideDatepicker()}else{$.datepicker._showDatepicker(target)}return false})}input.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});$.data(target,PROP_NAME,inst)},_inlineDatepicker:function(target,inst){var divSpan=$(target);if(divSpan.hasClass(this.markerClassName)){return}divSpan.addClass(this.markerClassName).append(inst.dpDiv).bind("setData.datepicker",function(event,key,value){inst.settings[key]=value}).bind("getData.datepicker",function(event,key){return this._get(inst,key)});$.data(target,PROP_NAME,inst);this._setDate(inst,this._getDefaultDate(inst));this._updateDatepicker(inst);this._updateAlternate(inst)},_dialogDatepicker:function(input,dateText,onSelect,settings,pos){var inst=this._dialogInst;if(!inst){var id="dp"+(++this.uuid);this._dialogInput=$('<input type="text" id="'+id+'" size="1" style="position: absolute; top: -100px;"/>');this._dialogInput.keydown(this._doKeyDown);$("body").append(this._dialogInput);inst=this._dialogInst=this._newInst(this._dialogInput,false);inst.settings={};$.data(this._dialogInput[0],PROP_NAME,inst)}extendRemove(inst.settings,settings||{});this._dialogInput.val(dateText);this._pos=(pos?(pos.length?pos:[pos.pageX,pos.pageY]):null);if(!this._pos){var browserWidth=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;var browserHeight=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;var scrollX=document.documentElement.scrollLeft||document.body.scrollLeft;var scrollY=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[(browserWidth/2)-100+scrollX,(browserHeight/2)-150+scrollY]}this._dialogInput.css("left",this._pos[0]+"px").css("top",this._pos[1]+"px");inst.settings.onSelect=onSelect;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);if($.blockUI){$.blockUI(this.dpDiv)}$.data(this._dialogInput[0],PROP_NAME,inst);return this},_destroyDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();$.removeData(target,PROP_NAME);if(nodeName=="input"){inst.append.remove();inst.trigger.remove();$target.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress)}else{if(nodeName=="div"||nodeName=="span"){$target.removeClass(this.markerClassName).empty()}}},_enableDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=false;inst.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);inline.children().removeClass("ui-state-disabled")}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)})},_disableDatepicker:function(target){var $target=$(target);var inst=$.data(target,PROP_NAME);if(!$target.hasClass(this.markerClassName)){return}var nodeName=target.nodeName.toLowerCase();if(nodeName=="input"){target.disabled=true;inst.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else{if(nodeName=="div"||nodeName=="span"){var inline=$target.children("."+this._inlineClass);inline.children().addClass("ui-state-disabled")}}this._disabledInputs=$.map(this._disabledInputs,function(value){return(value==target?null:value)});this._disabledInputs[this._disabledInputs.length]=target},_isDisabledDatepicker:function(target){if(!target){return false}for(var i=0;i<this._disabledInputs.length;i++){if(this._disabledInputs[i]==target){return true}}return false},_getInst:function(target){try{return $.data(target,PROP_NAME)}catch(err){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(target,name,value){var inst=this._getInst(target);if(arguments.length==2&&typeof name=="string"){return(name=="defaults"?$.extend({},$.datepicker._defaults):(inst?(name=="all"?$.extend({},inst.settings):this._get(inst,name)):null))}var settings=name||{};if(typeof name=="string"){settings={};settings[name]=value}if(inst){if(this._curInst==inst){this._hideDatepicker(null)}var date=this._getDateDatepicker(target);extendRemove(inst.settings,settings);this._setDateDatepicker(target,date);this._updateDatepicker(inst)}},_changeDatepicker:function(target,name,value){this._optionDatepicker(target,name,value)},_refreshDatepicker:function(target){var inst=this._getInst(target);if(inst){this._updateDatepicker(inst)}},_setDateDatepicker:function(target,date,endDate){var inst=this._getInst(target);if(inst){this._setDate(inst,date,endDate);this._updateDatepicker(inst);this._updateAlternate(inst)}},_getDateDatepicker:function(target){var inst=this._getInst(target);if(inst&&!inst.inline){this._setDateFromField(inst)}return(inst?this._getDate(inst):null)},_doKeyDown:function(event){var inst=$.datepicker._getInst(event.target);var handled=true;var isRTL=inst.dpDiv.is(".ui-datepicker-rtl");inst._keyEvent=true;if($.datepicker._datepickerShowing){switch(event.keyCode){case 9:$.datepicker._hideDatepicker(null,"");break;case 13:var sel=$("td."+$.datepicker._dayOverClass+", td."+$.datepicker._currentClass,inst.dpDiv);if(sel[0]){$.datepicker._selectDay(event.target,inst.selectedMonth,inst.selectedYear,sel[0])}else{$.datepicker._hideDatepicker(null,$.datepicker._get(inst,"duration"))}return false;break;case 27:$.datepicker._hideDatepicker(null,$.datepicker._get(inst,"duration"));break;case 33:$.datepicker._adjustDate(event.target,(event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths")),"M");break;case 34:$.datepicker._adjustDate(event.target,(event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths")),"M");break;case 35:if(event.ctrlKey||event.metaKey){$.datepicker._clearDate(event.target)}handled=event.ctrlKey||event.metaKey;break;case 36:if(event.ctrlKey||event.metaKey){$.datepicker._gotoToday(event.target)}handled=event.ctrlKey||event.metaKey;break;case 37:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,(isRTL?+1:-1),"D")}handled=event.ctrlKey||event.metaKey;if(event.originalEvent.altKey){$.datepicker._adjustDate(event.target,(event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths")),"M")}break;case 38:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,-7,"D")}handled=event.ctrlKey||event.metaKey;break;case 39:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,(isRTL?-1:+1),"D")}handled=event.ctrlKey||event.metaKey;if(event.originalEvent.altKey){$.datepicker._adjustDate(event.target,(event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths")),"M")}break;case 40:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,+7,"D")}handled=event.ctrlKey||event.metaKey;break;default:handled=false}}else{if(event.keyCode==36&&event.ctrlKey){$.datepicker._showDatepicker(this)}else{handled=false}}if(handled){event.preventDefault();event.stopPropagation()}},_doKeyPress:function(event){var inst=$.datepicker._getInst(event.target);if($.datepicker._get(inst,"constrainInput")){var chars=$.datepicker._possibleChars($.datepicker._get(inst,"dateFormat"));var chr=String.fromCharCode(event.charCode==undefined?event.keyCode:event.charCode);return event.ctrlKey||(chr<" "||!chars||chars.indexOf(chr)>-1)}},_showDatepicker:function(input){input=input.target||input;if(input.nodeName.toLowerCase()!="input"){input=$("input",input.parentNode)[0]}if($.datepicker._isDisabledDatepicker(input)||$.datepicker._lastInput==input){return}var inst=$.datepicker._getInst(input);var beforeShow=$.datepicker._get(inst,"beforeShow");extendRemove(inst.settings,(beforeShow?beforeShow.apply(input,[input,inst]):{}));$.datepicker._hideDatepicker(null,"");$.datepicker._lastInput=input;$.datepicker._setDateFromField(inst);if($.datepicker._inDialog){input.value=""}if(!$.datepicker._pos){$.datepicker._pos=$.datepicker._findPos(input);$.datepicker._pos[1]+=input.offsetHeight}var isFixed=false;$(input).parents().each(function(){isFixed|=$(this).css("position")=="fixed";return !isFixed});if(isFixed&&$.browser.opera){$.datepicker._pos[0]-=document.documentElement.scrollLeft;$.datepicker._pos[1]-=document.documentElement.scrollTop}var offset={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null;inst.rangeStart=null;inst.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});$.datepicker._updateDatepicker(inst);offset=$.datepicker._checkOffset(inst,offset,isFixed);inst.dpDiv.css({position:($.datepicker._inDialog&&$.blockUI?"static":(isFixed?"fixed":"absolute")),display:"none",left:offset.left+"px",top:offset.top+"px"});if(!inst.inline){var showAnim=$.datepicker._get(inst,"showAnim")||"show";var duration=$.datepicker._get(inst,"duration");var postProcess=function(){$.datepicker._datepickerShowing=true;if($.browser.msie&&parseInt($.browser.version,10)<7){$("iframe.ui-datepicker-cover").css({width:inst.dpDiv.width()+4,height:inst.dpDiv.height()+4})}};if($.effects&&$.effects[showAnim]){inst.dpDiv.show(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[showAnim](duration,postProcess)}if(duration==""){postProcess()}if(inst.input[0].type!="hidden"){inst.input[0].focus()}$.datepicker._curInst=inst}},_updateDatepicker:function(inst){var dims={width:inst.dpDiv.width()+4,height:inst.dpDiv.height()+4};var self=this;inst.dpDiv.empty().append(this._generateHTML(inst)).find("iframe.ui-datepicker-cover").css({width:dims.width,height:dims.height}).end().find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout",function(){$(this).removeClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1){$(this).removeClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!=-1){$(this).removeClass("ui-datepicker-next-hover")}}).bind("mouseover",function(){if(!self._isDisabledDatepicker(inst.inline?inst.dpDiv.parent()[0]:inst.input[0])){$(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");$(this).addClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!=-1){$(this).addClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!=-1){$(this).addClass("ui-datepicker-next-hover")}}}).end().find("."+this._dayOverClass+" a").trigger("mouseover").end();var numMonths=this._getNumberOfMonths(inst);var cols=numMonths[1];var width=17;if(cols>1){inst.dpDiv.addClass("ui-datepicker-multi-"+cols).css("width",(width*cols)+"em")}else{inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("")}inst.dpDiv[(numMonths[0]!=1||numMonths[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi");inst.dpDiv[(this._get(inst,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");if(inst.input&&inst.input[0].type!="hidden"&&inst==$.datepicker._curInst){$(inst.input[0]).focus()}},_checkOffset:function(inst,offset,isFixed){var dpWidth=inst.dpDiv.outerWidth();var dpHeight=inst.dpDiv.outerHeight();var inputWidth=inst.input?inst.input.outerWidth():0;var inputHeight=inst.input?inst.input.outerHeight():0;var viewWidth=(window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth)+$(document).scrollLeft();var viewHeight=(window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight)+$(document).scrollTop();offset.left-=(this._get(inst,"isRTL")?(dpWidth-inputWidth):0);offset.left-=(isFixed&&offset.left==inst.input.offset().left)?$(document).scrollLeft():0;offset.top-=(isFixed&&offset.top==(inst.input.offset().top+inputHeight))?$(document).scrollTop():0;offset.left-=(offset.left+dpWidth>viewWidth&&viewWidth>dpWidth)?Math.abs(offset.left+dpWidth-viewWidth):0;offset.top-=(offset.top+dpHeight>viewHeight&&viewHeight>dpHeight)?Math.abs(offset.top+dpHeight+inputHeight*2-viewHeight):0;return offset},_findPos:function(obj){while(obj&&(obj.type=="hidden"||obj.nodeType!=1)){obj=obj.nextSibling}var position=$(obj).offset();return[position.left,position.top]},_hideDatepicker:function(input,duration){var inst=this._curInst;if(!inst||(input&&inst!=$.data(input,PROP_NAME))){return}if(inst.stayOpen){this._selectDate("#"+inst.id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear))}inst.stayOpen=false;if(this._datepickerShowing){duration=(duration!=null?duration:this._get(inst,"duration"));var showAnim=this._get(inst,"showAnim");var postProcess=function(){$.datepicker._tidyDialog(inst)};if(duration!=""&&$.effects&&$.effects[showAnim]){inst.dpDiv.hide(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[(duration==""?"hide":(showAnim=="slideDown"?"slideUp":(showAnim=="fadeIn"?"fadeOut":"hide")))](duration,postProcess)}if(duration==""){this._tidyDialog(inst)}var onClose=this._get(inst,"onClose");if(onClose){onClose.apply((inst.input?inst.input[0]:null),[(inst.input?inst.input.val():""),inst])}this._datepickerShowing=false;this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if($.blockUI){$.unblockUI();$("body").append(this.dpDiv)}}this._inDialog=false}this._curInst=null},_tidyDialog:function(inst){inst.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(event){if(!$.datepicker._curInst){return}var $target=$(event.target);if(($target.parents("#"+$.datepicker._mainDivId).length==0)&&!$target.hasClass($.datepicker.markerClassName)&&!$target.hasClass($.datepicker._triggerClass)&&$.datepicker._datepickerShowing&&!($.datepicker._inDialog&&$.blockUI)){$.datepicker._hideDatepicker(null,"")}},_adjustDate:function(id,offset,period){var target=$(id);var inst=this._getInst(target[0]);if(this._isDisabledDatepicker(target[0])){return}this._adjustInstDate(inst,offset+(period=="M"?this._get(inst,"showCurrentAtPos"):0),period);this._updateDatepicker(inst)},_gotoToday:function(id){var target=$(id);var inst=this._getInst(target[0]);if(this._get(inst,"gotoCurrent")&&inst.currentDay){inst.selectedDay=inst.currentDay;inst.drawMonth=inst.selectedMonth=inst.currentMonth;inst.drawYear=inst.selectedYear=inst.currentYear}else{var date=new Date();inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear()}this._notifyChange(inst);this._adjustDate(target)},_selectMonthYear:function(id,select,period){var target=$(id);var inst=this._getInst(target[0]);inst._selectingMonthYear=false;inst["selected"+(period=="M"?"Month":"Year")]=inst["draw"+(period=="M"?"Month":"Year")]=parseInt(select.options[select.selectedIndex].value,10);this._notifyChange(inst);this._adjustDate(target)},_clickMonthYear:function(id){var target=$(id);var inst=this._getInst(target[0]);if(inst.input&&inst._selectingMonthYear&&!$.browser.msie){inst.input[0].focus()}inst._selectingMonthYear=!inst._selectingMonthYear},_selectDay:function(id,month,year,td){var target=$(id);if($(td).hasClass(this._unselectableClass)||this._isDisabledDatepicker(target[0])){return}var inst=this._getInst(target[0]);inst.selectedDay=inst.currentDay=$("a",td).html();inst.selectedMonth=inst.currentMonth=month;inst.selectedYear=inst.currentYear=year;if(inst.stayOpen){inst.endDay=inst.endMonth=inst.endYear=null}this._selectDate(id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear));if(inst.stayOpen){inst.rangeStart=this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay));this._updateDatepicker(inst)}},_clearDate:function(id){var target=$(id);var inst=this._getInst(target[0]);inst.stayOpen=false;inst.endDay=inst.endMonth=inst.endYear=inst.rangeStart=null;this._selectDate(target,"")},_selectDate:function(id,dateStr){var target=$(id);var inst=this._getInst(target[0]);dateStr=(dateStr!=null?dateStr:this._formatDate(inst));if(inst.input){inst.input.val(dateStr)}this._updateAlternate(inst);var onSelect=this._get(inst,"onSelect");if(onSelect){onSelect.apply((inst.input?inst.input[0]:null),[dateStr,inst])}else{if(inst.input){inst.input.trigger("change")}}if(inst.inline){this._updateDatepicker(inst)}else{if(!inst.stayOpen){this._hideDatepicker(null,this._get(inst,"duration"));this._lastInput=inst.input[0];if(typeof(inst.input[0])!="object"){inst.input[0].focus()}this._lastInput=null}}},_updateAlternate:function(inst){var altField=this._get(inst,"altField");if(altField){var altFormat=this._get(inst,"altFormat")||this._get(inst,"dateFormat");var date=this._getDate(inst);dateStr=this.formatDate(altFormat,date,this._getFormatConfig(inst));$(altField).each(function(){$(this).val(dateStr)})}},noWeekends:function(date){var day=date.getDay();return[(day>0&&day<6),""]},iso8601Week:function(date){var checkDate=new Date(date.getFullYear(),date.getMonth(),date.getDate());var firstMon=new Date(checkDate.getFullYear(),1-1,4);var firstDay=firstMon.getDay()||7;firstMon.setDate(firstMon.getDate()+1-firstDay);if(firstDay<4&&checkDate<firstMon){checkDate.setDate(checkDate.getDate()-3);return $.datepicker.iso8601Week(checkDate)}else{if(checkDate>new Date(checkDate.getFullYear(),12-1,28)){firstDay=new Date(checkDate.getFullYear()+1,1-1,4).getDay()||7;if(firstDay>4&&(checkDate.getDay()||7)<firstDay-3){return 1}}}return Math.floor(((checkDate-firstMon)/86400000)/7)+1},parseDate:function(format,value,settings){if(format==null||value==null){throw"Invalid arguments"}value=(typeof value=="object"?value.toString():value+"");if(value==""){return null}var shortYearCutoff=(settings?settings.shortYearCutoff:null)||this._defaults.shortYearCutoff;var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;var year=-1;var month=-1;var day=-1;var doy=-1;var literal=false;var lookAhead=function(match){var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)==match);if(matches){iFormat++}return matches};var getNumber=function(match){lookAhead(match);var origSize=(match=="@"?14:(match=="y"?4:(match=="o"?3:2)));var size=origSize;var num=0;while(size>0&&iValue<value.length&&value.charAt(iValue)>="0"&&value.charAt(iValue)<="9"){num=num*10+parseInt(value.charAt(iValue++),10);size--}if(size==origSize){throw"Missing number at position "+iValue}return num};var getName=function(match,shortNames,longNames){var names=(lookAhead(match)?longNames:shortNames);var size=0;for(var j=0;j<names.length;j++){size=Math.max(size,names[j].length)}var name="";var iInit=iValue;while(size>0&&iValue<value.length){name+=value.charAt(iValue++);for(var i=0;i<names.length;i++){if(name==names[i]){return i+1}}size--}throw"Unknown name at position "+iInit};var checkLiteral=function(){if(value.charAt(iValue)!=format.charAt(iFormat)){throw"Unexpected literal at position "+iValue}iValue++};var iValue=0;for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{checkLiteral()}}else{switch(format.charAt(iFormat)){case"d":day=getNumber("d");break;case"D":getName("D",dayNamesShort,dayNames);break;case"o":doy=getNumber("o");break;case"m":month=getNumber("m");break;case"M":month=getName("M",monthNamesShort,monthNames);break;case"y":year=getNumber("y");break;case"@":var date=new Date(getNumber("@"));year=date.getFullYear();month=date.getMonth()+1;day=date.getDate();break;case"'":if(lookAhead("'")){checkLiteral()}else{literal=true}break;default:checkLiteral()}}}if(year==-1){year=new Date().getFullYear()}else{if(year<100){year+=new Date().getFullYear()-new Date().getFullYear()%100+(year<=shortYearCutoff?0:-100)}}if(doy>-1){month=1;day=doy;do{var dim=this._getDaysInMonth(year,month-1);if(day<=dim){break}month++;day-=dim}while(true)}var date=this._daylightSavingAdjust(new Date(year,month-1,day));if(date.getFullYear()!=year||date.getMonth()+1!=month||date.getDate()!=day){throw"Invalid date"}return date},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TIMESTAMP:"@",W3C:"yy-mm-dd",formatDate:function(format,date,settings){if(!date){return""}var dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort;var dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames;var monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort;var monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames;var lookAhead=function(match){var matches=(iFormat+1<format.length&&format.charAt(iFormat+1)==match);if(matches){iFormat++}return matches};var formatNumber=function(match,value,len){var num=""+value;if(lookAhead(match)){while(num.length<len){num="0"+num}}return num};var formatName=function(match,value,shortNames,longNames){return(lookAhead(match)?longNames[value]:shortNames[value])};var output="";var literal=false;if(date){for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{output+=format.charAt(iFormat)}}else{switch(format.charAt(iFormat)){case"d":output+=formatNumber("d",date.getDate(),2);break;case"D":output+=formatName("D",date.getDay(),dayNamesShort,dayNames);break;case"o":var doy=date.getDate();for(var m=date.getMonth()-1;m>=0;m--){doy+=this._getDaysInMonth(date.getFullYear(),m)}output+=formatNumber("o",doy,3);break;case"m":output+=formatNumber("m",date.getMonth()+1,2);break;case"M":output+=formatName("M",date.getMonth(),monthNamesShort,monthNames);break;case"y":output+=(lookAhead("y")?date.getFullYear():(date.getYear()%100<10?"0":"")+date.getYear()%100);break;case"@":output+=date.getTime();break;case"'":if(lookAhead("'")){output+="'"}else{literal=true}break;default:output+=format.charAt(iFormat)}}}}return output},_possibleChars:function(format){var chars="";var literal=false;for(var iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)=="'"&&!lookAhead("'")){literal=false}else{chars+=format.charAt(iFormat)}}else{switch(format.charAt(iFormat)){case"d":case"m":case"y":case"@":chars+="0123456789";break;case"D":case"M":return null;case"'":if(lookAhead("'")){chars+="'"}else{literal=true}break;default:chars+=format.charAt(iFormat)}}}return chars},_get:function(inst,name){return inst.settings[name]!==undefined?inst.settings[name]:this._defaults[name]},_setDateFromField:function(inst){var dateFormat=this._get(inst,"dateFormat");var dates=inst.input?inst.input.val():null;inst.endDay=inst.endMonth=inst.endYear=null;var date=defaultDate=this._getDefaultDate(inst);var settings=this._getFormatConfig(inst);try{date=this.parseDate(dateFormat,dates,settings)||defaultDate}catch(event){this.log(event);date=defaultDate}inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();inst.currentDay=(dates?date.getDate():0);inst.currentMonth=(dates?date.getMonth():0);inst.currentYear=(dates?date.getFullYear():0);this._adjustInstDate(inst)},_getDefaultDate:function(inst){var date=this._determineDate(this._get(inst,"defaultDate"),new Date());var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");date=(minDate&&date<minDate?minDate:date);date=(maxDate&&date>maxDate?maxDate:date);return date},_determineDate:function(date,defaultDate){var offsetNumeric=function(offset){var date=new Date();date.setDate(date.getDate()+offset);return date};var offsetString=function(offset,getDaysInMonth){var date=new Date();var year=date.getFullYear();var month=date.getMonth();var day=date.getDate();var pattern=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g;var matches=pattern.exec(offset);while(matches){switch(matches[2]||"d"){case"d":case"D":day+=parseInt(matches[1],10);break;case"w":case"W":day+=parseInt(matches[1],10)*7;break;case"m":case"M":month+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break;case"y":case"Y":year+=parseInt(matches[1],10);day=Math.min(day,getDaysInMonth(year,month));break}matches=pattern.exec(offset)}return new Date(year,month,day)};date=(date==null?defaultDate:(typeof date=="string"?offsetString(date,this._getDaysInMonth):(typeof date=="number"?(isNaN(date)?defaultDate:offsetNumeric(date)):date)));date=(date&&date.toString()=="Invalid Date"?defaultDate:date);if(date){date.setHours(0);date.setMinutes(0);date.setSeconds(0);date.setMilliseconds(0)}return this._daylightSavingAdjust(date)},_daylightSavingAdjust:function(date){if(!date){return null}date.setHours(date.getHours()>12?date.getHours()+2:0);return date},_setDate:function(inst,date,endDate){var clear=!(date);var origMonth=inst.selectedMonth;var origYear=inst.selectedYear;date=this._determineDate(date,new Date());inst.selectedDay=inst.currentDay=date.getDate();inst.drawMonth=inst.selectedMonth=inst.currentMonth=date.getMonth();inst.drawYear=inst.selectedYear=inst.currentYear=date.getFullYear();if(origMonth!=inst.selectedMonth||origYear!=inst.selectedYear){this._notifyChange(inst)}this._adjustInstDate(inst);if(inst.input){inst.input.val(clear?"":this._formatDate(inst))}},_getDate:function(inst){var startDate=(!inst.currentYear||(inst.input&&inst.input.val()=="")?null:this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return startDate},_generateHTML:function(inst){var today=new Date();today=this._daylightSavingAdjust(new Date(today.getFullYear(),today.getMonth(),today.getDate()));var isRTL=this._get(inst,"isRTL");var showButtonPanel=this._get(inst,"showButtonPanel");var hideIfNoPrevNext=this._get(inst,"hideIfNoPrevNext");var navigationAsDateFormat=this._get(inst,"navigationAsDateFormat");var numMonths=this._getNumberOfMonths(inst);var showCurrentAtPos=this._get(inst,"showCurrentAtPos");var stepMonths=this._get(inst,"stepMonths");var stepBigMonths=this._get(inst,"stepBigMonths");var isMultiMonth=(numMonths[0]!=1||numMonths[1]!=1);var currentDate=this._daylightSavingAdjust((!inst.currentDay?new Date(9999,9,9):new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");var drawMonth=inst.drawMonth-showCurrentAtPos;var drawYear=inst.drawYear;if(drawMonth<0){drawMonth+=12;drawYear--}if(maxDate){var maxDraw=this._daylightSavingAdjust(new Date(maxDate.getFullYear(),maxDate.getMonth()-numMonths[1]+1,maxDate.getDate()));maxDraw=(minDate&&maxDraw<minDate?minDate:maxDraw);while(this._daylightSavingAdjust(new Date(drawYear,drawMonth,1))>maxDraw){drawMonth--;if(drawMonth<0){drawMonth=11;drawYear--}}}inst.drawMonth=drawMonth;inst.drawYear=drawYear;var prevText=this._get(inst,"prevText");prevText=(!navigationAsDateFormat?prevText:this.formatDate(prevText,this._daylightSavingAdjust(new Date(drawYear,drawMonth-stepMonths,1)),this._getFormatConfig(inst)));var prev=(this._canAdjustMonth(inst,-1,drawYear,drawMonth)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery.datepicker._adjustDate(\'#'+inst.id+"', -"+stepMonths+", 'M');\" title=\""+prevText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"e":"w")+'">'+prevText+"</span></a>":(hideIfNoPrevNext?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+prevText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"e":"w")+'">'+prevText+"</span></a>"));var nextText=this._get(inst,"nextText");nextText=(!navigationAsDateFormat?nextText:this.formatDate(nextText,this._daylightSavingAdjust(new Date(drawYear,drawMonth+stepMonths,1)),this._getFormatConfig(inst)));var next=(this._canAdjustMonth(inst,+1,drawYear,drawMonth)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery.datepicker._adjustDate(\'#'+inst.id+"', +"+stepMonths+", 'M');\" title=\""+nextText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"w":"e")+'">'+nextText+"</span></a>":(hideIfNoPrevNext?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+nextText+'"><span class="ui-icon ui-icon-circle-triangle-'+(isRTL?"w":"e")+'">'+nextText+"</span></a>"));var currentText=this._get(inst,"currentText");var gotoDate=(this._get(inst,"gotoCurrent")&&inst.currentDay?currentDate:today);currentText=(!navigationAsDateFormat?currentText:this.formatDate(currentText,gotoDate,this._getFormatConfig(inst)));var controls=(!inst.inline?'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery.datepicker._hideDatepicker();">'+this._get(inst,"closeText")+"</button>":"");var buttonPanel=(showButtonPanel)?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(isRTL?controls:"")+(this._isInRange(inst,gotoDate)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery.datepicker._gotoToday(\'#'+inst.id+"');\">"+currentText+"</button>":"")+(isRTL?"":controls)+"</div>":"";var firstDay=parseInt(this._get(inst,"firstDay"),10);firstDay=(isNaN(firstDay)?0:firstDay);var dayNames=this._get(inst,"dayNames");var dayNamesShort=this._get(inst,"dayNamesShort");var dayNamesMin=this._get(inst,"dayNamesMin");var monthNames=this._get(inst,"monthNames");var monthNamesShort=this._get(inst,"monthNamesShort");var beforeShowDay=this._get(inst,"beforeShowDay");var showOtherMonths=this._get(inst,"showOtherMonths");var calculateWeek=this._get(inst,"calculateWeek")||this.iso8601Week;var endDate=inst.endDay?this._daylightSavingAdjust(new Date(inst.endYear,inst.endMonth,inst.endDay)):currentDate;var defaultDate=this._getDefaultDate(inst);var html="";for(var row=0;row<numMonths[0];row++){var group="";for(var col=0;col<numMonths[1];col++){var selectedDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,inst.selectedDay));var cornerClass=" ui-corner-all";var calender="";if(isMultiMonth){calender+='<div class="ui-datepicker-group ui-datepicker-group-';switch(col){case 0:calender+="first";cornerClass=" ui-corner-"+(isRTL?"right":"left");break;case numMonths[1]-1:calender+="last";cornerClass=" ui-corner-"+(isRTL?"left":"right");break;default:calender+="middle";cornerClass="";break}calender+='">'}calender+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+cornerClass+'">'+(/all|left/.test(cornerClass)&&row==0?(isRTL?next:prev):"")+(/all|right/.test(cornerClass)&&row==0?(isRTL?prev:next):"")+this._generateMonthYearHeader(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,row>0||col>0,monthNames,monthNamesShort)+'</div><table class="ui-datepicker-calendar"><thead><tr>';var thead="";for(var dow=0;dow<7;dow++){var day=(dow+firstDay)%7;thead+="<th"+((dow+firstDay+6)%7>=5?' class="ui-datepicker-week-end"':"")+'><span title="'+dayNames[day]+'">'+dayNamesMin[day]+"</span></th>"}calender+=thead+"</tr></thead><tbody>";var daysInMonth=this._getDaysInMonth(drawYear,drawMonth);if(drawYear==inst.selectedYear&&drawMonth==inst.selectedMonth){inst.selectedDay=Math.min(inst.selectedDay,daysInMonth)}var leadDays=(this._getFirstDayOfMonth(drawYear,drawMonth)-firstDay+7)%7;var numRows=(isMultiMonth?6:Math.ceil((leadDays+daysInMonth)/7));var printDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,1-leadDays));for(var dRow=0;dRow<numRows;dRow++){calender+="<tr>";var tbody="";for(var dow=0;dow<7;dow++){var daySettings=(beforeShowDay?beforeShowDay.apply((inst.input?inst.input[0]:null),[printDate]):[true,""]);var otherMonth=(printDate.getMonth()!=drawMonth);var unselectable=otherMonth||!daySettings[0]||(minDate&&printDate<minDate)||(maxDate&&printDate>maxDate);tbody+='<td class="'+((dow+firstDay+6)%7>=5?" ui-datepicker-week-end":"")+(otherMonth?" ui-datepicker-other-month":"")+((printDate.getTime()==selectedDate.getTime()&&drawMonth==inst.selectedMonth&&inst._keyEvent)||(defaultDate.getTime()==printDate.getTime()&&defaultDate.getTime()==selectedDate.getTime())?" "+this._dayOverClass:"")+(unselectable?" "+this._unselectableClass+" ui-state-disabled":"")+(otherMonth&&!showOtherMonths?"":" "+daySettings[1]+(printDate.getTime()>=currentDate.getTime()&&printDate.getTime()<=endDate.getTime()?" "+this._currentClass:"")+(printDate.getTime()==today.getTime()?" ui-datepicker-today":""))+'"'+((!otherMonth||showOtherMonths)&&daySettings[2]?' title="'+daySettings[2]+'"':"")+(unselectable?"":" onclick=\"DP_jQuery.datepicker._selectDay('#"+inst.id+"',"+drawMonth+","+drawYear+', this);return false;"')+">"+(otherMonth?(showOtherMonths?printDate.getDate():"&#xa0;"):(unselectable?'<span class="ui-state-default">'+printDate.getDate()+"</span>":'<a class="ui-state-default'+(printDate.getTime()==today.getTime()?" ui-state-highlight":"")+(printDate.getTime()>=currentDate.getTime()&&printDate.getTime()<=endDate.getTime()?" ui-state-active":"")+'" href="#">'+printDate.getDate()+"</a>"))+"</td>";printDate.setDate(printDate.getDate()+1);printDate=this._daylightSavingAdjust(printDate)}calender+=tbody+"</tr>"}drawMonth++;if(drawMonth>11){drawMonth=0;drawYear++}calender+="</tbody></table>"+(isMultiMonth?"</div>"+((numMonths[0]>0&&col==numMonths[1]-1)?'<div class="ui-datepicker-row-break"></div>':""):"");group+=calender}html+=group}html+=buttonPanel+($.browser.msie&&parseInt($.browser.version,10)<7&&!inst.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':"");inst._keyEvent=false;return html},_generateMonthYearHeader:function(inst,drawMonth,drawYear,minDate,maxDate,selectedDate,secondary,monthNames,monthNamesShort){minDate=(inst.rangeStart&&minDate&&selectedDate<minDate?selectedDate:minDate);var changeMonth=this._get(inst,"changeMonth");var changeYear=this._get(inst,"changeYear");var showMonthAfterYear=this._get(inst,"showMonthAfterYear");var html='<div class="ui-datepicker-title">';var monthHtml="";if(secondary||!changeMonth){monthHtml+='<span class="ui-datepicker-month">'+monthNames[drawMonth]+"</span> "}else{var inMinYear=(minDate&&minDate.getFullYear()==drawYear);var inMaxYear=(maxDate&&maxDate.getFullYear()==drawYear);monthHtml+='<select class="ui-datepicker-month" onchange="DP_jQuery.datepicker._selectMonthYear(\'#'+inst.id+"', this, 'M');\" onclick=\"DP_jQuery.datepicker._clickMonthYear('#"+inst.id+"');\">";for(var month=0;month<12;month++){if((!inMinYear||month>=minDate.getMonth())&&(!inMaxYear||month<=maxDate.getMonth())){monthHtml+='<option value="'+month+'"'+(month==drawMonth?' selected="selected"':"")+">"+monthNamesShort[month]+"</option>"}}monthHtml+="</select>"}if(!showMonthAfterYear){html+=monthHtml+((secondary||changeMonth||changeYear)&&(!(changeMonth&&changeYear))?"&#xa0;":"")}if(secondary||!changeYear){html+='<span class="ui-datepicker-year">'+drawYear+"</span>"}else{var years=this._get(inst,"yearRange").split(":");var year=0;var endYear=0;if(years.length!=2){year=drawYear-10;endYear=drawYear+10}else{if(years[0].charAt(0)=="+"||years[0].charAt(0)=="-"){year=drawYear+parseInt(years[0],10);endYear=drawYear+parseInt(years[1],10)}else{year=parseInt(years[0],10);endYear=parseInt(years[1],10)}}year=(minDate?Math.max(year,minDate.getFullYear()):year);endYear=(maxDate?Math.min(endYear,maxDate.getFullYear()):endYear);html+='<select class="ui-datepicker-year" onchange="DP_jQuery.datepicker._selectMonthYear(\'#'+inst.id+"', this, 'Y');\" onclick=\"DP_jQuery.datepicker._clickMonthYear('#"+inst.id+"');\">";for(;year<=endYear;year++){html+='<option value="'+year+'"'+(year==drawYear?' selected="selected"':"")+">"+year+"</option>"}html+="</select>"}if(showMonthAfterYear){html+=(secondary||changeMonth||changeYear?"&#xa0;":"")+monthHtml}html+="</div>";return html},_adjustInstDate:function(inst,offset,period){var year=inst.drawYear+(period=="Y"?offset:0);var month=inst.drawMonth+(period=="M"?offset:0);var day=Math.min(inst.selectedDay,this._getDaysInMonth(year,month))+(period=="D"?offset:0);var date=this._daylightSavingAdjust(new Date(year,month,day));var minDate=this._getMinMaxDate(inst,"min",true);var maxDate=this._getMinMaxDate(inst,"max");date=(minDate&&date<minDate?minDate:date);date=(maxDate&&date>maxDate?maxDate:date);inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();if(period=="M"||period=="Y"){this._notifyChange(inst)}},_notifyChange:function(inst){var onChange=this._get(inst,"onChangeMonthYear");if(onChange){onChange.apply((inst.input?inst.input[0]:null),[inst.selectedYear,inst.selectedMonth+1,inst])}},_getNumberOfMonths:function(inst){var numMonths=this._get(inst,"numberOfMonths");return(numMonths==null?[1,1]:(typeof numMonths=="number"?[1,numMonths]:numMonths))},_getMinMaxDate:function(inst,minMax,checkRange){var date=this._determineDate(this._get(inst,minMax+"Date"),null);return(!checkRange||!inst.rangeStart?date:(!date||inst.rangeStart>date?inst.rangeStart:date))},_getDaysInMonth:function(year,month){return 32-new Date(year,month,32).getDate()},_getFirstDayOfMonth:function(year,month){return new Date(year,month,1).getDay()},_canAdjustMonth:function(inst,offset,curYear,curMonth){var numMonths=this._getNumberOfMonths(inst);var date=this._daylightSavingAdjust(new Date(curYear,curMonth+(offset<0?offset:numMonths[1]),1));if(offset<0){date.setDate(this._getDaysInMonth(date.getFullYear(),date.getMonth()))}return this._isInRange(inst,date)},_isInRange:function(inst,date){var newMinDate=(!inst.rangeStart?null:this._daylightSavingAdjust(new Date(inst.selectedYear,inst.selectedMonth,inst.selectedDay)));newMinDate=(newMinDate&&inst.rangeStart<newMinDate?inst.rangeStart:newMinDate);var minDate=newMinDate||this._getMinMaxDate(inst,"min");var maxDate=this._getMinMaxDate(inst,"max");return((!minDate||date>=minDate)&&(!maxDate||date<=maxDate))},_getFormatConfig:function(inst){var shortYearCutoff=this._get(inst,"shortYearCutoff");shortYearCutoff=(typeof shortYearCutoff!="string"?shortYearCutoff:new Date().getFullYear()%100+parseInt(shortYearCutoff,10));return{shortYearCutoff:shortYearCutoff,dayNamesShort:this._get(inst,"dayNamesShort"),dayNames:this._get(inst,"dayNames"),monthNamesShort:this._get(inst,"monthNamesShort"),monthNames:this._get(inst,"monthNames")}},_formatDate:function(inst,day,month,year){if(!day){inst.currentDay=inst.selectedDay;inst.currentMonth=inst.selectedMonth;inst.currentYear=inst.selectedYear}var date=(day?(typeof day=="object"?day:this._daylightSavingAdjust(new Date(year,month,day))):this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay)));return this.formatDate(this._get(inst,"dateFormat"),date,this._getFormatConfig(inst))}});function extendRemove(target,props){$.extend(target,props);for(var name in props){if(props[name]==null||props[name]==undefined){target[name]=props[name]}}return target}function isArray(a){return(a&&(($.browser.safari&&typeof a=="object"&&a.length)||(a.constructor&&a.constructor.toString().match(/\Array\(\)/))))}$.fn.datepicker=function(options){if(!$.datepicker.initialized){$(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv);$.datepicker.initialized=true}var otherArgs=Array.prototype.slice.call(arguments,1);if(typeof options=="string"&&(options=="isDisabled"||options=="getDate")){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}if(options=="option"&&arguments.length==2&&typeof arguments[1]=="string"){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}return this.each(function(){typeof options=="string"?$.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this].concat(otherArgs)):$.datepicker._attachDatepicker(this,options)})};$.datepicker=new Datepicker();$.datepicker.initialized=false;$.datepicker.uuid=new Date().getTime();$.datepicker.version="1.7.2";window.DP_jQuery=$})(jQuery);;
 /*
 * jquery.tools 1.1.2 - The missing UI library for the Web
 * 
 * [tools.scrollable-1.1.2, tools.scrollable.circular-0.5.1, tools.scrollable.autoscroll-1.0.1]
 * 
 * Copyright (c) 2009 Tero Piirainen
 * http://flowplayer.org/tools/
 *
 * Dual licensed under MIT and GPL 2+ licenses
 * http://www.opensource.org/licenses
 * 
 * -----
 * 
 * File generated: Fri Mar 12 04:47:04 GMT 2010
 */
(function(b){b.tools=b.tools||{};b.tools.scrollable={version:"1.1.2",conf:{size:5,vertical:false,speed:400,keyboard:true,keyboardSteps:null,disabledClass:"disabled",hoverClass:null,clickable:true,activeClass:"active",easing:"swing",loop:false,items:".items",item:null,prev:".prev",next:".next",prevPage:".prevPage",nextPage:".nextPage",api:false}};var c;function a(o,m){var r=this,p=b(this),d=!m.vertical,e=o.children(),k=0,i;if(!c){c=r}b.each(m,function(s,t){if(b.isFunction(t)){p.bind(s,t)}});if(e.length>1){e=b(m.items,o)}function l(t){var s=b(t);return m.globalNav?s:o.parent().find(t)}o.data("finder",l);var f=l(m.prev),h=l(m.next),g=l(m.prevPage),n=l(m.nextPage);b.extend(r,{getIndex:function(){return k},getClickIndex:function(){var s=r.getItems();return s.index(s.filter("."+m.activeClass))},getConf:function(){return m},getSize:function(){return r.getItems().size()},getPageAmount:function(){return Math.ceil(this.getSize()/m.size)},getPageIndex:function(){return Math.ceil(k/m.size)},getNaviButtons:function(){return f.add(h).add(g).add(n)},getRoot:function(){return o},getItemWrap:function(){return e},getItems:function(){return e.children(m.item)},getVisibleItems:function(){return r.getItems().slice(k,k+m.size)},seekTo:function(s,w,t){if(s<0){s=0}if(k===s){return r}if(b.isFunction(w)){t=w}if(s>r.getSize()-m.size){return m.loop?r.begin():this.end()}var u=r.getItems().eq(s);if(!u.length){return r}var v=b.Event("onBeforeSeek");p.trigger(v,[s]);if(v.isDefaultPrevented()){return r}if(w===undefined||b.isFunction(w)){w=m.speed}function x(){if(t){t.call(r,s)}p.trigger("onSeek",[s])}if(d){e.animate({left:-u.position().left},w,m.easing,x)}else{e.animate({top:-u.position().top},w,m.easing,x)}c=r;k=s;v=b.Event("onStart");p.trigger(v,[s]);if(v.isDefaultPrevented()){return r}f.add(g).toggleClass(m.disabledClass,s===0);h.add(n).toggleClass(m.disabledClass,s>=r.getSize()-m.size);return r},move:function(u,t,s){i=u>0;return this.seekTo(k+u,t,s)},next:function(t,s){return this.move(1,t,s)},prev:function(t,s){return this.move(-1,t,s)},movePage:function(w,v,u){i=w>0;var s=m.size*w;var t=k%m.size;if(t>0){s+=(w>0?-t:m.size-t)}return this.move(s,v,u)},prevPage:function(t,s){return this.movePage(-1,t,s)},nextPage:function(t,s){return this.movePage(1,t,s)},setPage:function(t,u,s){return this.seekTo(t*m.size,u,s)},begin:function(t,s){i=false;return this.seekTo(0,t,s)},end:function(t,s){i=true;var u=this.getSize()-m.size;return u>0?this.seekTo(u,t,s):r},reload:function(){p.trigger("onReload");return r},focus:function(){c=r;return r},click:function(u){var v=r.getItems().eq(u),s=m.activeClass,t=m.size;if(u<0||u>=r.getSize()){return r}if(t==1){if(m.loop){return r.next()}if(u===0||u==r.getSize()-1){i=(i===undefined)?true:!i}return i===false?r.prev():r.next()}if(t==2){if(u==k){u--}r.getItems().removeClass(s);v.addClass(s);return r.seekTo(u,time,fn)}if(!v.hasClass(s)){r.getItems().removeClass(s);v.addClass(s);var x=Math.floor(t/2);var w=u-x;if(w>r.getSize()-t){w=r.getSize()-t}if(w!==u){return r.seekTo(w)}}return r},bind:function(s,t){p.bind(s,t);return r},unbind:function(s){p.unbind(s);return r}});b.each("onBeforeSeek,onStart,onSeek,onReload".split(","),function(s,t){r[t]=function(u){return r.bind(t,u)}});f.addClass(m.disabledClass).click(function(){r.prev()});h.click(function(){r.next()});n.click(function(){r.nextPage()});if(r.getSize()<m.size){h.add(n).addClass(m.disabledClass)}g.addClass(m.disabledClass).click(function(){r.prevPage()});var j=m.hoverClass,q="keydown."+Math.random().toString().substring(10);r.onReload(function(){if(j){r.getItems().hover(function(){b(this).addClass(j)},function(){b(this).removeClass(j)})}if(m.clickable){r.getItems().each(function(s){b(this).unbind("click.scrollable").bind("click.scrollable",function(t){if(b(t.target).is("a")){return}return r.click(s)})})}if(m.keyboard){b(document).unbind(q).bind(q,function(t){if(t.altKey||t.ctrlKey){return}if(m.keyboard!="static"&&c!=r){return}var u=m.keyboardSteps;if(d&&(t.keyCode==37||t.keyCode==39)){r.move(t.keyCode==37?-u:u);return t.preventDefault()}if(!d&&(t.keyCode==38||t.keyCode==40)){r.move(t.keyCode==38?-u:u);return t.preventDefault()}return true})}else{b(document).unbind(q)}});r.reload()}b.fn.scrollable=function(d){var e=this.eq(typeof d=="number"?d:0).data("scrollable");if(e){return e}var f=b.extend({},b.tools.scrollable.conf);d=b.extend(f,d);d.keyboardSteps=d.keyboardSteps||d.size;this.each(function(){e=new a(b(this),d);b(this).data("scrollable",e)});return d.api?e:this}})(jQuery);
(function(b){var a=b.tools.scrollable;a.plugins=a.plugins||{};a.plugins.circular={version:"0.5.1",conf:{api:false,clonedClass:"cloned"}};b.fn.circular=function(e){var d=b.extend({},a.plugins.circular.conf),c;b.extend(d,e);this.each(function(){var i=b(this).scrollable(),n=i.getItems(),k=i.getConf(),f=i.getItemWrap(),j=0;if(i){c=i}if(n.length<k.size){return false}n.slice(0,k.size).each(function(o){b(this).clone().appendTo(f).click(function(){i.click(n.length+o)}).addClass(d.clonedClass)});var l=b.makeArray(n.slice(-k.size)).reverse();b(l).each(function(o){b(this).clone().prependTo(f).click(function(){i.click(-o-1)}).addClass(d.clonedClass)});var m=f.children(k.item);var h=k.hoverClass;if(h){m.hover(function(){b(this).addClass(h)},function(){b(this).removeClass(h)})}function g(o){var p=m.eq(o);if(k.vertical){f.css({top:-p.position().top})}else{f.css({left:-p.position().left})}}g(k.size);b.extend(i,{move:function(s,r,p,q){var u=j+s+k.size;var t=u>i.getSize()-k.size;if(u<=0||t){var o=j+k.size+(t?-n.length:n.length);g(o);u=o+s}if(q){m.removeClass(k.activeClass).eq(u+Math.floor(k.size/2)).addClass(k.activeClass)}if(u===j+k.size){return self}return i.seekTo(u,r,p)},begin:function(p,o){return this.seekTo(k.size,p,o)},end:function(p,o){return this.seekTo(n.length,p,o)},click:function(p,r,q){if(!k.clickable){return self}if(k.size==1){return this.next()}var s=p-j,o=k.activeClass;s-=Math.floor(k.size/2);return this.move(s,r,q,true)},getIndex:function(){return j},setPage:function(p,q,o){return this.seekTo(p*k.size+k.size,q,o)},getPageAmount:function(){return Math.ceil(n.length/k.size)},getPageIndex:function(){if(j<0){return this.getPageAmount()-1}if(j>=n.length){return 0}var o=(j+k.size)/k.size-1;return o},getVisibleItems:function(){var o=j+k.size;return m.slice(o,o+k.size)}});i.onStart(function(p,o){j=o-k.size;return false});i.getNaviButtons().removeClass(k.disabledClass)});return d.api?c:this}})(jQuery);
(function(b){var a=b.tools.scrollable;a.plugins=a.plugins||{};a.plugins.autoscroll={version:"1.0.1",conf:{autoplay:true,interval:3000,autopause:true,steps:1,api:false}};b.fn.autoscroll=function(d){if(typeof d=="number"){d={interval:d}}var e=b.extend({},a.plugins.autoscroll.conf),c;b.extend(e,d);this.each(function(){var g=b(this).scrollable();if(g){c=g}var i,f,h=true;g.play=function(){if(i){return}h=false;i=setInterval(function(){g.move(e.steps)},e.interval);g.move(e.steps)};g.pause=function(){i=clearInterval(i)};g.stop=function(){g.pause();h=true};if(e.autopause){g.getRoot().add(g.getNaviButtons()).hover(function(){g.pause();clearInterval(f)},function(){if(!h){f=setTimeout(g.play,e.interval)}})}if(e.autoplay){setTimeout(g.play,e.interval)}});return e.api?c:this}})(jQuery);

