var req_error = new Array();
var eml_error = new Array();
var eml_compare = true;
var error_icon_start = "<a class=\"ibm-error-link\" href=\"javascript:void()\"><img style=\"padding-top:14px\" src=\"//www.ibm.com/i/c.gif\" width=\"1\" height=\"1\" alt=\"";
var error_icon_end = "\" /><\/a>";

var email_compare = new Array();
var def_email_error_compare = "This e-mail address % is not the same as previous."

// on DOM READY

jQuery(document).ready(function() {

	/********************  BROWSER DETECTION ***************************************/

	var BrowserDetect = {
		init: function () {
			this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
			this.version = this.searchVersion(navigator.userAgent) || this.searchVersion(navigator.appVersion) || "an unknown version";
		},
		searchString: function (data) {
			for (var i=0;i<data.length;i++)	{
				var dataString = data[i].string;
				var dataProp = data[i].prop;
				this.versionSearchString = data[i].versionSearch || data[i].identity;
				if (dataString) {
					if (dataString.indexOf(data[i].subString) != -1)
						return data[i].identity;
				}
				else if (dataProp)
					return data[i].identity;
			}
		},
		searchVersion: function (dataString) {
			var index = dataString.indexOf(this.versionSearchString);
			if (index == -1) return;
			return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
		},
		dataBrowser: [
			{
				string: navigator.userAgent,
				subString: "Chrome",
				identity: "Chrome"
			},
			{ 	string: navigator.userAgent,
				subString: "OmniWeb",
				versionSearch: "OmniWeb/",
				identity: "OmniWeb"
			},
			{
				string: navigator.vendor,
				subString: "Apple",
				identity: "Safari",
				versionSearch: "Version"
			},
			{
				prop: window.opera,
				identity: "Opera"
			},
			{
				string: navigator.vendor,
				subString: "iCab",
				identity: "iCab"
			},
			{
				string: navigator.vendor,
				subString: "KDE",
				identity: "Konqueror"
			},
			{
				string: navigator.userAgent,
				subString: "Firefox",
				identity: "Firefox"
			},
			{
				string: navigator.vendor,
				subString: "Camino",
				identity: "Camino"
			},
			{		// for newer Netscapes (6+)
				string: navigator.userAgent,
				subString: "Netscape",
				identity: "Netscape"
			},
			{
				string: navigator.userAgent,
				subString: "MSIE",
				identity: "Explorer",
				versionSearch: "MSIE"
			},
			{
				string: navigator.userAgent,
				subString: "Gecko",
				identity: "Mozilla",
				versionSearch: "rv"
			},
			{ 		// for older Netscapes (4-)
				string: navigator.userAgent,
				subString: "Mozilla",
				identity: "Netscape",
				versionSearch: "Mozilla"
			}
		]
	};
	BrowserDetect.init();

	/********************  MASTER DECLARATION ***************************************/

	var info_msg = "<div class=\"ibm-rule\"><hr \/><\/div><p class=\"ibm-ind-error\"><strong>" + def_error_msg + "<\/strong><\/p><div class=\"ibm-rule\"><hr \/><\/div>";
	document.getElementById("InfoMssError").innerHTML = info_msg;
		
	for (var r = 0; r < required.length; r++) { // add onchange event on all required fields
		var objectAnchor = document.getElementById(required[r]);
		ides = false;
		for (var s = 0; s < email.length; s++) { // add onchange event on all required email fields
			if (email[s] == required[r] ) ides = true;
		}
		if (ides) { // for required and email
			jQuery("input#"+objectAnchor.id).bind("change",{obj: objectAnchor}, function(e) {
				emlCorrect(e.data.obj,true);
			});
		}
		else { // for required
			if (objectAnchor.type == "radio") {
				jQuery("input[name="+objectAnchor.name+"]").bind("click",{obj: objectAnchor}, function(e) {
					chCorrect(e.data.obj);
				});
			}
			else if (objectAnchor.type == "checkbox") {
				jQuery("fieldset:has(input#"+objectAnchor.id+") input[type=checkbox]").bind("click",{obj: objectAnchor}, function(e) {
					chCorrect(e.data.obj);
				});
			}
			else {
				jQuery("input#"+objectAnchor.id).bind("change",{obj: objectAnchor}, function(e) {
					chCorrect(e.data.obj);
				});
			}
			jQuery("select#"+objectAnchor.id).bind("blur",{obj: objectAnchor}, function(e) {
				chCorrect(e.data.obj);
			});
			jQuery("textarea#"+objectAnchor.id).bind("change",{obj: objectAnchor}, function(e) {
				chCorrect(e.data.obj);
			});
		}
	}
	
	/********************  add onchange event on all no-required email fields ***************************************/
	
	for (var r = 0; r < email.length; r++) {
		ides = true;
		for (var s = 0; s < required.length; s++) {
			if (required[s] == email[r]) ides=false;
			}
		if (ides) {
			var objectAnchor = document.getElementById(email[r]);
			jQuery("input#"+objectAnchor.id).bind("change",{obj: objectAnchor}, function(e) {
		 		emlCorrect(e.data.obj,false);
			});
		}
	}

	/****************** Tooltip ***************************/
	
	TooltipStart();
	
	/****************** EMAIL MESSAGE ***************************/
	
	if (email.length > 0) {
		var email_msg = "<a class=\"ibm-information-link\" href=\"javascript:void()\"><img style=\"padding-top:18px\" src=\"//www.ibm.com/i/c.gif\" width=\"1\" height=\"1\" alt=\"information icon\" /><\/a>";
		for (var m = 0; m < email.length; m++) { // add info icon after all email(s) inputs
			var objectEmail = document.getElementById(email[m]);
			jQuery("input#"+objectEmail.id).after(email_msg);
						
			labelTEXT = jQuery("label[for="+objectEmail.id+"]").text();
			addition = "'" + labelTEXT.slice(0,labelTEXT.search(/\:\*/)) + "'";
			if (labelTEXT.search(/\:\*/) == ( labelTEXT.length - 2 )) newALT = def_email_alt_required.replace(/%/,addition);
			else if (labelTEXT.lastIndexOf(":") == ( labelTEXT.length - 1 )) newALT = def_email_alt.replace(/%/,addition);
			else newALT = def_email_info_tooltip.replace(/%/,addition);
			
			
			jQuery("input#"+objectEmail.id+"~a.ibm-information-link>img").attr("alt",newALT);
			
			jQuery("input#"+objectEmail.id+"~a.ibm-information-link").bind("mouseenter",{tooltip: newALT}, function(e) {
				Xposition = ibmCommon.getX(this);
				Yposition = ibmCommon.getY(this);
				TooltipShow(e.data.tooltip,Xposition,Yposition)
			});
			
			jQuery("input#"+objectEmail.id+"~a.ibm-information-link").bind("mouseleave", function(e) { jQuery("#tooltipContent").css("display","none") });
			
		}
	}
	
	/****************** COUNTRIES XML PARSING ************************/
	
	jQuery("select#Country").bind("change", function() {
			CountriesSelect();
		});
	
	// change INPUT id=State to SELECT id=State
	jQuery("input#State").parent().replaceWith("<span><select name=\"state\" id=\"State\" disabled=\"disabled\"><option value=\"\" selected=\"selected\">" + def_sel_one + "<\/option><\/select><\/span>");
;

	/****************** otTitle ************************************************/
	
	jQuery("div#ibm-content").append("<div id=\"opTitle\"><\/div>");
	jQuery("div#opTitle").attr("style",function() {
						styles  = "";
						styles += "display: none;";
						styles += "position: absolute;";
						styles += "background-color: #FFFF99;";
						styles += "padding: 3px;";
						styles += "border: 1px solid #CCCCCC;";
						styles += "font-family: arial, sans-serif;";
						styles += "font-size: 12px;";
						
						return styles;
					})

	/****************** Select WIDTH ************************************************/
	
	var isSelectOpen = false;
	if (ibmCommon.info.isIE) wNum = "233px"; else wNum = "232px";
	
	for (s=0; s < select_width_fix.length; s++) {
		jQuery("#"+select_width_fix[s]).css("width",wNum);
	}

	if (select_width_fix.length != 0 && ibmCommon.info.isIE) {
		
		for (s=0; s < select_width_fix.length; s++) {
			
			if (BrowserDetect.version <= 7) hPcon = ibmCommon.getY(document.getElementById("ibm-pcon"));
			else hPcon = ibmCommon.getY(document.getElementById("ibm-content"));
			
			topStatic = ibmCommon.getY(document.getElementById(select_width_fix[s])) - hPcon;
			
			if (BrowserDetect.version <= 6) absLeft = "166px";
			if (BrowserDetect.version == 7)	absLeft = "163px";
			if (BrowserDetect.version >= 8)	absLeft = "163px";
						
			jQuery("#"+select_width_fix[s]).bind("mouseenter",{ bv: BrowserDetect.version ,al: absLeft ,ts: topStatic }, function(e) {
				topStatic = e.data.ts
				if (jQuery(this).next("a").hasClass("ibm-error-link")) {
					jQuery(this).next("a.ibm-error-link").css("display","none");
					topStatic = parseInt(topStatic) + 27;
				}
				if (e.data.bv <= 7) pb = "14px"; else pb = "12px";
				jQuery(this).parents("p").css("padding-bottom",pb);
				jQuery(this).css({
					"position" : "absolute",
					"width" : "auto",
					"left" : e.data.al,
					"top" : topStatic + "px",
					"z-index" : "3000"
				});
			});
			
			jQuery("#"+select_width_fix[s]).bind("click", function(e) {
				isSelectOpen = true;
			});

			jQuery("#"+select_width_fix[s]).bind("mouseleave",{ bv: BrowserDetect.version}, function(e) {
				if (!isSelectOpen) {
					jQuery(this).next("a.ibm-error-link").css("display","inline");
					jQuery(this).parents("p").css("padding-bottom","8px");
					jQuery(this).css({
						"position" : "static",
						"width" : "233px"
					});
				}
			});

			jQuery("#"+select_width_fix[s]).bind("blur",{ bv: BrowserDetect.version}, function(e) {
				if (isSelectOpen) {
					jQuery(this).next("a.ibm-error-link").css("display","inline");
					jQuery(this).parents("p").css("padding-bottom","8px");
					jQuery(this).css({
						"position" : "static",
						"width" : "233px"
					});
					isSelectOpen = false;
				}
			});
		}
	}

});

function CountriesSelect () {
	var selObj = document.getElementById("State");
	var CNobj = document.getElementById("Country")
	var selectedCC = CNobj.options[CNobj.selectedIndex].value;
	var xmlDoc=null;
	var ides = false;
	
	selObj.disabled = true;
	
	if (window.ActiveXObject) {// code for IE
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
	}
	else if (document.implementation.createDocument) {// code for Mozilla, Firefox, Opera, etc.
		xmlDoc = document.implementation.createDocument("","",null);
	}
	else { alert('Your browser cannot handle this script');
	}

	if (xmlDoc != null) {
		xmlDoc.async = false;
		xmlFile = "/software/uk/forms/countries/" + selectedCC + "-county.xml"; // !!!!!!!!!!! POTOM ZMENIT !!!!!!!!!!!!!!!
		xmlDoc.load(xmlFile);
		var regions = xmlDoc.getElementsByTagName("region");
		var language = xmlDoc.getElementsByTagName("language");
	}

	jQuery("select#State").empty();
	jQuery("select#State").append("<option value=\"\" selected=\"selected\">" + def_sel_one + "<\/option>");
	
	for (var n = 0; n < regions.length; n++) {
		
		fulltext = regions[n].childNodes[0].nodeValue;
		separ = fulltext.search("|");		
		if (separ != -1) {
			reg_name = fulltext.split("|");
			jQuery("select#State").append("<option title=\""+reg_name[1]+"\" value=\""+reg_name[0]+"\">"+reg_name[0]+"<\/option>");
			ides = true;
		}
		else {
			jQuery("select#State").append("<option value=\""+fulltext+"\">"+fulltext+"<\/option>");
		}
	}
	
	if (ides) {
		// for all options, which are apper title, add event
		jQuery("select#State option[title]").each(function(){
			if (jQuery(this).attr("title") != "undefined") {
				jQuery(this).bind("mouseover",{obj: jQuery(this), titleName: jQuery(this).attr("title")},function(e){
					jQuery(e.data.obj).removeAttr("title");
					
					jQuery("div#opTitle").css("display","block");
					jQuery("div#opTitle").empty();
					if (language != "") {
						lang = language[0].childNodes[0].nodeValue;
						multilang = false;
						spl = lang.search("|");
						if (spl != -1) {
							multilang = true;
							langroup = lang.split("|");
						}
						
						if (lang == "ar" || lang == "fa" || lang == "bn") jQuery("div#opTitle").css("font-size","16px");
						else if (lang == "hy") jQuery("div#opTitle").css("font-size","14px");
						else jQuery("div#opTitle").css("font-size","12px");
						
						if (multilang) {
							tlang = e.data.titleName.split("^");
							for (a = 0; a < tlang.length; a++) {
								if (tlang[a] != "") {
									jQuery("div#opTitle").append("<span xml:lang=\""+langroup[a]+"\" lang=\""+langroup[a]+"\">"+tlang[a]+"<\/span>");
									if (a < tlang.length) jQuery("div#opTitle").append("<br \/>");
								}
							}
						}
						else {
							jQuery("div#opTitle").append("<span xml:lang=\""+lang+"\" lang=\""+lang+"\">"+e.data.titleName+"<\/span>");
						}
					}
					else {
						jQuery("div#opTitle").append(e.data.titleName);
					}
					
					optPos = jQuery(e.data.obj).offset();
						
					headHeight = jQuery("div#ibm-masthead").height() + 10;
					content = jQuery("div#ibm-content-main").offset();
					wTitle = document.getElementById("opTitle").offsetWidth;
					
					topPos = optPos.top - headHeight;
					leftPos = optPos.left - content.left - wTitle - 2;
					
					jQuery("div#opTitle").css("top",topPos+"px");
					jQuery("div#opTitle").css("left",leftPos+"px");
					
				});
				jQuery(this).bind("mouseout",function(){
					jQuery("div#opTitle").css("display","none");
				});
			}
			if (!ibmCommon.info.isIE) jQuery(this).removeAttr("title"); // removed title
			
			// for IE7
			
			if (jQuery(this).attr("title")) {
				titletext = jQuery(this).attr("title");
				if (titletext.search("^") != -1) {
					part = titletext.split("^");
					titletext = "";
					for (m = 0; m < part.length; m ++) {
						if (part[m] != "") {
							if (m != 0 && m < part.length) titletext += " - ";
							titletext += part[m];
						}
					jQuery(this).attr("title",titletext);	
					}
				}
			}
			
		});
	}

	if (selObj.options.length > 1) { selObj.disabled = false; } else { selObj.disabled = true; }
}

function chInput() {
	var ALLresult = false;
	req_error.length = 0; // cleaning array
	eml_error.length = 0; // cleaning array
	if (required.length > 0) { // checking required
		for (var r = 0; r < required.length; r++) {
			reqmail = false;
			if (email.length > 0) {
				for (var m = 0; m < email.length; m++) { // checking if reqired and email
					if (email[m] == required[r]) reqmail = true;
				}
			}
			if (reqmail) { emlCorrect(document.getElementById(required[r]),reqmail); }
			else { chCorrect(document.getElementById(required[r]),reqmail); }
		}
	}
	if (email.length > 0) { // checking no-required email
		for (var m = 0; m < email.length; m++) {
			reqmail = false;
			if (required.length > 0) {
				for (var r = 0; r < required.length; r++) {
					if (email[m] == required[r]) reqmail = true;
				}
			}
			if (!reqmail) { emlCorrect(document.getElementById(email[m]),reqmail); }
		}
	}
	
	// CHECKING ALLresult *****************************************************************
	
	if (req_error.length == 0 && eml_error.length == 0 && eml_compare) ALLresult = true;
	if (!ALLresult) {
		window.scrollTo(0,ibmCommon.getY(document.getElementById("InfoMssError")));
		document.location="#InfoMssError";
	}
	return (ALLresult);
}

function checkRequired(Elm) {
	var result = false;
	if (Elm.value == "") { result = true; }
	if ((Elm.type == "radio") && (Elm.checked == false)) { result = false; }
	return (result);
}

function checkEmail(Elm) {
	var result = false;
	var regex = /^[a-z0-9\._-]+@([a-z0-9_-]+\.)+[a-z]{2,6}$/i;
	if (Elm.value != "") { // do not test if value is empty
		if (!regex.test(Elm.value)) result = true;
	}
	return (result);
}

function checkRadio(Elm) {
	var result = false;
	if (jQuery(":radio[name="+Elm.name+"]:checked").length == 0) result = true;
	return (result);
}

function checkCheckbox(Elm) {
	var result = false;
	if (jQuery("fieldset:has(input#"+Elm.id+") input[type=checkbox]:checked").length == 0) result = true;
	return (result);
}

function chCorrect(Elm) {
	// checking if it's empty
	if (Elm.type == "radio") error = checkRadio(Elm);
	else if (Elm.type == "checkbox") error = checkCheckbox(Elm);
	else error = checkRequired(Elm); 
	
	if (!error) {
		for (var r = 0; r < req_error.length; r++) {
			if (Elm.id == req_error[r]) {
				if (Elm.type == "radio" || Elm.type == "checkbox") {
					jQuery("fieldset:has(input#"+Elm.id+")").prev("p").removeClass("ibm-error");
					jQuery("fieldset:has(input#"+Elm.id+")").prev("p").children("a.ibm-error-link").remove();
				}
				else {
					jQuery("input#"+Elm.id).next().remove();
					jQuery("select#"+Elm.id).next().remove();
					jQuery("textarea#"+Elm.id).next().remove();
				}
				document.getElementById(req_error[r]).parentNode.parentNode.className = "";
				req_error.splice(r,1); // delete element from array
			}
		}
		// find and display ibm-information-link icon
		if (jQuery("input#"+Elm.id+"~a").hasClass("ibm-information-link")) jQuery("input#"+Elm.id+"~a.ibm-information-link").css("display","inline");
	}
	else {
		Ch_class = Elm.parentNode.parentNode.className; // find <p> parent-node of element
		if (Ch_class != "ibm-error") Elm.parentNode.parentNode.className = "ibm-error"; // checking, if contain "ibm-error" class
		
		if (Elm.type == "radio" || Elm.type == "checkbox") {
			kod = jQuery("fieldset:has(input#"+Elm.id+")").prev().html(); // element <span>

			findIcon = kod.search('ibm-error-link');
			if (findIcon == -1) {
				jQuery("fieldset:has(input#"+Elm.id+")").prev("p").addClass("ibm-error")
				
				if (Elm.type == "radio") textError = def_error_radio;
				else textError = def_error_checkbox;
				
				labelTEXT = jQuery("fieldset:has(input#"+Elm.id+")").prev("p").text();
				addition = "'" + labelTEXT.slice(0,labelTEXT.search(/\:\*/)) + "'";
				jQuery("fieldset:has(input#"+Elm.id+")").prev("p").append(error_icon_start + textError.replace(/%/,addition) + error_icon_end);
								
				jQuery("fieldset:has(input#"+Elm.id+")").prev("p").children("a.ibm-error-link").bind("mouseenter",{tooltip: textError.replace(/%/,addition)}, function(e) {
					Xposition = ibmCommon.getX(this);
					Yposition = ibmCommon.getY(this);
					TooltipShow(e.data.tooltip,Xposition,Yposition)
				});
				
				jQuery("fieldset:has(input#"+Elm.id+")").prev("p").children("a.ibm-error-link").bind("mouseleave", function(e) {
					jQuery("#tooltipContent").css("display","none");
				});

			}

		}
		else {
			kod = Elm.parentNode.innerHTML; // element <span>
			findIcon = kod.search('ibm-error-link');
			if (findIcon == -1) {
				labelTEXT = jQuery("label[for="+Elm.id+"]").text();
				if (jQuery("input#"+Elm.id)) {
					addition = "'" + labelTEXT.slice(0,labelTEXT.search(/\:\*/)) + "'";

					jQuery("input#"+Elm.id).after(error_icon_start + def_error_empty.replace(/%/,addition) + error_icon_end);
					
					jQuery("input#"+Elm.id+"~a.ibm-error-link").bind("mouseenter",{tooltip: def_error_empty.replace(/%/,addition)}, function(e) {
						Xposition = ibmCommon.getX(this);
						Yposition = ibmCommon.getY(this);
						TooltipShow(e.data.tooltip,Xposition,Yposition)
					});
				}
				if (jQuery("select#"+Elm.id)) {
					addition = "'" + labelTEXT.slice(0,labelTEXT.search(/\:\*/)) + "'";
					
					jQuery("select#"+Elm.id).after(error_icon_start + def_error_select.replace(/%/,addition) + error_icon_end);

					jQuery("select#"+Elm.id+"~a.ibm-error-link").bind("mouseenter",{tooltip: def_error_select.replace(/%/,addition)}, function(e) {
						Xposition = ibmCommon.getX(this);
						Yposition = ibmCommon.getY(this);
						TooltipShow(e.data.tooltip,Xposition,Yposition)
					});
				}
				if (jQuery("textarea#"+Elm.id)) {
					addition = "'" + labelTEXT.slice(0,labelTEXT.search(/\:\*/)) + "'";
					
					jQuery("textarea#"+Elm.id).after(error_icon_start + def_error_textarea.replace(/%/,addition) + error_icon_end);
					jQuery("textarea#"+Elm.id+"~a.ibm-error-link").attr("style","vertical-align:top");
				
					jQuery("textarea#"+Elm.id+"~a.ibm-error-link").bind("mouseenter",{tooltip: def_error_textarea.replace(/%/,addition)}, function(e) {
						Xposition = ibmCommon.getX(this);
						Yposition = ibmCommon.getY(this);
						TooltipShow(e.data.tooltip,Xposition,Yposition)
					});
				}
				
				jQuery("input#"+Elm.id+"~a.ibm-error-link").bind("mouseleave", function(e) { jQuery("#tooltipContent").css("display","none") });
				jQuery("select#"+Elm.id+"~a.ibm-error-link").bind("mouseleave", function(e) { jQuery("#tooltipContent").css("display","none") });
				jQuery("textarea#"+Elm.id+"~a.ibm-error-link").bind("mouseleave", function(e) { jQuery("#tooltipContent").css("display","none") });
			}
		}
		jQuery("#InfoMssError").removeClass("ibm-hidden");
		req_error.splice(req_error.length + 1,0,Elm.id); // add element to array
		
		if (jQuery("input#"+Elm.id+"~a").hasClass("ibm-information-link")) {
			labelTEXT = jQuery("label[for="+Elm.id+"]").text();
			addition = "'" + labelTEXT.slice(0,labelTEXT.search(/\:\*/)) + "'";
			chIcons(Elm,addition); // hidden ibm-information-link icon
		}

	}
	InfoDisplayNone();
}

function emlCorrect(Elm,reqmail) {

	/*************** case Elm ***************/
	
	if (reqmail) {
		isempty = checkRequired(Elm); // checking if it's empty
		if (isempty) {
			if (eml_error.length > 0) {
				for (var m = 0; m < eml_error.length; m++) {
					if (eml_error[m] == Elm.id){
						eml_error.splice(m,1); // delete element from array
					}
				}
			}
			chCorrect(Elm);
		}
		else {
			emlIdes(Elm,true);
		}
	}
	else {
		emlIdes(Elm,false);
	}
	
	/************** E-mail compare **************/
	
	if (email_compare.length == 2) {
		
		emlCompare_0 = document.getElementById(email_compare[0]);
		emlCompare_1 = document.getElementById(email_compare[1]);
		idesC = true;
		
		if (emlCompare_0.value == "" || checkEmail(emlCompare_0)) idesC = false;
		if (emlCompare_1.value == "" || checkEmail(emlCompare_1)) idesC = false;
				
		if ( idesC ) {
			if ( emlCompare_0.value != emlCompare_1.value ) {
				eml_compare = false;
				
				Elm = emlCompare_1;
				
				jQuery("#InfoMssError").removeClass("ibm-hidden");
				addition = "";
				Ch_class = Elm.parentNode.parentNode.className; // find <p> parent-node of element
				if (Ch_class != "ibm-error") Elm.parentNode.parentNode.className = "ibm-error"; // checking, if contain "ibm-error" class
				kod = Elm.parentNode.innerHTML; // element <span>
				findIcon = kod.search('ibm-error-link');
				if (findIcon == -1) {
					labelTEXT = jQuery("label[for="+Elm.id+"]").text();
					addition = "'" + labelTEXT.slice(0,labelTEXT.search(/\:\*/)) + "'";
					jQuery("input#"+Elm.id).after(error_icon_start + def_email_error_compare.replace(/%/,addition) + error_icon_end);
				}
				jQuery("input#"+Elm.id+"~a.ibm-information-link").css("display","none");
				tooltipText = def_email_error_compare.replace(/%/,addition);
	
				jQuery("input#"+Elm.id+"~a.ibm-error-link").bind("mouseenter",{tooltip: tooltipText}, function(e) {
					Xposition = ibmCommon.getX(this);
					Yposition = ibmCommon.getY(this);
					TooltipShow(e.data.tooltip,Xposition,Yposition)
				});
	
				jQuery("input#"+Elm.id+"~a.ibm-error-link").bind("mouseleave", function(e) { jQuery("#tooltipContent").css("display","none") });
				
			} else {
				eml_compare = true;
			}
		} 
	}
	
	
}

function emlIdes(Elm,reqmail) {
	error = checkEmail(Elm); // checking email format
	if (!error) {
		if (jQuery("input#"+Elm.id).next().hasClass("ibm-error-link")) jQuery("input#"+Elm.id).next().remove();
		Elm.parentNode.parentNode.className = "";
		if (eml_error.length > 0) {
			for (var r = 0; r < eml_error.length; r++) {
				if (Elm.id == eml_error[r]) {
					eml_error.splice(r,1); // delete element from array
				}
			}
		}
		if (reqmail && req_error.length > 0) {
			for (var r = 0; r < req_error.length; r++) {
				if (req_error[r] == Elm.id) req_error.splice(r,1); // delete element from array
			}
		}
		jQuery("input#"+Elm.id+"~a.ibm-information-link").css("display","inline"); // find and display ibm-information-link icon
		InfoDisplayNone();
	}
	else {
		addition = "";
		Ch_class = Elm.parentNode.parentNode.className; // find <p> parent-node of element
		if (Ch_class != "ibm-error") Elm.parentNode.parentNode.className = "ibm-error"; // checking, if contain "ibm-error" class
		kod = Elm.parentNode.innerHTML; // element <span>
		findIcon = kod.search('ibm-error-link');
		if (findIcon == -1) {
			labelTEXT = jQuery("label[for="+Elm.id+"]").text();
			addition = "'" + labelTEXT.slice(0,labelTEXT.search(/\:\*/)) + "'";
			if (Elm.value == "") jQuery("input#"+Elm.id).after(error_icon_start + def_error_empty.replace(/%/,addition) + error_icon_end);
			else jQuery("input#"+Elm.id).after(error_icon_start + def_email_error_alt.replace(/%/,addition) + error_icon_end);
		}
		jQuery("#InfoMssError").removeClass("ibm-hidden");
		zapis = true;
		for (var m = 0; m < eml_error.length; m++) { if (eml_error[m] == Elm.id) zapis = false; }
		if (zapis) eml_error.splice(eml_error.length + 1,0,Elm.id); // add element to array

		if (reqmail && req_error.length > 0) {
			for (var r = 0; r < req_error.length; r++) {
				if (req_error[r] == Elm.id) req_error.splice(r,1); // delete element from array
			}
		}
		chIcons(Elm,addition) // hidden ibm-information-link icon
	}
}
 
function InfoDisplayNone () {
	if (eml_error.length == 0 && req_error.length == 0) {
		jQuery("#InfoMssError").addClass("ibm-hidden");
	}
}

function chIcons (Elm,addition) {
	
	jQuery("input#"+Elm.id+"~a.ibm-information-link").css("display","none");
	
	if (Elm.value != "") tooltipText = def_email_error_tooltip;
	else {
		jQuery("input#"+Elm.id+"~a.ibm-error-link img").attr("alt",def_error_empty.replace(/%/,addition));
		tooltipText = def_error_empty.replace(/%/,addition);
	}
	
	jQuery("input#"+Elm.id+"~a.ibm-error-link").bind("mouseenter",{tooltip: tooltipText}, function(e) {
		Xposition = ibmCommon.getX(this);
		Yposition = ibmCommon.getY(this);
		TooltipShow(e.data.tooltip,Xposition,Yposition)
	});
	
	jQuery("input#"+Elm.id+"~a.ibm-error-link").bind("mouseleave", function(e) { jQuery("#tooltipContent").css("display","none") });
}

function compareEmail() {
	var ec = new Array();
	var idesCompare = true
	for (b = 0; b < email_compare.length; b ++) {
		ec[b] = document.getElementById(email_compare[b]).value;
		if (checkEmail(document.getElementById(email_compare[b]))) idesCompare = false;
	}
	if (idesCompare) {
		c_ides = true;
		for (d = 0; d < ec.length; d ++) {
			f = d ++;
			if ( f != ec.length && ec[d] != ec[f] ) c_ides = false
		}
		eml_compare = c_ides;
	}
}

function FormReset(form) {
	// for each of the form's fields
	for(var i = 0; i < form.length; i++) {
		var Elm = form.elements[i];
		Ch_class = Elm.parentNode.parentNode.className; // find <p> parent-node of element
		if (Ch_class == "ibm-error") Elm.parentNode.parentNode.className = "";
		if (Elm.type == "radio" || Elm.type == "checkbox") {
			jQuery("fieldset:has(input#"+Elm.id+")").prev("p").removeClass("ibm-error");
			jQuery("fieldset:has(input#"+Elm.id+")").prev("p").children("a.ibm-error-link").remove();
		}
		else {
			jQuery("input#"+Elm.id+"~a.ibm-error-link,select#"+Elm.id+"~a.ibm-error-link,textarea#"+Elm.id+"~a.ibm-error-link").remove();
			jQuery("input#"+Elm.id+"~a.ibm-information-link").css("display","inline");
		}
	}
	req_error.length = 0; // cleaning array
	eml_error.length = 0; // cleaning array
	InfoDisplayNone();
	
	jQuery("select#State").empty();
	jQuery("select#State").append("<option value=\"\" selected=\"selected\">" + def_sel_one + "<\/option>");
	document.getElementById("State").disabled = true;
	document.location.hash = "";
}

function TooltipStart () {

	jQuery("#ibm-pcon").append("<div id=\"tooltipContent\"><table cellpadding=\"0\" cellspacing=\"0\"><tr><td colspan=\"3\" class=\"ibm-tt-head\"><\/td><\/tr><tr valign=\"top\"><td class=\"left\"><\/td><td class=\"mainArea\"><div id=\"mainText\">&nbsp;<\/div><\/td><td class=\"right\"><\/td><\/tr><tr><td colspan=\"3\" class=\"ibm-tt-footer\"><\/td><\/tr><\/table><\/div>");
	
	jQuery("#tooltipContent").css({
		"position" : "absolute",
		"display" : "none",
		"top" : "100px",
		"left" : "300px",
		"z-index" : "2000",
		"width" : "290px",
		"margin" : "0 0 0 1em",
		"padding" : "0 10px 0 10px",
		"border" : "none"
		});
	
	jQuery("#tooltipContent table").css({
		"padding" : "0px",
		"margin" : "0px",
		"border" : "0px"
		});
	jQuery("#tooltipContent .ibm-tt-head").css({
		"background" : "transparent url(//www.ibm.com/i/v16/tooltip/tooltip_sprite_tb.png) no-repeat 15px 0px",
		"height" : "17px"
		});
	jQuery("#tooltipContent .left").css({
		"width" : "35px",
		"min-height" : "30px",
		"background" : "transparent url(//www.ibm.com/i/v16/tooltip/tooltip_sprite_sides.png) no-repeat 0px 0px"
		});
	jQuery("#tooltipContent .right").css({
		"width" : "35px",
		"min-height" : "30px",
		"background" : "transparent url(//www.ibm.com/i/v16/tooltip/tooltip_sprite_sides.png) no-repeat -36px -35px"
		});
	jQuery("#tooltipContent .mainArea").css({
		"width" : "200px",
		"background-color" : "#F4F7F9",
		"min-height" : "35px",
		"margin-top" : "-5px"
		});
	jQuery("#tooltipContent #mainText").css({
		"font-size" : "0.6em",
		"font-family" : "Arial,Sans Serif",
		"text-align" : "left"
		});
	jQuery("#tooltipContent .ibm-tt-footer").css({
		"background" : "transparent url(//www.ibm.com/i/v16/tooltip/tooltip_sprite_tb.png) no-repeat 15px -18px",
		"height" : "30px"
		});

	if (ibmCommon.info.isIE) {
		jQuery("#tooltipContent .ibm-tt-head").css({ "background" : "transparent url(//www.ibm.com/i/v16/tooltip/tooltip_sprite_tb.gif) no-repeat 15px 0px" });
		jQuery("#tooltipContent .left").css({
			"background-image" : "url(//www.ibm.com/i/v16/tooltip/tooltip_sprite_sides.gif)",
			"background-position" : "0px 0px",
			"height" : "35px"
			});
		jQuery("#tooltipContent .right").css({
			"background-image" : "url(//www.ibm.com/i/v16/tooltip/tooltip_sprite_sides.gif)",
			"background-position" : "-36px -35px"
			});
		jQuery("#tooltipContent .mainArea").css({ "margin-top" : "-2px" });
		jQuery("#tooltipContent .ibm-tt-footer").css({ "background-image" : "url(//www.ibm.com/i/v16/tooltip/tooltip_sprite_tb.gif)" });
	}
}

function TooltipShow(tooltipText,Xposition,Yposition) {
	jQuery("#tooltipContent").css({
		"display" : "block",
		"top" : Yposition,
		"left" : Xposition
	});
	jQuery("#tooltipContent #mainText").empty();
	jQuery("#tooltipContent #mainText").css("min-height","35px");
	jQuery("#tooltipContent #mainText").append(tooltipText);
	jQuery("#tooltipContent #mainText ul").css({ "padding-left" : "0px","margin-left" : "0px" });
	jQuery("#tooltipContent #mainText ul li").css({
		"list-style-type" : "none",
		"background" : "url(//www.ibm.com/i/v16/bullets/sprites.gif) no-repeat 0px 0px",
		"padding-left" : "10px"
	});
	if (ibmCommon.info.isIE) jQuery("#tooltipContent #mainText ul li").css("background-position","0px 5px")	
}