﻿var mbn_root_image='/';
var ie_overLap=($.browser.msie && $.browser.version<7);
function getObj(id) {
    var d = document;
    return d.getElementById ? d.getElementById(id) : d.all ? d.all[id] : d.layers[id];
}
function GetParentNode(e, tagName) {
    var newE = e.parentNode;
    for (; (newE.tagName != tagName) && (newE != null); newE = newE.parentNode);
    return newE;
}
function setCookie(name, value, expires, path, domain, secure) {
    path = '/';
    //domain = '.muaban.net';
    var exdate = new Date();
    if (expires != null) {
        exdate.setDate(exdate.getDate() + expires);
    }
    document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + exdate.toGMTString() : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}
function getCookie(c_name) {
    if (document.cookie.length > 0) {
        c_start = document.cookie.indexOf(c_name + "=");
        if (c_start != -1) {
            c_start = c_start + c_name.length + 1;
            c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1) c_end = document.cookie.length;
            return unescape(document.cookie.substring(c_start, c_end));
        }
    }
    return ""
}
function setClassName(id, className) {
    var o = getObj(id);if (o) o.className = className;
}
function setFocusAndBlur(el,text) {
    $(el).focus(function() { $(this).css('color', ''); if (text == this.value) { $(this).val(''); } }).blur(function() { if (this.value == '' || this.value == text) { $(this).css('color', '#aaa').val(text); } }).attr('autocomplete', 'off').attr('tip', text);
}
function showMsg(msg) {
    var o = $('#showMsg');
    if (o!=null && o.length>0) o[0].innerHTML = msg; else alert(msg);
}
//Call: jsOnEnter('Button',elements);
function jsOnEnter(cmd, src) {
    $(src).bind('keypress', cmd, function(e) { if (e.keyCode != 13) return true; try { var o = $(e.data); if (!o[0].disabled) o.click(); } catch (ex) { } return false; });
}
function buttonHover() {
    var pos=arguments[0];
    for (var i = 1; i < arguments.length; i++) {
        $('#' + arguments[i]).hover(function() { $(this).css('background-position', pos); }, function() { $(this).css('background-position', '0px 0px'); })
    }
}
function maxLength(el, len) {
    var v = el.val(); if (v.length > len) { el.val(v.substring(0, len)); return false; } return true;
}

function clearCombo(cbo) {
    for (; cbo.options.length > 1; ) {
        cbo.remove(cbo.options.length - 1);
    }
}
function fillCombo(cbo, arr, colId, colName, skip) {
    for (var i = 0; i < arr.length; i += skip) {
        cbo.options[cbo.options.length] = new Option(arr[i + colName], arr[i + colId], false);
    }
}
function formatNumber(v, dv) {
    v = v * parseInt('1' + dv, 10);
    var r = '   ' + v;
    r = r.substr((r.length % 3));
    var result = '';
    for (var i = 0; i < r.length; i += 3) {
        result += (result == '' ? '' : '.') + r.substr(i, 3).trim();
    }
    return result;
}
/*Search:Begin*/
var j_search_q, j_search_cat, j_search_min, j_search_max, j_search_currency, j_search_all;
function fillSearchCategory(el, parentIds, parentIndex) {
    if (arrCategory == null) return;
    fillSearchCategoryLevel($(el)[0], parentIds, parentIndex, arrCategory, 0, 1, arrCategoryLen);
}
function fillSearchCategoryLevel(cbo, parentIds, parentIndex, arr, colId, colName, skip) {
    if (arr == null) return;
    var selectedId = (parentIds && parentIds.length > 0 ? parentIds[parentIndex] : 0);
    var prefix = (parentIndex<=0?'':'+ + + + + + + + + + + + '.substr(0,parentIndex*2));
    for (var i = 0; i < arr.length; i += skip) {
        cbo.options[cbo.options.length] = new Option(prefix + arr[i + colName], arr[i + colId], false);
        if (selectedId == arr[i + colId]) {
            fillSearchCategoryLevel(cbo, parentIds, parentIndex + 1, arr[i + 3], colId, colName, skip)
        }
    }
}
function initSearchValue(v1, v2, v3, v4, v5, v6) {
    j_search_q = $('#q');
    j_search_cat = $('#ddlCat');
    j_search_min = $('#minPrice');
    j_search_max = $('#maxPrice');
    j_search_currency = $('#ddlPrice');
    j_search_all = $('#allCity');

    if (v1) j_search_q.css('color', '').val(v1);
    if (v2) j_search_cat.css('color', '').val(v2);
    if (v3) j_search_min.css('color', '').val(v3);
    if (v4) j_search_max.css('color', '').val(v4);
    if (v5) j_search_currency[0].selectedIndex = v5;
    if (v6) j_search_all.attr('checked', 'checked');
}
function getSearchString(el) {
    return (el.val() == el.attr('tip') ? '' : el.val());
}
function getSearchFloat(el) {
    return parseFloat('0' + (el.val() == el.attr('tip') ? '' : el.val().replace(',', '.')), 10);
}
function getSearchDropdown(el, val) {
    return (el.val() == '0' ? '' : (val ? el.val() : el.find('option:selected').text()));
}
function compileSearch(flagSearch) {
    var q = getSearchString(j_search_q);
    var c = getSearchDropdown(j_search_cat);
    var min = getSearchFloat(j_search_min);
    var max = getSearchFloat(j_search_max);
    var dv = getSearchString(j_search_currency);
    var tq = j_search_all.is(':checked');
    if (min > max) max = 0;
    var s = '';
    if (flagSearch) {
        s = 'q=' + encodeURIComponent(q);
        s += '&cat=' + (c == '' ? '' : j_search_cat.val());
        s += '&min=' + (min > 0 ? formatNumber(min, dv) : '');
        s += '&max=' + (max > 0 ? formatNumber(max, dv) : '');
        s += '&all=' + (tq ? '1' : '0');
        if (q == '' && c == '' && min <= 0 && max <= 0) {
            s = '';
            $('#filterText').html('<span style="color:red">Chưa nhập nội dung tìm kiếm.</span>').css('display', 'block');
            j_search_q.focus();
        }
    } else {
        if (q != '') s += 'Nội dung tìm: <b>' + q + '</b>';
        if (c != '') s += (s == '' ? '' : ', ') + 'Hạng mục: <b>' + c + '</b>';
        if (min > 0 || max > 0) s += (s == '' ? '' : ', ') + 'Giá (VND): <b>';
        if (min > 0 && max > 0) {
            s += (min > 0 ? formatNumber(min, dv) : '') + (min > 0 && max > 0 ? ' - ' : '') + (max > 0 ? formatNumber(max, dv) : '') + '</b>';
        } else if (min > 0) {
            s += '>= ' + formatNumber(min, dv);
        } else if (max > 0) {
            s += '<= ' + formatNumber(max, dv);
        }
        if (min > 0 || max > 0) s += '</b>';
        if (tq) s += (s == '' ? '' : ', ') + '<span class="checkedRight" style="width:90px">Toàn quốc:</span>';
        $('#filterText').html(s).css('display','block');
    }
    return s;
}
function doSearch() {
    var q = compileSearch(true);
    if (q == '') return false;
    var url = mbnVirtualPath + 'raovat/tim-kiem.html?' + q;
    window.location.replace(url);
}
function doSearchCode() {
    var code = getSearchString($('#qID'));
    if (code == '') return;
    MBN.Web.Views.Shared.MBNService.ClassifiedSearch(code, function(v) { if (v) window.location.replace(v); else alert('Mã tin này không tồn tại hoặc chưa được duyệt đăng.'); });
}
/*Search:End*/

/*Listing:begin*/
function showFilterDistrictFull(e,el) {
    var elements = $(el);
    for (var i = 0; i < elements.length; i++) {
        $(elements[i]).css('display', '');
    }
    $(elements[elements.length - 1]).css('display', 'none');
}
function showFilterDistrict(cityId, cityUrl, districtId, el, notSepa) {
    if (cityId == null || arrCity == null) return;
    var arrDistrict = new Array();
    // get array district
    for (var i = 0; i < arrCity.length; i += arrCityLen) {
        if (arrCity[i] == cityId) { arrDistrict = arrCity[i + 4]; break; }
    }
    if (arrDistrict == null || arrDistrictTotal == null) return;

    var sepa = (notSepa ? '' : '-'); 
    var district_total = 0;
    var filter_total = 0;
    var s = '<ul class="stylenone">';
    s += '<li style="padding:1px 1px 3px 8px;border-bottom:dotted 1px #dbdbdb;"><a class="a8" href="' + cityUrl.replace(/\{0\}/, '') + '"' + (0 == districtId ? 'style="font-weight:bold;color:#ca0000"' : '') + '>Tất cả <span style="color:gray">(' + arrDistrictTotal['C0'] + ')</span></a></li>';
    for (var i = 0; i < arrDistrict.length; i += arrCityLen) {
        district_total = arrDistrictTotal['C' + arrDistrict[i]];
        if (!district_total) continue;
        
        s += '<li style="padding:1px 1px 3px 8px;border-bottom:dotted 1px #dbdbdb;' + ((i / arrCityLen) < 100 || (arrDistrict[i] == districtId) ? '' : 'display:none;') + '">';
        s += '<a class="a8" href="' + cityUrl.replace('{0}', sepa + arrDistrict[i]) + '"' + (arrDistrict[i] == districtId ? 'style="font-weight:bold;color:#ca0000"' : '') + '>' + arrDistrict[i + 1] + ' <span style="color:gray">(' + district_total + ')</span></a>';
        s += '</li>';
        filter_total++;
    }
    district_total = arrDistrictTotal['C' + cityId];
    if (district_total) {
        //s += '<li style="padding:1px 1px 3px 8px;' + ((cityId == districtId) ? '' : 'display:none;') + '">';
        s += '<li style="padding:1px 1px 3px 8px;">';
        s += '<a class="a8" href="' + cityUrl.replace('{0}', sepa + cityId) + '"' + (cityId == districtId ? 'style="font-weight:bold;color:#ca0000"' : '') + '>Khác <span style="color:gray">(' + district_total + ')</span></a>';
        s += '</li>';
    }
    if (filter_total > 10) {
        // s += '<li style="padding:2px 1px 3px 8px;"><a class="a8 arrow" href="javascript:void(0)" onclick="showFilterDistrictFull(this,\'' + el + ' LI\');" onmouseover="setTimeout(showFilterDistrictFull(this,\'' + el + ' LI\'), 4000);"><b>Xem thêm</b>&nbsp;</a></li>';
    }
    s += '</ul>';
    $(el).html(s);
}
function showFilterCategory(parentIds, url, selectedId, el, displayCols) {
    if (parentIds == null || arrCategory == null || arrCategoryTotal == null) return;
    
    var arrChild = arrCategory;
    for (var j = 0; j < parentIds.length; j++) {
        var parentId = parentIds[j];
        for (var i = 0; i < arrChild.length; i += arrCategoryLen) {
            if (arrChild[i] == parentId) { arrChild = arrChild[i + arrCategoryLen - 1]; break; }
        }
    }
    if (arrChild == null) return;
    var cat_total = 0;
    var filter_total = 0;
    var s = '<div style="border:solid 1px #dbdbdb;"><table cellspacing="2" cellpadding="0" border="0"> ';
    var cols = 0;
    var rows = 0;
    for (var i = 0; i < arrChild.length; i += arrCategoryLen) {
        cat_total = arrCategoryTotal['C' + arrChild[i]];
        if (!cat_total) continue;
        
        if (cols >= displayCols) cols = 0;
        if (cols == 0) rows++;
        s += (cols == 0 ? '<tr' + (rows <= 30 || (arrChild[i] == selectedId) ? '' : ' style="display:none;"') + '>' : '');
        s += '<td style="width:195px;padding:3px 0px 3px 3px;">';
        s += '<a class="a8" href="' + url.replace('{0}', arrChild[i]).replace('{1}', arrChild[i + 2]) + '" style="display:block;"' + (arrChild[i] == selectedId ? 'color:red;' : '') + '>' + arrChild[i + 1] + ' <span style="color:gray">(' + cat_total + ')</span></a>';
        s += '</td>';
        s += (cols == displayCols ? '</tr>' : '');
        cols++;
    }
    while (cols < displayCols) {
        s += '<td style="width:195px;padding:3px 0px 3px 3px;">&nbsp;</td>';
        cols++;
        if (cols == displayCols) s += '</tr>';
    }

    if (rows > 30) s += '<tr><td colspan="' + displayCols + '" style="padding:3px 0px 3px 3px;"><a class="a8 arrow" href="javascript:void(0)" onclick="showFilterDistrictFull(this,\'' + el + ' TR\');">Các hạng mục khác</a></td></tr>';
    s += '</table></div>';
    $(el).html(s);
}
function alternateRow(el, odd, even) {
    if (odd) $(el + ' tr:odd').addClass('tr_odd');
    if (even) $(el + ' tr:even').addClass('tr_even');
} 
/*Listing:end*/
function showShortcutCity() {
    if (arrCity != null) {
        var s = '<table cellspacing="2" cellpadding="0" border="0" style="font-family:tahoma;font-size:10pt">';
        var colIndex = 0;
        for (var i = 0; i < arrCity.length; i += 5) {
            if (colIndex == 0) s += '<tr>';
            s += '<td width="125px"><a class="ablack" href="' + mbnAppPath + arrCity[i + 2] + '.html" ' + (i/5<5?'style="font-weight:bold;"':'') + '>' + arrCity[i + 1] + '</a></td>';
            colIndex++;
            if (colIndex == 8) {
                s += '</tr>';
                colIndex = 0;
            }
        }
        if (colIndex>0)for (var i = colIndex; i < 8; i++) s += '<td>&nbsp;</td>';
        s += '</table>';
    }
    document.write(s);
}
function loadCityPopup(el,url) {
    var arr = arrCity;
    var CurCat = url;

    var arrCity1 = new Object();
    for (var i = 0; i < arr.length; i += 5) {
        arrCity1[arr[i]] = i;
    }
    var maxArrLength = 0;
    if (arrCityArea1) maxArrLength = Math.max(maxArrLength, arrCityArea1.length);
    if (arrCityArea2) maxArrLength = Math.max(maxArrLength, arrCityArea2.length);
    if (arrCityArea3) maxArrLength = Math.max(maxArrLength, arrCityArea3.length);
    var arrCityArea = new Array();
    arrCityArea[0] = arrCityArea2; arrCityArea[1] = arrCityArea3; arrCityArea[2] = arrCityArea1;
    var sb = '<table width="100%">';
    var cols = 0;
    var i = 0;
    var cityId;
    for (var j = 0; j < maxArrLength; j++) {
        sb += '<tr>';
        for (var k = 0; k < 3; k++) {
            if (j < arrCityArea[k].length) {
                cityId = arrCityArea[k][j];
                i = arrCity1[cityId];
                sb += '<td width="30" style="color:gray">' + arrCitySms[cityId] + '</td>';
                sb += '<td' + ((arr[i + 3] & 1) > 0 ? ' style="font-weight:bold"' : '') + '><a href="' + CurCat.replace('{0}', arr[i + 2]) + '">' + arr[i + 1] + '</a></td>';
            } else {
                sb += '<td>&nbsp;</td><td>&nbsp;</td>';
            }
        }
        sb += '</tr>';
    }
    sb += '</table>';
    $(el).html(sb);
}
/*********************TopMenu****************************/
; (function($) {
    $.fn.dropDownMenu = function(options) {
        var menus = new Array();
        var css;
        var tag;
        var internal;
        var timeout;

        var timeoutRoot;
        var mouse_leave = true;

        var settings = $.extend({
            timer: 150,
            parentMO: null,
            childMO: null,
            levels: [],
            parentTag: 'ul',
            childTag: 'ul',
            tags: [],
            numberOfLevels: 3
        }, options || {});

        // Set number of levels
        if (settings.tags.length > 0) {
            settings.numberOfLevels = settings.tags.length;
        } else if (settings.levels.length) {
            settings.numberOfLevels = settings.levels.length;
        }

        // Set css levels with childMO
        if (settings.childMO) {
            for (var i = 0; i < settings.numberOfLevels; i++) settings.levels[i] = settings.childMO;
        }

        // Set tag levels with tag
        if (settings.tags.length < 1) {
            for (var i = 0; i < settings.numberOfLevels; i++) settings.tags[i] = settings.childTag;
        }

        // Run through each level
        menus[0] = $(this).children('li');
        for (var i = 1; i < settings.numberOfLevels + 2; i++) {
            // Tags/CSS
            css = (i == 1) ? settings.parentMO : settings.levels[i - 2];
            tag = (i == 1) ? settings.parentTag : settings.tags[i - 2];

            // level selector
            menus[i] = menus[i - 1].children(settings.tag).children('li');

            // root level
            if (i == 1) {
                menus[i - 1].attr('zindex', i);
            }
            // Action
            menus[i - 1].attr({ rel: css + ';' + tag }).mouseover(function(event) {
                if (timeout) clearTimeout(timeout);
                if (timeoutRoot) clearTimeout(timeoutRoot);

                var $$ = $(this);
                mouse_leave = false;

                var needShow = true;
                if ($$.attr('zindex')) {
                    needShow = false;
                    timeoutRoot = setTimeout(function() {
                        if (mouse_leave) return;
                        internal = $$.attr("rel").split(";");
                        $$.siblings('li').children('a').removeClass(internal[0]).siblings(internal[1]).hide();
                        $$.children('a').addClass(internal[0]).siblings(internal[1]).show();
                        // check show right
                        try{
                            var v = viewport();
                            var aOffset = $$.children('a').offset();
                            var a2 = $$.children('a').addClass(internal[0]).siblings(internal[1]);
                            if (v.x + v.cx < aOffset.left + a2[0].offsetWidth) {
                                a2.css({ left: aOffset.left + $$.children('a')[0].offsetWidth - a2[0].offsetWidth });
                                //a2.css({ left: aOffset.left - (aOffset.left + a2[0].offsetWidth - (v.x + v.cx)) - 20 });
                            } else {
                                a2.css({ left: 'auto' });
                            }
                        }catch(ee){
                        }
                        if (ie_overLap) {
                            var overLapIFrame = $$.siblings('li').children('iframe');
                            if (overLapIFrame) overLapIFrame.css('display', 'none');
                            overLap($$.children('a').next('ul'));
                        }
                    }, 130);
                }
                if (needShow) {
                    internal = $$.attr("rel").split(";");
                    $$.siblings('li').children('a').removeClass(internal[0]).siblings(internal[1]).hide();
                    $$.children('a').addClass(internal[0]).siblings(internal[1]).show();
                    if (ie_overLap) {
                        var overLapIFrame = $$.siblings('li').children('iframe');
                        if (overLapIFrame) overLapIFrame.css('display', 'none');
                        overLap($$.children('a').next('ul'));
                    }
                }
            }).mouseout(function() {
                if (timeoutRoot) clearTimeout(timeoutRoot);
                mouse_leave = true;
                internal = $(this).attr("rel").split(";");
                if (internal[0] == settings.parentMO) {
                    timeout = setTimeout(function() { closemenu(); }, settings.timer);
                }
            });
        }

        // Allows user option to close menus by clicking outside the menu on the body
        $(document).click(function() { closemenu(); });

        // Closes all open menus
        var closemenu = function() {
            if (ie_overLap) $('.iframetop').css({ display: 'none' });
            for (var i = menus.length; i > -1; i--) {
                if (menus[i] && menus[i].attr("rel")) {
                    internal = menus[i].attr("rel").split(";");
                    menus[i].children(internal[1]).hide().siblings('a').removeClass(internal[0]);
                }
            }
            $('a', menus[0]).removeClass(settings.parentMO);
            if (timeout) clearTimeout(timeout);
        }
    };
    function viewport() {
        return {
            x: $(window).scrollLeft(),
            y: $(window).scrollTop(),
            cx: $(window).width(),
            cy: $(window).height()
        };
    }
})(jQuery);

function addYahooSupport() {
    if ($(this).attr('inited')) return;
    $(this).attr('inited', '1');
    $("#mbn_hotline").html('');
    var mbn_ymsgr = ['Hồ Chí Minh', ['mbn_hcm_cskh01', 'mbn_hcm_cskh02', 'mbn_hcm_kd10', 'mbn_hcm_kd11'],
        'Hà Nội', ['mbn_hn_cskh01', 'mbn_hn_cskh02'],
        'Đà Nẵng', ['mbn_danang_cskh01', 'mbn_danang_cskh02'],
        'Hải Phòng', ['mbn_haiphong_cskh01', 'mbn_haiphong_cskh02']];
    var s = '';
    for (var i = 0; i < mbn_ymsgr.length; i += 2) {
        s += '<li class="title">{0}</li>'.replace('{0}', mbn_ymsgr[i]);
        var mbn_ymsgr_child = mbn_ymsgr[i + 1];
        for (var j = 0; j < mbn_ymsgr_child.length; j++) {
            s += '<li><a href="ymsgr:sendim?000"><img src="http://opi.yahoo.com/online?u=000"/ align=\"baseline\" style=\"margin-right:5px;\">'.replace(/000/gi, mbn_ymsgr_child[j]) + (mbn_ymsgr_child[j].lastIndexOf('kd') != -1 ? 'Kinh doanh' : 'Hỗ trợ khách hàng') + '</a></li>';
        }
    }
    $("#mbn_hotline").append(s);
    $('#mnu_support').dropDownMenu({ parentMO: 'parent-hover', childMO: 'child-hover1' });
}
/******************End Top Menu***********************/
/**************Navigation***************/
//$(function () {
//    $("ul.dropdown li").hover(function() {
//        $(this).addClass("hover");
//        $('ul:first', this).css('visibility', 'visible');
//    }, function() {
//        $(this).removeClass("hover");
//        $('ul:first', this).css('visibility', 'hidden');
//    });
//});
/*************End Navigation***********/

function checkChar(param) {
    var a = param;
    for (var i = 0; i < a.length; i++) {
        var c = a.charAt(i);
        if (!isNaN(c)) {
            return true;
        }
    }
    return false;
}
function checkNumber(param) {
    var a = param;
    for (var i = 0; i < a.length; i++) {
        var c = a.charAt(i);
        if (isNaN(c)) {
            return true;
        }
    }
    return false;
}
/***************Format decimal******************/
function addCommas(_nStr) {
    var nStr = _nStr.value;
    var a = nStr.split(',');
    var b = '';
    for (var i = 0; i < a.length; i++) {
        b += a[i];
    }
    nStr = b;
    nStr += '';
    x = nStr.split('.');
    x1 = x[0];
    x2 = x.length > 1 ? '.' + x[1] : '';
    var rgx = /(\d+)(\d{3})/;
    while (rgx.test(x1)) {
        x1 = x1.replace(rgx, '$1' + ',' + '$2');
    }
    _nStr.value = x1 + x2;
}
/***************End Format decimal******************/

/****************Bang mau*************/
/**
* Really Simple Color Picker in jQuery
* 
* Copyright (c) 2008 Lakshan Perera (www.laktek.com)
* Licensed under the MIT (MIT-LICENSE.txt)  licenses.
* 
*/

(function($) {
    $.fn.colorPicker = function() {
        if (this.length > 0) buildSelector();
        return this.each(function(i) { buildPicker(this) });
    };

    var selectorOwner;
    var selectorShowing = false;

    buildPicker = function(element) {
        //build color picker
        control = $("<div class='color_picker'>&nbsp;</div>")
        control.css('background-color', $(element).val());

        //bind click event to color picker
        control.bind("click", toggleSelector);

        //add the color picker section
        $(element).after(control);

        //hide the input box
        $(element).hide();
    };

    buildSelector = function() {
        selector = $("<div id='color_selector'></div>");

        //add color pallete
        $.each($.fn.colorPicker.defaultColors, function(i) {
            swatch = $("<div class='color_swatch'>&nbsp;</div>")
            swatch.css("background-color", "#" + this);
            swatch.bind("click", function(e) { changeColor($(this).css("background-color")) });
            swatch.bind("mouseover", function(e) {
                $(this).css("border-color", "#598FEF");
                $("input#color_value").val(toHex($(this).css("background-color")));
            });
            swatch.bind("mouseout", function(e) {
                $(this).css("border-color", "#000");
                $("input#color_value").val(toHex($(selectorOwner).css("background-color")));
            });

            swatch.appendTo(selector);
        });

        //add HEX value field
        hex_field = $("<label for='color_value'>Hex</label><input type='text' size='8' id='color_value'/>");
        hex_field.bind("keydown", function(event) {
            if (event.keyCode == 13) { changeColor($(this).val()); }
            if (event.keyCode == 27) { toggleSelector() }
        });

        $("<div id='color_custom'></div>").append(hex_field).appendTo(selector);

        $("body").append(selector);
        selector.hide();

    };

    checkMouse = function(event) {
        //check the click was on selector itself or on selectorOwner
        var selector = "div#color_selector";
        var selectorParent = $(event.target).parents(selector).length;
        if (event.target == $(selector)[0] || event.target == selectorOwner || selectorParent > 0) return

        hideSelector();
    }

    hideSelector = function() {
        var selector = $("div#color_selector");

        $(document).unbind("mousedown", checkMouse);
        selector.hide();
        selectorShowing = false
    }

    showSelector = function() {
        var selector = $("div#color_selector");

        //alert($(selectorOwner).offset().top);

        selector.css({
            top: $(selectorOwner).offset().top + ($(selectorOwner).outerHeight()),
            left: $(selectorOwner).offset().left
        });
        hexColor = $(selectorOwner).prev("input").val();
        $("input#color_value").val(hexColor);
        selector.show();

        //bind close event handler
        $(document).bind("mousedown", checkMouse);
        selectorShowing = true
    }

    toggleSelector = function(event) {
        selectorOwner = this;
        selectorShowing ? hideSelector() : showSelector();
    }

    changeColor = function(value) {
        if (selectedValue = toHex(value)) {
            $(selectorOwner).css("background-color", selectedValue);
            $(selectorOwner).prev("input").val(selectedValue).change();

            //close the selector
            hideSelector();
        }
    };

    //converts RGB string to HEX - inspired by http://code.google.com/p/jquery-color-utils
    toHex = function(color) {
        //valid HEX code is entered
        if (color.match(/[0-9a-fA-F]{3}$/) || color.match(/[0-9a-fA-F]{6}$/)) {
            color = (color.charAt(0) == "#") ? color : ("#" + color);
        }
        //rgb color value is entered (by selecting a swatch)
        else if (color.match(/^rgb\(([0-9]|[1-9][0-9]|[1][0-9]{2}|[2][0-4][0-9]|[2][5][0-5]),[ ]{0,1}([0-9]|[1-9][0-9]|[1][0-9]{2}|[2][0-4][0-9]|[2][5][0-5]),[ ]{0,1}([0-9]|[1-9][0-9]|[1][0-9]{2}|[2][0-4][0-9]|[2][5][0-5])\)$/)) {
            var c = ([parseInt(RegExp.$1), parseInt(RegExp.$2), parseInt(RegExp.$3)]);

            var pad = function(str) {
                if (str.length < 2) {
                    for (var i = 0, len = 2 - str.length; i < len; i++) {
                        str = '0' + str;
                    }
                }
                return str;
            }

            if (c.length == 3) {
                var r = pad(c[0].toString(16)), g = pad(c[1].toString(16)), b = pad(c[2].toString(16));
                color = '#' + r + g + b;
            }
        }
        else color = false;

        return color
    }


    //public methods
    $.fn.colorPicker.addColors = function(colorArray) {
        $.fn.colorPicker.defaultColors = $.fn.colorPicker.defaultColors.concat(colorArray);
    };

    $.fn.colorPicker.defaultColors = ['FF0000', 'FFFF00', '00FF00', '00FFFF', '0000FF', 'FF00FF', 'FFFFFF', 'EBEBEB', 'E1E1E1', 'D7D7D7', 'CCCCCC', 'C2C2C2', 'B7B7B7', 'ACACAC', 'A0A0A0', '959595', 'ED1C24', 'FFF200', '00A651', '00AEEF', '2E3192', 'EC008C',
'898989', '7D7D7D', '707070', '626262', '555555', '464646', '363636', '262626', '111111', '000000', 'F7977A', 'F9AD81', 'FDC68A', 'FFF79A', 'C4DF9B', 'A2D39C', '82CA9D', '7BCDC8', '6ECFF6', '7EA7D8', '8493CA', '8882BE', 'A187BE', 'BC8DBF', 'F49AC2', 'F6989D', 'F26C4F', 'F68E55', 'FBAF5C', 'FFF467', 'ACD372', '7CC576', '3BB878', '1ABBB4', '00BFF3', '438CCA', '5574B9', '605CA8', '855FA8', 'A763A8', 'F06EA9', 'F26D7D',
'ED1C24', 'F26522', 'F7941D', 'FFF200', '39B54A', '00A651', '00A99D', '00AEEF', '0072BC', '0054A6', '2E3192', '662D91', '92278F', 'EC008C', 'ED145B', '9E0B0F', 'A0410D', 'A36209', 'ABA000', '598527',
'1A7B30', '007236', '00746B', '0076A3', '004B80', '003471', '1B1464', '440E62', '630460', '9E005D', '9E0039', '790000', '7B2E00', '7D4900', '827B00', '406618', '005E20', '005826', '005952', '005B7F',
'003663', '002157', '0D004C', '32004B', '4B0049', '7B0046', '7A0026', 'C7B299', '998675', '736357', '534741', '37302D', 'C69C6E', 'A67C52', '8C6239', '754C24', '603913'];

})(jQuery);

/***************end Bang mau**************/

/**********Call Enter Button on Board***********/
function doClick(buttonName, e) {
    var key;
    if (window.event)
        key = window.event.keyCode;
    else
        key = e.which;

    if (key == 13) {
        var btn = $("#"+buttonName);
        if (btn != null) {
            btn.click();
            event.keyCode = 0
        }
    }
}
/**********************************************/
/*************Tab Menu*************/
function initTabs(obj) {
    $('#tabMenu a').bind('click', obj, function(e) {
        e.preventDefault();
        var thref = $(this).attr("href").replace(/#/, '');
        $('#tabMenu a').removeClass('active');
        $(this).addClass('active');
        $('#tabContent div.content').removeClass('active');
        $('#' + thref).addClass('active');
        $(e.data).val(thref);
    });
}
/**********************************/
function overLap(el) {
    if (!ie_overLap) return;
    if (!el) return;
    var pos = el.position();
    if (!pos) return;
    if (el.attr('hasIframe')) {
        var overframe = el.next('iframe');
        if (overframe) overframe.css({display:'block', left: pos.left});
    } else {
        el.attr('hasIframe', true);
        var marginLeft = parseInt(el.css('marginLeft').replace('px', ''), 10);
        var marginTop = parseInt(el.css('marginTop').replace('px', ''), 10);
        if (!marginLeft) marginLeft = 0;
        if (!marginTop) marginTop = 0;
        var ss = '<iframe class="iframetop" scrolling="no" frameborder="0" width="0" height="0" style="z-index:0;background-color:gray"></iframe>';
        $(ss).insertAfter(el).css({ 'display': 'block', position: 'absolute', top: pos.top + marginTop, left: pos.left + marginLeft, width: el.width(), height: el.height() });
    }
}
/*******************Password Strength*************************/
// Settings
// -- Toggle to true or false, if you want to change what is checked in the password
var m_strUpperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var m_strLowerCase = "abcdefghijklmnopqrstuvwxyz";
var m_strNumber = "0123456789";
var m_strCharacters = "!@#$%^&*?_~"

// Check password
function checkPassword(strPassword) {
    // Reset combination count
    var nScore = 0;

    // Password length
    // -- Less than 4 characters
    if (strPassword.length < 5) {
        nScore += 5;
    }
    // -- 5 to 7 characters
    else if (strPassword.length > 4 && strPassword.length < 8) {
        nScore += 10;
    }
    // -- 8 or more
    else if (strPassword.length > 7) {
        nScore += 25;
    }

    // Letters
    var nUpperCount = countContain(strPassword, m_strUpperCase);
    var nLowerCount = countContain(strPassword, m_strLowerCase);
    var nLowerUpperCount = nUpperCount + nLowerCount;
    // -- Letters are all lower case
    if (nUpperCount == 0 && nLowerCount != 0) {
        nScore += 10;
    }
    // -- Letters are upper case and lower case
    else if (nUpperCount != 0 && nLowerCount != 0) {
        nScore += 20;
    }

    // Numbers
    var nNumberCount = countContain(strPassword, m_strNumber);
    // -- 1 number
    if (nNumberCount == 1) {
        nScore += 10;
    }
    // -- 3 or more numbers
    if (nNumberCount >= 3) {
        nScore += 20;
    }

    // Characters
    var nCharacterCount = countContain(strPassword, m_strCharacters);
    // -- 1 character
    if (nCharacterCount == 1) {
        nScore += 10;
    }
    // -- More than 1 character
    if (nCharacterCount > 1) {
        nScore += 25;
    }

    // Bonus
    // -- Letters and numbers
    if (nNumberCount != 0 && nLowerUpperCount != 0) {
        nScore += 2;
    }
    // -- Letters, numbers, and characters
    if (nNumberCount != 0 && nLowerUpperCount != 0 && nCharacterCount != 0) {
        nScore += 3;
    }
    // -- Mixed case letters, numbers, and characters
    if (nNumberCount != 0 && nUpperCount != 0 && nLowerCount != 0 && nCharacterCount != 0) {
        nScore += 5;
    }


    return nScore;
}
// Runs password through check and then updates GUI
function runPassword(strPassword, strFieldID, aaa) {
    if (strPassword.length == "") return;
    if (strPassword.length < 6) return;
    // Check password
    var nScore = checkPassword(strPassword);
    // Get controls
    ctlBar = document.getElementById(aaa).style.display = "block";
    var ctlBar = document.getElementById(strFieldID + "_bar");
    var ctlText = document.getElementById(strFieldID + "_text");
    if (!ctlBar || !ctlText)
        return;

    // Set new width
    ctlBar.style.width = nScore + "%";

    // Color and text
    // -- Very Secure
    if (nScore >= 90) {
        var strText = "Rất An toàn";
        var strColor = "#0ca908";
    }
    // -- Secure
    else if (nScore >= 80) {
        var strText = "An toàn";
        vstrColor = "#7ff67c";
    }
    // -- Very Strong
    else if (nScore >= 70) {
        var strText = "Rất tốt";
        var strColor = "#1740ef";
    }
    // -- Strong
    else if (nScore >= 60) {
        var strText = "Tốt";
        var strColor = "#5a74e3";
    }
    // -- Average
    else if (nScore >= 50) {
        var strText = "Trung bình";
        var strColor = "#e3cb00";
    }
    // -- Weak
    else if (nScore >= 25) {
        var strText = "Kém an toàn";
        var strColor = "#e7d61a";
    }
    // -- Very Weak
    else {
        var strText = "Rất kém an toàn";
        var strColor = "#e71a1a";
    }
    ctlBar.style.backgroundColor = strColor;
    ctlText.innerHTML = "<span style='color: " + strColor + ";'>" + strText + " - " + nScore + "</span>";
}

// Checks a string for a list of characters
function countContain(strPassword, strCheck) {
    // Declare variables
    var nCount = 0;
    for (i = 0; i < strPassword.length; i++) {
        if (strCheck.indexOf(strPassword.charAt(i)) > -1) {
            nCount++;
        }
    }
    return nCount;
}
/*******************Password Strength*************************/


/*******************MBN Ads*************************/
var zone_left = { C0: 6, C1: 33, C2: 34, C3: 35, C4: 36, C5: 37, C6: 38, C7: 39, C8: 40, C9: 41, CA: 42 }
var zone_right = { C0: 4, C1: 23, C2: 24, C3: 25, C4: 26, C5: 27, C6: 28, C7: 29, C8: 30, C9: 31, CA: 32 };
var zone_bottom = { C0: 5, C1: 44, C2: 45, C3: 46, C4: 47, C5: 48, C6: 49, C7: 50, C8: 51, C9: 52, CA: 53 };
var zone_micro = { ALL: 43 };

function showZone(zoneId, divId) {
    if (typeof (ads_zone) == 'undefined') return;
    if (!ads_zone) return;
    var cfgZone = ads_zone['O' + zoneId];
    if (!cfgZone || cfgZone.count == 0) return;
    if (cfgZone.maxview > cfgZone.count) {
        cfgZone.maxview = cfgZone.count;
    }
    var zone_key = null;
    var index = Math.floor(Math.random() * 1001) % cfgZone.count;
    if (cfgZone.rand) {
        var date = new Date();
        index = date.getMinutes() % cfgZone.count;
    }
    var objBanner = null;
    var arr_rand = new Array();
    // add fixed
    for (var i = 0; i < cfgZone.count; i++) {
        zone_key = 'Z' + zoneId + '_' + i;
        objBanner = ads_zone[zone_key];
        if (objBanner.fixed) {
            arr_rand[arr_rand.length] = objBanner;
        } else {
            break;
        }
    }
    for (var i = index; i < cfgZone.count; i++) {
        zone_key = 'Z' + zoneId + '_' + i;
        objBanner = ads_zone[zone_key];
        if (objBanner.fixed) continue;
        arr_rand[arr_rand.length] = objBanner;
    }
    for (var i = 0; i < index; i++) {
        zone_key = 'Z' + zoneId + '_' + i;
        objBanner = ads_zone[zone_key];
        if (objBanner.fixed) continue;
        arr_rand[arr_rand.length] = objBanner;
    }
    if (!divId) {
        divId = 'adsZone' + zoneId;
        document.write('<div id="' + divId + '" style="' + (cfgZone.w > 0 ? 'width:' + cfgZone.w + 'px;' : '') + (cfgZone.h > 0 ? 'height:' + cfgZone.h + 'px;' : '') + '"></div>');
    }
    var div_show = $('#' + divId);
    var temp_item = '<div id="{id}" style="float:left;{width}{height}">{body}</div>';
    if (ads_template && cfgZone.template > 0) {
        var temp = ads_template['T' + cfgZone.template];
        if (temp && temp.Item != '') {
            temp_item = temp.Item;
        }
    }
    div_show.html('');
    var banner = '';
    var objBanner = null;
    var imageUrl = '';
    var adview_query = '';
    var adclick_url = '';
    for (var i = 0; i < cfgZone.maxview; i++) {
        zone_key = 'Z' + zoneId + '_' + i;
        objBanner = arr_rand[i];
        imageUrl = ads_zone.imageUrl + objBanner.url;
        banner = temp_item;
        banner = banner.replace('{id}', zone_key);
        banner = banner.replace('{width}', 'width:' + objBanner.w + 'px;');
        banner = banner.replace('{height}', 'height:' + objBanner.h + 'px;');
        adclick_url = ads_zone.clickUrl + '?website=' + ads_website + '&zoneId=' + zoneId + '&bannerId=' + objBanner.id;
        if (objBanner.media == 'flash') {
            // flash
            adclick_url += '&url=' + objBanner.flashvars.clickTAG;
            var flashvars = 'clickTARGET=' + objBanner.flashvars.clickTARGET + '&clickTAG=' + escape(adclick_url);
            var s_flash = '<embed src="' + imageUrl + '" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" width="' + objBanner.w + '" height="' + objBanner.h + '" flashvars="' + flashvars + '"></embed>';
            banner = banner.replace('{body}', s_flash);
            div_show.append(banner);
        } else if (objBanner.media == 'image') {
            // image
            adclick_url += '&url=' + objBanner.link;
            var s_image = '<a href="' + adclick_url + '" target="' + objBanner.target + '"><img src="' + imageUrl + '" border="0" width="' + objBanner.w + '" height="' + objBanner.h + '"></a>';
            banner = banner.replace('{body}', s_image);
            div_show.append(banner);
        } else if (objBanner.media == 'html') {
            // html
            banner = banner.replace('{body}', objBanner.html);
            div_show.append(banner);
        }
        adview_query += '_' + objBanner.id;
    }
    var adview_url = ads_zone.viewUrl + '?website=' + ads_website + '&zoneId=' + zoneId + '&Ids=' + adview_query;
    var adview_img = new Image; adview_img.src = adview_url;
}
function showZoneTop(cat, elId) {
    var zoneId = 0;
    if (typeof (zone_top) != 'undefined') zoneId = zone_top['C' + cat];
    if (zoneId == 0) {
        while (cat.length > 0 && (zoneId == null || zoneId == 0)) {
            zoneId = ads_zonecode['_' + cat + 'T'];
            cat = cat.substr(0, cat.length - 1);
        }
    }
    showZone(zoneId, elId);
    window.setInterval('showZone(' + zoneId +',"' + elId + '")', 30000);
}
function showZoneRight(cat) {
    var zoneId = zone_right['C' + cat.substr(0, 1)];
    showZone(zoneId);
}
function showZoneLeft(cat) {
    var zoneId = zone_left['C' + cat.substr(0, 1)];
    showZone(zoneId);
}
function showZoneBottom(cat) {
    var zoneId = zone_bottom['C' + cat.substr(0, 1)];
    showZone(zoneId);
    var elId = 'adsZone' + zoneId;
    window.setInterval('showZone(' + zoneId + ',"' + elId + '")', 30000);
}
function showZoneMicroBar(cat) {
    var zoneId = zone_micro['ALL'];
    showZone(zoneId);
}

/***Google Map***/
function MBNMap() {
    this.geocoder = null;
    this.map = null;
    this.marker = null;
    this.pos = null;
    this.title = '';
}
MBNMap.prototype = {
    initialize: function() {
        if (_mbnMap.title != '') {
            _mbnMap.title = '<table style="margin-bottom:5px; margin-top:5px;"><tr><td>' + _mbnMap.title + '</td></tr></table>'
        }
        if (GBrowserIsCompatible()) {
            _mbnMap.map = new GMap2($("#map_canvas")[0]);
            if (_mbnMap.pos != null) {
                _mbnMap.marker = new GMarker(new GLatLng(_mbnMap.pos[0], _mbnMap.pos[1]));
                _mbnMap.map.addOverlay(_mbnMap.marker);
                if (_mbnMap.title != '')
                    _mbnMap.marker.openInfoWindowHtml(_mbnMap.title);
            } else {
                _mbnMap.pos = ['10.776176844247373', '106.7021641719971'];
            }
            _mbnMap.map.setCenter(new GLatLng(_mbnMap.pos[0], _mbnMap.pos[1]), 14);
            _mbnMap.map.addControl(new GMapTypeControl());
            _mbnMap.map.addControl(new GLargeMapControl3D());

            if (_mbnMap.marker) {
                GEvent.addListener(_mbnMap.marker, 'click', function() {
                    _mbnMap.marker.openInfoWindowHtml(_mbnMap.title);
                });
            }
        }
    },
    initializeInput: function() {
        if (GBrowserIsCompatible()) {
            _mbnMap.map = new GMap2($("#map_canvas")[0]);
            GEvent.addListener(_mbnMap.map, "click", function(overlay, latlng) {
                if (latlng) {
                    _mbnMap.map.clearOverlays();
                    _mbnMap.map.setCenter(latlng, _mbnMap.map.getZoom());
                    _mbnMap.marker = new GMarker(latlng)
                    _mbnMap.map.addOverlay(_mbnMap.marker);
                    _mbnMap.marker.openInfoWindowHtml(_mbnMap.GetHtml());
                    _mbnMap.elPos.val(latlng);
                    GEvent.addListener(_mbnMap.marker, 'click', function() {
                        _mbnMap.marker.openInfoWindowHtml(_mbnMap.GetHtml());
                    });
                }
            });
            var pos = _mbnMap.elPos.val().replace(/[\s\(\)]/gi, '').split(',');
            if (pos.length == 2) {
                _mbnMap.marker = new GMarker(new GLatLng(pos[0], pos[1]));
                _mbnMap.map.addOverlay(_mbnMap.marker);
                _mbnMap.marker.openInfoWindow(new GLatLng(pos[0], pos[1]), _mbnMap.GetHtml());
                GEvent.addListener(_mbnMap.marker, 'click', function() {
                    _mbnMap.marker.openInfoWindowHtml(_mbnMap.GetHtml());
                });
            } else {
                pos = ['10.776176844247373', '106.7021641719971'];
            }
            _mbnMap.map.setCenter(new GLatLng(pos[0], pos[1]), 14);
            _mbnMap.map.addControl(new GMapTypeControl());
            _mbnMap.map.addControl(new GLargeMapControl3D());
        }
    },
    searchAddress: function(v) {
        this.geocoder = new GClientGeocoder();
        if (this.geocoder) {
            this.geocoder.getLatLng('Vietnam, ' + v, function(_point) {
                if (!_point) {
                    alert("Không tìm thấy: " + v);
                } else {
                    _mbnMap.map.clearOverlays();
                    _mbnMap.map.setCenter(_point, 15);
                }
            });
        }
    }
}
