var utils=new Object();utils.each=function(list,func){for(var i=0;i<list.length;i++){ret=func.call(this,list[i],i)
if(ret==false||ret=='break')
return ret;}}
utils.map=function(data,func){var result=[]
for(var i=0;i<data.length;i++){var item=data[i];result.push(func.call(this,item,i));}
return result;}
utils.filter=function(data,func){var result=[];for(var i=0;i<data.length;i++){var item=data[i];if(func.call(this,item,i))
result.push(item);}
return result;}
utils.every=function(data,func){for(var i=0;i<data.length;i++){var item=data[i];if(!func.call(this,item,i))
return false;}
return true;}
utils.any=function(data,func){for(var i=0;i<data.length;i++){var item=data[i];if(func.call(this,item,i))
return true;}
return false;}
utils.format=function(tmpl,ns){function fn(w,g){if(g in ns)
return ns[g];return'';};return tmpl.replace(/%\(([A-Za-z0-9_|.]+)\)/g,fn);}
utils.element=function(id){if(!id){log(id);trace();return null;}
var result=id;if(typeof id=='string')
result=document.getElementById(id);return result;}
utils.hasClass=function(elm,cls){var elm=utils.element(elm);if(!elm){log(elm);trace();return false;}
return elm.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));}
utils.addClass=function(elm,cls){var elm=utils.element(elm);if(!elm){log(elm);trace();return;}
if(!utils.hasClass(elm,cls))
elm.className+=" "+cls;}
utils.removeClass=function(elm,cls){var elm=utils.element(elm);if(!elm){log(elm);trace();return;}
if(utils.hasClass(elm,cls)){var reg=new RegExp('(\\s|^)'+cls+'(\\s|$)');elm.className=elm.className.replace(reg,' ');}}
utils.hide=function(elm){var elm=utils.element(elm);if(!elm){log(elm);trace();return;}
elm.style.display='none';}
utils.show=function(elm){var elm=utils.element(elm);if(!elm){log(elm);trace();return;}
elm.style.display='';}
utils.toggle=function(elm){var elm=utils.element(elm);if(!elm){log(elm);trace();return;}
if(elm.style.display=='none')
elm.style.display='';else
elm.style.display='none';}
utils.build_args=function(args){var buf=[];for(var key in args){buf.push(key+'='+args[key]);}
return buf.join('&');}
utils.url_param=function(url,varName){var sURL=url;var urlArray=sURL.split("?");if(urlArray.length<2)
return"";var paramArray=urlArray[1].split("&");var paramStr="";for(i=0;i<paramArray.length;i++)
{paramStr=paramArray[i].split("=");if(paramStr.length<2)
continue;if(paramStr[0]==varName)
return paramStr[1];}
return"";}
utils.copy_url=function(input_elm)
{var cUrl=utils.element(input_elm).value;window.clipboardData.setData('text',cUrl);alert("Á´½ÓÒÑ¸´ÖÆ");}
utils.contains=function(list,item){ret=utils.each(list,function(i){if(i==item)
return'break';});if(ret=='break')
return true;return false;}
utils.attach_event=function(oTarget,sEventType,fnHandler){if(oTarget.attachEvent){oTarget.attachEvent("on"+sEventType,fnHandler);}else if(oTarget.addEventListener){oTarget.addEventListener(sEventType,fnHandler,false);}else{oTarget["on"+sEventType]=fnHandler;}}
utils.remove_event=function(oTarget,sEventType,fnHandler){if(oTarget.detachEvent){oTarget.detachEvent("on"+sEventType,fnHandler);}else if(oTarget.removeEventListener){oTarget.removeEventListener(sEventType,fnHandler,false);}else{oTarget["on"+sEventType]=null;}}
utils._isDomReady=false;utils._domReadyListener=[];utils._doReady=function(){if(!utils._isDomReady){utils._isDomReady=true;if(utils._domReadyListener){utils.each(utils._domReadyListener,function(fn){fn();});utils._domReadyListener=[];}
if(Browser.isMozilla)
document.removeEventListener("DOMContentLoaded",utils._doReady,false);}}
utils.onready=function(callback){if(utils._isDomReady){callback();return;}
utils._domReadyListener.push(callback);if(Browser.isMozilla){document.addEventListener("DOMContentLoaded",utils._doReady,false);}
else if(Browser.isIE&&window==top){(function(){try{if(Browser.isIE||document.readyState!="loaded"&&document.readyState!="complete")
document.documentElement.doScroll("left");}catch(error){return setTimeout(arguments.callee,0);}
utils._doReady();})();}
utils.attach_event(window,'load',utils._doReady);}
utils.getElementInBody=function(id,tagName,insertFirst,parentNodeID,className,initCSSText){var e=utils.element(id);if(!e){tagName=(!tagName)?"div":tagName;e=document.createElement(tagName);e.id=id;var parentNode=(!parentNodeID)?document.body:utils.element(parentNodeID);if(insertFirst)
parentNode.insertBefore(e,parentNode.firstChild);else
parentNode.appendChild(e);e.className=className?className:"";e.style.cssText=initCSSText?initCSSText:"";}
parentNode=null;return e;}

