/* do not change */
var active_id = active_id_1 = active_id_2 = active_level = "";
function init_post_request() {

  this.fn_request = false;

  if (window.XMLHttpRequest) { // Mozilla, Safari,...
    this.fn_request = new XMLHttpRequest();
    if (this.fn_request.overrideMimeType) {
      this.fn_request.overrideMimeType('text/html');
    }
  } 
	else if (window.ActiveXObject) { // IE
    try {
      this.fn_request = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
       try {
         this.fn_request = new ActiveXObject("Microsoft.XMLHTTP");
       } catch (e) {}
    }
  }
  if (!this.fn_request) {
    alert('Cannot create XMLHTTP instance');
    return false;
  }

}

function post_request(obj, url, parameters) {

  obj.open('POST', url, true);
  obj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  obj.setRequestHeader("Content-length", parameters.length);
  obj.setRequestHeader("Connection", "close");
  obj.send(parameters);

}

function build_query(frm) {
  var str = "";
  var element, i = 0;
  while ((element = document.getElementById(frm).elements[i++]) != null) {
      var qc = toQueryComponent(element);
      if (qc != "") str += "&" + qc;
  }
  return str.substring(1);
}

function toQueryComponent(input) {
    if (!input.name || input.disabled)
        return "";

    var n = urlencode(input.name);

    switch (input.type) {
    case "text":
    case "password":
    case "submit":
    case "hidden":
        return n + "=" + urlencode(input.value);
    case "textarea":
        // normalize line breaks as CR LF pairs as per RFC 1866
        var v = input.value.split(/\r\n|\r|\n/).join("\r\n");
        return n + "=" + urlencode(v);
    case "checkbox":
    case "radio":
        if (!input.checked)
            return "";
        //var v = getRealValue(input);
				var v = input.value;
        if (v === null) v = "on";
        return n + "=" + urlencode(v);
    case "select-one":
    case "select-multiple":
        var nvp = [];
        var opt, i = 0;
        while ((opt = input.options[i++]) != null) {
            if (opt.selected) {
                var v = getRealValue(opt);
                if (v === null) v = opt.text;
                // older versions of IE do not support Array.push
                nvp[nvp.length] = n + "=" + urlencode(v);
            }
        }
        return nvp.join("&");
    default:
        // input types reset, button, image, and file not implemented
        return "";
    }
}

function urlencode(str) {
    var v;
    try { v = encodeURIComponent(str); } catch (e) { v = escape(str); }
    return v.replace(/%20/g,"+");
}

function getRealValue(input) {
    var attr = input.getAttributeNode("value");
    return (attr && attr.specified) ? input.getAttribute("value") : null;
}

function launch_js(data) {
  // RegExp from prototype.sonio.net
  var ScriptFragment = '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)';
           
  var match    = new RegExp(ScriptFragment, 'img');
  var scripts  = data.match(match);
		
    if(scripts) {
        var js = '';
        for(var s = 0; s < scripts.length; s++) {
            var match = new RegExp(ScriptFragment, 'im');
            js += scripts[s].match(match)[1];
        }
        eval(js);
    }
}


function load_form(form_id){
	if(form_id != ""){
		var url = "../ajax/load_form.php" + "?form_id=" + form_id;
		document.getElementById("loan_div").innerHTML = "<div class='pnewrow'><span class='alert'>Loading form...</span></div>";
    tmp_http_req   = new init_post_request();
  	http_request_1 = tmp_http_req.fn_request;
    
    http_request_1.onreadystatechange = show_form;
  	
  	post_request(http_request_1, url, '');
				
	}	
}

function show_form(){
	if (http_request_1.readyState==4 || http_request_1.readyState=="complete"){
		data = http_request_1.responseText;
		document.getElementById("loan_div").innerHTML=data;
	}
}

function getmenu(str, level)
{
  active_id = str;
	active_level = level;
	if(str!=""){
    var url = "../ajax/menus.php" + "?doc_id=" + str + "&level=" + level;
    
		tmp_http_req   = new init_post_request();
  	http_request_2 = tmp_http_req.fn_request;
    
    http_request_2.onreadystatechange = stateChanged;
		
		post_request(http_request_2, url, '');
				
	}	
}
function stateChanged()
{
    if (http_request_2.readyState==4 || http_request_2.readyState=="complete")
    {  
			if (active_level == 1) {
				if (active_id_1 != "") {
				  document.getElementById("menu" + active_id_1).style.display = "none";		
				}
			  active_id_1 = active_id;
			}
			if (active_level == 2) {
				if (active_id_2 != "") {
				  document.getElementById("menu" + active_id_2).style.display = "none";
				}
			  active_id_2 = active_id;
			}
			data = http_request_2.responseText;			
			document.getElementById("menu" + active_id).innerHTML=data;
			document.getElementById("menu" + active_id).style.display = "block";
			launch_js(data);
    }
}


function subscribe(){
	if(document.getElementById("name").value == ""){
		alert("Please enter your name");
		document.getElementById("name").focus();
		return false;
	}
	if(document.getElementById("email").value == ""){
		alert("Please enter your email");
		document.getElementById("name").focus();
		return false;
	}	
	str = document.getElementById("email").value;
	if (str.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) == -1){
		alert("Please enter a valid email address.")
		document.getElementById("email").focus();
		return false;
	}	
	
	var url = "../ajax/subscribe.php";
	var query = build_query('newsletter_subscribe');
	document.getElementById("subscribe_result").innerHTML = "Saving...";
	tmp_http_req   = new init_post_request();
	http_request_3 = tmp_http_req.fn_request;
	
	http_request_3.onreadystatechange = show_result;
	
	post_request(http_request_3, url, query);
}
function show_result(){
	if (http_request_3.readyState==4 || http_request_3.readyState=="complete"){
		data = http_request_3.responseText;
		document.getElementById("subscribe_result").innerHTML = data;
	}
}
