<!--

/* Facebook bundle ID: 142911366167 */

var STEP_START = "start";
var STEP_FLASH = "flash";
var STEP_RESULT = "result";
var STEP_1 = "1";
var STEP_2 = "2";
var STEP_3 = "3";
var STEP_4 = "4";
var STEP_REG = "reg";
var STEP_PREREG = "prereg";
var STEP_CONFIRM = "confirm";
var curstep = null;
var tryAgain = false;
var facebookText = "";
var facebookType = "";
var facebookImage = "";
var customer = '';

var show_exit = true;

var zipCode = null;
var goodZip = null;

var advisors = {
	'oest':'Martin Kok, Alm. Brand',
	'nord':'Hanne Würtz, Alm. Brand',
	'syd':'Pia Golsche Knappe, Alm. Brand',
	'sjael':'Martin Weber Melsted, Alm. Brand',
	'kbh':'Pia Norby, Alm. Brand'
};

if(typeof(console) == "undefined"){
    console = new Object();
    console.debug = function(str){
        // Do nothing
    }
}

function bindButtons() {
	$("#quizYes").click(function() {
		gotoStep(STEP_1);
	});

	$("#quizNo").click(function() {
		gotoStep(STEP_PREREG);
	});
}

function gotoStep(step) {
    switch (step) {
        case STEP_START:
            populateElements();

            window.customer = '';

            // Make sure the input fields have grey standard text when using the "try again" feature.
            $("#mosaicAddress").addClass("grey");
            $("#mosaicAddressNr").addClass("grey");
            $("#mosaicZip").addClass("grey");

            $(".error").hide();
            $("#box").removeClass("step1 step2 step3 step4");
            $(".radio").attr("checked", "");
            $(".step h2").hide();
            $("div#box div.step input.respond").hide();
            $("div#box div.step p.response").hide();

            // Check if people are coming from a mail link.
            if(agilicData != null) {
                $("#frontpage").hide();
                gotoStep(STEP_REG);
                break;
            }

            if($.jqURL.get("s") && $.jqURL.get("n") && $.jqURL.get("z")){
                $("#mosaicAddress").val(Base64._utf8_decode(unescape($.jqURL.get("s")))).removeClass("grey");
                $("#mosaicAddressNr").val(Base64._utf8_decode(unescape($.jqURL.get("n")))).removeClass("grey");
                $("#mosaicZip").val(Base64._utf8_decode(unescape($.jqURL.get("z")))).removeClass("grey");
                
                $("#mosaicLookup").submit();
                
                break;
            }
            
            curstep.hide();
			
            $("#box").fadeOut(function() {
                $("#box").show();
                $("#box").css({"background-image":"url(img/bg2.jpg)"});
                $("#frontpage").fadeIn();
            });

            curstep = $("#frontpage");

            $("#lookup_respond").attr("disabled", false);

            trackFrontpage();
            break;
			
        case STEP_FLASH:
            if(!FlashDetect.installed) {
                trackNoFlashPlayer();
                gotoStep(STEP_RESULT);
                return false;
            }

            $(".error").hide();

            var flashParams = {
                quality: "high",
                scale: "noscale",
                allowscriptaccess: "always"
            };

            curstep.hide();
            $("#box").fadeOut(function() {
                $(".error").hide();
                $("#box").css({"background-image":"none"});
                swfobject.embedSWF("swf/map.swf", "innerFlash", "920", "453", "9.0.0.0", "", "", flashParams);

                $("#box").fadeIn().end();
                $("#flashSearch").fadeIn().end();
            });
            
            curstep = $("#flashSearch");
            trackFlash();
            break;
        case STEP_RESULT:

            $("#resultTryAgain").hide();

            curstep.hide();

            $("#box").fadeOut(function() {
                // Initialize Facebook API
                //printFacebookHTML('resultFBAnchor');
                $("#result").show();

                // If user is in the "Try again" cycle, remove the possibility of taking the quiz/contact flow again.
                if (window.tryAgain) {
                    $("#result").hide();
                    $("#resultTryAgain").show();

                    window.tryAgain = false;
                }
                
                $("#box").removeClass("step1 step2 step3 step4");
                $(".error").hide();
                $("#box").css({"background-image":"url(img/bg1.jpg)"});
                $("#box").fadeIn().end();
                $("#resultPage").fadeIn().end();
            });
            curstep = $("#resultPage");
            
            trackResultPage();
            break;
        case STEP_1:
            curstep.hide("slow");
            $("#box").fadeOut(function() {
                $("#box").removeClass("step2 step3 step4").addClass("step1");
                $("#box").css({"background-image":"url(img/bg3.jpg)"});
                $("#step1").fadeIn().end();
                $("#box").fadeIn().end();
            });
            curstep = $("#step1");
            trackQuestion1();
            break;
        case STEP_2:
            curstep.fadeOut(function() {
                $("#box").removeClass("step1 step3 step4").addClass("step2");
                $("#step2").fadeIn().end();
            });
            curstep = $("#step2");
            trackQuestion2();
            break;
        case STEP_3:
            curstep.fadeOut(function() {
                $("#box").removeClass("step1 step2 step4").addClass("step3");
                $("#step3").fadeIn().end();
            });
            curstep = $("#step3");
            trackQuestion3();
            break;
        case STEP_4:
            curstep.fadeOut(function() {
                $("#box").removeClass("step1 step2 step3").addClass("step4");
                $("#step4").fadeIn().end();
            });
            curstep = $("#step4");
            trackQuestion4();
            break;
        case STEP_PREREG:
            curstep.fadeOut(function() {
                $("#box").removeClass("step1 step2 step3 step4");
				$("#box").css({"background-image":"url(img/bg3.jpg)"});
                $("#prereg").fadeIn().end();
            });
            curstep = $("#prereg");
            trackPreContact();
            break;
        case STEP_REG:
            curstep.hide("slow");
            $("#box").fadeOut(function() {
                $("#box").removeClass("step1 step2 step3 step4");

                // Data sent from the agilic platform emails.
                if(agilicData != null) {
                     window.show_exit = false;

                     // Track people coming from Agillic mails.
                     trackAgillicMailUserReg();
                     

                     $("#fname").val(window.agilicData.fname).removeClass("grey");
                     $("#lname").val(window.agilicData.lname).removeClass("grey");
                     $("#email").val(window.agilicData.email).removeClass("grey");
                     $("#newsletterBox").hide();
                }else {
                    trackContact();
                }
                if (window.mosaicAddress != "") $("#street").val(window.mosaicAddress).removeClass("grey");
                if (window.mosaicAddressNr != "") $("#street_number").val(window.mosaicAddressNr).removeClass("grey");
                if (window.mosaicZip != "") $("#zipcode").val(window.mosaicZip).removeClass("grey");
                $("#box").css({"background-image":"url(img/bg2.jpg)"});
                $("#reg").fadeIn().end();
                $("#box").fadeIn().end();
            });
            curstep = $("#reg");

            // Set default radio button value to "Not an Alm. Brand Customer."
            $("#cust_a2").attr("checked", "checked");
            $("#reg_respond").attr("disabled", false);
            
            break;
        case STEP_CONFIRM:
            window.show_exit = false;

            curstep.hide("slow");
            $("#box").fadeOut(function() {
                //printFacebookHTML('confirmFBAnchor');
                $("#box").removeClass("step1 step2 step3 step4");
                $("#confirm .name").text(advisors[zip($("#zipcode").val())]);
                if(agilicData != null) {
                    // Track users coming from an Agillic mail.
                    trackAgillicMailUserConfirm();

                    $("#box").css({"background-image":"url(img/bg2.jpg)"});
                    $("#confirm").css({"top":"125px"});
                    $("#confirmFBAnchor").hide();
                    $("#confirmTryAgain").hide();
                }else {
                    trackConfirm();
                    $("#box").css({"background-image":"url(img/bg4.jpg)"});
                    $("#fbContainer").css({"background-color":"transparent", "border":"none"});
                    $("#fbHeader").hide();
                }

                // TODO: Decide whether people are customers or not.
                if(window.customer == 'kunde') {
                    // Track that the person is already a customer.
                    trackCustomers();
                }else {
                    // Track that the person is not a customer already.
                    trackNonCustomers();
                }

                $("#confirm").fadeIn().end();
                $("#box").fadeIn().end();
            });
            // using attr("class",x) instead of addClass(x),
            // as only one class can be present
            $("#confirm").attr("class", zip($("#zipcode").val()));
            curstep = $("#confirm");
            break;
	}
}

/* IE PNG fix multiple filters */
(function ($) {
    if (!$) return;
    $.fn.extend({
        fixPNG: function(sizingMethod, forceBG) {
                
                if (!($.browser.msie)) return this;
                var emptyimg = "img/clear.gif"; //Path to empty 1x1px GIF goes here
                sizingMethod = sizingMethod || "scale"; //sizingMethod, defaults to scale (matches image dimensions)
                this.each(function() {
                    var isImg = (forceBG) ? false : jQuery.nodeName(this, "img"),
                    imgname = (isImg) ? this.src : this.currentStyle.backgroundImage,
                    src = (isImg) ? imgname : imgname.substring(5,imgname.length-2);
                    this.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='" + sizingMethod + "')";

                    if (isImg) this.src = emptyimg;
                    else this.style.backgroundImage = "url(" + emptyimg + ")";
                });
                return this;
        }
    });
})(jQuery);

$(function() {

    /*window.onunload = function(){
        // Clear the data read from the agilic cookie.
        agilicData = null;

        if(window.show_exit){
            showExit();
            window.show_exit = false;
        }
    }*/

    $("input:image").fixPNG();

    curstep = $("#frontpage");

    $("#start").click(function(){gotoStep(STEP_FLASH);});
    $("#s1_respond").click(function(){gotoStep(STEP_2);});
    $("#s2_respond").click(function(){gotoStep(STEP_3);});
    $("#s3_respond").click(function(){gotoStep(STEP_4);});
    $("#s4_respond").click(function(){gotoStep(STEP_PREREG);});
    $("#prereg_respond").click(function(){gotoStep(STEP_REG);});

    $("#logo").click(function(){
        trackExternal();
        window.open("http://almbrand.dk", "Alm_Brand", "location=yes, width=820, height=460");});

    $("#call").click(function(){gotoStep(STEP_REG);});

    $("#confirm_site").click(function(){
        trackExternal();
        document.location="http://www.almbrand.dk";
    });


    // The "Try again" button on the confirm page.
    $("#confirmTryAgain").click(function(){
        trackTryAgain();

        window.tryAgain = true;

        gotoStep(STEP_START);
    });

    // The "Try again" button on the result page.
    $("#resultTryAgain").submit(function(e){
        e.preventDefault();
        
        trackTryAgain();

        window.tryAgain = true;

        gotoStep(STEP_START);
    });

    $("#result").submit(function(e){
        e.preventDefault();
        var choice = $("#result input:checked").val();

        switch(choice) {
            case "quiz":
                gotoStep(STEP_1)
                break;
            case "contact":
                gotoStep(STEP_REG)
                break;
        }

    });

	// Fix lack of indexOf in IE
	if(!Array.indexOf){
		Array.prototype.indexOf = function(obj){
			for(var i=0; i<this.length; i++){
				if(this[i]==obj){
					return i;
				}
			}
			return -1;
		}
	}


    // Mosiac lookup form handling
    $("#mosaicLookup").submit(function(e){
            $("#mosaicInputError").hide();
            $("#mosaicNoResult").hide();
            e.preventDefault();
            var errors = 0;
            var requireds = $(e.target).find(".mosaic");

			if($("#mosaicLookup .customer:checked").val() == undefined) {
				$("#mosaicLookup").find("label[for='cust_a1']").addClass("textError");
				$("#mosaicLookup").find("label[for='cust_a2']").addClass("textError");
				errors++;
			}else {
				$("#mosaicLookup").find("label[for='cust_a1']").removeClass("textError");
				$("#mosaicLookup").find("label[for='cust_a2']").removeClass("textError");
			}

            requireds.each(function(i) {
                var good = $(this).val() != "" && !isDefault($(this).val());

                switch($(this).attr("id")) {
                    case "mosaicAddress":
                        window.mosaicAddress = $(this).val();
                        break;
                    case "mosaicAddressNr":
                        window.mosaicAddressNr = $(this).val();
                        break;
                    case "mosaicZip":
                        window.mosaicZip = $(this).val();
						window.goodZip = checkZipCode($(this).val());
                        break;
                }



                if (!good) {
                    errors++;
                    $(e.target).find("[id='"+$(this).attr("id")+"']").toggleClass("error", !good);
                    $("#mosaicInputError").show(400);
                }
            });

			window.customer = $("#mosaicLookup .customer:checked").val();

			// Replace content on next page if needed.
			if(window.customer == "kunde" || (window.customer == "ikke kunde" && window.goodZip == false)) {
				$("#resultTrailText").html(" ");
				$("#result").html('<b>Kan du genkende dig selv og dine forsikringsbehov?</b><br />'+
					'<br />'+
					'<b>Vil du fortsætte quiz\'en og udfordre dig selv med fire hurtige spørgsmål '+
					'for at se, om du ved, hvad der påvirker prisen på dine forsikringer?</b><br />'+
					'<br />'+
					'<div style="width: 100%; text-align: center;">'+
					'	<input id="quizNo" type="image" src="img/btn_quizNo.png" />&nbsp;<input id="quizYes" type="image" src="img/btn_quizYes.png" />'+
					'</div>'
				);
				
				if(window.customer == "kunde") {
					$("#preregInner").html('<h1>Forsikringsbehovet ændrer sig over tid</h1>'+
						'Vores behov for forsikringer afhænger af, hvor vi befinder os i vores liv. Og da vores dagligdag og livssituation ofte ændrer sig over tid, kan det være en god ide at få tjekket sine forsikringer. Kun på den måde kan du være sikker på, at du er korrekt dækket, hvis du skulle få en skade.<br /><br />'+
						'Ring derfor til os på <span class="phoneNumbers">70 11 06 07</span> og få et forsikringstjek. Vi sidder klar til at hjælpe dig alle hverdag fra kl. 8.30 – 16.00<br /><br />'+
						'Det er så ærgerligt hvis du kommer ud for et uheld, og du ikke er tilstrækkeligt dækket!'
					);
				}else {
					$("#preregInner").html('<h1>Skal vi tage kampen op?</h1>'+
						'Vores behov for forsikringer afhænger af, hvor vi befinder os i vores liv. Derfor kan det være en god idé, indimellem at få tjekket pris og dækninger på sine forsikringer.<br />'+
						'<br />'+
						'Er du nysgerrig efter at finde ud af, om vi kan give dig bedre og måske billigere forsikringer, så ring til os på <br /><span class="phoneNumbers">70 12 73 00</span>, vi sidder klar til at hjælpe dig alle hverdage fra kl. 8.30 – 16.00<br />'+
						'<br />'+
						'Måske er vi det rigtige forsikringsselskab for dig!<br /><br /><br /><br />'+
						'<div id="confirmNewsLink">'+
						'<span class="newsLarge">Nyhed!</span> Lær om forsikringer på en ny, anderledes og<br />'+
						'underholdende måde sammen med Familien Brandsen...<br />'+
						'<a target="_blank" href="http://content.almbrand.dk/?G3C3.XjGnqBxup78hhZs5dyA3iHVRjZKG">Læs mere her</a>'+
					'</div>'
					);
				}

				bindButtons();
			}

            if (errors == 0) {
                $(e.target).find(".error").hide();
                var params = {};
                $(e.target).find("input").each(function () {
                    params[$(this).attr("id")] = escape($(this).val());
                });

                // Call the mosaic SOAP service to get the user category.
                $.getJSON(
                    "mosaic.php",
                    params,
                    function(d){
                        // If we found a user type.
                        if (d.result == "ok") {
                            trackTypes(d.id);
                            $("#lookup_respond").attr("disabled", true);

                            $("#mosaicHeader").html(d.header);
                            $("#mosaicResult").html(d.text);
                            $("#primaryInsurances").html(d.primaryInsurances);
                            $("#secondaryInsurances").html(d.secondaryInsurances);
                            
                            gotoStep(STEP_FLASH);
                            $("#mosaicAddress").val("");
                            $("#mosaicAddressNr").val("");
                            $("#mosaicZip").val("");
                        }

                        // If we didnt get a result. This could be due to faulty address.
                        if(d.result == "none") {
                            if($.jqURL.get("s") && $.jqURL.get("n") && $.jqURL.get("z")){
                                $("#box").show();
                            }
                            $("#mosaicNoResult").show();
                        }
                });
            }
    });

    // Registration input field validation.
    $("#registration").submit(function(e){
        e.preventDefault();
        var errors = 0;
        var requireds = $(e.target).find(".required");
        requireds.each(function(i) {
            var good = $(this).val() != "" && !isDefault($(this).val());

            if ($(this).hasClass("email")) {
                good = $(this).val().match(/^[^@]+@[^@]+\.[a-z]{2,6}$/i);
            }

            if ($(this).hasClass("zip")) {
                good = zip($(this).val()) !== false;
            }

            if (!good) errors++;

            $(e.target).find("[id='"+$(this).attr("id")+"']").toggleClass("error", !good);
        });

        var required_ors = $(e.target).find(".required_or");
        var good = required_ors.filter(function() {return $(this).val().match(/^\d{8,}$/);}).length > 0;

        required_ors.each(function(i) {
            if (!good) errors++;
            $(e.target).find("[id='"+$(this).attr("id")+"']").toggleClass("error", !good);
        });
        if (errors > 0) {
            $(e.target).find(".error").show(400);
        } else {
			$("#reg_respond").attr("disabled", true);
			
            $(e.target).find(".error").hide();
            var params = {};
            $(e.target).find("input").each(function () {
                // Skip the radio buttons, since we need to know which one i checked.
                if($(this).attr("id") == "cust_a1" || $(this).attr("id") == "cust_a2" || $(this).attr("id") == "newsletter") {
                    return;
                }
                if (!isDefault($(this).val())) {
                    params[$(this).attr("id")] = escape($(this).val());
                }else {
                    params[$(this).attr("id")] = "";
                }
            });
            
            params['customer'] = window.customer;
			params['page'] = 'signup';
			params['media'] = $.jqURL.get("ref") ? $.jqURL.get("ref") : "";
            params['advisor'] = escape(advisors[zip(params['zipcode'])]);
			
            ($("#reg #newsletter:checked").val() == "on") ? params['newsletter'] = true : params['newsletter'] = false;

            /*************
             *  AGILLIC  *
             *************/
            // Only send to Agillic if the user agreed to receive newsletters.
            if (params['newsletter'] == true) {
                // Track users accepting newsletter.
                trackAgillicNewsletterAccept();


                // Create the Agilic user token.
                $.getJSON("agilic.php?email="+($.trim(params['email'])).toLowerCase(),
                    function(d) {
                        var email = ($.trim(params['email'])).toLowerCase();
                        // Create the user in the Agillic database.
                        $.getJSON("http://almbrand-prod.agillic.eu/api/attr.json?uid="+d.uid+"&attr:EMAIL="+email+"&attr:FIRSTNAME="+params['fname']+"&attr:LASTNAME="+params['lname']+"&attr:EMAIL_PERMISSION=true&callback=?",
                            function(){
                                var url = "";
                                // Trigger the email send event in the Agilic system.
                                // Random selection of weekly or second weekly mail sends.
                                if(Math.round(Math.random()) == 1) {
                                    url = "http://almbrand-prod.agillic.eu/api/event/EMAIL_WEEKLY.json?uid="+d.uid+"&callback=?"
                                }else {
                                    url = "http://almbrand-prod.agillic.eu/api/event/EMAIL_BIWEEKLY.json?uid="+d.uid+"&callback=?"
                                }
                                $.getJSON(url);
                            }, null,"json"
                        );
                    }
                );
            }


            /**************
             *  TRACKING  *
             **************/
            trackRegistration(
                $("#fname").val(),
                $("#lname").val(),
                $("#email").val(),
                $("#street").val()+" "+$("#street_number").val()+" "+$("#street_floor").val()+" "+$("#street_side").val()+" "+$("#street_door").val(),
                $("#cellphone").val(),
                $("#phone").val(),
                $("#zipcode").val(),
                $("#city").val()
            );
            
			
			/*********************
			 * MOSAIC GEOTAGGING *
			 *********************/
			$.getJSON("gateway.php?action=getConzoomId", params, function(data){
				
				if (data.result == "ok") {
					/** MOSAIC vars **/
					params['type_id'] = data.type_id;
					params['kvhx_key'] = data.kvhx_key;
				}else {
					params['type_id'] = "null";
					params['kvhx_key'] = "null";
				}
				
				/*************************
				 * STORE USER INTERNALLY *
				 *************************/

				// Store user in our own database
				$.getJSON("storeUser.php", params);


				/***************************
				 *  ALM. BRAND STORE USER  *
				 ***************************/
				$.getJSON("connect.php",
						  params,
						  function(d){
							  if (d.result == "ok") {
								  gotoStep(STEP_CONFIRM);
							  }else if(d.result == "error") {
								  alert("Der opstod en fejl. Administratoren er notificeret.");
								  //console.debug("Error saving user. Params: "+params+"Result: "+d.result+" Error: "+d.msg);
							  }
						  }
				 );
				
			});
        }
    });

    $("#wrapper input.radio").click(function(e){
        $(this).parents("ul").find(".radio").not(":checked").parents("li").hide();
        $(this).parents("div").children("h2").fadeIn();
        $(this).parents("div").children("input.respond").fadeIn();
        $(this).parents("div").children("p.response").fadeIn();
    });

    /* DISCLAIMER POPUP */
    var disclaimers = $("#disclaimerbox,#overlay");
    $("#disclaimerlink").click(function(){
        disclaimers.show();
        trackDisclaimer();
    });
    $("#disclaimerclose").click(function(){
        disclaimers.hide()
    });

    /* STATISTICS TEXT POPUP */
    var stattexts = $("#statTextBox,#overlay");
    $("#statTextLink").click(function(){
        stattexts.show();
        trackStatText();
    });
    $("#statTextBoxClose").click(function(){
        stattexts.hide()
    });

    /* NEWSLETTER INFO TEXT POPUP */
    var newslettertexts = $("#newsletterTextBox,#overlay");
    $("#newsletterInfo").click(function(){
        newslettertexts.show();
    });
    $("#newsletterTextBoxClose").click(function(){
        newslettertexts.hide()
    });
	
	
	/*******
	* INIT *
	********/
	gotoStep(STEP_START);
});
// -->
