Created
July 20, 2011 04:37
-
-
Save noomz/1094343 to your computer and use it in GitHub Desktop.
for natz
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*! | |
* 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