﻿//Variables
var _repeater;
var divUpdateProgress = 'updateProgress';        

//var divSuccessMessagePanel = 'succesPanel';
var divSuccessMessageSpan = 'successMessageLeft';
var divSuccessMessageSpanRight = 'successMessageRight';
//var divErrorMessagePanel = 'errorPanel';
var divErrorMessageSpan = 'errorMessageLeft';
var divErrorMessageSpanRight = 'errorMessageRight';
var errorMsg='';

function showUpdateProgress()
{
    $get(divUpdateProgress).style.display = 'block';
}
function hideUpdateProgress()
{
    $get(divUpdateProgress).style.display = 'none';     
}

function showSuccessMessage(msg)
{
    $get(divSuccessMessagePanel).style.display = 'block';
    $get(divSuccessMessageSpan).innerHTML = msg;
}
function hideSuccessMessage()
{
    $get(divSuccessMessagePanel).style.display = 'none';
}  
function showSuccessMessageRight(msg)
{
    $get(divSuccessMessagePanelRight).style.display = 'block';
    $get(divSuccessMessageSpanRight).innerHTML = msg;
}
function hideSuccessMessageRight()
{
    $get(divSuccessMessagePanelRight).style.display = 'none';
}  

function showErrorMessage(msg)
{
    $get(divErrorMessagePanel).style.display = 'block';
    $get(divErrorMessageSpan).innerHTML = msg;
}
function hideErrorMessage()
{
    $get(divErrorMessagePanel).style.display = 'none';
} 
function showErrorMessageRight(msg)
{
    $get(divErrorMessagePanelRight).style.display = 'block';
    $get(divErrorMessageSpanRight).innerHTML = msg;
}
function hideErrorMessageRight()
{
    $get(divErrorMessagePanelRight).style.display = 'none';
} 

function setText(element, text)
{
    if (typeof text != 'undefined')
    {
        if (typeof element.innerText != 'undefined')
        {
            element.innerText = text;
        }
        else if (typeof element.textContent != 'undefined')
        {
            element.textContent = text;
        }
    }
}   

function selectListBoxByValue(listBox, value)
{
    listBox.selectedIndex = 0;

    var length = listBox.options.length;

    for (var i = 0; i < length; i++)
    {
        if (listBox.options[i].value == value)
        {
            listBox.selectedIndex = i;
            break;
        }
    }
}

function setTextArray(element,textArray)
{
    for(var i = 0; i < textArray.length; i++)
    {            
        if (typeof element.innerText != 'undefined')
        {
            element.innerText = textArray[i];
        }
        else if (typeof element.textContent != 'undefined')
        {
            element.textContent = textArray[i];
        }       
    } 
}

function ErrorHandler()
{
    hideUpdateProgress();
    var stackTrace = error.get_stackTrace();
    var message = error.get_message();
    var statusCode = error.get_statusCode();
    var exceptionType = error.get_exceptionType();
    var timedout = error.get_timedOut();
    alert(message);
   
    // Display the error.    
    /*
    var RsltElem = document.getElementById("Results");
    RsltElem.innerHTML = 
        "Stack Trace: " +  stackTrace + "<br/>" +
        "Service Error: " + message + "<br/>" +
        "Status Code: " + statusCode + "<br/>" +
        "Exception Type: " + exceptionType + "<br/>" +
        "Timedout: " + timedout;
    */     
}

function TimeOutHandler()
{

}

//Error Handling
function ErrorHandler(result)
{
    alert("Timeout :" + result);
}          

function TimeOutHandler(result)
{          
    var msg=result.get_exceptionType() + "\r\n";
    msg += result.get_message() + "\r\n";
    msg += result.get_stackTrace();
    alert(msg);
}

function tableruler()
{
    if (document.getElementById && document.createTextNode)
    {
        var tables=document.getElementsByTagName('table');
        for (var i=0;i<tables.length;i++)
        {
            if(tables[i].className=='showInserts')
            {
                var trs=tables[i].getElementsByTagName('tr');
                for(var j=0;j<trs.length;j++)
                {
                    if(trs[j].parentNode.nodeName=='TBODY')
                    {
                        if(trs[j].className=='bgcTableGrey') {
                            trs[j].onmouseover=function(){this.className='ruled';return false}
                            trs[j].onmouseout=function(){this.className='bgcTableGrey';return false}
                        }else if(trs[j].className=='bgcTableGrey past') {
                            trs[j].onmouseover=function(){this.className='ruled past';return false}
                            trs[j].onmouseout=function(){this.className='bgcTableGrey past';return false}
                        }else if(trs[j].className=='past') {
                            trs[j].onmouseover=function(){this.className='ruled past';return false}
                            trs[j].onmouseout=function(){this.className='past';return false}
                        }else {
                            trs[j].onmouseover=function(){this.className='ruled';return false}
                            trs[j].onmouseout=function(){this.className='';return false}
                        }                       
                    }
                }
            }
        }
    }
}

function HighlightLink(links,newPageSize)
{
    for (var i = 0; i<links.length; i++)
    {
        var child = links[i];

        if (child.nodeType == '1') //if the node is an element
        {
            var dis = child.getAttribute('name');
            
            if(dis != 'undefined') //not quite sure if this is necessary, but it's working
                if (dis==newPageSize)
                {
                    Sys.UI.DomElement.addCssClass(child, "aktNav");
                }
                else
                {
                    Sys.UI.DomElement.removeCssClass(child, "aktNav");                                       
                }
            
        }
    }
}

function ValidationClassAddon(elements)
{
    var valid=true;
    errorMsg='';
    for (l=0;l<arguments.length;l++)
    {
        if (arguments[l].ServerSideValidationBehavior!=null)
        {        
            var valEl=arguments[l].ServerSideValidationBehavior;
            valEl.Validate();
            if (valEl._element.isvalid==false)
            {
                //color css class for element
                Sys.UI.DomElement.addCssClass($get(valEl._element.controltovalidate), "bRed");
                valid=false;             
            }
            else
            {
                Sys.UI.DomElement.removeCssClass($get(valEl._element.controltovalidate), "bRed");
            }
        }
        else
        {
            ValidatorValidate(arguments[l]);
            if (arguments[l].isvalid==false)
            {
                //color css class for element
                Sys.UI.DomElement.addCssClass($get(arguments[l].controltovalidate), "bRed");
                valid=false;
                errorMsg+="<li>"+arguments[l].errormessage+"</li>";
            }
            else
            {
                Sys.UI.DomElement.removeCssClass($get(arguments[l].controltovalidate), "bRed");
            }        
        }
    }
    return valid;
}



function RemimeAlert(){    
    this.Items = new Array();
}

RemimeAlert.prototype.AddAlert = function(alertInfo) {
    if (alertInfo.Number_before!=undefined && alertInfo.Number_before!=null)
    {
        if (this.Exist(alertInfo)==false)
        {
            Array.add(this.Items, alertInfo);
        }
        else
        {
            alert("You already set this alarm.");
        }
    }
}

RemimeAlert.prototype.Exist = function(alertInfo) {
    for (i=0;i<this.Items.length;i++)
    {
        if ((this.Items[i]!=undefined) && (this.Items[i].Number_before!=undefined))        
        {
            if ((this.Items[i].Number_before==alertInfo.Number_before) && (this.Items[i].Type_before==alertInfo.Type_before))
            {
                return true;
                break;
            }
            var numOfDays= 1 * this.Items[i].Number_before;
            if (this.Items[i].Type_before==2)
                numOfDays= 7 * this.Items[i].Number_before;
                
            var alertnumOfDays= 1 * alertInfo.Number_before;
            if (alertInfo.Type_before==2)
                alertnumOfDays= 7 * alertInfo.Number_before;
            if (numOfDays==alertnumOfDays)
            {
                return true;
                break;            
            }                 
        }        
    }
    return false;
}

RemimeAlert.prototype.RemoveAlert = function(id) {
    Array.removeAt(this.Items, id);
    this.RenderTable(this.TableID);
}

RemimeAlert.prototype.RenderTable = function(tableID) {    
    this.TableID=tableID;
    var AlertTable=document.getElementById(tableID);
    //var AlertTableBody = document.getElementById(tableID).getElementsByTagName("TBODY")[0];
    AlertTable.innerHTML="";
    //remove all rows from table
    /*
    var firstRow=AlertTable.rows[0];
    var rowNum=AlertTable.rows.length;
    for(var ri=0;ri<rowNum;ri++){
        var oldNode=AlertTable.rows[0];
        oldNode.parentNode.removeChild(oldNode);
    }
    */
    for (i=0;i<this.Items.length;i++)
    {
        if ((this.Items[i]!=undefined) && (this.Items[i].Number_before!=undefined) && (this.Items[i].Number_before!=0))        
        {
            var alertText="";
            alertText+=this.Items[i].Number_before;                   
            var textDaysWeeks = "";
            
            if (this.Items[i].Type_before=="1")
            {
                if (this.Items[i].Number_before=="1")
                {
                    textDaysWeeks="day";
                }
                else
                {
                    textDaysWeeks="days";
                }
            }
            else if (this.Items[i].Type_before=="2")
            {
                if (this.Items[i].Number_before=="1")
                {
                    textDaysWeeks="week";
                }
                else
                {
                    textDaysWeeks="weeks";
                }    
            }
            alertText+=" " + textDaysWeeks + " before | ";
            removeLink = document.createElement('a');            
            var itemIndex=i;
            removeLink.setAttribute('href', 'javascript:void(remimeAlert.RemoveAlert(' + itemIndex + '));itemsToSave();');
            removeLink.innerHTML='delete <br />';
            var row1=document.createElement('span');
            row1.appendChild(document.createTextNode(alertText));
            row1.appendChild(removeLink);
            AlertTable.appendChild(row1);
        }
        
    }
}

function getYear(ctrlID)
{
    if (parseInt($get(ctrlID).options[$get(ctrlID).selectedIndex].value)>0)
        return parseInt($get(ctrlID).options[$get(ctrlID).selectedIndex].value);                            
    else
        return new Date().getFullYear();
}        
function getMnth(ctrlID){
    if (parseInt($get(ctrlID).options[$get(ctrlID).selectedIndex].value)>0)
        return parseInt($get(ctrlID).options[$get(ctrlID).selectedIndex].value)-1;
    else
        return new Date().getMonth();                
}        
function getDay(ctrlID){
    if (parseInt($get(ctrlID).options[$get(ctrlID).selectedIndex].value)>0)
        return parseInt($get(ctrlID).options[$get(ctrlID).selectedIndex].value);
    else
        return new Date().getDate();
}  