﻿//******************** ALL ANIMATIONS ********************//
var Animations  = new Array();
var Speed = 15;
var QueryArgs = new Array();
//******************** LOAD SCRIPT ********************//
 function GetQueryString()
{
    var qs = window.location.search.substring(1);
    var tmpFull = qs.split('&');
    var tmp;
    for (var i = 0; i < tmpFull.length; i++)
    {
        tmp = tmpFull[i].split('=');
        QueryArgs[tmp[0]] = tmp[1];
    }
}

function OnLoadFunction(IDs,IDs2)
{       
    GetQueryString();
    var i = 0;
    for (i; i<IDs.length; i++) {        
        var Args = LoadArgs(IDs[i],IDs2[i]);
        var AnimInfo = new PartAnimation(Args);  
        
        Animations[IDs[i]] = AnimInfo;
        
        if (QueryArgs["id_cell"] != 'undefined' && QueryArgs["id_cell"] <= AnimInfo.Cells.length)
        {
            Animation(QueryArgs["id_cell"],'in',IDs[i]);
            Animations[IDs[i]].Cells2[QueryArgs["id_cell"]].onmouseover = new Function();
            Animations[IDs[i]].Cells2[QueryArgs["id_cell"]].onmouseout = new Function();
         } 
    }
    
    AddQueryString('top-menu');
    SetImage('left-image',IDs[0]);
    SetLinks('main');    

     
}
//******************** ANIMATIONS PARAMETRS ********************//
function LoadArgs(id,id2)
{
    var ArgArray;
    switch(id){
        case 'menu-link' : return ArgArray = new Array(id,12,'background',0,31,'transparent',id2);
            break;
    }
}
//******************** CLASS OF ANIMATION ********************//
function PartAnimation(Args)
{
    if (document.getElementById(Args[0]) != null)
    {
        var table = document.getElementById(Args[0]);
        var type_anim = Args[2]; 
        
        function FuncBind(type) 
        {
            switch(type)
            {
                case 'background' : return SetBackground;
                    break;
                case 'color' : return SetColor;
                    break;
           }
        }
        
        this.Cells = table.getElementsByTagName('td');
        
        var table2 =  document.getElementById(Args[6])
        this.Cells2 = table2.getElementsByTagName('td');
        
        this.Frames = Args[1];         
        this.StartPos = Args[3];
        this.Size = Args[4];            
        this.Tab_i = new Array();
        this.Pos = new Array();           
        var a;    
        for (i=0; i < this.Cells2.length; i++)
        {
            if(this.Cells2.onprerender != '')
                {
                    if (i < this.Cells2.length)
                    {                        
                        this.Cells2[i].onmouseover = new Function("Animation(("+i+"),'in','"+Args[0]+"');");
                        this.Cells2[i].onmouseout = new Function("Animation(("+i+"),'out','"+Args[0]+"');");
                        this.Cells[i].style.backgroundPosition = '0px 0px';
                        
                        a = this.Cells2[i].getElementsByTagName('a');
                        if (a.length > 0)                       
                            a[0].href += '?id_cell=' + i; 
                    }
                    this.Cells[i]['Color'] = 255;
                    this.Tab_i[i] = 0;
                    this.Pos[i] = 0;
                }
        }  
        
        this.AnimFun = FuncBind(type_anim);         
    } 
    else alert('Nie ma elementu o podanym ID!'); 
}
//******************** ANIMATION FUNCTION ********************//
function Animation(nr,change,id) 
{          
    var Anim = Animations[id];
    
    var cell = Anim.Cells[nr];
 
    var browser = navigator.appName;
    var version = navigator.appVersion.indexOf('6.0');
    
    if ((browser == 'Microsoft Internet Explorer') && (version == 22))
    {
        Anim.AnimFun(nr,0,change,Anim);                  
    } 
    else 
    {       
        if(cell['timer']) clearTimeout(cell['timer']);
        
        Anim.AnimFun(nr,1,change,Anim); 
        if ((Anim.Tab_i[nr] < Anim.Frames) && (Anim.Tab_i[nr] > 0) ) 
            cell['timer'] = setTimeout(function(){ Animation(nr,change,id)},Speed);
    }
} 
//******************** TYPES ANIMATION ********************//
function SetBackground(nr,stat,change,Anim) 
{
    var cell = Anim.Cells[nr];
    if (stat == 0)
    {
       if (change == 'out') 
            cell.style.backgroundPosition = '0px ' + Anim.StartPos + 'px';
       else 
            cell.style.backgroundPosition = '0px ' + (-1)*Anim.Frames*Anim.Size + 'px';
    } 
    else 
    {
       var kierunek = -1, roznica = Anim.Frames - Anim.Tab_i[nr];
       
       if (change == 'out') 
       {
            kierunek = 1;
            Anim.Tab_i[nr]--;
       } 
       else Anim.Tab_i[nr]++;

           Anim.Pos[nr] = Anim.Pos[nr] + kierunek*Anim.Size;
           cell.style.backgroundPosition = '0px ' + (Anim.Pos[nr]+Anim.StartPos) + 'px';
 
    }
}

function SetColor(nr,stat,change,Anim) 
{
    var cell = Anim.Cells[nr];
    if (stat == 0)
    {
        if (change == 'out')
            cell.style.backgroundColor = 'rgb(255,255,255)';
        else
            cell.style.backgroundColor = 'rgb(245,245,245)';
    }
    else
    {
        if (change == 'out')
        {
            if (Anim.Tab_i[nr]%3 == 0)
                cell.Color++;
            Anim.Tab_i[nr]--;
        }
        else
        {
            if (Anim.Tab_i[nr]%3 == 0)
                cell.Color--;
            Anim.Tab_i[nr]++;

        }
        var c = cell.Color;
        cell.style.backgroundColor = 'rgb('+c+','+c+','+c+')';
    }   
    
}
/**************************** OTHER FUNCTIONS *************************/

function AddQueryString(id)
{
  var top_menu = document.getElementById(id);
     
     if (top_menu != null)
     {
        cells = top_menu.getElementsByTagName('td');
        var a;
        for (var i = 0; i < cells.length; i++)
        {
            a = cells[i].getElementsByTagName('a');
                    if (a.length > 0)                       
                        a[0].href += '?id_cell=' + QueryArgs["id_cell"]; 
        } 
     }
}

function SetImage(id,id2)
{
 var td_image = document.getElementById(id);
    
     if (td_image != null)
     {      
        var image = td_image.getElementsByTagName('img');
        var url = td_image.getElementsByTagName('input');
        var tmp_url = url[0].value.split(' ');
        var tmp_name = tmp_url[1].split('.');        
        if (QueryArgs["id_cell"] <= Animations[id2].Cells.length)        
            var imgName = tmp_name[0] + QueryArgs["id_cell"] + '.' + tmp_name[1];
        else
            var imgName = tmp_name[0] + '1.' + tmp_name[1];
        image[0].src = tmp_url[0] + imgName;
     }
}

function SetLinks(id)
{
    var main = document.getElementById(id);
    
    if (main != null)
    {
        var off = document.getElementById('off');
        if  (off != null)
            return;
        var Links = main.getElementsByTagName('a');
        if (Links != null)
            for (var i = 0; i < Links.length; i++)
                Links[i].href += '?id_cell=' + QueryArgs["id_cell"]; 
    }
}