sendSmsFunc = function(content, curPoint)
{
	this.curPoint = curPoint;
	if(!Global.modelMobile) Global.modelMobile = new Mys.Model.Mobile();
	this.contentEl = Ext.get(content);
	this.phoneTextarea = this.contentEl.child("#phone_textarea"); // 글 내용
	this.countLegnth = this.contentEl.child("#countlegnth"); // 글 길이
	this.phoneNumber = this.contentEl.child("#phone_number"); // 받은번호
	this.callbackNumber = this.contentEl.child("#callback_number"); // 보낼번호
	this.phone_btn = this.contentEl.child("#phone_btn"); //보내기버튼
	this.smscount =this.contentEl.child("#smscount"); // 문자 남은 갯수

	this.freesms_point=restSmsNum;// 남은 문자 갯수
	this.smsUpdate();
	this.init();
	this.getTime();
	this.showTime();
	this.lengthCalculation();
	setInterval("send.lengthCalculation()",500);
	setInterval("send.showTime()",1000);
}
sendSmsFunc.prototype = {
	init : function(){
		this.phoneNumber.dom.onblur = this.test;
		this.callbackNumber.dom.onblur = this.test;

		this.phone_btn.on("click", this.checkMessage, this, this);
		
		this.phoneTextarea.on("click", this.checkLogin, this, this);
	}
	,test : function(){
		this.value = this.value.replace(/-/gi, "")
	}
	,checkLogin : function()
	{
		if (!LOG_USER_ID) {
			alert("무료문자를 이용하시기 위해서 로그인이 필요합니다.\n\n자세한 내용은 공지사항을 참고해주세요.");
		}	
	}
	,checkMessage : function(){
		
		if (!LOG_USER_ID) {
			alert("무료문자를 이용하시기 위해서\n\n1.로그인이 필요합니다.\n2.개인 문자포인트가 최소1포인트이상 남아있어야합니다.\n\n자세한 내용은 공지사항을 참고해주세요.");
			return;
		}
		if (this.curPoint <1) { 
			alert("무료문자를 이용하기 위해선 최소1개의 문자포인트가 있어야합니다.\n이용하시려면 최소한의 충전(유료결제)이 필요합니다.\n\n무료문자는 10분에 총 10개(개인별아님)가 제공됩니다.\n*문자가 부족할 경우 자동으로 유료발송으로 전환되어 발송됩니다.");  
			window.location = "?m=manage&s=charge";
			return; 
		}
		
		if(this.phoneTextarea.dom.value.length==0){
			alert("내용을 입력해 주세요.");
			return;
		}
		
		if(this.checkNumber(this.phoneNumber) && this.checkNumber(this.callbackNumber))
			this.sendMessage(document.sendSms);
	}
	,sendMessage : function(form) // API 보내기
	{
		if(this.getNumber(this.phoneNumber) && this.getNumber(this.callbackNumber))
		{	
			this.callnumber = this.phoneNumber.dom.value;
			this.callbacknumber = this.callbackNumber.dom.value;		
			this.phonemessage = this.phoneTextarea.dom.value;
			
			Global.modelSms.formsubmit(form, true, this.onResiveSendMessage, this);
		}
		
		//var response = {code:16};
		//data = {response:response};
		//this.onResiveSendMessage(data);
	}

	,onResiveSendMessage : function(data, cb)
	{
		//window.aaa = this;

		if (!data || data.response.code != 100)
		{
			if (data && data.response.code == 16)
			{
				//alert("죄송합니다. 현재 무료로 제공하는 문자가 남아있지 않습니다. " + this.min + "분후에 다시 시도해 주세요.");				
	  			//if(confirm("죄송합니다.\n현재 무료로 제공하는 문자가 남아있지 않습니다.\n내 문자발송페이지로 이동하시겠습니까?\n(EVENT.지금 유료결제를 하시면 최초결제 시 50건의 문자를 추가로 충전시켜드립니다.~1/31)\n\n계속 무료문자를 보내시려면 " + this.min + "분후에 다시 시도해 주시기 바랍니다."))
	  			//	window.location = "?m=msg&s=sms";
	  			
	  			//alert("문자가 부족합니다."+this.phoneNumber.dom.value);
	  			
	  			
	  			if (this.curPoint > 0) { 
		  			this.sendSms(); // 유료모드로 발송
		  		}

				return;
			}
			alert("데이타를 생성 중 오류가 발생하였습니다.");
			return;
		}

		if(data.response.code == 100)
		{
			this.refreshSmsCount();
			this.phoneTextarea.dom.value = "";
			//this.phoneNumber.dom.value = "";
			this.callbackNumber.dom.value = "";
			setTimeout("send.smsUpdate()",1000);
			alert("성공적으로 보내졌습니다.");
		}
	}
	,sendSms : function(date)
  	{	
  		
		if(!this.sendForm) this.sendFormEl = Ext.get("message_form");	

		if(this.msgElemets)
		{
			for(i=0;i<this.msgElemets.length;i++)
				this.msgElemets[i].remove();
		}
		this.msgElemets = [];		
		
		this.sendFormEl.dom.msg_code.value = "s";
		this.sendFormEl.dom.senddate.value = date ? date : "";
		this.sendFormEl.dom.callback.value = this.callbacknumber;
		this.sendFormEl.dom.name.value = "무료문자부족으로 자동으로 유료발송되었습니다.";
		this.sendFormEl.dom.phone.value = this.callnumber;
		//this.sendFormEl.dom.addr_group_ids.value = phone.group;
		this.sendFormEl.dom.use_tmp_file.value =  0;
		//this.sendFormEl.child(".filepath").dom.value = this.uploadFilePath ? this.uploadFilePath.encode()  : "";
		
		var newIpt
		/*
		if(this.cur_type == TYPE_SP_SMS) //분할전송 단문 메세지 경우
		{
			var spMessage = this.getSplitMessage(message,80);
			for(i=0;i<spMessage.length;i++)
			{
				newIpt = document.createElement('input');
				newIpt.type = "hidden";
				newIpt.name = "message[]";
				newIpt.value = spMessage[i];
				this.sendFormEl.appendChild(newIpt);
				this.msgElemets.push(Ext.get(newIpt));
			}
		}
		else
		{
		*/
			newIpt = document.createElement('input');
			newIpt.type = "hidden";
			newIpt.name = "message[]";
			newIpt.value = this.phonemessage;
			this.sendFormEl.appendChild(newIpt);
			this.msgElemets.push(Ext.get(newIpt));
		//}
		
		Global.modelSms.formsubmit(this.sendFormEl.dom, false, this.cbSendSms, this);
	}
	
	,cbSendSms : function(data)
	{
		//this.updateCurrentPoint(Math.floor(data.response.current_point/100));
		if(data.response.code == 100)
		{		
			//this.imageEl.setStyle("display","none");
			//this.uploadFilePath = "";
			//this.uploadFilePathView = "";
			//this.messageEl.dom.value="";
			//this.modeChange(this.ORG_TYPE);      
			    
			location = "/?m=inquiry&s=result&tc="+data.response.target_count+"&up=";
		}
	}


	,refreshSmsCount : function (){
			Global.modelMobile.getFreePoint(this.refreshConfim, this);
	}

	,refreshConfim : function (data){
		if (!data || data.response.code != 100)
		{
			return;
		}
		else{
  		window.freesms_point = data.response.freesms_point;
  		this.freesms_point = data.response.freesms_point;
		}
	}
	,smsUpdate : function(){
		if(!this.freesms_point){
			this.freesms_point = 0;
		}
		window.freesms_point3 = this.freesms_point;
		this.smscount.update(this.freesms_point);// 남은 문자 갯수
	}

	,getTime : function(){
		this.min = min;
		this.second = second;
	}

	,showTime : function(){
		if(--this.second < 0){
			this.second = 59;
			--this.min;
			if(this.min < 0){
				this.min = 9;
			}
		}
		if(this.min==0&&this.second==0){
				//alert("refreshSmsCount");
				this.refreshSmsCount();
		}
		if(this.min==9&&this.second==59){
				//alert("smsUpdate");
				this.smsUpdate();
		}
		Ext.get("sms_time").update(this.min + ":" + this.second+"초전")
	}
	,checkNumber : function(text){
		message = text.dom.value;
		if(message.length == 0){
			alert("번호를 입력해 주세요.");
			return;
		}
		for (i=0; i<message.length; i++) {
			var ch = message.charAt(i);
			if(ch == "-" || (ch >= 0 && ch <= 9)){
			}
			else{
				alert("유효한 번호를 입력해 주세요.");
				return;
			}
		}

		//alert("숫자와 - 만 있음");
		return true;

	}
	,getNumber : function(text){
		message = text.dom.value;
		message2 = "";
		for (i=0; i<message.length; i++) {
			var ch = message.charAt(i);
			if(ch >= 0 && ch <= 9){
				message2 += ch;
			}
		}

		//alert(message2);
		if(message2.length != 11 && message2.length != 10){
			alert("유효한 휴대폰 번호를 입력해주세요");
			return;
		}

		//alert("10or11");

		text.dom.value = message2;
		return true;
	}
	,lengthCalculation : function(){
		var length = this.calculateMsglen(this.phoneTextarea.getValue());

		if (length > 80){

			var message = this.assertMsglen(this.phoneTextarea.dom.value,80);
			alert("80 byte 까지만 전송 가능 합니다.");
			this.phoneTextarea.dom.value=message;
		}
		this.countLegnth.update(length);
	}
	,calculateMsglen : function(message){
		var nbytes = 0;

		for (i=0; i<message.length; i++) {
			var ch = message.charAt(i);
			if(escape(ch).length > 4) {
				nbytes += 2;
			} else if (ch == '\n') {
				if (message.charAt(i-1) != '\r') {
					nbytes += 1;
				}
			} else if (ch == '<' || ch == '>') {
				nbytes += 4;
			} else {
				nbytes += 1;
			}
		}
		return nbytes;
	}
	,assertMsglen : function(message, maximum)
	{
		var inc = 0;
		var nbytes = 0;
		var msg = "";
		var msglen = message.length;

		textlimitDiv = document.getElementById("textlimit");

		for (i=0; i<message.length; i++) {
			var ch = message.charAt(i);
			if (escape(ch).length > 4) {
				inc = 2;
			} else if (ch == '\n') {
				if (message.charAt(i-1) != '\r') {
				inc = 1;
			}
			} else if (ch == '<' || ch == '>') {
				inc = 4;
			} else {
				inc = 1;
			}
			if ((nbytes + inc) > maximum) {
				//alert(nbytes + inc);
				break;
			}
			nbytes += inc;
			msg += ch;

		}
		return msg;
	}
}


//alert("");