/*
* Copyright 2009 VayDay
* Author: P.R. Steevensz
*
*/

var browser = new Browser();

function load()
{
	
	maindsk = document.getElementsByTagName('body')[0];
	if(maindsk)
	{	
		// Modal layer
		modal = document.createElement('div');
		modal.id = 'modal';
		modal.style.position = 'absolute';
		
		maindsk.appendChild(modal);
	}
	
	setLightbox();
}

function Browser()
{
	// check browser
   this.isMozilla = (document.all) ? 0:1;
   this.isIE = (document.all) ? 1:0;
   this.isNetscape = (document.layers) ? 1:0;
   
   if (this.isMozilla) 
    {
        document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP | Event.DBLCLICK);
    }
}

// ADD BID SHOWING A LIGHTBOX
function addBid(auction){ var title = 'Add bid'; var width = 745; var height = 272; var url = '/handelaars/bid/'+auction; var parameters = ''; createBox(title,width,height,url,parameters,'GET'); }
function buyNow(auction){ var title = 'Buy now'; var width = 745; var height = 272; var url = '/handelaars/koop/'+auction; var parameters = ''; createBox(title,width,height,url,parameters,'GET'); }
function delBid(auction){ var title = 'Del bid'; var width = 745; var height = 272; var url = '/handelaars/delete/'+auction; var parameters = ''; createBox(title,width,height,url,parameters,'GET'); }
function saveAuto(auction){ var title = 'bewaar'; var width = 500; var height = 200; var url = '/handelaars/bewaar/'+auction; var parameters = ''; createBox(title,width,height,url,parameters,'GET'); }
function unsaveAuto(auction){ var title = 'verwijder'; var width = 500; var height = 200; var url = '/handelaars/verwijder/'+auction; var parameters = ''; createBox(title,width,height,url,parameters,'GET'); }
function showAuto(preview){ var title = 'Preview'; var width = 680; var height = 490; var url = '/preview/'+preview; var parameters = ''; createBox(title,width,height,url,parameters,'GET'); }
function showOwner(auto){ var title = 'owner'; var width = 500; var height = 220; var url = '/handelaars/eigenaar/'+auto; var parameters = ''; createBox(title,width,height,url,parameters,'GET'); }
function showDealer(dealer){ var title = 'owner'; var width = 500; var height = 220; var url = '/dealer/'+dealer; var parameters = ''; createBox(title,width,height,url,parameters,'GET'); }
function showDealerFull(dealer){ var title = 'owner'; var width = 500; var height = 450; var url = '/cms/dealer/'+dealer; var parameters = ''; createBox(title,width,height,url,parameters,'GET'); }
function showNews(id){ var title = 'nieuws'; var width = 500; var height = 400; var url = '/handelaars/nieuws/'+id; var parameters = ''; createBox(title,width,height,url,parameters,'GET'); }
function showHelp(id){ var title = 'help'; var width = 300; var height = 200; var url = '/help/'+id; var parameters = ''; createBox(title,width,height,url,parameters,'GET'); }
function newPassword(){ var title = 'password'; var width = 500; var height = 200; var url = '/handelaar/wachtwoord'; var parameters = ''; createBox(title,width,height,url,parameters,'GET'); }
function acceptDeal(auction){ var title = 'Accepteer deal'; var width = 745; var height = 200; var url = '/handelaars/accepteer/'+auction; var parameters = ''; createBox(title,width,height,url,parameters,'GET'); }
function rejectDeal(auction){ var title = 'Afwijzing deal'; var width = 745; var height = 200; var url = '/handelaars/afwijzing/'+auction; var parameters = ''; createBox(title,width,height,url,parameters,'GET'); }
function deleteAuto(auction){ var title = 'wissen'; var width = 500; var height = 200; var url = '/handelaars/wis/'+auction; var parameters = ''; createBox(title,width,height,url,parameters,'GET'); }
function rejectOwner(auction){ var title = 'Afwijzing deal'; var width = 745; var height = 200; var url = '/afwijzing_eigenaar/'+auction; var parameters = ''; createBox(title,width,height,url,parameters,'GET'); }
function startNegiotiate(auction){ var title = 'Onderhandel'; var width = 745; var height = 200; var url = '/onderhandel/'+auction; var parameters = ''; createBox(title,width,height,url,parameters,'GET'); }
function acceptBid(auction){ var title = 'Accepteer deal'; var width = 745; var height = 200; var url = '/accepteer_eigenaar/'+auction; var parameters = ''; createBox(title,width,height,url,parameters,'GET'); }
function showRules(){ var title = 'Voorwaarden'; var width = 745; var height = 500; var url = '/popup/voorwaarden'; var parameters = ''; createBox(title,width,height,url,parameters,'GET'); }
function showDemo(){ var title = 'Demo'; var width = 850; var height = 600; var url = '/demoview'; var parameters = ''; createBox(title,width,height,url,parameters,'GET'); }
function showDemo2(){ var title = 'Demo'; var width = 920; var height = 700; var url = '/handelaar/demoview'; var parameters = ''; createBox(title,width,height,url,parameters,'GET'); }

// FUNCTIONS
function getDivByID(id)
{
	oDivs = document.getElementsByTagName('div');
	
	for (var i = 0; i < oDivs.length; i++)
    {
		var oDiv = oDivs.item(i);
        if(oDiv.getAttribute("id")==id)
		{
			alert('found');
			return oDiv;
		}
			
    }
	
	return false;
}

function getElementsByClass( searchClass, domNode, tagName) { if (domNode == null) domNode = document; if (tagName == null) tagName = '*'; var el = new Array(); var tags = domNode.getElementsByTagName(tagName); var tcl = " "+searchClass+" "; for(i=0,j=0; i<tags.length; i++) { var test = " " + tags[i].className + " "; if (test.indexOf(tcl) != -1) el[j++] = tags[i]; } return el; }
function bringToFront(id){ if (!document.getElementById || !document.getElementsByTagName) return; var obj = document.getElementById(id); var divs = getAbsoluteDivs(); var max_index = 0; var cur_index; for (i = 0; i < divs.length; i++){ var item = divs[i]; if (item == obj || item.style.zIndex == '') continue; cur_index = parseInt(item.style.zIndex); if (max_index < cur_index){ max_index = cur_index; } } obj.style.zIndex = max_index + 1; }

// Support function for: bringTo Front
function getAbsoluteDivs()
{
    var arr = new Array();
    var all_divs = document.body.getElementsByTagName("div");
    var j = 0;

    for (i = 0; i < all_divs.length; i++)
        if (all_divs.item(i).style.position=='absolute')
        {
            arr[j] = all_divs.item(i);
            j++;
        }

    return arr;
}


// MODAL FUNCTIONS
var _modal = false;
function setModal()
{
	modal = document.getElementById('modal');
	if(modal)
	{
		var h = document.documentElement.scrollHeight;
		var w = document.documentElement.scrollWidth;
		modal.style.height = h +'px';
		modal.style.width = w +'px';
		bringToFront('modal');
		modal.style.display = "block";
		_modal = true;
		
		// Hide shine-thru elements in IE
		if(browser.isIE)
		{
			elements = document.getElementsByTagName('select');
			if(elements){
				for (i=0; i<elements.length; i++) {
					elements[i].style.display = 'none';
				}
			}
		}
	}
}

function resetModal()
{
	document.getElementById('modal').style.display = "none";
	_modal = false;
	
	// Re-show shine-thru elements in IE
	if(browser.isIE)
	{
		elements = document.getElementsByTagName('select');
		if(elements){
			for (i=0; i<elements.length; i++) {
				elements[i].style.display = 'block';
			}
		}
	}
}

// Calculates the object's absolute position, and width and height
function GetAbsPosition(object) {
	var position = new Object;
	position.x = 0;
	position.y = 0;

	if( object ) 
	{
		position.x = object.offsetLeft;
		position.y = object.offsetTop;

		if( object.offsetParent ) 
		{
			var parentpos = GetAbsPosition(object.offsetParent);
			position.x += parentpos.x;
			position.y += parentpos.y;
		}
	}

	position.cx = object.offsetWidth;
	position.cy = object.offsetHeight;

	return position;
}

// L I G H T B O X

function setLightbox()
{
	elements = getElementsByClass('lightbox');
	if(elements)
	{
		for (i=0; i<elements.length; i++) {
			elements[i].onclick = boxActivate;
		}
	}
}

function boxActivate(e)
{
	target = browser.isMozilla ? target = e.target : target = event.srcElement;
	if(target)
	{
		maindsk = document.getElementsByTagName('body')[0];
		if(maindsk)
		{	
			// Modal layer
			setModal();
			
			// Lightbox
			var title = '';
			var width = 200;
			var height = 200;
			var url = 'test.php';
			var parameters = '';
			if(target.parentNode.href)
			{
				var url= target.parentNode.href;
				title = urlParameter(url,'title');
				width = urlParameter(url,'width');
				height = urlParameter(url,'height');
			}
			createBox(title,width,height,url,parameters,'GET')
		}
		
	}
	
	return false;
}

function createBox(title,width,height,url,parameters,method)
{
	maindsk = document.getElementsByTagName('body')[0];
	if(maindsk)
	{	
		// Modal layer
		setModal();

		// Lightbox
		lbox = document.createElement('div');
		lbox.id = '_LBOX';
		lbox.className = 'lbox';
		lbox.style.width = width + (browser.isMozilla ? 'px' : '');
		lbox.style.height = height + (browser.isMozilla ? 'px' : '');
		lbox.style.left = (window.screen.width/2) - (width/2) + (browser.isMozilla ? 'px' : '');
		lbox.style.top = (window.screen.height/2) - 300 + (browser.isMozilla ? 'px' : '');

		lframe = '<div class="lcontent" id="_LCONTENT" style="width: '+width+'px;"><div class="spinner"></div></div><div class="ltitle"><a href="javascript:void(0)" onclick="boxClose();">sluiten</a></div>';
		
		lbox.innerHTML = lframe;
		maindsk.appendChild(lbox);
		bringToFront('_LBOX');
		
		// AJAX
		callPage('_LCONTENT',url,parameters,method);
	}
}

function boxClose(e)
{
	box = document.getElementById('_LBOX');
	if(box)
	{
		// Remove frame
		maindsk = document.getElementsByTagName('body')[0];
		if(maindsk)
		{
			maindsk.removeChild(box);
		}
	}
	
	resetModal();
	
	return false;
}


function callPage(senderId, url, parameters, method)
{
	var xmlhttp =  null;
	if (window.ActiveXObject) {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    }
	
	// Catch returned response
	xmlhttp.onreadystatechange = function() {
		if (xmlhttp.readyState == 4) {
			sender = document.getElementById(senderId);
			if(sender)
			{
				if(xmlhttp.status == 205)
				{
					boxClose();
					location.reload(true);
					return false;
				}
			
				if (xmlhttp.status == 200)
				{
					sender.innerHTML = xmlhttp.responseText;
					
					// Catch events for modal dialog
					obj = document.getElementById('_LBOX')
					if(obj)
					{
						elements = obj.getElementsByTagName('input');
						if(elements)
						{
							for (i=0; i<elements.length; i++) {
								if(elements[i].type=='submit' || elements[i].type=='image')
								{
									//Perform a POST when the submit button is pressed
									elements[i].onclick = function() { callPage('_LCONTENT',url,'','POST'); return false; }
								}
								else{
									elements[i].onkeydown = function(e) { 
										// Handle IE enter-key
										if(window.event){
											// IE only
											var evt = e || window.event;
											if(evt.keyCode==13){ callPage('_LCONTENT',url,'','POST'); return false; }
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
	
	// process the request
	if(method=='POST')
	{
		if(parameters == '')
		{
			elements = document.getElementsByTagName('input');
			if(elements)
			{
				for (i=0; i<elements.length; i++) {
				
					if(elements[i].type=='radio')
					{
						if(elements[i].checked)
						{
							parameters += ((parameters > '') ? '&' : '') + elements[i].name + "=" + elements[i].value;
						}
					}
					else if(elements[i].type=='checkbox')
					{
						parameters += ((parameters > '') ? '&' : '') + elements[i].name + "=" + ((elements[i].checked) ? "1" : "0");
					}
					else
					{
						parameters += ((parameters > '') ? '&' : '') + elements[i].name + "=" + encodeURI(elements[i].value);
					}
				}
			}
		}
		xmlhttp.open('POST', url, true);
		xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlhttp.setRequestHeader("Content-length", parameters.length);
		xmlhttp.setRequestHeader("Connection", "close");
		xmlhttp.send(parameters);
	}
	else
	{
		xmlhttp.open('GET', url, true);
		xmlhttp.send(null);
	}
}

