﻿function CreateButtonStyles(classNames, spacerSource)
{
    if(!classNames) return;
    classNames = classNames.split(",");
    classNames.contains = function(className)
    {
        if(!className) return false;
        for(var i in this)
        {
            if(this[i] == className) return true;
        }
        return false;
    }
    
    var links = document.links;
    
    if(!spacerSource) spacerSource = "spacer.gif";
    for(var i = 0; i < links.length; i++)
    {
        var link = links[i];
        if(classNames.contains(link.className))
        {
            link.oldClickHandler = link.onclick;
            link.url = link.href;
            link.href = "#none";
            link.onclick = function(e)
                {
                    e = e ? e : window.event;
                    var result;
                    if(this.oldClickHandler) result = this.oldClickHandler(e);
                    if(typeof(result) != "undefined" && !result) return false;
                    window.open(this.url, this.target ? this.target : "_self");
                }
            var settings = link.getAttribute("settings", "");
            if(!settings) settings = "";
            settings = settings.split(",");
            var color = settings[0] ? settings[0] : "Black";
            var width = settings[1] ? "width:" + settings[1] + ";" : "";
            var fontSize = settings[2] ? "font-size:" + settings[2] + ";" : "";
            var extendedClass = settings[3] ? settings[3] : "";
            var text = typeof(link.textContent) == "undefined" ? link.innerText : link.textContent;
            var html = "<button style='" + width + fontSize + "'><table border='0' cellpadding='0' cellspacing='0'><tr><td class='" + link.className + "Left" + color + " " + extendedClass + "'></td><td class='" + link.className + "Center" + color + " " + extendedClass + "'>" + text + "</td><td class='" + link.className + "Right" + color + " " + extendedClass + "'></td></tr></table></button>";
            //var html = "<img class='" + link.className + "Left " + color + " " + extendedClass + "' src='" + spacerSource + "' alt='' /><button class='" + link.className + "Center " + color + " " + extendedClass + "' style='" + width + fontSize + "'>" + text + "</button><img class='" + link.className + "Right " + color + " " + extendedClass + "' src='" + spacerSource + "' alt='' />";
            link.innerHTML = html;
        }
    }
}
            
function CreatePager(pageCount, currentPage, url)
{
    var pages = new Array();
    var startPage = 0;
    var endPage = 0;
    
    startPage = currentPage - 2;
    if(startPage < 0) startPage = 0;
    if(startPage + 4 < pageCount)
    {
        endPage = startPage + 4;
    }
    else
    {
        endPage = pageCount - 1;
    }
    if(endPage - 4 < 0)
    {
        startPage = 0;
    }
    else
    {
        startPage = endPage - 4;
    }
    
    pages[pages.length] = "<a class='Page' " + (pageCount > 0 ? "href='" + url.replace("{page}", 0) + "'" : "") + "><img src='Images/First.gif' /></a>";
    pages[pages.length] = "<a class='Page' " + (currentPage - 1 >= 0 ? "href='" + url.replace("{page}", currentPage - 1) + "'" : "") + "><img src='Images/Previous.gif' /></a>";
    for(var i = startPage; i <= endPage; i++)
    {
        pages[pages.length] = "<a class='" + (i == currentPage?"Current":"Page") + "' href='" + url.replace("{page}", i) + "'>" + (i + 1) + "</a>";
    }
    pages[pages.length] = "<a class='Page' " + (currentPage + 1 < pageCount ? "href='" + url.replace("{page}", currentPage + 1) + "'" : "") + "><img src='Images/Next.gif' /></a>";
    pages[pages.length] = "<a class='Page' " + (pageCount > 0 ? "href='" + url.replace("{page}", pageCount - 1) + "'" : "") + "><img src='Images/Last.gif' /></a>";
    document.write(pages.join("&nbsp;&nbsp;"));
}

function SetPageHeader(text)
{
    var pageHeader = document.getElementById("PageHeader");
    if(!pageHeader) return;
    pageHeader.innerText = text;
    pageHeader.textContent = text;
}

function RemoveFormat(text)
{
    //text = text.replace(/<[/]?(font|span|xml|del|ins|[ovwxp]:\w+)[^>]*?>/ig, "");
    text = text.replace(/<\?[^>]*\?>/ig, "");
    text = text.replace(/<([^>]*)(?:size|face)=(?:'[^']*'|""[^""]*""|[^>]+)([^>]*)>/ig,"<$1 style=\"font-size: 9pt;\" $2>"); 
    text = text.replace(/style="([^"]*)font-family([^"]*)"/ig, "style=\"$1;$2\"");
    text = text.replace(/style="([^"]*)font-size([^"]*)"/ig, "style=\"$1;$2\"");
    
    return text;
}

function ConvertToUnformatText(container)
{
    container = GetTag(container);
    if(container) container.innerHTML = RemoveFormat(container.innerHTML);
}

function GetTag(tag)
{
    if(!tag) return null;
    if(typeof(tag) == "string") tag = document.getElementById(tag);
    return tag;
}

function WriteUnformatText(container, text)
{
    container = GetTag(container);
    if(container)
        container.innerHTML = RemoveFormat(text);
    else
        document.write(RemoveFormat(text));
}

function InitDefaultValueTextbox(textbox)
{
    if(!textbox) return;
    if(textbox.initialized) return;
    textbox.initialized = true;
    textbox.onfocus = function()
        {
            if(!this.valueChanged)
            {
                this.defaultValue = textbox.value;
                this.value = "";
            }
        }
    textbox.onchange = function()
        {
            this.valueChanged = true;
        }
    
    textbox.onblur = function()
        {
            if(this.value)
            {
                if(!this.valueChanged && this.value != this.defaultValue)
                {
                    this.value = this.defaultValue;
                }
            }
            else
            {
                this.valueChanged = false;
                this.value = this.defaultValue;
            }
        }
        
    textbox.onfocus();
}

function ShowDescription(obj, popup, offsetX, offsetY)
{
    if(!obj) return;
    popup = document.getElementById(popup);
    if(!popup) return;
    for(var i in popup.childNodes)
    {
        var child = popup.childNodes[i];
        if(child.nodeType == 1)
        {
            ConvertToUnformatText(child);
            break;
        }
    }
    if(!offsetX) offsetX = 50;
    if(!offsetY) offsetY = 0;
    popup.style.display = "block";
    obj.dropdown = new Dropdown(obj, popup, 2, 1, 50, 0, true, null, null, 10);
}

function ShowImage(image, style, largeImage, popupStyle)
{
    if(!image) return;
    image.style.display = "";
    if(style != null) DropShadow(image, style);
    if(largeImage)
    {
        image.style.cursor = "pointer";
        image.onclick = function()
        {
            PopupImage(largeImage, popupStyle);
        }
    }
}

function DropShadow(obj, style)
{
	if(window.showModalDialog)
	{
		switch(style)
		{
			case 0:
				obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='Images/ImageShadow0.png', sizingMethod='scale')";
    			obj.style.paddingLeft = (obj.offsetWidth / 14) + "px";
    			obj.style.paddingRight = (obj.offsetWidth / 14) + "px";
    			obj.style.paddingTop = (obj.offsetHeight / 14) + "px";
    			obj.style.paddingBottom = (obj.offsetHeight / 14) + "px";
				break;
			case 1:
				obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='Images/ImageShadow1.png', sizingMethod='scale')";
    			obj.style.paddingLeft = (obj.offsetWidth / 11.5) + "px";
    			obj.style.paddingRight = (obj.offsetWidth / 10.1) + "px";
    			obj.style.paddingTop = (obj.offsetHeight / 11) + "px";
    			obj.style.paddingBottom = (obj.offsetHeight / 10) + "px";
				break;
			case 2:
			    obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='Images/ImageShadow2.png', sizingMethod='scale')";
    			obj.style.paddingLeft = (obj.offsetWidth / 12) + "px";
    			obj.style.paddingRight = (obj.offsetWidth / 14) + "px";
    			obj.style.paddingTop = (obj.offsetHeight / 15) + "px";
    			obj.style.paddingBottom = (obj.offsetHeight / 15) + "px";
		}
	}
	else
	{
		obj.style.border = "1px solid silver";
		obj.style.padding = "5px";
		obj.style.backgroundColor = "white";
	}
}

function PopupImage(url, style)
{
    if(!window.popupWindow)
    {
    	var div = document.createElement("DIV");
    	window.popupWindow = div;
    	var iframe = document.createElement("IFRAME");
        iframe.className = "PopupImage";
        iframe.scrolling = "no";
        iframe.frameBorder = 0;
        
        div.style.visibility = "hidden";
        div.style.position = "absolute";
        div.appendChild(iframe);
        div.style.cursor = "pointer";
        document.body.appendChild(div);
        
        var doc = iframe.contentWindow.document;
        doc.open();
        doc.write("<html><body style='margin: 0px; cursor: pointer; padding: 0px; padding-top: 14px; background: transparent url(Images/Close.gif) right top no-repeat;'></body></html>");
        doc.close();
        window.popupImage = doc.createElement("IMG");
        
        if(style == null) style = 2;
        window.popupImage.onload = function()
            {
                iframe.width = this.offsetWidth;
                iframe.height = this.offsetHeight;
                div.style.width = this.offsetWidth;
                div.style.height = this.offsetHeight;
                DropShadow(div, style);
                
                var top, left;
                top = 5 + ((typeof(window.pageYOffset) == "undefined") ? document.documentElement.scrollTop : window.pageYOffset);
                left = ((typeof(window.pageXOffset) == "undefined") ? document.documentElement.scrollLeft : window.pageXOffset) + document.documentElement.clientWidth - div.offsetWidth;
                div.style.left = left + "px";
                div.style.top = top + "px";
                div.style.visibility = "visible";
            }
        doc.body.appendChild(window.popupImage);
        div.onclick = function()
        {
            div.style.visibility = "hidden";
        }
        
        doc.body.onclick = div.onclick;
    }
    window.popupImage.src = url;
}

function ShowDate(container, date)
{
    if(!date) date = new Date();
    var dateNames = new Array("Chủ nhật", "Thứ hai", "Thứ ba", "Thứ tư", "Thứ năm", "Thứ sáu", "Thứ bảy");
    var dateTemplate = "{date}, {day}/{month}/{year}"
    dateTemplate = dateTemplate.replace("{date}", dateNames[date.getDay()]);
    dateTemplate = dateTemplate.replace("{day}", date.getDate());
    dateTemplate = dateTemplate.replace("{month}", date.getMonth() + 1);
    dateTemplate = dateTemplate.replace("{year}", date.getFullYear());
    if(!container)
        document.write(dateTemplate);
    else
    {
        container = document.getElementById(container);
        if(container) container.innerHTML = dateTemplate;
    }
}

function SetHomePage(url)
{
    var a = document.createElement("A");
    a.style.behavior='url(#default#homepage)';
    a.setHomePage(url);
}