﻿var menuIsClicked = false;

$(function() {
	$("div.form").oForm();
	jQuery.each($("a.email"), function() {
		var tmpLink = $(this).attr('href');
		if(!tmpLink) tmpLink = $(this).html();
		tmpLink = tmpLink.replace('[snabela]','@');
		tmpLink = tmpLink.replace(/\[\]/ig,".");
		tmpLink = tmpLink.replace('.@.','@');
		$(this).attr('href','mailto:' + tmpLink)
		if(!$(this).hasClass('noTxt')) {
			$(this).html(tmpLink);
		}
		if($(this).hasClass('noLink')) {
			$(this).replaceWith(tmpLink);
		}
	});
	
	$("a.external").bind("click", function() {
		
		window.open($(this).attr('href'));
		return false;
		
	});
	
	//traverse active
	jQuery.each($(".menu .active"), function() {
	
		$($(this).parent("ul").parents("li:eq(0)")).parent("ul").parents("li:eq(0)").addClass("active");
		$(this).parent("ul").parents("li:eq(0)").addClass("active");

	});
	$("ul.dropdown li").bind("click", function() {
		if(menuIsClicked==false) {
			menuIsClicked = true;
			var linkObj = $(this).find("a");
			if($(linkObj).attr('href')) {
				if($(linkObj).attr('href').length>0) {
					if($(linkObj).hasClass('external')) {
						window.open($(linkObj).attr('href'));
					} else {
						document.location.href = $(linkObj).attr('href');
					}
				}
			}
		}
	
	});
	
	if($("#search_keywords").length>0) {
		$("#search_keywords")
		.bind('blur', function() {
			if($(this).val().length==0) {
				$(this).css('color','#606060');
				$(this).val('Find hvad du søger');		
			}
		})
		.bind('focus', function() {
			if($(this).val()=='Find hvad du søger') {
				$(this).css('color','#000');
				$(this).val('');			
			}
		});
	
		if($("#search_keywords").val().length==0) $("#search_keywords").val('Find hvad du søger'); 
		
		ajaxSearch("#search_keywords","init");
	}

	// gallery start
	if($("table.gal").length>0) {
		
		
		// gallery type 1
		$("table.gal img").hover(
			function() { $(this).stop().animate({ 'opacity' : 0.8}, 300); },
			function() { $(this).stop().animate({ 'opacity' : 1}, 300); }
		);
		
		// init images
	//	$("table.gal a[class='gal']").lightBox({ containerResizeSpeed: 800, txtImage : "Billede", txtOf : "af", overlayOpacity: 1 });
	$("table.gal a[class='gal']").fancybox({
		'overlayShow': true,
		'overlayColor': '#000',
		'overlayOpacity': 0.5,
		'titlePosition' : 'inside',
		'margin' : 80
	});

		
	}

	if($("form.dynForm").length>0) {
		init_dynForms();
	}	
	
	if($("#customImg_flashHolder").length>0) {
		$("#customImg_flashHolder").css({ 'width':Math.ceil($("body").width())+'px', 'display' : 'block' });
		$(window).resize(function(){
			$("#customImg_flashHolder").css({ 'width':Math.ceil($("body").width())+'px' });
		});
	}	
	
	if($("#customImg").length>0) {
		if($("#customImg img").length>1) {
			customImgFolder('init');
		} else {
			$("#customImg img").css('display','block');
		}
	}	
	
});

var customImgArr = "";
var curr_customImg = 0;
var customImg_time = 2500;
var customImg_delay = 2000;
function customImgFolder(cmd) {
	switch(cmd) {
		case "init":
			customImgArr = $("#customImg img").length-1;
			curr_customImg = customImgArr;
			$("#customImg img").css('display','block');
			setTimeout("customImgFolder('')",customImg_delay);
		break;
		case "":
			var tmp = curr_customImg;
			curr_customImg = (curr_customImg==0) ? curr_customImg = customImgArr : curr_customImg = curr_customImg-1;
			$("#customImg img").css('zIndex','0');
			$($("#customImg img").get(tmp)).css('zIndex','1');
			$($("#customImg img").get(curr_customImg)).css({ 'opacity' : 0, 'zIndex' : '2', 'display' : 'block' })
			.animate({ 'opacity' : 1 }, {duration : customImg_time, complete: function() {
				setTimeout("customImgFolder('')",customImg_delay);
			}});
			
			
		break;
	}
}

var searchTimeout = "";
function ajaxSearch(inputKW,cmd) {
	switch(cmd) {
		case "init":
			$(inputKW)
			.attr('autocomplete','off')
			.bind('keyup', function() {
				clearTimeout(searchTimeout);
				if($(this).val().length > 0) {
					ajaxSearch(inputKW,"do");
				} else {
					ajaxSearch(inputKW,"clear");
				}
			});
		break;

		case "clear":
			$("#container_search_results").slideUp('normal',function() {
				$(this).find('p.container').html('');
			});
		break;
		case "do":
			searchTimeout = setTimeout("ajaxSearch('" + inputKW + "','doIt');",500);
		break;
		case "doIt":
			$.ajax({
			   type: "POST",
			   url: "/inc/modules/ajax/ajaxSearch.asp",
			   data: "t=ajax&q=" + htmlSecure($(inputKW).val()),
			   success: function(msg){			
					$("#container_search_results").find('p.container').html(msg);
					$("#container_search_results").slideDown('normal');
				}
			});
		break;
	}
}

function htmlSecure(str_tmp) {
	var tmp = str_tmp;
	if(tmp!=""&&tmp.length>0) {
		tmp = tmp.replace(/>/g,"&gt;");
		tmp = tmp.replace(/</g,"&lt;");
		tmp = tmp.replace(/[\r\n]+/g, " ");
		tmp = encodeURIComponent(tmp);
	}
	return tmp;
}

function validEmail(str) {
	var re = new RegExp(/[a-z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-z]{2,12}/ig);
	return (str.match(re)) ? true : false;
}


function init_dynForms() {
	jQuery.each($("form.dynForm div.dyn"), function() {
		var parentForm = $(this).parent('form');
		
		var this_id = $(this).attr('id');
		var this_name = $(this).html();
		var this_type = $(this).attr('class').replace(/dyn /ig,"");
		
		var new_input = $("<input type=\"" + this_type + "\" name=\"" + this_name + "\" id=\"" + this_id + "\" />");

		$(this).replaceWith(new_input);
	});
	// $("#fSend").bind('click', function() {
		// if($("#fName").val()!=""&&$("#fPhone").val()!="") {
			// $(this).parent('form').submit();
		// } else {
			// alert("Udfyld venligst navn og telefonnummer!");
		// }
	// });

}




/* form plugin */
(function($) {

	$.fn.oForm = function() {

		return this.each(function() {
			
			// create <form> element
			var $form = $("<form />");
			$form.attr({
				'action' : $(this).attr('rel'),
				'id' : $(this).attr('id'),
				'class' : $(this).attr('class'),
				'method' : 'post',			
			})
			.html($(this).html());
			

			// set rel on input and textareas
			jQuery.each($(".input", $form), function() {
				$(this).attr('rel',$(this).val());
			});

            var $salt = $("<input type='hidden' />");
            $salt.attr({
                'name' : 'salt',
                'class' : 'input',
                'value' : 'doitroger'
            });
            $form.append($salt);


			// bind focus and blur events
			$(".input", $form)
			.focus(function() {
				if($(this).val()==$(this).attr('rel')) {
					$(this).val('').removeClass('empty');
				}			
			})
			.blur(function() {
				if($(this).val()=='') {
					$(this).val($(this).attr('rel'));
					$(this).addClass('empty');			
				}
					
			});
			
			// set $form submit validation check
			$form.bind('submit', validateForm);
			
			
			// replace div with $form
			$(this).replaceWith($form);
		});
		
		function validateForm() {
			// first clear out errors
			$(".required.error", $(this)).removeClass('error');
			
			// loop through required inputs
			var errs = 0;
			var emailRe = new RegExp(/[a-z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-z]{2,12}/ig);
			
			jQuery.each($(".required", $(this)), function() {
				
				var $validateWhat = 
				($(this).hasClass('email')) ? 'email' : 
					($(this).hasClass('string')) ? 'string' : '';
					
				var $isValid = true;
				var $currVal = ($(this).val()==$(this).attr('rel')) ? '' : $(this).val();
				
				switch($validateWhat) {
					case "email":
						$isValid = ($currVal.match(emailRe)) ? true : false;					
					break;
					case "string":
						$isValid = ($currVal!="");
				}
				
				if(!$isValid) {
					$(this).addClass('error');
					errs++;
				}
			});
			
			if(errs==0) {
				return true;		
			} else {
				return false;
			}

		}
	}
})( jQuery );
