/**
        Global functions
*/

var __video_play = false;

function bookmarkPage()
{
        var url = location.href;
        var title = document.title;
        if (typeof window.sidebar == "object" && typeof window.sidebar.addPanel == "function") window.sidebar.addPanel(title, url, "");
        else if (typeof window.external == "object") window.external.AddFavorite(url, title);
        /*else if (window.opera && document.createElement)
        {
                var a = document.createElement('a');
                if (!a) return false; //IF Opera 6
                a.setAttribute('rel','sidebar');
                a.setAttribute('href',url);
                a.setAttribute('title',title);
                a.click();
        }*/
        else alert('To bookmark us press < Ctrl > + < D >');
        return false;
}

//------------------------------------------------------------------------------------------------------------------------------------------------

function showSystemMessage()
{
        $("#warning").remove();
        text = __message
        var div = $("<div class=\"warning\" style=\"display: none;\" id=\"warning\"><div class=\"ct cl\"><div class=\"ctl\"></div><div class=\"ctr\"></div></div><div class=\"cinner\"><div class=\"message\">"+text + "</div><center><button id='warning_ok'>OK</button></center></div><div class=\"cb\"><div class=\"cbl\"></div><div class=\"cbr\"></div></div></div>");
        div.appendTo( document.body );
        $("#warning_ok").click(function(){
                $("#warning").remove();
                return false;
        });

        var wnd = $(window), 
        doc = $(document), 
        top = doc.scrollTop() + 100, 
        left = doc.scrollLeft();
        left += (wnd.width() / 2) - (div.width() / 2);
        div.css({position: 'absolute', top: top, left: left}).css({'z-index': '999'});
        div.show(400);
        return false;
}

//------------------------------------------------------------------------------------------------------------------------------------------------
        
function showMessage( name )
{
        $("#warning").remove();
        if( __messages ) text = __messages[ name ]; else text = name;
                
        var div = $("<div class=\"warning\" style=\"display: none;\" id=\"warning\"><div class=\"ct cl\"><div class=\"ctl\"></div><div class=\"ctr\"></div></div><div class=\"cinner\"><div class=\"message\">"+text + "</div><center><button id='warning_ok'>OK</button></center></div><div class=\"cb\"><div class=\"cbl\"></div><div class=\"cbr\"></div></div></div>");
        div.appendTo( document.body );
        $("#warning_ok").click(function(){
                $("#warning").remove();
                return false;
        });

        var wnd = $(window), 
        doc = $(document), 
        top = doc.scrollTop() + 100, 
        left = doc.scrollLeft();
        left += (wnd.width() / 2) - (div.width() / 2);
        div.css({position: 'absolute', top: top, left: left}).css({'z-index': '999'});
        div.show(400);
        return false;
}

function showConfirmDialog( text, callback )
{
        if(!text) return false;
        $("#confirm").remove();
        var div = $("<div class=\"warning\" style=\"display: none;\" id=\"confirm\"><div class=\"ct cl\"><div class=\"ctl\"></div><div class=\"ctr\"></div></div><div class=\"cinner\"><div class=\"message\">"+text + "</div><center><button id=\"confirm_ok\">Ok</button>&nbsp;&nbsp;<button id=\"confirm_cancel\">Cancel</button></center></div><div class=\"cb\"><div class=\"cbl\"></div><div class=\"cbr\"></div></div></div>");
        div.appendTo( document.body );

        $("#confirm_ok").click(function(){
                callback();
                $("#confirm").remove();
                return false;
        });

        $("#confirm_cancel").click(function(){
                $("#confirm").remove();
                return false;
        });

        var wnd = $(window), 
        doc = $(document), 
        top = doc.scrollTop() + 100, 
        left = doc.scrollLeft();
        left += (wnd.width() / 2) - (div.width() / 2);
        div.css({position: 'absolute', top: top, left: left}).css({'z-index': '999'});
        div.show(400);
        return false;
}

//------------------------------------------------------------------------

function checkEmail( email )
{
        var reg = new RegExp("[0-9a-z_.-]+@[-0-9a-z_^.]+\\.[a-z]{2,4}", 'i');
        //var reg = new RegExp("^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]){2,3,4}$", 'i');
        if (!reg.test(email)) return false;
        return true;
}

//------------------------------------------------------------------------

function checkLogin( login )
{
        if( !login ) return false;
        var pattern = /^[a-zA-Z0-9_]+$/;
        if( !pattern.test( login ) )return false;
        return true;
}

//------------------------------------------------------------------------

function checkURL(url)
{
        //var reg = new RegExp("((http|ftp):\/\/)?[0-9a-z_-]+[-0-9a-z_^.]*\\.[a-z]{2,3}", 'i');
        var reg = new RegExp("^((http|ftp)\/\/)?[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]){2,3,4}$", 'i');
        if (!reg.test( url )) return false;
        return true;
}

//------------------------------------------------------------------------

function checkImageFile( file )
{
        if( !file ) return false;
        var regexp=new RegExp(".*(bmp|jpg|jpeg|gif|png)$", "i");
        if(regexp.test( file )) return true;
        return false;
}

//------------------------------------------------------------------------

function checkVideoFile( file )
{
        if( !file ) return false;
        var regexp=new RegExp(".*\\.(wmv|mpg|mpeg|avi|flv|mov|mpg3|ogg|3gp|mp4)$", "i");
        if(regexp.test( file )) return true;
        return false;
}

//------------------------------------------------------------------------

function sendRequest( req, url, params, waiter, callback_success, callback_failed, file, method )
{
        if( !url ) return false;
        req = new JsHttpRequest();
        req.onreadystatechange = function()
        {
                if (req.readyState == 4 && req.status == 200 )
                {
                        if(req.responseText) alert(req.responseText);
                        if(req.responseJS.result) callback_success( req.responseJS );
                        else callback_failed( req.responseJS );
                }
        }
        if( !method ) method = 'POST';
        req.open(method, url, true);

        if(file) 
        {
                if( file.constructor == Array ) for(var i in file ) params[ file[ i ] ] = $('#' + file[ i ]).get( 0 );
                else params[ file ] = $('#' + file).get( 0 );
        }

        req.send( params );
        waiter();
}

//------------------------------------------------------------------------

$(document).ready(function(){
    $('#topmenu ul li').hover(
        function() {
            $(this).addClass("active");
            $(this).find('ul').slideDown('fast');
        },
        function() {
            $(this).removeClass("active");        
            $(this).find('ul').slideUp('fast');
        }
    );
});

//------------------------------------------------------------------------

function initDatepicker( year_start, year_end )
{
        $(document).ready(function(){
                $('#birthdate').attachDatepicker({
                        yearRange: year_start + ':' + year_end,
                        firstDay: 7
                });
        });
}

//------------------------------------------------------------------------

function cacheHack()
{
        return "t=" +new Date().getTime();
}

//------------------------------------------------------------------------

function submitLoginForm()
{
        var login = $("#tusername").attr( 'value' );
        var password = $("#tpassword").attr( 'value' );
        if( !login || login == "Username" ) 
        {
                showMessageFromDiv( 'login_empty_username' );
                return false;
        }
        if( !password || password == "Password" ) 
        {
                showMessageFromDiv( 'login_invalid_password' ); 
                return false;
        }
        $("#loginForm").submit();
        return true;
}

//------------------------------------------------------------------------

function showMessageFromDiv( id )
{
        if( !id ) return false;
        var text = $( "#" + id ).text();
        if( !text ) return false;

        $("#warning").remove();
        var div = $("<div class=\"warning\" style=\"display: none;\" id=\"warning\"><div class=\"ct cl\"><div class=\"ctl\"></div><div class=\"ctr\"></div></div><div class=\"cinner\"><div class=\"message\">"+text + "</div><center><button id='warning_ok'>OK</button></center></div><div class=\"cb\"><div class=\"cbl\"></div><div class=\"cbr\"></div></div></div>");
        div.appendTo( document.body );
        $("#warning_ok").click(function(){
                $("#warning").remove();
                return false;
        });

        var wnd = $(window), 
        doc = $(document), 
        top = doc.scrollTop() + 100, 
        left = doc.scrollLeft();
        left += (wnd.width() / 2) - (div.width() / 2);
        div.css({position: 'absolute', top: top, left: left}).css({'z-index': '999'});
        div.show(400);
        return false;

        
}

//------------------------------------------------------------------------

function getCenter()
{
        var x,y;
        if ( document.all ) x = window.document.body.clientWidth;
        else x = window.innerWidth;

        if ( document.all ) y = window.document.body.clientHeight;
        else y = window.innerHeight;

        return {x: x/2, y: y/2};
}

//------------------------------------------------------------------------

function redirect( url )
{
        if( !url ) return false;
        window.location = url;
        return false;
}

//------------------------------------------------------------------------

function checkCharacterCount( element, counter, count )
{
        if( !element || !counter ) return false;
        var text = element.attr( 'value' );
        if( text.length >= count ) 
                element.attr( 'value', element.attr( 'value' ).substring(0, count) );
        if( text.length <= count ) counter.text( count - text.length );
}


//------------------------------------------------------------------------

/**
        Search
*/

function in_array(value, arr)
{
        for(var i in arr) if( arr[ i ] == value ) return true;
        return false;
}

function hideElement( elements )
{
        $( document ).click(function( e ){
                e = e||event;
                var target = e.target||e.srcElement;
                var status=true;

                if( in_array(target.id, elements)) status= false;
                else
                {
                        while(target.parentNode)
                        {
                                target=target.parentNode;
                                if( in_array(target.id, elements)) 
                                {
                                        status= false;
                                        break;
                                }
                        }
                }
                if( status ) $( "#"+elements[0] ).hide();
        });
}


function search_showTypesList()
{
        $( "#search_types_list" ).toggle();
        hideElement( ["search_types_list", "search_current_type", "search_button"] );
}

function search_selectType( _element, url )
{
        var element = $( _element );
        $( "#search_form" ).attr('action', url);
        $( "ul#search_types_list li a" ).removeClass( "sel" );
        element.addClass( "sel" );
        $( "#search_current_type" ).text( element.text() );
        $( "#search_types_list" ).hide();
}

function setCookie (name, value, expires, path, domain, secure) {
      document.cookie = name + "=" + escape(value) +
        ((expires) ? ";expires=" + expires : "") +
        ((path) ? ";path=" + path : "/") +
        ((domain) ? ";domain=" + domain : "") +
        ((secure) ? ";secure" : "");
}

function getCookie(name) {
        var cookie = " " + document.cookie;
        var search = " " + name + "=";
        var setStr = null;
        var offset = 0;
        var end = 0;
        if (cookie.length > 0) {
                offset = cookie.indexOf(search);
                if (offset != -1) {
                        offset += search.length;
                        end = cookie.indexOf(";", offset)
                        if (end == -1) {
                                end = cookie.length;
                        }
                        setStr = unescape(cookie.substring(offset, end));
                }
        }
        return(setStr);
}

/**
        Adv
*/

function open_background_popup() 
{
        if( __video_play ) return false;
        __video_play = true;
        if( video ) video.showAdv();
}

//------------------------------------------------------------------------------------------------------------------------------------------------
/**
        Search
*/

function onFocusSearch( def )
{
        if( $( "#s" ).attr( 'value' ) == def ) $( "#s" ).attr( 'value', '' );
}

function onBlurSearch( def )
{
        if( !$( "#s" ).attr( 'value' ) || $( "#s" ).attr( 'value' ) == 'undefined' ) $( "#s" ).attr( 'value', def );
}

//------------------------------------------------------------------------------------------------------------------------------------------------


function trim(str, chars) {
        return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
        chars = chars || "\\s";
        return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
        chars = chars || "\\s";
        return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

//------------------------------------------------------------------------------------------------------------------------------------------------
/**
        Check timezone
*/
function _setAttributes(e, attr) 
{
        var sv = {};
        for (var i = 0; i < e.attributes.length; i++) 
        {
                var a = e.attributes[i];
                var k = a.nodeName;
                if (typeof(attr[k]) != 'undefined') 
                {
                    sv[k] = a.nodeValue;
                    a.nodeValue = attr[k];
                }
        }

        for (var k in attr) if (typeof(sv[k]) == 'undefined') 
        {
                sv[k] = e.getAttribute(k);
                e.setAttribute(k, attr[k]);
        }
        return sv;
}
