var dialog_1 = {    
    _nextForm: null,
    _dlgContainer: 'dialog1',
    _dlg: null,
    // initial dialog config
    _dlgConfig: {
        visible: false,
        modal: true,
        width: 664,
        xy: [300,50],
        close: true,
        draggable: true,
        constraintoviewport: true,
        buttons: [{text: '', handler: function(){dialog_1.frmOk();}, isDefault:true} ]
    },
    initDialog: function () {
        this._dlg = new YAHOO.widget.Dialog(this._dlgContainer, this._dlgConfig);
        this._dlg.callback.success = dialog_1.submitCallback;
        this._dlg.callback.failure = dialog_1.submitFailure;
        this._dlg.render();
        this._dlg.hide();
        this._dlg.validate = this.validator;
    },
    submitCallback: function (o) { 
       resetLoader(); 
       
       var r = [];       
       try {
           r = JSON.parse(o.responseText);
       } catch (x) {
           showErr(errTxt, "msgBox1");
           return false;
       }

       if (r.replyCode != succReplyCode) {
           showErr(r.replyText);  
           return false;
       } 
       
       if (dialog_1._nextForm) {
         dialog_1._dlg.hide();  
         YAHOO.util.Dom.get('msgBox1').innerHTML = '';
         YAHOO.util.Dom.get('msgBox2').innerHTML = '';       
         dialog_1._nextForm.show();
       }  
         
    },
    submitFailure: function (o) {
        resetLoader();
        showErr(errTxt, "msgBox1");
    },
    show: function () {
        this._dlg.show();
    },
    frmCancel: function () {
        this._dlg.hide();
    },
    frmOk: function () {  
        setLoader();
        this._dlg.submit();
    },
    setNextForm: function (el) {
        this._nextForm = el;
    },
    validator: function () {          
    
        if (document.forms['clientData1'].moving[0].checked) {
            document.forms['clientData1'].moveto.value = 'Casa/Casa adosada/Condominio/Casa m&#243;vil';
        } else if (document.forms['clientData1'].moving[1].checked) {
            document.forms['clientData1'].moveto.value = 'Apartmento';
        } else {
            showErr("Por favor seleccione informaci&#243;n de direcci&#243;n a donde se va a mudar.", "msgBox1");
            return false;
        }
        
        if (document.forms['clientData1'].iscust[0].checked) {
            document.forms['clientData1'].customer.value = '1';
        } else if (document.forms['clientData1'].iscust[1].checked) {   
            document.forms['clientData1'].customer.value = '0';
        } else {
            showErr("Por favor seleccione informaci&#243;n del cliente.", "msgBox1");
            return false;
        }
        return true;
    }
}

var showErr = function(msg, elName) {
    resetLoader();
    if (elName) {
      var el;
      el = document.getElementById(elName);
      el.innerHTML = msg;
    } else {
      alert(msg);
    }  
};
var setLoader = function() {
    YAHOO.mask.wait.show();   
};
var resetLoader = function() {
    YAHOO.mask.wait.hide();     
};
var formSubmit = function() {
    setLoader();
    this.submit();
};
var submitCallback2 = function(o) {
    resetLoader(); 

		var r = [];       
    try {
       r = JSON.parse(o.responseText);
    } catch (x) {
       showErr(errTxt, "msgBox2");
       return false;
    }

    if (r.replyCode != succReplyCode) {
       showErr(r.replyText);  
       return false;
    }
        
    YAHOO.util.Dom.get('addrData').innerHTML = document.forms.clientData2.address1.value +
      ', ' + document.forms.clientData2.city.value;
    YAHOO.mask.dialog2.hide();         
    YAHOO.mask.dialog3.show();
    return true;
};
var submitFailure2 = function(o) {
    resetLoader();
		showErr(errTxt, "msgBox2");
};
var submitCallback3 = function(o) {
    resetLoader(); 

		var r = [];       
    try {
       r = JSON.parse(o.responseText);
    } catch (x) {
       showErr(errTxt, "msgBox3");
       return false;
    }

    if (r.replyCode != succReplyCode) {
       showErr(r.replyText);  
       return false;
    }
    
    var data = r.data;
    //ganalytic(r.data);    
    resetForm();
    
    //document.location.href = 'index.php?id='+r.data;
    document.location.href = 'http://www.txu.com/move_signup_sp';
    
    
    return true;
};

var submitFailure3 = function(o) {
    resetLoader();
		showErr(errTxt, "msgBox3");
};

var ganalytic = function(id) {
    try {
      pageTracker._addTrans(id, "", "", "", "", "", "", ""); 
      pageTracker._addItem(id, "", "", "", "0", "1"); 
      pageTracker._trackTrans();
    } catch (err) {}
};

var echeck = function(str) {
	var at="@"
	var dot="."
	var lat=str.indexOf(at)
	var lstr=str.length
	var ldot=str.indexOf(dot)
	if (str.indexOf(at)==-1){
	   return false;
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   return false;
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
	    return false;
	}

	 if (str.indexOf(at,(lat+1))!=-1){
	    return false;
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
	    return false;
	 }

	 if (str.indexOf(dot,(lat+2))==-1){
	    return false;
	 }
	
	 if (str.indexOf(" ")!=-1){
	    return false;
	 }

	 return true;		
}

var resetForm = function(frmName) {
    resetLoader();
    
    var els = YAHOO.util.Dom.getElementsByClassName('inp_account', 'input'), day = today.getDate() - 1;
    YAHOO.util.Dom.get('msgBox1').innerHTML = '';
    YAHOO.util.Dom.get('msgBox2').innerHTML = '';
		for (i in els) {
        els[i].value = '';
    }
    var els = YAHOO.util.Dom.getElementsByClassName('inp_frm', 'input');
    for (i in els) {
        if (els[i].type == 'checkbox') {
            els[i].checked = '';
        } else {
            els[i].value = '';
        }
    }
    document.forms.clientData2.state[0].selected = true;
    document.forms.clientData2.gaddr[0].checked = false;
    document.forms.clientData2.gaddr[1].checked = false;
    document.forms.clientData2.state.options[53].selected=true;
    document.forms.clientData2.n.checked = true;
    document.forms.clientData1.iscust[0].checked = false;
    document.forms.clientData1.iscust[1].checked = false;
    document.forms.clientData1.moving[0].checked = false;
    document.forms.clientData1.moving[1].checked = false;
    document.forms['clientData1']['d[Date_Month]'].options[today.getMonth()].selected=true;   
    document.forms['clientData1']['d[Date_Day]'].options[day].selected=true;
};

YAHOO.mask.dialog2 = new YAHOO.widget.Dialog("dialog2",
    { width : "664px",		  
		  visible : false, 
		  constraintoviewport : true,
		  draggable: false,
		  xy: [300,50],
		  close: true,
		  modal: true,
		  buttons : [ { text:'', handler:formSubmit, isDefault:true } ]
		 }); 
		 
YAHOO.mask.dialog3 = new YAHOO.widget.Dialog("dialog3",
	{ width : "664px",
		  visible : false, 
		  constraintoviewport : true,
		  draggable: false,
		  xy: [300,50],
		  close: true,
		  modal: true,
		  buttons : [ { text:'', handler:formSubmit, isDefault:true } ]
		 }); 

YAHOO.mask.dialog2.validate = function() {
	var data = this.getData(); 
	
	if (data.fname == '' || data.lname == '') {
		showErr("Por favor ingrese su primer nombre y apellido.", "msgBox2");
		return false;
	} else if (data.address1 == '') {
	  showErr("Por favor ingrese la informaci&#243;n de su direcci&#243;n.", "msgBox2");
	} else if (data.city == '') {
	  showErr("Por favor ingrese su ciudad.", "msgBox2"); 
  } else if (data.zip == '') {
	  showErr("Por favor ingrese su c&#243;digo postal.", "msgBox2");
  } else if (data.email == '') {
	  showErr("Email", "msgBox2");
  } else {
    
    if (document.forms['clientData2'].n.checked) {
        document.forms['clientData2'].notify.value = 'Si';
    } else {
        document.forms['clientData2'].notify.value = 'No';
    }
    
    if (document.forms['clientData2'].gaddr[0].checked) {
        document.forms['clientData2'].send_gift.value = 'Direcci&#243;n actual';
    } else if (document.forms['clientData2'].gaddr[1].checked) {
        document.forms['clientData2'].send_gift.value = 'Nueva  direcci&#243;n';
    } else {
      showErr("Please select send address.", "msgBox2");
      return false;
    }
    
    if ((data.email != '') && (echeck(data.email) == false)) {
      showErr("Direcci&#243;n de correo electr&#243;nico inv&#225;lida.", "msgBox2");
      return false;
    }
    
		return true;
	}
}; 

YAHOO.mask.wait = 
		new YAHOO.widget.Panel("wait",  
			{ width:"220px",
			  fixedcenter:true, 
			  close:false, 
			  draggable:false, 
			  zindex:4,
			  modal:true,
			  visible:false
			} 
		);

YAHOO.util.Event.onDOMReady(
    function () {
      dialog_1.initDialog();

      YAHOO.mask.wait.setHeader("Por favor, espere...");
      YAHOO.mask.wait.setBody(loaderImg); 
      YAHOO.mask.wait.render(document.body);
      
      YAHOO.mask.dialog2.render();
      YAHOO.mask.dialog2.callback = {success: submitCallback2, failure: submitFailure2};
      dialog_1.setNextForm(YAHOO.mask.dialog2);
      
      YAHOO.mask.dialog3.render();
      YAHOO.mask.dialog3.callback = {success: submitCallback3, failure: submitFailure3};  
    }
);