var current_page = 0; // Used by References page

$(document).ready(function() {
    //sIFR.replaceElement(".chevin", named({sFlashSrc: "sifr/chevin_bold.swf", sWmode: "transparent"}));

    // General init functions
    initGeneral();

    initCenterFunction();

    // Page specific init functions
    initHome();
    initWhatis();
    initAbout();
    initProducts();
    initResellers();
    initSupport();
    initCheckout();
    initReferences();
    initConfigurator();
    initGeneralContactForm();
});

/********************
Page Inits
********************/

function initGeneral() {
    jQuery.ifixpng(base_url + 'img/pixel.gif');
    jQuery('img, .submenu, .box_top, .configurator_top_box, .btn, #summary_top, div#popup_top').ifixpng();

    $("ul#main_menu li span").mouseover(function() {
        hideSubMenus();
    });

    /*
    $("li#menu_2 span").mouseover(function() {
        showSubMenu(2);
    });
*/

    $("li#menu_2 span").mouseover(function() {
        showSubMenu(3);
    });

    $("div#inner_content").mouseover(function() {
        hideSubMenus();
    });

    // Init newsletter
    $("a#signup").click(function() {
        var data = { email: $("#newsletter").val() };
        $.post(base_url + "newsletter/send", data, function() {
            alert("Tack för att du prenumererar på Frosts nyhetsbrev.");
        });
        return false;
    })

}

function initCenterFunction() {
  jQuery.fn.center = function(params) {

		var options = {

			vertical: true,
			horizontal: true

		}
		op = jQuery.extend(options, params);

   return this.each(function(){

		//initializing variables
		var $self = jQuery(this);
		//get the dimensions using dimensions plugin
		var width = $self.width();
		var height = $self.height();
		//get the paddings
		var paddingTop = parseInt($self.css("padding-top"));
		var paddingBottom = parseInt($self.css("padding-bottom"));
		//get the borders
		var borderTop = parseInt($self.css("border-top-width"));
		var borderBottom = parseInt($self.css("border-bottom-width"));
		//get the media of padding and borders
		var mediaBorder = (borderTop+borderBottom)/2;
		var mediaPadding = (paddingTop+paddingBottom)/2;
		//get the type of positioning
		var positionType = $self.parent().css("position");
		// get the half minus of width and height
		var halfWidth = (width/2)*(-1);
		var halfHeight = ((height/2)*(-1))-mediaPadding-mediaBorder;
		// initializing the css properties
		var cssProp = {
			position: 'absolute'
		};

		if(op.vertical) {
			cssProp.height = height;
			cssProp.top = '50%';
			cssProp.marginTop = halfHeight;
		}
		if(op.horizontal) {
			cssProp.width = width;
			cssProp.left = '50%';
			cssProp.marginLeft = halfWidth;
		}
		//check the current position
		if(positionType == 'static') {
			$self.parent().css("position","relative");
		}
		//aplying the css
		$self.css(cssProp);


   });

  };
}

function initHome() {
    //news slider interval
    setInterval("slideSwitch()", 7000);

    $("body#home a.scroll_button").click(function() {
        var current_left = $("body#home div#product_scroller ul").css("left").split("px")[0];
        var number_of_items = $("body#home div#product_scroller ul li").length;

        if ($(this).attr("id") == "scroll_left" && current_left < 0)
            var new_left = parseInt(current_left) + 245;
        else if ($(this).attr("id") == "scroll_right" && current_left > (-245 * (number_of_items - 4)))
            var new_left = parseInt(current_left) - 245;
        else
            return false;

        $("body#home div#product_scroller ul").animate({ left: new_left + "px" }, "fast");
        return false;
    });


}

//news slider on home page
function slideSwitch() {
    var $active = $('#show div.slide.active');

    if ($active.length == 0)
        $active = $('#start_news div.slide:last');

    if ($active.length > 0) {
        fadeDown($active[0].id);

        setTimeout("switchAndFadeUp()", 1000);
    }

}

function switchAndFadeUp() {

    var $active = $('#show div.slide.active');

    if ($active.length == 0)
        $active = $('#start_news div.slide:last');

    var $next = $active.next().length ? $active.next()
      : $('#start_news div.slide:first');

    $next[0].style.opacity = 0;
    $next[0].style.filter = 'alpha(opacity = 0)';

    $active.addClass('last-active');
    $next.addClass('active');
    $active.removeClass('active last-active');

    fadeUp($next[0].id);
    /*
  
  
    $next.css({opacity: 0.0})
    .addClass('active')
    .animate({opacity: 1.0}, 1000, function() {
    $active.removeClass('active last-active');
    });
    */
}

function initWhatis() {
    $("body#whatis div.whatis_box_top").click(function() {
        $("div.whatis_box_bottom").slideUp("fast");
        $(this).siblings().stop().slideDown("fast");
    });
}

function initAbout() {
    $("body#about a.about_box_top").click(function() {
        $(this).parent().parent().find(".text").stop().slideUp("fast");
        $(this).siblings().find(".text").stop().slideDown("fast");
        return false;
    });
}

function initProducts() {
    var imageLoading = base_url + 'img/lightbox-ico-loading.gif';
    var imageBtnClose = base_url + 'img/lightbox-btn-close.gif';
    var imageBtnPrev = base_url + 'img/lightbox-btn-prev.gif';
    var imageBtnNext = base_url + 'img/lightbox-btn-next.gif';

    $("body#products div#gallery_box ul li a").lightBox({ imageLoading: imageLoading, imageBtnClose: imageBtnClose, imageBtnPrev: imageBtnPrev, imageBtnNext: imageBtnNext });

    $("body#products div#spec_col4 select").change(function() {
        var currency = $(this).val();
        $("span#price").load($(this).parent().attr('action'), { currency: currency });
    });
    
    
    $("body#products input#btn_send2").click(function() {
		$(".purple-popup").css("display", "none");
        var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

        if ($("input#name2").val() == "") {
            var left = ($("input#name2").offset().left - 20) - $("div#inner_content").offset().left;
            $(".purple-popup").css("left", (left + 'px'));
            $(".purple-popup").css("top", ($("input#name2").offset().top - 200) + 'px');
            $(".purple-popup").css("display", "block");
            $(".purple-popup").children("p").html("Skriv in namnet.");
            return false;
        }
        else if (($("input#email2").val() == "" || !filter.test($("input#email2").val())) && $("input#phonenum").val() == "") {
            var left = ($("input#email2").offset().left - 20) - $("div#inner_content").offset().left;
            $(".purple-popup").css("left", left + 'px');
            $(".purple-popup").css("top", ($("input#email2").offset().top - 200) + 'px');
            $(".purple-popup").css("display", "block");

            $(".purple-popup").children("p").html("Skriv in e-postadress.");
            return false;
        }
		else if ($("input#phonenum").val() == "" && $("input#email2").val() == "") {
            var left = ($("input#phonenum").offset().left - 20) - $("div#inner_content").offset().left;
            $(".purple-popup").css("left", left + 'px');
            $(".purple-popup").css("top", ($("input#phonenum").offset().top - 200) + 'px');
            $(".purple-popup").css("display", "block");

            $(".purple-popup").children("p").html("Skriv in telefonnummer.");
            return false;
        }

        /*if ($("input#name2").val() == "" || (($("input#email2").val() == "" || !filter.test($("input#email2").val())) && $("input#phonenum").val() == "")) {
            alert("Please fill out name and email!");
            return false;
        }*/
        var loc =  window.location.href;
        var data = { name: $("input#name2").val(),
            email: $("input#email2").val(),
            store: $("select#store").val(),
            contacttype: $("input[@name='rbContacted']:checked").val(),
            phonenumber: $("input#phonenum").val(),
            location: loc
        };

        $.post(base_url + "configurator/contact", data, function(data) {
            alert("Du kommer att bli kontaktad av oss inom kort.");
        });
		
		$(".purple-popup").hide();
        return false;
    });
    
    $("body#products div#contact_form_top").click(function() {
        if (!$(this).hasClass("opened")) {
          $("fieldset#contact_form_body").slideDown("fast");
          $(this).addClass("opened");
        }
        else {
          $("fieldset#contact_form_body").slideUp("fast");
          $(this).removeClass("opened");
        }          
    });
}

function initResellers() {
    $("body#resellers div.box_top").click(function() {
        $("ul.box_content").slideUp("fast");
        $(this).parent().find("ul").stop().slideDown("fast");
    });

    $("body#resellers ul.box_content a").click(function() {
        $("div#map").load($(this).attr("href"));
        return false;
    });
}

function initSupport() {
    $("body#support div.support_box_top").click(function() {
        $("div.support_box_bottom").slideUp("fast");
        $(this).siblings().stop().slideDown("fast");
    });
    
    $("a#servicetag-show-help").click(function() {
        $("div#servicetag-help-popup").css("display", "block");
      }
    )
    
    $("body#support div#contact_form_top").click(function() {
        if (!$(this).hasClass("opened")) {
          $("fieldset#contact_form_body").slideDown("fast");
          $(this).addClass("opened");
        }
        else {
          $("fieldset#contact_form_body").slideUp("fast");
          $(this).removeClass("opened");
        }          
    });
    
}

function initGeneralContactForm() {
    $("input#contact_by_phone").click(function() {
      if ($("input#contact_by_phone").attr("checked")) {
        $("fieldset#contact_form_body input#phonenr").removeAttr("disabled");
        $("fieldset#contact_form_body input#phonenr").css("background", "#a0a19c");
    $("fieldset#contact_form_body input#phonenr").css("color", "#000000");
      }
      else {
        $("fieldset#contact_form_body input#phonenr").attr("disabled", "disabled");
        $("fieldset#contact_form_body input#phonenr").css("background", "#c3c3bd");
    $("fieldset#contact_form_body input#phonenr").css("color", "#808080");
      }
    });
    // Set to disabled as default
    $("fieldset#contact_form_body input#phonenr").attr("disabled", "disabled");
    $("fieldset#contact_form_body input#phonenr").css("background", "#c3c3bd");
    $("fieldset#contact_form_body input#phonenr").css("color", "#808080");
 
    $("fieldset#contact_form_body select#msg_type").change(function() {
      var tag = $("fieldset#contact_form_body input#servicetag");
      if ($("fieldset#contact_form_body select#msg_type option:selected").hasClass("hide_servicetag")) {
        tag.attr("disabled", "disabled");
        tag.css("background", "#c3c3bd");
        tag.css("color", "#808080");
      }
      else {
        tag.removeAttr("disabled");
        tag.css("background", "#a0a19c");
        tag.css("color", "#000000");
      }
    });
    // set to disabled as default
    var tag = $("fieldset#contact_form_body input#servicetag");
    tag.attr("disabled", "disabled");
    tag.css("background", "#c3c3bd");
    tag.css("color", "#808080");

 
    $("fieldset#contact_form_body input#btn_send").click(function() {  
      var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
        
      if($("input#email").val() != "" && filter.test($("input#email").val()))
      {
            var phone_checked = 0;
            if ($('input#contact_by_phone').attr("checked")) {
              phone_checked = 1;
            }
            
            var loc =  window.location.href;
            
            var data = { name:$("input#name").val(),
            email: $("input#email").val(),
            msg_type: $("select#msg_type").attr("value"),
            subject: $("input#subject").val(),
            msg: $("textarea#msg").val(),
            use_phone : phone_checked,
            phonenr: $("input#phonenr").val(),
            servicetag: $("input#servicetag").val(),
            location: loc
            };
        
            $.post(base_url + "configurator/contact2", data, function(data) {
              alert("Tack, vi kommer att kontakta dig så snart som möjligt.");
              $("fieldset#contact_form_body").slideUp("fast");
              $("div#contact_form_top").removeClass("opened");
              $("fieldset#contact_form_body input#name").val("");
              $("fieldset#contact_form_body input#email").val("");
              $("fieldset#contact_form_body input#subject").val("");
              $("fieldset#contact_form_body input#phonenr").val("");
              $("fieldset#contact_form_body input#servicetag").val("");
              $("fieldset#contact_form_body textarea#msg").val("");
        });    
        } 
        else  
          alert("Ogiltig e-postadress");
      }
    );
      
}

function initCheckout() {

    $("input#termsAgreement").click(function() {
      $(".purple-popup").css("display", "none");
    })

    // Set company as default
    $("div#checkout-field-company").show();
    $("div#checkout-field-orgnr").show();
    $("div#checkout-field-name").hide();
    $("div#checkout-field-socsecnbr").hide();
    $("div#checkout-field-billing_address").show();
    $("div#checkout-field-billing_postalcode").show();
    $("div#checkout-field-billing-city").show();
    $("div#checkout-field-breakBelowBilling").show();

    $("a#forgotPasswordLink").click(function() {
        $("div#forgotPasswordPopup").css("display", "block");
      }
    )     
    
    $("input#btnForgotPassword").click(function() {
        var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
        
        if($("input#email-forgotPassword").val() != "" && filter.test($("input#email-forgotPassword").val()))
        {
          
            var data = { email: $("input#email-forgotPassword").val() };
        
            $.post(base_url + "checkout/sendForgotPasswordMail", data, function(data) {
              alert("Kontoinformation har skickats till angiven e-postadress.");

              $("div#forgotPasswordPopup").css("display", "none");
            }); 
        } 
        else  
          alert("Ogiltig email adress");
      }
    ) 
    
    
    $("input#email-forgotPassword").keyup(function(e) {
        
        if(e.keyCode == 13) {
         
          var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
          
          if($("input#email-forgotPassword").val() != "" && filter.test($("input#email-forgotPassword").val()))
          {
            
              var data = { email: $("input#email-forgotPassword").val() };
          
              $.post(base_url + "checkout/sendForgotPasswordMail", data, function(data) {
                alert("Kontoinformation har skickats till angiven e-postadress.");
  
                $("div#forgotPasswordPopup").css("display", "none");
              }); 
          } 
          else  
            alert("Ogiltig email adress");     
        }     
      }
    ) 
    
    $("#rbCheckouts input").each(function() {
        $(this).click(function() {
            $(".purple-popup").css("display", "none");
            switch ($(this).attr("id")) {
                case "rb1":
                    $("div#checkout-field-company").hide();
                    $("div#checkout-field-orgnr").hide();
                    $("div#checkout-field-name").show();
                    $("div#checkout-field-socsecnbr").show();
                    $("div#checkout-field-billing_address").hide();
                    $("div#checkout-field-billing_postalcode").hide();
                    $("div#checkout-field-billing-city").hide();
                    $("div#checkout-field-breakBelowBilling").hide();
                    break;
                case "rb2":
                    $("div#checkout-field-company").show();
                    $("div#checkout-field-orgnr").show();
                    $("div#checkout-field-name").hide();
                    $("div#checkout-field-socsecnbr").hide();
                    $("div#checkout-field-billing_address").show();
                    $("div#checkout-field-billing_postalcode").show();
                    $("div#checkout-field-billing-city").show();
                    $("div#checkout-field-breakBelowBilling").show();
                    break;
            }
        });
    });
    
    if($("input#id").val() != "")
      $("h4#new_customer").html("Kundinformation");
    
        
    $("input#btn_submit").click(function() {
          $(".purple-popup").css("display", "none");
        
        var ct = 0;  

        //var nbrFilter = [0-9]{6}(-|)[0-9]{4};
        
        var persNbrFilter = /^[0-9]{2}((0[1-9])|(1[0-2]))(([0-2][0-9])|(3[0-1]))-?[0-9]{4}$/;
        var orgNbrFilter = /^[0-9]{6}-?[0-9]{4}$/;
        

        //var nbrFilter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;  
      
        if($("#rbCheckouts input#rb2")[0].checked) {
      
          ct = 0;
          //Company customer type
          if($("input#company").val() == "")
          {
            var left = ($("input#company").offset().left - 20) - $("div#inner_content").offset().left;
            $(".purple-popup").css("left", left + 'px');
            $(".purple-popup").css("top", ($("input#company").offset().top - 200) + 'px');
            $(".purple-popup").css("display", "block");
            
            $(".purple-popup").children("p").html("Du m&aring;ste fylla i ett f&ouml;retagsnamn");
            return false;
          }    
          
          if($("input#orgnr").val() == "")
          {
            var left = ($("input#orgnr").offset().left - 20) - $("div#inner_content").offset().left;
            $(".purple-popup").css("left", left + 'px');
            $(".purple-popup").css("top", ($("input#orgnr").offset().top - 200) + 'px');
            $(".purple-popup").css("display", "block");
            
            $(".purple-popup").children("p").html("Du m&aring;ste fylla i ett organisationsnummer");
            return false;
          }    
          else if(!orgNbrFilter.test($("input#orgnr").val()))
          {
            var left = ($("input#orgnr").offset().left - 20) - $("div#inner_content").offset().left;
            $(".purple-popup").css("left", left + 'px');
            $(".purple-popup").css("top", ($("input#orgnr").offset().top - 200) + 'px');
            $(".purple-popup").css("display", "block");
            
            $(".purple-popup").children("p").html("Organisationsnumret är inte korrekt ifyllt");
            return false;
          }  
          
          
        }
        else {
        
          ct = 1;
          //Private customer type
          if($("input#name").val() == "")
          {
            var left = ($("input#name").offset().left - 20) - $("div#inner_content").offset().left;
            $(".purple-popup").css("left", left + 'px');
            $(".purple-popup").css("top", ($("input#name").offset().top - 200) + 'px');
            $(".purple-popup").css("display", "block");
            
            $(".purple-popup").children("p").html("Du m&aring;ste fylla i ett namn");
            return false;
          }    
          
          /*
          if($("input#social_security_number").val() == "")
          {
            var left = ($("input#social_security_number").offset().left - 20) - $("div#inner_content").offset().left;
            $(".purple-popup").css("left", left + 'px');
            $(".purple-popup").css("top", ($("input#social_security_number").offset().top - 200) + 'px');
            $(".purple-popup").css("display", "block");
            
            $(".purple-popup").children("p").html("Du m&aring;ste fylla i ett personnummer");
            return false;
          }    
          else if(!persNbrFilter.test($("input#social_security_number").val()))
          {
            var left = ($("input#social_security_number").offset().left - 20) - $("div#inner_content").offset().left;
            $(".purple-popup").css("left", left + 'px');
            $(".purple-popup").css("top", ($("input#social_security_number").offset().top - 200) + 'px');
            $(".purple-popup").css("display", "block");
            
            $(".purple-popup").children("p").html("Personnumret är inte korrekt ifyllt.");
            return false;
          } 
          */ 
        }

        //Common for both customertypes
        if($("input#phonenr").val() == "")
        {
          var left = ($("input#phonenr").offset().left - 20) - $("div#inner_content").offset().left;
          $(".purple-popup").css("left", left + 'px');
          $(".purple-popup").css("top", ($("input#phonenr").offset().top - 200) + 'px');
          $(".purple-popup").css("display", "block");
          
          $(".purple-popup").children("p").html("Du m&aring;ste fylla i ett telefonnummer");
          return false;
        }  
        
        var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;  
        if($("input#email").val() == "" || !filter.test($("input#email").val()))
        {
          var left = ($("input#email").offset().left - 20) - $("div#inner_content").offset().left;
          $(".purple-popup").css("left", left + 'px');
          $(".purple-popup").css("top", ($("input#email").offset().top - 200) + 'px');
          $(".purple-popup").css("display", "block");
          
          $(".purple-popup").children("p").html("Du m&aring;ste fylla i en korrekt e-postadress");
          return false;
        }  
          
        if($("input#delivery_address").val() == "")
        {
          var left = ($("input#delivery_address").offset().left - 20) - $("div#inner_content").offset().left;
          $(".purple-popup").css("left", left + 'px');
          $(".purple-popup").css("top", ($("input#delivery_address").offset().top - 200) + 'px');
          $(".purple-popup").css("display", "block");
            
          $(".purple-popup").children("p").html("Du m&aring;ste fylla i en adress");
          return false;
        }    
          
        if($("input#delivery_postalcode").val() == "")
        {
          var left = ($("input#delivery_postalcode").offset().left - 20) - $("div#inner_content").offset().left;
          $(".purple-popup").css("left", left + 'px');
          $(".purple-popup").css("top", ($("input#delivery_postalcode").offset().top - 200) + 'px');
          $(".purple-popup").css("display", "block");
            
          $(".purple-popup").children("p").html("Du m&aring;ste fylla i ett postnummer");
          return false;
        } 
          
        if($("input#delivery_city").val() == "")
        {
          var left = ($("input#delivery_city").offset().left - 20) - $("div#inner_content").offset().left;
          $(".purple-popup").css("left", left + 'px');
          $(".purple-popup").css("top", ($("input#delivery_city").offset().top - 200) + 'px');
          $(".purple-popup").css("display", "block");
            
          $(".purple-popup").children("p").html("Du m&aring;ste fylla i en ort");
          return false;
        } 
             
        if($("input#new_password1").val() == "")
        {
          var left = ($("input#new_password1").offset().left - 20) - $("div#inner_content").offset().left;
          $(".purple-popup").css("left", left + 'px');
          $(".purple-popup").css("top", ($("input#new_password1").offset().top - 200) + 'px');
          $(".purple-popup").css("display", "block");
          
          $(".purple-popup").children("p").html("Du m&aring;ste fylla i ett l&ouml;senord");
          return false;
        }    
  
        if($("input#new_password2").val() != $("input#new_password1").val())
        {
          var left = ($("input#new_password2").offset().left - 20) - $("div#inner_content").offset().left;
          $(".purple-popup").css("left", left + 'px');
          $(".purple-popup").css("top", ($("input#new_password2").offset().top - 200) + 'px');
          $(".purple-popup").css("display", "block");
          
          $(".purple-popup").children("p").html("L&ouml;senorden st&auml;mmer inte &ouml;verens");
          return false;
        }    
        
        return true;
    });
  
    $("input#company").focus(function() {
        $(".purple-popup").css("display", "none");
    });
    $("input#orgnr").focus(function() {
        $(".purple-popup").css("display", "none");
    });
    $("input#delivery_city").focus(function() {
        $(".purple-popup").css("display", "none");
    });
    $("input#delivery_postalcode").focus(function() {
        $(".purple-popup").css("display", "none");
    });
    $("input#delivery_address").focus(function() {
        $(".purple-popup").css("display", "none");
    });
    $("input#billing_address").focus(function() {
        $(".purple-popup").css("display", "none");
    });
    $("input#billing_postalcode").focus(function() {
        $(".purple-popup").css("display", "none");
    });
    $("input#billing_city").focus(function() {
        $(".purple-popup").css("display", "none");
    });
    $("input#name").focus(function() {
        $(".purple-popup").css("display", "none");
    });
    $("input#social_security_number").focus(function() {
        $(".purple-popup").css("display", "none");
    });
    $("input#phonenr").focus(function() {
        $(".purple-popup").css("display", "none");
    });
    $("input#email").focus(function() {
        $(".purple-popup").css("display", "none");
    });
    $("input#new_password1").focus(function() {
        $(".purple-popup").css("display", "none");
    });
    $("input#new_password2").focus(function() {
        $(".purple-popup").css("display", "none");
    });
    
}

function initReferences() {
    $("body#references div#scroll_wrapper a").click(function() {
        var href = $(this).attr("href");
        $("div#references_top_box").load(href);

        return false;
    });

    $("body#references a.next_prev").click(function() {
        if ($(this).attr("id") == "next_page")
            ++current_page;
        else
            --current_page;

        if (current_page == 0)
            $("a#prev_page").hide();
        else
            $("a#prev_page").show();

        if (current_page + 1 >= $("div#reference_text p").length)
            $("a#next_page").hide();
        else
            $("a#next_page").show();

        $("div#reference_text p").hide();
        $("div#reference_text p:eq(" + current_page + ")").show();

        return false;
    });

    $("body#references a.scroll_button").click(function() {
        var current_left = $("div#artist_scroller ul").css("left").split("px")[0];
        var number_of_items = $("div#artist_scroller ul li").length;

        if ($(this).attr("id") == "scroll_left" && current_left < 0)
            var new_left = parseInt(current_left) + 246;
        else if ($(this).attr("id") == "scroll_right" && current_left > (-246 * (number_of_items - 4)))
            var new_left = parseInt(current_left) - 246;
        else
            return false;

        $("div#artist_scroller ul").animate({ left: new_left + "px" }, "fast");
        return false;
    });
}

function initConfigurator() {

    var tempObj = $('#copyurl').get(0);
    if (tempObj != null) {
        tempObj.value = window.location.href;
    }

    $('#copyurl').click(function() {
        $('#copyurl').select();
    });

    $("body#configurator a.scroll_button").click(function() {
        // Get the UL to move
        var ul = $(this).siblings("div.product_scroller").find("ul")[0];

        var current_left = $(ul).css("left").split("px")[0];
        var number_of_items = $(ul).find("li").length;

        if ($(this).attr("id") == "scroll_left" && current_left < 0)
            var new_left = parseInt(current_left) + 198;
        else if ($(this).attr("id") == "scroll_right" && current_left > (-198 * (number_of_items - 5)))
            var new_left = parseInt(current_left) - 198;
        else
            return false;

        $(ul).animate({ left: new_left + "px" }, "fast");
        return false;
    });

    $("body#configurator input:checkbox, body#configurator input:radio").click(function() {
        updateCompatible();
        // Uncheck and disable all checkboxes that are hidden
        $("img.disabler:visible").siblings("input:checkbox").attr("checked", "");
        updateSummary();

        //Update the copyurl 
        var params = new Array();
        $("input:checked").each(function() {
            params.push($(this).attr("id").split("_")[1]);
        });

        $("#copyurl").get(0).value = ($("#copyurlbase").get(0).value + params.join("_")).replace(/_$/, "");
    });

    $("body#configurator input#btn_tell").click(function() {
        if ($("input:radio:checked").length == 0) {
            alert('Please select a computer');
            return false;
        }

        var ids = new Array();

        $("input:checked").each(function() {
            ids.push($(this).attr("id").split("_")[1]);
        });

        var data = { name: $("input#name").val(),
            email: $("input#email").val(),
            friend_name: $("input#friend_name").val(),
            friend_email: $("input#friend_email").val(),
            ids: ids.join("_")
        };

        $.post(base_url + "configurator/tell", data, function(data) {
            alert("Ett e-post har skickats till din vän!");
        });

        return false;
    });

    $("input#name2").focus(function() {
        $(".purple-popup").css("display", "none");
    });
    $("input#email2").focus(function() {
        $(".purple-popup").css("display", "none");
    });
	$("input#phonenum").focus(function() {
        $(".purple-popup").css("display", "none");
    });
    $("input#btn_send2").click(function() {
        var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
        if ($("input#name2").val() == "") {
            var left = ($("input#name2").offset().left - 20) - $("div#inner_content").offset().left;
            $(".purple-popup").css("left", left + 'px');
            $(".purple-popup").css("display", "block");
            $(".purple-popup").children("p").html("Fill out Name!");
            return false;
        }
        else if ($("input#email2").val() == "" || !filter.test($("input#email2").val())) {
            var left = ($("input#email2").offset().left - 20) - $("div#inner_content").offset().left;
            $(".purple-popup").css("left", left + 'px');
            $(".purple-popup").css("display", "block");
            $(".purple-popup").children("p").html("Fill out Email!");
            return false;
        }
        return true;
    });

    $("body#configurator input#btn_send").click(function() {
        if ($("input:radio:checked").length == 0) {
            alert('Välj först en dator.');
            return false;
        }

        var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

        if ($("input#name2").val() == "") {
            var left = ($("input#name2").offset().left - 20) - $("div#inner_content").offset().left;
            $(".purple-popup").css("left", (left + 'px'));
            $(".purple-popup").css("top", ($("input#name2").offset().top - 200) + 'px');
            $(".purple-popup").css("display", "block");
            $(".purple-popup").children("p").html("Skriv in ditt namn!");
            return false;
        }
        else if ($("input#email2").val() == "" && $("input#phonenum") == "") {
            var left = ($("input#email2").offset().left - 20) - $("div#inner_content").offset().left;
            $(".purple-popup").css("left", left + 'px');
            $(".purple-popup").css("top", ($("input#email2").offset().top - 200) + 'px');
            $(".purple-popup").css("display", "block");

            $(".purple-popup").children("p").html("Skriv in din e-postadress!");
            return false;
        }
        else if (!filter.test($("input#email2").val()) && $("input#phonenum") == "") {
            var left = ($("input#email2").offset().left - 20) - $("div#inner_content").offset().left;
            $(".purple-popup").css("left", left + 'px');
            $(".purple-popup").css("top", ($("input#email2").offset().top - 200) + 'px');
            $(".purple-popup").css("display", "block");

            $(".purple-popup").children("p").html("E-postadressen är felaktig!");
            return false;
        }

        /*
        if ($("input#name2").val() == "" || $("input#email2").val() == "" || !filter.test($("input#email2").val())) {
            alert("Skriv in namn och e-post.");
            return false;
        }
        */

        var ids = new Array();

        $("input:checked").each(function() {
            ids.push($(this).attr("id").split("_")[1]);
        });

        ids = ids.join("_");

        var data = { name: $("input#name2").val(),
            email: $("input#email2").val(),
            store: $("select#store").val(),
            contacttype: $("input[@name='rbContacted']:checked").val(),
            phonenumber: $("input#phonenum").val(),
            ids: ids
        };

       $.post(base_url + "configurator/contact", data, function(data) { 
            alert("Du kommer att bli kontaktad av oss inom kort.");
        });

        return false;
    });

    $("body#configurator a.details").click(function(e) {
        var url = $(this).attr("href");

        $("div#inner_popup").load(url, null, function() {
            var top = 0;
            if (jQuery.browser.safari) {
                top = $("body").scrollTop();
            }
            else {
                var top = $("#popup").offset().top - 70;
            }

            $("div#popup").css("top", top + "px").fadeIn("fast");

            //if the window is smaller than the containing div, calculate the center
            if (document.documentElement.clientWidth < 998) {
                var x = self.pageYOffset ? self.pageXOffset : document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollLeft : document.body ? document.body.scrollLeft : null;

                //get left position
                var left = (document.documentElement.clientWidth / 2) - 250;
                left = left + x;

                $("div#popup").css("left", left + "px").fadeIn("fast");
            }
        });

        return false;
    });

    $("body#configurator input#close").click(function() {
        $("div#popup").fadeOut("fast");
    });

    $("body#configurator input#btn_print").click(function() {
        if ($("input:radio:checked").length == 1) {
            alert('Please select a computer');
            return false;
        } else {
            //TODO: ADD LINK TO CHECKOUT;
            var ids = new Array();

            $("input:checked").each(function() {
                ids.push($(this).attr("id").split("_")[1]);
            });
            ids = ids.join("_");
            window.location.href = base_url + "checkout/step1/" + ids;

            return false;
        }
    });

    $("body#configurator select#currency").change(function() {
        var action = $(this).parent().attr("action") + "/" + $(this).val();

        var ids = "0";

        $("input:checkbox:checked, input:radio:checked").parent("li").each(function() {
            ids += "_" + $(this).attr("id").split("_")[1];
        });

        $.get(action, null, function() {
            window.location.href = base_url + "configurator/view/" + ids;
        });
    });

    $("a#clearall").click(function() {
        $("input:checkbox").attr("checked", "");
        updateCompatible();
        updateSummary();
        return false;
    });

    $("div.other_scroller div.product_scroller_top").click(function() {
        if ($(this).siblings("div").eq(0).css("display") == "block") {
            $(this).siblings("a").stop().fadeOut("fast");
            $(this).siblings("div").stop().slideUp("fast");
        } else {
            $(this).siblings("a").stop().fadeIn("fast");
            $(this).siblings("div").stop().slideDown("fast");
        }

        // Hide all boxes
        /*
        $("div.other_scroller div.product_scroller").slideUp("fast");
        $("div.other_scroller scroll_button").fadeOut("fast");

		$(this).siblings("a").stop().fadeIn("fast");		
        $(this).siblings("div").stop().slideDown("fast");
        */
    });


    updateCompatible();
    updateSummary();
    //hideOtherScrollers();
}

function initConfigurator_old() {
    $("body#configurator a.scroll_button").click(function() {
        // Get the UL to move
        var ul = $(this).siblings("div.product_scroller").find("ul")[0];

        var current_left = $(ul).css("left").split("px")[0];
        var number_of_items = $(ul).find("li").length;

        if ($(this).attr("id") == "scroll_left" && current_left < 0)
            var new_left = parseInt(current_left) + 246;
        else if ($(this).attr("id") == "scroll_right" && current_left > (-246 * (number_of_items - 4)))
            var new_left = parseInt(current_left) - 246;
        else
            return false;

        $(ul).animate({ left: new_left + "px" }, "fast");
        return false;
    });

    $("body#configurator input:checkbox, body#configurator input:radio").click(function() {
        updateCompatible();

        // Uncheck and disable all checkboxes that are hidden
        $("img.disabler:visible").siblings("input:checkbox").attr("checked", "");

        updateSummary();
    });

    $("body#configurator input#btn_tell").click(function() {
        if ($("input:radio:checked").length == 0) {
            alert('Please select a computer');
            return false;
        }

        var ids = new Array();

        $("input:checked").each(function() {
            ids.push($(this).attr("id").split("_")[1]);
        });

        var data = { name: $("input#name").val(),
            email: $("input#email").val(),
            friend_name: $("input#friend_name").val(),
            friend_email: $("input#friend_email").val(),
            ids: ids.join("_")
        };

        $.post(base_url + "configurator/tell", data, function(data) {
            alert("Ett e-post har skickats till din vän!");
        });

        return false;
    });

    $("body#configurator input#btn_send").click(function() {
        if ($("input:radio:checked").length == 0) {
            alert('Välj en dator');
            return false;
        }

        var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;

        if ($("input#name2").val() == "" || $("input#email2").val() == "" || !filter.test($("input#email2").val())) {
            alert("Fyll i namn och e-post.");
            return false;
        }

        if ($("select#store").val().indexOf("_") == 0)
            return false;

        var ids = new Array();

        $("input:checked").each(function() {
            ids.push($(this).attr("id").split("_")[1]);
        });

        ids = ids.join("_");

        var data = { name: $("input#name2").val(),
            email: $("input#email2").val(),
            store: $("select#store").val(),
            ids: ids
        };

        $.post(base_url + "configurator/send", data, function(data) {
            alert("Ett e-post har skickats till den valda butiken.");
        });

        return false;
    });

    $("body#configurator a.details").click(function() {
        var url = $(this).attr("href");

        $("div#inner_popup").load(url, null, function() {
            if (jQuery.browser.safari)
                var top = $("body").scrollTop();
            else
                var top = $("#popup").offset().top - 70;

            $("div#popup").css("top", top + "px").fadeIn("fast");
        });

        return false;
    });

    $("body#configurator input#close").click(function() {
        $("div#popup").fadeOut("fast");
    });

    $("body#configurator input#btn_checkout").click(function() {
        if ($("input:radio:checked").length == 0) {
            alert('Välj en dator');
            return false;
        } else {
            //TODO: Add LINK TO CHECKOUT!
            return false;
        }
    });

    $("body#configurator select#currency").change(function() {
        var action = $(this).parent().attr("action") + "/" + $(this).val();

        var ids = "0";

        $("input:checkbox:checked, input:radio:checked").parent("li").each(function() {
            ids += "_" + $(this).attr("id").split("_")[1];
        });

        $.get(action, null, function() {
            window.location.href = base_url + "configurator/view/" + ids;
        });
    });

    $("a#clearall").click(function() {
        $("input:checkbox").attr("checked", "");
        updateCompatible();
        updateSummary();
        return false;
    });

    $("div.other_scroller div.product_scroller_top").click(function() {
        if ($(this).siblings("div").eq(0).css("display") == "block") {
            $(this).siblings("a").stop().fadeOut("fast");
            $(this).siblings("div").stop().slideUp("fast");
        } else {
            $(this).siblings("a").stop().fadeIn("fast");
            $(this).siblings("div").stop().slideDown("fast");
        }

        // Hide all boxes
        /*
        $("div.other_scroller div.product_scroller").slideUp("fast");
        $("div.other_scroller scroll_button").fadeOut("fast");

		$(this).siblings("a").stop().fadeIn("fast");		
        $(this).siblings("div").stop().slideDown("fast");
        */
    });

    updateCompatible();
    updateSummary();
}

/********************
Configurator functions
********************/
function hideOtherScrollers() {
    // Hide other scrollers by default
    //$("div.other_scroller div.product_scroller").css("display", "none");
    $("div.other_scroller a.scroll_button").css("display", "none");
}

function updateCompatible() {
    // Get the id for all the currently compatible types
    var idsIncompatible = "0";

    $("input:checkbox:checked, input:radio:checked").each(function() {
        idsIncompatible += "_" + $(this).val();
    });

    idsIncompatible = idsIncompatible.split("_");
    /*
    // Disable all products
    $("img.disabler:visible").fadeOut("fast");

	// Enable all the products that are still compatible
    for(var i=0; i < idsIncompatible.length; i++) {
    $("li#prod_" + idsIncompatible[i] + " img.disabler:hidden").stop().fadeIn("fast");
    }
    */
    $("img.disabler").each(function() {
        var id = $(this).parent().attr("id").split("_")[1];
        if (in_array(idsIncompatible, id) && $(this).parent().parent().parent().parent().attr("id") != "model_scroller") {
            var parentLi = $(this).parent()[0];
            var liHeight = $(parentLi).height();

            //$(this).css("height", liHeight).fadeIn("fast");
            $(this).fadeIn("fast");
        } else
            $(this).fadeOut("fast");
    })
}

function updateSummary() {
    var className = "odd";
    var total_price = 0;

    $("#summary table tr.odd, #summary table tr.even").remove();

    $("input:checkbox:checked, input:radio:checked").each(function() {
        var price = $(this).siblings("span.price").text();
        var product_name = $(this).siblings("h3").text();
        var label = $(this).parents(".product_scroller").siblings(".product_scroller_top").find("span.label strong").parents().get(0);
        var category_name = $(this).parents(".product_scroller").siblings(".product_scroller_top").find("span.label strong").text();
        category_name = category_name.split(" - ")[0];
        var id = $(this).parent().attr("id").split("_")[1];
        var url = base_url + "configurator/details/" + id;
        

        //if(category_name == "CONFIGURATOR") 
        var label_class = $(label).attr('class');
        if (label_class == "label blue") {
            $("#selected_system a").replaceWith('<a href="' + url + '" class="details2">' + product_name + '</a>');
        } else {
            var tr = '<tr class="' + className + '">';
            tr += '<td><a href="' + url + '" class="details2">' + product_name + '</a></td>';
            tr += '<td>' + category_name + '</td>';
            tr += '<td>' + price + '</td>';
            tr += '<td class="del"><a href="#" class="delete" id="delete_' + id + '">Delete</a></td>';
            tr += '</tr>';

            $("#summary table").append(tr);

            className = className == "odd" ? "even" : "odd";
        }
        price = price.split(" ")[0];
        if (isNaN(price) || price.length == 0)
            price = 0;
        else
            price = parseInt(price);
        total_price += price;
    });

    if (isNaN(total_price)) {
        total_price = 0;
    }
    $("fieldset.col3 span strong").text(total_price);

    initSummaryLinks();
}

function initSummaryLinks() {
    $("#summary a.details2").click(function() {
        var url = $(this).attr("href");

        $("div#inner_popup").load(url, null, function() {
            $("div#popup").fadeIn("fast");
        });

        return false;
    });

    $("#summary a.delete").click(function() {
        var id = $(this).attr("id").split("_")[1];

        $("li#prod_" + id + " input")[0].checked = "";

        updateCompatible();
        updateSummary();

        return false;
    });
}
/********************
Submenu functions
********************/
function showSubMenu(number) {
    $("div#submenu" + number).css("display", "block");
}

function hideSubMenus() {
    $("div#submenu2").css("display", "none");
    $("div#submenu3").css("display", "none");
}

function in_array(haystack, needle) {
    var len = haystack.length;
    for (var x = 0; x <= len; x++) {
        if (haystack[x] == needle)
            return true;
    }
    return false;
}


/**********************
* Main fade functions
*********************/
var TimeToFade = 1000.0;

function fade(eid) {

    var element = document.getElementById(eid);
    if (element == null)
        return;


    if (element.FadeState == null) {
        if (element.style.opacity == null
        || element.style.opacity == ''
        || element.style.opacity == '1') {
            element.FadeState = 2;
        }
        else {
            element.FadeState = -2;
        }
    }

    if (element.FadeState == 1 || element.FadeState == -1) {
        element.FadeState = element.FadeState == 1 ? -1 : 1;
        element.FadeTimeLeft = TimeToFade - element.FadeTimeLeft;
    }
    else {
        element.FadeState = element.FadeState == 2 ? -1 : 1;
        element.FadeTimeLeft = TimeToFade;
        setTimeout("animateFade(" + new Date().getTime() + ",'" + eid + "')", 33);
    }
}

function fadeUp(eid) {
    var element = document.getElementById(eid);
    element.FadeState = 1;
    element.FadeTimeLeft = 1000;

    setTimeout("animateFade(" + new Date().getTime() + ",'" + eid + "')", 33);
}

function fadeDown(eid) {
    var element = document.getElementById(eid);
    element.FadeState = -1;
    element.FadeTimeLeft = 1000;
    setTimeout("animateFade(" + new Date().getTime() + ",'" + eid + "')", 33);
}


function animateFade(lastTick, eid) {
    var curTick = new Date().getTime();
    var elapsedTicks = curTick - lastTick;

    var element = document.getElementById(eid);

    if (element.FadeTimeLeft <= elapsedTicks) {
        element.style.opacity = element.FadeState == 1 ? '1' : '0';
        element.style.filter = 'alpha(opacity = '
        + (element.FadeState == 1 ? '100' : '0') + ')';
        element.FadeState = element.FadeState == 1 ? 2 : -2;
        return;
    }

    element.FadeTimeLeft -= elapsedTicks;
    var newOpVal = element.FadeTimeLeft / TimeToFade;
    if (element.FadeState == 1)
        newOpVal = 1 - newOpVal;

    element.style.opacity = newOpVal;
    element.style.filter = 'alpha(opacity = ' + (newOpVal * 100) + ')';

    setTimeout("animateFade(" + curTick + ",'" + eid + "')", 33);
}

function submitOrderButton() {
  if( $("input#termsAgreement").attr("checked")) {
    document.frmCheckout.submit();
  }
  else {        
    var left = ($("input#termsAgreement").offset().left - 80) - $("div#inner_content").offset().left;
    $(".purple-popup").css("left", (left + 'px'));
    $(".purple-popup").css("top", ($("input#termsAgreement").offset().top - 200) + 'px');
    $(".purple-popup").css("display", "block");
  }
}
 
