// JavaScript
var FormCurrentZip = "";
function AjaxSetArea(v,area,ad){
	if(v.length != 7 || FormCurrentZip == v) return false;
	FormCurrentZip = v;
	var zip = v.substr(0,3);
	var callback = function(res){
		
		var ar = eval('('+res.responseText+')');
		var d = new String(ar[v]);
		var a = d.split(",");
		
		// set address
		$("i"+ad).value = a[1]+a[2];
		FormValid(ad,"text");
		
		// set area selextbox
		$("i"+area).options.selectedIndex = (a[0]-1);
		
		
	}
	new Ajax.Request(Form_JS_DIR+"data/zip-"+zip+".json",{method:"get",onComplete:callback});
}

function FormValidate(id){

	var iID = "i"+id;

	var params = inputs[id];
	var valid = true;
	
	params['max'] = Number(params['max']);
	params['min'] = Number(params['min']);
	
	if (params['type'] == "checkbox") {
		var checked = 0;
		$$('#'+iID+' input').each(function(i){ if($(i).checked) checked++; });
		if ((params['max'] >= 1 && params['max'] < checked) || (params['min'] >= 1 && params['min'] > checked) || checked == 0) valid = false;
		
	}else{
		if (params['type'] == "radio") {
			var value = "";
			$$('#'+iID+' input').each(function(i){ if($(i).checked) value = $(i).value; });

		}else{
			var value = $F(iID);
		}
		
		if(value == "") valid = false;
		if(params['max'] != "" && params['max'] < value.length) valid = false;
		if(params['min'] != "" && params['min'] > value.length) valid = false;
		if(params['must'] != "" && params['must'] != value) valid = false;
		if(params['type'] == "int" && value.match(/[^0-9]/) != null) valid = false;
		if(params['type'] == "url" && value.match(/(http|ftp)s?:\/\/.+/) == null) valid = false;	
		if(params['type'] == "email" && value.match(/^\S+@\S+\.\S+$/) == null) valid = false;	

	}

	if(valid==false){
		FormInvalid(id,params['type']);
	}else{
		FormValid(id,params['type']);
	}
}
function FormValidInit(id,type){
	if($("i"+id) == null) return false;
	
	if(type == "checkbox" || type == "radio"){
		var onevent = (type == "radio") ? "change" : "click";
		$$("#i"+id+" label").each(function(i){
			Event.observe(i,onevent,function(){ FormValidate(id,type); });
		});
	}else{
		var onevent = (type == "select") ? "change" : "keyup";
		Event.observe("i"+id,onevent,function(){ FormValidate(id,type); });
	}
}
function FormValid(id,type){
	
	if ($('i' + id) != null && type != "checkbox" && type != "radio" && type != "select") {
		
		var o = Element.classNames('i' + id);
		
		// remove valid class
		if (Element.hasClassName('i' + id, "form_invalid") == true) FormRemoveClass('i' + id,"form_invalid");
		
		// add invalid class
		FormAddClass('i' + id,"form_valid");
	}
	
	// hide error
	if($('e'+id) != null && $('e'+id).style.display=="") new Effect.Fade('e'+id,{duration:0.3});
}
function FormInvalid(id,type){
	if ($('i' + id) != null && type != "checkbox" && type != "radio" && type != "select") {

		// remove valid class
		if (Element.hasClassName('i' + id, "form_valid") == true) FormRemoveClass('i' + id,"form_valid");
		
		// add invalid class
		FormAddClass('i' + id,"form_invalid");
	}
	// show error
	if($('e'+id) != null && $('e'+id).style.display=="none") new Effect.Appear('e'+id,{duration:0.3});
}
function FormFocusInit(id){
	if($("i"+id) == null) return false;
	Event.observe("i"+id,"focus",function(){ FormFocusShow(id); });
	Event.observe("i"+id,"blur",function(){ FormFocusHide(id); });
}
function FormFocusShow(id){
	if($('f'+id) != null && $('f'+id).style.display=="none") new Effect.Appear('f'+id,{duration:0.3});
}
function FormFocusHide(id){
	if($('f'+id) != null && $('f'+id).style.display=="") new Effect.Fade('f'+id,{duration:0.3});
}
function FormAddClass(el,name){
	if($(el)==null) return false;
	var o = Element.classNames(el);
	o.add(name);
}
function FormRemoveClass(el,name){
	if($(el)==null) return false;
	var o = Element.classNames(el);
	o.remove(name);
}
function FormDisableSubmit(form) {
	var elements = form.elements;
	for (var i = 0; i < elements.length; i++) {
		if (elements[i].type == 'submit') {
			elements[i].disabled = true;
		}
	}
}

	//textarea “à—eÁ‹Ž
function EraseTxt(obj) {
	if (obj.value == obj.defaultValue) obj.value = "";}

