// JavaScript Document


/****************** LSZiijax *******************/
var lssZiijax = Class.create();
lssZiijax.prototype = {

	initialize : function(element){
		this.element = $(element);
		this.element.onkeyup = this.onKeyup.bindAsEventListener(this);
	},
	onKeyup : function(){
		var url = "/cms/cmsUtils/ajZip/";
		var query = 'zip=' + escape(this.element.value);
		var myAjax = new Ajax.Request(url, { method: 'get', parameters: query, onComplete: handleZipChanged });
	}

};

function handleZipChangedDec(inXmlDoc, inElementName) {
	return decodeURIComponent(inXmlDoc.getElementsByTagName(inElementName).item(0).firstChild.data);
}

function handleZipChanged(responseHttpObj){
	var xmlDoc  = responseHttpObj.responseXML;
 //   var showElements = xmlDoc.getElementsByTagName("zip");
	
	var strPref		= handleZipChangedDec(xmlDoc,'pr');
	var strCity		= handleZipChangedDec(xmlDoc,'ct');
	var strStreet	= handleZipChangedDec(xmlDoc,'st');
	
	var cdPref		= handleZipChangedDec(xmlDoc,'pri');
	var cdCity		= handleZipChangedDec(xmlDoc,'cti');
	var cdZip		= handleZipChangedDec(xmlDoc,'cd');
	
//	debug("Zip="+cdZip+",  Pref=["+cdPref+"]"+strPref+",  City=["+cdCity+"]"+strCity+",  Str="+strStreet);
	
	$("addr1").value = strCity+strStreet;
	$("pref").value = cdPref;
//	var fieldAddr = ;
	
	
}

/****************** entry and utils *******************/
function debug(str){
  //  $("debug").innerHTML = str;
}



Event.observe(window, "load",
	function(){
		var zip = new lssZiijax("zip");
	}
);

Ext.onReady( 
	function() {
		// Show tool tips
		Ext.QuickTips.init();
		
		if($('birthDay').type!="hidden"){
			var birthDayWidget = new Ext.form.DateField(
				{
					allowBlank : false,
					format : 'Y/m/d',
					applyTo : 'birthDay'
				}
			);
		}
		
		new Ext.form.TextField(
			{
			  allowBlank: false
			  ,vtype: 'email' 	// defined in Ext.form.VTypes
			  ,applyTo : 'email'
			}
		);
		new Ext.form.TextField(
			{
			  allowBlank: false
			  ,vtype: 'email' 	// defined in Ext.form.VTypes
			  ,applyTo : 'emailConfirm'
			}
		);
		new Ext.form.TextField(
			{
			  allowBlank: false
			//  ,vtype: 'alphanum' 	// defined in Ext.form.VTypes
			  ,applyTo : 'pwd'
			}
		);
		new Ext.form.TextField(
			{
			  allowBlank: false
			  ,applyTo : 'nameSei'
			}
		);
		new Ext.form.TextField(
			{
			  allowBlank: false
			  ,applyTo : 'nameMei'
			}
		);
		new Ext.form.TextField(
			{
			  allowBlank: false
			  ,applyTo : 'kanaSei'
			}
		);
		new Ext.form.TextField(
			{
			  allowBlank: false
			  ,applyTo : 'kanaMei'
			}
		);
		new Ext.form.TextField(
			{
			// zip code validation
			validator: function(fieldValue) {
				var zipCode = /[^0-9-]/g; 
				if (fieldValue.length>=7 && !zipCode.test(fieldValue)) {
					return true;   
				}
				return String.format('{0}は間違っています(1234-5678)', fieldValue); 
			}
			  ,allowBlank: false
			  ,applyTo : 'zip'
			}
		);
		new Ext.form.TextField(
			{
			  allowBlank: false
			  ,applyTo : 'addr1'
			}
		);
		new Ext.form.TextField(
			{
			  allowBlank: false
			  ,applyTo : 'addr2'
			}
		);
		new Ext.form.TextField(
			{
			  allowBlank: false
			  ,applyTo : 'addr2'
			}
		);
		new Ext.form.TextField(
			{
			// zip code validation
			validator: function(fieldValue) {
				var numHyphen = /[^0-9-]/g; 
				var str = fieldValue.replace(/[^0-9]/g,"");
				var tel = /^0{1}[1-9]{1}[0-9]{7,8}$|^0{1}[1-9]{1}0{1}[0-9]{8}$/; 
				if (!numHyphen.test(fieldValue) && tel.test(str)) {
					return true;   
				}
				return String.format('{0}は間違っています', fieldValue); 
			}
			  ,allowBlank: false
			  ,applyTo : 'tel1'
			}
		);
		new Ext.form.TextField(
			{
			// zip code validation
			validator: function(fieldValue) {
				var numHyphen = /[^0-9-]/g; 
				var str = fieldValue.replace(/[^0-9]/g,"");
				var tel = /^0{1}[1-9]{1}[0-9]{7,8}$|^0{1}[1-9]{1}0{1}[0-9]{8}$/; 
				if (!numHyphen.test(fieldValue) && tel.test(str)) {
					return true;   
				}
				return String.format('{0}は間違っています', fieldValue); 
			}
			  ,allowBlank: true
			  ,applyTo : 'tel2'
			}
		);
		new Ext.form.TextField(
			{
			  allowBlank: true
			  ,applyTo : 'memberCd'
			}
		);
	}
);

