function getFormValues(fname,valFunc)
{
    var str = "";
    var valueArr = null;
    var val = "";
    var cmd = "";
    fobj = document.getElementById(fname);
    for(var i = 0;i < fobj.elements.length;i++)
    {
       switch(fobj.elements[i].type)
       {
           case "text":
                if(valFunc)
                {
                    cmd = valFunc + "(" + 'fobj.elements[i].value' + ")";
                    val = eval(cmd)
                }
                str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
                 break;
           case "select-one":
                str += fobj.elements[i].name + "=" + fobj.elements[i].options[fobj.elements[i].selectedIndex].value + "&";
                break;
           case "checkbox":
                str += fobj.elements[i].name + "=" + escape(fobj.elements[i].checked) + "&";
                break;
           case "textarea":
               // str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
               break;
       }
    }
    str = str.substr(0,(str.length - 1));
    return str;
}

function kXmlHttpGet()
{
    var xmlHttp;
    try
    {
        // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
    }
    catch (e)
    {
        // Internet Explorer
        try
        {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            try
            {
                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e)
            {
              alert("Your browser does not support AJAX!");
              return false;
            }
        }
    }
    return xmlHttp;
}
var kNumAjaxRequests = 0;

function ajaxFunction(ajaxurl,str,ajaxout,fMethod,fId)
{
    kNumAjaxRequests = kNumAjaxRequests + 1;
    var fMethod = (fMethod == null) ? "GET" : fMethod;
    var xmlHttp;
    try
    {
        // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
    }
    catch (e)
    {
        // Internet Explorer
        try
        {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            try
            {
                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e)
            {
              alert("Your browser does not support AJAX!");
              return false;
            }
        }
    }
    xmlHttp.onreadystatechange=function()
    {
        if(xmlHttp.readyState==4)
        {
            kNumAjaxRequests = kNumAjaxRequests - 1;

            if(xmlHttp.status==200)
            {

                var responseText = xmlHttp.responseText;
                if(responseText == '0')
                {
                }
                else
                {
                    var rRow = document.createElement('tr');
                    rRow.id = 'row'+kNumAjaxRequests;
                    rRow.style.backgroundColor = '#fafcfe';
                    rTBody.appendChild(rRow);
                    
                    var rtArray = new Array();
                    rtArray = responseText.split('|');
                    
                    for (var i in rtArray)
                    {
                        var rArray = new Array();
                        rArray = rtArray[i].split('=');
                        
                        var rCell = document.createElement('td');
                        rRow.appendChild(rCell);
                        
                        var cellText = document.createTextNode(rArray[1]);
                        rCell.appendChild(cellText);
                        
                        switch(i)
                        {
                            case '0':
                                break;
                            case '1':
                                rCell.style.textAlign = 'center';
                                break;
                            case '2':
                                rCell.style.textAlign = 'center';
                                break;
    
                        }
                        
                    }
                    opacity(rRow.id, 0, 100, 1000);
                }
                
                if(kNumAjaxRequests == 0)
                {
                    kAjaxRequestAllComplete();
                }
                
                return true;
            }
            else
            {
                ajaxDisplay.innerHTML = "<div class='error'>Error: Invalid response from server</div>"; 
                return true;
            }
        }
    }
    
    switch(fMethod)
    {
        case "GET":
            xmlHttp.open("GET",ajaxurl,true);
            xmlHttp.send(null);
            break;

        case "POST":
            xmlHttp.open("POST",ajaxurl,true);
            xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
            xmlHttp.send(str);
            break;
    }
    return xmlHttp;
}
function kAjaxRequestAllComplete()
{
    document.getElementById("miniLoaderImage").innerHTML = "Done";
}
function submitForm(fId,fAction)
{

    if(rTable.id == "rTable")
    {
//            rTable.removeChild(rTBody);
        rBody.removeChild(rTable);
        rTable = document.createElement('table');
        rTable.id = "rTable";
        rTBody = document.createElement('tbody');
        rTable.appendChild(rTBody);
        kNumAjaxRequests=0;
    }
    else
    {
        rTable.id = "rTable";
        rTable.appendChild(rTBody);  
    }
    rTable.cellSpacing = '0';
    
    var plist = new Array();
    var list = document.getElementById("f_list").value;
    plist = list.split("\n");
    
    document.getElementById("ajaxResults").innerHTML = "";

    document.getElementById("miniLoaderImage").innerHTML = "<img src='ajax-loader2.gif' />";
    document.getElementById("ajaxResults").innerHTML = '<div class="msg"><b>' + (plist.length) + ' keywords</b> found...</div>';

    rTable.className = 'tbl';
    rTable.style.cellPadding = '5px';
    rBody.appendChild(rTable);
    
    var rHeadRow = document.createElement('tr');
    rHeadRow.id = 'rHeadRow';
    rTBody.appendChild(rHeadRow);

    var rHead1 = document.createElement('th');
    rHeadRow.appendChild(rHead1);
    var rHead2 = document.createElement('th');
    rHeadRow.appendChild(rHead2);
    var rHead3 = document.createElement('th');
    rHeadRow.appendChild(rHead3);

    var cellText = document.createTextNode('Keyword');
    rHead1.appendChild(cellText);
    var cellText = document.createTextNode('Google');
    rHead2.appendChild(cellText);
    var cellText = document.createTextNode('Yahoo');
    rHead3.appendChild(cellText);
    
    opacity('rHeadRow', 0, 100, 1000);
    
    var str = getFormValues("fMain","");
    for (var i in plist)
    {
        ajaxFunction(fAction,str+"&f_keyword="+plist[i]+"&f_id=row"+i,"ajaxResults","POST","row"+i);
    }
    return true;        
}

function opacity(obj, start, end, millisec) {

    //speed for each frame
    var speed = Math.round(millisec / 100);
    var timer = 0;

    //determine the direction for the blending, if start and end are the same nothing happens
    if(start > end) {
        for(i = start; i >= end; i--) {
            setTimeout("changeOpac(" + i + ",'" + obj + "')",(timer * speed));
            timer++;
        }
    } else if(start < end) {
        for(i = start; i <= end; i++)
            {
            setTimeout("changeOpac(" + i + ",'" + obj + "')",(timer * speed));
            timer++;
        }
    }
}
//change the opacity for different browsers
function changeOpac(opacity, obj) {
    var object = document.getElementById(obj).style;
    object.opacity = (opacity / 100);
    object.MozOpacity = (opacity / 100);
    object.KhtmlOpacity = (opacity / 100);
    object.filter = "alpha(opacity=" + opacity + ")";
} 