//
//	Försvåra för robotar att hitta en e-postadress
//
function em( a, b, c, d, e ) {
	if( typeof( e ) != "undefined" && e != "" ) {
		if( typeof( d ) != "undefined" && d != "" ) {
			document.write( "<" + "a href=\"mail" + "to:" + a + "@" + b + "." + c + "?" + e + "\">" + d + "</a>" );
		} else {
			document.write( "<" + "a href=\"mail" + "to:" + a + "@" + b + "." + c + "?" + e + "\">" + a + "@" + b + "." + c + "</a>" );
		}
	} else {
		if( typeof( d ) != "undefined" && d != "" ) {
			document.write( "<" + "a href=\"mail" + "to:" + a + "@" + b + "." + c + "\">" + d + "</a>" );
		} else {
			document.write( "<" + "a href=\"mail" + "to:" + a + "@" + b + "." + c + "\">" + a + "@" + b + "." + c + "</a>" );
		}
	}
}


var RecaptchaOptions = {lang:'sv'};


var hdrBase = "splash/";
var hdr = Array(
		"splash2011-01.jpg",
		"splash2011-02.jpg",
		"splash2011-03.jpg",
		"splash2011-04.jpg",
		"splash2011-21.jpg",
		"splash2011-05.jpg",
		"splash2011-06.jpg",
		"splash2011-07.jpg",
		"splash2011-08.jpg",
		"splash2011-23.jpg",
		"splash2011-09.jpg",
		"splash2011-10.jpg",
		"splash2011-12.jpg",
		"splash2011-13.jpg",
		"splash2011-14.jpg",
		"splash2011-22.jpg",
		"splash2011-15.jpg",
		"splash2011-16.jpg",
		"splash2011-17.jpg",
		"splash2011-18.jpg",
		"splash2011-19.jpg",
		"splash2011-20.jpg",
		"splash2011-11.jpg"
	);

var	hbg = 0;

var splashLoaded = false;
var iframeKalk = null;
var loadingFrame = null;

$(document).ready(function(){

	//
	//	Om vi kör med en iframe, se till att anpassa till utrymmet
	//
	if( $("div#content.iframe iframe").length == 1 ) {
		$(window).resize( function() {
			var wh = $(window).height();
			$("div#content.iframe iframe").css("height", (wh-245)+"px");
		});
		$(window).trigger("resize");

		if( $("div#bytbilLinks").length == 1 ) {

			var checkIframeLink = function() {
				if( loadingFrame == null ) {
					loadingFrame = $("div#content.iframe iframe").attr("src");
				}	
				$("div#bytbilLinks a").each( function() {
					if( $(this).attr("href") == loadingFrame ) {
						$(this).addClass("active");
					} else {
						$(this).removeClass("active");
					}
				});
			}
			$("div#bytbilLinks a").bind("click", function() {
				loadingFrame = $(this).attr("href");
			});
			$("div#content.iframe iframe").load( function() {
				checkIframeLink();
			});
		}

	}

	//
	//	Om vi är på introsidan skall vi köra bildspelet
	//
	if( $("div#splashcontainer").length == 1 ) {

		//
		//	Kolla vilken bakgrund vi visade sist
		//
		hbg = getCookie("hdrbg");
		hbg = hbg && parseInt( hbg ) < hdr.length ? parseInt( hbg ) : Math.floor(Math.random()*hdr.length);	// slumpa vilken banner som visas först

		//
		//	Lägg till bakgrunden till huvudet, starta igång
		//	det automatiska bytet av bakgrundsbild
		//
		$("<div class=\"splash\" id=\"hdrbg"+hbg+"\"></div>").hide().css({"backgroundImage":"url("+hdrBase+hdr[hbg]+")"}).prependTo("div#splashcontainer");
		for( var i = 0; i < hdr.length; i++ ) {
			if( i != hbg ) {
				$("<div class=\"splash\" id=\"hdrbg"+i+"\" rel=\""+hdrBase+hdr[i]+"\"></div>").hide().prependTo("div#splashcontainer");
			}
		}

		$("div#hdrbg"+hbg).show();
		loadNextSplash( hbg );

		setTimeout( function() {
			var tcb = arguments.callee;
			if( splashLoaded ) {
				var nbg = hbg + 1 == hdr.length ? 0 : hbg + 1;
				loadNextSplash( nbg );
				setCookie("hdrbg", nbg, false, "/", "", "");
				$("div#hdrbg"+nbg).insertAfter("div#hdrbg"+hbg).fadeIn(5000, function() {
					$("div#hdrbg"+hbg).hide();
					hbg = nbg;
					setTimeout( tcb, 10000 );
				});
			} else {
				setTimeout( tcb, 2000 );
			}
		}, 10000 );
	}

	if( $("div#kalkylator").length == 1 ) {
		$("div#kalkylator button#kalkylera").bind("click", function() {
			var that = this,
				thatText = $(this).text();
			var sum = $("div#kalkylator input#summa").val(),
				kon = $("div#kalkylator input#kontant").val(),
				man = $("div#kalkylator select#manader").val();
			if( !sum.match(/^\d+$/) ) {
				alert("Lånesumman felaktigt angiven, använd endast siffror");
				return;
			}
			if( !kon.match(/^\d+$/) ) {
				alert("Kontantinsats felaktigt angiven, använd endast siffror");
				return;
			}
			if( sum * 0.2 > kon * 1 ) {
				if( !confirm("Kontantinsats är mindre än 20%, fortsätt beräkna ändå?") ) {
					return;
				}
			}
			if( kon * 1 > sum * 1 ) {
				alert("Kontantinsats större än lånesumman. Grattis, du behöver inte låna någonting!");
				return;
			}
			if( $("iframe#kalktemp").length == 0 ) {
				iframeKalk = $("<iframe>");
				iframeKalk.attr({
					src: "about:blank",
					id: "kalktemp",
					name: "kalktemp"
				});
				iframeKalk.css({
					position: "absolute",
					left: "-2000px",
					top: "-2000px"
				});
				iframeKalk.bind("load", function() {
					if( $(this).attr("src") != "about:blank" ) {
						$(that).text(thatText).removeAttr("disabled");
						document.$_GET = [];
						if( $.browser.msie && ( $.browser.version == 6 || $.browser.version == 7 ) ) {
							var urlHalves = String( document.frames["kalktemp"].document.location ).split('?');
						} else {
							var urlHalves = String( $(this).get(0).contentDocument.location ).split('?');
						}
						if( urlHalves[1] ) {
							var urlVars = urlHalves[1].split('&');
							for( var i = 0; i <= ( urlVars.length ); i++ ) {
								if( urlVars[i] ) {
									var urlVarPair = urlVars[i].split('=');
									document.$_GET[ urlVarPair[0] ] = urlVarPair[1];
								}
							}
						}
						$("td#resultat").html("<p>"+document.$_GET["HY"]+" kr</p><p>"+document.$_GET["UA"]+" kr</p><p>"+document.$_GET["AA"]+" kr</p><p>"+document.$_GET["RT"]+"%</p><p>"+document.$_GET["RE"]+"%</p>");
					}
				});
				iframeKalk.prependTo( $("body") );
			}
			iframeKalk.attr("src","http://www2.wasakredit.se/finkalk/result.asp?AF=884A858B773E7D25&AM="+man+"&FF="+kon+"&BP="+sum+"&TG=http://www.fri-bo.com/dummy.html");
			$(this).text("Hämtar resultat...").attr("disabled","disabled");
		});
	}

	if( $("form#bokning").length ) {
	
		var checkFields = function() {

			var errMsg = [],
				fi = null;

			// Kolla namn
			if( $('input#bNamn').val() == '' ) {
				$('input#bNamn').parent().removeClass('validated').addClass('invalid');
				errMsg.push('Du måste ange ditt för- och efternamn!');
				fi = fi == null ? $('input#bNamn') : fi;
			} else {
				$('input#bNamn').parent().removeClass('invalid').addClass('validated');
			}

			// Kolla telefon
			if( $('input#bTelefon').val() == '' ) {
				$('input#bTelefon').parent().removeClass('validated').addClass('invalid');
				errMsg.push('Du måste ange ditt telefonnummer! Mobilnummer går bra.');
				fi = fi == null ? $('input#bTelefon') : fi;
			} else if( !( /^\+?[\d\s-]+$/.test( $('input#bTelefon').val() ) ) ) {
				$('input#bTelefon').parent().removeClass('validated').addClass('invalid');
				errMsg.push('Telefonnumret är ogiltigt, enbart siffror och bindestreck accepteras!');
				fi = fi == null ? $('input#bTelefon') : fi;
			} else {
				$('input#bTelefon').parent().removeClass('invalid').addClass('validated');
			}

			// Kolla e-post
			if( $('input#bEpost').val() == '' ) {
				$('input#bEpost').parent().removeClass('validated').addClass('invalid');
				errMsg.push('Du måste ange din e-postadress!');
				fi = fi == null ? $('input#bEpost') : fi;
			} else if( !( /^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/.test( $('input#bEpost').val() ) ) ) {
				$('input#bEpost').parent().removeClass('validated').addClass('invalid');
				errMsg.push('Du måste ange en giltig e-postadress!');
				fi = fi == null ? $('input#bEpost') : fi;
			} else {
				$('input#bEpost').parent().removeClass('invalid').addClass('validated');
			}

			// Kolla registreringsnummer
			if( $('input#bRegnr').val() == '' ) {
				$('input#bRegnr').parent().removeClass('validated').addClass('invalid');
				errMsg.push('Du måste ange ditt registreringsnummer!');
				fi = fi == null ? $('input#bRegnr') : fi;
			} else if( !( /^[A-Za-z]{3}\s?\d{3}$/.test( $("input#bRegnr").val() ) ) ) {
				$('input#bRegnr').parent().removeClass('validated').addClass('invalid');
				errMsg.push('Du måste ange ett giltigt registreringsnummer! Tre bokstäver + tre siffror.');
				fi = fi == null ? $('input#bRegnr') : fi;
			} else {
				$('input#bRegnr').parent().removeClass('invalid').addClass('validated');
			}

			// Kolla ReCAPTCHA
			if( $('input#recaptcha_response_field').length != 0 ) {
				if( $('input#recaptcha_response_field').val() == '' ) {
					$('input#recaptcha_response_field').closest('div#recaptcha').removeClass('validated').addClass('invalid');
					errMsg.push('Du måste ange text i ReCAPTCHA-fältet!');
					fi = fi == null ? $('input#recaptcha_response_field') : fi;
				} else {
					$('input#recaptcha_response_field').closest('div#recaptcha').removeClass('invalid').addClass('validated');
				}
			}

			var mpCaptcha = $('div#mpcaptcha-input input[name=mpcaptcha]');
			if( mpCaptcha.length != 0 ) {
				if( mpCaptcha.val() == '' ) {
					mpCaptcha.closest('div#recaptcha').removeClass('validated').addClass('invalid');
					errMsg.push('Du måste ange sifferkoden i CAPTCHA-fältet!');
					fi = fi == null ? mpCaptcha : fi;
				} else {
					mpCaptcha.closest('div#recaptcha').removeClass('invalid').addClass('validated');
				}
			}

			return {valid: errMsg.length ? false : true, errors: errMsg, firstInvalid: fi};

		}

		$('form#bokning').on('change', 'input[rel=check]', function() {
			checkFields();
		});
		if( $('input#recaptcha_response_field').length != 0 ) {
			$('input#recaptcha_response_field').on('change', function() {
				checkFields();
			});
		}
		if( $('div#mpcaptcha-input input[name=mpcaptcha]').length != 0 ) {
			$('div#mpcaptcha-input input[name=mpcaptcha]').on('change', function() {
				checkFields();
			});
		}
		checkFields();

		$("form#bokning").bind("submit", function( e ) {
		
			var r = checkFields();
			
			if( !r.valid ) {
				alert( r.errors.join('\n') );
				r.firstInvalid.focus();
				return false;
			}

			var fdata = $("form#bokning").serialize();
			$("form#bokning input, form#bokning textarea").each( function() {
				$(this).attr("disabled","disabled");
			});
			$("form#bokning div#bSubmit input").attr("disabled","disabled");


			$.ajax({
				type	: "POST",
				url		: $("form#bokning").attr("rel"),
				data	: fdata,
				success	: function( resdata, status, xhr ) {
					try {
						var response = $.parseJSON( resdata );
						if( response.success === true ) {
							var success = true;
						} else {
							var success = false;
						}
						if( !success ) {
							alert( "Det uppstod ett eller flera fel med din bokningsanmälan:\n\n"+response.errortext+"\nÅtgärda felen och försök igen." );
							$("form#bokning input, form#bokning textarea").each( function() {
								$(this).removeAttr("disabled");
							});
							$("div#bSubmit input").removeAttr("disabled");
						}
					} catch( err ) {
						var success = false;
						alert( "Svaret från servern kunde inte tolkas korrekt. Försök igen, och om felet kvarstår, kontakta oss per telefon istället." );
						$("form#bokning input, form#bokning textarea").each( function() {
							$(this).removeAttr("disabled");
						});
						$("div#bSubmit input").removeAttr("disabled");
					}
					if( success ) {
						$('div#content.bokning').empty().html(response.htmltext);
//						$("form#bokning").remove();
//						$("#bokningsWrapper").html(response.htmltext);
					}
				},
				error	: function( xhr, status, error ) {
					alert( "Det uppstod tyvärr ett fel när din bokningsanmälan skulle skickas. Försök igen, och om felet kvarstår ber vi dig kontakta oss per telefon för bokning." );
					$("form#bokning input, form#bokning textarea").each( function() {
						$(this).removeAttr("disabled");
					});
					$("div#bSubmit input").removeAttr("disabled");
				}
			});
			return false;
		});
	}


});

function loadNextSplash( c ) {
	var n = c + 1 == hdr.length ? 0 : c + 1;
	$("div#hdrbg"+n).each( function() {
		if( $(this).attr("rel") != undefined ) {
			var that = this;
			splashLoaded = false;
			var tempImg = $("<img>");
			tempImg.one("load", function() {
				$(that).css("backgroundImage", "url("+$(that).attr("rel")+")");
				$(that).removeAttr("rel");
				splashLoaded = true;
				$(this).remove();
			});
			tempImg.attr("src", $(this).attr("rel"));
		} else {
			splashLoaded = true;
		}
	});
	return n;
}

function setCookie( name, value, expires, path, domain, secure ) {
	// set time, it's in milliseconds
	var today = new Date();
	today.setTime( today.getTime() );

	/*
		if the expires variable is set, make the correct
		expires time, the current script below will set
		it for x number of days, to make it for hours,
		delete * 24, for minutes, delete * 60 * 24
	*/
	if( expires ) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );

	document.cookie = name + "=" +escape( value ) +
		( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
		( ( path ) ? ";path=" + path : "" ) +
		( ( domain ) ? ";domain=" + domain : "" ) +
		( ( secure ) ? ";secure" : "" );
}

// this fixes an issue with the old method, ambiguous values
// with this test document.cookie.indexOf( name + "=" );
function getCookie( check_name ) {
	// first we'll split this cookie up into name/value pairs
	// note: document.cookie only returns name=value, not the other components
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; // set boolean t/f default f

	for( i = 0; i < a_all_cookies.length; i++ ) {
		// now we'll split apart each name=value pair
		a_temp_cookie = a_all_cookies[i].split( '=' );

		// and trim left/right whitespace while we're at it
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');

		// if the extracted name matches passed check_name
		if( cookie_name == check_name ) {
			b_cookie_found = true;
			// we need to handle case where cookie has no value but exists (no = sign, that is):
			if( a_temp_cookie.length > 1 ) {
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
			// note that in cases where cookie is initialized but no value, null is returned
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if( !b_cookie_found ) {
		return null;
	}
}
	
