function checkAll(element, field) {
    for (i = 0; i < field.length; i++) {
        field[i].checked = element.checked;
    }
}

var d = new Date();
var monthnames = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
var monthlengths = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

//initialization function
function init(ids, mustBeSelected) {
    var selected = false;
    var month = d.getMonth();
    var year = d.getFullYear();
    var day = d.getDate();

    //months
    for (j = 0; j < ids.length; j++) {
        for (i = 0; i < monthnames.length; i++) {
            selected = i == month;
            document.getElementById("month" + ids[j])[i] = new Option(monthnames[i], i + 1, false, selected);
        }

        //days
        for (i = 1; i <= monthlengths[month]; i++) {
            selected = (i == day && mustBeSelected.indexOf(ids[j]) >= 0);
            document.getElementById("day" + ids[j])[i - 1] = new Option(i, i, false, selected);
        }

        //years
        var i2 = 0;
        for (i = year - 2; i <= year; i++) {
            selected = i == year;
            document.getElementById('year' + ids[j])[i2] = new Option(i, i, false, selected);
            i2++;
        }
    }
}

//change month fuction
function changeMonth(s) {
    var m = document.getElementById("month" + s);
    var d = document.getElementById("day" + s);

    changeYear(s);
    for (i = 0; i < d.length; i++) {
        d.remove(i);
    }

    for (i = 1; i <= monthlengths[m.selectedIndex]; i++) {
        d[i - 1] = new Option(i, i, false, false);
    }

}

//change year function
function changeYear(s) {
    var y = document.getElementById("year" + s).value;
    monthlengths[1] = (y % 4 == 0 && y % 100 != 0)?29:28;
}

//day function
//s - boolean. if true - start date, false - end date
//n - boolean. if true - next day, false - previous
function day(s, n) {
    var d = document.getElementById("day" + s);
    var m = document.getElementById("month" + s);
    var i = (n)?1:-1;
    var sIndex = d.selectedIndex;
    if (((sIndex + 1) == monthlengths[m.value] && n) || (sIndex == 0 && !n)) {
        month(s, n);
        d.selectedIndex = n?0:d.length - 1;
    } else {
        d.selectedIndex = (d.selectedIndex + i) % monthlengths[m.value];
    }
}

//month function
function month(s, n) {
    var m = document.getElementById("month" + s);
    var i = (n)?1:-1;
    m.selectedIndex = (m.selectedIndex + i) % 12;
    changeMonth(s);
}

function week(s, s1) {
    init(s + s1, s + s1);
    var d = document.getElementById("day" + s);
    var m = document.getElementById("month" + s);
    var date = new Date();
    var day = date.getDate();
    var weekDay = date.getDay();
    if (weekDay > day) {
        month(s, false);
        alert(monthlengths[m.value]);
        d.selectedIndex = monthlengths[m.value] - (weekDay - day) - 1;

    } else {
        d.selectedIndex -= weekDay - 1;
    }

}

function setNewDate(day, month, year, id) {
    var m = document.getElementById("month" + id);
    var y = document.getElementById("year" + id);
    var d = document.getElementById("day" + id);
    if (y != null) y.value = year;
    if (m != null) m.value = month + 1;
    if (d != null) d.value = day;
}

function _validateEmail(email)
{
    // a very simple email validation checking.
    // you can add more complex email checking if it helps
    if (email.length <= 0)
    //    if(email.length <= 0)
    {
        return true;
    }
    var splitted = email.match("^(.+)@(.+)$");
    if (splitted == null) return false;
    if (splitted[1] != null)
    {
        var regexp_user = /^\"?[\w-_\.]*\"?$/;
        if (splitted[1].match(regexp_user) == null) return false;
    }
    if (splitted[2] != null)
    {
        var regexp_domain = /^[\w-\.]*\.[A-Za-z]{2,4}$/;
        if (splitted[2].match(regexp_domain) == null)
        {
            var regexp_ip = /^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]$/;
            if (splitted[2].match(regexp_ip) == null) return false;
        }// if
        return true;
    }
    return false;
}

function validateLanguage(frm) {
    //languages
    var defLangIndex = -1;
    for (var i = 0; i < frm.language.length; i++) {
        if (frm.language[i].checked) {
            defLangIndex = i;
        }
    }
    if (defLangIndex > -1) {
        var defLanguage = frm.language[defLangIndex].value;
        for (var i = 0; i < frm.languages.length; i++) {
            if (frm.languages[i].value == defLanguage) {
                frm.languages[i].checked = true;
            }
        }
    }
}
var hPadding;
var bPadding;
function changeToolbarDisplayProp(value) {
    document.getElementById('tb_body').style.display = value;
    document.getElementById('tb_header').style.display = value;
    if (value == 'none') {
        hPadding = document.getElementById('tb_header_parent').style.padding;
        bPadding = document.getElementById('tb_body_parent').style.padding;
        document.getElementById('tb_body_parent').style.padding = "0px";
        document.getElementById('tb_header_parent').style.padding = "0px";
        document.getElementById('tb_button').style.display = '';

    } else {
        document.getElementById('tb_body_parent').style.padding = hPadding;
        document.getElementById('tb_header_parent').style.padding = bPadding;
        document.getElementById('tb_button').style.display = 'none';
    }

}

function openGame(url) {
    var def_w = 800;
    var def_h = 600;
    var sw = screen.width;
    var sh = screen.height;
    var h = Math.max(def_h, sh * 0.9);

    //var w = Math.max(def_w, sw * 0.9);
    var w = (h / def_h) * def_w;
    //def_w>sw?sw:def_w;
    //def_h>sh?sh:def_h;
    var x = (sw - w) / 2;
    var y = (sh - h) / 2;
    x = Math.max(0, x);
    //  y=Math.max(0, y - 20);
    y = 0;
    window.open(url, 'game', 'resizable=0, status=0, toolbar=0, location=0, scrollbars=no, width=' + w + ', height=' + h + ', left=' + x + ', top=' + y);
}



function showBlock(id) {
    elementById(id).style.display = "block";
}

function hide(id) {
    elementById(id).style.display = "none";
}

function floor(num) {
    return Math.floor(num*100)/100;
}
function round(num) {
    return Math.round(num*100)/100;
}

function elementById(id) {
    return document.getElementById(id);
}

function createJSHover() {
  jsHover = function() {
  var hEls = document.getElementsByTagName("LI");
  for (var i=0, len=hEls.length; i<len; i++) {
      hEls[i].onmouseover=function() { this.className+=" jshover"; }
      hEls[i].onmouseout=function() { this.className=this.className.replace(" jshover", ""); }
    }
  }
  if (window.attachEvent && navigator.userAgent.indexOf("Opera")==-1) window.attachEvent("onload", jsHover);
}
