var Guestcompass = Guestcompass || {};
Guestcompass.campaign = {

}

Guestcompass.campaign.checkCookie = function()
{
	//alert(parseInt(Guestcompass.campaign.getCookie('visited')));

	// houd aantal bezoeken bij en zet expirein date
	if(document.cookie.indexOf("visited") == -1) 
	{
		Guestcompass.campaign.set_cookie('visited', 1, 'days', 180 );
		Guestcompass.campaign.set_cookie('visited_expered', 1, 'hours', 2);	
	}

	//console.log(Guestcompass.campaign.getCookie('visited'));
	//Guestcompass.campaign.set_cookie('visited_expered', 1, 'hours', 0.5);
	//console.log(document.cookie.indexOf("visited_expered"));

	if(document.cookie.indexOf("visited_expered") == -1)
	{
		Guestcompass.campaign.set_cookie('visited', parseInt(Guestcompass.campaign.getCookie('visited')) +1, 'days', 180);
		Guestcompass.campaign.set_cookie('visited_expered', 1, 'hours', 2);
	}
}


Guestcompass.campaign.init = function(aPage)
{

}

Guestcompass.campaign.renderLigthBox = function(vraag, questionId, visit, options)
{
	var sInput = '';
	if(vraag == '' || !Guestcompass.campaign.checkQuestion(questionId, visit))
	{
		// vraag voldoet niet aan de eisen 
		return;
	}

    // Genereer (Foundation responsive) HTML om in de lightbox te plaatsen
	if (typeof(options) !== undefined)
	{
		console.log(options);
		options = JSON.parse(options);

        var sConditionHtml = '';

        // Voorwaarden
		if (typeof(options.conditions) !== undefined)
		{
            sConditionHtml += '<div class="conditions">';
                sConditionHtml += '<p>' + options.conditions.content.replace(/\r\n|\r|\n/g, "<br/>") + '</p>';
                sConditionHtml += '<div class="conditions-button-container">';
                    sConditionHtml += '<div class="row">';
                        sConditionHtml += '<div class="small-12 medium-6 columns">';
                            sConditionHtml += '<div class="conditions-accept button">'+(typeof(options.conditions_accept_button) !== undefined ? options.conditions_accept_button.content :  'accept')+'</div>';
                        sConditionHtml += '</div>';
                        sConditionHtml += '<div class="small-12 medium-6 columns">';
                            sConditionHtml += '<div class="close button">'+(typeof(options.conditions_decline_button) !== undefined ? options.conditions_decline_button.content :  'decline')+'</div>';
                        sConditionHtml += '</div>';
                    sConditionHtml += '</div>';
                sConditionHtml += '</div>';
            sConditionHtml += '</div>';
			sConditionHtml += '<div class="conditions-button">'+(typeof(options.conditions_button) !== undefined ? options.conditions_button.content :  'conditions')+'</div>';
		}	

        // Input


		var hasInput = false;
		var countFields = 0;
		for (var i = 1; i <= 100; i++) {
			var key = i === 1 ? 'question_type' : 'question_type_' + i;

			if (!options[key])
			{
				break;
			}

			if (!options[key].content)
			{
				continue;
			}

			countFields++;

			switch(options[key].content)
			{
				case 'input':
					hasInput = true;
					sInput += '<input name="input-'+i+'" type="text" placeholder="'+options[key + '_placeholder'].content+'" />';
					break;

				default:
					sInput += '<div class="rating-item"><div class="rating" data-rating="'+i+'"><div>B</div><div>B</div><div>B</div><div>B</div><div>B</div></div><input name="rating-'+i+'" type="hidden" ></div>';
					break;
			}
		}
		var autoSubmit = hasInput === false && countFields === 1;
		if (!autoSubmit)
		{
			sInput = '<form>' + sInput;
			sInput += '<input type="submit" class="submit button" value="' + (typeof(options.input_button) !== undefined ? options.input_button.content :  Guestcompass.aTranslations['connect']) + '" />';
			sInput += '</form>';
		}

	}
	else
	{
		sInput = '<div class="rating"><div>B</div><div>B</div><div>B</div><div>B</div><div>B</div></div><input type="hidden" >';
	}

    var sLightboxHtml = '';
    
    sLightboxHtml = '\
			<div class="mssg-container">\
				<div class="mssg-content campaign">\
					<span>' + vraag + '</span>\
					<div class="field">\
						' + sInput + '\
						' + sConditionHtml + '\
					<div class="clear"></div>\
				</div>\
			</div>\
			<div class="clear"></div>';

	$('body').lightbox({
		lightboxClass : 'lightboxCampaignContainer',
		scrollUp : "50%",
		fullwidth: !Guestcompass.tablet,
		width: Guestcompass.tablet ? 800 : 0,
		lightboxPosition	: 'fixed',
		'loadData' : sLightboxHtml,
		
        onComplete : function()
		{

			if(typeof(options) !=  'undefined' )
			{
				Guestcompass.campaign.setStar(questionId, vraag, autoSubmit);
				if (!autoSubmit)
				{
					Guestcompass.campaign.submit(questionId, vraag);
				}

				if(typeof(options.conditions) != 'undefined')
				{
					Guestcompass.campaign.showConditions(questionId);
				}
			}
			else
			{
				Guestcompass.campaign.setStar(questionId, vraag, true);
			}
		}
	});

	// mocht rob hem terug willen
	//<div class="close">'+Guestcompass.aTranslations['close']+'<span>X</span></div>
}

Guestcompass.campaign.post = function(result, vraag)
{
	$.ajax({
		url: Guestcompass.sCMSLocation+'interface/campaign-send/h/'+iHotelID,
		type: 'POST',               
		crossDomain: true,
		data : 'vraag='+encodeURIComponent(vraag+' : '+result)
	});
}

Guestcompass.campaign.submit = function(questionId, vraag)
{	
	$(".campaign form").submit(function(e)
	{	
		e.preventDefault();
			
		Guestcompass.campaign.registerQuestion(questionId);
		var formData = "\n" + $(this).serializeArray().map(function (response) {
			return response.name + ': ' + response.value;
		}).join("\n");
		Guestcompass.campaign.post(formData, vraag);
		$('body').lightbox.close();
	});
}

Guestcompass.campaign.showConditions = function(questionId)
{
	$(".campaign .conditions-button").click(function()
	{
		$(".mssg-content.campaign span, .mssg-container form, .mssg-container .conditions-button").hide();
		$('.conditions').show();
	});

	$(".campaign .conditions-accept").click(function()
	{
		$('.conditions').hide();
		$(".mssg-content.campaign span, .mssg-container form, .mssg-container .conditions-button").show();
	});

    $(".campaign .close").click(function()
	{
		Guestcompass.campaign.registerQuestion(questionId);		
	});

}


Guestcompass.campaign.setStar = function(questionId, vraag, autoSubmit = false)
{
	$(".campaign .rating div").click(function()
	{
		//alert('doe dingen');

		$(this).parent().find("div").removeClass("active");
		var iIndex = $(this).index() + 1;

		$(this).parents('.rating-item').find('input').val(iIndex);
	
		for(var j = 1; j <= iIndex; j++)
		{
			$(this).parent().find('div:nth-child('+j+')').addClass("active");
		}

		setTimeout(function(){
			if ( autoSubmit)
			{
				Guestcompass.campaign.registerQuestion(questionId);
				Guestcompass.campaign.post("*".repeat(iIndex), vraag);

				$('body').lightbox.close();
			}
		}, 1200);
	});
}

// check of de gebruiker de vraag al gehad heeft zo niet  true trug anders false
Guestcompass.campaign.checkQuestion = function(questionId, visit)
{
	if(visit != Guestcompass.campaign.getCookie('visited'))
	{
		return false;
	}

	aRegistererd = Guestcompass.campaign.getCookie('registererd');

	if (document.cookie.indexOf('registererd=') == -1) 
	{
		return true;
	}
	else
	{
		aRegistererd = JSON.parse(Guestcompass.campaign.getCookie('registererd'));
		
		if($.inArray(questionId, aRegistererd) < 0)
		{
			return true;
		}
		else
		{
			return false;	
		}
	}
}

Guestcompass.campaign.registerQuestion = function(questionId)
{
	if (document.cookie.indexOf('registererd') == -1) 
	{
		//alert('registeer bestaad nog niet');
		Guestcompass.campaign.set_cookie('registererd', JSON.stringify( [questionId] ), 'days', 180 );

		//aRegistererd = Guestcompass.campaign.getCookie('registererd');
		//alert(aRegistererd);
	}
	else
	{
		aRegistererd = JSON.parse(Guestcompass.campaign.getCookie('registererd'));
		aRegistererd.push(questionId);
		Guestcompass.campaign.set_cookie('registererd', JSON.stringify(aRegistererd), 'days', 180 );
	}
}

Guestcompass.campaign.set_cookie =  function(cookiename, cookievalue, type, time ) 
{
    var date = new Date();

    if(type == 'seconds')
		date.setTime(date.getTime() +(Number(time) * 1000));
    else if(type == 'hours')
		date.setTime(date.getTime() +(Number(time) * 60 * 60 * 1000));
    else if(type == 'days' )
		date.setTime(date.getTime() +(Number(time) * 24 * 60 * 60 * 1000));
    else if(type == 'years')
		date.setTime(date.getTime() +(Number(time) * 356 * 24 * 60 * 60 *1000));
    else
    	date.setTime(date.getTime() + time);

    //console.log(cookiename + "=" + cookievalue + "; path=/;expires = " + date.toString() );
    document.cookie = cookiename + "=" + cookievalue + "; path=/;expires = " + date.toString();
}

Guestcompass.campaign.getCookie = function(name)
{
	var value = "; " + document.cookie;
	var parts = value.split("; " + name + "=");
	if (parts.length == 2) return parts.pop().split(";").shift();
}

Guestcompass.campaign.remove_cookie = function(cookiename)
{
	document.cookie = cookiename + '=; path=/;expires=Thu, 01 Jan 1970 00:00:01 GMT;';	
}
