﻿String.prototype.startsWith = function(t, i) { if (i==false) { return
(t == this.substring(0, t.length)); } else { return (t.toLowerCase()
== this.substring(0, t.length).toLowerCase()); } }

String.prototype.endsWith = function(t, i) { if (i==false) { return (t
== this.substring(this.length - t.length)); } else { return
(t.toLowerCase() == this.substring(this.length -
t.length).toLowerCase()); } }

String.prototype.trim = function() {
	return this.replace(/^[\s\u00A0]+|[\s\u00A0]+$/g,"");
}
String.prototype.ltrim = function() {
	return this.replace(/^[\s\u00A0]+/,"");
}
String.prototype.rtrim = function() {
	return this.replace(/[\s\u00A0]+$/,"");
}

/**
*  http://www.webtoolkit.info/
**/

var UTF8 = {
    encode : function (string) {
        string = string.replace(/\r\n/g,"\n");
        var utftext = "";

        for (var n = 0; n < string.length; n++) {

            var c = string.charCodeAt(n);

            if (c < 128) {
                utftext += String.fromCharCode(c);
            }
            else if((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }
            else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }

        }

        return utftext;
    },

    decode : function (utftext) {
        var string = "";
        var i = 0;
        var c = c1 = c2 = 0;

        while ( i < utftext.length ) {

            c = utftext.charCodeAt(i);

            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            }
            else if((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i+1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            }
            else {
                c2 = utftext.charCodeAt(i+1);
                c3 = utftext.charCodeAt(i+2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }

        }

        return string;
    }
}

var Url = {

    // public method for url encoding
    encode : function (string) {
        return escape(UTF8.encode(string));
    },

    // public method for url decoding
    decode : function (string) {
        return UTF8.decode(unescape(string));
    }
}

var KWeb = {};
KWeb.BindLang = function()
{
  $('#mHeaderLangSPLabel menu > *').each(
    function (index, domEle) {
      if(domEle.tagName == "IE:MENUITEM")
      {
        var urlCode = $(domEle).attr("onMenuClick");
        var langLabel = null;
        if (urlCode.indexOf("/TH/") > 0)
          langLabel = $("#mHeaderLangTH").get(0);
        else if (urlCode.indexOf("/EN/") > 0)
          langLabel = $("#mHeaderLangEN").get(0);
        else if (urlCode.indexOf("/ZH/") > 0)
          langLabel = $("#mHeaderLangZH").get(0);

        if (langLabel != null)
        {
          langLabel.onclick = (function (urlCode) {return function() {eval(urlCode);};})(urlCode);
          langLabel.style.cursor = 'pointer';
        }
      }
    }
  );
}

KWeb.InitFontSize = function()
{
  var fontSize = KWeb.ReadCookie("FontSize");
  if (fontSize == null)
    fontSize = "FontNormal";

  var strAlternate = "alternate "
  var curAlternate = "";

  if (fontSize == "FontNormal") curAlternate = ""; else curAlternate = strAlternate ;
  document.write('<link rel="' + curAlternate + 'stylesheet" type="text/css" href="/Style%20Library/fontstyle.css" Title="FontNormal"/>');

  if (fontSize == "FontSmall") curAlternate = ""; else curAlternate = strAlternate ;
  document.write('<link rel="' + curAlternate + 'stylesheet" type="text/css" href="/Style%20Library/fontstyle-small.css" Title="FontSmall"/>');

  if (fontSize == "FontBig") curAlternate = ""; else curAlternate = strAlternate ;
  document.write('<link rel="' + curAlternate + 'stylesheet" type="text/css" href="/Style%20Library/fontstyle-large.css" Title="FontBig"/>');
}

KWeb.SetFontSize = function(fontSize)
{
  if (fontSize == null)
    fontSize = KWeb.ReadCookie("FontSize");

  if (fontSize == null)
    fontSize = "FontNormal";

  KWeb.CreateCookie("FontSize", fontSize, 1);
  var linkArr = document.getElementsByTagName("LINK");
  for ( i = 0; i < linkArr.length; i++ )
  {
    var style = linkArr[i];
    var styleTitle = style.title;
    if (styleTitle && styleTitle.indexOf("Font") == 0 )
    {
       style.disabled = true;
       if (styleTitle == fontSize)
         style.disabled = false;
    }
  }
  
  $(".mHeaderFontSize").removeClass("iActive");
  $("#mHeader" + fontSize).addClass("iActive");
}

KWeb.CreateCookie = function(name,value,days) {
  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=/";
}

KWeb.ReadCookie = function(name) {
  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;
}

KWeb.RandomArrayValue = function(inputArr) {
  var outputArr = [];
  var ranPos;
  var inputLen = inputArr.length;
  for(var i=0;i<inputLen;i++)
  {
    ranPos = KWeb.RandomNumber(inputArr.length - 1);
    outputArr[i] = inputArr[ranPos];
    inputArr.splice(ranPos,1);
  }
  return outputArr;
}

KWeb.RandomNumber = function(max) {
  return Math.floor((max + 1)*Math.random())
}

KWeb.Paging = function (pageCount, itemPerPage, currentPage, itemSelector, itemSepSelector, pagingContainerSelector)
{
  if(currentPage == null)
    currentPage = 1;

  var items = $(itemSelector);
  var itemSeps = null;
  if(itemSepSelector)
    itemSeps = $(itemSepSelector);
  var itemsCount = items.length;
  var totalPage = Math.ceil(itemsCount/itemPerPage);

  if (totalPage == 1)
  {
    $(pagingContainerSelector).hide();
    return;
  }

  var startPage = 1;   
  if (currentPage > totalPage)
    currentPage = totalPage;

  if (totalPage > pageCount && currentPage > pageCount)
  {
    var modVal =  currentPage%pageCount;
    if (modVal > 0)
      startPage = currentPage - modVal + 1;
    else
      startPage = currentPage - pageCount + 1;    
  }
  
  var startItem = (currentPage - 1)*itemPerPage;
  var endItem = currentPage*itemPerPage;

  items.hide();
  items.slice(startItem, endItem).show();

  if (itemSeps != null)
  {
    itemSeps.hide();
    itemSeps.slice(startItem , endItem - 1).show();
  }


  $(pagingContainerSelector).html("");

  if (currentPage > 1)
  {
    var prevLink = $('<a href="#" class="iPrev">&lt</a>');
    prevLink.bind("click",(function(pageCount, itemPerPage, currentPage, itemSelector, itemSepSelector, pagingContainerSelector) { return function() {KWeb.Paging(pageCount, itemPerPage, currentPage, itemSelector, itemSepSelector, pagingContainerSelector); return false;};})(pageCount, itemPerPage, currentPage-1, itemSelector, itemSepSelector, pagingContainerSelector));
    prevLink.appendTo(pagingContainerSelector);
  }

  for(var i=0;i<pageCount;i++)
  {
    var linkPageNo = startPage+i;
    if (linkPageNo > totalPage)
      break;

    if (i>0)
      $('<span class="iSeparator">|</span>').appendTo(pagingContainerSelector);

    var pageLink = $('<a href="#" class="iNormal">' + linkPageNo + '</a>');
    if (linkPageNo == currentPage)
      pageLink.addClass("iActive");

    pageLink.bind("click",(function(pageCount, itemPerPage, currentPage, itemSelector, itemSepSelector, pagingContainerSelector) { return function() {KWeb.Paging(pageCount, itemPerPage, currentPage, itemSelector, itemSepSelector, pagingContainerSelector); return false;};})(pageCount, itemPerPage, linkPageNo, itemSelector, itemSepSelector, pagingContainerSelector));
    pageLink.appendTo(pagingContainerSelector);
  }

  if (currentPage < totalPage)
  {
    var nextLink = $('<a href="#" class="iNext">&gt</a>');
    nextLink.bind("click",(function(pageCount, itemPerPage, currentPage, itemSelector, itemSepSelector, pagingContainerSelector) { return function() {KWeb.Paging(pageCount, itemPerPage, currentPage, itemSelector, itemSepSelector, pagingContainerSelector); return false;};})(pageCount, itemPerPage, currentPage+1, itemSelector, itemSepSelector, pagingContainerSelector));
    nextLink.appendTo(pagingContainerSelector);
  }
  else
  {
		var nextLink = $('<a href="#" class="iNext" style="visibility: hidden;">&gt</a>');
		nextLink.appendTo(pagingContainerSelector);
  }
}

KWeb.YearScrollBuildByArray = function(yearNum, isNext, containerSelector, callbackFunc, yearArr, bdYear)
{
  if (KWeb.IsTH)
    bdYear = true;
  else 
    bdYear = false;

  yearArr = KWeb.Util.DistinctArray(yearArr);
  var maxYearPos = yearArr.length - 1;
  var minYearPos = 0;
  
  var currentYear = yearArr[maxYearPos];
  var startYearPos = maxYearPos;
  var runCallbackFunc = false;

  var yearScrollContainer = $(containerSelector);
  if (yearScrollContainer.attr("startYear") != null)
  {
    currentYear = parseInt(yearScrollContainer.attr("currentYear"));
    startYearPos = parseInt(yearScrollContainer.attr("startYear"));
    if (isNext && (startYearPos - yearNum) >= minYearPos)
      startYearPos--;
    else if (!isNext && (startYearPos < maxYearPos))
      startYearPos++;
  }
  else
    runCallbackFunc = true;

  yearScrollContainer.attr("currentYear", currentYear);
  yearScrollContainer.attr("startYear", startYearPos);
  yearScrollContainer.html("");

  var prevLink = $('<span class="iPrev"><a href="#">&lt</a></span>');
  prevLink.bind("click",(function(yearNum, isNext, containerSelector, callbackFunc, yearArr, bdYear) { return function() {KWeb.YearScrollBuildByArray(yearNum, isNext, containerSelector, callbackFunc, yearArr, bdYear); return false;};})(yearNum, false, containerSelector, callbackFunc, yearArr, bdYear));
  prevLink.appendTo(containerSelector);

  for(var i=0;i<yearNum;i++)
  {
    if(startYearPos - i >= 0)
    {
      var yearVal = yearArr[startYearPos - i];
      var yearDisplay = yearVal;
      if (bdYear)
        yearDisplay = yearDisplay + 543;
      var yearLink = $('<span class="iContainer"><a href="#">' + yearDisplay + '</a></span>');
      if (yearVal == currentYear)
        yearLink.addClass("iActive");
      yearLink.bind("click",(function(yearLink, containerSelector, callbackFunc, bdYear){ return function(){ KWeb.YearScrollClick(yearLink, containerSelector, callbackFunc, bdYear); return false;};})(yearLink, containerSelector, callbackFunc, bdYear) );
      yearLink.appendTo(containerSelector);
    }
    else
    {
      var yearLink = $('<span class="iContainer"></span>');
      yearLink.appendTo(containerSelector);
    }
  }

  var nextLink = $('<span class="iNext"><a href="#">&gt</a></span>');
  nextLink.bind("click",(function(yearNum, isNext, containerSelector, callbackFunc, yearArr, bdYear) { return function() {KWeb.YearScrollBuildByArray(yearNum, isNext, containerSelector, callbackFunc, yearArr, bdYear); return false;};})(yearNum, true, containerSelector, callbackFunc, yearArr, bdYear));
  nextLink.appendTo(containerSelector);

  if (runCallbackFunc && $.isFunction(callbackFunc))
    $(document).ready(function(){
      if ($(".pEditModePanel div").length == 0)
        callbackFunc(currentYear);
    });
}

KWeb.YearScrollBuild = function(yearNum, isNext, containerSelector, callbackFunc, maxYear, minYear, bdYear)
{
  if (KWeb.IsTH)
    bdYear = true;
  else 
    bdYear = false;

  var currentYear = maxYear;
  var startYear = currentYear;
  var runCallbackFunc = false;

  var yearScrollContainer = $(containerSelector);
  if (yearScrollContainer.attr("startYear") != null)
  {
    currentYear = parseInt(yearScrollContainer.attr("currentYear"));
    startYear = parseInt(yearScrollContainer.attr("startYear"));
    if (isNext && (startYear - yearNum) >= minYear)
      startYear--;
    else if (!isNext && (startYear < maxYear))
      startYear++;
  }
  else
    runCallbackFunc = true;

  yearScrollContainer.attr("currentYear", currentYear);
  yearScrollContainer.attr("startYear", startYear);
  yearScrollContainer.html("");

  var prevLink = $('<span class="iPrev"><a href="#">&lt</a></span>');
  prevLink.bind("click",(function(yearNum, isNext, containerSelector, callbackFunc, maxYear, minYear, bdYear) { return function() {KWeb.YearScrollBuild(yearNum, isNext, containerSelector, callbackFunc, maxYear, minYear, bdYear); return false;};})(yearNum, false, containerSelector, callbackFunc, maxYear, minYear, bdYear));
  prevLink.appendTo(containerSelector);

  for(var i=0;i<yearNum;i++)
  {
    var yearVal = startYear - i;
    var yearDisplay = yearVal;
    if (bdYear)
      yearDisplay = yearDisplay + 543;
    var yearLink = $('<span class="iContainer"><a href="#">' + yearDisplay + '</a></span>');
    if (yearVal == currentYear)
      yearLink.addClass("iActive");
    yearLink.bind("click",(function(yearLink, containerSelector, callbackFunc, bdYear){ return function(){ KWeb.YearScrollClick(yearLink, containerSelector, callbackFunc, bdYear); return false;};})(yearLink, containerSelector, callbackFunc, bdYear) );
    yearLink.appendTo(containerSelector);
  }

  var nextLink = $('<span class="iNext"><a href="#">&gt</a></span>');
  nextLink.bind("click",(function(yearNum, isNext, containerSelector, callbackFunc, maxYear, minYear, bdYear) { return function() {KWeb.YearScrollBuild(yearNum, isNext, containerSelector, callbackFunc, maxYear, minYear, bdYear); return false;};})(yearNum, true, containerSelector, callbackFunc, maxYear, minYear, bdYear));
  nextLink.appendTo(containerSelector);

  if (runCallbackFunc && $.isFunction(callbackFunc))
    $(document).ready(function(){
      if ($(".pEditModePanel div").length == 0)
        callbackFunc(currentYear);
    });
}

KWeb.YearScrollClick = function (yearLink, containerSelector, callbackFunc, bdYear)
{  
  var displayYear = yearLink.text();
  var currentYear = displayYear;
  if(bdYear)
    currentYear = currentYear - 543;
  var yearScrollContainer = $(containerSelector);
  yearScrollContainer.attr("currentYear", currentYear);

  var yearLinks = $(containerSelector + " span.iContainer");
  yearLinks.removeClass("iActive");

  yearLinks.each(
    function(index, elt)
    {
      var tmp = $(elt);
      if (tmp.text() == displayYear)
      {
        tmp.addClass("iActive");
        tmp.get(0).firstChild.blur();
      }
    }
  );

  if ($.isFunction(callbackFunc))
    callbackFunc(currentYear);
}

KWeb.Toolbox = {};
KWeb.Toolbox.TabClick = function(elt)
{
  $('#pNavTbTabCt .iTab').addClass('iNormal').removeClass('iActive');
  $('#pNavTbLinkCt > div').hide();
  $(elt).removeClass('iNormal').addClass('iActive');
  $('#pNavTbLink' + elt.id.substr(9)).show();
}
KWeb.Toolbox.InitLinkHover = function()
{
  $('#pNavTbLinkCt > div > div').mouseover(function() {$(this).addClass('iHover');}).mouseout(function() {$(this).removeClass('iHover');});
}

KWeb.Util = {};

KWeb.Util.GetCurrentFolderUrl = function ()
{
  var curUrl = window.location.href;
  var qPos = curUrl.indexOf('?');
  if (qPos > 0)
    curUrl = curUrl.substring(0, qPos);

  var sPos = curUrl.lastIndexOf('/');
  if (sPos > 0)
    curUrl = curUrl.substring(0, sPos + 1);
  return curUrl;
}

KWeb.Util.GetFirstFolderUrl = function()
{
  var curUrl = window.location.href;
  var pos = curUrl.indexOf('/', 9);
  if (pos > 0)
  {
    pos = curUrl.indexOf('/', pos + 1);
    if (pos > 0)
      return curUrl.substring(0, pos + 1);
  }
  return curUrl;
}

KWeb.IsTH = false;
KWeb.IsEN = false;
KWeb.IsZH = false;
KWeb.plusYear = 543;

KWeb.Util.CheckLang = function()
{
  var curUrl = window.location.href;
  var firPos = curUrl.indexOf('/', 9);
  var lang = '';
  
  if (firPos > 0)
  {
    var secPos = curUrl.indexOf('/', firPos + 1);
    if (secPos > 0)
      lang = curUrl.substring(firPos + 1, secPos).toLowerCase();
  }
  
  if (lang == 'en') { KWeb.IsEN = true; KWeb.plusYear = 0;}
  else if (lang == 'zh') { KWeb.IsZH = true; KWeb.plusYear = 0;}
  else { KWeb.IsTH = true; KWeb.plusYear = 543;}
}

KWeb.Util.CheckLang();

KWeb.Util.QueryString = function()
{
  var args = {};
  var query = window.location.search; 
  if (query != null && query.length > 0)
  {
    query = query.substring(1);	  
    var pairs = query.split("&");
    for(var i = 0; i < pairs.length; i++) 
    {
      var pos = pairs[i].indexOf('=');
      if (pos == -1) continue;
      var argname = pairs[i].substring(0,pos);
      var value = pairs[i].substring(pos+1);
      args[argname] = unescape(value); 
    }
  }
  return args;    
}

KWeb.Util.OpenWindow = function(url, width, height, left, top)
{
	//return window.open(url, '_blank', 'width=' + width + ',height=' + height + ',toolbar=yes,menubar=yes,location=yes,scrollbars=yes,resizable=yes');
	//return window.open(url, '_blank', 'width=' + width + ',height=' + height + ',resizable=yes');
	if (width == null) width = 895; //690;
	if (height == null) height = 560;
	if (left == null) left = screen.width/2-width/2;
	if (top == null) top = screen.height/2-height/2;
	   {
	    if(url.indexOf('/PrivilegeServices/') != -1)
			//alert("ABC");  	
			return window.open(url,"_blank","height=" + 560 + "px,width=" + 990 + "px,top=" + top + "px,menubar=1,toolbar=1,resizable=1,scrollbars=1");
			//return window.open(url,"_blank")
		else
			return window.open(url,"_blank","height=" + height + "px,width=" + width + "px,left=" + left + "px,top=" + top + "px,menubar=0,toolbar=0,resizable=1,scrollbars=1");
  		}
}

KWeb.Util.OpenShortcut = function(url, target)
{
	if (target == null || target.length == 0) 
		window.location = url;
	else if (target.startsWith('openwin_'))
	{
		var config = target.split('_');
        var width = parseInt(config[1]);
        var height = parseInt(config[2]);
		KWeb.Util.OpenWindow(url, width, height);
	}	
	else
	   {
//		alert("ABC");
		window.open(url, target);				
		}
}			

KWeb.Util.Target2OpenWin = function()
{
	var links = $("a[target^='openwin_']");
	for(var i=0;i<links.length;i++)
	{
			var link = $(links[i]);
			try
			{
				var config = link.attr('target').split('_');
				var width = parseInt(config[1]);
				var height = parseInt(config[2]);
				link.bind("click",(function(href, width, height) { return function() {KWeb.Util.OpenWindow(href, width, height); return false;};})(link.attr('href'), width, height));
				link.attr('target','');
				link.attr('href','#');
			}
			catch(excp) {}
	}
}

$(document).ready(KWeb.Util.Target2OpenWin);

KWeb.Util.DateFromJSON = function (dateStr)
{
	var reg = new RegExp('\\/Date\\((\\d+)\\)\\/');
	if(reg.test(dateStr))
		return eval(dateStr.replace(reg, 'new Date($1)'));

	return null;
}

KWeb.Util.OpenPrint = function()
{
	window.open('/Pages/Print.htm','print','width=940px,height=800px,toolbar=yes,menubar=yes,scrollbars=yes');
}

KWeb.Util.DistinctArray = function(arr)
{
  var ret = [];
  var curVal = null;
  var j=0;
  for(var i=0;i<arr.length;i++)
    if(curVal != arr[i])
    {
      curVal = arr[i];
      ret[j] = curVal;
      j++;
    }

  return ret;
}

/* -------------------- Top Banner -------------------- */
KWeb.TopBanner = {};

// top banner configuration
var TopBannerRandom = false; // will be set in each page [code locate at KBank.master]
var TopBannerWidth = 940;
var TopBannerHeight = 170;
var TopBannerScrollNumber = 1;
var TopBannerScrollAuto = 20; // seconds

var TopBannerDuration = [0, 0, 0, 0, 0];
var TopBannerIndex = 0;
var TopBannerSetTimeOut;

var TopBannerItemList;
var TopBannerItemListLength;

KWeb.TopBanner.IsPicture = function (url)
{
	url = url.toLowerCase();
	if ((/\.gif$/).test(url) ||
		(/\.jpg$/).test(url) ||
		(/\.jpeg$/).test(url) ||
		(/\.png$/).test(url)) return true;
	return false;
}

KWeb.TopBanner.IsFlash = function (url)
{
	if ((/\.swf$/).test(url)) return true;
	return false;
}

KWeb.TopBanner.InitCallback = function (carousel)
{
	TopBannerCarousel = carousel;

	$('.mTopBannerNumber a').bind('click', function() {
		carousel.scroll($.jcarousel.intval($(this).text()));
		return false;
	});

	$('#mTopBannerNumberNext').bind('click', function() {
		carousel.next();
		return false;
	});

	$('#mTopBannerNumberPrev').bind('click', function() {
		carousel.prev();
		return false;
	});
}

KWeb.TopBanner.ItemLoadCallback = function (carousel, state)
{
	var TopBannerItemListIndex = 0;
	for (var i = 0; i < TopBannerItemList.length; i++) {
		var item = TopBannerItemList[i];
		if (item.url == "") continue;
		if (!KWeb.TopBanner.IsPicture(item.url) && !KWeb.TopBanner.IsFlash(item.url)) continue;
		if (carousel.has(++TopBannerItemListIndex)) continue;
		carousel.add(TopBannerItemListIndex, KWeb.TopBanner.GetItemHTMLPicture(item));
		TopBannerItemList[TopBannerItemListIndex-1] = item;
		TopBannerDuration[TopBannerItemListIndex-1] = (!isNaN(parseInt(item.duration)) != "" ? item.duration : TopBannerScrollAuto);
	}
}

KWeb.TopBanner.ItemVisibleInCallbackBefore = function (carousel, item, i, state, evt)
{
	if (KWeb.TopBanner.IsFlash(TopBannerItemList[i-1].url)) $(item).html(KWeb.TopBanner.GetItemHTMLFlash(TopBannerItemList[i-1]));
	if (TopBannerItemListLength > 1)
	{
		document.getElementById("mTopBannerNumber").children[i-1].className = "mTopBannerNumberActive";
		if (carousel.prevFirst) document.getElementById("mTopBannerNumber").children[carousel.prevFirst-1].className = "";
	}
	$(item).hide();
	if (TopBannerItemListLength <= 1) return;
	window.clearTimeout(TopBannerSetTimeOut);
}

KWeb.TopBanner.ItemVisibleInCallbackAfter = function (carousel, item, i, state, evt)
{
	$(item).fadeIn("slow");
	if (TopBannerItemListLength <= 1) return;
	TopBannerIndex = i - 1;
	TopBannerSetTimeOut = window.setTimeout("$('#mTopBannerNumberNext').click();", parseInt(TopBannerDuration[TopBannerIndex]) * 1000);
}

KWeb.TopBanner.ItemVisibleOutCallbackAfter = function (carousel, item, i, state, evt)
{
	if (KWeb.TopBanner.IsFlash(TopBannerItemList[i-1].url)) $(item).html("");
}

KWeb.TopBanner.GetItemHTMLPicture = function (item)
{
	var str = "";
	if (KWeb.TopBanner.IsPicture(item.url))
	{
		if (item.link_url != "")
			str = '<a href="' + item.link_url + '" title="' + item.link_title + '" target="_blank"><img src="' + item.url + '" width="' + TopBannerWidth + '" height="' + TopBannerHeight + '" alt="' + item.title + '" /></a>';
		else
			str = '<img src="' + item.url + '" width="' + TopBannerWidth + '" height="' + TopBannerHeight + '" alt="' + item.title + '" />';
	}
	return str;
}

KWeb.TopBanner.GetItemHTMLFlash = function (item)
{
	var str = "";
	if (KWeb.TopBanner.IsFlash(item.url))
	{
		/*
		str =
			'<object type="application/x-shockwave-flash" width="' + TopBannerWidth + '" height="' + TopBannerHeight + '">' +
			'  <param name="movie" value= "' + item.url + '" />' +
			'  <param name="wmode" value="transparent" />' +
			'</object>';
		*/
		var objSWF = new SWFObject(item.url, "TopBannerFlash", TopBannerWidth, TopBannerHeight, "8", "white");
		objSWF.addParam('wmode', 'transparent');
		objSWF.opacity = 100;
		objSWF.write("TopBannerFlash");
		str = $('#TopBannerFlash').html();
	}
	return str;
}

KWeb.TopBanner.Start = function (randomBanner, scrollNumber, scrollAuto)
{
	if (
		document.getElementById("mTopBanner") &&
		$('#mTopBanner').css('display') != "none" &&
		document.getElementById("mTopBannerNumberGR") &&
		document.getElementById("mTopBannerNumber") &&
		document.getElementById("pTopBannerDiv") &&
		document.getElementById("mTopBannerNumberNext") &&
		document.getElementById("mTopBannerNumberPrev")
	)
	{
		TopBannerItemList = [
			{url: TopBanner1[0], title: TopBanner1[1], link_url: TopBanner1Link[0], link_title: TopBanner1Link[1], duration: TopBanner1Duration},
			{url: TopBanner2[0], title: TopBanner2[1], link_url: TopBanner2Link[0], link_title: TopBanner2Link[1], duration: TopBanner2Duration},
			{url: TopBanner3[0], title: TopBanner3[1], link_url: TopBanner3Link[0], link_title: TopBanner3Link[1], duration: TopBanner3Duration},
			{url: TopBanner4[0], title: TopBanner4[1], link_url: TopBanner4Link[0], link_title: TopBanner4Link[1], duration: TopBanner4Duration},
			{url: TopBanner5[0], title: TopBanner5[1], link_url: TopBanner5Link[0], link_title: TopBanner5Link[1], duration: TopBanner5Duration}
		];

		TopBannerItemListLength = 0;
		for (var i = 0; i < TopBannerItemList.length; i++)
		{
			var item = TopBannerItemList[i];
			if (KWeb.TopBanner.IsPicture(item.url) || KWeb.TopBanner.IsFlash(item.url))
				TopBannerItemListLength++;
		}

		$(document).ready(function() {

			if (TopBannerItemListLength == 0)
			{
				TopBannerItemList[0].url = TopBannerDefaultURL;
				TopBannerItemList[0].title = TopBannerDefaultTitle;
				TopBannerItemListLength = 1;
			}

			if (TopBannerItemListLength >= 1)
			{
				if (TopBannerItemListLength > 1)
				{
					// show navigation
					document.getElementById("mTopBannerNumberGR").style.display = "block";

					// create number navigation
					for (i = 0; i < TopBannerItemListLength; i++)
						document.getElementById("mTopBannerNumber").innerHTML = document.getElementById("mTopBannerNumber").innerHTML + "<a href='#'>" + (i+1) + "</a>";

					// random banner
					if (randomBanner)
						TopBannerItemList = KWeb.RandomArrayValue(TopBannerItemList);
				}

				$('#pTopBannerDiv').jcarousel({
					size: TopBannerItemListLength,
					wrap: 'both',
					scroll: scrollNumber,
					initCallback: KWeb.TopBanner.InitCallback,
					itemLoadCallback: {onBeforeAnimation: KWeb.TopBanner.ItemLoadCallback},
					itemVisibleInCallback: {
						onBeforeAnimation: KWeb.TopBanner.ItemVisibleInCallbackBefore,
						onAfterAnimation: KWeb.TopBanner.ItemVisibleInCallbackAfter
					},
					itemVisibleOutCallback: {
						onAfterAnimation: KWeb.TopBanner.ItemVisibleOutCallbackAfter
					},
					buttonNextHTML: null,
					buttonPrevHTML: null,
					animation: 0
				});
			}
		});
	}
}

/* -------------------- K Now Banner -------------------- */
KWeb.KNowBanner = {}

// k now configuration
var KNowBannerSize = "Small"; // "Big" or "Small"
var KNowBannerRandom = true; // true or false
var KNowBannerDefaultURL = "";
var KNowBannerScrollNumber = 1;
var KNowBannerScrollAuto = 20; // seconds

var KNowBannerItemList;
var KNowBannerItemListLength;
var KNowBannerSmallItemList;
var KNowBannerSmallItemListLength;
var KNowBannerBigItemList;
var KNowBannerBigItemListLength;

KWeb.KNowBanner.InitCallback = function (carousel)
{
	$('#pNavKNowNext').bind('click', function() {
		carousel.next();
		return false;
	});

	$('#pNavKNowPrev').bind('click', function() {
		carousel.prev();
		return false;
	});
}

KWeb.KNowBanner.ItemLoadCallback = function (carousel, state)
{
	for (var i = 0; i < KNowBannerItemList.length; i++) {
		if (carousel.has(i+1)) continue;
		carousel.add(i+1, KWeb.KNowBanner.GetItemHTML(KNowBannerItemList[i]));
	}
}

KWeb.KNowBanner.GetItemHTML = function (item)
{
	str = '<a href="' + item.LinkURL + '" title="' + item.LinkTitle + '" target="' + item.LinkTarget + '"><img src="' + item.ImageURL + '" alt="' + item.Title + '" /></a>';
	return str;
}

KWeb.KNowBanner.Start = function (bannerSize, defaultURL, randomBanner, scrollNumber, scrollAuto)
{
	if (
		document.getElementById("pContentNav") &&
		$('#pContentNav').css('display') != "none" &&
		document.getElementById("pNavKNow") &&
		document.getElementById("pNavKNowDiv") &&
		document.getElementById("pNavKNowNext") &&
		document.getElementById("pNavKNowPrev")
	)
	{
		if ($("#pContentNav").width() > 220) bannerSize = "Big"; else bannerSize = "Small";
		if (bannerSize == "Big")
		{
			document.getElementById("pNavKNowDiv").className = "jcarousel-skin-kbank-nav-know-home";
			document.getElementById("pNavKNowNext").className = "pNavKNowNextHome";
			KNowBannerItemList = KNowBannerBigItemList;
			KNowBannerItemListLength = KNowBannerBigItemListLength;
		}
		else
		{
			document.getElementById("pNavKNowDiv").className = "jcarousel-skin-kbank-nav-know";
			document.getElementById("pNavKNowNext").className = "pNavKNowNext";
			KNowBannerItemList = KNowBannerSmallItemList;
			KNowBannerItemListLength = KNowBannerSmallItemListLength;
		}

		$(document).ready(function() {
			if (KNowBannerItemListLength >= 1)
			{
				// show k now div
				document.getElementById("pNavKNow").style.display = "block";

				if (KNowBannerItemListLength > 1)
				{
					// random banner
					if (randomBanner)
						KNowBannerItemList = KWeb.RandomArrayValue(KNowBannerItemList);

					// default url
					if (defaultURL && defaultURL != "")
					{
						for (i = 0; i < KNowBannerItemListLength; i++)
						{
							if (KNowBannerItemList[i].ImageURL == defaultURL)
								break;
						}
						if (i > 0 && i < KNowBannerItemListLength)
						{
							var KNowBannerItem = KNowBannerItemList[i];
							for (j = i; j > 0; j--)
							{
								KNowBannerItemList[j] = KNowBannerItemList[j-1];
							}
							KNowBannerItemList[0] = KNowBannerItem;
						}
					}
				}

				$('#pNavKNowDiv').jcarousel({
					size: KNowBannerItemListLength,
					wrap: 'both',
					scroll: scrollNumber,
					auto: scrollAuto,
					initCallback: KWeb.KNowBanner.InitCallback,
					itemLoadCallback: {onBeforeAnimation: KWeb.KNowBanner.ItemLoadCallback},
					buttonNextHTML: null,
					buttonPrevHTML: null
				});
			}
		});
	}
}

/* -------------------- Promotion Banner -------------------- */
KWeb.PromotionBanner = {}

KWeb.PromotionBanner.InitCallback = function (carousel) {
  jQuery('#pPromotionBannerNext').bind('click', function() {
    carousel.next();
    return false;
  });

  jQuery('#pPromotionBannerPrev').bind('click', function() {
    carousel.prev();
    return false;
  });
}

KWeb.PromotionBanner.ItemLoadCallback = function (carousel, state)
{
  for (var i = 0; i < PromotionBannerItemList.length; i++) {
    if (carousel.has(i+1)) continue;
    carousel.add(i+1, KWeb.PromotionBanner.GetItemHTML(PromotionBannerItemList[i]));
  }
}

KWeb.PromotionBanner.GetItemHTML = function (item)
{
  return '<a href="#" alt="' + item.title + '" onclick="KWeb.Util.OpenWindow(\'' + item.Link + '\'); return false;">' + item.Image + '</a>';
}

KWeb.PromotionBanner.Start = function (scrollNumber, scrollAuto)
{
  if (
    document.getElementById("pPromotionBanner") &&
    document.getElementById("pPromotionBannerDiv") &&
    document.getElementById("pPromotionBannerNext") &&
    document.getElementById("pPromotionBannerPrev")
  )
  {
    jQuery(document).ready(function() {
      jQuery('#pPromotionBannerDiv').jcarousel({
        size: PromotionBannerItemListLength,
        wrap: 'both',
        scroll: scrollNumber,
        auto: scrollAuto,
        initCallback: KWeb.PromotionBanner.InitCallback,
        itemLoadCallback: {onBeforeAnimation: KWeb.PromotionBanner.ItemLoadCallback},
        buttonNextHTML: null,
        buttonPrevHTML: null
      });
    });
  }
}

/* -------------------- Mail -------------------- */
KWeb.Mail = {};
KWeb.Mail.SendMailAjax = function()
{
  var fields = $('.iField');
  var data = {};
  for(var i=0;i<fields.length;i++)
  {
    var val = $(fields[i]).val();
    var elt = $(fields[i]).get(0)
    var type = elt.type;
    if (type == "checkbox" || type == "radio")
      if (!elt.checked)
        val = '';

    data[$(fields[i]).attr("id")] = val;
  }
  data["ksendmail"] = "true";
  try
  {
    $.post(window.location.href.replace(window.location.hash, ""), data,
      function(data, status)
      {
        if(data.startsWith("ksenderror;") || data.startsWith("ksendsuccess;"))
        {
          var cfgArr = data.split(';');
          if (cfgArr.length >= 3)
          {
            if (cfgArr[1] != null && cfgArr[1] != '')
              alert(cfgArr[1]);

            if (cfgArr[2] != null && cfgArr[2] != '')
              window.location = cfgArr[2];
          }
					if (data.startsWith("ksendsuccess;"))
					{
						document.forms[0].reset();
						if (window.location.search.indexOf('Close=true') > -1)
						{
							window.close();
							window.onunload();
						}
					}
        }
        else
          alert(data);
      }
      , "text");
  }
  catch(exp) {}
}

KWeb.Mail.OpenSendInfoDlg = function()
{
  var product = Url.encode($('#mBreadcrumb span.active').text());
  var win = KWeb.Util.OpenWindow(KWeb.Util.GetFirstFolderUrl() + 'Pages/SendInfo.aspx?Close=true&Product=' + product, '465px', '470px');
}

KWeb.Search = {};
KWeb.Search.GoSearch = function()
{
  var variation = '/TH';
  if(KWeb.IsEN)
    variation = '/EN';
  else if (KWeb.IsZH)
    variation = '/ZH';
	//window.navigate(variation + '/Search/Results.aspx?k=' + encodeURIComponent($('#mSearchInput').val()));
	window.open(variation + '/Search/Results.aspx?k=' + encodeURIComponent($('#mSearchInput').val()), '_self');
}

KWeb.Search.InputKeyDown = function(evt)
{
  if(evt.keyCode == 13)
  {
    KWeb.Search.GoSearch();
    return false;
  }
  return true;
}

KWeb.Calendar = {}
KWeb.Calendar.MonthEN = ["January","February","March","April","May","June","July","August","September","October","November","December"];
KWeb.Calendar.MonthTH = ["มกราคม","กุมภาพันธ์","มีนาคม","เมษายน","พฤษภาคม","มิถุนายน","กรกฏาคม","สิงหาคม","กันยายน","ตุลาคม","พฤศจิกายน","ธันวาคม"];
KWeb.Calendar.MonthZH = ["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"];

KWeb.Calendar.Show = function(tableSel, callback, monthArr, bdYear, m, y)
{
  if (KWeb.IsEN)
  {
    bdYear = false;
    monthArr = KWeb.Calendar.MonthEN;
  }
  else if (KWeb.IsZH)
  {
    bdYear = false;
    monthArr = KWeb.Calendar.MonthZH;
  }
  else 
  {
    bdYear = true;
    monthArr = KWeb.Calendar.MonthTH;
  }
  
  var toDay = new Date();
  if (m == null)  
    m = toDay.getMonth();
  else
    m = m-1;

  if (y == null)
    y = toDay.getFullYear();

  if (bdYear == null)
    bdYear = false;

  var date = new Date(y,m,1);
  var sDay = date.getDay();
  
  date.setMonth(date.getMonth() + 1);
  date.setDate(date.getDate() - 1);
  var eDate = date.getDate();
  $(tableSel).attr('m',m).attr('y',y).attr('bdY', bdYear).attr('mArr',monthArr);

  var displayYear = y;
  if (bdYear)
    displayYear = displayYear + 543;
  $(tableSel + ' .calHeader td').text(monthArr[m] + ' ' + displayYear);

  var tdArr = $(tableSel + ' tbody td');
  tdArr.removeClass('noDate').text(' ');

  var tdIndex;
  for(var day=1;day<=eDate;day++)
  {
    tdIndex = day - 1 + sDay;
    $(tdArr[tdIndex]).text(day);
  }

  var trArr = $(tableSel + ' tbody tr');
  trArr.removeClass('iHidden');
  if (tdIndex < 28)
    $(trArr[4]).addClass('iHidden');

  if  (tdIndex < 35)
    $(trArr[5]).addClass('iHidden');
  
  tdIndex++;
  while(tdIndex < tdArr.length)
  {
     $(tdArr[tdIndex]).addClass('noDate');
     tdIndex++;     
  }    
  
  if(typeof(callback) == 'function')
    callback(tableSel, m + 1, y, sDay);  
}

KWeb.Calendar.Goto = function (tableSel, callback, next)
{
  var cal = $(tableSel);

  if(cal.attr('m') == null)
    KWeb.Calendar.Show(tableSel, callback);
  else
  {
    var mArr = cal.attr('mArr')
    if (typeof(mArr) == 'string')
      mArr = mArr.split(',');
    var m = parseInt(cal.attr('m')) + 1;
    var y = parseInt(cal.attr('y'));
    var bdYear = false;
    if(typeof(cal.attr('bdY')) == 'string')
    {
      if(cal.attr('bdY') == 'true')
        bdYear = true;
    }
    else
      bdYear = cal.attr('bdY');    

    if (next)
    {
      m=m+1;
      if (m>12) { m=1; y=y+1; }
    }
    else 
    {
      m=m-1;
      if(m<1){ m=12; y=y-1; }
    }
    
    KWeb.Calendar.Show(tableSel, callback, mArr, bdYear, m, y);
  }   
}

KWeb.TitleAlt = function ()
{
  var titleAlt = $('#pTitleAlt');
  if (titleAlt.length == 0)
    return;
    
  titleAlt = $(titleAlt[0]);  
  var inp = $('#pTitleAlt input');
  if (inp.length > 0)
  {
    titleAlt.show();
    return;    
  }
  
  if(titleAlt.length > 0)
  {
    var text = titleAlt.text();
    text = text.substr(1, text.length - 2).trim();
    if (text.length > 0)
      titleAlt.text('(' + text + ')').show();
  }  
}

KWeb.SETTRADEValue = function ()
{
	$.getJSON('/_layouts/KS/SETTRADEValue.aspx', function(data){
		var valSET = parseFloat(data.SET);
		var valMAI = parseFloat(data.MAI);
		var classSET = 'tGreen';
		var classMAI = 'tGreen';
		if (!isNaN(valSET) && !isNaN(valMAI))
		{
			if (valSET > 0)
				valSET = '+' + valSET;
			else if (valSET < 0)
				classSET = 'tRed'
			if (valMAI > 0)
				valMAI = '+' + valMAI;
			else if (valMAI < 0)
				classMAI = 'tRed'
			$('#mTopBannerLeftFrame').html(
				'<div class="clear" style="height:6px;"/>' +
				'<div class="iLeftFrameHeader">SET</div>' +
				'<div class="iLeftFrameText ' + classSET + '">' + valSET + '</div>' +
				'<div class="iLeftFrameHeader">MAI</div>' +
				'<div class="iLeftFrameText ' + classMAI + '">' + valMAI + '</div>'
			);
		}
	});
}

