/*--Ajax---------------------------------------------------------------------*/
function CMS_createHttpRequest(){
	if(window.ActiveXObject){
		try{
			return new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) {
			try {
				return new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
				return null;
			}
		}
	}else if(window.XMLHttpRequest){

	 return new XMLHttpRequest();

	}

}

// Calendar begin
function CMS_calendar(UID,year,month) {
	var now = new Date( parseInt(year),parseInt(month) - 1,1);
	var Y = year;
	var M = month;
	var startDay = now.getDay();
	var cID = UID + 'c';
	var tNow = new Date();
	var tY = tNow.getFullYear();
	var tM = tNow.getMonth() + 1;
	var today = tNow.getDate();
	var monthdays = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
	var n = 1;
	var md = monthdays[month-1];
	if(dataList.length < 1 ){
	   if(commDataList){
		   var dIndex = 0;
	      for(c = startDay ; c < md + startDay; c ++){
			 dataList[dIndex] = commDataList[c ];
			 dIndex ++;
		  }
	   }
	}

	document.getElementById(UID+'caption').innerHTML = year+'年'+month+'月';
	if (M == 2 && ((Y%4 == 0 && Y%100 != 0) || Y%400 == 0)) md = 29;
			var temp;
			var i = 1;
			var weekCount = 5;
			for(;i < 7;i++){
				for(var j = 1; j <= 7; j++){
					temp = (i-1)*7 + j;
					//tr
					var tr = document.createElement("tr");
					if(temp >= startDay + 1 && temp < startDay + 1 + md){
							var day = n;
							if(tY == Y && tM == M && today == n){
								day = '<p class="SN-today">'+n+'</p>';
							 }else{
                                if(j!=1 && j!=7){
                                    day = '<p class="SN-weekday">'+n+'</p>';
                                } else {
                                    day = "<p>" + n + "</p>";
                                }
							 }
							var contentTxt = '';
							if(dataList[n -1].itemId != "0"){
								var classname = 'item' + dataList[n -1].itemId;
								contentTxt +=  '<p class="'+classname+'">'+dataList[n -1].itemValue+'</p>';
							}

							document.getElementById(cID + temp).innerHTML = day + contentTxt;
						n++;
					}else{
						document.getElementById(cID + temp).innerHTML = '&nbsp;';
					}

				}

			}

			dataList = [];
      }
//Calendar end
function load_calenderData(step,UID){

	var nowY =  new Date().getFullYear();
	var nowM = new Date().getMonth()+1;
	var nowDate;
	var fileName = UID+"data.xml";
	if(step == 0){
		curYear = nowY;
	    curMonth = nowM
		nowDate = nowY+"" + nowM ;
		 CMS_requestCalendarFile('GET',fileName,true,CMS_setDataList,nowDate,UID);

		 return;
	}

	if(curMonth + step > 12){
		curMonth = 1;
		curYear = curYear + 1;
		nowDate = curYear +""+ curMonth;
		CMS_requestCalendarFile('GET',fileName,true,CMS_setDataList,nowDate,UID);
	}else if(curMonth + step == 0){
		curMonth = 12;
		curYear = curYear - 1;
		nowDate = curYear +""+ curMonth ;
		CMS_requestCalendarFile('GET',fileName,true,CMS_setDataList,nowDate,UID);
	}else{
		curMonth = curMonth + step;
		nowDate = curYear +""+ curMonth;
		CMS_requestCalendarFile('GET',fileName,true,CMS_setDataList,nowDate,UID);
	}
}

function CMS_requestCalendarFile(method,fileName,async,callback,curDate,UID){
	try{
		var xmlObj = CMS_createHttpRequest();

		var send_url = './calendar/' + fileName;
		xmlObj.open(method,send_url,async);

		xmlObj.onreadystatechange = function() {
			if (xmlObj.readyState==4) {

				callback(xmlObj,curDate,UID);
			}
		};
		xmlObj.send(null);
		} catch(e) {

		return;
	}

}

function CMS_setDataList(xmlObj,curDate,UID){

		dataList = [];
	commDataList = [];
	var dataXml ;
	if(window.ActiveXObject){
	    var dataTxt = xmlObj.responseText;
		dataXml = new ActiveXObject("MSXML2.DOMDocument");
		dataXml.loadXML(dataTxt);
	  }else{
		  dataXml = xmlObj.responseXML;
	  }
	var datas = dataXml.getElementsByTagName('data');

	for (i=0; i< datas.length; i++ )
	{
		var items = datas[i].getElementsByTagName('item');

		if(datas[i].getAttribute('date') == curDate)
		{
			for (j = 0; j < items.length ; j ++)
			{
				var itemId = items[j].getAttribute('id');
				var itemValue = items[j].getAttribute('value');
				dataList[j] = new dataObj(itemId,itemValue);
				dataList.date = curDate;
			}
		}else if(datas[i].getAttribute('date') == 'all'){
			for (k = 0; k < items.length ; k ++)
			{
				var itemId = items[k].getAttribute('id');
				var itemValue = items[k].getAttribute('value');
				commDataList[k] = new dataObj(itemId,itemValue);
			}

		}

	}

    CMS_calendar(UID, curDate.substring(0,4),curDate.substring(4));
}


function dataObj(itemId,itemValue){

	this.itemId = itemId;
	this.itemValue = itemValue;
}

function CMS_requestFile( data , method , fileName , async , callback, dir) {
	try {
		var httpoj = CMS_createHttpRequest();
		var send_url = fileName;
		if (dir == 1) { send_url = './index/' + fileName;}
		httpoj.open( method , send_url , async );
		if(arguments[6] == 1) {
			httpoj.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		}
		httpoj.onreadystatechange = function() {
			if (httpoj.readyState==4) {
				callback(httpoj, dir);
			}
		};
		httpoj.send( data );
	} catch(e) {
		pageOj = null;
		return;
	}
}

function pOj(p,t,u,i,dir) {
	this.tagLength = t.length;
	this.parent = p;

    if (update_date.firstChild != null) {
        this.update_date = update_date.firstChild.nodeValue;
    } else {
        this.update_date = "";
    }

	if (dir == 1) {
		this.url = '' + u.firstChild.nodeValue;
	} else {
		this.url = '../' + u.firstChild.nodeValue;
	}
	this.name = p.getAttribute('name');
	this.matchFlag = 0;
}
function CMS_setItemList(httpoj, dir) {
	pageOj = [];
	var resXML = httpoj.responseXML;

    if (!resXML) {
        return;
    }

	var pages = resXML.getElementsByTagName('page');
	for (i = 0; i < pages.length; i++) {
		update_date = pages[i].getElementsByTagName('update_date')[0];
		url = pages[i].getElementsByTagName('url')[0];
		pageOj[i] = new pOj(pages[i],update_date,url,i,dir);
	}
}
function CMS_returnItems() {
	document.getElementById('SN-index_container').style.display = 'block';
    document.getElementById('SN-searchResult').style.display = 'none';
	document.getElementById('SN-searchResult').innerHTML = '';
}
function textCheck(txt) {
	txt = txt.replace(/</g,'&lt;');
	txt = txt.replace(/>/g,'&gt;');
	return txt;
}
function CMS_ItemSearch() {

	var indexListArea = document.getElementById('SN-index_container');
	var searchResultArea = document.getElementById('SN-searchResult');
	if(pageOj!=null)
	{
		var n=0;
		var keys = "";

		function resultOj(u,n)
		{
			this.url = u;
			this.name = n;
		}

		var forResult = [] ;
		forResult.length = 0;

		for (var i in pageOj)
		{
				pageOj[i].matchFlag = 0;
		}

		var year = document.SN_sfrm.SN_year.value;
		var month = document.SN_sfrm.SN_month.value;

		if (month != '')
		{
			month = "."+month;
		}
		keys = year + month;


		if (keys.length != 0) {

				for (var j = 0; j < pageOj.length; j++ ) {

					if (pageOj[j].update_date.indexOf(keys) != -1)
						{

						     forResult.push( new resultOj(pageOj[j].url,pageOj[j].name));
						}
				}
			}

			if(forResult[0]) {
				indexListArea.style.display = 'none';
				insTxt = '<span style="display:block;">' + forResult.length + '件ヒットしました。&nbsp;&nbsp;ヒットしたアイテムを表示します。</span><br />';
				for (var i in forResult) {
						insTxt += '<a href="' + forResult[i].url + '"  class="thickbox">' + textCheck(forResult[i].name) + '</a><br  />';
				}
				searchResultArea.innerHTML = insTxt + '<br /><a href="javascript:CMS_returnItems()">戻る</a>';
			} else if (year !='') {
				indexListArea.style.display = 'none';
				searchResultArea.innerHTML = '<span style="display:block;">' + '"' + textCheck(year) + '&nbsp;' + textCheck(month) + '"ではヒットしませんでした。</span><br /><br /><a href="javascript:CMS_returnItems()">戻る</a>';
			}

		else {
			indexListArea.style.display = 'none';
			searchResultArea.innerHTML = '<span style="display:block;">' + 'キーワードが入力されていません。</span><br /><br /><a href="javascript:CMS_returnItems()">戻る</a>';
		}

        searchResultArea.style.display = 'block';

		tb_init('a.thickbox, area.thickbox, input.thickbox');
	}
}

function getForm() {
	if(document.forms['SN-contact']) {
		formItems = document.forms['SN-contact'].elements;
		CMSform = document.forms['SN-contact'];
	} else {
		CMSform = document.getElementsByTagName('form')[0];
		formID = CMSform.getAttribute('id');
		formItems = document.forms[formID].elements;
	}
}

function textEnc(txt) {
    var txt = encodeURI(txt);
    txt = txt.replace(/&/g,'%26');
    txt = txt.replace(/\?/g,'%3F');
    txt = txt.replace(/=/g,'%3D');
    return txt;
}

function CMS_setParams() {
	var chkIndex,orderFieldName;
	var param = '';
	var arrayText = [];
	var orderField = 'order_field=';
	var outputArray = [];
	var chkParam = '';

	getForm();

	for (var i = 0; i < formItems.length; i++) {

		if(formItems[i].name) {

			var fn = formItems[i].name;

			if (formItems[i].type != 'radio' && formItems[i].type != 'checkbox') {

				if (fn == 'site_name' || fn == 'form_title' || fn == 'admin_email' || fn == 'admin_reply_email'
                    || fn == 'admin_mail_subject' || fn == 'auto_reply_mail_subject'
                    || fn == 'auto_reply_mail_header' || fn == 'auto_reply_mail_footer') {
					param += formItems[i].name + '=' + textEnc(base64.decode(formItems[i].value,1)) + '&';
				} else {
					param += formItems[i].name + '=' + textEnc(formItems[i].value) + '&';
				}

			} else if (formItems[i].type == 'radio' && formItems[i].checked) {
				param += formItems[i].name + '=' + textEnc(formItems[i].value) + '&';
			} else if(formItems[i].type == 'checkbox' && formItems[i].checked) {
				chkIndex = truncate0(formItems[i].name.slice(-2))-1;
				arrayText[chkIndex] += formItems[i].value + ','
			}
			if (formItems[i].name.indexOf('label') != -1) orderField += formItems[i].name + ',';
		}

	}
	orderField = orderField.slice(0,orderField.length-1);

	for (var i=0; i < arrayText.length; i++) {
		n = i+1;
		if (i <10) n = '0' + n;
		if (arrayText[i]) {
			arrayText[i] = arrayText[i].replace('undefined','');
			arrayText[i] = arrayText[i].slice(0,arrayText[i].length-1);
			outputArray[i] = 'value_select_check_box_' + n + '=' + textEnc(arrayText[i]);
		}
	}
	for (var i = 0; i < outputArray.length; i++) {
		if (outputArray[i]) {
			chkParam += outputArray[i]+'&';
		}
	}

	param += chkParam;
	param += orderField;

	return param;
}

function truncate0(value)
{
	var res = value;
	if(res.substr(0,1)=="0")
	{
		res = res.substr(1); //not0ind);
	}
	return parseInt(res);
}


function CMS_confirm(path) {
	var chk = [];
	var tmpTxt = '<p>【入力内容確認】</p>';
	var n = 0;
	var inputedData;
	CMS_cgiPath = path;

	getForm();

	CMSconfirmArea = document.createElement('div');
	CMSconfirmArea.setAttribute('id','SN-confirmarea');
	CMSconfirmArea.style.display = 'none';
	CMSform.parentNode.insertBefore(CMSconfirmArea,CMSform.nextSibling);

	function inputedTextCheck(txt) {
		var txt = txt.replace(/\</g,'&lt;');
		txt = txt.replace(/\>/g,'&gt;');
		return txt;
	}

	for (var i = 0;i<formItems.length; i++) {
		if(formItems[i].name && formItems[i].name.match(/label/)) {
			chk[n] = formItems[i].value;
			valueName = formItems[i].name.replace(/label/,'value') ;
			valueElm = document.getElementsByName(valueName);
			if(valueElm.length != 0) {
				if (valueElm[0].type != 'radio' && valueElm[0].type != 'checkbox') {
					if (valueElm[0].type == 'textarea') {
						inputedData = '<pre style="border:solid 1px silver;width: 90%;overflow:auto;padding:1em;margin-top:2px;margin-bottom:4px;">' + inputedTextCheck(valueElm[0].value) + '</pre>';
					} else {
						inputedData = inputedTextCheck(valueElm[0].value);
						if(inputedData.length == 0) inputedData = '<span style="color:#ff0000;">未入力</span>';
					}
					chk[n] += ':&nbsp;' + inputedData+'<br />';
					inputedData = '';
				} else if(valueElm[0].type == 'radio') {
					for (k = 0;k < valueElm.length; k++) {
						if (valueElm[k].checked) {
							inputedData = valueElm[k].value;
						}
					}
					chk[n] += ':&nbsp;' + inputedData + '<br />';
					inputedData = '';
				} else if(valueElm[0].type == 'checkbox') {
					var tempcheckedValue = '';
					for (l = 0;l < valueElm.length; l++) {
						if (valueElm[l].checked) {
							tempcheckedValue += valueElm[l].value + ', ';
						}
					}
					inputedData = tempcheckedValue.slice(0,tempcheckedValue.length-2);
					chk[n] += ':&nbsp;' + inputedData + '<br />';
					inputedData = '';
					tempcheckedValue = '';
				}
			} else {
				chk[n] = '&lt;' + formItems[i].value + '&gt;<br />'
			}
			n++;
		}
	}
	for (var i in chk) {
		tmpTxt += chk[i];
	}
	sendBtn = document.createElement('input');
	sendBtn.setAttribute('type','button');
	sendBtn.setAttribute('value','この内容で送信');
	editBtn = document.createElement('input');
	editBtn.setAttribute('type','button');
	editBtn.setAttribute('value','修正する')
	if(sendBtn.addEventListener) sendBtn.addEventListener('click',CMS_send,true); else sendBtn.attachEvent('onclick',CMS_send);
	if(editBtn.addEventListener) editBtn.addEventListener('click',CMS_edit,true); else editBtn.attachEvent('onclick',CMS_edit);

	CMSconfirmArea.innerHTML = tmpTxt;
	CMSconfirmArea.appendChild(sendBtn);
	CMSconfirmArea.appendChild(editBtn);

	CMSform.style.display = 'none';
	CMSconfirmArea.style.display = 'block';

	function CMS_edit() {
		sendBtn.parentNode.removeChild(sendBtn);
		editBtn.parentNode.removeChild(editBtn);
		CMSform.style.display = 'block';
		CMSform.parentNode.removeChild(CMSconfirmArea);
	}
}

function CMS_send() {

    var frm = document.forms['SN-contact'];

    var params = {};

    params.site_name               = frm.site_name.value;
    params.form_title              = frm.form_title.value;
    params.auto_reply_mail_subject = frm.auto_reply_mail_subject.value;
    params.auto_reply_mail_header  = frm.auto_reply_mail_header.value;
    params.auto_reply_mail_footer  = frm.auto_reply_mail_footer.value;
    params.auto_reply_mail_flag    = frm.auto_reply_mail_flag.value;

    params.admin_reply_email       = frm.admin_reply_email.value;
    params.admin_mail_subject      = frm.admin_mail_subject.value;
    params.admin_email             = frm.admin_email.value;
    params.order_field             = "";


    $("form[name='SN-contact'] input[name*='value_']").each(function(){
        if ($(this).attr("type") == "checkbox") {

        } else {
            params[$(this).attr("name")] = $(this).val();
        }

    });

    $("form[name='SN-contact'] select").each(function(){
        params[$(this).attr("name")] = $(this).val();
    });

    $("form[name='SN-contact'] textarea[name*='value_']").each(function(){
        params[$(this).attr("name")] = $(this).val();
    });

    $("form[name='SN-contact'] input[name*='label_']").each(function(){
        params[$(this).attr("name")] = $(this).val();
        params.order_field += $(this).attr("name") + ",";
    });

    $("form[name='SN-contact'] :checkbox[name*='value_']:checked").each(function(){
        if (params[$(this).attr("name")]) {
            params[$(this).attr("name")] += ", " + $(this).val();
        } else {
            params[$(this).attr("name")] = $(this).val();
        }

    });

    $.ajax({
        type   : "post"
        , url  : CMS_cgiPath
        , data : $.param(params)
        , success: function(txt) {

            if (txt.indexOf('send_mail_admin_success') != -1) {
                CMSconfirmArea.innerHTML ='正常に送信しました。<br />ご利用頂き誠にありがとうございました。';
            } else {
                CMSconfirmArea.innerHTML ='送信に失敗しました。';
            }
        }
    });

	CMSconfirmArea.innerHTML ="入力情報を送信しています。";
}

function CMS_compMail(httpoj){
	var res = httpoj.responseText;
	if (res.indexOf('send_mail_admin_success') != -1) {
		CMSconfirmArea.innerHTML ='正常に送信しました。<br />ご利用頂き誠にありがとうございました。';
	}
	if (res.indexOf('send_mail_admin_error') != -1) {
		CMSconfirmArea.innerHTML ='送信に失敗しました。';
	}
}

