﻿var conf =
{
    APIKey: '2_SAd7CZlX-nhs8J1yIdRBrJ254y0eykznRxWifQvvlmF2lYv5CLWDSboCVo2NJntz'
    , enabledProviders: 'facebook,twitter,myspace,yahoo,google,linkedin'
    , signIDs: 'true'
}

var globalGigyaUserObject;
var globalGigyaIsOnline = false;
var gigyaLinkPage = '/pay/gigyaloginq.asp?mode=wizard';
var gigyaTimestamp;
var gigyaSocialEmail;
var gigyaConUrl;
var gigyaSecretKey = encodeURIComponent("G6BFPIrLolUWylZu5zmlNTYAAKis26mkO9dEzrtNJns=");
var confirmationId;

function onLoginHandler(eventObj) {
    var gigyaUIDSig = encodeURIComponent(eventObj.user.UIDSig);
    var gigyaUID = encodeURIComponent(eventObj.user.UID);
    gigyaTimestamp = encodeURIComponent(eventObj.user.timestamp);
    gigyaSocialEmail = encodeURIComponent(eventObj.user.email);
    var gigyaGlobesId = encodeURIComponent(eventObj.user.UID);
    var gigyaIsGlobesId = eventObj.user.isSiteUID;
    var gigyaNickName = encodeURIComponent(eventObj.user.nickname);
    var gigyaLoginProvider = eventObj.user.loginProvider;

    if (gigyaIsGlobesId) {//linked        
        var url = "/news/ashx_handlers/gigya/CheckLinkedUser.ashx?timeStamp=" + gigyaTimestamp + "&globesUserId=" + gigyaGlobesId + "&secretKey=" + gigyaSecretKey + "&gigyaSig=" + gigyaUIDSig;
        GetAsynchronousData(url, "CheckLinkedUserCallBack(xmlHttp.responseText);");
    }
    else {
        gigyaConUrl = gigyaLinkPage + "&timeStamp=" + gigyaTimestamp + "&userId=" + gigyaUID + "&secretKey=" + gigyaSecretKey + "&gigyaSig=" + gigyaUIDSig + "&gigyaNick=" + gigyaNickName + "&gigyaEmail=" + gigyaSocialEmail + "&gigyaProvider=" + gigyaLoginProvider;
        if (gigyaSocialEmail == "") {//not linked - without mail
            NavigateToLoginB();
        }
        else {//not linked - with mail
            var url = "/news/ashx_handlers/gigya/GenerateGigyaLogin.ashx?timeStamp=" + gigyaTimestamp + "&userId=" + gigyaUID + "&secretKey=" + gigyaSecretKey + "&gigyaSig=" + gigyaUIDSig + "&globesUserId=" + gigyaSocialEmail + "&gigyaProvider=" + gigyaLoginProvider;
            GetAsynchronousData(url, "getCalculatedGigyaSigCallBack(xmlHttp.responseText);");
        }
    }
}

function NavigateToLoginB() {
    if (location.href.indexOf("/login.asp") == -1) {
        SignWizard_Show(gigyaConUrl, 'wizard');
    }
    else {
        location.href = gigyaConUrl;
    }
}

var globesIsValidated = '0';
var globesLinkUser = true;
function CreateAndLinkQuickUser() {
    var qs = new Querystring();
    gigyaTimestamp = encodeURIComponent(qs.get("timeStamp"));
    var gigyaUID = encodeURIComponent(qs.get("userId"));
    var gigyaSecretKey = encodeURIComponent(qs.get("secretKey"));
    var gigyaUIDSig = encodeURIComponent(qs.get("gigyaSig"));
    var gigyaNickName = encodeURIComponent(qs.get("gigyaNick"));
    var gigyaEmail;
    var gigyaPassword;

    var email = qs.get("gigyaEmail");
    if (email == '') {
        gigyaEmail = document.getElementById('txtEmail').value;
        gigyaPassword = document.getElementById('txtPassword').value;
    }
    else {
        gigyaEmail = encodeURIComponent(qs.get("gigyaEmail"));
        gigyaPassword = randomPassword(5);
    }

    var url = "/news/ashx_handlers/gigya/CreateNewQuickUser.ashx?timeStamp=" + gigyaTimestamp + "&userId=" + gigyaUID + "&secretKey=" + gigyaSecretKey + "&gigyaSig=" + gigyaUIDSig + "&gigyaNick=" + gigyaNickName + "&gigyaEmail=" + gigyaEmail + "&gigyaPassword=" + gigyaPassword + (globesIsValidated == '1' ? "&validationOnly=1" : "");
    GetAsynchronousData(url, "createNewQuickUserCallBack(xmlHttp.responseText);");
}

function createNewQuickUserCallBack(result) {
    if (result != 'error') {
        var arr = result.split(';');
        if (result == 'exist!') {
            ShowErrorMessage("חשבון זה קיים במערכת, יש להקליד כתובת דואר אלקטרוני אחרת.", "txtEmail")
        }
        else {
            if(globesLinkUser)
            {
                LinkExternalAccount(arr[0], arr[1], globesIsValidated);
            }
            else
            {
                var pUrl = 'http://www.globes.co.il';
                var url = "/pay/loginsubmitn.asp?loginType=gigya&loginName=" + escape(arr[0]) + "&loginCO=" + escape(arr[3]) + "&loginVC=" + escape(arr[4]) + "&p_backTo=" + escape(pUrl) + "&loginBackTo=" + escape(pUrl);
                document.location = url;
            }
        }
    }
    else {
        gigyaError(result.errorCode);
    }
}

function randomPassword(length)
{
  chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
  pass = "";
  for(x=0;x<length;x++)
  {
    i = Math.floor(Math.random() * 62);
    pass += chars.charAt(i);
  }
  return pass;
}

function LinkExternalAccount(Email, Password, SendV) {
    var qs = new Querystring();
    gigyaTimestamp = encodeURIComponent(qs.get("timeStamp"));
    var gigyaUID = encodeURIComponent(qs.get("userId"));
    var gigyaSecretKey = encodeURIComponent(qs.get("secretKey"));
    var gigyaUIDSig = encodeURIComponent(qs.get("gigyaSig"));
    var gigyaProvider = encodeURIComponent(qs.get("gigyaProvider"));
    gigyaSocialEmail = Email;

    var url = "/news/ashx_handlers/gigya/GenerateExternalGigyaLogin.ashx?timeStamp=" + gigyaTimestamp + "&userId=" + gigyaUID + "&secretKey=" + gigyaSecretKey + "&gigyaSig=" + gigyaUIDSig + "&globesUserId=" + encodeURIComponent(gigyaSocialEmail) + "&globesPassword=" + encodeURIComponent(Password) + "&sendV=" + SendV + "&gigyaProvider=" + gigyaProvider;
    globesIsValidated = '0';
    GetAsynchronousData(url, "getCalculatedGigyaSigCallBack(xmlHttp.responseText);");
}

function CheckLinkedUserCallBack(result) {
    var loginData = result.split(';');
    doGigyaLogin(loginData[3], loginData[1], loginData[2], '', '/pay/globesloginsuccess.asp');
}

function doGigyaLogin(loginName, loginCO, loginVC, p_backTo, loginBackTo) {
    deleteGigyaCookie();
    var qs = new Querystring();
    var callbackPage = encodeURIComponent(qs.get("p_backTo"));
    if (callbackPage != null && callbackPage != 'null' && callbackPage != '') {
        loginBackTo = callbackPage;
    }

    var url = "/pay/loginsubmitn.asp?loginType=gigya&loginName=" + escape(loginName) + "&loginCO=" + escape(loginCO) + "&loginVC=" + escape(loginVC) + "&p_backTo=" + p_backTo + "&loginBackTo=" + loginBackTo;
    if (location.href.indexOf("/gigyaloginq.asp") == -1 && location.href.indexOf("/login.asp") == -1) {
        SignWizard_Show(url, 'wizard');
    }
    else {
        document.location = url;
    }
}

var linkLoginData;
function getCalculatedGigyaSigCallBack(result) {
    loginDataArr = result.split(';');
    if (result.indexOf("error") == -1 && (loginDataArr[5] == 'True' || result.indexOf(";activated") > -1 || loginDataArr[5] == 'False' && result.indexOf(";vsent") > -1)) {
        gigyaSig = loginDataArr[0];
        var siteUID = decodeURIComponent(gigyaSocialEmail);
        var params = {
            siteUID: siteUID,
            timestamp: decodeURIComponent(gigyaTimestamp),
            signature: gigyaSig,
            callback: linkAccountsLogCallBack
        };

        linkLoginData = result;
        gigya.services.socialize.linkAccounts(conf, params);
    }
    else {
        if (location.href.indexOf("/gigyaloginq.asp") == -1) {
            NavigateToLoginB();
        }
        else {
            var qs = new Querystring();
            var email = qs.get("gigyaEmail");
            if (email == '') {
                if (result.indexOf(";vsent") > -1) {
                    this.location = '/pay/gigyaloginsuccess.asp?status=3&backTo=' + escape(window.parent.location.href);
                }
                else {
                    globesIsValidated = '1';
                    CreateAndLinkQuickUser();
                }
            }
            else {
                ShowErrorMessage("חשבון זה אינו קיים במערכת. נסה שנית או <a href=\"javascript:CreateAndLinkQuickUser()\">צור משתמש חדש</a>.", "txtEmail")
            }
        }
    }
}

function linkAccountsLogCallBack(response) {
    if (response.errorCode == 0) {
        var qs = new Querystring();
        var gigyaProvider = encodeURIComponent(qs.get("gigyaProvider"));
        var siteUID = decodeURIComponent(gigyaSocialEmail);

        var url = "/news/ashx_handlers/gigya/Log.ashx?email=" + siteUID + "&provider=" + gigyaProvider;
        GetAsynchronousData(url, "linkAccountCallback(xmlHttp.responseText);");
    }
    else {
           gigyaError(response.errorCode);
    }
}

function linkAccountCallback(result) {
    var loginData = linkLoginData.split(';');
    if (loginData[5] == 'True' || linkLoginData.indexOf(";activated") > -1) {
        doGigyaLogin(gigyaSocialEmail, loginData[2], loginData[3], '', '/pay/gigyaloginsuccess.asp?status=' + confirmationId);
    }
    else {
        if (linkLoginData.indexOf(";vsent") > -1) {
            this.location = '/pay/gigyaloginsuccess.asp?status=3&backTo=' + escape(window.parent.location.href);
        }
    }
}

function logoutFromGS() {
    var params =
    {
        callback: onLogoutHandler
    };

    gigya.services.socialize.unlinkAccounts(conf, params);
}

function onLogoutHandler(response) {
    if (response.errorCode == 0) {
        alert('המשתמש נותק בהצלחה');
    }
    else {
        alert(response.errorMessage);
    }
}

function gigyaOnLoad() {
    gigya.services.socialize.addEventHandlers(conf, {
        context: { str: 'congrats on your' }
			, onLogin: onLoginHandler
			, onLogout: onLogoutHandler
    });
}

var submitCommentButton;
function ShareByGigya(submitButton, message, title, description, pageUrl, articleImage) {

    submitCommentButton = submitButton;
    var act = new gigya.services.socialize.UserAction();
    var strPageUrl = pageUrl.toString();
    var strImageUrl = articleImage.toString();

    act.setUserMessage(message);   // Setting the User Message
    act.setTitle(title);  // Setting the Title
    act.setLinkBack(strPageUrl);  // Setting the Link Back
    act.setDescription(description);   // Setting Description
    act.addActionLink("Read More", strPageUrl);  // Adding Action Link
    act.addMediaItem({ type: 'image', src: strImageUrl, href: strPageUrl });

    var validProviders = '';
    for (var i = 0; i < providersArr.length; i++) {
        if (providersArr[i][1] == 'on') {
            validProviders += (validProviders == '' ? '' : ',') + providersArr[i][0];
        }
    }

    var params =
    {
        userAction: act
        , callback: onShareHandler
        , enabledProviders: validProviders
    };

    gigya.services.socialize.publishUserAction(conf, params);
}

function onShareHandler(response) {
    if (response.errorCode != 0) {
        alert('ארעה שגיאה בפרסום התגובה ברשתות החברתיות');
    }

    submitCommentButton.click();
}

var shareImg;
var shareProvider;
var shareProviderId;
var gigyaImagesUrl = "http://images.globes.co.il/images/site2/gigya/";

function gigyaSocialConnect(gigyaProvider, img) {
    e_counter.count(gigyaProvider, 'Gigya_Share_Comment', null, GetRuleriEventCategoryValue());

    shareImg = document.getElementById(img);
    shareProvider = gigyaProvider;

    var status;
    var found = false;
    for (var i = 0; i < providersArr.length; i++) {
        if (providersArr[i][0] == gigyaProvider) {
            shareProviderId = i;
            if (providersArr[i][1] == 'off') {
                status = 'on';
            }
            else {
                status = 'off';
            }
            found = true;
        }
    }

    if (!found) {
        status == 'on';
    }

    if (status == 'on') {
        gigya.services.socialize.connect(conf, { callback: gigyaSocialConnectOnCallBack, provider: gigyaProvider });
    }
    else {
        gigya.services.socialize.disconnect(conf, { callback: gigyaSocialConnectOffCallBack, provider: gigyaProvider });
    }
}

function gigyaSocialConnectOnCallBack(response) {
    if (response.errorCode == 0) {
        shareImg.src = gigyaImagesUrl + "Button_50x30_" + shareProvider + "_on.gif";
        providersArr[shareProviderId][1] = 'on';
    }
    else {
    
       gigyaError(response.errorCode);
    }
}

function gigyaSocialConnectOffCallBack(response) {
    if (response.errorCode == 0) {
        shareImg.src = gigyaImagesUrl + "Button_50x30_" + shareProvider + "1.gif";
        providersArr[shareProviderId][1] = 'off';
    }
    else {
        gigyaError(response.errorCode);
    }
}

var getUserNameFromGigyaProvider;
var getUserNameFromGigyatextInput;
function GetUserNameFromGigya(provider, textInput) {
    getUserNameFromGigyatextInput = document.getElementById(textInput);
    getUserNameFromGigyaProvider = provider;
    gigya.services.socialize.getUserInfo(conf, { callback: getUserNameFromGigyaHandler });
}

function getUserNameFromGigyaHandler(response) {
    if (response.errorCode == 0) {
        var user = response['user'];
        if (user.identities[getUserNameFromGigyaProvider] == null) {
            gigya.services.socialize.connect(conf, { callback: getUserNameFromGigyaConnectionHandler, provider: getUserNameFromGigyaProvider });
        }
        else {
            getUserNameFromGigyatextInput.value = user.identities[getUserNameFromGigyaProvider].nickname;
            objNickName.style.visibility = "hidden";
            ColorButtonOnGetUserName(getUserNameFromGigyaProvider);
        }
    }
    else {
        gigyaError(response.errorCode);
    }
}

function getUserNameFromGigyaConnectionHandler(response) {
    if (response.errorCode == 0) {
        var user = response['user'];
        if (user.identities[getUserNameFromGigyaProvider].nickname == '') {
            alert('מידע לא קיים');
        }
        else {
            getUserNameFromGigyatextInput.value = user.identities[getUserNameFromGigyaProvider].nickname;
            ColorButtonOnGetUserName(getUserNameFromGigyaProvider);
        }
    }
    else {
        gigyaError(response.errorCode);
    }
}

function ColorButtonOnGetUserName(provider) {
    var imgId = "imgGigya_" + provider;
    if (document.getElementById(imgId) != null) {
        document.getElementById(imgId).src = gigyaImagesUrl + "Button_50x30_" + provider + "_on.gif";
        for (var i = 0; i < providersArr.length; i++) {
            if (providersArr[i][0] == provider) {
                providersArr[i][1] = 'on';
            }
        }
    }
}

function gigyaError(number) {
    switch (number) {
        case 400101:
            alert("החלון הקופץ נחסם ע\"י הדפדפן");
            break;
        case 401003:
            alert("לא קיימת לך הרשאה לפעולה זו");
            break;
        case 403005:
            alert("משתמש לא מורשה");
            break;
        case 403009:
            alert("זמן ההתחברות לרשת זו נגמרה, יש להתחבר שוב");
            break;
        case 500025:
            alert("רשת חברתית זו משוייכת לחשבון אחר באתר גלובס");
            break;
        default:
            alert("ארעה שגיאה, יש לנסות שוב מאוחר יותר או לבצע התחברות רגילה לאתר ללא הרשת החברתית");
    }
}

function buildGigyaLoginToolbar() {
    var toolbar = "";

    var imagesArr = new Array();
    imagesArr[0] = "facebook";
    imagesArr[1] = "twitter";    
    imagesArr[2] = "linkedin";
    imagesArr[3] = "google";
    imagesArr[4] = "yahoo";

    for (var i = 0; i < imagesArr.length; i++) {
        toolbar += "<td style=\"margin: 0px; padding: 0px; border: 0px; line-height: normal; font-family: arial;"
               + "font-size: 11px; color: #9b9b9b; padding-right: 5px; text-align: center; vertical-align: top\">"
               + "<center>"
               + "<div onclick=\"gigyaLoginByProvider('" + imagesArr[i] + "')\""
               + "title=\"" + imagesArr[i] + "\" style=\"cursor: pointer; width: 30px;\">"
               + "<div style=\"width: 30px; height: 30px\">"
               + "<img src=\"http://images.globes.co.il/images/site2/gigya/" + imagesArr[i] + "_30.png\" width=\"30\" height=\"30\"></div>"
               + "</div>"
               + "</center>"
               + "</td>";
    }
    document.write(toolbar);
}

function gigyaLoginByProvider(provider) {
    var params = {
        provider: provider
                , callback: onLoginHandler
    };

    gigya.services.socialize.login(conf, params);
}

function QuickLoginByGigya(provider) {
    gigyaLoginByProvider(provider);
}

function DisconnectFromGigya() {
    deleteGigyaCookie();
    gigya.services.socialize.logout(conf, { callback: DisconnectFromGigyaHandler });
}

function DisconnectFromGigyaHandler() {
    document.location = '/';
}

var gigyaUID;
var NotifyGigyaCallbackUrl;
var topWindowTarget = true;
function NotifyGigya(url, email) {
    var qs = new Querystring();
    if (url.toLowerCase().indexOf('updatenewslettresselection.aspx') > -1 || qs.get("topwindow") == '0')
    {
        topWindowTarget = false;
    }
    
    NotifyGigyaCallbackUrl = url;
    gigyaTimestamp = encodeURIComponent(Math.round(new Date().getTime() / 1000));
    gigyaUID = encodeURIComponent(email);

    var url = "/news/ashx_handlers/gigya/CalcGigyaSig.ashx?timeStamp=" + gigyaTimestamp + "&userId=" + gigyaUID + "&secretKey=" + gigyaSecretKey;
    GetAsynchronousData(url, "NotifyGigyaHandler(xmlHttp.responseText);");
}

function NotifyGigyaHandler(response) {
    if (response.length > 0) {
        var params = {
            siteUID: decodeURIComponent(gigyaUID),
            timestamp: decodeURIComponent(gigyaTimestamp),
            signature: decodeURIComponent(response.toString()),
            callback: notifyLoginHandler
        };
        gigya.services.socialize.notifyLogin(conf, params);
    }
    else {
        smartRedirect(NotifyGigyaCallbackUrl);
    }
}

function notifyLoginHandler(response) {
    smartRedirect(NotifyGigyaCallbackUrl);
}

function smartRedirect(url)
{
    if(topWindowTarget)
    {
        window.parent.location.href = url;
    }
    else
    {
        location.href = url;
    }
}

var gigyaCookieName = 'ckGigyaGlobes';
function setGigyaCookie(value) {
    var expiredays = 1;
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + expiredays);
    document.cookie = gigyaCookieName + "=" + escape(value) +
    ((expiredays == null) ? "" : ";expires=" + exdate.toUTCString());
}

function checkGigyaCookie() {
    var cookie = getGigyaCookie(gigyaCookieName);
    if (cookie != null && cookie != "") {
        return true;
    }
    else {
        return false;
    }
}

function getGigyaCookie() {
    if (document.cookie.length > 0) {
        c_start = document.cookie.indexOf(gigyaCookieName + "=");
        if (c_start != -1) {
            c_start = c_start + gigyaCookieName.length + 1;
            c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1) c_end = document.cookie.length;
            return unescape(document.cookie.substring(c_start, c_end));
        }
    }
    return "";
}

function deleteGigyaCookie() {
    document.cookie = gigyaCookieName + '=; expires=Thu, 01-Jan-70 00:00:01 GMT;';
}
