function JS_ShowHide(obj_a,str_id) {
	var obj_el = document.getElementById(str_id);
	var obj_img = obj_a.getElementsByTagName('img')[0];
	if (obj_el.style.display == 'none') {
		obj_el.style.display = '';
		obj_img.src = str_appl_root + 'images/minus.png';
	} else {
		obj_el.style.display = 'none';
		obj_img.src = str_appl_root + 'images/plus.png';
	}
	obj_a.blur();
}

function SS_IsEmail(str_source) {
	var bool_valid = false;
	var arr_part = str_source.split('@');
	if (arr_part.length == 2) {
		var str_user = arr_part[0];
		var arr_host = arr_part[1].split('.');
		if (arr_host.length >=2) {
			bool_valid = SS_ValidChars(str_user,"0123456789ABCDEFGHIJKLMNOPQRSTUVWYXZ{!#$%*/?|^`~&'+-=_.}");
			for (var j=0;j<arr_host.length;j++) {
				bool_valid = bool_valid && (arr_host[j].length > 0);
				bool_valid = bool_valid && SS_ValidChars(arr_host[j],"0123456789ABCDEFGHIJKLMNOPQRSTUVWYXZ-");
			}
		}
	}
	return bool_valid;
}

function SS_ValidChars(str_test,str_valid) {
	var bool_valid = true;
	for (var i=0;i<str_test.length;i++) {
		bool_valid = bool_valid && (str_valid.indexOf(str_test.charAt(i).toUpperCase()) >= 0);
	}
	return bool_valid;
}

function SS_JoinEmail(str_link_id, str_domain,str_user) {
	var str_email_addr = str_user + String.fromCharCode(Math.pow(2,6)) + str_domain;
	var obj_link = document.getElementById(str_link_id);
	obj_link.href = 'mail' + 'to:' + str_email_addr;
	obj_link.innerHTML = str_email_addr;
}

function SS_UrlEncode(str_input) {
	return escape(str_input).replace(/\+/g,'%2B');
}

function SS_UrlDecode(str_input) {
	return unescape(str_input.replace(/\+/g,'%20'));
}

function SS_LoadFragments(arr_param,fn_callback) {
	if (typeof(fn_callback) != 'function') fn_callback = function(){};
	if (arr_param.length > 1) {
		var arr_new = [];
		for (var i=1;i<arr_param.length;i++) arr_new[arr_new.length] = arr_param[i];
		var obj_param = arr_param[0];
		SS_LoadFragment(obj_param,function(){
			SS_LoadFragments(arr_new,fn_callback);
		});
	} else {
		SS_LoadFragment(arr_param[0],fn_callback);
	}
}

function SS_LoadFragment(obj_param,fn_callback) {
	SS_HttpReq(str_appl_root + 'include/http_proxy.asp?u=' + SS_UrlEncode(obj_param.url),function(str_html){
		var obj_div = document.createElement('div');
		obj_div.innerHTML = str_html;
		var obj_div_weather;
		var arr_el = obj_div.getElementsByTagName('div');
		for (var i=0;i<arr_el.length;i++) {
			if (arr_el[i].id == obj_param.source) obj_div_weather = arr_el[i];
		}
		if (obj_div_weather) {
			var arr_el = obj_div_weather.getElementsByTagName('a');
			for (var i=0;i<arr_el.length;i++) {
				arr_el[i].href = obj_param.url;
				arr_el[i].setAttribute('target','_blank');
				arr_el[i].onclick = function(){};
			}
			var obj_div_holder = document.getElementById(obj_param.target);
			obj_div_holder.innerHTML = obj_div_weather.innerHTML;
			obj_div_holder.id = obj_div_weather.id;
		}
		setTimeout(fn_callback,100);
	});
}

function SS_GetNodeHtml(obj_node) {
	var obj_div = document.createElement('div');
	obj_div.appendChild(obj_node.cloneNode(true));
	return obj_div.innerHTML;
}

function SS_HttpReq(str_http_url, obj_function) {
	if (typeof(SS_AjaxStart) == 'function') SS_AjaxStart();
	var xmlHttpReq = false;
	var self = this;
	if (window.XMLHttpRequest) {
		self.xmlHttpReq = new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
	}
	self.xmlHttpReq.open('GET', str_http_url, true);
	self.xmlHttpReq.onreadystatechange = function() {
		if (self.xmlHttpReq.readyState == 4) {
			if (typeof(SS_AjaxComplete) == 'function') SS_AjaxComplete();
			if (self.xmlHttpReq.status==200) {
				if (typeof(obj_function) == 'function') obj_function(self.xmlHttpReq.responseText);
			} else {
				alert('HTTP Error ' + self.xmlHttpReq.status + ' occured while getting content.');
			}
		}
	}
	self.xmlHttpReq.send(null);
}

function MM_goToURL() {
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}
function MM_openBrWindow(theURL,winName,features) {
  window.open(theURL,winName,features);
}
