﻿var AjaxObj = null;
var pageLoaded = false;

function $(id) { return document.getElementById(id); }

function OnLoad() {
	try {
		if (typeof PageLoad == 'function') PageLoad();
		FixMailLinks("hivisions.com");

		// Change to Ajax:
		if (window.XMLHttpRequest) AjaxObj = new XMLHttpRequest();
		else if (window.ActiveXObject) AjaxObj = new ActiveXObject("Microsoft.XMLHTTP");
		// if (AjaxObj) FixAjaxLinks();
	}
	catch (e) { }
	pageLoaded = true;
}

function FixMailLinks(dom) {
	var L = document.links;
	for (var i = 0; i < L.length; ++i) {
		if (L[i].className == 'email') {
			var a = L[i].innerHTML + '@' + dom;
			L[i].href = "mailto:" + a;
			L[i].innerHTML = a;
		}
	}
}

function FixAjaxLinks() {
	var base = document.URL.split('?')[0];
	var L = document.links
	for (var i = 0; i < L.length; ++i) {
		var a = (L[i].href + '?').split('?');
		if (a[0] == base && !L[i].onclick) {
			L[i].href = '#' + a[1];
			eval("L[i].onclick = function() { GetPage('" + a[1] + "', 0); return true; }");
		}
	}
}

var PageBuffer = [], PageHistory = [];
function GetPage(url, first) {
	var page = PageBuffer[url];
	if (!page) {
		AjaxObj.onreadystatechange = stateChanged;
		AjaxObj.open("GET", "getpage.php?" + url, true);
		AjaxObj.send(null);
		return;
	}
	var Div = $("content");
	Div.innerHTML = page.headers+page.content;
	//if (first) document.getElementsByTagName("head")[0].appendChild((new DOMParser()).parseFromString(page.headers, "text/xml"));
	document.title = "HI Vision – " + page.title;
	SetMenu(page.menuItem);
	PageHistory.push(url);
	FixAjaxLinks();
}

function stateChanged() {
	if (AjaxObj.readyState == 4) {
		eval(AjaxObj.responseText);
	}
}

function SetMenu(item) {
	var rv = '<table class="menu"><tr>';
	var sep = 'Right'; // for ltr: 'Left';
	var currPage = false;
	var c = 0;
	for (key in MenuItems) ++c;
	var cellWidth = Math.round(1001 / c) / 10;
	for (key in MenuItems) {
		rv += "\n<td class=\"menu" + sep + "\"></td><th width=\"" + cellWidth + "%\"";
		if (key == item) rv += " class=\"menuSelected\">" + MenuItems[key] + "</th>";
		else rv += "><a href=\"#page=" + key + "\" onclick=\"GetPage('page=" + key + "', 0); return true;\">" + MenuItems[key] + "</a></th>";
		sep = 'Sep';
	}
	rv += "\n<td class=\"menuLeft\"></td>\n</tr></table>";
	var El = $("menu");
	El.innerHTML = rv;
}

var openDiv = 0;
var toggleTimer = null;
function Toggle(id) {
	var rv = false;
	if (toggleTimer) {
		clearTimeout(toggleTimer);
		toggleTimer = null;
		document.body.style.cursor = '';
	}
	if (!pageLoaded) {
		document.body.style.cursor = 'wait';
		toggleTimer = setTimeout("Toggle('" + id + "');", 200);
	} else if (id == openDiv) {
		if (StartCloseDiv(id)) openDiv = 0;
	} else {
		StartCloseDiv(openDiv);
		if ((rv = StartOpenDiv(id)) != false) openDiv = id;
	}
	return rv;
}

function StartOpenDiv(id) {
	var Div = $('j' + id);
	if (!Div) return false;
	Div.style.display = '';
	Div.maxh = Div.offsetHeight;
	Div.style.height = '0px';
	if (Div.timer) clearInterval(Div.timer);
	var link = $('b' + id);
	if (link) link.innerHTML = '<img align="absmiddle" alt="" height="13" src="pics/arrow-down.png" width="15"/><u>סגור</u>';
	Div.timer = setInterval("OpenDiv('" + id + "')", 10);
	return Div;
}

function StartCloseDiv(id) {
	var Div = $('j' + id);
	if (!Div) return false;
	Div.maxh = Div.offsetHeight;
	if (Div.timer) clearInterval(Div.timer);
	Div.timer = setInterval("CloseDiv('" + id + "')", 10);
	var link = $('b' + id);
	if (link) link.innerHTML = '<img align="absmiddle" alt="" height="15" src="pics/arrow-left.png" width="13"/><u>פרטים</u>';
	return Div;
}

var speed = 20;

function OpenDiv(id) {
	var Div = $('j' + id), dist;
	var Div, max = Div.maxh, h = Div.offsetHeight;
	dist = Math.round((max - h) / speed);
	if (dist < 1) dist = 1;
	Div.style.height = (h + dist) + 'px';
	Div.style.opacity = h / max;
	Div.style.filter = 'alpha(opacity=' + (h * 100 / max) + ')';
	if (h <= (max - 4)) return;
	clearInterval(Div.timer);
	Div.timer = null;
	Div.style.height = '';
	Div.style.filter = '';
}

function CloseDiv(id) {
	var Div = $('j' + id), dist;
	var max = Div.maxh, h = Div.offsetHeight;
	dist = Math.round(h / speed);
	if (dist < 1) dist = 1;
	Div.style.height = (h - dist) + 'px';
	Div.style.opacity = h / max;
	Div.style.filter = 'alpha(opacity=' + (h * 100 / max) + ')';
	if (h >= 4) return;
	clearInterval(Div.timer);
	Div.timer = null;
	Div.style.display = 'none';
	Div.style.height = '';
}
