var hideElements = new Array();


/**
 * Ukrywa/pokazuje element
 * @param obj Object
 * @param change Object obiekt ktory ma akcje
 */
function hide_element(obj,change,start)
{

   // Effect.BlindUp('podserwisy_list_content',{duration:1.5});
    index = searchHideElement(obj);
    if(index===false){
       
       index = hideElements.length;
       //zapisuje ze element zostal zwiniety
       if(start==1){
           hideElements[index]= new Array(obj,0);
       }else{
           hideElements[index]= new Array(obj,1);
       }
       
    }else if(hideElements[index][1]==0){
        hideElements[index][1]=1;
    }else{
        hideElements[index][1]=0;
    }

    //sprawdza czy rozwiniety
    if(hideElements[index][1]==0){
        text = "Zwi\u0144";
        image_src = "http://www.bukmacherzy.com/new_lay/images/minus2.gif";
        Effect.BlindDown(change,{duration:1.5});
    }else{
        text = "Rozwi\u0144";
        image_src = "http://www.bukmacherzy.com/new_lay/images/plus2.gif";
        Effect.BlindUp(change,{duration:1.5});
    }
    
    span = obj.getElementsByTagName("span");
    img = obj.getElementsByTagName("img");

    if(span.length==0)
        throw "Nie znaleziono elementu span";

    if(img.length==0)
        throw "Nie znaleziono elementów img";

    span.item(0).innerHTML = text;
    img.item(0).src = image_src;

}

function setcookie(cookieName,cookieValue,nDays) {
    var today = new Date();
    var expire = new Date();
    if (nDays==null || nDays==0) nDays=1;
    expire.setTime(today.getTime() + 3600000*24*nDays);
    document.cookie = cookieName+"="+escape(cookieValue)
    + ";expires="+expire.toGMTString();
}

var backup_table_row = new Array();
function table_active_row(obj)
{
    index = search_table_backup(obj);
    if(!index){
        backup_table_row[backup_table_row.length] = new Array(obj,obj.style.backgroundImage);
    }
    obj.style.backgroundImage="url('http://www.bukmacherzy.com/roboczy/images/new_podserwisy/parz_row_bg.gif')";
    
}
Array.prototype.remove = function(from, to) {
  var rest = this.slice((to || from) + 1 || this.length);
  this.length = from < 0 ? this.length + from : from;
  return this.push.apply(this, rest);
};
function table_deactive_row(obj)
{
    index = search_table_backup(obj);

    if(!index){
       obj.style.backgroundImage = backup_table_row[index][1];
       backup_table_row.remove(index);
    }
}

function search_table_backup(obj)
{
    for(i=0;i<backup_table_row.length;i++)
    {
        if(backup_table_row[i][0]===obj)
            return i;
    }
    return false;
}

var tabela_backup = new Array();
var last_sort=8;
var last_sort_type=0;
var asc = true;
function sort(sort,obj,type)
{
    var tabelka = obj.parentNode.parentNode.parentNode;
    tabela_backup[0] = $(tabelka).cloneNode(true);

    var th = obj.parentNode.parentNode.parentNode.getElementsByTagName("th");
    for(i = 0;i<th.length;i++)
    {
        var img = th[i].getElementsByTagName("img");
        for(k=0;k<img.length;k++)
            img[k].src = "http://www.bukmacherzy.com/nl/new_lay/images/tab_a.gif";
    }

    if(last_sort == sort && asc==false){
        asc=true;
        src = "http://www.bukmacherzy.com/nl/new_lay/images/tab_c.gif";
    }else{
        src = "http://www.bukmacherzy.com/nl/new_lay/images/tab_b.gif";
        asc=false;
    }
    last_sort = sort;

    var tr_tags = obj.parentNode.parentNode.parentNode.getElementsByTagName("tr");
    obj.getElementsByTagName("img").item(0).src = src;
    var tr = new Array();

    var key=0
    for(var i=1;i<tr_tags.length;i++){
        tr[key] = new Array();
        var td = tr_tags[i].getElementsByTagName("td");
        tr[key]['value'] = td[sort].innerHTML;
        tr[key]['key'] = i;
        tr[key]['name'] = td[1].innerHTML;
        key++;
    }


    for(j = 0; j < tr.length-1; j++){
        change=0;
        for (i=0; i<tr.length-1-j; i++){
            if((asc && new Number(tr[i+1]['value']) > new Number(tr[i]['value'])) || (!asc && new Number(tr[i+1]['value']) < new Number(tr[i]['value'])) )
            {
                x = tr[i];
                tr[i] = tr[i+1];
                tr[i+1] = x;
                change=1;
            }
        }
        if(!change) break;
    }


    new Effect.Opacity(tabelka, { from: 1, to: 0, duration:1 });

    setTimeout(function(){
        //zamiana
        for(i=1;i<tr_tags.length;i++)
        {
            var td = tabela_backup[0].getElementsByTagName("tr").item(tr[i-1]['key']).
            getElementsByTagName("td");


            tr_tags[0].parentNode.deleteRow(i);
            var x = tr_tags[0].parentNode.insertRow(i);
            x.id = "t_"+i;
            if(i%2!=0)
                x.className="parz_row";

            for(var k=0;k<td.length;k++)
            {
                if(k==0){
                    td_tmp = x.insertCell(0);
                    td_tmp.className = td[k].className;
                    td_tmp.innerHTML = i;
                }else{
                    td_tmp = x.insertCell(k);
                    td_tmp.className = td[k].className;
                    td_tmp.innerHTML = td[k].innerHTML;
                }
            }

        }
    },900);
    new Effect.Opacity(tabelka, { from: 0, to: 1, delay:1.0 });

}


/**
* Szuka w elementach zwin rozwin obiektu
* @param obj object
* @return int|bool
*/
function searchHideElement(obj)
{
    for(i=0;i<hideElements.length;i++)
        if(hideElements[i][0]===obj)
            return i;
    
    return false;
}

/**
 * @param obj object
 * @param className string nazwa klasy
 */
function searchClassElement(obj,className)
{
    div = obj.getElementsByTagName("div");
    for(i=0;i<div.length;i++)
    {
        if(div[i].className==className)
            return div[i];
    }

    return null;
}


function round_integer(round,precision)
{
	if(precision==0)
		return round;

	procent = parseInt(round);
	dzielenie = (procent / precision);
	a = Math.floor(dzielenie)*precision;
	b = Math.ceil(dzielenie)*precision;

	if(procent - a < b - procent){
		return a;
	}

	return b;
}

// Simulates PHP's date function
Date.prototype.format = function(format) {
	var returnStr = '';
	var replace = Date.replaceChars;
	for (var i = 0; i < format.length; i++) {
		var curChar = format.charAt(i);
		if (replace[curChar])
			returnStr += replace[curChar].call(this);
		else
			returnStr += curChar;
	}
	return returnStr;
};
Date.replaceChars = {
	shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
	longMonths: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
	shortDays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
	longDays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],

	// Day
	d: function() { return (this.getDate() < 10 ? '0' : '') + this.getDate(); },
	D: function() { return Date.replace.shortDays[this.getDay()]; },
	j: function() { return this.getDate(); },
	l: function() { return Date.replace.longDays[this.getDay()]; },
	N: function() { return this.getDay() + 1; },
	S: function() { return (this.getDate() % 10 == 1 && this.getDate() != 11 ? 'st' : (this.getDate() % 10 == 2 && this.getDate() != 12 ? 'nd' : (this.getDate() % 10 == 3 && this.getDate() != 13 ? 'rd' : 'th'))); },
	w: function() { return this.getDay(); },
	z: function() { return "Not Yet Supported"; },
	// Week
	W: function() { return "Not Yet Supported"; },
	// Month
	F: function() { return Date.replace.longMonths[this.getMonth()]; },
	m: function() { return (this.getMonth() < 9 ? '0' : '') + (this.getMonth() + 1); },
	M: function() { return Date.replace.shortMonths[this.getMonth()]; },
	n: function() { return this.getMonth() + 1; },
	t: function() { return "Not Yet Supported"; },
	// Year
	L: function() { return "Not Yet Supported"; },
	o: function() { return "Not Supported"; },
	Y: function() { return this.getFullYear(); },
	y: function() { return ('' + this.getFullYear()).substr(2); },
	// Time
	a: function() { return this.getHours() < 12 ? 'am' : 'pm'; },
	A: function() { return this.getHours() < 12 ? 'AM' : 'PM'; },
	B: function() { return "Not Yet Supported"; },
	g: function() { return this.getHours() == 0 ? 12 : (this.getHours() > 12 ? this.getHours() - 12 : this.getHours()); },
	G: function() { return this.getHours(); },
	h: function() { return (this.getHours() < 10 || (12 < this.getHours() < 22) ? '0' : '') + (this.getHours() < 10 ? this.getHours() + 1 : this.getHours() - 12); },
	H: function() { return (this.getHours() < 10 ? '0' : '') + this.getHours(); },
	i: function() { return (this.getMinutes() < 10 ? '0' : '') + this.getMinutes(); },
	s: function() { return (this.getSeconds() < 10 ? '0' : '') + this.getSeconds(); },
	// Timezone
	e: function() { return "Not Yet Supported"; },
	I: function() { return "Not Supported"; },
	O: function() { return (this.getTimezoneOffset() < 0 ? '-' : '+') + (this.getTimezoneOffset() / 60 < 10 ? '0' : '') + (this.getTimezoneOffset() / 60) + '00'; },
	T: function() { return "Not Yet Supported"; },
	Z: function() { return this.getTimezoneOffset() * 60; },
	// Full Date/Time
	c: function() { return "Not Yet Supported"; },
	r: function() { return this.toString(); },
	U: function() { return this.getTime() / 1000; }
}

function isdefined( variable)
{
    return (typeof(window[variable]) == "undefined")?  false: true;
}

function explode (delimiter, string, limit) {

    var emptyArray = { 0: '' };

    // third argument is not required
    if ( arguments.length < 2 ||
        typeof arguments[0] == 'undefined' ||
        typeof arguments[1] == 'undefined' )
    {
        return null;
    }

    if ( delimiter === '' ||
        delimiter === false ||
        delimiter === null )
    {
        return false;
    }

    if ( typeof delimiter == 'function' ||
        typeof delimiter == 'object' ||
        typeof string == 'function' ||
        typeof string == 'object' )
    {
        return emptyArray;
    }

    if ( delimiter === true ) {
        delimiter = '1';
    }

    if (!limit) {
        return string.toString().split(delimiter.toString());
    } else {
        // support for limit argument
        var splitted = string.toString().split(delimiter.toString());
        var partA = splitted.splice(0, limit - 1);
        var partB = splitted.join(delimiter.toString());
        partA.push(partB);
        return partA;
    }
}