/**
* @author daum
*/
var _ua = window.navigator.userAgent.toLowerCase();
var UI = {};

Object.extend=function(a, b){
  for (var property in b) a[property] = b[property];
  return a;
};

var browser = {
    model: _ua.match(/(sonyericssonx1i|ipod|iphone)/) ? _ua.match(/(sonyericssonx1i|ipod|iphone)/)[0] : "",
	skt : /msie/.test( _ua ) && /nate/.test( _ua ),
	lgt : /msie/.test( _ua ) && /([010|011|016|017|018|019]{3}\d{3,4}\d{4}$)/.test( _ua ),
	opera : /opera/.test( _ua ) || /opera mobi/.test( _ua ),
	ipod : /webkit/.test( _ua ) && /\(ipod/.test( _ua ) ,
	iphone : /webkit/.test( _ua ) && /\(iphone/.test( _ua )
};

// Scroll Button _ FB
function setNav() {
	if(!document.getElementById)	return false;
	if(!document.getElementById('scrollNav'))	return false;

	var nav = document.getElementById('scrollNav');
	var prev = getElementsByClassName(document, "btGoPrev");

	if (hasScroll()) {
		if(browser.skt || browser.lgt) { showScroll(nav); }
		else { hideScroll(nav); }
	} else { hideScroll(nav); }
}

function moveNav(dir, amount) {
	if (amount == undefined) amount = 250;

	switch (dir)
	{
		case 'top':
			window.scrollTo(0,0);
			break;
		case 'up':
			window.scrollTo(0, document.documentElement.scrollTop - amount);
			break;
		case 'down':
			window.scrollTo(0, document.documentElement.scrollTop + amount);
			break;
		defalut:
			break;
	}
}

function hasScroll(){
	var screenHeight = document.documentElement.scrollHeight;
	var clientHeight = document.documentElement.clientHeight;
	return clientHeight < screenHeight ? true : false;
}

function showScroll(nav){
	var offset = 223;

	nav.style.display = "";
	nav.style.top = (document.documentElement.scrollTop + offset) + 'px';
}

function hideScroll(nav){
	nav.style.display = "none";
}

function getElementsByClassName(_element, className){
	var elem = typeof _element == "string" ? document.getElementById(_element) : _element;

	var _all = elem.getElementsByTagName("*");
	var element = [];
	for(var i=0,len=_all.length; i<len; i++) {
		if(_all[i].className == className) element.push(_all[i]);
	}
	return (element.length > 0) ? element : null;
}

if (window.attachEvent)	window.attachEvent("onscroll", setNav);
else	window.addEventListener("scroll", setNav, false);
window.setInterval(setNav, 100);


function setCookie(name,value,expires){
	var d = new Date();	var day="";
	if(expires){
		d.setDate(d.getDate()+expires);
		day = "expires="+d.toGMTString()+";";
	}
	document.cookie = name+"="+escape(value)+"; path=/;"+day;
}

function getCookie(name){
	name += "=";
	cookie = document.cookie + ";";
	start = cookie.indexOf(name);
	if (start != -1){
		end = cookie.indexOf(";",start);
		return unescape(cookie.substring(start + name.length, end));
	}
	return "";
}

function delCookie(name){
	document.cookie = name + "=;expires=Fri, 31 Dec 1987 23:59:59 GMT;";
}

function selectMyArea(areaCode){
	var myArea = [];
	for(var i=2 ; i<=4 ; i++){
		var myreg = getCookie('MYREG'+i);
		if(areaCode == myreg){
			location.href = location.href = '/?pageId=3008&type=already';
			return;
		}
	myArea.push({MYREG:myreg});
	}

	var tmp = 2;
	var inputSuccess = false;
	for(var obj in myArea){
		var obj = myArea[obj];
		if((obj.MYREG == "" || obj.MYREG == "-/-") && !inputSuccess){
			setCookie('MYREG'+tmp, areaCode, 7, '/');
			location.href = location.href = '/?pageId=3008&type=success';
			inputSuccess = true;
			return;
		}
		tmp++;
	}

	if(!inputSuccess) location.href = location.href = '/?pageId=3008&type=full';
	return false;
}

function deleteMyArea(areaCode){
	var tmp = 0;
	for(var i=2 ; i<=4 ; i++){
		try {var tmp_id = document.getElementById('myWeatherArea').getElementsByTagName('li')[tmp].getAttribute('id'); } catch(e){ var tmp_id = ""; };
		if(tmp_id == areaCode){
			setCookie('MYREG'+i, '-/-', 7, '/');
		} else {
			if(tmp_id == "") delCookie('MYREG'+i);
			else setCookie('MYREG'+i, tmp_id, 7, '/');
		}
		tmp++;
	}
	window.location.href = '/?pageId=3008';
	return false;
}

function scrolling(objId,sec1,sec2,speed,height){
	this.objId=objId;
	this.sec1=sec1;
	this.sec2=sec2;
	this.speed=speed;
	this.height=height;
	this.h=0;
	this.div=document.getElementById(this.objId);
	this.htmltxt=this.div.innerHTML;
	this.div.innerHTML=this.htmltxt+this.htmltxt;
	this.div.isover=false;
	this.div.onmouseover=function(){this.isover=true;}
	this.div.onmouseout=function(){this.isover=false;}
	var self=this;
	this.div.scrollTop=0;
	window.setTimeout(function(){self.play()},this.sec1);
}
scrolling.prototype={
	play: function(){
		var self=this;
		if(!this.div.isover){
			this.div.scrollTop+=this.speed;
			if(this.div.scrollTop>this.div.scrollHeight/2) this.div.scrollTop=0;
			else {
				this.h+=this.speed;
				if(this.h>=this.height){
					if(this.h>this.height|| this.div.scrollTop%this.height !=0){
						this.div.scrollTop-=this.h%this.height;
					}
					this.h=0;
					window.setTimeout(function(){self.play()},this.sec1);
					return;
				}
			}
		}
		window.setTimeout(function(){self.play()},this.sec2);
	}
};

function mapLayoutInitForsafari(){
	var widthTmp = $(window).width();
	if(widthTmp > 320){
		$('#mwList').addClass('vertical');
		$('#myWeather').width(144);
	} else { 
		$('#mwList').removeClass('vertical');
		$('#myWeather').width(288);
	}
}

UI.Ajax = function(options) {
	this.options={
		method:'GET',
		param:'',
		onComplete:null,
		onError:null,
		asynchronous: true,
		contentType: 'application/x-www-form-urlencoded',
		encoding:'UTF-8'
	}
	Object.extend(this.options, options);
	if(this.options.url) this.send();
};
UI.Ajax.prototype={
	getReq:function(){
		var req=null;
		try { req = new XMLHttpRequest(); }
		catch(e)
		{
			try { req = new ActiveXObject("Msxml2.XMLHTTP"); }
			catch(e)
			{
				try { req = new ActiveXObject("Microsoft.XMLHTTP"); }
				catch(e) { }
			}
		}
		return req;
	},
	send:function(){
		this.req = this.getReq();	
		var op=this.options;
		var url=op.url;
		var param=op.param;
		var method=op.method.toUpperCase();
		if(method=='GET' && param) url=url+"?"+param;
		this.req.open(method, url, op.asynchronous);
		this.req.setRequestHeader('Content-Type', op.contentType+';charset='+op.encoding);
		
		var self = this;
		this.req.onreadystatechange = function() { self.onStateChange.call(self) }
		this.req.send(method=='POST'?param:null);
	},
	onStateChange: function() {
		if(this.req.readyState==4)
		{
			if(this.req.status=="200") this.options.onComplete(this.req);
			else
			{
				if(this.options.onError) this.options.onError(this.req);
				else alert("서버에러입니다! 잠시후에 다시 시도하세요! "+this.req.status);
			}				
		}
	}
};

UI.addEvent=function(object, type, listener) {	
	if(object.addEventListener) {if(type=='mousewheel')type='DOMMouseScroll'; object.addEventListener(type, listener, false)}
	else { object.attachEvent("on"+type, listener); }
};
try {document.execCommand("BackgroundImageCache",false,true);}catch(e){}