﻿var min = 8;
var max = 180;
var cookieName = 'SanaCookie_CurrentFontSize';
var cookieRefreshName = 'SanaCookie_BeforeRefresh';
var increase = 1;
var decrease = 2;
var defaultClick = 3;
var days = 5;

function TextSizeButtonClick(minValue, maxValue, divName, decreasePersents, increasePersents, ClickMode, inCookieName, isStartUp, decreasePoints, increasePoints)
{
    //TO DELETE
    //eraseCookie(cookieName);
    cookieName = inCookieName;
    min = minValue;
    max = maxValue;
    var IsIncrease = false;
    var ChangeSizeByValue = 0;
    //RefreshManager(ClickMode);
    var cookieValue = readCookie(cookieName);
    if (cookieValue == null)
    {
        createCookie(cookieName, defaultClick, days)
        cookieValue = readCookie(cookieName);
    }
    createCookie('Sana_decreasePersents', decreasePersents, days)
    createCookie('Sana_increasePersents', increasePersents, days)
    cookieValue = parseInt(cookieValue);
    var fontPoints = 0;
    var simplePercents = 0;
    if (isStartUp == true)
    {
        cookieValue = defaultClick;
    }
    if (cookieValue != ClickMode || isStartUp == true)
    {
        if (ClickMode == increase)
        {
            simplePercents = increasePersents;
            if (cookieValue == defaultClick)
            {
                fontPoints = +increasePoints;
                ChangeSizeByValue = increasePersents - 100;
            }
            else if (cookieValue == decrease)
            {
                fontPoints = decreasePoints + increasePoints;
                ChangeSizeByValue = (100 - decreasePersents) + (increasePersents - 100);
            }
        }
        else if (ClickMode == decrease)
        {
            simplePercents = decreasePersents;
            if (cookieValue == defaultClick)
            {
                fontPoints = (-1) * decreasePoints;
                ChangeSizeByValue = 0 - (100 - decreasePersents);
            }
            else if (cookieValue == increase)
            {
                fontPoints = (-1) * (increasePoints + decreasePoints);
                ChangeSizeByValue = 0 - ((100 - decreasePersents) + (increasePersents - 100));
            }
        }
        else if (ClickMode == defaultClick)
        {
            simplePercents = 100;
            if (cookieValue == increase)
            {
                fontPoints = -increasePoints;
                ChangeSizeByValue = 0 - (increasePersents - 100);
            }
            else if (cookieValue == decrease)
            {
                fontPoints = +decreasePoints;
                ChangeSizeByValue = (100 - decreasePersents);
            }
        }
        else
        {
            return;
        }
        createCookie(cookieName, ClickMode, days)
        var splitedDiv = divName.split(';');
        for (i = 0; i < splitedDiv.length; i = i + 1)
        {
            if (splitedDiv[i] != '')
            {
                var selectedDiv = document.getElementById(splitedDiv[i]);
                if (selectedDiv != null)
                {
                    SetStyle(selectedDiv, ChangeSizeByValue, fontPoints, simplePercents, true)
                    SetStyleToChildrens(selectedDiv, ChangeSizeByValue, fontPoints, simplePercents);
                }
            }
        }
		resize();
    }
}

function SetStyleToChildrens(element, pxPercents, fontPoints, simplePercents)
{
    if (element.hasChildNodes())
    {
        var children = element.childNodes;
        if (children.length != 0)
        {
            for (var i = children.length - 1; i >= 0; i--)
            {
                SetStyle(children[i], pxPercents, fontPoints, simplePercents, false)
                SetStyleToChildrens(children[i], pxPercents, fontPoints, simplePercents);
            }
        }
    }
}
function RefreshManager(ClickMode)
{
    var refreshState = readCookie(cookieRefreshName);
    if (refreshState == null || refreshState.toString() == 'NaN')
    {
        createCookie(cookieRefreshName, 1, 1);
    }
    else
    {
        refreshState = parseInt(refreshState);
        if (refreshState >= 4)
        {
            createCookie(cookieName, ClickMode, days)
            eraseCookie(cookieRefreshName);
            window.location.reload();
        }
        else
        {
            var cookieValue = readCookie(cookieName);
            var allow = true;
            if (cookieValue != null)
            {
                cookieValue = parseInt(cookieValue);
                if (ClickMode == cookieValue)
                {
                    allow = false; //Same btn cliked.Refresh is not needed.
                }
            }
            if (allow == true)
            {
                refreshState = refreshState + 1;
                createCookie(cookieRefreshName, refreshState, 1);
            }

        }
    }
    if (ClickMode == defaultClick)
    {

    }
}
function SetStyle(element, percents, fontPoints, simplePercents, usePercents)
{

    if (element == null)
    {
        return;
    }
    if ((element.nodeName == 'FONT' || element.nodeName == 'font') && usePercents==false)
    {
        if (element.size != "")
        {
            var fontSizeValue = parseInt(element.size);
            fontSizeValue = fontSizeValue + fontPoints;
            element.size = fontSizeValue;
        }
    }
   else
    {
	
        if (element.style != null && usePercents==true)
        {
            if (element.style.fontSize != null || element.style.fontSize != " " || element.style.fontSize != "")
            {
                if (element.style.fontSize.match("%"))
                {
                    if (element.nodeName == 'SPAN' || element.nodeName == 'span')
                    {
                        element.style.fontSize = " ";
                    }
                    else
                    {
//                        var knownValue = NaN;
//                        var valueToParce=element.style.fontSize.replace("%", "");
//                        if (valueToParce.match(','))
//                        {
//                            //knownValue=parseDouble(valueToParce);
//                        }
//                        else
//                        {
//                            knownValue=parseInt(valueToParce);
//                         }
//                        if (knownValue.toString() != 'NaN')
//                        {
                            element.style.fontSize = simplePercents+"%";/*(knownValue + percents) + "%";*/
						//}
                    }
                } 
//                if (usePercents == true)
//                {
//                    element.style.fontSize = simplePercents + "%";
//                }
//                else
//                {
//                    var knownValue = parseInt(element.style.fontSize.replace("px", ""));
//                    if (knownValue.toString() != 'NaN')
//                    {
//                        var NewValueToSet = knownValue + GetPersentsOf(knownValue, percents);
//                        if (knownValue >= min && knownValue <= max)
//                        {
//                            element.style.fontSize = knownValue + GetPersentsOf(knownValue, percents) + "px";
//                        }
//                        else
//                        {
//                            if (knownValue <= min)
//                            {
//                                element.style.fontSize = min;
//                            }
//                            if (knownValue >= max)
//                            {
//                                element.style.fontSize = max;
//                            }
//                        }
//                    }
//                }
            }
        }
    }
}
function GetPersentsOf(knownValue, percents)
{
    return ((knownValue * percents) / 100);
}
function createCookie(name, value, days)
{
    if (days)
    {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else var expires = "";
    document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name)
{
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++)
    {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

function eraseCookie(name)
{
    createCookie(name, "", -1);
}
