//global
var httpObj;
var timerId;
var timeout_sec = 10; //timeout

//for google analytics
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));

function doGoogleAnalytics() {
	try {
		var pageTracker = _gat._getTracker("UA-7364635-1");
		pageTracker._trackPageview();
	} catch(err) {}
}

function setCrabArray()
{
    var target_xml = './js/crab_array.xml';
    var array_columns = 5;
    var aray_rows = 3;

    var create_array = function(xml_data) {
        var crabs = xml_data.getElementsByTagName('crab');
        var i;
        var j;
        var child;
        var imgs = xml_data.getElementsByTagName('img');
        var pages = xml_data.getElementsByTagName('page');
        var random_order = new Array(crabs.length) ;

        for (i=0; i<crabs.length; i++) {
            random_order[i] = i;
        }
        i = crabs.length;
        while(i){
            j = Math.floor(Math.random()*i);
            var t = random_order[--i];
            random_order[i] = random_order[j];
            random_order[j] = t;
        }

        var k = 0;
        var array_pos;
        var img;
        var page;
        for (i=0; i<aray_rows; i++) {
            for (j=0; j<array_columns; j++) {
                array_pos = 'c' + i + j;
                img = imgs[random_order[k]].firstChild.nodeValue;
                page = pages[random_order[k]].firstChild.nodeValue;
                k++;
                //window.alert(array_pos + '<a href=&quot;./crab/' + page + '.html&quot;><img src=&quot;./crab/crab_image_thumb/' + img + '.jpg&quot;></a>');
                document.getElementById(array_pos).innerHTML = '<a href="./crab/crabxxxx/' + page + '.html"><img src="./crab/crab_image_thumb/' + img + '.jpg"></a>';
            }
        }
     }

     httpRequest(target_xml, 'xml', create_array);
}

function setImage(img_no)
{
  var img = document.images["crab_image"];
  if (img) img.src = '../crab_image/' + img_no + '.jpg';
  setDescription(img_no);
}

function setDescription(img_no) {
    // create url
    var target_url;
    target_url = '../indivisual/' + img_no + '.txt';
    // definition of function
    var funcRef = function(text_data) {
        document.getElementById('indivisual_txt').innerHTML = text_data;
    }
    // start http communication
    httpRequest(target_url, 'html', funcRef);
}

function setImageOnly(img_no)
{
  var img = document.images["crab_image"];
  if (img) img.src = '../crab_image/' + img_no + '.jpg';
}

function setComment(cmnt_id)
{
    if (cmnt_id == 's001') document.getElementById('comment_txt').innerText = '1.甲の背面と腹側の間が割れてきている。';
    if (cmnt_id == 's002') document.getElementById('comment_txt').innerText = '2.甲の背面と腹側の間の割れ目が広がって、後ろから新しい体が現れてきた。';
    if (cmnt_id == 's003') document.getElementById('comment_txt').innerText = '3.後ろへ泳ぎ上がるようにして一瞬で脱皮。';
    if (cmnt_id == 's004') document.getElementById('comment_txt').innerText = '4.脱皮完了。体が一回り大きくなっている。';
}

function setSidebar(kind) {
    // create url
    var target_url;
    target_url = './' + kind + '_sidebar.txt';
    // definition of function
    var funcRef = function(text_data) {
        document.getElementById('sidebar').innerHTML = text_data;
    }
    // start http communication
    httpRequest(target_url, 'html', funcRef);
}


// execute http communication
function httpRequest(target_url, target_kind, funcitonReference) {
    try {
        if(window.XMLHttpRequest) {
            httpObj = new XMLHttpRequest();
        } else if(window.ActiveXObject) {
            httpObj = new ActiveXObject("Microsoft.XMLHTTP");
        } else {
            httpObj = false;
        }
    } catch(e) {
        httpObj = false;
    }
    if(! httpObj) {
        httpObjGenerateFail();
    }
    //set timer
    timerId = setInterval('timeoutCheck()', 1000);

    httpObj.open("GET", target_url, true);
    httpObj.onreadystatechange = function() {
        if (httpObj.readyState == 4) {
            clearInterval(timerId);
            if (httpObj.status == 200) {
                if (target_kind == 'html') {
                    funcitonReference(httpObj.responseText);
                } else {
                    funcitonReference(httpObj.responseXML);
                }
            } else {
                alert(httpObj.status + ' : ' + httpObj.statusText);
                return false;
            }
        }
    }
    httpObj.send('');
}

// when occurs failure
function httpObjGenerateFail() {
    alert('your browser is not supprted!!');
    return false;
}

// HTTP timeout
function timeoutCheck() {
    timeout_sec --;
    if(timeout_sec <= 0) {
        //syop timer
        clearInterval(timerId);
        //abort http request
        httpObj.abort();
        //error dialog
        alert('time out');
        return false;
    }
}

//for Google analytics
if (window.addEventListener) {
	window.addEventListener('load', doGoogleAnalytics, false);
}
else if (window.attachEvent) {
	window.attachEvent('onload', doGoogleAnalytics);
}

