/** Registration Page scripts  */

var regWeeksContainer;
var regTotalPrice;
var regTime;
var regPricePerTime;
var regStaticPrice;

var regCbIsoDirect;
var regCbExpertChat;

var mySlide;

var minWeeks = 8;
var maxWeeks = 52;

function setPricePerTime()
{
    var dynamicPrice = 0;
    var staticPrice = 0;

    //if($('cb-basic').get('checked') == true)
	    dynamicPrice += 39;
    if(regCbExpertChat.get('checked') == true)
        dynamicPrice += 9;
    if(regCbIsoDirect.get('checked') == true)
	    staticPrice += 199;

    regPricePerTime.set("html",dynamicPrice);
    regStaticPrice.set("html",staticPrice);
    
    $('static-price').setStyle('display', (staticPrice > 0) ? 'inline' : 'none');

    setTotalPrice();
}

function setWeeks()
{
    if(regWeeksContainer)
        regTime.set("html", regWeeksContainer.get("value"));
}

function setTotalPrice()
{
    regTotalPrice.set("html", regPricePerTime.get("html") * regTime.get("html") + eval(regStaticPrice.get("html")));
}
    
function setUpRegistration()
{
    // setup elements;
    regWeeksContainer = $$(".RegistrationWeeks")[0];
    regTotalPrice = $('totalprice');
    regTime = $('time');
    regPricePerTime = $('pricepertime');
    regStaticPrice = $('pricestatic');
    
    regCbIsoDirect = $$(".RegIsoDirect input")[0];
    regCbExpertChat = $$(".RegExpertchat input")[0];
   
    $$("#registration input[type='checkbox']").each(function(item, index) {
		    item.addEvent("click", function() {
			    item.getParent().getNext("div.price").toggleClass("inactive");
			    setPricePerTime();
			    //$('offer-not-taken').toggleClass("RegHidden");
		    } );
	    }
    );

    setPricePerTime();
    setWeeks();
    setTotalPrice();
      
    mySlide = new Slider($('area'), $('knob'), {
	    steps: 48,
	    range: [minWeeks,maxWeeks],
	    onChange: function(step){
	        $('bar-highlighted').setStyle('width',(step-8)*7.5);
		    regWeeksContainer.set('value',step);
	        setPricePerTime();
	        setWeeks();
	        setTotalPrice();
	        updateOffers(step);
	    }
    }).set(12);
     
    /**$('knob').setOpacity(0.5);*/
    
    
    regWeeksContainer.addEvent("keypress", function() {
        if(window.mytimeout) window.clearTimeout(window.mytimeout);
        window.mytimeout = window.setTimeout(function(){manualWeekSetHandler()}, 800);
    } );
    
}

function manualWeekSetHandler()
{
    var i = regWeeksContainer.get('value');
    if(i > maxWeeks)
        regWeeksContainer.set('value', maxWeeks);
    if(i < minWeeks)
        regWeeksContainer.set('value', minWeeks);
    setPricePerTime();
    setWeeks();
    setTotalPrice();
    updateOffers(regWeeksContainer.get('value'));
    mySlide.set(i);    
}

function initiateSlider()
{
}

function updateOffers(weeks)
{
    $('weight').set('html',weeks);
    $('menus').set('html',weeks);
    $('program').set('html',weeks * 7);
    $$('.chats').each( function(el) { el.set('html',weeks * 3) });
    
    /** Toggle bonuses */
    if(weeks >= 20)
    {
        SetBonusOffers('offer-one', false);  
        SetBonusOffers('offer-two', true); 
        
        $('offer-one-inactive').setStyle('display','none');
    }
    else if(weeks >= 15)
    {
        SetBonusOffers('offer-one', true); 
        SetBonusOffers('offer-two', false);
    }
    else
    {
        SetBonusOffers('offer-one', false); 
        SetBonusOffers('offer-two', false);
    }
    
    updateCheckBoxOffers();
    
    ToggleInactiveField();
}

function updateCheckBoxOffers()
{
     SetBonusOffers('offer-chat', regCbExpertChat.get('checked')); 
     SetBonusOffers('offer-direct', regCbIsoDirect.get('checked')); 
     
     ToggleInactiveField();
}

function ToggleInactiveField()
{
    if(regCbExpertChat.get('checked') &&
        regCbIsoDirect.get('checked') &&
        regWeeksContainer.get('value') >= 20)
        $('inactive-header').setStyle('display','none');
    else
        $('inactive-header').setStyle('display','block');
}

function SetBonusOffers(offerName, isEnabled)
{
    $(offerName).setStyle('display', (isEnabled ? 'block' : 'none') );
    $(offerName + '-inactive').setStyle('display',(isEnabled ? 'none' : 'block'));
}

function SendNewUserPassword(userid)
{

    var emailStatus = $("userexistbox-emailstatus");
    if(emailStatus)
    {
        emailStatus.setStyle('color','black');
        emailStatus.set('html','L&ouml;senordet skickas...');
    }
    
    doAjaxJSON('/utils/registration/SendPassword.aspx','uid=' + userid,UpdatePasswordStatus,'');

}

function UpdatePasswordStatus(data)
{
        var emailStatus = $("userexistbox-emailstatus");
        
        if(data.status == 2)
        {
            if(emailStatus)
            {
                emailStatus.setStyle('color','red');
                emailStatus.set('html','L&ouml;senordet kunde inte skickas');
            }
            
            var regFailedEmailBox = $("userexistbox-emailfailed");
            if(regFailedEmailBox)
            {
                regFailedEmailBox.removeClass('RegHidden');
            }
            
            return;
        }
        
        if(data.status == 1)
        {
            if(emailStatus)
            {
                emailStatus.setStyle('color','green');
                emailStatus.set('html','L&ouml;senordet &auml;r nu skickat till din e-postadress.');
            }

            var regNewPasswordBox = $("regenternewpasswordbox");
            if(regNewPasswordBox)
            {
                regNewPasswordBox.removeClass('RegHidden');
            }
           
        }
}

function SetNewPasswordToTrealBox(passwordBoxId)
{
    var passwordBox = $(passwordBoxId);
    var nexPasswordBox = $("newpasswordfromemail");
    
    passwordBox.value = nexPasswordBox.value;        
}

