function createXMLHttpRequestObject() {
    var req = false;
    // branch for native XMLHttpRequest object
    try {
	req = new XMLHttpRequest();
    } catch(e) {
	// branch for IE/Windows ActiveX version
	try {
	    req = new ActiveXObject("Msxml2.XMLHTTP");
	} catch(e) {
	    try {
                req = new ActiveXObject("Microsoft.XMLHTTP");
	    } catch(e) {
                req = false;
	    }
	}
    }
    return req;
} 

function register() {
    //disable submit button
    document.getElementById('submit').style.textColor= "green";
    document.getElementById('submit').disabled=true;
    // read the form
    var first = document.getElementById('first').value;
    var last = document.getElementById('last').value;
    var email = document.getElementById('email').value;
    var company = document.getElementById('company').value;
    var country = document.getElementById('country').value;
    var pckg;
    if (document.getElementById('fee-conference').checked) { pckg = "conference"; };
    if (document.getElementById('fee-full-pass').checked) { pckg = "full-pass"; };

    // validate data
    var email_match = /\@([a-z0-9\-]+\.)+[a-z]{2,4}\s*$/i;
    if (first == '') {
	alert("Provide your first name, please.");
    } else if (last == '') {
	alert("Provide your last name, please.");
    } else if ( ! email_match.test(email) ) {
	alert("Provide your e-mail name, please.");
    } else if (pckg == undefined) {
	alert("Provide your registration option, please.");
    } else {
	var req = createXMLHttpRequestObject();
	try {
	            var url = "/2010/registration?" + 
			"first=" + encodeURIComponent(first) + "&" +
			"last=" + encodeURIComponent(last) + "&" +
			"email=" + encodeURIComponent(email) + "&" +
			"company=" + encodeURIComponent(company) + "&" +
			"country=" + encodeURIComponent(country) + "&" +
			"package=" + encodeURIComponent(pckg);
		    //alert(url);
		    //document.getElementById('submit').style.backgroundColor= "yellow";
		    req.open("GET", url, false);
		    req.send('');
		    if (req.status == 200) { 
			//alert("Update successfull.");
		    } else {
			alert("Edit error: " + req.status + " " + req.statusText);
		    }
		    var resp = req.responseText.split(":");
		    if (resp[0] != 'ok') {
			alert(resp[1]);
		    } else {
			alert("Thank you for registering!");
			window.location.href=resp[1];
		    }
	} catch (e) {
	    alert("INTERNAL ERROR: " + e);
	}
    };
    //enable submit button
    document.getElementById('submit').disabled=false;
    document.getElementById('submit').style.textColor= "black";
}

function paymentOnLoad() {
  // read the query
  var code = window.location.search.substring(6);
  var req = createXMLHttpRequestObject();
  req.open('GET', "/2010/payment?code=" + code);
  req.onload = function(request) {
    var respText = req.responseText;
    //alert(respText);
    var data;
    eval ("data="+respText);
    if (data && (data["status"] == 0 || data["status"] == 1)) {
      document.getElementById("envelope").setAttribute("class", "visible");
      for (var aux in data) {
	var elem = document.getElementById(aux);
	if (elem) 
	  elem.innerHTML = data[aux];
      }
      if (data["status"] == 0) {
	document.getElementById("not-paid-yet").setAttribute("class", "visible");
	var buttonId;
	switch (data["package"]) {
	case "conference":
	  buttonId = "9301814";
	  break;
	case "full-pass":
	  buttonId = "9301925";
	  break;
	}
	document.getElementById("payment-button").setAttribute("value", buttonId);
	document.getElementById("payment-code").setAttribute("value", data["email"] + " " + data["code"]);
	document.getElementById("payment-code-dinner").setAttribute("value", data["email"] + " " + data["code"]);
      } else if (data["status"] == 1) {	
	document.getElementById("paid").setAttribute("class", "visible");
      }
    }
  }
  req.send("");
}

function loadTweets() {
    var xhr = createXMLHttpRequestObject();
    xhr.open("GET", "dynamic/tweets.xml");
    xhr.onreadystatechange = function() {
      if (xhr.readyState == 4 && xhr.status == 200) {
	var tweets = document.getElementById("tweets");
        var data = xhr.responseText.replace('xmlns:atom="http://www.w3.org/2005/Atom" ', '');
	tweets.innerHTML = data.replace(/(http.+?)(\s|<)/gi, "<a class='tweetLink' href='$1'>$1</a>$2");
	setTimeout(loadTweets,62000);
      }
    }
    xhr.send("");
}

function nextBanner() {
  var oldBanner = document.getElementById("banner-" + currentBannerId);
  currentBannerId = ++currentBannerId > bannerCount ? 1 : currentBannerId;
  var newBanner = document.getElementById("banner-" + currentBannerId);
  oldBanner.style.opacity = 0;
  if (oldBanner.filters) 
    oldBanner.filters.alpha.opacity = 0;
  newBanner.style.opacity = 1;
  if (newBanner.filters)
    newBanner.filters.alpha.opacity = 100;
  setTimeout(nextBanner, 9000);
}
