/**
 * 对dhtmlx的combo进行扩展
 */

window.dhx_globalImgPath="imgs/";

function ComboBox(id, str){
	if($('#' + id).length == 0){ 
		return;
	}
	var combo = new dhtmlXComboFromSelect(id);
	combo.enableFilteringMode(true);
	
	var defaultText = str;
	var text = '';
	var value = '';
	
	combo.attachEvent("onOpen", function(){
		text = combo.getSelectedText();
		value = combo.getSelectedValue();
		combo.setComboText('');
		text = !text ? '' : text;
		value = !value ? '' : value;
	});
	
	combo.attachEvent("onBlur", function(){
		var v = combo.getComboText();
		if($.trim(v) == ''){
			combo.setComboText(text);
			combo.setComboValue(value);
		} else if(!combo.getOptionByLabel(v)){
			combo.setComboText(defaultText);
			combo.setComboValue('');
		}
	});
	
	return combo;
}

/**
 * 在分页标签中处理关键字
 */
function changeKeyWord(){
	if($('input[defaultWord]').attr('isDefault') == 'true' && $('input[defaultWord]').val() == $('input[defaultWord]').attr('defaultWord')){
		$('input[defaultWord]').val('');
	}
}

/**
 * 处理关键字
 */
function KeyWord(){
	$('input[defaultWord]').bind('focus', function(){
		$(this).select();
	});
	
	$('input[defaultWord]').bind('change', function(){
		if($.trim($('input[defaultWord]').val()) == ''){
			var defaultWord = $('input[defaultWord]').attr('defaultWord');
			$('input[defaultWord]').val(defaultWord);
			$('input[defaultWord]').attr({isDefault: 'true'});
		} else{
			$('input[defaultWord]').attr({isDefault: 'false'});
		}
	});
	
	$('form').bind('submit', function(){
		$(':hidden[name="keyword"]').remove();
		if($('input[defaultWord]').attr('isDefault') == 'true' && $('input[defaultWord]').val() == $('input[defaultWord]').attr('defaultWord')){
			$('input[defaultWord]').val('');
		}
	});
	
	if($.trim($('input[defaultWord]').val()) == ''){
		var defaultWord = $('input[defaultWord]').attr('defaultWord');
		$('input[defaultWord]').val(defaultWord);
	}
}

/**
 * 创建窗口
 * @param {} title 标题
 * @param {} obj url或id
 * @param {} width 宽
 * @param {} height 高
 * @param {} handler 窗口关闭时的回调函数
 */
function createWindow(title, obj, width, height, handler){
	result = null;
	
	dhxWins = new dhtmlXWindows();
	dhxWins.enableAutoViewport(true);
	dhxWins.setImagePath("imgs/");
	
	var left = (document.documentElement.clientWidth - width) / 2;
	var win = dhxWins.createWindow("win", left, 10, width, height);
	win.setText(title);
	win.setModal(true);
	win.button('minmax1').hide();
	if($('#' + obj).length > 0){
		win.attachObject(obj);
	} else{
		win.attachURL(obj);
	}
	win.center();
	win.bringToTop();
	
	dhxWins.attachEvent("onClose", function(win){
        if(handler){
        	handler.call();
        }
		return true;
    });
}

function createWindow2(title, obj, width, height, left, top, handler){ 
	result = null;
	
	dhxWins = new dhtmlXWindows();
	dhxWins.enableAutoViewport(true);
	dhxWins.setImagePath("imgs/");
	
	var win = dhxWins.createWindow("win", left, top, width, height);
	win.setText(title);
	win.setModal(true);
	win.button('minmax1').hide();
	if($('#' + obj).length > 0){
		win.attachObject(obj);
	} else{
		win.attachURL(obj);
	}
	dhxWins.attachEvent("onClose", function(win){
        if(handler){
        	handler.call();
        }
		return true;
    });
}

function remarkWindow(obj, target){
	var width = 650;
	var height = 500;
	
	dhxWins = new dhtmlXWindows();
	dhxWins.enableAutoViewport(true);
	dhxWins.setImagePath("imgs/");
	
	var left = (document.documentElement.clientWidth - width) / 2;
	var win = dhxWins.createWindow("win", left, 10, width, height);
	win.setText('备注');
	win.setModal(true);
	win.button('minmax1').hide();
	win.attachURL(obj + '&id=' + target.id + '&entity=' + target.entity);
	win.center();
	
	remarkTarget = target;
}

/**
 * 为分页标签的pageSize文本框添加keypress事件，限定其只能输入数字
 */
$(function() {
	$(".pageSize").keypress(function(event) {
		if (!$.browser.mozilla) {
			if (event.keyCode && !(event.keyCode >= 48 && event.keyCode <= 57)) {// ie6,7,8,opera,chrome管用
				event.preventDefault();
			}
		} else {
			if (event.charCode && !(event.charCode >= 48 && event.charCode <= 57)) {// firefox管用
				event.preventDefault();
			}
		}
	});
}); 

/**
 * 验证字符串是否为yyyy-mm-dd格式
 */
function isDate(str){
	if($.trim(str) == ''){
		return true;
	}
	if(!str.match(/^\d{4}\-\d\d?\-\d\d?$/)){
		return false;
	}
	var ar = str.replace(/\-0/g,"-").split("-");
	ar = new Array(parseInt(ar[0]), parseInt(ar[1])-1, parseInt(ar[2]));
	var d = new Date(ar[0], ar[1], ar[2]);
	return d.getFullYear() == ar[0] && d.getMonth() == ar[1] && d.getDate() == ar[2];
}

var baseNames = {
	'org': '单位',
	'staff': '个人',
	'Pension': '养老保险',
	'Medical': '医疗保险',
	'Offwork': '失业保险',
	'Hurt': '工伤保险',
	'Bear': '生育保险',
	'BigMedical': '大额医疗',
	'Housefund': '住房公积金',
	'Base': '基数',
	'Rate': '比例'
};

function checkStandard(){
	var standard = $('.standard').text();
	standard = eval('(' + standard + ')');
	var array1 = ["org", "staff"];
	var array2 = ["Pension", "Medical", "Offwork", "Hurt", "Bear"];
	var array3 = ["Base", "Rate"];
	for(var i = 0;i < array1.length;i++){
		for(var j = 0;j < array2.length;j++){
			for(var k = 0;k < array3.length;k++){
				var name = array1[i] + array2[j] + array3[k];
				var value = getPropOfBase(name);
				var min = Number(standard[name]);
				var msg = name;
				for(var s in baseNames){
					msg = msg.replace(s, baseNames[s]);
				}
				if(isNaN(min) || isNaN(value)){ // 输入的不是数字
					alert(msg + '输入的不是数字');
					return false;
				} else if(min > value){ // 小于最低标准
					alert(msg + '低于最低标准' + min);
					return false;
				}
			}
		}
	}
	
	return true;
}

function checkBase(){
	var array1 = ["org", "staff"];
	var array2 = ["Pension", "Medical", "Offwork", "Hurt", "Bear", "BigMedical"];
	for(var i = 0;i < array1.length;i++){
		for(var j = 0;j < array2.length;j++){
			var prefix = array1[i] + array2[j];
			var base = getPropOfBase(prefix + 'Base');
			var rate = getPropOfBase(prefix + 'Rate');
			var money = getPropOfBase(prefix + 'Money');
			var msg = prefix;
			for(var s in baseNames){
				msg = msg.replace(s, baseNames[s]);
			}
			if(isNaN(base) || isNaN(rate) || isNaN(money)){ // 输入的不是数字
				alert(msg + '输入的不是数字');
				return false;
			} else if(rate > 1){
				alert(msg + '比例不能大于1');
				return false;
			} else if(money > 0 && formatNumber(base * rate, 2) != money){ // 基数乘以比例不等于金额(金额可以为0)
				alert(msg + '基数乘以比例不等于金额');
				return false;
			}
		}
	}
	
	return true;
}

function checkBase2(){
	var array1 = ["org", "staff"];
	var array2 = ["Pension", "Medical", "Offwork", "Hurt", "Bear", "BigMedical"];
	for(var i = 0;i < array1.length;i++){
		for(var j = 0;j < array2.length;j++){
			var prefix = array1[i] + array2[j];
			var base = getPropOfBase(prefix + 'Base');
			var rate = getPropOfBase(prefix + 'Rate');
			var msg = prefix;
			for(var s in baseNames){
				msg = msg.replace(s, baseNames[s]);
			}
			if(isNaN(base) || isNaN(rate)){ // 输入的不是数字
				alert(msg + '输入的不是数字');
				return false;
			} else if(rate > 1){
				alert(msg + '比例不能大于1');
				return false;
			}
		}
	}
	return true;
}

function getPropOfBase(name){
	var obj = $('input[name="' + name + '"]');
	if(obj.length == 0){
		obj = $('input[name="socr.' + name + '"]');
	}
	if(obj.length == 0){
		obj = $('.' + name);
	}
	if(isNaN(Number(obj.val()))){
		alert(name + ': ' + obj.val())
	}
	return Number(obj.val());
}

function formatNumber(number,fractionDigits){  
	return (Math.round(number*Math.pow(10,fractionDigits)) / Math.pow(10,fractionDigits)).toFixed(fractionDigits);  
}
