﻿// By wwwins Consulting Ltd Hong Kong
function addEvent(obj,type,fn){
if(obj.addEventListener)
obj.addEventListener(type,fn,false);
else if(obj.attachEvent){
obj["e"+type+fn]=fn;
obj[type+fn]=function(){obj["e"+type+fn](window.event);}
obj.attachEvent("on"+type,obj[type+fn]);
}
}
function removeEvent(obj,type,fn){
if(obj.removeEventListener)
obj.removeEventListener(type,fn,false);
else if(obj.detachEvent){
obj.detachEvent("on"+type,obj[type+fn]);
obj[type+fn]=null;
obj["e"+type+fn]=null;
}
}
function $(n){if(n!=''){return document.getElementById(n);}else{return null;}}
function $t(n,e){
if(e) return e.getElementsByTagName(n);
else return document.getElementsByTagName(n);
}
var __gSwf;
function showAlert(str,btn1,btn2){
if(__gSwf) __gSwf.displayAlert(str,btn1,btn2);
}
function showAlertCallback(btnLabel){
if(__gSwf) __gSwf.showAlertCallback(btnLabel);
}
function getQueryString(){
var search=location.search;
return search.substr(1,search.length - 1);
}
function WBEgetURL(){
return location.href;
}
function WBEsetURL(url,title){
if(__gSwf) __gSwf.WBEsetValue(url,title);
}
function WBEsetTitle(title){
if(__gSwf) __gSwf.WBEsetTitle(title);
}
function WBEchangeURL(url){
if(__gSwf) __gSwf.WBEchangeURL(url);
}
function WBEgetLoginStatus(){
if(__gSwf && __gSwf.WBEgetLoginStatus() == "Y") return "Y"; else return "N";	
}
function WBElogout(){
if(__gSwf) __gSwf.WBElogout();
}
function WEBga(value){
if(typeof pageTracker != UNDEFINED && typeof pageTracker._trackPageview == FUNCTION){
pageTracker._trackPageview(value);
}
}
function WBEprint(content) {
if (content && content != "") {                              
var win = popwin("/blank.html", "Print", 825, 550, "no", "yes", "no", "no", "no", "no", "no");
if (win) {
win.document.write(content);
win.document.close();      
win.print();
win.focus();
}
} 
}
function WBEloadIframe(url){
var frame = document.createElement('iframe');
document.body.appendChild(frame);
frame.setAttribute('src', url);
frame.setAttribute('style', 'display: none');
}
function toggleEl(id,m){
var e=$(id);
if(e){
var v=(m==0) ? "hidden" : "visible";
var d=(m==2) ? "inline" : ((m==1) ? "block" : "none");
e.style.display=d;
e.style.visibility=v;
}
}
function urljump(url){
if(url!='') window.location=url;
}
function popwin(url,nam,w,h,resizable,scrollbars,toolbar,locationbar,directories,status,menubar){
var attr="";
if(w>0){
attr=(attr=="") ? "" : attr+",";
attr+="width="+w;
}
if(h<=0&&window.screen.availHeight&&window.screen.height&&window.screen.availHeight!=window.screen.height)
h=(window.screen.availHeight>window.screen.height) ? window.screen.height : ((window.screen.availHeight<window.screen.height) ? window.screen.availHeight : 680);
if(document.documentElement&&document.documentElement.clientWidth) h-=60;
if(BrowserDetect.browser=="Safari"){h+=2;}else if(BrowserDetect.browser=="Firefox"&&BrowserDetect.version>=2) h-=1;
attr=(attr=="") ? "" : attr+",";
attr+="height="+h;
if(resizable!=""){
attr=(attr=="") ? "" : attr+",";
attr+="resizable="+resizable;
}
if(scrollbars!=""){
attr=(attr=="") ? "" : attr+",";
attr+="scrollbars="+scrollbars;
}
if(toolbar!=""){
attr=(attr=="") ? "" : attr+",";
attr+="toolbar="+toolbar;
}
if(locationbar!=""){
attr=(attr=="") ? "" : attr+",";
attr+="location="+locationbar;
}
if(directories!=""){
attr=(attr=="") ? "" : attr+",";
attr+="directories="+directories;
}
if(status!=""){
attr=(attr=="") ? "" : attr+",";
attr+="status="+status;
attr=(attr=="") ? "" : attr+",";
attr+="statusbar="+status;
}
if(menubar!=""){
attr=(attr=="") ? "" : attr+",";
attr+="menubar="+menubar;
}
if(window.screen&&w>0&&h>0){
var x=(screen.width-w)/2;
var y=(screen.height-h)/2;
if(BrowserDetect.browser=="Explorer") y-=24;
attr+=",top="+y+",left="+x;
}
var _wc=window.open(url,nam,attr);
if(_wc){
_wc.opener=this;
if(window.focus) _wc.focus();
}else{
var s=$("so"+swfHandler.data);
if(s){
s.callGetUrl(url);
}
}
return _wc;
}
function popclose(){
if(window.opener&&window.focus) window.opener.focus();
window.close();
}
var _gDh=0;
function popfnb(url){
var h=708+_gDh;
var _w=popwin(url,"wpopfnb","700",h,"no","yes","no","no","no","no","no");
}
function popslim(url){
var h=708+_gDh;
var _w=popwin(url,"wpopslim","700",h,"no","yes","no","no","no","no","no");
}
function poptiny(url){
var h=300+_gDh;
var _w=popwin(url,"wpoptiny","500",h,"no","yes","no","no","no","no","no");
}
function popprint(url){
var h=600+_gDh;
var _w=popwin(url,"wpopprint","980",h,"no","yes","no","no","no","no","no");
}
function popint(url){
var h=570+_gDh;
var _w=popwin(url,"wpop","825",h,"no","yes","no","no","no","no","no");
}
function popgallery(url){
var h=600+_gDh;
var _w=popwin(url,"wpopgallery","825",h,"no","yes","no","no","no","no","no");
}
function popgifts(url){
var h=708+_gDh;
var _w=popwin(url,"wpopgifts","840",h,"no","yes","no","no","no","no","no");
}
function swfpop(url){
var h=600+_gDh;
var _w=popwin(url,"wpopprint","980",h,"no","yes","no","no","no","no","no");
}
function popmag(url){
var h=670+_gDh;
var _w=popwin(url,"wpopmag","980",h,"yes","no","no","no","no","no","no");
}
function popcert(url) {
var _w=popwin(url,"wpopcert","520","520","yes","no","no","no","no","no","no");
}
function popwedding(url){
var h=708+_gDh;
var _w=popwin(url,"wpopwedding","918",h,"no","yes","no","no","no","no","no");
}
var cookieHandler={
create:function(name,value,days){
if(days){
var date=new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
var expires=";expires="+date.toGMTString();
}
else var expires="";
document.cookie=name+"="+value+expires+";path=/";
},
read:function(name){
var nameEQ=name+"=";
var ca=document.cookie.split(';');
for(var i=0;i<ca.length;i++){
var c=ca[i];
while (c.charAt(0)==' ') c=c.substring(1,c.length);
if(c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
},
erase:function(name){
cookieHandler.create(name,"",-1);
}
};
var swfHandler={
data:"",
init:function(){
var o,e,j,ow,oc,safariTest,i,a;
e=$(this.data);
if(this.data!=""&&e!=null){
o=$("so"+this.data);
if(o){
ow=o.scrollWidth;
oc=typeof(o.lastChild);
}else{
ow=undefined;
oc=undefined;
}
if(BrowserDetect.browser=="Safari"){
safariTest=(BrowserDetect.version<523.10&&ow!=undefined)||(BrowserDetect.version>=523.10&&oc=="function")||(BrowserDetect.version>=534);
}else{
safariTest=true;
}
if(o&&safariTest){
e.className=(e.className=="") ? "swf" : e.className+" swf";
var mainDiv=$("main");
if(mainDiv) mainDiv.className+=" swfmain";
var bodyDiv=$("body");
if(bodyDiv) bodyDiv.className+=" swfbg";
var contentDiv=$("content");
if(contentDiv) contentDiv.style.border="none";
__gSwf=swfHandler.thisMovie("so"+swfHandler.data);
for(i=0;(a=$t("link")[i]);i++){
if(a.getAttribute("rel").indexOf("style")!=-1&&a.getAttribute("media")!="print"){
a.disabled=true;
if(a.getAttribute("href").indexOf("swf.css")!=-1) a.disabled=false;
}
}
}else{
if(o){
var el=$("div_so"+this.data);
el.parentNode.removeChild(el);
}
for(i=0;(a=$t("link")[i]);i++){
if(a.getAttribute("rel").indexOf("style")!=-1&&a.getAttribute("href").indexOf("swf.css")!=-1){
a.disabled=true;
}else{
a.disabled=false;
}
}
var els=["footer","header","accessibleContent"];
for(j=0;j<els.length;j++){
var div=$(els[j]);
if(div!=null){
div.style.display="block";
div.style.visibility="visible";
}
}
var fileprint=$('fileprint');
if(fileprint!=null){fileprint.className+=" skip";}
siteMsgHandler.init();
}
}
},
thisMovie:function(movieName){
if(BrowserDetect.browser=="Explorer"){
return window[movieName];
}else{ 
if(document[movieName].length!=undefined){return document[movieName][1];}
return document[movieName];
}
},
write:function(id,path,w,h,v,bg,params){
var s=new swfIN(path,"so"+id,w,h);
s.scrollbarAt(w,h);
if(typeof SWFAddress!="undefined"){
s.useSWFAddress();
}
s.detectShowDiv(v,null);
for(var p in params){s.addVar(p,params[p]);}
s.addParam("bgcolor",bg);
s.addParam("menu","false");
s.write();
this.data=id;
swfHandler.init();
}
};
addEvent(window,'load',function(){swfHandler.init();});
var siteMsgHandler={
property:"",
language:"",
darkUrl:"",
init:function(){
var main=$("main");
if(typeof main!=null){
var site=""+document.location;
site=(site.indexOf("opath=")!=-1) ? site.substring(site.indexOf("opath=")+1) : site.substring(site.indexOf("://")+3);
site=site.substring(site.indexOf("/")+1);
site=(site.indexOf("&")!=-1) ? site.substring(0,site.indexOf("&")) : site;
site=(site.indexOf("/")!=-1) ? site.substring(0,site.indexOf("/")) : site;
var sitelang=""+document.location;
sitelang=sitelang.substring(sitelang.indexOf("://")+3);
sitelang=sitelang.substring(sitelang.indexOf("/")+1);
sitelang=sitelang.substring(sitelang.indexOf("/")+1);
siteMsgHandler.property=site;
siteMsgHandler.language=sitelang.substring(0,sitelang.indexOf("/"));
if($("dark")&&cookieHandler.read("dark#"+siteMsgHandler.property+"#"+siteMsgHandler.language)!="1"){
siteMsgHandler.create("dark");
}else if($("req")){
siteMsgHandler.create("req");
}
}
},
create:function(id){
var hiddenDiv=$(id);
var cookie=(id=="dark") ? id+"#"+siteMsgHandler.property+"#"+siteMsgHandler.language : id+"#"+siteMsgHandler.language;
if(hiddenDiv&&cookieHandler.read(cookie)!="1"){
var div=document.createElement('div');
div.className="sitemsg alt"+id+" skip";
var divTxt=document.createElement('div');
var ahrefs=$t("a",hiddenDiv);
if(id=="dark"&&ahrefs.length>0){
siteMsgHandler.darkUrl=ahrefs[0].getAttribute("href");
divTxt.innerHTML=ahrefs[0].innerHTML;	
}else{
divTxt.innerHTML=hiddenDiv.innerHTML;
}
div.appendChild(divTxt);
if(id=="dark"){
div.onclick=function(){
if(siteMsgHandler.darkUrl!="") poptiny(siteMsgHandler.darkUrl);
cookieHandler.create("dark#"+siteMsgHandler.property+"#"+siteMsgHandler.language,"1");
siteMsgHandler.create("req");
this.parentNode.removeChild(this);
};
}else{
div.onclick=function(){
cookieHandler.create("req#"+siteMsgHandler.language,"1");
this.parentNode.removeChild(this);
};
}
main.parentNode.insertBefore(div,main);
hiddenDiv.parentNode.removeChild(hiddenDiv);
cookieHandler.create(cookie,"0");
}
}
}
var selectMenuHandler={
init:function(){
var selects=$t('select');
for(var i=0;i<selects.length;i++){
if(selects[i].className.indexOf('selectMenu')!=-1){
selects[i].onchange=function(){
urljump(this[this.selectedIndex].value);
}
}
}
}
};
addEvent(window,'load',function(){selectMenuHandler.init();});
var linkHandler={
init:function(){
_gDh=(BrowserDetect.browser=="Explorer") ? 24 : 0;
var ahrefs=$t('a');
var loc=window.location.href.toLowerCase();
var i,css,url;
var local=loc.substring(loc.indexOf("http://")+7);
local=local.substring(0,local.indexOf("/"));
var wo=window.opener;
for(i=0;i<ahrefs.length;i++){
css=ahrefs[i].className;
if(css=="popprint"){
ahrefs[i].onclick=function(){
popprint(this.getAttribute("href"));
return false;
};
}else if(css.indexOf('intpopfnb')!=-1){
ahrefs[i].onclick=function(){
popfnb(this.getAttribute("href"));
return false;
};
}else if(css.indexOf('intpopslim')!=-1){
ahrefs[i].onclick=function(){
popslim(this.getAttribute("href"));
return false;
};
}else if(css.indexOf('intpopgifts')!=-1){
ahrefs[i].onclick=function(){
popgifts(this.getAttribute("href"));
return false;
};
}else if(css.indexOf('intpopgallery')!=-1){
ahrefs[i].onclick=function(){
popgallery(this.getAttribute("href"));
return false;
};
}else if(css.indexOf('intpopmag')!=-1){
ahrefs[i].onclick=function(){
popmag(this.getAttribute("href"));
return false;
};
}else if(css.indexOf('intpop')!=-1){
ahrefs[i].onclick=function(){
popint(this.getAttribute("href"));
return false;
};
}else if(css.indexOf('popclose')!=-1){
ahrefs[i].onclick=popclose;
}else if(css.indexOf('intpopwedding')!=-1){
ahrefs[i].onclick=function(){
popwedding(this.getAttribute("href"));
return false;
};
}
}
}
};
var sharer={
title:null,
url:null,
chosenService:null,
services:{facebook:'http://www.facebook.com/sharer.php?u=<url>&t=<title>',twitter:'http://twitter.com/intent/tweet?text=<title>+<url>'},
share:function(title,url,service){
this.title=this.url=this.chosenService=null;
this.title=Url.encode(title);
this.url=url;
for(var key in this.services){
if(key==service){
this.chosenService=service;
if(service=='twitter'){
if (BitlyClient)
BitlyClient.call('shorten',{'longUrl':(url)}, 'sharer.'+service);
}else if(url!=''){
sharer[service].apply();
}
break;
}
}
},
facebook:function(){
var post=sharer.services.facebook.replace('<url>',sharer.url);
post=post.replace('<title>',sharer.title);
if(!popwin(post,'sharer','626','456','yes','no','no','no','no','yes','no')){
document.location=post;
}
post=null;
},
twitter:function(data){
var url=sharer.shortUrl(data);
if(url==''){
url=sharer.url;
}
var post=sharer.services.twitter.replace('<url>',url);
post=post.replace('<title>',sharer.title);
if(!popwin(post,'tweet','960','385','yes','no','no','no','no','yes','no')){
document.location=post;
}
url=post=null;
},
shortUrl:function(data){
var first_result='';
var url='';
for (var r in data.results){
first_result=data.results[r];
break;
}
for(var key in first_result){
if(key=='shortUrl'){
url=first_result[key].toString();
break;
}
}
return url;
}
};
var Url={
encode:function(string){
return escape(this._utf8_encode(string));
},
decode:function(string){
return this._utf8_decode(unescape(string));
},
_utf8_encode:function(string){
string=string.replace(/\r\n/g,"\n");
var utftext="";
for(var n=0;n<string.length;n++){
var c=string.charCodeAt(n);
if(c<128){
utftext+=String.fromCharCode(c);
}else if((c>127)&&(c<2048)){
utftext+=String.fromCharCode((c>>6)|192);
utftext+=String.fromCharCode((c&63)|128);
}else{
utftext+=String.fromCharCode((c>>12)|224);
utftext+=String.fromCharCode(((c>>6)&63)|128);
utftext+=String.fromCharCode((c&63)|128);
}
}
return utftext;
},
_utf8_decode:function(utftext){
var string="";
var i=0;
var c=c1=c2=0;
while(i<utftext.length){
c=utftext.charCodeAt(i);
if(c<128){
string+=String.fromCharCode(c);
i++;
}
else if((c>191)&&(c<224)){
c2=utftext.charCodeAt(i+1);
string+=String.fromCharCode(((c&31)<<6)|(c2&63));
i+=2;
}else{
c2=utftext.charCodeAt(i+1);
c3=utftext.charCodeAt(i+2);
string+=String.fromCharCode(((c&15)<<12)|((c2&63)<<6)|(c3&63));
i+=3;
}
}
return string;
}
}
var GenericTracker = function() {	
var _subscribers = [];
function urlchange(currentpath) {
var l = _subscribers.length,
iframes = document.getElementsByTagName("iframe"),
imgs = document.getElementsByTagName("img"),
l1 = iframes.length,
l2 = imgs.length;
for (var j = 0; j < l1; j++) {
if (iframes[j].className == "tracking") {
iframes[j] = null;
document.body.removeChild(iframes[j]);
}
}
for (var k = 0; k < l2; k++) {
if (imgs[k].className == "tracking") {
imgs[k] = null;
document.body.removeChild(imgs[k]);
}
}
for (var i = 0; i < l; i++) {
var s = _subscribers[i];
if ((s.path == "all") || 
(currentpath.match(s.path))) {
track(s.method, s.url);
}
}
}	
function subscribe(method, url, path) {
var _path = path ? new RegExp(path, "gi") : "all";
_subscribers.push({
"path": _path,
"method": method,
"url": url
});
}
function track(method, url) {
var axel = Math.random() + "",
a = axel * 10000000000000,
src = (url.indexOf("?") == -1) ? (url + "?num=" + a) : (url + "&num=" + a);
switch (method) {
case "iframe":								
var _iframeloader = document.createElement('iframe');
_iframeloader.className = "tracking";
document.body.appendChild(_iframeloader);
_iframeloader.setAttribute('src', src);
_iframeloader.setAttribute('style', 'display: none');
break;
case "image":
default:
var _imgloader = document.createElement('img');
_imgloader.className = "tracking";
document.body.appendChild(_imgloader);
_imgloader.setAttribute('src', src);
_imgloader.setAttribute('style', 'display: none');
break;
}
}
return {
urlchange: urlchange,
subscribe: subscribe,
track: track
}
}();

addEvent(window,'load',function(){linkHandler.init();});
addEvent(window, 'load', function() {
	var protocal = (("https:" == document.location.protocol) ? "https://" : "http://");

	GenericTracker.subscribe("iframe", protocal + "fls.doubleclick.net/activityi;src=3283817;type=penin469;cat=landi081;ord=1", "^/Peninsula_Hotels/\\w+/$");
	GenericTracker.subscribe("iframe", protocal + "fls.doubleclick.net/activityi;src=3283817;type=penin469;cat=landi554;ord=1", "^/Hong_Kong/\\w+/$");
	GenericTracker.subscribe("iframe", protocal + "fls.doubleclick.net/activityi;src=3283817;type=penin469;cat=landi288;ord=1", "^/Shanghai/\\w+/$");
	GenericTracker.subscribe("iframe", protocal + "fls.doubleclick.net/activityi;src=3283817;type=penin469;cat=landi915;ord=1", "^/Tokyo/\\w+/$");
	GenericTracker.subscribe("iframe", protocal + "fls.doubleclick.net/activityi;src=3283817;type=penin469;cat=landi184;ord=1", "^/Beijing/\\w+/$");
	GenericTracker.subscribe("iframe", protocal + "fls.doubleclick.net/activityi;src=3283817;type=penin469;cat=landi474;ord=1", "^/New_York/\\w+/$");
	GenericTracker.subscribe("iframe", protocal + "fls.doubleclick.net/activityi;src=3283817;type=penin469;cat=landi101;ord=1", "^/Chicago/\\w+/$");
	GenericTracker.subscribe("iframe", protocal + "fls.doubleclick.net/activityi;src=3283817;type=penin469;cat=landi647;ord=1", "^/Beverly_Hills/\\w+/$");
	GenericTracker.subscribe("iframe", protocal + "fls.doubleclick.net/activityi;src=3283817;type=penin469;cat=landi345;ord=1", "^/Bangkok/\\w+/$");
	GenericTracker.subscribe("iframe", protocal + "fls.doubleclick.net/activityi;src=3283817;type=penin469;cat=landi989;ord=1", "^/Manila/\\w+/$");

	// 2011-08-17: iProspect PCH remarketing
	GenericTracker.subscribe("image", protocal + "www.googleadservices.com/pagead/conversion/1031797036/?label=kkxvCNy9igIQrPL_6wM&amp;guid=ON&amp;script=0", "^/Chicago/(.*)$");
	GenericTracker.subscribe("image", protocal + "www.googleadservices.com/pagead/conversion/1031797036/?label=SMSACNS-igIQrPL_6wM&amp;guid=ON&amp;script=0", "^/Chicago/\\w+/Enticements/$");
	GenericTracker.subscribe("image", protocal + "www.googleadservices.com/pagead/conversion/1031797036/?label=SMSACNS-igIQrPL_6wM&amp;guid=ON&amp;script=0", "^/Chicago/\\w+/Enticements/US10_For_The_Second_Night/$");
	GenericTracker.subscribe("image", protocal + "www.googleadservices.com/pagead/conversion/1031797036/?label=SMSACNS-igIQrPL_6wM&amp;guid=ON&amp;script=0", "^/Chicago/\\w+/Enticements/Summer_Splendour/$");
	GenericTracker.subscribe("image", protocal + "www.googleadservices.com/pagead/conversion/1031797036/?label=SMSACNS-igIQrPL_6wM&amp;guid=ON&amp;script=0", "^/Chicago/\\w+/Enticements/MINI_Cooper/$");
	GenericTracker.subscribe("image", protocal + "www.googleadservices.com/pagead/conversion/1031797036/?label=SMSACNS-igIQrPL_6wM&amp;guid=ON&amp;script=0", "^/Chicago/\\w+/Enticements/Value_The_Experience/$");
	GenericTracker.subscribe("image", protocal + "www.googleadservices.com/pagead/conversion/1031797036/?label=x_2JCMy_igIQrPL_6wM&amp;guid=ON&amp;script=0", "^/Chicago/\\w+/Accommodation/(.*)$");
	GenericTracker.subscribe("image", protocal + "www.googleadservices.com/pagead/conversion/1031797036/?label=7J0oCMTAigIQrPL_6wM&amp;guid=ON&amp;script=0", "^/Chicago/\\w+/Reservations/$");
	GenericTracker.subscribe("image", protocal + "www.googleadservices.com/pagead/conversion/1031797036/?label=7J0oCMTAigIQrPL_6wM&amp;guid=ON&amp;script=0", "^/Chicago/\\w+/Reservations/Room_Reservations/$");
	GenericTracker.subscribe("image", protocal + "www.googleadservices.com/pagead/conversion/1031797036/?label=7J0oCMTAigIQrPL_6wM&amp;guid=ON&amp;script=0", "^/Chicago/\\w+/Reservations/Room_Reservations/Room_Tariff/(.*)$");
	GenericTracker.subscribe("image", protocal + "www.googleadservices.com/pagead/conversion/1031797036/?label=xdekCLTCigIQrPL_6wM&amp;guid=ON&amp;script=0", "^/Chicago/\\w+/Site_Map/$");
	
	// 2011-10-20: iProspect PHK remarketing
	GenericTracker.subscribe("image", protocal + "www.googleadservices.com/pagead/conversion/1014860505/?label=Xq9gCP-GuwIQ2ZX24wM&amp;guid=ON&amp;script=0", "^/Hong_Kong/(.*)$");
	
	// 2012-01-04: iProspect PNY remarketing
	GenericTracker.subscribe("iframe", protocal + "fls.doubleclick.net/activityi;src=3178458;type=websi932;cat=penin846;ord=1", "^/New_York/\\w+/Reservations/Room_Reservations/Room_Tariff/$");
});
