var PATH='/index.php/';
function addToFavorites(title, url)
{
    if (document.all)
        window.external.AddFavorite(url, title);
    else if (window.sidebar)
        window.sidebar.addPanel(title, url, "");
}

function setAsStart(el)
{
    if (window.external)
    {
        el.style.behavior='url(#default#homepage)';
        el.setHomePage(location.href);
    }
}

function updatePage(link,url,name,leavebreadcrumb)
{
        new Ajax.Updater('main',PATH+url+'?remote=1', 
        {asynchronous:true, evalScripts:true,onComplete:function(){Element.hide('indicator');
	 document.getElementById('main').style.opacity = 1;
	 ss.fixAllLinks();
	}}
        );
        document.title='ST Quarto Internet Service Provider - '+name;
        
    	document.getElementById('main').style.opacity = 0.5;
    if(!leavebreadcrumb)
    {
        $A($('main_menu').getElementsByTagName('a')).each( function(menu_el){
                menu_el.className='';
            });
            if($('client_menu'))
                $A($('client_menu').getElementsByTagName('a')).each( function(menu_el){
                menu_el.className='';
            });
            Element.show('indicator');
            link.className='active';
    
        $('path').innerHTML='&gt; <a href="'+PATH+'" onclick="return updatePage(this,\'\',\'\')" onfocus="this.blur()" class="active">Quarto</a>';
         if(name)
        {
        $('path').innerHTML+=' &gt <a href="'+PATH+url+'" onclick="return updatePage(this,\''+url+'\',\''+name+'\',true)\" onfocus="this.blur()" class="active">'+name+'</a>';
        }   
    }
    var pagename=name;
    var dater=new Date();
    $('foot').getElementsByTagName('img')[0].src='http://www.quarto.pl/stats/phpmyvisites.php?url='+escape(document.location)+'&pagename='+escape(pagename)+'&id=1&h='+dater.getHours()+'&m='+dater.getMinutes()+'&s='+dater.getSeconds();
    //var k=pmv_log(1, "http://www.quarto.pl/stats/phpmyvisites.php", pagename, null);
    //$('stats').innerHTML=pmv_log(1, "http://www.quarto.pl/stats/phpmyvisites.php", pagename);
    return false;
}
var start;
var kbytes_of_data;
function speedTest(el)
{
    el.className='active';
    $('main').innerHTML='<img src="'+PATH+'../images/indicator.gif" style="float:left;") /> Proszę czekać, trwa test prędkości</p>';
    time      = new Date();
    start = time.getTime();
    new Ajax.Updater('main',PATH+'predkosc?remote=1', 
        {asynchronous:true, evalScripts:true,
onComplete:function()
{
    time          = new Date();
    end       = time.getTime();
    if (end == start)
        {downloadtime = 0
        }
    else
    {downloadtime = (end - start)/1000;
    }
    linespeed     = kbytes_of_data/downloadtime;
    kbps          = (Math.round((linespeed*8)*10*1.024))/10;
    $('main').innerHTML='<h1>Test predkosci zakonczony</h1><p>Twoja predkosc to: '+kbps+'kbps, co oznacza, ze mozesz sciagnac przecietny utwor w mp3 (5MB) w ciagu '+Math.round((5*1024*8/$result)*100/100)+' sekund.</p>';
    }}
        );
    return false;
    
}

function emailCheck (emailStr) {

    var emailPat=/^(.+)@(.+)$/
    
    var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
    var validChars="\[^\\s" + specialChars + "\]"
    var quotedUser="(\"[^\"]*\")"
    var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
    var atom=validChars + '+'
    var word="(" + atom + "|" + quotedUser + ")"
    var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
    var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")
    
    var matchArray=emailStr.match(emailPat)
    if (matchArray==null) {
        return false;
    }
    var user=matchArray[1]
    var domain=matchArray[2]
    
    if (user.match(userPat)==null) {
        return false;
    }
    
    
    // Domain is symbolic name
    var domainArray=domain.match(domainPat)
    if (domainArray==null) {
        return false;
    }
    
    /* domain name seems valid, but now make sure that it ends in a
       three-letter word (like com, edu, gov) or a two-letter word,
       representing country (uk, nl), and that there's a hostname preceding 
       the domain or country. */
    
    /* Now we need to break up the domain to get a count of how many atoms
       it consists of. */
    var atomPat=new RegExp(atom,"g")
    var domArr=domain.match(atomPat)
    var len=domArr.length
    if (domArr[domArr.length-1].length<2 || 
        domArr[domArr.length-1].length>3) {
       // the address must end in a two letter or three letter word.
       return false;
    }
    
    // Make sure there's a host name preceding the domain.
    if (len<2) {
       return false;
    }
    
    // If we've gotten this far, everything's valid!
    return true;
}
function trim(str)
    {
       return str.replace(/^\s*|\s*$/g,"");
    }
function showErrors(before,errors)
    {   
        if( $('error') )
        {
            $('error').remove();
        }
        var errstring='<ul>';
        for(var i=0;i<errors.length;i++)
        {
            errstring+='<li>'+errors[i]+'</li>';
        }
        errstring+='</ul>';
        new Insertion.Before(before,'<div class=\"error\" id=\"error\"><p>Wystąpił błąd:</p>'+errstring);
    }
function autoHightlight(id)
    {
        $(id).onfocus=function()
        {
            this.focus();this.select();
            if(this.value==eval(this.id))
            {this.value='';}
            return false;
        };
        $(id).onblur=function(){
        if(trim(this.value) == '')
        {
            this.value=eval(this.id);
         }
        }
    }
function macCheck(mac)
{
    var macPat=/^([0-9a-fA-F]{2}[-:]?){5}[0-9a-fA-F]{2}$/;
    var matchArray=mac.match(macPat);
    if (matchArray==null) {
        return false;
    }
    return true;
}

function urlCheck(url)
{
    var urlPat=/^(http|https|ftp):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)/i;
    var matchArray=url.match(urlPat);
    if (matchArray==null) {
        return false;
    }
    return true;
}
