var x,y,req,version,app,total_images,time_obj;

var offset = 0;
	
var timeout = 35;

var amount = 4;

var orig_class;

var qs = location.search.substring(1);
var nv = qs.split('&');
var url = new Object();
for(i = 0; i < nv.length; i++) {
	eq = nv[i].indexOf('=');
	url[ nv[i].substring(0,eq).toLowerCase() ] = unescape(nv[i].substring(eq + 1));
}
	

function init() {
	
	getVersion();
	
	if (document.captureEvents) {
		document.captureEvents(Event.MOUSEMOVE | Event.MOUSEOVER | Event.MOUSEOUT | Event.CHANGE);
	}
	
	if(document.forms.advanced_search) {
		if(document.forms.advanced_search.genre) {
			document.forms.advanced_search.genre.onchange = checkChange;
		}
		if(document.forms.advanced_search.region) {
			document.forms.advanced_search.region.onchange = checkChange;
		}
		if(document.forms.advanced_search.age) {
			document.forms.advanced_search.age.onchange = checkChange;
		}
	}
	document.body.onmouseover = checkOver;
	document.body.onmouseout = checkOut;
	document.body.onmousemove = getXY;
}

function checkOver(e) {
	if(!e)
		var e = window.event;
	
	e.cancelBubble = true;
	if (e.stopPropagation)
		e.stopPropagation();
	
	var targ;
	
	if(e.target) 
		targ = e.target;
	else if (e.srcElement) 
		targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;
	
	if(targ.className == "review_link")
		showNewsObject("review_loader.php?site=filmi&id=" + extractId(targ.href));
	else if(targ.className == "ranking_link")
		showNewsObject("ranking_loader.php?site=filmi&id=" + extractId(targ.href));
	else if(targ.className == "news_link")
		showNewsObject("news_loader.php?site=filmi&id=" + extractId(targ.href));
	else if(targ.className == "juttu_link")
		showNewsObject("juttu_loader.php?site=filmi&id=" + extractId(targ.href));
	else if(targ.className == "nav_bar_image")
		switchMouseOverImage(targ);
	/*
	
	else if(targ.className == "classnormal" || targ.className == "classnormal2")
		switchClassOver(targ);
	
	*/
	else if(targ.className == "vastaus")
		switchClassOver(targ.parentNode);
	
}

function checkOut(e) {
	if(!e)
		var e = window.event;
	
	e.cancelBubble = true;
	if (e.stopPropagation)
		e.stopPropagation();
	
	var targ;
	
	if(e.target) 
		targ = e.target;
	else if (e.srcElement) 
		targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;
	if(targ.className == "review_link" || targ.className == "news_link" || targ.className == "juttu_link" || targ.className == "ranking_link")
		hideNewsObject();
	else if(targ.className == "nav_bar_image")
		switchMouseOverImage(targ);
	/*
	
	else if(targ.className == "classover")
		switchClassOut(targ);
	
	*/
}

function checkChange(e) {
	if(!e)
		var e = window.event;
	
	// alert('jihad');
	
	e.cancelBubble = true;
	if (e.stopPropagation)
		e.stopPropagation();
	
	var targ;
	
	if(e.target) 
		targ = e.target;
	else if (e.srcElement) 
		targ = e.srcElement;
	if (targ.nodeType == 3) // defeat Safari bug
		targ = targ.parentNode;
	
	if(targ.className == "region_select") {
		// alert('shaet');
		targ.form.submit();
	}
}

function extractId(str) {
	var match;
	reg = new RegExp("(id=){1}([0-9]+)","gi")
	match = reg.exec(str);
	return match[2];
}

function switchClassOver(targ) {
	// Store original class
	orig_class = targ.className;
	targ.className = 'classover';
}

function switchClassOut(targ) {
	targ.className = orig_class;
}

function switchMouseOverImage(targ) {
	var tmp;
	tmp = targ.src;
	targ.src = targ.alt;
	targ.alt = tmp;
}

// <FOR THE IMAGE LOADER>

function getVersion(){
	
	if(navigator.appName.indexOf("Netscape")>-1){
		browser="NN";
	}
	else if((navigator.appName.indexOf("Microsoft")>-1) || (navigator.appName.indexOf("MSIE")>-1)){
		browser="MSIE";
	}
	else if(navigator.appName.indexOf("Opera")>-1){
		browser="O";
	} else {
		browser=navigator.appName;
	}
	version=parseFloat(navigator.appVersion);
	//alert(version);
}

// </FOR THE IMAGE LOADER>

function getXY(e) {
 	x = (window.Event) ? e.pageX : event.clientX + document.documentElement.scrollLeft;
 	y = (window.Event) ? e.pageY : event.clientY + document.documentElement.scrollTop;
	
	document.getElementById('message_box').style.top = y-140 + 'px';
	document.getElementById('message_box').style.left = x+20 + 'px';
}

function showHide(id) {
	el = document.getElementById(id);
	if(el.style.display == 'none')
		el.style.display = 'block';
	else
		el.style.display = 'none';
}

function changebg(id) {
//	alert(document.getElementById(id).className);
   if (document.getElementById(id).className == "nav_button") {
      document.getElementById(id).className="nav_button_2";
   } else {
      document.getElementById(id).className="nav_button";
   }
}

function openDiv(divid,width,height,steps,timeout) {
	ele = document.getElementById(divid);
	// alert(ele.firstChild.nodeName);
	if(parseInt(ele.style.width) < width && parseInt(ele.style.height) < height) {
		w_step = parseFloat(width / steps);
		h_step = parseFloat(height / steps);
		ele.style.width = parseFloat(ele.style.width) + w_step + "px";
		ele.style.height = parseFloat(ele.style.width) + h_step + "px";
		ele.style.display = 'block';
		ele.getElementsByTagName('div')[0].style.display = 'none';
		window.setTimeout("openDiv('" + divid + "', " + width + ", " + height + ", " + steps + ", " + timeout + ")", timeout);
	} else {
		ele.style.width = width + "px";
		ele.style.height = height + "px";
		ele.getElementsByTagName('div')[0].style.display = 'block';
	}
}

function loadXMLDoc(url) {
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = processReqChange;
            req.open("GET", url, true);
            req.send();
        }
    }
}
function processReqChange() {
    // only if req shows "complete"
	var str, content, header, cont, response;
	
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
            // ...processing statements go here...
			
			response  = req.responseXML;
			
			if(app == "image_loader") {
				// alert(total_images);
				img_cont = document.getElementById('img_content');
				str = '<div class="arrow_left"';
				if(total_images > 3)
					 str += ' onClick="javascript: prevPage();"';
				str += '>';
				if(total_images > 3)
					str += '&laquo;';
				else
					str += '<div class="arrow_left_black">&laquo;</div>';
				str += '</div><div class="ajax_images"><div class="ajax_image_container">';

				images = response.getElementsByTagName('image');
				var idI, sr, sty, onL, onC;
				for(i = 0; i < images.length; i++) {
					idI = images[i].getElementsByTagName('id')[0].firstChild.data;
					sr = images[i].getElementsByTagName('src')[0].firstChild.data;
					sty = images[i].getElementsByTagName('class')[0].firstChild.data;
					//alert(sty);
					if(images[i].getElementsByTagName('onLoad').length)
						onL = images[i].getElementsByTagName('onLoad')[0].firstChild.data;
					else
						onL = "";
					onC = images[i].getElementsByTagName('onClick')[0].firstChild.data;
					
					str += '<img id="' + idI + '" src="' + sr + '" class="' + sty + '"';
					str += " onClick=\"" + onC + "\"";
					if(onL != "")
						str += " onLoad=\"" + onL + "\"";
					str += '>';
					
				}
				
				str += '</div></div><div class="arrow_right"';
				if(total_images > 3)
					str += ' onClick="javascript: nextPage();"';
				str += '>';
				if(total_images > 3)
					str += '&raquo;';
				else
					str += '<div class="arrow_right_black">&raquo;</div>';
				str += '</div><div class="clearer"></div>';
				img_cont.innerHTML = str;
				
			} else {
			
				cont = document.getElementById('message_box');
				str = '';
				if(response.getElementsByTagName('image')[0].firstChild)
					image = response.getElementsByTagName('image')[0].firstChild.data;
				else
					image = false;
				/*
				if(response.getElementsByTagName('writer').length > 0)
					writer = response.getElementsByTagName('writer')[0].firstChild.data;
				else
					writer = false;
				*/
				if(response.getElementsByTagName('region').length > 0 && response.getElementsByTagName('region')[0].firstChild)
					region = response.getElementsByTagName('region')[0].firstChild.data;
				else
					region = false;
				
				if(response.getElementsByTagName('genre').length > 0)
					genre = response.getElementsByTagName('genre')[0].firstChild.data;
				else
					genre = false;
					
				if(response.getElementsByTagName('date').length > 0)
					date = response.getElementsByTagName('date')[0].firstChild.data;
				else
					date = false;
				
				header = response.getElementsByTagName('topic')[0].firstChild.data;
				content = response.getElementsByTagName('content')[0].firstChild.data;
				//alert(image);
				//  onLoad=\"javascript: document.getElementById('message_box').style.display = 'block'; alert(browser); if(browser != 'O') fadeIn('message_box',0,5);\"
				if(image != false)
					str += "<img src=\"" + image + "\" class=\"news_loader_image\" onLoad=\"window.clearTimeout(time_obj); fadeIn('message_box',0,5);\">";
				else
					str += "<img src=\"images/1x1.gif\" class=\"hidden_element\" onLoad=\"fadeIn('message_box',0,5);\">";
				str += '<h1>' + header;
				if(date != false)
					str += '<span> - ' + date + '</span>';
				str += '</h1>';
				
				str += '<p>' + content
				/*
				if(writer != false)
					str += "<span>-&nbsp;" + writer + "</span>";
				*/
				str += '</p>';
				
				if(genre != false)
					str += "<h2><b>Lajityyppi:</b>" + genre + "</h2>";
				
				if(region != false)
					str += "<h2><b>Aluekoodi:</b>" + region + "</h2>";
				
				cont.innerHTML = str;
			}
        } else {
            // alert("There was a problem retrieving the XML data:\n" + req.statusText);
        }
    }
}

// <FOR THE IMAGE LOADER>

function setOpacity(objId, opacity) {
	// I don't get this line, so it's removed :p
	opacity = (opacity >= 100)?100:opacity;
	
	// IE/Win
	var obj = document.getElementById(objId);
	
	if(browser == "MSIE")
		obj.style.filter = "alpha(opacity:"+opacity+")";
	
	// Safari<1.2, Konqueror
	if((browser == "Safari" && version >= "1.2") || (browser == "Konqueror"))
		obj.style.KHTMLOpacity = parseFloat(opacity/100);
	
	if(browser == "NN" && version < "5")
		// Older Mozilla and Firefox
		obj.style.MozOpacity = parseFloat(opacity/100);
	
	if((browser == "NN" && version >= "5") || (browser == "Safari" && version > "1.2"))
		// Safari 1.2, newer Firefox and Mozilla, CSS3
		obj.style.opacity = parseFloat(opacity/100);
}

function unsetOpacity(objId) {
	obj.style.filter = "";
	
	// Safari<1.2, Konqueror
	obj.style.KHTMLOpacity = "";
	
	// Older Mozilla and Firefox
	obj.style.MozOpacity = "";
	
	// Safari 1.2, newer Firefox and Mozilla, CSS3
	obj.style.opacity = "";
}

function fadeIn(objId, opacity, interval) {
	if(document.getElementById(objId) && objId != "") {
		if(opacity < 90) {
			setOpacity(objId, opacity);
			opacity += interval;
			time_obj = window.setTimeout("fadeIn('"+objId+"',"+opacity+"," + interval + ")", timeout);
		} else {
			setOpacity(objId, 90);
			// window.clearTimeout(time_obj);
		}
	}
	return false;
}

function fadeOut(objId, opacity, interval) {
	if(document.getElementById(objId) && objId != "") {
		if(document.getElementById(objId).style.opacity >= 0 || document.getElementById(objId).style.filters.alpha.opacity >= 0) {
			setOpacity(objId, opacity);
			opacity -= interval;
			window.setTimeout("fadeOut('"+objId+"',"+opacity+"," + interval + ")", timeout);
		}
	}
	return false;
}
function fadeInMain(objId, opacity, interval) {
	if(document.getElementById(objId) && objId != "") {
		if(document.getElementById(objId).style.opacity <= 1 || document.getElementById(objId).style.filters.alpha.opacity <= 100) {
			setOpacity(objId, opacity);
			opacity += interval;
			window.setTimeout("fadeInMain('"+objId+"',"+opacity+"," + interval + ")", timeout);
		}
	}
	return false;
}
function switchMainImage(image_src,width,height,url) {
	var randomnumber = Math.floor(Math.random()*1000);
	//width = (!width || !height)?'auto':width;
	//height = (!width || !height)?'auto':height;
	//alert(mlt);
	document.getElementById('main_img').innerHTML = '<div class="main_image_div" style="width: ' + width + 'px; height: ' + height + 'px;"><a href="' + url + '" target="_blank"><img style="filter: alpha(opacity: 0); opacity: 0; moz-opacity: 0; border: 0;" id="main_image_' + randomnumber + '" src="' + image_src + '" width="' + width + '" height="' + height +'" onLoad="fadeInMain(this.id, 0, 5);"></a></div>';
}

function nextPage() {
	app = 'image_loader';
	if(parseInt(total_images) > (offset + amount))
		offset++;
	else
		offset = total_images - (amount - 1);
	// document.getElementById('info_container').innerHTML = offset + '\n' + total_images;
	loadXMLDoc('image_loader_2.php?offset=' + offset + '&dir=next&id=' + url["id"]);
}

function prevPage() {
	app = 'image_loader';
	if(offset != 0)
		offset--;
	else
		offset = 0;
	loadXMLDoc('image_loader_2.php?offset=' + offset + '&dir=prev&id=' + url["id"]);
}
function getImageWidth(myImage) {
	var x, obj;
	if (document.layers) {
		var img = getImage(myImage);
		return img.width;
	} else {
		return getElementWidth(myImage);
	}
	return false;
}
function getImageHeight(myImage) {
	var y, obj;
	if (document.layers) {
		var img = getImage(myImage);
		return img.height;
	} else {
		return getElementHeight(myImage);
	}
		return false;
}
// </FOR THE IMAGE LOADER>

function showNewsObject(page) {
	window.clearTimeout(time_obj);
	// alert('cleared');
	app = 'news_loader';
	setOpacity('message_box',0);
	document.getElementById('message_box').style.display = 'block';
	loadXMLDoc(page);
}

function hideNewsObject() {
	window.clearTimeout(time_obj);
	// alert('cleared');
	setOpacity('message_box', 0);
	document.getElementById('message_box').innerHTML = '';
	document.getElementById('message_box').style.display = 'none';
}