﻿
function S3D_HtmlEscape(str) 
{
    return String(str)
            .replace(/&/g, '&amp;')
            .replace(/"/g, '&quot;')
            .replace(/'/g, '&#39;')
            .replace(/</g, '&lt;')
            .replace(/>/g, '&gt;');
}

var S3D_MonthNames = [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
    'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ];
    
function S3D_FormatDate(jsonDate)
{
    var tick = jsonDate.replace(/\/Date\((.*?)\)\//gi, '$1');
    var date = new Date(parseInt(tick));
    
    var lastDigit = date % 10;
    var format='';
    /*if(lastDigit==1){
        format='st';
    }else if(lastDigit==2){
        format='nd';
    }else if(lastDigit==3){
        format='rd';
    }else{
        format='th';
    }*/

    return S3D_MonthNames[date.getMonth()] + ' ' + date.getDate() + format + ', ' + date.getFullYear();
}

function S3D_NumericKeypressEventHandler(event) 
{
    var theEvent = event || window.event;
    var key = theEvent.keyCode || theEvent.which;
    key = String.fromCharCode( key );
    var regex = /[0-9]|\./;
    if( !regex.test(key) ) {
        theEvent.returnValue = false;
        if(theEvent.preventDefault) theEvent.preventDefault();
    }
}

var S3D_Loading = null;
function S3D_InitLoading()
{
    S3D_Loading = $j('#loading').dialog({
        dialogClass:'loading',
        autoOpen: false,
        resizable: false,
        draggable: false,
        width:70,
        height:80
    });
}
  
function S3D_ShowLoading()
{
    S3D_Loading.dialog('open');
}

function S3D_HideLoading()
{
    S3D_Loading.dialog('close');
}
    
function S3D_LogMessage(msg)
{
    if(window.console)
    {
        console.log(msg);
    }
}

function S3D_OpenNewWindow(url, windowName, width, height)
{
    var popUp = window.open(url, windowName, 'width='+width+', height='+height+', left=24, top=24, scrollbars, resizable');
    if (popUp == null || typeof(popUp)=='undefined') 
    {   
        S3D_ShowMessage('กรุณาปิด popup blocker ของคุณ และคลิกเพื่อเปิดหน้าต่างอีกครั้ง'); 
    } 
    else {   
        popUp.focus();
    }
}

function S3D_GetRandomNumber()
{
    return ''+Math.floor(Math.random()*99999999999999999999);
}

function S3D_GetSocialButton(url, tweet, isshowcount){
    if(typeof isshowcount === 'undefined') isshowcount = 'true';
    if(isshowcount == 'true')
    {
        //TODO : Intend to set width of share element
    }
    var ggid = 'elem_'+Math.floor(Math.random()*99999999999999999999);
    return $j.format('<p class="social_buttons">' +
                    '<span class="facebook_button"><iframe allowtransparency="true" frameborder="0" scrolling="no" src="'+ BaseURL +'fblike.aspx?url={0}&isShowCount={2}" scrolling="no" style="border:none; overflow:hidden; height:21px; width:62px;"></iframe></span>'+
                    '<span class="twitter_button"><iframe allowtransparency="true" frameborder="0" scrolling="no" src="'+ BaseURL + 'twitter_button.aspx?url={0}&text={1}&isShowCount={2}" style="width:57px; height:21px;border:none; overflow:hidden;"></iframe></span>' +
                    //'<span class="google_button"><iframe allowtransparency="true" frameborder="0" scrolling="no" src="'+ BaseURL +'gplusone.aspx?url={0}&isShowCount={2}" scrolling="no" style="border:none; overflow:hidden; height:21px; width:35px;"></iframe></span>' +
                    '<span class="google_button"><span id="{3}"></span></span>' +
                    '</p>' +
                    '<script type="text/javascript">setTimeout(\'gapi.plusone.render("{3}", {"annotation": "none", "size": "medium", "href": "{0}"})\', 2000);</script>',
                    url, 
                    encodeURIComponent(tweet),
                    isshowcount,
                    ggid);
}

function S3D_ShowModal(params) {
	var p = jQuery.extend( {
		modalOverlay : 50,
		modalClickHandler : function(){},
		closeWhenClickModal : false
	}, params);

	var iframeID = 'iframe_modal';
	var modalID = 'modal_overlay';

	var iframe = jQuery('#' + iframeID);
	var modal = jQuery('#' + modalID);

	var body = jQuery(document.body);

	if (iframe.size() == 0) {
		iframe = jQuery('<iframe id="'
				+ iframeID
				+ '" src="" style="border:none;display:none;opacity:0;position:absolute;top:0;left:0;width:100%;"></iframe>');
		body.append(iframe);
	}
	if (modal.size() == 0) {
		modal = jQuery('<div id="'
				+ modalID
				+ '" style="display:none;position:absolute;background-color:#000;"></div>');
		body.append(modal);
	}

	var iframeZIndex = 500;
	var modalZIndex = iframeZIndex + 20;

	iframe.css('z-index', iframeZIndex);
	modal.css('z-index', modalZIndex);

	var doc = jQuery(document);
	var docW = doc.width();
	var docH = doc.height();
	var docScrollTop = doc.scrollTop();
	if (docH < 600) {
		docH = 600;
	}
	var windowH = jQuery(window).height();

	var modalW = 0;
	var modalH = 0;
	var modalX = 0;
	var modalY = 0;

	modalW = docW;
	modalH = docH;
	
	modal.css('left', modalX + 'px');
	modal.css('top', modalY + 'px');
	modal.css('width', parseInt(modalW) + 'px');
	modal.css('height', modalH + 'px');
	modal.css('opacity', p.modalOverlay / 100);
	modal.show();

	iframe.css('left', modalX + 'px');
	iframe.css('top', modalY + 'px');
	iframe.css('width', modalW + 'px');
	iframe.css('height', modalH + 'px');
	iframe.css('opacity', 0);
	iframe.show();

    if(p.closeWhenClickModal){
	    modal.unbind('click');
	    modal.bind('click', function() {
		    CloseModal();
	        if(null != p.modalClickHandler){
		        p.modalClickHandler();
		    }
	    });
	}
}

function S3D_CloseModal(){
    var iframeID = 'iframe_modal';
	var modalID = 'modal_overlay';

	var iframe = jQuery('#' + iframeID);
	var modal = jQuery('#' + modalID);
	
	iframe.remove();
	modal.remove();
}

function S3D_InitBrowserCSS()
{
    var browserName = $j.browser.name;
    var browserMajorVersion = $j.browser.versionX;
    var browserCSS = null;
    var browserCSSOverride = null;
    var browserVersionCSS = null;
    var browserVersionCSSOverride = null;
    if(browserName == 'msie' || browserName == 'firefox' || browserName == 'safari' || browserName == 'chrome' || browserName == 'iphone')
    {
        browserCSS = BaseURL + 'stylesheet/' + browserName + '.css';
        browserCSSOverride = BaseURL + 'stylesheet/' + browserName + '_override.css';
        browserVersionCSS = BaseURL + 'stylesheet/' + browserName + browserMajorVersion + '.css';
        browserVersionCSSOverride = BaseURL + 'stylesheet/' + browserName + browserMajorVersion + '_override.css';
    }
            
    var jHead = $j('head');
    if(browserCSS != null)
    {
        jHead.append($j.format('<link rel="stylesheet" href="{0}" type="text/css" />', browserCSS));
        jHead.append($j.format('<link rel="stylesheet" href="{0}" type="text/css" />', browserCSSOverride));
        jHead.append($j.format('<link rel="stylesheet" href="{0}" type="text/css" />', browserVersionCSS));
        jHead.append($j.format('<link rel="stylesheet" href="{0}" type="text/css" />', browserVersionCSSOverride));
    }
}

function S3D_Log(msg)
{
    if(window.console){ 
        console.log(msg) 
    }
}

function S3D_ShareFB(url)
{
    S3D_OpenNewWindow('http://www.facebook.com/sharer.php?u=' + window.location, 'share_facebook', 300, 300);
}
        
function S3D_ShareTW(status)
{
    S3D_OpenNewWindow('http://twitter.com/home?status='+status, 'share_twitter', 300, 300);
}
