SWAPLANG.js 1.76 KB
Newer Older
Thitichaipun Wutthisak committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
var myhr = angular.module('myHR', [])
myhr.controller('Swaplang', swaplang)

var swaplang = function(mlang){
	var file_name = this.setTarget(mlang)
	var objDOM = this.setXML()
}

swaplang.prototype.setTarget = function(mlang) {
	var path = window.location.pathname
	var lang = getLang().toUpperCase()
	if( (mlang !== "") && (typeof mlang != 'undefined') ){
		lang = mlang.toUpperCase()
	}

	var module
	file_name = 'XML/'+lang+'_CENTER_SWAPLANG.xml'
	if (path.substring(0, path.lastIndexOf( "/" ))!=='/hr'){
		module = path.substring( path.indexOf( "/" ,1)+1, path.lastIndexOf( "/" ))
		file_name = '../XML/'+lang+'_'+module+'_SWAPLANG.xml'
	}
	return file_name
}

swaplang.prototype.swap2String = function(codeid){
	return objDOM.selectSingleNode("/changelanguage/"+codeid).firstChild.nodeValue
}

swaplang.prototype.write = function(codeid) {
	return this.swap2String(codeid)
}

swaplang.prototype.setXML = function(){
	if (window.ActiveXObject){
		objDOM = new ActiveXObject('Msxml.DOMDocument')
		objDOM.async = false
		objDOM.load(file_name)
	} else if (!(window.ActiveXObject) && "ActiveXObject" in window){
		objDOM = new ActiveXObject('Msxml2.DOMDocument.6.0')
		objDOM.async = false
		objDOM.load(file_name)
	} else if (window.XMLHttpRequest){
		var xmlDoc = new XMLHttpRequest()
		xmlDoc.open('GET', file_name, false)
		try {
			xmlDoc.responseType = 'msxml-document'
		} catch(e) {}
		xmlDoc.send(null)
		objDOM = xmlDoc.responseXML
	}

	return objDOM
}

var myswlang = null
if (getLang() != ''){
	myswlang = new swaplang(getLang())
}


myhr.directive('swaplang', function(){
	return {
		restrict: 'E',
		template: '',
		link: function($scope, element, attrs){
			if (myswlang == null){
				myswlang = new swaplang(getLang())
			}
			element.html(myswlang.swap2String(attrs.code))
		}
	}
})