import { showToast } from '../components/common.js'
// 金额校验
export function checkAmt(dPrice) {
	// 判断是否为空
	if(dPrice === '') {
		showToast('金额不可为空')
		return false
	}
	
	// 1：判断是否有非法字符
	for(var i = 0; i < dPrice.length; i++) {
		if(isNaN(parseInt(dPrice.charAt(i))) && dPrice.charAt(i) != "." && dPrice.charAt(i) != ","){
			showToast('请输入正确的金额')
			return false
		}
	}
	// 2：如果存在小数点，判断是否仅有一个小数点
	if(dPrice.indexOf(".") != dPrice.lastIndexOf(".")) {
		showToast('请输入正确的金额')
		return false
	}
	// 3：判断金额是否为零
	var re = /,/g
	var amt1 = dPrice.replace(re, "")
	var amt2 = parseFloat(amt1)
	if(amt2 <= 0) {
		showToast('输入金额须大于0')
		return false
	} else {
		// 4：判断金额小数点后是否超过两位 
		if(amt1.indexOf(".") != -1) {
			var str = amt1.substr(amt1.indexOf(".") + 1)
			if(str.length > 2) {
				showToast('输入金额小数点不可超过两位')
				return false
			}else if(str.length === 0) {
				showToast('请输入正确的金额')
				return false
			}
		}
		// 5：判断以零开头的金额，小数点是否在第一位
		if(amt1.charAt(0) == "0" && amt1.indexOf(".") != 1) {
			showToast('请输入正确的金额')
			return false
		}
	}
	return true
}

// 比较版本号
export function compareVersion(v1, v2){
    v1 = v1.split('.')
    v2 = v2.split('.')
    let len = Math.max(v1.length, v2.length)
    while(v1.length <len) {
		v1.push('0')
    }
    while(v2.length <len) {
		v2.push('0')
    }
    for(let i = 0; i < len; i++) {
		let num1 = parseInt(v1[i])
		let num2 = parseInt(v2[i])
		if (num1 > num2) {
			return 1
		} else if (num1 < num2) {
			return -1
		}
    }
    return 0
}

// 根据背景色动态改变字体颜色
export function modifyTextColor(bgColor){
	// #123456或rgb(12, 34, 56)转为rgb数组[12, 34, 56]
	const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/
	if (/^(rgb|RGB)/.test(bgColor)) {
		// 处理rgb转为数组
		let aColor = bgColor.replace(/(?:\(|\)|rgb|RGB)*/g, '').split(',')
		return resBgColor(aColor)
	} else if (reg.test(bgColor)) {
		// 处理十六进制色值
		let sColor = bgColor.toLowerCase();
		if (sColor && reg.test(sColor)) {
			if (sColor.length === 4) {
			let sColorNew = '#'
			for (let i = 1; i < 4; i += 1) {
				sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1))
			}
			sColor = sColorNew
		}
		//处理六位的颜色值
		let sColorChange = []
		for (let i = 1; i < 7; i += 2) {
			sColorChange.push(parseInt('0x' + sColor.slice(i, i + 2)))
		}
		return resBgColor(sColorChange)
		} else {
			return false
		}
	} else {
		return false
	}
}

export function resBgColor(rgbArr){
	let color = 0.213 * rgbArr[0] + 0.715 * rgbArr[1] + 0.072 * rgbArr[2] > 255 / 2;
	return color ? '#333333': '#ded0d0'
}

