﻿/**
* Copyright © 2006-2008 Informatica.be bvba - Nieuws.be
*  Ham 187 - B9000 Ghent (Belgium)
*
*  This file is intellectual property of Informatica.be bvba - Nieuws.be. All forms of reproduction
*  of this file without explicit permission of the proprietor is strictly
*  forbidden and will be prosecuted to the full extend of the law.
*
*  Author: Sébastien LEVEILLE NIZEROLLE
 */ 

function Toolbar(){}

//////////     PUBLIC PROPERTIES     ////////// 
Toolbar._articleID = "";
//Mail
Toolbar.nameFromId="";
Toolbar.nameToId="";
Toolbar.emailToId="";
Toolbar.messageId="";
Toolbar.msgToUserId="";
Toolbar.mailFormId="";
Toolbar.smsNumber="";
Toolbar.vs = "";

//Quote
Toolbar.QVG="";

Toolbar.UserName=null;
Toolbar.PassWord=null;
Toolbar.QuotedComment="";

Toolbar.LoginBtUniqueID = "";
Toolbar.FailureText = null;
Toolbar.FlagControl1 = "";
Toolbar.FlagControl2 = "";
Toolbar.FlagControl3 = "";

isAjaxSupported = (window.ActiveXObject != "undefined" || window.XMLHttpRequest != "undefined");

/**
* Initialize variables.
*/
Toolbar.Initiate = function(value) {
    Toolbar._articleID = value;
}

//////////     PUBLIC FUNCTIONS     //////////
Toolbar.GetArticleID = function() {
    return Toolbar._articleID;
}

Toolbar.PrintArticle = function () {    
    window.print();    
}

Toolbar.PdfArticle = function () {
    var ArticleID = Toolbar.GetArticleID();
    window.open('/Popup/ArticlePdf.aspx?articleID=' + ArticleID, 'pdfartikel','width=900,height=800,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,copyhistory=yes,resizable=yes');    
    return false;
}
       
/**
* Get Selected text from page and insert into textbox.
* @param value The Client ID of the textbox.
*/
Toolbar.GetAndPasteSelection = function(value) {
    var textbox = document.getElementById(value);
    textbox.value = document.getSelectedText();
}

/**
* Open Specified Extender
* @param extender the behaviourID of the specified Extender to Open.
*/
Toolbar.ExpandExtender = function (extender) {
    Toolbar.CollapseExtenders();
    $find(extender)._doOpen();
}

/**
* Opens the CommentExtender and sets the ParentID.
* @param parentID as the clientID of the ParentID hiddenfield where value has to enter.
* @param value As the ParentID to Comment on.
*/
Toolbar.OpenSubComment = function(parentID, value) {
       var commentParentID = document.getElementById(parentID);
       commentParentID.value = value;
       Toolbar.CollapseExtenders();       
       $find(Toolbar.GetCommentExtender())._doOpen();
}

Toolbar.ToggleDiv = function(divid){
        if(document.getElementById(divid).style.display == 'none'){
            document.getElementById(divid).style.display = 'block';
        }else{
            document.getElementById(divid).style.display = 'none';
        }
    }

/**
* Sends a sms.
* @mobileNumber : mobile number from receiver SMS
* @userID       : ID of the current user (sender)
* @userLastName : Lastname of the current user (sender)
* @userFirstName: Firstname of the current user (sender)
* @articleID    : ID of the current article
* @articleTitle : Title of the current article
*/   
Toolbar.SmsSend = function(mobileNumber, userID,userLastName,userFirstName,articleID, articleTitle, btnSend, ValGroup, smsInfoDiv, smsRetryDiv) {

    var infoDiv = document.getElementById(smsInfoDiv);
    infoDiv.style.display = "none";

    Toolbar.smsNumber=document.getElementById(mobileNumber);
    if (Toolbar.smsNumber.value != "" && Toolbar.smsNumber.value.length > 9)    {
        PageMethods.SendSMS(Toolbar.smsNumber.value, userID,userLastName,userFirstName,articleID, articleTitle,smsInfoDiv,smsRetryDiv, Toolbar.onSendSuccess,Toolbar.onSendFailure);
    } else {
        WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(btnSend, "", true, ValGroup, "", false, false))
    }
    
    }
    
Toolbar.onSendSuccess = function(result, userContext, methodName) {

    var obj = result.split(";");
    var message = obj[1];
    var div = document.getElementById(obj[2]);    
    var retrydiv = document.getElementById(obj[3]);       
        
    div.innerHTML = message;
    div.style.display = "block";
}
    
Toolbar.onSendFailure = function(error, userContext, methodName) {
        if(error !== null) { 
            alert("An error occurred: " +  error.get_message());
        }
    }

/**
* Flags an article and/or comment.
* @objectID : ID of the article or comment (will be like 'A_id' or 'C_id')
* @flagId   : Value of the selected flag .
* @controls : Array with controls.
*/ 

Toolbar.FlagObject = function(objectID, flagID, flagDiv, flaggedDiv,flagViewerDiv) {
     var list = document.getElementById(flagID);
     var flagArr = new Array(flagDiv, flaggedDiv, flagViewerDiv);    
     PageMethods.AddFlag(objectID,list.value,flagArr, Toolbar.onFlagSuccess,Toolbar.onFlagFailure); 
    }
    
Toolbar.onFlagSuccess = function(result, userContext, methodName) {

    var list =eval(result);
    
    if (list[0] == "True") {
    
         Toolbar.FlagControl1 = document.getElementById(list[1]);
         Toolbar.FlagControl2 = document.getElementById(list[2]);
         Toolbar.FlagControl3 = document.getElementById(list[3]);

        if (Toolbar.FlagControl1 != null) {            
            Toolbar.FlagControl1.style.display = "none";
            
            }
        if (Toolbar.FlagControl2 != null) {
            Toolbar.FlagControl2.style.display = "block";
            }
        if (Toolbar.FlagControl3 != null) {
            Toolbar.ToggleDiv(list[3]);
            }
        }   
          
    }
    
Toolbar.onFlagFailure = function(error, userContext, methodName) {
        if(error !== null) { 
            alert("An error occurred: " +  error.get_message());
        }
    }
    
    
/**
* Report broken link.
*/ 
Toolbar.BrokenLink = function(articleID, listID, blDiv, blReportedDiv, blvDiv) {     
     var objArr = new Array(blDiv, blReportedDiv, blvDiv);    
     PageMethods.AddBrokenLink(articleID, objArr, Toolbar.onBLSuccess,Toolbar.onBLFailure); 
}
            
Toolbar.onBLSuccess = function(result, userContext, methodName) {

    var list = eval(result);
    
    if (list[0] == "True") {
    
         Toolbar.BLControl1 = document.getElementById(list[1]);
         Toolbar.BLControl2 = document.getElementById(list[2]);
         Toolbar.BLControl3 = document.getElementById(list[3]);

        if (Toolbar.BLControl1 != null) {            
            Toolbar.BLControl1.style.display = "none";
            
            }
        if (Toolbar.BLControl2 != null) {
            Toolbar.BLControl2.style.display = "block";
            }
        if (Toolbar.BLControl3 != null) {
            Toolbar.ToggleDiv(list[3]);
            }
        }             
    }
    
Toolbar.onBLFailure = function(error, userContext, methodName) {
        if(error !== null) { 
            alert("An error occurred: " +  error.get_message());
        }
    }   
    
/**
* Clear forms
*/
Toolbar.ClearForm = function(form, value1, value2, value3, value4, value5, value6, value7) {
    switch(form) {
        case 'tag':
            //alert("tag");
        case 'mail':        
            if (Utilities.getElementById(value1) != null)
                Utilities.getElementById(value1).value = "";
                
            if(Utilities.getElementById(value2) != null)
                Utilities.getElementById(value2).value = "";
                
            if(Utilities.getElementById(value3) != null)
                Utilities.getElementById(value3).value = "";            
                
            if (Utilities.getElementById(value4) != null)
                Utilities.getElementById(value4).value = "";                        
                
            if (Utilities.getElementById(value5) != null)
                Utilities.getElementById(value5).innerHTML = ""; 
            
            if (value6 != null && Utilities.getElementById(value6) != null)
                Utilities.getElementById(value6).style.display = "none"; 
                
            if (value7 != null && Utilities.getElementById(value7) != null)
            {                
                Utilities.getElementById(value7).IsValid = true;                
                Utilities.getElementById(value7).style.display = "none";                 
            }

            if (Utilities.getElementById(value1) != null)           
            {
                 try { Utilities.getElementById(value1).focus(); }
                  catch (err) { }                
            }
            
            return false;            
        case 'sms':
            if (Utilities.getElementById(value1) != null)
            {
               Utilities.getElementById(value1).value = "";
               Utilities.getElementById(value1).focus();
            }
        case 'comment':
            if (Utilities.getElementById(value1) != null)
            {
                Utilities.getElementById(value1).value = "";            
                Utilities.getElementById(value1).focus();
            }

            if (Utilities.getElementById(value2) != null)
                Utilities.getElementById(value2).innerHTML = "";
    }    
    
}
 
    
/**
* Mails an article.
* @nameFrom : Name of sender
* @nameTo : Name of receiver
* @emailTo : Email of receiver
* @message : optional message
* @articleID : ID of the article
*/ 
Toolbar.MailArticle = function(nameFrom, nameTo, emailTo, message, msgToUser, articleId, VG, sendbtnUniqueID, close, vs) {
    Toolbar.nameFromId = nameFrom;
    Toolbar.nameToId = nameTo;
    Toolbar.emailToId = emailTo;
    Toolbar.messageId = message;
    Toolbar.msgToUserId = msgToUser;
    Toolbar.closeId = close;
    Toolbar.vs = vs;
    
    var sendBtn = Utilities.getElementById(sendbtnUniqueID);
    var nameFrom = Utilities.getElementById(nameFrom);
    var nameTo = Utilities.getElementById(nameTo);
    var emailTo = Utilities.getElementById(emailTo);
    var message = Utilities.getElementById(message);            
        
    if (nameFrom != null && nameTo != null && emailTo != null && message != null)
    {            
        if(nameFrom.value != "" && nameTo.value != "" && emailTo.value != "" && Utilities.ValidateEmail(emailTo.value)){    
            PageMethods.MailArticle(nameFrom.value, nameTo.value, emailTo.value, message.value, articleId, Toolbar.onMailSuccess, Toolbar.onMailFailure);
        }else{                    
            WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(sendbtnUniqueID, "", true, VG, "", false, false));
        }
    }
}
    
Toolbar.onMailSuccess = function(result, userContext, methodName) {
    var msgToUser = Utilities.getElementById(Toolbar.msgToUserId);
    var close = Utilities.getElementById(Toolbar.closeId);
    var vs = Utilities.getElementById(Toolbar.vs);
        
    if(msgToUser != null && close != null)
    {
       msgToUser.innerHTML="Uw e-mail werd succesvol verzonden!";       
       close.style.display = "block";
       vs.style.display = "none";       
       Toolbar.ClearForm('mail',Toolbar.nameFromId,Toolbar.nameToId,Toolbar.emailToId,Toolbar.messageId,Toolbar.vs);
    }
}
    
Toolbar.onMailFailure = function(error, userContext, methodName) {
        if(error !== null) { 
            Toolbar.msgToUser.innerHTML="er deed zich een fout voor: " +  error.get_message();
        }
    }
    
/*
* Comment Validation
*/

    Toolbar.ValidateQuote = function(QVG, userNameClientID, passwordClientID, failureTextClientID, loginBtUniqueID,commentClientID,quotedComment) 
    {
        Toolbar.QVG = QVG;        
        Toolbar.LoginBtUniqueID = loginBtUniqueID;
        Toolbar.FailureText = Utilities.getElementById(failureTextClientID);
        Toolbar.UserName = Utilities.getElementById(userNameClientID);
        Toolbar.PassWord = Utilities.getElementById(passwordClientID);
        Toolbar.CommentClientID = commentClientID;
        Toolbar.QuotedComment = quotedComment;  
        Toolbar.FailureText.innerHTML = "";
                
        if(Toolbar.UserName.value != '' && Toolbar.PassWord.value != '') {    
               alert(Toolbar.QuotedComment);
            PageMethods.ValidateUser(Toolbar.UserName.value, Toolbar.PassWord.value, OnSucceededQuote, OnFailedQuote);
        } else {             
            WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(Toolbar.LoginBtUniqueID, "", true, Toolbar.QVG, "", false, false));
       }
   } 
   
   function OnSucceededQuote(result, userContext, methodName) 
   {
   
   
        if (methodName == "ValidateUser")
        {
            if(result == "True")
            {
                WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(Toolbar.LoginBtUniqueID, "", true, Toolbar.QVAL, "", false, false));
                /*Toolbar.AddQuote(Toolbar.ValidationGroupName, Toolbar.CommentClientID,  Toolbar.GetArticleID(),Toolbar.UserName.value,Toolbar.PassWord.value,Toolbar.LoginBtUniqueID,Toolbar.QuotedComment);*/
            }
            else
            {
              Toolbar.FailureText.innerHTML = "Ongeldige gebruikersnaam of wachtwoord.";
            }
        }
    }
    
   function OnFailedQuote(error, userContext, methodName) 
    {
        if(error !== null) 
        {
            return result
        }
    }
