// Set some base values
var acrobat=new Object();

acrobat.installed=false;
acrobat.version='0.0';
var retrieveFormat = "PDF";
var mainWindow = "mainWindow";
var childWindow = "galeChildWindow";
var win = null;
var openWindow = mainWindow ;
var features = "location=yes,menubar=yes,toolbar=yes,resizable=yes,scrollbars=no,titlebar=yes,left=100,top=100,screenX=0,screenY=0,width=700,height=500";

/*
	If the Default document is PDF,
	than we need to open the PDF document in the main window.

*/
function retrievePDFForPageRange(url) {
	var formObj = document.forms[0];
	var valid = validatePageRange("pageRange");
	if(valid==false){
		return;
	}

	var pageRange = eval("formObj.pageRange").value;
	url = url + "&pageRange="+pageRange;
	//the window preference need to be decided here
	win = open(url, childWindow,features);
	win.focus();

}

function checkAcrobat(){

if (navigator.plugins && navigator.plugins.length)
{
	for (x=0; x<navigator.plugins.length; x++)
	{
		if (navigator.plugins[x].description.indexOf('Adobe Acrobat') != -1)
		{
			acrobat.version=parseFloat(navigator.plugins[x].description.split('Version ')[1]);

			if (acrobat.version.toString().length == 1) acrobat.version+='.0';

			acrobat.installed=true;
			break;
		}
	}
}
else if (window.ActiveXObject)
{
	for (x=2; x<10; x++)
	{
		try
		{
			oAcro=eval("new ActiveXObject('PDF.PdfCtrl."+x+"');");

			if (oAcro)
			{
				acrobat.installed=true;
				acrobat.version=x+'.0';
			}
		}
		catch(e) {}
	}

	try
	{
		oAcro4=new ActiveXObject('PDF.PdfCtrl.1');
		if (oAcro4)
		{
			acrobat.installed=true;
			acrobat.version='4.0';
		}
	}
	catch(e) {}

	try
	{
		oAcro7=new ActiveXObject('AcroPDF.PDF.1');
		if (oAcro7)
		{
			acrobat.installed=true;
			acrobat.version='7.0';
		}
	}
	catch(e) {}
}

acrobat.ver4=(acrobat.installed && parseInt(acrobat.version) >= 4) ? true:false;
acrobat.ver5=(acrobat.installed && parseInt(acrobat.version) >= 5) ? true:false;
acrobat.ver6=(acrobat.installed && parseInt(acrobat.version) >= 6) ? true:false;
acrobat.ver7=(acrobat.installed && parseInt(acrobat.version) >= 7) ? true:false;
acrobat.ver8=(acrobat.installed && parseInt(acrobat.version) >= 8) ? true:false;
acrobat.ver9=(acrobat.installed && parseInt(acrobat.version) >= 9) ? true:false;

	return acrobat.installed;

}


function retrievePDFFromResultList(href,target){
	href = unescape(href);
	if(this.getPrintFormObj().pdfLowerLimit != null){
	 	href += "&pdfLowerLimit="+this.getPrintFormObj().pdfLowerLimit.value;
	}
	if(this.getPrintFormObj().pdfHigherLimit != null){
	 	href += "&pdfHigherLimit="+this.getPrintFormObj().pdfHigherLimit.value;
	}	
	win = open(href,target,features);
	win.focus();
}

function backToPreviousPage(obj){
	history.go(obj);

}
function validatePageRange(objectId){

	var pageRangeObj = document.getElementById(objectId);
	if( pageRangeObj != null || pageRangeObj != undefined ){
		var strRange = pageRangeObj.value;
		var totalPages=document.getElementById("noOfPages").value;
		var pdfLowerLimit =document.getElementById("pdfLowerLimit").value;
		var pdfHigherLimit =document.getElementById("pdfHigherLimit").value;


		if(strRange.length<=0){
			alert(PAGE_RANGE_ERR);
	 		return false;
	 	}
     	var regEx = /^(\d+(-\d+)?(,\d+(-\d+)?)*)*$/;
  	 	if(!regEx.test(strRange)){
			alert(INVALID_CHARS);
			pageRangeObj.value="";
			return false;
	 	}
		if(!(isValidRange(strRange,pdfLowerLimit,pdfHigherLimit) && checkNumberOfPages(strRange)) ){
			return false;
	 	}
	 	if(isOutOfRange(strRange,pdfLowerLimit,pdfHigherLimit)){
	 		alert(PAGE_RANGE_ERR);
			return false;
		}
  }
  return true;
}

function isValidRange(strRange,pdfLowerLimit,pdfHigherLimit){

	var splitResult = strRange.split(",");

	if(splitResult.length>1){
		for(i=0;i<splitResult.length;i++){
			if(splitResult[i].indexOf("-")>0){
				var subSplitResult =splitResult[i].split("-");
				if((parseInt(subSplitResult[0],10)>parseInt(subSplitResult[1],10))||(isOutOfRange(subSplitResult[0],pdfLowerLimit,pdfHigherLimit))||(isOutOfRange(subSplitResult[1],pdfLowerLimit,pdfHigherLimit))){
					alert(PAGE_RANGE_ERR);
					return false;
				}
			}else if(isOutOfRange(splitResult[i],pdfLowerLimit,pdfHigherLimit)) {
				alert(PAGE_RANGE_ERR);
				return false;
			}
		}
	}else if(strRange.indexOf("-")>0){
		var subSplitResult =strRange.split("-");
		if((parseInt(subSplitResult[0],10)>parseInt(subSplitResult[1],10))||(isOutOfRange(subSplitResult[0],pdfLowerLimit,pdfHigherLimit))||(isOutOfRange(subSplitResult[1],pdfLowerLimit,pdfHigherLimit))){
			alert(PAGE_RANGE_ERR);
			return false;
		}
	}
	return true;
}


function checkNumberOfPages(strRange){
	var numberOfPages="";
	var splitResult = strRange.split(",");
	if(splitResult.length>1){
		for(var i=0;i<splitResult.length;i++){
			if(splitResult[i].indexOf("-")>0){
				var subSplitResult =splitResult[i].split("-");
				 for(j=subSplitResult[0];j<=subSplitResult[1];j++){
				 numberOfPages=numberOfPages+j+"*";
				 }
			}
			else{
				numberOfPages=numberOfPages+splitResult[i]+"*";
			}
		}
	}else if(strRange.indexOf("-")>0){
		var subSplitResult =strRange.split("-");
		 for(var j=parseInt(subSplitResult[0],10);j<=parseInt(subSplitResult[1],10);j++){
			 numberOfPages=numberOfPages+j+"*";
		 }
	}
	//checking for duplicate and pushing in an array
	splitResult=numberOfPages.split("*");
	var pages = new Array();
	for(k=0;k<splitResult.length-1;k++){
 		var found=false;
 	      for(arrLen=0;arrLen<pages.length;arrLen++){
		     if(parseInt(splitResult[k],10)==parseInt(pages[arrLen],10)){
 			     found = true ;
 			     break;
 		     }
 		}
 		if(!found){
 			pages.push(splitResult[k]);
		}
	}
	if(pages.length>50){
		alert(EXCEEDS_MAX_PAGES);
		return false ;
	}
	return true;
}

function isOutOfRange(pageNo,pdfLowerLimit,pdfHigherLimit){
	if ((parseInt(pageNo,10)< parseInt(pdfLowerLimit,10)) || (parseInt(pageNo,10)>parseInt(pdfHigherLimit,10))){
		return true;
	}
		return false;
}

