var basePath = '';
var serverDomain = 'www.seyfarth.com';
var siteTitle = '';
var expandedBio = false;
var copySnipAlert = "Snippet copied to clipboard.";

/*Cookie variables for font resize*/
var cookiename = 'Seyfarth';
var cookieoptions = '{ domain: '+serverDomain+', secure: false }';
var resizeDivs = ['.content-holder', '.content-area'];
var fontIncrement = 2;
var lineHeightIncrement = 3; //in pixels

// page init
jQuery(function () {

    
    initSifr();
    initNavs();
    initSlideshow();
    initTabs();
    initClear();
    initPopups();
    initNavFader();
    initAutocomplete();
    initIeHover();
    initOpenClose();
    initDatePicker();
    initCustomForms();
    initViewAllGridLinks();
    initBioSwap();
    setMainNarLinkVisibility();
    initAjaxSearch();
    initOfficeDescriptionSwap();
    initCopySnippet();
    initSearchCheckboxes();
    initFontResize();
    initSiteSearch();
    initAjaxSubmit();
    initPrint();
    initCMSContentLinks();
    initNarativeExpand();
    initAutoCompleteDisable();
});
/* not in use anymore was put in there for
function renameselect() {

    var baradmOpt = $('#bar-admissions option');

    baradmOpt.each(function () {
        var option = $(this);
        if (option.text() == 'Selecte a State') {
            alert(option.text());
            option.text('Select a State');
        }
    });


}*/

function initCMSContentLinks() {
	jQuery.each(resizeDivs, function (idx,value) {
		$(value).find('a').addClass('cms-content-links');
	});

}

function initPrint() {
	$('#print').click(function () {
		window.print();
	});
}


//function SubmitAJAX() {

//    var form = $('#info-form');
//    //alert(' i am here'+ form.length);

//    $.ajax({
//        type: "POST",
//        url: form.attr('action'),
//        data: form.serialize(),
//        error: function (xhr, status, error) {
//            //do something about the error
//        },
//        success: function (response) {
//            //do something with response

//            var data2 = $(response).html();
//            alert($(response).html());
//            alert(data2);
//            alert($('#mailform').html());
//            $('#mailform').html(data2);
//            alert($('#mailform').html());
//            
//        }
//    });

//    return false; // if it's a link to prevent post
//}

function initSearchPageChecks() {

	var form = $('#sites-search-selector');
	var infoarea = $('.info-area');

	var checkboxes = form.find('.checkbox');
	checkboxes.each(function (chkbox) {

		chkbox.click(function () {
			var box = $(this);
			var namepart = box.attr('id').split('-');
			if (namepart.length > 1) {
				var section = infoarea.find('.section' + namepart[1]);
			}

			if (box.val() == 'checked') {
				section.show();
			}
			else { section.hide(); }

		});
	});



}

/**jQuery browser plugin detection*/
(function ($) { if (typeof $.browser === "undefined" || !$.browser) { var browser = {}; $.extend(browser); } var pluginList = { flash: { activex: "ShockwaveFlash.ShockwaveFlash", plugin: /flash/gim }, sl: { activex: ["AgControl.AgControl"], plugin: /silverlight/gim }, pdf: { activex: "PDF.PdfCtrl", plugin: /adobe\s?acrobat/gim }, qtime: { activex: "QuickTime.QuickTime", plugin: /quicktime/gim }, wmp: { activex: "WMPlayer.OCX", plugin: /(windows\smedia)|(Microsoft)/gim }, shk: { activex: "SWCtl.SWCtl", plugin: /shockwave/gim }, rp: { activex: "RealPlayer", plugin: /realplayer/gim }, java: { activex: navigator.javaEnabled(), plugin: /java/gim} }; var isSupported = function (p) { if (window.ActiveXObject) { try { new ActiveXObject(pluginList[p].activex); $.browser[p] = true; } catch (e) { $.browser[p] = false; } } else { $.each(navigator.plugins, function () { if (this.name.match(pluginList[p].plugin)) { $.browser[p] = true; return false; } else { $.browser[p] = false; } }); } }; $.each(pluginList, function (i, n) { isSupported(i); }); })(jQuery);





function togglePrintPreview() {
	var currCSS = document.getElementById('printCSS');

	if (currCSS.media == 'all')
		currCSS.media = 'print';
	else currCSS.media = 'all';
}

function initCopySnippet() 
	{
		if (jQuery.browser.flash == true) {
			//ZeroClipboard.setMoviePath("basePath" + "content/swf/ZeroClipboard.swf"); 
			//var clip = new ZeroClipboard.Client();
			var copyButton = $('.d_clip_button');

			copyButton.each(function () {
				var button = $(this);
				button.zclip({
					path: basePath + "content/swf/ZeroClipboard.swf",
					copy: function () {
						var copstring = $(this).parent().parent().children(0);
						var copiedText = $.trim(copstring.html());
						return copiedText;
					},
					afterCopy: function () { alert(copySnipAlert) }
				});
			});
		}
		else { $('.office-description .link-row').hide(); }

	 }

function initAjaxSearch() {


	var imgsearch = $('.inp-img');
	if (imgsearch.length) {

		jQuery(imgsearch).click(function () {
			var form = $('.search-form');
			$.ajax({
				type: "POST",
				url: form.attr('action'),
				data: form.serialize(),

				beforeSend: function () { $('.ajaxspin').fadeIn("slow") },


				error: function (xhr, status, error) {
					alert(xhr.responseText);
				},
				success: function (response) {
					//do something with response                
					var contenttxt = $('.content-txt');
					if (contenttxt.length) {
						contenttxt.hide();
					}
					$('#searchresults').html($(response).html());

				},

				complete: function (response) {
					$('.ajaxspin').fadeOut("slow");
				}
			});
		});        
	}
}

function initAjaxSubmit() {
	var imgsearch = $('.submit-img');

	var errorlbl = '.field-validation-error';

	if (imgsearch.length) {
		jQuery(imgsearch).click(function (e) {
			var form = $('.contact-form');
			e.preventDefault(); //no postback
			form.validate();
			if (form.valid()) {            
				$.ajax({
					type: "POST",
					url: form.attr('action'),
					data: form.serialize(),

					beforeSend: function () {
						$('.ajaxspin').fadeIn("slow")
					},

					error: function (xhr, status, error) {
						//alert(xhr.responseText);
					},
					success: function (response) {
						//do something with response                
						var contenttxt = $('.content-txt');
						if (contenttxt.length) {
							contenttxt.hide();
						}
						//alert($(response).html());
						$('#submitContactInfo').html($(response).html());
					},

					complete: function (response) { $('.ajaxspin').fadeOut("slow"); }
				});
			}
		});
	}
}

// datepicker init
function initDatePicker() {
	$("#date-start").datepicker({
		showOn: "button",
		buttonImage: basePath + "content/images/ico-datapicker.gif",
		buttonImageOnly: true
	});
	$("#date-end").datepicker({
		showOn: "button",
		buttonImage: basePath + "content/images/ico-datapicker.gif",
		buttonImageOnly: true
	});
}


// sifr init
function initSifr() {
	sIFR.replace(frutiger, {
		selector: '.slide-gallery h2.grey-txt, .slide-gallery h3.grey-txt',
		wmode: 'opaque',
		css: [
			'.sIFR-root {color:#526166; background:#ffffff;}',
			'a {color:#526166; text-decoration:none;}',
			'a:hover {color:#526166; text-decoration:underline;}',
		]
	});
	sIFR.replace(frutiger, {
		selector: '.slide-gallery h2.green-txt',
		wmode: 'opaque',
		css: [
			'.sIFR-root {color: #72c267; background:#ffffff;}',
			'a {color:#72c267; text-decoration:none;}',
			'a:hover {color:#72c267; text-decoration:underline;}',
		]
	});
	sIFR.replace(frutiger, {
		selector: '#content h1, #content .slide-area h2',
		wmode: 'transparent',
		css: ['.sIFR-root {color: #526166;}']
	});
	sIFR.replace(frutiger, {
		selector: '.side-box .side-txt h4',
		wmode: 'transparent',
		css: [
			'.sIFR-root {color: #526166;}',
			'a {color:#526166; text-decoration:none;}',
			'a:hover {color:#526166; text-decoration:underline;}',
		]
	});
}

// ie hover init
function initIeHover() {
	ieHover('#tools li', 'hover');
}

// slideshow init
function initSlideshow() {

	//var li = jQuery('.main-gallery ul > li');
	//if (li.length > 2) {

		jQuery('.main-gallery').fadeGallery({
			slideElements: 'ul > li',
			dynamicImageLoad: 'img',
			dynamicImageLoadAttr: 'alt',
			autoRotation: true,
			switchTime: 10500,
			duration: 750
		});
	//}
}

// navigation init
function initNavs() {
	initNav({
		menuId: "tools"
	});
	initNav({
		menuId: "nav",
		hoverClass: "hover",
		dropExistenceClass: "has-drop-down",
		sideClasses: true,
		cleverMode: true,
		flexibility: true
	});
}

// nav fader init
function initNavFader() {
	var fadeSpeed = 500;
	var win = jQuery(window);
	var wrap = jQuery('#wrapper');
	var header = jQuery('#header');
	var nav = jQuery('#nav');
	var items = nav.find('> li');
	var fader = jQuery('<div class="fader" />');
	var timer, timer2;
	var wrapMargin = parseInt(wrap.css('marginTop'));
	jQuery('body').append(fader.hide());
	fader.css({
		position: 'absolute',
		left: 0,
		top: header.outerHeight(true) + wrapMargin,
		background: '#000',
		opacity: 0,
		zIndex: 999
	})

	items.bind('mouseover', function () {
		if (timer) clearTimeout(timer);
		timer = setTimeout(function () {
			fader.css({ width: win.width() + win.scrollLeft(), height: win.height() + win.scrollTop() - header.height() - wrapMargin }).show().stop().animate({ opacity: 0.65 }, {
				duration: fadeSpeed
			})
		}, 200)
		items.removeClass('hover');
		jQuery(this).addClass('hover');
	})
	.bind('mouseleave', function () {
		if (timer) clearTimeout(timer);
		timer = setTimeout(function () {
			fader.stop().animate({ opacity: 0 }, {
				duration: fadeSpeed,
				complete: function () {
					fader.hide()
				}
			})
		}, 400);
		if (timer2) clearTimeout(timer2);
		var search = jQuery('.people-search');
		timer2 = setTimeout(function () {
			search.remove();
		}, 10);
		search.bind('mouseenter', function () {
			if (timer2) clearTimeout(timer2);
		});
		jQuery(this).removeClass('hover');
	})

}

// ie hover
function ieHover(hoverList, hoverClass) {
	if (!(jQuery.browser.msie && jQuery.browser.version < 7)) return;
	if (!hoverClass) { hoverClass = 'hover' };
	jQuery(hoverList).each(function () {
		var item = jQuery(this);
		item.hover(function () {
			item.addClass(hoverClass);
		},
		function () {
			item.removeClass(hoverClass);
		})
	})
}

// open-close init
function initOpenClose() {
	jQuery('div.slide-block').OpenClose({
		activeClass: 'active',
		opener: 'a.open-close',
		closeAll: 'a.close-all',
		openAll: 'a.open-all',
		slider: 'div.block',
		effect: 'slide',
		animSpeed: 500
	});
	jQuery('div.slide-container').OpenClose({
		activeClass: 'active',
		opener: 'a.open-close',
		slider: 'div.block',
		effect: 'slide',
		animSpeed: 500
	});
}

// regexp replace
RegExp.escape = function (str) {
	var specials = new RegExp("[.*+?|()\\[\\]{}\\\\]", "g"); // .*+?|()[]{}\
	return str.replace(specials, "\\$&");
}


function linkBoxes(box) {
	var links = $('.site-search li a');

	links.each(function () {

	    var link = $(this);
	    link.bind('click', function () {
	        var strSearch = "";
	        var type = link.attr('type');
	        //if (type.toLowerCase() == 'people') {
	        //    strSearch = link.text() ;
	        //}
            //else {
	            strSearch = "\"" + link.text() + "\"";
	        //}

	        $('.ajaxspin-search').fadeIn(1000);

	        $.post($(this).attr('rel'), { searchStr: strSearch }, function (data) {
	            var result = jQuery(data);
	            var current = jQuery('#wrapper');

	            if (result != "No data") {
	                current.html(result.html());
	                initSearchCheckboxes();
	                $('.ajaxspin-search').fadeOut(1000);
	                initSifr();

	                if (box != undefined) {
	                    box.remove();
	                }
	            }
	        });
	    });
	});
}

function initSiteSearch() {

	var form = $('#siteSearch');
	form.method = "POST";
	var searchStr = $('#searchStr');
	var input = form.find('input.inp-txt');
	var box;
	var maxItems = 10;
	var target = form.attr('title');  //'/Search/LaySearch';
	var showBox = false;

	var selectedClass = 'selected';
	function highlightWords(str, word) {
		var regex = new RegExp("(" + RegExp.escape(word) + ")", "gi");
		return str.replace(regex, "<span class='mark'>$1</span>");
	}

	/*input.focusout(function () {
	    if (box != undefined) {
	        //$.delay(2000);
	        alert('focus');
	        box.remove();
	    }
	})
    */

	input.bind('keyup', function (e) {
	    if (e.which != 40 && e.which != 38 && e.which != 13) {
	        var txt = input.val();
	        if (txt != '') {
	            form.addClass('loading');
	            jQuery.ajax({
	                url: target,
	                type: 'get',
	                data: 'ajax=1&searchStr=' + txt,
	                dataType: "html",
	                success: function (text) {
	                    var result = jQuery(text);
	                    var loaded = false;
	                    showBox = true;
	                    if (box != undefined) box.remove();
	                    var resultList = result.find('ul');
	                    var resultItems = resultList.find('li');
	                    resultList.empty();
	                    resultItems.each(function (i) {
	                        var item = jQuery(this);
	                        if (item.text().toLowerCase().indexOf(txt) != -1 || item.text().indexOf(txt) != -1) {
	                            item.children().each(function () {
	                                jQuery(this).html(highlightWords(jQuery(this).text(), txt));

	                            });
	                            resultList.append(item);
	                            loaded = true;
	                        }
	                    })
	                    if (loaded) {
	                        if (!jQuery(result).find('.scrolling').length) {
	                            result.find('li:gt(' + (maxItems - 1) + ')').remove();
	                        }
	                        box = result;

	                        jQuery('body').append(result);
	                        linkBoxes(box);
	                        result.css({
	                            top: form.offset().top + form.height(),
	                            left: form.offset().left
	                        })
								.bind('mouseenter', function () {
								    form.trigger('mouseover');
								})
								.bind('mouseleave', function () {
								    form.trigger('mouseleave');
								})
	                    }
	                },
	                error: function () {
	                    alert('AJAX Error!');
	                }
	            })
	        }
	        else {
	            if (box != undefined) box.remove();
	        };

	    }
	    else if (showBox) {
	        var items = box.find('li');
	        var len = items.length;
	        var itemSelected = items.filter('.' + selectedClass);
	        var newSelected;
	        if (e.which == 40) {
	            if (items.index(itemSelected) == len - 1) newSelected = items.eq(0).addClass(selectedClass);
	            else newSelected = items.eq(items.index(itemSelected) + 1).addClass(selectedClass);
	        }
	        else if (e.which == 38) {
	            if (items.index(itemSelected) == 0) newSelected = items.eq(len - 1).addClass(selectedClass);
	            else newSelected = items.eq(items.index(itemSelected) - 1).addClass(selectedClass);
	        }
	        else if (e.which == 13 && itemSelected.length) {
	            input.val(itemSelected.text());
	            box.remove();
	            showBox = false;
	        }
	        itemSelected.removeClass(selectedClass);
	    }

	});
	
	input.change(function (e) {
	   
		$(this).css("color", "#526166");
	});

	$('#siteSearch').submit(function (e) {

	    e.preventDefault();
	    if (searchStr.val().length === 0) {
	        //searchStr.val("Input Something");
	        searchStr.val('Enter keyword');
	        //searchStr.css("color", "red");
	        return false;
	    }
	    else {
	        var strSearch = input.val();

	        $('.ajaxspin-search').fadeIn(1000);

	        $.post(form.attr('action'), { searchStr: strSearch }, function (data) {
	            var result = jQuery(data);
	            var current = jQuery('#wrapper');

	            if (data != "No data") {
	                current.html(result.html());
	                initSearchCheckboxes();
	                initSifr();
	                document.title = siteTitle + ' - Site Search';
	            }
	            $('.ajaxspin-search').fadeOut(1000);
	            if (box != undefined) {
	                box.remove();
	            }
	        });
	    }
	    return true;
	});
}

// autocomplete init
function initAutocomplete() {
	var body = jQuery('body');
	var maxItems = 10;
	var selectedClass = 'selected';
	jQuery('form.search, form.search-people, #last-name-search').each(function () {
		var box;
		var form = jQuery(this);
		var target = form.attr('title');
		var input = form.find('input.inp-txt');
		var showBox = false;
		form.submit(function () {
			if (showBox && box.find('.' + selectedClass).length) return false;
		})
		function highlightWords(str, word) {
			var regex = new RegExp("(" + RegExp.escape(word) + ")", "gi");
			return str.replace(regex, "<span class='mark'>$1</span>");
		}
		input.bind('keyup', function (e) {
			if (e.which != 40 && e.which != 38 && e.which != 13) {
				var txt = input.val();
				if (txt != '') {
					form.addClass('loading');
					jQuery.ajax({
						url: target,
						type: 'get',
						data: 'ajax=1&searchStr=' + txt,
						dataType: "html",
						success: function (text) {
							var result = jQuery(text);
							var loaded = false;
							showBox = true;
							if (box != undefined) box.remove();
							var resultList = result.find('ul');
							var resultItems = resultList.find('li');
							resultList.empty();
							resultItems.each(function (i) {
								var item = jQuery(this);
								if (item.text().toLowerCase().indexOf(txt) != -1 || item.text().indexOf(txt) != -1) {
									item.children().each(function () {
										jQuery(this).html(highlightWords(jQuery(this).text(), txt));
									});
									resultList.append(item);
//                                    //Comment out because clicking should now bring you to the detail page, not add to the criteria
//                                    if (input.attr('id') == "last-name") {
//                                        //Allow the user to click on an item in the dropdown
//                                        item.click(function () {
//                                            input.val(item.text());
//                                            resultItems.removeClass(selectedClass);
//                                            box.remove();
//                                            return false;
//                                        })
//                                    }
									loaded = true;
								}
							})
							if (loaded) {
								if (!jQuery(result).find('.scrolling').length) {
									result.find('li:gt(' + (maxItems - 1) + ')').remove();
								}
								box = result;
								jQuery('body').append(result);
								result.css({
									top: form.offset().top + form.height(),
									left: form.offset().left
								})
								.bind('mouseenter', function () {
									form.trigger('mouseover');
								})
								.bind('mouseleave', function () {
									form.trigger('mouseleave');
								})
							}
						},
						error: function () {
							alert('AJAX Error!');
						}
					})
				}
				else {
					if (box != undefined) box.remove();
				};
			}
			else if (showBox) {
				var items = box.find('li');
				var len = items.length;
				var itemSelected = items.filter('.' + selectedClass);
				var newSelected;
				if (e.which == 40) {
					if (items.index(itemSelected) == len - 1) newSelected = items.eq(0).addClass(selectedClass);
					else newSelected = items.eq(items.index(itemSelected) + 1).addClass(selectedClass);
				}
				else if (e.which == 38) {
					if (items.index(itemSelected) == 0) newSelected = items.eq(len - 1).addClass(selectedClass);
					else newSelected = items.eq(items.index(itemSelected) - 1).addClass(selectedClass);
				}
				else if (e.which == 13 && itemSelected.length) {
					input.val(itemSelected.text());
					box.remove();
					showBox = false;
				}
				itemSelected.removeClass(selectedClass);
			}
		})
		jQuery('body').click(function (e) {
			if (!jQuery(e.target).parents('.' + jQuery(box).attr('class')).length && !jQuery(e.target).parents('.' + form.attr('class')).length) {
				jQuery(box).remove();
			}
		})
	})
}


function initOfficeDescriptionSwap() {
	jQuery('#show-long-office-description').click(function () {
		jQuery('#long-office-description').show();
		jQuery('#short-office-description').hide();
		jQuery('#show-long-office-description').hide();
		jQuery('#show-short-office-description').show();
	});
	jQuery('#show-short-office-description').click(function () {
		jQuery('#long-office-description').hide();
		jQuery('#short-office-description').show();
		jQuery('#show-long-office-description').show();
		jQuery('#show-short-office-description').hide();
		
		
	});
}

function officeDescriptionSwap() {
	jQuery('#long-office-description').toggle();
	jQuery('#short-office-description').toggle();
}

// view all grids
function initViewAllGridLinks() {
	jQuery('.detail-swap').unbind('click');
	jQuery('.detail-swap').click(function (obj) {
		jQuery.ajax({
			url: $(this).attr('rel') + (expandedBio ? '?expandedbio=1' : ''),
			type: 'get',
			dataType: "text",
			cache: false,
			success: function (text) {
				var data = $(text);
				jQuery("#content-block").html(data.html());
				setMainNarLinkVisibility();
				initOpenClose();
				initBioSwap();
				initViewAllGridLinks();
				jQuery('#back-to-bio').click(function (obj) {
					jQuery.ajax({
						url: $(this).attr('rel') + (expandedBio ? '?expandedbio=1' : ''),
						type: 'get',
						dataType: "text",
						success: function (text) {
							jQuery("#content-block").html(text);
							initBioSwap();
							initOpenClose();
							setMainNarLinkVisibility();
							initViewAllGridLinks();
						}
					});
				});
			}
		});
	});


}

function setMainNarLinkVisibility() {
	var narType = jQuery('#narrativeType');
	narType.hide();
	if (narType.text() == "0") {

		jQuery('#narType0').hide();
	}
	else {
		jQuery('#narType0').show();
	}
}


function initBioSwap() {

    jQuery('#bio-swap').click(function (obj) {
        expandedBio = true;
        $(this).parent().hide();
    });
}



function initSearchCheckboxes() {
	jQuery('.checkbox').change(function (obj) {
		var senderID = String(obj.target.id);
		var senderNum = senderID.substring(senderID.length, senderID.length - 2);
		if (jQuery('#' + senderID).attr('checked')) {
			jQuery('#section-' + senderNum).show();
		}
		else {
			jQuery('#section-' + senderNum).hide();
		}
	});
}

// tabs init
function initTabs() {
	var fadeSpeed = jQuery.browser.msie && jQuery.browser.version < 9 ? 0 : 700;
	var activeLinkClass = 'active';
	var activeTabClass = 'tab-active';
	var loadedClass = 'loaded';
	var loadingClass = 'loading';
	jQuery('.tabs').each(function () {
		var tabs = jQuery(this);
		var tabsHolder = tabs.find('.tabs-content');
		var tabset = tabs.find('.tabset');
		var tabLinks = tabset.find('a.tab');
		var activeItem = tabLinks.filter('.' + activeLinkClass);
		if (activeItem.length) var activeTab = activeItem.attr('href');
		else var activeTab = tabLinks.eq(0).attr('href');

		function loadTab() {
			tabsHolder.addClass(loadingClass);
			setTimeout(function () {
				jQuery.ajax({
					url: activeTab,
					type: 'get',
					data: 'ajax=1',
					dataType: "text",
					success: function (text) {
						tabsHolder.removeClass(loadingClass);
						tab = jQuery(text);
						tabsHolder.append(tab.attr('rel', activeTab));
						tabLinks.filter('[href = "' + activeTab + '"]').addClass(loadedClass);
						switchTab();
						jQuery('div.slide-gallery', tab).scrollGallery({
							holder: '.mask',
							btnPrev: '.prev-link',
							btnNext: '.next-link',
							duration: 650
						});
						initSifr();
					},
					error: function () {
						tabsHolder.removeClass(loadingClass);
						alert('AJAX Error!');
					}
				})
			}, 500)
		}
		loadTab();

		tabLinks.each(function () {
			var tabLink = jQuery(this);
			var href = tabLink.attr('href');
			tabLink.click(function () {
				activeTab = href;
				tabLinks.removeClass(activeLinkClass);
				tabLink.addClass(activeLinkClass);
				if (tabLink.hasClass(loadedClass)) switchTab();
				else loadTab();
				return false;
			})
		})

		function switchTab() {
			var tab = tabsHolder.find('[rel = "' + activeTab + '"]');
			tabsHolder.find('.' + activeTabClass).fadeOut({ duration: fadeSpeed }).removeClass(activeTabClass);
			tab.fadeIn({ duration: fadeSpeed }).addClass(activeTabClass);
			tabsHolder.animate({ height: tab.height() }, { duration: fadeSpeed });
		}
	})
}

// navigation function
function initNav(o) {
	if (!o.menuId) o.menuId = "main-nav";
	if (!o.cleverMode) o.cleverMode = false;
	if (!o.flexibility) o.flexibility = false;
	if (!o.dropExistenceClass) o.dropExistenceClass = false;
	if (!o.hoverClass) o.hoverClass = "hover";
	if (!o.menuHardCodeClass) o.menuHardCodeClass = "menu-hard-code";
	if (!o.sideClasses) o.sideClasses = false;
	if (!o.center) o.center = false;
	if (!o.menuPaddings) o.menuPaddings = 0;
	if (!o.minWidth) o.minWidth = 0;
	if (!o.coeff) o.coeff = 1.7;
	var n = document.getElementById(o.menuId);
	if (n) {
		n.className = n.className.replace(o.menuHardCodeClass, "");
		var lfl = [];
		var li = n.getElementsByTagName("li");
		for (var i = 0; i < li.length; i++) {
			li[i].className += (" " + o.hoverClass);
			var d = li[i].getElementsByTagName("div").item(0);
			if (d) {
				if (o.flexibility) {
					var a = d.getElementsByTagName("a");
					for (var j = 0; j < a.length; j++) {
						var w = a[j].parentNode.parentNode.offsetWidth;
						if (w > 0) {
							if (typeof (o.minWidth) == "number" && w < o.minWidth)
								w = o.minWidth;
							else if (typeof (o.minWidth) == "string" && li[i].parentNode == n && w < li[i].offsetWidth)
								w = li[i].offsetWidth - 5;
							a[j].style.width = w - o.menuPaddings + "px";
						}
					}
					d.style.width = li[i].getElementsByTagName("div").item(1).clientWidth + "px";
				}
				var t = document.documentElement.clientWidth / o.coeff;
				if (li[i].parentNode != n && (!o.cleverMode || fPX(li[i]) < t)) {
					d.style.right = "auto";
					d.style.left = li[i].parentNode.offsetWidth + "px";
					d.parentNode.className += " left-side";
				}
				else if (li[i].parentNode != n && (o.cleverMode || fPX(li[i]) >= t)) {
					d.style.left = "auto";
					d.style.right = li[i].parentNode.offsetWidth + "px";
					d.parentNode.className += " right-side";
				}
				else if (li[i].parentNode == n && o.cleverMode && fPX(li[i]) >= t) {
					li[i].className += " right-side";
				}
				if (li[i].parentNode == n && o.center)
					d.style.left = -li[i].getElementsByTagName("div").item(1).clientWidth / 2 + li[i].clientWidth / 2 + "px";
			}
			if (o.dropExistenceClass && li[i].getElementsByTagName("ul").length > 0) {
				li[i].className += (" " + o.dropExistenceClass);
				li[i].getElementsByTagName("a").item(0).className += (" " + o.dropExistenceClass + "-link");
				li[i].innerHTML += "<em class='pointer'></em>";
			}
			if (li[i].parentNode == n) lfl.push(li[i]);
		}
		if (o.sideClasses) {
			lfl[0].className += " first-child";
			lfl[0].getElementsByTagName("a").item(0).className += " first-child-link";
			lfl[lfl.length - 1].className += " last-child";
			lfl[lfl.length - 1].getElementsByTagName("a").item(0).className += " last-child-link";
		}
		for (var i = 0; i < li.length; i++) {
			li[i].className = li[i].className.replace(o.hoverClass, "");

		}
	}
	function fPX(a) {
		var b = 0;
		while (a.offsetParent) { b += a.offsetLeft; a = a.offsetParent; }
		return b;
	}
}

// scrolling gallery plugin
jQuery.fn.scrollGallery = function (options) {
	var options = jQuery.extend({
		btnPrev: '.link-prev',
		btnNext: '.link-next',
		holder: '.holder',
		slider: 'ul',
		slides: 'li',
		step: false,
		autorotation: true,
		switchTime: 8000,
		duration: 500
	}, options);

	return this.each(function () {
		var gallery = jQuery(this);
		var slides = jQuery(options.slides, gallery);
		var btnPrev = jQuery(options.btnPrev, gallery);
		var btnNext = jQuery(options.btnNext, gallery);
		var holder = jQuery(options.holder, gallery);
		var slider = jQuery(options.slider, gallery);
		var autorotation = options.autorotation;
		var switchTime = options.switchTime;
		var duration = options.duration;
		var step = options.step;

		var index = 0;
		var prevIndex = 0;
		var slideWidth = slides.eq(0).outerWidth(true);
		var timer;
		var animating = false;

		slides.each(function (n) {
			if (n == 0) jQuery(this).css({ left: 0 });
			else jQuery(this).css({ left: slideWidth });
		})
		function switchSlideNext() {
			if (!animating) {
				if (index == slides.length - 1) index = 0;
				else index++;
				animating = true;
				slides.eq(prevIndex).stop().animate({ left: -slideWidth }, {
					duration: duration
				})
				slides.eq(index).css({ left: slideWidth }).stop().animate({ left: 0 }, {
					duration: duration,
					complete: function () {
						animating = false;
					}
				})
				prevIndex = index;
				autoSlide();
			}
		}
		function switchSlidePrev() {
			if (!animating) {
				if (index == 0) index = slides.length - 1;
				else index--;
				animating = true;
				slides.eq(prevIndex).stop().animate({ left: slideWidth }, {
					duration: duration
				})
				slides.eq(index).css({ left: -slideWidth }).stop().animate({ left: 0 }, {
					duration: duration,
					complete: function () {
						animating = false;
					}
				})
				prevIndex = index;
				autoSlide();
			}
		}
		btnPrev.click(function () {
			switchSlidePrev();
			return false;
		})
		btnNext.click(function () {
			stopAutoSlide();
			switchSlideNext();
			return false;
		})
		function stopAutoSlide() {
			if (timer) clearTimeout(timer);
		}
		function autoSlide() {
			if (!autorotation) return;
			if (timer) clearTimeout(timer);
			timer = setTimeout(switchSlideNext, switchTime + duration);
		}
		autoSlide();
	});
}

// clear form fields init
function initClear() {
	clearFormFields({
		clearInputs: true,
		clearTextareas: true,
		passwordFieldText: true,
		addClassFocus: "focus",
		filterClass: "default"
	});
}

// clear form fields on focus
function clearFormFields(o) {
	if (o.clearInputs == null) o.clearInputs = true;
	if (o.clearTextareas == null) o.clearTextareas = true;
	if (o.passwordFieldText == null) o.passwordFieldText = false;
	if (o.addClassFocus == null) o.addClassFocus = false;
	if (!o.filterClass) o.filterClass = "default";
	if (o.clearInputs) {
		var inputs = document.getElementsByTagName("input");
		for (var i = 0; i < inputs.length; i++) {
			if ((inputs[i].type == "text" || inputs[i].type == "password") && inputs[i].className.indexOf(o.filterClass) == -1) {
				inputs[i].valueHtml = inputs[i].value;
				inputs[i].onfocus = function () {
					if (this.valueHtml == this.value) this.value = "";
					if (this.fake) {
						inputsSwap(this, this.previousSibling);
						this.previousSibling.focus();
					}
					if (o.addClassFocus && !this.fake) {
						this.className += " " + o.addClassFocus;
						this.parentNode.className += " parent-" + o.addClassFocus;
					}
				}
				inputs[i].onblur = function () {
					if (this.value == "") {
						this.value = this.valueHtml;
						if (o.passwordFieldText && this.type == "password") inputsSwap(this, this.nextSibling);
					}
					if (o.addClassFocus) {
						this.className = this.className.replace(o.addClassFocus, "");
						this.parentNode.className = this.parentNode.className.replace("parent-" + o.addClassFocus, "");
					}
				}
				if (o.passwordFieldText && inputs[i].type == "password") {
					var fakeInput = document.createElement("input");
					fakeInput.type = "text";
					fakeInput.value = inputs[i].value;
					fakeInput.className = inputs[i].className;
					fakeInput.fake = true;
					inputs[i].parentNode.insertBefore(fakeInput, inputs[i].nextSibling);
					inputsSwap(inputs[i], null);
				}
			}
		}
	}
	if (o.clearTextareas) {
		var textareas = document.getElementsByTagName("textarea");
		for (var i = 0; i < textareas.length; i++) {
			if (textareas[i].className.indexOf(o.filterClass) == -1) {
				textareas[i].valueHtml = textareas[i].value;
				textareas[i].onfocus = function () {
					if (this.value == this.valueHtml) this.value = "";
					if (o.addClassFocus) {
						this.className += " " + o.addClassFocus;
						this.parentNode.className += " parent-" + o.addClassFocus;
					}
				}
				textareas[i].onblur = function () {
					if (this.value == "") this.value = this.valueHtml;
					if (o.addClassFocus) {
						this.className = this.className.replace(o.addClassFocus, "");
						this.parentNode.className = this.parentNode.className.replace("parent-" + o.addClassFocus, "");
					}
				}
			}
		}
	}
	function inputsSwap(el, el2) {
		if (el) el.style.display = "none";
		if (el2) el2.style.display = "inline";
	}
}

// slideshow plugin
jQuery.fn.fadeGallery = function (_options) {
	var _options = jQuery.extend({
		slideElements: 'div.slideset > div',
		pagerLinks: 'div.pager a',
		btnNext: 'a.next',
		btnPrev: 'a.prev',
		btnPlayPause: 'a.play-pause',
		btnPlay: 'a.play',
		btnPause: 'a.pause',
		pausedClass: 'paused',
		disabledClass: 'disabled',
		playClass: 'playing',
		activeClass: 'active',
		loadingClass: 'ajax-loading',
		loadedClass: 'slide-loaded',
		dynamicImageLoad: false,
		dynamicImageLoadAttr: 'alt',
		currentNum: false,
		allNum: false,
		startSlide: null,
		noCircle: false,
		pauseOnHover: true,
		autoRotation: false,
		autoHeight: false,
		onBeforeFade: false,
		onAfterFade: false,
		onChange: false,
		disableWhileAnimating: false,
		switchTime: 3000,
		duration: 650,
		event: 'click'
	}, _options);

	return this.each(function () {
		// gallery options
		if (this.slideshowInit) return; else this.slideshowInit;
		var _this = jQuery(this);
		var _slides = jQuery(_options.slideElements, _this);
		var _pagerLinks = jQuery(_options.pagerLinks, _this);
		var _btnPrev = jQuery(_options.btnPrev, _this);
		var _btnNext = jQuery(_options.btnNext, _this);
		var _btnPlayPause = jQuery(_options.btnPlayPause, _this);
		var _btnPause = jQuery(_options.btnPause, _this);
		var _btnPlay = jQuery(_options.btnPlay, _this);
		var _pauseOnHover = _options.pauseOnHover;
		var _dynamicImageLoad = _options.dynamicImageLoad;
		var _dynamicImageLoadAttr = _options.dynamicImageLoadAttr;
		var _autoRotation = _options.autoRotation;
		var _activeClass = _options.activeClass;
		var _loadingClass = _options.loadingClass;
		var _loadedClass = _options.loadedClass;
		var _disabledClass = _options.disabledClass;
		var _pausedClass = _options.pausedClass;
		var _playClass = _options.playClass;
		var _autoHeight = _options.autoHeight;
		var _duration = _options.duration;
		var _switchTime = _options.switchTime;
		var _controlEvent = _options.event;
		var _currentNum = (_options.currentNum ? jQuery(_options.currentNum, _this) : false);
		var _allNum = (_options.allNum ? jQuery(_options.allNum, _this) : false);
		var _startSlide = _options.startSlide;
		var _noCycle = _options.noCircle;
		var _onChange = _options.onChange;
		var _onBeforeFade = _options.onBeforeFade;
		var _onAfterFade = _options.onAfterFade;
		var _disableWhileAnimating = _options.disableWhileAnimating;

		// gallery init
		var _anim = false;
		var _hover = false;
		var _prevIndex = 0;
		var _currentIndex = 0;
		var _slideCount = _slides.length;
		var _timer;
		if (_slideCount < 2) return;

		_prevIndex = _slides.index(_slides.filter('.' + _activeClass));
		if (_prevIndex < 0) _prevIndex = _currentIndex = 0;
		else _currentIndex = _prevIndex;
		if (_startSlide != null) {
			if (_startSlide == 'random') _prevIndex = _currentIndex = Math.floor(Math.random() * _slideCount);
			else _prevIndex = _currentIndex = parseInt(_startSlide);
		}
		_slides.hide().eq(_currentIndex).show();
		if (_autoRotation) _this.removeClass(_pausedClass).addClass(_playClass);
		else _this.removeClass(_playClass).addClass(_pausedClass);

		// gallery control
		if (_btnPrev.length) {
			_btnPrev.bind(_controlEvent, function () {
				prevSlide();
				return false;
			});
		}
		if (_btnNext.length) {
			_btnNext.bind(_controlEvent, function () {
				nextSlide();
				return false;
			});
		}
		if (_pagerLinks.length) {
			_pagerLinks.each(function (_ind) {
				jQuery(this).bind(_controlEvent, function () {
					if (_currentIndex != _ind) {
						if (_disableWhileAnimating && _anim) return;
						_prevIndex = _currentIndex;
						_currentIndex = _ind;
						switchSlide();
					}
					return false;
				});
			});
		}

		// play pause section
		if (_btnPlayPause.length) {
			_btnPlayPause.bind(_controlEvent, function () {
				if (_this.hasClass(_pausedClass)) {
					_this.removeClass(_pausedClass).addClass(_playClass);
					_autoRotation = true;
					autoSlide();
				} else {
					_autoRotation = false;
					if (_timer) clearTimeout(_timer);
					_this.removeClass(_playClass).addClass(_pausedClass);
				}
				return false;
			});
		}
		if (_btnPlay.length) {
			_btnPlay.bind(_controlEvent, function () {
				_this.removeClass(_pausedClass).addClass(_playClass);
				_autoRotation = true;
				autoSlide();
				return false;
			});
		}
		if (_btnPause.length) {
			_btnPause.bind(_controlEvent, function () {
				_autoRotation = false;
				if (_timer) clearTimeout(_timer);
				_this.removeClass(_playClass).addClass(_pausedClass);
				return false;
			});
		}

		// dynamic image loading (swap from ATTRIBUTE)
		function loadSlide(slide) {
			if (!slide.hasClass(_loadingClass) && !slide.hasClass(_loadedClass)) {
				var images = slide.find(_dynamicImageLoad) // pass selector here
				var imagesCount = images.length;
				if (imagesCount) {
					slide.addClass(_loadingClass);
					images.each(function () {
						var img = this;
						img.onload = function () {
							img.loaded = true;
							img.onload = null;
							setTimeout(reCalc, _duration);
						}
						img.setAttribute('src', img.getAttribute(_dynamicImageLoadAttr));
						img.setAttribute(_dynamicImageLoadAttr, '');
					}).css({ opacity: 0 });

					function reCalc() {
						var cnt = 0;
						images.each(function () {
							if (this.loaded) cnt++;
						});
						if (cnt == imagesCount) {
							slide.removeClass(_loadingClass);
							images.animate({ opacity: 1 }, { duration: _duration, complete: function () {
								if (jQuery.browser.msie && jQuery.browser.version < 9) jQuery(this).css({ opacity: 'auto' })
							} 
							});
							slide.addClass(_loadedClass)
						}
					}
				}
			}
		}

		// gallery animation
		function prevSlide() {
			if (_disableWhileAnimating && _anim) return;
			_prevIndex = _currentIndex;
			if (_currentIndex > 0) _currentIndex--;
			else {
				if (_noCycle) return;
				else _currentIndex = _slideCount - 1;
			}
			switchSlide();
		}
		function nextSlide() {
			if (_disableWhileAnimating && _anim) return;
			_prevIndex = _currentIndex;
			if (_currentIndex < _slideCount - 1) _currentIndex++;
			else {
				if (_noCycle) return;
				else _currentIndex = 0;
			}
			switchSlide();
		}
		function refreshStatus() {
			if (_dynamicImageLoad) loadSlide(_slides.eq(_currentIndex));
			if (_pagerLinks.length) _pagerLinks.removeClass(_activeClass).eq(_currentIndex).addClass(_activeClass);
			if (_currentNum) _currentNum.text(_currentIndex + 1);
			if (_allNum) _allNum.text(_slideCount);
			_slides.eq(_prevIndex).removeClass(_activeClass);
			_slides.eq(_currentIndex).addClass(_activeClass);
			if (_noCycle) {
				if (_btnPrev.length) {
					if (_currentIndex == 0) _btnPrev.addClass(_disabledClass);
					else _btnPrev.removeClass(_disabledClass);
				}
				if (_btnNext.length) {
					if (_currentIndex == _slideCount - 1) _btnNext.addClass(_disabledClass);
					else _btnNext.removeClass(_disabledClass);
				}
			}
			if (typeof _onChange === 'function') {
				_onChange(_this, _slides, _prevIndex, _currentIndex);
			}
		}
		function switchSlide() {
			_anim = true;
			if (typeof _onBeforeFade === 'function') _onBeforeFade(_this, _slides, _prevIndex, _currentIndex);
			_slides.eq(_prevIndex).stop(false, true).fadeOut(_duration, function () {
				_anim = false;
			});
			_slides.eq(_currentIndex).stop(false, true).fadeIn(_duration, function () {
				if (typeof _onAfterFade === 'function') _onAfterFade(_this, _slides, _prevIndex, _currentIndex);
			});
			if (_autoHeight) _slides.eq(_currentIndex).parent().stop().animate({ height: _slides.eq(_currentIndex).outerHeight(true) }, { duration: _duration, queue: false });
			refreshStatus();
			autoSlide();
		}

		// autoslide function
		function autoSlide() {
			if (!_autoRotation || _hover) return;
			if (_timer) clearTimeout(_timer);
			_timer = setTimeout(nextSlide, _switchTime + _duration);
		}
		if (_pauseOnHover) {
			_this.hover(function () {
				_hover = true;
				if (_timer) clearTimeout(_timer);
			}, function () {
				_hover = false;
				autoSlide();
			});
		}
		refreshStatus();
		autoSlide();
	});
}

// popups function
function initPopups() {
	var _zIndex = 1000;
	var _fadeSpeed = 350;
	var _faderOpacity = 0.65;
	var _faderBackground = '#000';
	var _faderId = 'lightbox-overlay';
	var _closeLink = 'a.btn-close, a.close, a.cancel';
	var _submitLink = '.inp-img';
	var _fader;
	var _lightbox = null;
	var _ajaxClass = 'ajax-load';
	var _openers = jQuery('a.open-popup');
	var _page = jQuery(document.body);
	var _minWidth = parseInt(jQuery('body').css('minWidth'));
	var _scroll = false;

	// init popup fader
	_fader = jQuery('#' + _faderId);
	if (!_fader.length) {
		_fader = jQuery('<div />');
		_fader.attr('id', _faderId);
		jQuery('body').append(_fader);
	}
	_fader.css({
		opacity: _faderOpacity,
		backgroundColor: _faderBackground,
		position: 'absolute',
		overflow: 'hidden',
		display: 'none',
		top: 0,
		left: 0,
		zIndex: _zIndex
	});

	// IE6 iframe fix
	if (jQuery.browser.msie && jQuery.browser.version < 7) {
		if (!_fader.children().length) {
			var _frame = jQuery('<iframe src="javascript:false" frameborder="0" scrolling="no" />');
			_frame.css({
				opacity: 0,
				width: '100%',
				height: '100%'
			});
			var _frameOverlay = jQuery('<div>');
			_frameOverlay.css({
				top: 0,
				left: 0,
				zIndex: 1,
				opacity: 0,
				background: '#000',
				position: 'absolute',
				width: '100%',
				height: '100%'
			});
			_fader.empty().append(_frame).append(_frameOverlay);
		}
	}

	// lightbox positioning function
	function positionLightbox() {
		if (_lightbox) {
			var _windowHeight = jQuery(window).height();
			var _windowWidth = jQuery(window).width();
			var _lightboxWidth = _lightbox.outerWidth();
			var _lightboxHeight = _lightbox.outerHeight();
			var _pageHeight = _page.height();

			if (_windowWidth < _minWidth) _fader.css('width', _minWidth);
			else _fader.css('width', '100%');
			if (_windowHeight < _pageHeight) _fader.css('height', _pageHeight);
			else _fader.css('height', _windowHeight);

			_lightbox.css({
				position: 'absolute',
				zIndex: (_zIndex + 1)
			});

			// vertical position
			if (_windowHeight > _lightboxHeight) {
				if (_windowWidth < _minWidth || jQuery.browser.msie && jQuery.browser.version < 7) {
					_lightbox.css({
						position: 'absolute',
						top: parseInt(jQuery(window).scrollTop()) + (_windowHeight - _lightboxHeight) / 2
					});
				} else {
					_lightbox.css({
						position: 'fixed',
						top: (_windowHeight - _lightboxHeight) / 2
					});
				}
			} else {
				var _faderHeight = _fader.height();
				if (_faderHeight < _lightboxHeight) _fader.css('height', _lightboxHeight);
				if (!_scroll) {
					if (_faderHeight - _lightboxHeight > parseInt(jQuery(window).scrollTop())) {
						_faderHeight = parseInt(jQuery(window).scrollTop())
						_scroll = _faderHeight;
					} else {
						_scroll = _faderHeight - _lightboxHeight;
					}
				}
				_lightbox.css({
					position: 'absolute',
					top: _scroll
				});
			}

			// horizontal position
			if (_fader.width() > _lightbox.outerWidth()) _lightbox.css({ left: (_fader.width() - _lightbox.outerWidth()) / 2 });
			else _lightbox.css({ left: 0 });
		}
	}

	// show/hide lightbox
	function toggleState(_state) {
		if (!_lightbox) return;
		if (_state) {
			_fader.fadeIn(_fadeSpeed, function () {
				_lightbox.fadeIn(_fadeSpeed);
			});
			_scroll = false;
			positionLightbox();
		} else {
			_lightbox.fadeOut(_fadeSpeed, function () {
				_fader.fadeOut(_fadeSpeed);
				_scroll = false;
			});
		}
	}

	// popup actions
	function initPopupActions(_obj) {
		if (!_obj.get(0).jsInit) {
			_obj.get(0).jsInit = true;
			// close link
			_obj.find(_closeLink).click(function () {
				_lightbox = _obj;
				toggleState(false);
				return false;
			});
			_obj.find(_submitLink).click(function (e) {
				var form = _obj.find('#info-form');
				//alert(' i am here'+ form.length);
				e.preventDefault(); //no postback
				form.validate();

				if (form.valid()) {
					$.ajax({
						type: "POST",
						url: form.attr('action'),
						data: form.serialize(),
						error: function (xhr, status, error) {
							alert(xhr.responseText);
							//do something about the error
						},
						success: function (response) {
							//alert($('#mailform').html());
							if ($(response).html() != null) {
								$('#mailform').html($(response).html());
								//alert($('#mailform').html());
								$('#mailform').find(_closeLink).click(function () {
									_lightbox = _obj;
									toggleState(false);
									return false;
								});
							}
							else {
								$('.error span').html(response);
								$('.error').show();
							}
						}
					});
				}
			});
		}
	}

	// lightbox openers
	_openers.each(function () {
		var _opener = jQuery(this);
		var _target = _opener.attr('href');

		// popup load type - ajax or static
		if (_opener.hasClass(_ajaxClass)) {
			_opener.click(function () {
				// ajax load
				//if (jQuery('div[rel*="' + _target + '"]').length == 0) 
				//{ always load the form 
					jQuery.ajax({
						url: _target,
						type: "GET",
						dataType: "html",
						success: function (msg) {
							// append loaded popup
							_lightbox = jQuery(msg);
							_lightbox.find('img').load(positionLightbox)
							_lightbox.attr('rel', _target).hide().css({
								position: 'absolute',
								zIndex: (_zIndex + 1),
								top: -9999,
								left: -9999
							});
							jQuery('body').append(_lightbox);

							// init js for lightbox
							initPopupActions(_lightbox);

							// show lightbox
							toggleState(true);
						},
						error: function (msg) {
							alert('AJAX error!');
							return false;
						}
					});
				/*} else {
					_lightbox = jQuery('div[rel*="' + _target + '"]');
					toggleState(true);
				}*/
				return false;
			});
		} else {
			if (jQuery(_target).length) {
				// init actions for popup
				var _popup = jQuery(_target);
				initPopupActions(_popup);
				// open popup
				_opener.click(function () {
					if (_lightbox) {
						_lightbox.fadeOut(_fadeSpeed, function () {
							_lightbox = _popup.hide();
							toggleState(true);
						})
					} else {
						_lightbox = _popup.hide();
						toggleState(true);
					}
					return false;
				});
			}
		}
	});

	// event handlers
	jQuery(window).resize(positionLightbox);
	jQuery(window).scroll(positionLightbox);
	jQuery(document).keydown(function (e) {
		if (!e) evt = window.event;
		if (e.keyCode == 27) {
			toggleState(false);
		}
	})
	_fader.click(function () {
		if (!_fader.is(':animated')) toggleState(false);
		return false;
	})
}

// open-close plugin
jQuery.fn.OpenClose = function (_options) {
	// default options
	var _options = jQuery.extend({
		activeClass: 'active',
		opener: '.opener',
		slider: '.slide',
		closeAll: '.close-all',
		openAll: '.open-all',
		animSpeed: 400,
		animStart: false,
		animEnd: false,
		effect: 'fade',
		event: 'click'
	}, _options);

	return this.each(function () {
		// options
		var _holder = jQuery(this);
		var _slideSpeed = _options.animSpeed;
		var _activeClass = _options.activeClass;
		var _opener = jQuery(_options.opener, _holder);
		var _closeAll = jQuery(_options.closeAll, _holder);
		var _openAll = jQuery(_options.openAll, _holder);
		var _slider = jQuery(_options.slider, _holder);
		var _animStart = _options.animStart;
		var _animEnd = _options.animEnd;
		var _effect = _options.effect;
		var _event = _options.event;
		if (_slider.length) {
			_opener.bind(_event, function () {
				var currentSlide = $(this).parents('.slide-row').find('.block') && $(this).parents('.slide-block').find('.block');
				if (!currentSlide.is(':animated')) {
					if (typeof _animStart === 'function') _animStart();
					if (_holder.hasClass(_activeClass)) {
						currentSlide[_effect == 'fade' ? 'fadeOut' : 'slideUp'](_slideSpeed, function () {
							if (typeof _animEnd === 'function') _animEnd();
						});
						_holder.removeClass(_activeClass);
					} else {
						_holder.addClass(_activeClass);
						currentSlide[_effect == 'fade' ? 'fadeIn' : 'slideDown'](_slideSpeed, function () {
							if (typeof _animEnd === 'function') _animEnd();
						});
					}
				}
				return false;
			});
			_openAll.bind(_event, function () {
				_openAll.addClass('active');
				_closeAll.removeClass('active');
				if (!_slider.is(':animated')) {
					$('.slide-block').addClass(_activeClass);
					_slider[_effect == 'fade' ? 'fadeIn' : 'slideDown'](_slideSpeed, function () {
						if (typeof _animEnd === 'function') _animEnd();
					});
				}
				return false;
			});
			_closeAll.bind(_event, function () {
				_openAll.removeClass('active');
				_closeAll.addClass('active');
				if (!_slider.is(':animated')) {
					_slider[_effect == 'fade' ? 'fadeOut' : 'slideUp'](_slideSpeed, function () {
						if (typeof _animEnd === 'function') _animEnd();
					});
					$('.slide-block').removeClass(_activeClass);
				}
			});
			if (_holder.hasClass(_activeClass)) _slider.show();
			else _slider.hide();
		}
	});
}

// custom forms script
var _selectHeight = 26;
var all_selects = false;
var active_select = null;
var selectText = " ";

function initCustomForms() {
	getElements();
	separateElements();
	//replaceRadios();
	//replaceCheckboxes();    

	if(!$('.page-form').length)
		replaceSelects();

	// hide drop when scrolling or resizing window
	if (window.addEventListener) {
		window.addEventListener("scroll", hideActiveSelectDrop, false);
		window.addEventListener("resize", hideActiveSelectDrop, false);
	}
	else if (window.attachEvent) {
		window.attachEvent("onscroll", hideActiveSelectDrop);
		window.attachEvent("onresize", hideActiveSelectDrop);
	}
}

function refreshCustomForms() {
	// remove prevously created elements
	if (window.inputs) {
		for (var i = 0; i < checkboxes.length; i++) {
			if (checkboxes[i].checked) { checkboxes[i]._ca.className = "checkboxAreaChecked"; }
			else { checkboxes[i]._ca.className = "checkboxArea"; }
		}
		for (var i = 0; i < radios.length; i++) {
			if (radios[i].checked) { radios[i]._ra.className = "radioAreaChecked"; }
			else { radios[i]._ra.className = "radioArea"; }
		}
		for (var i = 0; i < selects.length; i++) {
			var newText = document.createElement('div');
			if (selects[i].options[selects[i].selectedIndex].title.indexOf('image') != -1) {
				newText.innerHTML = '<img src="' + selects[i].options[selects[i].selectedIndex].title + '" alt="" />';
				newText.innerHTML += '<span>' + selects[i].options[selects[i].selectedIndex].text + '</span>';
			} else {
				newText.innerHTML = selects[i].options[selects[i].selectedIndex].text;
			}
			document.getElementById("mySelectText" + i).innerHTML = newText.innerHTML;
		}
	}
}

// getting all the required elements
function getElements() {
	// remove prevously created elements
	if (window.inputs) {
		for (var i = 0; i < inputs.length; i++) {
			inputs[i].className = inputs[i].className.replace('outtaHere', '');
			if (inputs[i]._ca) inputs[i]._ca.parentNode.removeChild(inputs[i]._ca);
			else if (inputs[i]._ra) inputs[i]._ra.parentNode.removeChild(inputs[i]._ra);
		}
		for (i = 0; i < selects.length; i++) {
			selects[i].replaced = null;
			selects[i].className = selects[i].className.replace('outtaHere', '');
			selects[i]._optionsDiv._parent.parentNode.removeChild(selects[i]._optionsDiv._parent);
			selects[i]._optionsDiv.parentNode.removeChild(selects[i]._optionsDiv);
		}
	}

	// reset state
	inputs = new Array();
	selects = new Array();
	labels = new Array();
	radios = new Array();
	radioLabels = new Array();
	checkboxes = new Array();
	checkboxLabels = new Array();
	for (var nf = 0; nf < document.getElementsByTagName("form").length; nf++) {
		if (document.forms[nf].className.indexOf("default") < 0) {
			for (var nfi = 0; nfi < document.forms[nf].getElementsByTagName("input").length; nfi++) { inputs.push(document.forms[nf].getElementsByTagName("input")[nfi]); }
			for (var nfl = 0; nfl < document.forms[nf].getElementsByTagName("label").length; nfl++) { labels.push(document.forms[nf].getElementsByTagName("label")[nfl]); }
			for (var nfs = 0; nfs < document.forms[nf].getElementsByTagName("select").length; nfs++) { selects.push(document.forms[nf].getElementsByTagName("select")[nfs]); }
		}
	}
}

// separating all the elements in their respective arrays
function separateElements() {
	var r = 0; var c = 0; var t = 0; var rl = 0; var cl = 0; var tl = 0; var b = 0;
	for (var q = 0; q < inputs.length; q++) {
		if (inputs[q].type == "radio") {
			radios[r] = inputs[q]; ++r;
			for (var w = 0; w < labels.length; w++) {
				if ((inputs[q].id) && labels[w].htmlFor == inputs[q].id) {
					radioLabels[rl] = labels[w];
					++rl;
				}
			}
		}
		if (inputs[q].type == "checkbox") {
			checkboxes[c] = inputs[q]; ++c;
			for (var w = 0; w < labels.length; w++) {
				if ((inputs[q].id) && (labels[w].htmlFor == inputs[q].id)) {
					checkboxLabels[cl] = labels[w];
					++cl;
				}
			}
		}
	}
}

//replacing radio buttons
function replaceRadios() {
	for (var q = 0; q < radios.length; q++) {
		radios[q].className += " outtaHere";
		var radioArea = document.createElement("div");
		if (radios[q].checked) {
			radioArea.className = "radioAreaChecked";
		}
		else {
			radioArea.className = "radioArea";
		}
		radioArea.id = "myRadio" + q;
		radios[q].parentNode.insertBefore(radioArea, radios[q]);
		radios[q]._ra = radioArea;

		radioArea.onclick = new Function('rechangeRadios(' + q + ')');
		if (radioLabels[q]) {
			if (radios[q].checked) {
				radioLabels[q].className += "radioAreaCheckedLabel";
			}
			radioLabels[q].onclick = new Function('rechangeRadios(' + q + ')');
		}
	}
	return true;
}

//checking radios
function checkRadios(who) {
	var what = radios[who]._ra;
	for (var q = 0; q < radios.length; q++) {
		if ((radios[q]._ra.className == "radioAreaChecked") && (radios[q]._ra.nextSibling.name == radios[who].name)) {
			radios[q]._ra.className = "radioArea";
		}
	}
	what.className = "radioAreaChecked";
}

//changing radios
function changeRadios(who) {
	if (radios[who].checked) {
		for (var q = 0; q < radios.length; q++) {
			if (radios[q].name == radios[who].name) {
				radios[q].checked = false;
			}
			radios[who].checked = true;
			checkRadios(who);
		}
	}
}

//rechanging radios
function rechangeRadios(who) {
	if (!radios[who].checked) {
		for (var q = 0; q < radios.length; q++) {
			if (radios[q].name == radios[who].name) {
				radios[q].checked = false;
			}
			if (radioLabels[q]) {
				radioLabels[q].className = radioLabels[q].className.replace("radioAreaCheckedLabel", "");
			}
		}
		radios[who].checked = true;
		if (radioLabels[who] && radioLabels[who].className.indexOf("radioAreaCheckedLabel") < 0) {
			radioLabels[who].className += " radioAreaCheckedLabel";
		}
		checkRadios(who);

		if (window.$ && window.$.fn) {
			$(radios[who]).trigger('change');
		}
	}
}

//replacing checkboxes
function replaceCheckboxes() {
	for (var q = 0; q < checkboxes.length; q++) {
		checkboxes[q].className += " outtaHere";
		var checkboxArea = document.createElement("div");
		if (checkboxes[q].checked) {
			checkboxArea.className = "checkboxAreaChecked";
			if (checkboxLabels[q]) {
				checkboxLabels[q].className += " checkboxAreaCheckedLabel"
			}
		}
		else {
			checkboxArea.className = "checkboxArea";
		}
		checkboxArea.id = "myCheckbox" + q;
		checkboxes[q].parentNode.insertBefore(checkboxArea, checkboxes[q]);
		checkboxes[q]._ca = checkboxArea;
		checkboxArea.onclick = new Function('rechangeCheckboxes(' + q + ')');
		if (checkboxLabels[q]) {
			checkboxLabels[q].onclick = new Function('changeCheckboxes(' + q + ')');
		}
		checkboxes[q].onkeydown = checkEvent;
	}
	return true;
}

//checking checkboxes
function checkCheckboxes(who, action) {
	var what = checkboxes[who]._ca;
	if (action == true) {
		what.className = "checkboxAreaChecked";
		what.checked = true;
	}
	if (action == false) {
		what.className = "checkboxArea";
		what.checked = false;
	}
	if (checkboxLabels[who]) {
		if (checkboxes[who].checked) {
			if (checkboxLabels[who].className.indexOf("checkboxAreaCheckedLabel") < 0) {
				checkboxLabels[who].className += " checkboxAreaCheckedLabel";
			}
		} else {
			checkboxLabels[who].className = checkboxLabels[who].className.replace("checkboxAreaCheckedLabel", "");
		}
	}

}

//changing checkboxes
function changeCheckboxes(who) {
	setTimeout(function () {
		if (checkboxes[who].checked) {
			checkCheckboxes(who, true);
		} else {
			checkCheckboxes(who, false);
		}
	}, 10);
}

// rechanging checkboxes
function rechangeCheckboxes(who) {
	var tester = false;
	if (checkboxes[who].checked == true) {
		tester = false;
	}
	else {
		tester = true;
	}
	checkboxes[who].checked = tester;
	checkCheckboxes(who, tester);
	if (window.$ && window.$.fn) {
		$(checkboxes[who]).trigger('change');
	}
}

// check event
function checkEvent(e) {
	if (!e) var e = window.event;
	if (e.keyCode == 32) { for (var q = 0; q < checkboxes.length; q++) { if (this == checkboxes[q]) { changeCheckboxes(q); } } } //check if space is pressed
}

// replace selects
function replaceSelects() {
	for (var q = 0; q < selects.length; q++) {
		if (!selects[q].replaced && selects[q].offsetWidth) {
			selects[q]._number = q;
			//create and build div structure
			var selectArea = document.createElement("div");
			var left = document.createElement("span");
			left.className = "left";
			selectArea.appendChild(left);

			var disabled = document.createElement("span");
			disabled.className = "disabled";
			selectArea.appendChild(disabled);

			selects[q]._disabled = disabled;
			var center = document.createElement("span");
			var button = document.createElement("a");
			var text = document.createTextNode(selectText);
			center.id = "mySelectText" + q;

			var stWidth = selects[q].offsetWidth;
			selectArea.style.width = stWidth + "px";
			if (selects[q].parentNode.className.indexOf("type2") != -1) {
				button.href = "javascript:showOptions(" + q + ",true)";
			} else {
				button.href = "javascript:showOptions(" + q + ",false)";
			}
			button.className = "selectButton";
			selectArea.className = "selectArea";
			selectArea.className += " " + selects[q].className;
			selectArea.id = "sarea" + q;
			center.className = "center";
			center.appendChild(text);
			selectArea.appendChild(center);
			selectArea.appendChild(button);

			//insert select div
			selects[q].parentNode.insertBefore(selectArea, selects[q]);
			//build & place options div

			var optionsDiv = document.createElement("div");
			var optionsList = document.createElement("ul");
			var optionsListHolder = document.createElement("div");

			optionsListHolder.className = "select-center";
			optionsListHolder.innerHTML = "<div class='select-center-right'></div>";
			optionsDiv.innerHTML += "<div class='select-top'><div class='select-top-left'></div><div class='select-top-right'></div></div>";

			optionsListHolder.appendChild(optionsList);
			optionsDiv.appendChild(optionsListHolder);

			selects[q]._optionsDiv = optionsDiv;
			selects[q]._options = optionsList;

			optionsDiv.style.width = stWidth + "px";
			optionsDiv._parent = selectArea;

			optionsDiv.className = "optionsDivInvisible";
			optionsDiv.id = "optionsDiv" + q;

			if (selects[q].className.length) {
				optionsDiv.className += ' drop-' + selects[q].className;
			}

			populateSelectOptions(selects[q]);
			optionsDiv.innerHTML += "<div class='select-bottom'><div class='select-bottom-left'></div><div class='select-bottom-right'></div></div>";
			document.body.appendChild(optionsDiv);
			selects[q].replaced = true;

			//hide the select field
			if (selects[q].className.indexOf('default') != -1) {
				selectArea.style.display = 'none';
			} else {
				selects[q].className += " outtaHere";
			}
		}
		all_selects = true;
	}
}

//collecting select options
function populateSelectOptions(me) {
	me._options.innerHTML = "";
	for (var w = 0; w < me.options.length; w++) {
		var optionHolder = document.createElement('li');
		var optionLink = document.createElement('a');
		var optionTxt;
		if (me.options[w].title.indexOf('image') != -1) {
			optionTxt = document.createElement('img');
			optionSpan = document.createElement('span');
			optionTxt.src = me.options[w].title;
			optionSpan = document.createTextNode(me.options[w].text);
		} else {
			optionTxt = document.createTextNode(me.options[w].text);
		}

		// hidden default option
		if (me.options[w].className.indexOf('default') != -1) {
			optionHolder.style.display = 'none'
		}

		optionLink.href = "javascript:showOptions(" + me._number + "); selectMe('" + me.id + "'," + w + "," + me._number + ");";
		if (me.options[w].title.indexOf('image') != -1) {
			optionLink.appendChild(optionTxt);
			optionLink.appendChild(optionSpan);
		} else {
			optionLink.appendChild(optionTxt);
		}
		optionHolder.appendChild(optionLink);
		me._options.appendChild(optionHolder);
		//check for pre-selected items
		if (me.options[w].selected) {
			selectMe(me.id, w, me._number, true);
		}
	}
	if (me.disabled) {
		me._disabled.style.display = "block";
	} else {
		me._disabled.style.display = "none";
	}
}

//selecting me
function selectMe(selectFieldId, linkNo, selectNo, quiet) {
	selectField = selects[selectNo];
	for (var k = 0; k < selectField.options.length; k++) {
		if (k == linkNo) {
			selectField.options[k].selected = true;
		}
		else {
			selectField.options[k].selected = false;
		}
	}

	//show selected option
	textVar = document.getElementById("mySelectText" + selectNo);
	var newText;
	var optionSpan;
	if (selectField.options[linkNo].title.indexOf('image') != -1) {
		newText = document.createElement('img');
		newText.src = selectField.options[linkNo].title;
		optionSpan = document.createElement('span');
		optionSpan = document.createTextNode(selectField.options[linkNo].text);
	} else {
		newText = document.createTextNode(selectField.options[linkNo].text);
	}
	if (selectField.options[linkNo].title.indexOf('image') != -1) {
		if (textVar.childNodes.length > 1) textVar.removeChild(textVar.childNodes[0]);
		textVar.replaceChild(newText, textVar.childNodes[0]);
		textVar.appendChild(optionSpan);
	} else {
		if (textVar.childNodes.length > 1) textVar.removeChild(textVar.childNodes[0]);
		textVar.replaceChild(newText, textVar.childNodes[0]);
	}
	if (!quiet && all_selects) {
		if (typeof selectField.onchange === 'function') {
			selectField.onchange();
		}
		if (window.$ && window.$.fn) {
			$(selectField).trigger('change');
		}
	}
}

//showing options
function showOptions(g) {
	_elem = document.getElementById("optionsDiv" + g);
	var divArea = document.getElementById("sarea" + g);
	if (active_select && active_select != _elem) {
		active_select.className = active_select.className.replace('optionsDivVisible', ' optionsDivInvisible');
		active_select.style.height = "auto";
	}
	if (_elem.className.indexOf("optionsDivInvisible") != -1) {
		_elem.style.left = "-9999px";
		_elem.style.top = findPosY(divArea) + _selectHeight + 'px';
		_elem.className = _elem.className.replace('optionsDivInvisible', '');
		_elem.className += " optionsDivVisible";
		/*if (_elem.offsetHeight > 200)
		{
		_elem.style.height = "200px";
		}*/
		_elem.style.left = findPosX(divArea) + 'px';

		active_select = _elem;
		if (_elem._parent.className.indexOf('selectAreaActive') < 0) {
			_elem._parent.className += ' selectAreaActive';
		}

		if (document.documentElement) {
			document.documentElement.onclick = hideSelectOptions;
		} else {
			window.onclick = hideSelectOptions;
		}
	}
	else if (_elem.className.indexOf("optionsDivVisible") != -1) {
		hideActiveSelectDrop();
	}

	// for mouseout
	/*_elem.timer = false;
	_elem.onmouseover = function() {
	if (this.timer) clearTimeout(this.timer);
	}
	_elem.onmouseout = function() {
	var _this = this;
	this.timer = setTimeout(function(){
	_this.style.height = "auto";
	_this.className = _this.className.replace('optionsDivVisible','');
	if (_elem.className.indexOf('optionsDivInvisible') == -1)
	_this.className += " optionsDivInvisible";
	},200);
	}*/
}

function hideActiveSelectDrop() {
	if (active_select) {
		active_select.style.height = "auto";
		active_select.className = active_select.className.replace('optionsDivVisible', '');
		active_select.className = active_select.className.replace('optionsDivInvisible', '');
		active_select._parent.className = active_select._parent.className.replace('selectAreaActive', '')
		active_select.className += " optionsDivInvisible";
		active_select = false;
	}
}

function hideSelectOptions(e) {
	if (active_select) {
		if (!e) e = window.event;
		var _target = (e.target || e.srcElement);
		if (!isElementBefore(_target, 'selectArea') && !isElementBefore(_target, 'optionsDiv')) {
			hideActiveSelectDrop();
			if (document.documentElement) {
				document.documentElement.onclick = function () { };
			}
			else {
				window.onclick = null;
			}
		}
	}
}

function isElementBefore(_el, _class) {
	var _parent = _el;
	do {
		_parent = _parent.parentNode;
	}
	while (_parent && _parent.className != null && _parent.className.indexOf(_class) == -1)
	return _parent.className && _parent.className.indexOf(_class) != -1;
}

function findPosY(obj) {
	if (obj.getBoundingClientRect) {
		var scrollTop = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
		var clientTop = document.documentElement.clientTop || document.body.clientTop || 0;
		return Math.round(obj.getBoundingClientRect().top + scrollTop - clientTop);
	} else {
		var posTop = 0;
		while (obj.offsetParent) { posTop += obj.offsetTop; obj = obj.offsetParent; }
		return posTop;
	}
}

function findPosX(obj) {
	if (obj.getBoundingClientRect) {
		var scrollLeft = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft;
		var clientLeft = document.documentElement.clientLeft || document.body.clientLeft || 0;
		return Math.round(obj.getBoundingClientRect().left + scrollLeft - clientLeft);
	} else {
		var posLeft = 0;
		while (obj.offsetParent) { posLeft += obj.offsetLeft; obj = obj.offsetParent; }
		return posLeft;
	}
}



/*!
* jQuery UI 1.8.16
*
* Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI
*/
; (function (c, j) {
	function k(a, b) { var d = a.nodeName.toLowerCase(); if ("area" === d) { b = a.parentNode; d = b.name; if (!a.href || !d || b.nodeName.toLowerCase() !== "map") return false; a = c("img[usemap=#" + d + "]")[0]; return !!a && l(a) } return (/input|select|textarea|button|object/.test(d) ? !a.disabled : "a" == d ? a.href || b : b) && l(a) } function l(a) { return !c(a).parents().andSelf().filter(function () { return c.curCSS(this, "visibility") === "hidden" || c.expr.filters.hidden(this) }).length } c.ui = c.ui || {}; if (!c.ui.version) {
		c.extend(c.ui, { version: "1.8.16",
			keyCode: { ALT: 18, BACKSPACE: 8, CAPS_LOCK: 20, COMMA: 188, COMMAND: 91, COMMAND_LEFT: 91, COMMAND_RIGHT: 93, CONTROL: 17, DELETE: 46, DOWN: 40, END: 35, ENTER: 13, ESCAPE: 27, HOME: 36, INSERT: 45, LEFT: 37, MENU: 93, 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, WINDOWS: 91}
		}); c.fn.extend({ propAttr: c.fn.prop || c.fn.attr, _focus: c.fn.focus, focus: function (a, b) {
			return typeof a === "number" ? this.each(function () {
				var d =
this; setTimeout(function () { c(d).focus(); b && b.call(d) }, a)
			}) : this._focus.apply(this, arguments)
		}, scrollParent: function () {
			var a; a = c.browser.msie && /(static|relative)/.test(this.css("position")) || /absolute/.test(this.css("position")) ? 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) : 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")) || !a.length ? c(document) : a
		}, zIndex: function (a) { if (a !== j) return this.css("zIndex", a); if (this.length) { a = c(this[0]); for (var b; a.length && a[0] !== document; ) { b = a.css("position"); if (b === "absolute" || b === "relative" || b === "fixed") { b = parseInt(a.css("zIndex"), 10); if (!isNaN(b) && b !== 0) return b } a = a.parent() } } return 0 }, disableSelection: function () {
			return this.bind((c.support.selectstart ? "selectstart" :
"mousedown") + ".ui-disableSelection", function (a) { a.preventDefault() })
		}, enableSelection: function () { return this.unbind(".ui-disableSelection") } 
		}); c.each(["Width", "Height"], function (a, b) {
			function d(f, g, m, n) { c.each(e, function () { g -= parseFloat(c.curCSS(f, "padding" + this, true)) || 0; if (m) g -= parseFloat(c.curCSS(f, "border" + this + "Width", true)) || 0; if (n) g -= parseFloat(c.curCSS(f, "margin" + this, true)) || 0 }); return g } var e = b === "Width" ? ["Left", "Right"] : ["Top", "Bottom"], h = b.toLowerCase(), i = { innerWidth: c.fn.innerWidth, innerHeight: c.fn.innerHeight,
				outerWidth: c.fn.outerWidth, outerHeight: c.fn.outerHeight
			}; c.fn["inner" + b] = function (f) { if (f === j) return i["inner" + b].call(this); return this.each(function () { c(this).css(h, d(this, f) + "px") }) }; c.fn["outer" + b] = function (f, g) { if (typeof f !== "number") return i["outer" + b].call(this, f); return this.each(function () { c(this).css(h, d(this, f, true, g) + "px") }) } 
		}); c.extend(c.expr[":"], { data: function (a, b, d) { return !!c.data(a, d[3]) }, focusable: function (a) { return k(a, !isNaN(c.attr(a, "tabindex"))) }, tabbable: function (a) {
			var b = c.attr(a,
"tabindex"), d = isNaN(b); return (d || b >= 0) && k(a, !d)
		} 
		}); c(function () { var a = document.body, b = a.appendChild(b = document.createElement("div")); c.extend(b.style, { minHeight: "100px", height: "auto", padding: 0, borderWidth: 0 }); c.support.minHeight = b.offsetHeight === 100; c.support.selectstart = "onselectstart" in b; a.removeChild(b).style.display = "none" }); c.extend(c.ui, { plugin: { add: function (a, b, d) { a = c.ui[a].prototype; for (var e in d) { a.plugins[e] = a.plugins[e] || []; a.plugins[e].push([b, d[e]]) } }, call: function (a, b, d) {
			if ((b = a.plugins[b]) &&
a.element[0].parentNode) for (var e = 0; e < b.length; e++) a.options[b[e][0]] && b[e][1].apply(a.element, d)
		} 
		}, contains: function (a, b) { return document.compareDocumentPosition ? a.compareDocumentPosition(b) & 16 : a !== b && a.contains(b) }, hasScroll: function (a, b) { if (c(a).css("overflow") === "hidden") return false; b = b && b === "left" ? "scrollLeft" : "scrollTop"; var d = false; if (a[b] > 0) return true; a[b] = 1; d = a[b] > 0; a[b] = 0; return d }, isOverAxis: function (a, b, d) { return a > b && a < b + d }, isOver: function (a, b, d, e, h, i) {
			return c.ui.isOverAxis(a, d, h) &&
c.ui.isOverAxis(b, e, i)
		} 
		})
	} 
})(jQuery);
; /*
 * jQuery UI Datepicker 1.8.16
 *
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * http://docs.jquery.com/UI/Datepicker
 *
 * Depends:
 *	jquery.ui.core.js
 */
(function (d, C) {
	function M() {
		this.debug = false; this._curInst = null; this._keyEvent = false; this._disabledInputs = []; this._inDialog = this._datepickerShowing = 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"], weekHeader: "Wk", dateFormat: "mm/dd/yy", firstDay: 0, isRTL: false, showMonthAfterYear: false, yearSuffix: ""
}; this._defaults = { showOn: "focus", showAnim: "fadeIn", showOptions: {}, defaultDate: null, appendText: "", buttonText: "...", buttonImage: "", buttonImageOnly: false, hideIfNoPrevNext: false, navigationAsDateFormat: false, gotoCurrent: false, changeMonth: false, changeYear: false, yearRange: "c-10:c+10", showOtherMonths: false, selectOtherMonths: false, showWeek: false, calculateWeek: this.iso8601Week, shortYearCutoff: "+10",
	minDate: null, maxDate: null, duration: "fast", beforeShowDay: null, beforeShow: null, onSelect: null, onChangeMonthYear: null, onClose: null, numberOfMonths: 1, showCurrentAtPos: 0, stepMonths: 1, stepBigMonths: 12, altField: "", altFormat: "", constrainInput: true, showButtonPanel: false, autoSize: false, disabled: false
}; d.extend(this._defaults, this.regional[""]); this.dpDiv = N(d('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))
	} function N(a) {
		return a.bind("mouseout",
function (b) { b = d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a"); b.length && b.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover") }).bind("mouseover", function (b) {
	b = d(b.target).closest("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a"); if (!(d.datepicker._isDisabledDatepicker(J.inline ? a.parent()[0] : J.input[0]) || !b.length)) {
		b.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");
		b.addClass("ui-state-hover"); b.hasClass("ui-datepicker-prev") && b.addClass("ui-datepicker-prev-hover"); b.hasClass("ui-datepicker-next") && b.addClass("ui-datepicker-next-hover")
	} 
})
	} function H(a, b) { d.extend(a, b); for (var c in b) if (b[c] == null || b[c] == C) a[c] = b[c]; return a } d.extend(d.ui, { datepicker: { version: "1.8.16"} }); var B = (new Date).getTime(), J; d.extend(M.prototype, { markerClassName: "hasDatepicker", maxRows: 4, log: function () { this.debug && console.log.apply("", arguments) }, _widgetDatepicker: function () { return this.dpDiv },
		setDefaults: function (a) { H(this._defaults, a || {}); return this }, _attachDatepicker: function (a, b) { var c = null; for (var e in this._defaults) { var f = a.getAttribute("date:" + e); if (f) { c = c || {}; try { c[e] = eval(f) } catch (h) { c[e] = f } } } e = a.nodeName.toLowerCase(); f = e == "div" || e == "span"; if (!a.id) { this.uuid += 1; a.id = "dp" + this.uuid } var i = this._newInst(d(a), f); i.settings = d.extend({}, b || {}, c || {}); if (e == "input") this._connectDatepicker(a, i); else f && this._inlineDatepicker(a, i) }, _newInst: function (a, b) {
			return { id: a[0].id.replace(/([^A-Za-z0-9_-])/g,
"\\\\$1"), input: a, selectedDay: 0, selectedMonth: 0, selectedYear: 0, drawMonth: 0, drawYear: 0, inline: b, dpDiv: !b ? this.dpDiv : N(d('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))
			}
		}, _connectDatepicker: function (a, b) {
			var c = d(a); b.append = d([]); b.trigger = d([]); if (!c.hasClass(this.markerClassName)) {
				this._attachments(c, b); c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",
function (e, f, h) { b.settings[f] = h }).bind("getData.datepicker", function (e, f) { return this._get(b, f) }); this._autoSize(b); d.data(a, "datepicker", b); b.settings.disabled && this._disableDatepicker(a)
			} 
		}, _attachments: function (a, b) {
			var c = this._get(b, "appendText"), e = this._get(b, "isRTL"); b.append && b.append.remove(); if (c) { b.append = d('<span class="' + this._appendClass + '">' + c + "</span>"); a[e ? "before" : "after"](b.append) } a.unbind("focus", this._showDatepicker); b.trigger && b.trigger.remove(); c = this._get(b, "showOn"); if (c ==
"focus" || c == "both") a.focus(this._showDatepicker); if (c == "button" || c == "both") {
				c = this._get(b, "buttonText"); var f = this._get(b, "buttonImage"); b.trigger = d(this._get(b, "buttonImageOnly") ? d("<img/>").addClass(this._triggerClass).attr({ src: f, alt: c, title: c }) : d('<button type="button"></button>').addClass(this._triggerClass).html(f == "" ? c : d("<img/>").attr({ src: f, alt: c, title: c }))); a[e ? "before" : "after"](b.trigger); b.trigger.click(function () {
					d.datepicker._datepickerShowing && d.datepicker._lastInput == a[0] ? d.datepicker._hideDatepicker() :
d.datepicker._showDatepicker(a[0]); return false
				})
			} 
		}, _autoSize: function (a) { if (this._get(a, "autoSize") && !a.inline) { var b = new Date(2009, 11, 20), c = this._get(a, "dateFormat"); if (c.match(/[DM]/)) { var e = function (f) { for (var h = 0, i = 0, g = 0; g < f.length; g++) if (f[g].length > h) { h = f[g].length; i = g } return i }; b.setMonth(e(this._get(a, c.match(/MM/) ? "monthNames" : "monthNamesShort"))); b.setDate(e(this._get(a, c.match(/DD/) ? "dayNames" : "dayNamesShort")) + 20 - b.getDay()) } a.input.attr("size", this._formatDate(a, b).length) } }, _inlineDatepicker: function (a,
b) { var c = d(a); if (!c.hasClass(this.markerClassName)) { c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker", function (e, f, h) { b.settings[f] = h }).bind("getData.datepicker", function (e, f) { return this._get(b, f) }); d.data(a, "datepicker", b); this._setDate(b, this._getDefaultDate(b), true); this._updateDatepicker(b); this._updateAlternate(b); b.settings.disabled && this._disableDatepicker(a); b.dpDiv.css("display", "block") } }, _dialogDatepicker: function (a, b, c, e, f) {
	a = this._dialogInst; if (!a) {
		this.uuid +=
1; this._dialogInput = d('<input type="text" id="' + ("dp" + this.uuid) + '" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>'); this._dialogInput.keydown(this._doKeyDown); d("body").append(this._dialogInput); a = this._dialogInst = this._newInst(this._dialogInput, false); a.settings = {}; d.data(this._dialogInput[0], "datepicker", a)
	} H(a.settings, e || {}); b = b && b.constructor == Date ? this._formatDate(a, b) : b; this._dialogInput.val(b); this._pos = f ? f.length ? f : [f.pageX, f.pageY] : null; if (!this._pos) this._pos = [document.documentElement.clientWidth /
2 - 100 + (document.documentElement.scrollLeft || document.body.scrollLeft), document.documentElement.clientHeight / 2 - 150 + (document.documentElement.scrollTop || document.body.scrollTop)]; this._dialogInput.css("left", this._pos[0] + 20 + "px").css("top", this._pos[1] + "px"); a.settings.onSelect = c; this._inDialog = true; this.dpDiv.addClass(this._dialogClass); this._showDatepicker(this._dialogInput[0]); d.blockUI && d.blockUI(this.dpDiv); d.data(this._dialogInput[0], "datepicker", a); return this
}, _destroyDatepicker: function (a) {
	var b =
d(a), c = d.data(a, "datepicker"); if (b.hasClass(this.markerClassName)) { var e = a.nodeName.toLowerCase(); d.removeData(a, "datepicker"); if (e == "input") { c.append.remove(); c.trigger.remove(); b.removeClass(this.markerClassName).unbind("focus", this._showDatepicker).unbind("keydown", this._doKeyDown).unbind("keypress", this._doKeyPress).unbind("keyup", this._doKeyUp) } else if (e == "div" || e == "span") b.removeClass(this.markerClassName).empty() } 
}, _enableDatepicker: function (a) {
	var b = d(a), c = d.data(a, "datepicker"); if (b.hasClass(this.markerClassName)) {
		var e =
a.nodeName.toLowerCase(); if (e == "input") { a.disabled = false; c.trigger.filter("button").each(function () { this.disabled = false }).end().filter("img").css({ opacity: "1.0", cursor: "" }) } else if (e == "div" || e == "span") { b = b.children("." + this._inlineClass); b.children().removeClass("ui-state-disabled"); b.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled") } this._disabledInputs = d.map(this._disabledInputs, function (f) { return f == a ? null : f })
	} 
}, _disableDatepicker: function (a) {
	var b = d(a), c = d.data(a,
"datepicker"); if (b.hasClass(this.markerClassName)) {
		var e = a.nodeName.toLowerCase(); if (e == "input") { a.disabled = true; c.trigger.filter("button").each(function () { this.disabled = true }).end().filter("img").css({ opacity: "0.5", cursor: "default" }) } else if (e == "div" || e == "span") { b = b.children("." + this._inlineClass); b.children().addClass("ui-state-disabled"); b.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled", "disabled") } this._disabledInputs = d.map(this._disabledInputs, function (f) {
			return f ==
a ? null : f
		}); this._disabledInputs[this._disabledInputs.length] = a
	} 
}, _isDisabledDatepicker: function (a) { if (!a) return false; for (var b = 0; b < this._disabledInputs.length; b++) if (this._disabledInputs[b] == a) return true; return false }, _getInst: function (a) { try { return d.data(a, "datepicker") } catch (b) { throw "Missing instance data for this datepicker"; } }, _optionDatepicker: function (a, b, c) {
	var e = this._getInst(a); if (arguments.length == 2 && typeof b == "string") return b == "defaults" ? d.extend({}, d.datepicker._defaults) : e ? b == "all" ?
d.extend({}, e.settings) : this._get(e, b) : null; var f = b || {}; if (typeof b == "string") { f = {}; f[b] = c } if (e) {
		this._curInst == e && this._hideDatepicker(); var h = this._getDateDatepicker(a, true), i = this._getMinMaxDate(e, "min"), g = this._getMinMaxDate(e, "max"); H(e.settings, f); if (i !== null && f.dateFormat !== C && f.minDate === C) e.settings.minDate = this._formatDate(e, i); if (g !== null && f.dateFormat !== C && f.maxDate === C) e.settings.maxDate = this._formatDate(e, g); this._attachments(d(a), e); this._autoSize(e); this._setDate(e, h); this._updateAlternate(e);
		this._updateDatepicker(e)
	} 
}, _changeDatepicker: function (a, b, c) { this._optionDatepicker(a, b, c) }, _refreshDatepicker: function (a) { (a = this._getInst(a)) && this._updateDatepicker(a) }, _setDateDatepicker: function (a, b) { if (a = this._getInst(a)) { this._setDate(a, b); this._updateDatepicker(a); this._updateAlternate(a) } }, _getDateDatepicker: function (a, b) { (a = this._getInst(a)) && !a.inline && this._setDateFromField(a, b); return a ? this._getDate(a) : null }, _doKeyDown: function (a) {
	var b = d.datepicker._getInst(a.target), c = true, e = b.dpDiv.is(".ui-datepicker-rtl");
	b._keyEvent = true; if (d.datepicker._datepickerShowing) switch (a.keyCode) {
		case 9: d.datepicker._hideDatepicker(); c = false; break; case 13: c = d("td." + d.datepicker._dayOverClass + ":not(." + d.datepicker._currentClass + ")", b.dpDiv); c[0] && d.datepicker._selectDay(a.target, b.selectedMonth, b.selectedYear, c[0]); if (a = d.datepicker._get(b, "onSelect")) { c = d.datepicker._formatDate(b); a.apply(b.input ? b.input[0] : null, [c, b]) } else d.datepicker._hideDatepicker(); return false; case 27: d.datepicker._hideDatepicker(); break; case 33: d.datepicker._adjustDate(a.target,
a.ctrlKey ? -d.datepicker._get(b, "stepBigMonths") : -d.datepicker._get(b, "stepMonths"), "M"); break; case 34: d.datepicker._adjustDate(a.target, a.ctrlKey ? +d.datepicker._get(b, "stepBigMonths") : +d.datepicker._get(b, "stepMonths"), "M"); break; case 35: if (a.ctrlKey || a.metaKey) d.datepicker._clearDate(a.target); c = a.ctrlKey || a.metaKey; break; case 36: if (a.ctrlKey || a.metaKey) d.datepicker._gotoToday(a.target); c = a.ctrlKey || a.metaKey; break; case 37: if (a.ctrlKey || a.metaKey) d.datepicker._adjustDate(a.target, e ? +1 : -1, "D"); c =
a.ctrlKey || a.metaKey; if (a.originalEvent.altKey) d.datepicker._adjustDate(a.target, a.ctrlKey ? -d.datepicker._get(b, "stepBigMonths") : -d.datepicker._get(b, "stepMonths"), "M"); break; case 38: if (a.ctrlKey || a.metaKey) d.datepicker._adjustDate(a.target, -7, "D"); c = a.ctrlKey || a.metaKey; break; case 39: if (a.ctrlKey || a.metaKey) d.datepicker._adjustDate(a.target, e ? -1 : +1, "D"); c = a.ctrlKey || a.metaKey; if (a.originalEvent.altKey) d.datepicker._adjustDate(a.target, a.ctrlKey ? +d.datepicker._get(b, "stepBigMonths") : +d.datepicker._get(b,
"stepMonths"), "M"); break; case 40: if (a.ctrlKey || a.metaKey) d.datepicker._adjustDate(a.target, +7, "D"); c = a.ctrlKey || a.metaKey; break; default: c = false
	} else if (a.keyCode == 36 && a.ctrlKey) d.datepicker._showDatepicker(this); else c = false; if (c) { a.preventDefault(); a.stopPropagation() } 
}, _doKeyPress: function (a) {
	var b = d.datepicker._getInst(a.target); if (d.datepicker._get(b, "constrainInput")) {
		b = d.datepicker._possibleChars(d.datepicker._get(b, "dateFormat")); var c = String.fromCharCode(a.charCode == C ? a.keyCode : a.charCode);
		return a.ctrlKey || a.metaKey || c < " " || !b || b.indexOf(c) > -1
	} 
}, _doKeyUp: function (a) { a = d.datepicker._getInst(a.target); if (a.input.val() != a.lastVal) try { if (d.datepicker.parseDate(d.datepicker._get(a, "dateFormat"), a.input ? a.input.val() : null, d.datepicker._getFormatConfig(a))) { d.datepicker._setDateFromField(a); d.datepicker._updateAlternate(a); d.datepicker._updateDatepicker(a) } } catch (b) { d.datepicker.log(b) } return true }, _showDatepicker: function (a) {
	a = a.target || a; if (a.nodeName.toLowerCase() != "input") a = d("input",
a.parentNode)[0]; if (!(d.datepicker._isDisabledDatepicker(a) || d.datepicker._lastInput == a)) {
		var b = d.datepicker._getInst(a); if (d.datepicker._curInst && d.datepicker._curInst != b) { d.datepicker._datepickerShowing && d.datepicker._triggerOnClose(d.datepicker._curInst); d.datepicker._curInst.dpDiv.stop(true, true) } var c = d.datepicker._get(b, "beforeShow"); c = c ? c.apply(a, [a, b]) : {}; if (c !== false) {
			H(b.settings, c); b.lastVal = null; d.datepicker._lastInput = a; d.datepicker._setDateFromField(b); if (d.datepicker._inDialog) a.value =
""; if (!d.datepicker._pos) { d.datepicker._pos = d.datepicker._findPos(a); d.datepicker._pos[1] += a.offsetHeight } var e = false; d(a).parents().each(function () { e |= d(this).css("position") == "fixed"; return !e }); if (e && d.browser.opera) { d.datepicker._pos[0] -= document.documentElement.scrollLeft; d.datepicker._pos[1] -= document.documentElement.scrollTop } c = { left: d.datepicker._pos[0], top: d.datepicker._pos[1] }; d.datepicker._pos = null; b.dpDiv.empty(); b.dpDiv.css({ position: "absolute", display: "block", top: "-1000px" }); d.datepicker._updateDatepicker(b);
			c = d.datepicker._checkOffset(b, c, e); b.dpDiv.css({ position: d.datepicker._inDialog && d.blockUI ? "static" : e ? "fixed" : "absolute", display: "none", left: c.left + "px", top: c.top + "px" }); if (!b.inline) {
				c = d.datepicker._get(b, "showAnim"); var f = d.datepicker._get(b, "duration"), h = function () { var i = b.dpDiv.find("iframe.ui-datepicker-cover"); if (i.length) { var g = d.datepicker._getBorders(b.dpDiv); i.css({ left: -g[0], top: -g[1], width: b.dpDiv.outerWidth(), height: b.dpDiv.outerHeight() }) } }; b.dpDiv.zIndex(d(a).zIndex() + 1); d.datepicker._datepickerShowing =
true; d.effects && d.effects[c] ? b.dpDiv.show(c, d.datepicker._get(b, "showOptions"), f, h) : b.dpDiv[c || "show"](c ? f : null, h); if (!c || !f) h(); b.input.is(":visible") && !b.input.is(":disabled") && b.input.focus(); d.datepicker._curInst = b
			} 
		} 
	} 
}, _updateDatepicker: function (a) {
	this.maxRows = 4; var b = d.datepicker._getBorders(a.dpDiv); J = a; a.dpDiv.empty().append(this._generateHTML(a)); var c = a.dpDiv.find("iframe.ui-datepicker-cover"); c.length && c.css({ left: -b[0], top: -b[1], width: a.dpDiv.outerWidth(), height: a.dpDiv.outerHeight() });
	a.dpDiv.find("." + this._dayOverClass + " a").mouseover(); b = this._getNumberOfMonths(a); c = b[1]; a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""); c > 1 && a.dpDiv.addClass("ui-datepicker-multi-" + c).css("width", 17 * c + "em"); a.dpDiv[(b[0] != 1 || b[1] != 1 ? "add" : "remove") + "Class"]("ui-datepicker-multi"); a.dpDiv[(this._get(a, "isRTL") ? "add" : "remove") + "Class"]("ui-datepicker-rtl"); a == d.datepicker._curInst && d.datepicker._datepickerShowing && a.input && a.input.is(":visible") &&
!a.input.is(":disabled") && a.input[0] != document.activeElement && a.input.focus(); if (a.yearshtml) { var e = a.yearshtml; setTimeout(function () { e === a.yearshtml && a.yearshtml && a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml); e = a.yearshtml = null }, 0) } 
}, _getBorders: function (a) { var b = function (c) { return { thin: 1, medium: 2, thick: 3}[c] || c }; return [parseFloat(b(a.css("border-left-width"))), parseFloat(b(a.css("border-top-width")))] }, _checkOffset: function (a, b, c) {
	var e = a.dpDiv.outerWidth(), f = a.dpDiv.outerHeight(),
h = a.input ? a.input.outerWidth() : 0, i = a.input ? a.input.outerHeight() : 0, g = document.documentElement.clientWidth + d(document).scrollLeft(), j = document.documentElement.clientHeight + d(document).scrollTop(); b.left -= this._get(a, "isRTL") ? e - h : 0; b.left -= c && b.left == a.input.offset().left ? d(document).scrollLeft() : 0; b.top -= c && b.top == a.input.offset().top + i ? d(document).scrollTop() : 0; b.left -= Math.min(b.left, b.left + e > g && g > e ? Math.abs(b.left + e - g) : 0); b.top -= Math.min(b.top, b.top + f > j && j > f ? Math.abs(f + i) : 0); return b
}, _findPos: function (a) {
	for (var b =
this._get(this._getInst(a), "isRTL"); a && (a.type == "hidden" || a.nodeType != 1 || d.expr.filters.hidden(a)); ) a = a[b ? "previousSibling" : "nextSibling"]; a = d(a).offset(); return [a.left, a.top]
}, _triggerOnClose: function (a) { var b = this._get(a, "onClose"); if (b) b.apply(a.input ? a.input[0] : null, [a.input ? a.input.val() : "", a]) }, _hideDatepicker: function (a) {
	var b = this._curInst; if (!(!b || a && b != d.data(a, "datepicker"))) if (this._datepickerShowing) {
		a = this._get(b, "showAnim"); var c = this._get(b, "duration"), e = function () {
			d.datepicker._tidyDialog(b);
			this._curInst = null
		}; d.effects && d.effects[a] ? b.dpDiv.hide(a, d.datepicker._get(b, "showOptions"), c, e) : b.dpDiv[a == "slideDown" ? "slideUp" : a == "fadeIn" ? "fadeOut" : "hide"](a ? c : null, e); a || e(); d.datepicker._triggerOnClose(b); this._datepickerShowing = false; this._lastInput = null; if (this._inDialog) { this._dialogInput.css({ position: "absolute", left: "0", top: "-100px" }); if (d.blockUI) { d.unblockUI(); d("body").append(this.dpDiv) } } this._inDialog = false
	} 
}, _tidyDialog: function (a) { a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar") },
		_checkExternalClick: function (a) { if (d.datepicker._curInst) { a = d(a.target); a[0].id != d.datepicker._mainDivId && a.parents("#" + d.datepicker._mainDivId).length == 0 && !a.hasClass(d.datepicker.markerClassName) && !a.hasClass(d.datepicker._triggerClass) && d.datepicker._datepickerShowing && !(d.datepicker._inDialog && d.blockUI) && d.datepicker._hideDatepicker() } }, _adjustDate: function (a, b, c) {
			a = d(a); var e = this._getInst(a[0]); if (!this._isDisabledDatepicker(a[0])) {
				this._adjustInstDate(e, b + (c == "M" ? this._get(e, "showCurrentAtPos") :
0), c); this._updateDatepicker(e)
			} 
		}, _gotoToday: function (a) { a = d(a); var b = this._getInst(a[0]); if (this._get(b, "gotoCurrent") && b.currentDay) { b.selectedDay = b.currentDay; b.drawMonth = b.selectedMonth = b.currentMonth; b.drawYear = b.selectedYear = b.currentYear } else { var c = new Date; b.selectedDay = c.getDate(); b.drawMonth = b.selectedMonth = c.getMonth(); b.drawYear = b.selectedYear = c.getFullYear() } this._notifyChange(b); this._adjustDate(a) }, _selectMonthYear: function (a, b, c) {
			a = d(a); var e = this._getInst(a[0]); e["selected" + (c == "M" ?
"Month" : "Year")] = e["draw" + (c == "M" ? "Month" : "Year")] = parseInt(b.options[b.selectedIndex].value, 10); this._notifyChange(e); this._adjustDate(a)
		}, _selectDay: function (a, b, c, e) { var f = d(a); if (!(d(e).hasClass(this._unselectableClass) || this._isDisabledDatepicker(f[0]))) { f = this._getInst(f[0]); f.selectedDay = f.currentDay = d("a", e).html(); f.selectedMonth = f.currentMonth = b; f.selectedYear = f.currentYear = c; this._selectDate(a, this._formatDate(f, f.currentDay, f.currentMonth, f.currentYear)) } }, _clearDate: function (a) {
			a = d(a);
			this._getInst(a[0]); this._selectDate(a, "")
		}, _selectDate: function (a, b) { a = this._getInst(d(a)[0]); b = b != null ? b : this._formatDate(a); a.input && a.input.val(b); this._updateAlternate(a); var c = this._get(a, "onSelect"); if (c) c.apply(a.input ? a.input[0] : null, [b, a]); else a.input && a.input.trigger("change"); if (a.inline) this._updateDatepicker(a); else { this._hideDatepicker(); this._lastInput = a.input[0]; typeof a.input[0] != "object" && a.input.focus(); this._lastInput = null } }, _updateAlternate: function (a) {
			var b = this._get(a, "altField");
			if (b) { var c = this._get(a, "altFormat") || this._get(a, "dateFormat"), e = this._getDate(a), f = this.formatDate(c, e, this._getFormatConfig(a)); d(b).each(function () { d(this).val(f) }) } 
		}, noWeekends: function (a) { a = a.getDay(); return [a > 0 && a < 6, ""] }, iso8601Week: function (a) { a = new Date(a.getTime()); a.setDate(a.getDate() + 4 - (a.getDay() || 7)); var b = a.getTime(); a.setMonth(0); a.setDate(1); return Math.floor(Math.round((b - a) / 864E5) / 7) + 1 }, parseDate: function (a, b, c) {
			if (a == null || b == null) throw "Invalid arguments"; b = typeof b == "object" ?
b.toString() : b + ""; if (b == "") return null; var e = (c ? c.shortYearCutoff : null) || this._defaults.shortYearCutoff; e = typeof e != "string" ? e : (new Date).getFullYear() % 100 + parseInt(e, 10); for (var f = (c ? c.dayNamesShort : null) || this._defaults.dayNamesShort, h = (c ? c.dayNames : null) || this._defaults.dayNames, i = (c ? c.monthNamesShort : null) || this._defaults.monthNamesShort, g = (c ? c.monthNames : null) || this._defaults.monthNames, j = c = -1, l = -1, u = -1, k = false, o = function (p) { (p = A + 1 < a.length && a.charAt(A + 1) == p) && A++; return p }, m = function (p) {
	var D =
o(p); p = new RegExp("^\\d{1," + (p == "@" ? 14 : p == "!" ? 20 : p == "y" && D ? 4 : p == "o" ? 3 : 2) + "}"); p = b.substring(q).match(p); if (!p) throw "Missing number at position " + q; q += p[0].length; return parseInt(p[0], 10)
}, n = function (p, D, K) { p = d.map(o(p) ? K : D, function (w, x) { return [[x, w]] }).sort(function (w, x) { return -(w[1].length - x[1].length) }); var E = -1; d.each(p, function (w, x) { w = x[1]; if (b.substr(q, w.length).toLowerCase() == w.toLowerCase()) { E = x[0]; q += w.length; return false } }); if (E != -1) return E + 1; else throw "Unknown name at position " + q; }, s =
function () { if (b.charAt(q) != a.charAt(A)) throw "Unexpected literal at position " + q; q++ }, q = 0, A = 0; A < a.length; A++) if (k) if (a.charAt(A) == "'" && !o("'")) k = false; else s(); else switch (a.charAt(A)) {
				case "d": l = m("d"); break; case "D": n("D", f, h); break; case "o": u = m("o"); break; case "m": j = m("m"); break; case "M": j = n("M", i, g); break; case "y": c = m("y"); break; case "@": var v = new Date(m("@")); c = v.getFullYear(); j = v.getMonth() + 1; l = v.getDate(); break; case "!": v = new Date((m("!") - this._ticksTo1970) / 1E4); c = v.getFullYear(); j = v.getMonth() +
1; l = v.getDate(); break; case "'": if (o("'")) s(); else k = true; break; default: s()
			} if (q < b.length) throw "Extra/unparsed characters found in date: " + b.substring(q); if (c == -1) c = (new Date).getFullYear(); else if (c < 100) c += (new Date).getFullYear() - (new Date).getFullYear() % 100 + (c <= e ? 0 : -100); if (u > -1) { j = 1; l = u; do { e = this._getDaysInMonth(c, j - 1); if (l <= e) break; j++; l -= e } while (1) } v = this._daylightSavingAdjust(new Date(c, j - 1, l)); if (v.getFullYear() != c || v.getMonth() + 1 != j || v.getDate() != l) throw "Invalid date"; return v
		}, 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", TICKS: "!", TIMESTAMP: "@", W3C: "yy-mm-dd", _ticksTo1970: (718685 + Math.floor(492.5) - Math.floor(19.7) + Math.floor(4.925)) * 24 * 60 * 60 * 1E7, formatDate: function (a, b, c) {
			if (!b) return ""; var e = (c ? c.dayNamesShort : null) || this._defaults.dayNamesShort, f = (c ? c.dayNames : null) || this._defaults.dayNames, h = (c ? c.monthNamesShort : null) || this._defaults.monthNamesShort; c = (c ? c.monthNames :
null) || this._defaults.monthNames; var i = function (o) { (o = k + 1 < a.length && a.charAt(k + 1) == o) && k++; return o }, g = function (o, m, n) { m = "" + m; if (i(o)) for (; m.length < n; ) m = "0" + m; return m }, j = function (o, m, n, s) { return i(o) ? s[m] : n[m] }, l = "", u = false; if (b) for (var k = 0; k < a.length; k++) if (u) if (a.charAt(k) == "'" && !i("'")) u = false; else l += a.charAt(k); else switch (a.charAt(k)) {
				case "d": l += g("d", b.getDate(), 2); break; case "D": l += j("D", b.getDay(), e, f); break; case "o": l += g("o", Math.round(((new Date(b.getFullYear(), b.getMonth(), b.getDate())).getTime() -
(new Date(b.getFullYear(), 0, 0)).getTime()) / 864E5), 3); break; case "m": l += g("m", b.getMonth() + 1, 2); break; case "M": l += j("M", b.getMonth(), h, c); break; case "y": l += i("y") ? b.getFullYear() : (b.getYear() % 100 < 10 ? "0" : "") + b.getYear() % 100; break; case "@": l += b.getTime(); break; case "!": l += b.getTime() * 1E4 + this._ticksTo1970; break; case "'": if (i("'")) l += "'"; else u = true; break; default: l += a.charAt(k)
			} return l
		}, _possibleChars: function (a) {
			for (var b = "", c = false, e = function (h) { (h = f + 1 < a.length && a.charAt(f + 1) == h) && f++; return h }, f =
0; f < a.length; f++) if (c) if (a.charAt(f) == "'" && !e("'")) c = false; else b += a.charAt(f); else switch (a.charAt(f)) { case "d": case "m": case "y": case "@": b += "0123456789"; break; case "D": case "M": return null; case "'": if (e("'")) b += "'"; else c = true; break; default: b += a.charAt(f) } return b
		}, _get: function (a, b) { return a.settings[b] !== C ? a.settings[b] : this._defaults[b] }, _setDateFromField: function (a, b) {
			if (a.input.val() != a.lastVal) {
				var c = this._get(a, "dateFormat"), e = a.lastVal = a.input ? a.input.val() : null, f, h; f = h = this._getDefaultDate(a);
				var i = this._getFormatConfig(a); try { f = this.parseDate(c, e, i) || h } catch (g) { this.log(g); e = b ? "" : e } a.selectedDay = f.getDate(); a.drawMonth = a.selectedMonth = f.getMonth(); a.drawYear = a.selectedYear = f.getFullYear(); a.currentDay = e ? f.getDate() : 0; a.currentMonth = e ? f.getMonth() : 0; a.currentYear = e ? f.getFullYear() : 0; this._adjustInstDate(a)
			} 
		}, _getDefaultDate: function (a) { return this._restrictMinMax(a, this._determineDate(a, this._get(a, "defaultDate"), new Date)) }, _determineDate: function (a, b, c) {
			var e = function (h) {
				var i = new Date;
				i.setDate(i.getDate() + h); return i
			}, f = function (h) {
				try { return d.datepicker.parseDate(d.datepicker._get(a, "dateFormat"), h, d.datepicker._getFormatConfig(a)) } catch (i) { } var g = (h.toLowerCase().match(/^c/) ? d.datepicker._getDate(a) : null) || new Date, j = g.getFullYear(), l = g.getMonth(); g = g.getDate(); for (var u = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, k = u.exec(h); k; ) {
					switch (k[2] || "d") {
						case "d": case "D": g += parseInt(k[1], 10); break; case "w": case "W": g += parseInt(k[1], 10) * 7; break; case "m": case "M": l += parseInt(k[1], 10); g =
Math.min(g, d.datepicker._getDaysInMonth(j, l)); break; case "y": case "Y": j += parseInt(k[1], 10); g = Math.min(g, d.datepicker._getDaysInMonth(j, l)); break
					} k = u.exec(h)
				} return new Date(j, l, g)
			}; if (b = (b = b == null || b === "" ? c : typeof b == "string" ? f(b) : typeof b == "number" ? isNaN(b) ? c : e(b) : new Date(b.getTime())) && b.toString() == "Invalid Date" ? c : b) { b.setHours(0); b.setMinutes(0); b.setSeconds(0); b.setMilliseconds(0) } return this._daylightSavingAdjust(b)
		}, _daylightSavingAdjust: function (a) {
			if (!a) return null; a.setHours(a.getHours() >
12 ? a.getHours() + 2 : 0); return a
		}, _setDate: function (a, b, c) { var e = !b, f = a.selectedMonth, h = a.selectedYear; b = this._restrictMinMax(a, this._determineDate(a, b, new Date)); a.selectedDay = a.currentDay = b.getDate(); a.drawMonth = a.selectedMonth = a.currentMonth = b.getMonth(); a.drawYear = a.selectedYear = a.currentYear = b.getFullYear(); if ((f != a.selectedMonth || h != a.selectedYear) && !c) this._notifyChange(a); this._adjustInstDate(a); if (a.input) a.input.val(e ? "" : this._formatDate(a)) }, _getDate: function (a) {
			return !a.currentYear || a.input &&
a.input.val() == "" ? null : this._daylightSavingAdjust(new Date(a.currentYear, a.currentMonth, a.currentDay))
		}, _generateHTML: function (a) {
			var b = new Date; b = this._daylightSavingAdjust(new Date(b.getFullYear(), b.getMonth(), b.getDate())); var c = this._get(a, "isRTL"), e = this._get(a, "showButtonPanel"), f = this._get(a, "hideIfNoPrevNext"), h = this._get(a, "navigationAsDateFormat"), i = this._getNumberOfMonths(a), g = this._get(a, "showCurrentAtPos"), j = this._get(a, "stepMonths"), l = i[0] != 1 || i[1] != 1, u = this._daylightSavingAdjust(!a.currentDay ?
new Date(9999, 9, 9) : new Date(a.currentYear, a.currentMonth, a.currentDay)), k = this._getMinMaxDate(a, "min"), o = this._getMinMaxDate(a, "max"); g = a.drawMonth - g; var m = a.drawYear; if (g < 0) { g += 12; m-- } if (o) { var n = this._daylightSavingAdjust(new Date(o.getFullYear(), o.getMonth() - i[0] * i[1] + 1, o.getDate())); for (n = k && n < k ? k : n; this._daylightSavingAdjust(new Date(m, g, 1)) > n; ) { g--; if (g < 0) { g = 11; m-- } } } a.drawMonth = g; a.drawYear = m; n = this._get(a, "prevText"); n = !h ? n : this.formatDate(n, this._daylightSavingAdjust(new Date(m, g - j, 1)), this._getFormatConfig(a));
			n = this._canAdjustMonth(a, -1, m, g) ? '<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_' + B + ".datepicker._adjustDate('#" + a.id + "', -" + j + ", 'M');\" title=\"" + n + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "e" : "w") + '">' + n + "</span></a>" : f ? "" : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="' + n + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "e" : "w") + '">' + n + "</span></a>"; var s = this._get(a, "nextText"); s = !h ? s : this.formatDate(s, this._daylightSavingAdjust(new Date(m,
g + j, 1)), this._getFormatConfig(a)); f = this._canAdjustMonth(a, +1, m, g) ? '<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_' + B + ".datepicker._adjustDate('#" + a.id + "', +" + j + ", 'M');\" title=\"" + s + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "w" : "e") + '">' + s + "</span></a>" : f ? "" : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="' + s + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "w" : "e") + '">' + s + "</span></a>"; j = this._get(a, "currentText"); s = this._get(a, "gotoCurrent") &&
a.currentDay ? u : b; j = !h ? j : this.formatDate(j, s, this._getFormatConfig(a)); h = !a.inline ? '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_' + B + '.datepicker._hideDatepicker();">' + this._get(a, "closeText") + "</button>" : ""; e = e ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + (c ? h : "") + (this._isInRange(a, s) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_' +
B + ".datepicker._gotoToday('#" + a.id + "');\">" + j + "</button>" : "") + (c ? "" : h) + "</div>" : ""; h = parseInt(this._get(a, "firstDay"), 10); h = isNaN(h) ? 0 : h; j = this._get(a, "showWeek"); s = this._get(a, "dayNames"); this._get(a, "dayNamesShort"); var q = this._get(a, "dayNamesMin"), A = this._get(a, "monthNames"), v = this._get(a, "monthNamesShort"), p = this._get(a, "beforeShowDay"), D = this._get(a, "showOtherMonths"), K = this._get(a, "selectOtherMonths"); this._get(a, "calculateWeek"); for (var E = this._getDefaultDate(a), w = "", x = 0; x < i[0]; x++) {
				var O =
""; this.maxRows = 4; for (var G = 0; G < i[1]; G++) {
					var P = this._daylightSavingAdjust(new Date(m, g, a.selectedDay)), t = " ui-corner-all", y = ""; if (l) { y += '<div class="ui-datepicker-group'; if (i[1] > 1) switch (G) { case 0: y += " ui-datepicker-group-first"; t = " ui-corner-" + (c ? "right" : "left"); break; case i[1] - 1: y += " ui-datepicker-group-last"; t = " ui-corner-" + (c ? "left" : "right"); break; default: y += " ui-datepicker-group-middle"; t = ""; break } y += '">' } y += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + t + '">' + (/all|left/.test(t) &&
x == 0 ? c ? f : n : "") + (/all|right/.test(t) && x == 0 ? c ? n : f : "") + this._generateMonthYearHeader(a, g, m, k, o, x > 0 || G > 0, A, v) + '</div><table class="ui-datepicker-calendar"><thead><tr>'; var z = j ? '<th class="ui-datepicker-week-col">' + this._get(a, "weekHeader") + "</th>" : ""; for (t = 0; t < 7; t++) { var r = (t + h) % 7; z += "<th" + ((t + h + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : "") + '><span title="' + s[r] + '">' + q[r] + "</span></th>" } y += z + "</tr></thead><tbody>"; z = this._getDaysInMonth(m, g); if (m == a.selectedYear && g == a.selectedMonth) a.selectedDay = Math.min(a.selectedDay,
z); t = (this._getFirstDayOfMonth(m, g) - h + 7) % 7; z = Math.ceil((t + z) / 7); this.maxRows = z = l ? this.maxRows > z ? this.maxRows : z : z; r = this._daylightSavingAdjust(new Date(m, g, 1 - t)); for (var Q = 0; Q < z; Q++) {
						y += "<tr>"; var R = !j ? "" : '<td class="ui-datepicker-week-col">' + this._get(a, "calculateWeek")(r) + "</td>"; for (t = 0; t < 7; t++) {
							var I = p ? p.apply(a.input ? a.input[0] : null, [r]) : [true, ""], F = r.getMonth() != g, L = F && !K || !I[0] || k && r < k || o && r > o; R += '<td class="' + ((t + h + 6) % 7 >= 5 ? " ui-datepicker-week-end" : "") + (F ? " ui-datepicker-other-month" : "") + (r.getTime() ==
P.getTime() && g == a.selectedMonth && a._keyEvent || E.getTime() == r.getTime() && E.getTime() == P.getTime() ? " " + this._dayOverClass : "") + (L ? " " + this._unselectableClass + " ui-state-disabled" : "") + (F && !D ? "" : " " + I[1] + (r.getTime() == u.getTime() ? " " + this._currentClass : "") + (r.getTime() == b.getTime() ? " ui-datepicker-today" : "")) + '"' + ((!F || D) && I[2] ? ' title="' + I[2] + '"' : "") + (L ? "" : ' onclick="DP_jQuery_' + B + ".datepicker._selectDay('#" + a.id + "'," + r.getMonth() + "," + r.getFullYear() + ', this);return false;"') + ">" + (F && !D ? "&#xa0;" : L ? '<span class="ui-state-default">' +
r.getDate() + "</span>" : '<a class="ui-state-default' + (r.getTime() == b.getTime() ? " ui-state-highlight" : "") + (r.getTime() == u.getTime() ? " ui-state-active" : "") + (F ? " ui-priority-secondary" : "") + '" href="#">' + r.getDate() + "</a>") + "</td>"; r.setDate(r.getDate() + 1); r = this._daylightSavingAdjust(r)
						} y += R + "</tr>"
					} g++; if (g > 11) { g = 0; m++ } y += "</tbody></table>" + (l ? "</div>" + (i[0] > 0 && G == i[1] - 1 ? '<div class="ui-datepicker-row-break"></div>' : "") : ""); O += y
				} w += O
			} w += e + (d.browser.msie && parseInt(d.browser.version, 10) < 7 && !a.inline ? '<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' :
""); a._keyEvent = false; return w
		}, _generateMonthYearHeader: function (a, b, c, e, f, h, i, g) {
			var j = this._get(a, "changeMonth"), l = this._get(a, "changeYear"), u = this._get(a, "showMonthAfterYear"), k = '<div class="ui-datepicker-title">', o = ""; if (h || !j) o += '<span class="ui-datepicker-month">' + i[b] + "</span>"; else {
				i = e && e.getFullYear() == c; var m = f && f.getFullYear() == c; o += '<select class="ui-datepicker-month" onchange="DP_jQuery_' + B + ".datepicker._selectMonthYear('#" + a.id + "', this, 'M');\" >"; for (var n = 0; n < 12; n++) if ((!i || n >= e.getMonth()) &&
(!m || n <= f.getMonth())) o += '<option value="' + n + '"' + (n == b ? ' selected="selected"' : "") + ">" + g[n] + "</option>"; o += "</select>"
			} u || (k += o + (h || !(j && l) ? "&#xa0;" : "")); if (!a.yearshtml) {
				a.yearshtml = ""; if (h || !l) k += '<span class="ui-datepicker-year">' + c + "</span>"; else {
					g = this._get(a, "yearRange").split(":"); var s = (new Date).getFullYear(); i = function (q) { q = q.match(/c[+-].*/) ? c + parseInt(q.substring(1), 10) : q.match(/[+-].*/) ? s + parseInt(q, 10) : parseInt(q, 10); return isNaN(q) ? s : q }; b = i(g[0]); g = Math.max(b, i(g[1] || "")); b = e ? Math.max(b,
e.getFullYear()) : b; g = f ? Math.min(g, f.getFullYear()) : g; for (a.yearshtml += '<select class="ui-datepicker-year" onchange="DP_jQuery_' + B + ".datepicker._selectMonthYear('#" + a.id + "', this, 'Y');\" >"; b <= g; b++) a.yearshtml += '<option value="' + b + '"' + (b == c ? ' selected="selected"' : "") + ">" + b + "</option>"; a.yearshtml += "</select>"; k += a.yearshtml; a.yearshtml = null
				} 
			} k += this._get(a, "yearSuffix"); if (u) k += (h || !(j && l) ? "&#xa0;" : "") + o; k += "</div>"; return k
		}, _adjustInstDate: function (a, b, c) {
			var e = a.drawYear + (c == "Y" ? b : 0), f = a.drawMonth +
(c == "M" ? b : 0); b = Math.min(a.selectedDay, this._getDaysInMonth(e, f)) + (c == "D" ? b : 0); e = this._restrictMinMax(a, this._daylightSavingAdjust(new Date(e, f, b))); a.selectedDay = e.getDate(); a.drawMonth = a.selectedMonth = e.getMonth(); a.drawYear = a.selectedYear = e.getFullYear(); if (c == "M" || c == "Y") this._notifyChange(a)
		}, _restrictMinMax: function (a, b) { var c = this._getMinMaxDate(a, "min"); a = this._getMinMaxDate(a, "max"); b = c && b < c ? c : b; return b = a && b > a ? a : b }, _notifyChange: function (a) {
			var b = this._get(a, "onChangeMonthYear"); if (b) b.apply(a.input ?
a.input[0] : null, [a.selectedYear, a.selectedMonth + 1, a])
		}, _getNumberOfMonths: function (a) { a = this._get(a, "numberOfMonths"); return a == null ? [1, 1] : typeof a == "number" ? [1, a] : a }, _getMinMaxDate: function (a, b) { return this._determineDate(a, this._get(a, b + "Date"), null) }, _getDaysInMonth: function (a, b) { return 32 - this._daylightSavingAdjust(new Date(a, b, 32)).getDate() }, _getFirstDayOfMonth: function (a, b) { return (new Date(a, b, 1)).getDay() }, _canAdjustMonth: function (a, b, c, e) {
			var f = this._getNumberOfMonths(a); c = this._daylightSavingAdjust(new Date(c,
e + (b < 0 ? b : f[0] * f[1]), 1)); b < 0 && c.setDate(this._getDaysInMonth(c.getFullYear(), c.getMonth())); return this._isInRange(a, c)
		}, _isInRange: function (a, b) { var c = this._getMinMaxDate(a, "min"); a = this._getMinMaxDate(a, "max"); return (!c || b.getTime() >= c.getTime()) && (!a || b.getTime() <= a.getTime()) }, _getFormatConfig: function (a) {
			var b = this._get(a, "shortYearCutoff"); b = typeof b != "string" ? b : (new Date).getFullYear() % 100 + parseInt(b, 10); return { shortYearCutoff: b, dayNamesShort: this._get(a, "dayNamesShort"), dayNames: this._get(a,
"dayNames"), monthNamesShort: this._get(a, "monthNamesShort"), monthNames: this._get(a, "monthNames")
			}
		}, _formatDate: function (a, b, c, e) { if (!b) { a.currentDay = a.selectedDay; a.currentMonth = a.selectedMonth; a.currentYear = a.selectedYear } b = b ? typeof b == "object" ? b : this._daylightSavingAdjust(new Date(e, c, b)) : this._daylightSavingAdjust(new Date(a.currentYear, a.currentMonth, a.currentDay)); return this.formatDate(this._get(a, "dateFormat"), b, this._getFormatConfig(a)) } 
	}); d.fn.datepicker = function (a) {
		if (!this.length) return this;
		if (!d.datepicker.initialized) { d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv); d.datepicker.initialized = true } var b = Array.prototype.slice.call(arguments, 1); if (typeof a == "string" && (a == "isDisabled" || a == "getDate" || a == "widget")) return d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this[0]].concat(b)); if (a == "option" && arguments.length == 2 && typeof arguments[1] == "string") return d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this[0]].concat(b)); return this.each(function () {
			typeof a ==
"string" ? d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this].concat(b)) : d.datepicker._attachDatepicker(this, a)
		})
	}; d.datepicker = new M; d.datepicker.initialized = false; d.datepicker.uuid = (new Date).getTime(); d.datepicker.version = "1.8.16"; window["DP_jQuery_" + B] = d
})(jQuery);
; /*
 * jQuery UI Effects 1.8.16
 *
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * http://docs.jquery.com/UI/Effects/
 */
jQuery.effects || function (f, j) {
	function m(c) {
		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], 10), parseInt(a[2], 10), parseInt(a[3], 10)]; 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]; if (a = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c)) return [parseInt(a[1],
16), parseInt(a[2], 16), parseInt(a[3], 16)]; if (a = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c)) return [parseInt(a[1] + a[1], 16), parseInt(a[2] + a[2], 16), parseInt(a[3] + a[3], 16)]; if (/rgba\(0, 0, 0, 0\)/.exec(c)) return n.transparent; return n[f.trim(c).toLowerCase()]
	} function s(c, a) { var b; do { b = f.curCSS(c, a); if (b != "" && b != "transparent" || f.nodeName(c, "body")) break; a = "backgroundColor" } while (c = c.parentNode); return m(b) } function o() {
		var c = document.defaultView ? document.defaultView.getComputedStyle(this, null) : this.currentStyle,
a = {}, b, d; if (c && c.length && c[0] && c[c[0]]) for (var e = c.length; e--; ) { b = c[e]; if (typeof c[b] == "string") { d = b.replace(/\-(\w)/g, function (g, h) { return h.toUpperCase() }); a[d] = c[b] } } else for (b in c) if (typeof c[b] === "string") a[b] = c[b]; return a
	} function p(c) { var a, b; for (a in c) { b = c[a]; if (b == null || f.isFunction(b) || a in t || /scrollbar/.test(a) || !/color/i.test(a) && isNaN(parseFloat(b))) delete c[a] } return c } function u(c, a) { var b = { _: 0 }, d; for (d in a) if (c[d] != a[d]) b[d] = a[d]; return b } function k(c, a, b, d) {
		if (typeof c == "object") {
			d =
a; b = null; a = c; c = a.effect
		} if (f.isFunction(a)) { d = a; b = null; a = {} } if (typeof a == "number" || f.fx.speeds[a]) { d = b; b = a; a = {} } if (f.isFunction(b)) { d = b; b = null } a = a || {}; b = b || a.duration; b = f.fx.off ? 0 : typeof b == "number" ? b : b in f.fx.speeds ? f.fx.speeds[b] : f.fx.speeds._default; d = d || a.complete; return [c, a, b, d]
	} function l(c) { if (!c || typeof c === "number" || f.fx.speeds[c]) return true; if (typeof c === "string" && !f.effects[c]) return true; return false } f.effects = {}; f.each(["backgroundColor", "borderBottomColor", "borderLeftColor", "borderRightColor",
"borderTopColor", "borderColor", "color", "outlineColor"], function (c, a) { f.fx.step[a] = function (b) { if (!b.colorInit) { b.start = s(b.elem, a); b.end = m(b.end); b.colorInit = true } b.elem.style[a] = "rgb(" + Math.max(Math.min(parseInt(b.pos * (b.end[0] - b.start[0]) + b.start[0], 10), 255), 0) + "," + Math.max(Math.min(parseInt(b.pos * (b.end[1] - b.start[1]) + b.start[1], 10), 255), 0) + "," + Math.max(Math.min(parseInt(b.pos * (b.end[2] - b.start[2]) + b.start[2], 10), 255), 0) + ")" } }); var n = { aqua: [0, 255, 255], azure: [240, 255, 255], beige: [245, 245, 220], black: [0,
0, 0], blue: [0, 0, 255], brown: [165, 42, 42], cyan: [0, 255, 255], darkblue: [0, 0, 139], darkcyan: [0, 139, 139], darkgrey: [169, 169, 169], darkgreen: [0, 100, 0], darkkhaki: [189, 183, 107], darkmagenta: [139, 0, 139], darkolivegreen: [85, 107, 47], darkorange: [255, 140, 0], darkorchid: [153, 50, 204], darkred: [139, 0, 0], darksalmon: [233, 150, 122], darkviolet: [148, 0, 211], fuchsia: [255, 0, 255], gold: [255, 215, 0], green: [0, 128, 0], indigo: [75, 0, 130], khaki: [240, 230, 140], lightblue: [173, 216, 230], lightcyan: [224, 255, 255], lightgreen: [144, 238, 144], lightgrey: [211,
211, 211], lightpink: [255, 182, 193], lightyellow: [255, 255, 224], lime: [0, 255, 0], magenta: [255, 0, 255], maroon: [128, 0, 0], navy: [0, 0, 128], olive: [128, 128, 0], orange: [255, 165, 0], pink: [255, 192, 203], purple: [128, 0, 128], violet: [128, 0, 128], red: [255, 0, 0], silver: [192, 192, 192], white: [255, 255, 255], yellow: [255, 255, 0], transparent: [255, 255, 255]
}, q = ["add", "remove", "toggle"], t = { border: 1, borderBottom: 1, borderColor: 1, borderLeft: 1, borderRight: 1, borderTop: 1, borderWidth: 1, margin: 1, padding: 1 }; f.effects.animateClass = function (c, a, b,
d) { if (f.isFunction(b)) { d = b; b = null } return this.queue(function () { var e = f(this), g = e.attr("style") || " ", h = p(o.call(this)), r, v = e.attr("class"); f.each(q, function (w, i) { c[i] && e[i + "Class"](c[i]) }); r = p(o.call(this)); e.attr("class", v); e.animate(u(h, r), { queue: false, duration: a, easing: b, complete: function () { f.each(q, function (w, i) { c[i] && e[i + "Class"](c[i]) }); if (typeof e.attr("style") == "object") { e.attr("style").cssText = ""; e.attr("style").cssText = g } else e.attr("style", g); d && d.apply(this, arguments); f.dequeue(this) } }) }) };
	f.fn.extend({ _addClass: f.fn.addClass, addClass: function (c, a, b, d) { return a ? f.effects.animateClass.apply(this, [{ add: c }, a, b, d]) : this._addClass(c) }, _removeClass: f.fn.removeClass, removeClass: function (c, a, b, d) { return a ? f.effects.animateClass.apply(this, [{ remove: c }, a, b, d]) : this._removeClass(c) }, _toggleClass: f.fn.toggleClass, toggleClass: function (c, a, b, d, e) {
		return typeof a == "boolean" || a === j ? b ? f.effects.animateClass.apply(this, [a ? { add: c} : { remove: c }, b, d, e]) : this._toggleClass(c, a) : f.effects.animateClass.apply(this,
[{ toggle: c }, a, b, d])
	}, switchClass: function (c, a, b, d, e) { return f.effects.animateClass.apply(this, [{ add: a, remove: c }, b, d, e]) } 
	}); f.extend(f.effects, { version: "1.8.16", save: function (c, a) { for (var b = 0; b < a.length; b++) a[b] !== null && c.data("ec.storage." + a[b], c[0].style[a[b]]) }, restore: function (c, a) { for (var b = 0; b < a.length; b++) a[b] !== null && c.css(a[b], c.data("ec.storage." + a[b])) }, setMode: function (c, a) { if (a == "toggle") a = c.is(":hidden") ? "show" : "hide"; return a }, getBaseline: function (c, a) {
		var b; switch (c[0]) {
			case "top": b =
0; break; case "middle": b = 0.5; break; case "bottom": b = 1; break; default: b = c[0] / a.height
		} switch (c[1]) { case "left": c = 0; break; case "center": c = 0.5; break; case "right": c = 1; break; default: c = c[1] / a.width } return { x: c, y: b}
	}, createWrapper: function (c) {
		if (c.parent().is(".ui-effects-wrapper")) return c.parent(); var a = { width: c.outerWidth(true), height: c.outerHeight(true), "float": c.css("float") }, b = f("<div></div>").addClass("ui-effects-wrapper").css({ fontSize: "100%", background: "transparent", border: "none", margin: 0, padding: 0 }),
d = document.activeElement; c.wrap(b); if (c[0] === d || f.contains(c[0], d)) f(d).focus(); b = c.parent(); if (c.css("position") == "static") { b.css({ position: "relative" }); c.css({ position: "relative" }) } else { f.extend(a, { position: c.css("position"), zIndex: c.css("z-index") }); f.each(["top", "left", "bottom", "right"], function (e, g) { a[g] = c.css(g); if (isNaN(parseInt(a[g], 10))) a[g] = "auto" }); c.css({ position: "relative", top: 0, left: 0, right: "auto", bottom: "auto" }) } return b.css(a).show()
	}, removeWrapper: function (c) {
		var a, b = document.activeElement;
		if (c.parent().is(".ui-effects-wrapper")) { a = c.parent().replaceWith(c); if (c[0] === b || f.contains(c[0], b)) f(b).focus(); return a } return c
	}, setTransition: function (c, a, b, d) { d = d || {}; f.each(a, function (e, g) { unit = c.cssUnit(g); if (unit[0] > 0) d[g] = unit[0] * b + unit[1] }); return d } 
	}); f.fn.extend({ effect: function (c) {
		var a = k.apply(this, arguments), b = { options: a[1], duration: a[2], callback: a[3] }; a = b.options.mode; var d = f.effects[c]; if (f.fx.off || !d) return a ? this[a](b.duration, b.callback) : this.each(function () { b.callback && b.callback.call(this) });
		return d.call(this, b)
	}, _show: f.fn.show, show: function (c) { if (l(c)) return this._show.apply(this, arguments); else { var a = k.apply(this, arguments); a[1].mode = "show"; return this.effect.apply(this, a) } }, _hide: f.fn.hide, hide: function (c) { if (l(c)) return this._hide.apply(this, arguments); else { var a = k.apply(this, arguments); a[1].mode = "hide"; return this.effect.apply(this, a) } }, __toggle: f.fn.toggle, toggle: function (c) {
		if (l(c) || typeof c === "boolean" || f.isFunction(c)) return this.__toggle.apply(this, arguments); else {
			var a = k.apply(this,
arguments); a[1].mode = "toggle"; return this.effect.apply(this, a)
		} 
	}, cssUnit: function (c) { var a = this.css(c), b = []; f.each(["em", "px", "%", "pt"], function (d, e) { if (a.indexOf(e) > 0) b = [parseFloat(a), e] }); return b } 
	}); f.easing.jswing = f.easing.swing; f.extend(f.easing, { def: "easeOutQuad", swing: function (c, a, b, d, e) { return f.easing[f.easing.def](c, a, b, d, e) }, easeInQuad: function (c, a, b, d, e) { return d * (a /= e) * a + b }, easeOutQuad: function (c, a, b, d, e) { return -d * (a /= e) * (a - 2) + b }, easeInOutQuad: function (c, a, b, d, e) {
		if ((a /= e / 2) < 1) return d /
2 * a * a + b; return -d / 2 * (--a * (a - 2) - 1) + b
	}, easeInCubic: function (c, a, b, d, e) { return d * (a /= e) * a * a + b }, easeOutCubic: function (c, a, b, d, e) { return d * ((a = a / e - 1) * a * a + 1) + b }, easeInOutCubic: function (c, a, b, d, e) { if ((a /= e / 2) < 1) return d / 2 * a * a * a + b; return d / 2 * ((a -= 2) * a * a + 2) + b }, easeInQuart: function (c, a, b, d, e) { return d * (a /= e) * a * a * a + b }, easeOutQuart: function (c, a, b, d, e) { return -d * ((a = a / e - 1) * a * a * a - 1) + b }, easeInOutQuart: function (c, a, b, d, e) { if ((a /= e / 2) < 1) return d / 2 * a * a * a * a + b; return -d / 2 * ((a -= 2) * a * a * a - 2) + b }, easeInQuint: function (c, a, b,
d, e) { return d * (a /= e) * a * a * a * a + b }, easeOutQuint: function (c, a, b, d, e) { return d * ((a = a / e - 1) * a * a * a * a + 1) + b }, easeInOutQuint: function (c, a, b, d, e) { if ((a /= e / 2) < 1) return d / 2 * a * a * a * a * a + b; return d / 2 * ((a -= 2) * a * a * a * a + 2) + b }, easeInSine: function (c, a, b, d, e) { return -d * Math.cos(a / e * (Math.PI / 2)) + d + b }, easeOutSine: function (c, a, b, d, e) { return d * Math.sin(a / e * (Math.PI / 2)) + b }, easeInOutSine: function (c, a, b, d, e) { return -d / 2 * (Math.cos(Math.PI * a / e) - 1) + b }, easeInExpo: function (c, a, b, d, e) { return a == 0 ? b : d * Math.pow(2, 10 * (a / e - 1)) + b }, easeOutExpo: function (c,
a, b, d, e) { return a == e ? b + d : d * (-Math.pow(2, -10 * a / e) + 1) + b }, easeInOutExpo: function (c, a, b, d, e) { if (a == 0) return b; if (a == e) return b + d; if ((a /= e / 2) < 1) return d / 2 * Math.pow(2, 10 * (a - 1)) + b; return d / 2 * (-Math.pow(2, -10 * --a) + 2) + b }, easeInCirc: function (c, a, b, d, e) { return -d * (Math.sqrt(1 - (a /= e) * a) - 1) + b }, easeOutCirc: function (c, a, b, d, e) { return d * Math.sqrt(1 - (a = a / e - 1) * a) + b }, easeInOutCirc: function (c, a, b, d, e) { if ((a /= e / 2) < 1) return -d / 2 * (Math.sqrt(1 - a * a) - 1) + b; return d / 2 * (Math.sqrt(1 - (a -= 2) * a) + 1) + b }, easeInElastic: function (c, a, b,
d, e) { c = 1.70158; var g = 0, h = d; if (a == 0) return b; if ((a /= e) == 1) return b + d; g || (g = e * 0.3); if (h < Math.abs(d)) { h = d; c = g / 4 } else c = g / (2 * Math.PI) * Math.asin(d / h); return -(h * Math.pow(2, 10 * (a -= 1)) * Math.sin((a * e - c) * 2 * Math.PI / g)) + b }, easeOutElastic: function (c, a, b, d, e) { c = 1.70158; var g = 0, h = d; if (a == 0) return b; if ((a /= e) == 1) return b + d; g || (g = e * 0.3); if (h < Math.abs(d)) { h = d; c = g / 4 } else c = g / (2 * Math.PI) * Math.asin(d / h); return h * Math.pow(2, -10 * a) * Math.sin((a * e - c) * 2 * Math.PI / g) + d + b }, easeInOutElastic: function (c, a, b, d, e) {
	c = 1.70158; var g =
0, h = d; if (a == 0) return b; if ((a /= e / 2) == 2) return b + d; g || (g = e * 0.3 * 1.5); if (h < Math.abs(d)) { h = d; c = g / 4 } else c = g / (2 * Math.PI) * Math.asin(d / h); if (a < 1) return -0.5 * h * Math.pow(2, 10 * (a -= 1)) * Math.sin((a * e - c) * 2 * Math.PI / g) + b; return h * Math.pow(2, -10 * (a -= 1)) * Math.sin((a * e - c) * 2 * Math.PI / g) * 0.5 + d + b
}, easeInBack: function (c, a, b, d, e, g) { if (g == j) g = 1.70158; return d * (a /= e) * a * ((g + 1) * a - g) + b }, easeOutBack: function (c, a, b, d, e, g) { if (g == j) g = 1.70158; return d * ((a = a / e - 1) * a * ((g + 1) * a + g) + 1) + b }, easeInOutBack: function (c, a, b, d, e, g) {
	if (g == j) g = 1.70158;
	if ((a /= e / 2) < 1) return d / 2 * a * a * (((g *= 1.525) + 1) * a - g) + b; return d / 2 * ((a -= 2) * a * (((g *= 1.525) + 1) * a + g) + 2) + b
}, easeInBounce: function (c, a, b, d, e) { return d - f.easing.easeOutBounce(c, e - a, 0, d, e) + b }, easeOutBounce: function (c, a, b, d, e) { return (a /= e) < 1 / 2.75 ? d * 7.5625 * a * a + b : a < 2 / 2.75 ? d * (7.5625 * (a -= 1.5 / 2.75) * a + 0.75) + b : a < 2.5 / 2.75 ? d * (7.5625 * (a -= 2.25 / 2.75) * a + 0.9375) + b : d * (7.5625 * (a -= 2.625 / 2.75) * a + 0.984375) + b }, easeInOutBounce: function (c, a, b, d, e) {
	if (a < e / 2) return f.easing.easeInBounce(c, a * 2, 0, d, e) * 0.5 + b; return f.easing.easeOutBounce(c,
a * 2 - e, 0, d, e) * 0.5 + d * 0.5 + b
} 
	})
} (jQuery);
; /*
 * jQuery UI Effects Fade 1.8.16
 *
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * http://docs.jquery.com/UI/Effects/Fade
 *
 * Depends:
 *	jquery.effects.core.js
 */
(function (b) { b.effects.fade = function (a) { return this.queue(function () { var c = b(this), d = b.effects.setMode(c, a.options.mode || "hide"); c.animate({ opacity: d }, { queue: false, duration: a.duration, easing: a.options.easing, complete: function () { a.callback && a.callback.apply(this, arguments); c.dequeue() } }) }) } })(jQuery);
;

// Simple Set Clipboard System
// Author: Joseph Huckaby


/*
* zClip :: jQuery ZeroClipboard v1.1.1
* http://steamdev.com/zclip
*
* Copyright 2011, SteamDev
* Released under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*
* Date: Wed Jun 01, 2011
*/

(function (a) { a.fn.zclip = function (c) { if (typeof c == "object" && !c.length) { var b = a.extend({ path: "ZeroClipboard.swf", copy: null, beforeCopy: null, afterCopy: null, clickAfter: true, setHandCursor: true, setCSSEffects: true }, c); return this.each(function () { var e = a(this); if (e.is(":visible") && (typeof b.copy == "string" || a.isFunction(b.copy))) { ZeroClipboard.setMoviePath(b.path); var d = new ZeroClipboard.Client(); if (a.isFunction(b.copy)) { e.bind("zClip_copy", b.copy) } if (a.isFunction(b.beforeCopy)) { e.bind("zClip_beforeCopy", b.beforeCopy) } if (a.isFunction(b.afterCopy)) { e.bind("zClip_afterCopy", b.afterCopy) } d.setHandCursor(b.setHandCursor); d.setCSSEffects(b.setCSSEffects); d.addEventListener("mouseOver", function (f) { e.trigger("mouseenter") }); d.addEventListener("mouseOut", function (f) { e.trigger("mouseleave") }); d.addEventListener("mouseDown", function (f) { e.trigger("mousedown"); if (!a.isFunction(b.copy)) { d.setText(b.copy) } else { d.setText(e.triggerHandler("zClip_copy")) } if (a.isFunction(b.beforeCopy)) { e.trigger("zClip_beforeCopy") } }); d.addEventListener("complete", function (f, g) { if (a.isFunction(b.afterCopy)) { e.trigger("zClip_afterCopy") } else { if (g.length > 500) { g = g.substr(0, 500) + "...\n\n(" + (g.length - 500) + " characters not shown)" } e.removeClass("hover"); alert("Copied text to clipboard:\n\n " + g) } if (b.clickAfter) { e.trigger("click") } }); d.glue(e[0], e.parent()[0]); a(window).bind("load resize", function () { d.reposition() }) } }) } else { if (typeof c == "string") { return this.each(function () { var f = a(this); c = c.toLowerCase(); var e = f.data("zclipId"); var d = a("#" + e + ".zclip"); if (c == "remove") { d.remove(); f.removeClass("active hover") } else { if (c == "hide") { d.hide(); f.removeClass("active hover") } else { if (c == "show") { d.show() } } } }) } } } })(jQuery); var ZeroClipboard = { version: "1.0.7", clients: {}, moviePath: "ZeroClipboard.swf", nextId: 1, $: function (a) { if (typeof (a) == "string") { a = document.getElementById(a) } if (!a.addClass) { a.hide = function () { this.style.display = "none" }; a.show = function () { this.style.display = "" }; a.addClass = function (b) { this.removeClass(b); this.className += " " + b }; a.removeClass = function (d) { var e = this.className.split(/\s+/); var b = -1; for (var c = 0; c < e.length; c++) { if (e[c] == d) { b = c; c = e.length } } if (b > -1) { e.splice(b, 1); this.className = e.join(" ") } return this }; a.hasClass = function (b) { return !!this.className.match(new RegExp("\\s*" + b + "\\s*")) } } return a }, setMoviePath: function (a) { this.moviePath = a }, dispatch: function (d, b, c) { var a = this.clients[d]; if (a) { a.receiveEvent(b, c) } }, register: function (b, a) { this.clients[b] = a }, getDOMObjectPosition: function (c, a) { var b = { left: 0, top: 0, width: c.width ? c.width : c.offsetWidth, height: c.height ? c.height : c.offsetHeight }; if (c && (c != a)) { b.left += c.offsetLeft; b.top += c.offsetTop } return b }, Client: function (a) { this.handlers = {}; this.id = ZeroClipboard.nextId++; this.movieId = "ZeroClipboardMovie_" + this.id; ZeroClipboard.register(this.id, this); if (a) { this.glue(a) } } }; ZeroClipboard.Client.prototype = { id: 0, ready: false, movie: null, clipText: "", handCursorEnabled: true, cssEffects: true, handlers: null, glue: function (d, b, e) { this.domElement = ZeroClipboard.$(d); var f = 99; if (this.domElement.style.zIndex) { f = parseInt(this.domElement.style.zIndex, 10) + 1 } if (typeof (b) == "string") { b = ZeroClipboard.$(b) } else { if (typeof (b) == "undefined") { b = document.getElementsByTagName("body")[0] } } var c = ZeroClipboard.getDOMObjectPosition(this.domElement, b); this.div = document.createElement("div"); this.div.className = "zclip"; this.div.id = "zclip-" + this.movieId; $(this.domElement).data("zclipId", "zclip-" + this.movieId); var a = this.div.style; a.position = "absolute"; a.left = "" + c.left + "px"; a.top = "" + c.top + "px"; a.width = "" + c.width + "px"; a.height = "" + c.height + "px"; a.zIndex = f; if (typeof (e) == "object") { for (addedStyle in e) { a[addedStyle] = e[addedStyle] } } b.appendChild(this.div); this.div.innerHTML = this.getHTML(c.width, c.height) }, getHTML: function (d, a) { var c = ""; var b = "id=" + this.id + "&width=" + d + "&height=" + a; if (navigator.userAgent.match(/MSIE/)) { var e = location.href.match(/^https/i) ? "https://" : "http://"; c += '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="' + e + 'download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="' + d + '" height="' + a + '" id="' + this.movieId + '" align="middle"><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="false" /><param name="movie" value="' + ZeroClipboard.moviePath + '" /><param name="loop" value="false" /><param name="menu" value="false" /><param name="quality" value="best" /><param name="bgcolor" value="#ffffff" /><param name="flashvars" value="' + b + '"/><param name="wmode" value="transparent"/></object>' } else { c += '<embed id="' + this.movieId + '" src="' + ZeroClipboard.moviePath + '" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="' + d + '" height="' + a + '" name="' + this.movieId + '" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="' + b + '" wmode="transparent" />' } return c }, hide: function () { if (this.div) { this.div.style.left = "-2000px" } }, show: function () { this.reposition() }, destroy: function () { if (this.domElement && this.div) { this.hide(); this.div.innerHTML = ""; var a = document.getElementsByTagName("body")[0]; try { a.removeChild(this.div) } catch (b) { } this.domElement = null; this.div = null } }, reposition: function (c) { if (c) { this.domElement = ZeroClipboard.$(c); if (!this.domElement) { this.hide() } } if (this.domElement && this.div) { var b = ZeroClipboard.getDOMObjectPosition(this.domElement); var a = this.div.style; a.left = "" + b.left + "px"; a.top = "" + b.top + "px" } }, setText: function (a) { this.clipText = a; if (this.ready) { this.movie.setText(a) } }, addEventListener: function (a, b) { a = a.toString().toLowerCase().replace(/^on/, ""); if (!this.handlers[a]) { this.handlers[a] = [] } this.handlers[a].push(b) }, setHandCursor: function (a) { this.handCursorEnabled = a; if (this.ready) { this.movie.setHandCursor(a) } }, setCSSEffects: function (a) { this.cssEffects = !!a }, receiveEvent: function (d, f) { d = d.toString().toLowerCase().replace(/^on/, ""); switch (d) { case "load": this.movie = document.getElementById(this.movieId); if (!this.movie) { var c = this; setTimeout(function () { c.receiveEvent("load", null) }, 1); return } if (!this.ready && navigator.userAgent.match(/Firefox/) && navigator.userAgent.match(/Windows/)) { var c = this; setTimeout(function () { c.receiveEvent("load", null) }, 100); this.ready = true; return } this.ready = true; try { this.movie.setText(this.clipText) } catch (h) { } try { this.movie.setHandCursor(this.handCursorEnabled) } catch (h) { } break; case "mouseover": if (this.domElement && this.cssEffects) { this.domElement.addClass("hover"); if (this.recoverActive) { this.domElement.addClass("active") } } break; case "mouseout": if (this.domElement && this.cssEffects) { this.recoverActive = false; if (this.domElement.hasClass("active")) { this.domElement.removeClass("active"); this.recoverActive = true } this.domElement.removeClass("hover") } break; case "mousedown": if (this.domElement && this.cssEffects) { this.domElement.addClass("active") } break; case "mouseup": if (this.domElement && this.cssEffects) { this.domElement.removeClass("active"); this.recoverActive = false } break } if (this.handlers[d]) { for (var b = 0, a = this.handlers[d].length; b < a; b++) { var g = this.handlers[d][b]; if (typeof (g) == "function") { g(this, f) } else { if ((typeof (g) == "object") && (g.length == 2)) { g[0][g[1]](this, f) } else { if (typeof (g) == "string") { window[g](this, f) } } } } } } };

/**
* Cookie plugin
*
* Copyright (c) 2006 Klaus Hartl (stilbuero.de)
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
*/
jQuery.cookie = function (name, value, options) {
	if (typeof value != 'undefined') { // name and value given, set cookie
		options = options || {};
		if (value === null) {
			value = '';
			options.expires = -1;
		}
		var expires = '';
		if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
			var date;
			if (typeof options.expires == 'number') {
				date = new Date();
				date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
			} else {
				date = options.expires;
			}
			expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
		}
		// CAUTION: Needed to parenthesize options.path and options.domain
		// in the following expressions, otherwise they evaluate to undefined
		// in the packed version for some reason...
		var path = options.path ? '; path=' + (options.path) : '';
		var domain = options.domain ? '; domain=' + (options.domain) : '';
		var secure = options.secure ? '; secure' : '';
		document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
	} else { // only name given, get cookie
		var cookieValue = null;
		if (document.cookie && document.cookie != '') {
			var cookies = document.cookie.split(';');
			for (var i = 0; i < cookies.length; i++) {
				var cookie = jQuery.trim(cookies[i]);
				// Does this cookie string begin with the name we want?
				if (cookie.substring(0, name.length + 1) == (name + '=')) {
					cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
					break;
				}
			}
		}
		return cookieValue;
	}
};



 function initFontResize(){
		var newSize;
		if (jQuery.cookie(cookiename) == "true" && $.cookie("fontsize") == "large")
		{ resizeFonts(resizeDivs, fontIncrement, lineHeightIncrement); }

		jQuery('a.text-resize').click(function () {
			if (jQuery.cookie(cookiename) == "true" && jQuery.cookie("fontsize") == "large") {
				newSize = 'default';
				fontIncrement = -fontIncrement;
				lineHeightIncrement = -lineHeightIncrement
			}
			else {
				newSize = 'large';
				fontIncrement = Math.abs(fontIncrement);
				lineHeightIncrement = Math.abs(lineHeightIncrement);
			}
			resizeFonts(resizeDivs, fontIncrement, lineHeightIncrement);
			setCookie(newSize);
			return false;
		});
}


function setCookie(fontsize) 
{
	jQuery.cookie(cookiename, "true", cookieoptions);
	jQuery.cookie("fontsize", fontsize, cookieoptions);
}

function resizeFonts(resizeDivs, fontIncrement, lineHeightIncrement)
{
	jQuery.each(resizeDivs, function (idx, val) {
		var type;
		if (jQuery(val).length > 0) {
			jQuery(val).css('fontSize', parseFloat(jQuery(val).css('fontSize').replace('px', '')) + fontIncrement + 'px');
			jQuery(val).css('lineHeight', parseFloat(jQuery(val).css('lineHeight').replace('px', '')) + lineHeightIncrement + 'px');
		}
	});
}

function initNarativeExpand(){
	$('.link-box .detail-swap').live('click',function () {
		var conBlock = $('#content-block');
		window.scrollTo((conBlock.offset().left), (conBlock.offset().top));
	});
}

function initAutoCompleteDisable() {
    $('input[type="text"]').attr('autocomplete', 'off');
}
