var formFubmit = false;
var cancelSubmit = false;

function isBrowser(b) 
{
  var browserOk = false;
  browserOk = (navigator.appName.indexOf(b) != -1);
  return browserOk;
}

var progressBarImg = "../../img/progressbar_green.gif";
var img1 = null;

function preloadImage()
{
	if (document.images) 
	{
	   img1 = new Image();
	   img1.src = progressBarImg;
	}	
}

function progressIndicator(elementId)
{
	if(isBrowser("Explorer"))
	{
		//elementId.innerHTML = "<marquee width='200' height='30' align='center' direction='right' behavior='alternate'><img src='../progress_bar.gif'></marquee>";
		elementId.innerHTML = "<marquee width='200' height='30' align='center' direction='right' behavior='alternate'><img src='"+img1.src+"'></marquee>";
	}
	else
	{
		//elementId.innerHTML = "<img src='../progressbar_green.gif'>";
		elementId.innerHTML = "<img src='"+img1.src+"'>";
	}
}

function alertSubmit(htnObj)
{
    var d=document.getElementById("div");
	if ( d != null )
	{
		if(!formFubmit)
		{
		    d.innerHTML="<message>Your request is submitted, the result will be returned within few seconds, please wait.</message>";
			formFubmit = true;
			return true;
		}
		else
		{
		    d.innerHTML="<message>Your request has been submitted, please wait few seconds.</message>";
			return false;
		}
	}
}

function cancelAction ( )
{
    var d=document.getElementById("div");
	if ( !cancelSubmit)
	{
	    if ( d != null )
	    {
	    	d.innerHTML="<message>Your request is cancelled, please wait.</message>";
	    }
		cancelSubmit = true;
		return true;
	}
	else
	{
	   if ( d != null )
	   {
	   		d.innerHTML="<message>Your request has been cancelled, please wait few seconds.</message>";
	   }
		return false;
	}
}

function alertSubmit()
{
    var d=document.getElementById("div");
	if ( d != null )
	{
		if(!formFubmit)
		{
		    d.innerHTML="<message>Your request is submitted, the result will be returned within few seconds, please wait.</message>";
			formFubmit = true;
			return true;
		}
		else
		{
		    d.innerHTML="<message>Your request has been submitted, please wait few seconds.</message>";
			return false;
		}
	}
}



function openHelp(anchorPoint) 
{
	var url = "http://gan.usc.edu/public/manual/GAN.htm#";
	var options="height=400, width=750, top=150, left=150, scrollbars=yes, resizable=yes";
	window.open(url+anchorPoint, null, options, null);
}

function showDatasetDetailInfo(dbName, url)
{
	window.open(url+'moreTableInfo.php?dName='+dbName, dbName,'toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes,width=1024,height=550,left=20,top=30');
}

function openMoreDataInformation(datasetIDForRetrieval,isIDDatasetName)
{
	window.open('./moreDataInformation.jsp?datasetID=' + datasetIDForRetrieval + '&isName=' + isIDDatasetName, datasetIDForRetrieval, 'toolbar=no,menubar=no,location=no,scrollbars=yes,resizable=yes,width=1024,height=550,left=20,top=30');
}

function validateRequired(elementIds)
{
	var ids = elementIds.split(' ');
	var passValidate = true;
	for(var i=0;i<ids.length;i++)
	{
		var theId = ids[i];
		var element =  document.getElementById(theId);
		var value = element.value;
		if(value == null || value.length==0)
		{
			if(element.type == "text")
			{
				element.parentNode.style.borderColor="red";
				element.parentNode.style.borderStyle="solid";
				element.parentNode.style.borderWidth="thin";
			}
			else
			{
				element.style.borderColor="red";
				element.style.borderStyle="solid";
				element.style.borderWidth="thin";
			}
			passValidate = false;
		}
	}
	
	if(!passValidate)
	{
		window.alert('Please fill up the required field(s).');
		return false;
	}
	else
	{
		return displayAlertMessage();
	}
}

function validateRequiredNosubmit(elementIds)
{
	var ids = elementIds.split(' ');
	var passValidate = true;
	for(var i=0;i<ids.length;i++)
	{
		var theId = ids[i];
		var element =  document.getElementById(theId);
		var value = element.value;
		if(value == null || value.length==0)
		{
			element.style.borderColor="red";
			element.style.borderStyle="solid";
			element.style.borderWidth="thin";
			passValidate = false;
		}
	}
	
	if(!passValidate)
	{
		window.alert('Please fill up the required field(s).');
		return false;
	}
	else
	{
		return true;
	}
}

function validateRequired(elementIds, progId)
{
	var ids = elementIds.split(' ');
	var passValidate = true;
	for(var i=0;i<ids.length;i++)
	{
		var theId = ids[i];
		var element =  document.getElementById(theId);
		var value = element.value;
		if(value == null || value.length==0)
		{
			element.style.borderColor="red";
			element.style.borderStyle="solid";
			element.style.borderWidth="thin";
			passValidate = false;
		}
	}
	
	if(!passValidate)
	{
		window.alert('Please fill up the required field(s).');
		return false;
	}
	else
	{
		progressIndicator(progId);
		return displayAlertMessage();
	}
}

function validateMandatory(elementIds)
{
	var ids = elementIds.split(' ');
	var passValidate = true;
	for(var i=0;i<ids.length;i++)
	{
		var theId = ids[i];
		var element =  document.getElementById(theId);
		var value = element.value;
		if(value == null || value.length==0)
		{
			element.style.borderColor="red";
			element.style.borderStyle="solid";
			element.style.borderWidth="thin";
			passValidate = false;
		}
	}

	if(!passValidate)
	{
		window.alert('Please fill up the required field(s).');
		return false;
	}
	else
	{
		return true;
	}
}

function selectAtLeastOne(elementId, tdID)
{
	var element = document.getElementById(elementId);
	if(element.type == "radio" && !element.checked)
	{
		window.alert("Please check one option.");		
		return false;
	}
	else if(element.selectedIndex<0)
	{
		window.alert("Please select at least one file.");
		markRed(tdID);
		return false;
	}
	return true;
}

function markRed(elementId)
{
	var element = document.getElementById(elementId);
	if(element.type=="text")
	{
		element.parentNode.style.borderColor="red";
		element.parentNode.style.borderStyle="solid";
		element.parentNode.style.borderWidth="thin";	
	}
	else
	{
		element.style.borderColor="red";
		element.style.borderStyle="solid";
		element.style.borderWidth="thin";
	}
}

function unMarkRed(elementId)
{
	var element = document.getElementById(elementId);
	element.style.borderWidth="medium";
}

function trim(str)
{
	return str.replace(/^\s+|\s+$/, '');
}

function isInteger(str)
{
	if(trim(str).length>0)
	{
		result = str.match(/[^0-9-()\s]/g);
		return result==null;
	}
	else
	{
	  return false;
	}
}

function displayAlertMessage(  )
{
    var d=document.getElementById("div");
	if ( d != null )
	{
		if(!formFubmit)
		{
		    d.innerHTML="<message>Your request is submitted, the result will be returned within few seconds, please wait.</message>";
			formFubmit = true;
			return true;
		}
		else
		{
		    d.innerHTML="<message>Your request has been submitted, please wait few seconds.</message>";
			return false;
		}
	}
}
