function setCookie(c_name,value,expiredays)
{		
	var exdate=new Date();
	var temestamp = exdate.getTime();
	exdate.setTime( temestamp + expiredays*24*60*60*1000 );
	document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : "; expires="+exdate.toUTCString( )+";");	
}

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 null;
}

function CreateHttpRequestObject() {
    var varRequestObject;

    varRequestObject = null;
    if (window.XMLHttpRequest)
        varRequestObject = new XMLHttpRequest();
    else if (window.ActiveXObject) {
        try {
            varRequestObject = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                varRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {
            }
        }
    }

    if (varRequestObject == null) {
        alert("Cannot create an XMLHTTP instance");
    }

    return varRequestObject;
}

function loadXMLString(txt) {
    try //Internet Explorer
	  {
        xmlDoc = new ActiveXObject("Msxml2.DOMDocument.6.0");
        xmlDoc.async = "false";
        xmlDoc.loadXML(txt);
        return (xmlDoc);
    }
    catch (e) {
		try
		{
			xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
			xmlDoc.async = "false";
			xmlDoc.loadXML(txt);
			return (xmlDoc);
		}
        catch(e) //Firefox, Mozilla, Opera, etc.
	    {
            try
			{
				parser = new DOMParser();
				xmlDoc = parser.parseFromString(txt, "text/xml");
				return (xmlDoc);
			}
			catch (e) { alert(e.message) }
        }

    }
    return (null);
}


////////////////////////////////////////////////////////////////////////////////////
//              timer
////////////////////////////////////////////////////////////////////////////////////
//if varFunc return 1 means continue.
function TimerStart(varFunc, varDelay) {
    var TimerID = window.setInterval(
    function() {
        if (!varFunc()) {            
            window.clearInterval(TimerID);
        };
    },
    varDelay   //0.001(s)
    );
    return TimerID;
}

function TimerStop(varTimerId) {
    if (varTimerId != 0) {
        window.clearInterval(varTimerId);
    }
}



////////////////////////////////////////////////////////////////////////////////////
//              date extend
////////////////////////////////////////////////////////////////////////////////////
var gsMonthNames = new Array(
'January',
'February',
'March',
'April',
'May',
'June',
'July',
'August',
'September',
'October',
'November',
'December'
);
var gsDayNames = new Array(
'Sunday',
'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday',
'Saturday'
);

Date.prototype.format = function(f) {
    if (!this.valueOf())
        return ' ';

    var d = this;

    return f.replace(/(yyyy|mmmm|mmm|mm|dddd|ddd|dd|hh|nn|ss|a\/p)/gi,
        function($1) {
            switch ($1.toLowerCase()) {
                case 'yyyy': return d.getFullYear();
                case 'mmmm': return gsMonthNames[d.getMonth()];
                case 'mmm': return gsMonthNames[d.getMonth()].substr(0, 3);
                case 'mm': return padLeft((d.getMonth() + 1), 2);
                case 'dddd': return gsDayNames[d.getDay()];
                case 'ddd': return gsDayNames[d.getDay()].substr(0, 3);
                case 'dd': return padLeft(d.getDate().toString(), 2);
                case 'hh': return padLeft(d.getHours().toString(), 2);
                case 'nn': return padLeft(d.getMinutes().toString(), 2);
                case 'ss': return padLeft(d.getSeconds().toString(), 2);
                case 'a/p': return d.getHours() < 12 ? 'a' : 'p';
            }
        }
    );
}

function padLeft(str, lenght, appends) {
    if (appends == null) appends = "0";
    if (typeof (str) != 'String') str = String(str);
    if (str.length >= lenght)
        return str;
    else {
        for (var i = lenght - str.length; i > 0; --i) {
            str = String(appends) + String(str);
        }
        return str;
    }
}
function padRight(str, lenght, appends) {
    if (appends == null) appends = "0";
    if (typeof (str) != 'String') str = String(str);
    if (str.length >= lenght)
        return str;
    else {
        for (var i = lenght - str.length; i > 0; --i) {
            str =  String(str) + String(appends) ;
        }
        return str;
    }
}

////////////////////////////////////////////////////////////////////////////////////
//             show different time type
////////////////////////////////////////////////////////////////////////////////////
function second_to_time_string(varSecond) {
    if (varSecond < 60) return padLeft(varSecond,2);
    var s = varSecond % 60;
    var m = (varSecond - s) / 60 ;
    if (varSecond < 3600) return padLeft(m, 2) + " : " + padLeft(s, 2);
    var mx = m % 60;
    var h = (m - mx) / 60;
    return h + " : " + padLeft(mx, 2) + " : " + padLeft(s, 2);
}

////////////////////////////////////////////////////////////////////////////////////
//            Is number?
////////////////////////////////////////////////////////////////////////////////////

function is_numeric(varInput) {
    
	return !isNaN(varInput);

	if (!varInput) return false;
    var sText = varInput.toString();
    var ValidChars = "0123456789.";
    var IsNumber = true;
    var Char;
    
    for (i = 0; i < sText.length && IsNumber == true; i++) {
        Char = sText.charAt(i);
        if (ValidChars.indexOf(Char) == -1) {
            IsNumber = false;
        }
    }
    return IsNumber;

}

////////////////////////////////////////////////////////////////////////////////////
//           window size;
////////////////////////////////////////////////////////////////////////////////////
function window_minimize() {
    this.moveTo(screen.availWidth, screen.availHeight);
    this.resizeTo(100, 100);
}

function window_maximize() {
    this.moveTo(0, 0);
    this.resizeTo(screen.availWidth, screen.availHeight);
}

////////////////////////////////////////////////////////////////////////////////////
//           get time
////////////////////////////////////////////////////////////////////////////////////
function fnGetHmsString() {
    var myDate = new Date();
    var strHMS = myDate.getHours() + "_" + myDate.getMinutes() + "_" + myDate.getSeconds();
    return strHMS;
}

////////////////////////////////////////////////////////////////////////////////////
//           meet "-",  break line
////////////////////////////////////////////////////////////////////////////////////
function change_minuse_breakline(str) {
    var min_pos = str.search("-");
    if (min_pos == -1) return str;
    var header = str.substring(0, min_pos+1);
    var footer = str.substring(min_pos +1, str.length);
    /*
	alert( header+':'+header.length );
	if( header.length >10 )
	{
		header = header.substring(0,8)+'...';
	}
	*/
	header.substring
	//alert(header + "<br>" + footer);
    return header + "<br>" + footer;

}

////////////////////////////////////////////////////////////////////////////////////
//           navigator language 
////////////////////////////////////////////////////////////////////////////////////
function get_gavigator_lang() {
    if (navigator.userLanguage) // Explorer
        return navigator.userLanguage;
    else if (navigator.language) // FF
        return navigator.language;
    else
        return "en";
}
//zh-tw 

////////////////////////////////////////////////////////////////////////////////////
//           create  player
////////////////////////////////////////////////////////////////////////////////////

function createrPlayer()
{
	document.write( '<div    style="position:absolute;top:0px;left:0px;width:auto;height:auto;width:'+resolution().w+'px;height:'+resolution().h+'px;"  >' );
	if(navigator.appVersion.indexOf('Mac') != -1 || navigator.appVersion.indexOf('X11') != -1)
	{
		document.write('<OBJECT id="vlc" width="'+resolution().w+'" height="'+resolution().h+'"     type="application/x-vlc-plugin" version="VideoLAN.VLCPlugin.2">'+
			'<param name="autoplay" value="true">'+
			'</OBJECT>');
	}
	else
	{
		if (navigator.appName == 'Netscape' || navigator.appName == 'Opera')
		{
			G_NAVIGATOR_APPNAME = "Firefox";
			document.write('<object id="MediaPlayer" width="'+resolution().w+'" height="'+resolution().h+'" type="application/x-ms-wmp" >'+
				'<param name="SendPlayStateChangeEvents" value="True" />'+
				'<param name="SendMouseClickEvents" value="True" />'+
				'<param name="enableErrorDialogs" value="False" />'+
				'<param name="AutoStart" value="True" />'+
				'<param name="uiMode" value="none" />'+
				'<param name="PlayCount" value="9999" />'+
				'<param name="EnableContextMenu" value="'+(auth_full_screen()?'true':'false')+'" />'+
				'<param name="stretchToFit" value="true" />'+
				'</object>');
		}
		else
		{
			G_NAVIGATOR_APPNAME = "IE";
			document.write('<object id="MediaPlayer" width="'+resolution().w+'" height="'+resolution().h+'" CLASSID="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6" >'+
				'<param name="SendPlayStateChangeEvents" value="True" />'+
				'<param name="SendMouseClickEvents" value="True" />'+
				'<param name="enableErrorDialogs" value="False" />'+
				'<param name="AutoStart" value="True" />'+
				'<param name="uiMode" value="none" />'+
				'<param name="PlayCount" value="9999" />'+
				'<param name="EnableContextMenu" value="'+(auth_full_screen()?'true':'false')+'" />'+
				'<param name="stretchToFit" value="true" />'+
				'</object>');
		}
	}
	document.write('</div>');
}