

function getBase()
{
	return location.protocol + '//'+location.host;
}

function getBasePath()
{
	return getBase() + '';
}

// Detect if the browser is IE or not.
// If it is not IE, we assume that the browser is NS.
var IE = document.all?true:false
var MouseX;
var MouseY;
// If NS -- that is, !IE -- then set up for mouse capture
if (!IE) document.captureEvents(Event.MOUSEMOVE);

// Set-up to use getMouseXY function onMouseMove
document.onmousemove = getMouseXY;

// Temporary variables to hold mouse x-y pos.s
var tempX = 0;
var tempY = 0;
// Main function to retrieve mouse x-y pos.s

function getMouseXY(e) {
  if (IE) { // grab the x-y pos.s if browser is IE
    tempX = event.clientX + document.body.scrollLeft
    tempY = event.clientY + document.body.scrollTop
  } else {  // grab the x-y pos.s if browser is NS
    tempX = e.pageX;
    tempY = e.pageY;
  }  
  
  // catch possible negative values in NS4
  if (tempX < 0){tempX = 0;}
  if (tempY < 0){tempY = 0;}  
  
  MouseX = tempX;
  MouseY = tempY;
  return true;
}

function byid(id)
{
	var elem;
	if(document.all)
	{
		elem = eval('document.all.'+id);
	}
	else
	{
		elem = document.getElementById(id);
	}
	return elem;
}

function processCombo(comboid)
{
	var lnk = byid('lnk_'+comboid);
	var img = byid('pv_'+comboid);	
	var cbo = byid('cbo_'+comboid);
	var value = cbo.value;
	
	var id = byid('id_'+comboid+'_'+value);
	lnk.href='javascript:previewPage('+id.value+')';
	// img.onmouseover='preview(this, true,'+id.value+')}';
	// img.onmouseout='('+id.value+')';
	
}

function previewPage(scoreid)
{
	if(scoreid != 0)
	{
		window.open('scorepreview.jsp?id=' + scoreid, 'scorepreview', 'menu=no,status=no,scrollbars=no,height=740,width=990,resizable=yes');
	}
}

function previewCompilation(compilationid)
{
	
	window.open('compilationpreview.jsp?compilation=' + compilationid, 'compilationpreview', 'menu=no,status=no,scrollbars=no,height=740,width=990,resizable=yes');
}


function preview(obj, display, scoreid)
{


	var elem = byid('previewDIV');
	var elemImg = byid('previewDIVIMG');
	
	if(display && scoreid != 0)
	{
		elem.style.visibility = '';
		elemImg.src= getBasePath() + '/Preview?type=quickscorepreview&id=' + scoreid;
	}
	else
	{	
		elem.style.visibility = 'hidden';
		elemImg.src=getBasePath() + '/nvd/img/preview/loading.gif';
	}
	elem.style.position='absolute';
	elem.style.left = (MouseX - 310) + 'px';
	elem.style.top = (MouseY + 2) + 'px';	
}




function popupFullPagesInfo(url)
{
	window.open(url, 'fullpagesinfo', 'menu=no,status=no,scrollbars=yes,height=400,width=400');
}


function activateSearch()
{
	var obj = byid('query');
	if(obj)
	{
		obj.focus();
	}
}

function autoSubmit(obj)
{
	if(obj.form)
	{
		obj.form.submit();
	}
}

function flipParentMenuStyle(obj, styleName)
{

	obj.parentNode.className=styleName;	
}


function findPosition( oLink ) 
{
	if( oLink.offsetParent ) 
	{
		for( var posX = 0, posY = 0; oLink.offsetParent; oLink = oLink.offsetParent) 
		{
			posX += oLink.offsetLeft;
			posY += oLink.offsetTop;
		}
		return [ posX, posY ];
	}
	else
	{
		return [ oLink.x, oLink.y ];
	}
}

var clearTimer = new Array();
var loaded=0;
function showMenu(menuid, groupImg, z)
{
	var menu = byid('topGroupMenu' + menuid);
	var pos = findPosition(groupImg);

	clearTimeout(clearTimer[z]);
	
	if(menu)
	{	
		menu.style.top = pos[1] + groupImg.height;
		menu.style.left = pos[0] + 1;
		menu.style.visibility='';		
	}
	
}

function hideMenu(menuid,z)
{
	var to = setTimeout('hideMenuImpl("' + menuid+'")', 10);
	clearTimer[z] = to;
}

function showMenuB(menuid,z)
{
	var menu = byid('topGroupMenu' + menuid);	

	clearTimeout(clearTimer[z]);
	if(menu)
	{	
		menu.style.visibility='';		
	}
}

function hideMenuImpl(menuid)
{
	var menu = byid('topGroupMenu' + menuid);
	if(menu)
	{
		menu.style.visibility='hidden';
	}
}

function checkout()
{
	location = getBasePath() + '/nvd/order/PreCreateOrder';
}



function goBasket()
{
	location = getBasePath() + '/nvd/basket.jsp';
}

function goPreview()
{
	location= getBasePath() + '/nvd/compilation/compilation-preview.jsp';	
}

function swapClass(elemName, styleOpen, styleClose) 
{
 
    var fold = byid(elemName);
    if(fold != null)
    {

    	if(fold.className==styleOpen)
    	{
    		fold.className=styleClose;
    	}
    	else
    	{
    		fold.className=styleOpen;
    	}
    }
    
}

function doAction(actionname)
{
	var obj = byid('imgaction');
	obj.value=actionname;
	obj.form.submit();
	
}

function newCompilation()
{
	location=getBasePath() +'/nvd/compilation/NewCompilation?new=1';
}

function newExpressCompilation()
{
	location=getBasePath() +'/Basket?type=express';
}

function autoCreate()
{
	location=getBasePath() +'/nvd/basket.jsp?autocreate=1';
}

function manualCreate()
{
	location=getBasePath() +'/nvd/basket.jsp?manual=1';
}

function refreshCount()
{
	document.forms[2].submit();
}


function moveListOrder(index, to) {
    var list = document.form.list;
    var total = list.options.length - 1;
    if (index == -1) {
        return;
    }
    if (to == +1 && index == total) {
        return;
    }
    if (to == -1 && index == 0) {
        return;
    }
    var items = new Array;
    var values = new Array;
    for (i = total; i >= 0; i--) {
        items[i] = list.options[i].text;
        values[i] = list.options[i].value;
    }
    for (i = total; i >= 0; i--) {
        if (index == i) 
        {	
            list.options[i + to] = new Option(items[i], values[i], 0, 1);
            list.options[i] = new Option(items[i + to], values[i + to]);
        }
    }
    list.focus();
}


function addToList(from, to)
{
	var sel = 0;
	var values = new Array();
	var labels = new Array();
	for(var i=from.options.length-1;i>-1;i--)
	{
		if(from.options[i].selected)
		{
			values[sel] = from.options[i].value;
			labels[sel] = from.options[i].text;
			sel++;
			
		}
	}
	
	for(var i=from.options.length-1;i>-1;i--)
	{
		if(from.options[i].selected)
		{
			sel--;
			to.options[to.options.length] = new Option(labels[sel], values[sel]);
			from.options[i] = null;
			
		}
	}	
	to.focus();
	
}

function removeVersions(elem)
{
	if(elem.form)
	{
		elem.form[0].value='score';
		elem.form[1].value='remove';
		elem.form.submit();
	}
}

function submitListOrderForm() {
    var list = document.form.list;
    if(list)
    {
	    var theList = "";
	    list.multiple='true';
	    for (i = 0; i <= list.options.length - 1; i++) 
	    {
	       list.options[i].selected=true;
	    }
    }
    document.form.submit();
}


function swapVersionSelection(elem)
{
	if(elem.form)
	{
		for(var j = 0; j<elem.form.length;j++)
		{
			var checkbox = elem.form[j];
			if(checkbox.name=='version')
			{
				checkbox.checked=elem.checked;
			}
		}
			
	}
}

function goPrev(elem)
{
	if(elem.form)
	{
		for(var j = 0; j<elem.form.length;j++)
		{
			var field = elem.form[j];
			
			if(field.name=='prev')
			{
				field.value='prev';
			}
		}
		elem.form.submit();
			
	}
}

function setCategory(elem, dest)
{
	if(elem.form)
	{
		for(var j = 0; j<elem.form.length;j++)
		{
			var field = elem.form[j];
			
			if(field.name==dest)
			{
				if(elem.value != '')
				{
					field.value=elem.value;
				}
				else
				{
					for(var i=0;i<elem.options.length;i++)
					{						
						if(elem.options[i].selected)
						{
							field.value=elem.options[i].text;
						}
							
					}
				}

			}
		}					
	}
}

var disableInnerPopup;
var disableEnvPopup;
var disabledInner;
var noCoverEnvSubtitle=1;
var noCoverEnvSubtitleErrText='';
var noCoverNoInnerErrText='';
function innerImagePopup(url)
{
	if(disableInnerPopup==0)
	{
		window.open(url, 'imagePopup', 'width=450,height=460,resizable=yes,scrollbars=yes');
	}
}
function innerImagePopup2(url)
{
	window.open(url, 'imagePopup', 'width=550,height=520,resizable=yes,scrollbars=yes');
}

function refreshAndClose()
{	
	if(window.opener)
	{
		window.opener.location.reload();
	}
	window.close()
}


function envImagePopup(url)
{
	if(disableEnvPopup==0)
	{
		window.open(url, 'imagePopup', 'width=450,height=460,resizable=yes,scrollbars=yes');
	}
}

function checkCompilationInner(checkbox)
{
	
	if(checkbox.checked)
	{
		disableInnerPopup = 0;
	}
	else
	{
		disableInnerPopup = 1;
	}
	
	var imageLink = byid('imageinner');
	var innerText = byid('innertext');

	imageLink.disabled = disableInnerPopup;
	innerText.disabled = disableInnerPopup;	
}

function checkCompilationNoCover(checkbox)
{
	
	disableEnvPopup = 0;
	disabledInner = 0;
	var subtitle1 = byid('subtitle1');
	var subtitle2 = byid('subtitle2');
	var innerText = byid('innertext');
	var customInner = byid('custominner');
	
	if(checkbox.checked)
	{
		if(noCoverEnvSubtitle != 1)
		{
			if(checkbox.checked)
			{
				disableEnvPopup = 1;
			}
			else
			{
				disableEnvPopup = 0;
			}
		
			if(subtitle1.value !='' || subtitle2.value !='')
			{
				alert(noCoverEnvSubtitleErrText);
			}
			subtitle1.value=''; 
			subtitle2.value='';
		}
		
		if(innerText && customInner)
		{
			disabledInner = 1;
			if(innerText.innerText != '')
			{
				alert(noCoverEnvSubtitleErrText);
			}
			innerText.innerText = '';
			customInner.checked=false;
			checkCompilationInner(customInner);
		}
	}
	if(customInner)
	{
		customInner.disabled = disabledInner;
	}

	
	subtitle1.disabled = disableEnvPopup;
	subtitle2.disabled = disableEnvPopup;

}

function moreOptions()
{
	var div = byid('moreoptions');
	if(div)
	{
		if(div.style.display == '')
		{
			div.style.display = 'none';
		}
		else
		{
			div.style.display = '';
		}
	}
}




var http = createRequestObject();

function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}
var cache = new Array();
var tempIndex = 0;


function ajaxInfoText(action, index, lang)
{

	if(cache[index] == null)
	{
		tempIndex = index;
		var url = getBasePath() + '/nvd/static/welcome_' + action + '_' + lang + '.jsp';
		infoText(true, '', '');
	    http.open('get', url);
	    http.onreadystatechange = ajaxInfoText_Response;
	    http.send(null);
	}
	else
	{
		infoText(true, cache[index][0], cache[index][1]);
	}

}

function ajaxInfoText_Response() 
{
    if(http.readyState == 4)
    {
		var response = http.responseText;
		if(response == '')
		{
			return;
		}
		var update = new Array();

		if(response.indexOf('|' != -1)) 
		{
			update = response.split('|');
			cache[tempIndex] = update;           
			setInfoText(cache[tempIndex][0], cache[tempIndex][1]);
		}
	}
}


function infoText(display,head,body)
{
	var panel = byid('infotext');
	
	if(display)
	{
		panel.style.position='absolute';
		panel.style.left = (MouseX-2) + 'px';
		panel.style.top = (MouseY + 2) + 'px';
		panel.style.visibility = '';
		if(head == '' && body == '')
		{
			setInfoText('<n:text text="info.head.load"/>', '<n:text text="info.body.load"/>');
		}
		else
		{
			setInfoText(head, body);
		}
	}
	else
	{	
		panel.style.visibility = 'hidden';
		setInfoText('<n:text text="info.head.load"/>', '<n:text text="info.body.load"/>');
	}
	
	return true;
		
}

function setInfoText(head,body)
{
	var heading = byid('infotextHEAD');
	var bodytext = byid('infotextBODY');
	
	heading.innerHTML = head;
	bodytext.innerHTML = body;
	return true;
		
}

function ajaxUpdateNC_Step1(versions)
{
	
	var url = getBasePath() + '/AJAXUltra?type=newcompilation&action=reorder&versions=' + escape(versions) + '&uid=' + Math.random();
	http.open('get', url);
	http.onreadystatechange = ajaxUpdateNC_Step1_Response;
	http.send(null);
}

function ajaxUpdateNC_Step1_Response()
{
	if(http.readyState == 4)
    {
		var response = http.responseText;
		if(response == '')
		{
			return;
		}
		var responses = new Array();		

		if(response.indexOf('|' != -1)) 
		{
			responses = response.split('|');
			
			if(responses.length > 3)
			{
				var code = responses[0];
				var msg = responses[1];
				var pageprice = responses[2];
				
				setAjaxUpdateNC_Step1(code,msg, pageprice);
				
				for(var i=0;i<responses.length;i++)
				{
					var pr = new Array();
					pr = responses[i].split('=');
					if(pr.length == 2)
					{
						setAjaxUpdateNC_Step1_Pages(pr[0], pr[1]);
					}

				}
				
			}
			
		}
	}
}

function setAjaxUpdateNC_Step1(code,msg,pageprice)
{
	var nextButton = byid('next');
	var messagesBox = byid('messages');
	var pagesBox = byid('pagesprice');
	
	if(nextButton)
	{	
		if(code =='OK' || code == 'WARN')
		{
			nextButton.disabled = 0;
		}
		else
		{
			nextButton.disabled = true;
		}
	}
	
	if(messagesBox)
	{
		messagesBox.innerHTML = msg;
		messagesBox.className = 'newCompilation' + code;		
	}
	
	if(pagesBox)
	{
		pagesBox.innerHTML = pageprice;
	}
}

function setAjaxUpdateNC_Step1_Pages(id, pages)
{
	var pagesBox = byid('vs_'+id);
	
	if(pagesBox)
	{	
		pagesBox.innerHTML = '&nbsp;' + pages;
	}
}


function loadCompilationPreview(count)
{
	tempIndex = count;
	ajaxCompilationPreviewLoad(0);
	
}

function loadCompilationPreviewNewCompilation()
{
	tempIndex = -1;
	loaded = -1;
	ajaxCompilationPreviewLoad(-1);
	
}

function ajaxCompilationPreviewLoad(index)
{

    http.open('get', getBasePath() + '/Preview?type=check-orderpreview&compilation='+index +'&uid=' +Math.random());
    http.onreadystatechange = ajaxCompilationPreviewLoad_Response;
    http.send(null);
}

function ajaxCompilationPreviewLoad_Response() 
{
    if(http.readyState == 4)
    {
    	var imgid = loaded;
		if(loaded == -1)
		{
			imgid = 0;
		}
		var imgObj = byid('img_'+imgid);
		var linkObj = byid('pv_img_'+imgid);
		var buttonObj = byid('changetitle_'+imgid);
		
		if(imgObj)
		{
			imgObj.src = getBasePath() + '/Preview?type=check-orderpreview&compilation='+loaded + '&uid=' +Math.random();
		}
		
		if(linkObj)
		{
			linkObj.href = 'javascript:previewCompilation(' + loaded + ');';
			linkObj.disabled = 0;
		}
		
		if(buttonObj)
		{
			buttonObj.disabled = 0;
		}
		
		if(loaded<tempIndex)
		{
			loaded++;
			ajaxCompilationPreviewLoad(loaded);
		}
		else
		{
			var button = byid('checkout');
			button.disabled=0;
		}
		
	}
}










