//////////////////////////////////
//                              //
//   Javascript for mform2.cgi  //
//                              //
//   Created. 2007.09.28        //
//   Updated. 2007.11.26        //
//                              //
//   By K.Kawasaki              //
//                              //
//////////////////////////////////

function soushin( mode ) {

	var request,res2,next_url,_charset,_con;
	var url0,url,ua,action,data,did;
	var action,data;

	//To judge charset
	ua = navigator.userAgent;
	if ( ua.match( /FireFox|Opera|Safari/i ) ) {
		_charset = document.characterSet;
	}
	else { //IE
		_charset = document.charset;
	}
	if ( _charset == "" ) {
		alert("FORM MAKING ERROR\n\nPlease set charset to meta tag!\n\nFRUITS-NET FORM-MAIL SERVICE");
		return false;
	}

    //alert( "TP: document.URL=" + document.URL );
    //alert( "TP: document.location=" + document.location );
	//alert( "TP: ua=" + ua );
	//alert( "TP: document.URL=" + document.URL );
	//alert( "TP: _charset=" + _charset );
	//alert( "TP: mode=" + mode );
	//alert( "TP: _confirm=" + document.forms[0]._confirm.value );

	//IE only
	if ( window.event ) {
	if ( window.event.srcElement.type == "submit" ) {
		alert("FORM MAKING ERROR\n\nPlease change input-type \"submit\"-->\"button\"\n\nFRUITS-NET FORM-MAIL SERVICE");
		return false;
	}
	}

	//To judge ajax-capable
	request = createHttpRequest();
	if ( request == null ) {
		document.forms[0]._confirm.value = "";
		document.forms[0].submit();
		return false;
	}

	//adjust _confirm
	_con = document.forms[0]._confirm.value;	
	if ( _con.match( /page2/ ) ) {
		document.forms[0]._confirm.value = "page";
	}

	//mode 
	if ( mode == null ) {
		mode = "";
	}

	did  = Math.random();
	url0 = document.forms[0].action+"?_ajax=yes&_charset="+_charset+"&did="+did+"&_http_referer="+document.URL+'&';
	url  = url0 + get_name_value();
	data0 = "_ajax=yes&_charset="+_charset+"&did="+did+"&_http_referer="+document.URL+"&mode="+mode + '&';
	data = data0 + get_name_value();

	
	//alert( "TP:" + url );
	//alert( "TP:data=" + data );

	request.onreadystatechange = function() {
		if ( request.readyState == 4 ) {
			res = request.responseText ;
			if ( res.match(/_kakunin/) ) {
				res2 = res.replace("_kakunin","");
				if ( window.confirm( res2 ) ) {
					//url = url0 + get_name_value();
					//url += "mode=send_form_mail";
					//document.location =  url;
					soushin( "send_form_mail" );
				}
			}
			else {
				if ( res.match(/request_show_page/) ) {
					//url = url0 + get_name_value();
					//url += "mode=show_kakunin_page";
					//document.location =  url;
					document.forms[0]._confirm.value = "page2";
					document.forms[0].submit();
				}
				else {
					if ( res.match(/_next_url_/) ) {
						next_url = res.replace("_next_url_","");
						document.location =  next_url;
					}
					else {
						alert( res );
					}
				}
			}
		}
	}

	try {
		request.open("POST", document.forms[0].action );
		request.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
		request.send(data);
	}
	catch ( e ) {
		alert("FORM MAKING ERROR\n form-action url and this page url mismatched.\n\nFRUITS-NET FORM-MAIL SERVICE"+e);
                return null;
	}

}


//
function get_name_value () {

	var count, _name, _value,_type;

	var ret = "";

	for ( count = 0 ; count < document.forms[0].length ; count ++ ) {
		_name  = document.forms[0].elements[count].name;
		_value = document.forms[0].elements[count].value;
		_type  = document.forms[0].elements[count].type;

		//alert( "TP: [" + _name + "] [" + _value + "] [" + _type +"]" );

		// security
		if ( _name.match(/_recipient/i) ) {
			continue;
		}

        // to cut duplication
        if ( _name.match(/_http_referer|_ajax/i) ) {
            continue;
        }

		if ( _type.match( /button|submit|reset/i ) ) {
			continue;
		}

		// checkbox
		if ( _type.match( /checkbox/i ) ) {
			if ( ! document.forms[0].elements[count].checked ) {
				_value = "-";
			}
		}

		// radio
		if ( _type.match( /radio/i ) ) {
			if ( ! document.forms[0].elements[count].checked ) {
				continue;
			}
		}
		
		ret += encodeURIComponent( _name ) +"="+ encodeURIComponent( _value ) + "&";
	}

	return ret;

}

function createHttpRequest() {

    if ( window.ActiveXObject ) {
        try {
            return new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch( e ){
            try {
                return new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e2){
                return null;
            }
        }
    }
    else if ( window.XMLHttpRequest ) {
	try {
		return new XMLHttpRequest();
	}
	catch(e3) {
		alert("FORM MAKING ERROR\n form-action url and this page url mismatched.\n\nFRUITS-NET FORM-MAIL SERVICE"+e3);
                return null;
	}
    }
    else {
        return null;
    }

}

/// End of Line ///

