miniHeader = false;
const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
const isAndroid = /Android/.test(navigator.userAgent);

jQuery(document).ready(function(){
	
	jQuery('.hamburger_menu').click(function(){
		if (jQuery('.mobilemenu').hasClass('open')){
			jQuery('.mobilemenu').removeClass('open');
			jQuery('header').removeClass('mobilemenuopen');
			jQuery('header .mobilebutton').removeClass('close');
		}
		else {
			jQuery('.mobilemenu').addClass('open');
			jQuery('header').addClass('mobilemenuopen');
			jQuery('header .mobilebutton').addClass('close');
		}
	});
	
	checkHeader();
	
	jQuery(window).scroll(function(){
		checkHeader();
	});
	
	
	jQuery(window).resize(function(){
		if ((!isIOS) && (!isAndroid)){
			//resetPtGradient();
			//ptGradient();
		}
	})
	if (!isIOS) ptGradient();
	
	jQuery(".backbutton").click(function(){
		window.history.back();
	})
	
	
});

function checkHeader(){
scrollPosition = jQuery(window).scrollTop();
	if (scrollPosition > 0){
		if (!miniHeader){
			jQuery("header").addClass("mini");
			miniHeader = true;
		}
	}
	if (scrollPosition == 0){
		if (miniHeader){
			jQuery("header").removeClass("mini");
			miniHeader = false;
		}
	}
}

function ptGradient(){
	
	jQuery('.ptgradient').each(function(){
		var title = jQuery(this).find(':header');
		title.css("margin", "0");
		title.css("padding", "0");
		title.css("position", "relative");
		title.css("top", "0");
		title.css("left", "0");
		title.css("opacity", "0");
		title.wrap('<div class="content" style="position:absolute;top:0;left:0;"></div>');
		title.parent().wrap('<div class="wrapper" id="wrapper' + id + '" style="position:relative;"></div>');
		
		
		
		const titleText = title.text();
		var fontSize = title.css("font-size");
		var fontFamily = title.css("font-family");
		var fontWeight = translateFontWeight(title.css("font-weight"));
		var alignment = title.css("text-align");
		var id = generateId();
		const width = title.outerWidth() * 1.1;
		
		const lines = getLines(titleText, width, fontSize, fontFamily);
		
		for (loop = lines.length - 1; loop >= 0; loop --){
			title.parent().parent().prepend('<canvas id="canvas' + id + loop + '" style="display:block;"></canvas>');
			const canvas = document.getElementById('canvas' + id + loop);
			const ctx = canvas.getContext('2d');
			canvas.width = width;
			canvas.height = parseInt(fontSize) * 1.2;
			const gradient = ctx.createLinearGradient(0, 0, canvas.width, canvas.height);
			gradient.addColorStop(0, 'rgb(0, 185, 255)');
			gradient.addColorStop(0.33, 'rgb(1, 235, 235)');
			gradient.addColorStop(0.66, 'rgb(208, 208, 208)');
			gradient.addColorStop(1, 'rgb(254, 214, 69)');
	
			ctx.fillStyle = gradient;
			ctx.fillRect(0, 0, canvas.width, canvas.height);
	
			ctx.globalCompositeOperation = 'destination-in';
			ctx.font = fontWeight + ' ' + fontSize + ' ' + fontFamily;
			ctx.textBaseline = "middle";
			const lineWidth = ctx.measureText(lines[loop]).width;
			var position = 0
			if (alignment == "start") position = 0;
			else if (alignment == "center") position = (canvas.width - lineWidth) / 2;
			else if(alignment == "right") position = (canvas.width - lineWidth);
			ctx.fillText(lines[loop], position, canvas.height / 1.8);
		}
	});
	
}

function resetPtGradient(){
	jQuery('.ptgradient').each(function(){
		//var title = jQuery(this).find(':header');
		//jQuery(this).find('.elementor-widget-container').html(title.text());
	});
}

function translateFontWeight(text){
	switch(text){
		case "100":
			return "Thin";
			break;
		case "200":
			return "Extra Light";
			break;
		case "300":
			return "Light";
			break;
		case "400":
			return "Normal";
			break;
		case "500":
			return "Medium";
			break;
		case "600":
			return "Semi Bold";
			break;
		case "700":
			return "Bold";
			break;
		case "800":
			return "Extra Bold";
			break;
	}
}

function generateId(){
	return "id" + Math.random().toString(16).slice(2)
}


function getLines(text, maxWidth, fontSize, fontFamily){
	const canvas = document.createElement('canvas');
	const ctx = canvas.getContext('2d');
	ctx.font = `${fontSize} ${fontFamily}`;
	var lines = Array();
	
	const words = text.split(' ');
  	let line = '';
	for (loop = 0; loop < words.length; loop ++){
		const testLine = line + words[loop] + ' ';
		const lineWidth = ctx.measureText(testLine).width;
		if (lineWidth >= maxWidth) {
			lines.push(line);
			line = words[loop] + ' ';
		} else {
			line = testLine;
		}
	}
	lines.push(line);
	return lines;

}










