//Conversion Tools JS functions

var _versionID;
function editOSType( versionID , xOffset, yOffset)
{ 
	d = document.getElementById("ScratchPad");
	_versionID = versionID;
	d.style.width='200px';
	setInner('Loading....');

	if(xmlhttp)
	{
		//xmlhttpdo("http://beta.versiontracker.com/php/AJAX/convert.php?function=osSelectorForm&versionID=" + versionID);
		xmlhttpdo("/php/AJAX/convert.php?function=osSelectorForm&versionID=" + versionID);
	}
	
	showElementPositioned('ScratchPad',  xOffset, yOffset);
}

function checkOSs(flags)
{
	formFields = document.getElementById("osTypeForm");
	var formElements = formFields.elements; 

	bflags = parseInt(flags/4294967296);
	
	for (var i=0;i<formFields.length;i++) 
	{
		if( formElements[i].type == 'checkbox' ) 
		{
			if(formElements[i].value >= 4294967296 && flags >= 4294967296)
			{
			
				bVal = parseInt(formElements[i].value/4294967296);
				if(bVal > 0 && bflags > 0)
				{
					if(bVal & bflags)
					{
						formElements[i].checked = true;
					} else {
						formElements[i].checked = false;
					}
				}
			
			} else {
				if(formElements[i].value & flags)
				{
					formElements[i].checked = true;
				} else {
					formElements[i].checked = false;
				}
			
			}
		}
	}

}

function clearCheck()
{
	formFields = document.getElementById("osTypeForm");
	var formElements = formFields.elements; 
	for (var i=0;i<formFields.length;i++) 
	{
		if( formElements[i].type == 'checkbox' )
		{
			formElements[i].checked = false;
		}
	}

}

function getOSTypeString(flags, platformID)
{
	var OSTypeString = new Array;
	var thisOSString = OSString[platformID];

	var bflags = parseInt(flags/4294967296);
	
	for (osType in thisOSString) 
	{
		if(osType >= 4294967296 && flags >= 4294967296)
		{
			bVal = parseInt(osType/4294967296);
			if(bVal & bflags)
			{
				OSTypeString.push(thisOSString[osType]);
			}
		} else {
			if(osType & flags)
			{
				OSTypeString.push(thisOSString[osType]);
			}
		}
		
	}
	return OSTypeString.join('/');
	
}

function getCategoryString(categoryID)
{
	return subCats[categoryID];
}

function getAltCategoryString(categoryIDList)
{
	d = document.getElementById("altCat-1");
	d.innerHTML = '';
	var altArray = categoryIDList.split(',');
	_ProductID = -1;
	if(categoryIDList != '')
	{
		for ( index in altArray )
		{
			subcatID = parseInt(altArray[index]);
			d.innerHTML = d.innerHTML + subCats[subcatID] + ' (<a href = "javascript:delAltCat(' + subcatID + ')">DEL</a>)<br />';
		}
	}
	d = document.getElementById("editAltCatHidden");
	d.value = categoryIDList;
	
}

function getAltCategoryString2(categoryIDList)
{
	var altArray = categoryIDList.split(',');
	var returnSting = '';
	for ( index in altArray )
	{
		subcatID = parseInt(altArray[index]);
		returnSting = returnSting + subCats[subcatID] + ' (<a href = "javascript:delAltCat(' + subcatID + ')">DEL</a>)<br />';
	}
	d = document.getElementById("editAltCatHidden");
	d.value = categoryIDList;
	return returnSting;
}

function saveOSTypeSettigns( formFields , platformID) 
{     
	var xmlFields = '';
	var formElements = formFields.elements; 
	var bitFlags = 0;
	
	var thisOSString = OSString[platformID];
	
	var OSTypeString = new Array;
	for (var i=0;i<formFields.length;i++) 
	{
		if( formElements[i].type == 'checkbox')
		{
			if( formElements[i].checked )
			{
				bitFlags += parseInt( formElements[i].value );
				OSTypeString.push(thisOSString[formElements[i].value]);
			}
		}
	}
	
	d = document.getElementById("ScratchPad");
	d.style.width='250px';
	setInner('<b>Saving Data....</b>');
	
	
	if( _versionID  == -1)
	{
		if(OSTypeString.length > 0)
		{
			d = document.getElementById('OSString' + _versionID);     
			setInner('<span style = "color:green">' + OSTypeString.join(', ') + '</span>');
		}
		
		d = document.getElementById("editOsHidden");
		d.value = bitFlags;
		
		hideElement('ScratchPad');

	} else {
	
		if(xmlhttp)
		{
			var url = "http://beta.versiontracker.com/php/AJAX/convert.php?function=saveOSSelection&bitflags=" + bitFlags;
			xmlhttp.open("GET", url,false);
			xmlhttp.onreadystatechange=function() 
			{
				if (xmlhttp.readyState==4) 
				{
					hideElement('ScratchPad');
					if(OSTypeString.length > 0)
					{
						d = document.getElementById('OSString' + _versionID);     
						setInner('<span style = "color:green">' + OSTypeString.join(', ') + '</span>');
					}
	
				}
			}
			xmlhttp.send(null);	
		}
	
	}
	
	if(xmlhttp)
	{
		var url = "http://beta.versiontracker.com/php/AJAX/convert.php?function=saveOSSelection&bitflags=" + bitFlags;
        xmlhttp.open("GET", url,true);
		xmlhttp.onreadystatechange=function() 
		{
			if (xmlhttp.readyState==4) 
			{
				hideElement('ScratchPad');
				if(OSTypeString.length > 0)
				{
					d = document.getElementById('OSString' + _versionID);     
					setInner('<span style = "color:green">' + OSTypeString.join(', ') + '</span>');
				}

			}
		}
		xmlhttp.send(null);	
	}	
		
}

function releaseCatProducts( ) 
{     
	d = document.getElementById("ScratchPad");
	d.style.width='250px';
	setInner('<div style = "color:red;font-weight:bold;margin:5px;padding:5px;border:1px solid black;">Releasing Products....</div>');
	showElementFixed('ScratchPad',100,200);
	if(xmlhttp)
	{
	
		var url = "http://beta.versiontracker.com/php/AJAX/convert.php?function=releaseCatSelection";
        xmlhttp.open("GET", url,true);
		xmlhttp.onreadystatechange=function() 
		{
			if (xmlhttp.readyState==4) 
			{
				window.location = "http://beta.versiontracker.com/tools/CatConvert.php";
			}
		}
		xmlhttp.send(null);
	}
		
}


function releaseProducts( ) 
{     
	d = document.getElementById("ScratchPad");
	d.style.width='250px';
	setInner('<div style = "color:red;font-weight:bold;margin:5px;padding:5px;border:1px solid black;">Releasing Products....</div>');
	showElementFixed('ScratchPad',100,200);
	if(xmlhttp)
	{
	
		var url = "http://beta.versiontracker.com/php/AJAX/convert.php?function=releaseOSSelection";
        xmlhttp.open("GET", url,true);
		xmlhttp.onreadystatechange=function() 
		{
			if (xmlhttp.readyState==4) 
			{
				window.location = "http://beta.versiontracker.com/tools/OSConvert.php";
			}
		}
		xmlhttp.send(null);
	}
		
}
function doNothing(){
	return true;
}

function editRequirements(thisVID ) 
{         
    hiddenDiv = document.getElementById('edReqformDiv');
    d = document.getElementById("requirements" + thisVID);
    document.edReqform.ID.value=thisVID;
    document.edReqform.Requirements.value = d.innerHTML;    
    showElementPositioned('edReqformDiv',-400,0);
}

function clearRequirements(thisVID ) 
{         
    d = document.getElementById("requirements" + thisVID);
    d.innerHTML = '';    
    xmlhttpdo("http://beta.versiontracker.com/php/AJAX/convert.php?function=saveRequirements&sid=" + thisVID + "&content=");
}


function HideEdReq() 
{ 
    hideElement('edReqformDiv');
}

function saveRequirements() 
{
    ID = document.edReqform.ID.value;
    content = document.edReqform.Requirements.value;
    
    d = document.getElementById("requirements" + ID);
    
    //setInner( '<i><b>Editor\'s Note</b>: ' + content + '</i><br />');
    
    xmlhttpdo("http://beta.versiontracker.com/php/AJAX/convert.php?function=saveRequirements&sid=" + ID + "&content=" + content);
    hideElement('edReqformDiv');
}

var _ProductID = 0;
var lastx = 0;
var lasty = 0;
var masterCatID = 0;
var masterAltCat = new Array();
var forAlt = false;

function editCat( productID, platformID, xOffset, yOffset, boxWidth)
{ 
	forAlt = false;
	showCatList(productID, platformID, xOffset, yOffset, boxWidth);
}

function addAltCat( productID, platformID, xOffset, yOffset, boxWidth)
{ 
	forAlt = true;
	showCatList(productID, platformID, xOffset, yOffset, boxWidth);
}

function showCatList(productID, platformID, xOffset, yOffset, boxWidth)
{
	_ProductID = productID;
	lastx = mousex;
	if(forAlt)
	{
		lastx -= 100;
	}
	lasty = mousey+yOffset;
	var useWidth = boxWidth+'px';
	d = document.getElementById("ScratchPad");
	d.style.width=useWidth;
	var useList = 'CatSelectList'+platformID
	setInner(eval(useList) + '<a href = "javascript:hideElement(\'ScratchPad\');hideElement(\'ScratchPad2\');">close</a>');
	showElementPositioned('ScratchPad',  xOffset, yOffset);
}


function showSubCats(position, catID, platformID, xOffset, yOffset, boxWidth)
{ 
	var useWidth = boxWidth+'px';
	str = document.getElementById("ScratchPad").style.left;
	str.replace(/px/, "");
	newx = parseFloat(str) + 200;
	d = document.getElementById("ScratchPad2");
	d.style.width=useWidth;
	var useList = 'SubCatSelectList'+platformID+'_'+catID
	setInner(eval(useList) + '<a href = "javascript:hideElement(\'ScratchPad2\');">close</a>');
	showElementFixed('ScratchPad2', newx, lasty+position*15);
	ieHover('ScratchPad2');
}

function setSubcat(subcatID)
{
	 hideElement('ScratchPad2');
	 hideElement('ScratchPad');
	var notAlreadySet = true;
	if(forAlt)
	{
		if(_ProductID > 0)
		{
			d = document.getElementById("altCat"+_ProductID);
			
			var currentAltCats = d.innerHTML;
			
			if( currentAltCats.indexOf(subCats[subcatID]) == -1 )
			{
				d = document.getElementById("mesgPad");
				setInner("Saving Alternate Category settings for Product " + _ProductID);
				showElementPositioned('mesgPad',  -100, 0);
			
				if(xmlhttp)
				{
					var url = "http://beta.versiontracker.com/php/AJAX/convert.php?function=addAltCategory&productID=" + _ProductID + '&subCatID=' + subcatID;
					xmlhttp.open("GET", url,true);
					xmlhttp.onreadystatechange=function() 
					{
						if (xmlhttp.readyState==4) 
						{
							hideElement('mesgPad');
						}
					}
					xmlhttp.send(null);
				}
			} else {
				notAlreadySet = false;
			}
		}
		else
		{
		
		
			masterCatID = subcatID;
		
			for (var i = 0; i < masterAltCat.length; i++)
			{
				if(masterAltCat[i] == subcatID )
				{
					notAlreadySet = false;
				}
			}
			if(notAlreadySet)
			{
				masterAltCat.push(subcatID);
			}
			
			if(_ProductID == -1 )
			{
				d = document.getElementById("editAltCatHidden");
				d.value = masterAltCat.join(',');
			}
		}
		if(notAlreadySet)
		{
			d = document.getElementById("altCat"+_ProductID);
			
			if(_ProductID == -1 )
			{
				setInner(d.innerHTML + subCats[subcatID] + ' (<a href = "javascript:delAltCat(' + subcatID + ',' + _ProductID + ')">DEL</a>)<br />');
			} else {
				setInner(d.innerHTML + subCats[subcatID] + ' (<a href = "javascript:deleteAltCat(' + subcatID + ',' + _ProductID + ')">DEL</a>)<br />');
			}
		}
	} else {
		if(_ProductID > 0)
		{
			d = document.getElementById("mesgPad");
			setInner("Saving Primary Category settings for Product " + _ProductID);
			showElementPositioned('mesgPad',  -100, 0);
			
			if(xmlhttp)
			{
				var url = "http://beta.versiontracker.com/php/AJAX/convert.php?function=setCategory&productID=" + _ProductID + '&subCatID=' + subcatID;
				xmlhttp.open("GET", url,true);
				xmlhttp.onreadystatechange=function() 
				{
					if (xmlhttp.readyState==4) 
					{
						hideElement('mesgPad');
					}
				}
				xmlhttp.send(null);
			}
		}
		else
		{
			if(_ProductID == -1 )
			{
				d = document.getElementById("editCatHidden");
				d.value = subcatID;
			}
			if(_ProductID == -2 )
			{
				d = document.getElementById("editAltCatHidden");
				d.value = subcatID;
			}
			masterCatID = subcatID;
		}
		d = document.getElementById("cat"+_ProductID);
		setInner(subCats[subcatID]);
	}
}

function deleteAltCat(subcatID, productID)
{
	if( productID == 0)
	{
		var newMasterAltCat = new Array();
		var newInner = '';
		d = document.getElementById("altCat"+productID);
		setInner('');
		for (var i = 0; i < masterAltCat.length; i++)
		{
			if(masterAltCat[i] != subcatID )
			{
				newMasterAltCat.push(masterAltCat[i]);
				newInner += subCats[masterAltCat[i]] + ' (<a href = "javascript:deleteAltCat(' + masterAltCat[i] + ',' + productID + ')">DEL</a>)<br />';
			}
		}
		setInner(newInner);
		masterAltCat = newMasterAltCat;
		
	} else {
		
		var newAltCatArray = new Array();
		var currAltCatArray = new Array();
		var newInner = '';
		d = document.getElementById("altCat"+productID);
			
		var currentAltCats = d.innerHTML;

		currAltCatArray = currentAltCats.split('<br />');
		
		setInner('');
		for (var i = 0; i < currAltCatArray.length; i++)
		{
			if(currAltCatArray[i].indexOf('(' + subcatID + ',') == -1)
			{
				newAltCatArray.push(currAltCatArray[i]);
				
				d = document.getElementById("mesgPad");
				setInner("Deleting alternate category setting");
				showElementPositioned('mesgPad',  -100, 0);
				if(xmlhttp)
				{
					var url = "http://beta.versiontracker.com/php/AJAX/convert.php?function=deleteAlternateCategory&productID=" + productID + '&subCatID=' + subcatID;
					xmlhttp.open("GET", url,true);
					xmlhttp.onreadystatechange=function() 
					{
						if (xmlhttp.readyState==4) 
						{
							hideElement('mesgPad');
						}
					}
					xmlhttp.send(null);
				}

				
			}
		}
		setInner(newAltCatArray.join('<BR />'));
		
	}
}
function delAltCat(altCatID)
{
	d = document.getElementById("editAltCatHidden");
	var categoryIDList = d.value
	var newAltCats = new Array();
	var altArray = categoryIDList.split(',');
	for (var i = 0; i < altArray.length; i++)
	{
		if(altArray[i] != altCatID )
		{
			newAltCats.push(altArray[i]);
		}
	}
	masterAltCat = newAltCats;
	categoryIDList = newAltCats.join(',');
	getAltCategoryString(categoryIDList);
}

function applyCat()
{
	d = document.getElementById("mesgPad");
	setInner("Saving Primary Category settings");
	showElementPositioned('mesgPad',  -100, 0);
	var actList = '0';
	
	var field = document.DLProducts.list;

	if(field.length)
	{
		for (var i = 0; i < field.length; i++)
		{
			if(field[i].checked)
			{
				actList = actList + ',' + field[i].value;
				d = document.getElementById("cat"+field[i].value);
				setInner(subCats[masterCatID]);
			}
		}
	} else {
		if(field.checked)
		{
			actList = actList + ',' + field.value;
		}
	}
	if(xmlhttp)
	{
		var url = "http://beta.versiontracker.com/php/AJAX/convert.php?function=setCategory&productList=" + actList + '&subCatID=' + masterCatID;
		xmlhttp.open("GET", url,true);
		xmlhttp.onreadystatechange=function() 
		{
			if (xmlhttp.readyState==4) 
			{
				hideElement('mesgPad');
			}
		}
		xmlhttp.send(null);
	}
}

function applyAltCat()
{
	d = document.getElementById("mesgPad");
	setInner("Saving Alternate Category settings");
	showElementPositioned('mesgPad',  -100, 0);
	var actList = '0';
	
		d = document.getElementById("altCat"+_ProductID);
		masterAltCatList = d.innerHTML;

	altCatList = masterAltCat.join(',');
	
	var field = document.DLProducts.list;

	if(field.length)
	{
		for (var i = 0; i < field.length; i++)
		{
			if(field[i].checked)
			{
				actList = actList + ',' + field[i].value;
				d = document.getElementById("altCat"+field[i].value);
				setInner(masterAltCatList);
			}
		}
	} else {
		if(field.checked)
		{
			actList = actList + ',' + field.value;
		}
	}
	if(xmlhttp)
	{
		var url = "http://beta.versiontracker.com/php/AJAX/convert.php?function=setAlternateCategory&productList=" + actList + '&altCatIDs=' + altCatList;
		xmlhttp.open("GET", url,true);
		xmlhttp.onreadystatechange=function() 
		{
			if (xmlhttp.readyState==4) 
			{
				hideElement('mesgPad');
			}
		}
		xmlhttp.send(null);
	}
}
