﻿//グローバル変数の定義
var httpObj;               // HTTP通信用オブジェクト
var timerId;               // HTTP通信用タイマーオブジェクト
var timeout_sec = 10;      // HTTP通信タイムアウト秒数

var xml_url = "xml/list.xml";

///"?p="のデータを取得//
//var datas = window.location.search;
//var keyNum = datas.indexOf("p=");
//cPNum = datas.substr(keyNum+2);
cPNum = $.cookie('pageNum');


function dispXmlElement(n) {
	//alert(n);
	if(! n){
		n=0;
	}else{
		n--;
	}
	$.cookie('pageNum',n+1 , { expires: 0, path:'/' });
	
	///page情報をCookieに保存/
	//var cPageNum = n+1;
	//document.cookie = "pn="+cPageNum;

	//新しい写真データを取得
	var xml = httpObj.responseXML;
	var listDataTag = xml.getElementsByTagName("listData");
	var houseDatas = listDataTag[n].getElementsByTagName("house");
	
	//古い写真データを削除/
	var oldDatasWrap = document.getElementById("workPicWrap");
	oldDatasWrap.removeChild(document.getElementById("workPicWrap_DelBox"));
	
	//新しい写真データを準備/
	var picWrapElem_DEL = document.createElement("div");
	picWrapElem_DEL.id = "workPicWrap_DelBox";
	for(i=0; i<houseDatas.length; i++){
		var h_name = houseDatas[i].getAttribute("name");
		var h_pDre = houseDatas[i].getAttribute("pDre");
		var h_num = houseDatas[i].getAttribute("num");
		var h_newflag = houseDatas[i].getAttribute("newflag");
		//
		var picWrapElem = document.createElement("div");
		picWrapElem.className = "workPicIcon";
		
		var linkElem = document.createElement("a");
		var linkElem2 = document.createElement("a");
		linkElem.href = "html_photo.html?n="+String(h_num);
		linkElem2.href = "html_photo.html?n="+String(h_num);
		
		var imgElem = document.createElement("img");
		imgElem.src = h_pDre;
		imgElem.alt = h_name;
		
		var txtWrapElem = document.createElement("div");
		txtWrapElem.className = "workPicTxtBox";
		
		var nameTxtNode = document.createTextNode(h_name);
		linkElem2.appendChild(nameTxtNode);
		var brElem = document.createElement("br");
		
		var newElem = document.createElement("span");
		newElem.className = "worksPicNew";
		
		if(h_newflag=="true"){
			var newTxtNode = document.createTextNode("NEW");
		}else{
			var newTxtNode = document.createTextNode("");
		}
		//
		newElem.appendChild(newTxtNode);
		txtWrapElem.appendChild(newElem);
		txtWrapElem.insertBefore(brElem, txtWrapElem.childNodes[0]);
		txtWrapElem.insertBefore(linkElem2, txtWrapElem.childNodes[0]);
		
		linkElem.appendChild(imgElem);
		
		picWrapElem.appendChild(txtWrapElem);
		
		picWrapElem.insertBefore(linkElem, picWrapElem.childNodes[0]);
		
		picWrapElem_DEL.appendChild(picWrapElem);
	}
	
	//新しい写真データを表示/
	document.getElementById("workPicWrap").appendChild(picWrapElem_DEL);
	
	///古いページ切り替えテキストリンクを削除/
	var oldPageElem_Wrap = document.getElementById("pageNumLink");
	oldPageElem_Wrap.removeChild(oldPageElem_Wrap.firstChild);
	
	///ページ切り替えテキストリンク表示/
	var pageElem_DEL = document.createElement("span");
	pageElem_DEL.id = "pageNumLink_DelBox";
	for(i=0; i<listDataTag.length; i++){
		if(i==n){
			var pageElem = document.createElement("b");
			pageElem.style.marginLeft = "5px";
			pageElem.style.marginRight = "5px";
			var pageTxtNode = document.createTextNode(i+1);
			pageElem.appendChild(pageTxtNode);
		}else{
			var pageElem = document.createElement("a");
			pageElem.style.marginLeft = "5px";
			pageElem.style.marginRight = "5px";
			pageElem.href = "JavaScript:dispXmlElement("+String(i+1)+")";
			var pageTxtNode = document.createTextNode(i+1);
			pageElem.appendChild(pageTxtNode);
		}
		//var spaceTxtNode = document.createTextNode("  ");
		pageElem_DEL.appendChild(pageElem);
		//if(i<listDataTag.length-1){
		//	pageElem_DEL.appendChild(spaceTxtNode);
		//}
	}
	document.getElementById("pageNumLink").appendChild(pageElem_DEL);

}

function loadXml(e) {
    httpXmlRequest(xml_url, 'GET', '', dispXmlElement, httpError);
    return false;
}

function httpError(error) {
    alert(error);
}

// 引数に与えられたURLにHTTPリクエストを行ない、指定された関数を実行
function httpXmlRequest(target_url, method, data, success_func, error_func) {
    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();
    }
    timerId = setInterval('timeoutCheck()', 1000);
    httpObj.open(method, target_url, true);
    httpObj.onreadystatechange = function() {
        if (httpObj.readyState == 4) {
            clearInterval(timerId);
            if (httpObj.status == 200) {
                success_func(cPNum);
            } else {
                error_func(httpObj.status + ' : ' + httpObj.statusText);
                return false;
            }
        }
    }
    httpObj.send(data);
}

// HTTPタイムアウト処理
function timeoutCheck() {
    timeout_sec --;
    if(timeout_sec <= 0) {
        // タイマーをストップする
        clearInterval(timerId);
        // HTTPリクエストを中断する
        httpObj.abort();
        // エラーダイアログを表示
        alert('タイムアウトです。');
        return false;
    }
}

// バブリングとデフォルトイベントアクションの停止
/*
function stopDefaultAndPropagation(e) {
    // バブリング停止
    if(e.stopPropagation) {
        e.stopPropagation();
    }
    if(window.event) {
        window.event.cancelBubble = true;
    }
    // デフォルトイベントアクションを停止する
    if(e.preventDefault) {
        e.preventDefault();
    }
    if(window.event) {
        window.event.returnValue = false;
    }
}
*/
function getTargetNode(e) {
    // 対象要素の参照を取得
    var target_node;
    if(e.target) {
      target_node = e.target;
    } else {
      target_node = e.srcElement;
    }
    // Safari対策
    if (target_node.nodeType == 3) {
        target_node = target_node.parentNode;
    }
    return target_node;
}

// load時の処理
/*
function setListeners(e) {
    // ボタン要素にclickイベントリスナーをセット
    var loadBtn = document.getElementById('loadBtn');
    addListener(loadBtn, 'click', loadXml, false);
}

// イベントリスナー登録
function addListener(elem, eventType, func, cap) {
    if(elem.addEventListener) {
        elem.addEventListener(eventType, func, cap);
    } else if(elem.attachEvent) {
        elem.attachEvent('on' + eventType, func);
    } else {
        alert('ご利用のブラウザーはサポートされていません。');
        return false;
    }
}

// load時のイベントリスナーをセットする
addListener(window, 'load', setListeners, false);
*/
