/** 
 * product公共js代码
 *
 */
/**
 * 选中一个复选框后其他的复选框都不能选择
 * @param parentId 包含所有复选框的元素id
 * @param inputsId 复选框id,该复选框被选中后其他复选框都不能再选择
 **/
function chooseOne(parentId, inputsId){
    var cb1 = j$("#" + inputsId);
    var other = j$("#" + parentId + " :checkbox[id!='" + inputsId + "']");
    cb1.bind('click', {
        'cb1': cb1,
        'other': other
    }, function(event){
        var cb1 = event.data.cb1;
        var other = event.data.other;
        setTimeout(function(){
            if (cb1.get(0).checked) {
                other.each(function(){
                    this.checked = false;
                    this.disabled = true;
                });
            }
            else {
                other.each(function(){
                    this.checked = false;
                    this.disabled = false;
                });
            }
        }, 2, cb1, other);
    });
    other.bind('click', {
        'cb1': cb1,
        'other': other
    }, function(event){
        var cb1 = event.data.cb1;
        var other = event.data.other;
        setTimeout(function(){
            var num = 0;
            other.each(function(){
                if (this.checked) {
                    num++;
                }
            });
            if (num > 0) {
                cb1.get(0).checked = false;
                cb1.get(0).disabled = true;
            }
            else {
                cb1.get(0).checked = false;
                cb1.get(0).disabled = false;
            }
        }, 2, cb1, other);
    });
}

/**
 * 全选和取消全选
 * @param parentId 包含所有复选框的元素id
 * @param inputsId 复选框id,该复选框被选中后其他复选框全部选中
 */
function chooseAll(parentId, inputsId) {
    var cb1 = j$("#" + inputsId);
    var other = j$("#" + parentId + " :checkbox[id!='" + inputsId + "']");
    cb1.bind('click', {
        'cb1': cb1,
        'other': other
    }, function(event){
        var cb1 = event.data.cb1;
        var other = event.data.other;
        setTimeout(function(){
            if (cb1.get(0).checked) {
                other.each(function(){
                    this.checked = true;
                });
            }
            else {
                other.each(function(){
                    this.checked = false;
                });
            }
        }, 2, cb1, other);
    });
    other.bind('click', {
        'cb1': cb1,
        'other': other
    }, function(event){
        var cb1 = event.data.cb1;
        var other = event.data.other;
        setTimeout(function(){
            var num = 0;
            other.each(function(){
                if (this.checked) {
                    num++;
                }
            });
            if (num == other.length) {
                cb1.get(0).checked = true;
            }
            else {
                cb1.get(0).checked = false;
            }
        }, 2, cb1, other);
    });
}


function setAction(url, comid, nochecked, showmsg, msg){
    if (typeof(msg) != "undefined") {
        if (j$("#sortid").val() == '0') {
            alert(msg);
            return false;
        }
    }
    if (typeof(showmsg) == "undefined") {
        alert('\u6ca1\u6709\u5b9a\u4e49showmsg'); //没有定义showmsg
        return false;
    }
    else {
        if (j$("input:checked").val() == null) {
            alert(nochecked);
            return false;
        }
        else {
            if (comid == null) {
                var result = confirm(showmsg);
                if (result == true) {
                    document.forms[0].action = url;
                    document.forms[0].submit();
                }
            }
            else {
                var result = confirm(showmsg);
                if (result == true) {
                    url = url + "&comid=" + comid;
                    document.forms[0].action = url;
                   // document.forms[0].submit();
					j$(document.forms[0]).submit();
                }
            }
        }
    }
    
}

/**
 * 限制checkbox最大选择个数
 * @param {Object} formid
 * @param {Object} maxchecked
 */
function setMaxCheck(formid, maxchecked, minchecked) {
	var _form = j$("#"+formid);
	_form.bind("submit", {"minchecked" : minchecked}, function(e) {
		var chknum = j$("input:checkbox:checked", this).length;
		if(chknum < e.data.minchecked) {
			alert("至少需要选中"+e.data.minchecked+"个");
			return false;
		} else {
			return true;
		}

	});
	var _checkboxs = j$("input:checkbox", _form);
	_checkboxs.bind("click", {'maxchecked' : maxchecked, '_form':_form}, function(e) {
		var elem = this;
		setTimeout(function() {
			var num = j$("input[name='"+elem.name+"']:checked").length;
			if(elem.checked) {
				if(num>e.data.maxchecked) {
					alert("\u6700\u591a\u53ea\u80fd\u9009\u62e9"+maxchecked+"\u9879");
					elem.checked = false;
					return false;
				}
				
			}
			if(num > 1) {
				var float_btn_html = window.float_btn_html || '<div id="floatbtn" class="dcontrol-p">' +
									'<a onclick="compareProduct(\'productlist\', \'index.php?do=comproduct&amp;con=compare&amp;cz=compare&amp;pid=\', \'产品对比\', 960, 675, \'pid\', 5);" href="#" />对比选中</a>' +
									'<a onclick="j$(\'#productlist :submit\').click();" href="#" />批量询价</a>' +
									'</div>';
				var _floatbtn = j$("#floatbtn");
				if(_floatbtn.length < 1) {
					_floatbtn = j$(float_btn_html);
				}
				var _this = j$(elem);
				j$("body").append(_floatbtn);
				_floatbtn.css({
					'position' : 'absolute',
					'top':_this.offset().top+_this.outerHeight()+'px',
					'left':_this.offset().left+11+'px'
				})
			}
			if(num < 2) {
				j$("#floatbtn").remove();
			}
			
		}, 10, elem, e);
	});
}

/**
 * 检查选中数量是否在范围内
 * @param {Object} formid
 * @param {Object} cbxname
 * @param {Object} min
 * @param {Object} max
 */
function checkCheckedNum(formid, cbxname, min, max) {
	var _form = j$("#"+formid);
	var _checkboxs = j$("[name^="+cbxname+"]:checked", _form);
	if(_checkboxs.length < min) {
		alert("\u81f3\u5c11\u9009\u62e9\u4e24\u9879");
		return false;
	}
}

/**
 * 产品对比
 * @param {Object} formid
 * @param {Object} url
 * @param {Object} title
 * @param {Object} width
 * @param {Object} height
 * @param {Object} checkname 用于对比的checkbox的name
 * @param {Object} maxchecked 最大对比数
 */
function compareProduct(formid, url, title, width, height, checkname, maxchecked) {
	var _form = j$("#"+formid);
	var _checkboxs = j$("input:checked", _form);
	if(_checkboxs.length < 2) {
		alert("\u81f3\u5c11\u9009\u62e9\u4e24\u9879");
		return false;
	}
	var param = [];
	_checkboxs.each(function(){
		param.push(this.value);
	})
	param = param.join("|");
	GC.ajax.openIframe(title, url+param, width, height);
}

function setlocation(url){
	window.location=url;
}

//删除确认
function confirmDel(showmsg)
{
 var result = confirm(showmsg);
 if(result == true){
 return true;
 } else {
 return false;
 }
} 

/**
 * 获取图片本地路径
 * @param {Object} obj input:file元素
 */
function getPath(obj){
    if (obj) {
        if (j$.browser.msie) {
            if (j$.browser.version == '6.0') {
                return obj.value;
            }
            obj.select();
            // IE下取得图片的本地路径
            return document.selection.createRange().text;
            
        }
        else 
            if (j$.browser.mozilla) {
                if (obj.files) {
                    // Firefox下取得的是图片的数据
                    return obj.files.item(0).getAsDataURL();
                }
                return obj.value;
            }
        return obj.value;
    }
}


/**
 * 为select添加选项
 * @param {Object} selId select的id
 * @param {Object} optVal 选项值
 * @param {Object} optText 选项显示文字
 */
function addSelectOption(selId, optVal, optText, num)
{
	var option = '<option value="'+optVal+'">'+optText+'</option>';
	j$("#"+selId).append(option).val(optVal);
}



/**
 * 初始化分类默认选项,第一个参数为select的name前缀,
 * @param {String} preName 分类选项的名字前缀,例如:如果分类的name属性为cate1,cate2,cate3...则其前缀为cate
 */
function setSelected(preName) {
	j$("select[name^='"+preName+"']").each(function(i){
		//j$(this).val(arguments[i+1]);
		//alert(i+1);
		//alert(arguments[(i+1)]);
		j$("option[value='"+arguments[i+1]+"']", this)[0].selected = true;
	});
}

function setSelectValue(selectId, value) {
	var select = j$("#"+selectId);
	if (select.length > 0) {
		if (value) {
			j$("option[value='"+value+"']", select)[0].selected = true;
		} else {
			select[0].selectedIndex = 0;
		}
	}
	
}

/**
 * 使用Ajax将json数据作为select的option
 * @param {String} selectId select的id
 * @param {String} url 获取数据的url
 * @param {Object} data 获取数据时需要发送的参数
 */
function setSelectOpts(selectId, url, data, value) {
	var selectcate = j$("#"+selectId);
	if(selectcate.length == 0) {
		selectcate = j$('<select id="'+selectId+'"></select>');
	}
	
	j$.getJSON(url, data, function(opts) {
		var opts_html = '';
		j$.each(opts, function(i, n){
			opts_html += '<option value="'+i+'">'+n+'</option>';
		});
		if(opts_html.length == 0) {
			selectcate.hide();
			return true;
		}
		selectcate.empty().html(opts_html).show();
		if(value) {
			//selectcate.val(value);
			if(value == 0) {
				selectcate[0].selectedIndex = 0;
			} else {
				selectcate[0].selectedIndex = j$("option", selectcate).index(j$("option[value='"+value+"']", selectcate)[0]);
				//j$("option[value='"+value+"']", selectcate).click();
			}
		} else {
			selectcate[0].selectedIndex = 0;
		}
		selectcate.change();
	});
	return selectcate;
}

/**
 * 将select选择的分类信息放入另一个元素中
 * @param {String} catesid 包含select的父元素id或者select元素id
 * @param {String} inputid 放入分类信息的元素id
 */
function chooseCates(catesid, inputid, hiddenId) {
	var cate = j$("#"+catesid);
	var isSelect = false;
	if (cate.length > 0) {
		isSelect = (cate[0].nodeName == "SELECT") ? true : false;
	}
	var cates = j$("select", cate);
	if(isSelect) {
		cates = j$("#"+catesid);
	}
	var value = [];
	var text = [];
	cates.each(function(){
		//value+=this.options[this.selectedIndex].text+"/"
		if(this.selectedIndex != -1) {
			text.push(this.options[this.selectedIndex].text);
			value.push(this.value);
		} else {
			text.push(this.options[0].text);
			value.push(this.options[0].value);
		}
	});
	var inputCate = j$("#"+inputid);
	if (inputCate.length > 0) {
		var inputCateType = inputCate[0].nodeName;
		if (inputCateType == 'INPUT') {
			inputCate.val(text.join("/"));
		}
		else {
			inputCate.html(text.join("/"));
		}
	}
	j$("#"+hiddenId).val(value.join("/"));
}

/**
 * 显示剩余字数
 * @param {Object} textId 文本框id
 * @param {Object} charNumId 显示已输入字数的id
 * @param {Object} resNumId 显示剩余字数的id
 * @param {Object} resNum 可以输入多少字
 */
function showCharNum(textId, charNumId, resNumId, resNum){
    j$("#" + textId).bind("keyup", {
        "charNumId": charNumId,
        "resNumId": resNumId,
        "resNum": resNum
    }, function(event){
        var charNumId = event.data.charNumId;
        var resNumId = event.data.resNumId;
        var resNum = event.data.resNum;
        var value = j$(this).val();
        var len = 0;
        var length = value.length;
        for (var i = 0; i < length; i++) {
            if (value.charCodeAt(i) > 255) {
                len += 1;
            }
            else {
                len += 1;
            }
        }
        j$("#" + charNumId).html(len);
        j$("#" + resNumId).html(resNum - len);
    }).keyup();
}

/**
 * 自动生成简介
 * @param {Object} contentId 用于放入内容的元素id
 */
function makeAutocontent(contentId, iframeId) {
	var productclass = j$("#productclass").html().split(" ").pop().replace(/\w/, "");
	var productname = j$("#productname");
	var productType = j$("#productname > span").text();
	var text = '本公司#PRODUCTTYPE#PRODUCTCLASS的#PRODUCTNAME，品质保证，欢迎洽谈。';
	text = text.replace("#PRODUCTTYPE", productType);
	text = text.replace("#PRODUCTCLASS", productclass);
	text = text.replace("#PRODUCTNAME", productname.text().replace(productType, ""));
	
	var ifm = j$("#" + iframeId);
	ifm.contents().find("body").append("<br />"+text);
	var content = j$("#" + contentId);
	content.val(content.val() + "\n" + text);
}

/**
 * 自动求购简介
 * @param {Object} contentId 用于放入内容的元素id
 */
function makeBuyAutocontent(contentId, iframeId) {
	var productclass = j$("#productclass").html().split(" ").pop().replace(/\w/, "");
	var productname = j$("#productname");
	var productType = j$("#productname > span").text();
	var text = '本公司#PRODUCTTYPE#PRODUCTCLASS的#PRODUCTNAME，要求质量保证，欢迎洽谈。';
	text = text.replace("#PRODUCTTYPE", productType);
	text = text.replace("#PRODUCTCLASS", productclass);
	text = text.replace("#PRODUCTNAME", productname.text().replace(productType, ""));
	
	var ifm = j$("#" + iframeId);
	ifm.contents().find("body").append("<br />"+text);
	var content = j$("#" + contentId);
	content.val(content.val() + "\n" + text);
}

//收缩展开js
function showAndHide(elem, shid, showClass, hideClass) {
	var _elem = j$(elem);
	var sh = j$("#" + shid);
	if(sh.is(":hidden")) {
		sh.show("fast");
		_elem.removeClass(showClass).addClass(hideClass);
		
	} else {
		sh.hide("fast");
		
		_elem.removeClass(hideClass).addClass(showClass);
	}
}

/**
 * 更改form的action
 * @param {Object} formid
 * @param {Object} url
 * @param {Object} nochecked 表单中复选框未选择时的提示
 * @param {Object} showmsg 表单提交前的提示信息
 */
function xzSetAction(formid, url, showmsg, nochecked, maxcheck){
    var nochecked = nochecked || "至少选一项";
    var form = j$("#" + formid);
    if (j$("input:checkbox:checked", form).val() == null) {
        alert(nochecked);
        return false;
    }
    if (maxcheck) {
        if (j$("input:checkbox:checked", form).length > maxcheck) {
            alert("最多选择" + maxcheck + "项");
            return false;
        }
    }
    if (confirm(showmsg)) {
        form.attr("action", url);
        form.submit();
    }
}

j$(function(j$){
	j$("#checkAll").click(function(){
		j$(":checkbox[name = 'allid[]']").attr("checked", this.checked);
	});
	j$("#selectAll, #cancelSelectAll").click(function(){
		var status = true;
		if (this.id == "cancelSelectAll") {
			status = false;
		}
		j$(":checkbox[name = 'allid[]']").attr("checked", status);
		j$("#checkAll").attr("checked", status);
	});
})

/**
 * 设置radio选择的最大值
 * @param id radio的父元素id
 * @param maxvalue 用户可选择的radio最大值
 * @param msg 错误提示消息
 */
function setLifeTime(id, maxvalue, msg, defaultvalue) {
	j$("#"+id+" :radio").bind("click", {"maxvalue":maxvalue, "msg":msg, "defaultvalue" : defaultvalue, "id": id}, function(e) {
		if(e.data.maxvalue < this.value) {
			alert(e.data.msg);
			j$("#"+e.data.id+ " :radio[value='"+e.data.defaultvalue+"']").click();
			return false;
		}
		return true;
	});
}

/**
 * 选项卡切换js
 * 此方法需要jQuery1.3以上支持
 * 此方法最好在页面加载完成的时候调用,它将绑定mouseover事件给选项卡的标题元素,因此不要在元素的onmouseover事件中使用此方法
 * @参数1:titleboxid 选项卡标题的父元素id,该父元素通常包含多个选项卡标题元素
 * @参数2:contentboxid 选项卡内容的父元素id, 该父元素通常包含多个选项卡内容的元素
 * @参数3[可选]:titleselectclass 标题处于选中状态的class
 * @参数4[可选]:contentselectclass 选项卡内容处于选中状态的class
 *
 * 使用示例:
 * jQuery(function($) {
 *     selectTab("topt", "toptenC", "select");
 * })
 */
function selectTab(titleboxid, contentboxid, titleselectclass, contentselectclass) {
	var $ = jQuery;
	var titles = $("#"+titleboxid).children().hover(function() {
		var index = titles.removeClass(titleselectclass).index(this);
		var content = $($("#"+contentboxid).children().hide().get(index)).show();
		titleselectclass ? $(this).addClass(titleselectclass) : "";
		contentselectclass ? content.addClass(contentselectclass) : "" ;
	});
}

