/*****************************   anDeRan   ************************************/

var is_ie  = !!document.uniqueID;
var is_ie6 = is_ie && navigator.appVersion.match(/MSIE (5.5|6)/);

if (is_ie) {
	var XMLHttpRequest = function () {
		return (new ActiveXObject("Msxml2.XMLHTTP")) || (new ActiveXObject("Microsoft.XMLHTTP")) || false;
	};
}

var request = function () {
	try {
		var link = new XMLHttpRequest();
	} catch (e) {
		alert('Your browser doesn\'t support XMLHttpRequest. Please enable XMLHTTPRequest if disabled or update your browser is old.');
	}

	this.get = function (path, analyze, params) {
		link.onreadystatechange = function () {
			if (link.readyState == 4 && link.status == 200) {
				if (analyze) {
					analyze(link, params);
				}
				
			}
		};
		link.open('GET', path, true);

		if (is_ie6) {
			link.setRequestHeader('If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT');
		}
		link.send('');
	};
};

var preloadImgs = function () {
	var i = arguments.length;
	while (i-- > 0) {
		(new Image()).src = '/images/' + arguments[i];
	}
};

var showRegion = function (pointer) {
	var element = pointer.srcElement || pointer.target;
	var current = document.getElementById('area-' + element.className.replace('fg-', ''));
	hideRegions(current);
};

var hideRegions = function (except) {
	var regions = map.getElementsByTagName('P');
	var banners = document.getElementById('regions').getElementsByTagName('A');
	var i = regions.length;
	while (i-- > 0) {
		if (except && regions[i] == except) {
			regions[i].style.display = 'block';
			banners[i].parentNode.className = 'region-on';
		} else {
			regions[i].style.display = 'none';
			regions[i].firstChild.removeAttribute('style');
			banners[i].parentNode.className = '';
			banners[i].parentNode.removeAttribute('class');
		}
	}
};

var moveBalloon = function (pointer) {
	var element = pointer.srcElement || pointer.target;
	var text    = document.getElementById('area-' + element.className.replace('fg-', ''));
	var balloon = text.firstChild;

	var s_top  = window.scrollY || document.body.scrollTop;
	var s_left = window.scrollX || document.body.scrollLeft;

	balloon.style.marginLeft = (pointer.clientX - map.offsetLeft - text.offsetLeft) + s_left + 'px';
	balloon.style.marginTop = (pointer.clientY - map.offsetTop - text.offsetTop - 88) + s_top + 'px';
};

var addEvent = function (element, event, func) {
	if (window.addEventListener){
		element.addEventListener(event, func, false);
	} else {
		element.attachEvent('on' + event, func);
	}
};

var makeDefaults = function () {
	window.inputs = document.getElementsByTagName('INPUT');
	var i = inputs.length;
	while (i-- > 0) {
		if (inputs[i].type == 'text' && inputs[i].value && inputs[i].className && inputs[i].className.indexOf('defined') != -1) {
			inputs[i].onfocus = function () {
				if (this.value == this.defaultValue) {
					this.value = '';
				}
			};
			inputs[i].onblur = function () {
				if (!this.value) {
					this.value = this.defaultValue;
				}
			};
		}

		if (inputs[i].maxLength != -1 && inputs[i].maxLength != 2147483647) {
			inputs[i].onkeyup = function () {
				if (this.value.length == this.maxLength) {
					var j = inputs.length;
					while (j-- > 0) {
						if (inputs[j] == this) {
							if (inputs[j+1]) {
								try {
									inputs[j+1].focus();
								} catch (e) {
								}
							}
							break;
						}
					}
				}
			};
		}
	}
};

var setOpacity = function (obj, num) {
	if (obj.style.filter != undefined) {
		obj.style.filter = 'alpha(opacity=' + (num * 100) + ')';
	} else {
		obj.style.opacity = num;
	}
};

var slideShow = function (current) {
	var flash = document.createElement('DIV');
	flash.id = 'slideshow';
	flash.style.width = document.body.clientWidth + 'px';
	flash.style.height = document.body.scrollHeight + 'px';
	flash.innerHTML = '<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="800" height="593" id="slides" align="middle"><param name="allowScriptAccess" value="sameDomain" /><param name="movie" value="/images/flash/slides.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed src="/images/flash/slides.swf" quality="high" bgcolor="#ffffff" width="800" height="593" name="sample_1" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" /></object></p><p><a href="#" onclick="return quitSlides()" style="font-size: 16px; font-weight: bold; color: #FFF">Close Slideshow</a></p>';

	var opacity = 0.05;
	var step    = 0.09;

	setOpacity(flash, opacity);
	document.body.appendChild(flash);

	var interval = setInterval(function () {
		opacity += step;
		if (opacity > 0.7) {
			clearInterval(interval);
		} else {
			setOpacity(flash, opacity);
		}
	}, 50);

	return false;
};

var quitSlides = function () {
	var flash = document.getElementById('slideshow');
	flash.parentNode.removeChild(flash);
	return false;
};

var reloadCaptcha = function (link) {
	(new request).get('/scripts/secret.php?get=captcha', updateCaptcha, link);
	link.blur();
	return false;
};

var updateCaptcha = function (req, link) {
	var parent = link.parentNode;
	var img = parent.getElementsByTagName('IMG')[0];
	var input = parent.getElementsByTagName('input')[0];
	img.src = '/scripts/' + req.responseText + '.png';
	input.value = req.responseText;
};

window.onload = function () {
	window.map = document.getElementById('map');
	if (map) {
		preloadImgs('common/region_bg_on.png', 'common/balloon.png', 'regions/china.png', 'regions/east.png', 'regions/india.png', 'regions/latin.png');

		var regions = document.getElementById('regions').getElementsByTagName('A');
		var i = regions.length;
		while (i-- > 0) {
			addEvent(regions[i], 'mouseover', showRegion);
			addEvent(regions[i], 'mouseout', hideRegions);
		}

		var parts = document.getElementsByTagName('AREA');
		var i = parts.length;
		while (i-- > 0) {
			addEvent(parts[i], 'mouseover', showRegion);
			addEvent(parts[i], 'mouseout', hideRegions);
			addEvent(parts[i], 'mousemove', moveBalloon);
		}

		var text, texts = map.getElementsByTagName('P');
		var i = texts.length;
		while (i-- > 0) {
			text = texts[i].innerHTML;
			texts[i].innerHTML = '<span class="balloon">' + text + '</span>';
		}

		var img = map.getElementsByTagName('IMG')[0];
		img.setAttribute('style','opacity: 0');

		if (navigator.userAgent.indexOf('Konqueror') != -1) {
			img.src = '/images/common/blank.png';
			img.style.marginLeft = '11px';
		}
	}

	window.nav = document.getElementById('nav');
	if (nav) {
		var lists = nav.getElementsByTagName('A');
		var i = lists.length;
		while (i-- > 0) {
			addEvent(lists[i], 'mouseover', function (pointer) {
				var element = pointer.srcElement || pointer.target;
				var parent  = element.parentNode;
				if (!parent.className.indexOf('nav-selected') != -1) {
					parent.className = parent.className + ' nav-selected';
					element.className = 'nav-selected';
				}
			});
			addEvent(lists[i], 'mouseout', function (pointer) {
				var element = pointer.srcElement || pointer.target;
				var parent  = element.parentNode;
				if (!parent.className.indexOf('nav-selected') != -1) {
					parent.className = parent.className.replace(' nav-selected', '');
					element.removeAttribute('class');
				}
			});
		}

		window.photo = nav.parentNode.getElementsByTagName('DIV')[0];
		if (photo && photo.className.indexOf('photo-on') == -1) {
			photo.cancelBubble = true;
			addEvent(photo, 'mouseover', function (pointer) {
				if (!photo.className.indexOf('photo-on') != -1) {
					photo.className = photo.className + ' photo-on';
				}
			});
			addEvent(photo, 'mouseout', function (pointer) {
				if (photo.className.indexOf('photo-on') != -1) {
					photo.className = photo.className.replace(' photo-on', '');
				}
			});
		}

		var logos, divs = document.getElementsByTagName('DIV');
		var i = divs.length;
		while (i-- > 0) {
			if (divs[i].className && divs[i].className.indexOf('logos') != -1) {
				logos = divs[i];
				break;
			}
		}
		if (logos) {
			var imgs = logos.getElementsByTagName('IMG');
			var i = imgs.length;
			while (i-- > 0) {
				imgs[i].style.marginTop = (40 - parseInt(imgs[i].height) / 2) + 'px';
			}
		}
	}

	makeDefaults();
};

