
/** init behaviour */
var rules = {
	'.form-text': function (e) {
		e.onfocus = function() {
			this.className = "form_text_focus";
		},
		e.onblur = function() {
			this.className = "form-text";
		}
	},

	'.check-float': function (e) {
		e.onkeyup = function() {
			this.value=this.value.replace(/[^0-9.]/g,'');
		},
		e.onmouseout = function() {
			this.value=this.value.replace(/[^0-9.]/g,'');
		}
	},
	
	'.check-int': function (e) {
		e.onkeyup = function() {
			this.value=this.value.replace(/[^0-9]/g,'');
		},
		e.onmouseout = function() {
			this.value=this.value.replace(/[^0-9]/g,'');
		}		
	},
	'.check-date': function (e) {
		e.size = "10"
		/* e.onblur = function() {
		    if ( this.value != "" && ! validDate( this.value) ) {
		      alert("请输入正确的日期");
		      this.focus();
		      this.value = "";
		      return false;
		    }
		}*/
	}
	
}
Behaviour.register(rules);

/** Javascript **/

/**
 * 检查全角
 */
function isSBC(value) {
  var str=value;
  for (var i = 0; i < str.length; i++){
    if (str.charCodeAt(i)==12288 || (str.charCodeAt(i)>65280 && str.charCodeAt(i)<65375) ) {
         return true;
    }
  }
  return false;
}

/**
 * 全角转半角
 */
function CtoH(value) {
    var str = value;
    var result="";
    for (var i = 0; i < str.length; i++) {
        if (str.charCodeAt(i)==12288) {
            result+= String.fromCharCode(str.charCodeAt(i)-12256);
            continue;
        }
        if (str.charCodeAt(i)>65280 && str.charCodeAt(i)<65375)
            result+= String.fromCharCode(str.charCodeAt(i)-65248);
        else 
            result+= String.fromCharCode(str.charCodeAt(i));
    }
    
    return result;
}

function checkDate( value ) {
    return dojo.validate.isValidDate( value, "YYYY-MM-DD");
}
function checkTime( value ) {
    return dojo.validate.isValidTime( value, {format: "HH:mm:ss"} );
}

function checkDateTime( value ) {
    if ( dojo.validate.isText(value, {length: 19} ) ) {
        var date = value.substring(0,10);
        var time = value.substring(11);
        
        return checkDate(date) && checkTime(time);
        
    } else {
        return false;
    }
}

/**
   size: list size
   name: before [
   property: after ].
   func: check's function
   
   example: checklist( 2, category, ordinal, dojo.validate.isInteger )
*/
function checklist( size, name, property, func ) {
    var size = size;
    var name = name;
    var property = property;
    var func = func;
    
    for ( var i=0; i<size; i++ ) {
    	var obj = name + "[" + i + "]." + property;
		if ( ! func( $(obj).value ) ) {
			return false;
		}
	}
	
	return true;
}

/**
 * 刷新省级单位时，更新市级单位
   
   src: 省级单位select的id
   desc: 市级单位select的id
 */
function refreshProvince(src,dest) {
	 	
	 	//get current province id
	 	var srcId = $(src).value;
	 	
	 	//ajax get target options
		new Ajax.Request('/provincecity/getCity.action',
		  {
		    method:'get',
		    parameters: {pid: srcId},
		    onSuccess: function(transport) { try{ onRefreshProvinceSuccess(transport,  $(dest) ); } catch(e){ /*alert('更新市县区时错误')*/};  $("ajax_loader").hide();},
		    onLoading: function() { /*$("ajax_loader").show();*/ },
		    onFailure: function(){ /*alert('取得市县区时错误');*/  $("ajax_loader").hide(); }
		  });
	 }
	
/**
 * 刷新省级单位时，更新市级单位
   
   src: 省级单位select的id
   desc: 市级单位select的id
 */
function refreshProvince2(src,dest,flag) {
	 	//get current province id
	 	var srcId = $(src).value;
	 	
	 	//ajax get target options
	 	var url = '/provincecity/getCity.action';
	 	if(flag == 2){
	 		url = '/provincecity/getDistrict.action';
	 	}
//	 	alert(srcId);
		new Ajax.Request(url,
		  {
		    method:'get',
		    parameters: {pid: srcId},
		    onSuccess: function(transport) { try{ onRefreshProvinceSuccess(transport,  $(dest) ); } catch(e){ /*alert('更新市县区时错误')*/};  $("ajax_loader").hide();},
		    onLoading: function() {/* $("ajax_loader2").show(); */ },
		    onFailure: function(){ /*alert('取得市县区时错误');*/  $("ajax_loader").hide(); }
		  });
	 }

//update html
function onRefreshProvinceSuccess(transport,dest){
	var options = eval( transport.responseText );
	dest.options.length = 0;
	for (var i=0; i<options.length; i++){
		var obj = options[i];
		var option = new Option(obj[1],obj[0]);
		dest.options[dest.options.length] = option;
	}
}



// 
function eventTrigger (e) {
	if (! e) e = event;
	return e.target || e.srcElement;
}


function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

/**
 * 显示或者隐藏功能菜单
 * @param menuName
 */
function toggleMenu( menuName ) {
    // 切换菜单显示
    $(menuName).toggle();

    //如果需要隐藏菜单，则在cookie中保存这个需要隐藏菜单的标志
    if ( $(menuName).visible() ) {
        eraseCookie("show_menu");
    } else {
        createCookie("show_menu", "0", 1);
    }

}
function isHideMenu() {
    return readCookie("show_menu") == "0";
}

/**
 * 显示切换菜单的帮助信息
 */
function tipMenu(target, event, menu) {
	var m = $(menu);
	var t = $(target);
	if ( m.visible() ) {
		t.title = "收缩菜单"; 
	}else {
		t.title = "展开菜单"; 
	}
}

/**
 *  检查inputs元素中的checkbox是否有选中的
 *  有选中的，返回真，否则假
 */
function checkInputCheckbox( inputs ) {
	var inputs = inputs;
	var flag = false;
	
	for ( var i=0; i<inputs.length; i++) {
	   if ( inputs[i].type == "checkbox") {
	       if ( inputs[i].checked ) {
	           flag = true;
	           break;
	       }
	   }
	}
	return flag;
}

/**
 * 保留n位小数
 */
function roundNumber(obj, n) {
    var m = Math.pow(10,n);
    return Math.round( obj * m ) / m ;
}

/**
 * 取得 radio input 元素的 value
 */
function getRadioValue(RadioName)
{
    var colRadio = document.getElementsByName(RadioName);
    for (var i = 0; i < colRadio.length; i++)
    {
        if (colRadio[i].checked)
        {
            return colRadio[i].value;
        }
    }
    return null;
}

/*
 *  删除记录
 *  targetURL: 对应删除的URL
 *  targetId: 对应记录的ID
 */
function delete_record(targetURL, targetId) {
    if (　confirm ( "确定要删除吗？" ) ) {
        this.location = targetURL + '?id=' + targetId;
    }
}

function delete_confirm() {
    if (　confirm ( "确定要删除吗？" ) ) {
        return true;
    }else{
        return false;
    }
}

function myConfirm(msg, url) {
	if ( confirm( msg ) ) {
		location.href=url;
	}
}

function moveOption(e1, e2){
 for(var i=0;i<e1.options.length;i++){
  if(e1.options[i].selected){
   var e = e1.options[i];
   e2.options.add(new Option(e.text, e.value));
  //  e2.[i].selected=true;
   e1.remove(i);
   i=i-1
  }
 }
}function moveAll(e1,e2){
for(var i=0;i<e1.options.length;i++){
   var e=e1.options[i];
    
   e2.options.add(new Option(e.text,e.value));
  //   e1.remove(i);
}
e1.length=0;

}
 function selectRight(){
    var ii = document.getElementById('select_right');
  for(var i=0;i<ii.length;i++)
  {
          ii[i].selected = true ;
  }

     return true;
}

//前台

//获取其它收货人
function selectOtherReceiver(dest, targetId) {
			new Ajax.Request('/order/loadOtherReceiver.action',
			  {
			    method:'get',
			    parameters: {receiverId: targetId},
			    onSuccess: function(transport) { try{ onSelectOtherReceiverSuccess(transport, $(dest), targetId ); } catch(e){ alert('获取其它收货人发生错误123'+e)};  $("receiver_ajax_div").show();},
			    onLoading: function() { $("input_receiver").show(); },
			    onFailure: function(){ alert('获取其它收货人发生错误'); $("input_receiver").hide();  }
			  });
		}

//填充其它收货人列表
function onSelectOtherReceiverSuccess(transport,dest,targetId){

	$('receiverlist').innerHTML = transport.responseText;

	// 清空收货人信息
	$('order.receiver.id').value = '';
	$('order.receiver.name').value = '';
	$('order.receiver.nan').checked = false;
	$('order.receiver.nv').checked = false;
	$('order.receiver.tel').value = '';
//	$('order.receiver.mobile').value = '';
	$('input_province').value = '';
	$('input_city').value = '';
	$('input_district').value = '';
	$('order.receiver.address').value = '';
	$('order.receiver.zip').value = '';
//	$('order.receiver.email').value = '';
//	$('order.receiver.id').value = '';
	
	if ( targetId && targetId != "" ) {
		$('order.receiver.id').value = targetId;
//		dest.value = targetId;
		findReceiverInfo('radio_receiver_'+targetId);
	}
}

//获取收货人信息
function findReceiverInfo(src){
	
	var id = $(src).value;
	
	if(id == null || id == ''){
		return false;
	}
	new Ajax.Request('/order/findReceiver.action',
		{
			method:'get',
			parameters: {memberId: id},
			onSuccess: function(transport) { try{ onGetReceiverInfoSuccess(transport); } catch(e){ alert('获取其它收货人信息发生错误')} },
			onFailure: function(){ alert('获取其它收货人信息发生错误');}
		});
}

function onGetReceiverInfoSuccess(transport){
	
	var list = eval(transport.responseText);
	
	
	//list[1]保存的是收货人的所在城市
	var cityList = eval( "new Array("+list[1]+")");
	
	var dest = $('input_city');
	$('div_paymentMethod').innerHTML = list[3];
	$('div_shippingMethod').innerHTML = list[4];

	dest.options.length = 0;
	for (var i=0; i<cityList.length; i++){
		var obj = cityList[i];
		var option = new Option(obj[1],obj[0]);
		dest.options[dest.options.length] = option;
	}
	//list[2]保存的是收货人的所在区域
	var districtList = eval( "new Array("+list[2]+")");
	var dest1 = $('input_district');
	
	dest1.options.length = 0;
	for (var i=0; i<districtList.length; i++){
		var obj = districtList[i];
		var option = new Option(obj[1],obj[0]);
		dest1.options[dest1.options.length] = option;
	}
	
	//list[0]保存的是收货人信息
	var receiver = list[0];
	var objs = receiver.split(',');

	$('order.receiver.name').value = objs[0];
	if (objs[1]=='') objs[1] = 1;
	
	if(objs[1] == 0){
		$('order.receiver.nv').checked = true;
	}
	else {
		$('order.receiver.nan').checked = true;
	}
	$('order.receiver.tel').value = objs[2];
//	$('order.receiver.mobile').value = objs[3];
	$('input_province').value = objs[4];
	$('input_city').value = objs[5];
	$('order.receiver.address').value = objs[6];
	$('order.receiver.zip').value = objs[7];
//	$('order.receiver.email').value = objs[8];
	$('order.receiver.id').value = objs[9];
	$('input_district').value = objs[10];
	
}


//获取收货人是本人的信息
function loadSelfInfo(){
	$('receiver_ajax_div').hide();
	
	new Ajax.Request('/order/loadSelfInfo.action',
		{
			method:'get',
			onSuccess: function(transport) { 
				try{ onGetReceiverInfoSuccess(transport); } 
				catch(e){ alert('获取本人信息发生异常，请联系系统管理员')} },
			onFailure: function(){ alert('获取本人信息发生错误，请联系系统管理员');}
		});
}
//修改区域
function modifyDistrict(src){
	var districtId = $(src).value;
	if(districtId==null || districtId==''){
		alert("请选择区域");
		return false;
	}
	new Ajax.Request('/order/modifyDistrict.action',
		{
			method:'get',
			parameters: {districtId: districtId},
			onSuccess: function(transport) { try{ onGetInfoSuccess(transport);} catch(e){ alert('获取信息发生异常，请联系系统管理员123'+e)}},
			onFailure: function(){ alert('获取信息发生错误，请联系系统管理员123');}
		});
}
function onGetInfoSuccess(transport){
	var list = eval(transport.responseText);
	$('div_paymentMethod').innerHTML = list[0];
	$('div_shippingMethod').innerHTML = list[1];

	
}
function modifyPaymentMethod(pid,number){
	var districtId = $('input_district').value;
	if(districtId==null || districtId==''){
		alert("请选择区域");
		return false;
	}
	new Ajax.Request('/order/modifyPaymentMethod.action',
			{
				method:'get',
				parameters: {paymentMethodId: pid,districtId:districtId},
				onSuccess: function(transport) { try{ onGetShippingMethodInfoSuccess(transport,number); } catch(e){ alert('获取信息发生异常，请联系系统管理员123456'+e)} },
				onFailure: function(){ alert('获取信息发生错误，请联系系统管理员');}
			});
}
function onGetShippingMethodInfoSuccess(transport,number){
	
	var list = eval(transport.responseText);
	$('div_shippingMethod').innerHTML = list[1];
	$('tr_paymentMethod').hide();
	var m = $('paymentMethod').value;
	for(var i=0;i<m;i++){
		$('descr['+i+']').hide();
	}	
	$('descr['+number+']').show();
	
	
}
function check(){
	$('tr_shippingMethod').hide();
	
}
//function checkreceiver(id,number){
//		alert(number);
//		var i = number;
//		var r=$("radio_receiver_"+i).value;
//		if(id==r){
//			$('radio_receiver_'+i).checked=true;
//
//		}
//	}
function checkShippingMode(){
	$('tr_time').hide();
	
}
/** 选择列表中的一行 */
function selectCheckRow( obj, e ) {
	if ( $(obj) != eventTrigger(e) )
		$(obj).checked = ! $(obj).checked;
}
function coupons(){
	var couponsCode = $('couponsCode').value;
	var password = $('password').value;
	if(couponsCode==""||couponsCode==null){
		alert("请输入卡号");
		return false;
	}
	if(password==""||password==null){
		alert("请输入密码");
		return false;
	}	
	new Ajax.Request('/order/coupons.action',
			{
				method:'get',
				parameters: {'coupons.couponsCode':couponsCode ,'coupons.password':password},
				onSuccess: function(transport) { try{ onGetCouponsSuccess(transport); } catch(e){ alert('获取信息发生异常，请联系系统管理员123456'+e)} },
				onFailure: function(){ alert('获取信息发生错误，请联系系统管理员');}
			});
}
function onGetCouponsSuccess(transport){
//	$('em_coupons').innerHTML = transport.responseText;
	
	var list = eval( transport.responseText );
	$('tb05').innerHTML = list[0];
	
}

/**
 * Pub用到的系列网页效果函数
 */
Pub = function()
{
    this.oriColor = "";
}

//当鼠标移动到TR上面的效果
Pub.onTrMouseover = function(event) 		
{
	var obj = eventTrigger(event);
	var oTR = Pub.getTR(obj);
	this.oriColor = oTR.style.backgroundColor;
	oTR.style.backgroundColor="#DBE8F2"
};

//当鼠标移出TR的效果
Pub.onTrMouseout = function(event)
{
	var obj = eventTrigger(event);
	var oTR = Pub.getTR(obj);
	oTR.style.backgroundColor=this.oriColor;
	this.oriColor = "";
};

//通过当前DHTML对象obj查找包含该obj的TR(DHTML对象)。
Pub.getTR = function(obj)
{
    while (obj && obj.tagName != "TR") {
        obj = obj.parentNode;
    }
    var oTR = obj;	
    return oTR;
};

		
/**
 *  选择checkbox框的方式
 *  例如：switchSelect( $("selectIt"), $("tab01").tBodies[0], "delivery_cb");
 */
function switchSelect(src, dest, className) {
	var checkboxs = $A(dest.getElementsByClassName(className));
	
	if ( src.checked ) {
		checkboxs.each(function(cb) { if ( cb.type == "checkbox") cb.checked = true;} );
	} else {
		checkboxs.each(function(cb) { if ( cb.type == "checkbox") cb.checked = false;} );
	}
};

/** 将分页参数currentPage设置为1*/
function resetPage() {
	var toPage = $("currentPage");
	if ( toPage ) toPage.value = "1";
	return true;
}

/**
 *  在列表输入框的情况，通过键盘移动焦点。如果是回车返回假
 *  形如: id为prefix[n].postfix 
 *  "下箭头"和"" 使焦点向下
 *  "上箭头" 使焦点向上
 */
function moveFocus( prefix, idx, postfix, e )
{
	var ret = true;
    try{
    	if (!e) e = event;

    	var target = eventTrigger(e);
    	var pos = getposition(e);
    	var len = target.value.length;

        var keycode;
        if (e.keyCode) keycode = e.keyCode;
        else if (e.which) keycode = e.which;

        if ( keycode == Event.KEY_DOWN || keycode== Event.KEY_RETURN) // down key
        {
            idx = idx + 1;
            if ( keycode == Event.KEY_RETURN ) ret = false;
        } 
        else if ( keycode == Event.KEY_UP) // up key
        {
            idx = idx - 1;
        } 
        else if ( keycode == Event.KEY_LEFT) // left
    	{
    		if ( pos == 0 && shiftLeft ) { shiftLeft(prefix, idx, postfix, e); return ret;}
    		
    	}
        else if ( keycode == Event.KEY_RIGHT) // left
    	{
    		if ( pos == len &&  shiftRight ) { shiftRight(prefix, idx, postfix, e); return ret;}
    	}
        
        var obj = $(prefix + "[" + idx + "]" + "." + postfix );
        
        if ( obj != undefined) obj.focus();
        
    } catch(e) {}
    
    return ret;
    
}

/** 盘点凭证的翻页*/
function pageto(currNum,inpara,url){
	var pageNum ;
	if(inpara==0){
		pageNum = currNum - 1;
	}
	else{
		pageNum = currNum + 1;
	}
	location.href = url + "?pageNumber=" + pageNum;
	
}

/** 鼠标在 textbox 中的位置 */
function getposition(e)
{
	var target = eventTrigger(e);

	if (document.selection) {
		
		target.focus();
        var currentRange=document.selection.createRange();   
        var workRange=currentRange.duplicate();
        target.select();
        var allRange=document.selection.createRange();
        var len=0;   
    
        while(workRange.compareEndPoints("StartToStart",allRange)>0)   
        {   
          workRange.moveStart("character",-1);   
          len++;   
        }   
    
        currentRange.select();   

		return len;
	} else if (target.selectionStart || target.selectionStart == '0') 
	{
		var startPos = target.selectionStart;
		var endPos = target.selectionEnd;
		
		return startPos;
	} else
	{
		return -1;
	}
}
/*
 * 日期时间合法性验证函数，合法的格式包括(yyyy-mm-dd)
 * param str String 待验证的字符串
 * return 如果合法,返回true
 */
function validDate(str){  
	 var r = str.match(/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/);
     if (r == null) return false;
     var d = new Date(r[1], r[3]-1, r[4]);
     return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
}

/*
 * 日期时间合法性验证函数，合法的格式包括(yyyy-mm-dd hh:mm)
 * param str String 待验证的字符串
 * return 如果合法,返回true
 */
function validDateTime(str){         
	var reg = /^(\d+)-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2})$/; 
    var r = str.match(reg); 
    if(r==null)return false; 
    r[2]=r[2]-1; 
    var d= new Date(r[1], r[2],r[3], r[4],r[5]); 
    if(d.getFullYear()!=r[1])return false; 
    if(d.getMonth()!=r[2])return false; 
    if(d.getDate()!=r[3])return false; 
    if(d.getHours()!=r[4])return false; 
    if(d.getMinutes()!=r[5])return false; 
    return true;
}
/*
 * 日期时间合法性验证函数，合法的格式包括(yyyy-mm-dd hh:mm:ss)
 * param str String 待验证的字符串
 * return 如果合法,返回true
 */
function validDateTimes(str){                 
    var reg = /^(\d+)-(\d{1,2})-(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/; 
    var r = str.match(reg); 
    if(r==null)return false; 
    r[2]=r[2]-1; 
    var d= new Date(r[1], r[2],r[3], r[4],r[5], r[6]); 
    if(d.getFullYear()!=r[1])return false; 
    if(d.getMonth()!=r[2])return false; 
    if(d.getDate()!=r[3])return false; 
    if(d.getHours()!=r[4])return false; 
    if(d.getMinutes()!=r[5])return false; 
    if(d.getSeconds()!=r[6])return false; 
    return true;
}