/***********************************************************
 * 予約プロAPI
 * (c)AbilityConsultant.inc
 * 本プログラムは宿泊予約システム予約プロご利用者のみご利用可能です。
 * http://www.489pro.com/
 */
 
var domainName = location.hostname;

if(typeof(yproAPI) == 'undefined') var yproAPI = {};

yproAPI.set = function (json) {
	yproAPI.setting = {};

	if(typeof(json) == 'object') {
		yproAPI.setting = json;
	} else {
		yproAPI.setting.hotels = json;
	}

	// 予約プロ施設判別	※必須
	if(typeof(yproAPI.setting.hotels) == 'undefined' || yproAPI.setting.hotels == '') {
		throw new Error(0,'予約プロ施設IDが見つかりませんでした');
	}
	var Querys = '?id='+yproAPI.setting.hotels;
	// オプション関連の設定
	if(typeof(yproAPI.setting.order) != 'undefined') {
		Querys = (yproAPI.setting.order == true) ? Querys += '&order=1' : Querys += '&order=0';
	}
	if(typeof(yproAPI.setting.num) != 'undefined') {
		Querys = (yproAPI.setting.num > 0) ? Querys += '&num='+yproAPI.setting.num : Querys += '';
	}
	if(typeof(yproAPI.setting.display) != 'undefined') {
		Querys = (yproAPI.setting.display == 'gp') ? Querys += '&display=gp' : Querys += '';
	}
	if(typeof(yproAPI.setting.select) != 'undefined') {
		Querys = (yproAPI.setting.select != '') ? Querys += '&select='+yproAPI.setting.select : Querys += '';
	}
	if(typeof(yproAPI.setting.lang) != 'undefined') {
		Querys = (yproAPI.setting.lang == 'eng') ? Querys += '&lng=en' : Querys += '&lng=ja';
	} else {
		Querys += '&lng=ja'
	}
	if(domainName == "rsv.longinghouse.jp"){
		document.write('<script type="text/javascript" src="http://rsv.longinghouse.jp/asp/api/ypro/ypro_api.asp'+Querys+'" charset="utf-8"></script>')
	}else{
		document.write('<script type="text/javascript" src="http://www.489pro.com/asp/api/ypro/ypro_api.asp'+Querys+'" charset="utf-8"></script>')
	}
};


yproAPI.isMyObject = function () {
	 return (typeof(yproObject) == 'undefined') ? false : true;
};

yproAPI.getImage = function (data,obj) {
	var options = '';
	if(typeof(obj) == 'object') {
		options += (typeof(obj.width) != 'undefined') ? 'width="'+obj.width+'"':'';
		options += (typeof(obj.height) != 'undefined') ? 'height="'+obj.height+'"':'';
		options += (typeof(obj.border) != 'undefined') ? 'border="'+obj.border+'"':'';
	}
	
	if(this.isMyObject()) return (data.p_image != "") ? '<img src="'+data.p_image+'" '+options+' />' :  '';
};

yproAPI.getUrl = function (data) {
	if(this.isMyObject()) {
		if(domainName == "rsv.longinghouse.jp"){
			var common_url = 'http://rsv.longinghouse.jp/asp/489/menu.asp?id='+this.setting.hotels;
		}else{
			var common_url = 'http://www.489pro.com/asp/489/menu.asp?id='+this.setting.hotels;
		}
		if(typeof(yproAPI.setting.display) != 'undefined') {
			var url = (yproAPI.setting.display == 'gp') ? common_url + '&gp=YES&ty=lim&group=' : common_url+'&ty=lim&plan=';
		}
		else
		{
			var url = common_url+'&ty=lim&plan=';
		}
		return (data.p_id != "") ? url + data.p_id : '';
	}
};

yproAPI.getPlanId = function (data) {
	if(this.isMyObject()) return (data.p_id != "") ? data.p_id:'';
};

yproAPI.getPlanName = function (data) {
	if(this.isMyObject()) return (data.p_name != "") ? data.p_name:'';
};

yproAPI.getPlanText = function (data,max) {
	var text = new String(data.p_description);
	text = text.replace(/(<.*?>)|(\r\n)|(\r)/gi,"");
	if(max != "" && max > 0) {
		if(text.length > max) {
			text = text.substring(0,(text.length - (text.length - max)));
			text += '…';
		}
	}
	if(this.isMyObject()) return (text != "") ? text:'';
};

yproAPI.getRoomId = function (data) {
	if(this.isMyObject()) return (data.r_id != "") ? data.r_id : '';
};

yproAPI.getRoomName = function (data) {
	if(this.isMyObject()) return (data.r_name != "") ? data.r_name : '';
};

yproAPI.addHtml = function (callback) {
	if(this.isMyObject()) {
		for(var nCnt=0; nCnt<yproObject.plan.length; nCnt++) {
			$yproCB(callback(yproObject.plan[nCnt]));
		}
	}
};

yproAPI.addHtml.Room = function (callback) {
	if(this.isMyObject()) {
		for(var nCnt=0; nCnt<yproObject.room.length; nCnt++) {
			$yproCB(callback(yproObject.room[nCnt]));
		}
	}
};
// callback method
function $yproCB(fn) {
	return (typeof(fn) == 'function') ? fn : Function ('a','return '+fn);
}

yproAPI.onload = function(fnc){
	var ua = navigator.userAgent.toLowerCase();
	var saf_v = (ua.match(/.*version\/(\d+)\.(\d+)/)||[]);
	var isUsableDCL = ( /firefox|chrome/.test(ua)|| parseFloat((ua.match(/.*opera[\/\s]([\d.]+)/)||[])[1])>=9 || (/safari/.test(ua)&&parseInt(saf_v[1]+saf_v[2]) >= 31));
	if(/*@cc_on!@*/false) {
		document.onreadystatechange = function(){
			if(document.readyState=="complete" || document.readyState=="loaded") fnc();
		}
	} else if(isUsableDCL) {
		document.addEventListener('DOMContentLoaded',fnc,false);
	} else if(window.addEventListener) {
		window.addEventListener('load',fnc,false);
	} else {
		window.onload = fnc;
	}
}

