﻿function swapimage(number)
{

    resetimages()
    var imagenumber = "star" + number;

    var img = document.getElementById(imagenumber);
                
    var on;
    if (img.src.indexOf("staron") > -1)
    {
       on = true;
    }
    else
    {
        on = false;
    }
    
    
    setimages(number, on);         

               
}

function resetimages()
{
    for (var i = 0; i < 4; i++) 
    {   
        var n = i+1;
        var imagenumber = "star" + n ;
                   
        document.getElementById(imagenumber).src = "/j/6c/images/reviews/staroff.png";
    }
}

function setimages(selectedimage, flag)
{
    for (var i = 0; i < selectedimage; i++) 
    {   
        var n = i+1;
        var imagenumber = "star" + n ;
        if (flag)
        {
            document.getElementById(imagenumber).src = "/j/6c/images/reviews/staroff.png";
        }
        else
        {
            document.getElementById(imagenumber).src = "/j/6c/images/reviews/staron.png";
        }
        
        if ((selectedimage !=5) && (!flag))
        {
            document.getElementById("star5").src = "/j/6c/images/reviews/staroff.png";
        }
    }
}
     

function AddAlert(intStockCode)
{
    var un = document.f1.un.value;
    var region = document.f1.region.value;
    var email = document.f1.email.value;
    var occ = document.f1.occ.value;
    var alertCode = document.f1.alert.value
        
    var url = "/iaAjax.ashx?action=addalert&un=" + un + "&region=" + region + "&email=" + email + "&occ=" + occ + "&intStockCode=" + intStockCode + "&alertCode=" + alertCode + "&userName=" + un;
    
    if (window.XMLHttpRequest) 
    { // Non-IE browsers
        req = new XMLHttpRequest();
        req.onreadystatechange = AddAlert_Callback;
        try 
        {
            req.open("GET", url, true);
        } 
        catch (e) 
        {
            alert(e);
        }
        req.send(null);
    } 
    else if (window.ActiveXObject) 
    { // IE
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) 
        {
            req.onreadystatechange = AddAlert_Callback;
            req.open("GET", url, true);
            req.send();
        }
    }
    
}


function AddAlert_Callback()
{

if (req.readyState == 4) 
    { // Complete
        if (req.status == 200) 
        { // OK response           
            
           var value = req.responseText.split("~",3)
           
           //alert(value[0]);
           
           switch(value[0])
            {
                case "ADDED":
                    alert("You have successfully signed up for this alert.");                    
                    break;
                case "EXISTS":
                    alert("You are already signed up for this alert.");
                    break;
                case "EMAIL_ERROR":
                    alert("Your email address does not appear to be valid.");
                    break;
                default:
                    alert("Sorry an error occured, please try again.");
                    break;
           }          
            document.f1.occ.value = value[2];
            document.f1.alert.value = value[1];
            document.f1.email.value = '';
           

           document.getElementById("alert_signedup").style.display = 'none';
           document.getElementById("alert_success").style.display = 'none';  
           document.getElementById("alert_error").style.display = 'none';
           document.getElementById("alert_email").style.display = 'none';                    
                            
        } 
        else 
        {
            alert("Problem: " + req.statusText);
        }
    }

}


       
function AddReview(intStockCode, region)
{
    var title = encodeURI(document.getElementById("reviewtitle").value);
    var body = encodeURI(document.getElementById("reviewsummary").value);
    var username = document.getElementById("username1").value;
    
    
    if (title != "" && body !="")
    {
        var score
        for (var i = 0; i < 5; i++) 
        {   
            var n = i+1;
            var imagenumber = "star" + n ;
            if (document.getElementById(imagenumber).src.indexOf("staron") > -1) score = i + 1;
        }
        
        var url = "/iaAjax.ashx?action=addreview&title=" + title + "&body=" + body + "&username=" + username + "&intstockcode=" + intStockCode + "&score=" + score + "&region=" + region;
        
        if (window.XMLHttpRequest) 
        { // Non-IE browsers
            req = new XMLHttpRequest();
            req.onreadystatechange = AddReview_CallBack;
            try 
            {
                req.open("GET", url, true);
            } 
            catch (e) 
            {
                alert(e);
            }
            req.send(null);
        } 
        else if (window.ActiveXObject) 
        { // IE
            req = new ActiveXObject("Microsoft.XMLHTTP");
            if (req) 
            {
                req.onreadystatechange = AddReview_CallBack;
                req.open("GET", url, true);
                req.send();
            }
        }
    }
}

        
function AddReview_CallBack()
{

if (req.readyState == 4) 
    { // Complete
        if (req.status == 200) 
        { // OK response           
            
            var text = req.responseText;  
    
            if (text == "ERROR")
            {
                alert("Error adding link.");
            }
            else if (text == "DUPE")
            {
                alert("Sorry, this link has already been added.");
            }
            else
            {

                document.getElementById("reviewtitle").value = "";
                document.getElementById("reviewsummary").value = "";

                document.getElementById("newreviewitem").innerHTML = text;


                //document.getElementById("newdirectoryitem").innerHTML = text;
                toggleSlide("addreview", "dirImage");
                alert("Thanks. Comments are subject to moderation - your comment will appear on the site shortly.");
                //document.getElementById("newdirectoryitem").style.display = "block";
                //opacity("newdirectoryitem", 1, 100, 2000);
            }
                            
        } 
        else 
        {
            alert("Problem: " + req.statusText);
        }
    }

}


function Rate(linkID, intStockCode, voteType)
{

    var posImage = "posImage_" + linkID;
    var negImage = "negImage_" + linkID;
    var username = document.getElementById("username").value;
    var UI = document.getElementById("UI").value;
    
                   
    var url = "/iaAjax.ashx?action=ratelink&linkID=" + linkID + "&intStockCode=" + intStockCode + "&username=" + username + "&votetype=" + voteType + "&UI=" + UI;
    
    if (window.XMLHttpRequest) 
    { // Non-IE browsers
        req = new XMLHttpRequest();
        req.onreadystatechange = Rate_CallBack;
        try 
        {
            req.open("GET", url, true);
        } 
        catch (e) 
        {
            alert(e);
        }
        req.send(null);
    } 
    else if (window.ActiveXObject) 
    { // IE
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) 
        {
            req.onreadystatechange = Rate_CallBack;
            req.open("GET", url, true);
            req.send();
        }
    }
   
}

function Rate_CallBack()
{

    if (req.readyState == 4) 
        { // Complete
            if (req.status == 200) 
            { // OK response           
                
                var value = req.responseText.split("~",2);  
                var link = "link_" + value[0];
                    
                var posImage = "posImage_" + value[0];
                var negImage = "negImage_" + value[0];
                var div = value[1];
        
                document.getElementById(link).innerHTML = div;
                document.getElementById(posImage).style.display = "none";
                document.getElementById(negImage).style.display = "none";           
            } 
            else 
            {
                alert("Problem: " + req.statusText);
            }
        }

}


function AddTag(intStockCode, languageCode, hasItems)
{
    var tags = encodeURI(document.getElementById("addnewtags").value);  
    var username = document.getElementById("username").value;
    var url = "/iaAjax.ashx?action=addtag&tags=" + tags + "&intStockCode=" + intStockCode + "&lang=" + languageCode + "&hasitems=" + hasItems + "&username=" + username;

    if (window.XMLHttpRequest) 
    { // Non-IE browsers
        req = new XMLHttpRequest();
        req.onreadystatechange = AddTag_CallBack;
        try 
        {
            req.open("GET", url, true);
        } 
        catch (e) 
        {
            alert(e);
        }
        req.send(null);
    } 
    else if (window.ActiveXObject) 
    { // IE
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) 
        {
            req.onreadystatechange = AddTag_CallBack;
            req.open("GET", url, true);
            req.send();
        }
    }
}


function AddTag_CallBack()
{

    if (req.readyState == 4) 
        { // Complete
            if (req.status == 200) 
            { // OK response           
                
                var text = req.responseText;  
        
                if (text == "ERROR")
                {
                    alert("Error: This tag is banned or it already exists");
                }
                else
                {
                    document.getElementById("newtags").innerHTML = text;
                    document.getElementById("addnewtags").value = ""; 
                    clearSelectedPopularTags();
                    toggleSlide("addtags", "dirImage"); 
                }
                        
            } 
            else 
            {
                alert("Problem: " + req.statusText);
            }
        }

}



function AddLink()
{
    var title = encodeURI(document.getElementById("linktitle").value);
    var link = encodeURI(document.getElementById("link").value);
    var summary = encodeURI(document.getElementById("summary").value);
    var isc = encodeURI(document.getElementById("isc").value);
    var category = encodeURI(document.getElementById("category").value);
    var username = encodeURI(document.getElementById("username").value);       
    var UI = document.getElementById("UI").value;
    
    var url = "/iaAjax.ashx?action=addlink&title=" + title + "&link=" + link + "&summary=" + summary + "&intStockCode=" + isc + "&category=" + category + "&username=" + username + "&UI=" + UI;

    if (window.XMLHttpRequest) 
    { // Non-IE browsers
        req = new XMLHttpRequest();
        req.onreadystatechange = AddLink_CallBack;
        try 
        {
            req.open("GET", url, true);
        } 
        catch (e) 
        {
            alert(e);
        }
        req.send(null);
    } 
    else if (window.ActiveXObject) 
    { // IE
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) 
        {
            req.onreadystatechange = AddLink_CallBack;
            req.open("GET", url, true);
            req.send();
        }
    }
}    


function AddLink_CallBack()
{

    if (req.readyState == 4) 
        { // Complete
            if (req.status == 200) 
            { // OK response           
                
                var text = req.responseText;  
        
                if (text == "ERROR")
                {
                    alert("Error adding link.");
                }
                else if (text == "DUPE")
                {
                    alert("Sorry, this link has already been added.");
                }
                else
                {

                    document.getElementById("title").value = "";
                    document.getElementById("link").value = "";
                    document.getElementById("summary").value = "";

                    //document.getElementById("newdirectoryitem").innerHTML = text;
                    toggleSlide("addlink", "dirImage");
                    alert("Thanks. Links are subject to moderation - your link will appear on the site shortly.");
                    //document.getElementById("newdirectoryitem").style.display = "block";
                    //opacity("newdirectoryitem", 1, 100, 2000);
                }
                                
            } 
            else 
            {
                alert("Problem: " + req.statusText);
            }
        }

}

function opacity(id, opacStart, opacEnd, 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(opacStart > opacEnd) {
	    for(i = opacStart; i >= opacEnd; i--) {
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
		    timer++;
	    }
    } 
    else if(opacStart < opacEnd) 
    {
		for(i = opacStart; i <= opacEnd; i++)
		{
    		setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
		    timer++;
	    }
    }
}


function changeOpac(opacity, id) 
{
	var object = document.getElementById(id).style; 
	object.opacity = (opacity / 100);
	object.MozOpacity = (opacity / 100);
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";
}

function showfullcomment(id)
{
    var comment = "fullcomment_" + id;
    var link = "commentmore_" +id;
    
    var item = document.getElementById(comment);
    var link = document.getElementById(link);
    
    if (item != null)
    {        
        item.style.display = "inline";
    }
    
    if (link != null)
    {
        link.style.display = "none";
    }
}

function togglePopularTag(tagElement)
{
    // Extract values
    var tagToToggle = tagElement.innerHTML;
    var found = false;
    var currentTagArray = document.getElementById("addnewtags").value.split(",");
    if (currentTagArray[0].length == 0)
    {
        // Remove the first element if there is no text
        currentTagArray.splice(0, 1);
    }
        
    for(index = 0; index < currentTagArray.length; index++)
    {
        if(currentTagArray[index] == tagToToggle)
        {
            // Remove the tag
            currentTagArray.splice(index, 1);
            
            // De-select the tag by removing the class
            tagElement.className = "";

            // Set the found flag
            found = true;
        }
    }
    
    if(!found)
    {
        // Add the new tag if not found
        currentTagArray.push(tagToToggle);
        
        // Select the tag
        tagElement.className = "selected";
    }
    
    // Update the input field
    document.getElementById("addnewtags").value = currentTagArray.join(",");
}

function clearSelectedPopularTags()
{
    for(index = 0; index < 10; index++)
    {
        document.getElementById("popular-tag-" + index).removeAttribute("class");
    }
}
