
jQuery.autocomplete=function(input,options){var me=this;var $input=$(input).attr("autocomplete","off");if(options.inputClass){$input.addClass(options.inputClass);}
var results=document.createElement("div");var $results=$(results).hide().addClass(options.resultsClass).css("position","absolute");if(options.width>0){$results.css("width",options.width);}
$("body").append(results);input.autocompleter=me;var timeout=null;var prev="";var active=-1;var cache={};var keyb=false;var hasFocus=false;var lastKeyPressCode=null;var mouseDownOnSelect=false;var hidingResults=false;function flushCache(){cache={};cache.data={};cache.length=0;};flushCache();if(options.data!=null){var sFirstChar="",stMatchSets={},row=[];if(typeof options.url!="string"){options.cacheLength=1;}
for(var i=0;i<options.data.length;i++){row=((typeof options.data[i]=="string")?[options.data[i]]:options.data[i]);if(row[0].length>0){sFirstChar=row[0].substring(0,1).toLowerCase();if(!stMatchSets[sFirstChar])stMatchSets[sFirstChar]=[];stMatchSets[sFirstChar].push(row);}}
for(var k in stMatchSets){options.cacheLength++;addToCache(k,stMatchSets[k]);}}
$input.keydown(function(e){lastKeyPressCode=e.keyCode;switch(e.keyCode){case 38:e.preventDefault();moveSelect(-1);break;case 40:e.preventDefault();moveSelect(1);break;case 9:case 13:if(selectCurrent()){$input.get(0).blur();e.preventDefault();}
break;default:active=-1;if(timeout)clearTimeout(timeout);timeout=setTimeout(function(){onChange();},options.delay);break;}}).focus(function(){hasFocus=true;}).blur(function(){hasFocus=false;if(!mouseDownOnSelect){hideResults();}});hideResultsNow();function onChange(){if(lastKeyPressCode==46||(lastKeyPressCode>8&&lastKeyPressCode<32))return $results.hide();var v=$input.val();if(v==prev)return;prev=v;if(v.length>=options.minChars){$input.addClass(options.loadingClass);requestData(v);}else{$input.removeClass(options.loadingClass);$results.hide();}};function moveSelect(step){var lis=$("li",results);if(!lis)return;active+=step;if(active<0){active=0;}else if(active>=lis.size()){active=lis.size()-1;}
lis.removeClass("ac_over");$(lis[active]).addClass("ac_over");};function selectCurrent(){var li=$("li.ac_over",results)[0];if(!li){var $li=$("li",results);if(options.selectOnly){if($li.length==1)li=$li[0];}else if(options.selectFirst){li=$li[0];}}
if(li){selectItem(li);return true;}else{return false;}};function splits(string){var arr=string.split('<span>')
return arr[0];}
String.prototype.trim=function(){return this.replace(/^\s*|\s*$/g,'');}
function selectItem(li){if(!li){li=document.createElement("li");li.extra=[];li.selectValue="";}
var v=$.trim(li.selectValue?li.selectValue:li.innerHTML);v=splits(v).trim();input.lastSelected=v;prev=v;$results.html("");$input.val(v);hideResultsNow();if(options.onItemSelect){setTimeout(function(){options.onItemSelect(li)},1);}};function createSelection(start,end){var field=$input.get(0);if(field.createTextRange){var selRange=field.createTextRange();selRange.collapse(true);selRange.moveStart("character",start);selRange.moveEnd("character",end);selRange.select();}else if(field.setSelectionRange){field.setSelectionRange(start,end);}else{if(field.selectionStart){field.selectionStart=start;field.selectionEnd=end;}}
field.focus();};function autoFill(sValue){if(lastKeyPressCode!=8){$input.val($input.val()+sValue.substring(prev.length));createSelection(prev.length,sValue.length);}};function showResults(){var pos=findPos(input);var iWidth=(options.width>0)?options.width:$input.width();$results.css({width:parseInt(iWidth)+"px",top:(pos.y+input.offsetHeight)+"px",left:pos.x+"px"}).show();};function hideResults(){if(timeout)clearTimeout(timeout);timeout=setTimeout(hideResultsNow,200);};function hideResultsNow(){if(hidingResults){return;}
hidingResults=true;if(timeout){clearTimeout(timeout);}
var v=$input.removeClass(options.loadingClass).val();if($results.is(":visible")){$results.hide();}
if(options.mustMatch){if(!input.lastSelected||input.lastSelected!=v){selectItem(null);}}
hidingResults=false;};function receiveData(q,data){if(data){$input.removeClass(options.loadingClass);results.innerHTML="";if(!hasFocus||data.length==0)return hideResultsNow();if($.browser.msie){$results.append(document.createElement('iframe'));}
results.appendChild(dataToDom(data,q));if(options.autoFill&&($input.val().toLowerCase()==q.toLowerCase()))autoFill(data[0][0]);showResults();}else{hideResultsNow();}};function parseData(data){if(!data)return null;var parsed=[];var rows=data.split(options.lineSeparator);for(var i=0;i<rows.length;i++){var row=$.trim(rows[i]);if(row){parsed[parsed.length]=row.split(options.cellSeparator);}}
return parsed;};function dataToDom(data,q){var ul=document.createElement("ul");var num=data.length;if((options.maxItemsToShow>0)&&(options.maxItemsToShow<num))num=options.maxItemsToShow;for(var i=0;i<num;i++){var row=data[i];if(!row)continue;function highlight(value){var arr=value.split('<span>')
x=arr[0];y=arr[1];return x.replace(new RegExp("("+q+")","gi"),"<strong>$1</strong>")+"<span>"+y+"</span>";}
var li=document.createElement("li");if(options.formatItem){li.innerHTML=highlight(options.formatItem(row,i,num));li.selectValue=row[0];}else{li.innerHTML=highlight(row[0]);li.selectValue=row[0];}
var extra=null;if(row.length>0){extra=[];for(var j=0;j<row.length;j++){extra[extra.length]=row[j];}}
li.extra=extra;ul.appendChild(li);$(li).hover(function(){$("li",ul).removeClass("ac_over");$(this).addClass("ac_over");active=$("li",ul).indexOf($(this).get(0));},function(){$(this).removeClass("ac_over");}).click(function(e){e.preventDefault();e.stopPropagation();selectItem(this)});}
$(ul).mousedown(function(){mouseDownOnSelect=true;}).mouseup(function(){mouseDownOnSelect=false;});return ul;};function requestData(q){if(!options.matchCase)q=q.toLowerCase();var data=options.cacheLength?loadFromCache(q):null;if(data){receiveData(q,data);}else if((typeof options.url=="string")&&(options.url.length>0)){$.get(makeUrl(q),function(data){data=parseData(data);receiveData(q,data);});}else{$input.removeClass(options.loadingClass);}};function makeUrl(q){var sep=options.url.indexOf('?')==-1?'?':'&';var url=options.url+sep+"q="+encodeURI(q);for(var i in options.extraParams){url+="&"+i+"="+encodeURI(options.extraParams[i]);}
return url;};function loadFromCache(q){if(!q)return null;if(cache.data[q])return cache.data[q];if(options.matchSubset){for(var i=q.length-1;i>=options.minChars;i--){var qs=q.substr(0,i);var c=cache.data[qs];if(c){var csub=[];for(var j=0;j<c.length;j++){var x=c[j];var x0=x[0];if(matchSubset(x0,q)){csub[csub.length]=x;}}
return csub;}}}
return null;};function matchSubset(s,sub){if(!options.matchCase)s=s.toLowerCase();var i=s.indexOf(sub);if(i==-1)return false;return i==0||options.matchContains;};this.flushCache=function(){flushCache();};this.setExtraParams=function(p){options.extraParams=p;};this.findValue=function(){var q=$input.val();if(!options.matchCase)q=q.toLowerCase();var data=options.cacheLength?loadFromCache(q):null;if(data){findValueCallback(q,data);}else if((typeof options.url=="string")&&(options.url.length>0)){$.get(makeUrl(q),function(data){data=parseData(data)
addToCache(q,data);findValueCallback(q,data);});}else{findValueCallback(q,null);}}
function findValueCallback(q,data){if(data)$input.removeClass(options.loadingClass);var num=(data)?data.length:0;var li=null;for(var i=0;i<num;i++){var row=data[i];if(row[0].toLowerCase()==q.toLowerCase()){li=document.createElement("li");if(options.formatItem){li.innerHTML=options.formatItem(row,i,num);li.selectValue=row[0];}else{li.innerHTML=row[0];li.selectValue=row[0];}
var extra=null;if(row.length>1){extra=[];for(var j=1;j<row.length;j++){extra[extra.length]=row[j];}}
li.extra=extra;}}
if(options.onFindValue)setTimeout(function(){options.onFindValue(li)},1);}
function addToCache(q,data){if(!data||!q||!options.cacheLength)return;if(!cache.length||cache.length>options.cacheLength){flushCache();cache.length++;}else if(!cache[q]){cache.length++;}
cache.data[q]=data;};function findPos(obj){var curleft=obj.offsetLeft||0;var curtop=obj.offsetTop||0;while(obj=obj.offsetParent){curleft+=obj.offsetLeft
curtop+=obj.offsetTop}
return{x:curleft,y:curtop};}}
jQuery.fn.autocomplete=function(url,options,data){options=options||{};options.url=url;options.data=((typeof data=="object")&&(data.constructor==Array))?data:null;options.inputClass=options.inputClass||"ac_input";options.resultsClass=options.resultsClass||"ac_results";options.lineSeparator=options.lineSeparator||"\n";options.cellSeparator=options.cellSeparator||"|";options.minChars=options.minChars||1;options.delay=options.delay||400;options.matchCase=options.matchCase||0;options.matchSubset=options.matchSubset||1;options.matchContains=options.matchContains||0;options.cacheLength=options.cacheLength||1;options.mustMatch=options.mustMatch||0;options.extraParams=options.extraParams||{};options.loadingClass=options.loadingClass||"ac_loading";options.selectFirst=options.selectFirst||false;options.selectOnly=options.selectOnly||false;options.maxItemsToShow=options.maxItemsToShow||10;options.autoFill=options.autoFill||false;options.width=parseInt(options.width,10)||0;this.each(function(){var input=this;new jQuery.autocomplete(input,options);});return this;}
jQuery.fn.autocompleteArray=function(data,options){return this.autocomplete(null,options,data);}
jQuery.fn.indexOf=function(e){for(var i=0;i<this.length;i++){if(this[i]==e)return i;}
return-1;};$(document).ready(function(){$("a:not(.taget_self)").click(function(){if(!$.browser.msie){$(this).attr('target','_blank')}else{var url=$(this).attr('href');var url_id=url;window.open(url,url_id.length)
return false;}});if($.browser.msie&&parseInt($.browser.version)==6){bookmark=$.readCookie('bookmark');if(bookmark=="set"){$(".dash-line a").html("สนุก!");$(".dash-line a").click(function(){window.Location="http://www.sanook.com";});}else if(bookmark=="user_cancel"){$(".dash-line a").html("ตั้งสนุก! เป็นหน้าแรก");$(".dash-line a").click(function(){if(confirm('ต้องการตั้งสนุกเป็นหน้าแรก หรือไม่?')==true){$.setCookie("bookmark","set",{path:'/',duration:3});this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.sanook.com');alert("ขอบคุณค่ะ ตั้งสนุก! เป็นหน้าแรกเรียบร้อยแล้ว");}else{$.setCookie("bookmark","user_cancel",{path:'/',duration:3});}});}else{$.setCookie('bookmark',"check",{path:'/',duration:3});bookmark=$.readCookie('bookmark');if(bookmark=="check"){if(confirm('ต้องการตั้งสนุกเป็นหน้าแรก หรือไม่? ')==true){$.setCookie("bookmark","set",{path:'/',duration:3});document.body.style.behavior='url(#default#homepage)';document.body.setHomePage('http://www.sanook.com');alert("ขอบคุณค่ะ ตั้งสนุก! เป็นหน้าแรกเรียบร้อยแล้ว");}else{$.setCookie("bookmark","user_cancel",{path:'/',duration:3});$(".dash-line a").html("ตั้งสนุก! เป็นหน้าแรก");$(".dash-line a").click(function(){if(confirm('ต้องการตั้งสนุกเป็นหน้าแรก หรือไม่?')==true){$.setCookie("bookmark","set",{path:'/',duration:3});this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.sanook.com');alert("ขอบคุณค่ะ ตั้งสนุก! เป็นหน้าแรกเรียบร้อยแล้ว");}else{$.setCookie("bookmark","user_cancel",{path:'/',duration:3});}});}}}}});rl) + '&lg=' + this._lg + '" title="'+ this._logout_text +'">' + this._logout_text + '</a>';
			html += '</p>';
			html += '</div>';
			
			html += "<IMG width='0' height='0' alt='' src='"+this._statupdateurl+"?smiid="+this._smiid+"&psnid="+this._psnid+"'>";
			
			
		}
		else if(type == "offline")
		{
			html += '<ul class="login">';
			html += '<li class="regis-mem">';
			html += '<a href="' + this._registerUrl + '?psnid=' + this._psnid + '&autologin=' + this._autologin + '&mail=' + this._mail + '&option=' + this._option + '&surl=' + $.URLEncode(this._surl) + '" title="สมัครสมาชิก">สมัครสมาชิก</a>';
			html += '</li>';
			html += '<li class="login-mem">';
			html += '<a href="' + this._authenurl + '?ie=UTF-8&iframe&psnid=' + this._psnid + '&surl=' + $.URLEncode(this._surl) + '&autologin=' + this._autologin + '&option=' + this._option + '&mail=' + this._mail + '&registerUrl=' + this._registerUrl + '&turl=' + this._turl + '&lg=' + this._lg + '" title="เข้าสู่ระบบ">เข้าสู่ระบบ</a>';
			html += '</li>';
			html += '</ul>';
		}
		
		$("div.search-top").append(html);
	},
		
	RenderControl:function(){
		if(this.checkonlinestatus() == false){
			this.WriteInterface("offline");
			this.WriteLoginFrame();
			var _htmlboxlogin = this.FormRender;
			
			$('li.login-mem a').click(function(){
				var _currentHeight = ($(window).height()/2)-200;
				var _currentWidth = ($(window).width() - 690) / 2;
	
				$.blockUI({
					message: _htmlboxlogin,
					fadeIn: 100,
					fadeOut: 200,
					focusInput: false,
					css:{
						padding: 0,
						margin: 0,
						width: '660px',
						top: _currentHeight,
						left: _currentWidth,
						textAlign: 'center',
						color: '#000',
						border:'',
						backgroundColor: '',
						cursor: 'auto'
					},
					overlayCSS:{
						backgroundColor: '#000',
						opacity: 0.3,
						cursor: 'auto'
					},
					baseZ: 999999
				});
				
				$("#login-frame").attr("src",$(this).attr("href"));
				
				$('.blockOverlay').attr('title','ปิดหน้าต่าง','style','cursor:auto').click($.unblockUI);
				
				return false;
			});
		}
		else{
			this.WriteInterface("online");
		}
	},
	
	checkonlinestatus:function(){
		var smiid = this.getsubcookie("smiservice","SMI_ID");
		var email = this.getsubcookie("smiservice","EMAIL");
		var nickname = this.getsubcookie("smiservice","NICKNAME");
		this._nickname = nickname;
		this._email = email;
		this._smiid = smiid;
		
		if(smiid != "" && email != "" && smiid.length == 36){
			return true;
		}
		else{
			if(this._authentype == "md")
				document.location = $.URLEncode(this._authenurl) + "?psnid=" + this._psnid + "&surl=" + $.URLEncode(this._surl) + "&turl=" + $.URLEncode(this._turl) + "&lg=" + this._lg;
				return false;
		}
	},
	
	smi_online_control_setsmiconfig:function(psnid,surl,lg,authentype){
		if(psnid != "")
			this._psnid = psnid;
			
		if(surl != "")
			this._surl = $.URLEncode(surl.toString());
			
		if(psnid != "")
			this._lg = lg;
			
		if(authentype != "")
			this._authentype = authentype;
			this._turl = "mweb";
	},
	
	getcookie:function(cookiename){
		var cookiestring = "" + document.cookie;
		var index1 = cookiestring.indexOf(cookiename);
		if(index1 == -1 || cookiename == "")
			return "";
		
		var index2 = cookiestring.indexOf(';',index1);
		if(index2 == -1)
			index2 = cookiestring.length;
		
		return unescape(cookiestring.substring(index1 + cookiename.length + 1,index2));
	},
	
	getsubcookie:function(cookiename,cookiesubname){
		var cookiestring = "" + document.cookie;
		var index1 = cookiestring.indexOf(cookiename + "=");
		if(index1 == -1 || cookiename == "")
			return"";
			
		var index2 = cookiestring.indexOf(';',index1);
		if(index2 == -1)
			index2 = cookiestring.length;
		
		var unescapevalue=unescape(cookiestring.substring(index1 + cookiename.length + 1,index2));
		
		if(cookiesubname != ""){
			var subcookieindex1 = unescapevalue.indexOf(cookiesubname);
			if(subcookieindex1 == -1 || cookiesubname == "")
				return "";
				
			var subcookieindex2 = unescapevalue.indexOf('&',subcookieindex1);
			if(subcookieindex2 == -1)
				subcookieindex2 = cookiestring.length;
				
			var cookievalue = unescapevalue.substring(subcookieindex1 + cookiesubname.length + 1,subcookieindex2);
			return cookievalue;
		}
		else{
			return unescapevalue;
		}
	}
};

var Base64 = {
	_keyStr: "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",
	encode:function(input){
		var output="";
		var chr1,chr2,chr3,enc1,enc2,enc3,enc4;
		var i = 0;
		input = Base64._utf8_encode(input);
		while(i < input.length){
			chr1 = input.charCodeAt(i++);
			chr2 = input.charCodeAt(i++);
			chr3 = input.charCodeAt(i++);
			enc1 = chr1 >> 2;
			enc2 = ((chr1 & 3) << 4)|(chr2 >> 4);
			enc3 = ((chr2 & 15) << 2)|(chr3 >> 6);
			enc4 = chr3 & 63;
			if(isNaN(chr2)){
				enc3 = enc4 =64;
			}
			else if(isNaN(chr3)){
				enc4=64;
			}
			
			output = output + this._keyStr.charAt(enc1)+this._keyStr.charAt(enc2) + this._keyStr.charAt(enc3)+this._keyStr.charAt(enc4);
		}
		return output;
	},
	
	decode:function(input){
		var output = "";
		var chr1,chr2,chr3;
		var enc1,enc2,enc3,enc4;
		var i = 0;
		input = input.replace(/[^A-Za-z0-9\+\/\=]/g,"");
		
		while(i < input.length){
			enc1 = this._keyStr.indexOf(input.charAt(i++));
			enc2 = this._keyStr.indexOf(input.charAt(i++));
			enc3 = this._keyStr.indexOf(input.charAt(i++));
			enc4 = this._keyStr.indexOf(input.charAt(i++));
			chr1 = (enc1 << 2)|(enc2 >> 4);
			chr2 = ((enc2&15) << 4)|(enc3 >> 2);
			chr3 = ((enc3&3) << 6)|enc4;
			
			output=output+String.fromCharCode(chr1);
			if(enc3 != 64){
				output = output + String.fromCharCode(chr2);
			}
			
			if(enc4 != 64){
				output = output + String.fromCharCode(chr3);
			}
		}
		output = Base64._utf8_decode(output);
		return output;
	},
	
	_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;
	}
}
