/* IE6 flicker fix
-------------------------------------------------- */
/*@cc_on
try {
	document.execCommand("BackgroundImageCache", false, true);
} catch(err) {}
@*/

/* Dialog
-------------------------------------------------- */
var openModalContent = null;

function showModal(target, size){
	if ($("#overlay").length == 0) {
		$("#wrap").after("<div id='overlay'></div>");
	}
	if (openModalContent != null){
		$("#" + openModalContent).hide();
	}
	openModalContent = target;

	$("#overlay").css("display","block");
	$("#" + target).css("display","block");
	$("#modalwrap").fadeIn(150);

	if(size == 'big'){
		$("#modalwrap").addClass("modalpopup-large");
		$("#modalwrap").removeClass("modalpopup-small");
		$("#modalwrap").removeClass("modalpopup-normal");
	} else if(size == 'small'){
		$("#modalwrap").addClass("modalpopup-small");
		$("#modalwrap").removeClass("modalpopup-normal");
		$("#modalwrap").removeClass("modalpopup-large");
	} else {
		$("#modalwrap").addClass("modalpopup-normal");
		$("#modalwrap").removeClass("modalpopup-small");
		$("#modalwrap").removeClass("modalpopup-large");
	}

	if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
		$("html").css("overflow","hidden");
		if($("div.modalpopup-content").height() > "400") {
			$("div.modalpopup-content").css("height","400");
		}
	} else {
		$("#modalwrap").css("margin-top","-" + $("#modalwrap").height() / 2 + "px");
	}

	$("#overlay").bgiframe({ src: "javascript:'<html></html>';" });

	escape();
	return false;
}

function positionDialog(){
	if( $("#modalwrap").css("position") == "absolute" ){
		return false;
	} else {
		$("#modalwrap").animate({ 
			marginTop: "-" + $("#modalwrap").height() / 2 + "px"
		}, "normal" );
	}
}

function hideModal(){
	if (openModalContent != null){
		$("#" + openModalContent).fadeOut(150);
	}
	if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
		$("html").css("overflow","");
	}
	$("#modalwrap").fadeOut(150, function(){
		$("#overlay").css("display","none");
	});
	return false;
}

function escape(){
	document.onkeyup = function(e) {
		var code;
		if (!e) var e = window.event;
		if (e.keyCode) code = e.keyCode;
		else if (e.which) code = e.which;
		if (code == 27){
			hideModal();
		}
	}
}

/* Front page boxes
-------------------------------------------------- */
function alignBoxes(){
	var grp = $("div.group01");
	var count = $("div.col1 ul li", grp).length;
	var count2 = $("div.col2 ul li", grp).length;
	if (count2 < count) count = count2;

	var ie6 = $.browser.msie && parseFloat($.browser.version) < 7;

	for (var i = 0; i < count; i++){
		var box1 = $("div.col1 ul li:eq("+i+")", grp);
		var box2 = $("div.col2 ul li:eq("+i+")", grp);
		var h1 = box1.height();
		var h2 = box2.height();
		if (h1 > h2) {
			if (!ie6) box2.css("min-height",h1+"px");
			else box2.height(h1);
		}else if (h2 > h1){
			if (!ie6) box1.css("min-height",h2+"px");
			else box1.height(h2);
		}
	}
}

/* jQuery
-------------------------------------------------- */

var showTimepriceEdit = {
	init : function(){
		$("div.timeprice:not(.timeprice-edit) p.action a.edit").click(this.clickIt);
	},
	clickIt : function(){
		var referrer = $(this).parents("div.timeprice:first").attr("id");
		var target   = referrer + "-edit";
		$("#" + target).show();
		$("#" + referrer).hide();
		return false;
	}
};
var hideTimepriceEdit = {
	init : function(){
		$("div.timeprice-edit div.action a.cancel").click(this.clickIt);
	},
	clickIt : function(){
		var target   = $(this).attr("href");
		var referrer = target + "-edit";
		$(target).show();
		$(referrer).hide();
		return false;
	}
};

var accordionToggle = {
	init : function(){
		$("div.accordion").find("h2 a").click(this.clickIt);
	},
	clickIt : function(){
		if( $(this).parent("h2").hasClass("closed") ){
			$(this).parent("h2").addClass("open").removeClass("closed");
			$(this).parent().next("div").css("display","block");
		}
		else {
			$(this).parent("h2").addClass("closed").removeClass("open");
			$(this).parent().next("div").css("display","none");
		}
		return false;
	}
};

function autoNumbers() {
	$("ul.sortable").each(function(){
		$(this).children("li").each(function(i){
			$(this).find("p.nr").text( (i+1) );
		});
	});
}


/* IE6 */

function inputFocus() {
	$("input:text").focus(function() {
		$(this).addClass("focus");
	}).blur(function() {
		$(this).removeClass("focus");
	});
}
function buttonHover() {
	$("input:button").hover(
		function(){
			$(this).addClass("hover");
		},
		function(){
			$(this).removeClass("hover");
		}
	);
}

/* nav */

function showNav() {
	$("#nav").find("ul > li").hover(
		function(){
			$(this).children("div.a").hide();
			$(this).children("a").addClass("open");
			$(this).children("div.a").show();
		},
		function(){
			$(this).children("a").removeClass("open");
			$(this).children("div.a").hide();
		}
	);
	$("div.a", "#nav").bgiframe({ src: "javascript:'<html></html>';" });
}

/* image links */

function hoverImage() {
	$("p.img a.photo, div.group01 p.img a.video, div.tooltip-inner2 p.img a.photo, div.tooltip-inner2 p.img a.video").hover(
		function(){
			$(this).children("span").show("fast");
		},
		function(){
			$(this).children("span").hide("fast");
		}
	);
}

/* toggle news */

function toggleNews() {
	$("div.news").find("div.header p.details a").click(
		function(){
			if ($(this).hasClass("open")) {
				$(this).attr("rev", $(this).text() );
				$(this).parents("div.news").find("li.min p.desc").hide(50);
				$(this).parents("div.news").find("li.min").removeClass("max");
				$(this).removeClass("open");
				$(this).text( $(this).attr("rel") );
			} else {
				$(this).attr("rel", $(this).text() );
				$(this).parents("div.news").find("li.min p.desc").show(50, function() {
					if (jQuery.browser.msie) {
						$(this).get(0).style.removeAttribute('filter');
					}
				});
				$(this).parents("div.news").find("li.min").addClass("max");
				$(this).addClass("open");
				$(this).text( $(this).attr("rev") );
			}
			return false;
		}
	);
	return false;
}

/* toggle directions */

function toggleDirections() {
	$("div.header p.directions").find("a").toggle(
		function(){
			$(this).attr("rel", $(this).children("strong").text() );
			$("div.search-content ul.living li.min").show(50, function() {
				if (jQuery.browser.msie) {
					$(this).get(0).style.removeAttribute('filter');
				}
			});
			$(this).children("strong").text( $(this).attr("rev") );
		},
		function(){
			$("div.search-content ul.living li.min").hide(50);
			$(this).children("strong").text( $(this).attr("rel") );
		}
	);
	return false;
}

/* toggle map */

function toggleMap(){
    var cachedMapItems = $("#map, #regio2, #wrap2, #map-inner, #map-open");
    $("div.header p.map-toggle a", "#search-results").toggle(function(){
        $(this).attr("rel", $(this).children("strong").text());
        cachedMapItems.css("height", "450px").css("min-height", "450px");
        cachedMapItems.css('visibility', 'visible').show();
        $(this).children("strong").text($(this).attr("rev"));
    }, function(){
        cachedMapItems.css('visibility', 'hidden');
        cachedMapItems.css("height", "1px").css("min-height", "0px");
        $(this).children("strong").text($(this).attr("rel"));
    });
    return false;
}

function toggleMap2(){
    var cachedMapItems = $("#map, #regio2, #wrap2, #map-inner, #map-open");
	var originalHeight = cachedMapItems.css("height");
	
    $("div.header p.map-toggle-open a", "#search-results").toggle(function(){
		$(this).attr("rel", $(this).children("strong").text() );
        cachedMapItems.css('visibility', 'hidden');
        cachedMapItems.css("height", "1px").css("min-height", "0px");
         $(this).children("strong").text( $(this).attr("rev") );
    }, function(){
        cachedMapItems.css("height", originalHeight).css("min-height", originalHeight);
        cachedMapItems.css('visibility', 'visible').show();
        $(this).children("strong").text( $(this).attr("rel") );
    });
    return false;
}

/* search */

var toggleSearchHeaders = {
	init : function(){
		$("div.search-category").click(this.clickIt);
	},
	clickIt : function(){
		if( $(this).find("h2").hasClass("closed") ) {
			$(this).next("div.search-content").slideDown("fast");
			$(this).find("h2").removeClass("closed");
		} else {
			$(this).next("div.search-content").slideUp("fast");
			$(this).find("h2").addClass("closed");
		}
		return false;
	}
};
function toggleSearchContent() {
	$("div.header p.details a", "#search-results-all").toggle(
		function(){
			$(this).addClass("closed");
			$(this).attr("rel", $(this).text() );
			$("div.search-content").slideUp("fast");
			$("div.search-category h2").addClass("closed");
			$(this).text( $(this).attr("rev") );
		},
		function(){
			$(this).removeClass("closed");
			$("div.search-content").slideDown("fast");
			$("div.search-category h2").removeClass("closed");
			$(this).text( $(this).attr("rel") );
		}
	);
	return false;
}
function openSearchLayer() {
	var search = $("#search");
	var offset = search.offset();
	var field = $("input:text", "#search");
	var layer = $("#search-layer");

	$("input", "#search").focus(function() {
		$(field).addClass("text-focus");
		layer.fadeIn(150, function() {
					if (jQuery.browser.msie) {
						$(this).get(0).style.removeAttribute('filter');
					}
				}).css({
			top: offset.top + field.outerHeight(),
			right: $("#search :submit").outerWidth(),
			width: field.outerWidth()
		})
	});
}
function closeSearchLayer() {
	$("#search-layer").fadeOut(150);
	$("#search input:text").removeClass("text-focus");
	$("#search-layer").fadeOut(150);
}
var setSearchRadio = {
	init : function(){
		$("input:radio", "#search-layer").click(this.clickIt);
	},
	clickIt : function(){
		$(this).parents("ul").children("li").removeClass("active");
		$(this).parents("ul").find("input:radio:checked").removeAttr("checked");
		$(this).attr("checked","checked");
		$(this).parent("li").addClass("active");
	}
};
function controlSearchRadio() {
	$("input:radio:checked", "#search-layer").parent("li").addClass("active");
}
var resetSearch = {
	init : function(){
		$("div.content-search a.reset", "#filter").click(this.clickIt);
	},
	clickIt : function(){
		$(this).parents("div.content:first").find("input:text").val("").focus();
		return false;
	}
};

/* carousel */

var Carousel = {
    init: function(){
	
		var pageLimit = 4;
		var scrollSize = 4;
		
		var parent = $('div.carousel');
		if (parent.hasClass("carousel-double")) {
			scrollSize = 2;
			
		}
		
		$("div.carousel div.content ul li").each(function(n, item){
			if (n > pageLimit * scrollSize - 1) 
				$(item).remove();
		});
		var mycarousel_initCallback = function(carousel){
			var pager = $('div.header .options .pager', parent).empty();
			
			var size = Math.ceil(carousel.options.size / scrollSize);
			for (i = 1; i <= Math.min(size, pageLimit); i++) {
				pager.append('<li><a href="#" rel="' + i + '" title="' + i + '">' + i + '</a></li>');
			}
			
			$("a[rel='1']", pager).parent("li").addClass("active");
			if (size < 2) {
				$('div.header .options', parent).hide();
				$('div.header p.more', parent).hide();
			}
			
			$("a", pager).click(function(){
				var page = parseInt($(this).text());
				carousel.scroll((page - 1) * scrollSize + 1);
				$("a", pager).parent("li").removeClass("active");
				$(this).parent("li").addClass("active");
				return false;
			});
			
			$('ul.nav li.next a', parent).bind('click', function(){
				var page = Math.floor((carousel.last + 1) / scrollSize) + 1;
				if (!$(this).hasClass("disabled") && page <= pageLimit) {
					$("a", pager).parent("li").removeClass("active");
					$("a[rel='" + page + "']", pager).parent("li").addClass("active");
					carousel.next();
				}
				return false;
			});
			
			$('ul.nav li.prev a', parent).bind('click', function(){
				if (!$(this).hasClass("disabled")) {
					var page = Math.ceil((carousel.last - scrollSize) / scrollSize);
					$("a", pager).parent("li").removeClass("active");
					$("a[rel='" + page + "']", pager).parent("li").addClass("active");
					carousel.prev();
				}
				return false;
			});
		};
		if (parent) {
			$('div.content ul', parent).jcarousel({
				scroll: scrollSize,
				initCallback: mycarousel_initCallback,
				buttonNextCallback: function(instance, element, state){
					$('ul.nav li.next a', parent)[state ? "removeClass" : "addClass"]("disabled");
				},
				buttonPrevCallback: function(instance, element, state){
					$('ul.nav li.prev a', parent)[state ? "removeClass" : "addClass"]("disabled");
				}
			});
			// for safari based browsers, the viewport is too small some <li> are placed on next line 
			var w = $("div.content ul", parent).width()+100+"px";
			$("div.content ul", parent).css('width', w);
			
		}
	}
};

function galleryLinks() {
	var wrap = $("#img");
	var pimg = wrap.children("p.img");
	var img  = pimg.children("img");
	var urls = pimg.children("a.prev, a.next");

	pimg.width(img.width());
	urls.height(img.height());
}

function tooltip() {
	$("div.map-small-inner").find("p a").click(function (e) {
		$("div.tooltip").hide();
		var idname = $(this).parent().attr("id");
		$("div." + (idname)).show().css("left", e.pageX - $("div." + (idname)).width() - 11 + "px").css("top", e.pageY - 79 + "px");

		return false;
	});
	$("div.tooltip").find("p.close a").click(function () {
		$("div.tooltip").hide();
	});
}

function tooltip2() {
	$("a.contact, a.related").click(function (e) {
		$("div.tooltip").hide();
		$("a.related").removeClass("related-active");
		var idname = $(this).attr("id");
		$("div." + (idname)).show().css("left", e.pageX - $("div." + (idname)).width() - 11 + "px").css("top", e.pageY - 79 + "px");
		if( $(this).hasClass("related") ) {
			$(this).addClass("related-active");
		}
		return false;
	});
	$("div.tooltip p.close a").click(function () {
		$("div.tooltip").hide();
		$("a.related").removeClass("related-active");
			
	});
}


var toggleTree = {
	init : function(){
		$("ul.options-tree").find("li a.toggle").click(this.clickIt);
	},
	clickIt : function(){
		$(this).parent("p").parent("li").children("ul").slideToggle("fast");
		$(this).toggleClass("minus");
		return false;
	}
};

var toggleOptiontree = {
	init : function(){
		$("ul.option-tree").find("p.toggle").find("a").click(this.clickIt);
	},
	clickIt : function(){
		$(this).parent("p").parent("div").parent("li").children("ul").slideToggle("fast");
		$(this).parent().toggleClass("minus");
		return false;
	}
};

function showDelConfirmLive() {
	$("p.action a.delete, p.action a.no").live("click", function(){
		$(this).parents("p").children("a.delete, span.confirm").toggle();
		return false;
	});
}

var setRadio = {
	init : function(){
		$("ul.options").find("input:radio").click(this.clickIt);
	},
	clickIt : function(){
		$(this).parents("ul").find("div.wrap").hide();
		$(this).parents("ul").find("span.toggle").hide();
		$(this).parents("ul").find("label").removeClass("active");
		$(this).parents("ul").find("input:radio:checked").removeAttr("checked");

		$(this).next("label").addClass("active");
		$(this).attr("checked","checked");
		$(this).nextAll("div.wrap").show();
		$(this).nextAll("span.toggle").show();
	}
};
function checkRadio() {
	$("ul.options").find("input:radio:checked").next("label").addClass("active");
}
function focusOptionLabel() {
	$("ul.options").find("input:radio, input:checkbox").focus(function() {
		$(this).next("label").addClass("focus");
	}).blur(function() {
		$(this).next("label").removeClass("focus");
	});
}

var toggleTree2 = {
	init : function(){
		$("ul.options-tree2").find("a, label").click(this.clickIt);
	},
	clickIt : function(){
		$(this).parent("li").children("ul").slideToggle("fast");
		$(this).parent("li").children("a").toggleClass("minus");
		return false;
	}
};
function initOptionsTree2() {
	var tree = $("ul.options-tree2");
	if( tree.length > 0 ){
		$("ul", tree).css("display","none");
		$("li:has(ul) > label", tree).addClass("anchor");
		$("li:has(ul)", tree).prepend("<a href='#' class='toggle'></a>");
		$("li:not(:has(ul))", tree).prepend("<span class='toggle'></span>");
	}
}

/* popular event size & resize 

function popularSize() {
	var wrap = $("div.popular-event");
	wrap.height(wrap.height()).addClass("popular-event-fixed");
}
function popularResize() {
	var wrap   = $("div.popular-event");
	var header = wrap.children("div.header").outerHeight();
	var event  = wrap.children("div.event").outerHeight();

	wrap.animate({
		height: header + event
	}, 300);
}
*/
$.fn.pause = function(duration) {
	$(this).animate({ dummy: 1 }, duration);
	return this;
};

var sendTo = {
	init : function(){
		$("div.send-to input.button").click(this.clickIt);
	},
	clickIt : function(){
		$("div.send-to div.msg-ok").show();
		$("div.send-to table.form").hide();

		if (openModalContent != null){
		$("#" + openModalContent).pause(3000).fadeOut(150);
		}
		if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
			$("html").css("overflow","");
		}
		$("#modalwrap").pause(3000).fadeOut(150, function(){
			$("#overlay").css("display","none");
		});
		return false;
	}
};

function toggleHelp() {
	$("img.help-toggle").click(function(){
		var target = $(this).next("div.help");
		var target2 = $(this).parent("p").next("div.help");
		var offset = $(this).offset();
		var scroll = $(document).scrollLeft();

		if(target.is(":visible")){
			target.css("display","none");
		}
		if(target2.is(":visible")){
			target2.css("display","none");
		}
		else {
			$("div.help:visible").css("display","none");
			target.css({
				display: "block",
				top: offset.top + "px",
				left: $(this).width() + offset.left + "px",
				right: "auto"
			})
			target2.css({
				display: "block",
				top: offset.top + "px",
				left: $(this).width() + offset.left + "px",
				right: "auto"
			})
			.bgiframe({ src: "javascript:'<html></html>';" });

			if( offset.left - scroll + target.width() > $(window).width() ){
				target.css({
					left: "auto",
					top: offset.top + 32 + "px", // default row height is 32px, adjust if necessary
					right: 0 - scroll + "px"
				})
			}
				if( offset.left - scroll + target2.width() > $(window).width() ){
				target2.css({
					left: "auto",
					top: offset.top + 32 + "px", // default row height is 32px, adjust if necessary
					right: 0 - scroll + "px"
				})
			}
		}
	});
}
function closeHelp() {
	$("div.help p.close a").click(function(){
		$("div.help:visible").css("display","none");
		return false;
	});
}


/* rowmenu */

var clickRowmenu = {
	init: function() {
		$("p.rowmenu-click").find("a").click(this.toggleIt);
	},
	toggleIt: function() {
		var link = $(this);
		var menu = link.parent().next(".rowmenu");
		var row = link.parent().parent(".wrap");
		if(menu.is(":visible")){
			closeRowmenu();
		}
		else {
			closeRowmenu();
			link.addClass("active");
			menu.css({
				display: "block",
				marginTop: "-" + link.outerHeight() - ("1") + "px",
				marginLeft: "-" + menu.outerWidth() + "px"
			})
			$(document).one("click", closeRowmenu);
			row.addClass("wrap-open");
		}
		return false;
	}
};
var hoverRowmenu = {
	init: function() {
		$("p.rowmenu-hover").find("a").mouseenter(this.toggleIt).click(function(){ return false; });
	},
	toggleIt: function() {
		var link = $(this);
		var menu = link.parent().next(".rowmenu");

		closeRowmenu();
		link.addClass("active").parent().one("mouseleave", closeRowmenu);
		menu.css({
			display: "block",
			marginTop: "-" + link.outerHeight() - ("1") + "px",
			marginLeft: "-" + menu.outerWidth() + "px"
		})
		return false;
	}
};
function closeRowmenu() {
	$(".rowmenu").css("display","none");
	$(".rowmenu-click, .rowmenu-hover").removeClass("active");
	$("ul.option-tree").find("div.wrap").removeClass("wrap-open");
}

/* =ready
-------------------------------------------------- */
$(document).ready(function(){
			
	clickRowmenu.init();
	hoverRowmenu.init();

	closeHelp();
	toggleHelp();

	/* popular */

	//popularSize();

	/* layer */

	$("div.layer", "#lang").outerClick(outerClickHandler);
	function outerClickHandler() {
		if ($(this).is(":visible")) {
			$(this).fadeOut(150);
		}
	}
	$("p a", "#lang").click(function() {
		var layer  = $(this).parent().next("div.layer");
		var position = $(this).position();
		if (layer.is(":visible")) {
			layer.fadeOut(150);
		}
		else {
			layer.fadeIn(150).css({
				top: position.top + $(this).outerHeight(),
				left: position.left,
				minWidth: $(this).outerWidth()
			})
			.find("a").click(function () {
				layer.fadeOut(150);
			});
		}
		return false;
	});

	/* hide */

	$("#map, div.search-content ul.living li.min, div.send-to div.msg-ok").css("display","none");
	$("div.accordion h2.closed").next("div.content").css("display","none");

	/* init */

	//$("#lang select, div.header div.options select, #filter p.currency select").linkselect();
	$("p.close a", "#search-layer").click(function() { closeSearchLayer(); return false; });
	$("li.myest em", "#nav").css("margin-left", 12 - $("li.myest > a", "#nav").outerWidth() - $("li.myest > a em", "#nav").outerWidth() );
	
	$("ul.options").find("input:radio:not(:checked)").nextAll("div.wrap").css("display","none");
	$("div.search-header.toggle").find("input:checkbox:not(:checked)").parents("div.toggle").next("div.search-content").css("display","none");

	
	$("ul.options").find("input:radio:not(:checked)").nextAll("span.toggle").css("display","none");

	toggleTree.init();

	initOptionsTree2();
	toggleTree2.init();
	toggleOptiontree.init();

	sendTo.init();

	showNav();
	toggleMap();
	toggleMap2();
	toggleNews();
	toggleDirections();
	hoverImage();

	accordionToggle.init();

	galleryLinks();
	tooltip2();

	checkRadio();
	setRadio.init();
	focusOptionLabel();

	Carousel.init();

	resetSearch.init();
	toggleSearchContent();
	toggleSearchHeaders.init();

	showDelConfirmLive();
	showTimepriceEdit.init();
	hideTimepriceEdit.init();

	openSearchLayer();
	controlSearchRadio();
	setSearchRadio.init();

	$("#tabs").tabs();

	$("ul.gallery.sort").sortable({ handle: "p.img", revert: 100, containment: '#container1', connectWith: 'ul.gallery.sort', placeholder: 'placeholder', forcePlaceholderSize: true });
	$("ul.gallery.sort").find("p.img").disableSelection();

	$("ul.sortable").sortable({ handle: "p.move a", axis: 'y', revert: 300, containment: '#container1', placeholder: 'ui-state-highlight', forcePlaceholderSize: true, update: function(event, ui) { autoNumbers() } });
	$("ul.sortable").find("p.move").disableSelection();

	/* IE7 */

	if($.browser.msie && ($.browser.version < 8) ){
		$("input:text, input:password").addClass("iexplore");
	}

	/* IE6 */
	if($.browser.msie && ($.browser.version < 7) ){
	}
    $('a', '#content #split-content').filter(function(){
        return $(this).attr("href").indexOf("http") != -1;
    }).addClass('external');	

});
function limitText(field, limit) {	 
         if (field.value.length > limit) {	 
                 field.value = field.value.substring(0, limit);	 
                 return false;	 
         }	 
 }