/// <reference path="jquery-1.6.1.min.js" />


var Actwork = function () {
    /// <summary> JS com scripts padrão para Actwork</summary>
    /// <returns type="Actwork"/>  
};

Actwork.CreateCookie = function (name, value, days) {
    /// <summary> Cria um cookie na memoria do browser</summary>
    /// <param name="name" type="string">string</param>
    /// <param name="value" type="string">string</param>
    /// <param name="days" type="int">int</param> 

    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else {
        expires = "";
    }

    document.cookie = name + "=" + value + expires + "; path=/";
}

Actwork.ReadCookie = function (name) {
    /// <summary> Faz a leitura do Cookie</summary>
    /// <param name="name" type="string">string</param>  
    /// <returns type="String"/> 

    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

Actwork.EraseCookie = function (name) {
    /// <summary> Apaga o cookie</summary>
    /// <param name="name" type="string">string</param>
    Actwork.CreateCookie(name, "", -1);
}

Actwork.Type = {
    "TextBox": "input",
    "DropDownList": "select",
    "Img": "img",
    "GridView": "table",
    "HiddenField": "input",
    "Label": "div",
    "CheckBox": "input",
    "CheckBoxList": "table",
    "Panel": "div"
}

Actwork.Imprimir = function (selector, width, height, htmlTopo, htmlBottom) {
    var ficha = Actwork.GetHtml(selector, htmlTopo, htmlBottom);

    if (ficha != null) {

        var urlCss = "/App_Themes/Default/impressao.css";
        var ventimp = window.open("", "popimpr", "location=0,status=0,scrollbars=1,width=" + width + ",height=" + height + "");
        ventimp.document.write(ficha);
        //ventimp.print();
        //ventimp.close();
    }
}

Actwork.GetHtml = function (selector, htmlTopo, htmlBottom) {
    var ficha = $(selector).length > 0 ? $(selector)[0] : null;

    if (ficha != null) {
        if (htmlTopo == null) {
            htmlTopo = "";
        }

        if (htmlBottom == null) {
            htmlBottom = "";
        }

        var urlCss = "<link rel='stylesheet' href='/App_Themes/Default/formularios.css'/><link rel='stylesheet' href='/App_Themes/Default/impressao.css'/>";
        var content = "<div class='htmlCreated'><!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN' 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd'><html xmlns='http://www.w3.org/1999/xhtml'><head></head><body><div class='formulario impressao'>" + htmlTopo + ficha.innerHTML + htmlBottom + "</div>" + urlCss + "</body></html></div>";
        var content = content.replace(/\n/gi, "");
        var content = content.replace(/<script.*?<\/script>/gi, "");
        var obj = $(content);

        obj.find(".impressao input[type=text], .impressao textarea, .impressao select").addClass("noborder");
        obj.find("input, textarea, select").remove();
        obj.find(".esconde").remove();

        var html = obj.html()//.replace(/<script.*<\/script>/gi, "");
        obj = null;
        return html;
    }

    return "";
}

Actwork.GetNet = function (ID, type) {
    /// <summary> Pega o componente do .NET pelo ID</summary>
    /// <param name="ID" type="string">string</param>
    /// <param name="type" type="Actwork.Type">Pega o tipo do componente .NET e decifra para o HTML ou pode colocar o tipo de TAG HTML na mão como ex: "DIV"</param>
    /// <returns type="Object"/> 

    var sel = null;

    $(type).each(
    function (i, obj) {
        if (type != null && this.id.indexOf(ID) > -1 &&
           this.id.slice(this.id.indexOf(ID) + ID.length).length == 0) {
            sel = this;
        }
    });

    return sel;
}

Actwork.GetQuerystring = function(key, default_) {
    if (default_ == null) default_ = "";
    key = key.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = new RegExp("[\\?&]" + key + "=([^&#]*)");
    var qs = regex.exec(window.location.href);
    if (qs == null)
        return default_;
    else
        return qs[1];
}

Actwork.HtmlDecode = function (s) {
    /// <summary> Decodifica o texto em HTML</summary>
    /// <param name="s" type="string">Texto que irá ser decodificado</param>
    /// <returns type="String"/>    

    var out = "";
    if (s == null) {
        return;
    }
    var l = s.length;

    for (var i = 0; i < l; i++) {
        var ch = s.charAt(i);
        if (ch == '&') {
            var semicolonIndex = s.indexOf(';', i + 1);
            if (semicolonIndex > 0) {
                var entity = s.substring(i + 1, semicolonIndex);
                if (entity.length > 1 && entity.charAt(0) == '#') {

                    if (entity.charAt(1) == 'x' || entity.charAt(1) == 'X') {

                        ch = String.fromCharCode(eval('0' + entity.substring(1)));

                    }
                    else {
                        ch = String.fromCharCode(eval(entity.substring(1)));
                    }

                }
                else {

                    switch (entity) {

                        case 'quot':
                            ch = String.fromCharCode(0x0022);
                            break;

                        case 'amp':
                            ch = String.fromCharCode(0x0026);
                            break;

                        case 'lt':
                            ch = String.fromCharCode(0x003c);
                            break;

                        case 'gt':
                            ch = String.fromCharCode(0x003e);
                            break;

                        case 'nbsp':
                            ch = String.fromCharCode(0x00a0);
                            break;

                        case 'iexcl':
                            ch = String.fromCharCode(0x00a1);
                            break;

                        case 'cent':
                            ch = String.fromCharCode(0x00a2);
                            break;

                        case 'pound':
                            ch = String.fromCharCode(0x00a3);
                            break;

                        case 'curren':
                            ch = String.fromCharCode(0x00a4);
                            break;

                        case 'yen':
                            ch = String.fromCharCode(0x00a5);
                            break;

                        case 'brvbar':
                            ch = String.fromCharCode(0x00a6);
                            break;

                        case 'sect':
                            ch = String.fromCharCode(0x00a7);
                            break;

                        case 'uml':
                            ch = String.fromCharCode(0x00a8);
                            break;

                        case 'copy':
                            ch = String.fromCharCode(0x00a9);
                            break;

                        case 'ordf':
                            ch = String.fromCharCode(0x00aa);
                            break;

                        case 'laquo':
                            ch = String.fromCharCode(0x00ab);
                            break;

                        case 'not':
                            ch = String.fromCharCode(0x00ac);
                            break;

                        case 'shy':
                            ch = String.fromCharCode(0x00ad);
                            break;

                        case 'reg':
                            ch = String.fromCharCode(0x00ae);
                            break;

                        case 'macr':
                            ch = String.fromCharCode(0x00af);
                            break;

                        case 'deg':
                            ch = String.fromCharCode(0x00b0);
                            break;

                        case 'plusmn':
                            ch = String.fromCharCode(0x00b1);
                            break;

                        case 'sup2':
                            ch = String.fromCharCode(0x00b2);
                            break;

                        case 'sup3':
                            ch = String.fromCharCode(0x00b3);
                            break;

                        case 'acute':
                            ch = String.fromCharCode(0x00b4);
                            break;

                        case 'micro':
                            ch = String.fromCharCode(0x00b5);
                            break;

                        case 'para':
                            ch = String.fromCharCode(0x00b6);
                            break;

                        case 'middot':
                            ch = String.fromCharCode(0x00b7);
                            break;

                        case 'cedil':
                            ch = String.fromCharCode(0x00b8);
                            break;

                        case 'sup1':
                            ch = String.fromCharCode(0x00b9);
                            break;

                        case 'ordm':
                            ch = String.fromCharCode(0x00ba);
                            break;

                        case 'raquo':
                            ch = String.fromCharCode(0x00bb);
                            break;

                        case 'frac14':
                            ch = String.fromCharCode(0x00bc);
                            break;

                        case 'frac12':
                            ch = String.fromCharCode(0x00bd);
                            break;

                        case 'frac34':
                            ch = String.fromCharCode(0x00be);
                            break;

                        case 'iquest':
                            ch = String.fromCharCode(0x00bf);
                            break;

                        case 'Agrave':
                            ch = String.fromCharCode(0x00c0);
                            break;

                        case 'Aacute':
                            ch = String.fromCharCode(0x00c1);
                            break;

                        case 'Acirc':
                            ch = String.fromCharCode(0x00c2);
                            break;

                        case 'Atilde':
                            ch = String.fromCharCode(0x00c3);
                            break;

                        case 'Auml':
                            ch = String.fromCharCode(0x00c4);
                            break;

                        case 'Aring':
                            ch = String.fromCharCode(0x00c5);
                            break;

                        case 'AElig':
                            ch = String.fromCharCode(0x00c6);
                            break;

                        case 'Ccedil':
                            ch = String.fromCharCode(0x00c7);
                            break;

                        case 'Egrave':
                            ch = String.fromCharCode(0x00c8);
                            break;

                        case 'Eacute':
                            ch = String.fromCharCode(0x00c9);
                            break;

                        case 'Ecirc':
                            ch = String.fromCharCode(0x00ca);
                            break;

                        case 'Euml':
                            ch = String.fromCharCode(0x00cb);
                            break;

                        case 'Igrave':
                            ch = String.fromCharCode(0x00cc);
                            break;

                        case 'Iacute':
                            ch = String.fromCharCode(0x00cd);
                            break;

                        case 'Icirc':
                            ch = String.fromCharCode(0x00ce);
                            break;

                        case 'Iuml':
                            ch = String.fromCharCode(0x00cf);
                            break;

                        case 'ETH':
                            ch = String.fromCharCode(0x00d0);
                            break;

                        case 'Ntilde':
                            ch = String.fromCharCode(0x00d1);
                            break;

                        case 'Ograve':
                            ch = String.fromCharCode(0x00d2);
                            break;

                        case 'Oacute':
                            ch = String.fromCharCode(0x00d3);
                            break;

                        case 'Ocirc':
                            ch = String.fromCharCode(0x00d4);
                            break;

                        case 'Otilde':
                            ch = String.fromCharCode(0x00d5);
                            break;

                        case 'Ouml':
                            ch = String.fromCharCode(0x00d6);
                            break;

                        case 'times':
                            ch = String.fromCharCode(0x00d7);
                            break;

                        case 'Oslash':
                            ch = String.fromCharCode(0x00d8);
                            break;

                        case 'Ugrave':
                            ch = String.fromCharCode(0x00d9);
                            break;

                        case 'Uacute':
                            ch = String.fromCharCode(0x00da);
                            break;

                        case 'Ucirc':
                            ch = String.fromCharCode(0x00db);
                            break;

                        case 'Uuml':
                            ch = String.fromCharCode(0x00dc);
                            break;

                        case 'Yacute':
                            ch = String.fromCharCode(0x00dd);
                            break;

                        case 'THORN':
                            ch = String.fromCharCode(0x00de);
                            break;

                        case 'szlig':
                            ch = String.fromCharCode(0x00df);
                            break;

                        case 'agrave':
                            ch = String.fromCharCode(0x00e0);
                            break;

                        case 'aacute':
                            ch = String.fromCharCode(0x00e1);
                            break;

                        case 'acirc':
                            ch = String.fromCharCode(0x00e2);
                            break;

                        case 'atilde':
                            ch = String.fromCharCode(0x00e3);
                            break;

                        case 'auml':
                            ch = String.fromCharCode(0x00e4);
                            break;

                        case 'aring':
                            ch = String.fromCharCode(0x00e5);
                            break;

                        case 'aelig':
                            ch = String.fromCharCode(0x00e6);
                            break;

                        case 'ccedil':
                            ch = String.fromCharCode(0x00e7);
                            break;

                        case 'egrave':
                            ch = String.fromCharCode(0x00e8);
                            break;

                        case 'eacute':
                            ch = String.fromCharCode(0x00e9);
                            break;

                        case 'ecirc':
                            ch = String.fromCharCode(0x00ea);
                            break;

                        case 'euml':
                            ch = String.fromCharCode(0x00eb);
                            break;

                        case 'igrave':
                            ch = String.fromCharCode(0x00ec);
                            break;

                        case 'iacute':
                            ch = String.fromCharCode(0x00ed);
                            break;

                        case 'icirc':
                            ch = String.fromCharCode(0x00ee);
                            break;

                        case 'iuml':
                            ch = String.fromCharCode(0x00ef);
                            break;

                        case 'eth':
                            ch = String.fromCharCode(0x00f0);
                            break;

                        case 'ntilde':
                            ch = String.fromCharCode(0x00f1);
                            break;

                        case 'ograve':
                            ch = String.fromCharCode(0x00f2);
                            break;

                        case 'oacute':
                            ch = String.fromCharCode(0x00f3);
                            break;

                        case 'ocirc':
                            ch = String.fromCharCode(0x00f4);
                            break;

                        case 'otilde':
                            ch = String.fromCharCode(0x00f5);
                            break;

                        case 'ouml':
                            ch = String.fromCharCode(0x00f6);
                            break;

                        case 'divide':
                            ch = String.fromCharCode(0x00f7);
                            break;

                        case 'oslash':
                            ch = String.fromCharCode(0x00f8);
                            break;

                        case 'ugrave':
                            ch = String.fromCharCode(0x00f9);
                            break;

                        case 'uacute':
                            ch = String.fromCharCode(0x00fa);
                            break;

                        case 'ucirc':
                            ch = String.fromCharCode(0x00fb);
                            break;

                        case 'uuml':
                            ch = String.fromCharCode(0x00fc);
                            break;

                        case 'yacute':
                            ch = String.fromCharCode(0x00fd);
                            break;

                        case 'thorn':
                            ch = String.fromCharCode(0x00fe);
                            break;

                        case 'yuml':
                            ch = String.fromCharCode(0x00ff);
                            break;

                        case 'OElig':
                            ch = String.fromCharCode(0x0152);
                            break;

                        case 'oelig':
                            ch = String.fromCharCode(0x0153);
                            break;

                        case 'Scaron':
                            ch = String.fromCharCode(0x0160);
                            break;

                        case 'scaron':
                            ch = String.fromCharCode(0x0161);
                            break;

                        case 'Yuml':
                            ch = String.fromCharCode(0x0178);
                            break;

                        case 'fnof':
                            ch = String.fromCharCode(0x0192);
                            break;

                        case 'circ':
                            ch = String.fromCharCode(0x02c6);
                            break;

                        case 'tilde':
                            ch = String.fromCharCode(0x02dc);
                            break;

                        case 'Alpha':
                            ch = String.fromCharCode(0x0391);
                            break;

                        case 'Beta':
                            ch = String.fromCharCode(0x0392);
                            break;

                        case 'Gamma':
                            ch = String.fromCharCode(0x0393);
                            break;

                        case 'Delta':
                            ch = String.fromCharCode(0x0394);
                            break;

                        case 'Epsilon':
                            ch = String.fromCharCode(0x0395);
                            break;

                        case 'Zeta':
                            ch = String.fromCharCode(0x0396);
                            break;

                        case 'Eta':
                            ch = String.fromCharCode(0x0397);
                            break;

                        case 'Theta':
                            ch = String.fromCharCode(0x0398);
                            break;

                        case 'Iota':
                            ch = String.fromCharCode(0x0399);
                            break;

                        case 'Kappa':
                            ch = String.fromCharCode(0x039a);
                            break;

                        case 'Lambda':
                            ch = String.fromCharCode(0x039b);
                            break;

                        case 'Mu':
                            ch = String.fromCharCode(0x039c);
                            break;

                        case 'Nu':
                            ch = String.fromCharCode(0x039d);
                            break;

                        case 'Xi':
                            ch = String.fromCharCode(0x039e);
                            break;

                        case 'Omicron':
                            ch = String.fromCharCode(0x039f);
                            break;

                        case 'Pi':
                            ch = String.fromCharCode(0x03a0);
                            break;

                        case ' Rho ':
                            ch = String.fromCharCode(0x03a1);
                            break;

                        case 'Sigma':
                            ch = String.fromCharCode(0x03a3);
                            break;

                        case 'Tau':
                            ch = String.fromCharCode(0x03a4);
                            break;

                        case 'Upsilon':
                            ch = String.fromCharCode(0x03a5);
                            break;

                        case 'Phi':
                            ch = String.fromCharCode(0x03a6);
                            break;

                        case 'Chi':
                            ch = String.fromCharCode(0x03a7);
                            break;

                        case 'Psi':
                            ch = String.fromCharCode(0x03a8);
                            break;

                        case 'Omega':
                            ch = String.fromCharCode(0x03a9);
                            break;

                        case 'alpha':
                            ch = String.fromCharCode(0x03b1);
                            break;

                        case 'beta':
                            ch = String.fromCharCode(0x03b2);
                            break;

                        case 'gamma':
                            ch = String.fromCharCode(0x03b3);
                            break;

                        case 'delta':
                            ch = String.fromCharCode(0x03b4);
                            break;

                        case 'epsilon':
                            ch = String.fromCharCode(0x03b5);
                            break;

                        case 'zeta':
                            ch = String.fromCharCode(0x03b6);
                            break;

                        case 'eta':
                            ch = String.fromCharCode(0x03b7);
                            break;

                        case 'theta':
                            ch = String.fromCharCode(0x03b8);
                            break;

                        case 'iota':
                            ch = String.fromCharCode(0x03b9);
                            break;

                        case 'kappa':
                            ch = String.fromCharCode(0x03ba);
                            break;

                        case 'lambda':
                            ch = String.fromCharCode(0x03bb);
                            break;

                        case 'mu':
                            ch = String.fromCharCode(0x03bc);
                            break;

                        case 'nu':
                            ch = String.fromCharCode(0x03bd);
                            break;

                        case 'xi':
                            ch = String.fromCharCode(0x03be);
                            break;

                        case 'omicron':
                            ch = String.fromCharCode(0x03bf);
                            break;

                        case 'pi':
                            ch = String.fromCharCode(0x03c0);
                            break;

                        case 'rho':
                            ch = String.fromCharCode(0x03c1);
                            break;

                        case 'sigmaf':
                            ch = String.fromCharCode(0x03c2);
                            break;

                        case 'sigma':
                            ch = String.fromCharCode(0x03c3);
                            break;

                        case 'tau':
                            ch = String.fromCharCode(0x03c4);
                            break;

                        case 'upsilon':
                            ch = String.fromCharCode(0x03c5);
                            break;

                        case 'phi':
                            ch = String.fromCharCode(0x03c6);
                            break;

                        case 'chi':
                            ch = String.fromCharCode(0x03c7);
                            break;

                        case 'psi':
                            ch = String.fromCharCode(0x03c8);
                            break;

                        case 'omega':
                            ch = String.fromCharCode(0x03c9);
                            break;

                        case 'thetasym':
                            ch = String.fromCharCode(0x03d1);
                            break;

                        case 'upsih':
                            ch = String.fromCharCode(0x03d2);
                            break;

                        case 'piv':
                            ch = String.fromCharCode(0x03d6);
                            break;

                        case 'ensp':
                            ch = String.fromCharCode(0x2002);
                            break;

                        case 'emsp':
                            ch = String.fromCharCode(0x2003);
                            break;

                        case 'thinsp':
                            ch = String.fromCharCode(0x2009);
                            break;

                        case 'zwnj':
                            ch = String.fromCharCode(0x200c);
                            break;

                        case 'zwj':
                            ch = String.fromCharCode(0x200d);
                            break;

                        case 'lrm':
                            ch = String.fromCharCode(0x200e);
                            break;

                        case 'rlm':
                            ch = String.fromCharCode(0x200f);
                            break;

                        case 'ndash':
                            ch = String.fromCharCode(0x2013);
                            break;

                        case 'mdash':
                            ch = String.fromCharCode(0x2014);
                            break;

                        case 'lsquo':
                            ch = String.fromCharCode(0x2018);
                            break;

                        case 'rsquo':
                            ch = String.fromCharCode(0x2019);
                            break;

                        case 'sbquo':
                            ch = String.fromCharCode(0x201a);
                            break;

                        case 'ldquo':
                            ch = String.fromCharCode(0x201c);
                            break;

                        case 'rdquo':
                            ch = String.fromCharCode(0x201d);
                            break;

                        case 'bdquo':
                            ch = String.fromCharCode(0x201e);
                            break;

                        case 'dagger':
                            ch = String.fromCharCode(0x2020);
                            break;

                        case 'Dagger':
                            ch = String.fromCharCode(0x2021);
                            break;

                        case 'bull':
                            ch = String.fromCharCode(0x2022);
                            break;

                        case 'hellip':
                            ch = String.fromCharCode(0x2026);
                            break;

                        case 'permil':
                            ch = String.fromCharCode(0x2030);
                            break;

                        case 'prime':
                            ch = String.fromCharCode(0x2032);
                            break;

                        case 'Prime':
                            ch = String.fromCharCode(0x2033);
                            break;

                        case 'lsaquo':
                            ch = String.fromCharCode(0x2039);
                            break;

                        case 'rsaquo':
                            ch = String.fromCharCode(0x203a);
                            break;

                        case 'oline':
                            ch = String.fromCharCode(0x203e);
                            break;

                        case 'frasl':
                            ch = String.fromCharCode(0x2044);
                            break;

                        case 'euro':
                            ch = String.fromCharCode(0x20ac);
                            break;

                        case 'image':
                            ch = String.fromCharCode(0x2111);
                            break;

                        case 'weierp':
                            ch = String.fromCharCode(0x2118);
                            break;

                        case 'real':
                            ch = String.fromCharCode(0x211c);
                            break;

                        case 'trade':
                            ch = String.fromCharCode(0x2122);
                            break;

                        case 'alefsym':
                            ch = String.fromCharCode(0x2135);
                            break;

                        case 'larr':
                            ch = String.fromCharCode(0x2190);
                            break;

                        case 'uarr':
                            ch = String.fromCharCode(0x2191);
                            break;

                        case 'rarr':
                            ch = String.fromCharCode(0x2192);
                            break;

                        case 'darr':
                            ch = String.fromCharCode(0x2193);
                            break;

                        case 'harr':
                            ch = String.fromCharCode(0x2194);
                            break;

                        case 'crarr':
                            ch = String.fromCharCode(0x21b5);
                            break;

                        case 'lArr':
                            ch = String.fromCharCode(0x21d0);
                            break;

                        case 'uArr':
                            ch = String.fromCharCode(0x21d1);
                            break;

                        case 'rArr':
                            ch = String.fromCharCode(0x21d2);
                            break;

                        case 'dArr':
                            ch = String.fromCharCode(0x21d3);
                            break;

                        case 'hArr':
                            ch = String.fromCharCode(0x21d4);
                            break;

                        case 'forall':
                            ch = String.fromCharCode(0x2200);
                            break;

                        case 'part':
                            ch = String.fromCharCode(0x2202);
                            break;

                        case 'exist':
                            ch = String.fromCharCode(0x2203);
                            break;

                        case 'empty':
                            ch = String.fromCharCode(0x2205);
                            break;

                        case 'nabla':
                            ch = String.fromCharCode(0x2207);
                            break;

                        case 'isin':
                            ch = String.fromCharCode(0x2208);
                            break;

                        case 'notin':
                            ch = String.fromCharCode(0x2209);
                            break;

                        case 'ni':
                            ch = String.fromCharCode(0x220b);
                            break;

                        case 'prod':
                            ch = String.fromCharCode(0x220f);
                            break;

                        case 'sum':
                            ch = String.fromCharCode(0x2211);
                            break;

                        case 'minus':
                            ch = String.fromCharCode(0x2212);
                            break;

                        case 'lowast':
                            ch = String.fromCharCode(0x2217);
                            break;

                        case 'radic':
                            ch = String.fromCharCode(0x221a);
                            break;

                        case 'prop':
                            ch = String.fromCharCode(0x221d);
                            break;

                        case 'infin':
                            ch = String.fromCharCode(0x221e);
                            break;

                        case 'ang':
                            ch = String.fromCharCode(0x2220);
                            break;

                        case 'and':
                            ch = String.fromCharCode(0x2227);
                            break;

                        case 'or':
                            ch = String.fromCharCode(0x2228);
                            break;

                        case 'cap':
                            ch = String.fromCharCode(0x2229);
                            break;

                        case 'cup':
                            ch = String.fromCharCode(0x222a);
                            break;

                        case 'int':
                            ch = String.fromCharCode(0x222b);
                            break;

                        case 'there4':
                            ch = String.fromCharCode(0x2234);
                            break;

                        case 'sim':
                            ch = String.fromCharCode(0x223c);
                            break;

                        case 'cong':
                            ch = String.fromCharCode(0x2245);
                            break;

                        case 'asymp':
                            ch = String.fromCharCode(0x2248);
                            break;

                        case 'ne':
                            ch = String.fromCharCode(0x2260);
                            break;

                        case 'equiv':
                            ch = String.fromCharCode(0x2261);
                            break;

                        case 'le':
                            ch = String.fromCharCode(0x2264);
                            break;

                        case 'ge':
                            ch = String.fromCharCode(0x2265);
                            break;

                        case 'sub':
                            ch = String.fromCharCode(0x2282);
                            break;

                        case 'sup':
                            ch = String.fromCharCode(0x2283);
                            break;

                        case 'nsub':
                            ch = String.fromCharCode(0x2284);
                            break;

                        case 'sube':
                            ch = String.fromCharCode(0x2286);
                            break;

                        case 'supe':
                            ch = String.fromCharCode(0x2287);
                            break;

                        case 'oplus':
                            ch = String.fromCharCode(0x2295);
                            break;

                        case 'otimes':
                            ch = String.fromCharCode(0x2297);
                            break;

                        case 'perp':
                            ch = String.fromCharCode(0x22a5);
                            break;

                        case 'sdot':
                            ch = String.fromCharCode(0x22c5);
                            break;

                        case 'lceil':
                            ch = String.fromCharCode(0x2308);
                            break;

                        case 'rceil':
                            ch = String.fromCharCode(0x2309);
                            break;

                        case 'lfloor':
                            ch = String.fromCharCode(0x230a);
                            break;

                        case 'rfloor':
                            ch = String.fromCharCode(0x230b);
                            break;

                        case 'lang':
                            ch = String.fromCharCode(0x2329);
                            break;

                        case 'rang':
                            ch = String.fromCharCode(0x232a);
                            break;

                        case 'loz':
                            ch = String.fromCharCode(0x25ca);
                            break;

                        case 'spades':
                            ch = String.fromCharCode(0x2660);
                            break;

                        case 'clubs':
                            ch = String.fromCharCode(0x2663);
                            break;

                        case 'hearts':
                            ch = String.fromCharCode(0x2665);
                            break;

                        case 'diams':
                            ch = String.fromCharCode(0x2666);
                            break;

                        default:
                            ch = '';
                            break;

                    }

                }

                i = semicolonIndex;

            }

        }

        out += ch;

    }

    return out;
}


if (typeof String.prototype.trim !== 'function') {
    String.prototype.trim = function () {
        return this.replace(/(^[\s\xA0]+|[\s\xA0]+$)/g, '');
    }
}

// Util
function ConvertToFloat(valor) {

    if (valor == "") {
        return 0;
    }

    return parseFloat(valor.toString().replace(/\./g, "").replace(/,/g, "."));
}

function ConvertToMoneyBr(num) {

    x = 0;

    if (num < 0) {
        num = Math.abs(num);
        x = 1;
    } if (isNaN(num)) num = "0";
    cents = Math.floor((num * 100 + 0.5) % 100);

    num = Math.floor((num * 100 + 0.5) / 100).toString();

    if (cents < 10) cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length - (1 + i)) / 3); i++)
        num = num.substring(0, num.length - (4 * i + 3)) + '.'
               + num.substring(num.length - (4 * i + 3)); ret = num + ',' + cents; if (x == 1) ret = ' - ' + ret; return ret;

}

/////////////////// deixa campos sem bordas
function CheckNoBorder(obj) {

    if ($("label." + $(obj).attr("id")).length == 0) {

        var tagName = $(obj)[0].tagName.toLowerCase();

        if (tagName == "select") {
            $(obj).before("<label style='font-weight:bold;margin-right:15pxline-height:20px;' class='noborderlabel " + $(obj).attr("id") + "'>" + $(obj).find("option:selected").text() + "</label>");
            $(obj).change(function (i, o) {
                $("label." + $(obj).attr("id")).html($(obj).find("option:selected").text());
            });
        }
        else if (tagName == "input" || tagName == "textarea") {
            if ($(obj).is("input:radio")) {
                if ($(obj)[0].checked) {
                    $("label[for='" + $(obj).attr("id") + "']").show();
                } else {
                    $("label[for='" + $(obj).attr("id") + "']").hide();
                }
                $(obj).change(function (i, o) {
                    if (this.checked) {
                        $("label[for='" + $(this).attr("id") + "']").show();
                    } else {
                        $("label[for='" + $(this).attr("id") + "']").hide();
                    }
                });
            } else if ($(obj).is("input:checkbox")) {
                //faz nada, so esconde o checkbox
            } else {
                $(obj).after("<label style='font-weight:bold;margin-right:15px;line-height:20px;' class='noborderlabel " + $(obj).attr("id") + "'>" + $(obj).val() + "</label>");
                $(obj).change(function (i, o) {
                    $("label." + $(obj).attr("id")).html($(obj).val());
                });
            }
        }
        $(obj).hide();
    }
}


function RemoveNoBorder(obj) {
    $("label." + $(obj).attr("id")).remove();
    $(obj).show();
}

function CheckNoBorders() {
    /// <summary>
    ///     1: Selector param
    /// </summary>        

    var selector = "";
    if (arguments.length > 0 && !jQuery.isFunction(arguments[0])) {
        selector = arguments[0];
    }

    $(selector + " .noborder").each(function (i, o) {
        CheckNoBorder(this);
    });
}

(function () {
    // original method.
    var originalAddClassMethod = jQuery.fn.addClass;

    jQuery.fn.addClass = function () {

        var args = arguments;
        var retorno = originalAddClassMethod.apply(this, arguments);

        $(this).trigger("addClass", [args[0]]);

        if (args[0] == "noborder") {
            this.each(function (i, o) {
                CheckNoBorder(this);
            });
        };

        // Execute the original method.
        return retorno;
    }

    // original method.
    var originalRemoveClassMethod = jQuery.fn.removeClass;

    jQuery.fn.removeClass = function () {

        var args = arguments;
        var retorno = originalRemoveClassMethod.apply(this, arguments);

        $(this).trigger("removeClass", [args[0]]);

        if (args[0] == "noborder") {
            this.each(function (i, o) {
                RemoveNoBorder(this);
            });
        };

        // Execute the original method.
        return retorno;
    }

})(jQuery);

/////////////////// EmptyMessages
function CheckEmptyMessage() {
    /// <summary>
    ///     1: Selector param
    /// </summary>        

    var selector = "";
    if (arguments.length > 0 && !jQuery.isFunction(arguments[0])) {
        selector = arguments[0];
    }

    $(selector + " input," + selector + " textarea," + selector + " select," + selector + " span," + selector + " table").each(function (i, o) {

        if ($(this).attr("EmptyMessage") != null) {
            if ($("label.emptyMessage" + $(this).attr("id") + "").length == 0) {
                $(this).css("display", "inline-block");

                $("<label class='emptyMessage emptyMessage" + $(this).attr("id") + "'>" + GetEmptyMessage(this) + "</label>").insertBefore(this);

            }
            else {
                $("label.emptyMessage" + $(this).attr("id") + "").html(GetEmptyMessage(this));
            }
        }
    });
}

function GetEmptyMessage(obj) {

    var isRequired = "";
    if ($(obj).hasClass("required") && $(obj).attr("EmptyMessage").indexOf("*") == -1) {
        isRequired = "* ";
    }

    return isRequired + $(obj).attr("EmptyMessage");
}

//////// Masks
function CheckMasks() {
    /// <summary>
    ///     1: Selector param
    /// </summary>
    if ($.mask != undefined) {
        var selector = "";
        if (arguments.length > 0 && !jQuery.isFunction(arguments[0])) {
            selector = arguments[0];
        }
        $(".moneyPt, .decimalPt").unmaskMoney();
        $(".moneyPt, .decimalPt").maskMoney();
        $(".moneyPt, .decimalPt").maskMoneyApply();

        $(selector + " .tel").unmask();
        $(selector + " .tel").mask("(99) 9999-9999");

        $(selector + " .dateBR").unmask();
        $(selector + " .dateBR").mask("99/99/9999");

        $(selector + " .calendar").datepicker({ onSelect: function (dateText, inst) {
            var calendarError = $(this).prev(".error");
            calendarError.hide();
        }});


        $(selector + " .timeBR").unmask();
        $(selector + " .timeBR").mask("99:99");

        if ($.timepicker != undefined) {

            $(selector + " .timepicker").timepicker({
                showPeriodLabels: false
            });
        }

        $(selector + " .cep").unmask();
        $(selector + " .cep").mask("99999-999");

        $(selector + " .cpf").unmask();
        $(selector + " .cpf").mask("999.999.999-99");

        $(selector + " .cnpj").unmask();
        $(selector + " .cnpj").mask("99.999.999/9999-99");
    }
}

function GeneralCheck() {
    CheckMasks();
    CheckEmptyMessage();
    CheckNoBorders();
    IniAnchorAnimate();

    //    // Initialize validation on the entire ASP.NET form.
    //    $("form").validate({
    //        // This prevents validation from running on every
    //        //  form submission by default.
    //        onsubmit: false,
    //        submitHandler: function () { PreventPostback = false; }
    //    });    

    // Search for controls marked with the causesValidation flag 
    //  that are contained anywhere within elements marked as 
    //  validationGroups, and wire their click event up.
    $('.btnEnviar').click(ValidateAndSubmit);

    $(".btnEnviar[onclick*='__doPostBack']:not([onclick*='return false')").each(function (i, o) {
        if ($(this).attr("onclick") != null) {
            $(this).attr("onclick", new String($(this).attr("onclick")).substr(0, new String($(this).attr("onclick")).indexOf("__doPostBack")) + " return false;").addClass("forcepostback");
        }
    });
}

$(GeneralCheck);


function ValidateGroup(currentTarget, rules, messages) {
    var target = currentTarget.currentTarget || currentTarget;
    $("form").validate({
        // This prevents validation from running on every
        //  form submission by default.
        onsubmit: false,
        submitHandler: function () { PreventPostback = false; },
        rules: rules,
        messages: messages
    }
    );

    if ($(".required input:radio").length > 0) {
        $(".required input:radio").each(function () {
            $(this).rules("add", { required: true });
        });
    }

    // Ascend from the button that triggered this click event 
    //  until we find a container element flagged with 
    //  .validationGroup and store a reference to that element.
    var $group = $(target).parents('.validationGroup');

    if ($group.length == 0) {
        $group = $("form");
    }

    var isValid = true;
    var firstInvalidItem = null;
    // Descending from that .validationGroup element, find any input
    //  elements within it, iterate over them, and run validation on 
    //  each of them.
    $group.find(':input:not(:disabled)').each(function (i, item) {
        if (!$(item).valid() && !$(item).hasClass("valid")) {
            isValid = false;
            if (!firstInvalidItem) {
                firstInvalidItem = $(item);
            }
        }
    });
    if (firstInvalidItem) {
        firstInvalidItem.focus();
    }
    return isValid;
}


function ValidateAndSubmit(evt) {
    var obj = this;
    var isValid = ValidateGroup(evt.currentTarget);

    // If any fields failed validation, prevent the button's click 
    //  event from triggering form submission.
    if (!isValid) {
        evt.preventDefault();
    }
    else {
        if ($(obj).is("[class*='forcepostback']")) {
            var onclick = $(obj).is("[class*='forcepostback']");
            var name = $(obj).attr("name");
            var id = $(obj).attr("id").replace(/_/i, '');
            __doPostBack(name != "" ? name : id, '');
        }
    }
}




// Mensagem dinâmica
$(function () {
    $("body").append("<div class='msgdinamica'></div>");
});

function ShowMessage(text) {
    $(".msgdinamica").text(text);
    $(".msgdinamica").show("slow");
    setTimeout(function () {
        $(".msgdinamica").hide("slow");
    }, 5000);
}

function GridLineShowLoading(pai) {
    var element = GridLineGetLoadElement(pai);
    $(element).hide();
    $(element).css({ "background-image": "url(/App_Themes/Default/images/loading.gif)" });
    $(element).fadeIn("slow");
}
function GridLineShowSucess(pai) {
    var element = GridLineGetLoadElement(pai);
    setTimeout(function () {
        $(element).css({ "background-image": "url(/App_Themes/Default/images/sucesso.png)" });
        setTimeout(function () {
            if ($(element).css("background-image").indexOf("images/sucesso.png") > -1)
            { $(element).fadeOut("slow"); }
        }, 3000);
    }, 1000);
}
function GridLineGetLoadElement(pai) {
    if ($("div.GridLineLoading" + $(pai).attr("id") + "").length == 0) {
        $("<div style='display:inline-block;width:20px; height:20px;background-position:center center' class='GridLineLoading GridLineLoading" + $(pai).attr("id") + "'></div>").insertAfter(pai);
    }
    return $("div.GridLineLoading" + $(pai).attr("id") + "");
}
// fancybox////////////////////////////////////
///////////////////////////////////////////////
$(function () {
    if ($.fancybox != undefined) {

        $(".fancyFrame").fancybox({
            "scrolling": "no",
            'overlayShow': true,
            'hideOnContentClick': false,
            'width': "790px",
            'transitionIn': 'none',
            'transitionOut': 'none',
            'speedIn': 0,
            'speedOut': 0,
            'changeSpeed': 0,
            'changeFade': 'none',
            'overlayColor': '#000',
            'overlayOpacity': 0.4,

            onComplete: function () {
                ResizeFancyBox();
            }
        });

        $(".fancyImage").fancybox({
            "scrolling": "no",
            'overlayShow': true,
            'hideOnContentClick': false,
            'transitionIn': 'elastic',
            'transitionOut': 'elastic',
            'speedIn': 0,
            'speedOut': 0,
            'changeSpeed': 0,
            'changeFade': 'none',
            'overlayColor': '#000',
            'overlayOpacity': 0.4
        });
    }
});

$(window).resize(function () {
    if ($.fancybox != undefined) {
        if ($('#fancybox-wrap').is(":visible")) {
            ResizeFancyBox();
        }
    }
});

function ResizeFancyBox() {
    if ($('#fancybox-content').find("iframe", top.document).length > 0) {
        var windowW = $(window).width();
        var windowH = $(window).height();
        var wrapW = windowW - 160;
        var wrapH = windowH - 160;
        var innerW = wrapW - 20;
        var innerH = wrapH - 50;
        $('#fancybox-wrap').css({ 'width': wrapW, 'height': wrapH });
        $('#fancybox-content').css({ 'width': '100%', 'height': innerH, 'border-top-width': '40px' });
        $('#fancybox-content').find("iframe", top.document).css({ 'width': "100%", 'height': innerH });
        $('#fancybox-close').css({ 'top': '5px' });
        $.fancybox.center();
    }
}

function IniAnchorAnimate() {

    $('.animate').click(function (e) {

        var defaults = {
            'randMin': 100,
            'randMax': 2000,
            'time': 1000
        };

        animate = { 'time': 500, 'randMin': 1000, 'randMax': 2000 };
        var settings = $.extend(defaults, animate);

        var obj = $(this);
        var time = settings.time;
        var target = "";

        if (!obj.hasClass('executeDefault')) {
            e.preventDefault();
        }

        if (obj.hasClass('rand')) {

            time = rand(settings.randMin, settings.randMax);

        } else {

            var result = /time[0-9]+/.exec(obj.attr('class'));
            if (result)
                time = parseInt(new String(result).replace('time', ''));
        }

        var result = /target[a-zA-Z0-9_]+/.exec(obj.attr('class'));
        if (result) {
            target = "#" + new String(result).replace('target', '');
        } else {
            target = obj.attr('href');
        }


        $('html, body').animate({
            scrollTop: $(target).offset().top
        }, time);

    });
}

function scrollTop(target, time) {
    if (!time) time = 1000;
    $('html, body').animate({
        scrollTop: $(target).offset().top
    }, time);
}

function rand(min, max) {
    return Math.floor((Math.random() * (max - min + 1)) + min);
}

////////////////////////////////////////////
////////////////////////////////////////////

