//--|BASICVARS----------

var request = false;



//--|FUNCTIONS----------

function startRequest(url, handler){
	if( window.XMLHttpRequest ){ 
		request = new XMLHttpRequest();
	} else if( window.ActiveXObject ){ 
		try {
			request = new ActiveXObject("Msxml2.XMLHTTP");
		} catch( e ){
			try {
				request = new ActiveXObject("Microsoft.XMLHTTP");
			} catch( e ){}
		}
	}

	if( !request ){
		alert('Error creating request');
		return false;
	}
	
	request.open("get", url, true);
	request.onreadystatechange = handler;
	request.send(null);
}



function createLightbox(){
	if( request.readyState == 4 ){
		if( request.status == 200 ){
			var content = document.getElementById('content');
			var dim = document.createElement('div');
			var lb = document.createElement('div');
			
			dim.id = 'dim';
			lb.id = 'lightbox';
			lb.innerHTML = request.responseText;
			lb.style.visibility = 'hidden';

			content.appendChild(dim);
			content.appendChild(lb);

			lb.style.position = 'absolute';
			lb.style.left = ((content.offsetWidth - document.getElementById('device_details').offsetWidth) / 2) + 'px';
			lb.style.top = ((content.offsetHeight - document.getElementById('device_details').offsetHeight) / 2) + 'px';
			lb.style.zIndex = '5000';
			showLightbox();

			// inject ajax result into DOM (jQuery) - needed for scrollbar
      $(document).ready(function(){
				ocontainer_lb = $('#comment .scroll_container');
        ocontent_lb = $('#comment .scroll_content');
        oindicator_lb = $('#comment .indicator');

        containerSize_lb = jQuery.iUtil.getSize(ocontainer_lb.get(0));
        containerPosition_lb = jQuery.iUtil.getPosition(ocontainer_lb.get(0));
        containerInner_lb = jQuery.iUtil.getClient(ocontainer_lb.get(0));
        containerSize_lb = jQuery.iUtil.getSize(ocontent_lb.get(0));

        $('#comment div.scrollbar_arrow_up').click(function(){
          $('#comment .scrollbar').SliderSetValues([ [20, -9], [200, 200] ]);
          return false;
        });

        $('#comment div.scrollbar_arrow_down').click(function(){
					$('#comment .scrollbar').SliderSetValues([ [20, +9], [200,200] ]);
          return false;
        });

        $('#comment .scrollbar').Slider({
          accept : '.indicator',
          onSlide : function(cordx, cordy, x , y){
            $('#comment .scroll_content').css('top', - spaceToScroll_lb * cordy / 100 + 'px');
          }
        });
				
				updateDraggerLightbox('comment');
      });
		}
	}
}



function createLightboxDisclaimer(){
	if( request.readyState == 4 ){
		if( request.status == 200 ){
			var content = document.getElementById('content');

			var dim = document.createElement('div');
			dim.id = 'dim';

			var lb = document.createElement('div');
			lb.id = 'lightbox';
			lb.innerHTML = request.responseText;
			lb.style.visibility = 'hidden';

			content.appendChild(dim);
			content.appendChild(lb);

			lb.style.position = 'absolute';
			lb.style.left = ((content.offsetWidth - document.getElementById('disclaimer').offsetWidth) / 2) + 'px';
			lb.style.top = '41px';
			
			showLightbox();
		}
	}
}



function showLightbox(){
	document.getElementById('lightbox').style.visibility = 'visible';
}



function deleteLightbox(){
	var content	= document.getElementById('content');
	var lb		= document.getElementById('lightbox');
	var dim		= document.getElementById('dim');

	content.removeChild(lb);
	content.removeChild(dim);
}



function getDeviceDetails(testReportId, cat){	
	startRequest(cat+'.details.php?ajax=true&id=' + testReportId, createLightbox);
}



function getDeviceDetailsTruck(testReportId, cat){
	startRequest(cat+'.details_truck.php?ajax=true&id=' + testReportId, createLightbox);
}



function getDeviceDetailsVan(testReportId, cat){	
	startRequest(cat+'.details_van.php?ajax=true&id=' + testReportId, createLightbox);
}



function getDisclaimer(){
	startRequest('disclaimer.php?ajax=true', createLightboxDisclaimer);
}



function getDevicesForCarrier(carrierId){
	var ff = document.getElementById('finder_form');
	var cbs = ff.getElementsByTagName('input');
	var params = '';

	for( var i = 0; i < cbs.length; i++ ){
		if (cbs[i].name.substr(0, 13) == 'manufacturer-') {
			params += '&' + cbs[i].name + '=' + cbs[i].checked;
		}
	}

	startRequest('get_by_carrier.php?id=' + carrierId + params, replaceDevices);
}



function replaceDevices(){
	if(
		(request.readyState == 4) 
		&& (request.status == 200)
	){
		var container = document.getElementById('devices');

		while( container.childNodes.length ){
			container.removeChild(container.firstChild);
		}

		container.innerHTML = request.responseText;

		cb_init();
		updateDragger();
	}
}