﻿//DrawImage
//<img src="xx.jpg" onload="DrawImage(this,20,20)" />
function DrawImage(ImgD,w,h)
{
    var image=new Image();
    image.src=ImgD.src;
    if(image.width>0 && image.height>0)
    {
        flag=true;
        if(image.width/image.height>= w/h)
        {
            if(image.width>w)
            {
                ImgD.width=w;
                ImgD.height=(image.height*w)/image.width;
            }
            else
            {
                ImgD.width=image.width;
                ImgD.height=image.height;
            }
            //ImgD.alt=image.width+"×"+image.height;
        }
        else
        {
            if(image.height>h)
            {
                ImgD.height=h;
                ImgD.width=(image.width*h)/image.height;
            }
            else
            {
                ImgD.width=image.width;
                ImgD.height=image.height;
            }
            //ImgD.alt=image.width+"×"+image.height;
        }
    }
}

function CheckMaxLength(event, length) 
{
    var event = new Event(event);
    var target = event.target;
    if ($type(target) != "undefined")
    {
	    if (target.value.length > length){
	        alert("最多允許" + length + "字,超出長度的內容會被移除.");
		    target.value = target.value.substring(0,length);
	    }
	}
}

function breakLongWord(selector, length, splitLength)
{
    //return ;
    if (window.FourceBreaks == null)
    {
        window.FourceBreaks = new Array();
        window.FourceBreaks.AjaxHandle = false;
        window.FourceBreaks.divConvert = new Element("div");
        window.FourceBreaks.reText = /(^|>)([^<>]+)(<|$)/gm;
        window.FourceBreaks.DoItem = function(breakItem)
        {
            var items = $$(breakItem.selector);
            if (!$defined(items))
            {
                return;
            }
            if (items.length > 0)
            {
                var regexString = "[^\\u3E05-\\uFA29]{" + breakItem.length + ",}"
                var regSearch = new RegExp(regexString, "g");
                var replaceString = "[^\\u3E05-\\uFA29]{" + breakItem.splitLength + "}"
                var regReplace = new RegExp(replaceString, "g");
                
                var matchText, matchWord;
                for (var itemIndex = 0; itemIndex < items.length; itemIndex++)
                {
                    var element = items[itemIndex];
                    var innerHTML = element.get('html');
                    var htmlModified = innerHTML;
                    while ((matchText = window.FourceBreaks.reText.exec(innerHTML)) != null)
                    {
                        var text = window.FourceBreaks.divConvert.set('html', matchText[2]).get('text');//get text from html
                        //if (matchText[2].indexOf("&gt;")>=0) alert(text);
                        while ((matchWord = regSearch.exec(text)) != null)
                        {
                            if (matchWord.length > 0)//get long word from text
                            {
                                var value = window.FourceBreaks.divConvert.set('text', matchWord[0].replace(regReplace, "$&\n")).get('html').replace(/<br\s?\/?>|\n/ig, "<wbr />");
                                //if (matchWord[0].indexOf(">>>>")>=0) alert(value);
                                var replace = window.FourceBreaks.divConvert.set('text', matchWord[0]).get('html');
                                htmlModified = htmlModified.replace(replace, value);
                            }
                        }
                    }
                    element.set('html', htmlModified);
                }
            }
        };
        window.FourceBreaks.Go = function()
            {
                if (Browser.Engine.presto)
                {
                    var style = new Element("style", {type:"text/css",text:"wbr:after{content:\"\\0200B\"}"});
                    $(document).getElement("head").appendChild(style)
                }
                for (var i = 0; i < window.FourceBreaks.length; i++)
                {
                    var breakItem = window.FourceBreaks[i];
                    window.FourceBreaks.DoItem(breakItem);
                }
            };
        window.addEvent("domready", window.FourceBreaks.Go);
        window.addEvent("domready", function()
            {
                if (typeof(Sys) != "undefined")
                {
                    var requestManager = Sys.WebForms.PageRequestManager.getInstance();
                    if (requestManager != null)
                    {
                        requestManager.add_endRequest(window.FourceBreaks.Go);
                    }
                    window.FourceBreaks.AjaxHandle = true;
                }
            });
    }
    if (selector != null)
    {
        if (Browser.loaded)
        {
            window.FourceBreaks.DoItem(
                {selector : selector,
                length : (length==null) ? 3 : length,
                splitLength : (splitLength==null) ? 1 : splitLength});
        }
        else
        {
            window.FourceBreaks.push(
                {selector : selector,
                length : (length==null) ? 3 : length,
                splitLength : (splitLength==null) ? 1 : splitLength});
        }
    }
}
