//	String.prototype È®Àå
//	by nom
//
//	
//	### String.trim() ###
//
//	"   test   ".trim()  // "test"
//
//
//	### String.format(arg1,arg2, .... ) ###	
//
//	var test = "{0},{1}";
//	var result = test.format("value1","value2");  //result ´Â "value1,value2" ·Î ¼³Á¤ µË´Ï´Ù.
//
Object.extend(String.prototype, {

trim: function() {
	return this.replace( /(^\s*)|(\s*$)/g, '' ) ;
},

format_arr: function(args) {
	var result = this;
	var hasargs = (args.length>0);

	if(!hasargs) return result;

	for(var i=0;i<args.length;i++){
		result = result.replace(new RegExp("\\{" + i +"}","ig"),args[i]);
	}

	return result;
},

format: function() {
	var result = this;
	var hasargs = (arguments.length>0);

	if(!hasargs) return result;


	if(arguments.length==1 && arguments[0].constructor==Array)
	{
		arguments = arguments[0];
	}


	for(var i=0;i<arguments.length;i++){
		result = result.replace(new RegExp("\\{" + i +"}","ig"),arguments[i]);
	}

	return result;
},
  
parseDate : function() {
	var vardatestring = this;
	var targetyear,targetmonth,targetdate,targethour,targetminutes,targetsecond,targetms

	var nowdate = new Date();

	vardatestring = vardatestring || "";

	var datepart = vardatestring.split(" ");

	var datepartfordate = datepart[0] || "";
	var datepartfortime = datepart[1] || "";

	var arrdate = datepartfordate.split("-");
	var arrtime = datepartfortime.split(":");

	targetyear = (arrdate[0] || "")==""?nowdate.getFullYear():arrdate[0];
	targetmonth = ((arrdate[1] || (nowdate.getMonth() + 1)) -1);
	targetdate = arrdate[2] || nowdate.getDate();

	targethour = (arrtime[0] || "")==""?0:arrtime[0];
	targetminutes = arrtime[1] || 0;
	targetsecond = arrtime[2] || 0;
	targetms = 0;

	var targetdate = new Date(targetyear,targetmonth,targetdate,targethour,targetminutes,targetsecond,targetms);

	return targetdate;
}

});

//	window.prototype È®Àå
//	by nom
//
//	
//	### window.isIE ###
//
//	IE ÆÇº° true|false ¹ÝÈ¯
//
Object.extend(window, {

isIE : (typeof(window.event)=="object")

});

var $bindvalues = function(objnameindex)
{

	var argument = $bindvalues.arguments;
	var objname = objnameindex;
	var objindex = 0;
	var hasindex = false;

	if(argument.length<2) return;

	var postionindex = objname.indexOf(",");

	if(postionindex>0){
		objname = objnameindex.substring(0,postionindex);
		objindex = objnameindex.substring(postionindex+1);
		hasindex = true;
	}

	var objs = document.getElementsByName(objname);
	var objtarget = null;
	
	if(objs.length==0) return;

	var objtemp = objs[objindex];
	var objtype = objtemp.type;
	var isselecttag = false;
	var isvalidobject = true;
	
	switch(objtype.toLowerCase()){
		case "select" :
		case "select-one" :
		case "select-multi" :
			objtarget = objs[objindex].options;
			isselecttag = true;
			break;
		case "radio" :
		case "checkbox" :
			if(hasindex){
				objtarget = new Array();
				objtarget.push(objs[objindex]);
			}else{
				objtarget = objs;
			}
			break;
		default :
			isvalidobject = false;
			break;
	}

	if(!isvalidobject) return;

	var issamevalue = false;

	for(var i=0;i<objtarget.length;i++){
		for(var j=1;j<argument.length;j++){
			issamevalue = (objtarget[i].value==argument[j])
			if(issamevalue){
				switch(objtype){
					case "select" :
					case "select-one" :
					case "select-multi" :
						objtarget[i].selected = issamevalue;
						break;
					case "radio" :
					case "checkbox" :
						objtarget[i].checked = issamevalue;
						break;
						
				}
			 }
		}
	}
}

var $getvalues = function(objnameindex , isalldata)
{

	isalldata = isalldata || false;
	
	var objname = objnameindex;
	var objindex = 0;
	var ismultiple = false;
	var retarr = new Array();

	var postionindex = objname.indexOf(",");

	if(postionindex>0){
		objname = objnameindex.substring(0,postionindex);
		objindex = objnameindex.substring(postionindex+1);
	}

	var objs = document.getElementsByName(objname);
	var objtarget = objs;
	
	if(objs.length==0) return;

	var objtemp = objs[0];
	var objtype = objtemp.type;
	var isvalidobject = true;
	
	switch(objtype.toLowerCase()){
		case "select" :
		case "select-one" :
		case "select-multiple" :
			ismultiple = (objtype.multiple || false);
			objtarget = objs[objindex].options;
			break;
		case "radio" :
			ismultiple = false;
			break;
		case "checkbox" :
			ismultiple = true;
			break;
		default :
			isvalidobject = false;
			break;
	}

	if(!isvalidobject) return;

	for(var i=0;i<objtarget.length;i++){
		if(isalldata || objtarget[i].selected || objtarget[i].checked) retarr.push(objtarget[i].value);
	}

	if(retarr.length==0) retarr.push("");
	
	retarr.getValue = function(){return this.join(",")}

	return retarr;
}


var $ceobj = function(target_dom,tag,id,name,allowtransparency){ 
	
	target_dom = target_dom || document;
	
	allowtransparency = allowtransparency || false;
	var obj = null;
	tag = tag || "div";
	id = id || "";
	name = name || id;

	var objtag = tag;

	if(typeof(window.event)!="undefined"){
		
		if(allowtransparency && tag=="iframe"){
			objtag = id.trim()=="<iframe allowtransparency='true'>"? tag :'<{0} id="{1}" name="{2}" allowtransparency="true">';
		}else{
			objtag = id.trim()==""? tag :'<{0} id="{1}" name="{2}">';
		}
		
		objtag = objtag.format(tag,id,name);
	}
	
	obj = target_dom.createElement(objtag);
	
	if(id.trim()!="") obj.setAttribute("id",id);
	if(name.trim()!="") obj.setAttribute("name",name);

	return obj;
}



var $ce = function(tag,id,name,allowtransparency){ 
	
	var is_child_window = !(self==parent);
	
	return $ceobj((is_child_window?parent.document:document),tag,id,name,allowtransparency);
}


function $createajax(url,params,fn_oncomplete,fn_onfailure,is_debug){

	is_debug = is_debug || false;
	
	params = params || {};
	
	pars = "";
	
	for(key in params){
		pars +=key+"="+escape(params[key])+"&";
	}

	pars+="dummy=" + new Date();
	
	if(is_debug){
		window.open(url+"?"+pars);
		return;
	}
	
	return new Ajax.Request(
	url, 
	{
		method: 'get', 
		parameters: pars, 
		onComplete: fn_oncomplete,
		onFailure : fn_onfailure
		
	});
}

function $createajax_xml_util(originalrequest){
	this.originalrequest = originalrequest;
	this.xmlroot = originalrequest.responseXML.documentElement;
}

$createajax_xml_util.prototype = {
	gettext : function(node){
		if(node==null) return "";
		return window.isIE?node.text:node.textContent;
	},

	getxmlroot : function(){
		if(this.xmlroot==null){
			alert("xml root ¸¦ Ã£À» ¼ö¾ø½À´Ï´Ù.[getxmlroot]");
		}

		return this.xmlroot;
	},

	getelements : function(parent_node , node_name){
		return parent_node.getElementsByTagName(node_name);
	},

	gettextelement : function(nodename){
		var objresult = this.getelements(this.xmlroot ,nodename);
		var textelement = this.gettext(objresult[0].firstChild);

		return textelement;
	}
}
