// michal@bajer.net.pl
// 2009-07-10
//2009-08-03
//2009-09-14
//<!--
function _(id){
  return document.getElementById(id);
}
function cmsUrlDatetime(){
   return '&datetime='+(new Date().getTime())+Math.round(Math.random()*100);
}
function cmsShowDate(){
   var date=new Date();
   _('dateArea').innerHTML=cmsDateFormat(date.getDate())+'.'+cmsDateFormat(date.getMonth()+1)+'.'+date.getFullYear()+'&nbsp;'+
   cmsDateFormat(date.getHours())+':'+cmsDateFormat(date.getMinutes())+':'+cmsDateFormat(date.getSeconds());
   setTimeout('cmsShowDate()', 1*1000);
}
function cmsDateFormat(val){
      val = String(val);
      while (val.length < 2) val = "0" + val;
      return val;
}
//http://mathiasbynens.be/archive/2006/01/js-number-format
function cmsNumberFormat(a, b, c, d) {
 // number_format(number, decimals, comma, formatSeparator)
 var k = '';
 if(a.indexOf('-') == 0) {
  k = '-';
  a = a * -1;
 }
 a = Math.round(a * Math.pow(10, b)) / Math.pow(10, b);
 var e = a + '';
 var f = e.split('.');
 if(!f[0]) f[0] = '0';
 if(!f[1]) f[1] = '';
 if(f[1].length < b){
  var g = f[1];
  for(var i = f[1].length + 1; i <= b; i++) {
   g += '0';
  }
  f[1] = g;
 }
 if(d != '' && f[0].length > 3) {
  var h = f[0];
  f[0] = '';
  for(var j = 3; j < h.length; j += 3) {
   i = h.slice(h.length - j, h.length - j + 3);
   f[0] = d + i +  f[0] + '';
  }
  j = h.substr(0, (h.length % 3 == 0) ? 3 : (h.length % 3));
  f[0] = j + f[0];
 }
 c = (b <= 0) ? '': c;
 return k + f[0] + c + f[1];
}
function f_scrollTop() {  //http://www.softcomplex.com/docs/get_window_size_and_scrollbar_position.html
  return f_filterResults (
    window.pageYOffset ? window.pageYOffset : 0,
    document.documentElement ? document.documentElement.scrollTop : 0,
    document.body ? document.body.scrollTop : 0
  );
}
function f_filterResults(n_win, n_docel, n_body) { //http://www.softcomplex.com/docs/get_window_size_and_scrollbar_position.html
  var n_result = n_win ? n_win : 0;
  if (n_docel && (!n_result || (n_result > n_docel)))
    n_result = n_docel;
  return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}
function setscrollposition(scrOfX,scrOfY) { //http://www.webmasterworld.com/javascript/3545507.htm
if (window.scrollTo) {window.scrollTo(scrOfX,scrOfY); }else
if( typeof( window.pageYOffset ) == 'number' ) {
//Netscape compliant
window.pageYOffset=scrOfY;
window.pageXOffset=scrOfX;
} else if( document.body && ( document.body.scrollLeft && document.body.scrollTop ) ) {
//DOM compliant
document.body.scrollTop=scrOfY;
document.body.scrollLeft=scrOfX;
} else if( document.documentElement && ( document.documentElement.scrollLeft && document.documentElement.scrollTop ) ) {
//IE6 standards compliant mode
document.documentElement.scrollTop=scrOfY;
document.documentElement.scrollLeft=scrOfX;
} 
}

 function newwindowurl2(id_window,url,left,top,width,height) {

 if (left==undefined) left=document.getElementById('mouseX').value;
 if (top==undefined) top=document.getElementById('mouseY').value;
 if (width==undefined) width=450;
 if (height==undefined) height=450;
 drawRectangle(id_window,left,top,width,height);
 myrect = document.getElementById('newdiv'+id_window);
 myrect.innerHTML= myrect.innerHTML + '<div align="right" style="background:white;"><a OnClick="document.getElementById(\'newdiv'+id_window+'\').style.visibility = \'hidden\';" style="cursor:pointer;"><img src="/gfx/close.jpg" border="0"></a></div>'+
 '<iframe src="'+url+'" width="'+width+'" height="'+(height-13)+'" frameborder="0">ups... twoja przegladarka nie obsługuje ramek.</iframe>';
}
function newwindowurl(id_window,url,left,top,width,height) {
                                                                                                                                                                                                                                                                                                                                                                                     
 if (left==undefined) left=document.getElementById('mouseX').value;
 if (top==undefined) top=document.getElementById('mouseY').value;
 if (width==undefined) width=450;                                                                                                                                                                                                                                                                                                                                                    
 if (height==undefined) height=450;                                                                                                                                                                                                                                                                                                                                                  
 drawRectangle(id_window,left,top,width,height);                                                                                                                                                                                                                                                                                                                                     
 myrect = document.getElementById('newdiv'+id_window);
 myrect.innerHTML= myrect.innerHTML + '<div align="right" style="background:white;"><a OnClick="document.getElementById(\'newdiv'+id_window+'\').style.visibility = \'hidden\';" style="cursor:pointer;"><img src="/gfx/close.jpg" border="0"></a></div>'+
 '<iframe src="'+url+'" width="'+width+'" height="'+(height-13)+'" frameborder="0">ups... twoja przegladarka nie obsługuje ramek.</iframe>';
}                                                                                                                                                                                                                                                                                                                                                                                    
function drawRectangle(id_window,left, top, width, height) {
 if (document.createElement) {
  if (document.getElementById('newdiv'+id_window+'')==null){
    newdiv=document.createElement("newdiv"+id_window);
 }else{
    newdiv=document.getElementById('newdiv'+id_window);
 }

   newdiv.style.position="absolute";
   newdiv.style.left = left+"px";
   newdiv.style.top  = top+"px";
   newdiv.style.width = width+"px";
   newdiv.style.height = height+"px";
   newdiv.style.backgroundColor = 'white';
   newdiv.style.visibility = 'visible';
   newdiv.style.border="1px solid black";
   newdiv.id = 'newdiv'+id_window;
   newdiv.innerHTML = '';
   document.body.appendChild(newdiv);
   }
 }
document.write('<input type="hidden" name="mouseX" value="0" id="mouseX">');
document.write('<input type="hidden" name="mouseY" value="0" id="mouseY">');
//<!-- Begin
var IE = document.all?true:false;
if (!IE) document.captureEvents(Event.MOUSEMOVE)
document.onmousemove = getMouseXY;
var tempX = 0;
var tempY = 0;
function getMouseXY(e) {
if (IE) { // grab the x-y pos.s if browser is IE
tempX = event.clientX + document.documentElement.scrollLeft;
tempY = event.clientY + document.documentElement.scrollTop;
}
else {  // grab the x-y pos.s if browser is NS
tempX = e.pageX;
tempY = e.pageY;
}  
if (tempX < 0){tempX = 0;}
if (tempY < 0){tempY = 0;}  
document.getElementById('mouseX').value = tempX;
document.getElementById('mouseY').value = tempY;
return true;
}
 function newwindowurltext(id_window,text,left,top,width,height) {

 if (left==undefined) left=document.getElementById('mouseX').value;
 if (top==undefined) top=document.getElementById('mouseY').value;
 if (width==undefined) width=450;
 if (height==undefined) height=450;
 drawRectangle(id_window,left,top,width,height);
 myrect = document.getElementById('newdiv'+id_window);
 myrect.innerHTML= myrect.innerHTML + '<div style="background:white;height:'+height+'px;"><div align="right"><a OnClick="document.getElementById(\'newdiv'+id_window+'\').style.visibility = \'hidden\';" style="cursor:pointer;"><img src="/gfx/close.jpg" border="0"></a></div>'+
 '<div align="justify" style="padding:5px;">'+text+'</div></div>';
}
function unserialize(data){
    // Takes a string representation of variable and recreates it
    //
    // version: 903.3016
    // discuss at: http://phpjs.org/functions/unserialize
    // +     original by: Arpad Ray (mailto:arpad@php.net)
    // +     improved by: Pedro Tainha (http://www.pedrotainha.com)
    // +     bugfixed by: dptr1988
    // +      revised by: d3x
    // +     improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +      input by: Brett Zamir (http://brett-zamir.me)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // %            note: We feel the main purpose of this function should be to ease the transport of data between php & js
    // %            note: Aiming for PHP-compatibility, we have to translate objects to arrays
    // *       example 1: unserialize('a:3:{i:0;s:5:"Kevin";i:1;s:3:"van";i:2;s:9:"Zonneveld";}');
    // *       returns 1: ['Kevin', 'van', 'Zonneveld']
    // *       example 2: unserialize('a:3:{s:9:"firstName";s:5:"Kevin";s:7:"midName";s:3:"van";s:7:"surName";s:9:"Zonneveld";}');
    // *       returns 2: {firstName: 'Kevin', midName: 'van', surName: 'Zonneveld'}
    var error = function (type, msg, filename, line){throw new this.window[type](msg, filename, line);};
    var read_until = function (data, offset, stopchr){
        var buf = [];
        var chr = data.slice(offset, offset + 1);
        var i = 2;
        while (chr != stopchr) {
            if ((i+offset) > data.length) {
                error('Error', 'Invalid');
            }
            buf.push(chr);
            chr = data.slice(offset + (i - 1),offset + i);
            i += 1;
        }
        return [buf.length, buf.join('')];
    };
    var read_chrs = function (data, offset, length){
        var buf;

        buf = [];
        for(var i = 0;i < length;i++){
            var chr = data.slice(offset + (i - 1),offset + i);
            buf.push(chr);
        }
        return [buf.length, buf.join('')];
    };
    var _unserialize = function (data, offset){
        var readdata;
        var readData;
        var chrs = 0;
        var ccount;
        var stringlength;
        var keyandchrs;
        var keys;

        if(!offset) {offset = 0;}
        var dtype = (data.slice(offset, offset + 1)).toLowerCase();

        var dataoffset = offset + 2;
        var typeconvert = new Function('x', 'return x');

        switch(dtype){
            case 'i':
                typeconvert = function (x) {return parseInt(x, 10);};
                readData = read_until(data, dataoffset, ';');
                chrs = readData[0];
                readdata = readData[1];
                dataoffset += chrs + 1;
            break;
            case 'b':
                typeconvert = function (x) {return parseInt(x, 10) == 1;};
                readData = read_until(data, dataoffset, ';');
                chrs = readData[0];
                readdata = readData[1];
                dataoffset += chrs + 1;
            break;
            case 'd':
                typeconvert = function (x) {return parseFloat(x);};
                readData = read_until(data, dataoffset, ';');
                chrs = readData[0];
                readdata = readData[1];
                dataoffset += chrs + 1;
            break;
            case 'n':
                readdata = null;
            break;
            case 's':
                ccount = read_until(data, dataoffset, ':');
                chrs = ccount[0];
                stringlength = ccount[1];
                dataoffset += chrs + 2;

                readData = read_chrs(data, dataoffset+1, parseInt(stringlength, 10));
                chrs = readData[0];
                readdata = readData[1];
                dataoffset += chrs + 2;
                if(chrs != parseInt(stringlength, 10) && chrs != readdata.length){
                    error('SyntaxError', 'String length mismatch');
                }
            break;
            case 'a':
                readdata = {};

                keyandchrs = read_until(data, dataoffset, ':');
                chrs = keyandchrs[0];
                keys = keyandchrs[1];
                dataoffset += chrs + 2;

                for(var i = 0;i < parseInt(keys, 10);i++){
                    var kprops = _unserialize(data, dataoffset);
                    var kchrs = kprops[1];
                    var key = kprops[2];
                    dataoffset += kchrs;

                    var vprops = _unserialize(data, dataoffset);
                    var vchrs = vprops[1];
                    var value = vprops[2];
                    dataoffset += vchrs;

                    readdata[key] = value;
                }

                dataoffset += 1;
            break;
            default:
                error('SyntaxError', 'Unknown / Unhandled data type(s): ' + dtype);
            break;
        }
        return [dtype, dataoffset - offset, typeconvert(readdata)];
    };
    return _unserialize(data, 0)[2];
}
function Set_Cookie( name, value, expires, path, domain, secure )//http://techpatterns.com/downloads/javascript_cookies.php
{
// set time, it's in milliseconds
var today = new Date();
today.setTime( today.getTime() );

/*
if the expires variable is set, make the correct
expires time, the current script below will set
it for x number of days, to make it for hours,
delete * 24, for minutes, delete * 60 * 24
*/
if ( expires )
{
expires = expires * 1000 * 60 * 60 * 24;
}
var expires_date = new Date( today.getTime() + (expires) );

document.cookie = name + "=" +escape( value ) +
( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
( ( path ) ? ";path=" + path : "" ) +
( ( domain ) ? ";domain=" + domain : "" ) +
( ( secure ) ? ";secure" : "" );
}

//-->