/**
 * @author silent
 * Depends on:
 * 				- cookie/cookie.js
 * 				- common/common.js
 */

var ad_bmrk_frm = 'bmrks_frm';
var t_tmout = false;


function addBookmark(_ad_id){
	if(!is_positive_integer(_ad_id)) return;
	var bmrk = getCookie('bmrk');
	var bmrks = new Array();
	var bmrk_set = false;
	if(typeof bmrk != 'undefined' && bmrk != null){
		 bmrks = bmrk.split(',');
	}

	for(var i = 0; i < bmrks.length; i++){
		if(bmrks[i] == _ad_id){
			bmrk_set = true;
			break;
		}
	}
	if(!bmrk_set){
		bmrks[bmrks.length] = _ad_id;
		setCookie('bmrk', bmrks.join(','), 0, '/');
	}
	//displayElement('bmrk_box', (bmrks.length > 0 ? 'inline' : 'none'));
	displayBmrkCounter();
}


function chkAllBookmarks(_flag){
	var _form = document.forms[ad_bmrk_frm];
	if(_form.elements['ids[]'].length){
		for(var n = 0; n < _form.elements['ids[]'].length; n++){
			_form.elements['ids[]'][n].checked = _flag;
		}
	}else{
		_form.elements['ids[]'].checked = _flag;
	}
}

function dropBookmarks(){
	var _to_drop = getSelectedBmkrs();
	if(_to_drop == false){
		alert('Välj annons att ta bort!');
		return false;
	}

	var bmrks_str = getCookie('bmrk');
	if(typeof bmrks_str != 'undefined' && bmrks_str != null){
		 var bmrks = bmrks_str.split(',');
		 if(bmrks instanceof Array){
	 		var _remain_ids = new Array();
	 		itr_outer:
	 		for(var k = 0; k < bmrks.length; k++){
	 			for(var m = 0; m < _to_drop.length; m++){
	 				if(bmrks[k] == _to_drop[m]) continue itr_outer;
	 			}
	 			_remain_ids[_remain_ids.length] = bmrks[k];
	 		}
	 		if(_remain_ids.length > 0){
	 			setCookie('bmrk', _remain_ids.join(','), 0, '/');
	 		}else{
	 			setCookie('bmrk', '', 0, '/');
	 		}
			displayBmrkCounter();
	 		return true;
		}
	}
	displayBmrkCounter();
	return false;
}

function getNumBookmarks(){
	var num_bmrk = 0;
	var bmrk = getCookie('bmrk');
	if(typeof bmrk != 'undefined' && bmrk != null){
		var re = /^\d+$/;
		var bmrks = new Array();
		bmrks = bmrk.split(',');
		for(var i = 0; i < bmrks.length; i++){
			if(re.test(bmrks[i])) ++num_bmrk;
		}
	}	
	return num_bmrk;
}

function getSelectedBmkrs(){
	var _ret = new Array();
	var _form = document.forms[ad_bmrk_frm];
	if(_form.elements['ids[]'].length){
		for(var n = 0; n < _form.elements['ids[]'].length; n++){
	    	if(_form.elements['ids[]'][n].checked == true){
				_ret[_ret.length] = _form.elements['ids[]'][n].value;
			}
	  	}
	}else{
		if(_form.elements['ids[]'].checked == true){
			_ret[_ret.length] = _form.elements['ids[]'].value;
		}
	}
	return (_ret.length > 0 ? _ret : false);
}

function numSelectedBookmarks(){
	var _form = document.forms[ad_bmrk_frm];
	var numSelected = 0;
	if(_form.elements['ids[]'].length){
		for(var n = 0; n < _form.elements['ids[]'].length; n++){
	    	if(_form.elements['ids[]'][n].checked == true){
				numSelected++;
			}
	  	}
	}else{
		if(_form.elements['ids[]'].checked == true){
			numSelected++;
		}
	}
	return numSelected;
}

function showTip(oEvent){
	var _tip = document.getElementById('div_bmrk_tip');
	if(_tip && oEvent){
    	if(t_tmout != false){
			clearTimeout(t_tmout);
		}
	    displayElement('div_bmrk_tip', 'inline');
	    _tip.style.left = (oEvent.pageX ? oEvent.pageX : oEvent.clientX + (document.body.scrollLeft ? document.body.scrollLeft : 0));
	    _tip.style.top  = (oEvent.pageY ? oEvent.pageY : oEvent.clientY + (document.body.scrollTop  ? document.body.scrollTop  : 0));
	    t_tmout = setTimeout("displayElement('div_bmrk_tip', 'none');", 1800);
	}
}

function displayBmrkCounter(){
	var bmrk_cnt_elm = document.getElementById('bmrk_num');
	if(bmrk_cnt_elm){
		bmrk_cnt_elm.innerHTML = '['+getNumBookmarks()+']';	
	}
	
}
