var IMCss = '/css/IMdialog.css';
var sf_mess_lib = {
	loadCss: function (url) {
		var css = document.createElement('link');
		css.setAttribute('rel', 'stylesheet');
		css.setAttribute('type', 'text/css');
		css.setAttribute('href', url);
		document.getElementsByTagName('head')[0].appendChild(css);
	},	
	getElement: function (id) {
		return document.getElementById(id);
	}
}
var imSite = typeof(__BaseWebName)=='undefined'? '网站' : __BaseWebName;
var imCorp = typeof(__BaseCorpName)=='undefined'? '' : __BaseCorpName;
var qqNumb = typeof(__BaseCorpQQ)=='undefined'? '800019119' : __BaseCorpQQ;
var sf_mess_browser = {};
sf_mess_browser.ieVersion = /msie (\d+)/.exec(navigator.userAgent.toLowerCase());
sf_mess_browser.higherThanIE6 = sf_mess_browser.ieVersion && parseInt(sf_mess_browser.ieVersion[1]) > 6;
sf_mess_browser.onQuirkMode = document.compatMode && document.compatMode.indexOf('Back') == 0;

if(sf_mess_browser.ieVersion && !(sf_mess_browser.higherThanIE6)) {
	document.execCommand("BackgroundImageCache", false, true);
}
var SF_MESS_WRAP_ID 			= "SfMessWrap";
var SF_MESS_HEAD_ID 			= "SfMessHead";
var SF_MESS_TITLE_ID			= "SfMessTitle";
var SF_MESS_HEAD_ICON_ID 		= "SfMessHeadIcon";
var SF_MESS_BODY_ID 			= "SfMessBody";
var SF_MESS_BODY_TOP_ID 		= "SfMessBodyTop";
var SF_MESS_BODY_MID_ID 		= "SfMessBodyMid";
var SF_MESS_BODY_BOTTOM_ID 		= "SfMessBodyBottom";
var SF_MESS_BODY_FOOT_ID 		= "SfMessBodyFoot"
var SF_MESS_SUBMIT_ID 			= "SfMessSubmit";
var SF_MESS_COPY_ID 			= "SfMessCopy";
var SF_MESS_FRAME_ID 			= "SfMessCopyFrame";
var SF_MESS_TIP_CLASS 			= "SfMessTip";
var SF_MESS_ICON_OPEN_CLASS		= "SfMessIconOpen";
var SF_MESS_ICON_CLOSE_CLASS	= "SfMessIconClose";
var SF_MESS_PREFIX 				= "SfMess_";

var SF_MESS_TITLE  = imSite+'客服中心';
var SF_MESS_COPY   = imCorp;
var SF_MESS_CONTENT='<div class="IMTalk"><img onclick="javascript:window.open(\'http://b3.qq.com/webc.htm?new=0&sid='+qqNumb+'&o='+imSite+'&q=7\', \'_blank\', \'height=544, width=644,toolbar=no,scrollbars=no,menubar=no,status=no\');" src="/images/wrapper/IM_talk.png"></div>';

var sf_mess_layout_mod = [];
sf_mess_layout_mod.push('<div id="${SF_MESS_WRAP_ID}" style="top:1000px;${sf_pos_style}">',
'<iframe id="${SF_MESS_FRAME_ID}" name="${SF_MESS_FRAME_ID}" style="display:none;"></iframe>',
	'<div id="${SF_MESS_HEAD_ID}">',
		'<div id="${SF_MESS_TITLE_ID}">${SF_MESS_TITLE}</div>',
		'<div class="${SF_MESS_ICON_OPEN_CLASS}" id="${SF_MESS_HEAD_ICON_ID}"></div>',
	'</div>',
	'<div id="${SF_MESS_BODY_ID}">',
		'<div id="${SF_MESS_BODY_TOP_ID}"></div>',
		'<div id="${SF_MESS_BODY_MID_ID}">${SF_MESS_CONTENT}</div>',
		'<div id="${SF_MESS_BODY_BOTTOM_ID}">',
			'<div id="${SF_MESS_COPY_ID}">${SF_MESS_COPY}</div>',
		'</div>',
		'<div id="${SF_MESS_BODY_FOOT_ID}"></div>',
	'</div>',
'</div>');
var sf_mess_tween = {
	init: function () {
		var mbBody = sf_mess_lib.getElement(SF_MESS_BODY_ID);
		this.min = 0;
		this.max = mbBody.offsetHeight;
	},
	initTween: function () {
		if (!sf_mess_tween.initHeight) {
			sf_mess_tween.initHeight = 1;
		}
		var mbBody = sf_mess_lib.getElement(SF_MESS_BODY_ID);
		mbBody.style.display = '';
		mbBody.style.height = sf_mess_tween.initHeight + 'px';
		sf_mess_tween.initHeight += 2;
		if (window.attachEvent && (!sf_mess_browser.higherThanIE6 || sf_mess_browser.onQuirkMode) && (!window.opera)) {
			sf_mess_layout.fixMessageBoardPosition();
		}

		if (sf_mess_tween.initHeight > sf_mess_tween.max) {
			sf_mess_lib.getElement(SF_MESS_HEAD_ID).onclick = function (e) {sf_mess_tween.doTween();};
			sf_mess_lib.getElement(SF_MESS_HEAD_ICON_ID).className = SF_MESS_ICON_CLOSE_CLASS;
		} else {
			setTimeout(sf_mess_tween.initTween, 0);
		}
	},
	duration: 30,
	easeIn: function (step, duration) {
		return Math.pow(step/duration, 2);
	},
	easeOut: function (step, duration) {
		var c = step/duration;
		return -c * (c - 2);
	},
	doTween: function () {
		var from, to;
		var mbBody = sf_mess_lib.getElement(SF_MESS_BODY_ID);
		if (mbBody.style.display == 'none') {
			from = this.min;
			to = this.max;
		} else {
			from = this.max;
			to = this.min;
		}

		var step = 0, chg = to - from;
		function fixPosition() {
			if (window.attachEvent && (!sf_mess_browser.higherThanIE6 || sf_mess_browser.onQuirkMode) && (!window.opera)) {
				sf_mess_layout.fixMessageBoardPosition();
			}
		}
		function doTweenStep () {
			var offset = sf_mess_tween.easeIn(step++, sf_mess_tween.duration);
			var hei = from + Math.floor(chg * offset);
			if (hei > 0) {
				mbBody.style.height = hei + 'px';
				mbBody.style.display = '';
			} else {
				mbBody.style.display = 'none';
			}
			
			if (step > sf_mess_tween.duration) {
				clearInterval(interval);
				sf_mess_lib.getElement(SF_MESS_HEAD_ICON_ID).className = mbBody.style.display == 'none' ? SF_MESS_ICON_OPEN_CLASS : SF_MESS_ICON_CLOSE_CLASS;
			}
			fixPosition();
		}
		var interval = setInterval(doTweenStep, 10);
	}
}

var sf_mess_layout = {
	module: null,
	getModule: function () {
		return sf_mess_layout_mod.join('');
	},

	createLayout: function () {
		document.write(this.getModule().replace(/\$\{[.\w]+\}/g, this.__layoutVarReplacer));
		this.mbWrap = sf_mess_lib.getElement(SF_MESS_WRAP_ID);
	},
	
	__layoutVarReplacer: function (str) {
		if (str.indexOf('$') == 0) {
			try {
				return eval(str.substr(2, str.length - 3));
			} catch(e) {
				return '';
			}
		}
		return str;
	},
		
	initFormStyle: function() {
		var mbBody = sf_mess_lib.getElement(SF_MESS_BODY_ID);
		sf_mess_tween.init();
		
		mbBody.style.overflow = 'hidden';
		mbBody.style.display = 'none';
		this.mbWrap.style.top = document.documentElement.clientHeight - this.mbWrap.clientHeight + 'px';
		
	
		if (window.addEventListener || sf_mess_browser.higherThanIE6 && (!sf_mess_browser.onQuirkMode)) {
			this.mbWrap.style.top = '';
			this.mbWrap.style.bottom = '0';
			this.mbWrap.style.position = 'fixed';
		} else {
			window.attachEvent('onscroll', this.fixMessageBoardPosition);
			window.attachEvent('onresize', this.fixMessageBoardPosition);
			this.fixMessageBoardPosition();
		}

		sf_mess_tween.initTween();
	},
	
	fixMessageBoardPosition: function () {
		var self = sf_mess_layout;
		var page = document.body;
		if (!sf_mess_browser.onQuirkMode) {
			page = page.parentNode;
		}
		self.mbWrap.style.top = parseInt(page.clientHeight) + parseInt(page.scrollTop) - self.mbWrap.offsetHeight + 'px';
	}
}

if (!window.is_sf_mess_loaded) {
	window.is_sf_mess_loaded = true;
	sf_mess_lib.loadCss(IMCss);
	var sf_pos_style = "right:0";
	sf_mess_layout.createLayout();
	setTimeout(function(){sf_mess_layout.initFormStyle();}, 10);
}