 var kasamba_tl_url = "";
 var ddlLinkName = "";
 var intervalID;


//when a main category is selected
function SelectedCategoryChange(ddl,ddlLink)   
{
    //we clear ddlLink from its current options
    ddlLink.length=0;
    
    if (ddl.value != "-1")
    {
        kasamba_tl_mainCategory = ddl.value;
        kasamba_tl_url = "";
        ddlLinkName = ddlLink.id;

        document.getElementById("divTextLinkBox").style.display = "none";
        kasamba_tl_isTextBoxShown = "false";
        document.getElementById("divModifyFont").style.display = "inline"

        if (typeof(AffiliateWizard.Ajax.ProcessService.GetTextLinkByCatID)!= "undefined")
        {
	        AffiliateWizard.Ajax.ProcessService.GetTextLinkByCatID(kasamba_tl_mainCategory,OnSucceeded, OnFailed);
	    }
    }
    else
    {
         kasamba_tl_header = kasamba_tl_def_header;
         tlRender();
    }
}

//when a sub category is selected
function SelectedSubCategoryChange(ddl,ddlLink)
{
    //we clear ddlLink from its current options
    ddlLink.length=0;
    
    if (ddl.value != "-1")
    {
        kasamba_tl_subCategory = ddl.value;
        subCategory = ddl.value;
        kasamba_tl_url = "";
        ddlLinkName = ddlLink.id;
        
        document.getElementById("divTextLinkBox").style.display = "none";
        kasamba_tl_isTextBoxShown = "false";
        document.getElementById("divModifyFont").style.display = "inline"
        
        if (typeof(AffiliateWizard.Ajax.ProcessService.GetTextLinkByCatID)!= "undefined")
        {
	        AffiliateWizard.Ajax.ProcessService.GetTextLinkByCatID(subCategory,OnSucceeded, OnFailed);
	    }

    }
}

//is called in every half a minute coz gets the header out of the ddlLink  only after it is filled from the server.
//when it does - the loop ends
function GetNewHeader() 
{
    if (document.getElementById(ddlLinkName).length != 0)
    {
       if (kasamba_tl_isTextBoxShown=='true')
       {
          document.getElementById(ddlLinkName).value='999' ;
       }
       else
       {
          kasamba_tl_header = document.getElementById(ddlLinkName).value;
          tlRender();
       }
  
       clearInterval(intervalID);
    }
    
 }                                                  

//when a header is selected
// ddl - the header 
///txt = the free Text Box
function SelectedTextLinkChange(ddl,txt)
{ 
    //if the user selected to use his own header - we display a textBox    
    if( ddl.value == "999" )
    {   
        document.getElementById("divTextLinkBox").style.display = "block";
        kasamba_tl_isTextBoxShown = "true";
        kasamba_tl_header = "Your Text Link";
        document.getElementById(txt.id).value= 'Type your text here...';
        document.getElementById("divModifyFont").style.display = "none";
    }
    else
    {
        document.getElementById("divTextLinkBox").style.display = "none";
        kasamba_tl_isTextBoxShown = "false";
        kasamba_tl_header = ddl.value;
        document.getElementById("divModifyFont").style.display = "inline"
    }
}

//this function is called when the user types text for the header in the textbox
function TextLinkBoxChange()
{       
    kasamba_tl_header = this.value;     
}

//font was modified
function ModifyFontClick (obj)
{
    try
    {
        if (document.getElementById("divModifyFontCtrl").style.display=="none")   
        {
            obj.innerHTML = "Default Font";
            document.getElementById("divModifyFontCtrl").style.display="inline";   
        }
        else
        {
            obj.innerHTML = "Modify Font";
            document.getElementById("divModifyFontCtrl").style.display="none";
            kasamba_tl_headerFontFamily = kasamba_tl_Def_headerFontFamily;
            kasamba_tl_headerFontSize = kasamba_tl_Def_headerFontSize;
            kasamba_tl_headerBold = "normal";
            kasamba_tl_headerItalic = "normal";
            kasamba_tl_headerUnderline = "underline";
        }
        UpdateFontControl();
        tlRender();
    }
    catch(e)
    {
        WriteErrorLog(e, "ModifyFontClick");
    }
}

//render is called after each event that influence the link/header content
function tlRender()
{  
    try
    {
        Validate();
        divOutputTextLink1 = document.getElementById("divOutputTextLink");  
        divOutputTextLink1.innerHTML =  "<a target='_blank' href='" + kasamba_tl_url + "' style='border-width:0px;font:" + kasamba_tl_headerItalic +" normal " + kasamba_tl_headerBold + " " + kasamba_tl_headerFontSize + " " + kasamba_tl_headerFontFamily + "; text-decoration:" + kasamba_tl_headerUnderline + "; color:#" + kasamba_tl_textColor +"'>" + kasamba_tl_header  + "</a>";
     }
    catch(e)
    {
        WriteErrorLog(e, "tlRender");
        return false;
    }
    
    return true;                                                         
}

//set the color of the colorpicker to the clien side variable
function GetColors()
{  
    try
    {          
       kasamba_tl_textColor = document.getElementById("field1").value;
       tlRender();
    }
    catch(e)
    {
        WriteErrorLog(e, "GetColors");
    }
}   

//gets the textboxheader and save the client vars to the session
function SaveToSession(textLink)
{   
    try
    {
        if (Validate(textLink))
        {           
            document.getElementById("hiddenMainCat").value = kasamba_tl_mainCategory;
            document.getElementById("hiddenSubCat").value = kasamba_tl_subCategory;
            document.getElementById("hiddenUrl").value = kasamba_tl_url;
            document.getElementById("hiddenHeaderText").value = kasamba_tl_header;
            document.getElementById("hiddenFontFamily").value = kasamba_tl_headerFontFamily;
            document.getElementById("hiddenFontSize").value = kasamba_tl_headerFontSize;
            document.getElementById("hiddenIsBold").value = kasamba_tl_headerBold;
            document.getElementById("hiddenIsItalic").value = kasamba_tl_headerItalic;
            document.getElementById("hiddenIsUnderline").value = kasamba_tl_headerUnderline;
            document.getElementById("hiddenTextColor").value = kasamba_tl_textColor;
            document.getElementById("hiddenCreateHeader").value = kasamba_tl_isTextBoxShown;

           return true;
        }
    }
    catch(e)
    {
        WriteErrorLog(e, "SaveToSession");
    }
    return false;
}     

function Validate(headerText)
{
    try
    {
        var result = true;

        if (typeof(headerText) != 'undefined')
        {
            var text = Trim(headerText.value);
            if (document.getElementById("divTextLinkBox").style.display!="none")   
            {
                if ((text == "Type your text here...") || (text ==""))
                {
                    result= false;
                }
                else
                {
                    var forbiddenChars = new Array('>','<','&');
                    for (i=0;i<forbiddenChars.length;i++)
                    {
                        if (text.indexOf(forbiddenChars[i],0) > -1 )
                        {
	                        return false;
                        }
                    }
                }
            }
        }
        return result;
    }
    catch(e)
    {
        WriteErrorLog(e, "Validate");
        return false;
    }
}

function SetTextBoxVisibility(isVisible)
{
    if( isVisible == "true")
    {   
        document.getElementById("divTextLinkBox").style.display = "block";
        document.getElementById("divModifyFont").style.display = "none";
    }
    else
    {
        document.getElementById("divTextLinkBox").style.display = "none";
    }
}

function IsHeaderTextEmpty(sender, args)
{
    try
    {
        var result = true;
        var text = Trim(args.Value);
        if (document.getElementById("divTextLinkBox").style.display!="none")   
        {
            if ((text == "Type your text here...") || (text ==""))
            {
                result= false;
                sender.innerHTML= "<br/>No text has been entered.<br/>Please type your customized<br/> text or choose one of proposed<br/> Headers in the list above.";
            }
            else
            {
                if (!Validate(text))
                {
                    result= false;
                    sender.innerHTML="One or more characters<br/>you have typed are forbidden to use,<br/>please remove them and try again.";
                }  
            }
        }
        args.IsValid = result;
    }
    catch(e)
    {
        WriteErrorLog(e, "IsHeaderTextEmpty");
        return false;
    }
}


// Callback function invoked on successful 
// completion of the page method.
function OnSucceeded(result, userContext, methodName) 
{
    if (methodName == "GetTextLinkByCatID")
    {
        kasamba_tl_url = result;
 
        intervalID = setInterval("GetNewHeader()", 200);
    }    
}

// Callback function invoked on failure 
// of the page method.
function OnFailed(error, userContext, methodName) 
{
    if(error !== null) 
    {
        alert(error.get_message());
    }
}

if (typeof(Sys) !== "undefined") Sys.Application.notifyScriptLoaded();
   
   
   