// JScript ÆÄÀÏ

// Copyright(c)2007 Csharpean.com All rights reserved.
// Title : Ajax Client Liberary
// Version : 2.0
// Date : 2007-03-14
// Client : Kormedi.com
// Developer : Yong-Suk, Yang

// History : 1.0 - Functions are defined by kinds of the receiveType.
// History : 2.0 - Seperated functions by kinds of the receiveType are integrated.

var xmlConnecter = false;
var nameSpace = "http://www.kormedi.com/";
var accessUrl;
var receiveType;
var resultText;
var resultCSV;
var resultXML;
var resultJason;
var trimSeperator;

function connectAjax(absolutePath)
{
    if (typeof(accessUrl) == "undefined"  || accessUrl == "")
	accessUrl = window.location.host;
	
	// À©µµ¿ì ActiveXObject È°¼ºÈ­ ¿©ºÎ (ie ¼³Á¤)
	if(window.ActiveXObject) {
	    try{
	        xmlConnecter = new ActiveXObject("Msxml2.XMLHTTP");
	    }catch(e){
	        try{
	            xmlConnecter = new ActiveXObject("Microsoft.XMLHTTP");
	        }catch(e1){
	            return false;
	        }
	    }
	// À©µµ¿ì XmlHttpRequest °¡Á®¿À±â (³Ý½ºÄÉÀÌÇÁ, ÆÄÀÌ¾îÆø½º)
	}else if(window.XMLHttpRequest)
	{
	    xmlConnecter = new XMLHttpRequest();
	}else{
        return false;
	}
   
    try 
    {
        xmlConnecter.open("POST", "http://"+accessUrl+absolutePath, true);
        return true;
    }  
    catch (e)
    {
        alert("Á¢±Ù±ÇÇÑÀÌ ¾ø½À´Ï´Ù.");
        return false;
    }
}

function commandAjax(receiveType, functionName, absolutePath, methodName, argsTag)
{
    if (absolutePath == "" || !connectAjax(absolutePath))
        return;
    if (receiveType != "")
        this.receiveType = receiveType;

    xmlConnecter.onreadystatechange = function (){ executeAjax(functionName); };

    source = '<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body>';
    source += '<' + methodName + ' xmlns="' + nameSpace + '">' + argsTag + '</' + methodName + '></soap:Body></soap:Envelope>';
    xmlConnecter.setRequestHeader("Content-Type", "text/xml; charset=UTF-8");
    xmlConnecter.setRequestHeader("Content-Length", source.length);
    xmlConnecter.setRequestHeader("SOAPAction", nameSpace+methodName);
    xmlConnecter.send(source);

    trimSeperator = methodName+"Result";
    //alert(source);
}

function executeAjax(functionName)
{
    if(xmlConnecter.readyState == 4 )
    {
        if(xmlConnecter.status == 200)
        {
            resultText = xmlConnecter.responseText;
            
            
            if (trimSeperator.length > 0)
            {
                resultText = resultText.split(trimSeperator)[1];
                resultText = resultText.substring(1, resultText.length-2);
            }
            
            switch (receiveType)
            {
                case "XML":
                    resultXML = xmlConnecter.responseXML;
                    break;
                case "CSV":
                    resultCSV = resultText.split("¢¯");            
                    break;
                case "Jason":
                    try{
						resultJason = eval('(' + resultText + ')');
	                    break;
				    }catch(e){}
            }
            
            if (functionName == "")
                alert(resultText);
            else
                eval(functionName);
        }
		else
		{
			switch (xmlConnecter.status)
			{
			    case 500:
			        alert("Çü½ÄÀÌ ÀÏÄ¡ÇÏÁö ¾Ê½À´Ï´Ù.");
			        break;
			    default:
        			alert("Connection Error : " + xmlConnecter.status);
			        break;
			}
		}
    }
}

function commandAhah(functionName, absolutePath, source)
{
    if (absolutePath == "" || !connectAjax(absolutePath))
        return;
    receiveType = "Jason";
    
    xmlConnecter.onreadystatechange = function (){ executeAjax(functionName); };

    xmlConnecter.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    xmlConnecter.setRequestHeader("Content-Length", source.length);
    xmlConnecter.send(source);

    trimSeperator = "";
    //alert(source);
}


var hanLetter = new Array();
hanLetter[0] = '¤¡¤¢¤¤¤§¤¨¤©¤±¤²¤³¤µ¤¶¤·¤¸¤¹¤º¤»¤¼¤½¤¾';
hanLetter[1] = '¤¿¤À¤Á¤Â¤Ã¤Ä¤Å¤Æ¤Ç¤È¤É¤Ê¤Ë¤Ì¤Í¤Î¤Ï¤Ð¤Ñ¤Ò¤Ó';
hanLetter[2] = ' ¤¡¤¢¤£¤¤¤¥¤¦¤§¤©¤ª¤«¤¬¤­¤®¤¯¤°¤±¤²¤´¤µ¤¶¤·¤¸¤º¤»¤¼¤½¤¾';


function seperateHangul(hangul)
{
	var result = hangul.substring(0, hangul.length-1);
	var temp = hangul.charCodeAt(hangul.length-1);
	if (temp >= 0xAC00 && temp <= 0xD7A3)
	{
        if ((temp-0xAC00)%28 > 0)
        {
            //like search!
            result += String.fromCharCode(temp);
        }
        else
        {
            // between search!
            //result += String.fromCharCode(temp);
            result += String.fromCharCode(temp+27);
        }
    }
    else if (temp > 0x3130 && temp < 0x3164)
    {
        while(hanLetter[0].indexOf(String.fromCharCode(temp)) < 0)
            temp--;
        temp = hanLetter[0].indexOf(String.fromCharCode(temp))*588 + 0xAC00

        // between search!
        //result += String.fromCharCode(temp);
        result += String.fromCharCode(temp+587);
    }
    else
        result += hangul.substring(hangul.length-1, hangul.length);

    //alert(result);
    return result;
}



function objById(id)
{
    var obj = document.getElementById(id);
    if (obj == null)
        alert("Fail to find the ["+id+"] Element!");
    else
        return obj;
}

function objByName(name, idx)
{
    var obj = document.getElementsByName(name);
    if (obj.length > 0)
    {
        if (typeof(idx) == "undefined")
            idx = 0;
        return obj[idx];
    }
    else
        alert("Fail to find the ["+name+"] Elements!");
}

function objByTag(tag, idx)
{
    var obj = document.getElementsByTagName(tag);
    if (obj.length > 0)
    {
        if (typeof(idx) == "undefined")
            idx = 0;
        return obj[idx];
    }
    else
        alert("Fail to find ["+tag+"] Elements!");
}

function hideORshow(obj)
{
    if (obj.style.display == "none")
        obj.style.display = "block";
    else
        obj.style.display = "none";
}

function highlight(obj, color)
{
    if (typeof(color) == "undefined")
        color = "#D9E4F2";
    if (color.indexOf('#') < 0)
        color = "#" + color;

    if (obj.style.background == color.toLowerCase())
        obj.style.background = "";
    else
        obj.style.background = color;
}

function offsetLeft(obj)
{
    var curLeft = 0;
    while(obj.offsetParent)
    {
        curLeft += obj.offsetLeft;
        obj = obj.offsetParent;
    }
    return curLeft;
}

function offsetTop(obj)
{
    var curTop = 0;
    while(obj.offsetParent)
    {
        curTop += obj.offsetTop;
        obj = obj.offsetParent;
    }
    return curTop;
}

function diseaseInfo(diseaseName,flag)
{
    var obj = objById("popupLayer");
    obj.style.pixelTop = event.clientY + document.body.scrollTop;
    obj.style.pixelLeft = event.clientX + document.body.scrollLeft;
    obj.style.display = "block";
    obj.firstChild.src = "/care/wndDisease.aspx?name=" + diseaseName + "&flag=" + flag;
}