var maxnumbookmark = 200;

function getOptions(){
	//var opt = window.document.forms.srhResult.DOCID;	
	var opt = findObj('DOCID');
	if (! isArray(opt)) {
		var optarray = new Array(1); 
		optarray[0] = opt;
		opt = optarray;
	}
	return opt
}

//BMK -> BookMark
var bmk = new Array();
function initBMK() {
	var str = readCookie('BOOKMARK');
	//alert(str);
	if (str) {
		bmk = str.split(",");
		if (bmk[0] == '') bmk.splice(0, 1);
		//bmk.sort();
		var opt = getOptions();
		var hasMark = false;
		if (opt) {
			var i;
			var ao; //an option
			for (i=0; i<opt.length; i++) {
				ao = opt[i].value;
				//if (binSearch(ao, bmk) != -1) {
				if (linearSearch(ao, bmk) != -1) {
					opt[i].checked = true;
					hasMark = true;
				}
				else
					opt[i].checked = false;
			}
		}
		
		var docAll =  findObj('DOCALL');
		if ( docAll) {
			docAll.checked = hasMark;
		}
	}	
}

function addBMK(ao, save) {
		var pos = linearSearch(ao, bmk);
		if ( pos == -1) {//not founded
			bmk.push(ao);
			if (save) saveBMK();
		}
}

//remove a bookmark
function removeBMK(ao, save) {
		var pos = linearSearch(ao, bmk);
		if ( pos != -1) {//not founded
			bmk.splice(pos, 1);
			if (save) saveBMK();
		}		
}

function saveBMK(){
	writeCookie('BOOKMARK', bmk.join(','));
}

//check or uncheck the bookmark of an entry
function checkBMK(opt) {
	if (opt) {		
		var ao = opt.value;
		//alert(ao);
		//alert(opt.checked);
		if (opt.checked) {
			if (bmk.length >= maxnumbookmark) {
				alert("Maximum of " + maxnumbookmark + " marked records reached.");
				opt.checked=false;
			}
			else
				addBMK(ao, true);			
		}
		else
			removeBMK(ao, true);
	}
}

function checkAllBMK(allOpt){
	//alert(bmk.length);	
	var opt = getOptions();	
	if (opt) {		
		var i;
		if (allOpt.checked) {
			for (i=0; i<opt.length; i++) {
					if (bmk.length >= maxnumbookmark) {
						alert("Maximum of " + maxnumbookmark + " marked records reached.");
						break;
					} else {
						if (opt[i].checked == false) {
							opt[i].checked = true;
							addBMK(opt[i].value, false)
						}
						saveBMK();
					}
			}	
		}
		else {
			for (i=0; i<opt.length; i++) {
						if (opt[i].checked == true) {
							opt[i].checked = false;
							removeBMK(opt[i].value)
						}
						saveBMK();
			}			
		}
	}
}

function checkall(){
	//alert(bmk.length);	
	var opt = getOptions();	
	if (opt) {		
		var i;
		for (i=0; i<opt.length; i++) {
				if (bmk.length >= maxnumbookmark) {
					alert("Maximum of " + maxnumbookmark + " marked records reached.");
					break;
				} else {
					if (opt[i].checked == false) {
						opt[i].checked = true;
						addBMK(opt[i].value, false)
					}
					saveBMK();
				}
		}	
	}
}

function clearAllBMK(){
	if (!confirm('Are you sure you wish to clear all marked records?'))
		return;
		
	bmk = new Array();
	var opt = getOptions();	
	var i;
	for (i=0; i<opt.length; i++) {
		if (opt[i].checked == true) {
			opt[i].checked = false;
		}
	}
	var docAll =  findObj('DOCALL');
	if ( docAll) {
		docAll.checked = false;
	}	
	
	writeCookie('BOOKMARK', '');
}
	
function clearBMKinPage(){
	//bmk = new Array();
	var opt = getOptions();	
	var i;
	for (i=0; i<opt.length; i++) {
		if (opt[i].checked == true) {
			opt[i].checked = false;
			checkBMK(opt[i]);
		}
	}
	var docAll =  findObj('DOCALL');
	if ( docAll) {
		docAll.checked = false;
	}	
}