/**
 * @author kyo.cc
 */
 

$KH.includeJS("js/cc/kyo/lib/jQuery/jquery.js");
$KH.includeJS("js/cc/kyo/lib/prototype/prototype.js");
$KH.includeJS("js/cc/kyo/lib/prototype/effects.js");
$KH.includeJS("js/cc/kyo/lib/prototype/dragdrop.js");
$KH.includeJS("js/cc/kyo/lib/jQuery/idrag.js");
$KH.includeJS("js/cc/kyo/lib/jQuery/form.js");
$KH.includeJS("js/cc/kyo/lib/graphic/commonLayer2.js");
$KH.includeJS("./js/calender.js");


$KH.includeCSS("js/cc/kyo/css/floatingWindow/newOrder.css");
$KH.includeCSS("css/cc/kyo/new/order.css");



 
var newOrder = new Object();


//定单的 RECT
newOrder.RECT = null;
newOrder.getRECT=function(){
	
	if(! newOrder.RECT){
		newOrder.RECT = new $KH.RECT();	
	}
	return newOrder.RECT;
};


//引发定单对象的元素的位置.
newOrder.clkCoords = null;
newOrder.getClkCoords=function(){
	if(! newOrder.clkCoords){
		newOrder.clkCoords = new $KH.Coords();	
	}
	return newOrder.clkCoords;
};

//保存定单的状态
newOrder.Order=null;

//定单的 ID
newOrder.orderId="newOrder_form";
//层的 ID
newOrder.layerId="floatWindow_c_k_j";
// 功能按钮 ID
newOrder.orderButtonsId = "orderButtons";
//定单号码
newOrder.orderNum = null;

//当前的参数对象。
newOrder.curParams=null;

newOrder.Params = function(){
	
};

//定义定单的类型.
newOrder.type = new Object();
//路线
newOrder.type.lxOrder = "001";
//企业
newOrder.type.gOrder = "002";

//当前操作状态
newOrder.OrderType=new Object();
newOrder.OrderType.curType = 0;
newOrder.OrderType.submit = 1;
newOrder.OrderType.modify = 2;
newOrder.OrderType.commitOrderNum = 3;
 
 
newOrder.init = function(gId,kind,lineId,type,gName,lxName,event){
	//初始化(清空)静态对象。防止遗留值。
	newOrder.orderId = null;
	newOrder.curParams=null;
	
	jQuery.noConflict();
	
	 var pms = new newOrder.Params();

 	if(type){
		 pms.setType(type);
		 
		 if(type == newOrder.type.lxOrder){
		 	//订购路线
		 	pms.setName(lxName);
		 	pms.setId(lineId);	
		 	newOrder.createLX(pms);
		 }else if(type == newOrder.type.gOrder){
		 
		 	if(kind){
		var ks = kind.split("_");
		
		pms.setKind(ks);
	}else{
		alert("没有相关的订单信息");
		return;	
	}
		 	//订购企业
		 	
		 		if(kind){
					var ks = kind.split("_");
					
					pms.setKind(ks);
				}else{
					alert("没有相关的订单信息");
					return;	
				}
	
		 	pms.setName(gName);
		 	pms.setId(gId);	
		 	newOrder.createG(pms);
		 }
		 
	}else{
		alert("不确定的订单类型");
		return;	
	}

	newOrder.curParams=pms;

	//保存引发定单事件的位置。//
	event = event || window.event;
	
	var crds = newOrder.getClkCoords();
	crds.setY(event.clientY + document.body.scrollTop);
	crds.setX(event.clientX + document.body.scrollLeft);
	
	var qstr = '#'+newOrder.layerId;
	
	//保存 newOrder 对象的位置
	var rect = newOrder.getRECT();
	rect = newOrder.savePosition(qstr,crds,rect);
	
	newOrder.setPosition(qstr,rect.getLeft(),rect.getTop());
	//dump(jQuery(newOrder.RECT),true);
 };
 

 
 //订购路线
 newOrder.createLX=function(pms){
 	//alert("订购路线");
 	 newOrder.createG(pms);
 };
 
//订购企业
 newOrder.createG=function(pms){

 		var layer = newOrder.createfloatWindow();
 		layer.setMenuTitle("<font color='#0380C0'family:'黑体';>&nbsp;&nbsp;<strong> "+ pms.getName() +" </strong></font>");
		layer.setStateBarMsg("<font color='#0380C0' family:'宋体' font-size='12px'>欢迎使用</font>");
		var lBody = layer.getContent();
		lBody.innerHTML = newOrder.createCommonContent(pms);
 		
 		//必须要填的
 		jQuery(".kRequired").each(function(i){
 			jQuery(this).after('<span class="kRequiredSign">&nbsp;*</span>');	
 		});
 		/*
 		//单击全选
 		 var qstr = '#'+newOrder.orderId+' input[@type="text"]';
 		jQuery(qstr).each(function(i){
			jQuery(this).focus(function(){
				//alert(this.value);
				jQuery(this).select();
			});
 		});
		*/
	
 		//dump(jQuery(".kRequired")[0],true);
 		
 			
 		var qstr = '#'+newOrder.orderId;	
		jQuery(qstr).submit(function() { 

			if(! newOrder.checkForm()){
				return false;
			}
		 
			var qstr = '#'+newOrder.orderId;	
			newOrder.Order = jQuery(qstr).clone(true);


			
			var queryString ="";
			queryString += "action=insertOrder&id="+pms.id+"&type="+ pms.type +"&";
			queryString += jQuery(this).formSerialize();     
	    
		    var options = { 
		    		success:function(responseText, statusText) {
		    				var fXML = responseText.documentElement;
							var nodes;
							 id = fXML.getElementsByTagName('D_ID')[0].firstChild.nodeValue;
							newOrder.orderNum = id;
							var layer = newOrder.createfloatWindow();
					 		//layer.setMenuTitle("<font color='#0380C0'family:'黑体';>&nbsp;&nbsp;<strong> "+ pms.getName() +" </strong></font>");
							layer.setStateBarMsg("<font color='#0380C0' family:'宋体' font-size='12px'>欢迎使用</font>");
							var lBody = layer.getContent();
							var ih ="";
							ih += '<br/><br/>您的定单 ID 为: <span style="color:red">'+id+'</span><br/> 请记好.<br/><br/>';
							ih += '<button class="manageOrder" onclick="newOrder.manageOrder();">管理定单</button><br/><br/>';
				       		lBody.innerHTML=ih;	
				    },
				    url: 'tangkou/suggest?'+queryString, 
				    type:"POST",
				   dataType: "xml"
				    
				}; 
			jQuery(this).ajaxSubmit(options); 
			newOrder.Layer.setStateBarMsg("<font color='#0380C0' family:'宋体' font-size='12px'>加载中......</font>");
			
			return false;
			
		});
		
 };

//管理定单
newOrder.manageOrder=function(){

		var layer = newOrder.createfloatWindow();
 		//layer.setMenuTitle("<font color='#0380C0'family:'黑体';>&nbsp;&nbsp;<strong> "+ pms.getName() +" </strong></font>");
		layer.setStateBarMsg("<font color='#0380C0' family:'宋体' font-size='12px'>欢迎使用</font>");
		var lBody = layer.getContent();
		jQuery(lBody).empty().append(newOrder.Order);
		var jqbtn = "#"+ newOrder.orderButtonsId;
		var newBtns = "";
		newBtns +='	<td><input type="submit" name="commitModify" value="提交修改"  onclick="newOrder.OrderType.curType=newOrder.OrderType.modify;" /></td>';
		newBtns +='	<td><input name="commitOrder" type="submit" value="确认订单" onclick="newOrder.OrderType.curType=newOrder.OrderType.commitOrderNum;"  /></td>';
		jQuery(jqbtn).empty().append(newBtns);
		
		var jqForm = "#"+newOrder.orderId;
		jQuery("span.cGName",jqForm).after('<br/>定单号为：<span class="orderNum">'+ newOrder.orderNum+'</span>');
		
		var qstr = '#'+newOrder.orderId;	
		
		var pms = newOrder.curParams;
		
		jQuery(qstr).submit(function() {
			
			if(! newOrder.checkForm()){
				return false;
			}
		
			var queryString ="";
	    	if(newOrder.OrderType.curType == newOrder.OrderType.modify){
	    		queryString += "action=updateOrder&id="+pms.id+"&type="+ pms.type +"&D_ID="+newOrder.orderNum+"&";
	    		queryString += jQuery(this).formSerialize();
	    	}else if(newOrder.OrderType.curType == newOrder.OrderType.commitOrderNum){
	    		queryString += "action=confirmOrder&D_ID="+newOrder.orderNum; 		
	    	}
		    var options = { 
		    		success:function(responseText, statusText) {
		    				var fXML = responseText.documentElement;
							var state;
							try{
							 state = fXML.getElementsByTagName('state')[0].firstChild.nodeValue;
							}catch(e){alert("接收错误失败");}
							 newOrder.Layer.close();
							alert(state);
							
//							var layer = newOrder.createfloatWindow();
//					 		//layer.setMenuTitle("<font color='#0380C0'family:'黑体';>&nbsp;&nbsp;<strong> "+ pms.getName() +" </strong></font>");
//							layer.setStateBarMsg("<font color='#0380C0' family:'宋体' font-size='12px'>欢迎使用</font>");
//							var lBody = layer.getContent();
//							var ih ="";
//							ih += '<br/><br/><br/><br/>您的定单 ID 为: <span style="color:red">'+id+'</span><br/> 请记好.<br/><br/>';
//							ih += '<button class="manageOrder" onclick="newOrder.manageOrder();">管理定单</button>';
//				       		lBody.innerHTML=ih;	
				    },
				    url: 'tangkou/suggest?'+queryString, 
				    type:"POST",
				   dataType: "xml"
				    
				}; 
			jQuery(this).ajaxSubmit(options); 
			newOrder.Layer.setStateBarMsg("<font color='#0380C0' family:'宋体' font-size='12px'>加载中......</font>");
			return false;	
		});
		
	
};



 //used for floatwindow 
newOrder.Layer = null; //the layer Object
 
 //在 commonlay2中也有相关的代码...晕死了...
 newOrder.exist = false; //if the layer exist.
 
 newOrder.commonLayer = null;
newOrder.createfloatWindow=function(){
	try{		//layer should be singleness.
	
 		if( newOrder.commonLayer.style.display =='block' && newOrder.exist == true){
 	
 			return newOrder.Layer;
 		}
 	}catch(e){
 		
 	}
		
 		var layer = new commonLayer2.layer('floatWindow_c_k_j');
 
 		 newOrder.exist = true;
 		
		 newOrder.Layer = layer;
		 

		var tl = layer.getLayer();

		tl.id= newOrder.layerId;
		
		 newOrder.commonLayer = tl;
		
		var tMenu = layer.getMenu();
		tMenu.id="dragHandle";

		document.body.appendChild(tl);
		

		new Draggable(newOrder.layerId,{handle:'dragHandle'});
		 

	return layer;
};

newOrder.createCommonContent=function(params){
	
	var kGName= params.getName();
	var type = params.getType();
	var str="";
	
	str+='<form id="'+newOrder.orderId+'">';
	str+='<table  id="newOrder" class="newOrder" border="0" cellspacing="0" cellpadding="0">';
	str+='  <tr>';
	str+='    <td clumnspan="2" align="left">名称：<span class="cGName">' + kGName + '</span></td>';
	str+='  </tr>';
	str+='  <tr>';
	str+='    <td>您的称呼<input name="kName" class="kRequired" type="text" /></td>';
	str+='    <td> 电子邮件<input name="kMail" type="text" /></td>';
	str+='  </tr>';
	str+='  <tr>';
	str+='    <td> 您的手机<input type="text" name="kHandset" class="kRequired" /></td>';
	str+='    <td> 您的电话<input type="text" name="kTel" /></td>';
	str+='  </tr>';
	str+='  <tr>';
	str+='<td> 联系地址<input name="kAddr" type="text" /></td><td> &nbsp;&nbsp;人&nbsp;&nbsp;数<input name="kCount" class="kRequired" type="text" size="6" maxlength="3" /></td>';
	str+='    </tr>';
	str+='  <tr>';
	str+='    <td clumnspan="2"> 服务日期<input id="k_order_date" type="text" name="kDate" onClick="new Calender_kyo.atCalendarControl().show(document.getElementById(\'k_order_date\'),\'\',this);"/></td> ';
	str+='  </tr>';
	str+='  <tr>';
	str+='	<td class="ktype" clumnspan="2">';
	
	
	//生成服务类型
	var kinds = params.getKind();
	if(kinds){
	if(kinds.length > 0){
		if(type= newOrder.type.gOrder ){
			str+='服务类型';
			for(var index=0; index<kinds.length; index++) {
				if(index!=0){
					str+='<input type="radio" name="kind"  value="'+ kinds[index]+'">'+kinds[index];
					
				}else{
					str+='<input type="radio" name="kind"  value="'+ kinds[index]+'" checked>'+kinds[index];
				}   
			}	
		}
		}
	}
	
	str+='	</td>';
	str+='  </tr>';
	str+='';
	str+='  <tr>';
	str+='    <td colspan="2"><br/>';
	str+='     请在下面留下您的其他要求、意见或建议：<br/>';
	str+='       <textarea name="kOther"  cols="50" rows="5"></textarea>';
	str+='<br/><br/>';
	str+='      </td>';
	str+='    </tr>';
	str+='<tr id="'+ newOrder.orderButtonsId +'" align="center">';
	str+='	<td><input type="submit" name="kSubmit" value="立刻预定" /></td>';
	str+='	<td><input name="kReset" type="reset" value="擦除重写"/></td>';
	str+='</tr>';
	str+='</table>';
	str+='</form>';
		
	return str;
	
};

newOrder.Params.prototype={
 	id:0,
 	name:"",
 	kind:null,
 	type:null,
 	
	setId:function(param){
		this.id= param;
	},
	getId:function(){
		return this.id;
	}
	,setKind:function(param){
		this.kind= param;
	},
	getKind:function(){
		return this.kind;
	},setType:function(param){
		this.type= param;
	},
	getType:function(){
		return this.type;
	},setName:function(param){
		this.name= param;
	},
	getName:function(){
		return this.name;
	}
 };
 
	//保存 newOrder 对象的位置
newOrder.savePosition=function(jquStr,coords,rectObj){

	if(!rectObj){
		rectObj = newOrder.getRECT();
	}
	
	rectObj.setWidth(jQuery(jquStr).width());
	rectObj.setHeight(jQuery(jquStr).height());
	
	var _top = coords.getY() - 100;
	
	//定义偏移量
	var leftExcursion = 50;
	var topExcursion = 0;
	
	var _left = coords.getX() - rectObj.getWidth() - leftExcursion;
	var _top = coords.getY() - rectObj.getHeight()/2 - topExcursion;
	
	rectObj.setTop(_top);
	rectObj.setLeft(_left);
	
	return rectObj;
};
	
	

	
 //设置 newOrder 对象的位置
newOrder.setPosition=function(jqustr,left,top){

	jQuery(jqustr).css({"left":left,"top":top});
};



newOrder.checkForm = function(){
	
			var err = "请输入 ";
			var check = err;
			
			jQuery(".kRequired").each(function(i){
				
				if(this.name == "kName"){
					var reg = /^\s*$/g;
 					if(reg.test(this.value) === true){
						err += " 您的称呼 ";
					}
					reg.lastIndex=0;	
				}	
				if(this.name == "kHandset"){
	
					var reg = /^1\d{10}$/g;
 					if( reg.test(this.value) === false){
						err += " 正确的手机号(不要以0开头) ";
					}
					reg.lastIndex=0;	
				}	
				if(this.name == "kCount"){
					
					var reg = /^[1-9]\d*$/g; 
	
 					if( reg.test(this.value) === false){
 				
						err += " 正确的人数 ";
					}
					reg.lastIndex=0;		
				}	
 			});
			if(err != check){
				alert(err);
				return false;
			}
			return true;
};
