
var gPageName;
var gStartupPage;
var gBase;
var gXmlReq;
var gPageStartupFunction;
var gLanguage;
var isIE;
var isSafari;

var gHeaderImages;
var gCurrentHeader;

function hidePageHeader() {
	var headerImage = window.document.getElementById( 'HeaderImage' );	
	headerImage.src = gHeaderImages[ gCurrentHeader ].src;	
	if (  gHeaderImages[gCurrentHeader + 1]  != null ) {
		gCurrentHeader++;	
		setTimeout("hidePageHeader()", 100);
	}
}

function showPageHeader() {
	
	var headerImage = window.document.getElementById( 'HeaderImage' );	
	headerImage.src = gHeaderImages[ gCurrentHeader ].src;

	if (  gHeaderImages[gCurrentHeader - 1]  != null ) {
		gCurrentHeader--;
		setTimeout("showPageHeader()", 100);
	}
}


function importXML(url) {
    // branch for native XMLHttpRequest object
    if (window.XMLHttpRequest) {
        gXmlReq = new XMLHttpRequest();
        gXmlReq.onreadystatechange = processReqChange;
        gXmlReq.open('GET', url, true);
        gXmlReq.send(null);
		
		// If IE7, set the isIE flag...
		if (document.expando) {
			// IE7
			isIE = true;
		}
		else if ( BrowserDetect.browser == "Safari" ) {
			isSafari = true;
		}
			
    // branch for IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        isIE = true;
        gXmlReq = new ActiveXObject('Microsoft.XMLHTTP');
        if ( gXmlReq ) {
            gXmlReq.onreadystatechange = processReqChange;
            gXmlReq.open('GET', url, true);
            gXmlReq.send();
        }
    }
}

function processReqChange() {
    // only if req shows "loaded"
    if ( gXmlReq.readyState == 4 ) {
        // only if "OK"
        if ( gXmlReq.status == 200 ) {
            // ...processing statements go here...
			setBody( gXmlReq );
        } else {
            alert('There was a problem retrieving the XML data:\n' +
                gXmlReq.statusText);
        }
    }
}

function clearElement( element ) {

	while ( element.firstChild ) 
		element.removeChild( element.firstChild );	
}

function setBody( xmlRequest ) {
			
	// Load the page to main content	
	var element = window.document.getElementById('main_content');
	
	//alert(gXmlReq.getAllResponseHeaders());
	
	var xmlDoc = xmlRequest.responseXML;
	clearElement(element);	

	var body = xmlDoc.getElementsByTagName('body')[0];	
	
	if (isIE || isSafari ) {
		element.insertAdjacentHTML('afterBegin', body.firstChild.xml );
	}
	else {
		element.insertAdjacentHTML('afterBegin', body.innerHTML );
	}
	
	element.scrollTop = 0;
	
	// Launch startup function, if any...
	if ( gPageStartupFunction != null )
		gPageStartupFunction();
}

function expandMenu(menuElementName) {
	var expandableMenu = window.document.getElementById(menuElementName + '_submenu');		
	
	if ( expandableMenu != null ) {
		expandableMenu.className = 'MenuExpanded';
	}
}

function loadPage(pageName, startupFunction) {	
	
	if ( pageName + '-' + gLanguage + '.xhtml' == gPageName )
		return; // Do nothing, we remain on the same page...
		
	var element = window.document.getElementById(pageName);		
	if ( element && element.className != 'MenuDisabled' ) {

		// Restore previous menu from disabled state
		var allPageTags=window.document.getElementsByTagName('*');
		var i;
		for (i=0; i<allPageTags.length; i++) { 
			//Pick out the tags with our class name 
			if( allPageTags[i].className == 'MenuDisabled' ) { 
				allPageTags[i].className = 'Menu'; 				
			} else if (allPageTags[i].className == 'MenuExpanded' ){
				allPageTags[i].className = 'MenuCollapsed';
			}
		}

		// Disable the menu item for current menu choice
		element.className = 'MenuDisabled';
	}

	expandMenu(pageName);
	
	// Set page header image
	if ( pageName == 'gallery' || pageName == 'sell' )
		hidePageHeader();	
	else
		showPageHeader();
	// 

	gPageName = pageName + '-' + gLanguage + '.xhtml';
	gPageStartupFunction = startupFunction;
	importXML(gBase + 'load.php?page=' + gPageName);
}

function showAnchor(anchorName) {
	// Load the page to main content	
	location.replace( anchorName );
}


function main(language) {
// Main page loading

	if( typeof HTMLElement != 'undefined' && 
		!HTMLElement.prototype.insertAdjacentElement ) {
		
		HTMLElement.prototype.insertAdjacentElement = function(where,parsedNode) {
			switch (where){
			case 'beforeBegin':
				this.parentNode.insertBefore(parsedNode,this)
				break;
			case 'afterBegin':
				this.insertBefore(parsedNode,this.firstChild);
				break;
			case 'beforeEnd':
				this.appendChild(parsedNode);
				break;
			case 'afterEnd':
				if (this.nextSibling) 
					this.parentNode.insertBefore(parsedNode,this.nextSibling);
				else this.parentNode.appendChild(parsedNode);
				break;
			}
		}

		HTMLElement.prototype.insertAdjacentHTML = function(where,htmlStr) {
			var r = this.ownerDocument.createRange();
			r.setStartBefore(this);
			var parsedHTML = r.createContextualFragment(htmlStr);
			this.insertAdjacentElement(where,parsedHTML)
		}


		HTMLElement.prototype.insertAdjacentText = function(where,txtStr) {
			var parsedText = document.createTextNode(txtStr)
			this.insertAdjacentElement(where,parsedText)
		}
	}

	// Remove page name and store the base...
	gStartupPage = document.location.href;
	gBase = gStartupPage.substring( 0, gStartupPage.lastIndexOf('/') + 1);
			
	// Choose language	
	gLanguage = language;
	
	gHeaderImages = new Array();
	gHeaderImages[0] = null;
	gHeaderImages[1] = new Image(); gHeaderImages[1].src = gBase + "header0.jpg";
	gHeaderImages[2] = new Image(); gHeaderImages[2].src = gBase + "header1.jpg";
	gHeaderImages[3] = new Image(); gHeaderImages[3].src = gBase + "header2.jpg";
	gHeaderImages[4] = new Image(); gHeaderImages[4].src = gBase + "header3.jpg";
	gHeaderImages[5] = new Image(); gHeaderImages[5].src = gBase + "header4.jpg";
	gHeaderImages[6] = null;

	gCurrentHeader = 1;
	
	//
	loadPage('about');
}


