Skip to content

Instantly share code, notes, and snippets.

@noomz
Created July 20, 2011 04:37
Show Gist options
  • Save noomz/1094343 to your computer and use it in GitHub Desktop.
Save noomz/1094343 to your computer and use it in GitHub Desktop.
for natz
/*!
* Copyleft (c) 2011 ${name}.
* Licensed under the ${license} license.
*
* @version ${Version}
*/
var correctThaiFloatingVowel = function (text, anchor, el, options) {
/**
* @return string from character code provided.
*/
var _ = function (code) {
return String.fromCharCode(code);
};
var
// Lower level characters
SARA_U = _(0xE38),
SARA_UU = _(0xE39),
PHINTHU = _(0xE3A),
// Lower level characters after pullDown
SARA_U_DOWN = _(0xF718),
SARA_UU_DOWN = _(0xF719),
PHINTHU_DOWN = _(0xF71A),
// Upper level 1 characters
MAI_HAN_AKAT = _(0xE31),
SARA_AM = _(0xE33),
SARA_I = _(0xE34),
SARA_Ii = _(0xE35),
SARA_Ue = _(0xE36),
SARA_Uee = _(0xE37),
MAI_TAI_KHU = _(0xE47),
// Upper level 1 characters after shift left
MAI_HAN_AKAT_LEFT_SHIFT = _(0xF710),
SARA_I_LEFT_SHIFT = _(0xF701),
SARA_Ii_LEFT_SHIFT = _(0xF702),
SARA_Ue_LEFT_SHIFT = _(0xF703),
SARA_Uee_LEFT_SHIFT = _(0xF704),
MAI_TAI_KHU_LEFT_SHIFT = _(0xF712),
// Upper level 2 characters
MAI_EK = _(0xE48),
MAI_THO = _(0xE49),
MAI_TRI = _(0xE4A),
MAIchATTAWA = _(0xE4B),
THANTHAKHAT = _(0xE4C),
NIKHAHIT = _(0xE4D),
// Upper level 2 characters after pull down
MAI_EK_DOWN = _(0xF70A),
MAI_THO_DOWN = _(0xF70B),
MAI_TRI_DOWN = _(0xF70C),
MAIchATTAWA_DOWN = _(0xF70D),
THANTHAKHAT_DOWN = _(0xF70E),
// Upper level 2 characters after pull down and shift left
MAI_EK_PULL_DOWN_AND_LEFT_SHIFT = _(0xF705),
MAI_THO_PULL_DOWN_AND_LEFT_SHIFT = _(0xF706),
MAI_TRI_PULL_DOWN_AND_LEFT_SHIFT = _(0xF707),
MAIchATTAWA_PULL_DOWN_AND_LEFT_SHIFT = _(0xF708),
THANTHAKHAT_PULL_DOWN_AND_LEFT_SHIFT = _(0xF709),
// Upper level 2 characters after shift left
MAI_EK_LEFT_SHIFT = _(0xF713),
MAI_THO_LEFT_SHIFT = _(0xF714),
MAI_TRI_LEFT_SHIFT = _(0xF715),
MAIchATTAWA_LEFT_SHIFT = _(0xF716),
THANTHAKHAT_LEFT_SHIFT = _(0xF717),
NIKHAHIT_LEFT_SHIFT = _(0xF711),
// Up tail characters
PO_PLA = _(0x0E1B),
FO_FA = _(0x0E1D),
FO_FAN = _(0x0E1F),
LOchULA = _(0x0E2C),
// Down tail characters
THO_THAN = _(0xE10),
YO_YING = _(0xE0D),
DOchADA = _(0xE0E),
TO_PATAK = _(0xE0F),
RU = _(0xE24),
LU = _(0xE26),
// Cut tail characters
THO_THAN_CUT_TAIL = _(0xF700),
YO_YING_CUT_TAIL = _(0xF70F),
// for exploded SARA_AM (NIKHAHIT + SARA_AA)
SARA_AA = _(0xE32);
var isUpTail = function (ch) {
return ch == PO_PLA || ch == FO_FA || ch == FO_FAN
|| ch == LOchULA;
};
var isDownTail = function (ch) {
return ch == THO_THAN || ch == YO_YING || ch == DOchADA
|| ch == TO_PATAK || ch == RU || ch == LU;
};
var isUpperLevel1 = function (ch) {
return ch == MAI_HAN_AKAT || ch == SARA_I || ch == SARA_Ii
|| ch == SARA_Ue || ch == SARA_Uee || ch == MAI_TAI_KHU
|| ch == NIKHAHIT;
};
var isLeftShiftUpperLevel1 = function (ch) {
return ch == MAI_HAN_AKAT_LEFT_SHIFT || ch == SARA_I_LEFT_SHIFT
|| ch == SARA_Ii_LEFT_SHIFT || ch == SARA_Ue_LEFT_SHIFT
|| ch == SARA_Uee_LEFT_SHIFT || ch == MAI_TAI_KHU_LEFT_SHIFT
|| ch == NIKHAHIT_LEFT_SHIFT;
};
var isUpperLevel2 = function (ch) {
return ch == MAI_EK || ch == MAI_THO || ch == MAI_TRI
|| ch == MAIchATTAWA || ch == THANTHAKHAT;
};
var isLowerLevel(ch) {
return ch == SARA_U || ch == SARA_UU || ch == PHINTHU;
};
var pullDownAndShiftLeft = function (ch) {
switch (ch) {
case MAI_EK:
return MAI_EK_PULL_DOWN_AND_LEFT_SHIFT;
case MAI_THO:
return MAI_THO_PULL_DOWN_AND_LEFT_SHIFT;
case MAI_TRI:
return MAI_TRI_PULL_DOWN_AND_LEFT_SHIFT;
case MAI_CHATTAWA:
return MAI_CHATTAWA_PULL_DOWN_AND_LEFT_SHIFT;
case MAI_HAN_AKAT:
return MAI_HAN_AKAT_LEFT_SHIFT;
case THANTHAKHAT:
return THANTHAKHAT_PULL_DOWN_AND_LEFT_SHIFT;
default:
return ch;
}
};
var shiftLeft(ch) {
switch (ch) {
case MAI_EK:
return MAI_EK_LEFT_SHIFT;
case MAI_THO:
return MAI_THO_LEFT_SHIFT;
case MAI_TRI:
return MAI_TRI_LEFT_SHIFT;
case MAI_CHATTAWA:
return MAI_CHATTAWA_LEFT_SHIFT;
case MAI_HAN_AKAT:
return MAI_HAN_AKAT_LEFT_SHIFT;
case SARA_I:
return SARA_I_LEFT_SHIFT;
case SARA_Ii:
return SARA_Ii_LEFT_SHIFT;
case SARA_Ue:
return SARA_Ue_LEFT_SHIFT;
case SARA_Uee:
return SARA_Uee_LEFT_SHIFT;
case MAI_TAI_KHU:
return MAI_TAI_KHU_LEFT_SHIFT;
case NIKHAHIT:
return NIKHAHIT_LEFT_SHIFT;
default:
return ch;
}
};
var pullDown(ch) {
switch (ch) {
case MAI_EK:
return MAI_EK_DOWN;
case MAI_THO:
return MAI_THO_DOWN;
case MAI_TRI:
return MAI_TRI_DOWN;
case MAI_CHATTAWA:
return MAI_CHATTAWA_DOWN;
case THANTHAKHAT:
return THANTHAKHAT_DOWN;
case SARA_U:
return SARA_U_DOWN;
case SARA_UU:
return SARA_UU_DOWN;
case PHINTHU:
return PHINTHU_DOWN;
default:
return ch;
}
};
var cutTail(ch) {
switch(ch) {
case THO_THAN:
return THO_THAN_CUT_TAIL;
case YO_YING:
return YO_YING_CUT_TAIL;
default:
return ch;
}
};
var do_modify(ch) {
};
return text;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment