﻿//-------------------------------------
// styleTextInput
//-------------------------------------
function styleTextInput() {
	var $TextInput = $(this);
	$TextInput.focus(function() {
		$(this).toggleClass("inputFocus");
	});
	$TextInput.blur(function() {
		$(this).toggleClass("inputFocus");
	});
}
//-------------------------------------
// setSearchEvents
//-------------------------------------
function setSearchEvents(){
	var $headerSearch = $('#headerSearch');
	if($headerSearch.length == 0) return
	var $Input = $('#headerSearch input:text');
	$Input.focus(function(){
		$headerSearch.attr("class","HeaderSearchFocus");
	});
	$Input.blur(function(){
		$headerSearch.attr("class","HeaderSearchBlur");
	});
	$Input.keypress(function(event) {
	if (event.keyCode == 13) {
		$(this).next().click();
		return false
	} 
	});
 $("#headerSearch a").click(function(event) {		
		var searchString = $Input.val();
		if(searchString == "") return
		searchString = searchString.replace(/ /g, "_");
		window.location.href = "/search.aspx?search="+encodeURIComponent(searchString);
	});
}
//-------------------------------------
// setContactEvents
//-------------------------------------
function setContactEvents(){
	if($('.Contact').length == 0) return
	//
	var $Input = $('.Contact input:text, .Contact textarea');

	var $Button = $(".Contact a");
	$Button.map(function(){
		$(this).attr("mshref",$(this).attr("href").split(":")[1]);
		$(this).attr("href","javascript:void(0)")
	});
	$Button.click(function(event) {
		var $Div = $(".Contact div.ErrorText");
		checkAndSubmitLoginForm($(this).prev(), $(this).attr("mshref"), $Div);
	});
}
//-------------------------------------
// setLoginEvents
//-------------------------------------
function setLoginEvents(){
	if($('.Login').length == 0) return
	//
	var $Input = $('.Login input');
	
	$('.Login :password').keydown(function(event) {
		if (event.keyCode == 13) {
			$(this).parent().next().click();
			return true
		} 
	});
	
	var $Button = $(".Login a");
	$Button.map(function(){
		$(this).attr("mshref",$(this).attr("href").split(":")[1]);
		$(this).attr("href","javascript:void(0)")
	});
	$Button.click(function(event) {
		var $Div = $(".ErrorText");
		checkAndSubmitLoginForm($(this).parent(), $(this).attr("mshref"), $Div);
	});
}

//-------------------------------------
// setLoginEvents
//-------------------------------------
function setSignupEvents(){
	if($('.Signup').length == 0) return
	//
	var $Input = $('.Signup input');
	
	$Input.keypress(function(event) {
		if (event.keyCode == 13) {
			$(this).parent().next().click();
			return true
		} 
	});
	
	var $Button = $(".Signup a");
	$Button.map(function(){
		$(this).attr("mshref",$(this).attr("href").split(":")[1]);
		$(this).attr("href","javascript:void(0)")
	});
	$Button.click(function(event) {
		var $Div = $(".ErrorText");
		checkAndSubmitLoginForm($(this).parent(), $(this).attr("mshref"), $Div);
	});
}


//-------------------------------------
// Check and submit form
//-------------------------------------
function checkAndSubmitLoginForm($Container, formFunction, $Div) {
	var errorCount = 0;		
	var $TextInputs = $("input:text, input:password, textarea", $Container)
	$TextInputs.each( function(index) {
		displayErrorText($Div, "")
		displayError($(this), false)
		//
		if(checkForm($(this), $Div)){			
			displayError($(this), true);
			errorCount++;
		}
		if(errorCount>0){
			return false;
		}
	});
	if(errorCount==0){
		eval(formFunction);
	}	
}
function displayError($Input, error){
	if (error) {
		$Input[0].focus();
		$Input[0].select()
		$Input.addClass("error")
		$Input.parent().addClass("labelError")
	} else {
		$Input.removeClass("error")
		$Input.parent().removeClass("labelError")
	}
}
function displayErrorText($Div, error_str){
	if (error_str != "") {
		$Div.text(error_str)
		$Div.show()
	} else {
		$Div.hide()
	}
}
function checkForm($Input, $Div) {
	if ($Input.parent().find("em").length > 0 && $Input.val() == "") {		
		displayErrorText($Div, "Det markerede inputfelt skal udfyldes")
		return true;
	}	
	var RegExPnr= new RegExp("pnr");
	if (RegExPnr.test($Input.attr("id"))) {
			if($Input.val() != "" && isNaN($Input.val())){
				displayErrorText($Div, "Postnummer skal kun være cifre")
				return true;
			}
	}	
	var RegExEmail= new RegExp("email");
	if (RegExEmail.test($Input.attr("id"))) {
		if (checkEmail($Input.val())) {
			displayErrorText($Div, "Dette er en ugyldig e-mail adresse")
			return true;
		}
	}	
	return false;
}
function checkEmail(txt, msg) {
	var RegExFilter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (RegExFilter.test(txt)) {
		if (txt.length >= 7) {
			if (txt.indexOf("@") >= 0) {
				if ((txt.indexOf("@") + 2) < txt.lastIndexOf(".")) {
					if (txt.lastIndexOf(".") < (txt.length - 2)) {
						return false;
					}
				}
			}
		}
	}
	return true;
}

//-------------------------------------
// Run form scripts
//-------------------------------------
function runFormScripts(){
	$("input:text, input:password, textarea").not("#search").each(styleTextInput);
	setContactEvents();
	setLoginEvents();
	setSignupEvents();
	setSearchEvents()
}