
function GetXmlHttpObject() {

    var xmlHttp=null;
    try {
 	   // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
    }
    catch (e) {
    // Internet Explorer
        try {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    }

    return xmlHttp;
}

function toggleCategory(cid) {

    //alert("toggleCategory("+cid+")");
   	var list = trim(document.getElementById("list-"+cid).innerHTML);
	//alert(list);
    if(list == "")
    {
        var xmlHttpLocal=GetXmlHttpObject()

        if (xmlHttpLocal==null) {
            alert ("Cannot create xmlHttp object!");
            return false;
        }
        
        xmlHttpLocal.onreadystatechange=function() {
             //alert("onreadystatechange");
            if(xmlHttpLocal.readyState == 4) 
            {
                var success = trim(xmlHttpLocal.responseText);
                //alert("success: "+success);
                var resultstring = "<table BORDER=0 CELLPADDING=0 CELLSPACING=0><tr><td colspan=\"2\">Add to category</td></tr><tr><td></td><td></td></tr><tr><td><b>Original Word</b></td><td><b>Alternate Word</b></td></tr><tr><td><input type=\"text\" id=\"original-"+cid+"\" size=\"25\" value=\"\"></td><td><input type=\"text\" id=\"alternate-"+cid+"\" size=\"25\" value=\"\"></td></tr><tr><td></td><td></td></tr><tr><td></td><td><a href=\"\" onclick=\"return submitAddWord("+cid+")\">Add to Category</a></td></tr></table>";
                
                if (success != "NOUPDATES") 
                {
                    
                    var portions = success.split("\n");
                    if(portions.length > 4)
                    {
                        
                        var origarray = portions[2].split("=");
                        var altarray = portions[3].split("=");
                        var origtext = "Original Text";
                        var alttext = "Alternate Text";
                        if(origarray.length == 2 && altarray.length == 2 && origarray[1] != "" && altarray[1] != "")
                        {
                            origtext = origarray[1];
                            alttext = altarray[1];
                            resultstring = "<table BORDER=0 CELLPADDING=0 CELLSPACING=0><tr><td colspan=\"2\">Add to category</td></tr><tr><td></td><td></td></tr><tr><td><b>"+origtext+"</b></td><td><b>"+alttext+"</b></td></tr><tr><td><input type=\"text\" id=\"original-"+cid+"\" size=\"25\" value=\"\"></td><td><input type=\"text\" id=\"alternate-"+cid+"\" size=\"25\" value=\"\"></td></tr><tr><td></td><td></td></tr><tr><td></td><td><a href=\"\" onclick=\"return submitAddWord("+cid+")\">Add to Category</a></td></tr></table>";
                        }
                        
                        resultstring += "<table BORDER=0 CELLPADDING=0 CELLSPACING=0 bgcolor=\"#FFFFFF\" width=400>";
                        resultstring += "<tr><td width=200><b>"+origtext+"</b></td><td width=200><b>"+alttext+"</b></td></tr>";
                        for(i=4; i < portions.length; i++)
                        {
                            var words = portions[i].split("=");
                            if(words.length == 2)
                            {
                                resultstring += "<tr><td width=200>"+words[0]+"</td><td width=200>"+words[1]+"</td></tr>";
                            }
                        }
                        resultstring += "</table>";
                    }
                    
                }
                document.getElementById("list-"+cid).innerHTML = resultstring;
            }
        };
            
        xmlHttpLocal.open('GET', 'http://vocabviewer.com/getWords.php?cid='+cid+'&date=0', true);
        xmlHttpLocal.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        xmlHttpLocal.send("");

        return false;
    }
    else
    {
        document.getElementById("list-"+cid).innerHTML = "";
    }
    
    return false;
}

function submitAddWord(cid) {

    var original = trim(document.getElementById("original-"+cid).value);
    var alternate = trim(document.getElementById("alternate-"+cid).value);
	//alert(original)
    if(original == "")
    {
        alert("Please enter an original word");
    }
    else if(alternate == "")
    {
        alert("Please enter an alternate word");
    }
    else
    {
        var xmlHttpLocal=GetXmlHttpObject();

        if (xmlHttpLocal==null) {
            alert ("Cannot create xmlHttp object!");
            return false;
        }
        
        xmlHttpLocal.onreadystatechange=function() {
             //alert("onreadystatechange");
            if(xmlHttpLocal.readyState == 4) 
            {
                var success = trim(xmlHttpLocal.responseText);
                //alert("success: "+success);
                if (success == "UPLOAD RECIEVED") 
                {
                    toggleCategory(cid); 
                    toggleCategory(cid); 
                }
                else
                {
                    alert("There was a problem with the upload.");
                }
            }
        };
            
        xmlHttpLocal.open('POST', 'http://vocabviewer.com/addWords.php', true);
        xmlHttpLocal.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        
        xmlHttpLocal.send("cid="+cid+"&original= &alternate= &content="+original+"="+alternate+"&devicename=webpage&guid=");

        return false;
    }
    
    return false;
}

function submitBulkAdd()
{
    //alert("submitBulkAdd");
    var category = trim(document.getElementById("newcategorybulk").value);
    var original = trim(document.getElementById("neworiginalbulk").value);
    var alternate = trim(document.getElementById("newalternatebulk").value);
	var content = trim(document.getElementById("contentofwords").value);
     
    var contentarray = content.split("\n");
    var parsedcontent = "";
    var j = 0;
    for(i = 0; i < contentarray.length; i++)
    {
        var wordlist = contentarray[i].split("=");
        if(wordlist.length == 2)
        {
            if(j > 0)
            {
                parsedcontent += "!$!";
            }
            parsedcontent += wordlist[0] + "=" + wordlist[1];
            j++;
        }
    }
    
    if(category == "")
    {
        alert("Please enter a category");
    }
    else if(original == "")
    {
        alert("Please enter an original word");
    }
    else if(alternate == "")
    {
        alert("Please enter an alternate word");
    }
    else if(content == "" || parsedcontent == "")
    {
        alert("Please enter some word pairs in the format of \noriginal text = alternate text\nwith one word pair on each line.");
    }
    else
    {
        var xmlHttpLocal=GetXmlHttpObject();

        if (xmlHttpLocal==null) {
            alert ("Cannot create xmlHttp object!");
            return false;
        }
        
        xmlHttpLocal.onreadystatechange=function() {
            if(xmlHttpLocal.readyState == 4) 
            {
                document.getElementById("newcategorybulk").value = "";
                document.getElementById("neworiginalbulk").value = "";
                document.getElementById("newalternatebulk").value = "";
                document.getElementById("contentofwords").value = "";
            
                var success = trim(xmlHttpLocal.responseText);
                refreshFullPage();
            }
        };
            
        xmlHttpLocal.open('POST', 'http://vocabviewer.com/addWords.php', true);
        xmlHttpLocal.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        xmlHttpLocal.send("category="+category+"&original="+original+"&alternate="+alternate+"&content="+parsedcontent+"&devicename=webpage&guid=");

        return false;
    }
    
    return false;
}

function submitAddCategory() {

    var category = trim(document.getElementById("newcategory").value);
    var original = trim(document.getElementById("neworiginal").value);
    var alternate = trim(document.getElementById("newalternate").value);
	
    if(category == "")
    {
        alert("Please enter a category");
    }
    else if(original == "")
    {
        alert("Please enter an original word");
    }
    else if(alternate == "")
    {
        alert("Please enter an alternate word");
    }
    else
    {
        var xmlHttpLocal=GetXmlHttpObject();

        if (xmlHttpLocal==null) {
            alert ("Cannot create xmlHttp object!");
            return false;
        }
        
        xmlHttpLocal.onreadystatechange=function() {
             //alert("onreadystatechange");
            if(xmlHttpLocal.readyState == 4) 
            {
                var success = trim(xmlHttpLocal.responseText);
                //alert("success: "+success);
               refreshFullPage();
              /*  if (success == "UPLOAD RECIEVED") 
                {
                     
                }
                else
                {
                    alert("There was a problem with the upload.");
                } */
            }
        };
            
        xmlHttpLocal.open('POST', 'http://vocabviewer.com/addWords.php', true);
        xmlHttpLocal.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        
        xmlHttpLocal.send("category="+category+"&original="+original+"&alternate="+alternate+"&content= &devicename=webpage&guid=");

        return false;
    }
    
    return false;
}

function refreshFullPage()
{
	var sURL = unescape(window.location.pathname);
	window.location.replace( sURL );
}

function trim(s) {
    if((s==null)||(typeof(s)!='string')||!s.length) {
        return '';
    }
    return s.replace(/^\s+|\s+$/g, '') ;
}

function isNumeric(vTestValue)
{
	// put the TEST value into a string object variable
	var sField = new String(Trim(vTestValue));
	
	// check for a length of 0 - if so, return false
	if(sField.length==0) { return false; }
	else if(sField.length==1 && (sField.charAt(0) == '.' || sField.charAt(0) == ',' || (sField.charAt(0) == '-'))) { return false; }
	
	// loop through each character of the string
	for(var x=0; x < sField.length; x++) {
		// if the character is < 0 or > 9, return false (not a number)
		if((sField.charAt(x) >= '0' && sField.charAt(x) <= '9') || sField.charAt(x) == '.' || sField.charAt(x) == ',' || (sField.charAt(x) == '-' && x==0)) { /* do nothing */ }
		else { return false; }
	}
	
	// made it through the loop - we have a number
	return true;
}
